@ionic/core 8.4.4-dev.11741206641.18dd4e91 → 8.4.4-dev.11741222721.14322935

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 (326) hide show
  1. package/components/checkbox.js +5 -37
  2. package/components/helpers.js +11 -1
  3. package/components/index9.js +1 -1
  4. package/components/ion-input.js +2 -2
  5. package/components/ion-segment-button.js +40 -9
  6. package/components/ion-select.js +39 -12
  7. package/components/ion-textarea.js +2 -2
  8. package/dist/cjs/{framework-delegate-55f5683a.js → framework-delegate-05579976.js} +1 -1
  9. package/dist/cjs/{helpers-afaa9001.js → helpers-4be3f90d.js} +11 -0
  10. package/dist/cjs/{index-3652c918.js → index-0ff61d0b.js} +1 -1
  11. package/dist/cjs/{index-e975c92b.js → index-26bb7e42.js} +3 -3
  12. package/dist/cjs/{index-0d762bba.js → index-6770fc00.js} +1 -1
  13. package/dist/cjs/{index-9509ecad.js → index-ad7a712e.js} +1 -1
  14. package/dist/cjs/index.cjs.js +7 -7
  15. package/dist/cjs/{input-shims-cd05268a.js → input-shims-fd997b01.js} +2 -2
  16. package/dist/cjs/{input.utils-ffb2f81b.js → input.utils-c15a1814.js} +1 -1
  17. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +3 -3
  19. package/dist/cjs/ion-alert.cjs.entry.js +3 -3
  20. package/dist/cjs/ion-app_8.cjs.entry.js +8 -8
  21. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  22. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  23. package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
  24. package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-checkbox.cjs.entry.js +6 -36
  26. package/dist/cjs/ion-datetime-button.cjs.entry.js +1 -1
  27. package/dist/cjs/ion-datetime_3.cjs.entry.js +3 -3
  28. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  29. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  32. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  34. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-menu_3.cjs.entry.js +4 -4
  36. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  37. package/dist/cjs/ion-nav_2.cjs.entry.js +4 -4
  38. package/dist/cjs/ion-picker-column-option.cjs.entry.js +1 -1
  39. package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
  40. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  41. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  42. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  43. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
  44. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  47. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  48. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  49. package/dist/cjs/ion-segment_2.cjs.entry.js +40 -9
  50. package/dist/cjs/ion-select-modal.cjs.entry.js +3 -3
  51. package/dist/cjs/ion-select_3.cjs.entry.js +42 -15
  52. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +1 -1
  53. package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  55. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  56. package/dist/cjs/ion-toggle.cjs.entry.js +1 -1
  57. package/dist/cjs/ionic.cjs.js +1 -1
  58. package/dist/cjs/{ios.transition-0e664e88.js → ios.transition-a4f35c55.js} +2 -2
  59. package/dist/cjs/loader.cjs.js +1 -1
  60. package/dist/cjs/{md.transition-2e8aef2c.js → md.transition-cdf904e6.js} +2 -2
  61. package/dist/cjs/{notch-controller-d69150f5.js → notch-controller-a0c464d1.js} +1 -1
  62. package/dist/cjs/{overlays-65fdaff6.js → overlays-86695cf1.js} +2 -2
  63. package/dist/cjs/{status-tap-d74f1429.js → status-tap-1a2485c1.js} +2 -2
  64. package/dist/cjs/{swipe-back-0303a5e4.js → swipe-back-47a52b83.js} +1 -1
  65. package/dist/collection/components/checkbox/checkbox.ios.css +15 -52
  66. package/dist/collection/components/checkbox/checkbox.js +3 -70
  67. package/dist/collection/components/checkbox/checkbox.md.css +15 -52
  68. package/dist/collection/components/input/input.ios.css +3 -2
  69. package/dist/collection/components/input/input.md.css +7 -2
  70. package/dist/collection/components/segment-button/segment-button.js +40 -9
  71. package/dist/collection/components/select/select.js +38 -11
  72. package/dist/collection/components/textarea/textarea.ios.css +3 -2
  73. package/dist/collection/components/textarea/textarea.md.css +7 -2
  74. package/dist/collection/utils/helpers.js +10 -0
  75. package/dist/docs.json +1 -73
  76. package/dist/esm/{framework-delegate-63d1a679.js → framework-delegate-f683816e.js} +1 -1
  77. package/dist/esm/{helpers-da915de8.js → helpers-9b49d7d2.js} +11 -1
  78. package/dist/esm/{index-79b30591.js → index-5a0f5fd0.js} +1 -1
  79. package/dist/esm/{index-2f7fde3d.js → index-6a5baab0.js} +3 -3
  80. package/dist/esm/{index-cb21eccb.js → index-7105cd59.js} +1 -1
  81. package/dist/esm/{index-efb8ecdf.js → index-dd0f7395.js} +1 -1
  82. package/dist/esm/index.js +7 -7
  83. package/dist/esm/{input-shims-2fd7c6ef.js → input-shims-dff819a9.js} +2 -2
  84. package/dist/esm/{input.utils-961c9f17.js → input.utils-2f1029cf.js} +1 -1
  85. package/dist/esm/ion-accordion_2.entry.js +1 -1
  86. package/dist/esm/ion-action-sheet.entry.js +3 -3
  87. package/dist/esm/ion-alert.entry.js +3 -3
  88. package/dist/esm/ion-app_8.entry.js +8 -8
  89. package/dist/esm/ion-back-button.entry.js +1 -1
  90. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  91. package/dist/esm/ion-button_2.entry.js +1 -1
  92. package/dist/esm/ion-card_5.entry.js +1 -1
  93. package/dist/esm/ion-checkbox.entry.js +6 -36
  94. package/dist/esm/ion-datetime-button.entry.js +1 -1
  95. package/dist/esm/ion-datetime_3.entry.js +3 -3
  96. package/dist/esm/ion-fab_3.entry.js +1 -1
  97. package/dist/esm/ion-img.entry.js +1 -1
  98. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  99. package/dist/esm/ion-input.entry.js +5 -5
  100. package/dist/esm/ion-item-option_3.entry.js +2 -2
  101. package/dist/esm/ion-item_8.entry.js +1 -1
  102. package/dist/esm/ion-loading.entry.js +3 -3
  103. package/dist/esm/ion-menu_3.entry.js +4 -4
  104. package/dist/esm/ion-modal.entry.js +5 -5
  105. package/dist/esm/ion-nav_2.entry.js +4 -4
  106. package/dist/esm/ion-picker-column-option.entry.js +1 -1
  107. package/dist/esm/ion-picker-column.entry.js +1 -1
  108. package/dist/esm/ion-picker.entry.js +1 -1
  109. package/dist/esm/ion-popover.entry.js +4 -4
  110. package/dist/esm/ion-progress-bar.entry.js +1 -1
  111. package/dist/esm/ion-radio_2.entry.js +1 -1
  112. package/dist/esm/ion-range.entry.js +2 -2
  113. package/dist/esm/ion-refresher_2.entry.js +2 -2
  114. package/dist/esm/ion-reorder_2.entry.js +2 -2
  115. package/dist/esm/ion-route_4.entry.js +1 -1
  116. package/dist/esm/ion-searchbar.entry.js +1 -1
  117. package/dist/esm/ion-segment_2.entry.js +40 -9
  118. package/dist/esm/ion-select-modal.entry.js +3 -3
  119. package/dist/esm/ion-select_3.entry.js +42 -15
  120. package/dist/esm/ion-tab-bar_2.entry.js +1 -1
  121. package/dist/esm/ion-tab_2.entry.js +2 -2
  122. package/dist/esm/ion-textarea.entry.js +5 -5
  123. package/dist/esm/ion-toast.entry.js +3 -3
  124. package/dist/esm/ion-toggle.entry.js +1 -1
  125. package/dist/esm/ionic.js +1 -1
  126. package/dist/esm/{ios.transition-b1da3753.js → ios.transition-314468a2.js} +2 -2
  127. package/dist/esm/loader.js +1 -1
  128. package/dist/esm/{md.transition-571b3859.js → md.transition-a560e0e2.js} +2 -2
  129. package/dist/esm/{notch-controller-55b09e11.js → notch-controller-3dc61260.js} +1 -1
  130. package/dist/esm/{overlays-5deab4de.js → overlays-9a81f230.js} +2 -2
  131. package/dist/esm/{status-tap-79eac0ac.js → status-tap-d07dbc82.js} +2 -2
  132. package/dist/esm/{swipe-back-e5394307.js → swipe-back-23ee7ab1.js} +1 -1
  133. package/dist/esm-es5/{framework-delegate-63d1a679.js → framework-delegate-f683816e.js} +1 -1
  134. package/dist/esm-es5/{helpers-da915de8.js → helpers-9b49d7d2.js} +1 -1
  135. package/dist/esm-es5/{index-79b30591.js → index-5a0f5fd0.js} +1 -1
  136. package/dist/esm-es5/{index-2f7fde3d.js → index-6a5baab0.js} +1 -1
  137. package/dist/esm-es5/{index-cb21eccb.js → index-7105cd59.js} +1 -1
  138. package/dist/esm-es5/{index-efb8ecdf.js → index-dd0f7395.js} +1 -1
  139. package/dist/esm-es5/index.js +1 -1
  140. package/dist/esm-es5/{input-shims-2fd7c6ef.js → input-shims-dff819a9.js} +1 -1
  141. package/dist/esm-es5/{input.utils-961c9f17.js → input.utils-2f1029cf.js} +1 -1
  142. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  143. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  144. package/dist/esm-es5/ion-alert.entry.js +1 -1
  145. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  146. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  147. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  148. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  149. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  150. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  151. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  152. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  153. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  154. package/dist/esm-es5/ion-img.entry.js +1 -1
  155. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  156. package/dist/esm-es5/ion-input.entry.js +1 -1
  157. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  158. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  159. package/dist/esm-es5/ion-loading.entry.js +1 -1
  160. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  161. package/dist/esm-es5/ion-modal.entry.js +1 -1
  162. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  163. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  164. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  165. package/dist/esm-es5/ion-picker.entry.js +1 -1
  166. package/dist/esm-es5/ion-popover.entry.js +1 -1
  167. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  168. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  169. package/dist/esm-es5/ion-range.entry.js +1 -1
  170. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  171. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  172. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  173. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  174. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  175. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  176. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  177. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  178. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  179. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  180. package/dist/esm-es5/ion-toast.entry.js +1 -1
  181. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  182. package/dist/esm-es5/ionic.js +1 -1
  183. package/dist/esm-es5/{ios.transition-b1da3753.js → ios.transition-314468a2.js} +1 -1
  184. package/dist/esm-es5/loader.js +1 -1
  185. package/dist/esm-es5/md.transition-a560e0e2.js +4 -0
  186. package/dist/esm-es5/{notch-controller-55b09e11.js → notch-controller-3dc61260.js} +1 -1
  187. package/dist/esm-es5/{overlays-5deab4de.js → overlays-9a81f230.js} +1 -1
  188. package/dist/esm-es5/{status-tap-79eac0ac.js → status-tap-d07dbc82.js} +1 -1
  189. package/dist/esm-es5/{swipe-back-e5394307.js → swipe-back-23ee7ab1.js} +1 -1
  190. package/dist/html.html-data.json +0 -8
  191. package/dist/ionic/index.esm.js +1 -1
  192. package/dist/ionic/ionic.esm.js +1 -1
  193. package/dist/ionic/{p-937a7e21.entry.js → p-02e23f26.entry.js} +1 -1
  194. package/dist/ionic/{p-9b428d25.entry.js → p-037fc3f3.entry.js} +1 -1
  195. package/dist/ionic/p-04e08129.entry.js +4 -0
  196. package/dist/ionic/{p-b3c60433.system.js → p-058e61eb.system.js} +1 -1
  197. package/dist/ionic/{p-bdf2cb2e.system.entry.js → p-0bfffa34.system.entry.js} +1 -1
  198. package/dist/ionic/{p-7ed1657c.system.entry.js → p-0eb2553a.system.entry.js} +1 -1
  199. package/dist/ionic/{p-9b122e3c.system.entry.js → p-10327ad2.system.entry.js} +1 -1
  200. package/dist/ionic/{p-f63c2d12.entry.js → p-155c2bb0.entry.js} +1 -1
  201. package/dist/ionic/{p-a8f2c254.entry.js → p-155f4d90.entry.js} +1 -1
  202. package/dist/ionic/{p-2346ab53.system.entry.js → p-18e101b7.system.entry.js} +1 -1
  203. package/dist/ionic/p-1f405274.js +4 -0
  204. package/dist/ionic/p-21227121.js +4 -0
  205. package/dist/ionic/{p-7513b0c4.js → p-22149a4f.js} +1 -1
  206. package/dist/ionic/{p-2b838f86.system.entry.js → p-2515cb4d.system.entry.js} +1 -1
  207. package/dist/ionic/{p-de930745.entry.js → p-265939f0.entry.js} +1 -1
  208. package/dist/ionic/{p-34b11c24.js → p-2bc73fb5.js} +1 -1
  209. package/dist/ionic/p-2c9eb774.system.js +4 -0
  210. package/dist/ionic/{p-61db139d.entry.js → p-2cbe5399.entry.js} +1 -1
  211. package/dist/ionic/{p-2e46590d.system.entry.js → p-2ef3c7ee.system.entry.js} +1 -1
  212. package/dist/ionic/{p-cba1f9bc.system.entry.js → p-31a6efce.system.entry.js} +1 -1
  213. package/dist/ionic/p-322c5fb4.system.js +1 -1
  214. package/dist/ionic/{p-0430c2e0.entry.js → p-34479cfb.entry.js} +1 -1
  215. package/dist/ionic/p-346b2baf.js +4 -0
  216. package/dist/ionic/{p-b1eb86fd.entry.js → p-36c448fe.entry.js} +1 -1
  217. package/dist/ionic/{p-1ab13b2b.js → p-39dd4f62.js} +1 -1
  218. package/dist/ionic/p-3e99e3e0.entry.js +4 -0
  219. package/dist/ionic/p-4129228f.system.entry.js +4 -0
  220. package/dist/ionic/{p-9df2c6fb.entry.js → p-41780810.entry.js} +1 -1
  221. package/dist/ionic/{p-577bc414.entry.js → p-42c9deb1.entry.js} +1 -1
  222. package/dist/ionic/{p-a15ddedb.system.js → p-4452a8ac.system.js} +1 -1
  223. package/dist/ionic/{p-933727f9.system.entry.js → p-484d855b.system.entry.js} +2 -2
  224. package/dist/ionic/{p-52d7a191.entry.js → p-4ad78edc.entry.js} +1 -1
  225. package/dist/ionic/{p-28706c6f.js → p-4d3a5f86.js} +1 -1
  226. package/dist/ionic/{p-6933c482.system.entry.js → p-4d413973.system.entry.js} +1 -1
  227. package/dist/ionic/{p-74e3f0af.system.entry.js → p-5010643d.system.entry.js} +2 -2
  228. package/dist/ionic/{p-19ea7bff.system.js → p-5126cf1e.system.js} +1 -1
  229. package/dist/ionic/p-52245809.js +4 -0
  230. package/dist/ionic/p-56da53ad.system.entry.js +4 -0
  231. package/dist/ionic/{p-a88dec0d.system.js → p-578efda4.system.js} +1 -1
  232. package/dist/ionic/{p-a0eb506c.system.entry.js → p-5882bffa.system.entry.js} +1 -1
  233. package/dist/ionic/{p-a3db8ee3.js → p-5c9324c6.js} +1 -1
  234. package/dist/ionic/{p-6d6cedc5.entry.js → p-6190d0d6.entry.js} +1 -1
  235. package/dist/ionic/{p-ab674093.system.entry.js → p-63c09585.system.entry.js} +1 -1
  236. package/dist/ionic/{p-585b455c.system.entry.js → p-65346408.system.entry.js} +1 -1
  237. package/dist/ionic/{p-a4a2420e.system.entry.js → p-655723eb.system.entry.js} +1 -1
  238. package/dist/ionic/{p-120fb79a.entry.js → p-70af0afb.entry.js} +1 -1
  239. package/dist/ionic/{p-7ddc46c3.system.entry.js → p-70ccc275.system.entry.js} +1 -1
  240. package/dist/ionic/p-712fedc9.entry.js +4 -0
  241. package/dist/ionic/{p-5c9eb9af.entry.js → p-72ec9a26.entry.js} +1 -1
  242. package/dist/ionic/{p-0eb35a7f.system.js → p-73897169.system.js} +1 -1
  243. package/dist/ionic/{p-98ff6b32.entry.js → p-76446a85.entry.js} +1 -1
  244. package/dist/ionic/{p-98231c01.system.entry.js → p-77e7b7b6.system.entry.js} +1 -1
  245. package/dist/ionic/{p-72812e99.js → p-7a1766d6.js} +1 -1
  246. package/dist/ionic/{p-9f364443.system.entry.js → p-7ae680ba.system.entry.js} +1 -1
  247. package/dist/ionic/{p-16188af7.entry.js → p-7b98cebe.entry.js} +1 -1
  248. package/dist/ionic/{p-fceec762.entry.js → p-80c6d619.entry.js} +1 -1
  249. package/dist/ionic/{p-1e67b266.system.entry.js → p-84d08aae.system.entry.js} +1 -1
  250. package/dist/ionic/{p-7de1e42c.system.js → p-860eb968.system.js} +1 -1
  251. package/dist/ionic/{p-7a02f476.entry.js → p-8818edd8.entry.js} +1 -1
  252. package/dist/ionic/{p-c4238c12.system.js → p-8e407469.system.js} +1 -1
  253. package/dist/ionic/{p-567de071.system.entry.js → p-92365bc1.system.entry.js} +1 -1
  254. package/dist/ionic/{p-f1120724.system.entry.js → p-93e3654c.system.entry.js} +1 -1
  255. package/dist/ionic/{p-d7aa6b00.entry.js → p-955c3eb8.entry.js} +1 -1
  256. package/dist/ionic/{p-8635f5e6.system.js → p-95da3ae2.system.js} +1 -1
  257. package/dist/ionic/{p-b6efeab8.js → p-990630ca.js} +1 -1
  258. package/dist/ionic/{p-92763d3d.entry.js → p-9962f63f.entry.js} +1 -1
  259. package/dist/ionic/p-9a100adc.entry.js +4 -0
  260. package/dist/ionic/{p-b9d7015f.entry.js → p-9b3bb24e.entry.js} +1 -1
  261. package/dist/ionic/{p-f1060cd8.entry.js → p-9de5c787.entry.js} +1 -1
  262. package/dist/ionic/{p-e3171ff3.entry.js → p-a18470c6.entry.js} +1 -1
  263. package/dist/ionic/{p-e06057c9.entry.js → p-a5b31c0f.entry.js} +1 -1
  264. package/dist/ionic/{p-01186920.system.entry.js → p-a9e24ae2.system.entry.js} +1 -1
  265. package/dist/ionic/{p-5c08627a.system.js → p-acb30a5c.system.js} +1 -1
  266. package/dist/ionic/p-acc8399c.system.entry.js +4 -0
  267. package/dist/ionic/p-af09741c.entry.js +4 -0
  268. package/dist/ionic/{p-d22e2a38.system.js → p-af452fa4.system.js} +1 -1
  269. package/dist/ionic/{p-e09d6392.system.entry.js → p-af744710.system.entry.js} +1 -1
  270. package/dist/ionic/{p-3ad285e3.system.js → p-b3680e2f.system.js} +1 -1
  271. package/dist/ionic/p-b936eb7e.system.entry.js +4 -0
  272. package/dist/ionic/{p-b51e4004.js → p-bb11d9fb.js} +1 -1
  273. package/dist/ionic/{p-081a4ce4.entry.js → p-bb2a6761.entry.js} +1 -1
  274. package/dist/ionic/{p-948e6c6a.entry.js → p-bc616455.entry.js} +1 -1
  275. package/dist/ionic/{p-bb0db172.entry.js → p-c32644d7.entry.js} +1 -1
  276. package/dist/ionic/{p-4c98e2cf.system.js → p-c3802319.system.js} +1 -1
  277. package/dist/ionic/{p-c41ac815.entry.js → p-c8d645b3.entry.js} +1 -1
  278. package/dist/ionic/{p-f1c4dcd4.js → p-c935cfc9.js} +1 -1
  279. package/dist/ionic/{p-6dfb0f39.system.entry.js → p-d1172fe3.system.entry.js} +1 -1
  280. package/dist/ionic/{p-3cc276f4.js → p-d4ca0475.js} +1 -1
  281. package/dist/ionic/{p-7a6eaf9e.entry.js → p-d7bb5325.entry.js} +1 -1
  282. package/dist/ionic/{p-a090bce8.system.entry.js → p-d821466d.system.entry.js} +1 -1
  283. package/dist/ionic/{p-ada36597.system.js → p-d99e8644.system.js} +1 -1
  284. package/dist/ionic/{p-58d5df0c.system.entry.js → p-da8ef548.system.entry.js} +1 -1
  285. package/dist/ionic/{p-985a7e17.system.entry.js → p-dc146a2a.system.entry.js} +1 -1
  286. package/dist/ionic/{p-cac0e0b3.system.entry.js → p-dd0c9350.system.entry.js} +1 -1
  287. package/dist/ionic/p-df862603.entry.js +4 -0
  288. package/dist/ionic/{p-2172893e.system.entry.js → p-e2e19375.system.entry.js} +1 -1
  289. package/dist/ionic/{p-05b74e45.system.entry.js → p-e32557bb.system.entry.js} +1 -1
  290. package/dist/ionic/{p-2da9c8a7.entry.js → p-e5849f8d.entry.js} +1 -1
  291. package/dist/ionic/{p-15e76dd1.entry.js → p-e8f34871.entry.js} +1 -1
  292. package/dist/ionic/{p-d6eaffb1.system.entry.js → p-eeb5cb45.system.entry.js} +2 -2
  293. package/dist/ionic/{p-744c8672.system.entry.js → p-efbf5af5.system.entry.js} +1 -1
  294. package/dist/ionic/{p-e6376b93.system.entry.js → p-f2613334.system.entry.js} +1 -1
  295. package/dist/ionic/{p-e4ee80be.system.entry.js → p-f301a694.system.entry.js} +1 -1
  296. package/dist/ionic/{p-fbd41a7e.system.entry.js → p-f56752be.system.entry.js} +1 -1
  297. package/dist/ionic/{p-e76dae93.entry.js → p-f5d6624d.entry.js} +1 -1
  298. package/dist/ionic/{p-797eeea8.system.entry.js → p-f78af648.system.entry.js} +1 -1
  299. package/dist/ionic/{p-63b0abde.system.entry.js → p-f89cf011.system.entry.js} +1 -1
  300. package/dist/ionic/p-fbf86e62.system.js +4 -0
  301. package/dist/ionic/{p-7b9a2b23.entry.js → p-fca17935.entry.js} +1 -1
  302. package/dist/ionic/{p-eef505e8.entry.js → p-fec13c57.entry.js} +1 -1
  303. package/dist/types/components/checkbox/checkbox.d.ts +0 -19
  304. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  305. package/dist/types/components.d.ts +0 -16
  306. package/dist/types/utils/helpers.d.ts +1 -0
  307. package/hydrate/index.js +96 -63
  308. package/hydrate/index.mjs +96 -63
  309. package/package.json +2 -2
  310. package/dist/esm-es5/md.transition-571b3859.js +0 -4
  311. package/dist/ionic/p-0af823e1.js +0 -4
  312. package/dist/ionic/p-1132ffee.entry.js +0 -4
  313. package/dist/ionic/p-15d18206.entry.js +0 -4
  314. package/dist/ionic/p-248318e0.system.entry.js +0 -4
  315. package/dist/ionic/p-302b50bb.system.entry.js +0 -4
  316. package/dist/ionic/p-4c2d5b80.system.js +0 -4
  317. package/dist/ionic/p-4ec778aa.entry.js +0 -4
  318. package/dist/ionic/p-72bc8a1c.js +0 -4
  319. package/dist/ionic/p-8694928f.entry.js +0 -4
  320. package/dist/ionic/p-9343a445.js +0 -4
  321. package/dist/ionic/p-c4b53b16.system.entry.js +0 -4
  322. package/dist/ionic/p-cb13696c.js +0 -4
  323. package/dist/ionic/p-cdc83025.entry.js +0 -4
  324. package/dist/ionic/p-d1c5b60e.system.js +0 -4
  325. package/dist/ionic/p-d7dd8fb1.entry.js +0 -4
  326. package/dist/ionic/p-e4fde4fb.system.entry.js +0 -4
@@ -13,15 +13,10 @@ import { getIonMode } from "../../global/ionic-global";
13
13
  * @part container - The container for the checkbox mark.
14
14
  * @part label - The label text describing the checkbox.
15
15
  * @part mark - The checkmark used to indicate the checked state.
16
- * @part supporting-text - Supporting text displayed beneath the checkbox label.
17
- * @part helper-text - Supporting text displayed beneath the checkbox label when the checkbox is valid.
18
- * @part error-text - Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched.
19
16
  */
20
17
  export class Checkbox {
21
18
  constructor() {
22
19
  this.inputId = `ion-cb-${checkboxIds++}`;
23
- this.helperTextId = `${this.inputId}-helper-text`;
24
- this.errorTextId = `${this.inputId}-error-text`;
25
20
  this.inheritedAttributes = {};
26
21
  /**
27
22
  * Sets the checked property and emits
@@ -59,8 +54,6 @@ export class Checkbox {
59
54
  this.checked = false;
60
55
  this.indeterminate = false;
61
56
  this.disabled = false;
62
- this.errorText = undefined;
63
- this.helperText = undefined;
64
57
  this.value = 'on';
65
58
  this.labelPlacement = 'start';
66
59
  this.justify = undefined;
@@ -76,38 +69,12 @@ export class Checkbox {
76
69
  this.focusEl.focus();
77
70
  }
78
71
  }
79
- getHintTextID() {
80
- const { el, helperText, errorText, helperTextId, errorTextId } = this;
81
- if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
82
- return errorTextId;
83
- }
84
- if (helperText) {
85
- return helperTextId;
86
- }
87
- return undefined;
88
- }
89
- /**
90
- * Responsible for rendering helper text and error text.
91
- * This element should only be rendered if hint text is set.
92
- */
93
- renderHintText() {
94
- const { helperText, errorText, helperTextId, errorTextId } = this;
95
- /**
96
- * undefined and empty string values should
97
- * be treated as not having helper/error text.
98
- */
99
- const hasHintText = !!helperText || !!errorText;
100
- if (!hasHintText) {
101
- return;
102
- }
103
- return (h("div", { class: "checkbox-bottom" }, h("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), h("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
104
- }
105
72
  render() {
106
73
  const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
107
74
  const mode = getIonMode(this);
108
75
  const path = getSVGPath(mode, indeterminate);
109
76
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
110
- return (h(Host, { key: '7ac31df89b07c781ddcd30a6a8c109494d0c500a', "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, class: createColorClasses(color, {
77
+ return (h(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses(color, {
111
78
  [mode]: true,
112
79
  'in-item': hostContext('ion-item', el),
113
80
  'checkbox-checked': checked,
@@ -117,10 +84,10 @@ export class Checkbox {
117
84
  [`checkbox-justify-${justify}`]: justify !== undefined,
118
85
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
119
86
  [`checkbox-label-placement-${labelPlacement}`]: true,
120
- }), onClick: this.onClick }, h("label", { key: '674e923fe1ec83a33c31d67b0d414d61ba8f9e4b', class: "checkbox-wrapper" }, h("input", Object.assign({ key: 'c4866e392fbdf3b76edcd1507cb67f40a213a4e7', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), h("div", { key: '79cb96e5963b9331a760438ec8cc9e456215de91', class: {
87
+ }), onClick: this.onClick }, h("label", { key: '3439d546e8b60187421db698eab63a0bdd31c973', class: "checkbox-wrapper" }, h("input", Object.assign({ key: '9f45cf7dbdedcf01ec132c11e16979adb1aa102f', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), h("div", { key: '4e882f98939cc4b7c7ab7459c751d3f4bb2023fe', class: {
121
88
  'label-text-wrapper': true,
122
89
  'label-text-wrapper-hidden': el.textContent === '',
123
- }, part: "label" }, h("slot", { key: '896cb26292c9a4a6c105afb39611472b93bf5e90' }), this.renderHintText()), h("div", { key: '52cd22e79fd5db30b45d7b092aa5af3944392336', class: "native-wrapper" }, h("svg", { key: '18d862ab7cc32055eaf200eea560ff1b2b6cbde0', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
90
+ }, part: "label" }, h("slot", { key: '0abda81297a086d02c4a56af75005547971dfcfe' })), h("div", { key: '36489ea3f48a7d0ec46b77c243f9f253ef5c2b3b', class: "native-wrapper" }, h("svg", { key: '4c53b52f5e93752672a34eb6f180b75fa9af9046', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
124
91
  }
125
92
  getSVGPath(mode, indeterminate) {
126
93
  let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -240,40 +207,6 @@ export class Checkbox {
240
207
  "reflect": false,
241
208
  "defaultValue": "false"
242
209
  },
243
- "errorText": {
244
- "type": "string",
245
- "mutable": false,
246
- "complexType": {
247
- "original": "string",
248
- "resolved": "string | undefined",
249
- "references": {}
250
- },
251
- "required": false,
252
- "optional": true,
253
- "docs": {
254
- "tags": [],
255
- "text": "Text that is placed under the checkbox label and displayed when an error is detected."
256
- },
257
- "attribute": "error-text",
258
- "reflect": false
259
- },
260
- "helperText": {
261
- "type": "string",
262
- "mutable": false,
263
- "complexType": {
264
- "original": "string",
265
- "resolved": "string | undefined",
266
- "references": {}
267
- },
268
- "required": false,
269
- "optional": true,
270
- "docs": {
271
- "tags": [],
272
- "text": "Text that is placed under the checkbox label and displayed when no error is detected."
273
- },
274
- "attribute": "helper-text",
275
- "reflect": false
276
- },
277
210
  "value": {
278
211
  "type": "any",
279
212
  "mutable": false,
@@ -189,39 +189,32 @@ input {
189
189
  opacity: 0;
190
190
  }
191
191
 
192
- .checkbox-bottom {
193
- padding-top: 4px;
194
- display: flex;
192
+ :host(.checkbox-justify-space-between) .checkbox-wrapper {
195
193
  justify-content: space-between;
196
- font-size: 0.75rem;
197
- white-space: normal;
198
194
  }
199
195
 
200
- :host(.checkbox-label-placement-stacked) .checkbox-bottom {
201
- font-size: 1rem;
196
+ :host(.checkbox-justify-start) .checkbox-wrapper {
197
+ justify-content: start;
202
198
  }
203
199
 
204
- /**
205
- * Error text should only be shown when .ion-invalid is
206
- * present on the checkbox. Otherwise the helper text should
207
- * be shown.
208
- */
209
- .checkbox-bottom .error-text {
210
- display: none;
211
- color: var(--ion-color-danger, #c5000f);
200
+ :host(.checkbox-justify-end) .checkbox-wrapper {
201
+ justify-content: end;
212
202
  }
213
203
 
214
- .checkbox-bottom .helper-text {
215
- display: block;
216
- color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
204
+ :host(.checkbox-alignment-start) .checkbox-wrapper {
205
+ align-items: start;
217
206
  }
218
207
 
219
- :host(.ion-touched.ion-invalid) .checkbox-bottom .error-text {
220
- display: block;
208
+ :host(.checkbox-alignment-center) .checkbox-wrapper {
209
+ align-items: center;
221
210
  }
222
211
 
223
- :host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text {
224
- display: none;
212
+ :host(.checkbox-justify-space-between),
213
+ :host(.checkbox-justify-start),
214
+ :host(.checkbox-justify-end),
215
+ :host(.checkbox-alignment-start),
216
+ :host(.checkbox-alignment-center) {
217
+ display: block;
225
218
  }
226
219
 
227
220
  /**
@@ -250,7 +243,6 @@ input {
250
243
  */
251
244
  :host(.checkbox-label-placement-end) .checkbox-wrapper {
252
245
  flex-direction: row-reverse;
253
- justify-content: start;
254
246
  }
255
247
 
256
248
  /**
@@ -293,7 +285,6 @@ input {
293
285
  */
294
286
  :host(.checkbox-label-placement-stacked) .checkbox-wrapper {
295
287
  flex-direction: column;
296
- text-align: center;
297
288
  }
298
289
 
299
290
  :host(.checkbox-label-placement-stacked) .label-text-wrapper {
@@ -339,34 +330,6 @@ input {
339
330
  }
340
331
  }
341
332
 
342
- :host(.checkbox-justify-space-between) .checkbox-wrapper {
343
- justify-content: space-between;
344
- }
345
-
346
- :host(.checkbox-justify-start) .checkbox-wrapper {
347
- justify-content: start;
348
- }
349
-
350
- :host(.checkbox-justify-end) .checkbox-wrapper {
351
- justify-content: end;
352
- }
353
-
354
- :host(.checkbox-alignment-start) .checkbox-wrapper {
355
- align-items: start;
356
- }
357
-
358
- :host(.checkbox-alignment-center) .checkbox-wrapper {
359
- align-items: center;
360
- }
361
-
362
- :host(.checkbox-justify-space-between),
363
- :host(.checkbox-justify-start),
364
- :host(.checkbox-justify-end),
365
- :host(.checkbox-alignment-start),
366
- :host(.checkbox-alignment-center) {
367
- display: block;
368
- }
369
-
370
333
  :host(.checkbox-checked) .checkbox-icon,
371
334
  :host(.checkbox-indeterminate) .checkbox-icon {
372
335
  border-color: var(--border-color-checked);
@@ -311,6 +311,7 @@
311
311
  justify-content: space-between;
312
312
  border-top: var(--border-width) var(--border-style) var(--border-color);
313
313
  font-size: 0.75rem;
314
+ white-space: normal;
314
315
  }
315
316
 
316
317
  /**
@@ -340,7 +341,7 @@
340
341
 
341
342
  .input-bottom .helper-text {
342
343
  display: block;
343
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
344
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
344
345
  }
345
346
 
346
347
  :host(.ion-touched.ion-invalid) .input-bottom .error-text {
@@ -359,7 +360,7 @@
359
360
  */
360
361
  -webkit-margin-start: auto;
361
362
  margin-inline-start: auto;
362
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
363
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
363
364
  white-space: nowrap;
364
365
  padding-inline-start: 16px;
365
366
  }
@@ -311,6 +311,7 @@
311
311
  justify-content: space-between;
312
312
  border-top: var(--border-width) var(--border-style) var(--border-color);
313
313
  font-size: 0.75rem;
314
+ white-space: normal;
314
315
  }
315
316
 
316
317
  /**
@@ -340,7 +341,7 @@
340
341
 
341
342
  .input-bottom .helper-text {
342
343
  display: block;
343
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
344
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
344
345
  }
345
346
 
346
347
  :host(.ion-touched.ion-invalid) .input-bottom .error-text {
@@ -359,7 +360,7 @@
359
360
  */
360
361
  -webkit-margin-start: auto;
361
362
  margin-inline-start: auto;
362
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
363
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
363
364
  white-space: nowrap;
364
365
  padding-inline-start: 16px;
365
366
  }
@@ -799,6 +800,10 @@
799
800
  --border-color: var(--highlight-color);
800
801
  }
801
802
 
803
+ /**
804
+ * The bottom content should never have
805
+ * a border with the solid style.
806
+ */
802
807
  :host(.input-fill-solid) .input-bottom {
803
808
  border-top: none;
804
809
  }
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, forceUpdate, h } from "@stencil/core";
5
- import { addEventListener, removeEventListener, inheritAttributes } from "../../utils/helpers";
5
+ import { addEventListener, removeEventListener, inheritAttributes, getNextSiblingOfType } from "../../utils/helpers";
6
6
  import { hostContext } from "../../utils/theme";
7
7
  import { getIonMode } from "../../global/ionic-global";
8
8
  let ids = 0;
@@ -39,7 +39,35 @@ export class SegmentButton {
39
39
  valueChanged() {
40
40
  this.updateState();
41
41
  }
42
- connectedCallback() {
42
+ waitForSegmentContent(ionSegment, contentId) {
43
+ return new Promise((resolve, reject) => {
44
+ let timeoutId = undefined;
45
+ let animationFrameId;
46
+ const check = () => {
47
+ if (!ionSegment) {
48
+ reject(new Error(`Segment not found when looking for Segment Content`));
49
+ return;
50
+ }
51
+ const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
52
+ const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
53
+ if (segmentContent && timeoutId) {
54
+ clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
55
+ cancelAnimationFrame(animationFrameId);
56
+ resolve(segmentContent);
57
+ }
58
+ else {
59
+ animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
60
+ }
61
+ };
62
+ check();
63
+ // Set a timeout to reject the promise
64
+ timeoutId = setTimeout(() => {
65
+ cancelAnimationFrame(animationFrameId);
66
+ reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
67
+ }, 1000);
68
+ });
69
+ }
70
+ async connectedCallback() {
43
71
  const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
44
72
  if (segmentEl) {
45
73
  this.updateState();
@@ -49,11 +77,14 @@ export class SegmentButton {
49
77
  // Return if there is no contentId defined
50
78
  if (!this.contentId)
51
79
  return;
52
- // Attempt to find the Segment Content by its contentId
53
- const segmentContent = document.getElementById(this.contentId);
54
- // If no associated Segment Content exists, log an error and return
55
- if (!segmentContent) {
56
- console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
80
+ let segmentContent;
81
+ try {
82
+ // Attempt to find the Segment Content by its contentId
83
+ segmentContent = await this.waitForSegmentContent(segmentEl, this.contentId);
84
+ }
85
+ catch (error) {
86
+ // If no associated Segment Content exists, log an error and return
87
+ console.error('Segment Button: ', error.message);
57
88
  return;
58
89
  }
59
90
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
@@ -99,7 +130,7 @@ export class SegmentButton {
99
130
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
100
131
  const mode = getIonMode(this);
101
132
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
102
- return (h(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
133
+ return (h(Host, { key: 'f9da656c8eccb80e4ef30e3fa977f2dbbefbc988', class: {
103
134
  [mode]: true,
104
135
  'in-toolbar': hostContext('ion-toolbar', this.el),
105
136
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -115,7 +146,7 @@ export class SegmentButton {
115
146
  'ion-activatable': true,
116
147
  'ion-activatable-instant': true,
117
148
  'ion-focusable': true,
118
- } }, h("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, h("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && h("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), h("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
149
+ } }, h("button", Object.assign({ key: '00dbcdbd81cd74abdd39803f6840a6e477cc7b0c', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '5200c082a9c4788010c4fc33fe75e2b2ad28364a', class: "button-inner" }, h("slot", { key: 'cf3fce2b5d22436b84cd4367a5885df7d6a2715f' })), mode === 'md' && h("ion-ripple-effect", { key: 'f1a2816465f4c2c06644be07315bff2da77e2342' })), h("div", { key: 'aaf31c0ed39641fca698ee98d0773131f4eea6bd', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'fc556651361b7ac305aaedd25ea4afe3173abd20', part: "indicator-background", class: "segment-button-indicator-background" }))));
119
150
  }
120
151
  static get is() { return "ion-segment-button"; }
121
152
  static get encapsulation() { return "shadow"; }
@@ -154,15 +154,8 @@ export class Select {
154
154
  }
155
155
  this.isExpanded = true;
156
156
  const overlay = (this.overlay = await this.createOverlay(event));
157
- overlay.onDidDismiss().then(() => {
158
- this.overlay = undefined;
159
- this.isExpanded = false;
160
- this.ionDismiss.emit();
161
- this.setFocus();
162
- });
163
- await overlay.present();
164
- // focus selected option for popovers and modals
165
- if (this.interface === 'popover' || this.interface === 'modal') {
157
+ // Add logic to scroll selected item into view before presenting
158
+ const scrollSelectedIntoView = () => {
166
159
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
167
160
  if (indexOfSelected > -1) {
168
161
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -180,6 +173,7 @@ export class Select {
180
173
  */
181
174
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
182
175
  if (interactiveEl) {
176
+ selectedItem.scrollIntoView({ block: 'nearest' });
183
177
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
184
178
  // and removing `ion-focused` style
185
179
  interactiveEl.setFocus();
@@ -203,7 +197,40 @@ export class Select {
203
197
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
204
198
  }
205
199
  }
200
+ };
201
+ // For modals and popovers, we can scroll before they're visible
202
+ if (this.interface === 'modal') {
203
+ overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
204
+ }
205
+ else if (this.interface === 'popover') {
206
+ overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
206
207
  }
208
+ else {
209
+ /**
210
+ * For alerts and action sheets, we need to wait a frame after willPresent
211
+ * because these overlays don't have their content in the DOM immediately
212
+ * when willPresent fires. By waiting a frame, we ensure the content is
213
+ * rendered and can be properly scrolled into view.
214
+ */
215
+ const scrollAfterRender = () => {
216
+ requestAnimationFrame(() => {
217
+ scrollSelectedIntoView();
218
+ });
219
+ };
220
+ if (this.interface === 'alert') {
221
+ overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
222
+ }
223
+ else if (this.interface === 'action-sheet') {
224
+ overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
225
+ }
226
+ }
227
+ overlay.onDidDismiss().then(() => {
228
+ this.overlay = undefined;
229
+ this.isExpanded = false;
230
+ this.ionDismiss.emit();
231
+ this.setFocus();
232
+ });
233
+ await overlay.present();
207
234
  return overlay;
208
235
  }
209
236
  createOverlay(ev) {
@@ -661,7 +688,7 @@ export class Select {
661
688
  * TODO(FW-5592): Remove hasStartEndSlots condition
662
689
  */
663
690
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
664
- return (h(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses(this.color, {
691
+ return (h(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses(this.color, {
665
692
  [mode]: true,
666
693
  'in-item': inItem,
667
694
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -677,7 +704,7 @@ export class Select {
677
704
  [`select-justify-${justify}`]: justifyEnabled,
678
705
  [`select-shape-${shape}`]: shape !== undefined,
679
706
  [`select-label-placement-${labelPlacement}`]: true,
680
- }) }, h("label", { key: '07bf3cb57bd1121383d8c746e3ac49da38300082', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '884facd18342797576bbacc761d18d83c52762e3', class: "select-wrapper-inner" }, h("slot", { key: 'c4f2a2a7a76f52db15f9a0b806017caea443c47a', name: "start" }), h("div", { key: '235cf383f268cc74412722cd31e246cbd4c2abe5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '1481302e11c494d49dfd80a7aaf743f7e851558f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '8a45ea9280651695c8e5435f266c286f3e3f6a18', class: "select-highlight" }))));
707
+ }) }, h("label", { key: '91674f8f5cce37c87a7096d09b3f1d351cba1527', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '2229333833047db13ed2a01cb10bb6e6f774031d', class: "select-wrapper-inner" }, h("slot", { key: 'f2766bdf8bff261efa5711f72d9edef407e45189', name: "start" }), h("div", { key: '84fec020ecaaac41298a01dbffdbb2f3744170b4', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '9b91237d7a1621bce1e15546abcb4f6b74cccc5f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'e02aea3e8f344376013257f5261a29408e62b359', class: "select-highlight" }))));
681
708
  }
682
709
  static get is() { return "ion-select"; }
683
710
  static get encapsulation() { return "shadow"; }
@@ -373,6 +373,7 @@
373
373
  justify-content: space-between;
374
374
  border-top: var(--border-width) var(--border-style) var(--border-color);
375
375
  font-size: 0.75rem;
376
+ white-space: normal;
376
377
  }
377
378
 
378
379
  /**
@@ -396,7 +397,7 @@
396
397
 
397
398
  .textarea-bottom .helper-text {
398
399
  display: block;
399
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
400
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
400
401
  }
401
402
 
402
403
  :host(.ion-touched.ion-invalid) .textarea-bottom .error-text {
@@ -415,7 +416,7 @@
415
416
  */
416
417
  -webkit-margin-start: auto;
417
418
  margin-inline-start: auto;
418
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
419
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
419
420
  white-space: nowrap;
420
421
  padding-inline-start: 16px;
421
422
  }
@@ -373,6 +373,7 @@
373
373
  justify-content: space-between;
374
374
  border-top: var(--border-width) var(--border-style) var(--border-color);
375
375
  font-size: 0.75rem;
376
+ white-space: normal;
376
377
  }
377
378
 
378
379
  /**
@@ -396,7 +397,7 @@
396
397
 
397
398
  .textarea-bottom .helper-text {
398
399
  display: block;
399
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
400
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
400
401
  }
401
402
 
402
403
  :host(.ion-touched.ion-invalid) .textarea-bottom .error-text {
@@ -415,7 +416,7 @@
415
416
  */
416
417
  -webkit-margin-start: auto;
417
418
  margin-inline-start: auto;
418
- color: var(--ion-color-step-550, var(--ion-text-color-step-450, #737373));
419
+ color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
419
420
  white-space: nowrap;
420
421
  padding-inline-start: 16px;
421
422
  }
@@ -928,6 +929,10 @@
928
929
  --border-color: var(--highlight-color);
929
930
  }
930
931
 
932
+ /**
933
+ * The bottom content should never have
934
+ * a border with the solid style.
935
+ */
931
936
  :host(.textarea-fill-solid) .textarea-bottom {
932
937
  border-top: none;
933
938
  }
@@ -364,3 +364,13 @@ export const shallowEqualStringMap = (map1, map2) => {
364
364
  }
365
365
  return true;
366
366
  };
367
+ export const getNextSiblingOfType = (element) => {
368
+ let sibling = element.nextSibling;
369
+ while (sibling) {
370
+ if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
371
+ return sibling;
372
+ }
373
+ sibling = sibling.nextSibling;
374
+ }
375
+ return null;
376
+ };
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-03-05T20:32:32",
2
+ "timestamp": "2025-03-06T01:00:41",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.20.0",
@@ -5742,18 +5742,6 @@
5742
5742
  {
5743
5743
  "name": "part",
5744
5744
  "text": "mark - The checkmark used to indicate the checked state."
5745
- },
5746
- {
5747
- "name": "part",
5748
- "text": "supporting-text - Supporting text displayed beneath the checkbox label."
5749
- },
5750
- {
5751
- "name": "part",
5752
- "text": "helper-text - Supporting text displayed beneath the checkbox label when the checkbox is valid."
5753
- },
5754
- {
5755
- "name": "part",
5756
- "text": "error-text - Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched."
5757
5745
  }
5758
5746
  ],
5759
5747
  "usage": {},
@@ -5897,54 +5885,6 @@
5897
5885
  "optional": false,
5898
5886
  "required": false
5899
5887
  },
5900
- {
5901
- "name": "errorText",
5902
- "type": "string | undefined",
5903
- "complexType": {
5904
- "original": "string",
5905
- "resolved": "string | undefined",
5906
- "references": {}
5907
- },
5908
- "mutable": false,
5909
- "attr": "error-text",
5910
- "reflectToAttr": false,
5911
- "docs": "Text that is placed under the checkbox label and displayed when an error is detected.",
5912
- "docsTags": [],
5913
- "values": [
5914
- {
5915
- "type": "string"
5916
- },
5917
- {
5918
- "type": "undefined"
5919
- }
5920
- ],
5921
- "optional": true,
5922
- "required": false
5923
- },
5924
- {
5925
- "name": "helperText",
5926
- "type": "string | undefined",
5927
- "complexType": {
5928
- "original": "string",
5929
- "resolved": "string | undefined",
5930
- "references": {}
5931
- },
5932
- "mutable": false,
5933
- "attr": "helper-text",
5934
- "reflectToAttr": false,
5935
- "docs": "Text that is placed under the checkbox label and displayed when no error is detected.",
5936
- "docsTags": [],
5937
- "values": [
5938
- {
5939
- "type": "string"
5940
- },
5941
- {
5942
- "type": "undefined"
5943
- }
5944
- ],
5945
- "optional": true,
5946
- "required": false
5947
- },
5948
5888
  {
5949
5889
  "name": "indeterminate",
5950
5890
  "type": "boolean",
@@ -6320,14 +6260,6 @@
6320
6260
  "name": "container",
6321
6261
  "docs": "The container for the checkbox mark."
6322
6262
  },
6323
- {
6324
- "name": "error-text",
6325
- "docs": "Supporting text displayed beneath the checkbox label when the checkbox is invalid and touched."
6326
- },
6327
- {
6328
- "name": "helper-text",
6329
- "docs": "Supporting text displayed beneath the checkbox label when the checkbox is valid."
6330
- },
6331
6263
  {
6332
6264
  "name": "label",
6333
6265
  "docs": "The label text describing the checkbox."
@@ -6335,10 +6267,6 @@
6335
6267
  {
6336
6268
  "name": "mark",
6337
6269
  "docs": "The checkmark used to indicate the checked state."
6338
- },
6339
- {
6340
- "name": "supporting-text",
6341
- "docs": "Supporting text displayed beneath the checkbox label."
6342
6270
  }
6343
6271
  ],
6344
6272
  "dependents": [
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-da915de8.js';
4
+ import { c as componentOnReady } from './helpers-9b49d7d2.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {