@ionic/core 8.8.12-dev.11781813448.16e7a064 → 8.8.12-dev.11782342444.186b6e9c

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 (338) 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-infinite-scroll-content.js +1 -1
  12. package/components/ion-input-password-toggle.js +1 -1
  13. package/components/ion-input.js +1 -1
  14. package/components/ion-item-option.js +1 -1
  15. package/components/ion-item.js +1 -1
  16. package/components/ion-loading.js +1 -1
  17. package/components/ion-menu-button.js +1 -1
  18. package/components/ion-menu.js +1 -1
  19. package/components/ion-modal.js +1 -1
  20. package/components/ion-popover.js +1 -1
  21. package/components/ion-progress-bar.js +1 -1
  22. package/components/ion-radio.js +1 -1
  23. package/components/ion-range.js +1 -1
  24. package/components/ion-refresher-content.js +1 -1
  25. package/components/ion-refresher.js +1 -1
  26. package/components/ion-reorder-group.js +1 -1
  27. package/components/ion-reorder.js +1 -1
  28. package/components/ion-ripple-effect.js +1 -1
  29. package/components/ion-router-link.js +1 -1
  30. package/components/ion-router-outlet.js +1 -1
  31. package/components/ion-row.js +1 -1
  32. package/components/ion-searchbar.js +1 -1
  33. package/components/ion-segment-button.js +1 -1
  34. package/components/ion-segment-content.js +1 -1
  35. package/components/ion-segment-view.js +1 -1
  36. package/components/ion-segment.js +1 -1
  37. package/components/ion-select-modal.js +1 -1
  38. package/components/ion-select-option.js +1 -1
  39. package/components/ion-select-popover.js +1 -1
  40. package/components/ion-select.js +1 -1
  41. package/components/ion-skeleton-text.js +1 -1
  42. package/components/ion-spinner.js +1 -1
  43. package/components/ion-split-pane.js +1 -1
  44. package/components/ion-tab-bar.js +1 -1
  45. package/components/ion-tab-button.js +1 -1
  46. package/components/ion-tab.js +1 -1
  47. package/components/ion-tabs.js +1 -1
  48. package/components/ion-text.js +1 -1
  49. package/components/ion-textarea.js +1 -1
  50. package/components/ion-thumbnail.js +1 -1
  51. package/components/ion-title.js +1 -1
  52. package/components/ion-toast.js +1 -1
  53. package/components/ion-toggle.js +1 -1
  54. package/components/ion-toolbar.js +1 -1
  55. package/components/p-BSQPZ79H.js +4 -0
  56. package/components/p-BwKpO3Is.js +4 -0
  57. package/components/p-C6x7QJKS.js +4 -0
  58. package/components/p-CHzfYZbv.js +4 -0
  59. package/components/p-CMpqV7Co.js +4 -0
  60. package/components/p-CWo79Ftj.js +4 -0
  61. package/components/p-CgGiBa26.js +4 -0
  62. package/components/p-D4h1H_hh.js +4 -0
  63. package/components/{p-C2lKgrXx.js → p-DEBD4LvH.js} +1 -1
  64. package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
  65. package/components/p-DiCu-HwG.js +4 -0
  66. package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
  67. package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
  68. package/components/p-VlRjwhIK.js +4 -0
  69. package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
  70. package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
  71. package/components/p-uTR_dEqg.js +4 -0
  72. package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
  73. package/dist/cjs/config-DWdFbSNK.js +35 -0
  74. package/dist/cjs/index-C147NqgL.js +414 -0
  75. package/dist/cjs/index.cjs.js +6 -6
  76. package/dist/cjs/ion-action-sheet.cjs.entry.js +27 -7
  77. package/dist/cjs/ion-alert.cjs.entry.js +64 -25
  78. package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
  79. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  81. package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
  82. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -2
  83. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  84. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  85. package/dist/cjs/ion-loading.cjs.entry.js +10 -5
  86. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  87. package/dist/cjs/ion-modal.cjs.entry.js +21 -10
  88. package/dist/cjs/ion-popover.cjs.entry.js +9 -5
  89. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  90. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  91. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  92. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -5
  93. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  95. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  96. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  97. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  98. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  100. package/dist/cjs/ion-select-modal.cjs.entry.js +84 -30
  101. package/dist/cjs/ion-select_3.cjs.entry.js +406 -48
  102. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  103. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  104. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  105. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  106. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  108. package/dist/cjs/ion-toast.cjs.entry.js +6 -5
  109. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  110. package/dist/cjs/ionic.cjs.js +1 -1
  111. package/dist/cjs/loader.cjs.js +1 -1
  112. package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
  113. package/dist/cjs/{overlays-TbKsuC-K.js → overlays-DSmSrd_4.js} +26 -7
  114. package/dist/cjs/select-option-render-BUmJxlqW.js +116 -0
  115. package/dist/collection/collection-manifest.json +6 -10
  116. package/dist/collection/components/action-sheet/action-sheet.ios.css +229 -2
  117. package/dist/collection/components/action-sheet/action-sheet.js +24 -5
  118. package/dist/collection/components/action-sheet/action-sheet.md.css +175 -2
  119. package/dist/collection/components/alert/alert.ios.css +280 -10
  120. package/dist/collection/components/alert/alert.js +59 -21
  121. package/dist/collection/components/alert/alert.md.css +269 -20
  122. package/dist/collection/components/input/input.js +8 -8
  123. package/dist/collection/components/loading/loading.js +7 -3
  124. package/dist/collection/components/modal/modal.js +23 -12
  125. package/dist/collection/components/popover/popover.ios.css +15 -0
  126. package/dist/collection/components/popover/popover.js +7 -3
  127. package/dist/collection/components/popover/popover.md.css +15 -0
  128. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  129. package/dist/collection/components/radio/radio.js +4 -4
  130. package/dist/collection/components/range/range.js +3 -3
  131. package/dist/collection/components/refresher/refresher.js +1 -1
  132. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  133. package/dist/collection/components/reorder/reorder.js +1 -1
  134. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  135. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  136. package/dist/collection/components/router-link/router-link.js +2 -2
  137. package/dist/collection/components/router-outlet/router-outlet.js +38 -5
  138. package/dist/collection/components/row/row.js +1 -1
  139. package/dist/collection/components/searchbar/searchbar.js +9 -9
  140. package/dist/collection/components/segment/segment.js +2 -2
  141. package/dist/collection/components/segment-button/segment-button.js +2 -2
  142. package/dist/collection/components/segment-content/segment-content.js +1 -1
  143. package/dist/collection/components/segment-view/segment-view.js +2 -2
  144. package/dist/collection/components/select/select.ios.css +33 -0
  145. package/dist/collection/components/select/select.js +323 -16
  146. package/dist/collection/components/select/select.md.css +33 -0
  147. package/dist/collection/components/select-modal/select-modal.ios.css +219 -0
  148. package/dist/collection/components/select-modal/select-modal.js +79 -26
  149. package/dist/collection/components/select-modal/select-modal.md.css +165 -0
  150. package/dist/collection/components/select-option/select-option.js +65 -1
  151. package/dist/collection/components/select-popover/select-popover.ios.css +219 -0
  152. package/dist/collection/components/select-popover/select-popover.js +78 -26
  153. package/dist/collection/components/select-popover/select-popover.md.css +165 -0
  154. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  155. package/dist/collection/components/spinner/spinner.js +1 -1
  156. package/dist/collection/components/split-pane/split-pane.js +2 -2
  157. package/dist/collection/components/tab/tab.js +2 -2
  158. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  159. package/dist/collection/components/tab-button/tab-button.js +2 -2
  160. package/dist/collection/components/tabs/tabs.js +1 -1
  161. package/dist/collection/components/text/text.js +2 -2
  162. package/dist/collection/components/textarea/textarea.js +2 -2
  163. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  164. package/dist/collection/components/title/title.js +2 -2
  165. package/dist/collection/components/toast/toast.js +2 -2
  166. package/dist/collection/components/toggle/toggle.js +3 -3
  167. package/dist/collection/components/toolbar/toolbar.js +2 -2
  168. package/dist/collection/index.js +1 -1
  169. package/dist/collection/utils/overlay-control-label.js +45 -0
  170. package/dist/collection/utils/overlays.js +25 -6
  171. package/dist/collection/utils/sanitization/index.js +255 -14
  172. package/dist/collection/utils/select-option-render.js +111 -0
  173. package/dist/docs.json +479 -1175
  174. package/dist/esm/config-BwKpO3Is.js +31 -0
  175. package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
  176. package/dist/esm/index-CtAGDdQq.js +409 -0
  177. package/dist/esm/index.js +3 -2
  178. package/dist/esm/ion-accordion_2.entry.js +1 -1
  179. package/dist/esm/ion-action-sheet.entry.js +27 -7
  180. package/dist/esm/ion-alert.entry.js +63 -24
  181. package/dist/esm/ion-app_8.entry.js +23 -9
  182. package/dist/esm/ion-avatar_3.entry.js +1 -1
  183. package/dist/esm/ion-back-button.entry.js +1 -1
  184. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  185. package/dist/esm/ion-col_3.entry.js +1 -1
  186. package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +5 -641
  187. package/dist/esm/ion-fab_3.entry.js +1 -1
  188. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -1
  189. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  190. package/dist/esm/ion-input.entry.js +5 -5
  191. package/dist/esm/ion-item_8.entry.js +3 -3
  192. package/dist/esm/ion-loading.entry.js +9 -4
  193. package/dist/esm/ion-menu_3.entry.js +2 -2
  194. package/dist/esm/ion-modal.entry.js +21 -10
  195. package/dist/esm/ion-popover.entry.js +9 -5
  196. package/dist/esm/ion-progress-bar.entry.js +1 -1
  197. package/dist/esm/ion-radio_2.entry.js +3 -3
  198. package/dist/esm/ion-range.entry.js +3 -3
  199. package/dist/esm/ion-refresher_2.entry.js +5 -4
  200. package/dist/esm/ion-reorder_2.entry.js +3 -3
  201. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  202. package/dist/esm/ion-route_4.entry.js +2 -2
  203. package/dist/esm/ion-searchbar.entry.js +6 -6
  204. package/dist/esm/ion-segment-content.entry.js +1 -1
  205. package/dist/esm/ion-segment-view.entry.js +2 -2
  206. package/dist/esm/ion-segment_2.entry.js +4 -4
  207. package/dist/esm/ion-select-modal.entry.js +84 -30
  208. package/dist/esm/ion-select_3.entry.js +409 -51
  209. package/dist/esm/ion-spinner.entry.js +1 -1
  210. package/dist/esm/ion-split-pane.entry.js +2 -2
  211. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  212. package/dist/esm/ion-tab_2.entry.js +3 -3
  213. package/dist/esm/ion-text.entry.js +2 -2
  214. package/dist/esm/ion-textarea.entry.js +2 -2
  215. package/dist/esm/ion-toast.entry.js +5 -4
  216. package/dist/esm/ion-toggle.entry.js +4 -4
  217. package/dist/esm/ionic.js +1 -1
  218. package/dist/esm/loader.js +1 -1
  219. package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
  220. package/dist/esm/{overlays-TbiM4mdr.js → overlays-DLNOHWNc.js} +26 -7
  221. package/dist/esm/select-option-render-CZcvbJ--.js +114 -0
  222. package/dist/html.html-data.json +50 -78
  223. package/dist/ionic/index.esm.js +1 -1
  224. package/dist/ionic/ionic.esm.js +1 -1
  225. package/dist/ionic/p-0feac19e.entry.js +4 -0
  226. package/dist/ionic/{p-8fce95d5.entry.js → p-14095ba5.entry.js} +1 -1
  227. package/dist/ionic/p-1c5a5a59.entry.js +4 -0
  228. package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
  229. package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
  230. package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
  231. package/dist/ionic/p-4621c387.entry.js +4 -0
  232. package/dist/ionic/p-4bb3eb60.entry.js +4 -0
  233. package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
  234. package/dist/ionic/p-5be4fdc3.entry.js +4 -0
  235. package/dist/ionic/p-5c3ec490.entry.js +4 -0
  236. package/dist/ionic/p-5d1ac2c7.entry.js +4 -0
  237. package/dist/ionic/p-5x6vmGTf.js +4 -0
  238. package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
  239. package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
  240. package/dist/ionic/p-74c540f5.entry.js +4 -0
  241. package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
  242. package/dist/ionic/p-79a36078.entry.js +4 -0
  243. package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
  244. package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
  245. package/dist/ionic/p-8d624ee5.entry.js +4 -0
  246. package/dist/ionic/p-8e00858b.entry.js +4 -0
  247. package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
  248. package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
  249. package/dist/ionic/p-BSQPZ79H.js +4 -0
  250. package/dist/ionic/p-BwKpO3Is.js +4 -0
  251. package/dist/ionic/p-Cg5-OQYy.js +4 -0
  252. package/dist/ionic/p-D3I30-jC.js +4 -0
  253. package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
  254. package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
  255. package/dist/ionic/p-aedf1108.entry.js +4 -0
  256. package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
  257. package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
  258. package/dist/ionic/p-c11135d4.entry.js +4 -0
  259. package/dist/ionic/p-c4156e73.entry.js +4 -0
  260. package/dist/ionic/{p-94f2a736.entry.js → p-c93553d2.entry.js} +1 -1
  261. package/dist/ionic/p-ce7992c4.entry.js +4 -0
  262. package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
  263. package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
  264. package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
  265. package/dist/ionic/p-ed797c72.entry.js +4 -0
  266. package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
  267. package/dist/ionic/p-f09f9642.entry.js +4 -0
  268. package/dist/ionic/p-f1c06f82.entry.js +4 -0
  269. package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
  270. package/dist/types/components/input/input.d.ts +1 -1
  271. package/dist/types/components/modal/modal.d.ts +11 -4
  272. package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
  273. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  274. package/dist/types/components/select/select-interface.d.ts +31 -0
  275. package/dist/types/components/select/select.d.ts +18 -0
  276. package/dist/types/components/select-option/select-option.d.ts +41 -0
  277. package/dist/types/components.d.ts +58 -286
  278. package/dist/types/index.d.ts +1 -1
  279. package/dist/types/interface.d.ts +0 -1
  280. package/dist/types/utils/config.d.ts +0 -8
  281. package/dist/types/utils/overlay-control-label.d.ts +32 -0
  282. package/dist/types/utils/overlays.d.ts +11 -9
  283. package/dist/types/utils/sanitization/index.d.ts +54 -2
  284. package/dist/types/utils/select-option-render.d.ts +53 -0
  285. package/hydrate/index.js +1376 -1141
  286. package/hydrate/index.mjs +1376 -1141
  287. package/package.json +37 -5
  288. package/components/ion-picker-legacy-column.d.ts +0 -11
  289. package/components/ion-picker-legacy-column.js +0 -4
  290. package/components/ion-picker-legacy.d.ts +0 -11
  291. package/components/ion-picker-legacy.js +0 -4
  292. package/components/p-0NRupjzW.js +0 -4
  293. package/components/p-Bth-EzJ0.js +0 -4
  294. package/components/p-CU5rbWAW.js +0 -4
  295. package/components/p-DDWp95gH.js +0 -4
  296. package/components/p-W9CZ2mWX.js +0 -4
  297. package/components/p-dhLYXa7A.js +0 -4
  298. package/components/p-k_E4tX5Z.js +0 -4
  299. package/components/p-nQi4oKcG.js +0 -4
  300. package/components/p-uVRyUM3z.js +0 -4
  301. package/dist/cjs/config-xninhj0J.js +0 -201
  302. package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
  303. package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
  304. package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
  305. package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
  306. package/dist/collection/components/picker-legacy/picker.js +0 -890
  307. package/dist/collection/components/picker-legacy/picker.md.css +0 -287
  308. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
  309. package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
  310. package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
  311. package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
  312. package/dist/esm/config-DQCONYYp.js +0 -195
  313. package/dist/ionic/p-00dbb17e.entry.js +0 -4
  314. package/dist/ionic/p-01f81ea5.entry.js +0 -4
  315. package/dist/ionic/p-0d005398.entry.js +0 -4
  316. package/dist/ionic/p-20b1a044.entry.js +0 -4
  317. package/dist/ionic/p-21eb76d5.entry.js +0 -4
  318. package/dist/ionic/p-27d30585.entry.js +0 -4
  319. package/dist/ionic/p-2bb2cb18.entry.js +0 -4
  320. package/dist/ionic/p-2f55dc1a.entry.js +0 -4
  321. package/dist/ionic/p-30bf9737.entry.js +0 -4
  322. package/dist/ionic/p-3a541154.entry.js +0 -4
  323. package/dist/ionic/p-485fda23.entry.js +0 -4
  324. package/dist/ionic/p-4baa5b82.entry.js +0 -4
  325. package/dist/ionic/p-4dc1c33c.entry.js +0 -4
  326. package/dist/ionic/p-5fc7e542.entry.js +0 -4
  327. package/dist/ionic/p-DzWaWHGc.js +0 -4
  328. package/dist/ionic/p-a21add2f.entry.js +0 -4
  329. package/dist/ionic/p-aa5d6b8f.entry.js +0 -4
  330. package/dist/ionic/p-e847a888.entry.js +0 -4
  331. package/dist/ionic/p-ec090e0a.entry.js +0 -4
  332. package/dist/ionic/p-xOfi7-Zn.js +0 -4
  333. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
  334. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
  335. package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
  336. package/dist/types/components/picker-legacy/picker.d.ts +0 -158
  337. package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
  338. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
package/hydrate/index.js CHANGED
@@ -8041,7 +8041,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8041
8041
  * Should NOT include: Toast
8042
8042
  */
8043
8043
  const trapKeyboardFocus = (ev, doc) => {
8044
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
8044
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8045
8045
  const target = ev.target;
8046
8046
  /**
8047
8047
  * If no active overlay, ignore this event.
@@ -8275,7 +8275,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8275
8275
  */
8276
8276
  const getOverlays = (doc, selector) => {
8277
8277
  if (selector === undefined) {
8278
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8278
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8279
8279
  }
8280
8280
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8281
8281
  };
@@ -8337,6 +8337,29 @@ const setRootAriaHidden = (hidden = false) => {
8337
8337
  viewContainer.removeAttribute('aria-hidden');
8338
8338
  }
8339
8339
  };
8340
+ /**
8341
+ * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8342
+ * an overlay is removed from the DOM without going through
8343
+ * the `dismiss()` flow (e.g., when a framework unmounts the
8344
+ * overlay during a route change).
8345
+ *
8346
+ * Should be called from an overlay's `disconnectedCallback`
8347
+ * when the overlay was still presented at the time of removal.
8348
+ */
8349
+ const cleanupRootFocusTrapAccessibility = () => {
8350
+ if (typeof document === 'undefined') {
8351
+ return;
8352
+ }
8353
+ const remainingOverlays = getPresentedOverlays(document);
8354
+ const hasRemainingLocking = remainingOverlays.some((o) => {
8355
+ const el = o;
8356
+ return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8357
+ });
8358
+ if (!hasRemainingLocking) {
8359
+ setRootAriaHidden(false);
8360
+ document.body.classList.remove(BACKDROP_NO_SCROLL);
8361
+ }
8362
+ };
8340
8363
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8341
8364
  var _a, _b;
8342
8365
  if (overlay.presented) {
@@ -8738,6 +8761,516 @@ const createTriggerController = () => {
8738
8761
  };
8739
8762
  const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
8740
8763
 
8764
+ /**
8765
+ * Sanitize an untrusted HTML string.
8766
+ *
8767
+ * Parses the string into a detached DOM, removes blocked tags, strips
8768
+ * attributes outside the `allowedAttributes` list (refer `sanitizeElement`),
8769
+ * and scrubs script-scheme URLs. Returns the sanitized HTML string.
8770
+ *
8771
+ * Use this when you have an HTML string from an unknown source and need to
8772
+ * render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
8773
+ * have a DOM tree and want to sanitize it in place without a string round
8774
+ * trip; both apply the same attribute policy.
8775
+ *
8776
+ * @param untrustedString - The HTML string to sanitize. Pass an
8777
+ * `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
8778
+ * @returns The sanitized HTML string, or `undefined` if the input was
8779
+ * `undefined`. Returns `''` if sanitization fails or the input contains
8780
+ * an inline `onload=` handler.
8781
+ */
8782
+ const sanitizeDOMString = (untrustedString) => {
8783
+ try {
8784
+ if (untrustedString instanceof IonicSafeString) {
8785
+ return untrustedString.value;
8786
+ }
8787
+ if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
8788
+ return untrustedString;
8789
+ }
8790
+ /**
8791
+ * onload is fired when appending to a document
8792
+ * fragment in Chrome. If a string
8793
+ * contains onload then we should not
8794
+ * attempt to add this to the fragment.
8795
+ */
8796
+ if (untrustedString.includes('onload=')) {
8797
+ return '';
8798
+ }
8799
+ /**
8800
+ * Create a document fragment
8801
+ * separate from the main DOM,
8802
+ * create a div to do our work in
8803
+ */
8804
+ const documentFragment = document.createDocumentFragment();
8805
+ const workingDiv = document.createElement('div');
8806
+ documentFragment.appendChild(workingDiv);
8807
+ workingDiv.innerHTML = untrustedString;
8808
+ /**
8809
+ * Remove any elements
8810
+ * that are blocked
8811
+ */
8812
+ blockedTags.forEach((blockedTag) => {
8813
+ const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
8814
+ for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
8815
+ const element = getElementsToRemove[elementIndex];
8816
+ if (element.parentNode) {
8817
+ element.parentNode.removeChild(element);
8818
+ }
8819
+ else {
8820
+ documentFragment.removeChild(element);
8821
+ }
8822
+ /**
8823
+ * We still need to sanitize
8824
+ * the children of this element
8825
+ * as they are left behind
8826
+ */
8827
+ const childElements = getElementChildren(element);
8828
+ /* eslint-disable-next-line */
8829
+ for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
8830
+ sanitizeElement(childElements[childIndex]);
8831
+ }
8832
+ }
8833
+ });
8834
+ /**
8835
+ * Go through remaining elements and remove
8836
+ * non-allowed attribs
8837
+ */
8838
+ // IE does not support .children on document fragments, only .childNodes
8839
+ const dfChildren = getElementChildren(documentFragment);
8840
+ /* eslint-disable-next-line */
8841
+ for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
8842
+ sanitizeElement(dfChildren[childIndex]);
8843
+ }
8844
+ // Append document fragment to div
8845
+ const fragmentDiv = document.createElement('div');
8846
+ fragmentDiv.appendChild(documentFragment);
8847
+ // First child is always the div we did our work in
8848
+ const getInnerDiv = fragmentDiv.querySelector('div');
8849
+ return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
8850
+ }
8851
+ catch (err) {
8852
+ printIonError('sanitizeDOMString', err);
8853
+ return '';
8854
+ }
8855
+ };
8856
+ /**
8857
+ * Sanitize an entire trusted DOM tree in place.
8858
+ *
8859
+ * Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
8860
+ * then sanitizes attributes on every remaining element using the same
8861
+ * allowlist policy as `sanitizeDOMString` (refer `sanitizeElement`).
8862
+ * Component presentational attributes (`size`, `color`, `shape`, inline
8863
+ * SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
8864
+ * form/navigation-hijack attributes, script-scheme URLs, and non-image
8865
+ * `data:` URLs are stripped.
8866
+ *
8867
+ * Use this when you have a DOM tree the developer controls (e.g.
8868
+ * cloned slot content from a component) and you need to render it
8869
+ * elsewhere safely.
8870
+ *
8871
+ * @param root - The root element whose subtree will be sanitized in
8872
+ * place. No-op when the sanitizer is disabled via `Ionic.config`.
8873
+ */
8874
+ const sanitizeDOMTree = (root) => {
8875
+ if (!isSanitizerEnabled()) {
8876
+ return;
8877
+ }
8878
+ blockedTags.forEach((tag) => {
8879
+ const matches = root.querySelectorAll(tag);
8880
+ for (let i = matches.length - 1; i >= 0; i--) {
8881
+ matches[i].remove();
8882
+ }
8883
+ });
8884
+ sanitizeElement(root);
8885
+ };
8886
+ /**
8887
+ * Clean up current element based on allowed attributes
8888
+ * and then recursively dig down into any child elements to
8889
+ * clean those up as well
8890
+ */
8891
+ // TODO(FW-2832): type (using Element triggers other type errors as well)
8892
+ const sanitizeElement = (element) => {
8893
+ // IE uses childNodes, so ignore nodes that are not elements
8894
+ if (element.nodeType && element.nodeType !== 1) {
8895
+ return;
8896
+ }
8897
+ /**
8898
+ * If attributes is not a NamedNodeMap
8899
+ * then we should remove the element entirely.
8900
+ * This helps avoid DOM Clobbering attacks where
8901
+ * attributes is overridden.
8902
+ */
8903
+ if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
8904
+ element.remove();
8905
+ return;
8906
+ }
8907
+ /**
8908
+ * Always strip `style` (CSS injection, `background:url()` beaconing, UI
8909
+ * spoofing). It is never on the allowlist, but it is removed explicitly
8910
+ * here because some engines (e.g. jsdom) don't enumerate the CSSOM-backed
8911
+ * `style` attribute in `element.attributes`, which would let the loop
8912
+ * below skip over it.
8913
+ */
8914
+ element.removeAttribute('style');
8915
+ for (let i = element.attributes.length - 1; i >= 0; i--) {
8916
+ const attribute = element.attributes.item(i);
8917
+ const attributeName = attribute.name;
8918
+ const lowerName = attributeName.toLowerCase();
8919
+ /**
8920
+ * Remove any attribute that is not on the allowlist. This drops event
8921
+ * handlers (`on*`), `style`, the form/navigation-hijack attributes
8922
+ * (`formaction`, `action`, `target`), namespaced attributes like
8923
+ * `xlink:href`, and anything else not explicitly known to be safe.
8924
+ */
8925
+ if (!isAttributeAllowed(lowerName)) {
8926
+ element.removeAttribute(attributeName);
8927
+ continue;
8928
+ }
8929
+ // clean up any allowed attribs
8930
+ // that attempt to do any JS funny-business
8931
+ const attributeValue = attribute.value;
8932
+ if (attributeValue == null) {
8933
+ continue;
8934
+ }
8935
+ /**
8936
+ * Scrub dangerous schemes from the value. The value is normalized first
8937
+ * (whitespace and ASCII control characters removed) so entity-obfuscated
8938
+ * payloads such as `java&#9;script:`, which the parser decodes to
8939
+ * `java\tscript:`, are still caught. Normalizing the value also covers
8940
+ * namespaced attributes, where the previous `element[attributeName]`
8941
+ * property reflection returned `undefined` and let them slip through.
8942
+ */
8943
+ const normalizedValue = attributeValue.replace(controlCharactersAndWhitespace, '').toLowerCase();
8944
+ // Script schemes are never allowed, on any attribute.
8945
+ if (normalizedValue.includes('javascript:') || normalizedValue.includes('vbscript:')) {
8946
+ element.removeAttribute(attributeName);
8947
+ continue;
8948
+ }
8949
+ /**
8950
+ * For URL-bearing attributes, allow `data:` URIs only for raster
8951
+ * images. Document-bearing types (`text/html`, `image/svg+xml`,
8952
+ * `application/*`, etc.) can carry markup or script when navigated to
8953
+ * or rendered, so they are stripped, while safe image types are kept so
8954
+ * inline images keep working.
8955
+ */
8956
+ if (urlAttributes.includes(lowerName) &&
8957
+ normalizedValue.startsWith('data:') &&
8958
+ !safeDataImageUri.test(normalizedValue)) {
8959
+ element.removeAttribute(attributeName);
8960
+ }
8961
+ }
8962
+ /**
8963
+ * Sanitize any nested children
8964
+ */
8965
+ const childElements = getElementChildren(element);
8966
+ /* eslint-disable-next-line */
8967
+ for (let i = 0; i < childElements.length; i++) {
8968
+ sanitizeElement(childElements[i]);
8969
+ }
8970
+ };
8971
+ /**
8972
+ * IE doesn't always support .children
8973
+ * so we revert to .childNodes instead
8974
+ */
8975
+ // TODO(FW-2832): type
8976
+ const getElementChildren = (el) => {
8977
+ return el.children != null ? el.children : el.childNodes;
8978
+ };
8979
+ const isSanitizerEnabled = () => {
8980
+ var _a;
8981
+ const win = window;
8982
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
8983
+ if (config) {
8984
+ if (config.get) {
8985
+ return config.get('sanitizerEnabled', true);
8986
+ }
8987
+ else {
8988
+ return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
8989
+ }
8990
+ }
8991
+ return true;
8992
+ };
8993
+ /**
8994
+ * Mirror known custom-element DOM properties onto attributes so they
8995
+ * survive `cloneNode`. Call this on a DOM subtree before cloning it for
8996
+ * rendering elsewhere (e.g. cloning slotted option content into an
8997
+ * overlay).
8998
+ *
8999
+ * Only sets the attribute when the property holds a non-empty string
9000
+ * and the attribute isn't already present, so existing attributes
9001
+ * take precedence.
9002
+ *
9003
+ * @param root - The root element whose subtree (and itself) will be
9004
+ * inspected.
9005
+ */
9006
+ const reflectPropertiesToAttributes = (root) => {
9007
+ const candidates = [];
9008
+ if (root.tagName in elementPropsToReflect) {
9009
+ candidates.push(root);
9010
+ }
9011
+ for (const tagName of Object.keys(elementPropsToReflect)) {
9012
+ candidates.push(...Array.from(root.querySelectorAll(tagName.toLowerCase())));
9013
+ }
9014
+ for (const el of candidates) {
9015
+ if (!(el.tagName in elementPropsToReflect)) {
9016
+ continue;
9017
+ }
9018
+ const props = elementPropsToReflect[el.tagName];
9019
+ for (const prop of props) {
9020
+ const value = el[prop];
9021
+ if (typeof value === 'string' && value.length > 0 && !el.hasAttribute(prop)) {
9022
+ el.setAttribute(prop, value);
9023
+ }
9024
+ }
9025
+ }
9026
+ };
9027
+ /**
9028
+ * Attribute names that are always safe to keep. Covers global HTML
9029
+ * attributes, the Ionic component presentational props that cloned rich
9030
+ * content (e.g. `ion-select-option` markup) relies on, and the inert SVG
9031
+ * presentation attributes used by inline icons.
9032
+ *
9033
+ * `aria-*` and `data-*` are allowed separately by prefix (refer
9034
+ * `allowedAttributePrefixes`) since they are inert and not worth
9035
+ * enumerating. URL-bearing names (`href`, `src`) are allowed here, but
9036
+ * their values are still scrubbed for script schemes in `sanitizeElement`.
9037
+ *
9038
+ * Notably absent: `style`, event handlers (`on*`), and the
9039
+ * form/navigation-hijack attributes (`formaction`, `action`, `target`),
9040
+ * which are therefore stripped.
9041
+ */
9042
+ const allowedAttributes = [
9043
+ // Global / structural
9044
+ 'class',
9045
+ 'id',
9046
+ 'slot',
9047
+ 'name',
9048
+ 'title',
9049
+ 'alt',
9050
+ 'lang',
9051
+ 'dir',
9052
+ 'role',
9053
+ 'type',
9054
+ 'value',
9055
+ 'disabled',
9056
+ 'width',
9057
+ 'height',
9058
+ 'href',
9059
+ 'src',
9060
+ // Ionic component presentational props
9061
+ 'color',
9062
+ 'size',
9063
+ 'shape',
9064
+ 'fill',
9065
+ 'expand',
9066
+ 'mode',
9067
+ 'theme',
9068
+ 'icon',
9069
+ 'label',
9070
+ 'label-placement',
9071
+ 'justify',
9072
+ 'inset',
9073
+ 'lines',
9074
+ 'ios',
9075
+ 'md',
9076
+ // SVG presentation attributes (compared lowercased, e.g. `viewBox`)
9077
+ 'xmlns',
9078
+ 'viewbox',
9079
+ 'preserveaspectratio',
9080
+ 'stroke',
9081
+ 'stroke-width',
9082
+ 'stroke-linecap',
9083
+ 'stroke-linejoin',
9084
+ 'stroke-opacity',
9085
+ 'stroke-dasharray',
9086
+ 'fill-rule',
9087
+ 'fill-opacity',
9088
+ 'clip-rule',
9089
+ 'd',
9090
+ 'points',
9091
+ 'cx',
9092
+ 'cy',
9093
+ 'r',
9094
+ 'rx',
9095
+ 'ry',
9096
+ 'x',
9097
+ 'y',
9098
+ 'x1',
9099
+ 'y1',
9100
+ 'x2',
9101
+ 'y2',
9102
+ 'transform',
9103
+ 'opacity',
9104
+ ];
9105
+ /**
9106
+ * Attribute-name prefixes that are always safe to keep. `aria-*` and
9107
+ * `data-*` attributes cannot execute script or load resources, so they are
9108
+ * allowed wholesale rather than enumerated by name.
9109
+ */
9110
+ const allowedAttributePrefixes = ['aria-', 'data-'];
9111
+ /**
9112
+ * Whether an attribute name (already lowercased) is safe to keep, by exact
9113
+ * match or by an allowed prefix.
9114
+ */
9115
+ const isAttributeAllowed = (lowerName) => {
9116
+ if (allowedAttributes.includes(lowerName)) {
9117
+ return true;
9118
+ }
9119
+ return allowedAttributePrefixes.some((prefix) => lowerName.startsWith(prefix));
9120
+ };
9121
+ /**
9122
+ * Matches ASCII control characters and whitespace (including the
9123
+ * non-breaking space). Used to normalize attribute values before matching
9124
+ * a URL scheme so entity-obfuscated payloads such as `java&#9;script:`
9125
+ * (decoded by the parser to `java\tscript:`) can't smuggle a scheme past
9126
+ * the check.
9127
+ */
9128
+ // eslint-disable-next-line no-control-regex -- matching control characters is the point
9129
+ const controlCharactersAndWhitespace = /[\u0000-\u0020\u007f-\u00a0]/g;
9130
+ /**
9131
+ * Attributes whose values are URLs. Their values are scheme-checked in
9132
+ * `sanitizeElement` (e.g. `data:` filtering) beyond the script-scheme scrub
9133
+ * applied to every attribute.
9134
+ */
9135
+ const urlAttributes = ['href', 'src'];
9136
+ /**
9137
+ * Matches a `data:` URI for a raster image type that cannot carry script.
9138
+ * `image/svg+xml` is deliberately excluded (SVG can execute script), as are
9139
+ * document types like `text/html` and `application/*`. The value is already
9140
+ * lowercased and whitespace-stripped before this is tested.
9141
+ */
9142
+ const safeDataImageUri = /^data:image\/(?:png|jpe?g|gif|webp|bmp|avif|x-icon|vnd\.microsoft\.icon)[;,]/;
9143
+ /**
9144
+ * Tags removed entirely (with their subtree) before attribute sanitization.
9145
+ * Exported so tests can assert the set without hardcoding it.
9146
+ */
9147
+ const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed', 'base'];
9148
+ /**
9149
+ * Properties on custom elements that frameworks (Vue, Angular) often
9150
+ * set as DOM properties rather than attributes. `cloneNode` only copies
9151
+ * attributes, so these values are lost when slotted content is cloned
9152
+ * into an overlay. For each known custom element, we mirror the listed
9153
+ * properties onto attributes so the cloned copy still has the data it
9154
+ * needs to render.
9155
+ *
9156
+ * Keyed by uppercased tagName so the lookup matches `Element.tagName`.
9157
+ */
9158
+ const elementPropsToReflect = {
9159
+ 'ION-ICON': ['icon', 'name', 'src', 'ios', 'md'],
9160
+ };
9161
+ class IonicSafeString {
9162
+ constructor(value) {
9163
+ this.value = value;
9164
+ }
9165
+ }
9166
+
9167
+ /**
9168
+ * Converts a DOM node into a Stencil VNode (or text string) so the
9169
+ * resulting tree is rendered through the component's normal render
9170
+ * path. Rendering through Stencil ensures that scoped CSS classes
9171
+ * (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
9172
+ *
9173
+ * Highly recommended to pre-sanitize the source DOM (see
9174
+ * `getOptionContent` in select.tsx). This function performs pure
9175
+ * structural conversion — no security filtering.
9176
+ *
9177
+ * Preserves attributes only — properties set imperatively on the source
9178
+ * element (e.g. `input.value` after a user types) won't carry through.
9179
+ * In practice this isn't a concern: interactive controls shouldn't
9180
+ * appear in select-option rich content since they'd nest inside the
9181
+ * overlay's button/radio/checkbox wrapper, which is invalid HTML and
9182
+ * an accessibility issue.
9183
+ *
9184
+ * @param node - The DOM node to convert. Text nodes become strings,
9185
+ * element nodes become VNodes, and any other node types are skipped.
9186
+ * @param keyPrefix - String prefix used to build a stable VNode key,
9187
+ * so Stencil's diff can preserve elements across re-renders.
9188
+ * @param index - Position of this node among its siblings. Combined
9189
+ * with `keyPrefix` to form the final unique key.
9190
+ * @returns The converted VNode, a text string, or `null` if the node
9191
+ * type isn't supported.
9192
+ *
9193
+ * @internal Exported only so it can be unit tested; not part of the
9194
+ * public API.
9195
+ */
9196
+ const cloneToVNode = (node, keyPrefix, index) => {
9197
+ var _a;
9198
+ if (node.nodeType === Node.TEXT_NODE) {
9199
+ return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
9200
+ }
9201
+ if (node.nodeType !== Node.ELEMENT_NODE) {
9202
+ return null;
9203
+ }
9204
+ const el = node;
9205
+ const tag = el.tagName.toLowerCase();
9206
+ const key = `${keyPrefix}-${index}`;
9207
+ const attrs = { key };
9208
+ for (let i = 0; i < el.attributes.length; i++) {
9209
+ const attr = el.attributes.item(i);
9210
+ attrs[attr.name] = attr.value;
9211
+ }
9212
+ const children = Array.from(el.childNodes)
9213
+ .map((child, i) => cloneToVNode(child, key, i))
9214
+ .filter((c) => c !== null);
9215
+ return hAsync(tag, attrs, children);
9216
+ };
9217
+ /**
9218
+ * Renders cloned DOM content as Stencil JSX. Walking the source DOM
9219
+ * into VNodes (rather than injecting it via innerHTML) keeps the
9220
+ * content inside Stencil's render path, so scoped CSS classes are
9221
+ * applied automatically and component attributes like `size` or
9222
+ * `color` survive intact.
9223
+ *
9224
+ * Span elements should be used when this content renders within buttons,
9225
+ * depending on the select interface. Buttons can only have phrasing
9226
+ * content to prevent accessibility issues.
9227
+ *
9228
+ * @param id - Unique identifier for generating stable virtual DOM keys.
9229
+ * @param content - The HTMLElement container whose child nodes will be cloned.
9230
+ * @param className - CSS class applied to the wrapper element.
9231
+ * @param useSpan - Whether to use a span element instead of a div for the wrapper.
9232
+ */
9233
+ const renderClonedContent = (id, content, className, useSpan = false) => {
9234
+ const Tag = useSpan ? 'span' : 'div';
9235
+ const keyPrefix = `${className}-${id}`;
9236
+ sanitizeDOMTree(content);
9237
+ return (hAsync(Tag, { class: className, key: keyPrefix }, Array.from(content.childNodes).map((child, i) => cloneToVNode(child, keyPrefix, i))));
9238
+ };
9239
+ /**
9240
+ * Renders the label content for a select option within an overlay
9241
+ * interface based on the presence of rich content.
9242
+ *
9243
+ * Span elements should be used when this content renders within buttons,
9244
+ * depending on the select interface. Buttons can only have phrasing
9245
+ * content to prevent accessibility issues.
9246
+ *
9247
+ * @param option - The content option data containing label, slots,
9248
+ * and description.
9249
+ * @param className - The base CSS class for the label element.
9250
+ * @param useSpan - Whether to use a span element instead of a div for the label.
9251
+ */
9252
+ const renderOptionLabel = (option, className, useSpan = false) => {
9253
+ const { id, label, startContent, endContent, description } = option;
9254
+ const hasRichContent = !!startContent || !!endContent || !!description;
9255
+ const Tag = useSpan ? 'span' : 'div';
9256
+ // Render simple string label if there is no rich content to display
9257
+ if (!hasRichContent && (typeof label === 'string' || !label)) {
9258
+ return (hAsync(Tag, { class: className, key: `${className}-${id}` }, label));
9259
+ }
9260
+ // Render the main label
9261
+ const labelEl = typeof label === 'string' || !label ? (
9262
+ // Label is a simple string or undefined
9263
+ hAsync(Tag, { key: `${className}-label-${id}` }, label)) : (
9264
+ // Label is an HTMLElement with potential rich content
9265
+ renderClonedContent(id, label, `${className}-text`, useSpan));
9266
+ // No rich content, render just the label
9267
+ if (!hasRichContent) {
9268
+ return (hAsync(Tag, { class: className, key: `${className}-${id}` }, labelEl));
9269
+ }
9270
+ // Render label with rich content (start, end, description)
9271
+ 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)));
9272
+ };
9273
+
8741
9274
  const hostContext = (selector, el) => {
8742
9275
  return el.closest(selector) !== null;
8743
9276
  };
@@ -9593,7 +10126,7 @@ const createAnimation = (animationId) => {
9593
10126
  /**
9594
10127
  * iOS Action Sheet Enter Animation
9595
10128
  */
9596
- const iosEnterAnimation$6 = (baseEl) => {
10129
+ const iosEnterAnimation$5 = (baseEl) => {
9597
10130
  const baseAnimation = createAnimation();
9598
10131
  const backdropAnimation = createAnimation();
9599
10132
  const wrapperAnimation = createAnimation();
@@ -9617,7 +10150,7 @@ const iosEnterAnimation$6 = (baseEl) => {
9617
10150
  /**
9618
10151
  * iOS Action Sheet Leave Animation
9619
10152
  */
9620
- const iosLeaveAnimation$6 = (baseEl) => {
10153
+ const iosLeaveAnimation$5 = (baseEl) => {
9621
10154
  const baseAnimation = createAnimation();
9622
10155
  const backdropAnimation = createAnimation();
9623
10156
  const wrapperAnimation = createAnimation();
@@ -9674,9 +10207,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
9674
10207
  .addAnimation([backdropAnimation, wrapperAnimation]);
9675
10208
  };
9676
10209
 
9677
- 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)}}`;
10210
+ 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)}}`;
9678
10211
 
9679
- 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}`;
10212
+ 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}`;
9680
10213
 
9681
10214
  /**
9682
10215
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
@@ -9773,7 +10306,7 @@ class ActionSheet {
9773
10306
  async present() {
9774
10307
  const unlock = await this.lockController.lock();
9775
10308
  await this.delegateController.attachViewToDom();
9776
- await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
10309
+ await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9777
10310
  unlock();
9778
10311
  }
9779
10312
  /**
@@ -9790,7 +10323,7 @@ class ActionSheet {
9790
10323
  */
9791
10324
  async dismiss(data, role) {
9792
10325
  const unlock = await this.lockController.lock();
9793
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
10326
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9794
10327
  if (dismissed) {
9795
10328
  this.delegateController.removeViewFromDom();
9796
10329
  }
@@ -9959,6 +10492,10 @@ class ActionSheet {
9959
10492
  this.gesture = undefined;
9960
10493
  }
9961
10494
  this.triggerController.removeClickListener();
10495
+ // Clean up aria-hidden if removed without dismiss() being called
10496
+ if (this.presented) {
10497
+ cleanupRootFocusTrapAccessibility();
10498
+ }
9962
10499
  }
9963
10500
  componentWillLoad() {
9964
10501
  var _a;
@@ -10047,12 +10584,26 @@ class ActionSheet {
10047
10584
  if (isRadio) {
10048
10585
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10049
10586
  }
10050
- 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: () => {
10587
+ /**
10588
+ * Cast to `SelectActionSheetButton` to access rich content
10589
+ * fields (`startContent`, `endContent`, `description`)
10590
+ * that are passed through from `ion-select` but not
10591
+ * part of the public `ActionSheetButton` interface.
10592
+ */
10593
+ const richButton = b;
10594
+ const optionLabelOptions = {
10595
+ id: buttonId,
10596
+ label: richButton.text,
10597
+ startContent: richButton.startContent,
10598
+ endContent: richButton.endContent,
10599
+ description: richButton.description,
10600
+ };
10601
+ 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: () => {
10051
10602
  if (isRadio) {
10052
10603
  this.selectRadioButton(b);
10053
10604
  }
10054
10605
  this.buttonClick(b);
10055
- }, 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)));
10606
+ }, 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)));
10056
10607
  });
10057
10608
  }
10058
10609
  render() {
@@ -10062,12 +10613,12 @@ class ActionSheet {
10062
10613
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10063
10614
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10064
10615
  const headerID = `action-sheet-${overlayIndex}-header`;
10065
- return (hAsync(Host, Object.assign({ key: '48b63b870f2816b4cad3c606f3d9956854cee79a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10616
+ return (hAsync(Host, Object.assign({ key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10066
10617
  zIndex: `${20000 + this.overlayIndex}`,
10067
- }, 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: {
10618
+ }, 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: {
10068
10619
  'action-sheet-title': true,
10069
10620
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10070
- } }, 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" })));
10621
+ } }, 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" })));
10071
10622
  }
10072
10623
  get el() { return getElement(this); }
10073
10624
  static get watchers() { return {
@@ -10116,178 +10667,59 @@ class ActionSheet {
10116
10667
  "$attrsToReflect$": []
10117
10668
  }; }
10118
10669
  }
10119
- const buttonClass$3 = (button) => {
10670
+ const buttonClass$2 = (button) => {
10120
10671
  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));
10121
10672
  };
10122
10673
 
10123
10674
  const ENABLE_HTML_CONTENT_DEFAULT = false;
10124
10675
 
10676
+ // 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.
10125
10677
  /**
10126
- * Does a simple sanitization of all elements
10127
- * in an untrusted string
10678
+ * Returns the default `labelPlacement` for a radio or checkbox option
10679
+ * rendered inside an overlay. Defaults follow each mode's established
10680
+ * option-row layout:
10681
+ * - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
10682
+ * interface flips iOS radio back to `"end"`. Checkbox is always
10683
+ * `"end"` on iOS.
10684
+ * - everything else (e.g. `md`): `"end"`.
10685
+ *
10686
+ * `interfaceType` is optional; only `"modal"` changes the result, so
10687
+ * callers that aren't a modal can omit it.
10688
+ *
10689
+ * Used by `select-popover` and `select-modal` as the fallback when an
10690
+ * option doesn't explicitly set `labelPlacement`.
10128
10691
  */
10129
- const sanitizeDOMString = (untrustedString) => {
10130
- try {
10131
- if (untrustedString instanceof IonicSafeString) {
10132
- return untrustedString.value;
10133
- }
10134
- if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
10135
- return untrustedString;
10136
- }
10137
- /**
10138
- * onload is fired when appending to a document
10139
- * fragment in Chrome. If a string
10140
- * contains onload then we should not
10141
- * attempt to add this to the fragment.
10142
- */
10143
- if (untrustedString.includes('onload=')) {
10144
- return '';
10145
- }
10146
- /**
10147
- * Create a document fragment
10148
- * separate from the main DOM,
10149
- * create a div to do our work in
10150
- */
10151
- const documentFragment = document.createDocumentFragment();
10152
- const workingDiv = document.createElement('div');
10153
- documentFragment.appendChild(workingDiv);
10154
- workingDiv.innerHTML = untrustedString;
10155
- /**
10156
- * Remove any elements
10157
- * that are blocked
10158
- */
10159
- blockedTags.forEach((blockedTag) => {
10160
- const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
10161
- for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
10162
- const element = getElementsToRemove[elementIndex];
10163
- if (element.parentNode) {
10164
- element.parentNode.removeChild(element);
10165
- }
10166
- else {
10167
- documentFragment.removeChild(element);
10168
- }
10169
- /**
10170
- * We still need to sanitize
10171
- * the children of this element
10172
- * as they are left behind
10173
- */
10174
- const childElements = getElementChildren(element);
10175
- /* eslint-disable-next-line */
10176
- for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
10177
- sanitizeElement(childElements[childIndex]);
10178
- }
10179
- }
10180
- });
10181
- /**
10182
- * Go through remaining elements and remove
10183
- * non-allowed attribs
10184
- */
10185
- // IE does not support .children on document fragments, only .childNodes
10186
- const dfChildren = getElementChildren(documentFragment);
10187
- /* eslint-disable-next-line */
10188
- for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
10189
- sanitizeElement(dfChildren[childIndex]);
10190
- }
10191
- // Append document fragment to div
10192
- const fragmentDiv = document.createElement('div');
10193
- fragmentDiv.appendChild(documentFragment);
10194
- // First child is always the div we did our work in
10195
- const getInnerDiv = fragmentDiv.querySelector('div');
10196
- return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
10197
- }
10198
- catch (err) {
10199
- printIonError('sanitizeDOMString', err);
10200
- return '';
10201
- }
10202
- };
10203
- /**
10204
- * Clean up current element based on allowed attributes
10205
- * and then recursively dig down into any child elements to
10206
- * clean those up as well
10207
- */
10208
- // TODO(FW-2832): type (using Element triggers other type errors as well)
10209
- const sanitizeElement = (element) => {
10210
- // IE uses childNodes, so ignore nodes that are not elements
10211
- if (element.nodeType && element.nodeType !== 1) {
10212
- return;
10213
- }
10214
- /**
10215
- * If attributes is not a NamedNodeMap
10216
- * then we should remove the element entirely.
10217
- * This helps avoid DOM Clobbering attacks where
10218
- * attributes is overridden.
10219
- */
10220
- if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
10221
- element.remove();
10222
- return;
10223
- }
10224
- for (let i = element.attributes.length - 1; i >= 0; i--) {
10225
- const attribute = element.attributes.item(i);
10226
- const attributeName = attribute.name;
10227
- // remove non-allowed attribs
10228
- if (!allowedAttributes.includes(attributeName.toLowerCase())) {
10229
- element.removeAttribute(attributeName);
10230
- continue;
10231
- }
10232
- // clean up any allowed attribs
10233
- // that attempt to do any JS funny-business
10234
- const attributeValue = attribute.value;
10235
- /**
10236
- * We also need to check the property value
10237
- * as javascript: can allow special characters
10238
- * such as &Tab; and still be valid (i.e. java&Tab;script)
10239
- */
10240
- const propertyValue = element[attributeName];
10241
- /* eslint-disable */
10242
- if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
10243
- (propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
10244
- element.removeAttribute(attributeName);
10245
- }
10246
- /* eslint-enable */
10247
- }
10248
- /**
10249
- * Sanitize any nested children
10250
- */
10251
- const childElements = getElementChildren(element);
10252
- /* eslint-disable-next-line */
10253
- for (let i = 0; i < childElements.length; i++) {
10254
- sanitizeElement(childElements[i]);
10692
+ const getOverlayLabelPlacement = (mode, control, interfaceType) => {
10693
+ if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
10694
+ return 'start';
10255
10695
  }
10696
+ return 'end';
10256
10697
  };
10257
10698
  /**
10258
- * IE doesn't always support .children
10259
- * so we revert to .childNodes instead
10699
+ * Returns the default `justify` for a radio or checkbox option rendered
10700
+ * inside an overlay. Defaults follow each mode's option-row layout:
10701
+ * - `ios`: `"space-between"` for radio in `alert` and `popover`. The
10702
+ * `modal` interface falls back to `"start"`. Checkbox is always `"start"`
10703
+ * on iOS.
10704
+ * - everything else (e.g. `md`): `"start"`.
10705
+ *
10706
+ * `interfaceType` is optional; only `"modal"` changes the result, so
10707
+ * callers that aren't a modal can omit it.
10708
+ *
10709
+ * Used by `select-popover` and `select-modal` as the fallback when an
10710
+ * option doesn't explicitly set `justify`.
10260
10711
  */
10261
- // TODO(FW-2832): type
10262
- const getElementChildren = (el) => {
10263
- return el.children != null ? el.children : el.childNodes;
10264
- };
10265
- const isSanitizerEnabled = () => {
10266
- var _a;
10267
- const win = window;
10268
- const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
10269
- if (config) {
10270
- if (config.get) {
10271
- return config.get('sanitizerEnabled', true);
10272
- }
10273
- else {
10274
- return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
10275
- }
10712
+ const getOverlayLabelJustify = (mode, control, interfaceType) => {
10713
+ if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
10714
+ return 'space-between';
10276
10715
  }
10277
- return true;
10716
+ return 'start';
10278
10717
  };
10279
- const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
10280
- const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
10281
- class IonicSafeString {
10282
- constructor(value) {
10283
- this.value = value;
10284
- }
10285
- }
10286
10718
 
10287
10719
  /**
10288
10720
  * iOS Alert Enter Animation
10289
10721
  */
10290
- const iosEnterAnimation$5 = (baseEl) => {
10722
+ const iosEnterAnimation$4 = (baseEl) => {
10291
10723
  const baseAnimation = createAnimation();
10292
10724
  const backdropAnimation = createAnimation();
10293
10725
  const wrapperAnimation = createAnimation();
@@ -10312,7 +10744,7 @@ const iosEnterAnimation$5 = (baseEl) => {
10312
10744
  /**
10313
10745
  * iOS Alert Leave Animation
10314
10746
  */
10315
- const iosLeaveAnimation$5 = (baseEl) => {
10747
+ const iosLeaveAnimation$4 = (baseEl) => {
10316
10748
  const baseAnimation = createAnimation();
10317
10749
  const backdropAnimation = createAnimation();
10318
10750
  const wrapperAnimation = createAnimation();
@@ -10369,9 +10801,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
10369
10801
  .addAnimation([backdropAnimation, wrapperAnimation]);
10370
10802
  };
10371
10803
 
10372
- 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)}`;
10804
+ 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)}`;
10373
10805
 
10374
- 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)}}`;
10806
+ 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)}}`;
10375
10807
 
10376
10808
  // TODO(FW-2832): types
10377
10809
  /**
@@ -10545,22 +10977,7 @@ class Alert {
10545
10977
  this.inputType = inputTypes.values().next().value;
10546
10978
  this.processedInputs = inputs.map((i, index) => {
10547
10979
  var _a;
10548
- return ({
10549
- type: i.type || 'text',
10550
- name: i.name || `${index}`,
10551
- placeholder: i.placeholder || '',
10552
- value: i.value,
10553
- label: i.label,
10554
- checked: !!i.checked,
10555
- disabled: !!i.disabled,
10556
- id: i.id || `alert-input-${this.overlayIndex}-${index}`,
10557
- handler: i.handler,
10558
- min: i.min,
10559
- max: i.max,
10560
- cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
10561
- attributes: i.attributes || {},
10562
- tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
10563
- });
10980
+ 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 });
10564
10981
  });
10565
10982
  }
10566
10983
  connectedCallback() {
@@ -10588,6 +11005,10 @@ class Alert {
10588
11005
  this.gesture.destroy();
10589
11006
  this.gesture = undefined;
10590
11007
  }
11008
+ // Clean up aria-hidden if removed without dismiss() being called
11009
+ if (this.presented) {
11010
+ cleanupRootFocusTrapAccessibility();
11011
+ }
10591
11012
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10592
11013
  this.buttonGroupResizeObserver = undefined;
10593
11014
  }
@@ -10627,7 +11048,7 @@ class Alert {
10627
11048
  async present() {
10628
11049
  const unlock = await this.lockController.lock();
10629
11050
  await this.delegateController.attachViewToDom();
10630
- await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
11051
+ await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10631
11052
  var _a, _b;
10632
11053
  /**
10633
11054
  * Check if alert has only one button and no inputs.
@@ -10658,7 +11079,7 @@ class Alert {
10658
11079
  */
10659
11080
  async dismiss(data, role) {
10660
11081
  const unlock = await this.lockController.lock();
10661
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
11082
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10662
11083
  if (dismissed) {
10663
11084
  this.delegateController.removeViewFromDom();
10664
11085
  }
@@ -10756,14 +11177,61 @@ class Alert {
10756
11177
  if (inputs.length === 0) {
10757
11178
  return null;
10758
11179
  }
10759
- 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))))));
11180
+ return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
11181
+ var _a, _b;
11182
+ /**
11183
+ * Cast to `SelectAlertInput` to access rich content
11184
+ * fields (`startContent`, `endContent`, `description`)
11185
+ * that are passed through from `ion-select` but not
11186
+ * part of the public `AlertInput` interface.
11187
+ */
11188
+ const richInput = i;
11189
+ const optionLabelOptions = {
11190
+ id: richInput.id,
11191
+ label: richInput.label,
11192
+ startContent: richInput.startContent,
11193
+ endContent: richInput.endContent,
11194
+ description: richInput.description,
11195
+ };
11196
+ const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
11197
+ const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
11198
+ 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: {
11199
+ 'alert-button-inner': true,
11200
+ [`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
11201
+ [`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
11202
+ } }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && hAsync("ion-ripple-effect", null)));
11203
+ })));
10760
11204
  }
