voyager-ionic-core 8.5.3 → 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 (615) 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 +18 -8
  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 +20 -10
  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-652bdd0b.js → swipe-back-442ca3d7.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/components/toggle/toggle.ios.css +5 -17
  168. package/dist/collection/components/toggle/toggle.js +14 -5
  169. package/dist/collection/components/toggle/toggle.md.css +5 -17
  170. package/dist/collection/global/ionic-global.js +2 -1
  171. package/dist/collection/index.js +1 -0
  172. package/dist/collection/utils/animation/animation.js +2 -1
  173. package/dist/collection/utils/hardware-back-button.js +2 -1
  174. package/dist/collection/utils/helpers.js +2 -1
  175. package/dist/collection/utils/logging/index.js +10 -4
  176. package/dist/collection/utils/overlays.js +4 -4
  177. package/dist/collection/utils/sanitization/index.js +2 -1
  178. package/dist/docs.json +1 -1
  179. package/dist/esm/{animation-eab5a4ca.js → animation-8b25e105.js} +2 -1
  180. package/dist/esm/{app-globals-7b6cbf1a.js → app-globals-dbdbb3df.js} +1 -1
  181. package/dist/esm/{config-49c88215.js → config-9898ed97.js} +3 -1
  182. package/dist/esm/{data-174ad5e0.js → data-0d7ea6eb.js} +3 -3
  183. package/dist/esm/{framework-delegate-2eea1763.js → framework-delegate-56b467ad.js} +1 -1
  184. package/dist/esm/{hardware-back-button-864101a3.js → hardware-back-button-a7eb8233.js} +2 -3
  185. package/dist/esm/{helpers-78efeec3.js → helpers-d94bc8ad.js} +3 -1
  186. package/dist/esm/{index-f9f5d018.js → index-18f31305.js} +5 -5
  187. package/dist/esm/{index-ecb55b8d.js → index-68c0d151.js} +4 -5
  188. package/dist/esm/{index-e919e353.js → index-9a17db3d.js} +2 -2
  189. package/dist/esm/{index-40894f4b.js → index-be190feb.js} +2 -1
  190. package/dist/esm/index-cfd9c1f2.js +121 -0
  191. package/dist/esm/index.js +12 -12
  192. package/dist/esm/{input-shims-7dc1f6dc.js → input-shims-279903e2.js} +3 -5
  193. package/dist/esm/{input.utils-28bf4ef0.js → input.utils-40504d6d.js} +3 -3
  194. package/dist/esm/ion-accordion_2.entry.js +6 -6
  195. package/dist/esm/ion-action-sheet.entry.js +7 -7
  196. package/dist/esm/ion-alert.entry.js +11 -11
  197. package/dist/esm/ion-app_8.entry.js +16 -16
  198. package/dist/esm/ion-avatar_3.entry.js +2 -1
  199. package/dist/esm/ion-back-button.entry.js +3 -2
  200. package/dist/esm/ion-backdrop.entry.js +2 -1
  201. package/dist/esm/ion-breadcrumb_2.entry.js +3 -2
  202. package/dist/esm/ion-button_2.entry.js +8 -8
  203. package/dist/esm/ion-card_5.entry.js +3 -2
  204. package/dist/esm/ion-checkbox.entry.js +3 -2
  205. package/dist/esm/ion-chip.entry.js +2 -1
  206. package/dist/esm/ion-col_3.entry.js +2 -1
  207. package/dist/esm/ion-datetime-button.entry.js +10 -10
  208. package/dist/esm/ion-datetime_3.entry.js +27 -27
  209. package/dist/esm/ion-fab_3.entry.js +3 -2
  210. package/dist/esm/ion-img.entry.js +3 -2
  211. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  212. package/dist/esm/ion-input-password-toggle.entry.js +7 -7
  213. package/dist/esm/ion-input.entry.js +8 -8
  214. package/dist/esm/ion-item-option_3.entry.js +6 -6
  215. package/dist/esm/ion-item_8.entry.js +3 -2
  216. package/dist/esm/ion-loading.entry.js +8 -8
  217. package/dist/esm/ion-menu_3.entry.js +12 -12
  218. package/dist/esm/ion-modal.entry.js +16 -16
  219. package/dist/esm/ion-nav_2.entry.js +8 -8
  220. package/dist/esm/ion-picker-column-option.entry.js +3 -2
  221. package/dist/esm/ion-picker-column.entry.js +3 -2
  222. package/dist/esm/ion-picker.entry.js +2 -1
  223. package/dist/esm/ion-popover.entry.js +11 -11
  224. package/dist/esm/ion-progress-bar.entry.js +3 -2
  225. package/dist/esm/ion-radio_2.entry.js +3 -2
  226. package/dist/esm/ion-range.entry.js +9 -9
  227. package/dist/esm/ion-refresher_2.entry.js +8 -8
  228. package/dist/esm/ion-reorder_2.entry.js +4 -4
  229. package/dist/esm/ion-ripple-effect.entry.js +2 -1
  230. package/dist/esm/ion-route_4.entry.js +11 -10
  231. package/dist/esm/ion-searchbar.entry.js +3 -2
  232. package/dist/esm/ion-segment_2.entry.js +8 -7
  233. package/dist/esm/ion-select-modal.entry.js +6 -6
  234. package/dist/esm/ion-select_3.entry.js +19 -14
  235. package/dist/esm/ion-spinner.entry.js +2 -1
  236. package/dist/esm/ion-split-pane.entry.js +6 -5
  237. package/dist/esm/ion-tab-bar_2.entry.js +3 -2
  238. package/dist/esm/ion-tab_2.entry.js +8 -7
  239. package/dist/esm/ion-text.entry.js +2 -1
  240. package/dist/esm/ion-textarea.entry.js +7 -7
  241. package/dist/esm/ion-toast.entry.js +16 -16
  242. package/dist/esm/ion-toggle.entry.js +19 -9
  243. package/dist/esm/{ionic-global-ca86cf32.js → ionic-global-b26f573e.js} +3 -77
  244. package/dist/esm/ionic.js +4 -3
  245. package/dist/esm/{ios.transition-7fe5dbea.js → ios.transition-4047cb68.js} +4 -5
  246. package/dist/esm/loader.js +4 -3
  247. package/dist/esm/{md.transition-8dc58b46.js → md.transition-30ce8d1b.js} +4 -5
  248. package/dist/esm/{notch-controller-00d92e89.js → notch-controller-1a1f7183.js} +1 -1
  249. package/dist/esm/{overlays-41a5d51b.js → overlays-d99dcb0a.js} +8 -8
  250. package/dist/esm/{status-tap-f6d08e9e.js → status-tap-42a8af65.js} +3 -4
  251. package/dist/esm/{swipe-back-5c7708b8.js → swipe-back-04123e7c.js} +2 -1
  252. package/dist/esm-es5/animation-8b25e105.js +4 -0
  253. package/dist/esm-es5/app-globals-dbdbb3df.js +4 -0
  254. package/dist/esm-es5/config-9898ed97.js +4 -0
  255. package/dist/esm-es5/data-0d7ea6eb.js +4 -0
  256. package/dist/esm-es5/{framework-delegate-2eea1763.js → framework-delegate-56b467ad.js} +1 -1
  257. package/dist/esm-es5/hardware-back-button-a7eb8233.js +4 -0
  258. package/dist/esm-es5/helpers-d94bc8ad.js +4 -0
  259. package/dist/esm-es5/{index-f9f5d018.js → index-18f31305.js} +1 -1
  260. package/dist/esm-es5/index-68c0d151.js +4 -0
  261. package/dist/esm-es5/{index-e919e353.js → index-9a17db3d.js} +1 -1
  262. package/dist/esm-es5/index-be190feb.js +4 -0
  263. package/dist/esm-es5/index-cfd9c1f2.js +5 -0
  264. package/dist/esm-es5/index.js +1 -1
  265. package/dist/esm-es5/input-shims-279903e2.js +4 -0
  266. package/dist/esm-es5/input.utils-40504d6d.js +4 -0
  267. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  268. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  269. package/dist/esm-es5/ion-alert.entry.js +1 -1
  270. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  271. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  272. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  273. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  274. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  275. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  276. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  277. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  278. package/dist/esm-es5/ion-chip.entry.js +1 -1
  279. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  280. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  281. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  282. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  283. package/dist/esm-es5/ion-img.entry.js +1 -1
  284. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  285. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  286. package/dist/esm-es5/ion-input.entry.js +1 -1
  287. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  288. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  289. package/dist/esm-es5/ion-loading.entry.js +1 -1
  290. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  291. package/dist/esm-es5/ion-modal.entry.js +1 -1
  292. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  293. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  294. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  295. package/dist/esm-es5/ion-picker.entry.js +1 -1
  296. package/dist/esm-es5/ion-popover.entry.js +1 -1
  297. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  298. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  299. package/dist/esm-es5/ion-range.entry.js +1 -1
  300. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  301. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  302. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  303. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  304. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  305. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  306. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  307. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  308. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  309. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  310. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  311. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  312. package/dist/esm-es5/ion-text.entry.js +1 -1
  313. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  314. package/dist/esm-es5/ion-toast.entry.js +1 -1
  315. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  316. package/dist/esm-es5/ionic-global-b26f573e.js +4 -0
  317. package/dist/esm-es5/ionic.js +1 -1
  318. package/dist/esm-es5/ios.transition-4047cb68.js +4 -0
  319. package/dist/esm-es5/loader.js +1 -1
  320. package/dist/esm-es5/md.transition-30ce8d1b.js +4 -0
  321. package/dist/esm-es5/{notch-controller-00d92e89.js → notch-controller-1a1f7183.js} +1 -1
  322. package/dist/esm-es5/overlays-d99dcb0a.js +4 -0
  323. package/dist/esm-es5/status-tap-42a8af65.js +4 -0
  324. package/dist/esm-es5/swipe-back-04123e7c.js +4 -0
  325. package/dist/ionic/index.esm.js +1 -1
  326. package/dist/ionic/ionic.esm.js +1 -1
  327. package/dist/ionic/ionic.js +1 -1
  328. package/dist/ionic/p-00023f5a.system.js +4 -0
  329. package/dist/ionic/p-03480b95.system.entry.js +4 -0
  330. package/dist/ionic/p-08cef0b1.entry.js +4 -0
  331. package/dist/ionic/p-0af640d6.entry.js +4 -0
  332. package/dist/ionic/{p-756e4559.js → p-0f5e6225.js} +1 -1
  333. package/dist/ionic/p-105b2e8b.entry.js +4 -0
  334. package/dist/ionic/p-10a1bddc.js +4 -0
  335. package/dist/ionic/p-117d0013.system.entry.js +4 -0
  336. package/dist/ionic/p-12193821.system.js +4 -0
  337. package/dist/ionic/p-12830298.system.entry.js +4 -0
  338. package/dist/ionic/p-14154301.system.entry.js +4 -0
  339. package/dist/ionic/{p-14114a59.system.entry.js → p-1706b406.system.entry.js} +1 -1
  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-1a7df1c3.system.js +4 -0
  345. package/dist/ionic/p-1a81ac09.system.js +4 -0
  346. package/dist/ionic/p-1b9c59ab.js +4 -0
  347. package/dist/ionic/p-1cb02e44.entry.js +4 -0
  348. package/dist/ionic/p-1d307396.system.js +4 -0
  349. package/dist/ionic/p-1f871cf8.entry.js +4 -0
  350. package/dist/ionic/p-200fc491.js +4 -0
  351. package/dist/ionic/p-2233344a.system.js +4 -0
  352. package/dist/ionic/p-2469240b.entry.js +4 -0
  353. package/dist/ionic/{p-7058a5e4.system.entry.js → p-24a6c8a3.system.entry.js} +1 -1
  354. package/dist/ionic/p-257fb777.entry.js +4 -0
  355. package/dist/ionic/{p-c3f9d9fe.js → p-25b10f81.js} +1 -1
  356. package/dist/ionic/p-2bb55ebc.js +4 -0
  357. package/dist/ionic/p-2bff0e69.system.entry.js +4 -0
  358. package/dist/ionic/{p-7b886108.system.entry.js → p-2fa37fdc.system.entry.js} +1 -1
  359. package/dist/ionic/p-31dc303d.entry.js +4 -0
  360. package/dist/ionic/p-3535d6b5.entry.js +4 -0
  361. package/dist/ionic/{p-5578033e.system.entry.js → p-35cdfd77.system.entry.js} +1 -1
  362. package/dist/ionic/p-393ffcc2.entry.js +4 -0
  363. package/dist/ionic/p-39fa7dd1.system.entry.js +4 -0
  364. package/dist/ionic/p-3a30f31b.system.entry.js +4 -0
  365. package/dist/ionic/p-42f08b26.system.entry.js +4 -0
  366. package/dist/ionic/p-481e0885.entry.js +4 -0
  367. package/dist/ionic/p-4a5be299.system.entry.js +4 -0
  368. package/dist/ionic/p-4c667fce.js +4 -0
  369. package/dist/ionic/p-4cf4172e.entry.js +4 -0
  370. package/dist/ionic/p-4da92dac.entry.js +4 -0
  371. package/dist/ionic/p-4ec0e961.system.entry.js +4 -0
  372. package/dist/ionic/{p-d70a9e6d.system.js → p-4ed5db19.system.js} +1 -1
  373. package/dist/ionic/p-50cb2e8b.system.entry.js +4 -0
  374. package/dist/ionic/p-57957c0f.entry.js +4 -0
  375. package/dist/ionic/p-57e55ecb.system.js +4 -0
  376. package/dist/ionic/p-5b67b447.js +4 -0
  377. package/dist/ionic/p-5c9feddc.system.entry.js +4 -0
  378. package/dist/ionic/p-5edf78c5.system.entry.js +4 -0
  379. package/dist/ionic/p-612096e6.system.entry.js +4 -0
  380. package/dist/ionic/p-6201c4ba.entry.js +4 -0
  381. package/dist/ionic/p-625248d0.system.js +4 -0
  382. package/dist/ionic/p-663413be.system.js +4 -0
  383. package/dist/ionic/p-6636a436.js +4 -0
  384. package/dist/ionic/p-66df5468.system.entry.js +4 -0
  385. package/dist/ionic/p-67077d48.entry.js +4 -0
  386. package/dist/ionic/p-67cacd6d.entry.js +4 -0
  387. package/dist/ionic/p-6835ebdd.system.entry.js +4 -0
  388. package/dist/ionic/p-6b8530f5.system.entry.js +4 -0
  389. package/dist/ionic/{p-a7830ff8.entry.js → p-6c474e87.entry.js} +1 -1
  390. package/dist/ionic/p-6dd86ff5.system.entry.js +4 -0
  391. package/dist/ionic/p-6ec0c94a.entry.js +4 -0
  392. package/dist/ionic/p-6f832afe.system.entry.js +4 -0
  393. package/dist/ionic/p-712c0131.entry.js +4 -0
  394. package/dist/ionic/{p-e11ff516.entry.js → p-721f43f9.entry.js} +1 -1
  395. package/dist/ionic/p-7445a2e5.system.js +4 -0
  396. package/dist/ionic/p-7611ede3.system.entry.js +4 -0
  397. package/dist/ionic/p-781e2dbb.system.js +4 -0
  398. package/dist/ionic/p-7b8c12c3.entry.js +4 -0
  399. package/dist/ionic/p-7c5c7ae1.system.entry.js +4 -0
  400. package/dist/ionic/p-7e3e6ed2.entry.js +4 -0
  401. package/dist/ionic/{p-4c7e6fec.system.entry.js → p-7ffedf77.system.entry.js} +1 -1
  402. package/dist/ionic/p-809483ac.js +4 -0
  403. package/dist/ionic/{p-65e732b9.entry.js → p-81904a80.entry.js} +1 -1
  404. package/dist/ionic/{p-a6625de8.system.js → p-84096b45.system.js} +1 -1
  405. package/dist/ionic/p-8450f761.entry.js +4 -0
  406. package/dist/ionic/p-8460d95a.entry.js +4 -0
  407. package/dist/ionic/p-85b01465.js +4 -0
  408. package/dist/ionic/p-865fe95c.entry.js +4 -0
  409. package/dist/ionic/p-8674af94.entry.js +4 -0
  410. package/dist/ionic/p-890a4ee2.entry.js +4 -0
  411. package/dist/ionic/p-891553d8.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-9e753482.system.entry.js +4 -0
  419. package/dist/ionic/p-a0fd2fe5.system.entry.js +4 -0
  420. package/dist/ionic/p-a2c6a9c8.entry.js +4 -0
  421. package/dist/ionic/p-a2dd5b69.system.entry.js +4 -0
  422. package/dist/ionic/p-a5dbe0ff.system.entry.js +4 -0
  423. package/dist/ionic/p-a78fa846.entry.js +4 -0
  424. package/dist/ionic/p-a835aca8.entry.js +4 -0
  425. package/dist/ionic/p-a83e3290.system.js +4 -0
  426. package/dist/ionic/{p-624ecf03.js → p-aded71ec.js} +1 -1
  427. package/dist/ionic/p-ae039072.entry.js +4 -0
  428. package/dist/ionic/p-aebfab05.system.entry.js +4 -0
  429. package/dist/ionic/{p-29da3dcd.entry.js → p-b22a021d.entry.js} +1 -1
  430. package/dist/ionic/p-b2e7eda0.system.entry.js +4 -0
  431. package/dist/ionic/p-b445ff65.entry.js +4 -0
  432. package/dist/ionic/{p-d882f1e2.system.entry.js → p-b4d17da0.system.entry.js} +2 -2
  433. package/dist/ionic/p-b5432d15.entry.js +4 -0
  434. package/dist/ionic/p-b6d324f0.js +4 -0
  435. package/dist/ionic/p-b7b1d91a.js +4 -0
  436. package/dist/ionic/{p-f387b3c6.system.entry.js → p-b8050298.system.entry.js} +1 -1
  437. package/dist/ionic/p-b9c793d4.entry.js +4 -0
  438. package/dist/ionic/p-bf184319.system.entry.js +4 -0
  439. package/dist/ionic/{p-8048804d.system.entry.js → p-bfb763d0.system.entry.js} +1 -1
  440. package/dist/ionic/p-c16443a8.system.js +4 -0
  441. package/dist/ionic/{p-49d53551.system.entry.js → p-c1b7d311.system.entry.js} +1 -1
  442. package/dist/ionic/p-c2160d8c.entry.js +4 -0
  443. package/dist/ionic/{p-db3b409e.system.entry.js → p-c26c5c20.system.entry.js} +1 -1
  444. package/dist/ionic/p-c5b77054.entry.js +4 -0
  445. package/dist/ionic/p-c5bfa3e9.entry.js +4 -0
  446. package/dist/ionic/p-c6879aa4.system.entry.js +4 -0
  447. package/dist/ionic/p-cad82569.entry.js +4 -0
  448. package/dist/ionic/p-d16fab3f.entry.js +4 -0
  449. package/dist/ionic/p-d2c3524b.system.entry.js +4 -0
  450. package/dist/ionic/p-d382f09c.system.js +4 -0
  451. package/dist/ionic/p-d984c1ab.system.entry.js +4 -0
  452. package/dist/ionic/p-da6247e5.entry.js +4 -0
  453. package/dist/ionic/p-dabe3bd4.js +4 -0
  454. package/dist/ionic/p-df069a0d.entry.js +4 -0
  455. package/dist/ionic/p-e6068998.system.entry.js +4 -0
  456. package/dist/ionic/p-e727e32d.system.entry.js +4 -0
  457. package/dist/ionic/p-e887b6a9.system.js +4 -0
  458. package/dist/ionic/p-ed005d9c.js +4 -0
  459. package/dist/ionic/{p-b9fa7882.js → p-f08a92cc.js} +1 -1
  460. package/dist/ionic/p-f08dfb19.entry.js +4 -0
  461. package/dist/ionic/p-f0c9f8e3.system.entry.js +4 -0
  462. package/dist/ionic/p-f0ef39ab.entry.js +4 -0
  463. package/dist/ionic/{p-4662a25c.system.entry.js → p-f22490a7.system.entry.js} +1 -1
  464. package/dist/ionic/p-f6e7d104.system.js +4 -0
  465. package/dist/ionic/p-f725bf9e.system.js +4 -0
  466. package/dist/ionic/{p-48ded460.entry.js → p-f8c0c707.entry.js} +1 -1
  467. package/dist/ionic/p-f9a87db2.system.entry.js +4 -0
  468. package/dist/ionic/{p-3855fef7.system.js → p-fa3f4b96.system.js} +2 -2
  469. package/dist/ionic/p-fe063952.system.entry.js +4 -0
  470. package/dist/types/components/input/input.d.ts +8 -0
  471. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  472. package/dist/types/components/select/select.d.ts +9 -0
  473. package/dist/types/components/textarea/textarea.d.ts +8 -0
  474. package/dist/types/components/toggle/toggle.d.ts +2 -0
  475. package/dist/types/index.d.ts +1 -0
  476. package/dist/types/utils/logging/index.d.ts +1 -1
  477. package/hydrate/index.js +212 -191
  478. package/hydrate/index.mjs +212 -191
  479. package/package.json +1 -1
  480. package/dist/cjs/index-48b2a28e.js +0 -46
  481. package/dist/esm/index-738d7504.js +0 -42
  482. package/dist/esm-es5/animation-eab5a4ca.js +0 -4
  483. package/dist/esm-es5/app-globals-7b6cbf1a.js +0 -4
  484. package/dist/esm-es5/config-49c88215.js +0 -4
  485. package/dist/esm-es5/data-174ad5e0.js +0 -4
  486. package/dist/esm-es5/hardware-back-button-864101a3.js +0 -4
  487. package/dist/esm-es5/helpers-78efeec3.js +0 -4
  488. package/dist/esm-es5/index-40894f4b.js +0 -4
  489. package/dist/esm-es5/index-738d7504.js +0 -4
  490. package/dist/esm-es5/index-ecb55b8d.js +0 -4
  491. package/dist/esm-es5/input-shims-7dc1f6dc.js +0 -4
  492. package/dist/esm-es5/input.utils-28bf4ef0.js +0 -4
  493. package/dist/esm-es5/ionic-global-ca86cf32.js +0 -4
  494. package/dist/esm-es5/ios.transition-7fe5dbea.js +0 -4
  495. package/dist/esm-es5/md.transition-8dc58b46.js +0 -4
  496. package/dist/esm-es5/overlays-41a5d51b.js +0 -4
  497. package/dist/esm-es5/status-tap-f6d08e9e.js +0 -4
  498. package/dist/esm-es5/swipe-back-5c7708b8.js +0 -4
  499. package/dist/ionic/p-0186a592.entry.js +0 -4
  500. package/dist/ionic/p-027a48f1.entry.js +0 -4
  501. package/dist/ionic/p-058b7f35.js +0 -4
  502. package/dist/ionic/p-05b65d7a.entry.js +0 -4
  503. package/dist/ionic/p-09d185ff.system.js +0 -4
  504. package/dist/ionic/p-0a456b7f.entry.js +0 -4
  505. package/dist/ionic/p-0adb6909.system.entry.js +0 -4
  506. package/dist/ionic/p-0bedc891.system.entry.js +0 -4
  507. package/dist/ionic/p-0d1be7c9.system.entry.js +0 -4
  508. package/dist/ionic/p-0ec5b7cf.system.js +0 -4
  509. package/dist/ionic/p-15bb1dde.system.js +0 -4
  510. package/dist/ionic/p-180b4f9a.entry.js +0 -4
  511. package/dist/ionic/p-19c32a76.entry.js +0 -4
  512. package/dist/ionic/p-1b0b2210.entry.js +0 -4
  513. package/dist/ionic/p-1bf5ec17.system.js +0 -4
  514. package/dist/ionic/p-1c1d781d.system.entry.js +0 -4
  515. package/dist/ionic/p-1c8b3ac9.entry.js +0 -4
  516. package/dist/ionic/p-1de5dfcd.system.entry.js +0 -4
  517. package/dist/ionic/p-2567237c.entry.js +0 -4
  518. package/dist/ionic/p-29a5b4e4.entry.js +0 -4
  519. package/dist/ionic/p-2a2c6bf4.system.entry.js +0 -4
  520. package/dist/ionic/p-3281aab3.entry.js +0 -4
  521. package/dist/ionic/p-33518a04.entry.js +0 -4
  522. package/dist/ionic/p-33cf8185.system.js +0 -4
  523. package/dist/ionic/p-35f14792.entry.js +0 -4
  524. package/dist/ionic/p-383a6058.entry.js +0 -4
  525. package/dist/ionic/p-38eaf9cf.system.entry.js +0 -4
  526. package/dist/ionic/p-3ba2a2cd.system.js +0 -4
  527. package/dist/ionic/p-3f4327f7.js +0 -4
  528. package/dist/ionic/p-41d5544e.js +0 -4
  529. package/dist/ionic/p-41e70fa2.entry.js +0 -4
  530. package/dist/ionic/p-44fde7d5.system.entry.js +0 -4
  531. package/dist/ionic/p-44ff75ea.js +0 -4
  532. package/dist/ionic/p-455cd7cc.system.js +0 -4
  533. package/dist/ionic/p-4630688e.system.entry.js +0 -4
  534. package/dist/ionic/p-4b07c60a.system.js +0 -4
  535. package/dist/ionic/p-4ea4c73a.system.entry.js +0 -4
  536. package/dist/ionic/p-4eeca839.system.entry.js +0 -4
  537. package/dist/ionic/p-50e0ce13.entry.js +0 -4
  538. package/dist/ionic/p-51479be0.system.entry.js +0 -4
  539. package/dist/ionic/p-552d9d62.entry.js +0 -4
  540. package/dist/ionic/p-597ff9af.js +0 -4
  541. package/dist/ionic/p-5fb1321f.entry.js +0 -4
  542. package/dist/ionic/p-61373098.js +0 -4
  543. package/dist/ionic/p-6155027f.system.entry.js +0 -4
  544. package/dist/ionic/p-61e794fb.entry.js +0 -4
  545. package/dist/ionic/p-64d8ac48.js +0 -4
  546. package/dist/ionic/p-657ada6a.entry.js +0 -4
  547. package/dist/ionic/p-65943bec.system.entry.js +0 -4
  548. package/dist/ionic/p-6c044a1d.system.js +0 -4
  549. package/dist/ionic/p-70abb1f2.system.entry.js +0 -4
  550. package/dist/ionic/p-747f9517.entry.js +0 -4
  551. package/dist/ionic/p-772d1657.system.js +0 -4
  552. package/dist/ionic/p-7c9daa6f.entry.js +0 -4
  553. package/dist/ionic/p-7cc33a9a.system.js +0 -4
  554. package/dist/ionic/p-7e3b5638.system.entry.js +0 -4
  555. package/dist/ionic/p-7f49a9c4.entry.js +0 -4
  556. package/dist/ionic/p-843ac05d.system.entry.js +0 -4
  557. package/dist/ionic/p-87b0d2c9.entry.js +0 -4
  558. package/dist/ionic/p-8b1c1fd7.entry.js +0 -4
  559. package/dist/ionic/p-8b22be32.system.entry.js +0 -4
  560. package/dist/ionic/p-8cf6f383.system.entry.js +0 -4
  561. package/dist/ionic/p-8d98e2bb.entry.js +0 -4
  562. package/dist/ionic/p-9146695e.system.js +0 -4
  563. package/dist/ionic/p-9263275e.system.entry.js +0 -4
  564. package/dist/ionic/p-959cf042.system.entry.js +0 -4
  565. package/dist/ionic/p-96eec056.entry.js +0 -4
  566. package/dist/ionic/p-978bdf4c.system.js +0 -4
  567. package/dist/ionic/p-9870728f.js +0 -4
  568. package/dist/ionic/p-99803283.entry.js +0 -4
  569. package/dist/ionic/p-9af7f110.js +0 -4
  570. package/dist/ionic/p-9b069739.entry.js +0 -4
  571. package/dist/ionic/p-a26d7667.system.entry.js +0 -4
  572. package/dist/ionic/p-a3c931ad.system.js +0 -4
  573. package/dist/ionic/p-a520973b.entry.js +0 -4
  574. package/dist/ionic/p-a75a9e5a.system.entry.js +0 -4
  575. package/dist/ionic/p-a9198501.system.entry.js +0 -4
  576. package/dist/ionic/p-ac09b6e9.system.entry.js +0 -4
  577. package/dist/ionic/p-ac58d726.system.entry.js +0 -4
  578. package/dist/ionic/p-b1673667.entry.js +0 -4
  579. package/dist/ionic/p-b1f9fbe8.system.entry.js +0 -4
  580. package/dist/ionic/p-b2ee0628.system.entry.js +0 -4
  581. package/dist/ionic/p-b87a9f1d.entry.js +0 -4
  582. package/dist/ionic/p-b8a461f5.system.entry.js +0 -4
  583. package/dist/ionic/p-bf64af90.system.js +0 -4
  584. package/dist/ionic/p-c005cc37.entry.js +0 -4
  585. package/dist/ionic/p-c27c57ea.system.entry.js +0 -4
  586. package/dist/ionic/p-c53c414d.system.entry.js +0 -4
  587. package/dist/ionic/p-c7e16491.js +0 -4
  588. package/dist/ionic/p-ccb740ea.entry.js +0 -4
  589. package/dist/ionic/p-cec54707.system.entry.js +0 -4
  590. package/dist/ionic/p-cf14f70d.entry.js +0 -4
  591. package/dist/ionic/p-cfc08422.entry.js +0 -4
  592. package/dist/ionic/p-cff4f96c.entry.js +0 -4
  593. package/dist/ionic/p-d046659b.system.entry.js +0 -4
  594. package/dist/ionic/p-d40f2b7a.js +0 -4
  595. package/dist/ionic/p-d455de62.entry.js +0 -4
  596. package/dist/ionic/p-e29c5aab.system.entry.js +0 -4
  597. package/dist/ionic/p-e2ce5f8b.entry.js +0 -4
  598. package/dist/ionic/p-e3012c2d.js +0 -4
  599. package/dist/ionic/p-e3284879.system.entry.js +0 -4
  600. package/dist/ionic/p-e3e4eed7.entry.js +0 -4
  601. package/dist/ionic/p-e4683bfd.system.entry.js +0 -4
  602. package/dist/ionic/p-e4d2c281.entry.js +0 -4
  603. package/dist/ionic/p-ece78e7b.js +0 -4
  604. package/dist/ionic/p-ee86cfff.system.js +0 -4
  605. package/dist/ionic/p-f201b53a.system.js +0 -4
  606. package/dist/ionic/p-f23124c4.system.js +0 -4
  607. package/dist/ionic/p-f233f1e0.system.js +0 -4
  608. package/dist/ionic/p-f53ee2e7.js +0 -4
  609. package/dist/ionic/p-f5a04e5e.system.entry.js +0 -4
  610. package/dist/ionic/p-f70fc14a.entry.js +0 -4
  611. package/dist/ionic/p-f7ce606e.js +0 -4
  612. package/dist/ionic/p-f834322a.entry.js +0 -4
  613. package/dist/ionic/p-f84f4d8e.system.entry.js +0 -4
  614. package/dist/ionic/p-fa70eaab.entry.js +0 -4
  615. package/dist/ionic/p-ffa3ba3c.js +0 -4
