@ionic/core 8.8.14-dev.11784216165.1ecbf364 → 8.8.14-dev.11784222473.142aed23

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 (360) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-back-button.js +1 -1
  5. package/components/ion-button.js +1 -1
  6. package/components/ion-card.js +1 -1
  7. package/components/ion-chip.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-img.js +1 -1
  12. package/components/ion-infinite-scroll-content.js +1 -1
  13. package/components/ion-input-password-toggle.js +1 -1
  14. package/components/ion-input.js +1 -1
  15. package/components/ion-item-option.js +1 -1
  16. package/components/ion-item.js +1 -1
  17. package/components/ion-loading.js +1 -1
  18. package/components/ion-menu-button.js +1 -1
  19. package/components/ion-menu.js +1 -1
  20. package/components/ion-modal.js +1 -1
  21. package/components/ion-nav.js +1 -1
  22. package/components/ion-picker-legacy-column.d.ts +11 -0
  23. package/components/ion-picker-legacy-column.js +4 -0
  24. package/components/ion-picker-legacy.d.ts +11 -0
  25. package/components/ion-picker-legacy.js +4 -0
  26. package/components/ion-popover.js +1 -1
  27. package/components/ion-progress-bar.js +1 -1
  28. package/components/ion-radio.js +1 -1
  29. package/components/ion-range.js +1 -1
  30. package/components/ion-refresher-content.js +1 -1
  31. package/components/ion-refresher.js +1 -1
  32. package/components/ion-reorder-group.js +1 -1
  33. package/components/ion-reorder.js +1 -1
  34. package/components/ion-ripple-effect.js +1 -1
  35. package/components/ion-router-link.js +1 -1
  36. package/components/ion-router-outlet.js +1 -1
  37. package/components/ion-router.js +1 -1
  38. package/components/ion-row.js +1 -1
  39. package/components/ion-searchbar.js +1 -1
  40. package/components/ion-segment-button.js +1 -1
  41. package/components/ion-segment-content.js +1 -1
  42. package/components/ion-segment-view.js +1 -1
  43. package/components/ion-segment.js +1 -1
  44. package/components/ion-select-modal.js +1 -1
  45. package/components/ion-select-option.js +1 -1
  46. package/components/ion-select-popover.js +1 -1
  47. package/components/ion-select.js +1 -1
  48. package/components/ion-skeleton-text.js +1 -1
  49. package/components/ion-spinner.js +1 -1
  50. package/components/ion-split-pane.js +1 -1
  51. package/components/ion-tab-bar.js +1 -1
  52. package/components/ion-tab-button.js +1 -1
  53. package/components/ion-tab.js +1 -1
  54. package/components/ion-tabs.js +1 -1
  55. package/components/ion-text.js +1 -1
  56. package/components/ion-textarea.js +1 -1
  57. package/components/ion-thumbnail.js +1 -1
  58. package/components/ion-title.js +1 -1
  59. package/components/ion-toast.js +1 -1
  60. package/components/ion-toggle.js +1 -1
  61. package/components/ion-toolbar.js +1 -1
  62. package/components/p-3hGiN2uq.js +4 -0
  63. package/components/{p-DpV-p5Xs.js → p-5bE_Wz4Y.js} +1 -1
  64. package/components/{p-r0aq7dpt.js → p-B60hm8Qv.js} +1 -1
  65. package/components/{p-Buf_7zcy.js → p-BHrrc-3d.js} +1 -1
  66. package/components/p-BIPPbW0M.js +4 -0
  67. package/components/{p-XJWMAP8m.js → p-BLmJ0zRm.js} +1 -1
  68. package/components/{p-DhkITZ-y.js → p-BSEgsdFI.js} +1 -1
  69. package/components/p-BUYFy35a.js +4 -0
  70. package/components/p-BWEZufiK.js +4 -0
  71. package/components/p-BqpciLfi.js +4 -0
  72. package/components/p-BsQPAqo9.js +4 -0
  73. package/components/p-CU5rbWAW.js +4 -0
  74. package/components/{p-Dz74mwlk.js → p-Cfx4M1Bn.js} +1 -1
  75. package/components/p-k_E4tX5Z.js +4 -0
  76. package/components/p-nyXeHk23.js +4 -0
  77. package/components/{p-wk2QqrAo.js → p-rCa2eL0j.js} +1 -1
  78. package/dist/cjs/config-xninhj0J.js +201 -0
  79. package/dist/cjs/index.cjs.js +6 -6
  80. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -27
  81. package/dist/cjs/ion-alert.cjs.entry.js +25 -64
  82. package/dist/cjs/ion-app_8.cjs.entry.js +9 -23
  83. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  84. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  85. package/dist/cjs/{ion-datetime.cjs.entry.js → ion-datetime_3.cjs.entry.js} +639 -1
  86. package/dist/cjs/ion-img.cjs.entry.js +1 -3
  87. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -3
  88. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  89. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-loading.cjs.entry.js +5 -10
  91. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  92. package/dist/cjs/ion-modal.cjs.entry.js +18 -23
  93. package/dist/cjs/ion-nav_2.cjs.entry.js +115 -2
  94. package/dist/cjs/ion-popover.cjs.entry.js +5 -9
  95. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  97. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  98. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -6
  99. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  101. package/dist/cjs/ion-route_4.cjs.entry.js +4 -18
  102. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  103. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  104. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  105. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  106. package/dist/cjs/ion-select-modal.cjs.entry.js +30 -84
  107. package/dist/cjs/ion-select_3.cjs.entry.js +49 -407
  108. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  109. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  111. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  112. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-toast.cjs.entry.js +5 -6
  115. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  116. package/dist/cjs/ionic.cjs.js +1 -1
  117. package/dist/cjs/loader.cjs.js +1 -1
  118. package/dist/cjs/{overlays-DSmSrd_4.js → overlays-DdtIYQUH.js} +31 -27
  119. package/dist/collection/collection-manifest.json +10 -6
  120. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -229
  121. package/dist/collection/components/action-sheet/action-sheet.js +5 -24
  122. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -175
  123. package/dist/collection/components/alert/alert.ios.css +10 -280
  124. package/dist/collection/components/alert/alert.js +21 -59
  125. package/dist/collection/components/alert/alert.md.css +20 -269
  126. package/dist/collection/components/img/img.js +1 -6
  127. package/dist/collection/components/input/input.js +8 -8
  128. package/dist/collection/components/loading/loading.js +3 -7
  129. package/dist/collection/components/modal/modal.ios.css +8 -0
  130. package/dist/collection/components/modal/modal.js +18 -23
  131. package/dist/collection/components/modal/modal.md.css +8 -0
  132. package/dist/collection/components/nav/nav.js +219 -4
  133. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  134. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  135. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  136. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  137. package/dist/collection/components/picker-legacy/picker.js +890 -0
  138. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  139. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  140. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  141. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  142. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  143. package/dist/collection/components/popover/popover.ios.css +0 -15
  144. package/dist/collection/components/popover/popover.js +3 -7
  145. package/dist/collection/components/popover/popover.md.css +0 -15
  146. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  147. package/dist/collection/components/radio/radio.js +4 -4
  148. package/dist/collection/components/range/range.js +3 -3
  149. package/dist/collection/components/refresher/refresher.js +1 -1
  150. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  151. package/dist/collection/components/reorder/reorder.js +1 -1
  152. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  153. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  154. package/dist/collection/components/route/route.js +1 -1
  155. package/dist/collection/components/router/utils/dom.js +3 -22
  156. package/dist/collection/components/router-link/router-link.js +2 -2
  157. package/dist/collection/components/router-outlet/router-outlet.js +5 -38
  158. package/dist/collection/components/row/row.js +1 -1
  159. package/dist/collection/components/searchbar/searchbar.js +9 -9
  160. package/dist/collection/components/segment/segment.js +2 -2
  161. package/dist/collection/components/segment-button/segment-button.js +2 -2
  162. package/dist/collection/components/segment-content/segment-content.js +1 -1
  163. package/dist/collection/components/segment-view/segment-view.js +2 -2
  164. package/dist/collection/components/select/select.ios.css +0 -33
  165. package/dist/collection/components/select/select.js +16 -323
  166. package/dist/collection/components/select/select.md.css +0 -33
  167. package/dist/collection/components/select-modal/select-modal.ios.css +0 -219
  168. package/dist/collection/components/select-modal/select-modal.js +26 -79
  169. package/dist/collection/components/select-modal/select-modal.md.css +0 -165
  170. package/dist/collection/components/select-option/select-option.js +3 -67
  171. package/dist/collection/components/select-popover/select-popover.ios.css +0 -219
  172. package/dist/collection/components/select-popover/select-popover.js +26 -78
  173. package/dist/collection/components/select-popover/select-popover.md.css +0 -165
  174. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  175. package/dist/collection/components/spinner/spinner.js +1 -1
  176. package/dist/collection/components/split-pane/split-pane.js +2 -2
  177. package/dist/collection/components/tab/tab.js +2 -2
  178. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  179. package/dist/collection/components/tab-button/tab-button.js +2 -2
  180. package/dist/collection/components/tabs/tabs.js +1 -1
  181. package/dist/collection/components/text/text.js +2 -2
  182. package/dist/collection/components/textarea/textarea.js +2 -2
  183. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  184. package/dist/collection/components/title/title.js +2 -2
  185. package/dist/collection/components/toast/toast.js +2 -2
  186. package/dist/collection/components/toggle/toggle.js +3 -3
  187. package/dist/collection/components/toolbar/toolbar.js +2 -2
  188. package/dist/collection/index.js +1 -1
  189. package/dist/collection/utils/overlays.js +30 -26
  190. package/dist/collection/utils/sanitization/index.js +18 -274
  191. package/dist/docs.json +1189 -497
  192. package/dist/esm/config-DQCONYYp.js +195 -0
  193. package/dist/esm/{index-AlrZKoWR.js → index-DV3sJJW8.js} +1 -1
  194. package/dist/esm/index.js +2 -3
  195. package/dist/esm/ion-accordion_2.entry.js +1 -1
  196. package/dist/esm/ion-action-sheet.entry.js +7 -27
  197. package/dist/esm/ion-alert.entry.js +24 -63
  198. package/dist/esm/ion-app_8.entry.js +9 -23
  199. package/dist/esm/ion-avatar_3.entry.js +1 -1
  200. package/dist/esm/ion-back-button.entry.js +1 -1
  201. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  202. package/dist/esm/ion-col_3.entry.js +1 -1
  203. package/dist/esm/{ion-datetime.entry.js → ion-datetime_3.entry.js} +641 -5
  204. package/dist/esm/ion-fab_3.entry.js +1 -1
  205. package/dist/esm/ion-img.entry.js +2 -4
  206. package/dist/esm/ion-infinite-scroll_2.entry.js +1 -2
  207. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  208. package/dist/esm/ion-input.entry.js +5 -5
  209. package/dist/esm/ion-item_8.entry.js +3 -3
  210. package/dist/esm/ion-loading.entry.js +4 -9
  211. package/dist/esm/ion-menu_3.entry.js +2 -2
  212. package/dist/esm/ion-modal.entry.js +18 -23
  213. package/dist/esm/ion-nav_2.entry.js +116 -3
  214. package/dist/esm/ion-popover.entry.js +5 -9
  215. package/dist/esm/ion-progress-bar.entry.js +1 -1
  216. package/dist/esm/ion-radio_2.entry.js +3 -3
  217. package/dist/esm/ion-range.entry.js +3 -3
  218. package/dist/esm/ion-refresher_2.entry.js +4 -5
  219. package/dist/esm/ion-reorder_2.entry.js +3 -3
  220. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  221. package/dist/esm/ion-route_4.entry.js +4 -18
  222. package/dist/esm/ion-searchbar.entry.js +6 -6
  223. package/dist/esm/ion-segment-content.entry.js +1 -1
  224. package/dist/esm/ion-segment-view.entry.js +2 -2
  225. package/dist/esm/ion-segment_2.entry.js +4 -4
  226. package/dist/esm/ion-select-modal.entry.js +30 -84
  227. package/dist/esm/ion-select_3.entry.js +52 -410
  228. package/dist/esm/ion-spinner.entry.js +1 -1
  229. package/dist/esm/ion-split-pane.entry.js +2 -2
  230. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  231. package/dist/esm/ion-tab_2.entry.js +3 -3
  232. package/dist/esm/ion-text.entry.js +2 -2
  233. package/dist/esm/ion-textarea.entry.js +2 -2
  234. package/dist/esm/ion-toast.entry.js +4 -5
  235. package/dist/esm/ion-toggle.entry.js +4 -4
  236. package/dist/esm/ionic.js +1 -1
  237. package/dist/esm/loader.js +1 -1
  238. package/dist/esm/{overlays-DLNOHWNc.js → overlays-Dg0q2_tJ.js} +32 -28
  239. package/dist/html.html-data.json +80 -52
  240. package/dist/ionic/index.esm.js +1 -1
  241. package/dist/ionic/ionic.esm.js +1 -1
  242. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  243. package/dist/ionic/p-0cc11f99.entry.js +4 -0
  244. package/dist/ionic/p-0dc33652.entry.js +4 -0
  245. package/dist/ionic/{p-fe4aa1db.entry.js → p-0fa9c382.entry.js} +1 -1
  246. package/dist/ionic/p-20b1a044.entry.js +4 -0
  247. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  248. package/dist/ionic/p-27d30585.entry.js +4 -0
  249. package/dist/ionic/p-2a05aa64.entry.js +4 -0
  250. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  251. package/dist/ionic/{p-80b44b3c.entry.js → p-3353c229.entry.js} +1 -1
  252. package/dist/ionic/{p-c93553d2.entry.js → p-34586ead.entry.js} +1 -1
  253. package/dist/ionic/{p-a7628bc7.entry.js → p-37e720da.entry.js} +1 -1
  254. package/dist/ionic/{p-9177f4ac.entry.js → p-390ca786.entry.js} +1 -1
  255. package/dist/ionic/{p-259d0d98.entry.js → p-3a126bca.entry.js} +1 -1
  256. package/dist/ionic/{p-4502a274.entry.js → p-3a7d1e91.entry.js} +1 -1
  257. package/dist/ionic/{p-627fabd9.entry.js → p-3ae5f277.entry.js} +1 -1
  258. package/dist/ionic/{p-a5213260.entry.js → p-4858af1f.entry.js} +1 -1
  259. package/dist/ionic/p-485fda23.entry.js +4 -0
  260. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  261. package/dist/ionic/p-5018dfc8.entry.js +4 -0
  262. package/dist/ionic/p-50e1194a.entry.js +4 -0
  263. package/dist/ionic/{p-76e92a84.entry.js → p-5d1da0a2.entry.js} +1 -1
  264. package/dist/ionic/p-5eb8e86d.entry.js +4 -0
  265. package/dist/ionic/p-65ebdf1b.entry.js +4 -0
  266. package/dist/ionic/p-6ebdbebe.entry.js +4 -0
  267. package/dist/ionic/{p-d2c7f046.entry.js → p-75dc25ba.entry.js} +1 -1
  268. package/dist/ionic/{p-b9ac1fe0.entry.js → p-84d5ce05.entry.js} +1 -1
  269. package/dist/ionic/{p-51cd1643.entry.js → p-874b4bd8.entry.js} +1 -1
  270. package/dist/ionic/{p-ef93ca92.entry.js → p-8eb8ee76.entry.js} +1 -1
  271. package/dist/ionic/p-8fce95d5.entry.js +4 -0
  272. package/dist/ionic/{p-db1b6738.entry.js → p-9a65ac7f.entry.js} +1 -1
  273. package/dist/ionic/{p-7a37b3ce.entry.js → p-9f1103ce.entry.js} +1 -1
  274. package/dist/ionic/p-9f9db3a2.entry.js +4 -0
  275. package/dist/ionic/p-D-3ycHmd.js +4 -0
  276. package/dist/ionic/{p-AlrZKoWR.js → p-DV3sJJW8.js} +1 -1
  277. package/dist/ionic/p-DzWaWHGc.js +4 -0
  278. package/dist/ionic/p-a21add2f.entry.js +4 -0
  279. package/dist/ionic/{p-d8387b99.entry.js → p-c4d8641b.entry.js} +1 -1
  280. package/dist/ionic/p-ca2ab74d.entry.js +4 -0
  281. package/dist/ionic/{p-629e4703.entry.js → p-e0be05c5.entry.js} +1 -1
  282. package/dist/ionic/p-ec090e0a.entry.js +4 -0
  283. package/dist/ionic/{p-b1599fca.entry.js → p-ef4c3bee.entry.js} +1 -1
  284. package/dist/ionic/p-f386f6ae.entry.js +4 -0
  285. package/dist/ionic/{p-341032b3.entry.js → p-fabcce6c.entry.js} +1 -1
  286. package/dist/types/components/img/img.d.ts +0 -2
  287. package/dist/types/components/input/input.d.ts +1 -1
  288. package/dist/types/components/modal/modal.d.ts +4 -11
  289. package/dist/types/components/nav/nav-interface.d.ts +1 -0
  290. package/dist/types/components/nav/nav.d.ts +22 -2
  291. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  292. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  293. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  294. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  295. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  296. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  297. package/dist/types/components/route/route.d.ts +1 -1
  298. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  299. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  300. package/dist/types/components/select/select-interface.d.ts +0 -31
  301. package/dist/types/components/select/select.d.ts +0 -18
  302. package/dist/types/components/select-option/select-option.d.ts +1 -42
  303. package/dist/types/components.d.ts +303 -74
  304. package/dist/types/index.d.ts +1 -1
  305. package/dist/types/interface.d.ts +1 -0
  306. package/dist/types/utils/config.d.ts +8 -0
  307. package/dist/types/utils/overlays.d.ts +9 -11
  308. package/dist/types/utils/sanitization/index.d.ts +2 -58
  309. package/hydrate/index.js +1268 -1400
  310. package/hydrate/index.mjs +1268 -1400
  311. package/package.json +5 -37
  312. package/components/p-279dFMvg.js +0 -4
  313. package/components/p-BSQPZ79H.js +0 -4
  314. package/components/p-BwKpO3Is.js +0 -4
  315. package/components/p-C-Rx1zny.js +0 -4
  316. package/components/p-CHzfYZbv.js +0 -4
  317. package/components/p-D4h1H_hh.js +0 -4
  318. package/components/p-LMGfIvTf.js +0 -4
  319. package/components/p-_lHSumhG.js +0 -4
  320. package/components/p-j9Da6cYO.js +0 -4
  321. package/components/p-jOtMJMv8.js +0 -4
  322. package/components/p-uTR_dEqg.js +0 -4
  323. package/dist/cjs/config-DWdFbSNK.js +0 -35
  324. package/dist/cjs/index-Cueg3U4w.js +0 -429
  325. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  326. package/dist/cjs/select-option-render-DTF50t5r.js +0 -124
  327. package/dist/collection/utils/overlay-control-label.js +0 -45
  328. package/dist/collection/utils/select-option-render.js +0 -119
  329. package/dist/esm/config-BwKpO3Is.js +0 -31
  330. package/dist/esm/index-DQSkZyOJ.js +0 -424
  331. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  332. package/dist/esm/select-option-render-B8nWZRnd.js +0 -122
  333. package/dist/ionic/p-038eb991.entry.js +0 -4
  334. package/dist/ionic/p-4621c387.entry.js +0 -4
  335. package/dist/ionic/p-4ace7762.entry.js +0 -4
  336. package/dist/ionic/p-4bb3eb60.entry.js +0 -4
  337. package/dist/ionic/p-4e9ec5c5.entry.js +0 -4
  338. package/dist/ionic/p-5c3ec490.entry.js +0 -4
  339. package/dist/ionic/p-5d1ac2c7.entry.js +0 -4
  340. package/dist/ionic/p-700795f6.entry.js +0 -4
  341. package/dist/ionic/p-79a36078.entry.js +0 -4
  342. package/dist/ionic/p-913b218a.entry.js +0 -4
  343. package/dist/ionic/p-BDtODLZ4.js +0 -4
  344. package/dist/ionic/p-BSQPZ79H.js +0 -4
  345. package/dist/ionic/p-BwKpO3Is.js +0 -4
  346. package/dist/ionic/p-Cg5-OQYy.js +0 -4
  347. package/dist/ionic/p-DCOvXkOm.js +0 -4
  348. package/dist/ionic/p-a18dcb3c.entry.js +0 -4
  349. package/dist/ionic/p-a9a33367.entry.js +0 -4
  350. package/dist/ionic/p-ad728198.entry.js +0 -4
  351. package/dist/ionic/p-bfc8c629.entry.js +0 -4
  352. package/dist/ionic/p-c08e666a.entry.js +0 -4
  353. package/dist/ionic/p-c474f471.entry.js +0 -4
  354. package/dist/ionic/p-ce7992c4.entry.js +0 -4
  355. package/dist/ionic/p-ed797c72.entry.js +0 -4
  356. package/dist/ionic/p-f09f9642.entry.js +0 -4
  357. package/dist/ionic/p-f1c06f82.entry.js +0 -4
  358. package/dist/ionic/p-f718fccb.entry.js +0 -4
  359. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  360. package/dist/types/utils/select-option-render.d.ts +0 -53
package/hydrate/index.mjs CHANGED
@@ -8039,7 +8039,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8039
8039
  * Should NOT include: Toast
8040
8040
  */
8041
8041
  const trapKeyboardFocus = (ev, doc) => {
8042
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8042
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
8043
8043
  const target = ev.target;
8044
8044
  /**
8045
8045
  * If no active overlay, ignore this event.
@@ -8273,7 +8273,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8273
8273
  */
8274
8274
  const getOverlays = (doc, selector) => {
8275
8275
  if (selector === undefined) {
8276
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8276
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8277
8277
  }
8278
8278
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8279
8279
  };
@@ -8335,29 +8335,6 @@ const setRootAriaHidden = (hidden = false) => {
8335
8335
  viewContainer.removeAttribute('aria-hidden');
8336
8336
  }
8337
8337
  };
8338
- /**
8339
- * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8340
- * an overlay is removed from the DOM without going through
8341
- * the `dismiss()` flow (e.g., when a framework unmounts the
8342
- * overlay during a route change).
8343
- *
8344
- * Should be called from an overlay's `disconnectedCallback`
8345
- * when the overlay was still presented at the time of removal.
8346
- */
8347
- const cleanupRootFocusTrapAccessibility = () => {
8348
- if (typeof document === 'undefined') {
8349
- return;
8350
- }
8351
- const remainingOverlays = getPresentedOverlays(document);
8352
- const hasRemainingLocking = remainingOverlays.some((o) => {
8353
- const el = o;
8354
- return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8355
- });
8356
- if (!hasRemainingLocking) {
8357
- setRootAriaHidden(false);
8358
- document.body.classList.remove(BACKDROP_NO_SCROLL);
8359
- }
8360
- };
8361
8338
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8362
8339
  var _a, _b;
8363
8340
  if (overlay.presented) {
@@ -8423,7 +8400,30 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
8423
8400
  * to the overlay container.
8424
8401
  */
8425
8402
  if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
8426
- overlay.el.focus();
8403
+ /**
8404
+ * Some overlays (e.g. modal) put the dialog role and accessible label
8405
+ * on the `.ion-overlay-wrapper` instead of the host. Screen readers
8406
+ * need focus on the element with `role="dialog"` to properly announce
8407
+ * and navigate the dialog.
8408
+ *
8409
+ * We only target wrappers with `tabindex`, since `role="dialog"` alone
8410
+ * does not make an element focusable. If no focusable dialog wrapper
8411
+ * exists (e.g. picker-legacy), we fall back to the host.
8412
+ */
8413
+ const overlayWrapper = getElementRoot(overlay.el).querySelector('[role="dialog"][tabindex]');
8414
+ const focusTarget = overlayWrapper !== null && overlayWrapper !== void 0 ? overlayWrapper : overlay.el;
8415
+ /**
8416
+ * `preventScroll` keeps this a pure focus move so the viewport does not
8417
+ * jump when the wrapper is partially off-screen (e.g. a sheet modal).
8418
+ * Guard the options call so an older engine that mishandles it can never
8419
+ * reject present(); we fall back to a plain focus() in that case.
8420
+ */
8421
+ try {
8422
+ focusTarget.focus({ preventScroll: true });
8423
+ }
8424
+ catch (_c) {
8425
+ focusTarget.focus();
8426
+ }
8427
8427
  }