10761
11205
  renderRadio() {
10762
11206
  const inputs = this.processedInputs;
11207
+ const mode = getIonMode$1(this);
10763
11208
  if (inputs.length === 0) {
10764
11209
  return null;
10765
11210
  }
10766
- 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)))))));
11211
+ return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
11212
+ var _a, _b;
11213
+ /**
11214
+ * Cast to `SelectAlertInput` to access rich content
11215
+ * fields (`startContent`, `endContent`, `description`)
11216
+ * that are passed through from `ion-select` but not
11217
+ * part of the public `AlertInput` interface.
11218
+ */
11219
+ const richInput = i;
11220
+ const optionLabelOptions = {
11221
+ id: richInput.id,
11222
+ label: richInput.label,
11223
+ startContent: richInput.startContent,
11224
+ endContent: richInput.endContent,
11225
+ description: richInput.description,
11226
+ };
11227
+ const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
11228
+ const defaultJustify = getOverlayLabelJustify(mode, 'radio');
11229
+ 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: {
11230
+ 'alert-button-inner': true,
11231
+ [`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
11232
+ [`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
11233
+ } }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
11234
+ })));
10767
11235
  }
10768
11236
  renderInput() {
10769
11237
  const inputs = this.processedInputs;
@@ -10843,7 +11311,7 @@ class Alert {
10843
11311
  'alert-button-group': true,
10844
11312
  'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
10845
11313
  };
10846
- 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))))));
11314
+ 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))))));
10847
11315
  }
10848
11316
  renderAlertMessage(msgId) {
10849
11317
  const { customHTMLEnabled, message } = this;
@@ -10866,9 +11334,9 @@ class Alert {
10866
11334
  * If neither are defined, do not set aria-labelledby.
10867
11335
  */
10868
11336
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
10869
- return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
11337
+ return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
10870
11338
  zIndex: `${20000 + overlayIndex}`,
10871
- }, 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" })));
11339
+ }, 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" })));
10872
11340
  }
10873
11341
  get el() { return getElement(this); }
10874
11342
  static get watchers() { return {
@@ -10926,7 +11394,7 @@ const inputClass = (input) => {
10926
11394
  var _a, _b, _c;
10927
11395
  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() : ''));
10928
11396
  };
10929
- const buttonClass$2 = (button) => {
11397
+ const buttonClass$1 = (button) => {
10930
11398
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10931
11399
  };
10932
11400
 
@@ -19265,7 +19733,7 @@ class Input {
19265
19733
  /**
19266
19734
  * Whether auto correction should be enabled when the user is entering/editing the text value.
19267
19735
  */
19268
- this.autocorrect = 'off';
19736
+ this.autocorrect = false;
19269
19737
  /**
19270
19738
  * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
19271
19739
  *
@@ -19722,7 +20190,7 @@ class Input {
19722
20190
  * TODO(FW-5592): Remove hasStartEndSlots condition
19723
20191
  */
19724
20192
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
19725
- return (hAsync(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses$1(this.color, {
20193
+ return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
19726
20194
  [mode]: true,
19727
20195
  'has-value': hasValue,
19728
20196
  'has-focus': hasFocus,
@@ -19733,14 +20201,14 @@ class Input {
19733
20201
  'in-item': inItem,
19734
20202
  'in-item-color': hostContext('ion-item.ion-color', this.el),
19735
20203
  'input-disabled': disabled,
19736
- }) }, 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) => {
20204
+ }) }, 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) => {
19737
20205
  /**
19738
20206
  * This prevents mobile browsers from
19739
20207
  * blurring the input when the clear
19740
20208
  * button is activated.
19741
20209
  */
19742
20210
  ev.preventDefault();
19743
- }, 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()));
20211
+ }, 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()));
19744
20212
  }
19745
20213
  get el() { return getElement(this); }
19746
20214
  static get watchers() { return {
@@ -19768,7 +20236,7 @@ class Input {
19768
20236
  "color": [513],
19769
20237
  "autocapitalize": [1],
19770
20238
  "autocomplete": [1],
19771
- "autocorrect": [1],
20239
+ "autocorrect": [4],
19772
20240
  "autofocus": [4],
19773
20241
  "clearInput": [4, "clear-input"],
19774
20242
  "clearInputIcon": [1, "clear-input-icon"],
@@ -21772,7 +22240,7 @@ class ListHeader {
21772
22240
  /**
21773
22241
  * iOS Loading Enter Animation
21774
22242
  */
21775
- const iosEnterAnimation$4 = (baseEl) => {
22243
+ const iosEnterAnimation$3 = (baseEl) => {
21776
22244
  const baseAnimation = createAnimation();
21777
22245
  const backdropAnimation = createAnimation();
21778
22246
  const wrapperAnimation = createAnimation();
@@ -21797,7 +22265,7 @@ const iosEnterAnimation$4 = (baseEl) => {
21797
22265
  /**
21798
22266
  * iOS Loading Leave Animation
21799
22267
  */
21800
- const iosLeaveAnimation$4 = (baseEl) => {
22268
+ const iosLeaveAnimation$3 = (baseEl) => {
21801
22269
  const baseAnimation = createAnimation();
21802
22270
  const backdropAnimation = createAnimation();
21803
22271
  const wrapperAnimation = createAnimation();
@@ -21970,6 +22438,10 @@ class Loading {
21970
22438
  }
21971
22439
  disconnectedCallback() {
21972
22440
  this.triggerController.removeClickListener();
22441
+ // Clean up aria-hidden if removed without dismiss() being called
22442
+ if (this.presented) {
22443
+ cleanupRootFocusTrapAccessibility();
22444
+ }
21973
22445
  }
21974
22446
  /**
21975
22447
  * Present the loading overlay after it has been created.
@@ -21977,7 +22449,7 @@ class Loading {
21977
22449
  async present() {
21978
22450
  const unlock = await this.lockController.lock();
21979
22451
  await this.delegateController.attachViewToDom();
21980
- await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
22452
+ await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
21981
22453
  if (this.duration > 0) {
21982
22454
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
21983
22455
  }
@@ -22000,7 +22472,7 @@ class Loading {
22000
22472
  if (this.durationTimeout) {
22001
22473
  clearTimeout(this.durationTimeout);
22002
22474
  }
22003
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
22475
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
22004
22476
  if (dismissed) {
22005
22477
  this.delegateController.removeViewFromDom();
22006
22478
  }
@@ -22035,9 +22507,9 @@ class Loading {
22035
22507
  * Otherwise, don't set aria-labelledby.
22036
22508
  */
22037
22509
  const ariaLabelledBy = message !== undefined ? msgId : null;
22038
- return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22510
+ return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22039
22511
  zIndex: `${40000 + this.overlayIndex}`,
22040
- }, 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" })));
22512
+ }, 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" })));
22041
22513
  }
22042
22514
  get el() { return getElement(this); }
22043
22515
  static get watchers() { return {
@@ -24311,7 +24783,7 @@ const createEnterAnimation$1 = () => {
24311
24783
  /**
24312
24784
  * iOS Modal Enter Animation for the Card presentation style
24313
24785
  */
24314
- const iosEnterAnimation$3 = (baseEl, opts) => {
24786
+ const iosEnterAnimation$2 = (baseEl, opts) => {
24315
24787
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24316
24788
  const root = getElementRoot(baseEl);
24317
24789
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24404,7 +24876,7 @@ const createLeaveAnimation$1 = () => {
24404
24876
  /**
24405
24877
  * iOS Modal Leave Animation
24406
24878
  */
24407
- const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24879
+ const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24408
24880
  const { presentingEl, currentBreakpoint } = opts;
24409
24881
  const root = getElementRoot(baseEl);
24410
24882
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -25579,13 +26051,20 @@ class Modal {
25579
26051
  /**
25580
26052
  * The interaction behavior for the sheet modal when the handle is pressed.
25581
26053
  *
25582
- * Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
25583
- * Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
26054
+ * Handle behavior is unavailable when the `handle` property is set to
26055
+ * `false` or when the `breakpoints` property is not set (using a
26056
+ * fullscreen or card modal).
26057
+ *
26058
+ * Set to `"cycle"` to make the handle focusable and let the sheet modal
26059
+ * cycle between available breakpoints when pressed. This keeps the sheet
26060
+ * operable with assistive technology.
25584
26061
  *
25585
- * Handle behavior is unavailable when the `handle` property is set to `false` or
25586
- * when the `breakpoints` property is not set (using a fullscreen or card modal).
26062
+ * Set to `"none"` to make the handle purely decorative when pressed and
26063
+ * removed from the tab order.
26064
+ *
26065
+ * Defaults to `"cycle"`.
25587
26066
  */
25588
- this.handleBehavior = 'none';
26067
+ this.handleBehavior = 'cycle';
25589
26068
  /**
25590
26069
  * If `true`, the modal will be dismissed when the backdrop is clicked.
25591
26070
  */
@@ -25777,6 +26256,10 @@ class Modal {
25777
26256
  // Also called in dismiss() — intentional dual cleanup covers both
25778
26257
  // dismiss-then-remove and direct DOM removal without dismiss.
25779
26258
  this.cleanupSafeAreaOverrides();
26259
+ // Clean up aria-hidden if removed without dismiss() being called
26260
+ if (this.presented) {
26261
+ cleanupRootFocusTrapAccessibility();
26262
+ }
25780
26263
  }
25781
26264
  componentWillLoad() {
25782
26265
  var _a;
@@ -25953,7 +26436,7 @@ class Modal {
25953
26436
  this.statusBarStyle = await StatusBar.getStyle();
25954
26437
  setCardStatusBarDark();
25955
26438
  }
25956
- await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
26439
+ await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
25957
26440
  presentingEl: presentingElement,
25958
26441
  currentBreakpoint: this.initialBreakpoint,
25959
26442
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26015,7 +26498,7 @@ class Modal {
26015
26498
  // All of the elements needed for the swipe gesture
26016
26499
  // should be in the DOM and referenced by now, except
26017
26500
  // for the presenting el
26018
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
26501
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
26019
26502
  const ani = (this.animation = animationBuilder(el, {
26020
26503
  presentingEl: this.presentingElement,
26021
26504
  expandToScroll: this.expandToScroll,
@@ -26034,7 +26517,7 @@ class Modal {
26034
26517
  if (!wrapperEl || initialBreakpoint === undefined) {
26035
26518
  return;
26036
26519
  }
26037
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
26520
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
26038
26521
  const ani = (this.animation = animationBuilder(this.el, {
26039
26522
  presentingEl: this.presentingElement,
26040
26523
  currentBreakpoint: initialBreakpoint,
@@ -26224,7 +26707,7 @@ class Modal {
26224
26707
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
26225
26708
  this.keyboardOpenCallback = undefined;
26226
26709
  }
26227
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
26710
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
26228
26711
  presentingEl: presentingElement,
26229
26712
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
26230
26713
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26656,20 +27139,20 @@ class Modal {
26656
27139
  const isCardModal = presentingElement !== undefined && mode === 'ios';
26657
27140
  const isHandleCycle = handleBehavior === 'cycle';
26658
27141
  const isSheetModalWithHandle = isSheetModal && showHandle;
26659
- return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
27142
+ return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
26660
27143
  // Allow the modal to be navigable when the handle is focusable
26661
27144
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
26662
27145
  zIndex: `${20000 + this.overlayIndex}`,
26663
- }, 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: '3f6c61ba60b063592784d76a9594073b3bf210a9',
27146
+ }, 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',
26664
27147
  /*
26665
27148
  role and aria-modal must be used on the
26666
27149
  same element. They must also be set inside the
26667
27150
  shadow DOM otherwise ion-button will not be highlighted
26668
27151
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26669
27152
  */
26670
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7f66b4fdb3dec61a2b9aec4e9dbacf5d013d637c', class: "modal-handle",
27153
+ 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",
26671
27154
  // Prevents the handle from receiving keyboard focus when it does not cycle
26672
- 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: '2dfaaebe3d0b2a46be1224c25f9ab89bf1744332', onSlotchange: this.onSlotChange }))));
27155
+ 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 }))));
26673
27156
  }
26674
27157
  get el() { return getElement(this); }
26675
27158
  static get watchers() { return {
@@ -27752,14 +28235,14 @@ class Note {
27752
28235
  }; }
27753
28236
  }
27754
28237
 
27755
- 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)))}`;
28238
+ 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)))}`;
27756
28239
 
27757
- 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%)}`;
28240
+ 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%)}`;
27758
28241
 
27759
28242
  /**
27760
28243
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
27761
28244
  */
27762
- let Picker$1 = class Picker {
28245
+ class Picker {
27763
28246
  constructor(hostRef) {
27764
28247
  registerInstance(this, hostRef);
27765
28248
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -28225,8 +28708,8 @@ let Picker$1 = class Picker {
28225
28708
  }
28226
28709
  get el() { return getElement(this); }
28227
28710
  static get style() { return {
28228
- ios: pickerIosCss$1(),
28229
- md: pickerMdCss$1()
28711
+ ios: pickerIosCss(),
28712
+ md: pickerMdCss()
28230
28713
  }; }
28231
28714
  static get cmpMeta() { return {
28232
28715
  "$flags$": 297,
@@ -28238,359 +28721,44 @@ let Picker$1 = class Picker {
28238
28721
  "$lazyBundleId$": "-",
28239
28722
  "$attrsToReflect$": []
28240
28723
  }; }
28241
- };
28242
-
28243
- /**
28244
- * iOS Picker Enter Animation
28245
- */
28246
- const iosEnterAnimation$2 = (baseEl) => {
28247
- const baseAnimation = createAnimation();
28248
- const backdropAnimation = createAnimation();
28249
- const wrapperAnimation = createAnimation();
28250
- backdropAnimation
28251
- .addElement(baseEl.querySelector('ion-backdrop'))
28252
- .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
28253
- .beforeStyles({
28254
- 'pointer-events': 'none',
28255
- })
28256
- .afterClearStyles(['pointer-events']);
28257
- wrapperAnimation
28258
- .addElement(baseEl.querySelector('.picker-wrapper'))
28259
- .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
28260
- return baseAnimation
28261
- .addElement(baseEl)
28262
- .easing('cubic-bezier(.36,.66,.04,1)')
28263
- .duration(400)
28264
- .addAnimation([backdropAnimation, wrapperAnimation]);
28265
- };
28266
-
28267
- /**
28268
- * iOS Picker Leave Animation
28269
- */
28270
- const iosLeaveAnimation$2 = (baseEl) => {
28271
- const baseAnimation = createAnimation();
28272
- const backdropAnimation = createAnimation();
28273
- const wrapperAnimation = createAnimation();
28274
- backdropAnimation
28275
- .addElement(baseEl.querySelector('ion-backdrop'))
28276
- .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
28277
- wrapperAnimation
28278
- .addElement(baseEl.querySelector('.picker-wrapper'))
28279
- .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
28280
- return baseAnimation
28281
- .addElement(baseEl)
28282
- .easing('cubic-bezier(.36,.66,.04,1)')
28283
- .duration(400)
28284
- .addAnimation([backdropAnimation, wrapperAnimation]);
28285
- };
28286
-
28287
- 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}`;
28724
+ }
28288
28725
 
28289
- 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}`;
28726
+ 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)}}`;
28290
28727
 
28291
- // TODO(FW-2832): types
28292
28728
  /**
28293
28729
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28730
+ *
28731
+ * @slot prefix - Content to show on the left side of the picker options.
28732
+ * @slot suffix - Content to show on the right side of the picker options.
28294
28733
  */
28295
- class Picker {
28734
+ class PickerColumn {
28296
28735
  constructor(hostRef) {
28297
28736
  registerInstance(this, hostRef);
28298
- this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
28299
- this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
28300
- this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
28301
- this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
28302
- this.didPresentShorthand = createEvent(this, "didPresent", 7);
28303
- this.willPresentShorthand = createEvent(this, "willPresent", 7);
28304
- this.willDismissShorthand = createEvent(this, "willDismiss", 7);
28305
- this.didDismissShorthand = createEvent(this, "didDismiss", 7);
28306
- this.delegateController = createDelegateController(this);
28307
- this.lockController = createLockController();
28308
- this.triggerController = createTriggerController();
28309
- this.presented = false;
28310
- /** @internal */
28311
- this.hasController = false;
28312
- /**
28313
- * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
28314
- */
28315
- this.keyboardClose = true;
28316
- /**
28317
- * Array of buttons to be displayed at the top of the picker.
28318
- */
28319
- this.buttons = [];
28320
- /**
28321
- * Array of columns to be displayed in the picker.
28322
- */
28323
- this.columns = [];
28737
+ this.ionChange = createEvent(this, "ionChange", 7);
28738
+ this.isScrolling = false;
28739
+ this.isColumnVisible = false;
28740
+ this.canExitInputMode = true;
28741
+ this.updateValueTextOnScroll = false;
28742
+ this.ariaLabel = null;
28743
+ this.isActive = false;
28324
28744
  /**
28325
- * Number of milliseconds to wait before dismissing the picker.
28745
+ * If `true`, the user cannot interact with the picker.
28326
28746
  */
28327
- this.duration = 0;
28747
+ this.disabled = false;
28328
28748
  /**
28329
- * If `true`, a backdrop will be displayed behind the picker.
28749
+ * The color to use from your application's color palette.
28750
+ * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
28751
+ * For more information on colors, see [theming](/docs/theming/basics).
28330
28752
  */
28331
- this.showBackdrop = true;
28753
+ this.color = 'primary';
28332
28754
  /**
28333
- * If `true`, the picker will be dismissed when the backdrop is clicked.
28334
- */
28335
- this.backdropDismiss = true;
28336
- /**
28337
- * If `true`, the picker will animate.
28338
- */
28339
- this.animated = true;
28340
- /**
28341
- * If `true`, the picker will open. If `false`, the picker will close.
28342
- * Use this if you need finer grained control over presentation, otherwise
28343
- * just use the pickerController or the `trigger` property.
28344
- * Note: `isOpen` will not automatically be set back to `false` when
28345
- * the picker dismisses. You will need to do that in your code.
28346
- */
28347
- this.isOpen = false;
28348
- this.onBackdropTap = () => {
28349
- this.dismiss(undefined, BACKDROP);
28350
- };
28351
- this.dispatchCancelHandler = (ev) => {
28352
- const role = ev.detail.role;
28353
- if (isCancel(role)) {
28354
- const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28355
- this.callButtonHandler(cancelButton);
28356
- }
28357
- };
28358
- }
28359
- onIsOpenChange(newValue, oldValue) {
28360
- if (newValue === true && oldValue === false) {
28361
- this.present();
28362
- }
28363
- else if (newValue === false && oldValue === true) {
28364
- this.dismiss();
28365
- }
28366
- }
28367
- triggerChanged() {
28368
- const { trigger, el, triggerController } = this;
28369
- if (trigger) {
28370
- triggerController.addClickListener(el, trigger);
28371
- }
28372
- }
28373
- connectedCallback() {
28374
- prepareOverlay(this.el);
28375
- this.triggerChanged();
28376
- }
28377
- disconnectedCallback() {
28378
- this.triggerController.removeClickListener();
28379
- }
28380
- componentWillLoad() {
28381
- var _a;
28382
- if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28383
- setOverlayId(this.el);
28384
- }
28385
- }
28386
- componentDidLoad() {
28387
- 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);
28388
- /**
28389
- * If picker was rendered with isOpen="true"
28390
- * then we should open picker immediately.
28391
- */
28392
- if (this.isOpen === true) {
28393
- raf(() => this.present());
28394
- }
28395
- /**
28396
- * When binding values in frameworks such as Angular
28397
- * it is possible for the value to be set after the Web Component
28398
- * initializes but before the value watcher is set up in Stencil.
28399
- * As a result, the watcher callback may not be fired.
28400
- * We work around this by manually calling the watcher
28401
- * callback when the component has loaded and the watcher
28402
- * is configured.
28403
- */
28404
- this.triggerChanged();
28405
- }
28406
- /**
28407
- * Present the picker overlay after it has been created.
28408
- */
28409
- async present() {
28410
- const unlock = await this.lockController.lock();
28411
- await this.delegateController.attachViewToDom();
28412
- await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28413
- if (this.duration > 0) {
28414
- this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28415
- }
28416
- unlock();
28417
- }
28418
- /**
28419
- * Dismiss the picker overlay after it has been presented.
28420
- *
28421
- * @param data Any data to emit in the dismiss events.
28422
- * @param role The role of the element that is dismissing the picker.
28423
- * This can be useful in a button handler for determining which button was
28424
- * clicked to dismiss the picker.
28425
- * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28426
- */
28427
- async dismiss(data, role) {
28428
- const unlock = await this.lockController.lock();
28429
- if (this.durationTimeout) {
28430
- clearTimeout(this.durationTimeout);
28431
- }
28432
- const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28433
- if (dismissed) {
28434
- this.delegateController.removeViewFromDom();
28435
- }
28436
- unlock();
28437
- return dismissed;
28438
- }
28439
- /**
28440
- * Returns a promise that resolves when the picker did dismiss.
28441
- */
28442
- onDidDismiss() {
28443
- return eventMethod(this.el, 'ionPickerDidDismiss');
28444
- }
28445
- /**
28446
- * Returns a promise that resolves when the picker will dismiss.
28447
- */
28448
- onWillDismiss() {
28449
- return eventMethod(this.el, 'ionPickerWillDismiss');
28450
- }
28451
- /**
28452
- * Get the column that matches the specified name.
28453
- *
28454
- * @param name The name of the column.
28455
- */
28456
- getColumn(name) {
28457
- return Promise.resolve(this.columns.find((column) => column.name === name));
28458
- }
28459
- async buttonClick(button) {
28460
- const role = button.role;
28461
- if (isCancel(role)) {
28462
- return this.dismiss(undefined, role);
28463
- }
28464
- const shouldDismiss = await this.callButtonHandler(button);
28465
- if (shouldDismiss) {
28466
- return this.dismiss(this.getSelected(), button.role);
28467
- }
28468
- return Promise.resolve();
28469
- }
28470
- async callButtonHandler(button) {
28471
- if (button) {
28472
- // a handler has been provided, execute it
28473
- // pass the handler the values from the inputs
28474
- const rtn = await safeCall(button.handler, this.getSelected());
28475
- if (rtn === false) {
28476
- // if the return value of the handler is false then do not dismiss
28477
- return false;
28478
- }
28479
- }
28480
- return true;
28481
- }
28482
- getSelected() {
28483
- const selected = {};
28484
- this.columns.forEach((col, index) => {
28485
- const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28486
- selected[col.name] = {
28487
- text: selectedColumn ? selectedColumn.text : undefined,
28488
- value: selectedColumn ? selectedColumn.value : undefined,
28489
- columnIndex: index,
28490
- };
28491
- });
28492
- return selected;
28493
- }
28494
- render() {
28495
- const { htmlAttributes } = this;
28496
- const mode = getIonMode$1(this);
28497
- return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28498
- zIndex: `${20000 + this.overlayIndex}`,
28499
- }, class: Object.assign({ [mode]: true,
28500
- // Used internally for styling
28501
- [`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" })));
28502
- }
28503
- get el() { return getElement(this); }
28504
- static get watchers() { return {
28505
- "isOpen": [{
28506
- "onIsOpenChange": 0
28507
- }],
28508
- "trigger": [{
28509
- "triggerChanged": 0
28510
- }]
28511
- }; }
28512
- static get style() { return {
28513
- ios: pickerIosCss(),
28514
- md: pickerMdCss()
28515
- }; }
28516
- static get cmpMeta() { return {
28517
- "$flags$": 34,
28518
- "$tagName$": "ion-picker-legacy",
28519
- "$members$": {
28520
- "overlayIndex": [2, "overlay-index"],
28521
- "delegate": [16],
28522
- "hasController": [4, "has-controller"],
28523
- "keyboardClose": [4, "keyboard-close"],
28524
- "enterAnimation": [16],
28525
- "leaveAnimation": [16],
28526
- "buttons": [16],
28527
- "columns": [16],
28528
- "cssClass": [1, "css-class"],
28529
- "duration": [2],
28530
- "showBackdrop": [4, "show-backdrop"],
28531
- "backdropDismiss": [4, "backdrop-dismiss"],
28532
- "animated": [4],
28533
- "htmlAttributes": [16],
28534
- "isOpen": [4, "is-open"],
28535
- "trigger": [1],
28536
- "presented": [32],
28537
- "present": [64],
28538
- "dismiss": [64],
28539
- "onDidDismiss": [64],
28540
- "onWillDismiss": [64],
28541
- "getColumn": [64]
28542
- },
28543
- "$listeners$": undefined,
28544
- "$lazyBundleId$": "-",
28545
- "$attrsToReflect$": []
28546
- }; }
28547
- }
28548
- const buttonWrapperClass = (button) => {
28549
- return {
28550
- [`picker-toolbar-${button.role}`]: button.role !== undefined,
28551
- 'picker-toolbar-button': true,
28552
- };
28553
- };
28554
- const buttonClass$1 = (button) => {
28555
- return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28556
- };
28557
-
28558
- 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)}}`;
28559
-
28560
- /**
28561
- * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28562
- *
28563
- * @slot prefix - Content to show on the left side of the picker options.
28564
- * @slot suffix - Content to show on the right side of the picker options.
28565
- */
28566
- class PickerColumn {
28567
- constructor(hostRef) {
28568
- registerInstance(this, hostRef);
28569
- this.ionChange = createEvent(this, "ionChange", 7);
28570
- this.isScrolling = false;
28571
- this.isColumnVisible = false;
28572
- this.canExitInputMode = true;
28573
- this.updateValueTextOnScroll = false;
28574
- this.ariaLabel = null;
28575
- this.isActive = false;
28576
- /**
28577
- * If `true`, the user cannot interact with the picker.
28578
- */
28579
- this.disabled = false;
28580
- /**
28581
- * The color to use from your application's color palette.
28582
- * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
28583
- * For more information on colors, see [theming](/docs/theming/basics).
28584
- */
28585
- this.color = 'primary';
28586
- /**
28587
- * If `true`, tapping the picker will
28588
- * reveal a number input keyboard that lets
28589
- * the user type in values for each picker
28590
- * column. This is useful when working
28591
- * with time pickers.
28592
- *
28593
- * @internal
28755
+ * If `true`, tapping the picker will
28756
+ * reveal a number input keyboard that lets
28757
+ * the user type in values for each picker
28758
+ * column. This is useful when working
28759
+ * with time pickers.
28760
+ *
28761
+ * @internal
28594
28762
  */
28595
28763
  this.numericInput = false;
28596
28764
  this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
@@ -29046,464 +29214,99 @@ class PickerColumn {
29046
29214
  */
29047
29215
  if (firstOption !== null && firstOption.value !== value) {
29048
29216
  this.setValue(firstOption.value);
29049
- }
29050
- }
29051
- }
29052
- /** @internal */
29053
- async scrollActiveItemIntoView(smooth = false) {
29054
- const activeEl = this.activeItem;
29055
- if (activeEl) {
29056
- this.centerPickerItemInView(activeEl, smooth, false);
29057
- }
29058
- }
29059
- /**
29060
- * Sets the value prop and fires the ionChange event.
29061
- * This is used when we need to fire ionChange from
29062
- * user-generated events that cannot be caught with normal
29063
- * input/change event listeners.
29064
- * @internal
29065
- */
29066
- async setValue(value) {
29067
- if (this.disabled === true || this.value === value) {
29068
- return;
29069
- }
29070
- this.value = value;
29071
- this.ionChange.emit({ value });
29072
- }
29073
- /**
29074
- * Sets focus on the scrollable container within the picker column.
29075
- * Use this method instead of the global `pickerColumn.focus()`.
29076
- */
29077
- async setFocus() {
29078
- if (this.assistiveFocusable) {
29079
- this.assistiveFocusable.focus();
29080
- }
29081
- }
29082
- connectedCallback() {
29083
- var _a;
29084
- this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
29085
- }
29086
- get activeItem() {
29087
- const { value } = this;
29088
- const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
29089
- return options.find((option) => {
29090
- /**
29091
- * If the whole picker column is disabled, the current value should appear active
29092
- * If the current value item is specifically disabled, it should not appear active
29093
- */
29094
- if (!this.disabled && option.disabled) {
29095
- return false;
29096
- }
29097
- return option.value === value;
29098
- });
29099
- }
29100
- render() {
29101
- const { color, disabled, isActive, numericInput } = this;
29102
- const mode = getIonMode$1(this);
29103
- return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
29104
- [mode]: true,
29105
- ['picker-column-active']: isActive,
29106
- ['picker-column-numeric-input']: numericInput,
29107
- ['picker-column-disabled']: disabled,
29108
- }) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
29109
- this.scrollEl = el;
29110
- }, 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" })));
29111
- }
29112
- get el() { return getElement(this); }
29113
- static get watchers() { return {
29114
- "aria-label": [{
29115
- "ariaLabelChanged": 0
29116
- }],
29117
- "value": [{
29118
- "valueChange": 0
29119
- }]
29120
- }; }
29121
- static get style() { return pickerColumnCss(); }
29122
- static get cmpMeta() { return {
29123
- "$flags$": 265,
29124
- "$tagName$": "ion-picker-column",
29125
- "$members$": {
29126
- "disabled": [4],
29127
- "value": [1032],
29128
- "color": [513],
29129
- "numericInput": [4, "numeric-input"],
29130
- "ariaLabel": [32],
29131
- "isActive": [32],
29132
- "scrollActiveItemIntoView": [64],
29133
- "setValue": [64],
29134
- "setFocus": [64]
29135
- },
29136
- "$listeners$": undefined,
29137
- "$lazyBundleId$": "-",
29138
- "$attrsToReflect$": [["color", "color"]]
29139
- }; }
29140
- }
29141
- const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29142
-
29143
- 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}}`;
29144
-
29145
- 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)}`;
29146
-
29147
- /**
29148
- * @internal
29149
- */
29150
- class PickerColumnCmp {
29151
- constructor(hostRef) {
29152
- registerInstance(this, hostRef);
29153
- this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
29154
- this.optHeight = 0;
29155
- this.rotateFactor = 0;
29156
- this.scaleFactor = 1;
29157
- this.velocity = 0;
29158
- this.y = 0;
29159
- this.noAnimate = true;
29160
- // `colDidChange` is a flag that gets set when the column is changed
29161
- // dynamically. When this flag is set, the column will refresh
29162
- // after the component re-renders to incorporate the new column data.
29163
- // This is necessary because `this.refresh` queries for the option elements,
29164
- // so it needs to wait for the latest elements to be available in the DOM.
29165
- // Ex: column is created with 3 options. User updates the column data
29166
- // to have 5 options. The column will still think it only has 3 options.
29167
- this.colDidChange = false;
29168
- }
29169
- colChanged() {
29170
- this.colDidChange = true;
29171
- }
29172
- async connectedCallback() {
29173
- let pickerRotateFactor = 0;
29174
- let pickerScaleFactor = 0.81;
29175
- const mode = getIonMode$1(this);
29176
- if (mode === 'ios') {
29177
- pickerRotateFactor = -0.46;
29178
- pickerScaleFactor = 1;
29179
- }
29180
- this.rotateFactor = pickerRotateFactor;
29181
- this.scaleFactor = pickerScaleFactor;
29182
- this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
29183
- el: this.el,
29184
- gestureName: 'picker-swipe',
29185
- gesturePriority: 100,
29186
- threshold: 0,
29187
- passive: false,
29188
- onStart: (ev) => this.onStart(ev),
29189
- onMove: (ev) => this.onMove(ev),
29190
- onEnd: (ev) => this.onEnd(ev),
29191
- });
29192
- this.gesture.enable();
29193
- // Options have not been initialized yet
29194
- // Animation must be disabled through the `noAnimate` flag
29195
- // Otherwise, the options will render
29196
- // at the top of the column and transition down
29197
- this.tmrId = setTimeout(() => {
29198
- this.noAnimate = false;
29199
- // After initialization, `refresh()` will be called
29200
- // At this point, animation will be enabled. The options will
29201
- // animate as they are being selected.
29202
- this.refresh(true);
29203
- }, 250);
29204
- }
29205
- componentDidLoad() {
29206
- this.onDomChange();
29207
- }
29208
- componentDidUpdate() {
29209
- // Options may have changed since last update.
29210
- if (this.colDidChange) {
29211
- // Animation must be disabled through the `onDomChange` parameter.
29212
- // Otherwise, the recently added options will render
29213
- // at the top of the column and transition down
29214
- this.onDomChange(true, false);
29215
- this.colDidChange = false;
29216
- }
29217
- }
29218
- disconnectedCallback() {
29219
- if (this.rafId !== undefined)
29220
- cancelAnimationFrame(this.rafId);
29221
- if (this.tmrId)
29222
- clearTimeout(this.tmrId);
29223
- if (this.gesture) {
29224
- this.gesture.destroy();
29225
- this.gesture = undefined;
29226
- }
29227
- }
29228
- emitColChange() {
29229
- this.ionPickerColChange.emit(this.col);
29230
- }
29231
- setSelected(selectedIndex, duration) {
29232
- // if there is a selected index, then figure out it's y position
29233
- // if there isn't a selected index, then just use the top y position
29234
- const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
29235
- this.velocity = 0;
29236
- // set what y position we're at
29237
- if (this.rafId !== undefined)
29238
- cancelAnimationFrame(this.rafId);
29239
- this.update(y, duration, true);
29240
- this.emitColChange();
29241
- }
29242
- update(y, duration, saveY) {
29243
- if (!this.optsEl) {
29244
- return;
29245
- }
29246
- // ensure we've got a good round number :)
29247
- let translateY = 0;
29248
- let translateZ = 0;
29249
- const { col, rotateFactor } = this;
29250
- const prevSelected = col.selectedIndex;
29251
- const selectedIndex = (col.selectedIndex = this.indexForY(-y));
29252
- const durationStr = duration === 0 ? '' : duration + 'ms';
29253
- const scaleStr = `scale(${this.scaleFactor})`;
29254
- const children = this.optsEl.children;
29255
- for (let i = 0; i < children.length; i++) {
29256
- const button = children[i];
29257
- const opt = col.options[i];
29258
- const optOffset = i * this.optHeight + y;
29259
- let transform = '';
29260
- if (rotateFactor !== 0) {
29261
- const rotateX = optOffset * rotateFactor;
29262
- if (Math.abs(rotateX) <= 90) {
29263
- translateY = 0;
29264
- translateZ = 90;
29265
- transform = `rotateX(${rotateX}deg) `;
29266
- }
29267
- else {
29268
- translateY = -9999;
29269
- }
29270
- }
29271
- else {
29272
- translateZ = 0;
29273
- translateY = optOffset;
29274
- }
29275
- const selected = selectedIndex === i;
29276
- transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
29277
- if (this.scaleFactor !== 1 && !selected) {
29278
- transform += scaleStr;
29279
- }
29280
- // Update transition duration
29281
- if (this.noAnimate) {
29282
- opt.duration = 0;
29283
- button.style.transitionDuration = '';
29284
- }
29285
- else if (duration !== opt.duration) {
29286
- opt.duration = duration;
29287
- button.style.transitionDuration = durationStr;
29288
- }
29289
- // Update transform
29290
- if (transform !== opt.transform) {
29291
- opt.transform = transform;
29292
- }
29293
- button.style.transform = transform;
29294
- /**
29295
- * Ensure that the select column
29296
- * item has the selected class
29297
- */
29298
- opt.selected = selected;
29299
- if (selected) {
29300
- button.classList.add(PICKER_OPT_SELECTED);
29301
- }
29302
- else {
29303
- button.classList.remove(PICKER_OPT_SELECTED);
29304
- }
29305
- }
29306
- this.col.prevSelected = prevSelected;
29307
- if (saveY) {
29308
- this.y = y;
29309
- }
29310
- if (this.lastIndex !== selectedIndex) {
29311
- // have not set a last index yet
29312
- hapticSelectionChanged();
29313
- this.lastIndex = selectedIndex;
29314
- }
29315
- }
29316
- decelerate() {
29317
- if (this.velocity !== 0) {
29318
- // still decelerating
29319
- this.velocity *= DECELERATION_FRICTION;
29320
- // do not let it go slower than a velocity of 1
29321
- this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
29322
- let y = this.y + this.velocity;
29323
- if (y > this.minY) {
29324
- // whoops, it's trying to scroll up farther than the options we have!
29325
- y = this.minY;
29326
- this.velocity = 0;
29327
- }
29328
- else if (y < this.maxY) {
29329
- // gahh, it's trying to scroll down farther than we can!
29330
- y = this.maxY;
29331
- this.velocity = 0;
29332
- }
29333
- this.update(y, 0, true);
29334
- const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29335
- if (notLockedIn) {
29336
- // isn't locked in yet, keep decelerating until it is
29337
- this.rafId = requestAnimationFrame(() => this.decelerate());
29338
- }
29339
- else {
29340
- this.velocity = 0;
29341
- this.emitColChange();
29342
- hapticSelectionEnd();
29343
- }
29344
- }
29345
- else if (this.y % this.optHeight !== 0) {
29346
- // needs to still get locked into a position so options line up
29347
- const currentPos = Math.abs(this.y % this.optHeight);
29348
- // create a velocity in the direction it needs to scroll
29349
- this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29350
- this.decelerate();
29351
- }
29352
- }
29353
- indexForY(y) {
29354
- return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29355
- }
29356
- onStart(detail) {
29357
- // We have to prevent default in order to block scrolling under the picker
29358
- // but we DO NOT have to stop propagation, since we still want
29359
- // some "click" events to capture
29360
- if (detail.event.cancelable) {
29361
- detail.event.preventDefault();
29362
- }
29363
- detail.event.stopPropagation();
29364
- hapticSelectionStart();
29365
- // reset everything
29366
- if (this.rafId !== undefined)
29367
- cancelAnimationFrame(this.rafId);
29368
- const options = this.col.options;
29369
- let minY = options.length - 1;
29370
- let maxY = 0;
29371
- for (let i = 0; i < options.length; i++) {
29372
- if (!options[i].disabled) {
29373
- minY = Math.min(minY, i);
29374
- maxY = Math.max(maxY, i);
29375
- }
29376
- }
29377
- this.minY = -(minY * this.optHeight);
29378
- this.maxY = -(maxY * this.optHeight);
29379
- }
29380
- onMove(detail) {
29381
- if (detail.event.cancelable) {
29382
- detail.event.preventDefault();
29383
- }
29384
- detail.event.stopPropagation();
29385
- // update the scroll position relative to pointer start position
29386
- let y = this.y + detail.deltaY;
29387
- if (y > this.minY) {
29388
- // scrolling up higher than scroll area
29389
- y = Math.pow(y, 0.8);
29390
- this.bounceFrom = y;
29391
- }
29392
- else if (y < this.maxY) {
29393
- // scrolling down below scroll area
29394
- y += Math.pow(this.maxY - y, 0.9);
29395
- this.bounceFrom = y;
29396
- }
29397
- else {
29398
- this.bounceFrom = 0;
29217
+ }
29399
29218
  }
29400
- this.update(y, 0, false);
29401
29219
  }
29402
- onEnd(detail) {
29403
- if (this.bounceFrom > 0) {
29404
- // bounce back up
29405
- this.update(this.minY, 100, true);
29406
- this.emitColChange();
29407
- return;
29220
+ /** @internal */
29221
+ async scrollActiveItemIntoView(smooth = false) {
29222
+ const activeEl = this.activeItem;
29223
+ if (activeEl) {
29224
+ this.centerPickerItemInView(activeEl, smooth, false);
29408
29225
  }
29409
- else if (this.bounceFrom < 0) {
29410
- // bounce back down
29411
- this.update(this.maxY, 100, true);
29412
- this.emitColChange();
29226
+ }
29227
+ /**
29228
+ * Sets the value prop and fires the ionChange event.
29229
+ * This is used when we need to fire ionChange from
29230
+ * user-generated events that cannot be caught with normal
29231
+ * input/change event listeners.
29232
+ * @internal
29233
+ */
29234
+ async setValue(value) {
29235
+ if (this.disabled === true || this.value === value) {
29413
29236
  return;
29414
29237
  }
29415
- this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29416
- if (this.velocity === 0 && detail.deltaY === 0) {
29417
- const opt = detail.event.target.closest('.picker-opt');
29418
- if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29419
- this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29420
- }
29421
- }
29422
- else {
29423
- this.y += detail.deltaY;
29424
- if (Math.abs(detail.velocityY) < 0.05) {
29425
- const isScrollingUp = detail.deltaY > 0;
29426
- const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29427
- if (isScrollingUp && optHeightFraction > 0.5) {
29428
- this.velocity = Math.abs(this.velocity) * -1;
29429
- }
29430
- else if (!isScrollingUp && optHeightFraction <= 0.5) {
29431
- this.velocity = Math.abs(this.velocity);
29432
- }
29433
- }
29434
- this.decelerate();
29238
+ this.value = value;
29239
+ this.ionChange.emit({ value });
29240
+ }
29241
+ /**
29242
+ * Sets focus on the scrollable container within the picker column.
29243
+ * Use this method instead of the global `pickerColumn.focus()`.
29244
+ */
29245
+ async setFocus() {
29246
+ if (this.assistiveFocusable) {
29247
+ this.assistiveFocusable.focus();
29435
29248
  }
29436
29249
  }
29437
- refresh(forceRefresh, animated) {
29250
+ connectedCallback() {
29438
29251
  var _a;
29439
- let min = this.col.options.length - 1;
29440
- let max = 0;
29441
- const options = this.col.options;
29442
- for (let i = 0; i < options.length; i++) {
29443
- if (!options[i].disabled) {
29444
- min = Math.min(min, i);
29445
- max = Math.max(max, i);
29446
- }
29447
- }
29448
- /**
29449
- * Only update selected value if column has a
29450
- * velocity of 0. If it does not, then the
29451
- * column is animating might land on
29452
- * a value different than the value at
29453
- * selectedIndex
29454
- */
29455
- if (this.velocity !== 0) {
29456
- return;
29457
- }
29458
- const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29459
- if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29460
- const y = selectedIndex * this.optHeight * -1;
29461
- const duration = animated ? TRANSITION_DURATION : 0;
29462
- this.velocity = 0;
29463
- this.update(y, duration, true);
29464
- }
29252
+ this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
29465
29253
  }
29466
- onDomChange(forceRefresh, animated) {
29467
- const colEl = this.optsEl;
29468
- if (colEl) {
29469
- // DOM READ
29470
- // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29471
- this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29472
- }
29473
- this.refresh(forceRefresh, animated);
29254
+ get activeItem() {
29255
+ const { value } = this;
29256
+ const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
29257
+ return options.find((option) => {
29258
+ /**
29259
+ * If the whole picker column is disabled, the current value should appear active
29260
+ * If the current value item is specifically disabled, it should not appear active
29261
+ */
29262
+ if (!this.disabled && option.disabled) {
29263
+ return false;
29264
+ }
29265
+ return option.value === value;
29266
+ });
29474
29267
  }
29475
29268
  render() {
29476
- const col = this.col;
29269
+ const { color, disabled, isActive, numericInput } = this;
29477
29270
  const mode = getIonMode$1(this);
29478
- 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: {
29479
- 'max-width': this.col.columnWidth,
29480
- } }, 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))));
29271
+ return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
29272
+ [mode]: true,
29273
+ ['picker-column-active']: isActive,
29274
+ ['picker-column-numeric-input']: numericInput,
29275
+ ['picker-column-disabled']: disabled,
29276
+ }) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
29277
+ this.scrollEl = el;
29278
+ }, 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" })));
29481
29279
  }
29482
29280
  get el() { return getElement(this); }
29483
29281
  static get watchers() { return {
29484
- "col": [{
29485
- "colChanged": 0
29282
+ "aria-label": [{
29283
+ "ariaLabelChanged": 0
29284
+ }],
29285
+ "value": [{
29286
+ "valueChange": 0
29486
29287
  }]
29487
29288
  }; }
29488
- static get style() { return {
29489
- ios: pickerColumnIosCss(),
29490
- md: pickerColumnMdCss()
29491
- }; }
29289
+ static get style() { return pickerColumnCss(); }
29492
29290
  static get cmpMeta() { return {
29493
- "$flags$": 32,
29494
- "$tagName$": "ion-picker-legacy-column",
29291
+ "$flags$": 265,
29292
+ "$tagName$": "ion-picker-column",
29495
29293
  "$members$": {
29496
- "col": [16]
29294
+ "disabled": [4],
29295
+ "value": [1032],
29296
+ "color": [513],
29297
+ "numericInput": [4, "numeric-input"],
29298
+ "ariaLabel": [32],
29299
+ "isActive": [32],
29300
+ "scrollActiveItemIntoView": [64],
29301
+ "setValue": [64],
29302
+ "setFocus": [64]
29497
29303
  },
29498
29304
  "$listeners$": undefined,
29499
29305
  "$lazyBundleId$": "-",
29500
- "$attrsToReflect$": []
29306
+ "$attrsToReflect$": [["color", "color"]]
29501
29307
  }; }
29502
29308
  }
29503
- const PICKER_OPT_SELECTED = 'picker-opt-selected';
29504
- const DECELERATION_FRICTION = 0.97;
29505
- const MAX_PICKER_SPEED = 90;
29506
- const TRANSITION_DURATION = 150;
29309
+ const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29507
29310
 
29508
29311
  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}`;
29509
29312
 
@@ -30700,9 +30503,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
30700
30503
  .addAnimation([backdropAnimation, wrapperAnimation]);
30701
30504
  };
30702
30505
 
30703
- 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)}}`;
30506
+ 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)}}`;
30704
30507
 
30705
- 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}`;
30508
+ 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}`;
30706
30509
 
30707
30510
  // TODO(FW-2832): types
30708
30511
  /**
@@ -30926,6 +30729,10 @@ class Popover {
30926
30729
  this.headerResizeObserver.disconnect();
30927
30730
  this.headerResizeObserver = undefined;
30928
30731
  }
30732
+ // Clean up aria-hidden if removed without dismiss() being called
30733
+ if (this.presented) {
30734
+ cleanupRootFocusTrapAccessibility();
30735
+ }
30929
30736
  }
30930
30737
  componentWillLoad() {
30931
30738
  var _a, _b;
@@ -31164,9 +30971,9 @@ class Popover {
31164
30971
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
31165
30972
  const desktop = isPlatform('desktop');
31166
30973
  const enableArrow = arrow && !parentPopover;
31167
- return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
30974
+ return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31168
30975
  zIndex: `${20000 + this.overlayIndex}`,
31169
- }, 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' })))));
30976
+ }, 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' })))));
31170
30977
  }
31171
30978
  get el() { return getElement(this); }
31172
30979
  static get watchers() { return {
@@ -31277,7 +31084,7 @@ class ProgressBar {
31277
31084
  const mode = getIonMode$1(this);
31278
31085
  // If the progress is displayed as a solid bar.
31279
31086
  const progressSolid = buffer === 1;
31280
- return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31087
+ return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31281
31088
  [mode]: true,
31282
31089
  [`progress-bar-${type}`]: true,
31283
31090
  'progress-paused': paused,
@@ -31462,7 +31269,7 @@ class Radio {
31462
31269
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
31463
31270
  const mode = getIonMode$1(this);
31464
31271
  const inItem = hostContext('ion-item', el);
31465
- return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31272
+ return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31466
31273
  [mode]: true,
31467
31274
  'in-item': inItem,
31468
31275
  'radio-checked': checked,
@@ -31473,10 +31280,10 @@ class Radio {
31473
31280
  // Focus and active styling should not apply when the radio is in an item
31474
31281
  'ion-activatable': !inItem,
31475
31282
  'ion-focusable': !inItem,
31476
- }), 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: {
31283
+ }), 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: {
31477
31284
  'label-text-wrapper': true,
31478
31285
  'label-text-wrapper-hidden': !hasLabel,
31479
- }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
31286
+ }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31480
31287
  }
31481
31288
  get el() { return getElement(this); }
31482
31289
  static get watchers() { return {
@@ -31495,7 +31302,7 @@ class Radio {
31495
31302
  "color": [513],
31496
31303
  "name": [1],
31497
31304
  "disabled": [4],
31498
- "value": [8],
31305
+ "value": [520],
31499
31306
  "labelPlacement": [1, "label-placement"],
31500
31307
  "justify": [1],
31501
31308
  "alignment": [1],
@@ -31506,7 +31313,7 @@ class Radio {
31506
31313
  },
31507
31314
  "$listeners$": undefined,
31508
31315
  "$lazyBundleId$": "-",
31509
- "$attrsToReflect$": [["color", "color"]]
31316
+ "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31510
31317
  }; }
31511
31318
  }
31512
31319
  let radioButtonIds = 0;
@@ -32571,7 +32378,7 @@ class Range {
32571
32378
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
32572
32379
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
32573
32380
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
32574
- return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32381
+ return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32575
32382
  [mode]: true,
32576
32383
  'in-item': inItem,
32577
32384
  'range-disabled': disabled,
@@ -32585,10 +32392,10 @@ class Range {
32585
32392
  'range-item-end-adjustment': needsEndAdjustment,
32586
32393
  'range-value-min': valueAtMin,
32587
32394
  'range-value-max': valueAtMax,
32588
- }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
32395
+ }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32589
32396
  'label-text-wrapper': true,
32590
32397
  'label-text-wrapper-hidden': !hasLabel,
32591
- }, 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" })))));
32398
+ }, 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" })))));
32592
32399
  }
32593
32400
  get el() { return getElement(this); }
32594
32401
  static get watchers() { return {
@@ -33659,7 +33466,7 @@ class Refresher {
33659
33466
  }
33660
33467
  render() {
33661
33468
  const mode = getIonMode$1(this);
33662
- return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
33469
+ return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33663
33470
  [mode]: true,
33664
33471
  // Used internally for styling
33665
33472
  [`refresher-${mode}`]: true,
@@ -33885,7 +33692,7 @@ class RefresherContent {
33885
33692
  const pullingIcon = this.pullingIcon;
33886
33693
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
33887
33694
  const mode = getIonMode$1(this);
33888
- 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())));
33695
+ 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())));
33889
33696
  }
33890
33697
  get el() { return getElement(this); }
33891
33698
  static get cmpMeta() { return {
@@ -33926,7 +33733,7 @@ class Reorder {
33926
33733
  render() {
33927
33734
  const mode = getIonMode$1(this);
33928
33735
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
33929
- 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" }))));
33736
+ 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" }))));
33930
33737
  }
33931
33738
  get el() { return getElement(this); }
33932
33739
  static get style() { return {
@@ -34197,7 +34004,7 @@ class ReorderGroup {
34197
34004
  }
34198
34005
  render() {
34199
34006
  const mode = getIonMode$1(this);
34200
- return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
34007
+ return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
34201
34008
  [mode]: true,
34202
34009
  'reorder-enabled': !this.disabled,
34203
34010
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -34315,7 +34122,7 @@ class RippleEffect {
34315
34122
  }
34316
34123
  render() {
34317
34124
  const mode = getIonMode$1(this);
34318
- return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
34125
+ return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
34319
34126
  [mode]: true,
34320
34127
  unbounded: this.unbounded,
34321
34128
  } }));
@@ -35449,10 +35256,10 @@ class RouterLink {
35449
35256
  rel: this.rel,
35450
35257
  target: this.target,
35451
35258
  };
35452
- return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
35259
+ return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
35453
35260
  [mode]: true,
35454
35261
  'ion-activatable': true,
35455
- }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
35262
+ }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
35456
35263
  }
35457
35264
  static get style() { return routerLinkCss(); }
35458
35265
  static get cmpMeta() { return {
@@ -35491,10 +35298,11 @@ class RouterOutlet {
35491
35298
  */
35492
35299
  this.animated = true;
35493
35300
  }
35301
+ swipeGestureChanged() {
35302
+ this.updateGestureEnabled();
35303
+ }
35494
35304
  swipeHandlerChanged() {
35495
- if (this.gesture) {
35496
- this.gesture.enable(this.swipeHandler !== undefined);
35497
- }
35305
+ this.updateGestureEnabled();
35498
35306
  }
35499
35307
  async connectedCallback() {
35500
35308
  const onStart = () => {
@@ -35534,11 +35342,21 @@ class RouterOutlet {
35534
35342
  this.gestureOrAnimationInProgress = false;
35535
35343
  }
35536
35344
  });
35537
- this.swipeHandlerChanged();
35345
+ if (this.swipeGesture === undefined) {
35346
+ this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
35347
+ }
35348
+ else {
35349
+ this.updateGestureEnabled();
35350
+ }
35538
35351
  }
35539
35352
  componentWillLoad() {
35540
35353
  this.ionNavWillLoad.emit();
35541
35354
  }
35355
+ updateGestureEnabled() {
35356
+ if (this.gesture) {
35357
+ this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
35358
+ }
35359
+ }
35542
35360
  disconnectedCallback() {
35543
35361
  if (this.gesture) {
35544
35362
  this.gesture.destroy();
@@ -35649,10 +35467,13 @@ class RouterOutlet {
35649
35467
  return true;
35650
35468
  }
35651
35469
  render() {
35652
- return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
35470
+ return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35653
35471
  }
35654
35472
  get el() { return getElement(this); }
35655
35473
  static get watchers() { return {
35474
+ "swipeGesture": [{
35475
+ "swipeGestureChanged": 0
35476
+ }],
35656
35477
  "swipeHandler": [{
35657
35478
  "swipeHandlerChanged": 0
35658
35479
  }]
@@ -35666,6 +35487,7 @@ class RouterOutlet {
35666
35487
  "delegate": [16],
35667
35488
  "animated": [4],
35668
35489
  "animation": [16],
35490
+ "swipeGesture": [1028, "swipe-gesture"],
35669
35491
  "swipeHandler": [16],
35670
35492
  "commit": [64],
35671
35493
  "setRouteId": [64],
@@ -35684,7 +35506,7 @@ class Row {
35684
35506
  registerInstance(this, hostRef);
35685
35507
  }
35686
35508
  render() {
35687
- return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
35509
+ return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35688
35510
  }
35689
35511
  static get style() { return rowCss(); }
35690
35512
  static get cmpMeta() { return {
@@ -35736,7 +35558,7 @@ class Searchbar {
35736
35558
  /**
35737
35559
  * Set the input's autocorrect property.
35738
35560
  */
35739
- this.autocorrect = 'off';
35561
+ this.autocorrect = false;
35740
35562
  /**
35741
35563
  * Set the cancel button icon. Only applies to `md` mode.
35742
35564
  * Defaults to `arrow-back-sharp`.
@@ -36157,8 +35979,8 @@ class Searchbar {
36157
35979
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
36158
35980
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
36159
35981
  const shouldShowCancelButton = this.shouldShowCancelButton();
36160
- 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))));
36161
- return (hAsync(Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
35982
+ 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))));
35983
+ return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36162
35984
  [mode]: true,
36163
35985
  'searchbar-animated': animated,
36164
35986
  'searchbar-disabled': this.disabled,
@@ -36168,14 +35990,14 @@ class Searchbar {
36168
35990
  'searchbar-has-focus': this.focused,
36169
35991
  'searchbar-should-show-clear': this.shouldShowClearButton(),
36170
35992
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
36171
- }) }, 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) => {
35993
+ }) }, 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) => {
36172
35994
  /**
36173
35995
  * This prevents mobile browsers from
36174
35996
  * blurring the input when the clear
36175
35997
  * button is activated.
36176
35998
  */
36177
35999
  ev.preventDefault();
36178
- }, 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));
36000
+ }, 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));
36179
36001
  }
36180
36002
  get el() { return getElement(this); }
36181
36003
  static get watchers() { return {
@@ -36207,7 +36029,7 @@ class Searchbar {
36207
36029
  "animated": [4],
36208
36030
  "autocapitalize": [1],
36209
36031
  "autocomplete": [1],
36210
- "autocorrect": [1],
36032
+ "autocorrect": [4],
36211
36033
  "cancelButtonIcon": [1, "cancel-button-icon"],
36212
36034
  "cancelButtonText": [1, "cancel-button-text"],
36213
36035
  "clearIcon": [1, "clear-icon"],
@@ -36784,14 +36606,14 @@ class Segment {
36784
36606
  }
36785
36607
  render() {
36786
36608
  const mode = getIonMode$1(this);
36787
- return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36609
+ return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36788
36610
  [mode]: true,
36789
36611
  'in-toolbar': hostContext('ion-toolbar', this.el),
36790
36612
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
36791
36613
  'segment-activated': this.activated,
36792
36614
  'segment-disabled': this.disabled,
36793
36615
  'segment-scrollable': this.scrollable,
36794
- }) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
36616
+ }) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
36795
36617
  }
36796
36618
  get el() { return getElement(this); }
36797
36619
  static get watchers() { return {
@@ -36939,7 +36761,7 @@ class SegmentButton {
36939
36761
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
36940
36762
  const mode = getIonMode$1(this);
36941
36763
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
36942
- return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
36764
+ return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
36943
36765
  [mode]: true,
36944
36766
  'in-toolbar': hostContext('ion-toolbar', this.el),
36945
36767
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -36955,7 +36777,7 @@ class SegmentButton {
36955
36777
  'ion-activatable': true,
36956
36778
  'ion-activatable-instant': true,
36957
36779
  'ion-focusable': true,
36958
- } }, 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" }))));
36780
+ } }, 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" }))));
36959
36781
  }
36960
36782
  get el() { return getElement(this); }
