@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.js CHANGED
@@ -2368,6 +2368,80 @@ var Build = {
2368
2368
  var styles = /* @__PURE__ */ new Map();
2369
2369
  var modeResolutionChain = [];
2370
2370
 
2371
+ // TODO(FW-2832): types
2372
+ class Config {
2373
+ constructor() {
2374
+ this.m = new Map();
2375
+ }
2376
+ reset(configObj) {
2377
+ this.m = new Map(Object.entries(configObj));
2378
+ }
2379
+ get(key, fallback) {
2380
+ const value = this.m.get(key);
2381
+ return value !== undefined ? value : fallback;
2382
+ }
2383
+ getBoolean(key, fallback = false) {
2384
+ const val = this.m.get(key);
2385
+ if (val === undefined) {
2386
+ return fallback;
2387
+ }
2388
+ if (typeof val === 'string') {
2389
+ return val === 'true';
2390
+ }
2391
+ return !!val;
2392
+ }
2393
+ getNumber(key, fallback) {
2394
+ const val = parseFloat(this.m.get(key));
2395
+ return isNaN(val) ? (fallback !== undefined ? fallback : NaN) : val;
2396
+ }
2397
+ set(key, value) {
2398
+ this.m.set(key, value);
2399
+ }
2400
+ }
2401
+ const config = /*@__PURE__*/ new Config();
2402
+
2403
+ var LogLevel;
2404
+ (function (LogLevel) {
2405
+ LogLevel["OFF"] = "OFF";
2406
+ LogLevel["ERROR"] = "ERROR";
2407
+ LogLevel["WARN"] = "WARN";
2408
+ })(LogLevel || (LogLevel = {}));
2409
+ /**
2410
+ * Logs a warning to the console with an Ionic prefix
2411
+ * to indicate the library that is warning the developer.
2412
+ *
2413
+ * @param message - The string message to be logged to the console.
2414
+ */
2415
+ const printIonWarning = (message, ...params) => {
2416
+ const logLevel = config.get('logLevel', LogLevel.WARN);
2417
+ if ([LogLevel.WARN].includes(logLevel)) {
2418
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
2419
+ }
2420
+ };
2421
+ /**
2422
+ * Logs an error to the console with an Ionic prefix
2423
+ * to indicate the library that is warning the developer.
2424
+ *
2425
+ * @param message - The string message to be logged to the console.
2426
+ * @param params - Additional arguments to supply to the console.error.
2427
+ */
2428
+ const printIonError = (message, ...params) => {
2429
+ const logLevel = config.get('logLevel', LogLevel.ERROR);
2430
+ if ([LogLevel.ERROR, LogLevel.WARN].includes(logLevel)) {
2431
+ return console.error(`[Ionic Error]: ${message}`, ...params);
2432
+ }
2433
+ };
2434
+ /**
2435
+ * Prints an error informing developers that an implementation requires an element to be used
2436
+ * within a specific selector.
2437
+ *
2438
+ * @param el The web component element this is requiring the element.
2439
+ * @param targetSelectors The selector or selectors that were not found.
2440
+ */
2441
+ const printRequiredElementError = (el, ...targetSelectors) => {
2442
+ return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);
2443
+ };
2444
+
2371
2445
  const transitionEndAsync = (el, expectedDuration = 0) => {
2372
2446
  return new Promise((resolve) => {
2373
2447
  transitionEnd(el, expectedDuration, resolve);
@@ -2618,7 +2692,7 @@ const clamp = (min, n, max) => {
2618
2692
  const assert = (actual, reason) => {
2619
2693
  if (!actual) {
2620
2694
  const message = 'ASSERT: ' + reason;
2621
- console.error(message);
2695
+ printIonError(message);
2622
2696
  debugger; // eslint-disable-line
2623
2697
  throw new Error(message);
2624
2698
  }
@@ -2716,38 +2790,6 @@ const reorderTwoSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2
2716
2790
  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>";
2717
2791
  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>";
2718
2792
 
2719
- // TODO(FW-2832): types
2720
- class Config {
2721
- constructor() {
2722
- this.m = new Map();
2723
- }
2724
- reset(configObj) {
2725
- this.m = new Map(Object.entries(configObj));
2726
- }
2727
- get(key, fallback) {
2728
- const value = this.m.get(key);
2729
- return value !== undefined ? value : fallback;
2730
- }
2731
- getBoolean(key, fallback = false) {
2732
- const val = this.m.get(key);
2733
- if (val === undefined) {
2734
- return fallback;
2735
- }
2736
- if (typeof val === 'string') {
2737
- return val === 'true';
2738
- }
2739
- return !!val;
2740
- }
2741
- getNumber(key, fallback) {
2742
- const val = parseFloat(this.m.get(key));
2743
- return isNaN(val) ? (fallback !== undefined ? fallback : NaN) : val;
2744
- }
2745
- set(key, value) {
2746
- this.m.set(key, value);
2747
- }
2748
- }
2749
- const config = /*@__PURE__*/ new Config();
2750
-
2751
2793
  const getPlatforms = (win) => setupPlatforms(win);
2752
2794
  const isPlatform = (winOrPlatform, platform) => {
2753
2795
  if (typeof winOrPlatform === 'string') {
@@ -3189,42 +3231,6 @@ class Accordion {
3189
3231
  }
3190
3232
  let accordionIds = 0;
3191
3233
 
3192
- /**
3193
- * Logs a warning to the console with an Ionic prefix
3194
- * to indicate the library that is warning the developer.
3195
- *
3196
- * @param message - The string message to be logged to the console.
3197
- */
3198
- const printIonWarning = (message, ...params) => {
3199
- const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3200
- if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3201
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3202
- }
3203
- };
3204
- /**
3205
- * Logs an error to the console with an Ionic prefix
3206
- * to indicate the library that is warning the developer.
3207
- *
3208
- * @param message - The string message to be logged to the console.
3209
- * @param params - Additional arguments to supply to the console.error.
3210
- */
3211
- const printIonError = (message, ...params) => {
3212
- const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3213
- if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3214
- return console.error(`[Ionic Error]: ${message}`, ...params);
3215
- }
3216
- };
3217
- /**
3218
- * Prints an error informing developers that an implementation requires an element to be used
3219
- * within a specific selector.
3220
- *
3221
- * @param el The web component element this is requiring the element.
3222
- * @param targetSelectors The selector or selectors that were not found.
3223
- */
3224
- const printRequiredElementError = (el, ...targetSelectors) => {
3225
- return console.error(`<${el.tagName.toLowerCase()}> must be used inside ${targetSelectors.join(' or ')}.`);
3226
- };
3227
-
3228
3234
  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}";
3229
3235
  var IonAccordionGroupIosStyle0 = accordionGroupIosCss;
3230
3236
 
@@ -3257,7 +3263,7 @@ class AccordionGroup {
3257
3263
  * Default toString() behavior: a,b
3258
3264
  * Custom behavior: ['a', 'b']
3259
3265
  */
3260
- 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".
3266
+ 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".
3261
3267
 
3262
3268
  Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
3263
3269
  `, this.el);
@@ -3427,12 +3433,12 @@ class AccordionGroup {
3427
3433
  render() {
3428
3434
  const { disabled, readonly, expand } = this;
3429
3435
  const mode = getIonMode$1(this);
3430
- return (hAsync(Host, { key: '82f3e77066fabb4736638ee4c487ad56efd39c63', class: {
3436
+ return (hAsync(Host, { key: 'd1a79a93179474fbba66fcf11a92f4871dacc975', class: {
3431
3437
  [mode]: true,
3432
3438
  'accordion-group-disabled': disabled,
3433
3439
  'accordion-group-readonly': readonly,
3434
3440
  [`accordion-group-expand-${expand}`]: true,
3435
- }, role: "presentation" }, hAsync("slot", { key: 'a3c791ea887fc640b512f81d429be465ae902b3d' })));
3441
+ }, role: "presentation" }, hAsync("slot", { key: 'e6b8954b686d1fbb4fc92adb07fddc97a24b0a31' })));
3436
3442
  }
3437
3443
  get el() { return getElement(this); }
3438
3444
  static get watchers() { return {
@@ -5122,7 +5128,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
5122
5128
  }
5123
5129
  const presentedOverlays = doc !== undefined ? getPresentedOverlays(doc) : [];
5124
5130
  /**
5125
- * For accessibility, toasts lack focus traps and dont receive
5131
+ * For accessibility, toasts lack focus traps and don't receive
5126
5132
  * `aria-hidden` on the root element when presented.
5127
5133
  *
5128
5134
  * All other overlays use focus traps to keep keyboard focus
@@ -5185,7 +5191,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
5185
5191
  }
5186
5192
  }
5187
5193
  catch (err) {
5188
- console.error(err);
5194
+ printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
5189
5195
  }
5190
5196
  overlay.el.remove();
5191
5197
  revealOverlaysToScreenReaders();
@@ -5365,7 +5371,7 @@ const createTriggerController = () => {
5365
5371
  removeClickListener();
5366
5372
  const triggerEl = trigger !== undefined ? document.getElementById(trigger) : null;
5367
5373
  if (!triggerEl) {
5368
- 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);
5374
+ 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);
5369
5375
  return;
5370
5376
  }
5371
5377
  const configureTriggerInteraction = (targetEl, overlayEl) => {
@@ -5874,7 +5880,7 @@ const createAnimation = (animationId) => {
5874
5880
  }
5875
5881
  }
5876
5882
  else {
5877
- console.error('Invalid addElement value');
5883
+ printIonError('createAnimation - Invalid addElement value.');
5878
5884
  }
5879
5885
  }
5880
5886
  return ani;
@@ -6732,7 +6738,7 @@ const sanitizeDOMString = (untrustedString) => {
6732
6738
  return getInnerDiv !== null ? getInnerDiv.innerHTML : fragmentDiv.innerHTML;
6733
6739
  }
6734
6740
  catch (err) {
6735
- console.error(err);
6741
+ printIonError('sanitizeDOMString', err);
6736
6742
  return '';
6737
6743
  }
6738
6744
  };
@@ -7052,7 +7058,7 @@ class Alert {
7052
7058
  // checkboxes and inputs are all accepted, but they cannot be mixed.
7053
7059
  const inputTypes = new Set(inputs.map((i) => i.type));
7054
7060
  if (inputTypes.has('checkbox') && inputTypes.has('radio')) {
7055
- console.warn(`Alert cannot mix input types: ${Array.from(inputTypes.values()).join('/')}. Please see alert docs for more info.`);
7061
+ printIonWarning(`[ion-alert] - Alert cannot mix input types: ${Array.from(inputTypes.values()).join('/')}. Please see alert docs for more info.`);
7056
7062
  }
7057
7063
  this.inputType = inputTypes.values().next().value;
7058
7064
  this.processedInputs = inputs.map((i, index) => {
@@ -7325,9 +7331,9 @@ class Alert {
7325
7331
  * If neither are defined, do not set aria-labelledby.
7326
7332
  */
7327
7333
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7328
- return (hAsync(Host, { key: '755f2398806084f16ee24d9fefce9ebc0b8f30f2', tabindex: "-1", style: {
7334
+ return (hAsync(Host, { key: 'f8ee04fe6a97a2585b302c8e1a9eea3b122e3479', tabindex: "-1", style: {
7329
7335
  zIndex: `${20000 + overlayIndex}`,
7330
- }, 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" })));
7336
+ }, 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" })));
7331
7337
  }
7332
7338
  get el() { return getElement(this); }
7333
7339
  static get watchers() { return {
@@ -7405,7 +7411,7 @@ class App {
7405
7411
  }
7406
7412
  render() {
7407
7413
  const mode = getIonMode$1(this);
7408
- return (hAsync(Host, { key: '96715520fd05d6f0e6fa26a8ba78792cfccd4c0a', class: {
7414
+ return (hAsync(Host, { key: '03aa892f986330078d112b1e8b010df98fa7e39e', class: {
7409
7415
  [mode]: true,
7410
7416
  'ion-page': true,
7411
7417
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -8052,7 +8058,7 @@ class Button {
8052
8058
  * The developer specified a string for the form attribute, but the
8053
8059
  * element with that id is not a form element.
8054
8060
  */
8055
- printIonWarning(`Form with selector: "#${form}" could not be found. Verify that the id is attached to a <form> element.`, this.el);
8061
+ printIonWarning(`[ion-button] - Form with selector: "#${form}" could not be found. Verify that the id is attached to a <form> element.`, this.el);
8056
8062
  return null;
8057
8063
  }
8058
8064
  }
@@ -8061,7 +8067,7 @@ class Button {
8061
8067
  * The developer specified a string for the form attribute, but the
8062
8068
  * element with that id could not be found in the DOM.
8063
8069
  */
8064
- 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);
8070
+ 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);
8065
8071
  return null;
8066
8072
  }
8067
8073
  }
@@ -8072,7 +8078,7 @@ class Button {
8072
8078
  * This will also catch if the developer tries to pass in null
8073
8079
  * as the form attribute.
8074
8080
  */
8075
- printIonWarning(`The provided "form" element is invalid. Verify that the form is a HTMLFormElement and rendered in the DOM.`, this.el);
8081
+ printIonWarning(`[ion-button] - The provided "form" element is invalid. Verify that the form is a HTMLFormElement and rendered in the DOM.`, this.el);
8076
8082
  return null;
8077
8083
  }
8078
8084
  /**
@@ -8121,7 +8127,7 @@ class Button {
8121
8127
  {
8122
8128
  type !== 'button' && this.renderHiddenButton();
8123
8129
  }
8124
- return (hAsync(Host, { key: '340a809d85698741bb36e796355cae89a970655f', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8130
+ return (hAsync(Host, { key: 'e213b0bb76b3f90f883b1a0ea463bb86c2df69c3', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8125
8131
  [mode]: true,
8126
8132
  [buttonType]: true,
8127
8133
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -8136,7 +8142,7 @@ class Button {
8136
8142
  'button-disabled': disabled,
8137
8143
  'ion-activatable': true,
8138
8144
  'ion-focusable': true,
8139
- }) }, 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 }))));
8145
+ }) }, 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 }))));
8140
8146
  }
8141
8147
  get el() { return getElement(this); }
8142
8148
  static get watchers() { return {
@@ -9365,7 +9371,7 @@ const warnIfValueOutOfBounds = (value, min, max) => {
9365
9371
  const valueArray = Array.isArray(value) ? value : [value];
9366
9372
  for (const val of valueArray) {
9367
9373
  if ((min !== undefined && isBefore(val, min)) || (max !== undefined && isAfter(val, max))) {
9368
- printIonWarning('The value provided to ion-datetime is out of bounds.\n\n' +
9374
+ printIonWarning('[ion-datetime] - The value provided to ion-datetime is out of bounds.\n\n' +
9369
9375
  `Min: ${JSON.stringify(min)}\n` +
9370
9376
  `Max: ${JSON.stringify(max)}\n` +
9371
9377
  `Value: ${JSON.stringify(value)}`);
@@ -9582,7 +9588,7 @@ function parseDate(val) {
9582
9588
  }
9583
9589
  if (parse === null) {
9584
9590
  // wasn't able to parse the ISO datetime
9585
- printIonWarning(`Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
9591
+ printIonWarning(`[ion-datetime] - Unable to parse date string: ${val}. Please provide a valid ISO 8601 datetime string.`);
9586
9592
  return undefined;
9587
9593
  }
9588
9594
  // ensure all the parse values exist with at least 0
@@ -11098,7 +11104,7 @@ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
11098
11104
  return highlightedDates(dateIsoString);
11099
11105
  }
11100
11106
  catch (e) {
11101
- printIonError('Exception thrown from provided `highlightedDates` callback. Please check your function and try again.', el, e);
11107
+ printIonError('[ion-datetime] - Exception thrown from provided `highlightedDates` callback. Please check your function and try again.', el, e);
11102
11108
  }
11103
11109
  }
11104
11110
  return undefined;
@@ -11115,7 +11121,7 @@ const warnIfTimeZoneProvided = (el, formatOptions) => {
11115
11121
  ((_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _b === void 0 ? void 0 : _b.timeZoneName) ||
11116
11122
  ((_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _c === void 0 ? void 0 : _c.timeZone) ||
11117
11123
  ((_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _d === void 0 ? void 0 : _d.timeZoneName)) {
11118
- printIonWarning('Datetime: "timeZone" and "timeZoneName" are not supported in "formatOptions".', el);
11124
+ printIonWarning('[ion-datetime] - "timeZone" and "timeZoneName" are not supported in "formatOptions".', el);
11119
11125
  }
11120
11126
  };
11121
11127
  const checkForPresentationFormatMismatch = (el, presentation, formatOptions) => {
@@ -11129,18 +11135,18 @@ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) =>
11129
11135
  case 'month':
11130
11136
  case 'year':
11131
11137
  if (formatOptions.date === undefined) {
11132
- printIonWarning(`Datetime: The '${presentation}' presentation requires a date object in formatOptions.`, el);
11138
+ printIonWarning(`[ion-datetime] - The '${presentation}' presentation requires a date object in formatOptions.`, el);
11133
11139
  }
11134
11140
  break;
11135
11141
  case 'time':
11136
11142
  if (formatOptions.time === undefined) {
11137
- printIonWarning(`Datetime: The 'time' presentation requires a time object in formatOptions.`, el);
11143
+ printIonWarning(`[ion-datetime] - The 'time' presentation requires a time object in formatOptions.`, el);
11138
11144
  }
11139
11145
  break;
11140
11146
  case 'date-time':
11141
11147
  case 'time-date':
11142
11148
  if (formatOptions.date === undefined && formatOptions.time === undefined) {
11143
- printIonWarning(`Datetime: The '${presentation}' presentation requires either a date or time object (or both) in formatOptions.`, el);
11149
+ printIonWarning(`[ion-datetime] - The '${presentation}' presentation requires either a date or time object (or both) in formatOptions.`, el);
11144
11150
  }
11145
11151
  break;
11146
11152
  }
@@ -11199,7 +11205,7 @@ class Datetime {
11199
11205
  * Default toString() behavior: a,b
11200
11206
  * Custom behavior: ['a', 'b']
11201
11207
  */
11202
- 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".
11208
+ 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".
11203
11209
 
11204
11210
  Value Passed: [${value.map((v) => `'${v}'`).join(', ')}]
11205
11211
  `, this.el);
@@ -12080,18 +12086,18 @@ class Datetime {
12080
12086
  const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
12081
12087
  if (multiple) {
12082
12088
  if (presentation !== 'date') {
12083
- printIonWarning('Multiple date selection is only supported for presentation="date".', el);
12089
+ printIonWarning('[ion-datetime] - Multiple date selection is only supported for presentation="date".', el);
12084
12090
  }
12085
12091
  if (preferWheel) {
12086
- printIonWarning('Multiple date selection is not supported with preferWheel="true".', el);
12092
+ printIonWarning('[ion-datetime] - Multiple date selection is not supported with preferWheel="true".', el);
12087
12093
  }
12088
12094
  }
12089
12095
  if (highlightedDates !== undefined) {
12090
12096
  if (presentation !== 'date' && presentation !== 'date-time' && presentation !== 'time-date') {
12091
- printIonWarning('The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
12097
+ printIonWarning('[ion-datetime] - The highlightedDates property is only supported with the date, date-time, and time-date presentations.', el);
12092
12098
  }
12093
12099
  if (preferWheel) {
12094
- printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
12100
+ printIonWarning('[ion-datetime] - The highlightedDates property is not supported with preferWheel="true".', el);
12095
12101
  }
12096
12102
  }
12097
12103
  if (formatOptions) {
@@ -12222,7 +12228,7 @@ class Datetime {
12222
12228
  disabled = !isDateEnabled(convertDataToISO(referenceParts));
12223
12229
  }
12224
12230
  catch (e) {
12225
- printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12231
+ printIonError('[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12226
12232
  }
12227
12233
  return Object.assign(Object.assign({}, itemObject), { disabled });
12228
12234
  });
@@ -12271,7 +12277,7 @@ class Datetime {
12271
12277
  disabled = !isDateEnabled(convertDataToISO(referenceParts));
12272
12278
  }
12273
12279
  catch (e) {
12274
- printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12280
+ printIonError('[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', e);
12275
12281
  }
12276
12282
  return Object.assign(Object.assign({}, dayObject), { disabled });
12277
12283
  });
@@ -12469,7 +12475,7 @@ class Datetime {
12469
12475
  isCalDayDisabled = !isDateEnabled(dateIsoString);
12470
12476
  }
12471
12477
  catch (e) {
12472
- printIonError('Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', el, e);
12478
+ printIonError('[ion-datetime] - Exception thrown from provided `isDateEnabled` function. Please check your function and try again.', el, e);
12473
12479
  }
12474
12480
  }
12475
12481
  /**
@@ -12605,7 +12611,7 @@ class Datetime {
12605
12611
  headerText = titleSelectedDatesFormatter(convertDataToISO(activeParts));
12606
12612
  }
12607
12613
  catch (e) {
12608
- printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);
12614
+ printIonError('[ion-datetime] - Exception in provided `titleSelectedDatesFormatter`:', e);
12609
12615
  }
12610
12616
  }
12611
12617
  }
@@ -12700,7 +12706,7 @@ class Datetime {
12700
12706
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
12701
12707
  const hasWheelVariant = hasDatePresentation && preferWheel;
12702
12708
  renderHiddenInput(true, el, name, formatValue(value), disabled);
12703
- return (hAsync(Host, { key: '08d429533a09c600b936ad1e022658051c765595', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12709
+ return (hAsync(Host, { key: 'c3dfea8f46fcbcef38eb9e8a69b1b46a4e4b82fd', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12704
12710
  [mode]: true,
12705
12711
  ['datetime-readonly']: readonly,
12706
12712
  ['datetime-disabled']: disabled,
@@ -12710,7 +12716,7 @@ class Datetime {
12710
12716
  [`datetime-size-${size}`]: true,
12711
12717
  [`datetime-prefer-wheel`]: hasWheelVariant,
12712
12718
  [`datetime-grid`]: isGridStyle,
12713
- })) }, hAsync("div", { key: 'f4ff0fcd1e059767a7ef14fcc76ebfd55d23a97b', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12719
+ })) }, hAsync("div", { key: '75c91243cf6a51f44b83d7cf7d8c0c96bfd3c83f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12714
12720
  }
12715
12721
  get el() { return getElement(this); }
12716
12722
  static get watchers() { return {
@@ -12870,7 +12876,7 @@ class DatetimeButton {
12870
12876
  headerText = titleSelectedDatesFormatter(parsedValues);
12871
12877
  }
12872
12878
  catch (e) {
12873
- printIonError('Exception in provided `titleSelectedDatesFormatter`: ', e);
12879
+ printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
12874
12880
  }
12875
12881
  }
12876
12882
  this.dateText = headerText;
@@ -13030,12 +13036,12 @@ class DatetimeButton {
13030
13036
  async componentWillLoad() {
13031
13037
  const { datetime } = this;
13032
13038
  if (!datetime) {
13033
- printIonError('An ID associated with an ion-datetime instance is required for ion-datetime-button to function properly.', this.el);
13039
+ printIonError('[ion-datetime-button] - An ID associated with an ion-datetime instance is required to function properly.', this.el);
13034
13040
  return;
13035
13041
  }
13036
13042
  const datetimeEl = (this.datetimeEl = document.getElementById(datetime));
13037
13043
  if (!datetimeEl) {
13038
- printIonError(`No ion-datetime instance found for ID '${datetime}'.`, this.el);
13044
+ printIonError(`[ion-datetime-button] - No ion-datetime instance found for ID '${datetime}'.`, this.el);
13039
13045
  return;
13040
13046
  }
13041
13047
  /**
@@ -13043,7 +13049,7 @@ class DatetimeButton {
13043
13049
  * if a non-datetime element was provided.
13044
13050
  */
13045
13051
  if (datetimeEl.tagName !== 'ION-DATETIME') {
13046
- printIonError(`Expected an ion-datetime instance for ID '${datetime}' but received '${datetimeEl.tagName.toLowerCase()}' instead.`, datetimeEl);
13052
+ printIonError(`[ion-datetime-button] - Expected an ion-datetime instance for ID '${datetime}' but received '${datetimeEl.tagName.toLowerCase()}' instead.`, datetimeEl);
13047
13053
  return;
13048
13054
  }
13049
13055
  /**
@@ -13118,11 +13124,11 @@ class DatetimeButton {
13118
13124
  render() {
13119
13125
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
13120
13126
  const mode = getIonMode$1(this);
13121
- return (hAsync(Host, { key: '26e606af6f067a5774db37ed41387ffebb941777', class: createColorClasses$1(color, {
13127
+ return (hAsync(Host, { key: '11d037e6ab061e5116842970760b04850b42f2c7', class: createColorClasses$1(color, {
13122
13128
  [mode]: true,
13123
13129
  [`${selectedButton}-active`]: datetimeActive,
13124
13130
  ['datetime-button-disabled']: disabled,
13125
- }) }, 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' })))));
13131
+ }) }, 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' })))));
13126
13132
  }
13127
13133
  get el() { return getElement(this); }
13128
13134
  static get style() { return {
@@ -15087,7 +15093,7 @@ const getCounterText = (value, maxLength, counterFormatter) => {
15087
15093
  return counterFormatter(valueLength, maxLength);
15088
15094
  }
15089
15095
  catch (e) {
15090
- printIonError('Exception in provided `counterFormatter`.', e);
15096
+ printIonError('[ion-input] - Exception in provided `counterFormatter`:', e);
15091
15097
  return defaultCounterText;
15092
15098
  }
15093
15099
  };
@@ -15511,7 +15517,7 @@ class Input {
15511
15517
  * TODO(FW-5592): Remove hasStartEndSlots condition
15512
15518
  */
15513
15519
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
15514
- return (hAsync(Host, { key: '166f7dea59931b8276bebef4d7a1fcd5ace90bad', class: createColorClasses$1(this.color, {
15520
+ return (hAsync(Host, { key: '01f49d79dd068256eb6bf24a01e8622ea6d67506', class: createColorClasses$1(this.color, {
15515
15521
  [mode]: true,
15516
15522
  'has-value': hasValue,
15517
15523
  'has-focus': hasFocus,
@@ -15522,7 +15528,7 @@ class Input {
15522
15528
  'in-item': inItem,
15523
15529
  'in-item-color': hostContext('ion-item.ion-color', this.el),
15524
15530
  'input-disabled': disabled,
15525
- }) }, 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) => {
15531
+ }) }, 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) => {
15526
15532
  /**
15527
15533
  * This prevents mobile browsers from
15528
15534
  * blurring the input when the clear
@@ -15537,7 +15543,7 @@ class Input {
15537
15543
  * for screen readers as it means users would be unable to swipe past the clear button.
15538
15544
  */
15539
15545
  ev.stopPropagation();
15540
- }, 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()));
15546
+ }, 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()));
15541
15547
  }
15542
15548
  get el() { return getElement(this); }
15543
15549
  static get watchers() { return {
@@ -15630,7 +15636,7 @@ class InputPasswordToggle {
15630
15636
  */
15631
15637
  onTypeChange(newValue) {
15632
15638
  if (newValue !== 'text' && newValue !== 'password') {
15633
- printIonWarning(`ion-input-password-toggle only supports inputs of type "text" or "password". Input of type "${newValue}" is not compatible.`, this.el);
15639
+ printIonWarning(`[ion-input-password-toggle] - Only inputs of type "text" or "password" are supported. Input of type "${newValue}" is not compatible.`, this.el);
15634
15640
  return;
15635
15641
  }
15636
15642
  }
@@ -15638,7 +15644,7 @@ class InputPasswordToggle {
15638
15644
  const { el } = this;
15639
15645
  const inputElRef = (this.inputElRef = el.closest('ion-input'));
15640
15646
  if (!inputElRef) {
15641
- printIonWarning('No ancestor ion-input found for ion-input-password-toggle. This component must be slotted inside of an ion-input.', el);
15647
+ printIonWarning('[ion-input-password-toggle] - No ancestor ion-input found. This component must be slotted inside of an ion-input.', el);
15642
15648
  return;
15643
15649
  }
15644
15650
  /**
@@ -15660,16 +15666,16 @@ class InputPasswordToggle {
15660
15666
  const showPasswordIcon = (_a = this.showIcon) !== null && _a !== void 0 ? _a : eye;
15661
15667
  const hidePasswordIcon = (_b = this.hideIcon) !== null && _b !== void 0 ? _b : eyeOff;
15662
15668
  const isPasswordVisible = type === 'text';
15663
- return (hAsync(Host, { key: 'd9811e25bfeb2aa197352bb9be852e9e420739d5', class: createColorClasses$1(color, {
15669
+ return (hAsync(Host, { key: '1a28e078c83e74c72d8bb8189ece93ec2e3fa3d0', class: createColorClasses$1(color, {
15664
15670
  [mode]: true,
15665
- }) }, 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) => {
15671
+ }) }, 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) => {
15666
15672
  /**
15667
15673
  * This prevents mobile browsers from
15668
15674
  * blurring the input when the password toggle
15669
15675
  * button is activated.
15670
15676
  */
15671
15677
  ev.preventDefault();
15672
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '9c88de8f4631d9bde222ce2edf6950d639e04773', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15678
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '26477ee97b808c3d79944bf5e33d4e05f1ae0b3f', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15673
15679
  }
15674
15680
  get el() { return getElement(this); }
15675
15681
  static get watchers() { return {
@@ -16457,7 +16463,7 @@ class ItemSliding {
16457
16463
  case 0 /* ItemSide.None */:
16458
16464
  return;
16459
16465
  default:
16460
- console.warn('invalid ItemSideFlags value', this.sides);
16466
+ printIonWarning('[ion-item-sliding] - invalid ItemSideFlags value', this.sides);
16461
16467
  break;
16462
16468
  }
16463
16469
  let optsWidth;
@@ -16583,7 +16589,7 @@ class ItemSliding {
16583
16589
  }
16584
16590
  render() {
16585
16591
  const mode = getIonMode$1(this);
16586
- return (hAsync(Host, { key: '22f83febcbc1bc27e4ddbd7fcbe590de60a10e89', class: {
16592
+ return (hAsync(Host, { key: 'f8aea4bb9802b111ef358cc6c172a635637ae1f8', class: {
16587
16593
  [mode]: true,
16588
16594
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
16589
16595
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -18082,14 +18088,14 @@ class Menu {
18082
18088
  * the ionBackButton listener in the menu controller
18083
18089
  * will handle closing the menu when Escape is pressed.
18084
18090
  */
18085
- return (hAsync(Host, { key: '342db8551d26604128b29b21d2d8c37593972ed9', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18091
+ return (hAsync(Host, { key: '0a2ba4ff5600b80b54d1b5b45124779c6aa0d2f2', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18086
18092
  [mode]: true,
18087
18093
  [`menu-type-${type}`]: true,
18088
18094
  'menu-enabled': !disabled,
18089
18095
  [`menu-side-${side}`]: true,
18090
18096
  'menu-pane-visible': isPaneVisible,
18091
18097
  'split-pane-side': hostContext('ion-split-pane', el),
18092
- } }, 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" })));
18098
+ } }, 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" })));
18093
18099
  }
18094
18100
  get el() { return getElement(this); }
18095
18101
  static get watchers() { return {
@@ -20107,7 +20113,7 @@ class Modal {
20107
20113
  this.currentBreakpoint = this.initialBreakpoint;
20108
20114
  }
20109
20115
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
20110
- printIonWarning('Your breakpoints array must include the initialBreakpoint value.');
20116
+ printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
20111
20117
  }
20112
20118
  if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
20113
20119
  setOverlayId(this.el);
@@ -20452,11 +20458,11 @@ class Modal {
20452
20458
  */
20453
20459
  async setCurrentBreakpoint(breakpoint) {
20454
20460
  if (!this.isSheetModal) {
20455
- printIonWarning('setCurrentBreakpoint is only supported on sheet modals.');
20461
+ printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
20456
20462
  return;
20457
20463
  }
20458
20464
  if (!this.breakpoints.includes(breakpoint)) {
20459
- printIonWarning(`Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
20465
+ printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
20460
20466
  return;
20461
20467
  }
20462
20468
  const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
@@ -20507,18 +20513,18 @@ class Modal {
20507
20513
  const mode = getIonMode$1(this);
20508
20514
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20509
20515
  const isHandleCycle = handleBehavior === 'cycle';
20510
- return (hAsync(Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20516
+ return (hAsync(Host, Object.assign({ key: '0991b2e4e32da511e59fb1463b47e4ac1b86d1ca', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20511
20517
  zIndex: `${20000 + this.overlayIndex}`,
20512
- }, 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',
20518
+ }, 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',
20513
20519
  /*
20514
20520
  role and aria-modal must be used on the
20515
20521
  same element. They must also be set inside the
20516
20522
  shadow DOM otherwise ion-button will not be highlighted
20517
20523
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20518
20524
  */
20519
- 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",
20525
+ 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",
20520
20526
  // Prevents the handle from receiving keyboard focus when it does not cycle
20521
- 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' }))));
20527
+ 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' }))));
20522
20528
  }
20523
20529
  get el() { return getElement(this); }
20524
20530
  static get watchers() { return {
@@ -21246,7 +21252,7 @@ class Nav {
21246
21252
  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);
21247
21253
  assert(finalNumViews >= 0, 'final balance can not be negative');
21248
21254
  if (finalNumViews === 0) {
21249
- console.warn(`You can't remove all the pages in the navigation stack. nav.pop() is probably called too many times.`, this, this.el);
21255
+ 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);
21250
21256
  throw new Error('navigation stack needs at least one root page');
21251
21257
  }
21252
21258
  // At this point the transition can not be rejected, any throw should be an error
@@ -21468,7 +21474,7 @@ class Nav {
21468
21474
  }
21469
21475
  }
21470
21476
  render() {
21471
- return hAsync("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
21477
+ return hAsync("slot", { key: '188d0abd6c047d235380f07aac81223b757010e8' });
21472
21478
  }
21473
21479
  get el() { return getElement(this); }
21474
21480
  static get watchers() { return {
@@ -22209,7 +22215,7 @@ class Picker {
22209
22215
  }
22210
22216
  }
22211
22217
  componentDidLoad() {
22212
- 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);
22218
+ 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);
22213
22219
  /**
22214
22220
  * If picker was rendered with isOpen="true"
22215
22221
  * then we should open picker immediately.
@@ -22319,11 +22325,11 @@ class Picker {
22319
22325
  render() {
22320
22326
  const { htmlAttributes } = this;
22321
22327
  const mode = getIonMode$1(this);
22322
- return (hAsync(Host, Object.assign({ key: 'dc03f252e3b59a94bc7132c953d2d3b36b62237e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22328
+ return (hAsync(Host, Object.assign({ key: 'b6b6ca6f9aa74681e6d67f64b366f5965fec2a6d', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22323
22329
  zIndex: `${20000 + this.overlayIndex}`,
22324
22330
  }, class: Object.assign({ [mode]: true,
22325
22331
  // Used internally for styling
22326
- [`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" })));
22332
+ [`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" })));
22327
22333
  }
22328
22334
  get el() { return getElement(this); }
22329
22335
  static get watchers() { return {
@@ -24442,7 +24448,7 @@ class Popover {
24442
24448
  }
24443
24449
  const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
24444
24450
  if (!triggerEl) {
24445
- 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);
24451
+ 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);
24446
24452
  return;
24447
24453
  }
24448
24454
  this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
@@ -24721,9 +24727,9 @@ class Popover {
24721
24727
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
24722
24728
  const desktop = isPlatform('desktop');
24723
24729
  const enableArrow = arrow && !parentPopover;
24724
- return (hAsync(Host, Object.assign({ key: '48f108a9b74f121559626889dd5a1fcccf38fc3d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24730
+ return (hAsync(Host, Object.assign({ key: 'ff24e8d9677711248a36994cce568e74ba151499', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24725
24731
  zIndex: `${20000 + this.overlayIndex}`,
24726
- }, 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' })))));
24732
+ }, 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' })))));
24727
24733
  }
24728
24734
  get el() { return getElement(this); }
24729
24735
  static get watchers() { return {
@@ -25467,11 +25473,11 @@ class Range {
25467
25473
  const { activeBarStart } = this;
25468
25474
  if (activeBarStart !== undefined) {
25469
25475
  if (activeBarStart > this.max) {
25470
- 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);
25476
+ 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);
25471
25477
  this.activeBarStart = this.max;
25472
25478
  }
25473
25479
  else if (activeBarStart < this.min) {
25474
- 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);
25480
+ 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);
25475
25481
  this.activeBarStart = this.min;
25476
25482
  }
25477
25483
  }
@@ -25897,7 +25903,7 @@ class Range {
25897
25903
  const needsEndAdjustment = inItem && !hasEndContent;
25898
25904
  const mode = getIonMode$1(this);
25899
25905
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25900
- return (hAsync(Host, { key: 'e97cb7eab877eb1624429b4a79107130c6809cf5', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25906
+ return (hAsync(Host, { key: '3e065039ee048f1f70d97dba5dae98fa1315d867', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25901
25907
  [mode]: true,
25902
25908
  'in-item': inItem,
25903
25909
  'range-disabled': disabled,
@@ -25906,10 +25912,10 @@ class Range {
25906
25912
  [`range-label-placement-${labelPlacement}`]: true,
25907
25913
  'range-item-start-adjustment': needsStartAdjustment,
25908
25914
  'range-item-end-adjustment': needsEndAdjustment,
25909
- }) }, hAsync("label", { key: 'a43e9859f74f83460439efefccb5fbb9f387c9ee', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '75352a30f30dbd0228c6138eb4324a5c021dbb48', class: {
25915
+ }) }, hAsync("label", { key: '27ff22842c9ea79a1b9495302b926f70c9080a95', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'da1f9784be02dfe87d2fef34931d8b7f2148189e', class: {
25910
25916
  'label-text-wrapper': true,
25911
25917
  'label-text-wrapper-hidden': !hasLabel,
25912
- }, 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" })))));
25918
+ }, 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" })))));
25913
25919
  }
25914
25920
  get el() { return getElement(this); }
25915
25921
  static get watchers() { return {
@@ -26479,7 +26485,7 @@ class Refresher {
26479
26485
  }
26480
26486
  async connectedCallback() {
26481
26487
  if (this.el.getAttribute('slot') !== 'fixed') {
26482
- console.error('Make sure you use: <ion-refresher slot="fixed">');
26488
+ printIonError('[ion-refresher] - Make sure you use: <ion-refresher slot="fixed">');
26483
26489
  return;
26484
26490
  }
26485
26491
  const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);
@@ -26811,7 +26817,7 @@ class Refresher {
26811
26817
  }
26812
26818
  render() {
26813
26819
  const mode = getIonMode$1(this);
26814
- return (hAsync(Host, { key: '4c36bffbfa32ef1bd28a60f4455c125842880659', slot: "fixed", class: {
26820
+ return (hAsync(Host, { key: 'c717c16f2ca3e42351848cc8ad37918dec28961d', slot: "fixed", class: {
26815
26821
  [mode]: true,
26816
26822
  // Used internally for styling
26817
26823
  [`refresher-${mode}`]: true,
@@ -27721,7 +27727,7 @@ const writeNavState = async (root, chain, direction, index, changed = false, ani
27721
27727
  return changed;
27722
27728
  }
27723
27729
  catch (e) {
27724
- console.error(e);
27730
+ printIonError('[ion-router] - Exception in writeNavState:', e);
27725
27731
  return false;
27726
27732
  }
27727
27733
  };
@@ -28184,19 +28190,19 @@ class Router {
28184
28190
  /** @internal */
28185
28191
  async navChanged(direction) {
28186
28192
  if (this.busy) {
28187
- console.warn('[ion-router] router is busy, navChanged was cancelled');
28193
+ printIonWarning('[ion-router] - Router is busy, navChanged was cancelled.');
28188
28194
  return false;
28189
28195
  }
28190
28196
  const { ids, outlet } = await readNavState(window.document.body);
28191
28197
  const routes = readRoutes(this.el);
28192
28198
  const chain = findChainForIDs(ids, routes);
28193
28199
  if (!chain) {
28194
- console.warn('[ion-router] no matching URL for ', ids.map((i) => i.id));
28200
+ printIonWarning('[ion-router] - No matching URL for', ids.map((i) => i.id));
28195
28201
  return false;
28196
28202
  }
28197
28203
  const segments = chainToSegments(chain);
28198
28204
  if (!segments) {
28199
- console.warn('[ion-router] router could not match path because some required param is missing');
28205
+ printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
28200
28206
  return false;
28201
28207
  }
28202
28208
  this.setSegments(segments, direction);
@@ -28234,7 +28240,7 @@ class Router {
28234
28240
  }
28235
28241
  async writeNavStateRoot(segments, direction, animation) {
28236
28242
  if (!segments) {
28237
- console.error('[ion-router] URL is not part of the routing set');
28243
+ printIonError('[ion-router] - URL is not part of the routing set.');
28238
28244
  return false;
28239
28245
  }
28240
28246
  // lookup redirect rule
@@ -28251,7 +28257,7 @@ class Router {
28251
28257
  const routes = readRoutes(this.el);
28252
28258
  const chain = findChainForSegments(segments, routes);
28253
28259
  if (!chain) {
28254
- console.error('[ion-router] the path does not match any route');
28260
+ printIonError('[ion-router] - The path does not match any route.');
28255
28261
  return false;
28256
28262
  }
28257
28263
  // write DOM give
@@ -28264,7 +28270,7 @@ class Router {
28264
28270
  changed = await this.writeNavState(node, chain, direction, segments, redirectFrom, index, animation);
28265
28271
  }
28266
28272
  catch (e) {
28267
- console.error(e);
28273
+ printIonError('[ion-router] - Exception in safeWriteNavState:', e);
28268
28274
  }
28269
28275
  unlock();
28270
28276
  return changed;
@@ -28306,7 +28312,7 @@ class Router {
28306
28312
  }
28307
28313
  async writeNavState(node, chain, direction, segments, redirectFrom, index = 0, animation) {
28308
28314
  if (this.busy) {
28309
- console.warn('[ion-router] router is busy, transition was cancelled');
28315
+ printIonWarning('[ion-router] - Router is busy, transition was cancelled.');
28310
28316
  return false;
28311
28317
  }
28312
28318
  this.busy = true;
@@ -28488,7 +28494,7 @@ class RouterOutlet {
28488
28494
  changed = await this.transition(enteringEl, leavingEl, opts);
28489
28495
  }
28490
28496
  catch (e) {
28491
- console.error(e);
28497
+ printIonError('[ion-router-outlet] - Exception in commit:', e);
28492
28498
  }
28493
28499
  unlock();
28494
28500
  return changed;
@@ -28584,7 +28590,7 @@ class RouterOutlet {
28584
28590
  return true;
28585
28591
  }
28586
28592
  render() {
28587
- return hAsync("slot", { key: '8d0c163c5f63158e16ef2db7cc3c756cf597461d' });
28593
+ return hAsync("slot", { key: 'e34e02b5154172c8d5cdd187b6ea58119b6946eb' });
28588
28594
  }
28589
28595
  get el() { return getElement(this); }
28590
28596
  static get watchers() { return {
@@ -29701,7 +29707,7 @@ class SegmentButton {
29701
29707
  }
29702
29708
  // Prevent buttons from being disabled when associated with segment content
29703
29709
  if (this.contentId && this.disabled) {
29704
- console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
29710
+ printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
29705
29711
  this.disabled = false;
29706
29712
  }
29707
29713
  }
@@ -29722,12 +29728,12 @@ class SegmentButton {
29722
29728
  const segmentContent = document.getElementById(this.contentId);
29723
29729
  // If no associated Segment Content exists, log an error and return
29724
29730
  if (!segmentContent) {
29725
- console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
29731
+ printIonError(`[ion-segment-button] - Unable to find Segment Content with id="${this.contentId}".`);
29726
29732
  return;
29727
29733
  }
29728
29734
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
29729
29735
  if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
29730
- console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
29736
+ printIonError(`[ion-segment-button] - Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
29731
29737
  return;
29732
29738
  }
29733
29739
  }
@@ -29752,7 +29758,7 @@ class SegmentButton {
29752
29758
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
29753
29759
  const mode = getIonMode$1(this);
29754
29760
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
29755
- return (hAsync(Host, { key: 'f2f679a08b131cd35d63f649b9d1f1907df30a89', class: {
29761
+ return (hAsync(Host, { key: 'd79dad80db69123510c6d52bbf4424558600c14a', class: {
29756
29762
  [mode]: true,
29757
29763
  'in-toolbar': hostContext('ion-toolbar', this.el),
29758
29764
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -29768,7 +29774,7 @@ class SegmentButton {
29768
29774
  'ion-activatable': true,
29769
29775
  'ion-activatable-instant': true,
29770
29776
  'ion-focusable': true,
29771
- } }, 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" }))));
29777
+ } }, 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" }))));
29772
29778
  }
29773
29779
  get el() { return getElement(this); }
29774
29780
  static get watchers() { return {
@@ -29941,10 +29947,10 @@ class SegmentView {
29941
29947
  }; }
29942
29948
  }
29943
29949
 
29944
- 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}";
29950
+ 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}";
29945
29951
  var IonSelectIosStyle0 = selectIosCss;
29946
29952
 
29947
- 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}";
29953
+ 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}";
29948
29954
  var IonSelectMdStyle0 = selectMdCss;
29949
29955
 
29950
29956
  // TODO(FW-2832): types
@@ -30015,12 +30021,15 @@ class Select {
30015
30021
  }
30016
30022
  };
30017
30023
  this.onFocus = () => {
30024
+ this.hasFocus = true;
30018
30025
  this.ionFocus.emit();
30019
30026
  };
30020
30027
  this.onBlur = () => {
30028
+ this.hasFocus = false;
30021
30029
  this.ionBlur.emit();
30022
30030
  };
30023
30031
  this.isExpanded = false;
30032
+ this.hasFocus = false;
30024
30033
  this.cancelText = 'Cancel';
30025
30034
  this.color = undefined;
30026
30035
  this.compareWith = undefined;
@@ -30180,11 +30189,11 @@ class Select {
30180
30189
  createOverlay(ev) {
30181
30190
  let selectInterface = this.interface;
30182
30191
  if (selectInterface === 'action-sheet' && this.multiple) {
30183
- console.warn(`Select interface cannot be "${selectInterface}" with a multi-value select. Using the "alert" interface instead.`);
30192
+ printIonWarning(`[ion-select] - Interface cannot be "${selectInterface}" with a multi-value select. Using the "alert" interface instead.`);
30184
30193
  selectInterface = 'alert';
30185
30194
  }
30186
30195
  if (selectInterface === 'popover' && !ev) {
30187
- console.warn(`Select interface cannot be a "${selectInterface}" without passing an event. Using the "alert" interface instead.`);
30196
+ printIonWarning(`[ion-select] - Interface cannot be a "${selectInterface}" without passing an event. Using the "alert" interface instead.`);
30188
30197
  selectInterface = 'alert';
30189
30198
  }
30190
30199
  if (selectInterface === 'action-sheet') {
@@ -30594,7 +30603,7 @@ class Select {
30594
30603
  return hAsync("div", { class: "select-bottom" }, this.renderHintText());
30595
30604
  }
30596
30605
  render() {
30597
- const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
30606
+ const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
30598
30607
  const mode = getIonMode$1(this);
30599
30608
  const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
30600
30609
  const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
@@ -30622,7 +30631,7 @@ class Select {
30622
30631
  * TODO(FW-5592): Remove hasStartEndSlots condition
30623
30632
  */
30624
30633
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30625
- return (hAsync(Host, { key: 'aa7bd7fbb6479c7805486990650a406e5470fd13', onClick: this.onClick, class: createColorClasses$1(this.color, {
30634
+ return (hAsync(Host, { key: 'e6c0498d6c275f89344f4b5146752a047058ad88', onClick: this.onClick, class: createColorClasses$1(this.color, {
30626
30635
  [mode]: true,
30627
30636
  'in-item': inItem,
30628
30637
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30632,13 +30641,15 @@ class Select {
30632
30641
  'has-value': hasValue,
30633
30642
  'label-floating': labelShouldFloat,
30634
30643
  'has-placeholder': placeholder !== undefined,
30644
+ 'has-focus': hasFocus,
30645
+ // TODO(FW-6451): Remove `ion-focusable` class in favor of `has-focus`.
30635
30646
  'ion-focusable': true,
30636
30647
  [`select-${rtl}`]: true,
30637
30648
  [`select-fill-${fill}`]: fill !== undefined,
30638
30649
  [`select-justify-${justify}`]: justifyEnabled,
30639
30650
  [`select-shape-${shape}`]: shape !== undefined,
30640
30651
  [`select-label-placement-${labelPlacement}`]: true,
30641
- }) }, 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()));
30652
+ }) }, 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()));
30642
30653
  }
30643
30654
  get el() { return getElement(this); }
30644
30655
  static get watchers() { return {
@@ -30678,6 +30689,7 @@ class Select {
30678
30689
  "value": [1032],
30679
30690
  "required": [4],
30680
30691
  "isExpanded": [32],
30692
+ "hasFocus": [32],
30681
30693
  "open": [64]
30682
30694
  },
30683
30695
  "$listeners$": undefined,
@@ -31159,12 +31171,12 @@ class SplitPane {
31159
31171
  }
31160
31172
  render() {
31161
31173
  const mode = getIonMode$1(this);
31162
- return (hAsync(Host, { key: '76be70d7fbebc52646a5851f47accc1006615b85', class: {
31174
+ return (hAsync(Host, { key: '098801b5a318e2fc6913fb0d9079b1552927b99b', class: {
31163
31175
  [mode]: true,
31164
31176
  // Used internally for styling
31165
31177
  [`split-pane-${mode}`]: true,
31166
31178
  'split-pane-visible': this.visible,
31167
- } }, hAsync("slot", { key: '9a859530f4fb18aff43255bc3940feb9aca625d7' })));
31179
+ } }, hAsync("slot", { key: '8cbc6a942ecba54fc3c62027d46917db067b65c8' })));
31168
31180
  }
31169
31181
  get el() { return getElement(this); }
31170
31182
  static get watchers() { return {
@@ -31226,17 +31238,17 @@ class Tab {
31226
31238
  return attachComponent(this.delegate, this.el, this.component, ['ion-page']);
31227
31239
  }
31228
31240
  catch (e) {
31229
- console.error(e);
31241
+ printIonError('[ion-tab] - Exception in prepareLazyLoaded:', e);
31230
31242
  }
31231
31243
  }
31232
31244
  return Promise.resolve(undefined);
31233
31245
  }
31234
31246
  render() {
31235
31247
  const { tab, active, component } = this;
31236
- return (hAsync(Host, { key: '2107ece2f1ebdf748bac8adb78a9ad67e7fc9057', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
31248
+ return (hAsync(Host, { key: 'c36c113e74e12b58459df9e3b546ad4856187e90', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
31237
31249
  'ion-page': component === undefined,
31238
31250
  'tab-hidden': !active,
31239
- } }, hAsync("slot", { key: 'b4a1bc1aa79f6b82b8f77b544bcb74e65229b541' })));
31251
+ } }, hAsync("slot", { key: '0d7821dac70ba7a12edfb3331988f3df1566cc1a' })));
31240
31252
  }
31241
31253
  get el() { return getElement(this); }
31242
31254
  static get watchers() { return {
@@ -31604,7 +31616,7 @@ class Tabs {
31604
31616
  return Array.from(this.el.querySelectorAll('ion-tab'));
31605
31617
  }
31606
31618
  render() {
31607
- 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" })));
31619
+ 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" })));
31608
31620
  }
31609
31621
  get el() { return getElement(this); }
31610
31622
  static get style() { return IonTabsStyle0; }
@@ -31628,7 +31640,7 @@ class Tabs {
31628
31640
  const getTab = (tabs, tab) => {
31629
31641
  const tabEl = typeof tab === 'string' ? tabs.find((t) => t.tab === tab) : tab;
31630
31642
  if (!tabEl) {
31631
- console.error(`tab with id: "${tabEl}" does not exist`);
31643
+ printIonError(`[ion-tabs] - Tab with id: "${tabEl}" does not exist`);
31632
31644
  }
31633
31645
  return tabEl;
31634
31646
  };
@@ -32040,7 +32052,7 @@ class Textarea {
32040
32052
  * TODO(FW-5592): Remove hasStartEndSlots condition
32041
32053
  */
32042
32054
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
32043
- return (hAsync(Host, { key: '3bf42ea1fa739f334427c70f91a89b8b0e0f21ec', class: createColorClasses$1(this.color, {
32055
+ return (hAsync(Host, { key: '016dd354c8a4cd62646d4a85dbcfa2eacb870d69', class: createColorClasses$1(this.color, {
32044
32056
  [mode]: true,
32045
32057
  'has-value': hasValue,
32046
32058
  'has-focus': hasFocus,
@@ -32049,7 +32061,7 @@ class Textarea {
32049
32061
  [`textarea-shape-${shape}`]: shape !== undefined,
32050
32062
  [`textarea-label-placement-${labelPlacement}`]: true,
32051
32063
  'textarea-disabled': disabled,
32052
- }) }, 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()));
32064
+ }) }, 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()));
32053
32065
  }
32054
32066
  get el() { return getElement(this); }
32055
32067
  static get watchers() { return {
@@ -32197,7 +32209,7 @@ function getAnimationPosition(position, positionAnchor, mode, toast) {
32197
32209
  */
32198
32210
  function warnIfAnchorIsHidden(positionAnchor, toast) {
32199
32211
  if (positionAnchor.offsetParent === null) {
32200
- 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);
32212
+ 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);
32201
32213
  }
32202
32214
  }
32203
32215
  /**
@@ -32848,7 +32860,7 @@ class Toast {
32848
32860
  return;
32849
32861
  }
32850
32862
  if (position === 'middle' && positionAnchor !== undefined) {
32851
- printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
32863
+ printIonWarning('[ion-toast] - The positionAnchor property is ignored when using position="middle".', this.el);
32852
32864
  return undefined;
32853
32865
  }
32854
32866
  if (typeof positionAnchor === 'string') {
@@ -32860,7 +32872,7 @@ class Toast {
32860
32872
  */
32861
32873
  const foundEl = document.getElementById(positionAnchor);
32862
32874
  if (foundEl === null) {
32863
- printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
32875
+ printIonWarning(`[ion-toast] - An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
32864
32876
  return undefined;
32865
32877
  }
32866
32878
  return foundEl;
@@ -32868,7 +32880,7 @@ class Toast {
32868
32880
  if (positionAnchor instanceof HTMLElement) {
32869
32881
  return positionAnchor;
32870
32882
  }
32871
- printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
32883
+ printIonWarning('[ion-toast] - Invalid positionAnchor value:', positionAnchor, el);
32872
32884
  return undefined;
32873
32885
  }
32874
32886
  async buttonClick(button) {
@@ -32894,7 +32906,7 @@ class Toast {
32894
32906
  }
32895
32907
  }
32896
32908
  catch (e) {
32897
- console.error(e);
32909
+ printIonError('[ion-toast] - Exception in callButtonHandler:', e);
32898
32910
  }
32899
32911
  }
32900
32912
  return true;
@@ -32946,11 +32958,11 @@ class Toast {
32946
32958
  * used with one type of button.
32947
32959
  */
32948
32960
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
32949
- 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);
32961
+ 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);
32950
32962
  }
32951
- return (hAsync(Host, Object.assign({ key: '34036afc0701173d51c9c11ea4a2e1d65685ba41', tabindex: "-1" }, this.htmlAttributes, { style: {
32963
+ return (hAsync(Host, Object.assign({ key: 'a2216d860255c99337464370dcb12f6125871a50', tabindex: "-1" }, this.htmlAttributes, { style: {
32952
32964
  zIndex: `${60000 + this.overlayIndex}`,
32953
- }, 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')))));
32965
+ }, 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')))));
32954
32966
  }
32955
32967
  get el() { return getElement(this); }
32956
32968
  static get watchers() { return {