8428
8428
  /**
8429
8429
  * If this overlay was previously dismissed without being
@@ -8759,539 +8759,6 @@ const createTriggerController = () => {
8759
8759
  };
8760
8760
  const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
8761
8761
 
8762
- /**
8763
- * Sanitize an untrusted HTML string.
8764
- *
8765
- * Parses the string into a detached DOM, removes blocked tags, strips
8766
- * attributes outside the narrow `domStringAllowedAttributes` list (refer
8767
- * `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
8768
- * HTML string.
8769
- *
8770
- * Use this when you have an HTML string from an unknown source and need to
8771
- * render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
8772
- * have a DOM tree and want to sanitize it in place without a string round
8773
- * trip. The two apply the same dangerous-vector scrubbing but different
8774
- * attribute allowlists: this path stays narrow so existing consumers
8775
- * (toast, loading, alert message, etc.) are unaffected, while
8776
- * `sanitizeDOMTree` uses the wider rich-content allowlist.
8777
- *
8778
- * @param untrustedString - The HTML string to sanitize. Pass an
8779
- * `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
8780
- * @returns The sanitized HTML string, or `undefined` if the input was
8781
- * `undefined`. Returns `''` if sanitization fails or the input contains
8782
- * an inline `onload=` handler.
8783
- */
8784
- const sanitizeDOMString = (untrustedString) => {
8785
- try {
8786
- if (untrustedString instanceof IonicSafeString) {
8787
- return untrustedString.value;
8788
- }
8789
- if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
8790
- return untrustedString;
8791
- }
8792
- /**
8793
- * onload is fired when appending to a document
8794
- * fragment in Chrome. If a string
8795
- * contains onload then we should not
8796
- * attempt to add this to the fragment.
8797
- */
8798
- if (untrustedString.includes('onload=')) {
8799
- return '';
8800
- }
8801
- /**
8802
- * Create a document fragment
8803
- * separate from the main DOM,
8804
- * create a div to do our work in
8805
- */
8806
- const documentFragment = document.createDocumentFragment();
8807
- const workingDiv = document.createElement('div');
8808
- documentFragment.appendChild(workingDiv);
8809
- workingDiv.innerHTML = untrustedString;
8810
- /**
8811
- * Remove any elements
8812
- * that are blocked
8813
- */
8814
- blockedTags.forEach((blockedTag) => {
8815
- const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
8816
- for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
8817
- const element = getElementsToRemove[elementIndex];
8818
- if (element.parentNode) {
8819
- element.parentNode.removeChild(element);
8820
- }
8821
- else {
8822
- documentFragment.removeChild(element);
8823
- }
8824
- /**
8825
- * We still need to sanitize
8826
- * the children of this element
8827
- * as they are left behind
8828
- */
8829
- const childElements = getElementChildren(element);
8830
- /* eslint-disable-next-line */
8831
- for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
8832
- sanitizeElement(childElements[childIndex], domStringAllowedAttributes);
8833
- }
8834
- }
8835
- });
8836
- /**
8837
- * Go through remaining elements and remove
8838
- * non-allowed attribs
8839
- */
8840
- // IE does not support .children on document fragments, only .childNodes
8841
- const dfChildren = getElementChildren(documentFragment);
8842
- /* eslint-disable-next-line */
8843
- for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
8844
- sanitizeElement(dfChildren[childIndex], domStringAllowedAttributes);
8845
- }
8846
- // Append document fragment to div
8847
- const fragmentDiv = document.createElement('div');
8848
- fragmentDiv.appendChild(documentFragment);
8849
- // First child is always the div we did our work in
8850
- const getInnerDiv = fragmentDiv.querySelector('div');
8851
- return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
8852
- }
8853
- catch (err) {
8854
- printIonError('sanitizeDOMString', err);
8855
- return '';
8856
- }
8857
- };
8858
- /**
8859
- * Sanitize an entire trusted DOM tree in place.
8860
- *
8861
- * Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
8862
- * then sanitizes attributes on every remaining element using the wider
8863
- * `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
8864
- * Component presentational attributes (`size`, `color`, `shape`, inline
8865
- * SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
8866
- * form/navigation-hijack attributes, script-scheme URLs, and non-image
8867
- * `data:` URLs are stripped.
8868
- *
8869
- * Use this when you have a DOM tree the developer controls (e.g.
8870
- * cloned slot content from a component) and you need to render it
8871
- * elsewhere safely.
8872
- *
8873
- * @param root - The root element whose subtree will be sanitized in
8874
- * place. No-op when the sanitizer is disabled via `Ionic.config`.
8875
- */
8876
- const sanitizeDOMTree = (root) => {
8877
- if (!isSanitizerEnabled()) {
8878
- return;
8879
- }
8880
- blockedTags.forEach((tag) => {
8881
- const matches = root.querySelectorAll(tag);
8882
- for (let i = matches.length - 1; i >= 0; i--) {
8883
- matches[i].remove();
8884
- }
8885
- });
8886
- sanitizeElement(root, richContentAllowedAttributes, richContentAllowedAttributePrefixes);
8887
- };
8888
- /**
8889
- * Clean up current element based on allowed attributes
8890
- * and then recursively dig down into any child elements to
8891
- * clean those up as well
8892
- */
8893
- // TODO(FW-2832): type (using Element triggers other type errors as well)
8894
- const sanitizeElement = (element, allowedAttributes, allowedAttributePrefixes = []) => {
8895
- // IE uses childNodes, so ignore nodes that are not elements
8896
- if (element.nodeType && element.nodeType !== 1) {
8897
- return;
8898
- }
8899
- /**
8900
- * If attributes is not a NamedNodeMap
8901
- * then we should remove the element entirely.
8902
- * This helps avoid DOM Clobbering attacks where
8903
- * attributes is overridden.
8904
- */
8905
- if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
8906
- element.remove();
8907
- return;
8908
- }
8909
- /**
8910
- * Always strip `style` (CSS injection, `background:url()` beaconing, UI
8911
- * spoofing). It is never on the allowlist, but it is removed explicitly
8912
- * here because some engines (e.g. jsdom) don't enumerate the CSSOM-backed
8913
- * `style` attribute in `element.attributes`, which would let the loop
8914
- * below skip over it.
8915
- */
8916
- element.removeAttribute('style');
8917
- for (let i = element.attributes.length - 1; i >= 0; i--) {
8918
- const attribute = element.attributes.item(i);
8919
- const attributeName = attribute.name;
8920
- const lowerName = attributeName.toLowerCase();
8921
- /**
8922
- * Remove any attribute that is not on the allowlist. This drops event
8923
- * handlers (`on*`), `style`, the form/navigation-hijack attributes
8924
- * (`formaction`, `action`, `target`), namespaced attributes like
8925
- * `xlink:href`, and anything else not explicitly known to be safe.
8926
- */
8927
- if (!isAttributeAllowed(lowerName, allowedAttributes, allowedAttributePrefixes)) {
8928
- element.removeAttribute(attributeName);
8929
- continue;
8930
- }
8931
- // clean up any allowed attribs
8932
- // that attempt to do any JS funny-business
8933
- const attributeValue = attribute.value;
8934
- if (attributeValue == null) {
8935
- continue;
8936
- }
8937
- /**
8938
- * Scrub dangerous schemes from the value. The value is normalized first
8939
- * (whitespace and ASCII control characters removed) so entity-obfuscated
8940
- * payloads such as `java&#9;script:`, which the parser decodes to
8941
- * `java\tscript:`, are still caught. Normalizing the value also covers
8942
- * namespaced attributes, where the previous `element[attributeName]`
8943
- * property reflection returned `undefined` and let them slip through.
8944
- */
8945
- const normalizedValue = attributeValue.replace(controlCharactersAndWhitespace, '').toLowerCase();
8946
- // Script schemes are never allowed, on any attribute.
8947
- if (normalizedValue.includes('javascript:') || normalizedValue.includes('vbscript:')) {
8948
- element.removeAttribute(attributeName);
8949
- continue;
8950
- }
8951
- /**
8952
- * For URL-bearing attributes, allow `data:` URIs only for raster
8953
- * images. Document-bearing types (`text/html`, `image/svg+xml`,
8954
- * `application/*`, etc.) can carry markup or script when navigated to
8955
- * or rendered, so they are stripped, while safe image types are kept so
8956
- * inline images keep working.
8957
- */
8958
- if (urlAttributes.includes(lowerName) &&
8959
- normalizedValue.startsWith('data:') &&
8960
- !safeDataImageUri.test(normalizedValue)) {
8961
- element.removeAttribute(attributeName);
8962
- }
8963
- }
8964
- /**
8965
- * Sanitize any nested children
8966
- */
8967
- const childElements = getElementChildren(element);
8968
- /* eslint-disable-next-line */
8969
- for (let i = 0; i < childElements.length; i++) {
8970
- sanitizeElement(childElements[i], allowedAttributes, allowedAttributePrefixes);
8971
- }
8972
- };
8973
- /**
8974
- * IE doesn't always support .children
8975
- * so we revert to .childNodes instead
8976
- */
8977
- // TODO(FW-2832): type
8978
- const getElementChildren = (el) => {
8979
- return el.children != null ? el.children : el.childNodes;
8980
- };
8981
- const isSanitizerEnabled = () => {
8982
- var _a;
8983
- const win = window;
8984
- const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
8985
- if (config) {
8986
- if (config.get) {
8987
- return config.get('sanitizerEnabled', true);
8988
- }
8989
- else {
8990
- return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
8991
- }
8992
- }
8993
- return true;
8994
- };
8995
- /**
8996
- * Mirror known custom-element DOM properties onto attributes so they
8997
- * survive `cloneNode`. Call this on a DOM subtree before cloning it for
8998
- * rendering elsewhere (e.g. cloning slotted option content into an
8999
- * overlay).
9000
- *
9001
- * Only sets the attribute when the property holds a non-empty string
9002
- * and the attribute isn't already present, so existing attributes
9003
- * take precedence.
9004
- *
9005
- * @param root - The root element whose subtree (and itself) will be
9006
- * inspected.
9007
- */
9008
- const reflectPropertiesToAttributes = (root) => {
9009
- const candidates = [];
9010
- if (root.tagName in elementPropsToReflect) {
9011
- candidates.push(root);
9012
- }
9013
- for (const tagName of Object.keys(elementPropsToReflect)) {
9014
- candidates.push(...Array.from(root.querySelectorAll(tagName.toLowerCase())));
9015
- }
9016
- for (const el of candidates) {
9017
- if (!(el.tagName in elementPropsToReflect)) {
9018
- continue;
9019
- }
9020
- const props = elementPropsToReflect[el.tagName];
9021
- for (const prop of props) {
9022
- const value = el[prop];
9023
- if (typeof value === 'string' && value.length > 0 && !el.hasAttribute(prop)) {
9024
- el.setAttribute(prop, value);
9025
- }
9026
- }
9027
- }
9028
- };
9029
- /**
9030
- * Attribute allowlist for `sanitizeDOMString`. Intentionally narrow: this
9031
- * path sanitizes developer HTML strings rendered via `innerHTML` by
9032
- * `ion-toast`, `ion-loading`, the `ion-alert` message,
9033
- * `ion-refresher-content`, and `ion-infinite-scroll-content`, so the list
9034
- * is kept to the minimum those have always needed. Broadening it here would
9035
- * change sanitization output for all of those consumers, so the wider
9036
- * rich-content allowlist below is deliberately scoped to `sanitizeDOMTree`
9037
- * instead.
9038
- */
9039
- const domStringAllowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
9040
- /**
9041
- * Attribute allowlist for `sanitizeDOMTree` (the select rich-content path).
9042
- * Covers global HTML attributes, the Ionic component presentational props
9043
- * that cloned rich content (e.g. `ion-select-option` markup) relies on, and
9044
- * the inert SVG presentation attributes used by inline icons.
9045
- *
9046
- * `aria-*` and `data-*` are allowed separately by prefix (refer
9047
- * `richContentAllowedAttributePrefixes`) since they are inert and not worth
9048
- * enumerating. URL-bearing names (`href`, `src`) are allowed here, but
9049
- * their values are still scrubbed for script schemes in `sanitizeElement`.
9050
- *
9051
- * Notably absent: `style`, event handlers (`on*`), and the
9052
- * form/navigation-hijack attributes (`formaction`, `action`, `target`),
9053
- * which are therefore stripped.
9054
- */
9055
- const richContentAllowedAttributes = [
9056
- // Global / structural
9057
- 'class',
9058
- 'id',
9059
- 'slot',
9060
- 'name',
9061
- 'title',
9062
- 'alt',
9063
- 'lang',
9064
- 'dir',
9065
- 'role',
9066
- 'type',
9067
- 'value',
9068
- 'disabled',
9069
- 'width',
9070
- 'height',
9071
- 'href',
9072
- 'src',
9073
- // Ionic component presentational props
9074
- 'color',
9075
- 'size',
9076
- 'shape',
9077
- 'fill',
9078
- 'expand',
9079
- 'mode',
9080
- 'theme',
9081
- 'icon',
9082
- 'label',
9083
- 'label-placement',
9084
- 'justify',
9085
- 'inset',
9086
- 'lines',
9087
- 'ios',
9088
- 'md',
9089
- // SVG presentation attributes (compared lowercased, e.g. `viewBox`)
9090
- 'xmlns',
9091
- 'viewbox',
9092
- 'preserveaspectratio',
9093
- 'stroke',
9094
- 'stroke-width',
9095
- 'stroke-linecap',
9096
- 'stroke-linejoin',
9097
- 'stroke-opacity',
9098
- 'stroke-dasharray',
9099
- 'fill-rule',
9100
- 'fill-opacity',
9101
- 'clip-rule',
9102
- 'd',
9103
- 'points',
9104
- 'cx',
9105
- 'cy',
9106
- 'r',
9107
- 'rx',
9108
- 'ry',
9109
- 'x',
9110
- 'y',
9111
- 'x1',
9112
- 'y1',
9113
- 'x2',
9114
- 'y2',
9115
- 'transform',
9116
- 'opacity',
9117
- ];
9118
- /**
9119
- * Attribute-name prefixes that are always safe to keep in the rich-content
9120
- * path. `aria-*` and `data-*` attributes cannot execute script or load
9121
- * resources, so they are allowed wholesale rather than enumerated by name.
9122
- */
9123
- const richContentAllowedAttributePrefixes = ['aria-', 'data-'];
9124
- /**
9125
- * Whether an attribute name (already lowercased) is safe to keep, by exact
9126
- * match or by an allowed prefix.
9127
- */
9128
- const isAttributeAllowed = (lowerName, allowedAttributes, allowedAttributePrefixes) => {
9129
- if (allowedAttributes.includes(lowerName)) {
9130
- return true;
9131
- }
9132
- return allowedAttributePrefixes.some((prefix) => lowerName.startsWith(prefix));
9133
- };
9134
- /**
9135
- * Matches ASCII control characters and whitespace (including the
9136
- * non-breaking space). Used to normalize attribute values before matching
9137
- * a URL scheme so entity-obfuscated payloads such as `java&#9;script:`
9138
- * (decoded by the parser to `java\tscript:`) can't smuggle a scheme past
9139
- * the check.
9140
- */
9141
- // eslint-disable-next-line no-control-regex -- matching control characters is the point
9142
- const controlCharactersAndWhitespace = /[\u0000-\u0020\u007f-\u00a0]/g;
9143
- /**
9144
- * Attributes whose values are URLs. Their values are scheme-checked in
9145
- * `sanitizeElement` (e.g. `data:` filtering) beyond the script-scheme scrub
9146
- * applied to every attribute.
9147
- */
9148
- const urlAttributes = ['href', 'src'];
9149
- /**
9150
- * Matches a `data:` URI for a raster image type that cannot carry script.
9151
- * `image/svg+xml` is deliberately excluded (SVG can execute script), as are
9152
- * document types like `text/html` and `application/*`. The value is already
9153
- * lowercased and whitespace-stripped before this is tested.
9154
- */
9155
- const safeDataImageUri = /^data:image\/(?:png|jpe?g|gif|webp|bmp|avif|x-icon|vnd\.microsoft\.icon)[;,]/;
9156
- /**
9157
- * Tags removed entirely (with their subtree) before attribute sanitization.
9158
- * Exported so tests can assert the set without hardcoding it.
9159
- */
9160
- const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed', 'base'];
9161
- /**
9162
- * Properties on custom elements that frameworks (Vue, Angular) often
9163
- * set as DOM properties rather than attributes. `cloneNode` only copies
9164
- * attributes, so these values are lost when slotted content is cloned
9165
- * into an overlay. For each known custom element, we mirror the listed
9166
- * properties onto attributes so the cloned copy still has the data it
9167
- * needs to render.
9168
- *
9169
- * Keyed by uppercased tagName so the lookup matches `Element.tagName`.
9170
- */
9171
- const elementPropsToReflect = {
9172
- 'ION-ICON': ['icon', 'name', 'src', 'ios', 'md'],
9173
- };
9174
- class IonicSafeString {
9175
- constructor(value) {
9176
- this.value = value;
9177
- }
9178
- }
9179
-
9180
- /**
9181
- * Converts a DOM node into a Stencil VNode (or text string) so the
9182
- * resulting tree is rendered through the component's normal render
9183
- * path. Rendering through Stencil ensures that scoped CSS classes
9184
- * (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
9185
- *
9186
- * Highly recommended to pre-sanitize the source DOM (see
9187
- * `getOptionContent` in select.tsx). This function performs pure
9188
- * structural conversion — no security filtering.
9189
- *
9190
- * Preserves attributes only — properties set imperatively on the source
9191
- * element (e.g. `input.value` after a user types) won't carry through.
9192
- * In practice this isn't a concern: interactive controls shouldn't
9193
- * appear in select-option rich content since they'd nest inside the
9194
- * overlay's button/radio/checkbox wrapper, which is invalid HTML and
9195
- * an accessibility issue.
9196
- *
9197
- * @param node - The DOM node to convert. Text nodes become strings,
9198
- * element nodes become VNodes, and any other node types are skipped.
9199
- * @param keyPrefix - String prefix used to build a stable VNode key,
9200
- * so Stencil's diff can preserve elements across re-renders.
9201
- * @param index - Position of this node among its siblings. Combined
9202
- * with `keyPrefix` to form the final unique key.
9203
- * @returns The converted VNode, a text string, or `null` if the node
9204
- * type isn't supported.
9205
- *
9206
- * @internal Exported only so it can be unit tested; not part of the
9207
- * public API.
9208
- */
9209
- const cloneToVNode = (node, keyPrefix, index) => {
9210
- var _a;
9211
- if (node.nodeType === Node.TEXT_NODE) {
9212
- return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
9213
- }
9214
- if (node.nodeType !== Node.ELEMENT_NODE) {
9215
- return null;
9216
- }
9217
- const el = node;
9218
- const tag = el.tagName.toLowerCase();
9219
- const key = `${keyPrefix}-${index}`;
9220
- const attrs = { key };
9221
- for (let i = 0; i < el.attributes.length; i++) {
9222
- const attr = el.attributes.item(i);
9223
- attrs[attr.name] = attr.value;
9224
- }
9225
- const children = Array.from(el.childNodes)
9226
- .map((child, i) => cloneToVNode(child, key, i))
9227
- .filter((c) => c !== null);
9228
- return hAsync(tag, attrs, children);
9229
- };
9230
- /**
9231
- * Renders cloned DOM content as Stencil JSX. Walking the source DOM
9232
- * into VNodes (rather than injecting it via innerHTML) keeps the
9233
- * content inside Stencil's render path, so scoped CSS classes are
9234
- * applied automatically and component attributes like `size` or
9235
- * `color` survive intact.
9236
- *
9237
- * Span elements should be used when this content renders within buttons,
9238
- * depending on the select interface. Buttons can only have phrasing
9239
- * content to prevent accessibility issues.
9240
- *
9241
- * @param id - Unique identifier for generating stable virtual DOM keys.
9242
- * @param content - The HTMLElement container whose child nodes will be cloned.
9243
- * @param className - CSS class applied to the wrapper element.
9244
- * @param useSpan - Whether to use a span element instead of a div for the wrapper.
9245
- */
9246
- const renderClonedContent = (id, content, className, useSpan = false) => {
9247
- const Tag = useSpan ? 'span' : 'div';
9248
- const keyPrefix = `${className}-${id}`;
9249
- /**
9250
- * Do not remove. This is the only sanitization pass for callers that pass
9251
- * an `HTMLElement` straight to `renderOptionLabel` (e.g. vanilla JS)
9252
- * without going through `getOptionContent`, which sanitizes upstream.
9253
- * `cloneToVNode` does pure structural conversion and no security
9254
- * filtering, so dropping this call would reopen an XSS hole on the
9255
- * direct `HTMLElement` path.
9256
- */
9257
- sanitizeDOMTree(content);
9258
- return (hAsync(Tag, { class: className, key: keyPrefix }, Array.from(content.childNodes).map((child, i) => cloneToVNode(child, keyPrefix, i))));
9259
- };
9260
- /**
9261
- * Renders the label content for a select option within an overlay
9262
- * interface based on the presence of rich content.
9263
- *
9264
- * Span elements should be used when this content renders within buttons,
9265
- * depending on the select interface. Buttons can only have phrasing
9266
- * content to prevent accessibility issues.
9267
- *
9268
- * @param option - The content option data containing label, slots,
9269
- * and description.
9270
- * @param className - The base CSS class for the label element.
9271
- * @param useSpan - Whether to use a span element instead of a div for the label.
9272
- */
9273
- const renderOptionLabel = (option, className, useSpan = false) => {
9274
- const { id, label, startContent, endContent, description } = option;
9275
- const hasRichContent = !!startContent || !!endContent || !!description;
9276
- const Tag = useSpan ? 'span' : 'div';
9277
- // Render simple string label if there is no rich content to display
9278
- if (!hasRichContent && (typeof label === 'string' || !label)) {
9279
- return (hAsync(Tag, { class: className, key: `${className}-${id}` }, label));
9280
- }
9281
- // Render the main label
9282
- const labelEl = typeof label === 'string' || !label ? (
9283
- // Label is a simple string or undefined
9284
- hAsync(Tag, { key: `${className}-label-${id}` }, label)) : (
9285
- // Label is an HTMLElement with potential rich content
9286
- renderClonedContent(id, label, `${className}-text`, useSpan));
9287
- // No rich content, render just the label
9288
- if (!hasRichContent) {
9289
- return (hAsync(Tag, { class: className, key: `${className}-${id}` }, labelEl));
9290
- }
9291
- // Render label with rich content (start, end, description)
9292
- return (hAsync(Tag, { class: `${className} ${className}-has-rich-content`, key: `${className}-${id}` }, startContent && renderClonedContent(id, startContent, 'select-option-start', useSpan), hAsync(Tag, { class: "select-option-content", key: `${className}-content-${id}` }, labelEl, description && (hAsync(Tag, { class: "select-option-description", key: `${className}-desc-${id}` }, description))), endContent && renderClonedContent(id, endContent, 'select-option-end', useSpan)));
9293
- };
9294
-
9295
8762
  const hostContext = (selector, el) => {
9296
8763
  return el.closest(selector) !== null;
9297
8764
  };
@@ -10147,7 +9614,7 @@ const createAnimation = (animationId) => {
10147
9614
  /**
10148
9615
  * iOS Action Sheet Enter Animation
10149
9616
  */
10150
- const iosEnterAnimation$5 = (baseEl) => {
9617
+ const iosEnterAnimation$6 = (baseEl) => {
10151
9618
  const baseAnimation = createAnimation();
10152
9619
  const backdropAnimation = createAnimation();
10153
9620
  const wrapperAnimation = createAnimation();
@@ -10171,7 +9638,7 @@ const iosEnterAnimation$5 = (baseEl) => {
10171
9638
  /**
10172
9639
  * iOS Action Sheet Leave Animation
10173
9640
  */
10174
- const iosLeaveAnimation$5 = (baseEl) => {
9641
+ const iosLeaveAnimation$6 = (baseEl) => {
10175
9642
  const baseAnimation = createAnimation();
10176
9643
  const backdropAnimation = createAnimation();
10177
9644
  const wrapperAnimation = createAnimation();
@@ -10228,9 +9695,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
10228
9695
  .addAnimation([backdropAnimation, wrapperAnimation]);
10229
9696
  };
10230
9697
 
10231
- const actionSheetIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-ios,.alert-checkbox-label-text.sc-ion-action-sheet-ios,.alert-radio-label-text.sc-ion-action-sheet-ios,.select-option-label-text.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-ios{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-action-sheet-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios{width:44px;height:44px}.select-option-start.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-action-sheet-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-action-sheet-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;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);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-ios:disabled ion-icon.sc-ion-action-sheet-ios{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-ios{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;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
9698
+ const actionSheetIosCss = () => `.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;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);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-ios{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;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
10232
9699
 
10233
- const actionSheetMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-md,.alert-checkbox-label-text.sc-ion-action-sheet-md,.alert-radio-label-text.sc-ion-action-sheet-md,.select-option-label-text.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-md{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-action-sheet-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md{width:40px;height:40px}.select-option-start.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md{width:24px;height:24px}.select-option-start.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md{width:56px;height:56px}.select-option-start.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md{width:114px;height:56px}.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;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);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-md:disabled ion-icon.sc-ion-action-sheet-md{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-md{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;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
9700
+ const actionSheetMdCss = () => `.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;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);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-md{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;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
10234
9701
 
10235
9702
  /**
10236
9703
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
@@ -10327,7 +9794,7 @@ class ActionSheet {
10327
9794
  async present() {
10328
9795
  const unlock = await this.lockController.lock();
10329
9796
  await this.delegateController.attachViewToDom();
10330
- await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9797
+ await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
10331
9798
  unlock();
10332
9799
  }
10333
9800
  /**
@@ -10344,7 +9811,7 @@ class ActionSheet {
10344
9811
  */
10345
9812
  async dismiss(data, role) {
10346
9813
  const unlock = await this.lockController.lock();
10347
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9814
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
10348
9815
  if (dismissed) {
10349
9816
  this.delegateController.removeViewFromDom();
10350
9817
  }
@@ -10513,10 +9980,6 @@ class ActionSheet {
10513
9980
  this.gesture = undefined;
10514
9981
  }
10515
9982
  this.triggerController.removeClickListener();
10516
- // Clean up aria-hidden if removed without dismiss() being called
10517
- if (this.presented) {
10518
- cleanupRootFocusTrapAccessibility();
10519
- }
10520
9983
  }
10521
9984
  componentWillLoad() {
10522
9985
  var _a;
@@ -10605,26 +10068,12 @@ class ActionSheet {
10605
10068
  if (isRadio) {
10606
10069
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10607
10070
  }
10608
- /**
10609
- * Cast to `SelectActionSheetButton` to access rich content
10610
- * fields (`startContent`, `endContent`, `description`)
10611
- * that are passed through from `ion-select` but not
10612
- * part of the public `ActionSheetButton` interface.
10613
- */
10614
- const richButton = b;
10615
- const optionLabelOptions = {
10616
- id: buttonId,
10617
- label: richButton.text,
10618
- startContent: richButton.startContent,
10619
- endContent: richButton.endContent,
10620
- description: richButton.description,
10621
- };
10622
- return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10071
+ return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10623
10072
  if (isRadio) {
10624
10073
  this.selectRadioButton(b);
10625
10074
  }
10626
10075
  this.buttonClick(b);
10627
- }, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), renderOptionLabel(optionLabelOptions, 'action-sheet-button-label', true)), mode === 'md' && hAsync("ion-ripple-effect", null)));
10076
+ }, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null)));
10628
10077
  });
10629
10078
  }
10630
10079
  render() {
@@ -10634,12 +10083,12 @@ class ActionSheet {
10634
10083
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10635
10084
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10636
10085
  const headerID = `action-sheet-${overlayIndex}-header`;
10637
- return (hAsync(Host, Object.assign({ key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10086
+ return (hAsync(Host, Object.assign({ key: '48b63b870f2816b4cad3c606f3d9956854cee79a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10638
10087
  zIndex: `${20000 + this.overlayIndex}`,
10639
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: 'c70f00e401cac99b89412d1adb867f35bc855d57', tappable: this.backdropDismiss }), hAsync("div", { key: '3332893ce3098f1435875480b1269b2821d41660', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'eb406b0a9e303d6f94c5c7aa99c6f4c089bfbd41', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '92ec855379f10e1e0bfce6ff68b45d3cda0c137c', class: "action-sheet-container" }, hAsync("div", { key: 'bc88a396d75396f574961471bf7e6c4edb513353', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '33329e0193818888bdcaa443ff5ea301802e0787', id: headerID, class: {
10088
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '41dd5781f139d26b3feea33ab387451aeafacd51', tappable: this.backdropDismiss }), hAsync("div", { key: 'f797c2657782e4e83adf90d2d796108e857a1fc0', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '8e74209321fc5e8712e3e293c91a6fa036ea45ab', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'c811860be2eed0b6c73fc2cc5a59cb94db2e8912', class: "action-sheet-container" }, hAsync("div", { key: 'd36ee14b70d73eb5cd69e0c57bc5cc31daf86ab3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '922695de191edc86451eed2552acc4f54993ea52', id: headerID, class: {
10640
10089
  'action-sheet-title': true,
10641
10090
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10642
- } }, header, this.subHeader && hAsync("div", { key: '92ac5a9217a12b7417f7aca9c4fdb7bf6b051364', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '020463b830fa48fc3ae647ea64f2aaa4d0969305', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'cefa9c70a2233f6652a81b1a2eae6e717712144d' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '56d7e2f8bfb3644e4476895164d334445fda9b2f', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '6a4a49254ec5cd96f4e0dce9447f90d8cac81913', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '7d3c6e8d70b0922ea0f75520856285ce1005c891' })))))), hAsync("div", { key: '958fc43e603c6a7f5d1e649d3326fce0f163b5d0', tabindex: "0", "aria-hidden": "true" })));
10091
+ } }, header, this.subHeader && hAsync("div", { key: 'a119d4a93668e829f7106f11cbbdd437310f3e80', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '1d27f36d09bedd2e4c61fea9dd9d05f8f9271aef', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'ed13658176c54cc45808a54a0331c297430d9bc6' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '5208e3e3535b775a443cef6fb1decd790db69b0c', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'b7ba489e1ee50524a5b4af670eef787844a16286', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3f88898114855853259f0001def26b4bd6e4a98' })))))), hAsync("div", { key: '0dfd0fcdc633bf565990eaa06679608e749cf8f9', tabindex: "0", "aria-hidden": "true" })));
10643
10092
  }
10644
10093
  get el() { return getElement(this); }
10645
10094
  static get watchers() { return {
@@ -10688,59 +10137,178 @@ class ActionSheet {
10688
10137
  "$attrsToReflect$": []
10689
10138
  }; }
10690
10139
  }
10691
- const buttonClass$2 = (button) => {
10140
+ const buttonClass$3 = (button) => {
10692
10141
  return Object.assign({ 'action-sheet-button': true, 'ion-activatable': !button.disabled, 'ion-focusable': !button.disabled, [`action-sheet-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10693
10142
  };
10694
10143
 
10695
10144
  const ENABLE_HTML_CONTENT_DEFAULT = false;
10696
10145
 
10697
- // TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
10698
10146
  /**
10699
- * Returns the default `labelPlacement` for a radio or checkbox option
10700
- * rendered inside an overlay. Defaults follow each mode's established
10701
- * option-row layout:
10702
- * - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
10703
- * interface flips iOS radio back to `"end"`. Checkbox is always
10704
- * `"end"` on iOS.
10705
- * - everything else (e.g. `md`): `"end"`.
10706
- *
10707
- * `interfaceType` is optional; only `"modal"` changes the result, so
10708
- * callers that aren't a modal can omit it.
10709
- *
10710
- * Used by `select-popover` and `select-modal` as the fallback when an
10711
- * option doesn't explicitly set `labelPlacement`.
10147
+ * Does a simple sanitization of all elements
10148
+ * in an untrusted string
10149
+ */
10150
+ const sanitizeDOMString = (untrustedString) => {
10151
+ try {
10152
+ if (untrustedString instanceof IonicSafeString) {
10153
+ return untrustedString.value;
10154
+ }
10155
+ if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
10156
+ return untrustedString;
10157
+ }
10158
+ /**
10159
+ * onload is fired when appending to a document
10160
+ * fragment in Chrome. If a string
10161
+ * contains onload then we should not
10162
+ * attempt to add this to the fragment.
10163
+ */
10164
+ if (untrustedString.includes('onload=')) {
10165
+ return '';
10166
+ }
10167
+ /**
10168
+ * Create a document fragment
10169
+ * separate from the main DOM,
10170
+ * create a div to do our work in
10171
+ */
10172
+ const documentFragment = document.createDocumentFragment();
10173
+ const workingDiv = document.createElement('div');
10174
+ documentFragment.appendChild(workingDiv);
10175
+ workingDiv.innerHTML = untrustedString;
10176
+ /**
10177
+ * Remove any elements
10178
+ * that are blocked
10179
+ */
10180
+ blockedTags.forEach((blockedTag) => {
10181
+ const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
10182
+ for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
10183
+ const element = getElementsToRemove[elementIndex];
10184
+ if (element.parentNode) {
10185
+ element.parentNode.removeChild(element);
10186
+ }
10187
+ else {
10188
+ documentFragment.removeChild(element);
10189
+ }
10190
+ /**
10191
+ * We still need to sanitize
10192
+ * the children of this element
10193
+ * as they are left behind
10194
+ */
10195
+ const childElements = getElementChildren(element);
10196
+ /* eslint-disable-next-line */
10197
+ for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
10198
+ sanitizeElement(childElements[childIndex]);
10199
+ }
10200
+ }
10201
+ });
10202
+ /**
10203
+ * Go through remaining elements and remove
10204
+ * non-allowed attribs
10205
+ */
10206
+ // IE does not support .children on document fragments, only .childNodes
10207
+ const dfChildren = getElementChildren(documentFragment);
10208
+ /* eslint-disable-next-line */
10209
+ for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
10210
+ sanitizeElement(dfChildren[childIndex]);
10211
+ }
10212
+ // Append document fragment to div
10213
+ const fragmentDiv = document.createElement('div');
10214
+ fragmentDiv.appendChild(documentFragment);
10215
+ // First child is always the div we did our work in
10216
+ const getInnerDiv = fragmentDiv.querySelector('div');
10217
+ return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
10218
+ }
10219
+ catch (err) {
10220
+ printIonError('sanitizeDOMString', err);
10221
+ return '';
10222
+ }
10223
+ };
10224
+ /**
10225
+ * Clean up current element based on allowed attributes
10226
+ * and then recursively dig down into any child elements to
10227
+ * clean those up as well
10712
10228
  */
10713
- const getOverlayLabelPlacement = (mode, control, interfaceType) => {
10714
- if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
10715
- return 'start';
10229
+ // TODO(FW-2832): type (using Element triggers other type errors as well)
10230
+ const sanitizeElement = (element) => {
10231
+ // IE uses childNodes, so ignore nodes that are not elements
10232
+ if (element.nodeType && element.nodeType !== 1) {
10233
+ return;
10234
+ }
10235
+ /**
10236
+ * If attributes is not a NamedNodeMap
10237
+ * then we should remove the element entirely.
10238
+ * This helps avoid DOM Clobbering attacks where
10239
+ * attributes is overridden.
10240
+ */
10241
+ if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
10242
+ element.remove();
10243
+ return;
10244
+ }
10245
+ for (let i = element.attributes.length - 1; i >= 0; i--) {
10246
+ const attribute = element.attributes.item(i);
10247
+ const attributeName = attribute.name;
10248
+ // remove non-allowed attribs
10249
+ if (!allowedAttributes.includes(attributeName.toLowerCase())) {
10250
+ element.removeAttribute(attributeName);
10251
+ continue;
10252
+ }
10253
+ // clean up any allowed attribs
10254
+ // that attempt to do any JS funny-business
10255
+ const attributeValue = attribute.value;
10256
+ /**
10257
+ * We also need to check the property value
10258
+ * as javascript: can allow special characters
10259
+ * such as &Tab; and still be valid (i.e. java&Tab;script)
10260
+ */
10261
+ const propertyValue = element[attributeName];
10262
+ /* eslint-disable */
10263
+ if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
10264
+ (propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
10265
+ element.removeAttribute(attributeName);
10266
+ }
10267
+ /* eslint-enable */
10268
+ }
10269
+ /**
10270
+ * Sanitize any nested children
10271
+ */
10272
+ const childElements = getElementChildren(element);
10273
+ /* eslint-disable-next-line */
10274
+ for (let i = 0; i < childElements.length; i++) {
10275
+ sanitizeElement(childElements[i]);
10716
10276
  }
10717
- return 'end';
10718
10277
  };
10719
10278
  /**
10720
- * Returns the default `justify` for a radio or checkbox option rendered
10721
- * inside an overlay. Defaults follow each mode's option-row layout:
10722
- * - `ios`: `"space-between"` for radio in `alert` and `popover`. The
10723
- * `modal` interface falls back to `"start"`. Checkbox is always `"start"`
10724
- * on iOS.
10725
- * - everything else (e.g. `md`): `"start"`.
10726
- *
10727
- * `interfaceType` is optional; only `"modal"` changes the result, so
10728
- * callers that aren't a modal can omit it.
10729
- *
10730
- * Used by `select-popover` and `select-modal` as the fallback when an
10731
- * option doesn't explicitly set `justify`.
10279
+ * IE doesn't always support .children
10280
+ * so we revert to .childNodes instead
10732
10281
  */
10733
- const getOverlayLabelJustify = (mode, control, interfaceType) => {
10734
- if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
10735
- return 'space-between';
10282
+ // TODO(FW-2832): type
10283
+ const getElementChildren = (el) => {
10284
+ return el.children != null ? el.children : el.childNodes;
10285
+ };
10286
+ const isSanitizerEnabled = () => {
10287
+ var _a;
10288
+ const win = window;
10289
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
10290
+ if (config) {
10291
+ if (config.get) {
10292
+ return config.get('sanitizerEnabled', true);
10293
+ }
10294
+ else {
10295
+ return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
10296
+ }
10736
10297
  }
10737
- return 'start';
10298
+ return true;
10738
10299
  };
10300
+ const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
10301
+ const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
10302
+ class IonicSafeString {
10303
+ constructor(value) {
10304
+ this.value = value;
10305
+ }
10306
+ }
10739
10307
 
10740
10308
  /**
10741
10309
  * iOS Alert Enter Animation
10742
10310
  */
10743
- const iosEnterAnimation$4 = (baseEl) => {
10311
+ const iosEnterAnimation$5 = (baseEl) => {
10744
10312
  const baseAnimation = createAnimation();
10745
10313
  const backdropAnimation = createAnimation();
10746
10314
  const wrapperAnimation = createAnimation();
@@ -10765,7 +10333,7 @@ const iosEnterAnimation$4 = (baseEl) => {
10765
10333
  /**
10766
10334
  * iOS Alert Leave Animation
10767
10335
  */
10768
- const iosLeaveAnimation$4 = (baseEl) => {
10336
+ const iosLeaveAnimation$5 = (baseEl) => {
10769
10337
  const baseAnimation = createAnimation();
10770
10338
  const backdropAnimation = createAnimation();
10771
10339
  const wrapperAnimation = createAnimation();
@@ -10822,9 +10390,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
10822
10390
  .addAnimation([backdropAnimation, wrapperAnimation]);
10823
10391
  };
10824
10392
 
10825
- const alertIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-ios,.alert-checkbox-label-text.sc-ion-alert-ios,.alert-radio-label-text.sc-ion-alert-ios,.select-option-label-text.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-ios{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-alert-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>svg.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>svg.sc-ion-alert-ios{width:44px;height:44px}.select-option-start.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-alert-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-alert-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;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;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-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}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-ios,.checkbox-label-placement-start.sc-ion-alert-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-ios,.checkbox-label-placement-end.sc-ion-alert-ios{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-ios,.checkbox-justify-start.sc-ion-alert-ios{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-ios,.checkbox-justify-end.sc-ion-alert-ios{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-ios,.checkbox-justify-space-between.sc-ion-alert-ios{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-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:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-negative:0;flex-shrink:0;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-end.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-end:7px}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-start.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;margin-top:10px;margin-bottom:10px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}.checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px}.checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:6px;margin-inline-start:6px;-webkit-margin-end:16px;margin-inline-end:16px}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-end:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
10393
+ const alertIosCss = () => `.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;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;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-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}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-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:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px;margin-top:10px;margin-bottom:10px;position:relative;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
10826
10394
 
10827
- const alertMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-md,.alert-checkbox-label-text.sc-ion-alert-md,.alert-radio-label-text.sc-ion-alert-md,.select-option-label-text.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-md,.select-option-end.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-md{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-alert-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-md [part~="label"],.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-md>ion-avatar.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-avatar.sc-ion-alert-md{width:40px;height:40px}.select-option-start.sc-ion-alert-md>ion-icon.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-icon.sc-ion-alert-md{width:24px;height:24px}.select-option-start.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md{width:56px;height:56px}.select-option-start.sc-ion-alert-md>video.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>video.sc-ion-alert-md{width:114px;height:56px}.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;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;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-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}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-md,.checkbox-label-placement-start.sc-ion-alert-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-md,.checkbox-label-placement-end.sc-ion-alert-md{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-md,.checkbox-justify-start.sc-ion-alert-md{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-md,.checkbox-justify-end.sc-ion-alert-md{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-md,.checkbox-justify-space-between.sc-ion-alert-md{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-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:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 20px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.radio-label-placement-end.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;-ms-flex-negative:0;flex-shrink:0;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.radio-label-placement-end.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-start:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-end:24px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 16px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-end:24px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-group.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
10395
+ const alertMdCss = () => `.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;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;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-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}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-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%;min-height:inherit}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-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:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.alert-radio-icon.sc-ion-alert-md{inset-inline-start:26px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;width:calc(100% - 53px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
10828
10396
 
10829
10397
  // TODO(FW-2832): types
10830
10398
  /**
@@ -10998,7 +10566,22 @@ class Alert {
10998
10566
  this.inputType = inputTypes.values().next().value;
10999
10567
  this.processedInputs = inputs.map((i, index) => {
11000
10568
  var _a;
11001
- return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
10569
+ return ({
10570
+ type: i.type || 'text',
10571
+ name: i.name || `${index}`,
10572
+ placeholder: i.placeholder || '',
10573
+ value: i.value,
10574
+ label: i.label,
10575
+ checked: !!i.checked,
10576
+ disabled: !!i.disabled,
10577
+ id: i.id || `alert-input-${this.overlayIndex}-${index}`,
10578
+ handler: i.handler,
10579
+ min: i.min,
10580
+ max: i.max,
10581
+ cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
10582
+ attributes: i.attributes || {},
10583
+ tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
10584
+ });
11002
10585
  });
11003
10586
  }
11004
10587
  connectedCallback() {
@@ -11026,10 +10609,6 @@ class Alert {
11026
10609
  this.gesture.destroy();
11027
10610
  this.gesture = undefined;
11028
10611
  }
11029
- // Clean up aria-hidden if removed without dismiss() being called
11030
- if (this.presented) {
11031
- cleanupRootFocusTrapAccessibility();
11032
- }
11033
10612
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
11034
10613
  this.buttonGroupResizeObserver = undefined;
11035
10614
  }
@@ -11069,7 +10648,7 @@ class Alert {
11069
10648
  async present() {
11070
10649
  const unlock = await this.lockController.lock();
11071
10650
  await this.delegateController.attachViewToDom();
11072
- await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10651
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
11073
10652
  var _a, _b;
11074
10653
  /**
11075
10654
  * Check if alert has only one button and no inputs.
@@ -11100,7 +10679,7 @@ class Alert {
11100
10679
  */
11101
10680
  async dismiss(data, role) {
11102
10681
  const unlock = await this.lockController.lock();
11103
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10682
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
11104
10683
  if (dismissed) {
11105
10684
  this.delegateController.removeViewFromDom();
11106
10685
  }
@@ -11198,61 +10777,14 @@ class Alert {
11198
10777
  if (inputs.length === 0) {
11199
10778
  return null;
11200
10779
  }
11201
- return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
11202
- var _a, _b;
11203
- /**
11204
- * Cast to `SelectAlertInput` to access rich content
11205
- * fields (`startContent`, `endContent`, `description`)
11206
- * that are passed through from `ion-select` but not
11207
- * part of the public `AlertInput` interface.
11208
- */
11209
- const richInput = i;
11210
- const optionLabelOptions = {
11211
- id: richInput.id,
11212
- label: richInput.label,
11213
- startContent: richInput.startContent,
11214
- endContent: richInput.endContent,
11215
- description: richInput.description,
11216
- };
11217
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
11218
- const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
11219
- return (hAsync("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: {
11220
- 'alert-button-inner': true,
11221
- [`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
11222
- [`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
11223
- } }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && hAsync("ion-ripple-effect", null)));
11224
- })));
10780
+ return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => (hAsync("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), hAsync("div", { class: "alert-checkbox-label" }, i.label)), mode === 'md' && hAsync("ion-ripple-effect", null))))));
11225
10781
  }
11226
10782
  renderRadio() {
11227
10783
  const inputs = this.processedInputs;
11228
- const mode = getIonMode$1(this);
11229
10784
  if (inputs.length === 0) {
11230
10785
  return null;
11231
10786
  }
11232
- return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
11233
- var _a, _b;
11234
- /**
11235
- * Cast to `SelectAlertInput` to access rich content
11236
- * fields (`startContent`, `endContent`, `description`)
11237
- * that are passed through from `ion-select` but not
11238
- * part of the public `AlertInput` interface.
11239
- */
11240
- const richInput = i;
11241
- const optionLabelOptions = {
11242
- id: richInput.id,
11243
- label: richInput.label,
11244
- startContent: richInput.startContent,
11245
- endContent: richInput.endContent,
11246
- description: richInput.description,
11247
- };
11248
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
11249
- const defaultJustify = getOverlayLabelJustify(mode, 'radio');
11250
- return (hAsync("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: {
11251
- 'alert-button-inner': true,
11252
- [`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
11253
- [`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
11254
- } }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
11255
- })));
10787
+ return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => (hAsync("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), hAsync("div", { class: "alert-radio-label" }, i.label)))))));
11256
10788
  }
11257
10789
  renderInput() {
11258
10790
  const inputs = this.processedInputs;
@@ -11332,7 +10864,7 @@ class Alert {
11332
10864
  'alert-button-group': true,
11333
10865
  'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
11334
10866
  };
11335
- return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$1(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10867
+ return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
11336
10868
  }
11337
10869
  renderAlertMessage(msgId) {
11338
10870
  const { customHTMLEnabled, message } = this;
@@ -11355,9 +10887,9 @@ class Alert {
11355
10887
  * If neither are defined, do not set aria-labelledby.
11356
10888
  */
11357
10889
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
11358
- return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
10890
+ return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
11359
10891
  zIndex: `${20000 + overlayIndex}`,
11360
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), hAsync("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (hAsync("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
10892
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
11361
10893
  }
11362
10894
  get el() { return getElement(this); }
11363
10895
  static get watchers() { return {
@@ -11415,7 +10947,7 @@ const inputClass = (input) => {
11415
10947
  var _a, _b, _c;
11416
10948
  return Object.assign(Object.assign({ 'alert-input': true, 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false }, getClassMap(input.cssClass)), getClassMap(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));
11417
10949
  };
11418
- const buttonClass$1 = (button) => {
10950
+ const buttonClass$2 = (button) => {
11419
10951
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
11420
10952
  };
11421
10953
 
@@ -19200,8 +18732,6 @@ const createColorClasses = (color) => {
19200
18732
  const imgCss = () => `:host{display:block;-o-object-fit:contain;object-fit:contain}img{display:block;width:100%;height:100%;-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit}`;
19201
18733
 
19202
18734
  /**
19203
- * @deprecated
19204
- *
19205
18735
  * @part image - The inner `img` element.
19206
18736
  */
19207
18737
  class Img {
@@ -19225,8 +18755,6 @@ class Img {
19225
18755
  this.inheritedAttributes = inheritAttributes$1(this.el, ['draggable']);
19226
18756
  }
19227
18757
  componentDidLoad() {
19228
- printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
19229
- 'Use a native <img> with the loading="lazy" attribute instead.', this.el);
19230
18758
  this.addIO();
19231
18759
  }
19232
18760
  disconnectedCallback() {
@@ -19279,7 +18807,7 @@ class Img {
19279
18807
  render() {
19280
18808
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
19281
18809
  const { draggable } = inheritedAttributes;
19282
- return (hAsync(Host, { key: '57bfb44d9850381fe7b6fcf0c9019b03f7ef86ec', class: getIonMode$1(this) }, hAsync("img", { key: '888ec06a266fa2751fc0147ede6a567f4e2b29a6', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
18810
+ return (hAsync(Host, { key: '9bfaa659b0680189fd29f3acb2fdce7f70be6060', class: getIonMode$1(this) }, hAsync("img", { key: 'd484beae0d5cbe0406958bfad40cdd6c05625340', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19283
18811
  }
19284
18812
  get el() { return getElement(this); }
19285
18813
  static get watchers() { return {
@@ -19783,7 +19311,7 @@ class Input {
19783
19311
  /**
19784
19312
  * Whether auto correction should be enabled when the user is entering/editing the text value.
19785
19313
  */
19786
- this.autocorrect = false;
19314
+ this.autocorrect = 'off';
19787
19315
  /**
19788
19316
  * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
19789
19317
  *
@@ -20240,7 +19768,7 @@ class Input {
20240
19768
  * TODO(FW-5592): Remove hasStartEndSlots condition
20241
19769
  */
20242
19770
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
20243
- return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
19771
+ return (hAsync(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses$1(this.color, {
20244
19772
  [mode]: true,
20245
19773
  'has-value': hasValue,
20246
19774
  'has-focus': hasFocus,
@@ -20251,14 +19779,14 @@ class Input {
20251
19779
  'in-item': inItem,
20252
19780
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20253
19781
  'input-disabled': disabled,
20254
- }) }, hAsync("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), hAsync("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', 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)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
19782
+ }) }, hAsync("label", { key: '74b989d0aa5ab38f29f952519868f05119df6005', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '47f2b42e2f74ea866b4f871026e08ab375d7a726', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'eaabe5a4a329a356cac3294d15c087d0d131fff2', name: "start" }), hAsync("input", Object.assign({ key: 'c821a984a8a9b7f96f30892c06d8deda093ff24b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, 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)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '62069c11016ee190dc46ab941372e1c4ad8a36ed', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
20255
19783
  /**
20256
19784
  * This prevents mobile browsers from
20257
19785
  * blurring the input when the clear
20258
19786
  * button is activated.
20259
19787
  */
20260
19788
  ev.preventDefault();
20261
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
19789
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'dd75a516d32110d85382b664c663bd41f177ce12', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '330d4b9389f2c62223a5ee24003e96ef3e6b2473', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8e442bed130ddc84976ab70fd3f8578d6bcc6316', class: "input-highlight" })), this.renderBottomContent()));
20262
19790
  }
20263
19791
  get el() { return getElement(this); }
20264
19792
  static get watchers() { return {
@@ -20286,7 +19814,7 @@ class Input {
20286
19814
  "color": [513],
20287
19815
  "autocapitalize": [1],
20288
19816
  "autocomplete": [1],
20289
- "autocorrect": [4],
19817
+ "autocorrect": [1],
20290
19818
  "autofocus": [4],
20291
19819
  "clearInput": [4, "clear-input"],
20292
19820
  "clearInputIcon": [1, "clear-input-icon"],
@@ -22290,7 +21818,7 @@ class ListHeader {
22290
21818
  /**
22291
21819
  * iOS Loading Enter Animation
22292
21820
  */
22293
- const iosEnterAnimation$3 = (baseEl) => {
21821
+ const iosEnterAnimation$4 = (baseEl) => {
22294
21822
  const baseAnimation = createAnimation();
22295
21823
  const backdropAnimation = createAnimation();
22296
21824
  const wrapperAnimation = createAnimation();
@@ -22315,7 +21843,7 @@ const iosEnterAnimation$3 = (baseEl) => {
22315
21843
  /**
22316
21844
  * iOS Loading Leave Animation
22317
21845
  */
22318
- const iosLeaveAnimation$3 = (baseEl) => {
21846
+ const iosLeaveAnimation$4 = (baseEl) => {
22319
21847
  const baseAnimation = createAnimation();
22320
21848
  const backdropAnimation = createAnimation();
22321
21849
  const wrapperAnimation = createAnimation();
@@ -22488,10 +22016,6 @@ class Loading {
22488
22016
  }
22489
22017
  disconnectedCallback() {
22490
22018
  this.triggerController.removeClickListener();
22491
- // Clean up aria-hidden if removed without dismiss() being called
22492
- if (this.presented) {
22493
- cleanupRootFocusTrapAccessibility();
22494
- }
22495
22019
  }
22496
22020
  /**
22497
22021
  * Present the loading overlay after it has been created.
@@ -22499,7 +22023,7 @@ class Loading {
22499
22023
  async present() {
22500
22024
  const unlock = await this.lockController.lock();
22501
22025
  await this.delegateController.attachViewToDom();
22502
- await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
22026
+ await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
22503
22027
  if (this.duration > 0) {
22504
22028
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
22505
22029
  }
@@ -22522,7 +22046,7 @@ class Loading {
22522
22046
  if (this.durationTimeout) {
22523
22047
  clearTimeout(this.durationTimeout);
22524
22048
  }
22525
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
22049
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
22526
22050
  if (dismissed) {
22527
22051
  this.delegateController.removeViewFromDom();
22528
22052
  }
@@ -22557,9 +22081,9 @@ class Loading {
22557
22081
  * Otherwise, don't set aria-labelledby.
22558
22082
  */
22559
22083
  const ariaLabelledBy = message !== undefined ? msgId : null;
22560
- return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22084
+ return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22561
22085
  zIndex: `${40000 + this.overlayIndex}`,
22562
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
22086
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, hAsync("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
22563
22087
  }
22564
22088
  get el() { return getElement(this); }
22565
22089
  static get watchers() { return {
@@ -24833,7 +24357,7 @@ const createEnterAnimation$1 = () => {
24833
24357
  /**
24834
24358
  * iOS Modal Enter Animation for the Card presentation style
24835
24359
  */
24836
- const iosEnterAnimation$2 = (baseEl, opts) => {
24360
+ const iosEnterAnimation$3 = (baseEl, opts) => {
24837
24361
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24838
24362
  const root = getElementRoot(baseEl);
24839
24363
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24926,7 +24450,7 @@ const createLeaveAnimation$1 = () => {
24926
24450
  /**
24927
24451
  * iOS Modal Leave Animation
24928
24452
  */
24929
- const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24453
+ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24930
24454
  const { presentingEl, currentBreakpoint } = opts;
24931
24455
  const root = getElementRoot(baseEl);
24932
24456
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -26029,9 +25553,9 @@ const clearSafeAreaOverrides = (hostEl) => {
26029
25553
  hostEl.style.removeProperty('--ion-safe-area-right');
26030
25554
  };
26031
25555
 
26032
- 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-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}`;
25556
+ 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}`;
26033
25557
 
26034
- 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-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}`;
25558
+ 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}`;
26035
25559
 
26036
25560
  // TODO(FW-2832): types
26037
25561
  /**
@@ -26101,20 +25625,13 @@ class Modal {
26101
25625
  /**
26102
25626
  * The interaction behavior for the sheet modal when the handle is pressed.
26103
25627
  *
26104
- * Handle behavior is unavailable when the `handle` property is set to
26105
- * `false` or when the `breakpoints` property is not set (using a
26106
- * fullscreen or card modal).
26107
- *
26108
- * Set to `"cycle"` to make the handle focusable and let the sheet modal
26109
- * cycle between available breakpoints when pressed. This keeps the sheet
26110
- * operable with assistive technology.
26111
- *
26112
- * Set to `"none"` to make the handle purely decorative when pressed and
26113
- * removed from the tab order.
25628
+ * Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
25629
+ * Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
26114
25630
  *
26115
- * Defaults to `"cycle"`.
25631
+ * Handle behavior is unavailable when the `handle` property is set to `false` or
25632
+ * when the `breakpoints` property is not set (using a fullscreen or card modal).
26116
25633
  */
26117
- this.handleBehavior = 'cycle';
25634
+ this.handleBehavior = 'none';
26118
25635
  /**
26119
25636
  * If `true`, the modal will be dismissed when the backdrop is clicked.
26120
25637
  */
@@ -26306,10 +25823,6 @@ class Modal {
26306
25823
  // Also called in dismiss() — intentional dual cleanup covers both
26307
25824
  // dismiss-then-remove and direct DOM removal without dismiss.
26308
25825
  this.cleanupSafeAreaOverrides();
26309
- // Clean up aria-hidden if removed without dismiss() being called
26310
- if (this.presented) {
26311
- cleanupRootFocusTrapAccessibility();
26312
- }
26313
25826
  }
26314
25827
  componentWillLoad() {
26315
25828
  var _a;
@@ -26486,7 +25999,7 @@ class Modal {
26486
25999
  this.statusBarStyle = await StatusBar.getStyle();
26487
26000
  setCardStatusBarDark();
26488
26001
  }
26489
- await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
26002
+ await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
26490
26003
  presentingEl: presentingElement,
26491
26004
  currentBreakpoint: this.initialBreakpoint,
26492
26005
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26548,7 +26061,7 @@ class Modal {
26548
26061
  // All of the elements needed for the swipe gesture
26549
26062
  // should be in the DOM and referenced by now, except
26550
26063
  // for the presenting el
26551
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
26064
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
26552
26065
  const ani = (this.animation = animationBuilder(el, {
26553
26066
  presentingEl: this.presentingElement,
26554
26067
  expandToScroll: this.expandToScroll,
@@ -26567,7 +26080,7 @@ class Modal {
26567
26080
  if (!wrapperEl || initialBreakpoint === undefined) {
26568
26081
  return;
26569
26082
  }
26570
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
26083
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
26571
26084
  const ani = (this.animation = animationBuilder(this.el, {
26572
26085
  presentingEl: this.presentingElement,
26573
26086
  currentBreakpoint: initialBreakpoint,
@@ -26757,7 +26270,7 @@ class Modal {
26757
26270
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
26758
26271
  this.keyboardOpenCallback = undefined;
26759
26272
  }
26760
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
26273
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
26761
26274
  presentingEl: presentingElement,
26762
26275
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
26763
26276
  backdropBreakpoint: this.backdropBreakpoint,
@@ -27189,20 +26702,26 @@ class Modal {
27189
26702
  const isCardModal = presentingElement !== undefined && mode === 'ios';
27190
26703
  const isHandleCycle = handleBehavior === 'cycle';
27191
26704
  const isSheetModalWithHandle = isSheetModal && showHandle;
27192
- return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
26705
+ return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
27193
26706
  // Allow the modal to be navigable when the handle is focusable
27194
26707
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
27195
26708
  zIndex: `${20000 + this.overlayIndex}`,
27196
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '53983c96bc6b30df89986c8d9c978a8e6f78fe80', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '34288a7343b7c47fed00d3abc73957f45f06d2fd', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'f9b37f547bd5c61037bbad1a71bfed80ba8c630b',
26709
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '5ba6315c7c8c64fa04c62f85fd493da5275b2cbd', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a76c48d41c67f86c18a7481e980e6925e614f85d', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'dccf3c774355429bc0ea7461d9b1ef941ea91902',
27197
26710
  /*
27198
26711
  role and aria-modal must be used on the
27199
26712
  same element. They must also be set inside the
27200
26713
  shadow DOM otherwise ion-button will not be highlighted
27201
26714
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26715
+
26716
+ tabIndex={-1} is required so present() can move focus to this
26717
+ element (which carries the dialog role) instead of the role-less
26718
+ host. role="dialog" alone does not make an element focusable, so
26719
+ without the tabindex focus() would be a no-op and screen readers
26720
+ may not properly announce the dialog and its content when it opens.
27202
26721
  */
27203
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b8741594108d3ea681ff41ff8f2241a4119578b1', class: "modal-handle",
26722
+ 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: 'ba4ebd6364faba46ac8532d1c83cb655ae873a14', class: "modal-handle",
27204
26723
  // Prevents the handle from receiving keyboard focus when it does not cycle
27205
- 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: 'bcc7960fae3fed09076c704d08c3afc46caa0738', onSlotchange: this.onSlotChange }))));
26724
+ 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: '11d5921a8ebbcd0017d4f28a33d68049253f63f0', onSlotchange: this.onSlotChange }))));
27206
26725
  }
27207
26726
  get el() { return getElement(this); }
27208
26727
  static get watchers() { return {
@@ -27305,6 +26824,15 @@ class ViewController {
27305
26824
  this.state = VIEW_STATE_DESTROYED;
27306
26825
  }
27307
26826
  }
26827
+ const matches = (view, id, params) => {
26828
+ if (!view) {
26829
+ return false;
26830
+ }
26831
+ if (view.component !== id) {
26832
+ return false;
26833
+ }
26834
+ return shallowEqualStringMap(view.params, params);
26835
+ };
27308
26836
  const convertToView = (page, params) => {
27309
26837
  if (!page) {
27310
26838
  return null;
@@ -27338,6 +26866,7 @@ class Nav {
27338
26866
  this.ionNavDidChange = createEvent(this, "ionNavDidChange", 3);
27339
26867
  this.transInstr = [];
27340
26868
  this.gestureOrAnimationInProgress = false;
26869
+ this.useRouter = false;
27341
26870
  this.isTransitioning = false;
27342
26871
  this.destroyed = false;
27343
26872
  this.views = [];
@@ -27363,9 +26892,14 @@ class Nav {
27363
26892
  */
27364
26893
  return;
27365
26894
  }
27366
- this.setRoot(this.root, this.rootParams);
26895
+ if (!this.useRouter) {
26896
+ if (this.root !== undefined) {
26897
+ this.setRoot(this.root, this.rootParams);
26898
+ }
26899
+ }
27367
26900
  }
27368
26901
  componentWillLoad() {
26902
+ this.useRouter = document.querySelector('ion-router') !== null && this.el.closest('[no-router]') === null;
27369
26903
  if (this.swipeGesture === undefined) {
27370
26904
  const mode = getIonMode$1(this);
27371
26905
  this.swipeGesture = config.getBoolean('swipeBackEnabled', mode === 'ios');
@@ -27530,6 +27064,78 @@ class Nav {
27530
27064
  opts,
27531
27065
  }, done);
27532
27066
  }
27067
+ /**
27068
+ * Called by the router to update the view.
27069
+ *
27070
+ * @param id The component tag.
27071
+ * @param params The component params.
27072
+ * @param direction A direction hint.
27073
+ * @param animation an AnimationBuilder.
27074
+ *
27075
+ * @return the status.
27076
+ * @internal
27077
+ */
27078
+ setRouteId(id, params, direction, animation) {
27079
+ const active = this.getActiveSync();
27080
+ if (matches(active, id, params)) {
27081
+ return Promise.resolve({
27082
+ changed: false,
27083
+ element: active.element,
27084
+ });
27085
+ }
27086
+ let resolve;
27087
+ const promise = new Promise((r) => (resolve = r));
27088
+ let finish;
27089
+ const commonOpts = {
27090
+ updateURL: false,
27091
+ viewIsReady: (enteringEl) => {
27092
+ let mark;
27093
+ const p = new Promise((r) => (mark = r));
27094
+ resolve({
27095
+ changed: true,
27096
+ element: enteringEl,
27097
+ markVisible: async () => {
27098
+ mark();
27099
+ await finish;
27100
+ },
27101
+ });
27102
+ return p;
27103
+ },
27104
+ };
27105
+ if (direction === 'root') {
27106
+ finish = this.setRoot(id, params, commonOpts);
27107
+ }
27108
+ else {
27109
+ // Look for a view matching the target in the view stack.
27110
+ const viewController = this.views.find((v) => matches(v, id, params));
27111
+ if (viewController) {
27112
+ finish = this.popTo(viewController, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animationBuilder: animation }));
27113
+ }
27114
+ else if (direction === 'forward') {
27115
+ finish = this.push(id, params, Object.assign(Object.assign({}, commonOpts), { animationBuilder: animation }));
27116
+ }
27117
+ else if (direction === 'back') {
27118
+ finish = this.setRoot(id, params, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animated: true, animationBuilder: animation }));
27119
+ }
27120
+ }
27121
+ return promise;
27122
+ }
27123
+ /**
27124
+ * Called by <ion-router> to retrieve the current component.
27125
+ *
27126
+ * @internal
27127
+ */
27128
+ async getRouteId() {
27129
+ const active = this.getActiveSync();
27130
+ if (active) {
27131
+ return {
27132
+ id: active.element.tagName,
27133
+ params: active.params,
27134
+ element: active.element,
27135
+ };
27136
+ }
27137
+ return undefined;
27138
+ }
27533
27139
  /**
27534
27140
  * Get the active view.
27535
27141
  */
@@ -27595,6 +27201,25 @@ class Nav {
27595
27201
  ti.reject = reject;
27596
27202
  });
27597
27203
  ti.done = done;
27204
+ /**
27205
+ * If using router, check to see if navigation hooks
27206
+ * will allow us to perform this transition. This
27207
+ * is required in order for hooks to work with
27208
+ * the ion-back-button or swipe to go back.
27209
+ */
27210
+ if (ti.opts && ti.opts.updateURL !== false && this.useRouter) {
27211
+ const router = document.querySelector('ion-router');
27212
+ if (router) {
27213
+ const canTransition = await router.canTransition();
27214
+ if (canTransition === false) {
27215
+ return false;
27216
+ }
27217
+ if (typeof canTransition === 'string') {
27218
+ router.push(canTransition, ti.opts.direction || 'back');
27219
+ return false;
27220
+ }
27221
+ }
27222
+ }
27598
27223
  // Normalize empty
27599
27224
  if (((_b = ti.insertViews) === null || _b === void 0 ? void 0 : _b.length) === 0) {
27600
27225
  ti.insertViews = undefined;
@@ -27615,6 +27240,13 @@ class Nav {
27615
27240
  ti.done(result.hasCompleted, result.requiresTransition, result.enteringView, result.leavingView, result.direction);
27616
27241
  }
27617
27242
  ti.resolve(result.hasCompleted);
27243
+ if (ti.opts.updateURL !== false && this.useRouter) {
27244
+ const router = document.querySelector('ion-router');
27245
+ if (router) {
27246
+ const direction = result.direction === 'back' ? 'back' : 'forward';
27247
+ router.navChanged(direction);
27248
+ }
27249
+ }
27618
27250
  }
27619
27251
  failed(rejectReason, ti) {
27620
27252
  if (this.destroyed) {
@@ -28044,7 +27676,7 @@ class Nav {
28044
27676
  }
28045
27677
  }
28046
27678
  render() {
28047
- return hAsync("slot", { key: 'bb4a201a3a8079548f5474ff42293b28fc7599fb' });
27679
+ return hAsync("slot", { key: 'a549286b51b1bb23c9ef51f71148452228d0ab14' });
28048
27680
  }
28049
27681
  get el() { return getElement(this); }
28050
27682
  static get watchers() { return {
@@ -28075,6 +27707,8 @@ class Nav {
28075
27707
  "removeIndex": [64],
28076
27708
  "setRoot": [64],
28077
27709
  "setPages": [64],
27710
+ "setRouteId": [64],
27711
+ "getRouteId": [64],
28078
27712
  "getActive": [64],
28079
27713
  "getByIndex": [64],
28080
27714
  "canGoBack": [64],
@@ -28170,14 +27804,14 @@ class Note {
28170
27804
  }; }
28171
27805
  }
28172
27806
 
28173
- const pickerIosCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{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}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
27807
+ const pickerIosCss$1 = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{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}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), to(rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0.8) 100%)}:host .picker-highlight{background:var(--highlight-background, var(--ion-color-step-150, var(--ion-background-color-step-150, #eeeeef)))}`;
28174
27808
 
28175
- const pickerMdCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{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}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}`;
27809
+ const pickerMdCss$1 = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:200px;direction:ltr;z-index:0}:host .picker-before,:host .picker-after{position:absolute;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1;pointer-events:none}:host .picker-before{top:0;height:83px}:host .picker-before{inset-inline-start:0}:host .picker-after{top:116px;height:84px}:host .picker-after{inset-inline-start:0}:host .picker-highlight{border-radius:var(--highlight-border-radius, 8px);left:0;right:0;top:50%;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0;position:absolute;width:calc(100% - 16px);height:34px;-webkit-transform:translateY(-50%);transform:translateY(-50%);background:var(--highlight-background);z-index:-1}:host input{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}:host ::slotted(ion-picker-column:first-of-type){text-align:start}:host ::slotted(ion-picker-column:last-of-type){text-align:end}:host ::slotted(ion-picker-column:only-child){text-align:center}:host .picker-before{background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to bottom, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 20%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}:host .picker-after{background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1)), color-stop(90%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0)));background:linear-gradient(to top, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 1) 30%, rgba(var(--fade-background-rgb, var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255))), 0) 90%)}`;
28176
27810
 
28177
27811
  /**
28178
27812
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28179
27813
  */
28180
- class Picker {
27814
+ let Picker$1 = class Picker {
28181
27815
  constructor(hostRef) {
28182
27816
  registerInstance(this, hostRef);
28183
27817
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -28643,8 +28277,8 @@ class Picker {
28643
28277
  }
28644
28278
  get el() { return getElement(this); }
28645
28279
  static get style() { return {
28646
- ios: pickerIosCss(),
28647
- md: pickerMdCss()
28280
+ ios: pickerIosCss$1(),
28281
+ md: pickerMdCss$1()
28648
28282
  }; }
28649
28283
  static get cmpMeta() { return {
28650
28284
  "$flags$": 297,
@@ -28656,17 +28290,332 @@ class Picker {
28656
28290
  "$lazyBundleId$": "-",
28657
28291
  "$attrsToReflect$": []
28658
28292
  }; }
28659
- }
28293
+ };
28660
28294
 
28661
- const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
28295
+ /**
28296
+ * iOS Picker Enter Animation
28297
+ */
28298
+ const iosEnterAnimation$2 = (baseEl) => {
28299
+ const baseAnimation = createAnimation();
28300
+ const backdropAnimation = createAnimation();
28301
+ const wrapperAnimation = createAnimation();
28302
+ backdropAnimation
28303
+ .addElement(baseEl.querySelector('ion-backdrop'))
28304
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
28305
+ .beforeStyles({
28306
+ 'pointer-events': 'none',
28307
+ })
28308
+ .afterClearStyles(['pointer-events']);
28309
+ wrapperAnimation
28310
+ .addElement(baseEl.querySelector('.picker-wrapper'))
28311
+ .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
28312
+ return baseAnimation
28313
+ .addElement(baseEl)
28314
+ .easing('cubic-bezier(.36,.66,.04,1)')
28315
+ .duration(400)
28316
+ .addAnimation([backdropAnimation, wrapperAnimation]);
28317
+ };
28662
28318
 
28663
28319
  /**
28664
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28665
- *
28666
- * @slot prefix - Content to show on the left side of the picker options.
28667
- * @slot suffix - Content to show on the right side of the picker options.
28320
+ * iOS Picker Leave Animation
28668
28321
  */
28669
- class PickerColumn {
28322
+ const iosLeaveAnimation$2 = (baseEl) => {
28323
+ const baseAnimation = createAnimation();
28324
+ const backdropAnimation = createAnimation();
28325
+ const wrapperAnimation = createAnimation();
28326
+ backdropAnimation
28327
+ .addElement(baseEl.querySelector('ion-backdrop'))
28328
+ .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
28329
+ wrapperAnimation
28330
+ .addElement(baseEl.querySelector('.picker-wrapper'))
28331
+ .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
28332
+ return baseAnimation
28333
+ .addElement(baseEl)
28334
+ .easing('cubic-bezier(.36,.66,.04,1)')
28335
+ .duration(400)
28336
+ .addAnimation([backdropAnimation, wrapperAnimation]);
28337
+ };
28338
+
28339
+ const pickerIosCss = () => `.sc-ion-picker-legacy-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-ios-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-ios-h{display:none}.picker-wrapper.sc-ion-picker-legacy-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;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);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-ios:active,.picker-button.sc-ion-picker-legacy-ios:focus{outline:none}.picker-columns.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-ios,.picker-below-highlight.sc-ion-picker-legacy-ios{display:none;pointer-events:none}.sc-ion-picker-legacy-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-legacy-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-legacy-ios:last-child .picker-button.sc-ion-picker-legacy-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-legacy-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-legacy-ios,.picker-button.ion-activated.sc-ion-picker-legacy-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:16px}.picker-columns.sc-ion-picker-legacy-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-legacy-ios{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-ios{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-ios{inset-inline-start:0}`;
28340
+
28341
+ const pickerMdCss = () => `.sc-ion-picker-legacy-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.sc-ion-picker-legacy-md-h{inset-inline-start:0}.overlay-hidden.sc-ion-picker-legacy-md-h{display:none}.picker-wrapper.sc-ion-picker-legacy-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;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);contain:strict;overflow:hidden;z-index:10}.picker-toolbar.sc-ion-picker-legacy-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-legacy-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-legacy-md:active,.picker-button.sc-ion-picker-legacy-md:focus{outline:none}.picker-columns.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;overflow:hidden}.picker-above-highlight.sc-ion-picker-legacy-md,.picker-below-highlight.sc-ion-picker-legacy-md{display:none;pointer-events:none}.sc-ion-picker-legacy-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--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)))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-legacy-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-legacy-md,.picker-button.ion-activated.sc-ion-picker-legacy-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #0054e9);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}.picker-columns.sc-ion-picker-legacy-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-legacy-md{top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid 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)))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}.picker-above-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}.picker-below-highlight.sc-ion-picker-legacy-md{top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid 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)))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}.picker-below-highlight.sc-ion-picker-legacy-md{inset-inline-start:0}`;
28342
+
28343
+ // TODO(FW-2832): types
28344
+ /**
28345
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28346
+ */
28347
+ class Picker {
28348
+ constructor(hostRef) {
28349
+ registerInstance(this, hostRef);
28350
+ this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
28351
+ this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
28352
+ this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
28353
+ this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
28354
+ this.didPresentShorthand = createEvent(this, "didPresent", 7);
28355
+ this.willPresentShorthand = createEvent(this, "willPresent", 7);
28356
+ this.willDismissShorthand = createEvent(this, "willDismiss", 7);
28357
+ this.didDismissShorthand = createEvent(this, "didDismiss", 7);
28358
+ this.delegateController = createDelegateController(this);
28359
+ this.lockController = createLockController();
28360
+ this.triggerController = createTriggerController();
28361
+ this.presented = false;
28362
+ /** @internal */
28363
+ this.hasController = false;
28364
+ /**
28365
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
28366
+ */
28367
+ this.keyboardClose = true;
28368
+ /**
28369
+ * Array of buttons to be displayed at the top of the picker.
28370
+ */
28371
+ this.buttons = [];
28372
+ /**
28373
+ * Array of columns to be displayed in the picker.
28374
+ */
28375
+ this.columns = [];
28376
+ /**
28377
+ * Number of milliseconds to wait before dismissing the picker.
28378
+ */
28379
+ this.duration = 0;
28380
+ /**
28381
+ * If `true`, a backdrop will be displayed behind the picker.
28382
+ */
28383
+ this.showBackdrop = true;
28384
+ /**
28385
+ * If `true`, the picker will be dismissed when the backdrop is clicked.
28386
+ */
28387
+ this.backdropDismiss = true;
28388
+ /**
28389
+ * If `true`, the picker will animate.
28390
+ */
28391
+ this.animated = true;
28392
+ /**
28393
+ * If `true`, the picker will open. If `false`, the picker will close.
28394
+ * Use this if you need finer grained control over presentation, otherwise
28395
+ * just use the pickerController or the `trigger` property.
28396
+ * Note: `isOpen` will not automatically be set back to `false` when
28397
+ * the picker dismisses. You will need to do that in your code.
28398
+ */
28399
+ this.isOpen = false;
28400
+ this.onBackdropTap = () => {
28401
+ this.dismiss(undefined, BACKDROP);
28402
+ };
28403
+ this.dispatchCancelHandler = (ev) => {
28404
+ const role = ev.detail.role;
28405
+ if (isCancel(role)) {
28406
+ const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28407
+ this.callButtonHandler(cancelButton);
28408
+ }
28409
+ };
28410
+ }
28411
+ onIsOpenChange(newValue, oldValue) {
28412
+ if (newValue === true && oldValue === false) {
28413
+ this.present();
28414
+ }
28415
+ else if (newValue === false && oldValue === true) {
28416
+ this.dismiss();
28417
+ }
28418
+ }
28419
+ triggerChanged() {
28420
+ const { trigger, el, triggerController } = this;
28421
+ if (trigger) {
28422
+ triggerController.addClickListener(el, trigger);
28423
+ }
28424
+ }
28425
+ connectedCallback() {
28426
+ prepareOverlay(this.el);
28427
+ this.triggerChanged();
28428
+ }
28429
+ disconnectedCallback() {
28430
+ this.triggerController.removeClickListener();
28431
+ }
28432
+ componentWillLoad() {
28433
+ var _a;
28434
+ if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28435
+ setOverlayId(this.el);
28436
+ }
28437
+ }
28438
+ componentDidLoad() {
28439
+ printIonWarning('[ion-picker-legacy] - ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
28440
+ /**
28441
+ * If picker was rendered with isOpen="true"
28442
+ * then we should open picker immediately.
28443
+ */
28444
+ if (this.isOpen === true) {
28445
+ raf(() => this.present());
28446
+ }
28447
+ /**
28448
+ * When binding values in frameworks such as Angular
28449
+ * it is possible for the value to be set after the Web Component
28450
+ * initializes but before the value watcher is set up in Stencil.
28451
+ * As a result, the watcher callback may not be fired.
28452
+ * We work around this by manually calling the watcher
28453
+ * callback when the component has loaded and the watcher
28454
+ * is configured.
28455
+ */
28456
+ this.triggerChanged();
28457
+ }
28458
+ /**
28459
+ * Present the picker overlay after it has been created.
28460
+ */
28461
+ async present() {
28462
+ const unlock = await this.lockController.lock();
28463
+ await this.delegateController.attachViewToDom();
28464
+ await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28465
+ if (this.duration > 0) {
28466
+ this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28467
+ }
28468
+ unlock();
28469
+ }
28470
+ /**
28471
+ * Dismiss the picker overlay after it has been presented.
28472
+ *
28473
+ * @param data Any data to emit in the dismiss events.
28474
+ * @param role The role of the element that is dismissing the picker.
28475
+ * This can be useful in a button handler for determining which button was
28476
+ * clicked to dismiss the picker.
28477
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28478
+ */
28479
+ async dismiss(data, role) {
28480
+ const unlock = await this.lockController.lock();
28481
+ if (this.durationTimeout) {
28482
+ clearTimeout(this.durationTimeout);
28483
+ }
28484
+ const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28485
+ if (dismissed) {
28486
+ this.delegateController.removeViewFromDom();
28487
+ }
28488
+ unlock();
28489
+ return dismissed;
28490
+ }
28491
+ /**
28492
+ * Returns a promise that resolves when the picker did dismiss.
28493
+ */
28494
+ onDidDismiss() {
28495
+ return eventMethod(this.el, 'ionPickerDidDismiss');
28496
+ }
28497
+ /**
28498
+ * Returns a promise that resolves when the picker will dismiss.
28499
+ */
28500
+ onWillDismiss() {
28501
+ return eventMethod(this.el, 'ionPickerWillDismiss');
28502
+ }
28503
+ /**
28504
+ * Get the column that matches the specified name.
28505
+ *
28506
+ * @param name The name of the column.
28507
+ */
28508
+ getColumn(name) {
28509
+ return Promise.resolve(this.columns.find((column) => column.name === name));
28510
+ }
28511
+ async buttonClick(button) {
28512
+ const role = button.role;
28513
+ if (isCancel(role)) {
28514
+ return this.dismiss(undefined, role);
28515
+ }
28516
+ const shouldDismiss = await this.callButtonHandler(button);
28517
+ if (shouldDismiss) {
28518
+ return this.dismiss(this.getSelected(), button.role);
28519
+ }
28520
+ return Promise.resolve();
28521
+ }
28522
+ async callButtonHandler(button) {
28523
+ if (button) {
28524
+ // a handler has been provided, execute it
28525
+ // pass the handler the values from the inputs
28526
+ const rtn = await safeCall(button.handler, this.getSelected());
28527
+ if (rtn === false) {
28528
+ // if the return value of the handler is false then do not dismiss
28529
+ return false;
28530
+ }
28531
+ }
28532
+ return true;
28533
+ }
28534
+ getSelected() {
28535
+ const selected = {};
28536
+ this.columns.forEach((col, index) => {
28537
+ const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28538
+ selected[col.name] = {
28539
+ text: selectedColumn ? selectedColumn.text : undefined,
28540
+ value: selectedColumn ? selectedColumn.value : undefined,
28541
+ columnIndex: index,
28542
+ };
28543
+ });
28544
+ return selected;
28545
+ }
28546
+ render() {
28547
+ const { htmlAttributes } = this;
28548
+ const mode = getIonMode$1(this);
28549
+ return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28550
+ zIndex: `${20000 + this.overlayIndex}`,
28551
+ }, class: Object.assign({ [mode]: true,
28552
+ // Used internally for styling
28553
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '97fb8e10ba08b197610cb8c0cdea61103883d55f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'b3969cb6fbf7153623d14e3ca1493d3370efb211', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '299268483c3727e698d9135bfdf40349a7050ac1', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '95394de3ef691899b7dbf416f56fd3e86bbdce3f', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '05f18bb8d00dc0e22f691b7e41f90f729a6c66d7', class: "picker-columns" }, hAsync("div", { key: '4a8fdf224effc0af67fd413e2e6aca8a78d1cf43', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'e50a31db45e3f39e9d0fed36a21be9257eec09bf', class: "picker-below-highlight" }))), hAsync("div", { key: '5a78cb2176ac807ea0c195c6b76cd0e8eef9d4c0', tabindex: "0", "aria-hidden": "true" })));
28554
+ }
28555
+ get el() { return getElement(this); }
28556
+ static get watchers() { return {
28557
+ "isOpen": [{
28558
+ "onIsOpenChange": 0
28559
+ }],
28560
+ "trigger": [{
28561
+ "triggerChanged": 0
28562
+ }]
28563
+ }; }
28564
+ static get style() { return {
28565
+ ios: pickerIosCss(),
28566
+ md: pickerMdCss()
28567
+ }; }
28568
+ static get cmpMeta() { return {
28569
+ "$flags$": 34,
28570
+ "$tagName$": "ion-picker-legacy",
28571
+ "$members$": {
28572
+ "overlayIndex": [2, "overlay-index"],
28573
+ "delegate": [16],
28574
+ "hasController": [4, "has-controller"],
28575
+ "keyboardClose": [4, "keyboard-close"],
28576
+ "enterAnimation": [16],
28577
+ "leaveAnimation": [16],
28578
+ "buttons": [16],
28579
+ "columns": [16],
28580
+ "cssClass": [1, "css-class"],
28581
+ "duration": [2],
28582
+ "showBackdrop": [4, "show-backdrop"],
28583
+ "backdropDismiss": [4, "backdrop-dismiss"],
28584
+ "animated": [4],
28585
+ "htmlAttributes": [16],
28586
+ "isOpen": [4, "is-open"],
28587
+ "trigger": [1],
28588
+ "presented": [32],
28589
+ "present": [64],
28590
+ "dismiss": [64],
28591
+ "onDidDismiss": [64],
28592
+ "onWillDismiss": [64],
28593
+ "getColumn": [64]
28594
+ },
28595
+ "$listeners$": undefined,
28596
+ "$lazyBundleId$": "-",
28597
+ "$attrsToReflect$": []
28598
+ }; }
28599
+ }
28600
+ const buttonWrapperClass = (button) => {
28601
+ return {
28602
+ [`picker-toolbar-${button.role}`]: button.role !== undefined,
28603
+ 'picker-toolbar-button': true,
28604
+ };
28605
+ };
28606
+ const buttonClass$1 = (button) => {
28607
+ return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28608
+ };
28609
+
28610
+ const pickerColumnCss = () => `:host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}`;
28611
+
28612
+ /**
28613
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28614
+ *
28615
+ * @slot prefix - Content to show on the left side of the picker options.
28616
+ * @slot suffix - Content to show on the right side of the picker options.
28617
+ */
28618
+ class PickerColumn {
28670
28619
  constructor(hostRef) {
28671
28620
  registerInstance(this, hostRef);
28672
28621
  this.ionChange = createEvent(this, "ionChange", 7);
@@ -29159,89 +29108,454 @@ class PickerColumn {
29159
29108
  this.centerPickerItemInView(activeEl, smooth, false);
29160
29109
  }
29161
29110
  }
29162
- /**
29163
- * Sets the value prop and fires the ionChange event.
29164
- * This is used when we need to fire ionChange from
29165
- * user-generated events that cannot be caught with normal
29166
- * input/change event listeners.
29167
- * @internal
29168
- */
29169
- async setValue(value) {
29170
- if (this.disabled === true || this.value === value) {
29111
+ /**
29112
+ * Sets the value prop and fires the ionChange event.
29113
+ * This is used when we need to fire ionChange from
29114
+ * user-generated events that cannot be caught with normal
29115
+ * input/change event listeners.
29116
+ * @internal
29117
+ */
29118
+ async setValue(value) {
29119
+ if (this.disabled === true || this.value === value) {
29120
+ return;
29121
+ }
29122
+ this.value = value;
29123
+ this.ionChange.emit({ value });
29124
+ }
29125
+ /**
29126
+ * Sets focus on the scrollable container within the picker column.
29127
+ * Use this method instead of the global `pickerColumn.focus()`.
29128
+ */
29129
+ async setFocus() {
29130
+ if (this.assistiveFocusable) {
29131
+ this.assistiveFocusable.focus();
29132
+ }
29133
+ }
29134
+ connectedCallback() {
29135
+ var _a;
29136
+ this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
29137
+ }
29138
+ get activeItem() {
29139
+ const { value } = this;
29140
+ const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
29141
+ return options.find((option) => {
29142
+ /**
29143
+ * If the whole picker column is disabled, the current value should appear active
29144
+ * If the current value item is specifically disabled, it should not appear active
29145
+ */
29146
+ if (!this.disabled && option.disabled) {
29147
+ return false;
29148
+ }
29149
+ return option.value === value;
29150
+ });
29151
+ }
29152
+ render() {
29153
+ const { color, disabled, isActive, numericInput } = this;
29154
+ const mode = getIonMode$1(this);
29155
+ return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
29156
+ [mode]: true,
29157
+ ['picker-column-active']: isActive,
29158
+ ['picker-column-numeric-input']: numericInput,
29159
+ ['picker-column-disabled']: disabled,
29160
+ }) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
29161
+ this.scrollEl = el;
29162
+ }, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '5297617462cc30e9444039ae032d8bdf718349af', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '55ea39ef867bcb1a11a912d52ecd20cb886c5fb3', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '3496730ce6182ebfd33e0ee4bafc130feb575a31', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '44c3628aa957d60f799dc7019f72fe8b676c7843' }), hAsync("div", { key: '5a1809f6c949678a67e0d4b5bfe93ea335c0161d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '98fd57f1c66dbaebc2db2dd5da142671b3159fd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '85590708abddfa885994e549deac64866fec938f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'bb7e674f543696a80fcbfb1f68f2e975826898a6', name: "suffix" })));
29163
+ }
29164
+ get el() { return getElement(this); }
29165
+ static get watchers() { return {
29166
+ "aria-label": [{
29167
+ "ariaLabelChanged": 0
29168
+ }],
29169
+ "value": [{
29170
+ "valueChange": 0
29171
+ }]
29172
+ }; }
29173
+ static get style() { return pickerColumnCss(); }
29174
+ static get cmpMeta() { return {
29175
+ "$flags$": 265,
29176
+ "$tagName$": "ion-picker-column",
29177
+ "$members$": {
29178
+ "disabled": [4],
29179
+ "value": [1032],
29180
+ "color": [513],
29181
+ "numericInput": [4, "numeric-input"],
29182
+ "ariaLabel": [32],
29183
+ "isActive": [32],
29184
+ "scrollActiveItemIntoView": [64],
29185
+ "setValue": [64],
29186
+ "setFocus": [64]
29187
+ },
29188
+ "$listeners$": undefined,
29189
+ "$lazyBundleId$": "-",
29190
+ "$attrsToReflect$": [["color", "color"]]
29191
+ }; }
29192
+ }
29193
+ const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29194
+
29195
+ const pickerColumnIosCss = () => `.picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}[dir=rtl] .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}@supports selector(:dir(rtl)){.picker-opt:dir(rtl){-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}}`;
29196
+
29197
+ const pickerColumnMdCss = () => `.picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}.picker-opt{inset-inline-start:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #0054e9)}`;
29198
+
29199
+ /**
29200
+ * @internal
29201
+ */
29202
+ class PickerColumnCmp {
29203
+ constructor(hostRef) {
29204
+ registerInstance(this, hostRef);
29205
+ this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
29206
+ this.optHeight = 0;
29207
+ this.rotateFactor = 0;
29208
+ this.scaleFactor = 1;
29209
+ this.velocity = 0;
29210
+ this.y = 0;
29211
+ this.noAnimate = true;
29212
+ // `colDidChange` is a flag that gets set when the column is changed
29213
+ // dynamically. When this flag is set, the column will refresh
29214
+ // after the component re-renders to incorporate the new column data.
29215
+ // This is necessary because `this.refresh` queries for the option elements,
29216
+ // so it needs to wait for the latest elements to be available in the DOM.
29217
+ // Ex: column is created with 3 options. User updates the column data
29218
+ // to have 5 options. The column will still think it only has 3 options.
29219
+ this.colDidChange = false;
29220
+ }
29221
+ colChanged() {
29222
+ this.colDidChange = true;
29223
+ }
29224
+ async connectedCallback() {
29225
+ let pickerRotateFactor = 0;
29226
+ let pickerScaleFactor = 0.81;
29227
+ const mode = getIonMode$1(this);
29228
+ if (mode === 'ios') {
29229
+ pickerRotateFactor = -0.46;
29230
+ pickerScaleFactor = 1;
29231
+ }
29232
+ this.rotateFactor = pickerRotateFactor;
29233
+ this.scaleFactor = pickerScaleFactor;
29234
+ this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
29235
+ el: this.el,
29236
+ gestureName: 'picker-swipe',
29237
+ gesturePriority: 100,
29238
+ threshold: 0,
29239
+ passive: false,
29240
+ onStart: (ev) => this.onStart(ev),
29241
+ onMove: (ev) => this.onMove(ev),
29242
+ onEnd: (ev) => this.onEnd(ev),
29243
+ });
29244
+ this.gesture.enable();
29245
+ // Options have not been initialized yet
29246
+ // Animation must be disabled through the `noAnimate` flag
29247
+ // Otherwise, the options will render
29248
+ // at the top of the column and transition down
29249
+ this.tmrId = setTimeout(() => {
29250
+ this.noAnimate = false;
29251
+ // After initialization, `refresh()` will be called
29252
+ // At this point, animation will be enabled. The options will
29253
+ // animate as they are being selected.
29254
+ this.refresh(true);
29255
+ }, 250);
29256
+ }
29257
+ componentDidLoad() {
29258
+ this.onDomChange();
29259
+ }
29260
+ componentDidUpdate() {
29261
+ // Options may have changed since last update.
29262
+ if (this.colDidChange) {
29263
+ // Animation must be disabled through the `onDomChange` parameter.
29264
+ // Otherwise, the recently added options will render
29265
+ // at the top of the column and transition down
29266
+ this.onDomChange(true, false);
29267
+ this.colDidChange = false;
29268
+ }
29269
+ }
29270
+ disconnectedCallback() {
29271
+ if (this.rafId !== undefined)
29272
+ cancelAnimationFrame(this.rafId);
29273
+ if (this.tmrId)
29274
+ clearTimeout(this.tmrId);
29275
+ if (this.gesture) {
29276
+ this.gesture.destroy();
29277
+ this.gesture = undefined;
29278
+ }
29279
+ }
29280
+ emitColChange() {
29281
+ this.ionPickerColChange.emit(this.col);
29282
+ }
29283
+ setSelected(selectedIndex, duration) {
29284
+ // if there is a selected index, then figure out it's y position
29285
+ // if there isn't a selected index, then just use the top y position
29286
+ const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
29287
+ this.velocity = 0;
29288
+ // set what y position we're at
29289
+ if (this.rafId !== undefined)
29290
+ cancelAnimationFrame(this.rafId);
29291
+ this.update(y, duration, true);
29292
+ this.emitColChange();
29293
+ }
29294
+ update(y, duration, saveY) {
29295
+ if (!this.optsEl) {
29296
+ return;
29297
+ }
29298
+ // ensure we've got a good round number :)
29299
+ let translateY = 0;
29300
+ let translateZ = 0;
29301
+ const { col, rotateFactor } = this;
29302
+ const prevSelected = col.selectedIndex;
29303
+ const selectedIndex = (col.selectedIndex = this.indexForY(-y));
29304
+ const durationStr = duration === 0 ? '' : duration + 'ms';
29305
+ const scaleStr = `scale(${this.scaleFactor})`;
29306
+ const children = this.optsEl.children;
29307
+ for (let i = 0; i < children.length; i++) {
29308
+ const button = children[i];
29309
+ const opt = col.options[i];
29310
+ const optOffset = i * this.optHeight + y;
29311
+ let transform = '';
29312
+ if (rotateFactor !== 0) {
29313
+ const rotateX = optOffset * rotateFactor;
29314
+ if (Math.abs(rotateX) <= 90) {
29315
+ translateY = 0;
29316
+ translateZ = 90;
29317
+ transform = `rotateX(${rotateX}deg) `;
29318
+ }
29319
+ else {
29320
+ translateY = -9999;
29321
+ }
29322
+ }
29323
+ else {
29324
+ translateZ = 0;
29325
+ translateY = optOffset;
29326
+ }
29327
+ const selected = selectedIndex === i;
29328
+ transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
29329
+ if (this.scaleFactor !== 1 && !selected) {
29330
+ transform += scaleStr;
29331
+ }
29332
+ // Update transition duration
29333
+ if (this.noAnimate) {
29334
+ opt.duration = 0;
29335
+ button.style.transitionDuration = '';
29336
+ }
29337
+ else if (duration !== opt.duration) {
29338
+ opt.duration = duration;
29339
+ button.style.transitionDuration = durationStr;
29340
+ }
29341
+ // Update transform
29342
+ if (transform !== opt.transform) {
29343
+ opt.transform = transform;
29344
+ }
29345
+ button.style.transform = transform;
29346
+ /**
29347
+ * Ensure that the select column
29348
+ * item has the selected class
29349
+ */
29350
+ opt.selected = selected;
29351
+ if (selected) {
29352
+ button.classList.add(PICKER_OPT_SELECTED);
29353
+ }
29354
+ else {
29355
+ button.classList.remove(PICKER_OPT_SELECTED);
29356
+ }
29357
+ }
29358
+ this.col.prevSelected = prevSelected;
29359
+ if (saveY) {
29360
+ this.y = y;
29361
+ }
29362
+ if (this.lastIndex !== selectedIndex) {
29363
+ // have not set a last index yet
29364
+ hapticSelectionChanged();
29365
+ this.lastIndex = selectedIndex;
29366
+ }
29367
+ }
29368
+ decelerate() {
29369
+ if (this.velocity !== 0) {
29370
+ // still decelerating
29371
+ this.velocity *= DECELERATION_FRICTION;
29372
+ // do not let it go slower than a velocity of 1
29373
+ this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
29374
+ let y = this.y + this.velocity;
29375
+ if (y > this.minY) {
29376
+ // whoops, it's trying to scroll up farther than the options we have!
29377
+ y = this.minY;
29378
+ this.velocity = 0;
29379
+ }
29380
+ else if (y < this.maxY) {
29381
+ // gahh, it's trying to scroll down farther than we can!
29382
+ y = this.maxY;
29383
+ this.velocity = 0;
29384
+ }
29385
+ this.update(y, 0, true);
29386
+ const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29387
+ if (notLockedIn) {
29388
+ // isn't locked in yet, keep decelerating until it is
29389
+ this.rafId = requestAnimationFrame(() => this.decelerate());
29390
+ }
29391
+ else {
29392
+ this.velocity = 0;
29393
+ this.emitColChange();
29394
+ hapticSelectionEnd();
29395
+ }
29396
+ }
29397
+ else if (this.y % this.optHeight !== 0) {
29398
+ // needs to still get locked into a position so options line up
29399
+ const currentPos = Math.abs(this.y % this.optHeight);
29400
+ // create a velocity in the direction it needs to scroll
29401
+ this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29402
+ this.decelerate();
29403
+ }
29404
+ }
29405
+ indexForY(y) {
29406
+ return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29407
+ }
29408
+ onStart(detail) {
29409
+ // We have to prevent default in order to block scrolling under the picker
29410
+ // but we DO NOT have to stop propagation, since we still want
29411
+ // some "click" events to capture
29412
+ if (detail.event.cancelable) {
29413
+ detail.event.preventDefault();
29414
+ }
29415
+ detail.event.stopPropagation();
29416
+ hapticSelectionStart();
29417
+ // reset everything
29418
+ if (this.rafId !== undefined)
29419
+ cancelAnimationFrame(this.rafId);
29420
+ const options = this.col.options;
29421
+ let minY = options.length - 1;
29422
+ let maxY = 0;
29423
+ for (let i = 0; i < options.length; i++) {
29424
+ if (!options[i].disabled) {
29425
+ minY = Math.min(minY, i);
29426
+ maxY = Math.max(maxY, i);
29427
+ }
29428
+ }
29429
+ this.minY = -(minY * this.optHeight);
29430
+ this.maxY = -(maxY * this.optHeight);
29431
+ }
29432
+ onMove(detail) {
29433
+ if (detail.event.cancelable) {
29434
+ detail.event.preventDefault();
29435
+ }
29436
+ detail.event.stopPropagation();
29437
+ // update the scroll position relative to pointer start position
29438
+ let y = this.y + detail.deltaY;
29439
+ if (y > this.minY) {
29440
+ // scrolling up higher than scroll area
29441
+ y = Math.pow(y, 0.8);
29442
+ this.bounceFrom = y;
29443
+ }
29444
+ else if (y < this.maxY) {
29445
+ // scrolling down below scroll area
29446
+ y += Math.pow(this.maxY - y, 0.9);
29447
+ this.bounceFrom = y;
29448
+ }
29449
+ else {
29450
+ this.bounceFrom = 0;
29451
+ }
29452
+ this.update(y, 0, false);
29453
+ }
29454
+ onEnd(detail) {
29455
+ if (this.bounceFrom > 0) {
29456
+ // bounce back up
29457
+ this.update(this.minY, 100, true);
29458
+ this.emitColChange();
29171
29459
  return;
29172
29460
  }
29173
- this.value = value;
29174
- this.ionChange.emit({ value });
29175
- }
29176
- /**
29177
- * Sets focus on the scrollable container within the picker column.
29178
- * Use this method instead of the global `pickerColumn.focus()`.
29179
- */
29180
- async setFocus() {
29181
- if (this.assistiveFocusable) {
29182
- this.assistiveFocusable.focus();
29461
+ else if (this.bounceFrom < 0) {
29462
+ // bounce back down
29463
+ this.update(this.maxY, 100, true);
29464
+ this.emitColChange();
29465
+ return;
29466
+ }
29467
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29468
+ if (this.velocity === 0 && detail.deltaY === 0) {
29469
+ const opt = detail.event.target.closest('.picker-opt');
29470
+ if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29471
+ this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29472
+ }
29473
+ }
29474
+ else {
29475
+ this.y += detail.deltaY;
29476
+ if (Math.abs(detail.velocityY) < 0.05) {
29477
+ const isScrollingUp = detail.deltaY > 0;
29478
+ const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29479
+ if (isScrollingUp && optHeightFraction > 0.5) {
29480
+ this.velocity = Math.abs(this.velocity) * -1;
29481
+ }
29482
+ else if (!isScrollingUp && optHeightFraction <= 0.5) {
29483
+ this.velocity = Math.abs(this.velocity);
29484
+ }
29485
+ }
29486
+ this.decelerate();
29183
29487
  }
29184
29488
  }
29185
- connectedCallback() {
29489
+ refresh(forceRefresh, animated) {
29186
29490
  var _a;
29187
- this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
29188
- }
29189
- get activeItem() {
29190
- const { value } = this;
29191
- const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
29192
- return options.find((option) => {
29193
- /**
29194
- * If the whole picker column is disabled, the current value should appear active
29195
- * If the current value item is specifically disabled, it should not appear active
29196
- */
29197
- if (!this.disabled && option.disabled) {
29198
- return false;
29491
+ let min = this.col.options.length - 1;
29492
+ let max = 0;
29493
+ const options = this.col.options;
29494
+ for (let i = 0; i < options.length; i++) {
29495
+ if (!options[i].disabled) {
29496
+ min = Math.min(min, i);
29497
+ max = Math.max(max, i);
29199
29498
  }
29200
- return option.value === value;
29201
- });
29499
+ }
29500
+ /**
29501
+ * Only update selected value if column has a
29502
+ * velocity of 0. If it does not, then the
29503
+ * column is animating might land on
29504
+ * a value different than the value at
29505
+ * selectedIndex
29506
+ */
29507
+ if (this.velocity !== 0) {
29508
+ return;
29509
+ }
29510
+ const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29511
+ if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29512
+ const y = selectedIndex * this.optHeight * -1;
29513
+ const duration = animated ? TRANSITION_DURATION : 0;
29514
+ this.velocity = 0;
29515
+ this.update(y, duration, true);
29516
+ }
29517
+ }
29518
+ onDomChange(forceRefresh, animated) {
29519
+ const colEl = this.optsEl;
29520
+ if (colEl) {
29521
+ // DOM READ
29522
+ // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29523
+ this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29524
+ }
29525
+ this.refresh(forceRefresh, animated);
29202
29526
  }
29203
29527
  render() {
29204
- const { color, disabled, isActive, numericInput } = this;
29528
+ const col = this.col;
29205
29529
  const mode = getIonMode$1(this);
29206
- return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
29207
- [mode]: true,
29208
- ['picker-column-active']: isActive,
29209
- ['picker-column-numeric-input']: numericInput,
29210
- ['picker-column-disabled']: disabled,
29211
- }) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
29212
- this.scrollEl = el;
29213
- }, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '5297617462cc30e9444039ae032d8bdf718349af', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '55ea39ef867bcb1a11a912d52ecd20cb886c5fb3', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '3496730ce6182ebfd33e0ee4bafc130feb575a31', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '44c3628aa957d60f799dc7019f72fe8b676c7843' }), hAsync("div", { key: '5a1809f6c949678a67e0d4b5bfe93ea335c0161d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '98fd57f1c66dbaebc2db2dd5da142671b3159fd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '85590708abddfa885994e549deac64866fec938f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'bb7e674f543696a80fcbfb1f68f2e975826898a6', name: "suffix" })));
29530
+ return (hAsync(Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
29531
+ 'max-width': this.col.columnWidth,
29532
+ } }, col.prefix && (hAsync("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
29214
29533
  }
29215
29534
  get el() { return getElement(this); }
29216
29535
  static get watchers() { return {
29217
- "aria-label": [{
29218
- "ariaLabelChanged": 0
29219
- }],
29220
- "value": [{
29221
- "valueChange": 0
29536
+ "col": [{
29537
+ "colChanged": 0
29222
29538
  }]
29223
29539
  }; }
29224
- static get style() { return pickerColumnCss(); }
29540
+ static get style() { return {
29541
+ ios: pickerColumnIosCss(),
29542
+ md: pickerColumnMdCss()
29543
+ }; }
29225
29544
  static get cmpMeta() { return {
29226
- "$flags$": 265,
29227
- "$tagName$": "ion-picker-column",
29545
+ "$flags$": 32,
29546
+ "$tagName$": "ion-picker-legacy-column",
29228
29547
  "$members$": {
29229
- "disabled": [4],
29230
- "value": [1032],
29231
- "color": [513],
29232
- "numericInput": [4, "numeric-input"],
29233
- "ariaLabel": [32],
29234
- "isActive": [32],
29235
- "scrollActiveItemIntoView": [64],
29236
- "setValue": [64],
29237
- "setFocus": [64]
29548
+ "col": [16]
29238
29549
  },
29239
29550
  "$listeners$": undefined,
29240
29551
  "$lazyBundleId$": "-",
29241
- "$attrsToReflect$": [["color", "color"]]
29552
+ "$attrsToReflect$": []
29242
29553
  }; }
29243
29554
  }
29244
- const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29555
+ const PICKER_OPT_SELECTED = 'picker-opt-selected';
29556
+ const DECELERATION_FRICTION = 0.97;
29557
+ const MAX_PICKER_SPEED = 90;
29558
+ const TRANSITION_DURATION = 150;
29245
29559
 
29246
29560
  const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
29247
29561
 
@@ -30438,9 +30752,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
30438
30752
  .addAnimation([backdropAnimation, wrapperAnimation]);
30439
30753
  };
30440
30754
 
30441
- const popoverIosCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}`;
30755
+ const popoverIosCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}`;
30442
30756
 
30443
- const popoverMdCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:250px;--max-height:90%;--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);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}`;
30757
+ const popoverMdCss = () => `:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;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);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host{--width:250px;--max-height:90%;--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);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}`;
30444
30758
 
30445
30759
  // TODO(FW-2832): types
30446
30760
  /**
@@ -30664,10 +30978,6 @@ class Popover {
30664
30978
  this.headerResizeObserver.disconnect();
30665
30979
  this.headerResizeObserver = undefined;
30666
30980
  }
30667
- // Clean up aria-hidden if removed without dismiss() being called
30668
- if (this.presented) {
30669
- cleanupRootFocusTrapAccessibility();
30670
- }
30671
30981
  }
30672
30982
  componentWillLoad() {
30673
30983
  var _a, _b;
@@ -30906,9 +31216,9 @@ class Popover {
30906
31216
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
30907
31217
  const desktop = isPlatform('desktop');
30908
31218
  const enableArrow = arrow && !parentPopover;
30909
- return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31219
+ return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30910
31220
  zIndex: `${20000 + this.overlayIndex}`,
30911
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, hAsync("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
31221
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'aac4e68b08197534375e8ea3f8c9ea0c10ab2af4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'b7f4ebf57d4148b32856b0075d286f454be8de5d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '607d94c28d73e8e957175a7c0f6e8a99ec4dcd53', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '4366a5a5de550c09895e923f345583508e1ec30c', class: "popover-content", part: "content" }, hAsync("slot", { key: 'eb7886fbc99c15b667b7d825d24f1c12d9380f03' })))));
30912
31222
  }
30913
31223
  get el() { return getElement(this); }
30914
31224
  static get watchers() { return {
@@ -31019,7 +31329,7 @@ class ProgressBar {
31019
31329
  const mode = getIonMode$1(this);
31020
31330
  // If the progress is displayed as a solid bar.
31021
31331
  const progressSolid = buffer === 1;
31022
- return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31332
+ return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31023
31333
  [mode]: true,
31024
31334
  [`progress-bar-${type}`]: true,
31025
31335
  'progress-paused': paused,
@@ -31204,7 +31514,7 @@ class Radio {
31204
31514
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
31205
31515
  const mode = getIonMode$1(this);
31206
31516
  const inItem = hostContext('ion-item', el);
31207
- return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31517
+ return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31208
31518
  [mode]: true,
31209
31519
  'in-item': inItem,
31210
31520
  'radio-checked': checked,
@@ -31215,10 +31525,10 @@ class Radio {
31215
31525
  // Focus and active styling should not apply when the radio is in an item
31216
31526
  'ion-activatable': !inItem,
31217
31527
  'ion-focusable': !inItem,
31218
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'de391fca2aa0b681af5c1d089121596c46e68271', class: "radio-wrapper" }, hAsync("div", { key: '44e4c71645f86a9e73ad58c0e8b41c0558b920f6', class: {
31528
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, hAsync("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
31219
31529
  'label-text-wrapper': true,
31220
31530
  'label-text-wrapper-hidden': !hasLabel,
31221
- }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31531
+ }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
31222
31532
  }
31223
31533
  get el() { return getElement(this); }
31224
31534
  static get watchers() { return {
@@ -31237,7 +31547,7 @@ class Radio {
31237
31547
  "color": [513],
31238
31548
  "name": [1],
31239
31549
  "disabled": [4],
31240
- "value": [520],
31550
+ "value": [8],
31241
31551
  "labelPlacement": [1, "label-placement"],
31242
31552
  "justify": [1],
31243
31553
  "alignment": [1],
@@ -31248,7 +31558,7 @@ class Radio {
31248
31558
  },
31249
31559
  "$listeners$": undefined,
31250
31560
  "$lazyBundleId$": "-",
31251
- "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31561
+ "$attrsToReflect$": [["color", "color"]]
31252
31562
  }; }
31253
31563
  }
31254
31564
  let radioButtonIds = 0;
@@ -32313,7 +32623,7 @@ class Range {
32313
32623
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
32314
32624
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
32315
32625
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
32316
- return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32626
+ return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32317
32627
  [mode]: true,
32318
32628
  'in-item': inItem,
32319
32629
  'range-disabled': disabled,
@@ -32327,10 +32637,10 @@ class Range {
32327
32637
  'range-item-end-adjustment': needsEndAdjustment,
32328
32638
  'range-value-min': valueAtMin,
32329
32639
  'range-value-max': valueAtMax,
32330
- }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32640
+ }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
32331
32641
  'label-text-wrapper': true,
32332
32642
  'label-text-wrapper-hidden': !hasLabel,
32333
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, hAsync("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
32643
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'c066804263ab6ae7393f8dcc51184b7198844ffa', class: "native-wrapper" }, hAsync("slot", { key: '7e8ea224d72b3e965dd948bee7e45c1a096b6899', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '21f242f6f60ff3adce6a2d90b2d4dac1ceaf6624', name: "end" })))));
32334
32644
  }
32335
32645
  get el() { return getElement(this); }
32336
32646
  static get watchers() { return {
@@ -33401,7 +33711,7 @@ class Refresher {
33401
33711
  }
33402
33712
  render() {
33403
33713
  const mode = getIonMode$1(this);
33404
- return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33714
+ return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
33405
33715
  [mode]: true,
33406
33716
  // Used internally for styling
33407
33717
  [`refresher-${mode}`]: true,
@@ -33627,7 +33937,7 @@ class RefresherContent {
33627
33937
  const pullingIcon = this.pullingIcon;
33628
33938
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
33629
33939
  const mode = getIonMode$1(this);
33630
- return (hAsync(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, hAsync("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, hAsync("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, hAsync("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
33940
+ return (hAsync(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, hAsync("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, hAsync("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, hAsync("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
33631
33941
  }
33632
33942
  get el() { return getElement(this); }
33633
33943
  static get cmpMeta() { return {
@@ -33668,7 +33978,7 @@ class Reorder {
33668
33978
  render() {
33669
33979
  const mode = getIonMode$1(this);
33670
33980
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
33671
- return (hAsync(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, hAsync("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, hAsync("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
33981
+ return (hAsync(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, hAsync("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, hAsync("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
33672
33982
  }
33673
33983
  get el() { return getElement(this); }
33674
33984
  static get style() { return {
@@ -33939,7 +34249,7 @@ class ReorderGroup {
33939
34249
  }
33940
34250
  render() {
33941
34251
  const mode = getIonMode$1(this);
33942
- return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
34252
+ return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
33943
34253
  [mode]: true,
33944
34254
  'reorder-enabled': !this.disabled,
33945
34255
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -34057,7 +34367,7 @@ class RippleEffect {
34057
34367
  }
34058
34368
  render() {
34059
34369
  const mode = getIonMode$1(this);
34060
- return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
34370
+ return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
34061
34371
  [mode]: true,
34062
34372
  unbounded: this.unbounded,
34063
34373
  } }));
@@ -34495,30 +34805,16 @@ const scrollToFragment = async (fragment, shouldContinue = () => true) => {
34495
34805
  return false;
34496
34806
  }
34497
34807
  };
34498
- /** How long the router waits for a navigation outlet before giving up and proceeding. */
34499
- const NAV_NODE_TIMEOUT = 500;
34500
34808
  const waitUntilNavNode = () => {
34501
34809
  if (searchNavNode(document.body)) {
34502
34810
  return Promise.resolve();
34503
34811
  }
34504
34812
  return new Promise((resolve) => {
34505
- /**
34506
- * Outlets emit `ionNavWillLoad` as they load, so resolve as soon as one does.
34507
- * A timeout backstops the case where the page has no outlet at all: without it
34508
- * the router would wait forever and its `componentWillLoad` would never settle,
34509
- * which in turn prevents the app from signalling that it has finished loading.
34510
- */
34511
- const done = () => {
34512
- window.removeEventListener('ionNavWillLoad', done);
34513
- clearTimeout(timeout);
34514
- resolve();
34515
- };
34516
- const timeout = setTimeout(done, NAV_NODE_TIMEOUT);
34517
- window.addEventListener('ionNavWillLoad', done, { once: true });
34813
+ window.addEventListener('ionNavWillLoad', () => resolve(), { once: true });
34518
34814
  });
34519
34815
  };
34520
34816
  /** Selector for all the outlets supported by the router. */
34521
- const OUTLET_SELECTOR = ':not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
34817
+ const OUTLET_SELECTOR = ':not([no-router]) ion-nav, :not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
34522
34818
  const searchNavNode = (root) => {
34523
34819
  if (!root) {
34524
34820
  return undefined;
@@ -35205,10 +35501,10 @@ class RouterLink {
35205
35501
  rel: this.rel,
35206
35502
  target: this.target,
35207
35503
  };
35208
- return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
35504
+ return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
35209
35505
  [mode]: true,
35210
35506
  'ion-activatable': true,
35211
- }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
35507
+ }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
35212
35508
  }
35213
35509
  static get style() { return routerLinkCss(); }
35214
35510
  static get cmpMeta() { return {
@@ -35247,11 +35543,10 @@ class RouterOutlet {
35247
35543
  */
35248
35544
  this.animated = true;
35249
35545
  }
35250
- swipeGestureChanged() {
35251
- this.updateGestureEnabled();
35252
- }
35253
35546
  swipeHandlerChanged() {
35254
- this.updateGestureEnabled();
35547
+ if (this.gesture) {
35548
+ this.gesture.enable(this.swipeHandler !== undefined);
35549
+ }
35255
35550
  }
35256
35551
  async connectedCallback() {
35257
35552
  const onStart = () => {
@@ -35291,21 +35586,11 @@ class RouterOutlet {
35291
35586
  this.gestureOrAnimationInProgress = false;
35292
35587
  }
35293
35588
  });
35294
- if (this.swipeGesture === undefined) {
35295
- this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
35296
- }
35297
- else {
35298
- this.updateGestureEnabled();
35299
- }
35589
+ this.swipeHandlerChanged();
35300
35590
  }
35301
35591
  componentWillLoad() {
35302
35592
  this.ionNavWillLoad.emit();
35303
35593
  }
35304
- updateGestureEnabled() {
35305
- if (this.gesture) {
35306
- this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
35307
- }
35308
- }
35309
35594
  disconnectedCallback() {
35310
35595
  if (this.gesture) {
35311
35596
  this.gesture.destroy();
@@ -35416,13 +35701,10 @@ class RouterOutlet {
35416
35701
  return true;
35417
35702
  }
35418
35703
  render() {
35419
- return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35704
+ return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
35420
35705
  }
35421
35706
  get el() { return getElement(this); }
35422
35707
  static get watchers() { return {
35423
- "swipeGesture": [{
35424
- "swipeGestureChanged": 0
35425
- }],
35426
35708
  "swipeHandler": [{
35427
35709
  "swipeHandlerChanged": 0
35428
35710
  }]
@@ -35436,7 +35718,6 @@ class RouterOutlet {
35436
35718
  "delegate": [16],
35437
35719
  "animated": [4],
35438
35720
  "animation": [16],
35439
- "swipeGesture": [1028, "swipe-gesture"],
35440
35721
  "swipeHandler": [16],
35441
35722
  "commit": [64],
35442
35723
  "setRouteId": [64],
@@ -35455,7 +35736,7 @@ class Row {
35455
35736
  registerInstance(this, hostRef);
35456
35737
  }
35457
35738
  render() {
35458
- return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35739
+ return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
35459
35740
  }
35460
35741
  static get style() { return rowCss(); }
35461
35742
  static get cmpMeta() { return {
@@ -35507,7 +35788,7 @@ class Searchbar {
35507
35788
  /**
35508
35789
  * Set the input's autocorrect property.
35509
35790
  */
35510
- this.autocorrect = false;
35791
+ this.autocorrect = 'off';
35511
35792
  /**
35512
35793
  * Set the cancel button icon. Only applies to `md` mode.
35513
35794
  * Defaults to `arrow-back-sharp`.
@@ -35928,8 +36209,8 @@ class Searchbar {
35928
36209
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
35929
36210
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
35930
36211
  const shouldShowCancelButton = this.shouldShowCancelButton();
35931
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '73964da43dbd099fc7f3d30cbc4da11087701ac5', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '27335a0e35f6c253c074685fa0b088404927bcbb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
35932
- return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36212
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '226b7a676b4819cda4062b8334fa8d4c4cee6f1a', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '89adb4efa17a78c973bbd5527cfac91d99ceb9bb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
36213
+ return (hAsync(Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35933
36214
  [mode]: true,
35934
36215
  'searchbar-animated': animated,
35935
36216
  'searchbar-disabled': this.disabled,
@@ -35939,14 +36220,14 @@ class Searchbar {
35939
36220
  'searchbar-has-focus': this.focused,
35940
36221
  'searchbar-should-show-clear': this.shouldShowClearButton(),
35941
36222
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
35942
- }) }, hAsync("div", { key: '587e1950e329cfb9d3658be5b2a6491e7af9321a', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '7f78a3d22cce03af277a538b4d9f85faddf1fa80', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '9fd3e458978b64e9e3358bcbb26471753f6ff2a6', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'c7864c85923668dfa25f5fc4a70c7dbf6da191b7', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
36223
+ }) }, hAsync("div", { key: '5b4bdf7280bea710304b6975e76390fe6ceb7417', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '01a0820a2cf904aec1c7d84b542ab7918d435632', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: 'cd64973206b1cc59d221112861733b7ee25f0323', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '2061fa8449bbc576cf8c5130ea613378ea492944', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
35943
36224
  /**
35944
36225
  * This prevents mobile browsers from
35945
36226
  * blurring the input when the clear
35946
36227
  * button is activated.
35947
36228
  */
35948
36229
  ev.preventDefault();
35949
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '47e7a15c6c6d4df4c54c62b042842e499627da05', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
36230
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '00df6f7742bff70b1b088d544b8c00e962e7216c', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
35950
36231
  }
35951
36232
  get el() { return getElement(this); }
35952
36233
  static get watchers() { return {
@@ -35978,7 +36259,7 @@ class Searchbar {
35978
36259
  "animated": [4],
35979
36260
  "autocapitalize": [1],
35980
36261
  "autocomplete": [1],
35981
- "autocorrect": [4],
36262
+ "autocorrect": [1],
35982
36263
  "cancelButtonIcon": [1, "cancel-button-icon"],
35983
36264
  "cancelButtonText": [1, "cancel-button-text"],
35984
36265
  "clearIcon": [1, "clear-icon"],
@@ -36555,14 +36836,14 @@ class Segment {
36555
36836
  }
36556
36837
  render() {
36557
36838
  const mode = getIonMode$1(this);
36558
- return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36839
+ return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36559
36840
  [mode]: true,
36560
36841
  'in-toolbar': hostContext('ion-toolbar', this.el),
36561
36842
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
36562
36843
  'segment-activated': this.activated,
36563
36844
  'segment-disabled': this.disabled,
36564
36845
  'segment-scrollable': this.scrollable,
36565
- }) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
36846
+ }) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
36566
36847
  }
36567
36848
  get el() { return getElement(this); }
36568
36849
  static get watchers() { return {
@@ -36710,7 +36991,7 @@ class SegmentButton {
36710
36991
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
36711
36992
  const mode = getIonMode$1(this);
36712
36993
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
36713
- return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36994
+ return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
36714
36995
  [mode]: true,
36715
36996
  'in-toolbar': hostContext('ion-toolbar', this.el),
36716
36997
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -36726,7 +37007,7 @@ class SegmentButton {
36726
37007
  'ion-activatable': true,
36727
37008
  'ion-activatable-instant': true,
36728
37009
  'ion-focusable': true,
36729
- } }, hAsync("button", Object.assign({ key: '860698be6ceb8f08c0ce3d16ba82d4bb56adf030', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: 'e903a2642ff46797878a941887b5c596d52fd3a3', class: "button-inner" }, hAsync("slot", { key: '5fc6b842ecb7f0ab8df23b344bf6714f38dda89a' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '710aaf6e4fa2b6cb15897a883e88dec17ef3829f' })), hAsync("div", { key: 'a7b036cba32420e9eb3f2d16487df0519ecc5289', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a0a5f49ea7f2ecab8014f4f9ca473a27db8348b6', part: "indicator-background", class: "segment-button-indicator-background" }))));
37010
+ } }, hAsync("button", Object.assign({ key: '0a6fea3a374074af19f7ece0ba3a7cf1e269ab6d', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '991018a38c59a6f3d76b2e952e5569c874d2c13e', class: "button-inner" }, hAsync("slot", { key: '23c547c80108025027b913c7fcbec189286627a3' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '7faa9d06ab6aa7346d16b0b6808979759a79650c' })), hAsync("div", { key: '0d61badf2c227dc38e20185b2b2bb590a5efa434', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a84035752b78491c344179d1e61d109fb4bd1cf1', part: "indicator-background", class: "segment-button-indicator-background" }))));
36730
37011
  }
36731
37012
  get el() { return getElement(this); }
36732
37013
  static get watchers() { return {
@@ -36763,7 +37044,7 @@ class SegmentContent {
36763
37044
  registerInstance(this, hostRef);
36764
37045
  }
36765
37046
  render() {
36766
- return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
37047
+ return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
36767
37048
  }
36768
37049
  static get style() { return segmentContentCss(); }
36769
37050
  static get cmpMeta() { return {
@@ -36882,11 +37163,11 @@ class SegmentView {
36882
37163
  }
36883
37164
  render() {
36884
37165
  const { disabled, isManualScroll, swipeGesture } = this;
36885
- return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
37166
+ return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
36886
37167
  'segment-view-disabled': disabled,
36887
37168
  'segment-view-scroll-disabled': isManualScroll === false,
36888
37169
  'segment-view-swipe-disabled': swipeGesture === false,
36889
- } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
37170
+ } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
36890
37171
  }
36891
37172
  get el() { return getElement(this); }
36892
37173
  static get style() { return {
@@ -36908,9 +37189,9 @@ class SegmentView {
36908
37189
  }; }
36909
37190
  }
36910
37191
 
36911
- 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}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.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:center;align-items:center;-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-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}: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;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}.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-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-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-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{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-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:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}: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)}::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-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}: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}`;
37192
+ 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);--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}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.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:center;align-items:center;-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-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}: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;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}.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-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-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-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{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-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:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}: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)}::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-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}: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}`;
36912
37193
 
36913
- 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}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.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:center;align-items:center;-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-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}: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;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}.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-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-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-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{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-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:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}: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)}::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;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:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-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)}:host(.select-fill-outline) .select-outline-start{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius)}:host(.select-fill-outline) .select-outline-start{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)}:host(.select-fill-outline) .select-outline-end{border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px}:host(.select-fill-outline) .select-outline-end{-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-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 0.8125rem - 4px)}: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}`;
37194
+ 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);--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}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.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:center;align-items:center;-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-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}: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;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}.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-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-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-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{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-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:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}: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)}::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;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:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-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)}:host(.select-fill-outline) .select-outline-start{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius)}:host(.select-fill-outline) .select-outline-start{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)}:host(.select-fill-outline) .select-outline-end{border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px}:host(.select-fill-outline) .select-outline-end{-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-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 0.8125rem - 4px)}: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}`;
36914
37195
 
36915
37196
  // TODO(FW-2832): types
36916
37197
  /**
@@ -36945,7 +37226,6 @@ class Select {
36945
37226
  this.helperTextId = `${this.inputId}-helper-text`;
36946
37227
  this.errorTextId = `${this.inputId}-error-text`;
36947
37228
  this.inheritedAttributes = {};
36948
- this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
36949
37229
  this.isExpanded = false;
36950
37230
  /**
36951
37231
  * The `hasFocus` state ensures the focus class is
@@ -37071,40 +37351,9 @@ class Select {
37071
37351
  this.emitStyle();
37072
37352
  }
37073
37353
  setValue(value) {
37074
- if (this.isValueEqual(this.value, value)) {
37075
- return;
37076
- }
37077
37354
  this.value = value;
37078
37355
  this.ionChange.emit({ value });
37079
37356
  }
37080
- isValueEqual(currentValue, newValue) {
37081
- if (this.multiple) {
37082
- const currentArr = Array.isArray(currentValue) ? currentValue : [];
37083
- const newArr = Array.isArray(newValue) ? newValue : [];
37084
- if (currentArr.length !== newArr.length) {
37085
- return false;
37086
- }
37087
- // Multiset compare: each new value must match a distinct current value.
37088
- // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
37089
- // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
37090
- const remaining = currentArr.slice();
37091
- return newArr.every((val) => {
37092
- const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
37093
- if (idx === -1) {
37094
- return false;
37095
- }
37096
- remaining.splice(idx, 1);
37097
- return true;
37098
- });
37099
- }
37100
- if (currentValue == null && newValue == null) {
37101
- return true;
37102
- }
37103
- if (currentValue == null || newValue == null) {
37104
- return false;
37105
- }
37106
- return compareOptions(currentValue, newValue, this.compareWith);
37107
- }
37108
37357
  async connectedCallback() {
37109
37358
  const { el } = this;
37110
37359
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -37298,11 +37547,10 @@ class Select {
37298
37547
  .join(' ');
37299
37548
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37300
37549
  const isSelected = isOptionSelected(selectValue, value, this.compareWith);
37301
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37302
37550
  return {
37303
- text: content !== null && content !== void 0 ? content : '',
37551
+ role: isSelected ? 'selected' : '',
37552
+ text: option.textContent,
37304
37553
  cssClass: optClass,
37305
- disabled: option.disabled,
37306
37554
  handler: () => {
37307
37555
  this.setValue(value);
37308
37556
  },
@@ -37310,9 +37558,6 @@ class Select {
37310
37558
  'aria-checked': isSelected ? 'true' : 'false',
37311
37559
  role: 'radio',
37312
37560
  },
37313
- startContent,
37314
- endContent,
37315
- description: option.description,
37316
37561
  };
37317
37562
  });
37318
37563
  // Add "cancel" button
@@ -37333,19 +37578,13 @@ class Select {
37333
37578
  .filter((cls) => cls !== 'hydrated')
37334
37579
  .join(' ');
37335
37580
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37336
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37337
37581
  return {
37338
37582
  type: inputType,
37339
37583
  cssClass: optClass,
37340
- label: content !== null && content !== void 0 ? content : '',
37584
+ label: option.textContent || '',
37341
37585
  value,
37342
37586
  checked: isOptionSelected(selectValue, value, this.compareWith),
37343
37587
  disabled: option.disabled,
37344
- startContent,
37345
- endContent,
37346
- description: option.description,
37347
- labelPlacement: option.labelPlacement,
37348
- justify: option.justify,
37349
37588
  };
37350
37589
  });
37351
37590
  return alertInputs;
@@ -37358,9 +37597,8 @@ class Select {
37358
37597
  .filter((cls) => cls !== 'hydrated')
37359
37598
  .join(' ');
37360
37599
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37361
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37362
37600
  return {
37363
- text: content !== null && content !== void 0 ? content : '',
37601
+ text: option.textContent || '',
37364
37602
  cssClass: optClass,
37365
37603
  value,
37366
37604
  checked: isOptionSelected(selectValue, value, this.compareWith),
@@ -37371,11 +37609,6 @@ class Select {
37371
37609
  this.close();
37372
37610
  }
37373
37611
  },
37374
- startContent,
37375
- endContent,
37376
- description: option.description,
37377
- labelPlacement: option.labelPlacement,
37378
- justify: option.justify,
37379
37612
  };
37380
37613
  });
37381
37614
  return popoverOptions;
@@ -37408,21 +37641,15 @@ class Select {
37408
37641
  ionShadowTarget: this.nativeWrapperEl,
37409
37642
  } });
37410
37643
  }
37411
- const options = this.createOverlaySelectOptions(this.childOpts, value);
37412
- const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
37413
37644
  const popoverOpts = Object.assign(Object.assign({ mode,
37414
37645
  event, alignment: 'center', size,
37415
- showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
37416
- 'select-popover',
37417
- hasRichContent ? 'select-popover-rich-content' : undefined,
37418
- interfaceOptions.cssClass,
37419
- ], componentProps: {
37646
+ showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
37420
37647
  header: interfaceOptions.header,
37421
37648
  subHeader: interfaceOptions.subHeader,
37422
37649
  message: interfaceOptions.message,
37423
37650
  multiple,
37424
37651
  value,
37425
- options,
37652
+ options: this.createOverlaySelectOptions(this.childOpts, value),
37426
37653
  } });
37427
37654
  return popoverController.create(popoverOpts);
37428
37655
  }
@@ -37503,18 +37730,12 @@ class Select {
37503
37730
  }
37504
37731
  return;
37505
37732
  }
37506
- /**
37507
- * Returns the text to display in the select based on the selected value.
37508
- *
37509
- * @param useHTML If `true`, the returned text will include any custom HTML content from the selected option. If `false`, the returned text will be plain text without any HTML. Defaults to `false`.
37510
- * @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
37511
- */
37512
- getText(useHTML = false) {
37733
+ getText() {
37513
37734
  const selectedText = this.selectedText;
37514
37735
  if (selectedText != null && selectedText !== '') {
37515
37736
  return selectedText;
37516
37737
  }
37517
- return generateText(this.childOpts, this.value, this.compareWith, useHTML);
37738
+ return generateText(this.childOpts, this.value, this.compareWith);
37518
37739
  }
37519
37740
  setFocus() {
37520
37741
  if (this.focusEl) {
@@ -37584,47 +37805,6 @@ class Select {
37584
37805
  */
37585
37806
  return this.renderLabel();
37586
37807
  }
37587
- /**
37588
- * Wraps text nodes in the select text with span elements
37589
- * so spacing can be added between elements without
37590
- * changing the display to prevent losing the ellipses
37591
- * behavior.
37592
- *
37593
- * Only wraps when the string contains HTML elements
37594
- * alongside text.
37595
- */
37596
- wrapSelectTextNodes(html) {
37597
- const temp = document.createElement('div');
37598
- temp.innerHTML = html;
37599
- const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
37600
- // Return the plain text
37601
- if (!hasElements) {
37602
- return html;
37603
- }
37604
- Array.from(temp.childNodes).forEach((node) => {
37605
- var _a, _b, _c, _d;
37606
- if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
37607
- const text = node.textContent;
37608
- /**
37609
- * Split comma separator from the text content
37610
- * e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
37611
- */
37612
- const commaMatch = text.match(/^(,\s*)(.*)/);
37613
- if (commaMatch) {
37614
- const commaNode = document.createTextNode(commaMatch[1]);
37615
- const wrapper = document.createElement('span');
37616
- wrapper.textContent = commaMatch[2];
37617
- (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
37618
- (_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
37619
- return;
37620
- }
37621
- const wrapper = document.createElement('span');
37622
- (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
37623
- wrapper.appendChild(node);
37624
- }
37625
- });
37626
- return temp.innerHTML;
37627
- }
37628
37808
  /**
37629
37809
  * Renders either the placeholder
37630
37810
  * or the selected values based on
@@ -37632,7 +37812,7 @@ class Select {
37632
37812
  */
37633
37813
  renderSelectText() {
37634
37814
  const { placeholder } = this;
37635
- const displayValue = this.getText(true);
37815
+ const displayValue = this.getText();
37636
37816
  let addPlaceholderClass = false;
37637
37817
  let selectText = displayValue;
37638
37818
  if (selectText === '' && placeholder !== undefined) {
@@ -37644,10 +37824,6 @@ class Select {
37644
37824
  'select-placeholder': addPlaceholderClass,
37645
37825
  };
37646
37826
  const textPart = addPlaceholderClass ? 'placeholder' : 'text';
37647
- if (this.customHTMLEnabled) {
37648
- const wrapped = this.wrapSelectTextNodes(selectText);
37649
- return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
37650
- }
37651
37827
  return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
37652
37828
  }
37653
37829
  /**
@@ -37670,7 +37846,6 @@ class Select {
37670
37846
  get ariaLabel() {
37671
37847
  var _a;
37672
37848
  const { placeholder, inheritedAttributes } = this;
37673
- // Get the plain text from the selected text
37674
37849
  const displayValue = this.getText();
37675
37850
  // The aria label should be preferred over visible text if both are specified
37676
37851
  const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
@@ -37764,7 +37939,7 @@ class Select {
37764
37939
  * TODO(FW-5592): Remove hasStartEndSlots condition
37765
37940
  */
37766
37941
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
37767
- return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
37942
+ return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
37768
37943
  [mode]: true,
37769
37944
  'in-item': inItem,
37770
37945
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -37782,7 +37957,7 @@ class Select {
37782
37957
  [`select-justify-${justify}`]: justifyEnabled,
37783
37958
  [`select-shape-${shape}`]: shape !== undefined,
37784
37959
  [`select-label-placement-${labelPlacement}`]: true,
37785
- }) }, hAsync("label", { key: '58b77f683499b958840721bdb59a9bf822c7f218', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: '9e68d96524c1b87d6cb1bdce79fa86f2022be04a', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: 'c9bcc5d684d2cefadff6ad3ec91498d5b405afc5', name: "start" }), hAsync("div", { key: '5405bc15ffb3437ca00c64fbbc83d8eb2631c4ea', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '95e2f041c8517afb1cc6bddb2c3c38cf41f2376e', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'f3d2410f678ea22a107121aea1bbda197a618ed6', class: "select-highlight" })), this.renderBottomContent()));
37960
+ }) }, hAsync("label", { key: 'd56d89b5b58da2b5eaebada9d1be58ca45c67806', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), hAsync("div", { key: 'bc8bf089c693781ad5b3a5db76a12223867d748e', class: "select-wrapper-inner", part: "inner" }, hAsync("slot", { key: 'e1c12b96f1573eb192608c458ed1f3463174cd89', name: "start" }), hAsync("div", { key: '6ee5e3900d8e462f175649b502ac6faa2f2b9909', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'faeaea34aad412e1458beab95d4b1b9ca7b87c41', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'aeff51e51c990844869eff9940575ce6b2223135', class: "select-highlight" })), this.renderBottomContent()));
37786
37961
  }
37787
37962
  get el() { return getElement(this); }
37788
37963
  static get watchers() { return {
@@ -37853,232 +38028,34 @@ const parseValue = (value) => {
37853
38028
  }
37854
38029
  return value.toString();
37855
38030
  };
37856
- const generateText = (opts, value, compareWith, useHTML = false) => {
38031
+ const generateText = (opts, value, compareWith) => {
37857
38032
  if (value === undefined) {
37858
38033
  return '';
37859
38034
  }
37860
38035
  if (Array.isArray(value)) {
37861
38036
  return value
37862
- .map((v) => textForValue(opts, v, compareWith, useHTML))
38037
+ .map((v) => textForValue(opts, v, compareWith))
37863
38038
  .filter((opt) => opt !== null)
37864
38039
  .join(', ');
37865
38040
  }
37866
38041
  else {
37867
- return textForValue(opts, value, compareWith, useHTML) || '';
38042
+ return textForValue(opts, value, compareWith) || '';
37868
38043
  }
37869
38044
  };
37870
- /**
37871
- * Returns the display text for a given value from the list of options.
37872
- * When `useHTML` is true, returns sanitized HTML for the select text.
37873
- * When `useHTML` is false, returns plain text for aria-label and other
37874
- * text-only contexts.
37875
- *
37876
- * @param opts - The list of ion-select-option elements.
37877
- * @param value - The value to find the matching option for.
37878
- * @param compareWith - Custom comparison function or property name.
37879
- * @param useHTML - If true, returns HTML string. If false, returns plain text.
37880
- */
37881
- const textForValue = (opts, value, compareWith, useHTML = false) => {
38045
+ const textForValue = (opts, value, compareWith) => {
37882
38046
  const selectOpt = opts.find((opt) => {
37883
38047
  return compareOptions(value, getOptionValue(opt), compareWith);
37884
38048
  });
37885
- const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
37886
- if (!selectOpt) {
37887
- return null;
37888
- }
37889
- // Return sanitized HTML for the select text
37890
- if (customHTMLEnabled && useHTML) {
37891
- return getOptionContent(selectOpt, undefined, true);
37892
- }
37893
- /**
37894
- * When custom HTML is enabled, extract only the default slot content.
37895
- * This ensures aria-label and other text-only contexts read only
37896
- * the relevant option text.
37897
- */
37898
- if (customHTMLEnabled) {
37899
- const content = getOptionContent(selectOpt);
37900
- if (typeof content === 'string') {
37901
- return content;
37902
- }
37903
- /**
37904
- * Elements were found in the default slot, extract and concatenate
37905
- * their text content while trimming whitespace.
37906
- */
37907
- if (content) {
37908
- const texts = Array.from(content.childNodes)
37909
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
37910
- .filter((t) => t);
37911
- return texts.join(' ') || null;
37912
- }
37913
- // Empty option
37914
- return null;
37915
- }
37916
- return getDefaultSlotPlainText(selectOpt);
37917
- };
37918
- /**
37919
- * Trims whitespace from all text nodes within a DOM tree.
37920
- * This prevents invisible layout shifts and unwanted gaps between
37921
- * elements when HTML content is injected via innerHTML or cloneNode,
37922
- * as browsers preserve whitespace (tabs, newlines, spaces) from
37923
- * the original source markup.
37924
- *
37925
- * @param node The root node to start trimming text nodes from.
37926
- */
37927
- const trimTextNodes = (node) => {
37928
- node.childNodes.forEach((child) => {
37929
- var _a;
37930
- if (child.nodeType === Node.TEXT_NODE) {
37931
- child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
37932
- }
37933
- else if (child.nodeType === Node.ELEMENT_NODE) {
37934
- trimTextNodes(child);
37935
- }
37936
- });
37937
- };
37938
- /**
37939
- * Extracts and clones content from an `ion-select-option` element
37940
- * for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
37941
- *
37942
- * @param option - The `ion-select-option` element to extract content from.
37943
- * @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
37944
- * @param useHTML - If `true`, the returned string will include any custom HTML content. If `false`, the returned string will be plain text without any HTML.
37945
- * @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
37946
- * div element containing cloned child nodes. Returns `null` if no matching
37947
- * content is found.
37948
- */
37949
- const getOptionContent = (option, slotName, useHTML = false) => {
37950
- let nodes;
37951
- if (slotName) {
37952
- // Named slot: get elements with matching slot attribute
37953
- nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
37954
- }
37955
- else {
37956
- // Default slot: get nodes without a slot attribute
37957
- const defaultSlot = getOptionDefaultSlot(option) || [];
37958
- nodes = defaultSlot.filter((node) => {
37959
- var _a;
37960
- /**
37961
- * Exclude whitespace-only text nodes (newline noise between
37962
- * markup elements). Element nodes are always kept, even when
37963
- * their textContent is empty (e.g. <svg>, <img>).
37964
- */
37965
- if (node.nodeType === Node.TEXT_NODE) {
37966
- return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
37967
- }
37968
- return true;
37969
- });
37970
- }
37971
- if (nodes.length === 0) {
37972
- return null;
37973
- }
37974
- // Return plain text if no elements are found
37975
- if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
37976
- return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
37977
- }
37978
- /**
37979
- * Mirror known custom-element properties (e.g. ion-icon's `icon`)
37980
- * onto attributes before cloning. Frameworks like Vue set these as
37981
- * DOM properties, which `cloneNode` doesn't copy, so without this
37982
- * step the cloned overlay copy renders without the prop's value.
37983
- */
37984
- nodes.forEach((n) => {
37985
- if (n.nodeType === Node.ELEMENT_NODE) {
37986
- reflectPropertiesToAttributes(n);
37987
- }
37988
- });
37989
- // Clone each node into a temporary container
37990
- const container = document.createElement('div');
37991
- nodes.forEach((n) => {
37992
- var _a;
37993
- const clone = n.cloneNode(true);
37994
- if (clone.nodeType === Node.TEXT_NODE) {
37995
- clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
37996
- }
37997
- else {
37998
- trimTextNodes(clone);
37999
- }
38000
- container.appendChild(clone);
38001
- });
38002
- /**
38003
- * Sanitize the cloned DOM in place. Trusted attributes (size, color,
38004
- * shape, etc.) are preserved; event handlers, javascript: URLs, and
38005
- * blocked tags are stripped.
38006
- */
38007
- sanitizeDOMTree(container);
38008
- if (useHTML) {
38009
- return container.innerHTML.trim() || null;
38010
- }
38011
- return container;
38012
- };
38013
- /**
38014
- * Returns the child nodes that belong to the default slot of an
38015
- * option element, excluding any nodes that are assigned to named
38016
- * slots.
38017
- *
38018
- * @param option - The `ion-select-option` element to extract default-slot nodes from.
38019
- * @returns An array of default slot nodes, or `null` if none are found.
38020
- */
38021
- const getOptionDefaultSlot = (option) => {
38022
- const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
38023
- if (node.nodeType === Node.ELEMENT_NODE) {
38024
- return !node.hasAttribute('slot');
38025
- }
38026
- return node.nodeType === Node.TEXT_NODE;
38027
- });
38028
- if (defaultSlotNodes.length === 0) {
38029
- return null;
38030
- }
38031
- return defaultSlotNodes;
38032
- };
38033
- /**
38034
- * Extracts plain text from only the default slot of an option,
38035
- * excluding content assigned to named slots (start/end).
38036
- */
38037
- const getDefaultSlotPlainText = (option) => {
38038
- const texts = Array.from(option.childNodes)
38039
- .filter((node) => {
38040
- if (node.nodeType === Node.ELEMENT_NODE) {
38041
- return !node.hasAttribute('slot');
38042
- }
38043
- return node.nodeType === Node.TEXT_NODE;
38044
- })
38045
- .filter((node) => node.nodeType === Node.TEXT_NODE)
38046
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
38047
- .filter((t) => t);
38048
- return texts.join(' ');
38049
- };
38050
- /**
38051
- * Extracts the rich content from an `ion-select-option`.
38052
- * When `customHTMLEnabled` is `false`, only the plain text from the
38053
- * default slot is read and the start and end slots are skipped.
38054
- *
38055
- * @param option - The `ion-select-option` element to extract content from.
38056
- * @param customHTMLEnabled - Whether custom HTML rendering is enabled
38057
- * via the `innerHTMLTemplatesEnabled` config.
38058
- */
38059
- const extractOptionContent = (option, customHTMLEnabled) => {
38060
- var _a, _b;
38061
- if (!customHTMLEnabled) {
38062
- return {
38063
- content: getDefaultSlotPlainText(option),
38064
- startContent: undefined,
38065
- endContent: undefined,
38066
- };
38067
- }
38068
- return {
38069
- content: getOptionContent(option),
38070
- startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
38071
- endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
38072
- };
38049
+ return selectOpt ? selectOpt.textContent : null;
38073
38050
  };
38074
38051
  let selectIds = 0;
38075
38052
  const OPTION_CLASS = 'select-interface-option';
38076
38053
 
38077
- 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{width:24px;height: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)}`;
38054
+ const ionicSelectModalMdCss = () => `.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)}`;
38078
38055
 