36961
36783
  static get watchers() { return {
@@ -36992,7 +36814,7 @@ class SegmentContent {
36992
36814
  registerInstance(this, hostRef);
36993
36815
  }
36994
36816
  render() {
36995
- return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
36817
+ return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
36996
36818
  }
36997
36819
  static get style() { return segmentContentCss(); }
36998
36820
  static get cmpMeta() { return {
@@ -37111,11 +36933,11 @@ class SegmentView {
37111
36933
  }
37112
36934
  render() {
37113
36935
  const { disabled, isManualScroll, swipeGesture } = this;
37114
- return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
36936
+ return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
37115
36937
  'segment-view-disabled': disabled,
37116
36938
  'segment-view-scroll-disabled': isManualScroll === false,
37117
36939
  'segment-view-swipe-disabled': swipeGesture === false,
37118
- } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
36940
+ } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
37119
36941
  }
37120
36942
  get el() { return getElement(this); }
37121
36943
  static get style() { return {
@@ -37137,9 +36959,9 @@ class SegmentView {
37137
36959
  }; }
37138
36960
  }
37139
36961
 
37140
- 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}`;
36962
+ 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}`;
37141
36963
 
37142
- 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}`;
36964
+ 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}`;
37143
36965
 
37144
36966
  // TODO(FW-2832): types
37145
36967
  /**
@@ -37174,6 +36996,7 @@ class Select {
37174
36996
  this.helperTextId = `${this.inputId}-helper-text`;
37175
36997
  this.errorTextId = `${this.inputId}-error-text`;
37176
36998
  this.inheritedAttributes = {};
36999
+ this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
37177
37000
  this.isExpanded = false;
37178
37001
  /**
37179
37002
  * The `hasFocus` state ensures the focus class is
@@ -37299,9 +37122,40 @@ class Select {
37299
37122
  this.emitStyle();
37300
37123
  }
37301
37124
  setValue(value) {
37125
+ if (this.isValueEqual(this.value, value)) {
37126
+ return;
37127
+ }
37302
37128
  this.value = value;
37303
37129
  this.ionChange.emit({ value });
37304
37130
  }
37131
+ isValueEqual(currentValue, newValue) {
37132
+ if (this.multiple) {
37133
+ const currentArr = Array.isArray(currentValue) ? currentValue : [];
37134
+ const newArr = Array.isArray(newValue) ? newValue : [];
37135
+ if (currentArr.length !== newArr.length) {
37136
+ return false;
37137
+ }
37138
+ // Multiset compare: each new value must match a distinct current value.
37139
+ // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
37140
+ // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
37141
+ const remaining = currentArr.slice();
37142
+ return newArr.every((val) => {
37143
+ const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
37144
+ if (idx === -1) {
37145
+ return false;
37146
+ }
37147
+ remaining.splice(idx, 1);
37148
+ return true;
37149
+ });
37150
+ }
37151
+ if (currentValue == null && newValue == null) {
37152
+ return true;
37153
+ }
37154
+ if (currentValue == null || newValue == null) {
37155
+ return false;
37156
+ }
37157
+ return compareOptions(currentValue, newValue, this.compareWith);
37158
+ }
37305
37159
  async connectedCallback() {
37306
37160
  const { el } = this;
37307
37161
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -37495,10 +37349,11 @@ class Select {
37495
37349
  .join(' ');
37496
37350
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37497
37351
  const isSelected = isOptionSelected(selectValue, value, this.compareWith);
37352
+ const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37498
37353
  return {
37499
- role: isSelected ? 'selected' : '',
37500
- text: option.textContent,
37354
+ text: content !== null && content !== void 0 ? content : '',
37501
37355
  cssClass: optClass,
37356
+ disabled: option.disabled,
37502
37357
  handler: () => {
37503
37358
  this.setValue(value);
37504
37359
  },
@@ -37506,6 +37361,9 @@ class Select {
37506
37361
  'aria-checked': isSelected ? 'true' : 'false',
37507
37362
  role: 'radio',
37508
37363
  },
37364
+ startContent,
37365
+ endContent,
37366
+ description: option.description,
37509
37367
  };
37510
37368
  });
37511
37369
  // Add "cancel" button
@@ -37526,13 +37384,19 @@ class Select {
37526
37384
  .filter((cls) => cls !== 'hydrated')
37527
37385
  .join(' ');
37528
37386
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37387
+ const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37529
37388
  return {
37530
37389
  type: inputType,
37531
37390
  cssClass: optClass,
37532
- label: option.textContent || '',
37391
+ label: content !== null && content !== void 0 ? content : '',
37533
37392
  value,
37534
37393
  checked: isOptionSelected(selectValue, value, this.compareWith),
37535
37394
  disabled: option.disabled,
37395
+ startContent,
37396
+ endContent,
37397
+ description: option.description,
37398
+ labelPlacement: option.labelPlacement,
37399
+ justify: option.justify,
37536
37400
  };
37537
37401
  });
37538
37402
  return alertInputs;
@@ -37545,8 +37409,9 @@ class Select {
37545
37409
  .filter((cls) => cls !== 'hydrated')
37546
37410
  .join(' ');
37547
37411
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37412
+ const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37548
37413
  return {
37549
- text: option.textContent || '',
37414
+ text: content !== null && content !== void 0 ? content : '',
37550
37415
  cssClass: optClass,
37551
37416
  value,
37552
37417
  checked: isOptionSelected(selectValue, value, this.compareWith),
@@ -37557,6 +37422,11 @@ class Select {
37557
37422
  this.close();
37558
37423
  }
37559
37424
  },
37425
+ startContent,
37426
+ endContent,
37427
+ description: option.description,
37428
+ labelPlacement: option.labelPlacement,
37429
+ justify: option.justify,
37560
37430
  };
37561
37431
  });
37562
37432
  return popoverOptions;
@@ -37589,15 +37459,21 @@ class Select {
37589
37459
  ionShadowTarget: this.nativeWrapperEl,
37590
37460
  } });
37591
37461
  }
37462
+ const options = this.createOverlaySelectOptions(this.childOpts, value);
37463
+ const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
37592
37464
  const popoverOpts = Object.assign(Object.assign({ mode,
37593
37465
  event, alignment: 'center', size,
37594
- showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
37466
+ showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
37467
+ 'select-popover',
37468
+ hasRichContent ? 'select-popover-rich-content' : undefined,
37469
+ interfaceOptions.cssClass,
37470
+ ], componentProps: {
37595
37471
  header: interfaceOptions.header,
37596
37472
  subHeader: interfaceOptions.subHeader,
37597
37473
  message: interfaceOptions.message,
37598
37474
  multiple,
37599
37475
  value,
37600
- options: this.createOverlaySelectOptions(this.childOpts, value),
37476
+ options,
37601
37477
  } });
37602
37478
  return popoverController.create(popoverOpts);
37603
37479
  }
@@ -37678,12 +37554,18 @@ class Select {
37678
37554
  }
37679
37555
  return;
37680
37556
  }
37681
- getText() {
37557
+ /**
37558
+ * Returns the text to display in the select based on the selected value.
37559
+ *
37560
+ * @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`.
37561
+ * @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
37562
+ */
37563
+ getText(useHTML = false) {
37682
37564
  const selectedText = this.selectedText;
37683
37565
  if (selectedText != null && selectedText !== '') {
37684
37566
  return selectedText;
37685
37567
  }
37686
- return generateText(this.childOpts, this.value, this.compareWith);
37568
+ return generateText(this.childOpts, this.value, this.compareWith, useHTML);
37687
37569
  }
37688
37570
  setFocus() {
37689
37571
  if (this.focusEl) {
@@ -37753,6 +37635,47 @@ class Select {
37753
37635
  */
37754
37636
  return this.renderLabel();
37755
37637
  }
37638
+ /**
37639
+ * Wraps text nodes in the select text with span elements
37640
+ * so spacing can be added between elements without
37641
+ * changing the display to prevent losing the ellipses
37642
+ * behavior.
37643
+ *
37644
+ * Only wraps when the string contains HTML elements
37645
+ * alongside text.
37646
+ */
37647
+ wrapSelectTextNodes(html) {
37648
+ const temp = document.createElement('div');
37649
+ temp.innerHTML = html;
37650
+ const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
37651
+ // Return the plain text
37652
+ if (!hasElements) {
37653
+ return html;
37654
+ }
37655
+ Array.from(temp.childNodes).forEach((node) => {
37656
+ var _a, _b, _c, _d;
37657
+ if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
37658
+ const text = node.textContent;
37659
+ /**
37660
+ * Split comma separator from the text content
37661
+ * e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
37662
+ */
37663
+ const commaMatch = text.match(/^(,\s*)(.*)/);
37664
+ if (commaMatch) {
37665
+ const commaNode = document.createTextNode(commaMatch[1]);
37666
+ const wrapper = document.createElement('span');
37667
+ wrapper.textContent = commaMatch[2];
37668
+ (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
37669
+ (_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
37670
+ return;
37671
+ }
37672
+ const wrapper = document.createElement('span');
37673
+ (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
37674
+ wrapper.appendChild(node);
37675
+ }
37676
+ });
37677
+ return temp.innerHTML;
37678
+ }
37756
37679
  /**
37757
37680
  * Renders either the placeholder
37758
37681
  * or the selected values based on
@@ -37760,7 +37683,7 @@ class Select {
37760
37683
  */
37761
37684
  renderSelectText() {
37762
37685
  const { placeholder } = this;
37763
- const displayValue = this.getText();
37686
+ const displayValue = this.getText(true);
37764
37687
  let addPlaceholderClass = false;
37765
37688
  let selectText = displayValue;
37766
37689
  if (selectText === '' && placeholder !== undefined) {
@@ -37772,6 +37695,10 @@ class Select {
37772
37695
  'select-placeholder': addPlaceholderClass,
37773
37696
  };
37774
37697
  const textPart = addPlaceholderClass ? 'placeholder' : 'text';
37698
+ if (this.customHTMLEnabled) {
37699
+ const wrapped = this.wrapSelectTextNodes(selectText);
37700
+ return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
37701
+ }
37775
37702
  return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
37776
37703
  }
37777
37704
  /**
@@ -37794,6 +37721,7 @@ class Select {
37794
37721
  get ariaLabel() {
37795
37722
  var _a;
37796
37723
  const { placeholder, inheritedAttributes } = this;
37724
+ // Get the plain text from the selected text
37797
37725
  const displayValue = this.getText();
37798
37726
  // The aria label should be preferred over visible text if both are specified
37799
37727
  const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
@@ -37887,7 +37815,7 @@ class Select {
37887
37815
  * TODO(FW-5592): Remove hasStartEndSlots condition
37888
37816
  */
37889
37817
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
37890
- return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
37818
+ return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
37891
37819
  [mode]: true,
37892
37820
  'in-item': inItem,
37893
37821
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -37905,7 +37833,7 @@ class Select {
37905
37833
  [`select-justify-${justify}`]: justifyEnabled,
37906
37834
  [`select-shape-${shape}`]: shape !== undefined,
37907
37835
  [`select-label-placement-${labelPlacement}`]: true,
37908
- }) }, 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()));
37836
+ }) }, 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()));
37909
37837
  }
37910
37838
  get el() { return getElement(this); }
37911
37839
  static get watchers() { return {
@@ -37976,34 +37904,232 @@ const parseValue = (value) => {
37976
37904
  }
37977
37905
  return value.toString();
37978
37906
  };
37979
- const generateText = (opts, value, compareWith) => {
37907
+ const generateText = (opts, value, compareWith, useHTML = false) => {
37980
37908
  if (value === undefined) {
37981
37909
  return '';
37982
37910
  }
37983
37911
  if (Array.isArray(value)) {
37984
37912
  return value
37985
- .map((v) => textForValue(opts, v, compareWith))
37913
+ .map((v) => textForValue(opts, v, compareWith, useHTML))
37986
37914
  .filter((opt) => opt !== null)
37987
37915
  .join(', ');
37988
37916
  }
37989
37917
  else {
37990
- return textForValue(opts, value, compareWith) || '';
37918
+ return textForValue(opts, value, compareWith, useHTML) || '';
37991
37919
  }
37992
37920
  };
37993
- const textForValue = (opts, value, compareWith) => {
37921
+ /**
37922
+ * Returns the display text for a given value from the list of options.
37923
+ * When `useHTML` is true, returns sanitized HTML for the select text.
37924
+ * When `useHTML` is false, returns plain text for aria-label and other
37925
+ * text-only contexts.
37926
+ *
37927
+ * @param opts - The list of ion-select-option elements.
37928
+ * @param value - The value to find the matching option for.
37929
+ * @param compareWith - Custom comparison function or property name.
37930
+ * @param useHTML - If true, returns HTML string. If false, returns plain text.
37931
+ */
37932
+ const textForValue = (opts, value, compareWith, useHTML = false) => {
37994
37933
  const selectOpt = opts.find((opt) => {
37995
37934
  return compareOptions(value, getOptionValue(opt), compareWith);
37996
37935
  });
37997
- return selectOpt ? selectOpt.textContent : null;
37936
+ const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
37937
+ if (!selectOpt) {
37938
+ return null;
37939
+ }
37940
+ // Return sanitized HTML for the select text
37941
+ if (customHTMLEnabled && useHTML) {
37942
+ return getOptionContent(selectOpt, undefined, true);
37943
+ }
37944
+ /**
37945
+ * When custom HTML is enabled, extract only the default slot content.
37946
+ * This ensures aria-label and other text-only contexts read only
37947
+ * the relevant option text.
37948
+ */
37949
+ if (customHTMLEnabled) {
37950
+ const content = getOptionContent(selectOpt);
37951
+ if (typeof content === 'string') {
37952
+ return content;
37953
+ }
37954
+ /**
37955
+ * Elements were found in the default slot, extract and concatenate
37956
+ * their text content while trimming whitespace.
37957
+ */
37958
+ if (content) {
37959
+ const texts = Array.from(content.childNodes)
37960
+ .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
37961
+ .filter((t) => t);
37962
+ return texts.join(' ') || null;
37963
+ }
37964
+ // Empty option
37965
+ return null;
37966
+ }
37967
+ return getDefaultSlotPlainText(selectOpt);
37968
+ };
37969
+ /**
37970
+ * Trims whitespace from all text nodes within a DOM tree.
37971
+ * This prevents invisible layout shifts and unwanted gaps between
37972
+ * elements when HTML content is injected via innerHTML or cloneNode,
37973
+ * as browsers preserve whitespace (tabs, newlines, spaces) from
37974
+ * the original source markup.
37975
+ *
37976
+ * @param node The root node to start trimming text nodes from.
37977
+ */
37978
+ const trimTextNodes = (node) => {
37979
+ node.childNodes.forEach((child) => {
37980
+ var _a;
37981
+ if (child.nodeType === Node.TEXT_NODE) {
37982
+ child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
37983
+ }
37984
+ else if (child.nodeType === Node.ELEMENT_NODE) {
37985
+ trimTextNodes(child);
37986
+ }
37987
+ });
37988
+ };
37989
+ /**
37990
+ * Extracts and clones content from an `ion-select-option` element
37991
+ * for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
37992
+ *
37993
+ * @param option - The `ion-select-option` element to extract content from.
37994
+ * @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
37995
+ * @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.
37996
+ * @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
37997
+ * div element containing cloned child nodes. Returns `null` if no matching
37998
+ * content is found.
37999
+ */
38000
+ const getOptionContent = (option, slotName, useHTML = false) => {
38001
+ let nodes;
38002
+ if (slotName) {
38003
+ // Named slot: get elements with matching slot attribute
38004
+ nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
38005
+ }
38006
+ else {
38007
+ // Default slot: get nodes without a slot attribute
38008
+ const defaultSlot = getOptionDefaultSlot(option) || [];
38009
+ nodes = defaultSlot.filter((node) => {
38010
+ var _a;
38011
+ /**
38012
+ * Exclude whitespace-only text nodes (newline noise between
38013
+ * markup elements). Element nodes are always kept, even when
38014
+ * their textContent is empty (e.g. <svg>, <img>).
38015
+ */
38016
+ if (node.nodeType === Node.TEXT_NODE) {
38017
+ return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
38018
+ }
38019
+ return true;
38020
+ });
38021
+ }
38022
+ if (nodes.length === 0) {
38023
+ return null;
38024
+ }
38025
+ // Return plain text if no elements are found
38026
+ if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
38027
+ return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
38028
+ }
38029
+ /**
38030
+ * Mirror known custom-element properties (e.g. ion-icon's `icon`)
38031
+ * onto attributes before cloning. Frameworks like Vue set these as
38032
+ * DOM properties, which `cloneNode` doesn't copy, so without this
38033
+ * step the cloned overlay copy renders without the prop's value.
38034
+ */
38035
+ nodes.forEach((n) => {
38036
+ if (n.nodeType === Node.ELEMENT_NODE) {
38037
+ reflectPropertiesToAttributes(n);
38038
+ }
38039
+ });
38040
+ // Clone each node into a temporary container
38041
+ const container = document.createElement('div');
38042
+ nodes.forEach((n) => {
38043
+ var _a;
38044
+ const clone = n.cloneNode(true);
38045
+ if (clone.nodeType === Node.TEXT_NODE) {
38046
+ clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
38047
+ }
38048
+ else {
38049
+ trimTextNodes(clone);
38050
+ }
38051
+ container.appendChild(clone);
38052
+ });
38053
+ /**
38054
+ * Sanitize the cloned DOM in place. Trusted attributes (size, color,
38055
+ * shape, etc.) are preserved; event handlers, javascript: URLs, and
38056
+ * blocked tags are stripped.
38057
+ */
38058
+ sanitizeDOMTree(container);
38059
+ if (useHTML) {
38060
+ return container.innerHTML.trim() || null;
38061
+ }
38062
+ return container;
38063
+ };
38064
+ /**
38065
+ * Returns the child nodes that belong to the default slot of an
38066
+ * option element, excluding any nodes that are assigned to named
38067
+ * slots.
38068
+ *
38069
+ * @param option - The `ion-select-option` element to extract default-slot nodes from.
38070
+ * @returns An array of default slot nodes, or `null` if none are found.
38071
+ */
38072
+ const getOptionDefaultSlot = (option) => {
38073
+ const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
38074
+ if (node.nodeType === Node.ELEMENT_NODE) {
38075
+ return !node.hasAttribute('slot');
38076
+ }
38077
+ return node.nodeType === Node.TEXT_NODE;
38078
+ });
38079
+ if (defaultSlotNodes.length === 0) {
38080
+ return null;
38081
+ }
38082
+ return defaultSlotNodes;
38083
+ };
38084
+ /**
38085
+ * Extracts plain text from only the default slot of an option,
38086
+ * excluding content assigned to named slots (start/end).
38087
+ */
38088
+ const getDefaultSlotPlainText = (option) => {
38089
+ const texts = Array.from(option.childNodes)
38090
+ .filter((node) => {
38091
+ if (node.nodeType === Node.ELEMENT_NODE) {
38092
+ return !node.hasAttribute('slot');
38093
+ }
38094
+ return node.nodeType === Node.TEXT_NODE;
38095
+ })
38096
+ .filter((node) => node.nodeType === Node.TEXT_NODE)
38097
+ .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
38098
+ .filter((t) => t);
38099
+ return texts.join(' ');
38100
+ };
38101
+ /**
38102
+ * Extracts the rich content from an `ion-select-option`.
38103
+ * When `customHTMLEnabled` is `false`, only the plain text from the
38104
+ * default slot is read and the start and end slots are skipped.
38105
+ *
38106
+ * @param option - The `ion-select-option` element to extract content from.
38107
+ * @param customHTMLEnabled - Whether custom HTML rendering is enabled
38108
+ * via the `innerHTMLTemplatesEnabled` config.
38109
+ */
38110
+ const extractOptionContent = (option, customHTMLEnabled) => {
38111
+ var _a, _b;
38112
+ if (!customHTMLEnabled) {
38113
+ return {
38114
+ content: getDefaultSlotPlainText(option),
38115
+ startContent: undefined,
38116
+ endContent: undefined,
38117
+ };
38118
+ }
38119
+ return {
38120
+ content: getOptionContent(option),
38121
+ startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
38122
+ endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
38123
+ };
37998
38124
  };