@@ -59,7 +59,7 @@ export class Popover {
59
59
  }
60
60
  const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null);
61
61
  if (!triggerEl) {
62
- 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);
62
+ 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);
63
63
  return;
64
64
  }
65
65
  this.destroyTriggerInteraction = configureTriggerInteraction(triggerEl, triggerAction, el);
@@ -338,9 +338,9 @@ export class Popover {
338
338
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
339
339
  const desktop = isPlatform('desktop');
340
340
  const enableArrow = arrow && !parentPopover;
341
- return (h(Host, Object.assign({ key: '48f108a9b74f121559626889dd5a1fcccf38fc3d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
341
+ return (h(Host, Object.assign({ key: 'ff24e8d9677711248a36994cce568e74ba151499', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
342
342
  zIndex: `${20000 + this.overlayIndex}`,
343
- }, 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 && h("ion-backdrop", { key: '580c14ab48472534f59eedc5ba7fa486df25ed4e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '9bcf47893e8d3053e2baa40511785d84feb4038c', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '4d47f2bdc01a546a88190c07f8f4700f21de6715', class: "popover-arrow", part: "arrow" }), h("div", { key: '70018c088654c1996e305b7b6b114419e97824ef', class: "popover-content", part: "content" }, h("slot", { key: '3de8e1959b8facba2fbe694947704832200d8276' })))));
343
+ }, 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 && h("ion-backdrop", { key: 'aca68b4002a08b0e563a976a867141162c20f8b4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '62d21d1eab5c6d675d49932559ffb161747e5fec', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '1b46cc77d5302637fc979353483bb5fd780fd1d3', class: "popover-arrow", part: "arrow" }), h("div", { key: 'a5657bff26e46d1959b71eb0992e7dc8fcae86f1', class: "popover-content", part: "content" }, h("slot", { key: 'e1a98007226a46b51109e7004c4d338ca1bc0f9e' })))));
344
344
  }
345
345
  static get is() { return "ion-popover"; }
346
346
  static get encapsulation() { return "shadow"; }
@@ -166,11 +166,11 @@ export class Range {
166
166
  const { activeBarStart } = this;
167
167
  if (activeBarStart !== undefined) {
168
168
  if (activeBarStart > this.max) {
169
- 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);
169
+ 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);
170
170
  this.activeBarStart = this.max;
171
171
  }
172
172
  else if (activeBarStart < this.min) {
173
- 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);
173
+ 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);
174
174
  this.activeBarStart = this.min;
175
175
  }
176
176
  }
@@ -596,7 +596,7 @@ export class Range {
596
596
  const needsEndAdjustment = inItem && !hasEndContent;
597
597
  const mode = getIonMode(this);
598
598
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
599
- return (h(Host, { key: 'e97cb7eab877eb1624429b4a79107130c6809cf5', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
599
+ return (h(Host, { key: '3e065039ee048f1f70d97dba5dae98fa1315d867', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
600
600
  [mode]: true,
601
601
  'in-item': inItem,
602
602
  'range-disabled': disabled,
@@ -605,10 +605,10 @@ export class Range {
605
605
  [`range-label-placement-${labelPlacement}`]: true,
606
606
  'range-item-start-adjustment': needsStartAdjustment,
607
607
  'range-item-end-adjustment': needsEndAdjustment,
608
- }) }, h("label", { key: 'a43e9859f74f83460439efefccb5fbb9f387c9ee', class: "range-wrapper", id: "range-label" }, h("div", { key: '75352a30f30dbd0228c6138eb4324a5c021dbb48', class: {
608
+ }) }, h("label", { key: '27ff22842c9ea79a1b9495302b926f70c9080a95', class: "range-wrapper", id: "range-label" }, h("div", { key: 'da1f9784be02dfe87d2fef34931d8b7f2148189e', class: {
609
609
  'label-text-wrapper': true,
610
610
  'label-text-wrapper-hidden': !hasLabel,
611
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '6a3e147c3e5d938bb2b50522a290f6fdfcf40f05', class: "native-wrapper" }, h("slot", { key: '6627236eac9f711fa9c27879a017dd994e65811e', name: "start" }), this.renderRangeSlider(), h("slot", { key: '6af3bbadacd036bc7cd30732227f76d7c64117fb', name: "end" })))));
611
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '4389bf30b08214f5b5917fc30976b38f7bcdd29b', class: "native-wrapper" }, h("slot", { key: 'ad1b2745f8b061ee189617bb5c567e4f1d02250c', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'c6dec9e843e232af2a5f16a0f8ee56439c545d7a', name: "end" })))));
612
612
  }
613
613
  static get is() { return "ion-range"; }
614
614
  static get encapsulation() { return "shadow"; }
@@ -5,6 +5,7 @@ import { Host, h, readTask, writeTask } from "@stencil/core";
5
5
  import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
6
  import { getScrollElement, ION_CONTENT_CLASS_SELECTOR, ION_CONTENT_ELEMENT_SELECTOR, printIonContentErrorMsg, } from "../../utils/content/index";
7
7
  import { clamp, componentOnReady, getElementRoot, raf, transitionEndAsync } from "../../utils/helpers";
8
+ import { printIonError } from "../../utils/logging/index";
8
9
  import { ImpactStyle, hapticImpact } from "../../utils/native/haptic";
9
10
  import { getIonMode } from "../../global/ionic-global";
10
11
  import { createPullingAnimation, createSnapBackAnimation, getRefresherAnimationType, handleScrollWhilePulling, handleScrollWhileRefreshing, setSpinnerOpacity, shouldUseNativeRefresher, translateElement, } from "./refresher.utils";
@@ -289,7 +290,7 @@ export class Refresher {
289
290
  }
290
291
  async connectedCallback() {
291
292
  if (this.el.getAttribute('slot') !== 'fixed') {
292
- console.error('Make sure you use: <ion-refresher slot="fixed">');
293
+ printIonError('[ion-refresher] - Make sure you use: <ion-refresher slot="fixed">');
293
294
  return;
294
295
  }
295
296
  const contentEl = this.el.closest(ION_CONTENT_ELEMENT_SELECTOR);
@@ -621,7 +622,7 @@ export class Refresher {
621
622
  }
622
623
  render() {
623
624
  const mode = getIonMode(this);
624
- return (h(Host, { key: '4c36bffbfa32ef1bd28a60f4455c125842880659', slot: "fixed", class: {
625
+ return (h(Host, { key: 'c717c16f2ca3e42351848cc8ad37918dec28961d', slot: "fixed", class: {
625
626
  [mode]: true,
626
627
  // Used internally for styling
627
628
  [`refresher-${mode}`]: true,
@@ -1,4 +1,5 @@
1
1
  import { debounce } from "../../utils/helpers";
2
+ import { printIonError, printIonWarning } from "../../utils/logging/index";
2
3
  import { ROUTER_INTENT_BACK, ROUTER_INTENT_FORWARD, ROUTER_INTENT_NONE } from "./utils/constants";
3
4
  import { printRedirects, printRoutes } from "./utils/debug";
4
5
  import { readNavState, waitUntilNavNode, writeNavState } from "./utils/dom";
@@ -106,19 +107,19 @@ export class Router {
106
107
  /** @internal */
107
108
  async navChanged(direction) {
108
109
  if (this.busy) {
109
- console.warn('[ion-router] router is busy, navChanged was cancelled');
110
+ printIonWarning('[ion-router] - Router is busy, navChanged was cancelled.');
110
111
  return false;
111
112
  }
112
113
  const { ids, outlet } = await readNavState(window.document.body);
113
114
  const routes = readRoutes(this.el);
114
115
  const chain = findChainForIDs(ids, routes);
115
116
  if (!chain) {
116
- console.warn('[ion-router] no matching URL for ', ids.map((i) => i.id));
117
+ printIonWarning('[ion-router] - No matching URL for', ids.map((i) => i.id));
117
118
  return false;
118
119
  }
119
120
  const segments = chainToSegments(chain);
120
121
  if (!segments) {
121
- console.warn('[ion-router] router could not match path because some required param is missing');
122
+ printIonWarning('[ion-router] - Router could not match path because some required param is missing.');
122
123
  return false;
123
124
  }
124
125
  this.setSegments(segments, direction);
@@ -156,7 +157,7 @@ export class Router {
156
157
  }
157
158
  async writeNavStateRoot(segments, direction, animation) {
158
159
  if (!segments) {
159
- console.error('[ion-router] URL is not part of the routing set');
160
+ printIonError('[ion-router] - URL is not part of the routing set.');
160
161
  return false;
161
162
  }
162
163
  // lookup redirect rule
@@ -173,7 +174,7 @@ export class Router {
173
174
  const routes = readRoutes(this.el);
174
175
  const chain = findChainForSegments(segments, routes);
175
176
  if (!chain) {
176
- console.error('[ion-router] the path does not match any route');
177
+ printIonError('[ion-router] - The path does not match any route.');
177
178
  return false;
178
179
  }
179
180
  // write DOM give
@@ -186,7 +187,7 @@ export class Router {
186
187
  changed = await this.writeNavState(node, chain, direction, segments, redirectFrom, index, animation);
187
188
  }
188
189
  catch (e) {
189
- console.error(e);
190
+ printIonError('[ion-router] - Exception in safeWriteNavState:', e);
190
191
  }
191
192
  unlock();
192
193
  return changed;
@@ -228,7 +229,7 @@ export class Router {
228
229
  }
229
230
  async writeNavState(node, chain, direction, segments, redirectFrom, index = 0, animation) {
230
231
  if (this.busy) {
231
- console.warn('[ion-router] router is busy, transition was cancelled');
232
+ printIonWarning('[ion-router] - Router is busy, transition was cancelled.');
232
233
  return false;
233
234
  }
234
235
  this.busy = true;
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { componentOnReady } from "../../../utils/helpers";
5
+ import { printIonError } from "../../../utils/logging/index";
5
6
  import { ROUTER_INTENT_NONE } from "./constants";
6
7
  /**
7
8
  * Activates the passed route chain.
@@ -38,7 +39,7 @@ export const writeNavState = async (root, chain, direction, index, changed = fal
38
39
  return changed;
39
40
  }
40
41
  catch (e) {
41
- console.error(e);
42
+ printIonError('[ion-router] - Exception in writeNavState:', e);
42
43
  return false;
43
44
  }
44
45
  };
@@ -6,6 +6,7 @@ import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
6
  import { attachComponent, detachComponent } from "../../utils/framework-delegate";
7
7
  import { shallowEqualStringMap, hasLazyBuild } from "../../utils/helpers";
8
8
  import { createLockController } from "../../utils/lock-controller";
9
+ import { printIonError } from "../../utils/logging/index";
9
10
  import { transition } from "../../utils/transition/index";
10
11
  import { config } from "../../global/config";
11
12
  import { getIonMode } from "../../global/ionic-global";
@@ -82,7 +83,7 @@ export class RouterOutlet {
82
83
  changed = await this.transition(enteringEl, leavingEl, opts);
83
84
  }
84
85
  catch (e) {
85
- console.error(e);
86
+ printIonError('[ion-router-outlet] - Exception in commit:', e);
86
87
  }
87
88
  unlock();
88
89
  return changed;
@@ -178,7 +179,7 @@ export class RouterOutlet {
178
179
  return true;
179
180
  }
180
181
  render() {
181
- return h("slot", { key: '7e0a94834af9cb73ee47759fa5b2588dab3d1345' });
182
+ return h("slot", { key: 'df4fa3e07f10157d53129661d48282e8feec13a1' });
182
183
  }
183
184
  static get is() { return "ion-router-outlet"; }
184
185
  static get encapsulation() { return "shadow"; }
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { Host, forceUpdate, h } from "@stencil/core";
5
5
  import { addEventListener, removeEventListener, inheritAttributes } from "../../utils/helpers";
6
+ import { printIonError, printIonWarning } from "../../utils/logging/index";
6
7
  import { hostContext } from "../../utils/theme";
7
8
  import { getIonMode } from "../../global/ionic-global";
8
9
  let ids = 0;
@@ -48,7 +49,7 @@ export class SegmentButton {
48
49
  }
49
50
  // Prevent buttons from being disabled when associated with segment content
50
51
  if (this.contentId && this.disabled) {
51
- console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
52
+ printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
52
53
  this.disabled = false;
53
54
  }
54
55
  }
@@ -69,12 +70,12 @@ export class SegmentButton {
69
70
  const segmentContent = document.getElementById(this.contentId);
70
71
  // If no associated Segment Content exists, log an error and return
71
72
  if (!segmentContent) {
72
- console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
73
+ printIonError(`[ion-segment-button] - Unable to find Segment Content with id="${this.contentId}".`);
73
74
  return;
74
75
  }
75
76
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
76
77
  if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
77
- console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
78
+ printIonError(`[ion-segment-button] - Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
78
79
  return;
79
80
  }
80
81
  }
@@ -99,7 +100,7 @@ export class SegmentButton {
99
100
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
100
101
  const mode = getIonMode(this);
101
102
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
102
- return (h(Host, { key: 'f2f679a08b131cd35d63f649b9d1f1907df30a89', class: {
103
+ return (h(Host, { key: 'd79dad80db69123510c6d52bbf4424558600c14a', class: {
103
104
  [mode]: true,
104
105
  'in-toolbar': hostContext('ion-toolbar', this.el),
105
106
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -115,7 +116,7 @@ export class SegmentButton {
115
116
  'ion-activatable': true,
116
117
  'ion-activatable-instant': true,
117
118
  'ion-focusable': true,
118
- } }, h("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), h("span", { key: '73b795c39cb09438e50922abf6b3a010e31fa2b6', class: "button-inner" }, h("slot", { key: '9769ddc917d7e459bd80dcd81c10c379e73d1b3e' })), mode === 'md' && h("ion-ripple-effect", { key: '8e4c06d6bae1034af8cc5db86fcca0ae72d042b1' })), h("div", { key: 'ae73ee0e429e54a43269f99b6d3d7e1c6e8f60cc', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'd38eabe8161403799cfbad73dd6bf912d965442c', part: "indicator-background", class: "segment-button-indicator-background" }))));
119
+ } }, h("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), h("span", { key: '64df08f60ea17481183f8ad284884b9979eaeb24', class: "button-inner" }, h("slot", { key: '2b7ef328023ab5ccc0adc6f865e5e7121467eeb8' })), mode === 'md' && h("ion-ripple-effect", { key: '1fd5e6179227925a03b6c3b5258bbf4ea99bfef1' })), h("div", { key: 'dbcedad6988b0eadeebe02bdafdedb8eb37af19c', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'f4f1789f66bdfa2de5445bc0d292116a93bad7cc', part: "indicator-background", class: "segment-button-indicator-background" }))));
119
120
  }
120
121
  static get is() { return "ion-segment-button"; }
121
122
  static get encapsulation() { return "shadow"; }
@@ -126,7 +126,7 @@
126
126
  pointer-events: none;
127
127
  }
128
128
 
129
- :host(.ion-focused) button {
129
+ :host(.has-focus) button {
130
130
  border: 2px solid #5e9ed6;
131
131
  }
132
132
 
@@ -329,7 +329,9 @@ button {
329
329
  * highlight when the select is blurred.
330
330
  */
331
331
  :host(.has-focus.ion-valid),
332
- :host(.ion-touched.ion-invalid) {
332
+ :host(.select-expanded.ion-valid),
333
+ :host(.ion-touched.ion-invalid),
334
+ :host(.select-expanded.ion-touched.ion-invalid) {
333
335
  --border-color: var(--highlight-color);
334
336
  }
335
337
 
@@ -596,7 +598,7 @@ button {
596
598
  * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder
597
599
  */
598
600
  :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,
599
- :host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,
601
+ :host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,
600
602
  :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder {
601
603
  opacity: 1;
602
604
  }
@@ -4,6 +4,7 @@
4
4
  import { Host, h, forceUpdate } from "@stencil/core";
5
5
  import { compareOptions, createNotchController, isOptionSelected } from "../../utils/forms/index";
6
6
  import { focusVisibleElement, renderHiddenInput, inheritAttributes } from "../../utils/helpers";
7
+ import { printIonWarning } from "../../utils/logging/index";
7
8
  import { actionSheetController, alertController, popoverController, modalController } from "../../utils/overlays";
8
9
  import { isRTL } from "../../utils/rtl/index";
9
10
  import { createColorClasses, hostContext } from "../../utils/theme";
@@ -71,12 +72,15 @@ export class Select {
71
72
  }
72
73
  };
73
74
  this.onFocus = () => {
75
+ this.hasFocus = true;
74
76
  this.ionFocus.emit();
75
77
  };
76
78
  this.onBlur = () => {
79
+ this.hasFocus = false;
77
80
  this.ionBlur.emit();
78
81
  };
79
82
  this.isExpanded = false;
83
+ this.hasFocus = false;
80
84
  this.cancelText = 'Cancel';
81
85
  this.color = undefined;
82
86
  this.compareWith = undefined;
@@ -243,11 +247,11 @@ export class Select {
243
247
  createOverlay(ev) {
244
248
  let selectInterface = this.interface;
245
249
  if (selectInterface === 'action-sheet' && this.multiple) {
246
- console.warn(`Select interface cannot be "${selectInterface}" with a multi-value select. Using the "alert" interface instead.`);
250
+ printIonWarning(`[ion-select] - Interface cannot be "${selectInterface}" with a multi-value select. Using the "alert" interface instead.`);
247
251
  selectInterface = 'alert';
248
252
  }
249
253
  if (selectInterface === 'popover' && !ev) {
250
- console.warn(`Select interface cannot be a "${selectInterface}" without passing an event. Using the "alert" interface instead.`);
254
+ printIonWarning(`[ion-select] - Interface cannot be a "${selectInterface}" without passing an event. Using the "alert" interface instead.`);
251
255
  selectInterface = 'alert';
252
256
  }
253
257
  if (selectInterface === 'action-sheet') {
@@ -703,7 +707,7 @@ export class Select {
703
707
  return h("div", { class: "select-bottom" }, this.renderHintText());
704
708
  }
705
709
  render() {
706
- const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
710
+ const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value, hasFocus, } = this;
707
711
  const mode = getIonMode(this);
708
712
  const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
709
713
  const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
@@ -731,7 +735,7 @@ export class Select {
731
735
  * TODO(FW-5592): Remove hasStartEndSlots condition
732
736
  */
733
737
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
734
- return (h(Host, { key: 'aa7bd7fbb6479c7805486990650a406e5470fd13', onClick: this.onClick, class: createColorClasses(this.color, {
738
+ return (h(Host, { key: 'e6c0498d6c275f89344f4b5146752a047058ad88', onClick: this.onClick, class: createColorClasses(this.color, {
735
739
  [mode]: true,
736
740
  'in-item': inItem,
737
741
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -741,13 +745,15 @@ export class Select {
741
745
  'has-value': hasValue,
742
746
  'label-floating': labelShouldFloat,
743
747
  'has-placeholder': placeholder !== undefined,
748
+ 'has-focus': hasFocus,
749
+ // TODO(FW-6451): Remove `ion-focusable` class in favor of `has-focus`.
744
750
  'ion-focusable': true,
745
751
  [`select-${rtl}`]: true,
746
752
  [`select-fill-${fill}`]: fill !== undefined,
747
753
  [`select-justify-${justify}`]: justifyEnabled,
748
754
  [`select-shape-${shape}`]: shape !== undefined,
749
755
  [`select-label-placement-${labelPlacement}`]: true,
750
- }) }, h("label", { key: 'fde3cdfd0ef7d1a20263e35ff4358ee7f61a789f', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '6fb8deedc827b6be2f19f9e57a62efefaaba200f', class: "select-wrapper-inner" }, h("slot", { key: 'a57a204ea1cbd9c4bac338f14e196e780dab0a10', name: "start" }), h("div", { key: '78b83e1484a446537e038527d539d997e330cd69', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '9fc660134e5247c4e5243c7d9d71ac6cec08705d', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '7f143285efa7fd7756dfdc5517ca33e84c8a027e', class: "select-highlight" })), this.renderBottomContent()));
756
+ }) }, h("label", { key: 'f030b6bd329f8014c7227f5e5f1aeb7efa0e641a', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '7480e1b40d09e53a2942295d6c9dae474c9de810', class: "select-wrapper-inner" }, h("slot", { key: '250fd2ff08b3e6ed04c7062455a044863481fe1c', name: "start" }), h("div", { key: '11b73ad5b7decfe2d307f9d54293c21c0df3ddb8', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'ddedafc89061372567bd46354ef972f08c60e19d', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '792ce27aea18a0020c17dceb0f0e293171ded3a3', class: "select-highlight" })), this.renderBottomContent()));
751
757
  }
752
758
  static get is() { return "ion-select"; }
753
759
  static get encapsulation() { return "shadow"; }
@@ -1170,7 +1176,8 @@ export class Select {
1170
1176
  }
1171
1177
  static get states() {
1172
1178
  return {
1173
- "isExpanded": {}
1179
+ "isExpanded": {},
1180
+ "hasFocus": {}
1174
1181
  };
1175
1182
  }
1176
1183
  static get events() {
@@ -126,7 +126,7 @@
126
126
  pointer-events: none;
127
127
  }
128
128
 
129
- :host(.ion-focused) button {
129
+ :host(.has-focus) button {
130
130
  border: 2px solid #5e9ed6;
131
131
  }
132
132
 
@@ -329,7 +329,9 @@ button {
329
329
  * highlight when the select is blurred.
330
330
  */
331
331
  :host(.has-focus.ion-valid),
332
- :host(.ion-touched.ion-invalid) {
332
+ :host(.select-expanded.ion-valid),
333
+ :host(.ion-touched.ion-invalid),
334
+ :host(.select-expanded.ion-touched.ion-invalid) {
333
335
  --border-color: var(--highlight-color);
334
336
  }
335
337
 
@@ -596,7 +598,7 @@ button {
596
598
  * :host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder
597
599
  */
598
600
  :host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,
599
- :host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,
601
+ :host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,
600
602
  :host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder {
601
603
  opacity: 1;
602
604
  }
@@ -820,6 +822,7 @@ button {
820
822
  * If the select has a validity state, the
821
823
  * border should reflect that as a color.
822
824
  */
825
+ :host(.select-expanded.select-fill-solid.ion-valid),
823
826
  :host(.has-focus.select-fill-solid.ion-valid),
824
827
  :host(.select-fill-solid.ion-touched.ion-invalid) {
825
828
  --border-color: var(--highlight-color);
@@ -848,9 +851,9 @@ button {
848
851
  * much darker on focus.
849
852
  */
850
853
  :host(.select-fill-solid.select-expanded),
851
- :host(.select-fill-solid.ion-focused) {
854
+ :host(.select-fill-solid.has-focus) {
852
855
  --background: var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));
853
- --border-color: var(--ion-color-step-750, var(--ion-background-color-step-750, #404040));
856
+ --border-color: var(--highlight-color);
854
857
  }
855
858
 
856
859
  :host(.select-fill-solid) .select-wrapper {
@@ -872,6 +875,18 @@ button {
872
875
  max-width: calc(100% / 0.75);
873
876
  }
874
877
 
878
+ /**
879
+ * When the select has a solid fill and
880
+ * in an item, then the icon should
881
+ * take on the highlight color.
882
+ */
883
+ :host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,
884
+ :host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,
885
+ :host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,
886
+ :host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon {
887
+ color: var(--highlight-color);
888
+ }
889
+
875
890
  /**
876
891
  * Convert a font size to a dynamic font size.
877
892
  * Fonts that participate in Dynamic Type should use
@@ -965,7 +980,7 @@ button {
965
980
  * the select is focused.
966
981
  */
967
982
  :host(.select-fill-outline.select-expanded),
968
- :host(.select-fill-outline.ion-focused) {
983
+ :host(.select-fill-outline.has-focus) {
969
984
  --border-width: var(--highlight-height);
970
985
  --border-color: var(--highlight-color);
971
986
  }
@@ -1167,27 +1182,33 @@ button {
1167
1182
  border-top: none;
1168
1183
  }
1169
1184
 
1185
+ /**
1186
+ * When the select has an outline fill and
1187
+ * in an item, then the icon should
1188
+ * take on the highlight color.
1189
+ */
1190
+ :host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,
1191
+ :host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,
1192
+ :host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,
1193
+ :host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon {
1194
+ color: var(--highlight-color);
1195
+ }
1196
+
1170
1197
  :host {
1171
1198
  --border-width: 1px;
1172
1199
  --border-color: var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));
1173
1200
  --highlight-height: 2px;
1174
1201
  }
1175
1202
 
1176
- .select-icon {
1177
- width: 0.8125rem;
1178
- transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
1179
- color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
1180
- }
1181
-
1182
1203
  /**
1183
1204
  * When the select is focused the label should
1184
1205
  * take on the highlight color. This should
1185
1206
  * only apply to floating or stacked labels.
1186
1207
  */
1187
1208
  :host(.select-label-placement-floating.select-expanded) .label-text-wrapper,
1188
- :host(.select-label-placement-floating.ion-focused) .label-text-wrapper,
1209
+ :host(.select-label-placement-floating.has-focus) .label-text-wrapper,
1189
1210
  :host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,
1190
- :host(.select-label-placement-stacked.ion-focused) .label-text-wrapper {
1211
+ :host(.select-label-placement-stacked.has-focus) .label-text-wrapper {
1191
1212
  color: var(--highlight-color);
1192
1213
  }
1193
1214
 
@@ -1212,7 +1233,7 @@ button {
1212
1233
  }
1213
1234
 
1214
1235
  :host(.select-expanded) .select-highlight,
1215
- :host(.ion-focused) .select-highlight {
1236
+ :host(.has-focus) .select-highlight {
1216
1237
  transform: scale(1);
1217
1238
  }
1218
1239
 
@@ -1228,6 +1249,12 @@ button {
1228
1249
  inset-inline-start: 0;
1229
1250
  }
1230
1251
 
1252
+ .select-icon {
1253
+ width: 0.8125rem;
1254
+ transition: transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);
1255
+ color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
1256
+ }
1257
+
1231
1258
  /**
1232
1259
  * This rotates the chevron icon
1233
1260
  * when the select is activated.
@@ -1237,6 +1264,18 @@ button {
1237
1264
  transform: rotate(180deg);
1238
1265
  }
1239
1266
 
1267
+ /**
1268
+ * When the select has no fill and
1269
+ * in an item, then the icon should
1270
+ * be the same color as the text color.
1271
+ */
1272
+ :host(.in-item.select-expanded) .select-wrapper .select-icon,
1273
+ :host(.in-item.has-focus) .select-wrapper .select-icon,
1274
+ :host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,
1275
+ :host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon {
1276
+ color: var(--ion-color-step-500, var(--ion-text-color-step-500, gray));
1277
+ }
1278
+
1240
1279
  /**
1241
1280
  * When the select is focused the icon should
1242
1281
  * take on the highlight color.
@@ -1246,7 +1285,7 @@ button {
1246
1285
  :host(.select-expanded) .select-wrapper .select-icon,
1247
1286
  :host(.has-focus.ion-valid) .select-wrapper .select-icon,
1248
1287
  :host(.ion-touched.ion-invalid) .select-wrapper .select-icon,
1249
- :host(.ion-focused) .select-wrapper .select-icon {
1288
+ :host(.has-focus) .select-wrapper .select-icon {
1250
1289
  color: var(--highlight-color);
1251
1290
  }
1252
1291
 
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
+ import { printIonWarning } from "../../utils/logging/index";
5
6
  import { getIonMode } from "../../global/ionic-global";
6
7
  // TODO(FW-2832): types
7
8
  const SPLIT_PANE_MAIN = 'split-pane-main';
@@ -103,7 +104,7 @@ export class SplitPane {
103
104
  const isMain = contentId !== undefined && child.id === contentId;
104
105
  if (isMain) {
105
106
  if (foundMain) {
106
- console.warn('split pane cannot have more than one main node');
107
+ printIonWarning('[ion-split-pane] - Cannot have more than one main node.');
107
108
  return;
108
109
  }
109
110
  else {
@@ -113,17 +114,17 @@ export class SplitPane {
113
114
  }
114
115
  }
115
116
  if (!foundMain) {
116
- console.warn('split pane does not have a specified main node');
117
+ printIonWarning('[ion-split-pane] - Does not have a specified main node.');
117
118
  }
118
119
  }
119
120
  render() {
120
121
  const mode = getIonMode(this);
121
- return (h(Host, { key: '76be70d7fbebc52646a5851f47accc1006615b85', class: {
122
+ return (h(Host, { key: '098801b5a318e2fc6913fb0d9079b1552927b99b', class: {
122
123
  [mode]: true,
123
124
  // Used internally for styling
124
125
  [`split-pane-${mode}`]: true,
125
126
  'split-pane-visible': this.visible,
126
- } }, h("slot", { key: '9a859530f4fb18aff43255bc3940feb9aca625d7' })));
127
+ } }, h("slot", { key: '8cbc6a942ecba54fc3c62027d46917db067b65c8' })));
127
128
  }
128
129
  static get is() { return "ion-split-pane"; }
129
130
  static get encapsulation() { return "shadow"; }
@@ -3,6 +3,7 @@
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
5
  import { attachComponent } from "../../utils/framework-delegate";
6
+ import { printIonError } from "../../utils/logging/index";
6
7
  export class Tab {
7
8
  constructor() {
8
9
  this.loaded = false;
@@ -14,7 +15,7 @@ export class Tab {
14
15
  async componentWillLoad() {
15
16
  if (Build.isDev) {
16
17
  if (this.component !== undefined && this.el.childElementCount > 0) {
17
- console.error('You can not use a lazy-loaded component in a tab and inlined content at the same time.' +
18
+ printIonError('[ion-tab] - You can not use a lazy-loaded component in a tab and inlined content at the same time.' +
18
19
  `- Remove the component attribute in: <ion-tab component="${this.component}">` +
19
20
  ` or` +
20
21
  `- Remove the embedded content inside the ion-tab: <ion-tab></ion-tab>`);
@@ -41,17 +42,17 @@ export class Tab {
41
42
  return attachComponent(this.delegate, this.el, this.component, ['ion-page']);
42
43
  }
43
44
  catch (e) {
44
- console.error(e);
45
+ printIonError('[ion-tab] - Exception in prepareLazyLoaded:', e);
45
46
  }
46
47
  }
47
48
  return Promise.resolve(undefined);
48
49
  }
49
50
  render() {
50
51
  const { tab, active, component } = this;
51
- return (h(Host, { key: '2107ece2f1ebdf748bac8adb78a9ad67e7fc9057', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
52
+ return (h(Host, { key: 'c36c113e74e12b58459df9e3b546ad4856187e90', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
52
53
  'ion-page': component === undefined,
53
54
  'tab-hidden': !active,
54
- } }, h("slot", { key: 'b4a1bc1aa79f6b82b8f77b544bcb74e65229b541' })));
55
+ } }, h("slot", { key: '0d7821dac70ba7a12edfb3331988f3df1566cc1a' })));
55
56
  }
56
57
  static get is() { return "ion-tab"; }
57
58
  static get encapsulation() { return "shadow"; }
@@ -2,6 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
+ import { printIonError } from "../../utils/logging/index";
5
6
  /**
6
7
  * @slot - Content is placed between the named slots if provided without a slot.
7
8
  * @slot top - Content is placed at the top of the screen.
@@ -145,7 +146,7 @@ export class Tabs {
145
146
  return Array.from(this.el.querySelectorAll('ion-tab'));
146
147
  }
147
148
  render() {
148
- return (h(Host, { key: 'd357c4607cfc89fb88404fe12ea7ef5b397fe6bf', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '18661896589a4ab3c74164f448b928abec9b4db0', name: "top" }), h("div", { key: '3bf30ea2540a196e868a78a861824b4b5d933afd', class: "tabs-inner" }, h("slot", { key: '7cfc154d4d6c1642188ab6508a6be72c8234585e' })), h("slot", { key: '8057679c959195cbdfae156b8ae0cbfd978c5037', name: "bottom" })));
149
+ return (h(Host, { key: '20b97196d78c1b3f3faf31618a8a2347e087f06b', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: 'b0823fbae6e47743cfd12c376b365ad7e32cec7c', name: "top" }), h("div", { key: 'eaffd7e4d69ab9489a387e3bbb36e3bab72203a0', class: "tabs-inner" }, h("slot", { key: '20bb66a2937e3ec473aa59c4075ce581b5411677' })), h("slot", { key: '1529dd361f050f52074f51c73b3982ba827dc3a5', name: "bottom" })));
149
150
  }
150
151
  static get is() { return "ion-tabs"; }
151
152
  static get encapsulation() { return "shadow"; }
@@ -376,7 +377,7 @@ export class Tabs {
376
377
  const getTab = (tabs, tab) => {
377
378
  const tabEl = typeof tab === 'string' ? tabs.find((t) => t.tab === tab) : tab;
378
379
  if (!tabEl) {
379
- console.error(`tab with id: "${tabEl}" does not exist`);
380
+ printIonError(`[ion-tabs] - Tab with id: "${tabEl}" does not exist`);
380
381
  }
381
382
  return tabEl;
382
383
  };