@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
@@ -2,17 +2,14 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Build, Host, h, forceUpdate } from "@stencil/core";
5
- import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
6
5
  import { compareOptions, createNotchController, isOptionSelected, checkInvalidState } from "../../utils/forms/index";
7
6
  import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
8
7
  import { printIonWarning } from "../../utils/logging/index";
9
8
  import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
10
9
  import { isRTL } from "../../utils/rtl/index";
11
- import { reflectPropertiesToAttributes, sanitizeDOMTree } from "../../utils/sanitization/index";
12
10
  import { createColorClasses, hostContext } from "../../utils/theme";
13
11
  import { watchForOptions } from "../../utils/watch-options";
14
12
  import { caretDownSharp, chevronExpand } from "ionicons/icons";
15
- import { config } from "../../global/config";
16
13
  import { getIonMode } from "../../global/ionic-global";
17
14
  // TODO(FW-2832): types
18
15
  /**
@@ -40,7 +37,6 @@ export class Select {
40
37
  this.helperTextId = `${this.inputId}-helper-text`;
41
38
  this.errorTextId = `${this.inputId}-error-text`;
42
39
  this.inheritedAttributes = {};
43
- this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
44
40
  this.isExpanded = false;
45
41
  /**
46
42
  * The `hasFocus` state ensures the focus class is
@@ -166,40 +162,9 @@ export class Select {
166
162
  this.emitStyle();
167
163
  }
168
164
  setValue(value) {
169
- if (this.isValueEqual(this.value, value)) {
170
- return;
171
- }
172
165
  this.value = value;
173
166
  this.ionChange.emit({ value });
174
167
  }
175
- isValueEqual(currentValue, newValue) {
176
- if (this.multiple) {
177
- const currentArr = Array.isArray(currentValue) ? currentValue : [];
178
- const newArr = Array.isArray(newValue) ? newValue : [];
179
- if (currentArr.length !== newArr.length) {
180
- return false;
181
- }
182
- // Multiset compare: each new value must match a distinct current value.
183
- // A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
184
- // ['a','b'] when both 'a' and 'b' map to options whose values overlap.
185
- const remaining = currentArr.slice();
186
- return newArr.every((val) => {
187
- const idx = remaining.findIndex((c) => compareOptions(c, val, this.compareWith));
188
- if (idx === -1) {
189
- return false;
190
- }
191
- remaining.splice(idx, 1);
192
- return true;
193
- });
194
- }
195
- if (currentValue == null && newValue == null) {
196
- return true;
197
- }
198
- if (currentValue == null || newValue == null) {
199
- return false;
200
- }
201
- return compareOptions(currentValue, newValue, this.compareWith);
202
- }
203
168
  async connectedCallback() {
204
169
  const { el } = this;
205
170
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -434,11 +399,10 @@ export class Select {
434
399
  .join(' ');
435
400
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
436
401
  const isSelected = isOptionSelected(selectValue, value, this.compareWith);
437
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
438
402
  return {
439
- text: content !== null && content !== void 0 ? content : '',
403
+ role: isSelected ? 'selected' : '',
404
+ text: option.textContent,
440
405
  cssClass: optClass,
441
- disabled: option.disabled,
442
406
  handler: () => {
443
407
  this.setValue(value);
444
408
  },
@@ -446,9 +410,6 @@ export class Select {
446
410
  'aria-checked': isSelected ? 'true' : 'false',
447
411
  role: 'radio',
448
412
  },
449
- startContent,
450
- endContent,
451
- description: option.description,
452
413
  };
453
414
  });
454
415
  // Add "cancel" button
@@ -469,19 +430,13 @@ export class Select {
469
430
  .filter((cls) => cls !== 'hydrated')
470
431
  .join(' ');
471
432
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
472
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
473
433
  return {
474
434
  type: inputType,
475
435
  cssClass: optClass,
476
- label: content !== null && content !== void 0 ? content : '',
436
+ label: option.textContent || '',
477
437
  value,
478
438
  checked: isOptionSelected(selectValue, value, this.compareWith),
479
439
  disabled: option.disabled,
480
- startContent,
481
- endContent,
482
- description: option.description,
483
- labelPlacement: option.labelPlacement,
484
- justify: option.justify,
485
440
  };
486
441
  });
487
442
  return alertInputs;
@@ -494,9 +449,8 @@ export class Select {
494
449
  .filter((cls) => cls !== 'hydrated')
495
450
  .join(' ');
496
451
  const optClass = `${OPTION_CLASS} ${copyClasses}`;
497
- const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
498
452
  return {
499
- text: content !== null && content !== void 0 ? content : '',
453
+ text: option.textContent || '',
500
454
  cssClass: optClass,
501
455
  value,
502
456
  checked: isOptionSelected(selectValue, value, this.compareWith),
@@ -507,11 +461,6 @@ export class Select {
507
461
  this.close();
508
462
  }
509
463
  },
510
- startContent,
511
- endContent,
512
- description: option.description,
513
- labelPlacement: option.labelPlacement,
514
- justify: option.justify,
515
464
  };
516
465
  });
517
466
  return popoverOptions;
@@ -544,21 +493,15 @@ export class Select {
544
493
  ionShadowTarget: this.nativeWrapperEl,
545
494
  } });
546
495
  }
547
- const options = this.createOverlaySelectOptions(this.childOpts, value);
548
- const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
549
496
  const popoverOpts = Object.assign(Object.assign({ mode,
550
497
  event, alignment: 'center', size,
551
- showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
552
- 'select-popover',
553
- hasRichContent ? 'select-popover-rich-content' : undefined,
554
- interfaceOptions.cssClass,
555
- ], componentProps: {
498
+ showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: ['select-popover', interfaceOptions.cssClass], componentProps: {
556
499
  header: interfaceOptions.header,
557
500
  subHeader: interfaceOptions.subHeader,
558
501
  message: interfaceOptions.message,
559
502
  multiple,
560
503
  value,
561
- options,
504
+ options: this.createOverlaySelectOptions(this.childOpts, value),
562
505
  } });
563
506
  /**
564
507
  * Workaround for Stencil to autodefine
@@ -685,18 +628,12 @@ export class Select {
685
628
  }
686
629
  return;
687
630
  }
688
- /**
689
- * Returns the text to display in the select based on the selected value.
690
- *
691
- * @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`.
692
- * @returns The text to display in the select, either with or without HTML based on the `useHTML` parameter.
693
- */
694
- getText(useHTML = false) {
631
+ getText() {
695
632
  const selectedText = this.selectedText;
696
633
  if (selectedText != null && selectedText !== '') {
697
634
  return selectedText;
698
635
  }
699
- return generateText(this.childOpts, this.value, this.compareWith, useHTML);
636
+ return generateText(this.childOpts, this.value, this.compareWith);
700
637
  }
701
638
  setFocus() {
702
639
  if (this.focusEl) {
@@ -766,47 +703,6 @@ export class Select {
766
703
  */
767
704
  return this.renderLabel();
768
705
  }
769
- /**
770
- * Wraps text nodes in the select text with span elements
771
- * so spacing can be added between elements without
772
- * changing the display to prevent losing the ellipses
773
- * behavior.
774
- *
775
- * Only wraps when the string contains HTML elements
776
- * alongside text.
777
- */
778
- wrapSelectTextNodes(html) {
779
- const temp = document.createElement('div');
780
- temp.innerHTML = html;
781
- const hasElements = Array.from(temp.childNodes).some((n) => n.nodeType === Node.ELEMENT_NODE);
782
- // Return the plain text
783
- if (!hasElements) {
784
- return html;
785
- }
786
- Array.from(temp.childNodes).forEach((node) => {
787
- var _a, _b, _c, _d;
788
- if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
789
- const text = node.textContent;
790
- /**
791
- * Split comma separator from the text content
792
- * e.g., ", Bacon" becomes ", " text node + <span>Bacon</span>.
793
- */
794
- const commaMatch = text.match(/^(,\s*)(.*)/);
795
- if (commaMatch) {
796
- const commaNode = document.createTextNode(commaMatch[1]);
797
- const wrapper = document.createElement('span');
798
- wrapper.textContent = commaMatch[2];
799
- (_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
800
- (_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
801
- return;
802
- }
803
- const wrapper = document.createElement('span');
804
- (_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
805
- wrapper.appendChild(node);
806
- }
807
- });
808
- return temp.innerHTML;
809
- }
810
706
  /**
811
707
  * Renders either the placeholder
812
708
  * or the selected values based on
@@ -814,7 +710,7 @@ export class Select {
814
710
  */
815
711
  renderSelectText() {
816
712
  const { placeholder } = this;
817
- const displayValue = this.getText(true);
713
+ const displayValue = this.getText();
818
714
  let addPlaceholderClass = false;
819
715
  let selectText = displayValue;
820
716
  if (selectText === '' && placeholder !== undefined) {
@@ -826,10 +722,6 @@ export class Select {
826
722
  'select-placeholder': addPlaceholderClass,
827
723
  };
828
724
  const textPart = addPlaceholderClass ? 'placeholder' : 'text';
829
- if (this.customHTMLEnabled) {
830
- const wrapped = this.wrapSelectTextNodes(selectText);
831
- return h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart, innerHTML: wrapped });
832
- }
833
725
  return (h("div", { "aria-hidden": "true", class: selectTextClasses, part: textPart }, selectText));
834
726
  }
835
727
  /**
@@ -852,7 +744,6 @@ export class Select {
852
744
  get ariaLabel() {
853
745
  var _a;
854
746
  const { placeholder, inheritedAttributes } = this;
855
- // Get the plain text from the selected text
856
747
  const displayValue = this.getText();
857
748
  // The aria label should be preferred over visible text if both are specified
858
749
  const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
@@ -946,7 +837,7 @@ export class Select {
946
837
  * TODO(FW-5592): Remove hasStartEndSlots condition
947
838
  */
948
839
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
949
- return (h(Host, { key: 'a3036d51e0db13332641e9523264ddd1ab031912', onClick: this.onClick, class: createColorClasses(this.color, {
840
+ return (h(Host, { key: '5f4ee901b65554eacc9fa52230d06b1a5ff1247c', onClick: this.onClick, class: createColorClasses(this.color, {
950
841
  [mode]: true,
951
842
  'in-item': inItem,
952
843
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -964,7 +855,7 @@ export class Select {
964
855
  [`select-justify-${justify}`]: justifyEnabled,
965
856
  [`select-shape-${shape}`]: shape !== undefined,
966
857
  [`select-label-placement-${labelPlacement}`]: true,
967
- }) }, h("label", { key: '58b77f683499b958840721bdb59a9bf822c7f218', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: '9e68d96524c1b87d6cb1bdce79fa86f2022be04a', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: 'c9bcc5d684d2cefadff6ad3ec91498d5b405afc5', name: "start" }), h("div", { key: '5405bc15ffb3437ca00c64fbbc83d8eb2631c4ea', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '95e2f041c8517afb1cc6bddb2c3c38cf41f2376e', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'f3d2410f678ea22a107121aea1bbda197a618ed6', class: "select-highlight" })), this.renderBottomContent()));
858
+ }) }, h("label", { key: 'd56d89b5b58da2b5eaebada9d1be58ca45c67806', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), h("div", { key: 'bc8bf089c693781ad5b3a5db76a12223867d748e', class: "select-wrapper-inner", part: "inner" }, h("slot", { key: 'e1c12b96f1573eb192608c458ed1f3463174cd89', name: "start" }), h("div", { key: '6ee5e3900d8e462f175649b502ac6faa2f2b9909', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'faeaea34aad412e1458beab95d4b1b9ca7b87c41', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'aeff51e51c990844869eff9940575ce6b2223135', class: "select-highlight" })), this.renderBottomContent()));
968
859
  }
969
860
  static get is() { return "ion-select"; }
970
861
  static get encapsulation() { return "shadow"; }
@@ -1624,223 +1515,25 @@ const parseValue = (value) => {
1624
1515
  }
1625
1516
  return value.toString();
1626
1517
  };
1627
- const generateText = (opts, value, compareWith, useHTML = false) => {
1518
+ const generateText = (opts, value, compareWith) => {
1628
1519
  if (value === undefined) {
1629
1520
  return '';
1630
1521
  }
1631
1522
  if (Array.isArray(value)) {
1632
1523
  return value
1633
- .map((v) => textForValue(opts, v, compareWith, useHTML))
1524
+ .map((v) => textForValue(opts, v, compareWith))
1634
1525
  .filter((opt) => opt !== null)
1635
1526
  .join(', ');
1636
1527
  }
1637
1528
  else {
1638
- return textForValue(opts, value, compareWith, useHTML) || '';
1529
+ return textForValue(opts, value, compareWith) || '';
1639
1530
  }
1640
1531
  };
1641
- /**
1642
- * Returns the display text for a given value from the list of options.
1643
- * When `useHTML` is true, returns sanitized HTML for the select text.
1644
- * When `useHTML` is false, returns plain text for aria-label and other
1645
- * text-only contexts.
1646
- *
1647
- * @param opts - The list of ion-select-option elements.
1648
- * @param value - The value to find the matching option for.
1649
- * @param compareWith - Custom comparison function or property name.
1650
- * @param useHTML - If true, returns HTML string. If false, returns plain text.
1651
- */
1652
- const textForValue = (opts, value, compareWith, useHTML = false) => {
1532
+ const textForValue = (opts, value, compareWith) => {
1653
1533
  const selectOpt = opts.find((opt) => {
1654
1534
  return compareOptions(value, getOptionValue(opt), compareWith);
1655
1535
  });
1656
- const customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
1657
- if (!selectOpt) {
1658
- return null;
1659
- }
1660
- // Return sanitized HTML for the select text
1661
- if (customHTMLEnabled && useHTML) {
1662
- return getOptionContent(selectOpt, undefined, true);
1663
- }
1664
- /**
1665
- * When custom HTML is enabled, extract only the default slot content.
1666
- * This ensures aria-label and other text-only contexts read only
1667
- * the relevant option text.
1668
- */
1669
- if (customHTMLEnabled) {
1670
- const content = getOptionContent(selectOpt);
1671
- if (typeof content === 'string') {
1672
- return content;
1673
- }
1674
- /**
1675
- * Elements were found in the default slot, extract and concatenate
1676
- * their text content while trimming whitespace.
1677
- */
1678
- if (content) {
1679
- const texts = Array.from(content.childNodes)
1680
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
1681
- .filter((t) => t);
1682
- return texts.join(' ') || null;
1683
- }
1684
- // Empty option
1685
- return null;
1686
- }
1687
- return getDefaultSlotPlainText(selectOpt);
1688
- };
1689
- /**
1690
- * Trims whitespace from all text nodes within a DOM tree.
1691
- * This prevents invisible layout shifts and unwanted gaps between
1692
- * elements when HTML content is injected via innerHTML or cloneNode,
1693
- * as browsers preserve whitespace (tabs, newlines, spaces) from
1694
- * the original source markup.
1695
- *
1696
- * @param node The root node to start trimming text nodes from.
1697
- */
1698
- const trimTextNodes = (node) => {
1699
- node.childNodes.forEach((child) => {
1700
- var _a;
1701
- if (child.nodeType === Node.TEXT_NODE) {
1702
- child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
1703
- }
1704
- else if (child.nodeType === Node.ELEMENT_NODE) {
1705
- trimTextNodes(child);
1706
- }
1707
- });
1708
- };
1709
- /**
1710
- * Extracts and clones content from an `ion-select-option` element
1711
- * for rendering within overlay interfaces or the select text when `customHTMLEnabled` is `true`.
1712
- *
1713
- * @param option - The `ion-select-option` element to extract content from.
1714
- * @param slotName - Optional slot name to extract. If omitted, extracts the default slot content.
1715
- * @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.
1716
- * @returns When `useHTML` is `true`, a sanitized HTML string. When `false`, a
1717
- * div element containing cloned child nodes. Returns `null` if no matching
1718
- * content is found.
1719
- */
1720
- const getOptionContent = (option, slotName, useHTML = false) => {
1721
- let nodes;
1722
- if (slotName) {
1723
- // Named slot: get elements with matching slot attribute
1724
- nodes = Array.from(option.children).filter((el) => el.getAttribute('slot') === slotName);
1725
- }
1726
- else {
1727
- // Default slot: get nodes without a slot attribute
1728
- const defaultSlot = getOptionDefaultSlot(option) || [];
1729
- nodes = defaultSlot.filter((node) => {
1730
- var _a;
1731
- /**
1732
- * Exclude whitespace-only text nodes (newline noise between
1733
- * markup elements). Element nodes are always kept, even when
1734
- * their textContent is empty (e.g. <svg>, <img>).
1735
- */
1736
- if (node.nodeType === Node.TEXT_NODE) {
1737
- return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
1738
- }
1739
- return true;
1740
- });
1741
- }
1742
- if (nodes.length === 0) {
1743
- return null;
1744
- }
1745
- // Return plain text if no elements are found
1746
- if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
1747
- return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
1748
- }
1749
- /**
1750
- * Mirror known custom-element properties (e.g. ion-icon's `icon`)
1751
- * onto attributes before cloning. Frameworks like Vue set these as
1752
- * DOM properties, which `cloneNode` doesn't copy, so without this
1753
- * step the cloned overlay copy renders without the prop's value.
1754
- */
1755
- nodes.forEach((n) => {
1756
- if (n.nodeType === Node.ELEMENT_NODE) {
1757
- reflectPropertiesToAttributes(n);
1758
- }
1759
- });
1760
- // Clone each node into a temporary container
1761
- const container = document.createElement('div');
1762
- nodes.forEach((n) => {
1763
- var _a;
1764
- const clone = n.cloneNode(true);
1765
- if (clone.nodeType === Node.TEXT_NODE) {
1766
- clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
1767
- }
1768
- else {
1769
- trimTextNodes(clone);
1770
- }
1771
- container.appendChild(clone);
1772
- });
1773
- /**
1774
- * Sanitize the cloned DOM in place. Trusted attributes (size, color,
1775
- * shape, etc.) are preserved; event handlers, javascript: URLs, and
1776
- * blocked tags are stripped.
1777
- */
1778
- sanitizeDOMTree(container);
1779
- if (useHTML) {
1780
- return container.innerHTML.trim() || null;
1781
- }
1782
- return container;
1783
- };
1784
- /**
1785
- * Returns the child nodes that belong to the default slot of an
1786
- * option element, excluding any nodes that are assigned to named
1787
- * slots.
1788
- *
1789
- * @param option - The `ion-select-option` element to extract default-slot nodes from.
1790
- * @returns An array of default slot nodes, or `null` if none are found.
1791
- */
1792
- const getOptionDefaultSlot = (option) => {
1793
- const defaultSlotNodes = Array.from(option.childNodes).filter((node) => {
1794
- if (node.nodeType === Node.ELEMENT_NODE) {
1795
- return !node.hasAttribute('slot');
1796
- }
1797
- return node.nodeType === Node.TEXT_NODE;
1798
- });
1799
- if (defaultSlotNodes.length === 0) {
1800
- return null;
1801
- }
1802
- return defaultSlotNodes;
1803
- };
1804
- /**
1805
- * Extracts plain text from only the default slot of an option,
1806
- * excluding content assigned to named slots (start/end).
1807
- */
1808
- const getDefaultSlotPlainText = (option) => {
1809
- const texts = Array.from(option.childNodes)
1810
- .filter((node) => {
1811
- if (node.nodeType === Node.ELEMENT_NODE) {
1812
- return !node.hasAttribute('slot');
1813
- }
1814
- return node.nodeType === Node.TEXT_NODE;
1815
- })
1816
- .filter((node) => node.nodeType === Node.TEXT_NODE)
1817
- .map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
1818
- .filter((t) => t);
1819
- return texts.join(' ');
1820
- };
1821
- /**
1822
- * Extracts the rich content from an `ion-select-option`.
1823
- * When `customHTMLEnabled` is `false`, only the plain text from the
1824
- * default slot is read and the start and end slots are skipped.
1825
- *
1826
- * @param option - The `ion-select-option` element to extract content from.
1827
- * @param customHTMLEnabled - Whether custom HTML rendering is enabled
1828
- * via the `innerHTMLTemplatesEnabled` config.
1829
- */
1830
- const extractOptionContent = (option, customHTMLEnabled) => {
1831
- var _a, _b;
1832
- if (!customHTMLEnabled) {
1833
- return {
1834
- content: getDefaultSlotPlainText(option),
1835
- startContent: undefined,
1836
- endContent: undefined,
1837
- };
1838
- }
1839
- return {
1840
- content: getOptionContent(option),
1841
- startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
1842
- endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
1843
- };
1536
+ return selectOpt ? selectOpt.textContent : null;
1844
1537
  };
1845
1538
  let selectIds = 0;
1846
1539
  const OPTION_CLASS = 'select-interface-option';
@@ -75,14 +75,6 @@
75
75
  * @prop --border-width: Width of the select border
76
76
  *
77
77
  * @prop --ripple-color: The color of the ripple effect on MD mode.
78
- *
79
- * @prop --select-text-media-width: The width of media (icons/images) in the select text.
80
- * @prop --select-text-media-height: The height of media (icons/images) in the select text.
81
- * @prop --select-text-media-border-width: The border width of media (icons/images) in the select text.
82
- * @prop --select-text-media-border-color: The border color of media (icons/images) in the select text.
83
- * @prop --select-text-media-border-radius: The border radius of media (icons/images) in the select text.
84
- * @prop --select-text-media-border-style: The border style of media (icons/images) in the select text.
85
- * @prop --select-text-gap: The gap between elements in the select text.
86
78
  */
87
79
  --padding-top: 0px;
88
80
  --padding-end: 0px;
@@ -95,9 +87,6 @@
95
87
  --highlight-color-focused: var(--ion-color-primary, #0054e9);
96
88
  --highlight-color-valid: var(--ion-color-success, #2dd55b);
97
89
  --highlight-color-invalid: var(--ion-color-danger, #c5000f);
98
- --select-text-media-height: 1.5em;
99
- --select-text-media-width: 1.5em;
100
- --select-text-gap: 12px;
101
90
  /**
102
91
  * This is a private API that is used to switch
103
92
  * out the highlight color based on the state
@@ -238,28 +227,6 @@ button {
238
227
  overflow: hidden;
239
228
  }
240
229
 
241
- /**
242
- * If the select text contains rich content, we want to add some
243
- * spacing between the elements without changing the display to
244
- * prevent losing the ellipses behavior.
245
- */
246
- .select-text > * + * {
247
- margin-inline-start: var(--select-text-gap);
248
- }
249
-
250
- .select-text img,
251
- .select-text ion-img,
252
- .select-text ion-icon,
253
- .select-text ion-thumbnail,
254
- .select-text ion-avatar {
255
- border-radius: var(--select-text-media-border-radius);
256
- width: var(--select-text-media-width);
257
- height: var(--select-text-media-height);
258
- border-width: var(--select-text-media-border-width);
259
- border-style: var(--select-text-media-border-style);
260
- border-color: var(--select-text-media-border-color);
261
- }
262
-
263
230
  .select-wrapper {
264
231
  -webkit-padding-start: var(--padding-start);
265
232
  padding-inline-start: var(--padding-start);