@ionic/core 8.5.5-nightly.20250416 → 8.5.5

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 (609) hide show
  1. package/components/alert.js +5 -4
  2. package/components/animation.js +3 -2
  3. package/components/button.js +6 -6
  4. package/components/capacitor.js +1 -1
  5. package/components/config.js +3 -1
  6. package/components/data.js +3 -3
  7. package/components/hardware-back-button.js +3 -3
  8. package/components/helpers.js +3 -1
  9. package/components/index.js +2 -1
  10. package/components/index2.js +1 -2
  11. package/components/index4.js +104 -289
  12. package/components/index5.js +302 -3
  13. package/components/index6.js +3 -38
  14. package/components/index8.js +1 -1
  15. package/components/index9.js +1 -1
  16. package/components/input-shims.js +1 -1
  17. package/components/input.utils.js +3 -3
  18. package/components/ion-accordion-group.js +4 -4
  19. package/components/ion-accordion.js +2 -1
  20. package/components/ion-app.js +4 -4
  21. package/components/ion-back-button.js +2 -1
  22. package/components/ion-datetime-button.js +7 -7
  23. package/components/ion-datetime.js +17 -17
  24. package/components/ion-infinite-scroll-content.js +2 -1
  25. package/components/ion-input-password-toggle.js +6 -6
  26. package/components/ion-input.js +3 -3
  27. package/components/ion-item-sliding.js +3 -2
  28. package/components/ion-loading.js +2 -1
  29. package/components/ion-menu-button.js +3 -2
  30. package/components/ion-menu-toggle.js +1 -1
  31. package/components/ion-menu.js +7 -6
  32. package/components/ion-nav.js +5 -5
  33. package/components/ion-picker-legacy.js +4 -4
  34. package/components/ion-progress-bar.js +2 -1
  35. package/components/ion-range.js +6 -6
  36. package/components/ion-refresher-content.js +2 -1
  37. package/components/ion-refresher.js +3 -2
  38. package/components/ion-router-outlet.js +4 -3
  39. package/components/ion-router.js +9 -8
  40. package/components/ion-searchbar.js +2 -1
  41. package/components/ion-segment-button.js +6 -5
  42. package/components/ion-select.js +14 -7
  43. package/components/ion-skeleton-text.js +2 -1
  44. package/components/ion-split-pane.js +5 -4
  45. package/components/ion-tab-button.js +2 -1
  46. package/components/ion-tab.js +5 -4
  47. package/components/ion-tabs.js +3 -2
  48. package/components/ion-textarea.js +2 -2
  49. package/components/ion-toast.js +11 -11
  50. package/components/ion-toggle.js +2 -1
  51. package/components/ionic-global.js +3 -77
  52. package/components/keyboard-controller.js +1 -1
  53. package/components/menu-toggle-util.js +1 -1
  54. package/components/modal.js +10 -10
  55. package/components/notch-controller.js +1 -1
  56. package/components/overlays.js +6 -6
  57. package/components/picker-column.js +1 -1
  58. package/components/popover.js +4 -4
  59. package/components/spinner.js +2 -1
  60. package/dist/cjs/{animation-b4fdf128.js → animation-ab2d3449.js} +4 -3
  61. package/dist/cjs/{app-globals-dd592863.js → app-globals-ddceb1f4.js} +1 -1
  62. package/dist/cjs/{config-4f60b98a.js → config-f6225ae7.js} +3 -1
  63. package/dist/cjs/{data-27cc2c9c.js → data-94e8d392.js} +3 -3
  64. package/dist/cjs/{framework-delegate-50a86d56.js → framework-delegate-862d9d00.js} +1 -1
  65. package/dist/cjs/{hardware-back-button-5a99001f.js → hardware-back-button-3d2b1004.js} +7 -8
  66. package/dist/cjs/{helpers-3a248559.js → helpers-8a48fdea.js} +3 -1
  67. package/dist/cjs/{index-e630fd95.js → index-1eff7149.js} +7 -8
  68. package/dist/cjs/{index-509ca0d3.js → index-31b07b9c.js} +2 -2
  69. package/dist/cjs/{index-4b70187a.js → index-a96d31ae.js} +5 -5
  70. package/dist/cjs/index-cc858e97.js +129 -0
  71. package/dist/cjs/{index-e36bd277.js → index-dbe01e08.js} +2 -1
  72. package/dist/cjs/index.cjs.js +19 -13
  73. package/dist/cjs/{input-shims-22a9973f.js → input-shims-415be7ee.js} +3 -5
  74. package/dist/cjs/{input.utils-e82b8ed0.js → input.utils-a7957fd6.js} +3 -3
  75. package/dist/cjs/ion-accordion_2.cjs.entry.js +9 -9
  76. package/dist/cjs/ion-action-sheet.cjs.entry.js +7 -7
  77. package/dist/cjs/ion-alert.cjs.entry.js +12 -12
  78. package/dist/cjs/ion-app_8.cjs.entry.js +23 -23
  79. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -1
  80. package/dist/cjs/ion-back-button.cjs.entry.js +8 -7
  81. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -1
  82. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -2
  83. package/dist/cjs/ion-button_2.cjs.entry.js +8 -8
  84. package/dist/cjs/ion-card_5.cjs.entry.js +3 -2
  85. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -2
  86. package/dist/cjs/ion-chip.cjs.entry.js +2 -1
  87. package/dist/cjs/ion-col_3.cjs.entry.js +2 -1
  88. package/dist/cjs/ion-datetime-button.cjs.entry.js +10 -10
  89. package/dist/cjs/ion-datetime_3.cjs.entry.js +27 -27
  90. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -2
  91. package/dist/cjs/ion-img.cjs.entry.js +3 -2
  92. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +7 -7
  93. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +7 -7
  94. package/dist/cjs/ion-input.cjs.entry.js +8 -8
  95. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  96. package/dist/cjs/ion-item_8.cjs.entry.js +4 -3
  97. package/dist/cjs/ion-loading.cjs.entry.js +10 -10
  98. package/dist/cjs/ion-menu_3.cjs.entry.js +24 -24
  99. package/dist/cjs/ion-modal.cjs.entry.js +18 -18
  100. package/dist/cjs/ion-nav_2.cjs.entry.js +18 -18
  101. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -2
  102. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -2
  103. package/dist/cjs/ion-picker.cjs.entry.js +2 -1
  104. package/dist/cjs/ion-popover.cjs.entry.js +11 -11
  105. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -3
  106. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -2
  107. package/dist/cjs/ion-range.cjs.entry.js +9 -9
  108. package/dist/cjs/ion-refresher_2.cjs.entry.js +14 -14
  109. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  110. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -1
  111. package/dist/cjs/ion-route_4.cjs.entry.js +11 -10
  112. package/dist/cjs/ion-searchbar.cjs.entry.js +8 -7
  113. package/dist/cjs/ion-segment_2.cjs.entry.js +8 -7
  114. package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
  115. package/dist/cjs/ion-select_3.cjs.entry.js +21 -16
  116. package/dist/cjs/ion-spinner.cjs.entry.js +4 -3
  117. package/dist/cjs/ion-split-pane.cjs.entry.js +6 -5
  118. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -3
  119. package/dist/cjs/ion-tab_2.cjs.entry.js +8 -7
  120. package/dist/cjs/ion-text.cjs.entry.js +2 -1
  121. package/dist/cjs/ion-textarea.cjs.entry.js +7 -7
  122. package/dist/cjs/ion-toast.cjs.entry.js +18 -18
  123. package/dist/cjs/ion-toggle.cjs.entry.js +4 -3
  124. package/dist/cjs/{ionic-global-acb665ad.js → ionic-global-6dea5a96.js} +15 -90
  125. package/dist/cjs/ionic.cjs.js +4 -3
  126. package/dist/cjs/{ios.transition-ae7afca9.js → ios.transition-a131cd4d.js} +4 -5
  127. package/dist/cjs/loader.cjs.js +4 -3
  128. package/dist/cjs/{md.transition-26003e25.js → md.transition-e018ebe5.js} +4 -5
  129. package/dist/cjs/{notch-controller-ae03a497.js → notch-controller-09b7f358.js} +1 -1
  130. package/dist/cjs/{overlays-32e1b66b.js → overlays-4c291a05.js} +19 -19
  131. package/dist/cjs/{status-tap-03023755.js → status-tap-f1acefac.js} +3 -4
  132. package/dist/cjs/{swipe-back-cd0d9f77.js → swipe-back-4918e56b.js} +2 -1
  133. package/dist/collection/components/accordion-group/accordion-group.js +3 -3
  134. package/dist/collection/components/alert/alert.js +4 -3
  135. package/dist/collection/components/app/app.js +2 -2
  136. package/dist/collection/components/button/button.js +5 -5
  137. package/dist/collection/components/datetime/datetime.js +11 -11
  138. package/dist/collection/components/datetime/utils/comparison.js +1 -1
  139. package/dist/collection/components/datetime/utils/parse.js +1 -1
  140. package/dist/collection/components/datetime/utils/state.js +1 -1
  141. package/dist/collection/components/datetime/utils/validate.js +4 -4
  142. package/dist/collection/components/datetime-button/datetime-button.js +6 -6
  143. package/dist/collection/components/input/input.js +3 -3
  144. package/dist/collection/components/input/input.utils.js +1 -1
  145. package/dist/collection/components/input-password-toggle/input-password-toggle.js +5 -5
  146. package/dist/collection/components/item-sliding/item-sliding.js +3 -2
  147. package/dist/collection/components/menu/menu.js +5 -4
  148. package/dist/collection/components/modal/modal.js +7 -7
  149. package/dist/collection/components/nav/nav.js +3 -3
  150. package/dist/collection/components/picker-legacy/picker.js +3 -3
  151. package/dist/collection/components/popover/popover.js +3 -3
  152. package/dist/collection/components/range/range.js +5 -5
  153. package/dist/collection/components/refresher/refresher.js +3 -2
  154. package/dist/collection/components/router/router.js +8 -7
  155. package/dist/collection/components/router/utils/dom.js +2 -1
  156. package/dist/collection/components/router-outlet/router-outlet.js +3 -2
  157. package/dist/collection/components/segment-button/segment-button.js +6 -5
  158. package/dist/collection/components/select/select.ios.css +5 -3
  159. package/dist/collection/components/select/select.js +13 -6
  160. package/dist/collection/components/select/select.md.css +55 -16
  161. package/dist/collection/components/split-pane/split-pane.js +5 -4
  162. package/dist/collection/components/tab/tab.js +5 -4
  163. package/dist/collection/components/tabs/tabs.js +3 -2
  164. package/dist/collection/components/textarea/textarea.js +2 -2
  165. package/dist/collection/components/toast/animations/utils.js +1 -1
  166. package/dist/collection/components/toast/toast.js +8 -8
  167. package/dist/collection/global/ionic-global.js +2 -1
  168. package/dist/collection/index.js +1 -0
  169. package/dist/collection/utils/animation/animation.js +2 -1
  170. package/dist/collection/utils/hardware-back-button.js +2 -1
  171. package/dist/collection/utils/helpers.js +2 -1
  172. package/dist/collection/utils/logging/index.js +10 -4
  173. package/dist/collection/utils/overlays.js +4 -4
  174. package/dist/collection/utils/sanitization/index.js +2 -1
  175. package/dist/docs.json +1 -1
  176. package/dist/esm/{animation-eab5a4ca.js → animation-8b25e105.js} +2 -1
  177. package/dist/esm/{app-globals-7b6cbf1a.js → app-globals-dbdbb3df.js} +1 -1
  178. package/dist/esm/{config-49c88215.js → config-9898ed97.js} +3 -1
  179. package/dist/esm/{data-174ad5e0.js → data-0d7ea6eb.js} +3 -3
  180. package/dist/esm/{framework-delegate-2eea1763.js → framework-delegate-56b467ad.js} +1 -1
  181. package/dist/esm/{hardware-back-button-864101a3.js → hardware-back-button-a7eb8233.js} +2 -3
  182. package/dist/esm/{helpers-78efeec3.js → helpers-d94bc8ad.js} +3 -1
  183. package/dist/esm/{index-f9f5d018.js → index-18f31305.js} +5 -5
  184. package/dist/esm/{index-ecb55b8d.js → index-68c0d151.js} +4 -5
  185. package/dist/esm/{index-e919e353.js → index-9a17db3d.js} +2 -2
  186. package/dist/esm/{index-40894f4b.js → index-be190feb.js} +2 -1
  187. package/dist/esm/index-cfd9c1f2.js +121 -0
  188. package/dist/esm/index.js +12 -12
  189. package/dist/esm/{input-shims-7dc1f6dc.js → input-shims-279903e2.js} +3 -5
  190. package/dist/esm/{input.utils-28bf4ef0.js → input.utils-40504d6d.js} +3 -3
  191. package/dist/esm/ion-accordion_2.entry.js +6 -6
  192. package/dist/esm/ion-action-sheet.entry.js +7 -7
  193. package/dist/esm/ion-alert.entry.js +11 -11
  194. package/dist/esm/ion-app_8.entry.js +16 -16
  195. package/dist/esm/ion-avatar_3.entry.js +2 -1
  196. package/dist/esm/ion-back-button.entry.js +3 -2
  197. package/dist/esm/ion-backdrop.entry.js +2 -1
  198. package/dist/esm/ion-breadcrumb_2.entry.js +3 -2
  199. package/dist/esm/ion-button_2.entry.js +8 -8
  200. package/dist/esm/ion-card_5.entry.js +3 -2
  201. package/dist/esm/ion-checkbox.entry.js +3 -2
  202. package/dist/esm/ion-chip.entry.js +2 -1
  203. package/dist/esm/ion-col_3.entry.js +2 -1
  204. package/dist/esm/ion-datetime-button.entry.js +10 -10
  205. package/dist/esm/ion-datetime_3.entry.js +27 -27
  206. package/dist/esm/ion-fab_3.entry.js +3 -2
  207. package/dist/esm/ion-img.entry.js +3 -2
  208. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  209. package/dist/esm/ion-input-password-toggle.entry.js +7 -7
  210. package/dist/esm/ion-input.entry.js +8 -8
  211. package/dist/esm/ion-item-option_3.entry.js +6 -6
  212. package/dist/esm/ion-item_8.entry.js +3 -2
  213. package/dist/esm/ion-loading.entry.js +8 -8
  214. package/dist/esm/ion-menu_3.entry.js +12 -12
  215. package/dist/esm/ion-modal.entry.js +16 -16
  216. package/dist/esm/ion-nav_2.entry.js +8 -8
  217. package/dist/esm/ion-picker-column-option.entry.js +3 -2
  218. package/dist/esm/ion-picker-column.entry.js +3 -2
  219. package/dist/esm/ion-picker.entry.js +2 -1
  220. package/dist/esm/ion-popover.entry.js +11 -11
  221. package/dist/esm/ion-progress-bar.entry.js +3 -2
  222. package/dist/esm/ion-radio_2.entry.js +3 -2
  223. package/dist/esm/ion-range.entry.js +9 -9
  224. package/dist/esm/ion-refresher_2.entry.js +8 -8
  225. package/dist/esm/ion-reorder_2.entry.js +4 -4
  226. package/dist/esm/ion-ripple-effect.entry.js +2 -1
  227. package/dist/esm/ion-route_4.entry.js +11 -10
  228. package/dist/esm/ion-searchbar.entry.js +3 -2
  229. package/dist/esm/ion-segment_2.entry.js +8 -7
  230. package/dist/esm/ion-select-modal.entry.js +6 -6
  231. package/dist/esm/ion-select_3.entry.js +19 -14
  232. package/dist/esm/ion-spinner.entry.js +2 -1
  233. package/dist/esm/ion-split-pane.entry.js +6 -5
  234. package/dist/esm/ion-tab-bar_2.entry.js +3 -2
  235. package/dist/esm/ion-tab_2.entry.js +8 -7
  236. package/dist/esm/ion-text.entry.js +2 -1
  237. package/dist/esm/ion-textarea.entry.js +7 -7
  238. package/dist/esm/ion-toast.entry.js +16 -16
  239. package/dist/esm/ion-toggle.entry.js +3 -2
  240. package/dist/esm/{ionic-global-ca86cf32.js → ionic-global-b26f573e.js} +3 -77
  241. package/dist/esm/ionic.js +4 -3
  242. package/dist/esm/{ios.transition-7fe5dbea.js → ios.transition-4047cb68.js} +4 -5
  243. package/dist/esm/loader.js +4 -3
  244. package/dist/esm/{md.transition-8dc58b46.js → md.transition-30ce8d1b.js} +4 -5
  245. package/dist/esm/{notch-controller-00d92e89.js → notch-controller-1a1f7183.js} +1 -1
  246. package/dist/esm/{overlays-41a5d51b.js → overlays-d99dcb0a.js} +8 -8
  247. package/dist/esm/{status-tap-f6d08e9e.js → status-tap-42a8af65.js} +3 -4
  248. package/dist/esm/{swipe-back-07df2095.js → swipe-back-0184f6b3.js} +2 -1
  249. package/dist/esm-es5/animation-8b25e105.js +4 -0
  250. package/dist/esm-es5/app-globals-dbdbb3df.js +4 -0
  251. package/dist/esm-es5/config-9898ed97.js +4 -0
  252. package/dist/esm-es5/data-0d7ea6eb.js +4 -0
  253. package/dist/esm-es5/{framework-delegate-2eea1763.js → framework-delegate-56b467ad.js} +1 -1
  254. package/dist/esm-es5/hardware-back-button-a7eb8233.js +4 -0
  255. package/dist/esm-es5/helpers-d94bc8ad.js +4 -0
  256. package/dist/esm-es5/{index-f9f5d018.js → index-18f31305.js} +1 -1
  257. package/dist/esm-es5/index-68c0d151.js +4 -0
  258. package/dist/esm-es5/{index-e919e353.js → index-9a17db3d.js} +1 -1
  259. package/dist/esm-es5/index-be190feb.js +4 -0
  260. package/dist/esm-es5/index-cfd9c1f2.js +5 -0
  261. package/dist/esm-es5/index.js +1 -1
  262. package/dist/esm-es5/input-shims-279903e2.js +4 -0
  263. package/dist/esm-es5/input.utils-40504d6d.js +4 -0
  264. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  265. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  266. package/dist/esm-es5/ion-alert.entry.js +1 -1
  267. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  268. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  269. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  270. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  271. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  273. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  274. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  275. package/dist/esm-es5/ion-chip.entry.js +1 -1
  276. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  277. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  278. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  279. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  280. package/dist/esm-es5/ion-img.entry.js +1 -1
  281. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  282. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  283. package/dist/esm-es5/ion-input.entry.js +1 -1
  284. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  285. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  286. package/dist/esm-es5/ion-loading.entry.js +1 -1
  287. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  288. package/dist/esm-es5/ion-modal.entry.js +1 -1
  289. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  290. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  291. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  292. package/dist/esm-es5/ion-picker.entry.js +1 -1
  293. package/dist/esm-es5/ion-popover.entry.js +1 -1
  294. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  295. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  296. package/dist/esm-es5/ion-range.entry.js +1 -1
  297. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  298. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  299. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  300. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  301. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  302. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  303. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  304. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  305. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  306. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  307. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  308. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  309. package/dist/esm-es5/ion-text.entry.js +1 -1
  310. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  311. package/dist/esm-es5/ion-toast.entry.js +1 -1
  312. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  313. package/dist/esm-es5/ionic-global-b26f573e.js +4 -0
  314. package/dist/esm-es5/ionic.js +1 -1
  315. package/dist/esm-es5/ios.transition-4047cb68.js +4 -0
  316. package/dist/esm-es5/loader.js +1 -1
  317. package/dist/esm-es5/md.transition-30ce8d1b.js +4 -0
  318. package/dist/esm-es5/{notch-controller-00d92e89.js → notch-controller-1a1f7183.js} +1 -1
  319. package/dist/esm-es5/overlays-d99dcb0a.js +4 -0
  320. package/dist/esm-es5/status-tap-42a8af65.js +4 -0
  321. package/dist/esm-es5/swipe-back-0184f6b3.js +4 -0
  322. package/dist/ionic/index.esm.js +1 -1
  323. package/dist/ionic/ionic.esm.js +1 -1
  324. package/dist/ionic/ionic.js +1 -1
  325. package/dist/ionic/p-00023f5a.system.js +4 -0
  326. package/dist/ionic/p-019e30a3.system.entry.js +4 -0
  327. package/dist/ionic/p-03480b95.system.entry.js +4 -0
  328. package/dist/ionic/p-08cef0b1.entry.js +4 -0
  329. package/dist/ionic/{p-756e4559.js → p-0f5e6225.js} +1 -1
  330. package/dist/ionic/p-105b2e8b.entry.js +4 -0
  331. package/dist/ionic/p-10a1bddc.js +4 -0
  332. package/dist/ionic/p-117d0013.system.entry.js +4 -0
  333. package/dist/ionic/p-12193821.system.js +4 -0
  334. package/dist/ionic/p-12830298.system.entry.js +4 -0
  335. package/dist/ionic/p-12914457.entry.js +4 -0
  336. package/dist/ionic/p-14154301.system.entry.js +4 -0
  337. package/dist/ionic/p-14bdb5aa.entry.js +4 -0
  338. package/dist/ionic/{p-14114a59.system.entry.js → p-1706b406.system.entry.js} +1 -1
  339. package/dist/ionic/p-171ca87d.system.js +4 -0
  340. package/dist/ionic/p-17e21141.js +4 -0
  341. package/dist/ionic/p-19494658.system.entry.js +4 -0
  342. package/dist/ionic/{p-9e45532a.system.js → p-1966a13c.system.js} +1 -1
  343. package/dist/ionic/p-1974d5b2.system.js +4 -0
  344. package/dist/ionic/p-1a81ac09.system.js +4 -0
  345. package/dist/ionic/p-1b9c59ab.js +4 -0
  346. package/dist/ionic/p-1cb02e44.entry.js +4 -0
  347. package/dist/ionic/p-1d307396.system.js +4 -0
  348. package/dist/ionic/p-1f871cf8.entry.js +4 -0
  349. package/dist/ionic/p-2233344a.system.js +4 -0
  350. package/dist/ionic/p-2469240b.entry.js +4 -0
  351. package/dist/ionic/{p-7058a5e4.system.entry.js → p-24a6c8a3.system.entry.js} +1 -1
  352. package/dist/ionic/p-257fb777.entry.js +4 -0
  353. package/dist/ionic/{p-c3f9d9fe.js → p-25b10f81.js} +1 -1
  354. package/dist/ionic/p-2bb55ebc.js +4 -0
  355. package/dist/ionic/p-2bff0e69.system.entry.js +4 -0
  356. package/dist/ionic/{p-7b886108.system.entry.js → p-2fa37fdc.system.entry.js} +1 -1
  357. package/dist/ionic/p-31dc303d.entry.js +4 -0
  358. package/dist/ionic/p-3535d6b5.entry.js +4 -0
  359. package/dist/ionic/{p-5578033e.system.entry.js → p-35cdfd77.system.entry.js} +1 -1
  360. package/dist/ionic/p-393ffcc2.entry.js +4 -0
  361. package/dist/ionic/p-39fa7dd1.system.entry.js +4 -0
  362. package/dist/ionic/p-3a30f31b.system.entry.js +4 -0
  363. package/dist/ionic/p-42f08b26.system.entry.js +4 -0
  364. package/dist/ionic/p-481e0885.entry.js +4 -0
  365. package/dist/ionic/p-4a5be299.system.entry.js +4 -0
  366. package/dist/ionic/p-4c667fce.js +4 -0
  367. package/dist/ionic/p-4cf4172e.entry.js +4 -0
  368. package/dist/ionic/p-4da92dac.entry.js +4 -0
  369. package/dist/ionic/p-4ec0e961.system.entry.js +4 -0
  370. package/dist/ionic/{p-d70a9e6d.system.js → p-4ed5db19.system.js} +1 -1
  371. package/dist/ionic/p-50cb2e8b.system.entry.js +4 -0
  372. package/dist/ionic/p-57957c0f.entry.js +4 -0
  373. package/dist/ionic/p-57e55ecb.system.js +4 -0
  374. package/dist/ionic/p-5b67b447.js +4 -0
  375. package/dist/ionic/p-5c9feddc.system.entry.js +4 -0
  376. package/dist/ionic/p-5edf78c5.system.entry.js +4 -0
  377. package/dist/ionic/p-612096e6.system.entry.js +4 -0
  378. package/dist/ionic/p-6201c4ba.entry.js +4 -0
  379. package/dist/ionic/p-625248d0.system.js +4 -0
  380. package/dist/ionic/p-663413be.system.js +4 -0
  381. package/dist/ionic/p-6636a436.js +4 -0
  382. package/dist/ionic/p-66df5468.system.entry.js +4 -0
  383. package/dist/ionic/p-67077d48.entry.js +4 -0
  384. package/dist/ionic/p-6835ebdd.system.entry.js +4 -0
  385. package/dist/ionic/p-6a03fc0f.entry.js +4 -0
  386. package/dist/ionic/p-6b8530f5.system.entry.js +4 -0
  387. package/dist/ionic/{p-a7830ff8.entry.js → p-6c474e87.entry.js} +1 -1
  388. package/dist/ionic/p-6dd86ff5.system.entry.js +4 -0
  389. package/dist/ionic/p-6ec0c94a.entry.js +4 -0
  390. package/dist/ionic/p-6f832afe.system.entry.js +4 -0
  391. package/dist/ionic/p-712c0131.entry.js +4 -0
  392. package/dist/ionic/{p-e11ff516.entry.js → p-721f43f9.entry.js} +1 -1
  393. package/dist/ionic/p-72b3050b.system.entry.js +4 -0
  394. package/dist/ionic/p-7445a2e5.system.js +4 -0
  395. package/dist/ionic/p-7611ede3.system.entry.js +4 -0
  396. package/dist/ionic/p-781e2dbb.system.js +4 -0
  397. package/dist/ionic/p-7b8c12c3.entry.js +4 -0
  398. package/dist/ionic/p-7c5c7ae1.system.entry.js +4 -0
  399. package/dist/ionic/p-7e3e6ed2.entry.js +4 -0
  400. package/dist/ionic/{p-4c7e6fec.system.entry.js → p-7ffedf77.system.entry.js} +1 -1
  401. package/dist/ionic/p-809483ac.js +4 -0
  402. package/dist/ionic/{p-65e732b9.entry.js → p-81904a80.entry.js} +1 -1
  403. package/dist/ionic/{p-a6625de8.system.js → p-84096b45.system.js} +1 -1
  404. package/dist/ionic/p-8450f761.entry.js +4 -0
  405. package/dist/ionic/p-8460d95a.entry.js +4 -0
  406. package/dist/ionic/p-85b01465.js +4 -0
  407. package/dist/ionic/p-865fe95c.entry.js +4 -0
  408. package/dist/ionic/p-8674af94.entry.js +4 -0
  409. package/dist/ionic/p-890a4ee2.entry.js +4 -0
  410. package/dist/ionic/p-891553d8.entry.js +4 -0
  411. package/dist/ionic/p-8ab2f7a4.system.entry.js +4 -0
  412. package/dist/ionic/p-8b050e84.system.js +4 -0
  413. package/dist/ionic/{p-22bc235f.js → p-8d2d39d0.js} +1 -1
  414. package/dist/ionic/p-8dacf4e2.entry.js +4 -0
  415. package/dist/ionic/p-94551927.js +4 -0
  416. package/dist/ionic/p-95001a19.js +4 -0
  417. package/dist/ionic/p-98fd942b.system.entry.js +4 -0
  418. package/dist/ionic/p-a0fd2fe5.system.entry.js +4 -0
  419. package/dist/ionic/p-a5dbe0ff.system.entry.js +4 -0
  420. package/dist/ionic/p-a78fa846.entry.js +4 -0
  421. package/dist/ionic/p-a835aca8.entry.js +4 -0
  422. package/dist/ionic/p-a83e3290.system.js +4 -0
  423. package/dist/ionic/{p-624ecf03.js → p-aded71ec.js} +1 -1
  424. package/dist/ionic/p-ae039072.entry.js +4 -0
  425. package/dist/ionic/p-aebfab05.system.entry.js +4 -0
  426. package/dist/ionic/{p-29da3dcd.entry.js → p-b22a021d.entry.js} +1 -1
  427. package/dist/ionic/p-b22ab9f4.js +4 -0
  428. package/dist/ionic/p-b2e7eda0.system.entry.js +4 -0
  429. package/dist/ionic/p-b445ff65.entry.js +4 -0
  430. package/dist/ionic/{p-d882f1e2.system.entry.js → p-b4d17da0.system.entry.js} +2 -2
  431. package/dist/ionic/p-b5432d15.entry.js +4 -0
  432. package/dist/ionic/p-b6d324f0.js +4 -0
  433. package/dist/ionic/p-b7b1d91a.js +4 -0
  434. package/dist/ionic/{p-f387b3c6.system.entry.js → p-b8050298.system.entry.js} +1 -1
  435. package/dist/ionic/p-b9c793d4.entry.js +4 -0
  436. package/dist/ionic/p-bf184319.system.entry.js +4 -0
  437. package/dist/ionic/p-c16443a8.system.js +4 -0
  438. package/dist/ionic/{p-49d53551.system.entry.js → p-c1b7d311.system.entry.js} +1 -1
  439. package/dist/ionic/p-c2160d8c.entry.js +4 -0
  440. package/dist/ionic/{p-db3b409e.system.entry.js → p-c26c5c20.system.entry.js} +1 -1
  441. package/dist/ionic/p-c5b77054.entry.js +4 -0
  442. package/dist/ionic/p-c5bfa3e9.entry.js +4 -0
  443. package/dist/ionic/p-c6879aa4.system.entry.js +4 -0
  444. package/dist/ionic/p-cad82569.entry.js +4 -0
  445. package/dist/ionic/{p-69a96be9.system.entry.js → p-cec902a0.system.entry.js} +1 -1
  446. package/dist/ionic/p-d16fab3f.entry.js +4 -0
  447. package/dist/ionic/p-d2c3524b.system.entry.js +4 -0
  448. package/dist/ionic/p-d382f09c.system.js +4 -0
  449. package/dist/ionic/p-d984c1ab.system.entry.js +4 -0
  450. package/dist/ionic/p-da6247e5.entry.js +4 -0
  451. package/dist/ionic/p-dabe3bd4.js +4 -0
  452. package/dist/ionic/p-df069a0d.entry.js +4 -0
  453. package/dist/ionic/p-e727e32d.system.entry.js +4 -0
  454. package/dist/ionic/p-e887b6a9.system.js +4 -0
  455. package/dist/ionic/p-ed005d9c.js +4 -0
  456. package/dist/ionic/p-edd2e3c7.entry.js +4 -0
  457. package/dist/ionic/{p-b9fa7882.js → p-f08a92cc.js} +1 -1
  458. package/dist/ionic/p-f0c9f8e3.system.entry.js +4 -0
  459. package/dist/ionic/p-f0ef39ab.entry.js +4 -0
  460. package/dist/ionic/{p-4662a25c.system.entry.js → p-f22490a7.system.entry.js} +1 -1
  461. package/dist/ionic/p-f6e7d104.system.js +4 -0
  462. package/dist/ionic/p-f725bf9e.system.js +4 -0
  463. package/dist/ionic/{p-48ded460.entry.js → p-f8c0c707.entry.js} +1 -1
  464. package/dist/ionic/p-f9a87db2.system.entry.js +4 -0
  465. package/dist/ionic/{p-3855fef7.system.js → p-fa3f4b96.system.js} +2 -2
  466. package/dist/ionic/p-fe063952.system.entry.js +4 -0
  467. package/dist/types/components/input/input.d.ts +8 -0
  468. package/dist/types/components/select/select.d.ts +9 -0
  469. package/dist/types/components/textarea/textarea.d.ts +8 -0
  470. package/dist/types/utils/logging/index.d.ts +1 -1
  471. package/hydrate/index.js +196 -184
  472. package/hydrate/index.mjs +196 -184
  473. package/package.json +1 -1
  474. package/dist/cjs/index-48b2a28e.js +0 -46
  475. package/dist/esm/index-738d7504.js +0 -42
  476. package/dist/esm-es5/animation-eab5a4ca.js +0 -4
  477. package/dist/esm-es5/app-globals-7b6cbf1a.js +0 -4
  478. package/dist/esm-es5/config-49c88215.js +0 -4
  479. package/dist/esm-es5/data-174ad5e0.js +0 -4
  480. package/dist/esm-es5/hardware-back-button-864101a3.js +0 -4
  481. package/dist/esm-es5/helpers-78efeec3.js +0 -4
  482. package/dist/esm-es5/index-40894f4b.js +0 -4
  483. package/dist/esm-es5/index-738d7504.js +0 -4
  484. package/dist/esm-es5/index-ecb55b8d.js +0 -4
  485. package/dist/esm-es5/input-shims-7dc1f6dc.js +0 -4
  486. package/dist/esm-es5/input.utils-28bf4ef0.js +0 -4
  487. package/dist/esm-es5/ionic-global-ca86cf32.js +0 -4
  488. package/dist/esm-es5/ios.transition-7fe5dbea.js +0 -4
  489. package/dist/esm-es5/md.transition-8dc58b46.js +0 -4
  490. package/dist/esm-es5/overlays-41a5d51b.js +0 -4
  491. package/dist/esm-es5/status-tap-f6d08e9e.js +0 -4
  492. package/dist/esm-es5/swipe-back-07df2095.js +0 -4
  493. package/dist/ionic/p-027a48f1.entry.js +0 -4
  494. package/dist/ionic/p-058b7f35.js +0 -4
  495. package/dist/ionic/p-05b65d7a.entry.js +0 -4
  496. package/dist/ionic/p-09d185ff.system.js +0 -4
  497. package/dist/ionic/p-0a456b7f.entry.js +0 -4
  498. package/dist/ionic/p-0adb6909.system.entry.js +0 -4
  499. package/dist/ionic/p-0bedc891.system.entry.js +0 -4
  500. package/dist/ionic/p-0d1be7c9.system.entry.js +0 -4
  501. package/dist/ionic/p-0ec5b7cf.system.js +0 -4
  502. package/dist/ionic/p-15bb1dde.system.js +0 -4
  503. package/dist/ionic/p-19c32a76.entry.js +0 -4
  504. package/dist/ionic/p-1b0b2210.entry.js +0 -4
  505. package/dist/ionic/p-1bf5ec17.system.js +0 -4
  506. package/dist/ionic/p-1c1d781d.system.entry.js +0 -4
  507. package/dist/ionic/p-1c8b3ac9.entry.js +0 -4
  508. package/dist/ionic/p-1de5dfcd.system.entry.js +0 -4
  509. package/dist/ionic/p-2567237c.entry.js +0 -4
  510. package/dist/ionic/p-28c81576.entry.js +0 -4
  511. package/dist/ionic/p-29a5b4e4.entry.js +0 -4
  512. package/dist/ionic/p-2a2c6bf4.system.entry.js +0 -4
  513. package/dist/ionic/p-3281aab3.entry.js +0 -4
  514. package/dist/ionic/p-33058ec5.entry.js +0 -4
  515. package/dist/ionic/p-33518a04.entry.js +0 -4
  516. package/dist/ionic/p-344837bc.system.entry.js +0 -4
  517. package/dist/ionic/p-35f14792.entry.js +0 -4
  518. package/dist/ionic/p-383a6058.entry.js +0 -4
  519. package/dist/ionic/p-38eaf9cf.system.entry.js +0 -4
  520. package/dist/ionic/p-3ba2a2cd.system.js +0 -4
  521. package/dist/ionic/p-3f4327f7.js +0 -4
  522. package/dist/ionic/p-41d5544e.js +0 -4
  523. package/dist/ionic/p-41e70fa2.entry.js +0 -4
  524. package/dist/ionic/p-44fde7d5.system.entry.js +0 -4
  525. package/dist/ionic/p-44ff75ea.js +0 -4
  526. package/dist/ionic/p-455cd7cc.system.js +0 -4
  527. package/dist/ionic/p-4630688e.system.entry.js +0 -4
  528. package/dist/ionic/p-4b07c60a.system.js +0 -4
  529. package/dist/ionic/p-4ea4c73a.system.entry.js +0 -4
  530. package/dist/ionic/p-4eeca839.system.entry.js +0 -4
  531. package/dist/ionic/p-50e0ce13.entry.js +0 -4
  532. package/dist/ionic/p-51479be0.system.entry.js +0 -4
  533. package/dist/ionic/p-597ff9af.js +0 -4
  534. package/dist/ionic/p-5fb1321f.entry.js +0 -4
  535. package/dist/ionic/p-607aa181.entry.js +0 -4
  536. package/dist/ionic/p-61373098.js +0 -4
  537. package/dist/ionic/p-6155027f.system.entry.js +0 -4
  538. package/dist/ionic/p-61e794fb.entry.js +0 -4
  539. package/dist/ionic/p-64d8ac48.js +0 -4
  540. package/dist/ionic/p-657ada6a.entry.js +0 -4
  541. package/dist/ionic/p-65943bec.system.entry.js +0 -4
  542. package/dist/ionic/p-6c044a1d.system.js +0 -4
  543. package/dist/ionic/p-705fda69.system.js +0 -4
  544. package/dist/ionic/p-70abb1f2.system.entry.js +0 -4
  545. package/dist/ionic/p-747f9517.entry.js +0 -4
  546. package/dist/ionic/p-772d1657.system.js +0 -4
  547. package/dist/ionic/p-77aa5fef.system.entry.js +0 -4
  548. package/dist/ionic/p-7c9daa6f.entry.js +0 -4
  549. package/dist/ionic/p-7cc33a9a.system.js +0 -4
  550. package/dist/ionic/p-7e3b5638.system.entry.js +0 -4
  551. package/dist/ionic/p-7f49a9c4.entry.js +0 -4
  552. package/dist/ionic/p-843ac05d.system.entry.js +0 -4
  553. package/dist/ionic/p-87b0d2c9.entry.js +0 -4
  554. package/dist/ionic/p-8b1c1fd7.entry.js +0 -4
  555. package/dist/ionic/p-8b22be32.system.entry.js +0 -4
  556. package/dist/ionic/p-8cf6f383.system.entry.js +0 -4
  557. package/dist/ionic/p-8d98e2bb.entry.js +0 -4
  558. package/dist/ionic/p-9146695e.system.js +0 -4
  559. package/dist/ionic/p-959cf042.system.entry.js +0 -4
  560. package/dist/ionic/p-96eec056.entry.js +0 -4
  561. package/dist/ionic/p-978bdf4c.system.js +0 -4
  562. package/dist/ionic/p-9870728f.js +0 -4
  563. package/dist/ionic/p-99803283.entry.js +0 -4
  564. package/dist/ionic/p-9af7f110.js +0 -4
  565. package/dist/ionic/p-9b069739.entry.js +0 -4
  566. package/dist/ionic/p-a26d7667.system.entry.js +0 -4
  567. package/dist/ionic/p-a3c931ad.system.js +0 -4
  568. package/dist/ionic/p-a520973b.entry.js +0 -4
  569. package/dist/ionic/p-a75a9e5a.system.entry.js +0 -4
  570. package/dist/ionic/p-a768ae50.entry.js +0 -4
  571. package/dist/ionic/p-a9198501.system.entry.js +0 -4
  572. package/dist/ionic/p-ac09b6e9.system.entry.js +0 -4
  573. package/dist/ionic/p-ac58d726.system.entry.js +0 -4
  574. package/dist/ionic/p-b1673667.entry.js +0 -4
  575. package/dist/ionic/p-b1f9fbe8.system.entry.js +0 -4
  576. package/dist/ionic/p-b2ee0628.system.entry.js +0 -4
  577. package/dist/ionic/p-b87a9f1d.entry.js +0 -4
  578. package/dist/ionic/p-b8a461f5.system.entry.js +0 -4
  579. package/dist/ionic/p-bf64af90.system.js +0 -4
  580. package/dist/ionic/p-c005cc37.entry.js +0 -4
  581. package/dist/ionic/p-c27c57ea.system.entry.js +0 -4
  582. package/dist/ionic/p-c53c414d.system.entry.js +0 -4
  583. package/dist/ionic/p-c63d8dc1.js +0 -4
  584. package/dist/ionic/p-c7e16491.js +0 -4
  585. package/dist/ionic/p-ccb740ea.entry.js +0 -4
  586. package/dist/ionic/p-cec54707.system.entry.js +0 -4
  587. package/dist/ionic/p-cfc08422.entry.js +0 -4
  588. package/dist/ionic/p-cff4f96c.entry.js +0 -4
  589. package/dist/ionic/p-d40f2b7a.js +0 -4
  590. package/dist/ionic/p-e2ce5f8b.entry.js +0 -4
  591. package/dist/ionic/p-e3284879.system.entry.js +0 -4
  592. package/dist/ionic/p-e3e4eed7.entry.js +0 -4
  593. package/dist/ionic/p-e4683bfd.system.entry.js +0 -4
  594. package/dist/ionic/p-e4d2c281.entry.js +0 -4
  595. package/dist/ionic/p-e65b8460.entry.js +0 -4
  596. package/dist/ionic/p-e6cdfa96.system.entry.js +0 -4
  597. package/dist/ionic/p-ece78e7b.js +0 -4
  598. package/dist/ionic/p-ee86cfff.system.js +0 -4
  599. package/dist/ionic/p-f201b53a.system.js +0 -4
  600. package/dist/ionic/p-f23124c4.system.js +0 -4
  601. package/dist/ionic/p-f233f1e0.system.js +0 -4
  602. package/dist/ionic/p-f53ee2e7.js +0 -4
  603. package/dist/ionic/p-f5a04e5e.system.entry.js +0 -4
  604. package/dist/ionic/p-f70fc14a.entry.js +0 -4
  605. package/dist/ionic/p-f7ce606e.js +0 -4
  606. package/dist/ionic/p-f834322a.entry.js +0 -4
  607. package/dist/ionic/p-f896194a.system.entry.js +0 -4
  608. package/dist/ionic/p-fa70eaab.entry.js +0 -4
  609. package/dist/ionic/p-ffa3ba3c.js +0 -4
