@ionic/core 8.8.14-dev.11783984044.10eaba06 → 8.8.14-dev.11784037956.17449639

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 (349) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-action-sheet.js +1 -1
  3. package/components/ion-alert.js +1 -1
  4. package/components/ion-back-button.js +1 -1
  5. package/components/ion-button.js +1 -1
  6. package/components/ion-card.js +1 -1
  7. package/components/ion-chip.js +1 -1
  8. package/components/ion-datetime-button.js +1 -1
  9. package/components/ion-datetime.js +1 -1
  10. package/components/ion-fab-button.js +1 -1
  11. package/components/ion-img.js +1 -1
  12. package/components/ion-infinite-scroll-content.js +1 -1
  13. package/components/ion-input-password-toggle.js +1 -1
  14. package/components/ion-input.js +1 -1
  15. package/components/ion-item-option.js +1 -1
  16. package/components/ion-item.js +1 -1
  17. package/components/ion-loading.js +1 -1
  18. package/components/ion-menu-button.js +1 -1
  19. package/components/ion-menu.js +1 -1
  20. package/components/ion-modal.js +1 -1
  21. package/components/ion-picker-legacy-column.d.ts +11 -0
  22. package/components/ion-picker-legacy-column.js +4 -0
  23. package/components/ion-picker-legacy.d.ts +11 -0
  24. package/components/ion-picker-legacy.js +4 -0
  25. package/components/ion-popover.js +1 -1
  26. package/components/ion-progress-bar.js +1 -1
  27. package/components/ion-radio.js +1 -1
  28. package/components/ion-range.js +1 -1
  29. package/components/ion-refresher-content.js +1 -1
  30. package/components/ion-refresher.js +1 -1
  31. package/components/ion-reorder-group.js +1 -1
  32. package/components/ion-reorder.js +1 -1
  33. package/components/ion-ripple-effect.js +1 -1
  34. package/components/ion-router-link.js +1 -1
  35. package/components/ion-router-outlet.js +1 -1
  36. package/components/ion-row.js +1 -1
  37. package/components/ion-searchbar.js +1 -1
  38. package/components/ion-segment-button.js +1 -1
  39. package/components/ion-segment-content.js +1 -1
  40. package/components/ion-segment-view.js +1 -1
  41. package/components/ion-segment.js +1 -1
  42. package/components/ion-select-modal.js +1 -1
  43. package/components/ion-select-option.js +1 -1
  44. package/components/ion-select-popover.js +1 -1
  45. package/components/ion-select.js +1 -1
  46. package/components/ion-skeleton-text.js +1 -1
  47. package/components/ion-spinner.js +1 -1
  48. package/components/ion-split-pane.js +1 -1
  49. package/components/ion-tab-bar.js +1 -1
  50. package/components/ion-tab-button.js +1 -1
  51. package/components/ion-tab.js +1 -1
  52. package/components/ion-tabs.js +1 -1
  53. package/components/ion-text.js +1 -1
  54. package/components/ion-textarea.js +1 -1
  55. package/components/ion-thumbnail.js +1 -1
  56. package/components/ion-title.js +1 -1
  57. package/components/ion-toast.js +1 -1
  58. package/components/ion-toggle.js +1 -1
  59. package/components/ion-toolbar.js +1 -1
  60. package/components/{p-DpV-p5Xs.js → p-5bE_Wz4Y.js} +1 -1
  61. package/components/p-B1BWKArA.js +4 -0
  62. package/components/p-B4PlLGHT.js +4 -0
  63. package/components/{p-r0aq7dpt.js → p-B60hm8Qv.js} +1 -1
  64. package/components/p-BFsEcwW9.js +4 -0
  65. package/components/{p-Buf_7zcy.js → p-BHrrc-3d.js} +1 -1
  66. package/components/{p-XJWMAP8m.js → p-BLmJ0zRm.js} +1 -1
  67. package/components/{p-DhkITZ-y.js → p-BSEgsdFI.js} +1 -1
  68. package/components/p-CFRyvUvJ.js +4 -0
  69. package/components/p-CU5rbWAW.js +4 -0
  70. package/components/{p-Dz74mwlk.js → p-Cfx4M1Bn.js} +1 -1
  71. package/components/p-CgLiHbz0.js +4 -0
  72. package/components/p-MLyEeL3Q.js +4 -0
  73. package/components/p-PgMVWD8U.js +4 -0
  74. package/components/p-k_E4tX5Z.js +4 -0
  75. package/components/{p-wk2QqrAo.js → p-rCa2eL0j.js} +1 -1
  76. package/dist/cjs/config-xninhj0J.js +201 -0
  77. package/dist/cjs/index.cjs.js +6 -6
  78. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -27
  79. package/dist/cjs/ion-alert.cjs.entry.js +25 -64
  80. package/dist/cjs/ion-app_8.cjs.entry.js +9 -23
  81. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  82. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  83. package/dist/cjs/{ion-datetime.cjs.entry.js → ion-datetime_3.cjs.entry.js} +639 -1
  84. package/dist/cjs/ion-img.cjs.entry.js +1 -3
  85. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -3
  86. package/dist/cjs/ion-input.cjs.entry.js +4 -4
  87. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-loading.cjs.entry.js +5 -10
  89. package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
  90. package/dist/cjs/ion-modal.cjs.entry.js +33 -23
  91. package/dist/cjs/ion-popover.cjs.entry.js +5 -9
  92. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  93. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  94. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  95. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -6
  96. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  98. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
  100. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  101. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
  103. package/dist/cjs/ion-select-modal.cjs.entry.js +30 -84
  104. package/dist/cjs/ion-select_3.cjs.entry.js +49 -407
  105. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  106. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  108. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  109. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  111. package/dist/cjs/ion-toast.cjs.entry.js +5 -6
  112. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  113. package/dist/cjs/ionic.cjs.js +1 -1
  114. package/dist/cjs/loader.cjs.js +1 -1
  115. package/dist/cjs/{overlays-DSmSrd_4.js → overlays-B9UiYZ4R.js} +30 -27
  116. package/dist/collection/collection-manifest.json +10 -6
  117. package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -229
  118. package/dist/collection/components/action-sheet/action-sheet.js +5 -24
  119. package/dist/collection/components/action-sheet/action-sheet.md.css +2 -175
  120. package/dist/collection/components/alert/alert.ios.css +10 -280
  121. package/dist/collection/components/alert/alert.js +21 -59
  122. package/dist/collection/components/alert/alert.md.css +20 -269
  123. package/dist/collection/components/img/img.js +1 -6
  124. package/dist/collection/components/input/input.js +8 -8
  125. package/dist/collection/components/loading/loading.js +3 -7
  126. package/dist/collection/components/modal/gestures/sheet.js +8 -0
  127. package/dist/collection/components/modal/gestures/swipe-to-close.js +8 -0
  128. package/dist/collection/components/modal/modal.ios.css +8 -0
  129. package/dist/collection/components/modal/modal.js +17 -23
  130. package/dist/collection/components/modal/modal.md.css +8 -0
  131. package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
  132. package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
  133. package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
  134. package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
  135. package/dist/collection/components/picker-legacy/picker.js +890 -0
  136. package/dist/collection/components/picker-legacy/picker.md.css +287 -0
  137. package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
  138. package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
  139. package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
  140. package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
  141. package/dist/collection/components/popover/popover.ios.css +0 -15
  142. package/dist/collection/components/popover/popover.js +3 -7
  143. package/dist/collection/components/popover/popover.md.css +0 -15
  144. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  145. package/dist/collection/components/radio/radio.js +4 -4
  146. package/dist/collection/components/range/range.js +3 -3
  147. package/dist/collection/components/refresher/refresher.js +1 -1
  148. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  149. package/dist/collection/components/reorder/reorder.js +1 -1
  150. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  151. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  152. package/dist/collection/components/router-link/router-link.js +2 -2
  153. package/dist/collection/components/router-outlet/router-outlet.js +5 -38
  154. package/dist/collection/components/row/row.js +1 -1
  155. package/dist/collection/components/searchbar/searchbar.js +9 -9
  156. package/dist/collection/components/segment/segment.js +2 -2
  157. package/dist/collection/components/segment-button/segment-button.js +2 -2
  158. package/dist/collection/components/segment-content/segment-content.js +1 -1
  159. package/dist/collection/components/segment-view/segment-view.js +2 -2
  160. package/dist/collection/components/select/select.ios.css +0 -33
  161. package/dist/collection/components/select/select.js +16 -323
  162. package/dist/collection/components/select/select.md.css +0 -33
  163. package/dist/collection/components/select-modal/select-modal.ios.css +0 -219
  164. package/dist/collection/components/select-modal/select-modal.js +26 -79
  165. package/dist/collection/components/select-modal/select-modal.md.css +0 -165
  166. package/dist/collection/components/select-option/select-option.js +3 -67
  167. package/dist/collection/components/select-popover/select-popover.ios.css +0 -219
  168. package/dist/collection/components/select-popover/select-popover.js +26 -78
  169. package/dist/collection/components/select-popover/select-popover.md.css +0 -165
  170. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  171. package/dist/collection/components/spinner/spinner.js +1 -1
  172. package/dist/collection/components/split-pane/split-pane.js +2 -2
  173. package/dist/collection/components/tab/tab.js +2 -2
  174. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  175. package/dist/collection/components/tab-button/tab-button.js +2 -2
  176. package/dist/collection/components/tabs/tabs.js +1 -1
  177. package/dist/collection/components/text/text.js +2 -2
  178. package/dist/collection/components/textarea/textarea.js +2 -2
  179. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  180. package/dist/collection/components/title/title.js +2 -2
  181. package/dist/collection/components/toast/toast.js +2 -2
  182. package/dist/collection/components/toggle/toggle.js +3 -3
  183. package/dist/collection/components/toolbar/toolbar.js +2 -2
  184. package/dist/collection/index.js +1 -1
  185. package/dist/collection/utils/overlays.js +29 -26
  186. package/dist/collection/utils/sanitization/index.js +18 -274
  187. package/dist/docs.json +1177 -485
  188. package/dist/esm/config-DQCONYYp.js +195 -0
  189. package/dist/esm/{index-AlrZKoWR.js → index-DV3sJJW8.js} +1 -1
  190. package/dist/esm/index.js +2 -3
  191. package/dist/esm/ion-accordion_2.entry.js +1 -1
  192. package/dist/esm/ion-action-sheet.entry.js +7 -27
  193. package/dist/esm/ion-alert.entry.js +24 -63
  194. package/dist/esm/ion-app_8.entry.js +9 -23
  195. package/dist/esm/ion-avatar_3.entry.js +1 -1
  196. package/dist/esm/ion-back-button.entry.js +1 -1
  197. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  198. package/dist/esm/ion-col_3.entry.js +1 -1
  199. package/dist/esm/{ion-datetime.entry.js → ion-datetime_3.entry.js} +641 -5
  200. package/dist/esm/ion-fab_3.entry.js +1 -1
  201. package/dist/esm/ion-img.entry.js +2 -4
  202. package/dist/esm/ion-infinite-scroll_2.entry.js +1 -2
  203. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  204. package/dist/esm/ion-input.entry.js +5 -5
  205. package/dist/esm/ion-item_8.entry.js +3 -3
  206. package/dist/esm/ion-loading.entry.js +4 -9
  207. package/dist/esm/ion-menu_3.entry.js +2 -2
  208. package/dist/esm/ion-modal.entry.js +33 -23
  209. package/dist/esm/ion-popover.entry.js +5 -9
  210. package/dist/esm/ion-progress-bar.entry.js +1 -1
  211. package/dist/esm/ion-radio_2.entry.js +3 -3
  212. package/dist/esm/ion-range.entry.js +3 -3
  213. package/dist/esm/ion-refresher_2.entry.js +4 -5
  214. package/dist/esm/ion-reorder_2.entry.js +3 -3
  215. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  216. package/dist/esm/ion-route_4.entry.js +2 -2
  217. package/dist/esm/ion-searchbar.entry.js +6 -6
  218. package/dist/esm/ion-segment-content.entry.js +1 -1
  219. package/dist/esm/ion-segment-view.entry.js +2 -2
  220. package/dist/esm/ion-segment_2.entry.js +4 -4
  221. package/dist/esm/ion-select-modal.entry.js +30 -84
  222. package/dist/esm/ion-select_3.entry.js +52 -410
  223. package/dist/esm/ion-spinner.entry.js +1 -1
  224. package/dist/esm/ion-split-pane.entry.js +2 -2
  225. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  226. package/dist/esm/ion-tab_2.entry.js +3 -3
  227. package/dist/esm/ion-text.entry.js +2 -2
  228. package/dist/esm/ion-textarea.entry.js +2 -2
  229. package/dist/esm/ion-toast.entry.js +4 -5
  230. package/dist/esm/ion-toggle.entry.js +4 -4
  231. package/dist/esm/ionic.js +1 -1
  232. package/dist/esm/loader.js +1 -1
  233. package/dist/esm/{overlays-DLNOHWNc.js → overlays-Bmfhux69.js} +31 -28
  234. package/dist/html.html-data.json +79 -51
  235. package/dist/ionic/index.esm.js +1 -1
  236. package/dist/ionic/ionic.esm.js +1 -1
  237. package/dist/ionic/p-01f81ea5.entry.js +4 -0
  238. package/dist/ionic/p-02473803.entry.js +4 -0
  239. package/dist/ionic/{p-fe4aa1db.entry.js → p-0fa9c382.entry.js} +1 -1
  240. package/dist/ionic/p-20b1a044.entry.js +4 -0
  241. package/dist/ionic/p-21eb76d5.entry.js +4 -0
  242. package/dist/ionic/p-27d30585.entry.js +4 -0
  243. package/dist/ionic/p-2bb2cb18.entry.js +4 -0
  244. package/dist/ionic/p-2f529a55.entry.js +4 -0
  245. package/dist/ionic/{p-80b44b3c.entry.js → p-3353c229.entry.js} +1 -1
  246. package/dist/ionic/{p-a7628bc7.entry.js → p-37e720da.entry.js} +1 -1
  247. package/dist/ionic/{p-9177f4ac.entry.js → p-390ca786.entry.js} +1 -1
  248. package/dist/ionic/{p-259d0d98.entry.js → p-3a126bca.entry.js} +1 -1
  249. package/dist/ionic/{p-4502a274.entry.js → p-3a7d1e91.entry.js} +1 -1
  250. package/dist/ionic/{p-627fabd9.entry.js → p-3ae5f277.entry.js} +1 -1
  251. package/dist/ionic/{p-a5213260.entry.js → p-4858af1f.entry.js} +1 -1
  252. package/dist/ionic/p-485fda23.entry.js +4 -0
  253. package/dist/ionic/p-48fa7fb1.entry.js +4 -0
  254. package/dist/ionic/p-4baa5b82.entry.js +4 -0
  255. package/dist/ionic/p-4d9181c7.entry.js +4 -0
  256. package/dist/ionic/p-50e1194a.entry.js +4 -0
  257. package/dist/ionic/p-532eb373.entry.js +4 -0
  258. package/dist/ionic/{p-76e92a84.entry.js → p-5d1da0a2.entry.js} +1 -1
  259. package/dist/ionic/{p-d2c7f046.entry.js → p-75dc25ba.entry.js} +1 -1
  260. package/dist/ionic/{p-b9ac1fe0.entry.js → p-84d5ce05.entry.js} +1 -1
  261. package/dist/ionic/{p-51cd1643.entry.js → p-874b4bd8.entry.js} +1 -1
  262. package/dist/ionic/{p-ef93ca92.entry.js → p-8eb8ee76.entry.js} +1 -1
  263. package/dist/ionic/{p-14095ba5.entry.js → p-8fce95d5.entry.js} +1 -1
  264. package/dist/ionic/{p-db1b6738.entry.js → p-9a65ac7f.entry.js} +1 -1
  265. package/dist/ionic/{p-7a37b3ce.entry.js → p-9f1103ce.entry.js} +1 -1
  266. package/dist/ionic/p-B0zdMdR0.js +4 -0
  267. package/dist/ionic/{p-AlrZKoWR.js → p-DV3sJJW8.js} +1 -1
  268. package/dist/ionic/p-DzWaWHGc.js +4 -0
  269. package/dist/ionic/p-a21add2f.entry.js +4 -0
  270. package/dist/ionic/p-ab60b48a.entry.js +4 -0
  271. package/dist/ionic/{p-d8387b99.entry.js → p-c4d8641b.entry.js} +1 -1
  272. package/dist/ionic/{p-c93553d2.entry.js → p-cf91e738.entry.js} +1 -1
  273. package/dist/ionic/{p-629e4703.entry.js → p-e0be05c5.entry.js} +1 -1
  274. package/dist/ionic/p-ec090e0a.entry.js +4 -0
  275. package/dist/ionic/{p-b1599fca.entry.js → p-ef4c3bee.entry.js} +1 -1
  276. package/dist/ionic/p-f994dc44.entry.js +4 -0
  277. package/dist/ionic/{p-341032b3.entry.js → p-fabcce6c.entry.js} +1 -1
  278. package/dist/ionic/p-fd76f647.entry.js +4 -0
  279. package/dist/ionic/p-fda60562.entry.js +4 -0
  280. package/dist/types/components/img/img.d.ts +0 -2
  281. package/dist/types/components/input/input.d.ts +1 -1
  282. package/dist/types/components/modal/modal.d.ts +4 -11
  283. package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
  284. package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
  285. package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
  286. package/dist/types/components/picker-legacy/picker.d.ts +158 -0
  287. package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
  288. package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
  289. package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
  290. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  291. package/dist/types/components/select/select-interface.d.ts +0 -31
  292. package/dist/types/components/select/select.d.ts +0 -18
  293. package/dist/types/components/select-option/select-option.d.ts +1 -42
  294. package/dist/types/components.d.ts +288 -72
  295. package/dist/types/index.d.ts +1 -1
  296. package/dist/types/interface.d.ts +1 -0
  297. package/dist/types/utils/config.d.ts +8 -0
  298. package/dist/types/utils/overlays.d.ts +9 -11
  299. package/dist/types/utils/sanitization/index.d.ts +2 -58
  300. package/hydrate/index.js +1188 -1407
  301. package/hydrate/index.mjs +1188 -1407
  302. package/package.json +5 -37
  303. package/components/p-279dFMvg.js +0 -4
  304. package/components/p-BSQPZ79H.js +0 -4
  305. package/components/p-BwKpO3Is.js +0 -4
  306. package/components/p-C-Rx1zny.js +0 -4
  307. package/components/p-CHzfYZbv.js +0 -4
  308. package/components/p-D4h1H_hh.js +0 -4
  309. package/components/p-LMGfIvTf.js +0 -4
  310. package/components/p-_lHSumhG.js +0 -4
  311. package/components/p-j9Da6cYO.js +0 -4
  312. package/components/p-jOtMJMv8.js +0 -4
  313. package/components/p-uTR_dEqg.js +0 -4
  314. package/dist/cjs/config-DWdFbSNK.js +0 -35
  315. package/dist/cjs/index-Cueg3U4w.js +0 -429
  316. package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
  317. package/dist/cjs/select-option-render-DTF50t5r.js +0 -124
  318. package/dist/collection/utils/overlay-control-label.js +0 -45
  319. package/dist/collection/utils/select-option-render.js +0 -119
  320. package/dist/esm/config-BwKpO3Is.js +0 -31
  321. package/dist/esm/index-DQSkZyOJ.js +0 -424
  322. package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
  323. package/dist/esm/select-option-render-B8nWZRnd.js +0 -122
  324. package/dist/ionic/p-038eb991.entry.js +0 -4
  325. package/dist/ionic/p-4621c387.entry.js +0 -4
  326. package/dist/ionic/p-4ace7762.entry.js +0 -4
  327. package/dist/ionic/p-4bb3eb60.entry.js +0 -4
  328. package/dist/ionic/p-4e9ec5c5.entry.js +0 -4
  329. package/dist/ionic/p-5c3ec490.entry.js +0 -4
  330. package/dist/ionic/p-5d1ac2c7.entry.js +0 -4
  331. package/dist/ionic/p-700795f6.entry.js +0 -4
  332. package/dist/ionic/p-79a36078.entry.js +0 -4
  333. package/dist/ionic/p-913b218a.entry.js +0 -4
  334. package/dist/ionic/p-BDtODLZ4.js +0 -4
  335. package/dist/ionic/p-BSQPZ79H.js +0 -4
  336. package/dist/ionic/p-BwKpO3Is.js +0 -4
  337. package/dist/ionic/p-Cg5-OQYy.js +0 -4
  338. package/dist/ionic/p-DCOvXkOm.js +0 -4
  339. package/dist/ionic/p-a9a33367.entry.js +0 -4
  340. package/dist/ionic/p-ad728198.entry.js +0 -4
  341. package/dist/ionic/p-bfc8c629.entry.js +0 -4
  342. package/dist/ionic/p-c08e666a.entry.js +0 -4
  343. package/dist/ionic/p-ce7992c4.entry.js +0 -4
  344. package/dist/ionic/p-ed797c72.entry.js +0 -4
  345. package/dist/ionic/p-f09f9642.entry.js +0 -4
  346. package/dist/ionic/p-f1c06f82.entry.js +0 -4
  347. package/dist/ionic/p-f718fccb.entry.js +0 -4
  348. package/dist/types/utils/overlay-control-label.d.ts +0 -32
  349. package/dist/types/utils/select-option-render.d.ts +0 -53
package/hydrate/index.mjs CHANGED
@@ -8039,7 +8039,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
8039
8039
  * Should NOT include: Toast
8040
8040
  */