38079
- const selectModalIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-ios,.alert-radio-label-has-rich-content.sc-ion-select-modal-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ios,.select-option-label-has-rich-content.sc-ion-select-modal-ios{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-ios,.alert-radio-label-has-rich-content.sc-ion-select-modal-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-ios,.select-option-content.sc-ion-select-modal-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-ios,.alert-checkbox-label-text.sc-ion-select-modal-ios,.alert-radio-label-text.sc-ion-select-modal-ios,.select-option-label-text.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-ios{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-ios: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-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-ios [part~="label"],.select-option-content.sc-ion-select-modal-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-ios>ion-avatar.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>ion-img.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>ion-thumbnail.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>img.sc-ion-select-modal-ios,.select-option-start.sc-ion-select-modal-ios>svg.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-avatar.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-img.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-thumbnail.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>img.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>svg.sc-ion-select-modal-ios{width:44px;height:44px}.select-option-start.sc-ion-select-modal-ios>ion-icon.sc-ion-select-modal-ios,.select-option-end.sc-ion-select-modal-ios>ion-icon.sc-ion-select-modal-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-select-modal-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-select-modal-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
38056
+ const selectModalIosCss = () => `.sc-ion-select-modal-ios-h{height:100%}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}`;
38080
38057
 
38081
- const selectModalMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-modal-md,.alert-radio-label-has-rich-content.sc-ion-select-modal-md,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-md,.select-option-label-has-rich-content.sc-ion-select-modal-md{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-md,.alert-radio-label-has-rich-content.sc-ion-select-modal-md,.alert-checkbox-label-has-rich-content.sc-ion-select-modal-md,.select-option-content.sc-ion-select-modal-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-modal-md,.alert-checkbox-label-text.sc-ion-select-modal-md,.alert-radio-label-text.sc-ion-select-modal-md,.select-option-label-text.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-modal-md{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-md: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-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-modal-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-modal-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-modal-md [part~="label"],.select-option-content.sc-ion-select-modal-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-modal-md>ion-avatar.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-avatar.sc-ion-select-modal-md{width:40px;height:40px}.select-option-start.sc-ion-select-modal-md>ion-icon.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-icon.sc-ion-select-modal-md{width:24px;height:24px}.select-option-start.sc-ion-select-modal-md>ion-img.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>img.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>svg.sc-ion-select-modal-md,.select-option-start.sc-ion-select-modal-md>ion-thumbnail.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-img.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>img.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>svg.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>ion-thumbnail.sc-ion-select-modal-md{width:56px;height:56px}.select-option-start.sc-ion-select-modal-md>video.sc-ion-select-modal-md,.select-option-end.sc-ion-select-modal-md>video.sc-ion-select-modal-md{width:114px;height:56px}.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--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-md{--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)}`;
38058
+ const selectModalMdCss = () => `.sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--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-md{--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)}`;
38082
38059
 
38083
38060
  class SelectModal {
38084
38061
  constructor(hostRef) {
@@ -38132,90 +38109,39 @@ class SelectModal {
38132
38109
  }
38133
38110
  }
38134
38111
  renderRadioOptions() {
38135
- const mode = getIonMode$1(this);
38136
38112
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
38137
- return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
38138
- var _a, _b;
38139
- /**
38140
- * Cast to `SelectOverlayOption` to access rich content
38141
- * fields (`startContent`, `endContent`, `description`)
38142
- * that are passed through from `ion-select` but not
38143
- * part of the public `SelectModalOption` interface.
38144
- */
38145
- const richOption = option;
38146
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38147
- const optionLabelOptions = {
38148
- id: `modal-option-${index}`,
38149
- label: richOption.text,
38150
- startContent: richOption.startContent,
38151
- endContent: richOption.endContent,
38152
- description: richOption.description,
38153
- };
38154
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
38155
- const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
38156
- return (hAsync("ion-item", { lines: "none",
38113
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { lines: "none", class: Object.assign({
38157
38114
  // TODO FW-4784
38158
- disabled: option.disabled, class: Object.assign({
38159
- // TODO FW-4784
38160
- 'item-radio-checked': option.value === checked
38161
- }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
38162
- 'select-option-has-rich-content': hasRichContent,
38163
- }, value: option.value, disabled: option.disabled, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onClick: () => this.closeModal(), onKeyDown: (ev) => {
38164
- if (ev.key === 'Enter' && !ev.repeat) {
38165
- this.pendingEnterTarget = ev.currentTarget;
38166
- }
38167
- }, onKeyUp: (ev) => {
38168
- if (ev.key === ' ') {
38169
- // Space selects and dismisses in one press.
38115
+ 'item-radio-checked': option.value === checked
38116
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyDown: (ev) => {
38117
+ if (ev.key === 'Enter' && !ev.repeat) {
38118
+ this.pendingEnterTarget = ev.currentTarget;
38119
+ }
38120
+ }, onKeyUp: (ev) => {
38121
+ if (ev.key === ' ') {
38122
+ // Space selects and dismisses in one press.
38123
+ this.closeModal();
38124
+ }
38125
+ else if (ev.key === 'Enter') {
38126
+ const shouldClose = this.pendingEnterTarget === ev.currentTarget;
38127
+ this.pendingEnterTarget = null;
38128
+ if (shouldClose) {
38170
38129
  this.closeModal();
38171
38130
  }
38172
- else if (ev.key === 'Enter') {
38173
- const shouldClose = this.pendingEnterTarget === ev.currentTarget;
38174
- this.pendingEnterTarget = null;
38175
- if (shouldClose) {
38176
- this.closeModal();
38177
- }
38178
- }
38179
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38180
- })));
38131
+ }
38132
+ } }, option.text))))));
38181
38133
  }
38182
38134
  renderCheckboxOptions() {
38183
- const mode = getIonMode$1(this);
38184
- return this.options.map((option, index) => {
38185
- var _a, _b;
38186
- /**
38187
- * Cast to `SelectOverlayOption` to access rich content
38188
- * fields (`startContent`, `endContent`, `description`)
38189
- * that are passed through from `ion-select` but not
38190
- * part of the public `SelectModalOption` interface.
38191
- */
38192
- const richOption = option;
38193
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38194
- const optionLabelOptions = {
38195
- id: `modal-option-${index}`,
38196
- label: richOption.text,
38197
- startContent: richOption.startContent,
38198
- endContent: richOption.endContent,
38199
- description: richOption.description,
38200
- };
38201
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
38202
- const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
38203
- return (hAsync("ion-item", {
38135
+ return this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
38204
38136
  // TODO FW-4784
38205
- disabled: option.disabled, class: Object.assign({
38206
- // TODO FW-4784
38207
- 'item-checkbox-checked': option.checked
38208
- }, getClassMap(option.cssClass))
38209
- }, hAsync("ion-checkbox", { class: {
38210
- 'select-option-has-rich-content': hasRichContent,
38211
- }, value: option.value, disabled: option.disabled, checked: option.checked, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onIonChange: (ev) => {
38212
- this.setChecked(ev);
38213
- this.callOptionHandler(ev);
38214
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38215
- });
38137
+ 'item-checkbox-checked': option.checked
38138
+ }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
38139
+ this.setChecked(ev);
38140
+ this.callOptionHandler(ev);
38141
+ } }, option.text))));
38216
38142
  }
38217
38143
  render() {
38218
- return (hAsync(Host, { key: '2cb1ae057b7a66f5d12c926f618f6b945f019803', class: getIonMode$1(this) }, hAsync("ion-header", { key: 'e41f1c4ad1c71dcc927d210502d6366cea894a14' }, hAsync("ion-toolbar", { key: '1a191dfc8980541469ee4d8996ba4de52cac1ac5' }, this.header !== undefined && hAsync("ion-title", { key: '14ab9cb7d41d15b982c6ccd8ba6cee0e9cb528d9' }, this.header), hAsync("ion-buttons", { key: '80451a2ed3a82138eb1575135cf2ebbd5e8f6e60', slot: "end" }, hAsync("ion-button", { key: '01a315cd739569f3c0b23a4d243d52b69b63dfa7', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'd953101bae9a91f8108f7a5e411bb1e34338655d' }, hAsync("ion-list", { key: '171a5668afc67b03d2ee87e91cf400b17541bc7f' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
38144
+ return (hAsync(Host, { key: 'fda0bf6f93cd5ec9f3c64f88a52de849e0e140a2', class: getIonMode$1(this) }, hAsync("ion-header", { key: '27c0b17175a53db9ff159feeeb96451a3f011dab' }, hAsync("ion-toolbar", { key: '91a4155ebc317fbc9f1bb3e26a7e94754b953c9b' }, this.header !== undefined && hAsync("ion-title", { key: 'f6dae8e4e381f322cc90efefd9bb6ef81d4d2f3e' }, this.header), hAsync("ion-buttons", { key: 'e7760532fb2e7e7385ed6e62097d92d96ff20148', slot: "end" }, hAsync("ion-button", { key: '4999b6fc46cba138186546dca67b7950855e6fb7', onClick: () => this.closeModal() }, this.cancelText)))), hAsync("ion-content", { key: 'c73f80a4bc25b9061ea65cf11e5d811c1a4d8704' }, hAsync("ion-list", { key: 'b21905d15b36ad5eb45845e768918d2763cf48b1' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
38219
38145
  }
38220
38146
  get el() { return getElement(this); }
38221
38147
  static get style() { return {
@@ -38240,24 +38166,17 @@ class SelectModal {
38240
38166
 
38241
38167
  const selectOptionCss = () => `:host{display:none}`;
38242
38168
 
38243
- /**
38244
- * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
38245
- *
38246
- * @slot - Content is placed between the named slots if provided without a slot.
38247
- * @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
38248
- * @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
38249
- */
38250
38169
  class SelectOption {
38251
38170
  constructor(hostRef) {
38252
38171
  registerInstance(this, hostRef);
38253
38172
  this.inputId = `ion-selopt-${selectOptionIds++}`;
38254
38173
  /**
38255
- * If `true`, the user cannot interact with the select option.
38174
+ * If `true`, the user cannot interact with the select option. This property does not apply when `interface="action-sheet"` as `ion-action-sheet` does not allow for disabled buttons.
38256
38175
  */
38257
38176
  this.disabled = false;
38258
38177
  }
38259
38178
  render() {
38260
- return hAsync(Host, { key: '8b8bef0f5a55f18048708c34d3ea3ff0ff2f1d47', role: "option", id: this.inputId, class: getIonMode$1(this) });
38179
+ return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
38261
38180
  }
38262
38181
  get el() { return getElement(this); }
38263
38182
  static get style() { return selectOptionCss(); }
@@ -38266,10 +38185,7 @@ class SelectOption {
38266
38185
  "$tagName$": "ion-select-option",
38267
38186
  "$members$": {
38268
38187
  "disabled": [4],
38269
- "value": [8],
38270
- "description": [1],
38271
- "labelPlacement": [1, "label-placement"],
38272
- "justify": [1]
38188
+ "value": [8]
38273
38189
  },
38274
38190
  "$listeners$": undefined,
38275
38191
  "$lazyBundleId$": "-",
@@ -38278,9 +38194,9 @@ class SelectOption {
38278
38194
  }
38279
38195
  let selectOptionIds = 0;
38280
38196
 
38281
- const selectPopoverIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-ios,.alert-checkbox-label-text.sc-ion-select-popover-ios,.alert-radio-label-text.sc-ion-select-popover-ios,.select-option-label-text.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-popover-ios{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-popover-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios{width:44px;height:44px}.select-option-start.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-select-popover-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-select-popover-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ios-h{overflow-y:auto}`;
38197
+ const selectPopoverIosCss = () => `.sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ios-h{overflow-y:auto}`;
38282
38198
 
38283
- const selectPopoverMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-md,.alert-checkbox-label-text.sc-ion-select-popover-md,.alert-radio-label-text.sc-ion-select-popover-md,.select-option-label-text.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-select-popover-md{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-popover-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md{width:40px;height:40px}.select-option-start.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md{width:24px;height:24px}.select-option-start.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md{width:56px;height:56px}.select-option-start.sc-ion-select-popover-md>video.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>video.sc-ion-select-popover-md{width:114px;height:56px}.sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-md-h{overflow-y:auto}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="container"]{display:none}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(label),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--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-popover-md{--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)}`;
38199
+ const selectPopoverMdCss = () => `.sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-md-h{overflow-y:auto}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="container"]{display:none}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(label),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--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-popover-md{--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)}`;
38284
38200
 
38285
38201
  /**
38286
38202
  * @internal
@@ -38354,91 +38270,41 @@ class SelectPopover {
38354
38270
  }
38355
38271
  }
38356
38272
  renderCheckboxOptions(options) {
38357
- const mode = getIonMode$1(this);
38358
- return options.map((option, index) => {
38359
- var _a, _b;
38360
- /**
38361
- * Cast to `SelectOverlayOption` to access rich content
38362
- * fields (`startContent`, `endContent`, `description`)
38363
- * that are passed through from `ion-select` but not
38364
- * part of the public `SelectPopoverOption` interface.
38365
- */
38366
- const richOption = option;
38367
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38368
- const optionLabelOptions = {
38369
- id: `popover-option-${index}`,
38370
- label: richOption.text,
38371
- startContent: richOption.startContent,
38372
- endContent: richOption.endContent,
38373
- description: richOption.description,
38374
- };
38375
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
38376
- const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
38377
- return (hAsync("ion-item", {
38273
+ return options.map((option) => (hAsync("ion-item", { class: Object.assign({
38378
38274
  // TODO FW-4784
38379
- disabled: option.disabled, class: Object.assign({
38380
- // TODO FW-4784
38381
- 'item-checkbox-checked': option.checked
38382
- }, getClassMap(option.cssClass))
38383
- }, hAsync("ion-checkbox", { class: {
38384
- 'select-option-has-rich-content': hasRichContent,
38385
- }, value: option.value, disabled: option.disabled, checked: option.checked, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onIonChange: (ev) => {
38386
- this.setChecked(ev);
38387
- this.callOptionHandler(ev);
38388
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38389
- });
38275
+ 'item-checkbox-checked': option.checked
38276
+ }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
38277
+ this.setChecked(ev);
38278
+ this.callOptionHandler(ev);
38279
+ } }, option.text))));
38390
38280
  }
38391
38281
  renderRadioOptions(options) {
38392
- const mode = getIonMode$1(this);
38393
38282
  const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
38394
- return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
38395
- var _a, _b;
38396
- /**
38397
- * Cast to `SelectOverlayOption` to access rich content
38398
- * fields (`startContent`, `endContent`, `description`)
38399
- * that are passed through from `ion-select` but not
38400
- * part of the public `SelectPopoverOption` interface.
38401
- */
38402
- const richOption = option;
38403
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38404
- const optionLabelOptions = {
38405
- id: `popover-option-${index}`,
38406
- label: richOption.text,
38407
- startContent: richOption.startContent,
38408
- endContent: richOption.endContent,
38409
- description: richOption.description,
38410
- };
38411
- return (hAsync("ion-item", {
38283
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) => (hAsync("ion-item", { class: Object.assign({
38412
38284
  // TODO FW-4784
38413
- disabled: option.disabled, class: Object.assign({
38414
- // TODO FW-4784
38415
- 'item-radio-checked': option.value === checked
38416
- }, getClassMap(option.cssClass))
38417
- }, hAsync("ion-radio", { class: {
38418
- 'select-option-has-rich-content': hasRichContent,
38419
- }, value: option.value, disabled: option.disabled, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : getOverlayLabelJustify(mode, 'radio'), labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : getOverlayLabelPlacement(mode, 'radio'), onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
38420
- if (ev.key === 'Enter' && !ev.repeat) {
38421
- this.pendingEnterTarget = ev.currentTarget;
38422
- }
38423
- }, onKeyUp: (ev) => {
38424
- if (ev.key === ' ') {
38425
- // Space selects and dismisses in one press.
38285
+ 'item-radio-checked': option.value === checked
38286
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
38287
+ if (ev.key === 'Enter' && !ev.repeat) {
38288
+ this.pendingEnterTarget = ev.currentTarget;
38289
+ }
38290
+ }, onKeyUp: (ev) => {
38291
+ if (ev.key === ' ') {
38292
+ // Space selects and dismisses in one press.
38293
+ this.dismissParentPopover();
38294
+ }
38295
+ else if (ev.key === 'Enter') {
38296
+ const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
38297
+ this.pendingEnterTarget = null;
38298
+ if (shouldDismiss) {
38426
38299
  this.dismissParentPopover();
38427
38300
  }
38428
- else if (ev.key === 'Enter') {
38429
- const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
38430
- this.pendingEnterTarget = null;
38431
- if (shouldDismiss) {
38432
- this.dismissParentPopover();
38433
- }
38434
- }
38435
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38436
- })));
38301
+ }
38302
+ } }, option.text))))));
38437
38303
  }
38438
38304
  render() {
38439
38305
  const { header, message, options, subHeader } = this;
38440
38306
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
38441
- return (hAsync(Host, { key: 'd0c107e0ca78955a3cfcd9f098a527fb35eff14d', class: getIonMode$1(this) }, hAsync("ion-list", { key: '1e103312e22bf78d2201a0f88cc4fed789f62a2b' }, header !== undefined && hAsync("ion-list-header", { key: '657439905dc480112ed8d7f8d4a01464724de2bd' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'e0eaa0250bf233cf846adba5ddc141bf3430c2a8' }, hAsync("ion-label", { key: 'ad1cff877f9d582fbc64f9049603146fd1a1a6f9', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'ead921d395b614a99c89a8ffe2a102a620f80767' }, subHeader), message !== undefined && hAsync("p", { key: '3a47e7091528930f33324ccd04d6734217155244' }, message)))), this.renderOptions(options))));
38307
+ return (hAsync(Host, { key: 'e7449a1ecfcdbf45a79f8e26a00253c4e146448a', class: getIonMode$1(this) }, hAsync("ion-list", { key: '52abdfc8668c3429a0dcefef8ddedb6647fdd894' }, header !== undefined && hAsync("ion-list-header", { key: '978e5c03728756feafcc60a0e10e6ec59bf2ae11' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'e93c44e7f07a76def16e4b11f0fb4780d84ed402' }, hAsync("ion-label", { key: 'bba1aac43b0bc7f4f00978dd8301985233f3725c', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'ad96f6017cf2cc5219540bded2c4f1ca3b532de2' }, subHeader), message !== undefined && hAsync("p", { key: '3fd038921dc40c4d0c29734433984b279ccaeec3' }, message)))), this.renderOptions(options))));
38442
38308
  }
38443
38309
  get el() { return getElement(this); }
38444
38310
  static get style() { return {
@@ -38488,11 +38354,11 @@ class SkeletonText {
38488
38354
  const animated = this.animated && config.getBoolean('animated', true);
38489
38355
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
38490
38356
  const mode = getIonMode$1(this);
38491
- return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
38357
+ return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
38492
38358
  [mode]: true,
38493
38359
  'skeleton-text-animated': animated,
38494
38360
  'in-media': inMedia,
38495
- } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
38361
+ } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
38496
38362
  }
38497
38363
  get el() { return getElement(this); }
38498
38364
  static get style() { return skeletonTextCss(); }
@@ -38544,7 +38410,7 @@ class Spinner {
38544
38410
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
38545
38411
  }
38546
38412
  }
38547
- return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
38413
+ return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
38548
38414
  [mode]: true,
38549
38415
  [`spinner-${spinnerName}`]: true,
38550
38416
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -38643,12 +38509,12 @@ class SplitPane {
38643
38509
  }
38644
38510
  render() {
38645
38511
  const mode = getIonMode$1(this);
38646
- return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
38512
+ return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
38647
38513
  [mode]: true,
38648
38514
  // Used internally for styling
38649
38515
  [`split-pane-${mode}`]: true,
38650
38516
  'split-pane-visible': this.visible,
38651
- } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
38517
+ } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
38652
38518
  }
38653
38519
  get el() { return getElement(this); }
38654
38520
  static get watchers() { return {
@@ -38720,10 +38586,10 @@ class Tab {
38720
38586
  }
38721
38587
  render() {
38722
38588
  const { tab, active, component } = this;
38723
- return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38589
+ return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38724
38590
  'ion-page': component === undefined,
38725
38591
  'tab-hidden': !active,
38726
- } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38592
+ } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
38727
38593
  }
38728
38594
  get el() { return getElement(this); }
38729
38595
  static get watchers() { return {
@@ -38837,11 +38703,11 @@ class TabBar {
38837
38703
  const { color, translucent, keyboardVisible } = this;
38838
38704
  const mode = getIonMode$1(this);
38839
38705
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
38840
- return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38706
+ return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38841
38707
  [mode]: true,
38842
38708
  'tab-bar-translucent': translucent,
38843
38709
  'tab-bar-hidden': shouldHide,
38844
- }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38710
+ }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
38845
38711
  }
38846
38712
  get el() { return getElement(this); }
38847
38713
  static get watchers() { return {
@@ -38939,7 +38805,7 @@ class TabButton {
38939
38805
  rel,
38940
38806
  target,
38941
38807
  };
38942
- return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38808
+ return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38943
38809
  [mode]: true,
38944
38810
  'tab-selected': selected,
38945
38811
  'tab-disabled': disabled,
@@ -38951,7 +38817,7 @@ class TabButton {
38951
38817
  'ion-activatable': true,
38952
38818
  'ion-selectable': true,
38953
38819
  'ion-focusable': true,
38954
- } }, hAsync("a", Object.assign({ key: '4cc8e695425956ffc7622af27c1b88a45f8a0c68' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'c529c166f557e1a5c744873c075b564c49786a2c', class: "button-inner" }, hAsync("slot", { key: 'f832355934d80267cd6e81e58b9c5afce0b42907' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '90e79bdf38ba1cd89fca9ce63465e26a29b49316', type: "unbounded" }))));
38820
+ } }, hAsync("a", Object.assign({ key: 'c053d32fbcdad8d5e4a409956b47164d7a080c6b' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'b3b460d33ec978a46b069442280d31b23bc8e794', class: "button-inner" }, hAsync("slot", { key: '87b3928475c941263261101b8fae27c6370d4671' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '6532e5b4546aebe4becaebe1c93ce0e6aedaffe7', type: "unbounded" }))));
38955
38821
  }
38956
38822
  get el() { return getElement(this); }
38957
38823
  static get style() { return {
@@ -39142,7 +39008,7 @@ class Tabs {
39142
39008
  return Array.from(this.el.querySelectorAll('ion-tab'));
39143
39009
  }
39144
39010
  render() {
39145
- return (hAsync(Host, { key: 'ba04a29fdd02d7c758cbaa98cfc589949872d832', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'd5794140152e2c251e567eeb06afc392af74749d', name: "top" }), hAsync("div", { key: '26fb83786637fe7288901fbbdb3694b8bc94329f', class: "tabs-inner" }, hAsync("slot", { key: '60c663a8647e684455b533eaf5fa3908f9333ae9' })), hAsync("slot", { key: '2d9f7d07c8cdc72f5df200fa71fa56a9dd822c4c', name: "bottom" })));
39011
+ return (hAsync(Host, { key: 'c7131135b31aa312dc0207602561e1c0f4ac3e53', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '6c46e91c0389bbcea1f15f35cf3ea513a74ac545', name: "top" }), hAsync("div", { key: '4f1b649d8bb60b61402b97359de204979c5eda52', class: "tabs-inner" }, hAsync("slot", { key: '8d1ef4952be4fb33567376e1083ea4da697fcae0' })), hAsync("slot", { key: '260b8da8031494e9cb4635b3d22c49a433042db1', name: "bottom" })));
39146
39012
  }
39147
39013
  get el() { return getElement(this); }
39148
39014
  static get style() { return tabsCss(); }
@@ -39182,9 +39048,9 @@ class Text {
39182
39048
  }
39183
39049
  render() {
39184
39050
  const mode = getIonMode$1(this);
39185
- return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
39051
+ return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
39186
39052
  [mode]: true,
39187
- }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
39053
+ }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
39188
39054
  }
39189
39055
  static get style() { return textCss(); }
39190
39056
  static get cmpMeta() { return {
@@ -39645,7 +39511,7 @@ class Textarea {
39645
39511
  * TODO(FW-5592): Remove hasStartEndSlots condition
39646
39512
  */
39647
39513
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
39648
- return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
39514
+ return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
39649
39515
  [mode]: true,
39650
39516
  'has-value': hasValue,
39651
39517
  'has-focus': hasFocus,
@@ -39654,7 +39520,7 @@ class Textarea {
39654
39520
  [`textarea-shape-${shape}`]: shape !== undefined,
39655
39521
  [`textarea-label-placement-${labelPlacement}`]: true,
39656
39522
  'textarea-disabled': disabled,
39657
- }) }, hAsync("label", { key: 'd4d835ffedbf8b6de192096e21167ec4f7e01d30', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '39b03e26c23473de31a0237543eaf1e0875e6ed9', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e9e0997e7dc6d25f09e8439d81e138590c33a151', class: "start-slot-wrapper" }, hAsync("slot", { key: '2d88aace11d74196758e40af27a777eebb270019', name: "start" })), hAsync("div", { key: '8434424404f9fe707f9209ac6495a33bae060538', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '5bb8eaeba76c39bccadb7c041a10fb077c422dcc', 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: '107707676552f8faca3e708285cc3266061a0394', class: "end-slot-wrapper" }, hAsync("slot", { key: 'dc890ffdce898f3d39a315e7bc432840559be466', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4554ad09ac0908cea2e90bfa2301b4cd80ac7242', class: "textarea-highlight" })), this.renderBottomContent()));
39523
+ }) }, hAsync("label", { key: '003da35bad92ab36777b7ae40855541bf900c64a', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '3cae2d19f96ba2b18a2d64298fdcc4b64ad34ac7', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e26cb06763d551f7f83b6ea80349871aab18a016', class: "start-slot-wrapper" }, hAsync("slot", { key: '135ba6db893eaca5f2a785fe61e24f33f56f3765', name: "start" })), hAsync("div", { key: '951eabdd01c5e370790cec8578268361dcc8abdc', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '13d78f1a934b9f8d85cd9ed386dabc786f953f1d', 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: '699038558019470bccb4853fa65e7aeb069e0baa', class: "end-slot-wrapper" }, hAsync("slot", { key: '19d8c212d7c718aeb6924e10bf8e48cad01314ea', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '910a9437437ce7cab21e37a1cb4a6b309afda58f', class: "textarea-highlight" })), this.renderBottomContent()));
39658
39524
  }
39659
39525
  get el() { return getElement(this); }
39660
39526
  static get watchers() { return {
@@ -39723,7 +39589,7 @@ class Thumbnail {
39723
39589
  registerInstance(this, hostRef);
39724
39590
  }
39725
39591
  render() {
39726
- return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39592
+ return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
39727
39593
  }
39728
39594
  static get style() { return thumbnailCss(); }
39729
39595
  static get cmpMeta() { return {
@@ -40583,9 +40449,9 @@ class Toast {
40583
40449
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
40584
40450
  printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
40585
40451
  }
40586
- return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
40452
+ return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
40587
40453
  zIndex: `${60000 + this.overlayIndex}`,
40588
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '8b24ba5d3d51d1ab94b9bf6bb5d6e4b8bb3248a7', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: 'e1ebdf4f0425cc7b1e2688667ee9a2b3c545804a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '552b1ab8f4e72882cc8e878579c7a594119677e1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '8ac8d64f632fbedadb180132c83043474466bee0', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
40454
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '0860f7e895d8bc66e44c4d924ca569f4cbb1a749', class: wrapperClass, part: "wrapper" }, hAsync("div", { key: '28784199c880a3f664677c8f5560b7caa8903251', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '0a63ba1336ad43d2aec14e49055eb46c112359c2', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'ecec8107af582dc55d4b3828dd7f3054a29f26b1', class: "toast-content", part: "content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
40589
40455
  }
40590
40456
  get el() { return getElement(this); }
40591
40457
  static get watchers() { return {
@@ -40903,7 +40769,7 @@ class Toggle {
40903
40769
  const value = this.getValue();
40904
40770
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
40905
40771
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
40906
- return (hAsync(Host, { key: 'ab093ddb505af61685cbb8571af1e765fc0292f8', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
40772
+ return (hAsync(Host, { key: '736e1dcfca34fd41f6f0632652e7f86d6996a232', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
40907
40773
  [mode]: true,
40908
40774
  'in-item': hostContext('ion-item', el),
40909
40775
  'toggle-activated': activated,
@@ -40913,10 +40779,10 @@ class Toggle {
40913
40779
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
40914
40780
  [`toggle-label-placement-${labelPlacement}`]: true,
40915
40781
  [`toggle-${rtl}`]: true,
40916
- }) }, hAsync("label", { key: 'b4b05e458fcbc767e4392ae43e647b075780cad0', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: 'c09100447011c51d5b49b4400ec7d72012e3bc6f', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '71cf059a999ae572a20127b76907e010ace486ad', class: {
40782
+ }) }, hAsync("label", { key: 'e697739fd3964c1c6c23331cf7e38a9841c46a6a', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '3d500b8c1bc879591249d183c1abb3f5f26aff6b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: 'e38f3fe0e66b4ca434fd81514f5ef771c2960841', class: {
40917
40783
  'label-text-wrapper': true,
40918
40784
  'label-text-wrapper-hidden': !hasLabel,
40919
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40785
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
40920
40786
  }
40921
40787
  get el() { return getElement(this); }
40922
40788
  static get watchers() { return {
@@ -41028,10 +40894,10 @@ class Toolbar {
41028
40894
  this.childrenStyles.forEach((value) => {
41029
40895
  Object.assign(childStyles, value);
41030
40896
  });
41031
- return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40897
+ return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
41032
40898
  [mode]: true,
41033
40899
  'in-toolbar': hostContext('ion-toolbar', this.el),
41034
- })) }, hAsync("div", { key: 'df44c9f0fe3958116ab860b0dad79c53b89f6c59', class: "toolbar-background", part: "background" }), hAsync("div", { key: '2169ffa576875b8d5624211cc0b4bf86191562bc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'c8910dcf1ce98ab427fd89c3396a67c2a75bdd07', name: "start" }), hAsync("slot", { key: '05da24d5ef96b9eebd83b534ce02c1f7bcd06680', name: "secondary" }), hAsync("div", { key: '090fea1541e7e2b6ad74a6ded4eadffdb471ccce', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '507e143f92f6fa59ff23d94026411fa2c74f2f8e' })), hAsync("slot", { key: 'f79fdee472e657e26a910cb89d7551943e40e440', name: "primary" }), hAsync("slot", { key: 'dd40fe9ed490cf4346c642e195fdb524dc6cc4f5', name: "end" }))));
40900
+ })) }, hAsync("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), hAsync("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, hAsync("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), hAsync("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), hAsync("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), hAsync("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), hAsync("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
41035
40901
  }
41036
40902
  get el() { return getElement(this); }
41037
40903
  static get style() { return {
@@ -41077,11 +40943,11 @@ class ToolbarTitle {
41077
40943
  render() {
41078
40944
  const mode = getIonMode$1(this);
41079
40945
  const size = this.getSize();
41080
- return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40946
+ return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
41081
40947
  [mode]: true,
41082
40948
  [`title-${size}`]: true,
41083
40949
  'title-rtl': document.dir === 'rtl',
41084
- }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40950
+ }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
41085
40951
  }
41086
40952
  get el() { return getElement(this); }
41087
40953
  static get watchers() { return {
@@ -41161,8 +41027,10 @@ registerComponents([
41161
41027
  Nav,
41162
41028
  NavLink,
41163
41029
  Note,
41030
+ Picker$1,
41164
41031
  Picker,
41165
41032
  PickerColumn,
41033
+ PickerColumnCmp,
41166
41034
  PickerColumnOption,
41167
41035
  Popover,
41168
41036
  ProgressBar,