@@ -126,7 +126,7 @@
126
126
  pointer-events: none;
127
127
  }
128
128
 
129
- :host(.ion-focused) button {
129
+ :host(.has-focus) button {
130
130
  border: 2px solid #5e9ed6;
131
131
  }
132
132
 
@@ -329,7 +329,9 @@ button {
329
329
  * highlight when the select is blurred.
330
330
  */
331
331
  :host(.has-focus.ion-valid),
332
- :host(.ion-touched.ion-invalid) {
332
+ :host(.select-expanded.ion-valid),
333
+ :host(.ion-touched.ion-invalid),
334
+ :host(.select-expanded.ion-touched.ion-invalid) {
333
335
  --border-color: var(--highlight-color);
334
336
  }
335
337
 
@@ -596,7 +598,7 @@ button {
596
598
  * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder
597
599
  */
598
600
  :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,
599
- :host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,
601
+ :host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,
600
602
  :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder {
601
603
  opacity: 1;
602
604
  }
@@ -820,6 +822,7 @@ button {
820
822
  * If the select has a validity state, the
821
823
  * border should reflect that as a color.
822
824
  */
825
+ :host(.select-expanded.select-fill-solid.ion-valid),
823
826
  :host(.has-focus.select-fill-solid.ion-valid),
824
827
  :host(.select-fill-solid.ion-touched.ion-invalid) {
825
828
  --border-color: var(--highlight-color);
@@ -848,9 +851,9 @@ button {
848
851
  * much darker on focus.
849
852
  */
850
853
  :host(.select-fill-solid.select-expanded),
851
- :host(.select-fill-solid.ion-focused) {
854
+ :host(.select-fill-solid.has-focus) {
852
855
  --background: var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));
853
- --border-color: var(--ion-color-step-750, var(--ion-background-color-step-750, #404040));
856
+ --border-color: var(--highlight-color);
854
857
  }
855
858
 
856
859
  :host(.select-fill-solid) .select-wrapper {
@@ -872,6 +875,18 @@ button {
872
875
  max-width: calc(100% / 0.75);
873
876
  }
874
877
 
878
+ /**
879
+ * When the select has a solid fill and
880
+ * in an item, then the icon should
881
+ * take on the highlight color.
882
+ */
883
+ :host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,
884
+ :host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,
885
+ :host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,
886
+ :host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon {
887
+ color: var(--highlight-color);
888
+ }
889
+
875
890
  /**
876
891
  * Convert a font size to a dynamic font size.
877
892
  * Fonts that participate in Dynamic Type should use
@@ -965,7 +980,7 @@ button {
965
980
  * the select is focused.
966
981
  */
967
982
  :host(.select-fill-outline.select-expanded),
968
- :host(.select-fill-outline.ion-focused) {
983
+ :host(.select-fill-outline.has-focus) {
969
984
  --border-width: var(--highlight-height);
970
985
  --border-color: var(--highlight-color);
971
986
  }
@@ -1167,27 +1182,33 @@ button {
1167
1182
  border-top: none;
1168
1183
  }
1169
1184
 
1185
+ /**
1186
+ * When the select has an outline fill and
1187
+ * in an item, then the icon should
1188
+ * take on the highlight color.
1189
+ */
1190
+ :host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,
1191
+ :host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,
1192
+ :host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,
1193
+ :host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon {
1194
+ color: var(--highlight-color);
1195
+ }
1196
+
1170
1197
  :host {
1171
1198
  --border-width: 1px;
1172
1199
  --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));
1173
1200
  --highlight-height: 2px;
1174
1201
  }
1175
1202
 
1176
- .select-icon {
1177
- width: 0.8125rem;
1178
- transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
1179
- color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
1180
- }
1181
-
1182
1203
  /**
1183
1204
  * When the select is focused the label should
1184
1205
  * take on the highlight color. This should
1185
1206
  * only apply to floating or stacked labels.
1186
1207
  */
1187
1208
  :host(.select-label-placement-floating.select-expanded) .label-text-wrapper,
1188
- :host(.select-label-placement-floating.ion-focused) .label-text-wrapper,
1209
+ :host(.select-label-placement-floating.has-focus) .label-text-wrapper,
1189
1210
  :host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,
1190
- :host(.select-label-placement-stacked.ion-focused) .label-text-wrapper {
1211
+ :host(.select-label-placement-stacked.has-focus) .label-text-wrapper {
1191
1212
  color: var(--highlight-color);
1192
1213
  }
1193
1214
 
@@ -1212,7 +1233,7 @@ button {
1212
1233
  }
1213
1234
 
1214
1235
  :host(.select-expanded) .select-highlight,
1215
- :host(.ion-focused) .select-highlight {
1236
+ :host(.has-focus) .select-highlight {
1216
1237
  transform: scale(1);
1217
1238
  }
1218
1239
 
@@ -1228,6 +1249,12 @@ button {
1228
1249
  inset-inline-start: 0;
1229
1250
  }
1230
1251
 
1252
+ .select-icon {
1253
+ width: 0.8125rem;
1254
+ transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
1255
+ color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
1256
+ }
1257
+
1231
1258
  /**
1232
1259
  * This rotates the chevron icon
1233
1260
  * when the select is activated.
@@ -1237,6 +1264,18 @@ button {
1237
1264
  transform: rotate(180deg);
1238
1265
  }
1239
1266
 
1267
+ /**
1268
+ * When the select has no fill and
1269
+ * in an item, then the icon should
1270
+ * be the same color as the text color.
1271
+ */
1272
+ :host(.in-item.select-expanded) .select-wrapper .select-icon,
1273
+ :host(.in-item.has-focus) .select-wrapper .select-icon,
1274
+ :host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,
1275
+ :host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon {
1276
+ color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
1277
+ }
1278
+
1240
1279
  /**
1241
1280
  * When the select is focused the icon should
1242
1281
  * take on the highlight color.
@@ -1246,7 +1285,7 @@ button {
1246
1285
  :host(.select-expanded) .select-wrapper .select-icon,
1247
1286
  :host(.has-focus.ion-valid) .select-wrapper .select-icon,
1248
1287
  :host(.ion-touched.ion-invalid) .select-wrapper .select-icon,
1249
- :host(.ion-focused) .select-wrapper .select-icon {
1288
+ :host(.has-focus) .select-wrapper .select-icon {
1250
1289
  color: var(--highlight-color);
1251
1290
  }
1252
1291
 
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
+ import { printIonWarning } from "../../utils/logging/index";
5
6
  import { getIonMode } from "../../global/ionic-global";
6
7
  // TODO(FW-2832): types
7
8
  const SPLIT_PANE_MAIN = 'split-pane-main';
@@ -103,7 +104,7 @@ export class SplitPane {
103
104
  const isMain = contentId !== undefined && child.id === contentId;
104
105
  if (isMain) {
105
106
  if (foundMain) {
106
- console.warn('split pane cannot have more than one main node');
107
+ printIonWarning('[ion-split-pane] - Cannot have more than one main node.');
107
108
  return;
108
109
  }
109
110
  else {
@@ -113,17 +114,17 @@ export class SplitPane {
113
114
  }
114
115
  }
115
116
  if (!foundMain) {
116
- console.warn('split pane does not have a specified main node');
117
+ printIonWarning('[ion-split-pane] - Does not have a specified main node.');
117
118
  }
118
119
  }
119
120
  render() {
120
121
  const mode = getIonMode(this);
121
- return (h(Host, { key: '76be70d7fbebc52646a5851f47accc1006615b85', class: {
122
+ return (h(Host, { key: '098801b5a318e2fc6913fb0d9079b1552927b99b', class: {
122
123
  [mode]: true,
123
124
  // Used internally for styling
124
125
  [`split-pane-${mode}`]: true,
125
126
  'split-pane-visible': this.visible,
126
- } }, h("slot", { key: '9a859530f4fb18aff43255bc3940feb9aca625d7' })));
127
+ } }, h("slot", { key: '8cbc6a942ecba54fc3c62027d46917db067b65c8' })));
127
128
  }
128
129
  static get is() { return "ion-split-pane"; }
129
130
  static get encapsulation() { return "shadow"; }
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
5
  import { attachComponent } from "../../utils/framework-delegate";
6
+ import { printIonError } from "../../utils/logging/index";
6
7
  export class Tab {
7
8
  constructor() {
8
9
  this.loaded = false;
@@ -14,7 +15,7 @@ export class Tab {
14
15
  async componentWillLoad() {
15
16
  if (Build.isDev) {
16
17
  if (this.component !== undefined && this.el.childElementCount > 0) {
17
- console.error('You can not use a lazy-loaded component in a tab and inlined content at the same time.' +
18
+ printIonError('[ion-tab] - You can not use a lazy-loaded component in a tab and inlined content at the same time.' +
18
19
  `- Remove the component attribute in: <ion-tab component="${this.component}">` +
19
20
  ` or` +
20
21
  `- Remove the embedded content inside the ion-tab: <ion-tab></ion-tab>`);
@@ -41,17 +42,17 @@ export class Tab {
41
42
  return attachComponent(this.delegate, this.el, this.component, ['ion-page']);
42
43
  }
43
44
  catch (e) {
44
- console.error(e);
45
+ printIonError('[ion-tab] - Exception in prepareLazyLoaded:', e);
45
46
  }
46
47
  }
47
48
  return Promise.resolve(undefined);
48
49
  }
49
50
  render() {
50
51
  const { tab, active, component } = this;
51
- return (h(Host, { key: '2107ece2f1ebdf748bac8adb78a9ad67e7fc9057', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
52
+ return (h(Host, { key: 'c36c113e74e12b58459df9e3b546ad4856187e90', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
52
53
  'ion-page': component === undefined,
53
54
  'tab-hidden': !active,
54
- } }, h("slot", { key: 'b4a1bc1aa79f6b82b8f77b544bcb74e65229b541' })));
55
+ } }, h("slot", { key: '0d7821dac70ba7a12edfb3331988f3df1566cc1a' })));
55
56
  }
56
57
  static get is() { return "ion-tab"; }
57
58
  static get encapsulation() { return "shadow"; }
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
+ import { printIonError } from "../../utils/logging/index";
5
6
  /**
6
7
  * @slot - Content is placed between the named slots if provided without a slot.
7
8
  * @slot top - Content is placed at the top of the screen.
@@ -145,7 +146,7 @@ export class Tabs {
145
146
  return Array.from(this.el.querySelectorAll('ion-tab'));
146
147
  }
147
148
  render() {
148
- return (h(Host, { key: 'd357c4607cfc89fb88404fe12ea7ef5b397fe6bf', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '18661896589a4ab3c74164f448b928abec9b4db0', name: "top" }), h("div", { key: '3bf30ea2540a196e868a78a861824b4b5d933afd', class: "tabs-inner" }, h("slot", { key: '7cfc154d4d6c1642188ab6508a6be72c8234585e' })), h("slot", { key: '8057679c959195cbdfae156b8ae0cbfd978c5037', name: "bottom" })));
149
+ return (h(Host, { key: '20b97196d78c1b3f3faf31618a8a2347e087f06b', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'b0823fbae6e47743cfd12c376b365ad7e32cec7c', name: "top" }), h("div", { key: 'eaffd7e4d69ab9489a387e3bbb36e3bab72203a0', class: "tabs-inner" }, h("slot", { key: '20bb66a2937e3ec473aa59c4075ce581b5411677' })), h("slot", { key: '1529dd361f050f52074f51c73b3982ba827dc3a5', name: "bottom" })));
149
150
  }
150
151
  static get is() { return "ion-tabs"; }
151
152
  static get encapsulation() { return "shadow"; }
@@ -376,7 +377,7 @@ export class Tabs {
376
377
  const getTab = (tabs, tab) => {
377
378
  const tabEl = typeof tab === 'string' ? tabs.find((t) => t.tab === tab) : tab;
378
379
  if (!tabEl) {
379
- console.error(`tab with id: "${tabEl}" does not exist`);
380
+ printIonError(`[ion-tabs] - Tab with id: "${tabEl}" does not exist`);
380
381
  }
381
382
  return tabEl;
382
383
  };
@@ -385,7 +385,7 @@ export class Textarea {
385
385
  * TODO(FW-5592): Remove hasStartEndSlots condition
386
386
  */
387
387
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
388
- return (h(Host, { key: '3bf42ea1fa739f334427c70f91a89b8b0e0f21ec', class: createColorClasses(this.color, {
388
+ return (h(Host, { key: '016dd354c8a4cd62646d4a85dbcfa2eacb870d69', class: createColorClasses(this.color, {
389
389
  [mode]: true,
390
390
  'has-value': hasValue,
391
391
  'has-focus': hasFocus,
@@ -394,7 +394,7 @@ export class Textarea {
394
394
  [`textarea-shape-${shape}`]: shape !== undefined,
395
395
  [`textarea-label-placement-${labelPlacement}`]: true,
396
396
  'textarea-disabled': disabled,
397
- }) }, h("label", { key: 'f7acceeb74849d13a6af8d39b66ea2701384c955', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: '05e9f2ebad1742a9e66d243d18c22ddd4c83ee04', class: "textarea-wrapper-inner" }, h("div", { key: '70a9935351c38413ced05f5e4dc0055b9b001ee9', class: "start-slot-wrapper" }, h("slot", { key: '11206eaa31d112c01f2218bf2ff46375ad819d1f', name: "start" })), h("div", { key: 'bfd215dbb5f4d60f5fb62d37226fdc6ce61ec107', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '2fa5cdf4c6614dd8cd4b7d2a19811a79c96ac50d', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), h("div", { key: '8a67ad8e3b5650680f770cefc562d190f6760718', class: "end-slot-wrapper" }, h("slot", { key: '03bb6bc5f2808c1f474a6c3168169d17f7569fda', name: "end" }))), shouldRenderHighlight && h("div", { key: 'cd564bd01a1ca3f914218e34a78d296ad0838e4a', class: "textarea-highlight" })), this.renderBottomContent()));
397
+ }) }, h("label", { key: '7e98f3fc05f678e8567d9977aa7e622ddb90d394', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), h("div", { key: '7af77dad961ca9f80bbc6be8cd834989542ae27d', class: "textarea-wrapper-inner" }, h("div", { key: 'e311cda4bb52e93ce7775f40b62a0a62a847794b', class: "start-slot-wrapper" }, h("slot", { key: '81248b4cedce3876c1da9da03d36e3bee8442738', name: "start" })), h("div", { key: 'f68ba6e2bb3df4971ecbebbcb316f31ee10f9e75', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, h("textarea", Object.assign({ key: '2e896ef782d08b56454a1656301b8ce54564c8b3', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), h("div", { key: '7eff97dabd340641a666a388fc590caa88128046', class: "end-slot-wrapper" }, h("slot", { key: 'e8f7e6bd5a33afae6add6d920954cca7a3c0612b', name: "end" }))), shouldRenderHighlight && h("div", { key: '4c825874e6ed910e3aa36b16fa1d2927b7f006b1', class: "textarea-highlight" })), this.renderBottomContent()));
398
398
  }
399
399
  static get is() { return "ion-textarea"; }
400
400
  static get encapsulation() { return "scoped"; }
@@ -75,7 +75,7 @@ export function getAnimationPosition(position, positionAnchor, mode, toast) {
75
75
  */
76
76
  function warnIfAnchorIsHidden(positionAnchor, toast) {
77
77
  if (positionAnchor.offsetParent === null) {
78
- printIonWarning('The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
78
+ printIonWarning('[ion-toast] - The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
79
79
  }
80
80
  }
81
81
  /**
@@ -5,7 +5,7 @@ import { h, Host } from "@stencil/core";
5
5
  import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
6
6
  import { raf } from "../../utils/helpers";
7
7
  import { createLockController } from "../../utils/lock-controller";
8
- import { printIonWarning } from "../../utils/logging/index";
8
+ import { printIonError, printIonWarning } from "../../utils/logging/index";
9
9
  import { GESTURE, createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
10
10
  import { sanitizeDOMString } from "../../utils/sanitization/index";
11
11
  import { createColorClasses, getClassMap } from "../../utils/theme";
@@ -291,7 +291,7 @@ export class Toast {
291
291
  return;
292
292
  }
293
293
  if (position === 'middle' && positionAnchor !== undefined) {
294
- printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
294
+ printIonWarning('[ion-toast] - The positionAnchor property is ignored when using position="middle".', this.el);
295
295
  return undefined;
296
296
  }
297
297
  if (typeof positionAnchor === 'string') {
@@ -303,7 +303,7 @@ export class Toast {
303
303
  */
304
304
  const foundEl = document.getElementById(positionAnchor);
305
305
  if (foundEl === null) {
306
- printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
306
+ printIonWarning(`[ion-toast] - An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
307
307
  return undefined;
308
308
  }
309
309
  return foundEl;
@@ -311,7 +311,7 @@ export class Toast {
311
311
  if (positionAnchor instanceof HTMLElement) {
312
312
  return positionAnchor;
313
313
  }
314
- printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
314
+ printIonWarning('[ion-toast] - Invalid positionAnchor value:', positionAnchor, el);
315
315
  return undefined;
316
316
  }
317
317
  async buttonClick(button) {
@@ -337,7 +337,7 @@ export class Toast {
337
337
  }
338
338
  }
339
339
  catch (e) {
340
- console.error(e);
340
+ printIonError('[ion-toast] - Exception in callButtonHandler:', e);
341
341
  }
342
342
  }
343
343
  return true;
@@ -389,11 +389,11 @@ export class Toast {
389
389
  * used with one type of button.
390
390
  */
391
391
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
392
- printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
392
+ printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
393
393
  }
394
- return (h(Host, Object.assign({ key: '34036afc0701173d51c9c11ea4a2e1d65685ba41', tabindex: "-1" }, this.htmlAttributes, { style: {
394
+ return (h(Host, Object.assign({ key: 'a2216d860255c99337464370dcb12f6125871a50', tabindex: "-1" }, this.htmlAttributes, { style: {
395
395
  zIndex: `${60000 + this.overlayIndex}`,
396
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'd927e43957f47888ce4e64f1e99c935d55757af7', class: wrapperClass }, h("div", { key: 'ca43bc42478181acdf8cdea6601a85fa95d12216', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: 'fdd6fb8f6e947ed002bd2e63fdc8ec7e764f4a7d', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '37c16c81ee3e4304379dfbcabdffe73db73e4653', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
396
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: 'd5adf8bc4c6c52431600033a76c4795689f9b412', class: wrapperClass }, h("div", { key: 'ab694497ae37ceba123217eb48800129b9bebb84', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '224854fa3989ce0eb69416cb5b0cc55fc9f131ea', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'c8e11fb5bdac202987f5c8613a0ebbd42bda946e', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
397
397
  }
398
398
  static get is() { return "ion-toast"; }
399
399
  static get encapsulation() { return "shadow"; }
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { getMode, setMode } from "@stencil/core";
5
+ import { printIonWarning } from "../utils/logging/index";
5
6
  import { isPlatform, setupPlatforms } from "../utils/platform";
6
7
  import { config, configFromSession, configFromURL, saveConfig } from "./config";
7
8
  // TODO(FW-2832): types
@@ -46,7 +47,7 @@ export const initialize = (userConfig = {}) => {
46
47
  return elmMode;
47
48
  }
48
49
  else if (isIonicElement(elm)) {
49
- console.warn('Invalid ionic mode: "' + elmMode + '", expected: "ios" or "md"');
50
+ printIonWarning('Invalid ionic mode: "' + elmMode + '", expected: "ios" or "md"');
50
51
  }
51
52
  }
52
53
  elm = elm.parentElement;
@@ -10,6 +10,7 @@ export { getTimeGivenProgression } from './utils/animation/cubic-bezier';
10
10
  export { createGesture } from './utils/gesture';
11
11
  export { initialize } from './global/ionic-global';
12
12
  export { componentOnReady } from './utils/helpers';
13
+ export { LogLevel } from './utils/logging';
13
14
  export { isPlatform, getPlatforms } from './utils/platform';
14
15
  export { IonicSafeString } from './utils/sanitization';
15
16
  export { getMode, setupConfig } from './utils/config';
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { printIonError } from "../logging/index";
4
5
  import { win } from "../browser";
5
6
  import { addClassToArray, setStyleProperty } from "./animation-utils";
6
7
  export const createAnimation = (animationId) => {
@@ -345,7 +346,7 @@ export const createAnimation = (animationId) => {
345
346
  }
346
347
  }
347
348
  else {
348
- console.error('Invalid addElement value');
349
+ printIonError('createAnimation - Invalid addElement value.');
349
350
  }
350
351
  }
351
352
  return ani;
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { win } from "./browser/index";
5
+ import { printIonError } from "./logging/index";
5
6
  import { config } from "../global/config";
6
7
  /**
7
8
  * CloseWatcher is a newer API that lets
@@ -57,7 +58,7 @@ export const startHardwareBackButton = () => {
57
58
  }
58
59
  }
59
60
  catch (e) {
60
- console.error(e);
61
+ printIonError('[ion-app] - Exception in startHardwareBackButton:', e);
61
62
  }
62
63
  };
63
64
  const processHandlers = () => {
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { printIonError } from "./logging/index";
4
5
  export const transitionEndAsync = (el, expectedDuration = 0) => {
5
6
  return new Promise((resolve) => {
6
7
  transitionEnd(el, expectedDuration, resolve);
@@ -251,7 +252,7 @@ export const clamp = (min, n, max) => {
251
252
  export const assert = (actual, reason) => {
252
253
  if (!actual) {
253
254
  const message = 'ASSERT: ' + reason;
254
- console.error(message);
255
+ printIonError(message);
255
256
  debugger; // eslint-disable-line
256
257
  throw new Error(message);
257
258
  }
@@ -2,6 +2,12 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { config } from "../../global/config";
5
+ export var LogLevel;
6
+ (function (LogLevel) {
7
+ LogLevel["OFF"] = "OFF";
8
+ LogLevel["ERROR"] = "ERROR";
9
+ LogLevel["WARN"] = "WARN";
10
+ })(LogLevel || (LogLevel = {}));
5
11
  /**
6
12
  * Logs a warning to the console with an Ionic prefix
7
13
  * to indicate the library that is warning the developer.
@@ -9,8 +15,8 @@ import { config } from "../../global/config";
9
15
  * @param message - The string message to be logged to the console.
10
16
  */
11
17
  export const printIonWarning = (message, ...params) => {
12
- const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
13
- if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
18
+ const logLevel = config.get('logLevel', LogLevel.WARN);
19
+ if ([LogLevel.WARN].includes(logLevel)) {
14
20
  return console.warn(`[Ionic Warning]: ${message}`, ...params);
15
21
  }
16
22
  };
@@ -22,8 +28,8 @@ export const printIonWarning = (message, ...params) => {
22
28
  * @param params - Additional arguments to supply to the console.error.
23
29
  */
24
30
  export const printIonError = (message, ...params) => {
25
- const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
26
- if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
31
+ const logLevel = config.get('logLevel', LogLevel.ERROR);
32
+ if ([LogLevel.ERROR, LogLevel.WARN].includes(logLevel)) {
27
33
  return console.error(`[Ionic Error]: ${message}`, ...params);
28
34
  }
29
35
  };
@@ -4,13 +4,13 @@
4
4
  import { doc } from "./browser/index";
5
5
  import { focusFirstDescendant, focusLastDescendant, focusableQueryString } from "./focus-trap";
6
6
  import { shouldUseCloseWatcher } from "./hardware-back-button";
7
+ import { printIonError, printIonWarning } from "./logging/index";
7
8
  import { config } from "../global/config";
8
9
  import { getIonMode } from "../global/ionic-global";
9
10
  import { CoreDelegate } from "./framework-delegate";
10
11
  import { BACKDROP_NO_SCROLL } from "./gesture/gesture-controller";
11
12
  import { OVERLAY_BACK_BUTTON_PRIORITY } from "./hardware-back-button";
12
13
  import { addEventListener, componentOnReady, focusVisibleElement, getElementRoot, removeEventListener, } from "./helpers";
13
- import { printIonWarning } from "./logging";
14
14
  import { isPlatform } from "./platform";
15
15
  let lastOverlayIndex = 0;
16
16
  let lastId = 0;
@@ -544,7 +544,7 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
544
544
  }
545
545
  const presentedOverlays = doc !== undefined ? getPresentedOverlays(doc) : [];
546
546
  /**
547
- * For accessibility, toasts lack focus traps and dont receive
547
+ * For accessibility, toasts lack focus traps and don't receive
548
548
  * `aria-hidden` on the root element when presented.
549
549
  *
550
550
  * All other overlays use focus traps to keep keyboard focus
@@ -607,7 +607,7 @@ export const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLe
607
607
  }
608
608
  }
609
609
  catch (err) {
610
- console.error(err);
610
+ printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
611
611
  }
612
612
  overlay.el.remove();
613
613
  revealOverlaysToScreenReaders();
@@ -787,7 +787,7 @@ export const createTriggerController = () => {
787
787
  removeClickListener();
788
788
  const triggerEl = trigger !== undefined ? document.getElementById(trigger) : null;
789
789
  if (!triggerEl) {
790
- printIonWarning(`A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`, el);
790
+ printIonWarning(`[${el.tagName.toLowerCase()}] - A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.`, el);
791
791
  return;
792
792
  }
793
793
  const configureTriggerInteraction = (targetEl, overlayEl) => {
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { printIonError } from "../logging/index";
4
5
  /**
5
6
  * Does a simple sanitization of all elements
6
7
  * in an untrusted string
@@ -75,7 +76,7 @@ export const sanitizeDOMString = (untrustedString) => {
75
76
  return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
76
77
  }
77
78
  catch (err) {
78
- console.error(err);
79
+ printIonError('sanitizeDOMString', err);
79
80
  return '';
80
81
  }
81
82
  };
package/dist/docs.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "timestamp": "2025-04-16T06:09:44",
2
+ "timestamp": "2025-04-16T17:34:19",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
5
  "version": "4.20.0",
@@ -1,6 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { d as printIonError } from './index-cfd9c1f2.js';
4
5
  import { w as win } from './index-a5d50daf.js';
5
6
 
6
7
  let animationPrefix;
@@ -365,7 +366,7 @@ const createAnimation = (animationId) => {
365
366
  }
366
367
  }
367
368
  else {
368
- console.error('Invalid addElement value');
369
+ printIonError('createAnimation - Invalid addElement value.');
369
370
  }
370
371
  }
371
372
  return ani;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-ca86cf32.js';
4
+ import { i as initialize } from './ionic-global-b26f573e.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,6 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { d as printIonError } from './index-cfd9c1f2.js';
5
+
4
6
  /**
5
7
  * Does a simple sanitization of all elements
6
8
  * in an untrusted string
@@ -75,7 +77,7 @@ const sanitizeDOMString = (untrustedString) => {
75
77
  return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
76
78
  }
77
79
  catch (err) {
78
- console.error(err);
80
+ printIonError('sanitizeDOMString', err);
79
81
  return '';
80
82
  }
81
83
  };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { p as printIonWarning } from './index-738d7504.js';
4
+ import { p as printIonWarning } from './index-cfd9c1f2.js';
5
5
 
6
6
  /**
7
7
  * Returns true if the selected day is equal to the reference day
@@ -35,7 +35,7 @@ const warnIfValueOutOfBounds = (value, min, max) => {
35
35
  const valueArray = Array.isArray(value) ? value : [value];
36
36
  for (const val of valueArray) {
37
37
  if ((min !== undefined && isBefore(val, min)) || (max !== undefined && isAfter(val, max))) {
38
- printIonWarning('The value provided to ion-datetime is out of bounds.\n\n' +
38
+ printIonWarning('[ion-datetime] - The value provided to ion-datetime is out of bounds.\n\n' +
39
39
  `Min: ${JSON.stringify(min)}\n` +
40
40
  `Max: ${JSON.stringify(max)}\n` +
41
41
  `Value: ${JSON.stringify(value)}`);
@@ -252,7 +252,7 @@ function parseDate(val) {
252
252
  }
253
253
  if (parse === null) {
254
254
  // wasn't able to parse the ISO datetime
255
- printIonWarning(`Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
255
+ printIonWarning(`[ion-datetime] - Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
256
256
  return undefined;
257
257
  }
258
258
  // ensure all the parse values exist with at least 0
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-78efeec3.js';
4
+ import { c as componentOnReady } from './helpers-d94bc8ad.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {