@ionic/core 8.5.5-nightly.20250415 → 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
package/hydrate/index.mjs CHANGED
@@ -2364,6 +2364,80 @@ var Build = {
2364
2364
  var styles = /* @__PURE__ */ new Map();
2365
2365
  var modeResolutionChain = [];
2366
2366
 
2367
+ // TODO(FW-2832): types
2368
+ class Config {
2369
+ constructor() {
2370
+ this.m = new Map();
2371
+ }
2372
+ reset(configObj) {
2373
+ this.m = new Map(Object.entries(configObj));
2374
+ }
2375
+ get(key, fallback) {
2376
+ const value = this.m.get(key);
2377
+ return value !== undefined ? value : fallback;
2378
+ }
2379
+ getBoolean(key, fallback = false) {
2380
+ const val = this.m.get(key);
2381
+ if (val === undefined) {
2382
+ return fallback;
2383
+ }
2384
+ if (typeof val === 'string') {
2385
+ return val === 'true';
2386
+ }
2387
+ return !!val;
2388
+ }
2389
+ getNumber(key, fallback) {
2390
+ const val = parseFloat(this.m.get(key));
2391
+ return isNaN(val) ? (fallback !== undefined ? fallback : NaN) : val;
2392
+ }
2393
+ set(key, value) {
2394
+ this.m.set(key, value);
2395
+ }
2396
+ }
2397
+ const config = /*@__PURE__*/ new Config();
2398
+
2399
+ var LogLevel;
2400
+ (function (LogLevel) {
2401
+ LogLevel["OFF"] = "OFF";
2402
+ LogLevel["ERROR"] = "ERROR";
2403
+ LogLevel["WARN"] = "WARN";
2404
+ })(LogLevel || (LogLevel = {}));
2405
+ /**
2406
+ * Logs a warning to the console with an Ionic prefix
2407
+ * to indicate the library that is warning the developer.
2408
+ *
2409
+ * @param message - The string message to be logged to the console.
2410
+ */
2411
+ const printIonWarning = (message, ...params) => {
2412
+ const logLevel = config.get('logLevel', LogLevel.WARN);
2413
+ if ([LogLevel.WARN].includes(logLevel)) {
2414
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
2415
+ }
2416
+ };
2417
+ /**
2418
+ * Logs an error to the console with an Ionic prefix
2419
+ * to indicate the library that is warning the developer.
2420
+ *
2421
+ * @param message - The string message to be logged to the console.
2422
+ * @param params - Additional arguments to supply to the console.error.
2423
+ */
2424
+ const printIonError = (message, ...params) => {
2425
+ const logLevel = config.get('logLevel', LogLevel.ERROR);
2426
+ if ([LogLevel.ERROR, LogLevel.WARN].includes(logLevel)) {
2427
+ return console.error(`[Ionic Error]: ${message}`, ...params);
2428
+ }
2429
+ };
2430
+ /**
2431
+ * Prints an error informing developers that an implementation requires an element to be used
2432
+ * within a specific selector.
2433
+ *
2434
+ * @param el The web component element this is requiring the element.
2435
+ * @param targetSelectors The selector or selectors that were not found.
2436
+ */
2437
+ const printRequiredElementError = (el, ...targetSelectors) => {
2438
+ return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);
2439
+ };
2440
+
2367
2441
  const transitionEndAsync = (el, expectedDuration = 0) => {
2368
2442
  return new Promise((resolve) => {
2369
2443
  transitionEnd(el, expectedDuration, resolve);
@@ -2614,7 +2688,7 @@ const clamp = (min, n, max) => {
2614
2688
  const assert = (actual, reason) => {
2615
2689
  if (!actual) {
2616
2690
  const message = 'ASSERT: ' + reason;
2617
- console.error(message);
2691
+ printIonError(message);
2618
2692
  debugger; // eslint-disable-line
2619
2693
  throw new Error(message);
2620
2694
  }
@@ -2712,38 +2786,6 @@ const reorderTwoSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2
2712
2786
  const searchOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M221.09 64a157.09 157.09 0 10157.09 157.09A157.1 157.1 0 00221.09 64z' stroke-miterlimit='10' class='ionicon-fill-none ionicon-stroke-width'/><path stroke-linecap='round' stroke-miterlimit='10' d='M338.29 338.29L448 448' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
2713
2787
  const searchSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M464 428L339.92 303.9a160.48 160.48 0 0030.72-94.58C370.64 120.37 298.27 48 209.32 48S48 120.37 48 209.32s72.37 161.32 161.32 161.32a160.48 160.48 0 0094.58-30.72L428 464zM209.32 319.69a110.38 110.38 0 11110.37-110.37 110.5 110.5 0 01-110.37 110.37z'/></svg>";
2714
2788
 
2715
- // TODO(FW-2832): types
2716
- class Config {
2717
- constructor() {
2718
- this.m = new Map();
2719
- }
2720
- reset(configObj) {
2721
- this.m = new Map(Object.entries(configObj));
2722
- }
2723
- get(key, fallback) {
2724
- const value = this.m.get(key);
2725
- return value !== undefined ? value : fallback;
2726
- }
2727
- getBoolean(key, fallback = false) {
2728
- const val = this.m.get(key);
2729
- if (val === undefined) {
2730
- return fallback;
2731
- }
2732
- if (typeof val === 'string') {
2733
- return val === 'true';
2734
- }
2735
- return !!val;
2736
- }
2737
- getNumber(key, fallback) {
2738
- const val = parseFloat(this.m.get(key));
2739
- return isNaN(val) ? (fallback !== undefined ? fallback : NaN) : val;
2740
- }
2741
- set(key, value) {
2742
- this.m.set(key, value);
2743
- }
2744
- }
2745
- const config = /*@__PURE__*/ new Config();
2746
-
2747
2789
  const getPlatforms = (win) => setupPlatforms(win);
2748
2790
  const isPlatform = (winOrPlatform, platform) => {
2749
2791
  if (typeof winOrPlatform === 'string') {
@@ -3185,42 +3227,6 @@ class Accordion {
3185
3227
  }
3186
3228
  let accordionIds = 0;
3187
3229
 
3188
- /**
3189
- * Logs a warning to the console with an Ionic prefix
3190
- * to indicate the library that is warning the developer.
3191
- *
3192
- * @param message - The string message to be logged to the console.
3193
- */
3194
- const printIonWarning = (message, ...params) => {
3195
- const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3196
- if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3197
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3198
- }
3199
- };
3200
- /**
3201
- * Logs an error to the console with an Ionic prefix
3202
- * to indicate the library that is warning the developer.
3203
- *
3204
- * @param message - The string message to be logged to the console.
3205
- * @param params - Additional arguments to supply to the console.error.
3206
- */
3207
- const printIonError = (message, ...params) => {
3208
- const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3209
- if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3210
- return console.error(`[Ionic Error]: ${message}`, ...params);
3211
- }
3212
- };
3213
- /**
3214
- * Prints an error informing developers that an implementation requires an element to be used
3215
- * within a specific selector.
3216
- *
3217
- * @param el The web component element this is requiring the element.
3218
- * @param targetSelectors The selector or selectors that were not found.
3219
- */
3220
- const printRequiredElementError = (el, ...targetSelectors) => {
3221
- return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);
3222
- };
3223
-
3224
3230
  const accordionGroupIosCss = ":host{display:block}:host(.accordion-group-expand-inset){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:16px;margin-bottom:16px}:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanding),:host(.accordion-group-expand-inset) ::slotted(ion-accordion.accordion-expanded){border-bottom:none}";
3225
3231
  var IonAccordionGroupIosStyle0 = accordionGroupIosCss;
3226
3232
 
@@ -3253,7 +3259,7 @@ class AccordionGroup {
3253
3259
  * Default toString() behavior: a,b
3254
3260
  * Custom behavior: ['a', 'b']
3255
3261
  */
3256
- printIonWarning(`ion-accordion-group was passed an array of values, but multiple="false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false".
3262
+ printIonWarning(`[ion-accordion-group] - An array of values was passed, but multiple is "false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false".
3257
3263
 
3258
3264
  Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
3259
3265
  `, this.el);
@@ -3423,12 +3429,12 @@ class AccordionGroup {
3423
3429
  render() {
3424
3430
  const { disabled, readonly, expand } = this;
3425
3431
  const mode = getIonMode$1(this);
3426
- return (hAsync(Host, { key: '82f3e77066fabb4736638ee4c487ad56efd39c63', class: {
3432
+ return (hAsync(Host, { key: 'd1a79a93179474fbba66fcf11a92f4871dacc975', class: {
3427
3433
  [mode]: true,
3428
3434
  'accordion-group-disabled': disabled,
3429
3435
  'accordion-group-readonly': readonly,
3430
3436
  [`accordion-group-expand-${expand}`]: true,
3431
- }, role: "presentation" }, hAsync("slot", { key: 'a3c791ea887fc640b512f81d429be465ae902b3d' })));
3437
+ }, role: "presentation" }, hAsync("slot", { key: 'e6b8954b686d1fbb4fc92adb07fddc97a24b0a31' })));
3432
3438
  }
3433
3439
  get el() { return getElement(this); }
3434
3440
  static get watchers() { return {
@@ -5118,7 +5124,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
5118
5124
  }
5119
5125
  const presentedOverlays = doc !== undefined ? getPresentedOverlays(doc) : [];
5120
5126
  /**
5121
- * For accessibility, toasts lack focus traps and dont receive
5127
+ * For accessibility, toasts lack focus traps and don't receive
5122
5128
  * `aria-hidden` on the root element when presented.
5123
5129
  *
5124
5130
  * All other overlays use focus traps to keep keyboard focus
@@ -5181,7 +5187,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
5181
5187
  }
5182
5188
  }
5183
5189
  catch (err) {
5184
- console.error(err);
5190
+ printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
5185
5191
  }
5186
5192
  overlay.el.remove();
5187
5193
  revealOverlaysToScreenReaders();
@@ -5361,7 +5367,7 @@ const createTriggerController = () => {
5361
5367
  removeClickListener();
5362
5368
  const triggerEl = trigger !== undefined ? document.getElementById(trigger) : null;
5363
5369
  if (!triggerEl) {
5364
- 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);
5370
+ 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);
5365
5371
  return;
5366
5372
  }
5367
5373
  const configureTriggerInteraction = (targetEl, overlayEl) => {
@@ -5870,7 +5876,7 @@ const createAnimation = (animationId) => {
5870
5876
  }
5871
5877
  }
5872
5878
  else {
5873
- console.error('Invalid addElement value');
5879
+ printIonError('createAnimation - Invalid addElement value.');
5874
5880
  }
5875
5881
  }
5876
5882
  return ani;
@@ -6728,7 +6734,7 @@ const sanitizeDOMString = (untrustedString) => {
6728
6734
  return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
6729
6735
  }
6730
6736
  catch (err) {
6731
- console.error(err);
6737
+ printIonError('sanitizeDOMString', err);
6732
6738
  return '';
6733
6739
  }
6734
6740
  };
@@ -7048,7 +7054,7 @@ class Alert {
7048
7054
  // checkboxes and inputs are all accepted, but they cannot be mixed.
7049
7055
  const inputTypes = new Set(inputs.map((i) => i.type));
7050
7056
  if (inputTypes.has('checkbox') && inputTypes.has('radio')) {
7051
- console.warn(`Alert cannot mix input types: ${Array.from(inputTypes.values()).join('/')}. Please see alert docs for more info.`);
7057
+ printIonWarning(`[ion-alert] - Alert cannot mix input types: ${Array.from(inputTypes.values()).join('/')}. Please see alert docs for more info.`);
7052
7058
  }
7053
7059
  this.inputType = inputTypes.values().next().value;
7054
7060
  this.processedInputs = inputs.map((i, index) => {
@@ -7321,9 +7327,9 @@ class Alert {
7321
7327
  * If neither are defined, do not set aria-labelledby.
7322
7328
  */
7323
7329
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7324
- return (hAsync(Host, { key: '755f2398806084f16ee24d9fefce9ebc0b8f30f2', tabindex: "-1", style: {
7330
+ return (hAsync(Host, { key: 'f8ee04fe6a97a2585b302c8e1a9eea3b122e3479', tabindex: "-1", style: {
7325
7331
  zIndex: `${20000 + overlayIndex}`,
7326
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '5965913fb076436e37f4a55cd8778cbc58449bfd', tappable: this.backdropDismiss }), hAsync("div", { key: 'cb17e07896b6ad8c9c607261fe08437b1a3b272f', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: 'e1d43053dceab70b9392802767caa70fa7ed0518', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: 'a82e0bf863971084f3a8a34d25d6cf7aae1690a8', class: "alert-head" }, header && (hAsync("h2", { key: '36a9b4394f4b4cdcd6972ae60265ac889e2157cf', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '86008c1eb484cc69f66e42c254933ce289180785', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'bfaacd3b119d06273683019cddef2c42245c3101', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '0e7df4ab31a72953dcf171ebc87074603f848c06', tabindex: "0", "aria-hidden": "true" })));
7332
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'e9592e879f51c27ef20016beec12c986be632cf3', tappable: this.backdropDismiss }), hAsync("div", { key: '5e9425c3c8acdea6f8006389689c73220e2ce423', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '615465703e357619681fc36ed7276591a6fe3787', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: '934eba3759456cd4660e10f274edc7859f908461', class: "alert-head" }, header && (hAsync("h2", { key: '7d5d98d71f81f59a2cba227121b6fa01e6cc53b6', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: 'e5f5d35748c58a98ee933eb15cb1dcaf8113e9a7', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: 'a5cb89ca02bfa9c4828e694cb0835493a9088b05', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'cacffc31c911882df73e6845d15c8bb2d4acab56', tabindex: "0", "aria-hidden": "true" })));
7327
7333
  }
7328
7334
  get el() { return getElement(this); }
7329
7335
  static get watchers() { return {
@@ -7401,7 +7407,7 @@ class App {
7401
7407
  }
7402
7408
  render() {
7403
7409
  const mode = getIonMode$1(this);
7404
- return (hAsync(Host, { key: '96715520fd05d6f0e6fa26a8ba78792cfccd4c0a', class: {
7410
+ return (hAsync(Host, { key: '03aa892f986330078d112b1e8b010df98fa7e39e', class: {
7405
7411
  [mode]: true,
7406
7412
  'ion-page': true,
7407
7413
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -8048,7 +8054,7 @@ class Button {
8048
8054
  * The developer specified a string for the form attribute, but the
8049
8055
  * element with that id is not a form element.
8050
8056
  */
8051
- printIonWarning(`Form with selector: "#${form}" could not be found. Verify that the id is attached to a <form> element.`, this.el);
8057
+ printIonWarning(`[ion-button] - Form with selector: "#${form}" could not be found. Verify that the id is attached to a <form> element.`, this.el);
8052
8058
  return null;
8053
8059
  }
8054
8060
  }
@@ -8057,7 +8063,7 @@ class Button {
8057
8063
  * The developer specified a string for the form attribute, but the
8058
8064
  * element with that id could not be found in the DOM.
8059
8065
  */
8060
- printIonWarning(`Form with selector: "#${form}" could not be found. Verify that the id is correct and the form is rendered in the DOM.`, this.el);
8066
+ printIonWarning(`[ion-button] - Form with selector: "#${form}" could not be found. Verify that the id is correct and the form is rendered in the DOM.`, this.el);
8061
8067
  return null;
8062
8068
  }
8063
8069
  }
@@ -8068,7 +8074,7 @@ class Button {
8068
8074
  * This will also catch if the developer tries to pass in null
8069
8075
  * as the form attribute.
8070
8076
  */
8071
- printIonWarning(`The provided "form" element is invalid. Verify that the form is a HTMLFormElement and rendered in the DOM.`, this.el);
8077
+ printIonWarning(`[ion-button] - The provided "form" element is invalid. Verify that the form is a HTMLFormElement and rendered in the DOM.`, this.el);
8072
8078
  return null;
8073
8079
  }
8074
8080
  /**
@@ -8117,7 +8123,7 @@ class Button {
8117
8123
  {
8118
8124
  type !== 'button' && this.renderHiddenButton();
8119
8125
  }
8120
- return (hAsync(Host, { key: '340a809d85698741bb36e796355cae89a970655f', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8126
+ return (hAsync(Host, { key: 'e213b0bb76b3f90f883b1a0ea463bb86c2df69c3', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8121
8127
  [mode]: true,
8122
8128
  [buttonType]: true,
8123
8129
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -8132,7 +8138,7 @@ class Button {
8132
8138
  'button-disabled': disabled,
8133
8139
  'ion-activatable': true,
8134
8140
  'ion-focusable': true,
8135
- }) }, hAsync(TagType, Object.assign({ key: '03ae1b94a0d606aa65aa6f82c2fc76abcf3f1300' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("span", { key: '90bf53d4ffcab88ee596ece7113d5b6409e61143', class: "button-inner" }, hAsync("slot", { key: 'a7876695f0d8702e8bcb471ae4c0984f27d77458', name: "icon-only", onSlotchange: this.slotChanged }), hAsync("slot", { key: '2c8551586f8726884d7797a6d3fee2d4b3aab35f', name: "start" }), hAsync("slot", { key: '9ab07accdb22b08d0a463a7c821c9793507d1f7d' }), hAsync("slot", { key: '8984afe177e6ba021435875a3798e2a64f3bdf2c', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '3e9f01e7a1198b6b7109502293a971da7072a4f3', type: this.rippleType }))));
8141
+ }) }, hAsync(TagType, Object.assign({ key: 'b7c2a46fb994024841219316f4089335fa463d84' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("span", { key: '3e07a5c9f86836f9fbaefc6c617bdde6eb6f70cd', class: "button-inner" }, hAsync("slot", { key: '41c08ae09aed16faaa57707d229ff75d97f0731c', name: "icon-only", onSlotchange: this.slotChanged }), hAsync("slot", { key: 'ab8b749e4572884cc04970a7594466b4a24c886e', name: "start" }), hAsync("slot", { key: '397f7ff48ea45e82029414be95d29ae86e12c3a9' }), hAsync("slot", { key: '9a5627713002e8be3738d392b616f6e951b70e12', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '105566543ceda102474edab7ca8a44c7e71af589', type: this.rippleType }))));
8136
8142
  }
8137
8143
  get el() { return getElement(this); }
8138
8144
  static get watchers() { return {
@@ -9361,7 +9367,7 @@ const warnIfValueOutOfBounds = (value, min, max) => {
9361
9367
  const valueArray = Array.isArray(value) ? value : [value];
9362
9368
  for (const val of valueArray) {
9363
9369
  if ((min !== undefined && isBefore(val, min)) || (max !== undefined && isAfter(val, max))) {
9364
- printIonWarning('The value provided to ion-datetime is out of bounds.\n\n' +
9370
+ printIonWarning('[ion-datetime] - The value provided to ion-datetime is out of bounds.\n\n' +
9365
9371
  `Min: ${JSON.stringify(min)}\n` +
9366
9372
  `Max: ${JSON.stringify(max)}\n` +
9367
9373
  `Value: ${JSON.stringify(value)}`);
@@ -9578,7 +9584,7 @@ function parseDate(val) {
9578
9584
  }
9579
9585
  if (parse === null) {
9580
9586
  // wasn't able to parse the ISO datetime
9581
- printIonWarning(`Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
9587
+ printIonWarning(`[ion-datetime] - Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
9582
9588
  return undefined;
9583
9589
  }
9584
9590
  // ensure all the parse values exist with at least 0
@@ -11094,7 +11100,7 @@ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
11094
11100
  return highlightedDates(dateIsoString);
11095
11101
  }
11096
11102
  catch (e) {
11097
- printIonError('Exception thrown from provided `highlightedDates` callback. Please check your function and try again.', el, e);
11103
+ printIonError('[ion-datetime] - Exception thrown from provided `highlightedDates` callback. Please check your function and try again.', el, e);
11098
11104
  }
11099
11105
  }
11100
11106
  return undefined;
@@ -11111,7 +11117,7 @@ const warnIfTimeZoneProvided = (el, formatOptions) => {
11111
11117
  ((_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _b === void 0 ? void 0 : _b.timeZoneName) ||
11112
11118
  ((_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _c === void 0 ? void 0 : _c.timeZone) ||
11113
11119
  ((_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _d === void 0 ? void 0 : _d.timeZoneName)) {
11114
- printIonWarning('Datetime: "timeZone" and "timeZoneName" are not supported in "formatOptions".', el);
11120
+ printIonWarning('[ion-datetime] - "timeZone" and "timeZoneName" are not supported in "formatOptions".', el);
11115
11121
  }
11116
11122
  };
11117
11123
  const checkForPresentationFormatMismatch = (el, presentation, formatOptions) => {
@@ -11125,18 +11131,18 @@ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) =>
11125
11131
  case 'month':
11126
11132
  case 'year':
11127
11133
  if (formatOptions.date === undefined) {
11128
- printIonWarning(`Datetime: The '${presentation}' presentation requires a date object in formatOptions.`, el);
11134
+ printIonWarning(`[ion-datetime] - The '${presentation}' presentation requires a date object in formatOptions.`, el);
11129
11135
  }
11130
11136
  break;
11131
11137
  case 'time':
11132
11138
  if (formatOptions.time === undefined) {
11133
- printIonWarning(`Datetime: The 'time' presentation requires a time object in formatOptions.`, el);
11139
+ printIonWarning(`[ion-datetime] - The 'time' presentation requires a time object in formatOptions.`, el);
11134
11140
  }
11135
11141
  break;
11136
11142
  case 'date-time':
11137
11143
  case 'time-date':
11138
11144
  if (formatOptions.date === undefined && formatOptions.time === undefined) {
11139
- printIonWarning(`Datetime: The '${presentation}' presentation requires either a date or time object (or both) in formatOptions.`, el);
11145
+ printIonWarning(`[ion-datetime] - The '${presentation}' presentation requires either a date or time object (or both) in formatOptions.`, el);
11140
11146
  }
11141
11147
  break;
11142
11148
  }
@@ -11195,7 +11201,7 @@ class Datetime {
11195
11201
  * Default toString() behavior: a,b
11196
11202
  * Custom behavior: ['a', 'b']
11197
11203
  */
11198
- printIonWarning(`ion-datetime was passed an array of values, but multiple="false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false".
11204
+ printIonWarning(`[ion-datetime] - An array of values was passed, but multiple is "false". This is incorrect usage and may result in unexpected behaviors. To dismiss this warning, pass a string to the "value" property when multiple="false".
11199
11205
 
11200
11206
  Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
11201
11207
  `, this.el);
@@ -12076,18 +12082,18 @@ class Datetime {
12076
12082
  const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
12077
12083
  if (multiple) {
12078
12084
  if (presentation !== 'date') {
12079
- printIonWarning('Multiple date selection is only supported for presentation="date".', el);
12085
+ printIonWarning('[ion-datetime] - Multiple date selection is only supported for presentation="date".', el);
12080
12086
  }
12081
12087
  if (preferWheel) {
12082
- printIonWarning('Multiple date selection is not supported with preferWheel="true".', el);
12088
+ printIonWarning('[ion-datetime] - Multiple date selection is not supported with preferWheel="true".', el);
12083
12089
  }
12084
12090
  }
12085
12091
  if (highlightedDates !== undefined) {
12086
12092
  if (presentation !== 'date' && presentation !== 'date-time' && presentation !== 'time-date') {
12087
- printIonWarning('The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
12093
+ printIonWarning('[ion-datetime] - The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
12088
12094
  }
12089
12095
  if (preferWheel) {
12090
- printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
12096
+ printIonWarning('[ion-datetime] - The highlightedDates property is not supported with preferWheel="true".', el);
12091
12097
  }
12092
12098
  }
12093
12099
  if (formatOptions) {
@@ -12218,7 +12224,7 @@ class Datetime {
12218
12224
  disabled = !isDateEnabled(convertDataToISO(referenceParts));
12219
12225
  }
12220
12226
  catch (e) {
12221
- printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12227
+ printIonError('[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12222
12228
  }
12223
12229
  return Object.assign(Object.assign({}, itemObject), { disabled });
12224
12230
  });
@@ -12267,7 +12273,7 @@ class Datetime {
12267
12273
  disabled = !isDateEnabled(convertDataToISO(referenceParts));
12268
12274
  }
12269
12275
  catch (e) {
12270
- printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12276
+ printIonError('[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12271
12277
  }
12272
12278
  return Object.assign(Object.assign({}, dayObject), { disabled });
12273
12279
  });
@@ -12465,7 +12471,7 @@ class Datetime {
12465
12471
  isCalDayDisabled = !isDateEnabled(dateIsoString);
12466
12472
  }
12467
12473
  catch (e) {
12468
- printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', el, e);
12474
+ printIonError('[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', el, e);
12469
12475
  }
12470
12476
  }
12471
12477
  /**
@@ -12601,7 +12607,7 @@ class Datetime {
12601
12607
  headerText = titleSelectedDatesFormatter(convertDataToISO(activeParts));
12602
12608
  }
12603
12609
  catch (e) {
12604
- printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);
12610
+ printIonError('[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:', e);
12605
12611
  }
12606
12612
  }
12607
12613
  }
@@ -12696,7 +12702,7 @@ class Datetime {
12696
12702
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
12697
12703
  const hasWheelVariant = hasDatePresentation && preferWheel;
12698
12704
  renderHiddenInput(true, el, name, formatValue(value), disabled);
12699
- return (hAsync(Host, { key: '08d429533a09c600b936ad1e022658051c765595', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12705
+ return (hAsync(Host, { key: 'c3dfea8f46fcbcef38eb9e8a69b1b46a4e4b82fd', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12700
12706
  [mode]: true,
12701
12707
  ['datetime-readonly']: readonly,
12702
12708
  ['datetime-disabled']: disabled,
@@ -12706,7 +12712,7 @@ class Datetime {
12706
12712
  [`datetime-size-${size}`]: true,
12707
12713
  [`datetime-prefer-wheel`]: hasWheelVariant,
12708
12714
  [`datetime-grid`]: isGridStyle,
12709
- })) }, hAsync("div", { key: 'f4ff0fcd1e059767a7ef14fcc76ebfd55d23a97b', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12715
+ })) }, hAsync("div", { key: '75c91243cf6a51f44b83d7cf7d8c0c96bfd3c83f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12710
12716
  }
12711
12717
  get el() { return getElement(this); }
12712
12718
  static get watchers() { return {
@@ -12866,7 +12872,7 @@ class DatetimeButton {
12866
12872
  headerText = titleSelectedDatesFormatter(parsedValues);
12867
12873
  }
12868
12874
  catch (e) {
12869
- printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);
12875
+ printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
12870
12876
  }
12871
12877
  }
12872
12878
  this.dateText = headerText;
@@ -13026,12 +13032,12 @@ class DatetimeButton {
13026
13032
  async componentWillLoad() {
13027
13033
  const { datetime } = this;
13028
13034
  if (!datetime) {
13029
- printIonError('An ID associated with an ion-datetime instance is required for ion-datetime-button to function properly.', this.el);
13035
+ printIonError('[ion-datetime-button] - An ID associated with an ion-datetime instance is required to function properly.', this.el);
13030
13036
  return;
13031
13037
  }
13032
13038
  const datetimeEl = (this.datetimeEl = document.getElementById(datetime));
13033
13039
  if (!datetimeEl) {
13034
- printIonError(`No ion-datetime instance found for ID '${datetime}'.`, this.el);
13040
+ printIonError(`[ion-datetime-button] - No ion-datetime instance found for ID '${datetime}'.`, this.el);
13035
13041
  return;
13036
13042
  }
13037
13043
  /**
@@ -13039,7 +13045,7 @@ class DatetimeButton {
13039
13045
  * if a non-datetime element was provided.
13040
13046
  */
13041
13047
  if (datetimeEl.tagName !== 'ION-DATETIME') {
13042
- printIonError(`Expected an ion-datetime instance for ID '${datetime}' but received '${datetimeEl.tagName.toLowerCase()}' instead.`, datetimeEl);
13048
+ printIonError(`[ion-datetime-button] - Expected an ion-datetime instance for ID '${datetime}' but received '${datetimeEl.tagName.toLowerCase()}' instead.`, datetimeEl);
13043
13049
  return;
13044
13050
  }
13045
13051
  /**
@@ -13114,11 +13120,11 @@ class DatetimeButton {
13114
13120
  render() {
13115
13121
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
13116
13122
  const mode = getIonMode$1(this);
13117
- return (hAsync(Host, { key: '26e606af6f067a5774db37ed41387ffebb941777', class: createColorClasses$1(color, {
13123
+ return (hAsync(Host, { key: '11d037e6ab061e5116842970760b04850b42f2c7', class: createColorClasses$1(color, {
13118
13124
  [mode]: true,
13119
13125
  [`${selectedButton}-active`]: datetimeActive,
13120
13126
  ['datetime-button-disabled']: disabled,
13121
- }) }, dateText && (hAsync("button", { key: '6b7aa66a15b4a6d89d411e40586de28a2ac9f343', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: 'd42f34fd167be34386319e7ea788c2ab03c90b87', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '47dd34f3c2799064cac7a5fe25440ecc043950f0' }))), timeText && (hAsync("button", { key: 'd77424a20fae320654774c7bfc8a8e2369d3afe3', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: 'ac088a78141bb53f2efd48dd7745f8954c92378b', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3a58ddfd28b9396e2518ffd62a045ec13d8b9d0' })))));
13127
+ }) }, dateText && (hAsync("button", { key: '08ecb62da0fcbf7466a1f2403276712a3ff17fbc', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: '1c04853d4d23c0f1a594602bde44511c98355644', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '5fc566cd4bc885bcf983ce99e3dc65d7f485bf9b' }))), timeText && (hAsync("button", { key: 'c9c5c34ac338badf8659da22bea5829d62c51169', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: '147a9d2069dbf737f6fc64787823d6d5af5aa653', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: '70a5e25b75ed90ac6bba003468435f67aa9d8f0a' })))));
13122
13128
  }
13123
13129
  get el() { return getElement(this); }
13124
13130
  static get style() { return {
@@ -15083,7 +15089,7 @@ const getCounterText = (value, maxLength, counterFormatter) => {
15083
15089
  return counterFormatter(valueLength, maxLength);
15084
15090
  }
15085
15091
  catch (e) {
15086
- printIonError('Exception in provided `counterFormatter`.', e);
15092
+ printIonError('[ion-input] - Exception in provided `counterFormatter`:', e);
15087
15093
  return defaultCounterText;
15088
15094
  }
15089
15095
  };
@@ -15507,7 +15513,7 @@ class Input {
15507
15513
  * TODO(FW-5592): Remove hasStartEndSlots condition
15508
15514
  */
15509
15515
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
15510
- return (hAsync(Host, { key: '166f7dea59931b8276bebef4d7a1fcd5ace90bad', class: createColorClasses$1(this.color, {
15516
+ return (hAsync(Host, { key: '01f49d79dd068256eb6bf24a01e8622ea6d67506', class: createColorClasses$1(this.color, {
15511
15517
  [mode]: true,
15512
15518
  'has-value': hasValue,
15513
15519
  'has-focus': hasFocus,
@@ -15518,7 +15524,7 @@ class Input {
15518
15524
  'in-item': inItem,
15519
15525
  'in-item-color': hostContext('ion-item.ion-color', this.el),
15520
15526
  'input-disabled': disabled,
15521
- }) }, hAsync("label", { key: 'c6da0b068f8abc0fb8ffaee1a71685b03ec837ec', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: 'cd25ec6d885bdbfdb2def51f1ad1756cc4f3e9e0', class: "native-wrapper" }, hAsync("slot", { key: '2582b54d551c93a89d4a663a8a61b6de5fae85cc', name: "start" }), hAsync("input", Object.assign({ key: '2b496016ba7a0c51ccd5509183e531f802701455', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '2db9987180cd4030ad63de197af838e152b47998', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
15527
+ }) }, hAsync("label", { key: '1cc45ad82b1b27108978aadb992b7aee60649be0', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '5f067a2595367840c853a4ca7d7ead77edf99849', class: "native-wrapper" }, hAsync("slot", { key: '6680b1345b673f5c2bf0d575de89df199b873ae5', name: "start" }), hAsync("input", Object.assign({ key: 'd508c472607d904ebcf9fa97ea26f92e50d34f0e', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '3f17a4630fa897608289e6cf51c2bf4f763f1652', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
15522
15528
  /**
15523
15529
  * This prevents mobile browsers from
15524
15530
  * blurring the input when the clear
@@ -15533,7 +15539,7 @@ class Input {
15533
15539
  * for screen readers as it means users would be unable to swipe past the clear button.
15534
15540
  */
15535
15541
  ev.stopPropagation();
15536
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'ea5e1a5f61046434bf502db692a05dece19aecd9', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: 'db1e7452cfc25accdb518ff0cc59ae3e2e47b049', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '0daeaaa5238e0c60ccfd251dedc6a381eba2fcc8', class: "input-highlight" })), this.renderBottomContent()));
15542
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '09d1004cf2ca31d936e5399c35b3ad6302008394', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: 'b7877386aebff51c36295046967ff4b82ef6a905', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'a0544f1d9af50c140cae1154d391b00d1d77e108', class: "input-highlight" })), this.renderBottomContent()));
15537
15543
  }
15538
15544
  get el() { return getElement(this); }
15539
15545
  static get watchers() { return {
@@ -15626,7 +15632,7 @@ class InputPasswordToggle {
15626
15632
  */
15627
15633
  onTypeChange(newValue) {
15628
15634
  if (newValue !== 'text' && newValue !== 'password') {
15629
- printIonWarning(`ion-input-password-toggle only supports inputs of type "text" or "password". Input of type "${newValue}" is not compatible.`, this.el);
15635
+ printIonWarning(`[ion-input-password-toggle] - Only inputs of type "text" or "password" are supported. Input of type "${newValue}" is not compatible.`, this.el);
15630
15636
  return;
15631
15637
  }
15632
15638
  }
@@ -15634,7 +15640,7 @@ class InputPasswordToggle {
15634
15640
  const { el } = this;
15635
15641
  const inputElRef = (this.inputElRef = el.closest('ion-input'));
15636
15642
  if (!inputElRef) {
15637
- printIonWarning('No ancestor ion-input found for ion-input-password-toggle. This component must be slotted inside of an ion-input.', el);
15643
+ printIonWarning('[ion-input-password-toggle] - No ancestor ion-input found. This component must be slotted inside of an ion-input.', el);
15638
15644
  return;
15639
15645
  }
15640
15646
  /**
@@ -15656,16 +15662,16 @@ class InputPasswordToggle {
15656
15662
  const showPasswordIcon = (_a = this.showIcon) !== null && _a !== void 0 ? _a : eye;
15657
15663
  const hidePasswordIcon = (_b = this.hideIcon) !== null && _b !== void 0 ? _b : eyeOff;
15658
15664
  const isPasswordVisible = type === 'text';
15659
- return (hAsync(Host, { key: 'd9811e25bfeb2aa197352bb9be852e9e420739d5', class: createColorClasses$1(color, {
15665
+ return (hAsync(Host, { key: '1a28e078c83e74c72d8bb8189ece93ec2e3fa3d0', class: createColorClasses$1(color, {
15660
15666
  [mode]: true,
15661
- }) }, hAsync("ion-button", { key: '1eaea1442b248fb2b8d61538b27274e647a07804', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": "show password", role: "switch", type: "button", onPointerDown: (ev) => {
15667
+ }) }, hAsync("ion-button", { key: '039d1bab764093bb6fe4a34299b0872abda087fd', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": "show password", role: "switch", type: "button", onPointerDown: (ev) => {
15662
15668
  /**
15663
15669
  * This prevents mobile browsers from
15664
15670
  * blurring the input when the password toggle
15665
15671
  * button is activated.
15666
15672
  */
15667
15673
  ev.preventDefault();
15668
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '9c88de8f4631d9bde222ce2edf6950d639e04773', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15674
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '26477ee97b808c3d79944bf5e33d4e05f1ae0b3f', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15669
15675
  }
15670
15676
  get el() { return getElement(this); }
15671
15677
  static get watchers() { return {
@@ -16453,7 +16459,7 @@ class ItemSliding {
16453
16459
  case 0 /* ItemSide.None */:
16454
16460
  return;
16455
16461
  default:
16456
- console.warn('invalid ItemSideFlags value', this.sides);
16462
+ printIonWarning('[ion-item-sliding] - invalid ItemSideFlags value', this.sides);
16457
16463
  break;
16458
16464
  }
16459
16465
  let optsWidth;
@@ -16579,7 +16585,7 @@ class ItemSliding {
16579
16585
  }
16580
16586
  render() {
16581
16587
  const mode = getIonMode$1(this);
16582
- return (hAsync(Host, { key: '22f83febcbc1bc27e4ddbd7fcbe590de60a10e89', class: {
16588
+ return (hAsync(Host, { key: 'f8aea4bb9802b111ef358cc6c172a635637ae1f8', class: {
16583
16589
  [mode]: true,
16584
16590
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
16585
16591
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -18078,14 +18084,14 @@ class Menu {
18078
18084
  * the ionBackButton listener in the menu controller
18079
18085
  * will handle closing the menu when Escape is pressed.
18080
18086
  */
18081
- return (hAsync(Host, { key: '342db8551d26604128b29b21d2d8c37593972ed9', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18087
+ return (hAsync(Host, { key: '0a2ba4ff5600b80b54d1b5b45124779c6aa0d2f2', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18082
18088
  [mode]: true,
18083
18089
  [`menu-type-${type}`]: true,
18084
18090
  'menu-enabled': !disabled,
18085
18091
  [`menu-side-${side}`]: true,
18086
18092
  'menu-pane-visible': isPaneVisible,
18087
18093
  'split-pane-side': hostContext('ion-split-pane', el),
18088
- } }, hAsync("div", { key: '3c9bec2862b7fb9d88de66b1600be01f6735e3dd', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '76283b4b2a65c78646f92c3b273eea021eda499c' })), hAsync("ion-backdrop", { key: '121c395bc4873542a1b6ae2c9e23f2e881e75d93', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
18094
+ } }, hAsync("div", { key: '40a222bcde4b959abc9939c44e89ea0cf8967aba', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '6a7ec5583294bb314990ff4ce6f25045652c07cb' })), hAsync("ion-backdrop", { key: '95f1e87237f3cc24845d91b744f935bad6bb460d', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
18089
18095
  }
18090
18096
  get el() { return getElement(this); }
18091
18097
  static get watchers() { return {
@@ -20103,7 +20109,7 @@ class Modal {
20103
20109
  this.currentBreakpoint = this.initialBreakpoint;
20104
20110
  }
20105
20111
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
20106
- printIonWarning('Your breakpoints array must include the initialBreakpoint value.');
20112
+ printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
20107
20113
  }
20108
20114
  if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
20109
20115
  setOverlayId(this.el);
@@ -20448,11 +20454,11 @@ class Modal {
20448
20454
  */
20449
20455
  async setCurrentBreakpoint(breakpoint) {
20450
20456
  if (!this.isSheetModal) {
20451
- printIonWarning('setCurrentBreakpoint is only supported on sheet modals.');
20457
+ printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
20452
20458
  return;
20453
20459
  }
20454
20460
  if (!this.breakpoints.includes(breakpoint)) {
20455
- printIonWarning(`Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
20461
+ printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
20456
20462
  return;
20457
20463
  }
20458
20464
  const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
@@ -20503,18 +20509,18 @@ class Modal {
20503
20509
  const mode = getIonMode$1(this);
20504
20510
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20505
20511
  const isHandleCycle = handleBehavior === 'cycle';
20506
- return (hAsync(Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20512
+ return (hAsync(Host, Object.assign({ key: '0991b2e4e32da511e59fb1463b47e4ac1b86d1ca', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20507
20513
  zIndex: `${20000 + this.overlayIndex}`,
20508
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
20514
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: 'ca9453ffe1021fb252ad9460676cfabb5633f00f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '9f8da446a7b0f3b26aec856e13f6d6d131a7e37b', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '9d08bf600571849c97b58f66df40b496a358d1e1',
20509
20515
  /*
20510
20516
  role and aria-modal must be used on the
20511
20517
  same element. They must also be set inside the
20512
20518
  shadow DOM otherwise ion-button will not be highlighted
20513
20519
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20514
20520
  */
20515
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
20521
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'f8bf0d1126e5376519101225d9965727121ee042', class: "modal-handle",
20516
20522
  // Prevents the handle from receiving keyboard focus when it does not cycle
20517
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
20523
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '6d52849df98f2c6c8fbc03996a931ea6a39a512b' }))));
20518
20524
  }
20519
20525
  get el() { return getElement(this); }
20520
20526
  static get watchers() { return {
@@ -21242,7 +21248,7 @@ class Nav {
21242
21248
  const finalNumViews = this.views.length + ((_b = insertViews === null || insertViews === void 0 ? void 0 : insertViews.length) !== null && _b !== void 0 ? _b : 0) - (removeCount !== null && removeCount !== void 0 ? removeCount : 0);
21243
21249
  assert(finalNumViews >= 0, 'final balance can not be negative');
21244
21250
  if (finalNumViews === 0) {
21245
- console.warn(`You can't remove all the pages in the navigation stack. nav.pop() is probably called too many times.`, this, this.el);
21251
+ printIonWarning(`[ion-nav] - You can't remove all the pages in the navigation stack. nav.pop() is probably called too many times.`, this, this.el);
21246
21252
  throw new Error('navigation stack needs at least one root page');
21247
21253
  }
21248
21254
  // At this point the transition can not be rejected, any throw should be an error
@@ -21464,7 +21470,7 @@ class Nav {
21464
21470
  }
21465
21471
  }
21466
21472
  render() {
21467
- return hAsync("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
21473
+ return hAsync("slot", { key: '188d0abd6c047d235380f07aac81223b757010e8' });
21468
21474
  }
21469
21475
  get el() { return getElement(this); }
21470
21476
  static get watchers() { return {
@@ -22205,7 +22211,7 @@ class Picker {
22205
22211
  }
22206
22212
  }
22207
22213
  componentDidLoad() {
22208
- printIonWarning('ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
22214
+ printIonWarning('[ion-picker-legacy] - ion-picker-legacy and ion-picker-legacy-column have been deprecated in favor of new versions of the ion-picker and ion-picker-column components. These new components display inline with your page content allowing for more presentation flexibility than before.', this.el);
22209
22215
  /**
22210
22216
  * If picker was rendered with isOpen="true"
22211
22217
  * then we should open picker immediately.
@@ -22315,11 +22321,11 @@ class Picker {
22315
22321
  render() {
22316
22322
  const { htmlAttributes } = this;
22317
22323
  const mode = getIonMode$1(this);
22318
- return (hAsync(Host, Object.assign({ key: 'dc03f252e3b59a94bc7132c953d2d3b36b62237e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22324
+ return (hAsync(Host, Object.assign({ key: 'b6b6ca6f9aa74681e6d67f64b366f5965fec2a6d', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22319
22325
  zIndex: `${20000 + this.overlayIndex}`,
22320
22326
  }, class: Object.assign({ [mode]: true,
22321
22327
  // Used internally for styling
22322
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'bdabe9c82c41f96da5dafb1a0aa0854fa7e7ec93', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '1380e0c8989153b425674753764f12f253f4a738', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'edec769bbc0993d003852d0bf1123e6e2332ebbe', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'b82c67ff47aa9412a6ff8f3b2e6230b855e92c51', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '76485b643387f36b6b3d5f85e4d072fa18e68552', class: "picker-columns" }, hAsync("div", { key: '99268217263feb5285db1b1acd48fd0e4d5f0e7b', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '2dd7e488bc4e9695094f0758567e626e0bb5979d', class: "picker-below-highlight" }))), hAsync("div", { key: '8b2f3ae798a4ddcdd4e2716ebba1de797e446ac4', tabindex: "0", "aria-hidden": "true" })));
22328
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '20202ca1d7b6cd5f517a802879b39efb79033cb1', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '72fe76a1e1748593cdf38deab5100087bfa75983', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '921954cfc716f3774aab66677563754ff479a44a', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '224413950bfcf2a948e58c2554c2a37a4e6d0319', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '7e688c2d0705940ec8a9ace493b679e6a9b68860', class: "picker-columns" }, hAsync("div", { key: '0ec2db79a9ca9e2a0b324b6c4b90176a0eb33df3', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'b8344f4f342fddc3f773435515567ef8f3accbb0', class: "picker-below-highlight" }))), hAsync("div", { key: '374c7a6b31b0a00ab3913faeea0ec3d6c02274b9', tabindex: "0", "aria-hidden": "true" })));
22323
22329
  }
22324
22330
  get el() { return getElement(this); }
22325
22331
  static get watchers() { return {
@@ -24438,7 +24444,7 @@ class Popover {
24438
24444
  }
24439
24445
  const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
24440
24446
  if (!triggerEl) {
24441
- 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 ion-popover.`, this.el);
24447
+ printIonWarning(`[ion-popover] - 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 ion-popover.`, this.el);
24442
24448
  return;
24443
24449
  }
24444
24450
  this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
@@ -24717,9 +24723,9 @@ class Popover {
24717
24723
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
24718
24724
  const desktop = isPlatform('desktop');
24719
24725
  const enableArrow = arrow && !parentPopover;
24720
- return (hAsync(Host, Object.assign({ key: '48f108a9b74f121559626889dd5a1fcccf38fc3d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24726
+ return (hAsync(Host, Object.assign({ key: 'ff24e8d9677711248a36994cce568e74ba151499', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24721
24727
  zIndex: `${20000 + this.overlayIndex}`,
24722
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '580c14ab48472534f59eedc5ba7fa486df25ed4e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '9bcf47893e8d3053e2baa40511785d84feb4038c', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '4d47f2bdc01a546a88190c07f8f4700f21de6715', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '70018c088654c1996e305b7b6b114419e97824ef', class: "popover-content", part: "content" }, hAsync("slot", { key: '3de8e1959b8facba2fbe694947704832200d8276' })))));
24728
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'aca68b4002a08b0e563a976a867141162c20f8b4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '62d21d1eab5c6d675d49932559ffb161747e5fec', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '1b46cc77d5302637fc979353483bb5fd780fd1d3', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: 'a5657bff26e46d1959b71eb0992e7dc8fcae86f1', class: "popover-content", part: "content" }, hAsync("slot", { key: 'e1a98007226a46b51109e7004c4d338ca1bc0f9e' })))));
24723
24729
  }
24724
24730
  get el() { return getElement(this); }
24725
24731
  static get watchers() { return {
@@ -25463,11 +25469,11 @@ class Range {
25463
25469
  const { activeBarStart } = this;
25464
25470
  if (activeBarStart !== undefined) {
25465
25471
  if (activeBarStart > this.max) {
25466
- printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
25472
+ printIonWarning(`[ion-range] - The value of activeBarStart (${activeBarStart}) is greater than the max (${this.max}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
25467
25473
  this.activeBarStart = this.max;
25468
25474
  }
25469
25475
  else if (activeBarStart < this.min) {
25470
- printIonWarning(`Range: The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
25476
+ printIonWarning(`[ion-range] - The value of activeBarStart (${activeBarStart}) is less than the min (${this.min}). Valid values are greater than or equal to the min value and less than or equal to the max value.`, this.el);
25471
25477
  this.activeBarStart = this.min;
25472
25478
  }
25473
25479
  }
@@ -25893,7 +25899,7 @@ class Range {
25893
25899
  const needsEndAdjustment = inItem && !hasEndContent;
25894
25900
  const mode = getIonMode$1(this);
25895
25901
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25896
- return (hAsync(Host, { key: 'e97cb7eab877eb1624429b4a79107130c6809cf5', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25902
+ return (hAsync(Host, { key: '3e065039ee048f1f70d97dba5dae98fa1315d867', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25897
25903
  [mode]: true,
25898
25904
  'in-item': inItem,
25899
25905
  'range-disabled': disabled,
@@ -25902,10 +25908,10 @@ class Range {
25902
25908
  [`range-label-placement-${labelPlacement}`]: true,
25903
25909
  'range-item-start-adjustment': needsStartAdjustment,
25904
25910
  'range-item-end-adjustment': needsEndAdjustment,
25905
- }) }, hAsync("label", { key: 'a43e9859f74f83460439efefccb5fbb9f387c9ee', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '75352a30f30dbd0228c6138eb4324a5c021dbb48', class: {
25911
+ }) }, hAsync("label", { key: '27ff22842c9ea79a1b9495302b926f70c9080a95', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'da1f9784be02dfe87d2fef34931d8b7f2148189e', class: {
25906
25912
  'label-text-wrapper': true,
25907
25913
  'label-text-wrapper-hidden': !hasLabel,
25908
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '6a3e147c3e5d938bb2b50522a290f6fdfcf40f05', class: "native-wrapper" }, hAsync("slot", { key: '6627236eac9f711fa9c27879a017dd994e65811e', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '6af3bbadacd036bc7cd30732227f76d7c64117fb', name: "end" })))));
25914
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '4389bf30b08214f5b5917fc30976b38f7bcdd29b', class: "native-wrapper" }, hAsync("slot", { key: 'ad1b2745f8b061ee189617bb5c567e4f1d02250c', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'c6dec9e843e232af2a5f16a0f8ee56439c545d7a', name: "end" })))));
25909
25915
  }
25910
25916
  get el() { return getElement(this); }
25911
25917
  static get watchers() { return {
@@ -26475,7 +26481,7 @@ class Refresher {
26475
26481
  }
26476
26482
  async connectedCallback() {
26477
26483
  if (this.el.getAttribute('slot') !== 'fixed') {
26478
- console.error('Make sure you use: <ion-refresher slot="fixed">');
26484
+ printIonError('[ion-refresher] - Make sure you use: <ion-refresher slot="fixed">');
26479
26485
  return;
26480
26486
  }
26481
26487
  const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);
@@ -26807,7 +26813,7 @@ class Refresher {
26807
26813
  }
26808
26814
  render() {
26809
26815
  const mode = getIonMode$1(this);
26810
- return (hAsync(Host, { key: '4c36bffbfa32ef1bd28a60f4455c125842880659', slot: "fixed", class: {
26816
+ return (hAsync(Host, { key: 'c717c16f2ca3e42351848cc8ad37918dec28961d', slot: "fixed", class: {
26811
26817
  [mode]: true,
26812
26818
  // Used internally for styling
26813
26819
  [`refresher-${mode}`]: true,
@@ -27717,7 +27723,7 @@ const writeNavState = async (root, chain, direction, index, changed = false, ani
27717
27723
  return changed;
27718
27724
  }
27719
27725
  catch (e) {
27720
- console.error(e);
27726
+ printIonError('[ion-router] - Exception in writeNavState:', e);
27721
27727
  return false;
27722
27728
  }
27723
27729
  };
@@ -28180,19 +28186,19 @@ class Router {
28180
28186
  /** @internal */
28181
28187
  async navChanged(direction) {
28182
28188
  if (this.busy) {
28183
- console.warn('[ion-router] router is busy, navChanged was cancelled');
28189
+ printIonWarning('[ion-router] - Router is busy, navChanged was cancelled.');
28184
28190
  return false;
28185
28191
  }
28186
28192
  const { ids, outlet } = await readNavState(window.document.body);
28187
28193
  const routes = readRoutes(this.el);
28188
28194
  const chain = findChainForIDs(ids, routes);
28189
28195
  if (!chain) {
28190
- console.warn('[ion-router] no matching URL for ', ids.map((i) => i.id));
28196
+ printIonWarning('[ion-router] - No matching URL for', ids.map((i) => i.id));
28191
28197
  return false;
28192
28198
  }
28193
28199
  const segments = chainToSegments(chain);
28194
28200
  if (!segments) {
28195
- console.warn('[ion-router] router could not match path because some required param is missing');
28201
+ printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
28196
28202
  return false;
28197
28203
  }
28198
28204
  this.setSegments(segments, direction);
@@ -28230,7 +28236,7 @@ class Router {
28230
28236
  }
28231
28237
  async writeNavStateRoot(segments, direction, animation) {
28232
28238
  if (!segments) {
28233
- console.error('[ion-router] URL is not part of the routing set');
28239
+ printIonError('[ion-router] - URL is not part of the routing set.');
28234
28240
  return false;
28235
28241
  }
28236
28242
  // lookup redirect rule
@@ -28247,7 +28253,7 @@ class Router {
28247
28253
  const routes = readRoutes(this.el);
28248
28254
  const chain = findChainForSegments(segments, routes);
28249
28255
  if (!chain) {
28250
- console.error('[ion-router] the path does not match any route');
28256
+ printIonError('[ion-router] - The path does not match any route.');
28251
28257
  return false;
28252
28258
  }
28253
28259
  // write DOM give
@@ -28260,7 +28266,7 @@ class Router {
28260
28266
  changed = await this.writeNavState(node, chain, direction, segments, redirectFrom, index, animation);
28261
28267
  }
28262
28268
  catch (e) {
28263
- console.error(e);
28269
+ printIonError('[ion-router] - Exception in safeWriteNavState:', e);
28264
28270
  }
28265
28271
  unlock();
28266
28272
  return changed;
@@ -28302,7 +28308,7 @@ class Router {
28302
28308
  }
28303
28309
  async writeNavState(node, chain, direction, segments, redirectFrom, index = 0, animation) {
28304
28310
  if (this.busy) {
28305
- console.warn('[ion-router] router is busy, transition was cancelled');
28311
+ printIonWarning('[ion-router] - Router is busy, transition was cancelled.');
28306
28312
  return false;
28307
28313
  }
28308
28314
  this.busy = true;
@@ -28484,7 +28490,7 @@ class RouterOutlet {
28484
28490
  changed = await this.transition(enteringEl, leavingEl, opts);
28485
28491
  }
28486
28492
  catch (e) {
28487
- console.error(e);
28493
+ printIonError('[ion-router-outlet] - Exception in commit:', e);
28488
28494
  }
28489
28495
  unlock();
28490
28496
  return changed;
@@ -28580,7 +28586,7 @@ class RouterOutlet {
28580
28586
  return true;
28581
28587
  }
28582
28588
  render() {
28583
- return hAsync("slot", { key: '8d0c163c5f63158e16ef2db7cc3c756cf597461d' });
28589
+ return hAsync("slot", { key: 'e34e02b5154172c8d5cdd187b6ea58119b6946eb' });
28584
28590
  }
28585
28591
  get el() { return getElement(this); }
28586
28592
  static get watchers() { return {
@@ -29697,7 +29703,7 @@ class SegmentButton {
29697
29703
  }
29698
29704
  // Prevent buttons from being disabled when associated with segment content
29699
29705
  if (this.contentId && this.disabled) {
29700
- console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
29706
+ printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
29701
29707
  this.disabled = false;
29702
29708
  }
29703
29709
  }
@@ -29718,12 +29724,12 @@ class SegmentButton {
29718
29724
  const segmentContent = document.getElementById(this.contentId);
29719
29725
  // If no associated Segment Content exists, log an error and return
29720
29726
  if (!segmentContent) {
29721
- console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
29727
+ printIonError(`[ion-segment-button] - Unable to find Segment Content with id="${this.contentId}".`);
29722
29728
  return;
29723
29729
  }
29724
29730
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
29725
29731
  if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
29726
- console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
29732
+ printIonError(`[ion-segment-button] - Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
29727
29733
  return;
29728
29734
  }
29729
29735
  }
@@ -29748,7 +29754,7 @@ class SegmentButton {
29748
29754
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
29749
29755
  const mode = getIonMode$1(this);
29750
29756
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
29751
- return (hAsync(Host, { key: 'f2f679a08b131cd35d63f649b9d1f1907df30a89', class: {
29757
+ return (hAsync(Host, { key: 'd79dad80db69123510c6d52bbf4424558600c14a', class: {
29752
29758
  [mode]: true,
29753
29759
  'in-toolbar': hostContext('ion-toolbar', this.el),
29754
29760
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -29764,7 +29770,7 @@ class SegmentButton {
29764
29770
  'ion-activatable': true,
29765
29771
  'ion-activatable-instant': true,
29766
29772
  'ion-focusable': true,
29767
- } }, hAsync("button", Object.assign({ key: '8e887b5031da705a3695c0870be08696d66188de', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '73b795c39cb09438e50922abf6b3a010e31fa2b6', class: "button-inner" }, hAsync("slot", { key: '9769ddc917d7e459bd80dcd81c10c379e73d1b3e' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '8e4c06d6bae1034af8cc5db86fcca0ae72d042b1' })), hAsync("div", { key: 'ae73ee0e429e54a43269f99b6d3d7e1c6e8f60cc', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'd38eabe8161403799cfbad73dd6bf912d965442c', part: "indicator-background", class: "segment-button-indicator-background" }))));
29773
+ } }, hAsync("button", Object.assign({ key: '781fd7fef443a2fbd404b8a399d1203794759a69', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '64df08f60ea17481183f8ad284884b9979eaeb24', class: "button-inner" }, hAsync("slot", { key: '2b7ef328023ab5ccc0adc6f865e5e7121467eeb8' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '1fd5e6179227925a03b6c3b5258bbf4ea99bfef1' })), hAsync("div", { key: 'dbcedad6988b0eadeebe02bdafdedb8eb37af19c', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'f4f1789f66bdfa2de5445bc0d292116a93bad7cc', part: "indicator-background", class: "segment-button-indicator-background" }))));
29768
29774
  }
29769
29775
  get el() { return getElement(this); }
29770
29776
  static get watchers() { return {
@@ -29937,10 +29943,10 @@ class SegmentView {
29937
29943
  }; }
29938
29944
  }
29939
29945
 
29940
- const selectIosCss = ":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}";
29946
+ const selectIosCss = ":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}";
29941
29947
  var IonSelectIosStyle0 = selectIosCss;
29942
29948
 
29943
- const selectMdCss = ":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.ion-focused){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.ion-focused){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-start{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius)}:host(.select-fill-outline) .select-outline-start{width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-end{border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px}:host(.select-fill-outline) .select-outline-end{-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.ion-focused) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.ion-focused) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.ion-focused) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.ion-focused) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 0.8125rem - 4px)}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}";
29949
+ const selectMdCss = ":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.select-expanded.select-fill-solid.ion-valid),:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.has-focus){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.has-focus){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-start{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius)}:host(.select-fill-outline) .select-outline-start{width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-end{border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px}:host(.select-fill-outline) .select-outline-end{-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon{color:var(--highlight-color)}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.has-focus) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.has-focus) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.has-focus) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.in-item.select-expanded) .select-wrapper .select-icon,:host(.in-item.has-focus) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.has-focus) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 0.8125rem - 4px)}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}";
29944
29950
  var IonSelectMdStyle0 = selectMdCss;
29945
29951
 
29946
29952
  // TODO(FW-2832): types
@@ -30011,12 +30017,15 @@ class Select {
30011
30017
  }
30012
30018
  };
30013
30019
  this.onFocus = () => {
30020
+ this.hasFocus = true;
30014
30021
  this.ionFocus.emit();
30015
30022
  };
30016
30023
  this.onBlur = () => {
30024
+ this.hasFocus = false;
30017
30025
  this.ionBlur.emit();
30018
30026
  };
30019
30027
  this.isExpanded = false;
30028
+ this.hasFocus = false;
30020
30029
  this.cancelText = 'Cancel';
30021
30030
  this.color = undefined;
30022
30031
  this.compareWith = undefined;
@@ -30176,11 +30185,11 @@ class Select {
30176
30185
  createOverlay(ev) {
30177
30186
  let selectInterface = this.interface;
30178
30187
  if (selectInterface === 'action-sheet' && this.multiple) {
30179
- console.warn(`Select interface cannot be "${selectInterface}" with a multi-value select. Using the "alert" interface instead.`);
30188
+ printIonWarning(`[ion-select] - Interface cannot be "${selectInterface}" with a multi-value select. Using the "alert" interface instead.`);
30180
30189
  selectInterface = 'alert';
30181
30190
  }
30182
30191
  if (selectInterface === 'popover' && !ev) {
30183
- console.warn(`Select interface cannot be a "${selectInterface}" without passing an event. Using the "alert" interface instead.`);
30192
+ printIonWarning(`[ion-select] - Interface cannot be a "${selectInterface}" without passing an event. Using the "alert" interface instead.`);
30184
30193
  selectInterface = 'alert';
30185
30194
  }
30186
30195
  if (selectInterface === 'action-sheet') {
@@ -30590,7 +30599,7 @@ class Select {
30590
30599
  return hAsync("div", { class: "select-bottom" }, this.renderHintText());
30591
30600
  }
30592
30601
  render() {
30593
- const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
30602
+ const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
30594
30603
  const mode = getIonMode$1(this);
30595
30604
  const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
30596
30605
  const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
@@ -30618,7 +30627,7 @@ class Select {
30618
30627
  * TODO(FW-5592): Remove hasStartEndSlots condition
30619
30628
  */
30620
30629
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30621
- return (hAsync(Host, { key: 'aa7bd7fbb6479c7805486990650a406e5470fd13', onClick: this.onClick, class: createColorClasses$1(this.color, {
30630
+ return (hAsync(Host, { key: 'e6c0498d6c275f89344f4b5146752a047058ad88', onClick: this.onClick, class: createColorClasses$1(this.color, {
30622
30631
  [mode]: true,
30623
30632
  'in-item': inItem,
30624
30633
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30628,13 +30637,15 @@ class Select {
30628
30637
  'has-value': hasValue,
30629
30638
  'label-floating': labelShouldFloat,
30630
30639
  'has-placeholder': placeholder !== undefined,
30640
+ 'has-focus': hasFocus,
30641
+ // TODO(FW-6451): Remove `ion-focusable` class in favor of `has-focus`.
30631
30642
  'ion-focusable': true,
30632
30643
  [`select-${rtl}`]: true,
30633
30644
  [`select-fill-${fill}`]: fill !== undefined,
30634
30645
  [`select-justify-${justify}`]: justifyEnabled,
30635
30646
  [`select-shape-${shape}`]: shape !== undefined,
30636
30647
  [`select-label-placement-${labelPlacement}`]: true,
30637
- }) }, hAsync("label", { key: 'fde3cdfd0ef7d1a20263e35ff4358ee7f61a789f', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '6fb8deedc827b6be2f19f9e57a62efefaaba200f', class: "select-wrapper-inner" }, hAsync("slot", { key: 'a57a204ea1cbd9c4bac338f14e196e780dab0a10', name: "start" }), hAsync("div", { key: '78b83e1484a446537e038527d539d997e330cd69', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '9fc660134e5247c4e5243c7d9d71ac6cec08705d', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '7f143285efa7fd7756dfdc5517ca33e84c8a027e', class: "select-highlight" })), this.renderBottomContent()));
30648
+ }) }, hAsync("label", { key: 'f030b6bd329f8014c7227f5e5f1aeb7efa0e641a', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '7480e1b40d09e53a2942295d6c9dae474c9de810', class: "select-wrapper-inner" }, hAsync("slot", { key: '250fd2ff08b3e6ed04c7062455a044863481fe1c', name: "start" }), hAsync("div", { key: '11b73ad5b7decfe2d307f9d54293c21c0df3ddb8', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'ddedafc89061372567bd46354ef972f08c60e19d', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: '792ce27aea18a0020c17dceb0f0e293171ded3a3', class: "select-highlight" })), this.renderBottomContent()));
30638
30649
  }
30639
30650
  get el() { return getElement(this); }
30640
30651
  static get watchers() { return {
@@ -30674,6 +30685,7 @@ class Select {
30674
30685
  "value": [1032],
30675
30686
  "required": [4],
30676
30687
  "isExpanded": [32],
30688
+ "hasFocus": [32],
30677
30689
  "open": [64]
30678
30690
  },
30679
30691
  "$listeners$": undefined,
@@ -31155,12 +31167,12 @@ class SplitPane {
31155
31167
  }
31156
31168
  render() {
31157
31169
  const mode = getIonMode$1(this);
31158
- return (hAsync(Host, { key: '76be70d7fbebc52646a5851f47accc1006615b85', class: {
31170
+ return (hAsync(Host, { key: '098801b5a318e2fc6913fb0d9079b1552927b99b', class: {
31159
31171
  [mode]: true,
31160
31172
  // Used internally for styling
31161
31173
  [`split-pane-${mode}`]: true,
31162
31174
  'split-pane-visible': this.visible,
31163
- } }, hAsync("slot", { key: '9a859530f4fb18aff43255bc3940feb9aca625d7' })));
31175
+ } }, hAsync("slot", { key: '8cbc6a942ecba54fc3c62027d46917db067b65c8' })));
31164
31176
  }
31165
31177
  get el() { return getElement(this); }
31166
31178
  static get watchers() { return {
@@ -31222,17 +31234,17 @@ class Tab {
31222
31234
  return attachComponent(this.delegate, this.el, this.component, ['ion-page']);
31223
31235
  }
31224
31236
  catch (e) {
31225
- console.error(e);
31237
+ printIonError('[ion-tab] - Exception in prepareLazyLoaded:', e);
31226
31238
  }
31227
31239
  }
31228
31240
  return Promise.resolve(undefined);
31229
31241
  }
31230
31242
  render() {
31231
31243
  const { tab, active, component } = this;
31232
- return (hAsync(Host, { key: '2107ece2f1ebdf748bac8adb78a9ad67e7fc9057', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
31244
+ return (hAsync(Host, { key: 'c36c113e74e12b58459df9e3b546ad4856187e90', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
31233
31245
  'ion-page': component === undefined,
31234
31246
  'tab-hidden': !active,
31235
- } }, hAsync("slot", { key: 'b4a1bc1aa79f6b82b8f77b544bcb74e65229b541' })));
31247
+ } }, hAsync("slot", { key: '0d7821dac70ba7a12edfb3331988f3df1566cc1a' })));
31236
31248
  }
31237
31249
  get el() { return getElement(this); }
31238
31250
  static get watchers() { return {
@@ -31600,7 +31612,7 @@ class Tabs {
31600
31612
  return Array.from(this.el.querySelectorAll('ion-tab'));
31601
31613
  }
31602
31614
  render() {
31603
- return (hAsync(Host, { key: 'd357c4607cfc89fb88404fe12ea7ef5b397fe6bf', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '18661896589a4ab3c74164f448b928abec9b4db0', name: "top" }), hAsync("div", { key: '3bf30ea2540a196e868a78a861824b4b5d933afd', class: "tabs-inner" }, hAsync("slot", { key: '7cfc154d4d6c1642188ab6508a6be72c8234585e' })), hAsync("slot", { key: '8057679c959195cbdfae156b8ae0cbfd978c5037', name: "bottom" })));
31615
+ return (hAsync(Host, { key: '20b97196d78c1b3f3faf31618a8a2347e087f06b', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'b0823fbae6e47743cfd12c376b365ad7e32cec7c', name: "top" }), hAsync("div", { key: 'eaffd7e4d69ab9489a387e3bbb36e3bab72203a0', class: "tabs-inner" }, hAsync("slot", { key: '20bb66a2937e3ec473aa59c4075ce581b5411677' })), hAsync("slot", { key: '1529dd361f050f52074f51c73b3982ba827dc3a5', name: "bottom" })));
31604
31616
  }
31605
31617
  get el() { return getElement(this); }
31606
31618
  static get style() { return IonTabsStyle0; }
@@ -31624,7 +31636,7 @@ class Tabs {
31624
31636
  const getTab = (tabs, tab) => {
31625
31637
  const tabEl = typeof tab === 'string' ? tabs.find((t) => t.tab === tab) : tab;
31626
31638
  if (!tabEl) {
31627
- console.error(`tab with id: "${tabEl}" does not exist`);
31639
+ printIonError(`[ion-tabs] - Tab with id: "${tabEl}" does not exist`);
31628
31640
  }
31629
31641
  return tabEl;
31630
31642
  };
@@ -32036,7 +32048,7 @@ class Textarea {
32036
32048
  * TODO(FW-5592): Remove hasStartEndSlots condition
32037
32049
  */
32038
32050
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
32039
- return (hAsync(Host, { key: '3bf42ea1fa739f334427c70f91a89b8b0e0f21ec', class: createColorClasses$1(this.color, {
32051
+ return (hAsync(Host, { key: '016dd354c8a4cd62646d4a85dbcfa2eacb870d69', class: createColorClasses$1(this.color, {
32040
32052
  [mode]: true,
32041
32053
  'has-value': hasValue,
32042
32054
  'has-focus': hasFocus,
@@ -32045,7 +32057,7 @@ class Textarea {
32045
32057
  [`textarea-shape-${shape}`]: shape !== undefined,
32046
32058
  [`textarea-label-placement-${labelPlacement}`]: true,
32047
32059
  'textarea-disabled': disabled,
32048
- }) }, hAsync("label", { key: 'f7acceeb74849d13a6af8d39b66ea2701384c955', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '05e9f2ebad1742a9e66d243d18c22ddd4c83ee04', class: "textarea-wrapper-inner" }, hAsync("div", { key: '70a9935351c38413ced05f5e4dc0055b9b001ee9', class: "start-slot-wrapper" }, hAsync("slot", { key: '11206eaa31d112c01f2218bf2ff46375ad819d1f', name: "start" })), hAsync("div", { key: 'bfd215dbb5f4d60f5fb62d37226fdc6ce61ec107', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("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)), hAsync("div", { key: '8a67ad8e3b5650680f770cefc562d190f6760718', class: "end-slot-wrapper" }, hAsync("slot", { key: '03bb6bc5f2808c1f474a6c3168169d17f7569fda', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'cd564bd01a1ca3f914218e34a78d296ad0838e4a', class: "textarea-highlight" })), this.renderBottomContent()));
32060
+ }) }, hAsync("label", { key: '7e98f3fc05f678e8567d9977aa7e622ddb90d394', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '7af77dad961ca9f80bbc6be8cd834989542ae27d', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e311cda4bb52e93ce7775f40b62a0a62a847794b', class: "start-slot-wrapper" }, hAsync("slot", { key: '81248b4cedce3876c1da9da03d36e3bee8442738', name: "start" })), hAsync("div", { key: 'f68ba6e2bb3df4971ecbebbcb316f31ee10f9e75', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("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)), hAsync("div", { key: '7eff97dabd340641a666a388fc590caa88128046', class: "end-slot-wrapper" }, hAsync("slot", { key: 'e8f7e6bd5a33afae6add6d920954cca7a3c0612b', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '4c825874e6ed910e3aa36b16fa1d2927b7f006b1', class: "textarea-highlight" })), this.renderBottomContent()));
32049
32061
  }
32050
32062
  get el() { return getElement(this); }
32051
32063
  static get watchers() { return {
@@ -32193,7 +32205,7 @@ function getAnimationPosition(position, positionAnchor, mode, toast) {
32193
32205
  */
32194
32206
  function warnIfAnchorIsHidden(positionAnchor, toast) {
32195
32207
  if (positionAnchor.offsetParent === null) {
32196
- 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);
32208
+ 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);
32197
32209
  }
32198
32210
  }
32199
32211
  /**
@@ -32844,7 +32856,7 @@ class Toast {
32844
32856
  return;
32845
32857
  }
32846
32858
  if (position === 'middle' && positionAnchor !== undefined) {
32847
- printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
32859
+ printIonWarning('[ion-toast] - The positionAnchor property is ignored when using position="middle".', this.el);
32848
32860
  return undefined;
32849
32861
  }
32850
32862
  if (typeof positionAnchor === 'string') {
@@ -32856,7 +32868,7 @@ class Toast {
32856
32868
  */
32857
32869
  const foundEl = document.getElementById(positionAnchor);
32858
32870
  if (foundEl === null) {
32859
- printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
32871
+ printIonWarning(`[ion-toast] - An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
32860
32872
  return undefined;
32861
32873
  }
32862
32874
  return foundEl;
@@ -32864,7 +32876,7 @@ class Toast {
32864
32876
  if (positionAnchor instanceof HTMLElement) {
32865
32877
  return positionAnchor;
32866
32878
  }
32867
- printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
32879
+ printIonWarning('[ion-toast] - Invalid positionAnchor value:', positionAnchor, el);
32868
32880
  return undefined;
32869
32881
  }
32870
32882
  async buttonClick(button) {
@@ -32890,7 +32902,7 @@ class Toast {
32890
32902
  }
32891
32903
  }
32892
32904
  catch (e) {
32893
- console.error(e);
32905
+ printIonError('[ion-toast] - Exception in callButtonHandler:', e);
32894
32906
  }
32895
32907
  }
32896
32908
  return true;
@@ -32942,11 +32954,11 @@ class Toast {
32942
32954
  * used with one type of button.
32943
32955
  */
32944
32956
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
32945
- 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);
32957
+ 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);
32946
32958
  }
32947
- return (hAsync(Host, Object.assign({ key: '34036afc0701173d51c9c11ea4a2e1d65685ba41', tabindex: "-1" }, this.htmlAttributes, { style: {
32959
+ return (hAsync(Host, Object.assign({ key: 'a2216d860255c99337464370dcb12f6125871a50', tabindex: "-1" }, this.htmlAttributes, { style: {
32948
32960
  zIndex: `${60000 + this.overlayIndex}`,
32949
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: 'd927e43957f47888ce4e64f1e99c935d55757af7', class: wrapperClass }, hAsync("div", { key: 'ca43bc42478181acdf8cdea6601a85fa95d12216', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'fdd6fb8f6e947ed002bd2e63fdc8ec7e764f4a7d', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("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')))));
32961
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: 'd5adf8bc4c6c52431600033a76c4795689f9b412', class: wrapperClass }, hAsync("div", { key: 'ab694497ae37ceba123217eb48800129b9bebb84', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '224854fa3989ce0eb69416cb5b0cc55fc9f131ea', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("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')))));
32950
32962
  }
32951
32963
  get el() { return getElement(this); }
32952
32964
  static get watchers() { return {