8041
8041
  const trapKeyboardFocus = (ev, doc) => {
8042
- const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover');
8042
+ const lastOverlay = getPresentedOverlay(doc, 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover');
8043
8043
  const target = ev.target;
8044
8044
  /**
8045
8045
  * If no active overlay, ignore this event.
@@ -8273,7 +8273,7 @@ const dismissOverlay = (doc, data, role, overlayTag, id) => {
8273
8273
  */
8274
8274
  const getOverlays = (doc, selector) => {
8275
8275
  if (selector === undefined) {
8276
- selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover,ion-toast';
8276
+ selector = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast';
8277
8277
  }
8278
8278
  return Array.from(doc.querySelectorAll(selector)).filter((c) => c.overlayIndex > 0);
8279
8279
  };
@@ -8335,29 +8335,6 @@ const setRootAriaHidden = (hidden = false) => {
8335
8335
  viewContainer.removeAttribute('aria-hidden');
8336
8336
  }
8337
8337
  };
8338
- /**
8339
- * Cleans up root `aria-hidden` and `backdrop-no-scroll` when
8340
- * an overlay is removed from the DOM without going through
8341
- * the `dismiss()` flow (e.g., when a framework unmounts the
8342
- * overlay during a route change).
8343
- *
8344
- * Should be called from an overlay's `disconnectedCallback`
8345
- * when the overlay was still presented at the time of removal.
8346
- */
8347
- const cleanupRootFocusTrapAccessibility = () => {
8348
- if (typeof document === 'undefined') {
8349
- return;
8350
- }
8351
- const remainingOverlays = getPresentedOverlays(document);
8352
- const hasRemainingLocking = remainingOverlays.some((o) => {
8353
- const el = o;
8354
- return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
8355
- });
8356
- if (!hasRemainingLocking) {
8357
- setRootAriaHidden(false);
8358
- document.body.classList.remove(BACKDROP_NO_SCROLL);
8359
- }
8360
- };
8361
8338
  const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
8362
8339
  var _a, _b;
8363
8340
  if (overlay.presented) {
@@ -8423,7 +8400,29 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
8423
8400
  * to the overlay container.
8424
8401
  */
8425
8402
  if (overlay.keyboardClose && (document.activeElement === null || !overlay.el.contains(document.activeElement))) {
8426
- overlay.el.focus();
8403
+ /**
8404
+ * Some overlays (e.g. modal) put the dialog role and label on the
8405
+ * `.ion-overlay-wrapper` rather than the host. Screen readers need
8406
+ * focus on the element with role="dialog" to properly announce and
8407
+ * navigate the dialog. The `[tabindex]` qualifier ensures we only
8408
+ * target such a wrapper when it is actually focusable; otherwise
8409
+ * (e.g. picker-legacy, whose role="dialog" wrapper has no tabindex)
8410
+ * `focus()` would be a no-op, so we fall back to the host.
8411
+ */
8412
+ const overlayWrapper = getElementRoot(overlay.el).querySelector('[role="dialog"][tabindex]');
8413
+ const focusTarget = overlayWrapper !== null && overlayWrapper !== void 0 ? overlayWrapper : overlay.el;
8414
+ /**
8415
+ * `preventScroll` keeps this a pure focus move so the viewport does not
8416
+ * jump when the wrapper is partially off-screen (e.g. a sheet modal).
8417
+ * Guard the options call so an older engine that mishandles it can never
8418
+ * reject present(); we fall back to a plain focus() in that case.
8419
+ */
8420
+ try {
8421
+ focusTarget.focus({ preventScroll: true });
8422
+ }
8423
+ catch (_c) {
8424
+ focusTarget.focus();
8425
+ }
8427
8426
  }
8428
8427
  /**
8429
8428
  * If this overlay was previously dismissed without being
@@ -8759,539 +8758,6 @@ const createTriggerController = () => {
8759
8758
  };
8760
8759
  const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
8761
8760
 
8762
- /**
8763
- * Sanitize an untrusted HTML string.
8764
- *
8765
- * Parses the string into a detached DOM, removes blocked tags, strips
8766
- * attributes outside the narrow `domStringAllowedAttributes` list (refer
8767
- * `sanitizeElement`), and scrubs script-scheme URLs. Returns the sanitized
8768
- * HTML string.
8769
- *
8770
- * Use this when you have an HTML string from an unknown source and need to
8771
- * render it via `innerHTML`. Use `sanitizeDOMTree` instead when you already
8772
- * have a DOM tree and want to sanitize it in place without a string round
8773
- * trip. The two apply the same dangerous-vector scrubbing but different
8774
- * attribute allowlists: this path stays narrow so existing consumers
8775
- * (toast, loading, alert message, etc.) are unaffected, while
8776
- * `sanitizeDOMTree` uses the wider rich-content allowlist.
8777
- *
8778
- * @param untrustedString - The HTML string to sanitize. Pass an
8779
- * `IonicSafeString` to bypass sanitization, or `undefined` to short-circuit.
8780
- * @returns The sanitized HTML string, or `undefined` if the input was
8781
- * `undefined`. Returns `''` if sanitization fails or the input contains
8782
- * an inline `onload=` handler.
8783
- */
8784
- const sanitizeDOMString = (untrustedString) => {
8785
- try {
8786
- if (untrustedString instanceof IonicSafeString) {
8787
- return untrustedString.value;
8788
- }
8789
- if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
8790
- return untrustedString;
8791
- }
8792
- /**
8793
- * onload is fired when appending to a document
8794
- * fragment in Chrome. If a string
8795
- * contains onload then we should not
8796
- * attempt to add this to the fragment.
8797
- */
8798
- if (untrustedString.includes('onload=')) {
8799
- return '';
8800
- }
8801
- /**
8802
- * Create a document fragment
8803
- * separate from the main DOM,
8804
- * create a div to do our work in
8805
- */
8806
- const documentFragment = document.createDocumentFragment();
8807
- const workingDiv = document.createElement('div');
8808
- documentFragment.appendChild(workingDiv);
8809
- workingDiv.innerHTML = untrustedString;
8810
- /**
8811
- * Remove any elements
8812
- * that are blocked
8813
- */
8814
- blockedTags.forEach((blockedTag) => {
8815
- const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
8816
- for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
8817
- const element = getElementsToRemove[elementIndex];
8818
- if (element.parentNode) {
8819
- element.parentNode.removeChild(element);
8820
- }
8821
- else {
8822
- documentFragment.removeChild(element);
8823
- }
8824
- /**
8825
- * We still need to sanitize
8826
- * the children of this element
8827
- * as they are left behind
8828
- */
8829
- const childElements = getElementChildren(element);
8830
- /* eslint-disable-next-line */
8831
- for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
8832
- sanitizeElement(childElements[childIndex], domStringAllowedAttributes);
8833
- }
8834
- }
8835
- });
8836
- /**
8837
- * Go through remaining elements and remove
8838
- * non-allowed attribs
8839
- */
8840
- // IE does not support .children on document fragments, only .childNodes
8841
- const dfChildren = getElementChildren(documentFragment);
8842
- /* eslint-disable-next-line */
8843
- for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
8844
- sanitizeElement(dfChildren[childIndex], domStringAllowedAttributes);
8845
- }
8846
- // Append document fragment to div
8847
- const fragmentDiv = document.createElement('div');
8848
- fragmentDiv.appendChild(documentFragment);
8849
- // First child is always the div we did our work in
8850
- const getInnerDiv = fragmentDiv.querySelector('div');
8851
- return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
8852
- }
8853
- catch (err) {
8854
- printIonError('sanitizeDOMString', err);
8855
- return '';
8856
- }
8857
- };
8858
- /**
8859
- * Sanitize an entire trusted DOM tree in place.
8860
- *
8861
- * Removes blocked tags (`script`, `iframe`, etc.) from the subtree and
8862
- * then sanitizes attributes on every remaining element using the wider
8863
- * `richContentAllowedAttributes` allowlist (refer `sanitizeElement`).
8864
- * Component presentational attributes (`size`, `color`, `shape`, inline
8865
- * SVG, `aria-*`, `data-*`) are preserved; `style`, event handlers (`on*`),
8866
- * form/navigation-hijack attributes, script-scheme URLs, and non-image
8867
- * `data:` URLs are stripped.
8868
- *
8869
- * Use this when you have a DOM tree the developer controls (e.g.
8870
- * cloned slot content from a component) and you need to render it
8871
- * elsewhere safely.
8872
- *
8873
- * @param root - The root element whose subtree will be sanitized in
8874
- * place. No-op when the sanitizer is disabled via `Ionic.config`.
8875
- */
8876
- const sanitizeDOMTree = (root) => {
8877
- if (!isSanitizerEnabled()) {
8878
- return;
8879
- }
8880
- blockedTags.forEach((tag) => {
8881
- const matches = root.querySelectorAll(tag);
8882
- for (let i = matches.length - 1; i >= 0; i--) {
8883
- matches[i].remove();
8884
- }
8885
- });
8886
- sanitizeElement(root, richContentAllowedAttributes, richContentAllowedAttributePrefixes);
8887
- };
8888
- /**
8889
- * Clean up current element based on allowed attributes
8890
- * and then recursively dig down into any child elements to
8891
- * clean those up as well
8892
- */
8893
- // TODO(FW-2832): type (using Element triggers other type errors as well)
8894
- const sanitizeElement = (element, allowedAttributes, allowedAttributePrefixes = []) => {
8895
- // IE uses childNodes, so ignore nodes that are not elements
8896
- if (element.nodeType && element.nodeType !== 1) {
8897
- return;
8898
- }
8899
- /**
8900
- * If attributes is not a NamedNodeMap
8901
- * then we should remove the element entirely.
8902
- * This helps avoid DOM Clobbering attacks where
8903
- * attributes is overridden.
8904
- */
8905
- if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
8906
- element.remove();
8907
- return;
8908
- }
8909
- /**
8910
- * Always strip `style` (CSS injection, `background:url()` beaconing, UI
8911
- * spoofing). It is never on the allowlist, but it is removed explicitly
8912
- * here because some engines (e.g. jsdom) don't enumerate the CSSOM-backed
8913
- * `style` attribute in `element.attributes`, which would let the loop
8914
- * below skip over it.
8915
- */
8916
- element.removeAttribute('style');
8917
- for (let i = element.attributes.length - 1; i >= 0; i--) {
8918
- const attribute = element.attributes.item(i);
8919
- const attributeName = attribute.name;
8920
- const lowerName = attributeName.toLowerCase();
8921
- /**
8922
- * Remove any attribute that is not on the allowlist. This drops event
8923
- * handlers (`on*`), `style`, the form/navigation-hijack attributes
8924
- * (`formaction`, `action`, `target`), namespaced attributes like
8925
- * `xlink:href`, and anything else not explicitly known to be safe.
8926
- */
8927
- if (!isAttributeAllowed(lowerName, allowedAttributes, allowedAttributePrefixes)) {
8928
- element.removeAttribute(attributeName);
8929
- continue;
8930
- }
8931
- // clean up any allowed attribs
8932
- // that attempt to do any JS funny-business
8933
- const attributeValue = attribute.value;
8934
- if (attributeValue == null) {
8935
- continue;
8936
- }
8937
- /**
8938
- * Scrub dangerous schemes from the value. The value is normalized first
8939
- * (whitespace and ASCII control characters removed) so entity-obfuscated
8940
- * payloads such as `java&#9;script:`, which the parser decodes to
8941
- * `java\tscript:`, are still caught. Normalizing the value also covers
8942
- * namespaced attributes, where the previous `element[attributeName]`
8943
- * property reflection returned `undefined` and let them slip through.
8944
- */
8945
- const normalizedValue = attributeValue.replace(controlCharactersAndWhitespace, '').toLowerCase();
8946
- // Script schemes are never allowed, on any attribute.
8947
- if (normalizedValue.includes('javascript:') || normalizedValue.includes('vbscript:')) {
8948
- element.removeAttribute(attributeName);
8949
- continue;
8950
- }
8951
- /**
8952
- * For URL-bearing attributes, allow `data:` URIs only for raster
8953
- * images. Document-bearing types (`text/html`, `image/svg+xml`,
8954
- * `application/*`, etc.) can carry markup or script when navigated to
8955
- * or rendered, so they are stripped, while safe image types are kept so
8956
- * inline images keep working.
8957
- */
8958
- if (urlAttributes.includes(lowerName) &&
8959
- normalizedValue.startsWith('data:') &&
8960
- !safeDataImageUri.test(normalizedValue)) {
8961
- element.removeAttribute(attributeName);
8962
- }
8963
- }
8964
- /**
8965
- * Sanitize any nested children
8966
- */
8967
- const childElements = getElementChildren(element);
8968
- /* eslint-disable-next-line */
8969
- for (let i = 0; i < childElements.length; i++) {
8970
- sanitizeElement(childElements[i], allowedAttributes, allowedAttributePrefixes);
8971
- }
8972
- };
8973
- /**
8974
- * IE doesn't always support .children
8975
- * so we revert to .childNodes instead
8976
- */
8977
- // TODO(FW-2832): type
8978
- const getElementChildren = (el) => {
8979
- return el.children != null ? el.children : el.childNodes;
8980
- };
8981
- const isSanitizerEnabled = () => {
8982
- var _a;
8983
- const win = window;
8984
- const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
8985
- if (config) {
8986
- if (config.get) {
8987
- return config.get('sanitizerEnabled', true);
8988
- }
8989
- else {
8990
- return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
8991
- }
8992
- }
8993
- return true;
8994
- };
8995
- /**
8996
- * Mirror known custom-element DOM properties onto attributes so they
8997
- * survive `cloneNode`. Call this on a DOM subtree before cloning it for
8998
- * rendering elsewhere (e.g. cloning slotted option content into an
8999
- * overlay).
9000
- *
9001
- * Only sets the attribute when the property holds a non-empty string
9002
- * and the attribute isn't already present, so existing attributes
9003
- * take precedence.
9004
- *
9005
- * @param root - The root element whose subtree (and itself) will be
9006
- * inspected.
9007
- */
9008
- const reflectPropertiesToAttributes = (root) => {
9009
- const candidates = [];
9010
- if (root.tagName in elementPropsToReflect) {
9011
- candidates.push(root);
9012
- }
9013
- for (const tagName of Object.keys(elementPropsToReflect)) {
9014
- candidates.push(...Array.from(root.querySelectorAll(tagName.toLowerCase())));
9015
- }
9016
- for (const el of candidates) {
9017
- if (!(el.tagName in elementPropsToReflect)) {
9018
- continue;
9019
- }
9020
- const props = elementPropsToReflect[el.tagName];
9021
- for (const prop of props) {
9022
- const value = el[prop];
9023
- if (typeof value === 'string' && value.length > 0 && !el.hasAttribute(prop)) {
9024
- el.setAttribute(prop, value);
9025
- }
9026
- }
9027
- }
9028
- };
9029
- /**
9030
- * Attribute allowlist for `sanitizeDOMString`. Intentionally narrow: this
9031
- * path sanitizes developer HTML strings rendered via `innerHTML` by
9032
- * `ion-toast`, `ion-loading`, the `ion-alert` message,
9033
- * `ion-refresher-content`, and `ion-infinite-scroll-content`, so the list
9034
- * is kept to the minimum those have always needed. Broadening it here would
9035
- * change sanitization output for all of those consumers, so the wider
9036
- * rich-content allowlist below is deliberately scoped to `sanitizeDOMTree`
9037
- * instead.
9038
- */
9039
- const domStringAllowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
9040
- /**
9041
- * Attribute allowlist for `sanitizeDOMTree` (the select rich-content path).
9042
- * Covers global HTML attributes, the Ionic component presentational props
9043
- * that cloned rich content (e.g. `ion-select-option` markup) relies on, and
9044
- * the inert SVG presentation attributes used by inline icons.
9045
- *
9046
- * `aria-*` and `data-*` are allowed separately by prefix (refer
9047
- * `richContentAllowedAttributePrefixes`) since they are inert and not worth
9048
- * enumerating. URL-bearing names (`href`, `src`) are allowed here, but
9049
- * their values are still scrubbed for script schemes in `sanitizeElement`.
9050
- *
9051
- * Notably absent: `style`, event handlers (`on*`), and the
9052
- * form/navigation-hijack attributes (`formaction`, `action`, `target`),
9053
- * which are therefore stripped.
9054
- */
9055
- const richContentAllowedAttributes = [
9056
- // Global / structural
9057
- 'class',
9058
- 'id',
9059
- 'slot',
9060
- 'name',
9061
- 'title',
9062
- 'alt',
9063
- 'lang',
9064
- 'dir',
9065
- 'role',
9066
- 'type',
9067
- 'value',
9068
- 'disabled',
9069
- 'width',
9070
- 'height',
9071
- 'href',
9072
- 'src',
9073
- // Ionic component presentational props
9074
- 'color',
9075
- 'size',
9076
- 'shape',
9077
- 'fill',
9078
- 'expand',
9079
- 'mode',
9080
- 'theme',
9081
- 'icon',
9082
- 'label',
9083
- 'label-placement',
9084
- 'justify',
9085
- 'inset',
9086
- 'lines',
9087
- 'ios',
9088
- 'md',
9089
- // SVG presentation attributes (compared lowercased, e.g. `viewBox`)
9090
- 'xmlns',
9091
- 'viewbox',
9092
- 'preserveaspectratio',
9093
- 'stroke',
9094
- 'stroke-width',
9095
- 'stroke-linecap',
9096
- 'stroke-linejoin',
9097
- 'stroke-opacity',
9098
- 'stroke-dasharray',
9099
- 'fill-rule',
9100
- 'fill-opacity',
9101
- 'clip-rule',
9102
- 'd',
9103
- 'points',
9104
- 'cx',
9105
- 'cy',
9106
- 'r',
9107
- 'rx',
9108
- 'ry',
9109
- 'x',
9110
- 'y',
9111
- 'x1',
9112
- 'y1',
9113
- 'x2',
9114
- 'y2',
9115
- 'transform',
9116
- 'opacity',
9117
- ];
9118
- /**
9119
- * Attribute-name prefixes that are always safe to keep in the rich-content
9120
- * path. `aria-*` and `data-*` attributes cannot execute script or load
9121
- * resources, so they are allowed wholesale rather than enumerated by name.
9122
- */
9123
- const richContentAllowedAttributePrefixes = ['aria-', 'data-'];
9124
- /**
9125
- * Whether an attribute name (already lowercased) is safe to keep, by exact
9126
- * match or by an allowed prefix.
9127
- */
9128
- const isAttributeAllowed = (lowerName, allowedAttributes, allowedAttributePrefixes) => {
9129
- if (allowedAttributes.includes(lowerName)) {
9130
- return true;
9131
- }
9132
- return allowedAttributePrefixes.some((prefix) => lowerName.startsWith(prefix));
9133
- };
9134
- /**
9135
- * Matches ASCII control characters and whitespace (including the
9136
- * non-breaking space). Used to normalize attribute values before matching
9137
- * a URL scheme so entity-obfuscated payloads such as `java&#9;script:`
9138
- * (decoded by the parser to `java\tscript:`) can't smuggle a scheme past
9139
- * the check.
9140
- */
9141
- // eslint-disable-next-line no-control-regex -- matching control characters is the point
9142
- const controlCharactersAndWhitespace = /[\u0000-\u0020\u007f-\u00a0]/g;
9143
- /**
9144
- * Attributes whose values are URLs. Their values are scheme-checked in
9145
- * `sanitizeElement` (e.g. `data:` filtering) beyond the script-scheme scrub
9146
- * applied to every attribute.
9147
- */
9148
- const urlAttributes = ['href', 'src'];
9149
- /**
9150
- * Matches a `data:` URI for a raster image type that cannot carry script.
9151
- * `image/svg+xml` is deliberately excluded (SVG can execute script), as are
9152
- * document types like `text/html` and `application/*`. The value is already
9153
- * lowercased and whitespace-stripped before this is tested.
9154
- */
9155
- const safeDataImageUri = /^data:image\/(?:png|jpe?g|gif|webp|bmp|avif|x-icon|vnd\.microsoft\.icon)[;,]/;
9156
- /**
9157
- * Tags removed entirely (with their subtree) before attribute sanitization.
9158
- * Exported so tests can assert the set without hardcoding it.
9159
- */
9160
- const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed', 'base'];
9161
- /**
9162
- * Properties on custom elements that frameworks (Vue, Angular) often
9163
- * set as DOM properties rather than attributes. `cloneNode` only copies
9164
- * attributes, so these values are lost when slotted content is cloned
9165
- * into an overlay. For each known custom element, we mirror the listed
9166
- * properties onto attributes so the cloned copy still has the data it
9167
- * needs to render.
9168
- *
9169
- * Keyed by uppercased tagName so the lookup matches `Element.tagName`.
9170
- */
9171
- const elementPropsToReflect = {
9172
- 'ION-ICON': ['icon', 'name', 'src', 'ios', 'md'],
9173
- };
9174
- class IonicSafeString {
9175
- constructor(value) {
9176
- this.value = value;
9177
- }
9178
- }
9179
-
9180
- /**
9181
- * Converts a DOM node into a Stencil VNode (or text string) so the
9182
- * resulting tree is rendered through the component's normal render
9183
- * path. Rendering through Stencil ensures that scoped CSS classes
9184
- * (e.g. `sc-ion-action-sheet-ionic`) are applied to every element.
9185
- *
9186
- * Highly recommended to pre-sanitize the source DOM (see
9187
- * `getOptionContent` in select.tsx). This function performs pure
9188
- * structural conversion — no security filtering.
9189
- *
9190
- * Preserves attributes only — properties set imperatively on the source
9191
- * element (e.g. `input.value` after a user types) won't carry through.
9192
- * In practice this isn't a concern: interactive controls shouldn't
9193
- * appear in select-option rich content since they'd nest inside the
9194
- * overlay's button/radio/checkbox wrapper, which is invalid HTML and
9195
- * an accessibility issue.
9196
- *
9197
- * @param node - The DOM node to convert. Text nodes become strings,
9198
- * element nodes become VNodes, and any other node types are skipped.
9199
- * @param keyPrefix - String prefix used to build a stable VNode key,
9200
- * so Stencil's diff can preserve elements across re-renders.
9201
- * @param index - Position of this node among its siblings. Combined
9202
- * with `keyPrefix` to form the final unique key.
9203
- * @returns The converted VNode, a text string, or `null` if the node
9204
- * type isn't supported.
9205
- *
9206
- * @internal Exported only so it can be unit tested; not part of the
9207
- * public API.
9208
- */
9209
- const cloneToVNode = (node, keyPrefix, index) => {
9210
- var _a;
9211
- if (node.nodeType === Node.TEXT_NODE) {
9212
- return (_a = node.textContent) !== null && _a !== void 0 ? _a : '';
9213
- }
9214
- if (node.nodeType !== Node.ELEMENT_NODE) {
9215
- return null;
9216
- }
9217
- const el = node;
9218
- const tag = el.tagName.toLowerCase();
9219
- const key = `${keyPrefix}-${index}`;
9220
- const attrs = { key };
9221
- for (let i = 0; i < el.attributes.length; i++) {
9222
- const attr = el.attributes.item(i);
9223
- attrs[attr.name] = attr.value;
9224
- }
9225
- const children = Array.from(el.childNodes)
9226
- .map((child, i) => cloneToVNode(child, key, i))
9227
- .filter((c) => c !== null);
9228
- return hAsync(tag, attrs, children);
9229
- };
9230
- /**
9231
- * Renders cloned DOM content as Stencil JSX. Walking the source DOM
9232
- * into VNodes (rather than injecting it via innerHTML) keeps the
9233
- * content inside Stencil's render path, so scoped CSS classes are
9234
- * applied automatically and component attributes like `size` or
9235
- * `color` survive intact.
9236
- *
9237
- * Span elements should be used when this content renders within buttons,
9238
- * depending on the select interface. Buttons can only have phrasing
9239
- * content to prevent accessibility issues.
9240
- *
9241
- * @param id - Unique identifier for generating stable virtual DOM keys.
9242
- * @param content - The HTMLElement container whose child nodes will be cloned.
9243
- * @param className - CSS class applied to the wrapper element.
9244
- * @param useSpan - Whether to use a span element instead of a div for the wrapper.
9245
- */
9246
- const renderClonedContent = (id, content, className, useSpan = false) => {
9247
- const Tag = useSpan ? 'span' : 'div';
9248
- const keyPrefix = `${className}-${id}`;
9249
- /**
9250
- * Do not remove. This is the only sanitization pass for callers that pass
9251
- * an `HTMLElement` straight to `renderOptionLabel` (e.g. vanilla JS)
9252
- * without going through `getOptionContent`, which sanitizes upstream.
9253
- * `cloneToVNode` does pure structural conversion and no security
9254
- * filtering, so dropping this call would reopen an XSS hole on the
9255
- * direct `HTMLElement` path.
9256
- */
9257
- sanitizeDOMTree(content);
9258
- return (hAsync(Tag, { class: className, key: keyPrefix }, Array.from(content.childNodes).map((child, i) => cloneToVNode(child, keyPrefix, i))));
9259
- };
9260
- /**
9261
- * Renders the label content for a select option within an overlay
9262
- * interface based on the presence of rich content.
9263
- *
9264
- * Span elements should be used when this content renders within buttons,
9265
- * depending on the select interface. Buttons can only have phrasing
9266
- * content to prevent accessibility issues.
9267
- *
9268
- * @param option - The content option data containing label, slots,
9269
- * and description.
9270
- * @param className - The base CSS class for the label element.
9271
- * @param useSpan - Whether to use a span element instead of a div for the label.
9272
- */
9273
- const renderOptionLabel = (option, className, useSpan = false) => {
9274
- const { id, label, startContent, endContent, description } = option;
9275
- const hasRichContent = !!startContent || !!endContent || !!description;
9276
- const Tag = useSpan ? 'span' : 'div';
9277
- // Render simple string label if there is no rich content to display
9278
- if (!hasRichContent && (typeof label === 'string' || !label)) {
9279
- return (hAsync(Tag, { class: className, key: `${className}-${id}` }, label));
9280
- }
9281
- // Render the main label
9282
- const labelEl = typeof label === 'string' || !label ? (
9283
- // Label is a simple string or undefined
9284
- hAsync(Tag, { key: `${className}-label-${id}` }, label)) : (
9285
- // Label is an HTMLElement with potential rich content
9286
- renderClonedContent(id, label, `${className}-text`, useSpan));
9287
- // No rich content, render just the label
9288
- if (!hasRichContent) {
9289
- return (hAsync(Tag, { class: className, key: `${className}-${id}` }, labelEl));
9290
- }
9291
- // Render label with rich content (start, end, description)
9292
- return (hAsync(Tag, { class: `${className} ${className}-has-rich-content`, key: `${className}-${id}` }, startContent && renderClonedContent(id, startContent, 'select-option-start', useSpan), hAsync(Tag, { class: "select-option-content", key: `${className}-content-${id}` }, labelEl, description && (hAsync(Tag, { class: "select-option-description", key: `${className}-desc-${id}` }, description))), endContent && renderClonedContent(id, endContent, 'select-option-end', useSpan)));
9293
- };
9294
-
9295
8761
  const hostContext = (selector, el) => {
9296
8762
  return el.closest(selector) !== null;
9297
8763
  };
@@ -10147,7 +9613,7 @@ const createAnimation = (animationId) => {
10147
9613
  /**
10148
9614
  * iOS Action Sheet Enter Animation
10149
9615
  */
10150
- const iosEnterAnimation$5 = (baseEl) => {
9616
+ const iosEnterAnimation$6 = (baseEl) => {
10151
9617
  const baseAnimation = createAnimation();
10152
9618
  const backdropAnimation = createAnimation();
10153
9619
  const wrapperAnimation = createAnimation();
@@ -10171,7 +9637,7 @@ const iosEnterAnimation$5 = (baseEl) => {
10171
9637
  /**
10172
9638
  * iOS Action Sheet Leave Animation
10173
9639
  */
10174
- const iosLeaveAnimation$5 = (baseEl) => {
9640
+ const iosLeaveAnimation$6 = (baseEl) => {
10175
9641
  const baseAnimation = createAnimation();
10176
9642
  const backdropAnimation = createAnimation();
10177
9643
  const wrapperAnimation = createAnimation();
@@ -10228,9 +9694,9 @@ const mdLeaveAnimation$5 = (baseEl) => {
10228
9694
  .addAnimation([backdropAnimation, wrapperAnimation]);
10229
9695
  };
10230
9696
 
10231
- const actionSheetIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-ios,.alert-radio-label-has-rich-content.sc-ion-action-sheet-ios,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-ios,.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-ios,.alert-checkbox-label-text.sc-ion-action-sheet-ios,.alert-radio-label-text.sc-ion-action-sheet-ios,.select-option-label-text.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-ios [part~="label"],.select-option-content.sc-ion-action-sheet-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-start.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-avatar.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-thumbnail.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>img.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>svg.sc-ion-action-sheet-ios{width:44px;height:44px}.select-option-start.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios,.select-option-end.sc-ion-action-sheet-ios>ion-icon.sc-ion-action-sheet-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-action-sheet-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-action-sheet-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-ios:disabled ion-icon.sc-ion-action-sheet-ios{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
9697
+ const actionSheetIosCss = () => `.sc-ion-action-sheet-ios-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-ios-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-ios{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-ios{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-ios::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-ios{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-ios{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-ios::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-ios::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-ios:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--backdrop-opacity:var(--ion-backdrop-opacity, 0.4);--button-background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent;--button-background-activated:var(--ion-text-color, #000);--button-background-activated-opacity:.08;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-background-selected:var(--ion-color-step-150, var(--ion-background-color-step-150, var(--ion-background-color, #fff)));--button-background-selected-opacity:1;--button-color:var(--ion-color-primary, #0054e9);--button-color-disabled:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--color:var(--ion-color-step-400, var(--ion-text-color-step-600, #999999));text-align:center}.action-sheet-wrapper.sc-ion-action-sheet-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);padding-bottom:var(--ion-safe-area-bottom, 0);-webkit-box-sizing:content-box;box-sizing:content-box}.action-sheet-container.sc-ion-action-sheet-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0}.action-sheet-group.sc-ion-action-sheet-ios{border-radius:13px;margin-bottom:8px}.action-sheet-group.sc-ion-action-sheet-ios:first-child{margin-top:10px}.action-sheet-group.sc-ion-action-sheet-ios:last-child{margin-bottom:10px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-group.sc-ion-action-sheet-ios{background-color:transparent;-webkit-backdrop-filter:saturate(280%) blur(20px);backdrop-filter:saturate(280%) blur(20px)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-title.sc-ion-action-sheet-ios,.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.sc-ion-action-sheet-ios{background-color:transparent;background-image:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8))), -webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4)), color-stop(50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background-image:linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%), linear-gradient(0deg, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4), rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.4) 50%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 50%);background-repeat:no-repeat;background-position:top, bottom;background-size:100% calc(100% - 1px), 100% 1px;-webkit-backdrop-filter:saturate(120%);backdrop-filter:saturate(120%)}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-button.ion-activated.sc-ion-action-sheet-ios{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.7);background-image:none}.action-sheet-translucent.sc-ion-action-sheet-ios-h .action-sheet-cancel.sc-ion-action-sheet-ios{background:var(--button-background-selected)}}.action-sheet-title.sc-ion-action-sheet-ios{background:-webkit-gradient(linear, left bottom, left top, from(rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)), color-stop(50%, transparent)) bottom/100% 1px no-repeat transparent;background:linear-gradient(0deg, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08), rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08) 50%, transparent 50%) bottom/100% 1px no-repeat transparent}.action-sheet-title.sc-ion-action-sheet-ios{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:14px;padding-bottom:13px;color:var(--color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-size:max(13px, 0.8125rem);font-weight:400;text-align:center}.action-sheet-title.action-sheet-has-sub-title.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-sub-title.sc-ion-action-sheet-ios{padding-left:0;padding-right:0;padding-top:6px;padding-bottom:0;font-size:max(13px, 0.8125rem);font-weight:400}.action-sheet-button.sc-ion-action-sheet-ios{-webkit-padding-start:14px;padding-inline-start:14px;-webkit-padding-end:14px;padding-inline-end:14px;padding-top:14px;padding-bottom:14px;min-height:56px;font-size:max(20px, 1.25rem);contain:content}.action-sheet-button.sc-ion-action-sheet-ios .action-sheet-icon.sc-ion-action-sheet-ios{-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:max(28px, 1.75rem);pointer-events:none}.action-sheet-button.sc-ion-action-sheet-ios:last-child{background-image:none}.action-sheet-selected.sc-ion-action-sheet-ios{font-weight:bold}.action-sheet-cancel.sc-ion-action-sheet-ios{font-weight:600}.action-sheet-cancel.sc-ion-action-sheet-ios::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-destructive.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-activated.sc-ion-action-sheet-ios,.action-sheet-destructive.ion-focused.sc-ion-action-sheet-ios{color:var(--ion-color-danger, #c5000f)}@media (any-hover: hover){.action-sheet-destructive.sc-ion-action-sheet-ios:hover{color:var(--ion-color-danger, #c5000f)}}`;
10232
9698
 
10233
- const actionSheetMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-action-sheet-md,.alert-radio-label-has-rich-content.sc-ion-action-sheet-md,.alert-checkbox-label-has-rich-content.sc-ion-action-sheet-md,.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-action-sheet-md,.alert-checkbox-label-text.sc-ion-action-sheet-md,.alert-radio-label-text.sc-ion-action-sheet-md,.select-option-label-text.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-action-sheet-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-action-sheet-md [part~="label"],.select-option-content.sc-ion-action-sheet-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-avatar.sc-ion-action-sheet-md{width:40px;height:40px}.select-option-start.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-icon.sc-ion-action-sheet-md{width:24px;height:24px}.select-option-start.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-start.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>img.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>svg.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>ion-thumbnail.sc-ion-action-sheet-md{width:56px;height:56px}.select-option-start.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md,.select-option-end.sc-ion-action-sheet-md>video.sc-ion-action-sheet-md{width:114px;height:56px}.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button.sc-ion-action-sheet-md:disabled ion-icon.sc-ion-action-sheet-md{color:currentColor}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated){color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated)::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md:not(.ion-activated).action-sheet-selected::after{background:var(--button-background-focused, var(--button-background-selected));opacity:var(--button-background-focused-opacity, var(--button-background-selected-opacity))}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
9699
+ const actionSheetMdCss = () => `.sc-ion-action-sheet-md-h{--color:initial;--button-color-activated:var(--button-color);--button-color-focused:var(--button-color);--button-color-hover:var(--button-color);--button-color-selected:var(--button-color);--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--height:auto;--max-height:calc(100% - (var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:block;position:fixed;outline:none;font-family:var(--ion-font-family, inherit);-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-action-sheet-md-h{display:none}.action-sheet-wrapper.sc-ion-action-sheet-md{left:0;right:0;bottom:0;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:block;position:absolute;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);z-index:10;pointer-events:none}.action-sheet-button.sc-ion-action-sheet-md{display:block;position:relative;width:100%;border:0;outline:none;background:var(--button-background);color:var(--button-color);font-family:inherit;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md:disabled{color:var(--button-color-disabled);opacity:0.4}.action-sheet-button-inner.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;pointer-events:none;width:100%;height:100%;z-index:1}.action-sheet-container.sc-ion-action-sheet-md{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;-ms-flex-pack:end;justify-content:flex-end;height:100%;max-height:calc(100vh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)));max-height:calc(100dvh - (var(--ion-safe-area-top, 0) + var(--ion-safe-area-bottom, 0)))}.action-sheet-group.sc-ion-action-sheet-md{-ms-flex-negative:2;flex-shrink:2;overscroll-behavior-y:contain;overflow-y:auto;-webkit-overflow-scrolling:touch;pointer-events:all;background:var(--background)}@media (any-pointer: coarse){.action-sheet-group.sc-ion-action-sheet-md::-webkit-scrollbar{display:none}}.action-sheet-group-cancel.sc-ion-action-sheet-md{-ms-flex-negative:0;flex-shrink:0;overflow:hidden}.action-sheet-button.sc-ion-action-sheet-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}.action-sheet-selected.sc-ion-action-sheet-md{color:var(--button-color-selected)}.action-sheet-selected.sc-ion-action-sheet-md::after{background:var(--button-background-selected);opacity:var(--button-background-selected-opacity)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md{color:var(--button-color-activated)}.action-sheet-button.ion-activated.sc-ion-action-sheet-md::after{background:var(--button-background-activated);opacity:var(--button-background-activated-opacity)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md{color:var(--button-color-focused)}.action-sheet-button.ion-focused.sc-ion-action-sheet-md::after{background:var(--button-background-focused);opacity:var(--button-background-focused-opacity)}@media (any-hover: hover){.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover{color:var(--button-color-hover)}.action-sheet-button.sc-ion-action-sheet-md:not(:disabled):hover::after{background:var(--button-background-hover);opacity:var(--button-background-hover-opacity)}}.sc-ion-action-sheet-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);--button-background:transparent;--button-background-selected:currentColor;--button-background-selected-opacity:0;--button-background-activated:transparent;--button-background-activated-opacity:0;--button-background-hover:currentColor;--button-background-hover-opacity:.04;--button-background-focused:currentColor;--button-background-focused-opacity:.12;--button-color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--button-color-disabled:var(--button-color);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}.action-sheet-wrapper.sc-ion-action-sheet-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:var(--ion-safe-area-top, 0);margin-bottom:0}.action-sheet-title.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:20px;padding-bottom:17px;min-height:60px;color:var(--color, rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54));font-size:1rem;text-align:start}.action-sheet-sub-title.sc-ion-action-sheet-md{padding-left:0;padding-right:0;padding-top:16px;padding-bottom:0;font-size:0.875rem}.action-sheet-group.sc-ion-action-sheet-md:first-child{padding-top:0}.action-sheet-group.sc-ion-action-sheet-md:last-child{padding-bottom:var(--ion-safe-area-bottom)}.action-sheet-button.sc-ion-action-sheet-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;position:relative;min-height:52px;font-size:1rem;text-align:start;contain:content;overflow:hidden}.action-sheet-icon.sc-ion-action-sheet-md{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:32px;margin-inline-end:32px;margin-top:0;margin-bottom:0;color:var(--color);font-size:1.5rem}.action-sheet-button-inner.sc-ion-action-sheet-md{-ms-flex-pack:start;justify-content:flex-start}.action-sheet-selected.sc-ion-action-sheet-md{font-weight:bold}`;
10234
9700
 
10235
9701
  /**
10236
9702
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
@@ -10327,7 +9793,7 @@ class ActionSheet {
10327
9793
  async present() {
10328
9794
  const unlock = await this.lockController.lock();
10329
9795
  await this.delegateController.attachViewToDom();
10330
- await present(this, 'actionSheetEnter', iosEnterAnimation$5, mdEnterAnimation$5);
9796
+ await present(this, 'actionSheetEnter', iosEnterAnimation$6, mdEnterAnimation$5);
10331
9797
  unlock();
10332
9798
  }
10333
9799
  /**
@@ -10344,7 +9810,7 @@ class ActionSheet {
10344
9810
  */
10345
9811
  async dismiss(data, role) {
10346
9812
  const unlock = await this.lockController.lock();
10347
- const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$5, mdLeaveAnimation$5);
9813
+ const dismissed = await dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation$6, mdLeaveAnimation$5);
10348
9814
  if (dismissed) {
10349
9815
  this.delegateController.removeViewFromDom();
10350
9816
  }
@@ -10513,10 +9979,6 @@ class ActionSheet {
10513
9979
  this.gesture = undefined;
10514
9980
  }
10515
9981
  this.triggerController.removeClickListener();
10516
- // Clean up aria-hidden if removed without dismiss() being called
10517
- if (this.presented) {
10518
- cleanupRootFocusTrapAccessibility();
10519
- }
10520
9982
  }
10521
9983
  componentWillLoad() {
10522
9984
  var _a;
@@ -10605,26 +10067,12 @@ class ActionSheet {
10605
10067
  if (isRadio) {
10606
10068
  htmlAttrs['aria-checked'] = isActiveRadio ? 'true' : 'false';
10607
10069
  }
10608
- /**
10609
- * Cast to `SelectActionSheetButton` to access rich content
10610
- * fields (`startContent`, `endContent`, `description`)
10611
- * that are passed through from `ion-select` but not
10612
- * part of the public `ActionSheetButton` interface.
10613
- */
10614
- const richButton = b;
10615
- const optionLabelOptions = {
10616
- id: buttonId,
10617
- label: richButton.text,
10618
- startContent: richButton.startContent,
10619
- endContent: richButton.endContent,
10620
- description: richButton.description,
10621
- };
10622
- return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$2(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10070
+ return (hAsync("button", Object.assign({}, htmlAttrs, { role: isRadio ? 'radio' : undefined, type: "button", id: buttonId, class: Object.assign(Object.assign({}, buttonClass$3(b)), (isRadio && { 'action-sheet-selected': isActiveRadio })), onClick: () => {
10623
10071
  if (isRadio) {
10624
10072
  this.selectRadioButton(b);
10625
10073
  }
10626
10074
  this.buttonClick(b);
10627
- }, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), renderOptionLabel(optionLabelOptions, 'action-sheet-button-label', true)), mode === 'md' && hAsync("ion-ripple-effect", null)));
10075
+ }, disabled: b.disabled, tabIndex: tabIndex }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null)));
10628
10076
  });
10629
10077
  }
10630
10078
  render() {
@@ -10634,12 +10082,12 @@ class ActionSheet {
10634
10082
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
10635
10083
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
10636
10084
  const headerID = `action-sheet-${overlayIndex}-header`;
10637
- return (hAsync(Host, Object.assign({ key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10085
+ return (hAsync(Host, Object.assign({ key: '48b63b870f2816b4cad3c606f3d9956854cee79a', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
10638
10086
  zIndex: `${20000 + this.overlayIndex}`,
10639
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: 'c70f00e401cac99b89412d1adb867f35bc855d57', tappable: this.backdropDismiss }), hAsync("div", { key: '3332893ce3098f1435875480b1269b2821d41660', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'eb406b0a9e303d6f94c5c7aa99c6f4c089bfbd41', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '92ec855379f10e1e0bfce6ff68b45d3cda0c137c', class: "action-sheet-container" }, hAsync("div", { key: 'bc88a396d75396f574961471bf7e6c4edb513353', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '33329e0193818888bdcaa443ff5ea301802e0787', id: headerID, class: {
10087
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '41dd5781f139d26b3feea33ab387451aeafacd51', tappable: this.backdropDismiss }), hAsync("div", { key: 'f797c2657782e4e83adf90d2d796108e857a1fc0', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '8e74209321fc5e8712e3e293c91a6fa036ea45ab', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'c811860be2eed0b6c73fc2cc5a59cb94db2e8912', class: "action-sheet-container" }, hAsync("div", { key: 'd36ee14b70d73eb5cd69e0c57bc5cc31daf86ab3', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '922695de191edc86451eed2552acc4f54993ea52', id: headerID, class: {
10640
10088
  'action-sheet-title': true,
10641
10089
  'action-sheet-has-sub-title': this.subHeader !== undefined,
10642
- } }, header, this.subHeader && hAsync("div", { key: '92ac5a9217a12b7417f7aca9c4fdb7bf6b051364', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '020463b830fa48fc3ae647ea64f2aaa4d0969305', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'cefa9c70a2233f6652a81b1a2eae6e717712144d' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '56d7e2f8bfb3644e4476895164d334445fda9b2f', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '6a4a49254ec5cd96f4e0dce9447f90d8cac81913', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '7d3c6e8d70b0922ea0f75520856285ce1005c891' })))))), hAsync("div", { key: '958fc43e603c6a7f5d1e649d3326fce0f163b5d0', tabindex: "0", "aria-hidden": "true" })));
10090
+ } }, header, this.subHeader && hAsync("div", { key: 'a119d4a93668e829f7106f11cbbdd437310f3e80', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '1d27f36d09bedd2e4c61fea9dd9d05f8f9271aef', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: 'ed13658176c54cc45808a54a0331c297430d9bc6' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '5208e3e3535b775a443cef6fb1decd790db69b0c', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: 'b7ba489e1ee50524a5b4af670eef787844a16286', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3f88898114855853259f0001def26b4bd6e4a98' })))))), hAsync("div", { key: '0dfd0fcdc633bf565990eaa06679608e749cf8f9', tabindex: "0", "aria-hidden": "true" })));
10643
10091
  }
10644
10092
  get el() { return getElement(this); }
10645
10093
  static get watchers() { return {
@@ -10688,59 +10136,178 @@ class ActionSheet {
10688
10136
  "$attrsToReflect$": []
10689
10137
  }; }
10690
10138
  }
10691
- const buttonClass$2 = (button) => {
10139
+ const buttonClass$3 = (button) => {
10692
10140
  return Object.assign({ 'action-sheet-button': true, 'ion-activatable': !button.disabled, 'ion-focusable': !button.disabled, [`action-sheet-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
10693
10141
  };
10694
10142
 
10695
10143
  const ENABLE_HTML_CONTENT_DEFAULT = false;
10696
10144
 
10697
- // TODO(FW-6886, FW-6892, FW-6891): Remove this file in favor of the Modular Ionic component config. Each overlay will be able to select its own defaults for label placement and justify based on the interface and mode, so this utility will no longer be necessary.
10698
10145
  /**
10699
- * Returns the default `labelPlacement` for a radio or checkbox option
10700
- * rendered inside an overlay. Defaults follow each mode's established
10701
- * option-row layout:
10702
- * - `ios`: `"start"` for radio in `alert` and `popover`. The `modal`
10703
- * interface flips iOS radio back to `"end"`. Checkbox is always
10704
- * `"end"` on iOS.
10705
- * - everything else (e.g. `md`): `"end"`.
10706
- *
10707
- * `interfaceType` is optional; only `"modal"` changes the result, so
10708
- * callers that aren't a modal can omit it.
10709
- *
10710
- * Used by `select-popover` and `select-modal` as the fallback when an
10711
- * option doesn't explicitly set `labelPlacement`.
10146
+ * Does a simple sanitization of all elements
10147
+ * in an untrusted string
10148
+ */
10149
+ const sanitizeDOMString = (untrustedString) => {
10150
+ try {
10151
+ if (untrustedString instanceof IonicSafeString) {
10152
+ return untrustedString.value;
10153
+ }
10154
+ if (!isSanitizerEnabled() || typeof untrustedString !== 'string' || untrustedString === '') {
10155
+ return untrustedString;
10156
+ }
10157
+ /**
10158
+ * onload is fired when appending to a document
10159
+ * fragment in Chrome. If a string
10160
+ * contains onload then we should not
10161
+ * attempt to add this to the fragment.
10162
+ */
10163
+ if (untrustedString.includes('onload=')) {
10164
+ return '';
10165
+ }
10166
+ /**
10167
+ * Create a document fragment
10168
+ * separate from the main DOM,
10169
+ * create a div to do our work in
10170
+ */
10171
+ const documentFragment = document.createDocumentFragment();
10172
+ const workingDiv = document.createElement('div');
10173
+ documentFragment.appendChild(workingDiv);
10174
+ workingDiv.innerHTML = untrustedString;
10175
+ /**
10176
+ * Remove any elements
10177
+ * that are blocked
10178
+ */
10179
+ blockedTags.forEach((blockedTag) => {
10180
+ const getElementsToRemove = documentFragment.querySelectorAll(blockedTag);
10181
+ for (let elementIndex = getElementsToRemove.length - 1; elementIndex >= 0; elementIndex--) {
10182
+ const element = getElementsToRemove[elementIndex];
10183
+ if (element.parentNode) {
10184
+ element.parentNode.removeChild(element);
10185
+ }
10186
+ else {
10187
+ documentFragment.removeChild(element);
10188
+ }
10189
+ /**
10190
+ * We still need to sanitize
10191
+ * the children of this element
10192
+ * as they are left behind
10193
+ */
10194
+ const childElements = getElementChildren(element);
10195
+ /* eslint-disable-next-line */
10196
+ for (let childIndex = 0; childIndex < childElements.length; childIndex++) {
10197
+ sanitizeElement(childElements[childIndex]);
10198
+ }
10199
+ }
10200
+ });
10201
+ /**
10202
+ * Go through remaining elements and remove
10203
+ * non-allowed attribs
10204
+ */
10205
+ // IE does not support .children on document fragments, only .childNodes
10206
+ const dfChildren = getElementChildren(documentFragment);
10207
+ /* eslint-disable-next-line */
10208
+ for (let childIndex = 0; childIndex < dfChildren.length; childIndex++) {
10209
+ sanitizeElement(dfChildren[childIndex]);
10210
+ }
10211
+ // Append document fragment to div
10212
+ const fragmentDiv = document.createElement('div');
10213
+ fragmentDiv.appendChild(documentFragment);
10214
+ // First child is always the div we did our work in
10215
+ const getInnerDiv = fragmentDiv.querySelector('div');
10216
+ return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
10217
+ }
10218
+ catch (err) {
10219
+ printIonError('sanitizeDOMString', err);
10220
+ return '';
10221
+ }
10222
+ };
10223
+ /**
10224
+ * Clean up current element based on allowed attributes
10225
+ * and then recursively dig down into any child elements to
10226
+ * clean those up as well
10712
10227
  */
10713
- const getOverlayLabelPlacement = (mode, control, interfaceType) => {
10714
- if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
10715
- return 'start';
10228
+ // TODO(FW-2832): type (using Element triggers other type errors as well)
10229
+ const sanitizeElement = (element) => {
10230
+ // IE uses childNodes, so ignore nodes that are not elements
10231
+ if (element.nodeType && element.nodeType !== 1) {
10232
+ return;
10233
+ }
10234
+ /**
10235
+ * If attributes is not a NamedNodeMap
10236
+ * then we should remove the element entirely.
10237
+ * This helps avoid DOM Clobbering attacks where
10238
+ * attributes is overridden.
10239
+ */
10240
+ if (typeof NamedNodeMap !== 'undefined' && !(element.attributes instanceof NamedNodeMap)) {
10241
+ element.remove();
10242
+ return;
10243
+ }
10244
+ for (let i = element.attributes.length - 1; i >= 0; i--) {
10245
+ const attribute = element.attributes.item(i);
10246
+ const attributeName = attribute.name;
10247
+ // remove non-allowed attribs
10248
+ if (!allowedAttributes.includes(attributeName.toLowerCase())) {
10249
+ element.removeAttribute(attributeName);
10250
+ continue;
10251
+ }
10252
+ // clean up any allowed attribs
10253
+ // that attempt to do any JS funny-business
10254
+ const attributeValue = attribute.value;
10255
+ /**
10256
+ * We also need to check the property value
10257
+ * as javascript: can allow special characters
10258
+ * such as &Tab; and still be valid (i.e. java&Tab;script)
10259
+ */
10260
+ const propertyValue = element[attributeName];
10261
+ /* eslint-disable */
10262
+ if ((attributeValue != null && attributeValue.toLowerCase().includes('javascript:')) ||
10263
+ (propertyValue != null && propertyValue.toLowerCase().includes('javascript:'))) {
10264
+ element.removeAttribute(attributeName);
10265
+ }
10266
+ /* eslint-enable */
10267
+ }
10268
+ /**
10269
+ * Sanitize any nested children
10270
+ */
10271
+ const childElements = getElementChildren(element);
10272
+ /* eslint-disable-next-line */
10273
+ for (let i = 0; i < childElements.length; i++) {
10274
+ sanitizeElement(childElements[i]);
10716
10275
  }
10717
- return 'end';
10718
10276
  };
10719
10277
  /**
10720
- * Returns the default `justify` for a radio or checkbox option rendered
10721
- * inside an overlay. Defaults follow each mode's option-row layout:
10722
- * - `ios`: `"space-between"` for radio in `alert` and `popover`. The
10723
- * `modal` interface falls back to `"start"`. Checkbox is always `"start"`
10724
- * on iOS.
10725
- * - everything else (e.g. `md`): `"start"`.
10726
- *
10727
- * `interfaceType` is optional; only `"modal"` changes the result, so
10728
- * callers that aren't a modal can omit it.
10729
- *
10730
- * Used by `select-popover` and `select-modal` as the fallback when an
10731
- * option doesn't explicitly set `justify`.
10278
+ * IE doesn't always support .children
10279
+ * so we revert to .childNodes instead
10732
10280
  */
10733
- const getOverlayLabelJustify = (mode, control, interfaceType) => {
10734
- if (mode === 'ios' && control === 'radio' && interfaceType !== 'modal') {
10735
- return 'space-between';
10281
+ // TODO(FW-2832): type
10282
+ const getElementChildren = (el) => {
10283
+ return el.children != null ? el.children : el.childNodes;
10284
+ };
10285
+ const isSanitizerEnabled = () => {
10286
+ var _a;
10287
+ const win = window;
10288
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
10289
+ if (config) {
10290
+ if (config.get) {
10291
+ return config.get('sanitizerEnabled', true);
10292
+ }
10293
+ else {
10294
+ return config.sanitizerEnabled === true || config.sanitizerEnabled === undefined;
10295
+ }
10736
10296
  }
10737
- return 'start';
10297
+ return true;
10738
10298
  };
10299
+ const allowedAttributes = ['class', 'id', 'href', 'src', 'name', 'slot'];
10300
+ const blockedTags = ['script', 'style', 'iframe', 'meta', 'link', 'object', 'embed'];
10301
+ class IonicSafeString {
10302
+ constructor(value) {
10303
+ this.value = value;
10304
+ }
10305
+ }
10739
10306
 
10740
10307
  /**
10741
10308
  * iOS Alert Enter Animation
10742
10309
  */
10743
- const iosEnterAnimation$4 = (baseEl) => {
10310
+ const iosEnterAnimation$5 = (baseEl) => {
10744
10311
  const baseAnimation = createAnimation();
10745
10312
  const backdropAnimation = createAnimation();
10746
10313
  const wrapperAnimation = createAnimation();
@@ -10765,7 +10332,7 @@ const iosEnterAnimation$4 = (baseEl) => {
10765
10332
  /**
10766
10333
  * iOS Alert Leave Animation
10767
10334
  */
10768
- const iosLeaveAnimation$4 = (baseEl) => {
10335
+ const iosLeaveAnimation$5 = (baseEl) => {
10769
10336
  const baseAnimation = createAnimation();
10770
10337
  const backdropAnimation = createAnimation();
10771
10338
  const wrapperAnimation = createAnimation();
@@ -10822,9 +10389,9 @@ const mdLeaveAnimation$4 = (baseEl) => {
10822
10389
  .addAnimation([backdropAnimation, wrapperAnimation]);
10823
10390
  };
10824
10391
 
10825
- const alertIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-ios,.alert-radio-label-has-rich-content.sc-ion-alert-ios,.alert-checkbox-label-has-rich-content.sc-ion-alert-ios,.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-ios,.alert-checkbox-label-text.sc-ion-alert-ios,.alert-radio-label-text.sc-ion-alert-ios,.select-option-label-text.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-ios [part~="label"],.select-option-content.sc-ion-alert-ios{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-start.sc-ion-alert-ios>svg.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-avatar.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-thumbnail.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>img.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>svg.sc-ion-alert-ios{width:44px;height:44px}.select-option-start.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios,.select-option-end.sc-ion-alert-ios>ion-icon.sc-ion-alert-ios{width:28px;height:28px}.action-sheet-button-label-text.sc-ion-alert-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-alert-ios{-webkit-padding-end:16px;padding-inline-end:16px}.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-ios,.checkbox-label-placement-start.sc-ion-alert-ios{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-ios,.checkbox-label-placement-end.sc-ion-alert-ios{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-ios,.checkbox-justify-start.sc-ion-alert-ios{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-ios,.checkbox-justify-end.sc-ion-alert-ios{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-ios,.checkbox-justify-space-between.sc-ion-alert-ios{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-negative:0;flex-shrink:0;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-end.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-end:7px}[aria-checked=true].sc-ion-alert-ios .radio-label-placement-start.sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;margin-top:10px;margin-bottom:10px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}.checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px}.checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{-webkit-margin-start:6px;margin-inline-start:6px;-webkit-margin-end:16px;margin-inline-end:16px}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-end.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}[aria-checked=true].sc-ion-alert-ios .checkbox-label-placement-start.sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-end:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
10392
+ const alertIosCss = () => `.sc-ion-alert-ios-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-ios-h{display:none}.alert-top.sc-ion-alert-ios-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-ios,.alert-radio-label.sc-ion-alert-ios{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-ios::-webkit-scrollbar,.alert-message.sc-ion-alert-ios::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-ios{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-ios{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-ios,.alert-tappable.ion-focused.sc-ion-alert-ios{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-ios,.alert-checkbox-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios,.alert-radio-button-disabled.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-ios,.alert-checkbox.sc-ion-alert-ios,.alert-input.sc-ion-alert-ios,.alert-radio.sc-ion-alert-ios{outline:none}.alert-radio-icon.sc-ion-alert-ios,.alert-checkbox-icon.sc-ion-alert-ios,.alert-checkbox-inner.sc-ion-alert-ios{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-ios{min-height:37px;resize:none}.sc-ion-alert-ios-h{--background:var(--ion-overlay-background-color, var(--ion-color-step-100, var(--ion-background-color-step-100, #f9f9f9)));--max-width:clamp(270px, 16.875rem, 324px);--backdrop-opacity:var(--ion-backdrop-opacity, 0.3);font-size:max(14px, 0.875rem)}.alert-wrapper.sc-ion-alert-ios{border-radius:13px;-webkit-box-shadow:none;box-shadow:none;overflow:hidden}.alert-button.sc-ion-alert-ios .alert-button-inner.sc-ion-alert-ios{pointer-events:none}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.alert-translucent.sc-ion-alert-ios-h .alert-wrapper.sc-ion-alert-ios{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.9);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.alert-head.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:7px;text-align:center}.alert-title.sc-ion-alert-ios{margin-top:8px;color:var(--ion-text-color, #000);font-size:max(17px, 1.0625rem);font-weight:600}.alert-sub-title.sc-ion-alert-ios{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));font-size:max(14px, 0.875rem)}.alert-message.sc-ion-alert-ios,.alert-input-group.sc-ion-alert-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:21px;color:var(--ion-text-color, #000);font-size:max(13px, 0.8125rem);text-align:center}.alert-message.sc-ion-alert-ios{max-height:240px}.alert-message.sc-ion-alert-ios:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:12px}.alert-input.sc-ion-alert-ios{border-radius:7px;margin-top:10px;-webkit-padding-start:7px;padding-inline-start:7px;-webkit-padding-end:7px;padding-inline-end:7px;padding-top:7px;padding-bottom:7px;border:0.55px solid var(--ion-color-step-250, var(--ion-background-color-step-250, #bfbfbf));background-color:var(--ion-background-color, #fff);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-size:1rem}.alert-input.sc-ion-alert-ios::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-ios::-ms-clear{display:none}.alert-input.sc-ion-alert-ios::-webkit-date-and-time-value{height:18px}.alert-radio-group.sc-ion-alert-ios,.alert-checkbox-group.sc-ion-alert-ios{-ms-scroll-chaining:none;overscroll-behavior:contain;max-height:240px;border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);overflow-y:auto;-webkit-overflow-scrolling:touch}.alert-tappable.sc-ion-alert-ios{min-height:44px}.alert-radio-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;-ms-flex-order:0;order:0;color:var(--ion-text-color, #000)}[aria-checked=true].sc-ion-alert-ios .alert-radio-label.sc-ion-alert-ios{color:var(--ion-color-primary, #0054e9)}.alert-radio-icon.sc-ion-alert-ios{position:relative;-ms-flex-order:1;order:1;min-width:30px}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{top:-7px;position:absolute;width:6px;height:12px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-radio-inner.sc-ion-alert-ios{inset-inline-start:7px}.alert-checkbox-label.sc-ion-alert-ios{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-text-color, #000)}.alert-checkbox-icon.sc-ion-alert-ios{border-radius:50%;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:6px;margin-inline-end:6px;margin-top:10px;margin-bottom:10px;position:relative;width:min(1.375rem, 55.836px);height:min(1.375rem, 55.836px);border-width:0.125rem;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));background-color:var(--ion-item-background, var(--ion-background-color, #fff));contain:strict}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-icon.sc-ion-alert-ios{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{top:calc(min(1.375rem, 55.836px) / 8);position:absolute;width:calc(min(1.375rem, 55.836px) / 6 + 1px);height:calc(min(1.375rem, 55.836px) * 0.5);-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:0.125rem;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-background-color, #fff)}[aria-checked=true].sc-ion-alert-ios .alert-checkbox-inner.sc-ion-alert-ios{inset-inline-start:calc(min(1.375rem, 55.836px) / 3)}.alert-button-group.sc-ion-alert-ios{-webkit-margin-end:-0.55px;margin-inline-end:-0.55px;-ms-flex-wrap:wrap;flex-wrap:wrap}.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios{border-right:none}[dir=rtl].sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}[dir=rtl].sc-ion-alert-ios .alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:none}@supports selector(:dir(rtl)){.alert-button-group-vertical.sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:none}}.alert-button.sc-ion-alert-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;border-radius:0;-ms-flex:1 1 auto;flex:1 1 auto;min-width:50%;height:max(44px, 2.75rem);border-top:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2);background-color:transparent;color:var(--ion-color-primary, #0054e9);font-size:max(17px, 1.0625rem);overflow:hidden}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:first-child{border-right:0}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:first-child{border-right:0}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:first-child:dir(rtl){border-right:0}}.alert-button.sc-ion-alert-ios:last-child{border-right:0;font-weight:bold}[dir=rtl].sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child,[dir=rtl] .sc-ion-alert-ios-h .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}[dir=rtl].sc-ion-alert-ios .alert-button.sc-ion-alert-ios:last-child{border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@supports selector(:dir(rtl)){.alert-button.sc-ion-alert-ios:last-child:dir(rtl){border-right:0.55px solid rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}}.alert-button.ion-activated.sc-ion-alert-ios{background-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.1)}.alert-button-role-destructive.sc-ion-alert-ios,.alert-button-role-destructive.ion-activated.sc-ion-alert-ios,.alert-button-role-destructive.ion-focused.sc-ion-alert-ios{color:var(--ion-color-danger, #c5000f)}`;
10826
10393
 
10827
- const alertMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:16px}.action-sheet-button-label-has-rich-content.sc-ion-alert-md,.alert-radio-label-has-rich-content.sc-ion-alert-md,.alert-checkbox-label-has-rich-content.sc-ion-alert-md,.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-alert-md,.alert-checkbox-label-text.sc-ion-alert-md,.alert-radio-label-text.sc-ion-alert-md,.select-option-label-text.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:12px}.select-option-start.sc-ion-alert-md,.select-option-end.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;gap:8px}.select-option-description.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-label.sc-ion-alert-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-alert-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-alert-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-alert-md [part~="label"],.select-option-content.sc-ion-alert-md{-ms-flex:1;flex:1;white-space:normal}.select-option-start.sc-ion-alert-md>ion-avatar.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-avatar.sc-ion-alert-md{width:40px;height:40px}.select-option-start.sc-ion-alert-md>ion-icon.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-icon.sc-ion-alert-md{width:24px;height:24px}.select-option-start.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-start.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>img.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>svg.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>ion-thumbnail.sc-ion-alert-md{width:56px;height:56px}.select-option-start.sc-ion-alert-md>video.sc-ion-alert-md,.select-option-end.sc-ion-alert-md>video.sc-ion-alert-md{width:114px;height:56px}.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.radio-label-placement-start.sc-ion-alert-md,.checkbox-label-placement-start.sc-ion-alert-md{-ms-flex-direction:row-reverse;flex-direction:row-reverse}.radio-label-placement-end.sc-ion-alert-md,.checkbox-label-placement-end.sc-ion-alert-md{-ms-flex-direction:row;flex-direction:row}.radio-justify-start.sc-ion-alert-md,.checkbox-justify-start.sc-ion-alert-md{-ms-flex-pack:start;justify-content:start}.radio-justify-end.sc-ion-alert-md,.checkbox-justify-end.sc-ion-alert-md{-ms-flex-pack:end;justify-content:end}.radio-justify-space-between.sc-ion-alert-md,.checkbox-justify-space-between.sc-ion-alert-md{-ms-flex-pack:justify;justify-content:space-between}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 20px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.radio-label-placement-end.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;-ms-flex-negative:0;flex-shrink:0;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.radio-label-placement-end.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-start:24px}.radio-label-placement-start.sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{inset-inline-end:24px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{padding-top:13px;padding-bottom:13px;max-width:calc(100% - 16px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:56px;padding-inline-start:56px;-webkit-padding-end:24px;padding-inline-end:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:56px;padding-inline-end:56px}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;-ms-flex-negative:0;flex-shrink:0;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.checkbox-label-placement-end.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:24px}.checkbox-label-placement-start.sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{inset-inline-end:24px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-group.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
10394
+ const alertMdCss = () => `.sc-ion-alert-md-h{--min-width:250px;--width:auto;--min-height:auto;--height:auto;--max-height:90%;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}.overlay-hidden.sc-ion-alert-md-h{display:none}.alert-top.sc-ion-alert-md-h{padding-top:50px;-ms-flex-align:start;align-items:flex-start}.alert-wrapper.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:content;opacity:0;z-index:10}.alert-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-sub-title.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;font-weight:normal}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain}.alert-checkbox-label.sc-ion-alert-md,.alert-radio-label.sc-ion-alert-md{overflow-wrap:anywhere}@media (any-pointer: coarse){.alert-checkbox-group.sc-ion-alert-md::-webkit-scrollbar,.alert-radio-group.sc-ion-alert-md::-webkit-scrollbar,.alert-message.sc-ion-alert-md::-webkit-scrollbar{display:none}}.alert-input.sc-ion-alert-md{padding-left:0;padding-right:0;padding-top:10px;padding-bottom:10px;width:100%;border:0;background:inherit;font:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.alert-button-group.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;width:100%}.alert-button-group-vertical.sc-ion-alert-md{-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap}.alert-button.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;border:0;font-size:0.875rem;line-height:1.25rem;z-index:0}.alert-button.ion-focused.sc-ion-alert-md,.alert-tappable.ion-focused.sc-ion-alert-md{background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.alert-button-inner.sc-ion-alert-md{display:-ms-flexbox;display:flex;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;min-height:inherit}.alert-input-disabled.sc-ion-alert-md,.alert-checkbox-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md,.alert-radio-button-disabled.sc-ion-alert-md .alert-button-inner.sc-ion-alert-md{cursor:default;opacity:0.5;pointer-events:none}.alert-tappable.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:-ms-flexbox;display:flex;width:100%;border:0;background:transparent;font-size:inherit;line-height:initial;text-align:start;-webkit-appearance:none;-moz-appearance:none;appearance:none;contain:content}.alert-button.sc-ion-alert-md,.alert-checkbox.sc-ion-alert-md,.alert-input.sc-ion-alert-md,.alert-radio.sc-ion-alert-md{outline:none}.alert-radio-icon.sc-ion-alert-md,.alert-checkbox-icon.sc-ion-alert-md,.alert-checkbox-inner.sc-ion-alert-md{-webkit-box-sizing:border-box;box-sizing:border-box}textarea.alert-input.sc-ion-alert-md{min-height:37px;resize:none}.sc-ion-alert-md-h{--background:var(--ion-overlay-background-color, var(--ion-background-color, #fff));--max-width:280px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.32);font-size:0.875rem}.alert-wrapper.sc-ion-alert-md{border-radius:4px;-webkit-box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12);box-shadow:0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0, 0, 0, 0.14), 0 9px 46px 8px rgba(0, 0, 0, 0.12)}.alert-head.sc-ion-alert-md{-webkit-padding-start:23px;padding-inline-start:23px;-webkit-padding-end:23px;padding-inline-end:23px;padding-top:20px;padding-bottom:15px;text-align:start}.alert-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1.25rem;font-weight:500}.alert-sub-title.sc-ion-alert-md{color:var(--ion-text-color, #000);font-size:1rem}.alert-message.sc-ion-alert-md,.alert-input-group.sc-ion-alert-md{-webkit-padding-start:24px;padding-inline-start:24px;-webkit-padding-end:24px;padding-inline-end:24px;padding-top:20px;padding-bottom:20px;color:var(--ion-color-step-550, var(--ion-text-color-step-450, #737373))}.alert-message.sc-ion-alert-md{font-size:1rem}@media screen and (max-width: 767px){.alert-message.sc-ion-alert-md{max-height:266px}}.alert-message.sc-ion-alert-md:empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.alert-head.sc-ion-alert-md+.alert-message.sc-ion-alert-md{padding-top:0}.alert-input.sc-ion-alert-md{margin-left:0;margin-right:0;margin-top:5px;margin-bottom:5px;border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));color:var(--ion-text-color, #000)}.alert-input.sc-ion-alert-md::-webkit-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-moz-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md:-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-input-placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::placeholder{color:var(--ion-placeholder-color, var(--ion-color-step-400, var(--ion-text-color-step-600, #999999)));font-family:inherit;font-weight:inherit}.alert-input.sc-ion-alert-md::-ms-clear{display:none}.alert-input.sc-ion-alert-md:focus{margin-bottom:4px;border-bottom:2px solid var(--ion-color-primary, #0054e9)}.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{position:relative;border-top:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));border-bottom:1px solid var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));overflow:auto}@media screen and (max-width: 767px){.alert-radio-group.sc-ion-alert-md,.alert-checkbox-group.sc-ion-alert-md{max-height:266px}}.alert-tappable.sc-ion-alert-md{position:relative;min-height:48px}.alert-radio-label.sc-ion-alert-md{-webkit-padding-start:52px;padding-inline-start:52px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-radio-icon.sc-ion-alert-md{top:0;border-radius:50%;display:block;position:relative;width:20px;height:20px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373))}.alert-radio-icon.sc-ion-alert-md{inset-inline-start:26px}.alert-radio-inner.sc-ion-alert-md{top:3px;border-radius:50%;position:absolute;width:10px;height:10px;-webkit-transform:scale3d(0, 0, 0);transform:scale3d(0, 0, 0);-webkit-transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1);transition:transform 280ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 280ms cubic-bezier(0.4, 0, 0.2, 1);background-color:var(--ion-color-primary, #0054e9)}.alert-radio-inner.sc-ion-alert-md{inset-inline-start:3px}[aria-checked=true].sc-ion-alert-md .alert-radio-label.sc-ion-alert-md{color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626))}[aria-checked=true].sc-ion-alert-md .alert-radio-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-radio-inner.sc-ion-alert-md{-webkit-transform:scale3d(1, 1, 1);transform:scale3d(1, 1, 1)}.alert-checkbox-label.sc-ion-alert-md{-webkit-padding-start:53px;padding-inline-start:53px;-webkit-padding-end:26px;padding-inline-end:26px;padding-top:13px;padding-bottom:13px;-ms-flex:1;flex:1;width:calc(100% - 53px);color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));font-size:1rem}.alert-checkbox-icon.sc-ion-alert-md{top:0;border-radius:2px;position:relative;width:16px;height:16px;border-width:2px;border-style:solid;border-color:var(--ion-color-step-550, var(--ion-background-color-step-550, #737373));contain:strict}.alert-checkbox-icon.sc-ion-alert-md{inset-inline-start:26px}[aria-checked=true].sc-ion-alert-md .alert-checkbox-icon.sc-ion-alert-md{border-color:var(--ion-color-primary, #0054e9);background-color:var(--ion-color-primary, #0054e9)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{top:0;position:absolute;width:6px;height:10px;-webkit-transform:rotate(45deg);transform:rotate(45deg);border-width:2px;border-top-width:0;border-left-width:0;border-style:solid;border-color:var(--ion-color-primary-contrast, #fff)}[aria-checked=true].sc-ion-alert-md .alert-checkbox-inner.sc-ion-alert-md{inset-inline-start:3px}.alert-button-group.sc-ion-alert-md{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-webkit-box-sizing:border-box;box-sizing:border-box;-ms-flex-wrap:wrap-reverse;flex-wrap:wrap-reverse;-ms-flex-pack:end;justify-content:flex-end}.alert-button.sc-ion-alert-md{border-radius:2px;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:0;margin-bottom:0;-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;color:var(--ion-color-primary, #0054e9);font-weight:500;text-align:end;text-transform:uppercase;overflow:hidden}.alert-button-inner.sc-ion-alert-md{-ms-flex-pack:end;justify-content:flex-end}@media screen and (min-width: 768px){.sc-ion-alert-md-h{--max-width:min(100vw - 96px, 560px);--max-height:min(100vh - 96px, 560px)}}`;
10828
10395
 
10829
10396
  // TODO(FW-2832): types
10830
10397
  /**
@@ -10998,7 +10565,22 @@ class Alert {
10998
10565
  this.inputType = inputTypes.values().next().value;
10999
10566
  this.processedInputs = inputs.map((i, index) => {
11000
10567
  var _a;
11001
- return Object.assign(Object.assign({}, i), { type: i.type || 'text', name: i.name || `${index}`, placeholder: i.placeholder || '', checked: !!i.checked, disabled: !!i.disabled, id: i.id || `alert-input-${this.overlayIndex}-${index}`, cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '', attributes: i.attributes || {}, tabindex: i.type === 'radio' && i !== focusable ? -1 : 0 });
10568
+ return ({
10569
+ type: i.type || 'text',
10570
+ name: i.name || `${index}`,
10571
+ placeholder: i.placeholder || '',
10572
+ value: i.value,
10573
+ label: i.label,
10574
+ checked: !!i.checked,
10575
+ disabled: !!i.disabled,
10576
+ id: i.id || `alert-input-${this.overlayIndex}-${index}`,
10577
+ handler: i.handler,
10578
+ min: i.min,
10579
+ max: i.max,
10580
+ cssClass: (_a = i.cssClass) !== null && _a !== void 0 ? _a : '',
10581
+ attributes: i.attributes || {},
10582
+ tabindex: i.type === 'radio' && i !== focusable ? -1 : 0,
10583
+ });
11002
10584
  });
11003
10585
  }
11004
10586
  connectedCallback() {
@@ -11026,10 +10608,6 @@ class Alert {
11026
10608
  this.gesture.destroy();
11027
10609
  this.gesture = undefined;
11028
10610
  }
11029
- // Clean up aria-hidden if removed without dismiss() being called
11030
- if (this.presented) {
11031
- cleanupRootFocusTrapAccessibility();
11032
- }
11033
10611
  (_a = this.buttonGroupResizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
11034
10612
  this.buttonGroupResizeObserver = undefined;
11035
10613
  }
@@ -11069,7 +10647,7 @@ class Alert {
11069
10647
  async present() {
11070
10648
  const unlock = await this.lockController.lock();
11071
10649
  await this.delegateController.attachViewToDom();
11072
- await present(this, 'alertEnter', iosEnterAnimation$4, mdEnterAnimation$4).then(() => {
10650
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
11073
10651
  var _a, _b;
11074
10652
  /**
11075
10653
  * Check if alert has only one button and no inputs.
@@ -11100,7 +10678,7 @@ class Alert {
11100
10678
  */
11101
10679
  async dismiss(data, role) {
11102
10680
  const unlock = await this.lockController.lock();
11103
- const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$4, mdLeaveAnimation$4);
10681
+ const dismissed = await dismiss(this, data, role, 'alertLeave', iosLeaveAnimation$5, mdLeaveAnimation$4);
11104
10682
  if (dismissed) {
11105
10683
  this.delegateController.removeViewFromDom();
11106
10684
  }
@@ -11198,61 +10776,14 @@ class Alert {
11198
10776
  if (inputs.length === 0) {
11199
10777
  return null;
11200
10778
  }
11201
- return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => {
11202
- var _a, _b;
11203
- /**
11204
- * Cast to `SelectAlertInput` to access rich content
11205
- * fields (`startContent`, `endContent`, `description`)
11206
- * that are passed through from `ion-select` but not
11207
- * part of the public `AlertInput` interface.
11208
- */
11209
- const richInput = i;
11210
- const optionLabelOptions = {
11211
- id: richInput.id,
11212
- label: richInput.label,
11213
- startContent: richInput.startContent,
11214
- endContent: richInput.endContent,
11215
- description: richInput.description,
11216
- };
11217
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
11218
- const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
11219
- return (hAsync("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: {
11220
- 'alert-button-inner': true,
11221
- [`checkbox-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
11222
- [`checkbox-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
11223
- } }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), renderOptionLabel(optionLabelOptions, 'alert-checkbox-label')), mode === 'md' && hAsync("ion-ripple-effect", null)));
11224
- })));
10779
+ return (hAsync("div", { class: "alert-checkbox-group" }, inputs.map((i) => (hAsync("button", { type: "button", onClick: () => this.cbClick(i), "aria-checked": `${i.checked}`, id: i.id, disabled: i.disabled, tabIndex: i.tabindex, role: "checkbox", class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-tappable': true, 'alert-checkbox': true, 'alert-checkbox-button': true, 'ion-focusable': true, 'alert-checkbox-button-disabled': i.disabled || false }) }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-checkbox-icon" }, hAsync("div", { class: "alert-checkbox-inner" })), hAsync("div", { class: "alert-checkbox-label" }, i.label)), mode === 'md' && hAsync("ion-ripple-effect", null))))));
11225
10780
  }
11226
10781
  renderRadio() {
11227
10782
  const inputs = this.processedInputs;
11228
- const mode = getIonMode$1(this);
11229
10783
  if (inputs.length === 0) {
11230
10784
  return null;
11231
10785
  }
11232
- return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => {
11233
- var _a, _b;
11234
- /**
11235
- * Cast to `SelectAlertInput` to access rich content
11236
- * fields (`startContent`, `endContent`, `description`)
11237
- * that are passed through from `ion-select` but not
11238
- * part of the public `AlertInput` interface.
11239
- */
11240
- const richInput = i;
11241
- const optionLabelOptions = {
11242
- id: richInput.id,
11243
- label: richInput.label,
11244
- startContent: richInput.startContent,
11245
- endContent: richInput.endContent,
11246
- description: richInput.description,
11247
- };
11248
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio');
11249
- const defaultJustify = getOverlayLabelJustify(mode, 'radio');
11250
- return (hAsync("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': !i.disabled, 'ion-activatable': !i.disabled, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: {
11251
- 'alert-button-inner': true,
11252
- [`radio-label-placement-${(_a = richInput.labelPlacement) !== null && _a !== void 0 ? _a : defaultLabelPlacement}`]: true,
11253
- [`radio-justify-${(_b = richInput.justify) !== null && _b !== void 0 ? _b : defaultJustify}`]: true,
11254
- } }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), renderOptionLabel(optionLabelOptions, 'alert-radio-label'))));
11255
- })));
10786
+ return (hAsync("div", { class: "alert-radio-group", role: "radiogroup", "aria-activedescendant": this.activeId }, inputs.map((i) => (hAsync("button", { type: "button", onClick: () => this.rbClick(i), "aria-checked": `${i.checked}`, disabled: i.disabled, id: i.id, tabIndex: i.tabindex, class: Object.assign(Object.assign({}, getClassMap(i.cssClass)), { 'alert-radio-button': true, 'alert-tappable': true, 'alert-radio': true, 'ion-focusable': true, 'alert-radio-button-disabled': i.disabled || false }), role: "radio" }, hAsync("div", { class: "alert-button-inner" }, hAsync("div", { class: "alert-radio-icon" }, hAsync("div", { class: "alert-radio-inner" })), hAsync("div", { class: "alert-radio-label" }, i.label)))))));
11256
10787
  }
11257
10788
  renderInput() {
11258
10789
  const inputs = this.processedInputs;
@@ -11332,7 +10863,7 @@ class Alert {
11332
10863
  'alert-button-group': true,
11333
10864
  'alert-button-group-vertical': buttons.length > 2 || this.isButtonGroupWrapped,
11334
10865
  };
11335
- return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$1(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
10866
+ return (hAsync("div", { class: alertButtonGroupClass, ref: (el) => (this.buttonGroupEl = el) }, buttons.map((button) => (hAsync("button", Object.assign({}, button.htmlAttributes, { type: "button", id: button.id, class: buttonClass$2(button), tabIndex: 0, onClick: () => this.buttonClick(button) }), hAsync("span", { class: "alert-button-inner" }, button.text), mode === 'md' && hAsync("ion-ripple-effect", null))))));
11336
10867
  }
11337
10868
  renderAlertMessage(msgId) {
11338
10869
  const { customHTMLEnabled, message } = this;
@@ -11355,9 +10886,9 @@ class Alert {
11355
10886
  * If neither are defined, do not set aria-labelledby.
11356
10887
  */
11357
10888
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
11358
- return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
10889
+ return (hAsync(Host, { key: '8d54ccd725ea634be080e67b56fa5efe498f496c', tabindex: "-1", style: {
11359
10890
  zIndex: `${20000 + overlayIndex}`,
11360
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), hAsync("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (hAsync("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
10891
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '05a238583342285545587de9dce144a82d779193', tappable: this.backdropDismiss }), hAsync("div", { key: 'e52c53fd9845e66781af01b2a788a291b45a927c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '8417e52eebca24ff436fab0703666db51072f980', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '5c560d4800b24d41961423718108b54be6cd6f91', class: "alert-head" }, header && (hAsync("h2", { key: '8637b64cd5125b2258115d1c11f3743113658608', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '7a4e61a02c29b16b336d8acaf6569b30de6fe71e', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '30844b6a0a7e3dab46514cd548ecffa86dcd59cb', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '39c824fee1e60ad8d6234c79d22ceb8bba8004af', tabindex: "0", "aria-hidden": "true" })));
11361
10892
  }
11362
10893
  get el() { return getElement(this); }
11363
10894
  static get watchers() { return {
@@ -11415,7 +10946,7 @@ const inputClass = (input) => {
11415
10946
  var _a, _b, _c;
11416
10947
  return Object.assign(Object.assign({ 'alert-input': true, 'alert-input-disabled': ((_b = (_a = input.attributes) === null || _a === void 0 ? void 0 : _a.disabled) !== null && _b !== void 0 ? _b : input.disabled) || false }, getClassMap(input.cssClass)), getClassMap(input.attributes ? (_c = input.attributes.class) === null || _c === void 0 ? void 0 : _c.toString() : ''));
11417
10948
  };
11418
- const buttonClass$1 = (button) => {
10949
+ const buttonClass$2 = (button) => {
11419
10950
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
11420
10951
  };
11421
10952
 
@@ -19200,8 +18731,6 @@ const createColorClasses = (color) => {
19200
18731
  const imgCss = () => `:host{display:block;-o-object-fit:contain;object-fit:contain}img{display:block;width:100%;height:100%;-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit}`;
19201
18732
 
19202
18733
  /**
19203
- * @deprecated
19204
- *
19205
18734
  * @part image - The inner `img` element.
19206
18735
  */
19207
18736
  class Img {
@@ -19225,8 +18754,6 @@ class Img {
19225
18754
  this.inheritedAttributes = inheritAttributes$1(this.el, ['draggable']);
19226
18755
  }
19227
18756
  componentDidLoad() {
19228
- printIonWarning('[ion-img] - This component is deprecated and will be removed in Ionic v10. ' +
19229
- 'Use a native <img> with the loading="lazy" attribute instead.', this.el);
19230
18757
  this.addIO();
19231
18758
  }
19232
18759
  disconnectedCallback() {
@@ -19279,7 +18806,7 @@ class Img {
19279
18806
  render() {
19280
18807
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
19281
18808
  const { draggable } = inheritedAttributes;
19282
- return (hAsync(Host, { key: '57bfb44d9850381fe7b6fcf0c9019b03f7ef86ec', class: getIonMode$1(this) }, hAsync("img", { key: '888ec06a266fa2751fc0147ede6a567f4e2b29a6', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
18809
+ return (hAsync(Host, { key: '9bfaa659b0680189fd29f3acb2fdce7f70be6060', class: getIonMode$1(this) }, hAsync("img", { key: 'd484beae0d5cbe0406958bfad40cdd6c05625340', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19283
18810
  }
19284
18811
  get el() { return getElement(this); }
19285
18812
  static get watchers() { return {
@@ -19783,7 +19310,7 @@ class Input {
19783
19310
  /**
19784
19311
  * Whether auto correction should be enabled when the user is entering/editing the text value.
19785
19312
  */
19786
- this.autocorrect = false;
19313
+ this.autocorrect = 'off';
19787
19314
  /**
19788
19315
  * Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
19789
19316
  *
@@ -20240,7 +19767,7 @@ class Input {
20240
19767
  * TODO(FW-5592): Remove hasStartEndSlots condition
20241
19768
  */
20242
19769
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
20243
- return (hAsync(Host, { key: '6a05f61339d8045285d5820c2508296cc842c210', class: createColorClasses$1(this.color, {
19770
+ return (hAsync(Host, { key: '9ba9cf425b573d2ca9ac34455a0e6b8474c4de6d', class: createColorClasses$1(this.color, {
20244
19771
  [mode]: true,
20245
19772
  'has-value': hasValue,
20246
19773
  'has-focus': hasFocus,
@@ -20251,14 +19778,14 @@ class Input {
20251
19778
  'in-item': inItem,
20252
19779
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20253
19780
  'input-disabled': disabled,
20254
- }) }, hAsync("label", { key: 'b546d66f53ea25082494e3a4cb0ce7532ee649d7', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '6af832f2b25fadee7a49adb999166dbc97565e2d', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'e7a8895038a8d2503f646acfda20c6c1a99c2839', name: "start" }), hAsync("input", Object.assign({ key: 'ce85703e0434a6322bb4275a924e3cd91c79fa20', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '1e59589fc89a37d7830dc915b4c19d26a8f568c7', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
19781
+ }) }, hAsync("label", { key: '74b989d0aa5ab38f29f952519868f05119df6005', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '47f2b42e2f74ea866b4f871026e08ab375d7a726', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: 'eaabe5a4a329a356cac3294d15c087d0d131fff2', name: "start" }), hAsync("input", Object.assign({ key: 'c821a984a8a9b7f96f30892c06d8deda093ff24b', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '62069c11016ee190dc46ab941372e1c4ad8a36ed', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
20255
19782
  /**
20256
19783
  * This prevents mobile browsers from
20257
19784
  * blurring the input when the clear
20258
19785
  * button is activated.
20259
19786
  */
20260
19787
  ev.preventDefault();
20261
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '7d443c5061bf6436d3b77a2444676c679b3e62e4', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5516f88d46886348217570ec1fadda0b79b63c01', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '2a1fdb7e7c974654dfbb3afb4fbfd9204e9d9092', class: "input-highlight" })), this.renderBottomContent()));
19788
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'dd75a516d32110d85382b664c663bd41f177ce12', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '330d4b9389f2c62223a5ee24003e96ef3e6b2473', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8e442bed130ddc84976ab70fd3f8578d6bcc6316', class: "input-highlight" })), this.renderBottomContent()));
20262
19789
  }
20263
19790
  get el() { return getElement(this); }
20264
19791
  static get watchers() { return {
@@ -20286,7 +19813,7 @@ class Input {
20286
19813
  "color": [513],
20287
19814
  "autocapitalize": [1],
20288
19815
  "autocomplete": [1],
20289
- "autocorrect": [4],
19816
+ "autocorrect": [1],
20290
19817
  "autofocus": [4],
20291
19818
  "clearInput": [4, "clear-input"],
20292
19819
  "clearInputIcon": [1, "clear-input-icon"],
@@ -22290,7 +21817,7 @@ class ListHeader {
22290
21817
  /**
22291
21818
  * iOS Loading Enter Animation
22292
21819
  */
22293
- const iosEnterAnimation$3 = (baseEl) => {
21820
+ const iosEnterAnimation$4 = (baseEl) => {
22294
21821
  const baseAnimation = createAnimation();
22295
21822
  const backdropAnimation = createAnimation();
22296
21823
  const wrapperAnimation = createAnimation();
@@ -22315,7 +21842,7 @@ const iosEnterAnimation$3 = (baseEl) => {
22315
21842
  /**
22316
21843
  * iOS Loading Leave Animation
22317
21844
  */
22318
- const iosLeaveAnimation$3 = (baseEl) => {
21845
+ const iosLeaveAnimation$4 = (baseEl) => {
22319
21846
  const baseAnimation = createAnimation();
22320
21847
  const backdropAnimation = createAnimation();
22321
21848
  const wrapperAnimation = createAnimation();
@@ -22488,10 +22015,6 @@ class Loading {
22488
22015
  }
22489
22016
  disconnectedCallback() {
22490
22017
  this.triggerController.removeClickListener();
22491
- // Clean up aria-hidden if removed without dismiss() being called
22492
- if (this.presented) {
22493
- cleanupRootFocusTrapAccessibility();
22494
- }
22495
22018
  }
22496
22019
  /**
22497
22020
  * Present the loading overlay after it has been created.
@@ -22499,7 +22022,7 @@ class Loading {
22499
22022
  async present() {
22500
22023
  const unlock = await this.lockController.lock();
22501
22024
  await this.delegateController.attachViewToDom();
22502
- await present(this, 'loadingEnter', iosEnterAnimation$3, mdEnterAnimation$3);
22025
+ await present(this, 'loadingEnter', iosEnterAnimation$4, mdEnterAnimation$3);
22503
22026
  if (this.duration > 0) {
22504
22027
  this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
22505
22028
  }
@@ -22522,7 +22045,7 @@ class Loading {
22522
22045
  if (this.durationTimeout) {
22523
22046
  clearTimeout(this.durationTimeout);
22524
22047
  }
22525
- const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$3, mdLeaveAnimation$3);
22048
+ const dismissed = await dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation$4, mdLeaveAnimation$3);
22526
22049
  if (dismissed) {
22527
22050
  this.delegateController.removeViewFromDom();
22528
22051
  }
@@ -22557,9 +22080,9 @@ class Loading {
22557
22080
  * Otherwise, don't set aria-labelledby.
22558
22081
  */
22559
22082
  const ariaLabelledBy = message !== undefined ? msgId : null;
22560
- return (hAsync(Host, Object.assign({ key: 'ab48bfcee8f7e3e33847a2f262fdc08b9ea804ca', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22083
+ return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22561
22084
  zIndex: `${40000 + this.overlayIndex}`,
22562
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '41baccc7fb6474389a3a3431c208e829ef738b75', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7b7290974abbe8db8739b19835aca9f8b5c271c2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e32466abfcc92aaad47ea03b1dcb49f66abe4b63', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'c5e6e6f9e3f39dba0225d08d7dd2c1b96a1d83c7', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f428038959d879404ea898011363aac0b807ad11', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '490e531367b86c319fa4260722dcff4dd631fa88', tabindex: "0", "aria-hidden": "true" })));
22085
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, hAsync("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
22563
22086
  }
22564
22087
  get el() { return getElement(this); }
22565
22088
  static get watchers() { return {
@@ -24540,8 +24063,15 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
24540
24063
  }
24541
24064
  return false;
24542
24065
  };
24066
+ /**
24067
+ * In Firefox, pressing over a text caret in the focusable wrapper can
24068
+ * start a native drag that swallows the gesture's pointer events.
24069
+ * Cancel native drag while the gesture is active.
24070
+ */
24071
+ const preventNativeDragStart = (ev) => ev.preventDefault();
24543
24072
  const onStart = (detail) => {
24544
24073
  const { deltaY } = detail;
24074
+ el.addEventListener('dragstart', preventNativeDragStart);
24545
24075
  /**
24546
24076
  * Get the initial scrollY value so
24547
24077
  * that we can correctly reset the scrollY
@@ -24644,6 +24174,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss, onD
24644
24174
  onDragMove(eventDetail);
24645
24175
  };
24646
24176
  const onEnd = (detail) => {
24177
+ el.removeEventListener('dragstart', preventNativeDragStart);
24647
24178
  const velocity = detail.velocityY;
24648
24179
  const step = detail.deltaY / height;
24649
24180
  const isAttemptingDismissWithCanDismiss = step >= 0 && canDismissBlocksGesture;
@@ -24833,7 +24364,7 @@ const createEnterAnimation$1 = () => {
24833
24364
  /**
24834
24365
  * iOS Modal Enter Animation for the Card presentation style
24835
24366
  */
24836
- const iosEnterAnimation$2 = (baseEl, opts) => {
24367
+ const iosEnterAnimation$3 = (baseEl, opts) => {
24837
24368
  const { presentingEl, currentBreakpoint, expandToScroll } = opts;
24838
24369
  const root = getElementRoot(baseEl);
24839
24370
  const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
@@ -24926,7 +24457,7 @@ const createLeaveAnimation$1 = () => {
24926
24457
  /**
24927
24458
  * iOS Modal Leave Animation
24928
24459
  */
24929
- const iosLeaveAnimation$2 = (baseEl, opts, duration = 500) => {
24460
+ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
24930
24461
  const { presentingEl, currentBreakpoint } = opts;
24931
24462
  const root = getElementRoot(baseEl);
24932
24463
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
@@ -25426,7 +24957,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
25426
24957
  }
25427
24958
  return true;
25428
24959
  };
24960
+ /**
24961
+ * In Firefox, pressing over a text caret in the focusable wrapper can
24962
+ * start a native drag that swallows the gesture's pointer events.
24963
+ * Cancel native drag while the gesture is active.
24964
+ */
24965
+ const preventNativeDragStart = (ev) => ev.preventDefault();
25429
24966
  const onStart = (detail) => {
24967
+ baseEl.addEventListener('dragstart', preventNativeDragStart);
25430
24968
  /**
25431
24969
  * If canDismiss is anything other than `true`
25432
24970
  * then users should be able to swipe down
@@ -25553,6 +25091,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
25553
25091
  onDragMove(eventDetail);
25554
25092
  };
25555
25093
  const onEnd = (detail) => {
25094
+ baseEl.removeEventListener('dragstart', preventNativeDragStart);
25556
25095
  const snapBreakpoint = calculateSnapBreakpoint(detail.deltaY);
25557
25096
  const eventDetail = {
25558
25097
  currentY: detail.currentY,
@@ -26029,9 +25568,9 @@ const clearSafeAreaOverrides = (hostEl) => {
26029
25568
  hostEl.style.removeProperty('--ion-safe-area-right');
26030
25569
  };
26031
25570
 
26032
- const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
25571
+ const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}`;
26033
25572
 
26034
- const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
25573
+ const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-wrapper{outline:none}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}`;
26035
25574
 
26036
25575
  // TODO(FW-2832): types
26037
25576
  /**
@@ -26101,20 +25640,13 @@ class Modal {
26101
25640
  /**
26102
25641
  * The interaction behavior for the sheet modal when the handle is pressed.
26103
25642
  *
26104
- * Handle behavior is unavailable when the `handle` property is set to
26105
- * `false` or when the `breakpoints` property is not set (using a
26106
- * fullscreen or card modal).
26107
- *
26108
- * Set to `"cycle"` to make the handle focusable and let the sheet modal
26109
- * cycle between available breakpoints when pressed. This keeps the sheet
26110
- * operable with assistive technology.
25643
+ * Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
25644
+ * Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
26111
25645
  *
26112
- * Set to `"none"` to make the handle purely decorative when pressed and
26113
- * removed from the tab order.
26114
- *
26115
- * Defaults to `"cycle"`.
25646
+ * Handle behavior is unavailable when the `handle` property is set to `false` or
25647
+ * when the `breakpoints` property is not set (using a fullscreen or card modal).
26116
25648
  */
26117
- this.handleBehavior = 'cycle';
25649
+ this.handleBehavior = 'none';
26118
25650
  /**
26119
25651
  * If `true`, the modal will be dismissed when the backdrop is clicked.
26120
25652
  */
@@ -26306,10 +25838,6 @@ class Modal {
26306
25838
  // Also called in dismiss() — intentional dual cleanup covers both
26307
25839
  // dismiss-then-remove and direct DOM removal without dismiss.
26308
25840
  this.cleanupSafeAreaOverrides();
26309
- // Clean up aria-hidden if removed without dismiss() being called
26310
- if (this.presented) {
26311
- cleanupRootFocusTrapAccessibility();
26312
- }
26313
25841
  }
26314
25842
  componentWillLoad() {
26315
25843
  var _a;
@@ -26486,7 +26014,7 @@ class Modal {
26486
26014
  this.statusBarStyle = await StatusBar.getStyle();
26487
26015
  setCardStatusBarDark();
26488
26016
  }
26489
- await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
26017
+ await present(this, 'modalEnter', iosEnterAnimation$3, mdEnterAnimation$2, {
26490
26018
  presentingEl: presentingElement,
26491
26019
  currentBreakpoint: this.initialBreakpoint,
26492
26020
  backdropBreakpoint: this.backdropBreakpoint,
@@ -26548,7 +26076,7 @@ class Modal {
26548
26076
  // All of the elements needed for the swipe gesture
26549
26077
  // should be in the DOM and referenced by now, except
26550
26078
  // for the presenting el
26551
- const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$2);
26079
+ const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
26552
26080
  const ani = (this.animation = animationBuilder(el, {
26553
26081
  presentingEl: this.presentingElement,
26554
26082
  expandToScroll: this.expandToScroll,
@@ -26567,7 +26095,7 @@ class Modal {
26567
26095
  if (!wrapperEl || initialBreakpoint === undefined) {
26568
26096
  return;
26569
26097
  }
26570
- const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$2);
26098
+ const animationBuilder = this.enterAnimation || config.get('modalEnter', iosEnterAnimation$3);
26571
26099
  const ani = (this.animation = animationBuilder(this.el, {
26572
26100
  presentingEl: this.presentingElement,
26573
26101
  currentBreakpoint: initialBreakpoint,
@@ -26757,7 +26285,7 @@ class Modal {
26757
26285
  window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
26758
26286
  this.keyboardOpenCallback = undefined;
26759
26287
  }
26760
- const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$2, mdLeaveAnimation$2, {
26288
+ const dismissed = await dismiss(this, data, role, 'modalLeave', iosLeaveAnimation$3, mdLeaveAnimation$2, {
26761
26289
  presentingEl: presentingElement,
26762
26290
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
26763
26291
  backdropBreakpoint: this.backdropBreakpoint,
@@ -27189,20 +26717,25 @@ class Modal {
27189
26717
  const isCardModal = presentingElement !== undefined && mode === 'ios';
27190
26718
  const isHandleCycle = handleBehavior === 'cycle';
27191
26719
  const isSheetModalWithHandle = isSheetModal && showHandle;
27192
- return (hAsync(Host, Object.assign({ key: '528f9e354f470e22563938e7531e3f23a97e4200', "no-router": true,
26720
+ return (hAsync(Host, Object.assign({ key: 'ab93657f4a5b4c97168d292b398d975e4b5b4af4', "no-router": true,
27193
26721
  // Allow the modal to be navigable when the handle is focusable
27194
26722
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
27195
26723
  zIndex: `${20000 + this.overlayIndex}`,
27196
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '53983c96bc6b30df89986c8d9c978a8e6f78fe80', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '34288a7343b7c47fed00d3abc73957f45f06d2fd', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'f9b37f547bd5c61037bbad1a71bfed80ba8c630b',
26724
+ }, 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: '871a7ba7389f477acb011fc3b1c0a27760d0bfa7',
27197
26725
  /*
27198
26726
  role and aria-modal must be used on the
27199
26727
  same element. They must also be set inside the
27200
26728
  shadow DOM otherwise ion-button will not be highlighted
27201
26729
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
26730
+
26731
+ tabIndex={-1} is required so present() can move focus to this
26732
+ element (which carries the dialog role) instead of the role-less
26733
+ host. role="dialog" alone does not make an element focusable, so
26734
+ without the tabindex focus() would be a no-op.
27202
26735
  */
27203
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b8741594108d3ea681ff41ff8f2241a4119578b1', class: "modal-handle",
26736
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '44017261773bc2593d451d2dc805ae83923e679c', class: "modal-handle",
27204
26737
  // Prevents the handle from receiving keyboard focus when it does not cycle
27205
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'bcc7960fae3fed09076c704d08c3afc46caa0738', onSlotchange: this.onSlotChange }))));
26738
+ 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: '006de71db3e69911ce6f4b10550ddb8aa0353997', onSlotchange: this.onSlotChange }))));
27206
26739
  }
27207
26740
  get el() { return getElement(this); }
27208
26741
  static get watchers() { return {
@@ -28285,14 +27818,14 @@ class Note {
28285
27818
  }; }
28286
27819
  }
28287
27820
 
28288
- 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)))}`;
27821
+ 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)))}`;
28289
27822
 
28290
- 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%)}`;
27823
+ 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%)}`;
28291
27824
 
28292
27825
  /**
28293
27826
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28294
27827
  */
28295
- class Picker {
27828
+ let Picker$1 = class Picker {
28296
27829
  constructor(hostRef) {
28297
27830
  registerInstance(this, hostRef);
28298
27831
  this.ionInputModeChange = createEvent(this, "ionInputModeChange", 7);
@@ -28758,8 +28291,8 @@ class Picker {
28758
28291
  }
28759
28292
  get el() { return getElement(this); }
28760
28293
  static get style() { return {
28761
- ios: pickerIosCss(),
28762
- md: pickerMdCss()
28294
+ ios: pickerIosCss$1(),
28295
+ md: pickerMdCss$1()
28763
28296
  }; }
28764
28297
  static get cmpMeta() { return {
28765
28298
  "$flags$": 297,
@@ -28771,44 +28304,359 @@ class Picker {
28771
28304
  "$lazyBundleId$": "-",
28772
28305
  "$attrsToReflect$": []
28773
28306
  }; }
28774
- }
28307
+ };
28775
28308
 
28776
- 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)}}`;
28309
+ /**
28310
+ * iOS Picker Enter Animation
28311
+ */
28312
+ const iosEnterAnimation$2 = (baseEl) => {
28313
+ const baseAnimation = createAnimation();
28314
+ const backdropAnimation = createAnimation();
28315
+ const wrapperAnimation = createAnimation();
28316
+ backdropAnimation
28317
+ .addElement(baseEl.querySelector('ion-backdrop'))
28318
+ .fromTo('opacity', 0.01, 'var(--backdrop-opacity)')
28319
+ .beforeStyles({
28320
+ 'pointer-events': 'none',
28321
+ })
28322
+ .afterClearStyles(['pointer-events']);
28323
+ wrapperAnimation
28324
+ .addElement(baseEl.querySelector('.picker-wrapper'))
28325
+ .fromTo('transform', 'translateY(100%)', 'translateY(0%)');
28326
+ return baseAnimation
28327
+ .addElement(baseEl)
28328
+ .easing('cubic-bezier(.36,.66,.04,1)')
28329
+ .duration(400)
28330
+ .addAnimation([backdropAnimation, wrapperAnimation]);
28331
+ };
28332
+
28333
+ /**
28334
+ * iOS Picker Leave Animation
28335
+ */
28336
+ const iosLeaveAnimation$2 = (baseEl) => {
28337
+ const baseAnimation = createAnimation();
28338
+ const backdropAnimation = createAnimation();
28339
+ const wrapperAnimation = createAnimation();
28340
+ backdropAnimation
28341
+ .addElement(baseEl.querySelector('ion-backdrop'))
28342
+ .fromTo('opacity', 'var(--backdrop-opacity)', 0.01);
28343
+ wrapperAnimation
28344
+ .addElement(baseEl.querySelector('.picker-wrapper'))
28345
+ .fromTo('transform', 'translateY(0%)', 'translateY(100%)');
28346
+ return baseAnimation
28347
+ .addElement(baseEl)
28348
+ .easing('cubic-bezier(.36,.66,.04,1)')
28349
+ .duration(400)
28350
+ .addAnimation([backdropAnimation, wrapperAnimation]);
28351
+ };
28352
+
28353
+ 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}`;
28777
28354
 
28355
+ 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}`;
28356
+
28357
+ // TODO(FW-2832): types
28778
28358
  /**
28779
28359
  * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28780
- *
28781
- * @slot prefix - Content to show on the left side of the picker options.
28782
- * @slot suffix - Content to show on the right side of the picker options.
28783
28360
  */
28784
- class PickerColumn {
28361
+ class Picker {
28785
28362
  constructor(hostRef) {
28786
28363
  registerInstance(this, hostRef);
28787
- this.ionChange = createEvent(this, "ionChange", 7);
28788
- this.isScrolling = false;
28789
- this.isColumnVisible = false;
28790
- this.canExitInputMode = true;
28791
- this.updateValueTextOnScroll = false;
28792
- this.ariaLabel = null;
28793
- this.isActive = false;
28364
+ this.didPresent = createEvent(this, "ionPickerDidPresent", 7);
28365
+ this.willPresent = createEvent(this, "ionPickerWillPresent", 7);
28366
+ this.willDismiss = createEvent(this, "ionPickerWillDismiss", 7);
28367
+ this.didDismiss = createEvent(this, "ionPickerDidDismiss", 7);
28368
+ this.didPresentShorthand = createEvent(this, "didPresent", 7);
28369
+ this.willPresentShorthand = createEvent(this, "willPresent", 7);
28370
+ this.willDismissShorthand = createEvent(this, "willDismiss", 7);
28371
+ this.didDismissShorthand = createEvent(this, "didDismiss", 7);
28372
+ this.delegateController = createDelegateController(this);
28373
+ this.lockController = createLockController();
28374
+ this.triggerController = createTriggerController();
28375
+ this.presented = false;
28376
+ /** @internal */
28377
+ this.hasController = false;
28794
28378
  /**
28795
- * If `true`, the user cannot interact with the picker.
28379
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
28796
28380
  */
28797
- this.disabled = false;
28381
+ this.keyboardClose = true;
28798
28382
  /**
28799
- * The color to use from your application's color palette.
28800
- * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
28801
- * For more information on colors, see [theming](/docs/theming/basics).
28383
+ * Array of buttons to be displayed at the top of the picker.
28802
28384
  */
28803
- this.color = 'primary';
28385
+ this.buttons = [];
28804
28386
  /**
28805
- * If `true`, tapping the picker will
28806
- * reveal a number input keyboard that lets
28807
- * the user type in values for each picker
28808
- * column. This is useful when working
28809
- * with time pickers.
28810
- *
28811
- * @internal
28387
+ * Array of columns to be displayed in the picker.
28388
+ */
28389
+ this.columns = [];
28390
+ /**
28391
+ * Number of milliseconds to wait before dismissing the picker.
28392
+ */
28393
+ this.duration = 0;
28394
+ /**
28395
+ * If `true`, a backdrop will be displayed behind the picker.
28396
+ */
28397
+ this.showBackdrop = true;
28398
+ /**
28399
+ * If `true`, the picker will be dismissed when the backdrop is clicked.
28400
+ */
28401
+ this.backdropDismiss = true;
28402
+ /**
28403
+ * If `true`, the picker will animate.
28404
+ */
28405
+ this.animated = true;
28406
+ /**
28407
+ * If `true`, the picker will open. If `false`, the picker will close.
28408
+ * Use this if you need finer grained control over presentation, otherwise
28409
+ * just use the pickerController or the `trigger` property.
28410
+ * Note: `isOpen` will not automatically be set back to `false` when
28411
+ * the picker dismisses. You will need to do that in your code.
28412
+ */
28413
+ this.isOpen = false;
28414
+ this.onBackdropTap = () => {
28415
+ this.dismiss(undefined, BACKDROP);
28416
+ };
28417
+ this.dispatchCancelHandler = (ev) => {
28418
+ const role = ev.detail.role;
28419
+ if (isCancel(role)) {
28420
+ const cancelButton = this.buttons.find((b) => b.role === 'cancel');
28421
+ this.callButtonHandler(cancelButton);
28422
+ }
28423
+ };
28424
+ }
28425
+ onIsOpenChange(newValue, oldValue) {
28426
+ if (newValue === true && oldValue === false) {
28427
+ this.present();
28428
+ }
28429
+ else if (newValue === false && oldValue === true) {
28430
+ this.dismiss();
28431
+ }
28432
+ }
28433
+ triggerChanged() {
28434
+ const { trigger, el, triggerController } = this;
28435
+ if (trigger) {
28436
+ triggerController.addClickListener(el, trigger);
28437
+ }
28438
+ }
28439
+ connectedCallback() {
28440
+ prepareOverlay(this.el);
28441
+ this.triggerChanged();
28442
+ }
28443
+ disconnectedCallback() {
28444
+ this.triggerController.removeClickListener();
28445
+ }
28446
+ componentWillLoad() {
28447
+ var _a;
28448
+ if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
28449
+ setOverlayId(this.el);
28450
+ }
28451
+ }
28452
+ componentDidLoad() {
28453
+ 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);
28454
+ /**
28455
+ * If picker was rendered with isOpen="true"
28456
+ * then we should open picker immediately.
28457
+ */
28458
+ if (this.isOpen === true) {
28459
+ raf(() => this.present());
28460
+ }
28461
+ /**
28462
+ * When binding values in frameworks such as Angular
28463
+ * it is possible for the value to be set after the Web Component
28464
+ * initializes but before the value watcher is set up in Stencil.
28465
+ * As a result, the watcher callback may not be fired.
28466
+ * We work around this by manually calling the watcher
28467
+ * callback when the component has loaded and the watcher
28468
+ * is configured.
28469
+ */
28470
+ this.triggerChanged();
28471
+ }
28472
+ /**
28473
+ * Present the picker overlay after it has been created.
28474
+ */
28475
+ async present() {
28476
+ const unlock = await this.lockController.lock();
28477
+ await this.delegateController.attachViewToDom();
28478
+ await present(this, 'pickerEnter', iosEnterAnimation$2, iosEnterAnimation$2, undefined);
28479
+ if (this.duration > 0) {
28480
+ this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
28481
+ }
28482
+ unlock();
28483
+ }
28484
+ /**
28485
+ * Dismiss the picker overlay after it has been presented.
28486
+ *
28487
+ * @param data Any data to emit in the dismiss events.
28488
+ * @param role The role of the element that is dismissing the picker.
28489
+ * This can be useful in a button handler for determining which button was
28490
+ * clicked to dismiss the picker.
28491
+ * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
28492
+ */
28493
+ async dismiss(data, role) {
28494
+ const unlock = await this.lockController.lock();
28495
+ if (this.durationTimeout) {
28496
+ clearTimeout(this.durationTimeout);
28497
+ }
28498
+ const dismissed = await dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation$2, iosLeaveAnimation$2);
28499
+ if (dismissed) {
28500
+ this.delegateController.removeViewFromDom();
28501
+ }
28502
+ unlock();
28503
+ return dismissed;
28504
+ }
28505
+ /**
28506
+ * Returns a promise that resolves when the picker did dismiss.
28507
+ */
28508
+ onDidDismiss() {
28509
+ return eventMethod(this.el, 'ionPickerDidDismiss');
28510
+ }
28511
+ /**
28512
+ * Returns a promise that resolves when the picker will dismiss.
28513
+ */
28514
+ onWillDismiss() {
28515
+ return eventMethod(this.el, 'ionPickerWillDismiss');
28516
+ }
28517
+ /**
28518
+ * Get the column that matches the specified name.
28519
+ *
28520
+ * @param name The name of the column.
28521
+ */
28522
+ getColumn(name) {
28523
+ return Promise.resolve(this.columns.find((column) => column.name === name));
28524
+ }
28525
+ async buttonClick(button) {
28526
+ const role = button.role;
28527
+ if (isCancel(role)) {
28528
+ return this.dismiss(undefined, role);
28529
+ }
28530
+ const shouldDismiss = await this.callButtonHandler(button);
28531
+ if (shouldDismiss) {
28532
+ return this.dismiss(this.getSelected(), button.role);
28533
+ }
28534
+ return Promise.resolve();
28535
+ }
28536
+ async callButtonHandler(button) {
28537
+ if (button) {
28538
+ // a handler has been provided, execute it
28539
+ // pass the handler the values from the inputs
28540
+ const rtn = await safeCall(button.handler, this.getSelected());
28541
+ if (rtn === false) {
28542
+ // if the return value of the handler is false then do not dismiss
28543
+ return false;
28544
+ }
28545
+ }
28546
+ return true;
28547
+ }
28548
+ getSelected() {
28549
+ const selected = {};
28550
+ this.columns.forEach((col, index) => {
28551
+ const selectedColumn = col.selectedIndex !== undefined ? col.options[col.selectedIndex] : undefined;
28552
+ selected[col.name] = {
28553
+ text: selectedColumn ? selectedColumn.text : undefined,
28554
+ value: selectedColumn ? selectedColumn.value : undefined,
28555
+ columnIndex: index,
28556
+ };
28557
+ });
28558
+ return selected;
28559
+ }
28560
+ render() {
28561
+ const { htmlAttributes } = this;
28562
+ const mode = getIonMode$1(this);
28563
+ return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
28564
+ zIndex: `${20000 + this.overlayIndex}`,
28565
+ }, class: Object.assign({ [mode]: true,
28566
+ // Used internally for styling
28567
+ [`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" })));
28568
+ }
28569
+ get el() { return getElement(this); }
28570
+ static get watchers() { return {
28571
+ "isOpen": [{
28572
+ "onIsOpenChange": 0
28573
+ }],
28574
+ "trigger": [{
28575
+ "triggerChanged": 0
28576
+ }]
28577
+ }; }
28578
+ static get style() { return {
28579
+ ios: pickerIosCss(),
28580
+ md: pickerMdCss()
28581
+ }; }
28582
+ static get cmpMeta() { return {
28583
+ "$flags$": 34,
28584
+ "$tagName$": "ion-picker-legacy",
28585
+ "$members$": {
28586
+ "overlayIndex": [2, "overlay-index"],
28587
+ "delegate": [16],
28588
+ "hasController": [4, "has-controller"],
28589
+ "keyboardClose": [4, "keyboard-close"],
28590
+ "enterAnimation": [16],
28591
+ "leaveAnimation": [16],
28592
+ "buttons": [16],
28593
+ "columns": [16],
28594
+ "cssClass": [1, "css-class"],
28595
+ "duration": [2],
28596
+ "showBackdrop": [4, "show-backdrop"],
28597
+ "backdropDismiss": [4, "backdrop-dismiss"],
28598
+ "animated": [4],
28599
+ "htmlAttributes": [16],
28600
+ "isOpen": [4, "is-open"],
28601
+ "trigger": [1],
28602
+ "presented": [32],
28603
+ "present": [64],
28604
+ "dismiss": [64],
28605
+ "onDidDismiss": [64],
28606
+ "onWillDismiss": [64],
28607
+ "getColumn": [64]
28608
+ },
28609
+ "$listeners$": undefined,
28610
+ "$lazyBundleId$": "-",
28611
+ "$attrsToReflect$": []
28612
+ }; }
28613
+ }
28614
+ const buttonWrapperClass = (button) => {
28615
+ return {
28616
+ [`picker-toolbar-${button.role}`]: button.role !== undefined,
28617
+ 'picker-toolbar-button': true,
28618
+ };
28619
+ };
28620
+ const buttonClass$1 = (button) => {
28621
+ return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
28622
+ };
28623
+
28624
+ 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)}}`;
28625
+
28626
+ /**
28627
+ * @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
28628
+ *
28629
+ * @slot prefix - Content to show on the left side of the picker options.
28630
+ * @slot suffix - Content to show on the right side of the picker options.
28631
+ */
28632
+ class PickerColumn {
28633
+ constructor(hostRef) {
28634
+ registerInstance(this, hostRef);
28635
+ this.ionChange = createEvent(this, "ionChange", 7);
28636
+ this.isScrolling = false;
28637
+ this.isColumnVisible = false;
28638
+ this.canExitInputMode = true;
28639
+ this.updateValueTextOnScroll = false;
28640
+ this.ariaLabel = null;
28641
+ this.isActive = false;
28642
+ /**
28643
+ * If `true`, the user cannot interact with the picker.
28644
+ */
28645
+ this.disabled = false;
28646
+ /**
28647
+ * The color to use from your application's color palette.
28648
+ * Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
28649
+ * For more information on colors, see [theming](/docs/theming/basics).
28650
+ */
28651
+ this.color = 'primary';
28652
+ /**
28653
+ * If `true`, tapping the picker will
28654
+ * reveal a number input keyboard that lets
28655
+ * the user type in values for each picker
28656
+ * column. This is useful when working
28657
+ * with time pickers.
28658
+ *
28659
+ * @internal
28812
28660
  */
28813
28661
  this.numericInput = false;
28814
28662
  this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
@@ -29267,96 +29115,461 @@ class PickerColumn {
29267
29115
  }
29268
29116
  }
29269
29117
  }
29270
- /** @internal */
29271
- async scrollActiveItemIntoView(smooth = false) {
29272
- const activeEl = this.activeItem;
29273
- if (activeEl) {
29274
- this.centerPickerItemInView(activeEl, smooth, false);
29118
+ /** @internal */
29119
+ async scrollActiveItemIntoView(smooth = false) {
29120
+ const activeEl = this.activeItem;
29121
+ if (activeEl) {
29122
+ this.centerPickerItemInView(activeEl, smooth, false);
29123
+ }
29124
+ }
29125
+ /**
29126
+ * Sets the value prop and fires the ionChange event.
29127
+ * This is used when we need to fire ionChange from
29128
+ * user-generated events that cannot be caught with normal
29129
+ * input/change event listeners.
29130
+ * @internal
29131
+ */
29132
+ async setValue(value) {
29133
+ if (this.disabled === true || this.value === value) {
29134
+ return;
29135
+ }
29136
+ this.value = value;
29137
+ this.ionChange.emit({ value });
29138
+ }
29139
+ /**
29140
+ * Sets focus on the scrollable container within the picker column.
29141
+ * Use this method instead of the global `pickerColumn.focus()`.
29142
+ */
29143
+ async setFocus() {
29144
+ if (this.assistiveFocusable) {
29145
+ this.assistiveFocusable.focus();
29146
+ }
29147
+ }
29148
+ connectedCallback() {
29149
+ var _a;
29150
+ this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
29151
+ }
29152
+ get activeItem() {
29153
+ const { value } = this;
29154
+ const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
29155
+ return options.find((option) => {
29156
+ /**
29157
+ * If the whole picker column is disabled, the current value should appear active
29158
+ * If the current value item is specifically disabled, it should not appear active
29159
+ */
29160
+ if (!this.disabled && option.disabled) {
29161
+ return false;
29162
+ }
29163
+ return option.value === value;
29164
+ });
29165
+ }
29166
+ render() {
29167
+ const { color, disabled, isActive, numericInput } = this;
29168
+ const mode = getIonMode$1(this);
29169
+ return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
29170
+ [mode]: true,
29171
+ ['picker-column-active']: isActive,
29172
+ ['picker-column-numeric-input']: numericInput,
29173
+ ['picker-column-disabled']: disabled,
29174
+ }) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
29175
+ this.scrollEl = el;
29176
+ }, 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" })));
29177
+ }
29178
+ get el() { return getElement(this); }
29179
+ static get watchers() { return {
29180
+ "aria-label": [{
29181
+ "ariaLabelChanged": 0
29182
+ }],
29183
+ "value": [{
29184
+ "valueChange": 0
29185
+ }]
29186
+ }; }
29187
+ static get style() { return pickerColumnCss(); }
29188
+ static get cmpMeta() { return {
29189
+ "$flags$": 265,
29190
+ "$tagName$": "ion-picker-column",
29191
+ "$members$": {
29192
+ "disabled": [4],
29193
+ "value": [1032],
29194
+ "color": [513],
29195
+ "numericInput": [4, "numeric-input"],
29196
+ "ariaLabel": [32],
29197
+ "isActive": [32],
29198
+ "scrollActiveItemIntoView": [64],
29199
+ "setValue": [64],
29200
+ "setFocus": [64]
29201
+ },
29202
+ "$listeners$": undefined,
29203
+ "$lazyBundleId$": "-",
29204
+ "$attrsToReflect$": [["color", "color"]]
29205
+ }; }
29206
+ }
29207
+ const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29208
+
29209
+ 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}}`;
29210
+
29211
+ 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)}`;
29212
+
29213
+ /**
29214
+ * @internal
29215
+ */
29216
+ class PickerColumnCmp {
29217
+ constructor(hostRef) {
29218
+ registerInstance(this, hostRef);
29219
+ this.ionPickerColChange = createEvent(this, "ionPickerColChange", 7);
29220
+ this.optHeight = 0;
29221
+ this.rotateFactor = 0;
29222
+ this.scaleFactor = 1;
29223
+ this.velocity = 0;
29224
+ this.y = 0;
29225
+ this.noAnimate = true;
29226
+ // `colDidChange` is a flag that gets set when the column is changed
29227
+ // dynamically. When this flag is set, the column will refresh
29228
+ // after the component re-renders to incorporate the new column data.
29229
+ // This is necessary because `this.refresh` queries for the option elements,
29230
+ // so it needs to wait for the latest elements to be available in the DOM.
29231
+ // Ex: column is created with 3 options. User updates the column data
29232
+ // to have 5 options. The column will still think it only has 3 options.
29233
+ this.colDidChange = false;
29234
+ }
29235
+ colChanged() {
29236
+ this.colDidChange = true;
29237
+ }
29238
+ async connectedCallback() {
29239
+ let pickerRotateFactor = 0;
29240
+ let pickerScaleFactor = 0.81;
29241
+ const mode = getIonMode$1(this);
29242
+ if (mode === 'ios') {
29243
+ pickerRotateFactor = -0.46;
29244
+ pickerScaleFactor = 1;
29245
+ }
29246
+ this.rotateFactor = pickerRotateFactor;
29247
+ this.scaleFactor = pickerScaleFactor;
29248
+ this.gesture = (await Promise.resolve().then(function () { return index; })).createGesture({
29249
+ el: this.el,
29250
+ gestureName: 'picker-swipe',
29251
+ gesturePriority: 100,
29252
+ threshold: 0,
29253
+ passive: false,
29254
+ onStart: (ev) => this.onStart(ev),
29255
+ onMove: (ev) => this.onMove(ev),
29256
+ onEnd: (ev) => this.onEnd(ev),
29257
+ });
29258
+ this.gesture.enable();
29259
+ // Options have not been initialized yet
29260
+ // Animation must be disabled through the `noAnimate` flag
29261
+ // Otherwise, the options will render
29262
+ // at the top of the column and transition down
29263
+ this.tmrId = setTimeout(() => {
29264
+ this.noAnimate = false;
29265
+ // After initialization, `refresh()` will be called
29266
+ // At this point, animation will be enabled. The options will
29267
+ // animate as they are being selected.
29268
+ this.refresh(true);
29269
+ }, 250);
29270
+ }
29271
+ componentDidLoad() {
29272
+ this.onDomChange();
29273
+ }
29274
+ componentDidUpdate() {
29275
+ // Options may have changed since last update.
29276
+ if (this.colDidChange) {
29277
+ // Animation must be disabled through the `onDomChange` parameter.
29278
+ // Otherwise, the recently added options will render
29279
+ // at the top of the column and transition down
29280
+ this.onDomChange(true, false);
29281
+ this.colDidChange = false;
29282
+ }
29283
+ }
29284
+ disconnectedCallback() {
29285
+ if (this.rafId !== undefined)
29286
+ cancelAnimationFrame(this.rafId);
29287
+ if (this.tmrId)
29288
+ clearTimeout(this.tmrId);
29289
+ if (this.gesture) {
29290
+ this.gesture.destroy();
29291
+ this.gesture = undefined;
29292
+ }
29293
+ }
29294
+ emitColChange() {
29295
+ this.ionPickerColChange.emit(this.col);
29296
+ }
29297
+ setSelected(selectedIndex, duration) {
29298
+ // if there is a selected index, then figure out it's y position
29299
+ // if there isn't a selected index, then just use the top y position
29300
+ const y = selectedIndex > -1 ? -(selectedIndex * this.optHeight) : 0;
29301
+ this.velocity = 0;
29302
+ // set what y position we're at
29303
+ if (this.rafId !== undefined)
29304
+ cancelAnimationFrame(this.rafId);
29305
+ this.update(y, duration, true);
29306
+ this.emitColChange();
29307
+ }
29308
+ update(y, duration, saveY) {
29309
+ if (!this.optsEl) {
29310
+ return;
29311
+ }
29312
+ // ensure we've got a good round number :)
29313
+ let translateY = 0;
29314
+ let translateZ = 0;
29315
+ const { col, rotateFactor } = this;
29316
+ const prevSelected = col.selectedIndex;
29317
+ const selectedIndex = (col.selectedIndex = this.indexForY(-y));
29318
+ const durationStr = duration === 0 ? '' : duration + 'ms';
29319
+ const scaleStr = `scale(${this.scaleFactor})`;
29320
+ const children = this.optsEl.children;
29321
+ for (let i = 0; i < children.length; i++) {
29322
+ const button = children[i];
29323
+ const opt = col.options[i];
29324
+ const optOffset = i * this.optHeight + y;
29325
+ let transform = '';
29326
+ if (rotateFactor !== 0) {
29327
+ const rotateX = optOffset * rotateFactor;
29328
+ if (Math.abs(rotateX) <= 90) {
29329
+ translateY = 0;
29330
+ translateZ = 90;
29331
+ transform = `rotateX(${rotateX}deg) `;
29332
+ }
29333
+ else {
29334
+ translateY = -9999;
29335
+ }
29336
+ }
29337
+ else {
29338
+ translateZ = 0;
29339
+ translateY = optOffset;
29340
+ }
29341
+ const selected = selectedIndex === i;
29342
+ transform += `translate3d(0px,${translateY}px,${translateZ}px) `;
29343
+ if (this.scaleFactor !== 1 && !selected) {
29344
+ transform += scaleStr;
29345
+ }
29346
+ // Update transition duration
29347
+ if (this.noAnimate) {
29348
+ opt.duration = 0;
29349
+ button.style.transitionDuration = '';
29350
+ }
29351
+ else if (duration !== opt.duration) {
29352
+ opt.duration = duration;
29353
+ button.style.transitionDuration = durationStr;
29354
+ }
29355
+ // Update transform
29356
+ if (transform !== opt.transform) {
29357
+ opt.transform = transform;
29358
+ }
29359
+ button.style.transform = transform;
29360
+ /**
29361
+ * Ensure that the select column
29362
+ * item has the selected class
29363
+ */
29364
+ opt.selected = selected;
29365
+ if (selected) {
29366
+ button.classList.add(PICKER_OPT_SELECTED);
29367
+ }
29368
+ else {
29369
+ button.classList.remove(PICKER_OPT_SELECTED);
29370
+ }
29371
+ }
29372
+ this.col.prevSelected = prevSelected;
29373
+ if (saveY) {
29374
+ this.y = y;
29375
+ }
29376
+ if (this.lastIndex !== selectedIndex) {
29377
+ // have not set a last index yet
29378
+ hapticSelectionChanged();
29379
+ this.lastIndex = selectedIndex;
29380
+ }
29381
+ }
29382
+ decelerate() {
29383
+ if (this.velocity !== 0) {
29384
+ // still decelerating
29385
+ this.velocity *= DECELERATION_FRICTION;
29386
+ // do not let it go slower than a velocity of 1
29387
+ this.velocity = this.velocity > 0 ? Math.max(this.velocity, 1) : Math.min(this.velocity, -1);
29388
+ let y = this.y + this.velocity;
29389
+ if (y > this.minY) {
29390
+ // whoops, it's trying to scroll up farther than the options we have!
29391
+ y = this.minY;
29392
+ this.velocity = 0;
29393
+ }
29394
+ else if (y < this.maxY) {
29395
+ // gahh, it's trying to scroll down farther than we can!
29396
+ y = this.maxY;
29397
+ this.velocity = 0;
29398
+ }
29399
+ this.update(y, 0, true);
29400
+ const notLockedIn = Math.round(y) % this.optHeight !== 0 || Math.abs(this.velocity) > 1;
29401
+ if (notLockedIn) {
29402
+ // isn't locked in yet, keep decelerating until it is
29403
+ this.rafId = requestAnimationFrame(() => this.decelerate());
29404
+ }
29405
+ else {
29406
+ this.velocity = 0;
29407
+ this.emitColChange();
29408
+ hapticSelectionEnd();
29409
+ }
29410
+ }
29411
+ else if (this.y % this.optHeight !== 0) {
29412
+ // needs to still get locked into a position so options line up
29413
+ const currentPos = Math.abs(this.y % this.optHeight);
29414
+ // create a velocity in the direction it needs to scroll
29415
+ this.velocity = currentPos > this.optHeight / 2 ? 1 : -1;
29416
+ this.decelerate();
29417
+ }
29418
+ }
29419
+ indexForY(y) {
29420
+ return Math.min(Math.max(Math.abs(Math.round(y / this.optHeight)), 0), this.col.options.length - 1);
29421
+ }
29422
+ onStart(detail) {
29423
+ // We have to prevent default in order to block scrolling under the picker
29424
+ // but we DO NOT have to stop propagation, since we still want
29425
+ // some "click" events to capture
29426
+ if (detail.event.cancelable) {
29427
+ detail.event.preventDefault();
29428
+ }
29429
+ detail.event.stopPropagation();
29430
+ hapticSelectionStart();
29431
+ // reset everything
29432
+ if (this.rafId !== undefined)
29433
+ cancelAnimationFrame(this.rafId);
29434
+ const options = this.col.options;
29435
+ let minY = options.length - 1;
29436
+ let maxY = 0;
29437
+ for (let i = 0; i < options.length; i++) {
29438
+ if (!options[i].disabled) {
29439
+ minY = Math.min(minY, i);
29440
+ maxY = Math.max(maxY, i);
29441
+ }
29442
+ }
29443
+ this.minY = -(minY * this.optHeight);
29444
+ this.maxY = -(maxY * this.optHeight);
29445
+ }
29446
+ onMove(detail) {
29447
+ if (detail.event.cancelable) {
29448
+ detail.event.preventDefault();
29449
+ }
29450
+ detail.event.stopPropagation();
29451
+ // update the scroll position relative to pointer start position
29452
+ let y = this.y + detail.deltaY;
29453
+ if (y > this.minY) {
29454
+ // scrolling up higher than scroll area
29455
+ y = Math.pow(y, 0.8);
29456
+ this.bounceFrom = y;
29457
+ }
29458
+ else if (y < this.maxY) {
29459
+ // scrolling down below scroll area
29460
+ y += Math.pow(this.maxY - y, 0.9);
29461
+ this.bounceFrom = y;
29462
+ }
29463
+ else {
29464
+ this.bounceFrom = 0;
29465
+ }
29466
+ this.update(y, 0, false);
29467
+ }
29468
+ onEnd(detail) {
29469
+ if (this.bounceFrom > 0) {
29470
+ // bounce back up
29471
+ this.update(this.minY, 100, true);
29472
+ this.emitColChange();
29473
+ return;
29275
29474
  }
29276
- }
29277
- /**
29278
- * Sets the value prop and fires the ionChange event.
29279
- * This is used when we need to fire ionChange from
29280
- * user-generated events that cannot be caught with normal
29281
- * input/change event listeners.
29282
- * @internal
29283
- */
29284
- async setValue(value) {
29285
- if (this.disabled === true || this.value === value) {
29475
+ else if (this.bounceFrom < 0) {
29476
+ // bounce back down
29477
+ this.update(this.maxY, 100, true);
29478
+ this.emitColChange();
29286
29479
  return;
29287
29480
  }
29288
- this.value = value;
29289
- this.ionChange.emit({ value });
29290
- }
29291
- /**
29292
- * Sets focus on the scrollable container within the picker column.
29293
- * Use this method instead of the global `pickerColumn.focus()`.
29294
- */
29295
- async setFocus() {
29296
- if (this.assistiveFocusable) {
29297
- this.assistiveFocusable.focus();
29481
+ this.velocity = clamp(-MAX_PICKER_SPEED, detail.velocityY * 23, MAX_PICKER_SPEED);
29482
+ if (this.velocity === 0 && detail.deltaY === 0) {
29483
+ const opt = detail.event.target.closest('.picker-opt');
29484
+ if (opt === null || opt === void 0 ? void 0 : opt.hasAttribute('opt-index')) {
29485
+ this.setSelected(parseInt(opt.getAttribute('opt-index'), 10), TRANSITION_DURATION);
29486
+ }
29487
+ }
29488
+ else {
29489
+ this.y += detail.deltaY;
29490
+ if (Math.abs(detail.velocityY) < 0.05) {
29491
+ const isScrollingUp = detail.deltaY > 0;
29492
+ const optHeightFraction = (Math.abs(this.y) % this.optHeight) / this.optHeight;
29493
+ if (isScrollingUp && optHeightFraction > 0.5) {
29494
+ this.velocity = Math.abs(this.velocity) * -1;
29495
+ }
29496
+ else if (!isScrollingUp && optHeightFraction <= 0.5) {
29497
+ this.velocity = Math.abs(this.velocity);
29498
+ }
29499
+ }
29500
+ this.decelerate();
29298
29501
  }
29299
29502
  }
29300
- connectedCallback() {
29503
+ refresh(forceRefresh, animated) {
29301
29504
  var _a;
29302
- this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
29303
- }
29304
- get activeItem() {
29305
- const { value } = this;
29306
- const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
29307
- return options.find((option) => {
29308
- /**
29309
- * If the whole picker column is disabled, the current value should appear active
29310
- * If the current value item is specifically disabled, it should not appear active
29311
- */
29312
- if (!this.disabled && option.disabled) {
29313
- return false;
29505
+ let min = this.col.options.length - 1;
29506
+ let max = 0;
29507
+ const options = this.col.options;
29508
+ for (let i = 0; i < options.length; i++) {
29509
+ if (!options[i].disabled) {
29510
+ min = Math.min(min, i);
29511
+ max = Math.max(max, i);
29314
29512
  }
29315
- return option.value === value;
29316
- });
29513
+ }
29514
+ /**
29515
+ * Only update selected value if column has a
29516
+ * velocity of 0. If it does not, then the
29517
+ * column is animating might land on
29518
+ * a value different than the value at
29519
+ * selectedIndex
29520
+ */
29521
+ if (this.velocity !== 0) {
29522
+ return;
29523
+ }
29524
+ const selectedIndex = clamp(min, (_a = this.col.selectedIndex) !== null && _a !== void 0 ? _a : 0, max);
29525
+ if (this.col.prevSelected !== selectedIndex || forceRefresh) {
29526
+ const y = selectedIndex * this.optHeight * -1;
29527
+ const duration = animated ? TRANSITION_DURATION : 0;
29528
+ this.velocity = 0;
29529
+ this.update(y, duration, true);
29530
+ }
29531
+ }
29532
+ onDomChange(forceRefresh, animated) {
29533
+ const colEl = this.optsEl;
29534
+ if (colEl) {
29535
+ // DOM READ
29536
+ // We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
29537
+ this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
29538
+ }
29539
+ this.refresh(forceRefresh, animated);
29317
29540
  }
29318
29541
  render() {
29319
- const { color, disabled, isActive, numericInput } = this;
29542
+ const col = this.col;
29320
29543
  const mode = getIonMode$1(this);
29321
- return (hAsync(Host, { key: '234c96a501d7ac413b9b0ea56b33017681e25b40', class: createColorClasses$1(color, {
29322
- [mode]: true,
29323
- ['picker-column-active']: isActive,
29324
- ['picker-column-numeric-input']: numericInput,
29325
- ['picker-column-disabled']: disabled,
29326
- }) }, hAsync("slot", { key: '9dc15ea0601ddd2cb2e0a745e91e036a8bd96f8b', name: "prefix" }), hAsync("div", { key: 'de4fe28ee4bc46b7c0420d6ab0df0e7809443da9', class: "picker-opts", ref: (el) => {
29327
- this.scrollEl = el;
29328
- }, 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" })));
29544
+ 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: {
29545
+ 'max-width': this.col.columnWidth,
29546
+ } }, 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))));
29329
29547
  }
29330
29548
  get el() { return getElement(this); }
29331
29549
  static get watchers() { return {
29332
- "aria-label": [{
29333
- "ariaLabelChanged": 0
29334
- }],
29335
- "value": [{
29336
- "valueChange": 0
29550
+ "col": [{
29551
+ "colChanged": 0
29337
29552
  }]
29338
29553
  }; }
29339
- static get style() { return pickerColumnCss(); }
29554
+ static get style() { return {
29555
+ ios: pickerColumnIosCss(),
29556
+ md: pickerColumnMdCss()
29557
+ }; }
29340
29558
  static get cmpMeta() { return {
29341
- "$flags$": 265,
29342
- "$tagName$": "ion-picker-column",
29559
+ "$flags$": 32,
29560
+ "$tagName$": "ion-picker-legacy-column",
29343
29561
  "$members$": {
29344
- "disabled": [4],
29345
- "value": [1032],
29346
- "color": [513],
29347
- "numericInput": [4, "numeric-input"],
29348
- "ariaLabel": [32],
29349
- "isActive": [32],
29350
- "scrollActiveItemIntoView": [64],
29351
- "setValue": [64],
29352
- "setFocus": [64]
29562
+ "col": [16]
29353
29563
  },
29354
29564
  "$listeners$": undefined,
29355
29565
  "$lazyBundleId$": "-",
29356
- "$attrsToReflect$": [["color", "color"]]
29566
+ "$attrsToReflect$": []
29357
29567
  }; }
29358
29568
  }
29359
- const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
29569
+ const PICKER_OPT_SELECTED = 'picker-opt-selected';
29570
+ const DECELERATION_FRICTION = 0.97;
29571
+ const MAX_PICKER_SPEED = 90;
29572
+ const TRANSITION_DURATION = 150;
29360
29573
 
29361
29574
  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}`;
29362
29575
 
@@ -30553,9 +30766,9 @@ const mdLeaveAnimation$1 = (baseEl) => {
30553
30766
  .addAnimation([backdropAnimation, wrapperAnimation]);
30554
30767
  };
30555
30768
 
30556
- 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)}}`;
30769
+ 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)}}`;
30557
30770
 
30558
- 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}`;
30771
+ 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}`;
30559
30772
 
30560
30773
  // TODO(FW-2832): types
30561
30774
  /**
@@ -30779,10 +30992,6 @@ class Popover {
30779
30992
  this.headerResizeObserver.disconnect();
30780
30993
  this.headerResizeObserver = undefined;
30781
30994
  }
30782
- // Clean up aria-hidden if removed without dismiss() being called
30783
- if (this.presented) {
30784
- cleanupRootFocusTrapAccessibility();
30785
- }
30786
30995
  }
30787
30996
  componentWillLoad() {
30788
30997
  var _a, _b;
@@ -31021,9 +31230,9 @@ class Popover {
31021
31230
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
31022
31231
  const desktop = isPlatform('desktop');
31023
31232
  const enableArrow = arrow && !parentPopover;
31024
- return (hAsync(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31233
+ return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
31025
31234
  zIndex: `${20000 + this.overlayIndex}`,
31026
- }, 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' })))));
31235
+ }, 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' })))));
31027
31236
  }
31028
31237
  get el() { return getElement(this); }
31029
31238
  static get watchers() { return {
@@ -31134,7 +31343,7 @@ class ProgressBar {
31134
31343
  const mode = getIonMode$1(this);
31135
31344
  // If the progress is displayed as a solid bar.
31136
31345
  const progressSolid = buffer === 1;
31137
- return (hAsync(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31346
+ return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
31138
31347
  [mode]: true,
31139
31348
  [`progress-bar-${type}`]: true,
31140
31349
  'progress-paused': paused,
@@ -31319,7 +31528,7 @@ class Radio {
31319
31528
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
31320
31529
  const mode = getIonMode$1(this);
31321
31530
  const inItem = hostContext('ion-item', el);
31322
- return (hAsync(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31531
+ return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
31323
31532
  [mode]: true,
31324
31533
  'in-item': inItem,
31325
31534
  'radio-checked': checked,
@@ -31330,10 +31539,10 @@ class Radio {
31330
31539
  // Focus and active styling should not apply when the radio is in an item
31331
31540
  'ion-activatable': !inItem,
31332
31541
  'ion-focusable': !inItem,
31333
- }), 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: {
31542
+ }), 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: {
31334
31543
  'label-text-wrapper': true,
31335
31544
  'label-text-wrapper-hidden': !hasLabel,
31336
- }, part: "label" }, hAsync("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), hAsync("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
31545
+ }, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
31337
31546
  }
31338
31547
  get el() { return getElement(this); }
31339
31548
  static get watchers() { return {
@@ -31352,7 +31561,7 @@ class Radio {
31352
31561
  "color": [513],
31353
31562
  "name": [1],
31354
31563
  "disabled": [4],
31355
- "value": [520],
31564
+ "value": [8],
31356
31565
  "labelPlacement": [1, "label-placement"],
31357
31566
  "justify": [1],
31358
31567
  "alignment": [1],
@@ -31363,7 +31572,7 @@ class Radio {
31363
31572
  },
31364
31573
  "$listeners$": undefined,
31365
31574
  "$lazyBundleId$": "-",
31366
- "$attrsToReflect$": [["color", "color"], ["value", "value"]]
31575
+ "$attrsToReflect$": [["color", "color"]]
31367
31576
  }; }
31368
31577
  }
31369
31578
  let radioButtonIds = 0;
@@ -32428,7 +32637,7 @@ class Range {
32428
32637
  const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
32429
32638
  const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
32430
32639
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
32431
- return (hAsync(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32640
+ return (hAsync(Host, { key: 'f8063d1234fb113fe55a7902845dd4b4da8b1edb', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
32432
32641
  [mode]: true,
32433
32642
  'in-item': inItem,
32434
32643
  'range-disabled': disabled,
@@ -32442,10 +32651,10 @@ class Range {
32442
32651
  'range-item-end-adjustment': needsEndAdjustment,
32443
32652
  'range-value-min': valueAtMin,
32444
32653
  'range-value-max': valueAtMax,
32445
- }) }, hAsync("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
32654
+ }) }, hAsync("label", { key: 'beead65ab01e3b18e4be59c0ee8ac6ebf32aad7c', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '03633c689d9d2e4c50a2131bcd560329df49e314', class: {
32446
32655
  'label-text-wrapper': true,
32447
32656
  'label-text-wrapper-hidden': !hasLabel,
32448
- }, 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" })))));
32657
+ }, 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" })))));
32449
32658
  }
32450
32659
  get el() { return getElement(this); }
32451
32660
  static get watchers() { return {
@@ -33516,7 +33725,7 @@ class Refresher {
33516
33725
  }
33517
33726
  render() {
33518
33727
  const mode = getIonMode$1(this);
33519
- return (hAsync(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
33728
+ return (hAsync(Host, { key: '80fa313b0d77161680836bdd6aa334d02c549b41', slot: "fixed", class: {
33520
33729
  [mode]: true,
33521
33730
  // Used internally for styling
33522
33731
  [`refresher-${mode}`]: true,
@@ -33742,7 +33951,7 @@ class RefresherContent {
33742
33951
  const pullingIcon = this.pullingIcon;
33743
33952
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
33744
33953
  const mode = getIonMode$1(this);
33745
- 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())));
33954
+ 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())));
33746
33955
  }
33747
33956
  get el() { return getElement(this); }
33748
33957
  static get cmpMeta() { return {
@@ -33783,7 +33992,7 @@ class Reorder {
33783
33992
  render() {
33784
33993
  const mode = getIonMode$1(this);
33785
33994
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
33786
- 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" }))));
33995
+ 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" }))));
33787
33996
  }
33788
33997
  get el() { return getElement(this); }
33789
33998
  static get style() { return {
@@ -34054,7 +34263,7 @@ class ReorderGroup {
34054
34263
  }
34055
34264
  render() {
34056
34265
  const mode = getIonMode$1(this);
34057
- return (hAsync(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
34266
+ return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
34058
34267
  [mode]: true,
34059
34268
  'reorder-enabled': !this.disabled,
34060
34269
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -34172,7 +34381,7 @@ class RippleEffect {
34172
34381
  }
34173
34382
  render() {
34174
34383
  const mode = getIonMode$1(this);
34175
- return (hAsync(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
34384
+ return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
34176
34385
  [mode]: true,
34177
34386
  unbounded: this.unbounded,
34178
34387
  } }));
@@ -35306,10 +35515,10 @@ class RouterLink {
35306
35515
  rel: this.rel,
35307
35516
  target: this.target,
35308
35517
  };
35309
- return (hAsync(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses$1(this.color, {
35518
+ return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
35310
35519
  [mode]: true,
35311
35520
  'ion-activatable': true,
35312
- }) }, hAsync("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), hAsync("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
35521
+ }) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
35313
35522
  }
35314
35523
  static get style() { return routerLinkCss(); }
35315
35524
  static get cmpMeta() { return {
@@ -35348,11 +35557,10 @@ class RouterOutlet {
35348
35557
  */
35349
35558
  this.animated = true;
35350
35559
  }
35351
- swipeGestureChanged() {
35352
- this.updateGestureEnabled();
35353
- }
35354
35560
  swipeHandlerChanged() {
35355
- this.updateGestureEnabled();
35561
+ if (this.gesture) {
35562
+ this.gesture.enable(this.swipeHandler !== undefined);
35563
+ }
35356
35564
  }
35357
35565
  async connectedCallback() {
35358
35566
  const onStart = () => {
@@ -35392,21 +35600,11 @@ class RouterOutlet {
35392
35600
  this.gestureOrAnimationInProgress = false;
35393
35601
  }
35394
35602
  });
35395
- if (this.swipeGesture === undefined) {
35396
- this.swipeGesture = config.getBoolean('swipeBackEnabled', this.mode === 'ios');
35397
- }
35398
- else {
35399
- this.updateGestureEnabled();
35400
- }
35603
+ this.swipeHandlerChanged();
35401
35604
  }
35402
35605
  componentWillLoad() {
35403
35606
  this.ionNavWillLoad.emit();
35404
35607
  }
35405
- updateGestureEnabled() {
35406
- if (this.gesture) {
35407
- this.gesture.enable(this.swipeHandler !== undefined && this.swipeGesture === true);
35408
- }
35409
- }
35410
35608
  disconnectedCallback() {
35411
35609
  if (this.gesture) {
35412
35610
  this.gesture.destroy();
@@ -35517,13 +35715,10 @@ class RouterOutlet {
35517
35715
  return true;
35518
35716
  }
35519
35717
  render() {
35520
- return hAsync("slot", { key: 'ce09e6fbba7b0a2276cdde5245bb37c9a162c1c7' });
35718
+ return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
35521
35719
  }
35522
35720
  get el() { return getElement(this); }
35523
35721
  static get watchers() { return {
35524
- "swipeGesture": [{
35525
- "swipeGestureChanged": 0
35526
- }],
35527
35722
  "swipeHandler": [{
35528
35723
  "swipeHandlerChanged": 0
35529
35724
  }]
@@ -35537,7 +35732,6 @@ class RouterOutlet {
35537
35732
  "delegate": [16],
35538
35733
  "animated": [4],
35539
35734
  "animation": [16],
35540
- "swipeGesture": [1028, "swipe-gesture"],
35541
35735
  "swipeHandler": [16],
35542
35736
  "commit": [64],
35543
35737
  "setRouteId": [64],
@@ -35556,7 +35750,7 @@ class Row {
35556
35750
  registerInstance(this, hostRef);
35557
35751
  }
35558
35752
  render() {
35559
- return (hAsync(Host, { key: 'a9066661fff12baaf3e80b2e8c08591af72fe5b8', class: getIonMode$1(this) }, hAsync("slot", { key: '62b103af46d3a5ec9c146019ae300b68a4ae867a' })));
35753
+ return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
35560
35754
  }
35561
35755
  static get style() { return rowCss(); }
35562
35756
  static get cmpMeta() { return {
@@ -35608,7 +35802,7 @@ class Searchbar {
35608
35802
  /**
35609
35803
  * Set the input's autocorrect property.
35610
35804
  */
35611
- this.autocorrect = false;
35805
+ this.autocorrect = 'off';
35612
35806
  /**
35613
35807
  * Set the cancel button icon. Only applies to `md` mode.
35614
35808
  * Defaults to `arrow-back-sharp`.
@@ -36029,8 +36223,8 @@ class Searchbar {
36029
36223
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
36030
36224
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
36031
36225
  const shouldShowCancelButton = this.shouldShowCancelButton();
36032
- 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))));
36033
- return (hAsync(Host, { key: '1b4f6c4e7dffb02e092f0026ce3875822d98a631', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36226
+ 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))));
36227
+ return (hAsync(Host, { key: '237dd767403dba3cb3d7de8905996e275669da3b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
36034
36228
  [mode]: true,
36035
36229
  'searchbar-animated': animated,
36036
36230
  'searchbar-disabled': this.disabled,
@@ -36040,14 +36234,14 @@ class Searchbar {
36040
36234
  'searchbar-has-focus': this.focused,
36041
36235
  'searchbar-should-show-clear': this.shouldShowClearButton(),
36042
36236
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
36043
- }) }, 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) => {
36237
+ }) }, 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) => {
36044
36238
  /**
36045
36239
  * This prevents mobile browsers from
36046
36240
  * blurring the input when the clear
36047
36241
  * button is activated.
36048
36242
  */
36049
36243
  ev.preventDefault();
36050
- }, 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));
36244
+ }, 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));
36051
36245
  }
36052
36246
  get el() { return getElement(this); }
36053
36247
  static get watchers() { return {
@@ -36079,7 +36273,7 @@ class Searchbar {
36079
36273
  "animated": [4],
36080
36274
  "autocapitalize": [1],
36081
36275
  "autocomplete": [1],
36082
- "autocorrect": [4],
36276
+ "autocorrect": [1],
36083
36277
  "cancelButtonIcon": [1, "cancel-button-icon"],
36084
36278
  "cancelButtonText": [1, "cancel-button-text"],
36085
36279
  "clearIcon": [1, "clear-icon"],
@@ -36656,14 +36850,14 @@ class Segment {
36656
36850
  }
36657
36851
  render() {
36658
36852
  const mode = getIonMode$1(this);
36659
- return (hAsync(Host, { key: 'bb626072e73f09c3433e1a769e09789a00822d8f', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36853
+ return (hAsync(Host, { key: 'eda6b7b88b7967b55cf9098c59b655b348a42224', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
36660
36854
  [mode]: true,
36661
36855
  'in-toolbar': hostContext('ion-toolbar', this.el),
36662
36856
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
36663
36857
  'segment-activated': this.activated,
36664
36858
  'segment-disabled': this.disabled,
36665
36859
  'segment-scrollable': this.scrollable,
36666
- }) }, hAsync("slot", { key: '652d5037c2c2dee4d47a5710b1d150e691202d25', onSlotchange: this.onSlottedItemsChange })));
36860
+ }) }, hAsync("slot", { key: 'fdb451f235ce59c5bb50c61a13c69160ece2d5df', onSlotchange: this.onSlottedItemsChange })));
36667
36861
  }
36668
36862
  get el() { return getElement(this); }
36669
36863
  static get watchers() { return {
@@ -36811,7 +37005,7 @@ class SegmentButton {
36811
37005
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
36812
37006
  const mode = getIonMode$1(this);
36813
37007
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
36814
- return (hAsync(Host, { key: '792f621c36260b1fceff2b4ec4fa95d98d51d46b', class: {
37008
+ return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
36815
37009
  [mode]: true,
36816
37010
  'in-toolbar': hostContext('ion-toolbar', this.el),
36817
37011
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -36827,7 +37021,7 @@ class SegmentButton {
36827
37021
  'ion-activatable': true,
36828
37022
  'ion-activatable-instant': true,
36829
37023
  'ion-focusable': true,
36830
- } }, 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" }))));
37024
+ } }, 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" }))));
36831
37025
  }
36832
37026
  get el() { return getElement(this); }
36833
37027
  static get watchers() { return {
@@ -36864,7 +37058,7 @@ class SegmentContent {
36864
37058
  registerInstance(this, hostRef);
36865
37059
  }
36866
37060
  render() {
36867
- return (hAsync(Host, { key: 'ef39f29c444177c3b083cd35680ba891e4bb6a2a' }, hAsync("slot", { key: '51f9dd9ca084ddd928b376aa9d716509669c32b2' })));
37061
+ return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
36868
37062
  }
36869
37063
  static get style() { return segmentContentCss(); }
36870
37064
  static get cmpMeta() { return {
@@ -36983,11 +37177,11 @@ class SegmentView {
36983
37177
  }
36984
37178
  render() {
36985
37179
  const { disabled, isManualScroll, swipeGesture } = this;
36986
- return (hAsync(Host, { key: 'a6c6ac0232c4bb6f2a954b3de7993019d71f423a', class: {
37180
+ return (hAsync(Host, { key: '2a6e0a1046af75b1fa0eed20a5fbbb4634480297', class: {
36987
37181
  'segment-view-disabled': disabled,
36988
37182
  'segment-view-scroll-disabled': isManualScroll === false,
36989
37183
  'segment-view-swipe-disabled': swipeGesture === false,
36990
- } }, hAsync("slot", { key: '386305be2a75069c79def12005d9f6b49276763f' })));
37184
+ } }, hAsync("slot", { key: '644b60d179d0de3fa204e3bef26a3503ceeaf1d6' })));
36991
37185
  }
36992
37186
  get el() { return getElement(this); }
36993
37187
  static get style() { return {
@@ -37009,9 +37203,9 @@ class SegmentView {
37009
37203
  }; }
37010
37204
  }
37011
37205
 
37012
- 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}`;
37206
+ 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}`;
37013
37207
 
37014
- 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}`;
37208
+ 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}`;
37015
37209
 
37016
37210
  // TODO(FW-2832): types
37017
37211
  /**
@@ -37046,7 +37240,6 @@ class Select {
37046
37240
  this.helperTextId = `${this.inputId}-helper-text`;
37047
37241
  this.errorTextId = `${this.inputId}-error-text`;
37048
37242
  this.inheritedAttributes = {};
37049
- this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
37050
37243
  this.isExpanded = false;
37051
37244
  /**
37052
37245
  * The `hasFocus` state ensures the focus class is
@@ -37172,40 +37365,9 @@ class Select {
37172
37365
  this.emitStyle();
37173
37366
  }
37174
37367
  setValue(value) {
37175
- if (this.isValueEqual(this.value, value)) {
37176
- return;
37177
- }
37178
37368
  this.value = value;
37179
37369
  this.ionChange.emit({ value });
37180
37370
  }
37181
- isValueEqual(currentValue, newValue) {
37182
- if (this.multiple) {
37183
- const currentArr = Array.isArray(currentValue) ? currentValue : [];
37184
- const newArr = Array.isArray(newValue) ? newValue : [];
37185
- if (currentArr.length !== newArr.length) {
37186
- return false;
37187
- }
37188
- // Multiset compare: each new value must match a distinct current value.
37189
- // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
37190
- // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
37191
- const remaining = currentArr.slice();
37192
- return newArr.every((val) => {
37193
- const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
37194
- if (idx === -1) {
37195
- return false;
37196
- }
37197
- remaining.splice(idx, 1);
37198
- return true;
37199
- });
37200
- }
37201
- if (currentValue == null && newValue == null) {
37202
- return true;
37203
- }
37204
- if (currentValue == null || newValue == null) {
37205
- return false;
37206
- }
37207
- return compareOptions(currentValue, newValue, this.compareWith);
37208
- }
37209
37371
  async connectedCallback() {
37210
37372
  const { el } = this;
37211
37373
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -37399,11 +37561,10 @@ class Select {
37399
37561
  .join(' ');
37400
37562
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37401
37563
  const isSelected = isOptionSelected(selectValue, value, this.compareWith);
37402
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37403
37564
  return {
37404
- text: content !== null && content !== void 0 ? content : '',
37565
+ role: isSelected ? 'selected' : '',
37566
+ text: option.textContent,
37405
37567
  cssClass: optClass,
37406
- disabled: option.disabled,
37407
37568
  handler: () => {
37408
37569
  this.setValue(value);
37409
37570
  },
@@ -37411,9 +37572,6 @@ class Select {
37411
37572
  'aria-checked': isSelected ? 'true' : 'false',
37412
37573
  role: 'radio',
37413
37574
  },
37414
- startContent,
37415
- endContent,
37416
- description: option.description,
37417
37575
  };
37418
37576
  });
37419
37577
  // Add "cancel" button
@@ -37434,19 +37592,13 @@ class Select {
37434
37592
  .filter((cls) => cls !== 'hydrated')
37435
37593
  .join(' ');
37436
37594
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37437
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37438
37595
  return {
37439
37596
  type: inputType,
37440
37597
  cssClass: optClass,
37441
- label: content !== null && content !== void 0 ? content : '',
37598
+ label: option.textContent || '',
37442
37599
  value,
37443
37600
  checked: isOptionSelected(selectValue, value, this.compareWith),
37444
37601
  disabled: option.disabled,
37445
- startContent,
37446
- endContent,
37447
- description: option.description,
37448
- labelPlacement: option.labelPlacement,
37449
- justify: option.justify,
37450
37602
  };
37451
37603
  });
37452
37604
  return alertInputs;
@@ -37459,9 +37611,8 @@ class Select {
37459
37611
  .filter((cls) => cls !== 'hydrated')
37460
37612
  .join(' ');
37461
37613
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
37462
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
37463
37614
  return {
37464
- text: content !== null && content !== void 0 ? content : '',
37615
+ text: option.textContent || '',
37465
37616
  cssClass: optClass,
37466
37617
  value,
37467
37618
  checked: isOptionSelected(selectValue, value, this.compareWith),
@@ -37472,11 +37623,6 @@ class Select {
37472
37623
  this.close();
37473
37624
  }
37474
37625
  },
37475
- startContent,
37476
- endContent,
37477
- description: option.description,
37478
- labelPlacement: option.labelPlacement,
37479
- justify: option.justify,
37480
37626
  };
37481
37627
  });
37482
37628
  return popoverOptions;
@@ -37509,21 +37655,15 @@ class Select {
37509
37655
  ionShadowTarget: this.nativeWrapperEl,
37510
37656
  } });
37511
37657
  }
37512
- const options = this.createOverlaySelectOptions(this.childOpts, value);
37513
- const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
37514
37658
  const popoverOpts = Object.assign(Object.assign({ mode,
37515
37659
  event, alignment: 'center', size,
37516
- showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
37517
- 'select-popover',
37518
- hasRichContent ? 'select-popover-rich-content' : undefined,
37519
- interfaceOptions.cssClass,
37520
- ], componentProps: {
37660
+ showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
37521
37661
  header: interfaceOptions.header,
37522
37662
  subHeader: interfaceOptions.subHeader,
37523
37663
  message: interfaceOptions.message,
37524
37664
  multiple,
37525
37665
  value,
37526
- options,
37666
+ options: this.createOverlaySelectOptions(this.childOpts, value),
37527
37667
  } });
37528
37668
  return popoverController.create(popoverOpts);
37529
37669
  }
@@ -37604,18 +37744,12 @@ class Select {
37604
37744
  }
37605
37745
  return;
37606
37746
  }
37607
- /**
37608
- * Returns the text to display in the select based on the selected value.
37609
- *
37610
- * @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`.
37611
- * @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
37612
- */
37613
- getText(useHTML = false) {
37747
+ getText() {
37614
37748
  const selectedText = this.selectedText;
37615
37749
  if (selectedText != null && selectedText !== '') {
37616
37750
  return selectedText;
37617
37751
  }
37618
- return generateText(this.childOpts, this.value, this.compareWith, useHTML);
37752
+ return generateText(this.childOpts, this.value, this.compareWith);
37619
37753
  }
37620
37754
  setFocus() {
37621
37755
  if (this.focusEl) {
@@ -37685,47 +37819,6 @@ class Select {
37685
37819
  */
37686
37820
  return this.renderLabel();
37687
37821
  }
37688
- /**
37689
- * Wraps text nodes in the select text with span elements
37690
- * so spacing can be added between elements without
37691
- * changing the display to prevent losing the ellipses
37692
- * behavior.
37693
- *
37694
- * Only wraps when the string contains HTML elements
37695
- * alongside text.
37696
- */
37697
- wrapSelectTextNodes(html) {
37698
- const temp = document.createElement('div');
37699
- temp.innerHTML = html;
37700
- const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
37701
- // Return the plain text
37702
- if (!hasElements) {
37703
- return html;
37704
- }
37705
- Array.from(temp.childNodes).forEach((node) => {
37706
- var _a, _b, _c, _d;
37707
- if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
37708
- const text = node.textContent;
37709
- /**
37710
- * Split comma separator from the text content
37711
- * e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
37712
- */
37713
- const commaMatch = text.match(/^(,\s*)(.*)/);
37714
- if (commaMatch) {
37715
- const commaNode = document.createTextNode(commaMatch[1]);
37716
- const wrapper = document.createElement('span');
37717
- wrapper.textContent = commaMatch[2];
37718
- (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
37719
- (_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
37720
- return;
37721
- }
37722
- const wrapper = document.createElement('span');
37723
- (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
37724
- wrapper.appendChild(node);
37725
- }
37726
- });
37727
- return temp.innerHTML;
37728
- }
37729
37822
  /**
37730
37823
  * Renders either the placeholder
37731
37824
  * or the selected values based on
@@ -37733,7 +37826,7 @@ class Select {
37733
37826
  */
37734
37827
  renderSelectText() {
37735
37828
  const { placeholder } = this;
37736
- const displayValue = this.getText(true);
37829
+ const displayValue = this.getText();
37737
37830
  let addPlaceholderClass = false;
37738
37831
  let selectText = displayValue;
37739
37832
  if (selectText === '' && placeholder !== undefined) {
@@ -37745,10 +37838,6 @@ class Select {
37745
37838
  'select-placeholder': addPlaceholderClass,
37746
37839
  };
37747
37840
  const textPart = addPlaceholderClass ? 'placeholder' : 'text';
37748
- if (this.customHTMLEnabled) {
37749
- const wrapped = this.wrapSelectTextNodes(selectText);
37750
- return hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
37751
- }
37752
37841
  return (hAsync("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
37753
37842
  }
37754
37843
  /**
@@ -37771,7 +37860,6 @@ class Select {
37771
37860
  get ariaLabel() {
37772
37861
  var _a;
37773
37862
  const { placeholder, inheritedAttributes } = this;
37774
- // Get the plain text from the selected text
37775
37863
  const displayValue = this.getText();
37776
37864
  // The aria label should be preferred over visible text if both are specified
37777
37865
  const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
@@ -37865,7 +37953,7 @@ class Select {
37865
37953
  * TODO(FW-5592): Remove hasStartEndSlots condition
37866
37954
  */
37867
37955
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
37868
- return (hAsync(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses$1(this.color, {
37956
+ return (hAsync(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses$1(this.color, {
37869
37957
  [mode]: true,
37870
37958
  'in-item': inItem,
37871
37959
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -37883,7 +37971,7 @@ class Select {
37883
37971
  [`select-justify-${justify}`]: justifyEnabled,
37884
37972
  [`select-shape-${shape}`]: shape !== undefined,
37885
37973
  [`select-label-placement-${labelPlacement}`]: true,
37886
- }) }, 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()));
37974
+ }) }, 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()));
37887
37975
  }
37888
37976
  get el() { return getElement(this); }
37889
37977
  static get watchers() { return {
@@ -37954,232 +38042,34 @@ const parseValue = (value) => {
37954
38042
  }
37955
38043
  return value.toString();
37956
38044
  };
37957
- const generateText = (opts, value, compareWith, useHTML = false) => {
38045
+ const generateText = (opts, value, compareWith) => {
37958
38046
  if (value === undefined) {
37959
38047
  return '';
37960
38048
  }
37961
38049
  if (Array.isArray(value)) {
37962
38050
  return value
37963
- .map((v) => textForValue(opts, v, compareWith, useHTML))
38051
+ .map((v) => textForValue(opts, v, compareWith))
37964
38052
  .filter((opt) => opt !== null)
37965
38053
  .join(', ');
37966
38054
  }
37967
38055
  else {
37968
- return textForValue(opts, value, compareWith, useHTML) || '';
38056
+ return textForValue(opts, value, compareWith) || '';
37969
38057
  }
37970
38058
  };
37971
- /**
37972
- * Returns the display text for a given value from the list of options.
37973
- * When `useHTML` is true, returns sanitized HTML for the select text.
37974
- * When `useHTML` is false, returns plain text for aria-label and other
37975
- * text-only contexts.
37976
- *
37977
- * @param opts - The list of ion-select-option elements.
37978
- * @param value - The value to find the matching option for.
37979
- * @param compareWith - Custom comparison function or property name.
37980
- * @param useHTML - If true, returns HTML string. If false, returns plain text.
37981
- */
37982
- const textForValue = (opts, value, compareWith, useHTML = false) => {
38059
+ const textForValue = (opts, value, compareWith) => {
37983
38060
  const selectOpt = opts.find((opt) => {
37984
38061
  return compareOptions(value, getOptionValue(opt), compareWith);
37985
38062
  });
37986
- const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
37987
- if (!selectOpt) {
37988
- return null;
37989
- }
37990
- // Return sanitized HTML for the select text
37991
- if (customHTMLEnabled && useHTML) {
37992
- return getOptionContent(selectOpt, undefined, true);
37993
- }
37994
- /**
37995
- * When custom HTML is enabled, extract only the default slot content.
37996
- * This ensures aria-label and other text-only contexts read only
37997
- * the relevant option text.
37998
- */
37999
- if (customHTMLEnabled) {
38000
- const content = getOptionContent(selectOpt);
38001
- if (typeof content === 'string') {
38002
- return content;
38003
- }
38004
- /**
38005
- * Elements were found in the default slot, extract and concatenate
38006
- * their text content while trimming whitespace.
38007
- */
38008
- if (content) {
38009
- const texts = Array.from(content.childNodes)
38010
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
38011
- .filter((t) => t);
38012
- return texts.join(' ') || null;
38013
- }
38014
- // Empty option
38015
- return null;
38016
- }
38017
- return getDefaultSlotPlainText(selectOpt);
38018
- };
38019
- /**
38020
- * Trims whitespace from all text nodes within a DOM tree.
38021
- * This prevents invisible layout shifts and unwanted gaps between
38022
- * elements when HTML content is injected via innerHTML or cloneNode,
38023
- * as browsers preserve whitespace (tabs, newlines, spaces) from
38024
- * the original source markup.
38025
- *
38026
- * @param node The root node to start trimming text nodes from.
38027
- */
38028
- const trimTextNodes = (node) => {
38029
- node.childNodes.forEach((child) => {
38030
- var _a;
38031
- if (child.nodeType === Node.TEXT_NODE) {
38032
- child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
38033
- }
38034
- else if (child.nodeType === Node.ELEMENT_NODE) {
38035
- trimTextNodes(child);
38036
- }
38037
- });
38038
- };
38039
- /**
38040
- * Extracts and clones content from an `ion-select-option` element
38041
- * for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
38042
- *
38043
- * @param option - The `ion-select-option` element to extract content from.
38044
- * @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
38045
- * @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.
38046
- * @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
38047
- * div element containing cloned child nodes. Returns `null` if no matching
38048
- * content is found.
38049
- */
38050
- const getOptionContent = (option, slotName, useHTML = false) => {
38051
- let nodes;
38052
- if (slotName) {
38053
- // Named slot: get elements with matching slot attribute
38054
- nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
38055
- }
38056
- else {
38057
- // Default slot: get nodes without a slot attribute
38058
- const defaultSlot = getOptionDefaultSlot(option) || [];
38059
- nodes = defaultSlot.filter((node) => {
38060
- var _a;
38061
- /**
38062
- * Exclude whitespace-only text nodes (newline noise between
38063
- * markup elements). Element nodes are always kept, even when
38064
- * their textContent is empty (e.g. <svg>, <img>).
38065
- */
38066
- if (node.nodeType === Node.TEXT_NODE) {
38067
- return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
38068
- }
38069
- return true;
38070
- });
38071
- }
38072
- if (nodes.length === 0) {
38073
- return null;
38074
- }
38075
- // Return plain text if no elements are found
38076
- if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
38077
- return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
38078
- }
38079
- /**
38080
- * Mirror known custom-element properties (e.g. ion-icon's `icon`)
38081
- * onto attributes before cloning. Frameworks like Vue set these as
38082
- * DOM properties, which `cloneNode` doesn't copy, so without this
38083
- * step the cloned overlay copy renders without the prop's value.
38084
- */
38085
- nodes.forEach((n) => {
38086
- if (n.nodeType === Node.ELEMENT_NODE) {
38087
- reflectPropertiesToAttributes(n);
38088
- }
38089
- });
38090
- // Clone each node into a temporary container
38091
- const container = document.createElement('div');
38092
- nodes.forEach((n) => {
38093
- var _a;
38094
- const clone = n.cloneNode(true);
38095
- if (clone.nodeType === Node.TEXT_NODE) {
38096
- clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
38097
- }
38098
- else {
38099
- trimTextNodes(clone);
38100
- }
38101
- container.appendChild(clone);
38102
- });
38103
- /**
38104
- * Sanitize the cloned DOM in place. Trusted attributes (size, color,
38105
- * shape, etc.) are preserved; event handlers, javascript: URLs, and
38106
- * blocked tags are stripped.
38107
- */
38108
- sanitizeDOMTree(container);
38109
- if (useHTML) {
38110
- return container.innerHTML.trim() || null;
38111
- }
38112
- return container;
38113
- };
38114
- /**
38115
- * Returns the child nodes that belong to the default slot of an
38116
- * option element, excluding any nodes that are assigned to named
38117
- * slots.
38118
- *
38119
- * @param option - The `ion-select-option` element to extract default-slot nodes from.
38120
- * @returns An array of default slot nodes, or `null` if none are found.
38121
- */
38122
- const getOptionDefaultSlot = (option) => {
38123
- const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
38124
- if (node.nodeType === Node.ELEMENT_NODE) {
38125
- return !node.hasAttribute('slot');
38126
- }
38127
- return node.nodeType === Node.TEXT_NODE;
38128
- });
38129
- if (defaultSlotNodes.length === 0) {
38130
- return null;
38131
- }
38132
- return defaultSlotNodes;
38133
- };
38134
- /**
38135
- * Extracts plain text from only the default slot of an option,
38136
- * excluding content assigned to named slots (start/end).
38137
- */
38138
- const getDefaultSlotPlainText = (option) => {
38139
- const texts = Array.from(option.childNodes)
38140
- .filter((node) => {
38141
- if (node.nodeType === Node.ELEMENT_NODE) {
38142
- return !node.hasAttribute('slot');
38143
- }
38144
- return node.nodeType === Node.TEXT_NODE;
38145
- })
38146
- .filter((node) => node.nodeType === Node.TEXT_NODE)
38147
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
38148
- .filter((t) => t);
38149
- return texts.join(' ');
38150
- };
38151
- /**
38152
- * Extracts the rich content from an `ion-select-option`.
38153
- * When `customHTMLEnabled` is `false`, only the plain text from the
38154
- * default slot is read and the start and end slots are skipped.
38155
- *
38156
- * @param option - The `ion-select-option` element to extract content from.
38157
- * @param customHTMLEnabled - Whether custom HTML rendering is enabled
38158
- * via the `innerHTMLTemplatesEnabled` config.
38159
- */
38160
- const extractOptionContent = (option, customHTMLEnabled) => {
38161
- var _a, _b;
38162
- if (!customHTMLEnabled) {
38163
- return {
38164
- content: getDefaultSlotPlainText(option),
38165
- startContent: undefined,
38166
- endContent: undefined,
38167
- };
38168
- }
38169
- return {
38170
- content: getOptionContent(option),
38171
- startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
38172
- endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
38173
- };
38063
+ return selectOpt ? selectOpt.textContent : null;
38174
38064
  };
38175
38065
  let selectIds = 0;
38176
38066
  const OPTION_CLASS = 'select-interface-option';
38177
38067
 
38178
- 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)}`;
38068
+ 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)}`;
38179
38069
 
38180
- 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)}`;
38070
+ 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)}`;
38181
38071
 
38182
- 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)}`;
38072
+ 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)}`;
38183
38073
 
38184
38074
  class SelectModal {
38185
38075
  constructor(hostRef) {
@@ -38233,90 +38123,39 @@ class SelectModal {
38233
38123
  }
38234
38124
  }
38235
38125
  renderRadioOptions() {
38236
- const mode = getIonMode$1(this);
38237
38126
  const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
38238
- return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option, index) => {
38239
- var _a, _b;
38240
- /**
38241
- * Cast to `SelectOverlayOption` to access rich content
38242
- * fields (`startContent`, `endContent`, `description`)
38243
- * that are passed through from `ion-select` but not
38244
- * part of the public `SelectModalOption` interface.
38245
- */
38246
- const richOption = option;
38247
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38248
- const optionLabelOptions = {
38249
- id: `modal-option-${index}`,
38250
- label: richOption.text,
38251
- startContent: richOption.startContent,
38252
- endContent: richOption.endContent,
38253
- description: richOption.description,
38254
- };
38255
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'radio', 'modal');
38256
- const defaultJustify = getOverlayLabelJustify(mode, 'radio', 'modal');
38257
- return (hAsync("ion-item", { lines: "none",
38127
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { lines: "none", class: Object.assign({
38258
38128
  // TODO FW-4784
38259
- disabled: option.disabled, class: Object.assign({
38260
- // TODO FW-4784
38261
- 'item-radio-checked': option.value === checked
38262
- }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { class: {
38263
- 'select-option-has-rich-content': hasRichContent,
38264
- }, 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) => {
38265
- if (ev.key === 'Enter' && !ev.repeat) {
38266
- this.pendingEnterTarget = ev.currentTarget;
38267
- }
38268
- }, onKeyUp: (ev) => {
38269
- if (ev.key === ' ') {
38270
- // Space selects and dismisses in one press.
38129
+ 'item-radio-checked': option.value === checked
38130
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyDown: (ev) => {
38131
+ if (ev.key === 'Enter' && !ev.repeat) {
38132
+ this.pendingEnterTarget = ev.currentTarget;
38133
+ }
38134
+ }, onKeyUp: (ev) => {
38135
+ if (ev.key === ' ') {
38136
+ // Space selects and dismisses in one press.
38137
+ this.closeModal();
38138
+ }
38139
+ else if (ev.key === 'Enter') {
38140
+ const shouldClose = this.pendingEnterTarget === ev.currentTarget;
38141
+ this.pendingEnterTarget = null;
38142
+ if (shouldClose) {
38271
38143
  this.closeModal();
38272
38144
  }
38273
- else if (ev.key === 'Enter') {
38274
- const shouldClose = this.pendingEnterTarget === ev.currentTarget;
38275
- this.pendingEnterTarget = null;
38276
- if (shouldClose) {
38277
- this.closeModal();
38278
- }
38279
- }
38280
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38281
- })));
38145
+ }
38146
+ } }, option.text))))));
38282
38147
  }
38283
38148
  renderCheckboxOptions() {
38284
- const mode = getIonMode$1(this);
38285
- return this.options.map((option, index) => {
38286
- var _a, _b;
38287
- /**
38288
- * Cast to `SelectOverlayOption` to access rich content
38289
- * fields (`startContent`, `endContent`, `description`)
38290
- * that are passed through from `ion-select` but not
38291
- * part of the public `SelectModalOption` interface.
38292
- */
38293
- const richOption = option;
38294
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38295
- const optionLabelOptions = {
38296
- id: `modal-option-${index}`,
38297
- label: richOption.text,
38298
- startContent: richOption.startContent,
38299
- endContent: richOption.endContent,
38300
- description: richOption.description,
38301
- };
38302
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox', 'modal');
38303
- const defaultJustify = getOverlayLabelJustify(mode, 'checkbox', 'modal');
38304
- return (hAsync("ion-item", {
38149
+ return this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
38305
38150
  // TODO FW-4784
38306
- disabled: option.disabled, class: Object.assign({
38307
- // TODO FW-4784
38308
- 'item-checkbox-checked': option.checked
38309
- }, getClassMap(option.cssClass))
38310
- }, hAsync("ion-checkbox", { class: {
38311
- 'select-option-has-rich-content': hasRichContent,
38312
- }, 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) => {
38313
- this.setChecked(ev);
38314
- this.callOptionHandler(ev);
38315
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38316
- });
38151
+ 'item-checkbox-checked': option.checked
38152
+ }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
38153
+ this.setChecked(ev);
38154
+ this.callOptionHandler(ev);
38155
+ } }, option.text))));
38317
38156
  }
38318
38157
  render() {
38319
- 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()))));
38158
+ 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()))));
38320
38159
  }
38321
38160
  get el() { return getElement(this); }
38322
38161
  static get style() { return {
@@ -38341,24 +38180,17 @@ class SelectModal {
38341
38180
 
38342
38181
  const selectOptionCss = () => `:host{display:none}`;
38343
38182
 
38344
- /**
38345
- * @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
38346
- *
38347
- * @slot - Content is placed between the named slots if provided without a slot.
38348
- * @slot start - Content is placed to the left of the select option text in LTR, and to the right in RTL.
38349
- * @slot end - Content is placed to the right of the select option text in LTR, and to the left in RTL.
38350
- */
38351
38183
  class SelectOption {
38352
38184
  constructor(hostRef) {
38353
38185
  registerInstance(this, hostRef);
38354
38186
  this.inputId = `ion-selopt-${selectOptionIds++}`;
38355
38187
  /**
38356
- * If `true`, the user cannot interact with the select option.
38188
+ * If `true`, the user cannot interact with the select option. This property does not apply when `interface="action-sheet"` as `ion-action-sheet` does not allow for disabled buttons.
38357
38189
  */
38358
38190
  this.disabled = false;
38359
38191
  }
38360
38192
  render() {
38361
- return hAsync(Host, { key: '8b8bef0f5a55f18048708c34d3ea3ff0ff2f1d47', role: "option", id: this.inputId, class: getIonMode$1(this) });
38193
+ return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
38362
38194
  }
38363
38195
  get el() { return getElement(this); }
38364
38196
  static get style() { return selectOptionCss(); }
@@ -38367,10 +38199,7 @@ class SelectOption {
38367
38199
  "$tagName$": "ion-select-option",
38368
38200
  "$members$": {
38369
38201
  "disabled": [4],
38370
- "value": [8],
38371
- "description": [1],
38372
- "labelPlacement": [1, "label-placement"],
38373
- "justify": [1]
38202
+ "value": [8]
38374
38203
  },
38375
38204
  "$listeners$": undefined,
38376
38205
  "$lazyBundleId$": "-",
@@ -38379,9 +38208,9 @@ class SelectOption {
38379
38208
  }
38380
38209
  let selectOptionIds = 0;
38381
38210
 
38382
- 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}`;
38211
+ 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}`;
38383
38212
 
38384
- 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)}`;
38213
+ 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)}`;
38385
38214
 
38386
38215
  /**
38387
38216
  * @internal
@@ -38455,91 +38284,41 @@ class SelectPopover {
38455
38284
  }
38456
38285
  }
38457
38286
  renderCheckboxOptions(options) {
38458
- const mode = getIonMode$1(this);
38459
- return options.map((option, index) => {
38460
- var _a, _b;
38461
- /**
38462
- * Cast to `SelectOverlayOption` to access rich content
38463
- * fields (`startContent`, `endContent`, `description`)
38464
- * that are passed through from `ion-select` but not
38465
- * part of the public `SelectPopoverOption` interface.
38466
- */
38467
- const richOption = option;
38468
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38469
- const optionLabelOptions = {
38470
- id: `popover-option-${index}`,
38471
- label: richOption.text,
38472
- startContent: richOption.startContent,
38473
- endContent: richOption.endContent,
38474
- description: richOption.description,
38475
- };
38476
- const defaultLabelPlacement = getOverlayLabelPlacement(mode, 'checkbox');
38477
- const defaultJustify = getOverlayLabelJustify(mode, 'checkbox');
38478
- return (hAsync("ion-item", {
38287
+ return options.map((option) => (hAsync("ion-item", { class: Object.assign({
38479
38288
  // TODO FW-4784
38480
- disabled: option.disabled, class: Object.assign({
38481
- // TODO FW-4784
38482
- 'item-checkbox-checked': option.checked
38483
- }, getClassMap(option.cssClass))
38484
- }, hAsync("ion-checkbox", { class: {
38485
- 'select-option-has-rich-content': hasRichContent,
38486
- }, 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) => {
38487
- this.setChecked(ev);
38488
- this.callOptionHandler(ev);
38489
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38490
- });
38289
+ 'item-checkbox-checked': option.checked
38290
+ }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
38291
+ this.setChecked(ev);
38292
+ this.callOptionHandler(ev);
38293
+ } }, option.text))));
38491
38294
  }
38492
38295
  renderRadioOptions(options) {
38493
- const mode = getIonMode$1(this);
38494
38296
  const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
38495
- return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index) => {
38496
- var _a, _b;
38497
- /**
38498
- * Cast to `SelectOverlayOption` to access rich content
38499
- * fields (`startContent`, `endContent`, `description`)
38500
- * that are passed through from `ion-select` but not
38501
- * part of the public `SelectPopoverOption` interface.
38502
- */
38503
- const richOption = option;
38504
- const hasRichContent = !!richOption.startContent || !!richOption.endContent || !!richOption.description;
38505
- const optionLabelOptions = {
38506
- id: `popover-option-${index}`,
38507
- label: richOption.text,
38508
- startContent: richOption.startContent,
38509
- endContent: richOption.endContent,
38510
- description: richOption.description,
38511
- };
38512
- return (hAsync("ion-item", {
38297
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option) => (hAsync("ion-item", { class: Object.assign({
38513
38298
  // TODO FW-4784
38514
- disabled: option.disabled, class: Object.assign({
38515
- // TODO FW-4784
38516
- 'item-radio-checked': option.value === checked
38517
- }, getClassMap(option.cssClass))
38518
- }, hAsync("ion-radio", { class: {
38519
- 'select-option-has-rich-content': hasRichContent,
38520
- }, 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) => {
38521
- if (ev.key === 'Enter' && !ev.repeat) {
38522
- this.pendingEnterTarget = ev.currentTarget;
38523
- }
38524
- }, onKeyUp: (ev) => {
38525
- if (ev.key === ' ') {
38526
- // Space selects and dismisses in one press.
38299
+ 'item-radio-checked': option.value === checked
38300
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
38301
+ if (ev.key === 'Enter' && !ev.repeat) {
38302
+ this.pendingEnterTarget = ev.currentTarget;
38303
+ }
38304
+ }, onKeyUp: (ev) => {
38305
+ if (ev.key === ' ') {
38306
+ // Space selects and dismisses in one press.
38307
+ this.dismissParentPopover();
38308
+ }
38309
+ else if (ev.key === 'Enter') {
38310
+ const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
38311
+ this.pendingEnterTarget = null;
38312
+ if (shouldDismiss) {
38527
38313
  this.dismissParentPopover();
38528
38314
  }
38529
- else if (ev.key === 'Enter') {
38530
- const shouldDismiss = this.pendingEnterTarget === ev.currentTarget;
38531
- this.pendingEnterTarget = null;
38532
- if (shouldDismiss) {
38533
- this.dismissParentPopover();
38534
- }
38535
- }
38536
- } }, renderOptionLabel(optionLabelOptions, 'select-option-label'))));
38537
- })));
38315
+ }
38316
+ } }, option.text))))));
38538
38317
  }
38539
38318
  render() {
38540
38319
  const { header, message, options, subHeader } = this;
38541
38320
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
38542
- 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))));
38321
+ 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))));
38543
38322
  }
38544
38323
  get el() { return getElement(this); }
38545
38324
  static get style() { return {
@@ -38589,11 +38368,11 @@ class SkeletonText {
38589
38368
  const animated = this.animated && config.getBoolean('animated', true);
38590
38369
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
38591
38370
  const mode = getIonMode$1(this);
38592
- return (hAsync(Host, { key: '887d958d982345ce610730ab5c9ae35010430f75', class: {
38371
+ return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
38593
38372
  [mode]: true,
38594
38373
  'skeleton-text-animated': animated,
38595
38374
  'in-media': inMedia,
38596
- } }, hAsync("span", { key: 'a184f4b9780a2aada0a16729109ac81436e9c9e1' }, "\u00A0")));
38375
+ } }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
38597
38376
  }
38598
38377
  get el() { return getElement(this); }
38599
38378
  static get style() { return skeletonTextCss(); }
@@ -38645,7 +38424,7 @@ class Spinner {
38645
38424
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
38646
38425
  }
38647
38426
  }
38648
- return (hAsync(Host, { key: 'c35ebd01186e860acb9cac260193f0836424fdf4', class: createColorClasses$1(self.color, {
38427
+ return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
38649
38428
  [mode]: true,
38650
38429
  [`spinner-${spinnerName}`]: true,
38651
38430
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -38744,12 +38523,12 @@ class SplitPane {
38744
38523
  }
38745
38524
  render() {
38746
38525
  const mode = getIonMode$1(this);
38747
- return (hAsync(Host, { key: '694e989fafcfe2453e0a83b3cb736efaa1eb4fec', class: {
38526
+ return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
38748
38527
  [mode]: true,
38749
38528
  // Used internally for styling
38750
38529
  [`split-pane-${mode}`]: true,
38751
38530
  'split-pane-visible': this.visible,
38752
- } }, hAsync("slot", { key: 'dde7e9382b62cc11971aa233cf98c2314ae4f720' })));
38531
+ } }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
38753
38532
  }
38754
38533
  get el() { return getElement(this); }
38755
38534
  static get watchers() { return {
@@ -38821,10 +38600,10 @@ class Tab {
38821
38600
  }
38822
38601
  render() {
38823
38602
  const { tab, active, component } = this;
38824
- return (hAsync(Host, { key: '745262368a7f45244da459f4fa1730a46dd3e257', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38603
+ return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
38825
38604
  'ion-page': component === undefined,
38826
38605
  'tab-hidden': !active,
38827
- } }, hAsync("slot", { key: '823d09a6f93bf7c0dc74f2b8717d1d3a62df1ad8' })));
38606
+ } }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
38828
38607
  }
38829
38608
  get el() { return getElement(this); }
38830
38609
  static get watchers() { return {
@@ -38938,11 +38717,11 @@ class TabBar {
38938
38717
  const { color, translucent, keyboardVisible } = this;
38939
38718
  const mode = getIonMode$1(this);
38940
38719
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
38941
- return (hAsync(Host, { key: '148f65df0818e9d220a9b46db74cb89ab94e62d2', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38720
+ return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
38942
38721
  [mode]: true,
38943
38722
  'tab-bar-translucent': translucent,
38944
38723
  'tab-bar-hidden': shouldHide,
38945
- }) }, hAsync("slot", { key: 'a64e235f3703662e2dd7a834f752cc5b1490adbc' })));
38724
+ }) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
38946
38725
  }
38947
38726
  get el() { return getElement(this); }
38948
38727
  static get watchers() { return {
@@ -39040,7 +38819,7 @@ class TabButton {
39040
38819
  rel,
39041
38820
  target,
39042
38821
  };
39043
- return (hAsync(Host, { key: '1034b5a928ecec49bd8efec3730ea1b11a579cf3', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
38822
+ return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
39044
38823
  [mode]: true,
39045
38824
  'tab-selected': selected,
39046
38825
  'tab-disabled': disabled,
@@ -39052,7 +38831,7 @@ class TabButton {
39052
38831
  'ion-activatable': true,
39053
38832
  'ion-selectable': true,
39054
38833
  'ion-focusable': true,
39055
- } }, 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" }))));
38834
+ } }, 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" }))));
39056
38835
  }
39057
38836
  get el() { return getElement(this); }
39058
38837
  static get style() { return {
@@ -39243,7 +39022,7 @@ class Tabs {
39243
39022
  return Array.from(this.el.querySelectorAll('ion-tab'));
39244
39023
  }
39245
39024
  render() {
39246
- 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" })));
39025
+ 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" })));
39247
39026
  }
39248
39027
  get el() { return getElement(this); }
39249
39028
  static get style() { return tabsCss(); }
@@ -39283,9 +39062,9 @@ class Text {
39283
39062
  }
39284
39063
  render() {
39285
39064
  const mode = getIonMode$1(this);
39286
- return (hAsync(Host, { key: '41ed8da617ed0e07bbfe96e32a000e1c6503e24e', class: createColorClasses$1(this.color, {
39065
+ return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
39287
39066
  [mode]: true,
39288
- }) }, hAsync("slot", { key: 'db8de04a2493537b3037f276b03abd92dfa56847' })));
39067
+ }) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
39289
39068
  }
39290
39069
  static get style() { return textCss(); }
39291
39070
  static get cmpMeta() { return {
@@ -39746,7 +39525,7 @@ class Textarea {
39746
39525
  * TODO(FW-5592): Remove hasStartEndSlots condition
39747
39526
  */
39748
39527
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
39749
- return (hAsync(Host, { key: 'eca1dfed53189408f614661ef3902cdb73d5f5de', class: createColorClasses$1(this.color, {
39528
+ return (hAsync(Host, { key: '4257e84acd46f43390fa2413d0b8f40e16a37499', class: createColorClasses$1(this.color, {
39750
39529
  [mode]: true,
39751
39530
  'has-value': hasValue,
39752
39531
  'has-focus': hasFocus,
@@ -39755,7 +39534,7 @@ class Textarea {
39755
39534
  [`textarea-shape-${shape}`]: shape !== undefined,
39756
39535
  [`textarea-label-placement-${labelPlacement}`]: true,
39757
39536
  'textarea-disabled': disabled,
39758
- }) }, 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()));
39537
+ }) }, 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()));
39759
39538
  }
39760
39539
  get el() { return getElement(this); }
39761
39540
  static get watchers() { return {
@@ -39824,7 +39603,7 @@ class Thumbnail {
39824
39603
  registerInstance(this, hostRef);
39825
39604
  }
39826
39605
  render() {
39827
- return (hAsync(Host, { key: '833e947c683b482a78f8f0df8c9a68e99478bbaa', class: getIonMode$1(this) }, hAsync("slot", { key: '6d1e9e686db88d91379f14121058dbf035d8ded2' })));
39606
+ return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
39828
39607
  }
39829
39608
  static get style() { return thumbnailCss(); }
39830
39609
  static get cmpMeta() { return {
@@ -40684,9 +40463,9 @@ class Toast {
40684
40463
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
40685
40464
  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);
40686
40465
  }
40687
- return (hAsync(Host, Object.assign({ key: '2acb2cd2e12ea0082986495929e4a596d4da2f38', tabindex: "-1" }, this.htmlAttributes, { style: {
40466
+ return (hAsync(Host, Object.assign({ key: 'b5256edcf33d0ef51e6c5080c84e1ca58abe2ae0', tabindex: "-1" }, this.htmlAttributes, { style: {
40688
40467
  zIndex: `${60000 + this.overlayIndex}`,
40689
- }, 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')))));
40468
+ }, 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')))));
40690
40469
  }
40691
40470
  get el() { return getElement(this); }
40692
40471
  static get watchers() { return {
@@ -41004,7 +40783,7 @@ class Toggle {
41004
40783
  const value = this.getValue();
41005
40784
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
41006
40785
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
41007
- 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, {
40786
+ 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, {
41008
40787
  [mode]: true,
41009
40788
  'in-item': hostContext('ion-item', el),
41010
40789
  'toggle-activated': activated,
@@ -41014,10 +40793,10 @@ class Toggle {
41014
40793
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
41015
40794
  [`toggle-label-placement-${labelPlacement}`]: true,
41016
40795
  [`toggle-${rtl}`]: true,
41017
- }) }, 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: {
40796
+ }) }, 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: {
41018
40797
  'label-text-wrapper': true,
41019
40798
  'label-text-wrapper-hidden': !hasLabel,
41020
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: 'c480b96a0ddd926568f73291d71253d6f74438c7' }), this.renderHintText()), hAsync("div", { key: '96a2cbd1673e051a78f8b2b16535ecd3f0ed4339', class: "native-wrapper" }, this.renderToggleControl()))));
40799
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
41021
40800
  }
41022
40801
  get el() { return getElement(this); }
41023
40802
  static get watchers() { return {
@@ -41129,10 +40908,10 @@ class Toolbar {
41129
40908
  this.childrenStyles.forEach((value) => {
41130
40909
  Object.assign(childStyles, value);
41131
40910
  });
41132
- return (hAsync(Host, { key: '40bad6fa7e94262438da4bbe037dcf8a5fa2df22', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
40911
+ return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
41133
40912
  [mode]: true,
41134
40913
  'in-toolbar': hostContext('ion-toolbar', this.el),
41135
- })) }, 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" }))));
40914
+ })) }, 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" }))));
41136
40915
  }
41137
40916
  get el() { return getElement(this); }
41138
40917
  static get style() { return {
@@ -41178,11 +40957,11 @@ class ToolbarTitle {
41178
40957
  render() {
41179
40958
  const mode = getIonMode$1(this);
41180
40959
  const size = this.getSize();
41181
- return (hAsync(Host, { key: 'd9317e8e66cb6112717f5a9c252658777efbd873', class: createColorClasses$1(this.color, {
40960
+ return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
41182
40961
  [mode]: true,
41183
40962
  [`title-${size}`]: true,
41184
40963
  'title-rtl': document.dir === 'rtl',
41185
- }) }, hAsync("div", { key: 'a4d011d6d409bf006d8efe33667002edb109820a', class: "toolbar-title" }, hAsync("slot", { key: '4ca3303b957a0e5387f1e9058e5adb4c6275afcc' }))));
40964
+ }) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
41186
40965
  }
41187
40966
  get el() { return getElement(this); }
41188
40967
  static get watchers() { return {
@@ -41262,8 +41041,10 @@ registerComponents([
41262
41041
  Nav,
41263
41042
  NavLink,
41264
41043
  Note,
41044
+ Picker$1,
41265
41045
  Picker,
41266
41046
  PickerColumn,
41047
+ PickerColumnCmp,
41267
41048
  PickerColumnOption,
41268
41049
  Popover,
41269
41050
  ProgressBar,