37999
38125
  let selectIds = 0;
38000
38126
  const OPTION_CLASS = 'select-interface-option';
38001
38127
 
38002
- 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)}`;
38128
+ 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)}`;
38003
38129
 
38004
- 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)}`;
38130
+ 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)}`;
38005
38131
 
38006
- 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)}`;
38132
+ 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)}`;
38007
38133
 
38008
38134
  class SelectModal {
38009
38135
  constructor(hostRef) {
@@ -38057,39 +38183,90 @@ class SelectModal {
38057
38183
  }
38058
38184
  }
38059
38185
  renderRadioOptions() {
38186
+ const mode = getIonMode$1(this);
38060
38187
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
38061
- return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { lines: "none", class: Object.assign({
38188
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
38189
+ var _a, _b;
38190
+ /**
38191
+ * Cast to `SelectOverlayOption` to access rich content
38192
+ * fields (`startContent`, `endContent`, `description`)
38193
+ * that are passed through from `ion-select` but not
38194
+ * part of the public `SelectModalOption` interface.
38195
+ */
38196
+ const richOption = option;
38197
+ const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38198
+ const optionLabelOptions = {
38199
+ id: `modal-option-${index}`,
38200
+ label: richOption.text,
38201
+ startContent: richOption.startContent,
38202
+ endContent: richOption.endContent,
38203
+ description: richOption.description,
38204
+ };
38205
+ const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
38206
+ const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
38207
+ return (hAsync("ion-item", { lines: "none",
38062
38208
  // TODO FW-4784
38063
- 'item-radio-checked': option.value === checked
38064
- }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyDown: (ev) => {
38065
- if (ev.key === 'Enter' && !ev.repeat) {
38066
- this.pendingEnterTarget = ev.currentTarget;
38067
- }
38068
- }, onKeyUp: (ev) => {
38069
- if (ev.key === ' ') {
38070
- // Space selects and dismisses in one press.
38071
- this.closeModal();
38072
- }
38073
- else if (ev.key === 'Enter') {
38074
- const shouldClose = this.pendingEnterTarget === ev.currentTarget;
38075
- this.pendingEnterTarget = null;
38076
- if (shouldClose) {
38209
+ disabled: option.disabled, class: Object.assign({
38210
+ // TODO FW-4784
38211
+ 'item-radio-checked': option.value === checked
38212
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
38213
+ 'select-option-has-rich-content': hasRichContent,
38214
+ }, 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) => {
38215
+ if (ev.key === 'Enter' && !ev.repeat) {
38216
+ this.pendingEnterTarget = ev.currentTarget;
38217
+ }
38218
+ }, onKeyUp: (ev) => {
38219
+ if (ev.key === ' ') {
38220
+ // Space selects and dismisses in one press.
38077
38221
  this.closeModal();
38078
38222
  }
38079
- }
38080
- } }, option.text))))));
38223
+ else if (ev.key === 'Enter') {
38224
+ const shouldClose = this.pendingEnterTarget === ev.currentTarget;
38225
+ this.pendingEnterTarget = null;
38226
+ if (shouldClose) {
38227
+ this.closeModal();
38228
+ }
38229
+ }
38230
+ } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38231
+ })));
38081
38232
  }
38082
38233
  renderCheckboxOptions() {
38083
- return this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
38234
+ const mode = getIonMode$1(this);
38235
+ return this.options.map((option, index) => {
38236
+ var _a, _b;
38237
+ /**
38238
+ * Cast to `SelectOverlayOption` to access rich content
38239
+ * fields (`startContent`, `endContent`, `description`)
38240
+ * that are passed through from `ion-select` but not
38241
+ * part of the public `SelectModalOption` interface.
38242
+ */
38243
+ const richOption = option;
38244
+ const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38245
+ const optionLabelOptions = {
38246
+ id: `modal-option-${index}`,
38247
+ label: richOption.text,
38248
+ startContent: richOption.startContent,
38249
+ endContent: richOption.endContent,
38250
+ description: richOption.description,
38251
+ };
38252
+ const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
38253
+ const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
38254
+ return (hAsync("ion-item", {
38084
38255
  // TODO FW-4784
38085
- 'item-checkbox-checked': option.checked
38086
- }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
38087
- this.setChecked(ev);
38088
- this.callOptionHandler(ev);
38089
- } }, option.text))));
38256
+ disabled: option.disabled, class: Object.assign({
38257
+ // TODO FW-4784
38258
+ 'item-checkbox-checked': option.checked
38259
+ }, getClassMap(option.cssClass))
38260
+ }, hAsync("ion-checkbox", { class: {
38261
+ 'select-option-has-rich-content': hasRichContent,
38262
+ }, 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) => {
38263
+ this.setChecked(ev);
38264
+ this.callOptionHandler(ev);
38265
+ } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38266
+ });
38090
38267
  }
38091
38268
  render() {
38092
- 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()))));
38269
+ 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()))));
38093
38270
  }
38094
38271
  get el() { return getElement(this); }
38095
38272
  static get style() { return {
@@ -38114,6 +38291,13 @@ class SelectModal {
38114
38291
 
38115
38292
  const selectOptionCss = () => `:host{display:none}`;
38116
38293
 
38294
+ /**
38295
+ * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
38296
+ *
38297
+ * @slot - Content is placed between the named slots if provided without a slot.
38298
+ * @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
38299
+ * @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
38300
+ */
38117
38301
  class SelectOption {
38118
38302
  constructor(hostRef) {
38119
38303
  registerInstance(this, hostRef);
@@ -38124,7 +38308,7 @@ class SelectOption {
38124
38308
  this.disabled = false;
38125
38309
  }
38126
38310
  render() {
38127
- return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
38311
+ return hAsync(Host, { key: '4f284411b91b98eda59aadc401bc4d8e423caae9', role: "option", id: this.inputId, class: getIonMode$1(this) });
38128
38312
  }
38129
38313
  get el() { return getElement(this); }
38130
38314
  static get style() { return selectOptionCss(); }
@@ -38133,7 +38317,10 @@ class SelectOption {
38133
38317
  "$tagName$": "ion-select-option",
38134
38318
  "$members$": {
38135
38319
  "disabled": [4],
38136
- "value": [8]
38320
+ "value": [8],
38321
+ "description": [1],
38322
+ "labelPlacement": [1, "label-placement"],
38323
+ "justify": [1]
38137
38324
  },
38138
38325
  "$listeners$": undefined,
38139
38326
  "$lazyBundleId$": "-",
@@ -38142,9 +38329,9 @@ class SelectOption {
38142
38329
  }
38143
38330
  let selectOptionIds = 0;
38144
38331
 
38145
- 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}`;
38332
+ 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}`;
38146
38333
 
38147
- 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)}`;
38334
+ 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)}`;
38148
38335
 
38149
38336
  /**
38150
38337
  * @internal
@@ -38218,41 +38405,91 @@ class SelectPopover {
38218
38405
  }
38219
38406
  }
38220
38407
  renderCheckboxOptions(options) {
38221
- return options.map((option) => (hAsync("ion-item", { class: Object.assign({
38408
+ const mode = getIonMode$1(this);
38409
+ return options.map((option, index) => {
38410
+ var _a, _b;
38411
+ /**
38412
+ * Cast to `SelectOverlayOption` to access rich content
38413
+ * fields (`startContent`, `endContent`, `description`)
38414
+ * that are passed through from `ion-select` but not
38415
+ * part of the public `SelectPopoverOption` interface.
38416
+ */
38417
+ const richOption = option;
38418
+ const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38419
+ const optionLabelOptions = {
38420
+ id: `popover-option-${index}`,
38421
+ label: richOption.text,
38422
+ startContent: richOption.startContent,
38423
+ endContent: richOption.endContent,
38424
+ description: richOption.description,
38425
+ };
38426
+ const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
38427
+ const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
38428
+ return (hAsync("ion-item", {
38222
38429
  // TODO FW-4784
38223
- 'item-checkbox-checked': option.checked
38224
- }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
38225
- this.setChecked(ev);
38226
- this.callOptionHandler(ev);
38227
- } }, option.text))));
38430
+ disabled: option.disabled, class: Object.assign({
38431
+ // TODO FW-4784
38432
+ 'item-checkbox-checked': option.checked
38433
+ }, getClassMap(option.cssClass))
38434
+ }, hAsync("ion-checkbox", { class: {
38435
+ 'select-option-has-rich-content': hasRichContent,
38436
+ }, 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) => {
38437
+ this.setChecked(ev);
38438
+ this.callOptionHandler(ev);
38439
+ } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38440
+ });
38228
38441
  }
38229
38442
  renderRadioOptions(options) {
38443
+ const mode = getIonMode$1(this);
38230
38444
  const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
38231
- return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) => (hAsync("ion-item", { class: Object.assign({
38445
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
38446
+ var _a, _b;
38447
+ /**
38448
+ * Cast to `SelectOverlayOption` to access rich content
38449
+ * fields (`startContent`, `endContent`, `description`)
38450
+ * that are passed through from `ion-select` but not
38451
+ * part of the public `SelectPopoverOption` interface.
38452
+ */
38453
+ const richOption = option;
38454
+ const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38455
+ const optionLabelOptions = {
38456
+ id: `popover-option-${index}`,
38457
+ label: richOption.text,
38458
+ startContent: richOption.startContent,
38459
+ endContent: richOption.endContent,
38460
+ description: richOption.description,
38461
+ };
38462
+ return (hAsync("ion-item", {
38232
38463
  // TODO FW-4784
38233
- 'item-radio-checked': option.value === checked
38234
- }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
38235
- if (ev.key === 'Enter' && !ev.repeat) {
38236
- this.pendingEnterTarget = ev.currentTarget;
38237
- }
38238
- }, onKeyUp: (ev) => {
38239
- if (ev.key === ' ') {
38240
- // Space selects and dismisses in one press.
38241
- this.dismissParentPopover();
38242
- }
38243
- else if (ev.key === 'Enter') {
38244
- const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
38245
- this.pendingEnterTarget = null;
38246
- if (shouldDismiss) {
38464
+ disabled: option.disabled, class: Object.assign({
38465
+ // TODO FW-4784
38466
+ 'item-radio-checked': option.value === checked
38467
+ }, getClassMap(option.cssClass))
38468
+ }, hAsync("ion-radio", { class: {
38469
+ 'select-option-has-rich-content': hasRichContent,
38470
+ }, 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) => {
38471
+ if (ev.key === 'Enter' && !ev.repeat) {
38472
+ this.pendingEnterTarget = ev.currentTarget;
38473
+ }
38474
+ }, onKeyUp: (ev) => {
38475
+ if (ev.key === ' ') {
38476
+ // Space selects and dismisses in one press.
38247
38477
  this.dismissParentPopover();
38248
38478
  }
38249
- }
38250
- } }, option.text))))));
38479
+ else if (ev.key === 'Enter') {
38480
+ const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
38481
+ this.pendingEnterTarget = null;
38482
+ if (shouldDismiss) {
38483
+ this.dismissParentPopover();
38484
+ }
38485
+ }
38486
+ } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38487
+ })));
38251
38488
  }
38252
38489
  render() {
38253
38490
  const { header, message, options, subHeader } = this;
38254
38491
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
38255
- 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))));
38492
+ 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))));
38256
38493
  }
38257
38494
  get el() { return getElement(this); }
38258
38495
  static get style() { return {
@@ -38302,11 +38539,11 @@ class SkeletonText {
38302
38539
  const animated = this.animated && config.getBoolean('animated', true);
38303
38540
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
38304
38541
  const mode = getIonMode$1(this);
38305
- return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
38542
+ return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
38306
38543
  [mode]: true,
38307
38544
  'skeleton-text-animated': animated,
38308
38545
  'in-media': inMedia,
38309
- } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
38546
+ } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
38310
38547
  }
38311
38548
  get el() { return getElement(this); }
38312
38549
  static get style() { return skeletonTextCss(); }
@@ -38358,7 +38595,7 @@ class Spinner {
38358
38595
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
38359
38596
  }
38360
38597
  }
38361
- return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
38598
+ return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
38362
38599
  [mode]: true,
38363
38600
  [`spinner-${spinnerName}`]: true,
38364
38601
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -38457,12 +38694,12 @@ class SplitPane {
38457
38694
  }
38458
38695
  render() {
38459
38696
  const mode = getIonMode$1(this);
38460
- return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
38697
+ return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
38461
38698
  [mode]: true,
38462
38699
  // Used internally for styling
38463
38700
  [`split-pane-${mode}`]: true,
38464
38701
  'split-pane-visible': this.visible,
38465
- } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
38702
+ } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
38466
38703
  }
38467
38704
  get el() { return getElement(this); }
38468
38705
  static get watchers() { return {
@@ -38534,10 +38771,10 @@ class Tab {
38534
38771
  }
38535
38772
  render() {
38536
38773
  const { tab, active, component } = this;
38537
- return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38774
+ return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38538
38775
  'ion-page': component === undefined,
38539
38776
  'tab-hidden': !active,
38540
- } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
38777
+ } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38541
38778
  }
38542
38779
  get el() { return getElement(this); }
38543
38780
  static get watchers() { return {
@@ -38651,11 +38888,11 @@ class TabBar {
38651
38888
  const { color, translucent, keyboardVisible } = this;
38652
38889
  const mode = getIonMode$1(this);
38653
38890
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
38654
- return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38891
+ return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38655
38892
  [mode]: true,
38656
38893
  'tab-bar-translucent': translucent,
38657
38894
  'tab-bar-hidden': shouldHide,
38658
- }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
38895
+ }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38659
38896
  }
38660
38897
  get el() { return getElement(this); }
38661
38898
  static get watchers() { return {
@@ -38753,7 +38990,7 @@ class TabButton {
38753
38990
  rel,
38754
38991
  target,
38755
38992
  };
38756
- return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38993
+ return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38757
38994
  [mode]: true,
38758
38995
  'tab-selected': selected,
38759
38996
  'tab-disabled': disabled,
@@ -38765,7 +39002,7 @@ class TabButton {
38765
39002
  'ion-activatable': true,
38766
39003
  'ion-selectable': true,
38767
39004
  'ion-focusable': true,
38768
- } }, 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" }))));
39005
+ } }, 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" }))));
38769
39006
  }
38770
39007
  get el() { return getElement(this); }
38771
39008
  static get style() { return {
@@ -38956,7 +39193,7 @@ class Tabs {
38956
39193
  return Array.from(this.el.querySelectorAll('ion-tab'));
38957
39194
  }
38958
39195
  render() {
38959
- 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" })));
39196
+ 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" })));
38960
39197
  }
38961
39198
  get el() { return getElement(this); }
38962
39199
  static get style() { return tabsCss(); }
@@ -38996,9 +39233,9 @@ class Text {
38996
39233
  }
38997
39234
  render() {
38998
39235
  const mode = getIonMode$1(this);
38999
- return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
39236
+ return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
39000
39237
  [mode]: true,
39001
- }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
39238
+ }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
39002
39239
  }
39003
39240
  static get style() { return textCss(); }
39004
39241
  static get cmpMeta() { return {
@@ -39459,7 +39696,7 @@ class Textarea {
39459
39696
  * TODO(FW-5592): Remove hasStartEndSlots condition
39460
39697
  */
39461
39698
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
39462
- return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
39699
+ return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
39463
39700
  [mode]: true,
39464
39701
  'has-value': hasValue,
39465
39702
  'has-focus': hasFocus,
@@ -39468,7 +39705,7 @@ class Textarea {
39468
39705
  [`textarea-shape-${shape}`]: shape !== undefined,
39469
39706
  [`textarea-label-placement-${labelPlacement}`]: true,
39470
39707
  'textarea-disabled': disabled,
39471
- }) }, 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()));
39708
+ }) }, 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()));
39472
39709
  }
39473
39710
  get el() { return getElement(this); }
39474
39711
  static get watchers() { return {
@@ -39537,7 +39774,7 @@ class Thumbnail {
39537
39774
  registerInstance(this, hostRef);
39538
39775
  }
39539
39776
  render() {
39540
- return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
39777
+ return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39541
39778
  }
39542
39779
  static get style() { return thumbnailCss(); }
39543
39780
  static get cmpMeta() { return {
@@ -40397,9 +40634,9 @@ class Toast {
40397
40634
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
40398
40635
  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);
40399
40636
  }
40400
- return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
40637
+ return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
40401
40638
  zIndex: `${60000 + this.overlayIndex}`,
40402
- }, 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')))));
40639
+ }, 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')))));
40403
40640
  }
40404
40641
  get el() { return getElement(this); }
40405
40642
  static get watchers() { return {
@@ -40717,7 +40954,7 @@ class Toggle {
40717
40954
  const value = this.getValue();
40718
40955
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
40719
40956
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
40720
- 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, {
40957
+ 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, {
40721
40958
  [mode]: true,
40722
40959
  'in-item': hostContext('ion-item', el),
40723
40960
  'toggle-activated': activated,
@@ -40727,10 +40964,10 @@ class Toggle {
40727
40964
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
40728
40965
  [`toggle-label-placement-${labelPlacement}`]: true,
40729
40966
  [`toggle-${rtl}`]: true,
40730
- }) }, 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: {
40967
+ }) }, 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: {
40731
40968
  'label-text-wrapper': true,
40732
40969
  'label-text-wrapper-hidden': !hasLabel,
40733
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
40970
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40734
40971
  }
40735
40972
  get el() { return getElement(this); }
40736
40973
  static get watchers() { return {
@@ -40842,10 +41079,10 @@ class Toolbar {
40842
41079
  this.childrenStyles.forEach((value) => {
40843
41080
  Object.assign(childStyles, value);
40844
41081
  });
40845
- return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
41082
+ return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40846
41083
  [mode]: true,
40847
41084
  'in-toolbar': hostContext('ion-toolbar', this.el),
40848
- })) }, 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" }))));
41085
+ })) }, 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" }))));
40849
41086
  }
40850
41087
  get el() { return getElement(this); }
40851
41088
  static get style() { return {
@@ -40891,11 +41128,11 @@ class ToolbarTitle {
40891
41128
  render() {
40892
41129
  const mode = getIonMode$1(this);
40893
41130
  const size = this.getSize();
40894
- return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
41131
+ return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40895
41132
  [mode]: true,
40896
41133
  [`title-${size}`]: true,
40897
41134
  'title-rtl': document.dir === 'rtl',
40898
- }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
41135
+ }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40899
41136
  }
40900
41137
  get el() { return getElement(this); }
40901
41138
  static get watchers() { return {
@@ -40975,10 +41212,8 @@ registerComponents([
40975
41212
  Nav,
40976
41213
  NavLink,
40977
41214
  Note,
40978
- Picker$1,
40979
41215
  Picker,
40980
41216
  PickerColumn,
40981
- PickerColumnCmp,
40982
41217
  PickerColumnOption,
40983
41218
  Popover,
40984
41219
  ProgressBar,