@ionic/core 8.4.2-dev.11740495088.1d73faf5 → 8.4.2-dev.11741359058.1ab81f3d

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 (524) hide show
  1. package/components/focus-visible.js +16 -1
  2. package/components/helpers.js +39 -1
  3. package/components/ion-app.js +9 -4
  4. package/components/ion-avatar.js +3 -3
  5. package/components/ion-badge.js +9 -6
  6. package/components/ion-searchbar.js +37 -5
  7. package/dist/cjs/{animation-58015a44.js → animation-2a0332b1.js} +1 -1
  8. package/dist/cjs/{app-globals-d64148d3.js → app-globals-4578d70b.js} +1 -1
  9. package/dist/cjs/{button-active-ec1fd1d8.js → button-active-ba88bc3f.js} +1 -1
  10. package/dist/cjs/{capacitor-454dd071.js → capacitor-ca383c28.js} +1 -1
  11. package/dist/cjs/{data-5a4013f1.js → data-03effdb6.js} +1 -1
  12. package/dist/cjs/{focus-visible-9aa87fa3.js → focus-visible-fe3acfb5.js} +16 -0
  13. package/dist/cjs/{framework-delegate-32f1a0e4.js → framework-delegate-709f0e46.js} +1 -1
  14. package/dist/cjs/{haptic-7c25be74.js → haptic-adbf56c4.js} +1 -1
  15. package/dist/cjs/{helpers-4e2936d2.js → helpers-7ae114be.js} +39 -1
  16. package/dist/cjs/{index-03fbee1d.js → index-334da068.js} +3 -3
  17. package/dist/cjs/{index-0e0c6196.js → index-a05f157b.js} +3 -2
  18. package/dist/cjs/{index-604c36ae.js → index-b980fd83.js} +2 -2
  19. package/dist/cjs/{index-8f975cf4.js → index-e28c2cc7.js} +4 -4
  20. package/dist/cjs/index.cjs.js +10 -9
  21. package/dist/cjs/{input-shims-4b4d2251.js → input-shims-41e05551.js} +6 -5
  22. package/dist/cjs/{input.utils-fb1debe4.js → input.utils-01401fa8.js} +2 -2
  23. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -2
  24. package/dist/cjs/ion-action-sheet.cjs.entry.js +9 -8
  25. package/dist/cjs/ion-alert.cjs.entry.js +9 -8
  26. package/dist/cjs/ion-app_8.cjs.entry.js +18 -13
  27. package/dist/cjs/ion-avatar_3.cjs.entry.js +11 -9
  28. package/dist/cjs/ion-back-button.cjs.entry.js +3 -2
  29. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -2
  31. package/dist/cjs/ion-button_2.cjs.entry.js +3 -2
  32. package/dist/cjs/ion-card_5.cjs.entry.js +3 -2
  33. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -2
  34. package/dist/cjs/ion-chip.cjs.entry.js +1 -1
  35. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  36. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -3
  37. package/dist/cjs/ion-datetime_3.cjs.entry.js +9 -9
  38. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -2
  39. package/dist/cjs/ion-img.cjs.entry.js +3 -2
  40. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -3
  41. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
  42. package/dist/cjs/ion-input.cjs.entry.js +5 -4
  43. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -3
  44. package/dist/cjs/ion-item_8.cjs.entry.js +3 -2
  45. package/dist/cjs/ion-loading.cjs.entry.js +6 -5
  46. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -6
  47. package/dist/cjs/ion-modal.cjs.entry.js +11 -10
  48. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -5
  49. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -2
  50. package/dist/cjs/ion-picker-column.cjs.entry.js +5 -4
  51. package/dist/cjs/ion-picker.cjs.entry.js +2 -1
  52. package/dist/cjs/ion-popover.cjs.entry.js +7 -6
  53. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -2
  54. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -2
  55. package/dist/cjs/ion-range.cjs.entry.js +4 -3
  56. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -6
  57. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -5
  58. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-route_4.cjs.entry.js +3 -2
  60. package/dist/cjs/ion-searchbar.cjs.entry.js +38 -7
  61. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -2
  62. package/dist/cjs/ion-select-modal.cjs.entry.js +5 -4
  63. package/dist/cjs/ion-select_3.cjs.entry.js +6 -5
  64. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  65. package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
  66. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -5
  67. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -2
  68. package/dist/cjs/ion-text.cjs.entry.js +1 -1
  69. package/dist/cjs/ion-textarea.cjs.entry.js +5 -4
  70. package/dist/cjs/ion-toast.cjs.entry.js +6 -5
  71. package/dist/cjs/ion-toggle.cjs.entry.js +5 -4
  72. package/dist/cjs/{ionic-global-14af9c21.js → ionic-global-309eea24.js} +5 -5
  73. package/dist/cjs/ionic.cjs.js +3 -3
  74. package/dist/cjs/{ios.transition-2bb0f7d5.js → ios.transition-433559be.js} +5 -4
  75. package/dist/cjs/{keyboard-0a5d46dd.js → keyboard-2465fd71.js} +3 -3
  76. package/dist/cjs/{keyboard-53c12a15.js → keyboard-b0d97d7f.js} +1 -1
  77. package/dist/cjs/{keyboard-controller-102bad3e.js → keyboard-controller-97c0f679.js} +2 -2
  78. package/dist/cjs/loader.cjs.js +3 -3
  79. package/dist/cjs/{md.transition-cf600117.js → md.transition-cb55340c.js} +5 -4
  80. package/dist/cjs/{notch-controller-ea70e230.js → notch-controller-fa2844a9.js} +2 -2
  81. package/dist/cjs/{overlays-542a90b3.js → overlays-2f1007d0.js} +3 -3
  82. package/dist/cjs/{status-tap-aa97d209.js → status-tap-fce5d44e.js} +4 -3
  83. package/dist/cjs/{swipe-back-27975274.js → swipe-back-8b3f8972.js} +2 -1
  84. package/dist/collection/components/app/app.js +14 -6
  85. package/dist/collection/components/avatar/avatar.ionic.css +17 -0
  86. package/dist/collection/components/avatar/avatar.ios.css +1 -0
  87. package/dist/collection/components/avatar/avatar.md.css +9 -0
  88. package/dist/collection/components/badge/badge.ionic.css +66 -2
  89. package/dist/collection/components/badge/badge.ios.css +23 -2
  90. package/dist/collection/components/badge/badge.js +21 -2
  91. package/dist/collection/components/badge/badge.md.css +23 -2
  92. package/dist/collection/components/searchbar/searchbar.ionic.css +146 -36
  93. package/dist/collection/components/searchbar/searchbar.js +68 -4
  94. package/dist/collection/utils/focus-visible.js +15 -0
  95. package/dist/collection/utils/helpers.js +39 -1
  96. package/dist/docs.json +104 -4
  97. package/dist/esm/{animation-f1a88600.js → animation-9425a7de.js} +1 -1
  98. package/dist/esm/{app-globals-eceadabb.js → app-globals-e7b9ec58.js} +1 -1
  99. package/dist/esm/{button-active-321f0dba.js → button-active-3461e57c.js} +1 -1
  100. package/dist/esm/{capacitor-6b0341c8.js → capacitor-74587d3c.js} +1 -1
  101. package/dist/esm/{data-98c06dea.js → data-69fcc43c.js} +1 -1
  102. package/dist/esm/{focus-visible-501aff19.js → focus-visible-6827442c.js} +16 -1
  103. package/dist/esm/{framework-delegate-3e4a8c9f.js → framework-delegate-89969cd9.js} +1 -1
  104. package/dist/esm/{haptic-dd6c0ea9.js → haptic-1f990858.js} +1 -1
  105. package/dist/esm/{helpers-f08d15bd.js → helpers-2891ef8a.js} +39 -1
  106. package/dist/esm/{index-59f81cb8.js → index-01a5c404.js} +4 -4
  107. package/dist/esm/{index-31109e63.js → index-3e251942.js} +3 -3
  108. package/dist/esm/{index-7bd160c2.js → index-784203dc.js} +2 -2
  109. package/dist/esm/{index-62b4a18b.js → index-7d582503.js} +3 -2
  110. package/dist/esm/index.js +10 -9
  111. package/dist/esm/{input-shims-6be83e59.js → input-shims-eb19958d.js} +6 -5
  112. package/dist/esm/{input.utils-67459bae.js → input.utils-021846b8.js} +2 -2
  113. package/dist/esm/ion-accordion_2.entry.js +3 -2
  114. package/dist/esm/ion-action-sheet.entry.js +9 -8
  115. package/dist/esm/ion-alert.entry.js +9 -8
  116. package/dist/esm/ion-app_8.entry.js +18 -13
  117. package/dist/esm/ion-avatar_3.entry.js +11 -9
  118. package/dist/esm/ion-back-button.entry.js +3 -2
  119. package/dist/esm/ion-backdrop.entry.js +1 -1
  120. package/dist/esm/ion-breadcrumb_2.entry.js +3 -2
  121. package/dist/esm/ion-button_2.entry.js +3 -2
  122. package/dist/esm/ion-card_5.entry.js +3 -2
  123. package/dist/esm/ion-checkbox.entry.js +3 -2
  124. package/dist/esm/ion-chip.entry.js +1 -1
  125. package/dist/esm/ion-col_3.entry.js +1 -1
  126. package/dist/esm/ion-datetime-button.entry.js +4 -3
  127. package/dist/esm/ion-datetime_3.entry.js +9 -9
  128. package/dist/esm/ion-fab_3.entry.js +3 -2
  129. package/dist/esm/ion-img.entry.js +3 -2
  130. package/dist/esm/ion-infinite-scroll_2.entry.js +4 -3
  131. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  132. package/dist/esm/ion-input.entry.js +5 -4
  133. package/dist/esm/ion-item-option_3.entry.js +4 -3
  134. package/dist/esm/ion-item_8.entry.js +3 -2
  135. package/dist/esm/ion-loading.entry.js +6 -5
  136. package/dist/esm/ion-menu_3.entry.js +7 -6
  137. package/dist/esm/ion-modal.entry.js +11 -10
  138. package/dist/esm/ion-nav_2.entry.js +6 -5
  139. package/dist/esm/ion-picker-column-option.entry.js +3 -2
  140. package/dist/esm/ion-picker-column.entry.js +5 -4
  141. package/dist/esm/ion-picker.entry.js +2 -1
  142. package/dist/esm/ion-popover.entry.js +7 -6
  143. package/dist/esm/ion-progress-bar.entry.js +3 -2
  144. package/dist/esm/ion-radio_2.entry.js +3 -2
  145. package/dist/esm/ion-range.entry.js +4 -3
  146. package/dist/esm/ion-refresher_2.entry.js +7 -6
  147. package/dist/esm/ion-reorder_2.entry.js +6 -5
  148. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  149. package/dist/esm/ion-route_4.entry.js +3 -2
  150. package/dist/esm/ion-searchbar.entry.js +38 -7
  151. package/dist/esm/ion-segment_2.entry.js +3 -2
  152. package/dist/esm/ion-select-modal.entry.js +5 -4
  153. package/dist/esm/ion-select_3.entry.js +6 -5
  154. package/dist/esm/ion-spinner.entry.js +1 -1
  155. package/dist/esm/ion-split-pane.entry.js +1 -1
  156. package/dist/esm/ion-tab-bar_2.entry.js +6 -5
  157. package/dist/esm/ion-tab_2.entry.js +3 -2
  158. package/dist/esm/ion-text.entry.js +1 -1
  159. package/dist/esm/ion-textarea.entry.js +5 -4
  160. package/dist/esm/ion-toast.entry.js +6 -5
  161. package/dist/esm/ion-toggle.entry.js +5 -4
  162. package/dist/esm/{ionic-global-3c97a4aa.js → ionic-global-483790dd.js} +5 -5
  163. package/dist/esm/ionic.js +3 -3
  164. package/dist/esm/{ios.transition-06b78ea0.js → ios.transition-9da97621.js} +5 -4
  165. package/dist/esm/{keyboard-9bbd546a.js → keyboard-16dbc7a0.js} +1 -1
  166. package/dist/esm/{keyboard-5b1b354d.js → keyboard-a762a3d6.js} +3 -3
  167. package/dist/esm/{keyboard-controller-aff395fd.js → keyboard-controller-ebc0c1a6.js} +2 -2
  168. package/dist/esm/loader.js +3 -3
  169. package/dist/esm/{md.transition-e5712bda.js → md.transition-9d6d778a.js} +5 -4
  170. package/dist/esm/{notch-controller-c0bd22ff.js → notch-controller-ab0c0e81.js} +2 -2
  171. package/dist/esm/{overlays-66cb5522.js → overlays-e1400470.js} +3 -3
  172. package/dist/esm/{status-tap-edf9f395.js → status-tap-e7f5aa77.js} +4 -3
  173. package/dist/esm/{swipe-back-17c42610.js → swipe-back-e12c482f.js} +2 -1
  174. package/dist/esm-es5/{animation-f1a88600.js → animation-9425a7de.js} +1 -1
  175. package/dist/esm-es5/app-globals-e7b9ec58.js +4 -0
  176. package/dist/esm-es5/{button-active-321f0dba.js → button-active-3461e57c.js} +1 -1
  177. package/dist/esm-es5/{capacitor-6b0341c8.js → capacitor-74587d3c.js} +1 -1
  178. package/dist/esm-es5/{data-98c06dea.js → data-69fcc43c.js} +1 -1
  179. package/dist/esm-es5/focus-visible-6827442c.js +4 -0
  180. package/dist/esm-es5/{framework-delegate-3e4a8c9f.js → framework-delegate-89969cd9.js} +1 -1
  181. package/dist/esm-es5/{haptic-dd6c0ea9.js → haptic-1f990858.js} +1 -1
  182. package/dist/esm-es5/helpers-2891ef8a.js +4 -0
  183. package/dist/esm-es5/{index-59f81cb8.js → index-01a5c404.js} +1 -1
  184. package/dist/esm-es5/{index-31109e63.js → index-3e251942.js} +1 -1
  185. package/dist/esm-es5/{index-7bd160c2.js → index-784203dc.js} +1 -1
  186. package/dist/esm-es5/index-7d582503.js +4 -0
  187. package/dist/esm-es5/index.js +1 -1
  188. package/dist/esm-es5/input-shims-eb19958d.js +4 -0
  189. package/dist/esm-es5/{input.utils-67459bae.js → input.utils-021846b8.js} +1 -1
  190. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  191. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  192. package/dist/esm-es5/ion-alert.entry.js +1 -1
  193. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  194. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  195. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  196. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  197. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  198. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  199. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  200. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  201. package/dist/esm-es5/ion-chip.entry.js +1 -1
  202. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  203. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  204. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  205. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  206. package/dist/esm-es5/ion-img.entry.js +1 -1
  207. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  208. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  209. package/dist/esm-es5/ion-input.entry.js +1 -1
  210. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  211. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  212. package/dist/esm-es5/ion-loading.entry.js +1 -1
  213. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  214. package/dist/esm-es5/ion-modal.entry.js +1 -1
  215. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  216. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  217. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  218. package/dist/esm-es5/ion-picker.entry.js +1 -1
  219. package/dist/esm-es5/ion-popover.entry.js +1 -1
  220. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  221. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  222. package/dist/esm-es5/ion-range.entry.js +1 -1
  223. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  224. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  225. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  226. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  227. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  228. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  229. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  230. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  231. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  232. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  233. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  234. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  235. package/dist/esm-es5/ion-text.entry.js +1 -1
  236. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  237. package/dist/esm-es5/ion-toast.entry.js +1 -1
  238. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  239. package/dist/esm-es5/{ionic-global-3c97a4aa.js → ionic-global-483790dd.js} +1 -1
  240. package/dist/esm-es5/ionic.js +1 -1
  241. package/dist/esm-es5/ios.transition-9da97621.js +4 -0
  242. package/dist/esm-es5/{keyboard-9bbd546a.js → keyboard-16dbc7a0.js} +1 -1
  243. package/dist/esm-es5/{keyboard-5b1b354d.js → keyboard-a762a3d6.js} +1 -1
  244. package/dist/esm-es5/{keyboard-controller-aff395fd.js → keyboard-controller-ebc0c1a6.js} +1 -1
  245. package/dist/esm-es5/loader.js +1 -1
  246. package/dist/esm-es5/md.transition-9d6d778a.js +4 -0
  247. package/dist/esm-es5/{notch-controller-c0bd22ff.js → notch-controller-ab0c0e81.js} +1 -1
  248. package/dist/esm-es5/{overlays-66cb5522.js → overlays-e1400470.js} +1 -1
  249. package/dist/esm-es5/status-tap-e7f5aa77.js +4 -0
  250. package/dist/esm-es5/swipe-back-e12c482f.js +4 -0
  251. package/dist/html.html-data.json +42 -0
  252. package/dist/ionic/index.esm.js +1 -1
  253. package/dist/ionic/ionic.esm.js +1 -1
  254. package/dist/ionic/ionic.js +1 -1
  255. package/dist/ionic/p-01b359c9.entry.js +4 -0
  256. package/dist/ionic/{p-11266916.js → p-035fb5a0.js} +1 -1
  257. package/dist/ionic/{p-815f649a.system.entry.js → p-0390f622.system.entry.js} +1 -1
  258. package/dist/ionic/p-03df1462.entry.js +4 -0
  259. package/dist/ionic/p-05b69c23.system.entry.js +4 -0
  260. package/dist/ionic/p-063fb017.system.entry.js +4 -0
  261. package/dist/ionic/p-08174a05.system.entry.js +4 -0
  262. package/dist/ionic/p-086cdee7.entry.js +4 -0
  263. package/dist/ionic/p-0986712d.system.entry.js +4 -0
  264. package/dist/ionic/p-0c579259.system.entry.js +4 -0
  265. package/dist/ionic/{p-94816e7a.system.js → p-10c4f43c.system.js} +1 -1
  266. package/dist/ionic/p-128c9da8.entry.js +4 -0
  267. package/dist/ionic/p-1581ba44.js +4 -0
  268. package/dist/ionic/{p-3ce95a91.entry.js → p-1d15aa94.entry.js} +1 -1
  269. package/dist/ionic/{p-46787abb.system.js → p-1fd5c378.system.js} +1 -1
  270. package/dist/ionic/p-200b21b9.system.entry.js +4 -0
  271. package/dist/ionic/{p-72cbf799.system.entry.js → p-215c5ddb.system.entry.js} +1 -1
  272. package/dist/ionic/p-2364fade.entry.js +4 -0
  273. package/dist/ionic/{p-18f86177.system.js → p-268b6353.system.js} +1 -1
  274. package/dist/ionic/{p-be87ec25.entry.js → p-2779ce56.entry.js} +1 -1
  275. package/dist/ionic/p-284a0c63.entry.js +4 -0
  276. package/dist/ionic/p-297fcc18.system.entry.js +4 -0
  277. package/dist/ionic/p-29bc5069.entry.js +4 -0
  278. package/dist/ionic/{p-09c6b5e4.js → p-2ca20c1c.js} +1 -1
  279. package/dist/ionic/p-2ce11d2f.entry.js +4 -0
  280. package/dist/ionic/{p-12d6df53.js → p-2d9e2af4.js} +1 -1
  281. package/dist/ionic/p-309ddef5.system.js +4 -0
  282. package/dist/ionic/p-3198161b.entry.js +4 -0
  283. package/dist/ionic/p-31e267ab.entry.js +4 -0
  284. package/dist/ionic/p-343906be.entry.js +4 -0
  285. package/dist/ionic/p-38700ea8.entry.js +4 -0
  286. package/dist/ionic/p-3ca5d573.system.entry.js +4 -0
  287. package/dist/ionic/{p-29ca4da2.entry.js → p-402ffd31.entry.js} +1 -1
  288. package/dist/ionic/p-43902855.entry.js +4 -0
  289. package/dist/ionic/{p-b9d2d554.entry.js → p-453bd903.entry.js} +1 -1
  290. package/dist/ionic/p-45d8fe77.system.js +4 -0
  291. package/dist/ionic/{p-3e974fe2.entry.js → p-478723ce.entry.js} +1 -1
  292. package/dist/ionic/p-47acf6b1.system.entry.js +4 -0
  293. package/dist/ionic/p-49f0023f.entry.js +4 -0
  294. package/dist/ionic/p-4bccba08.js +4 -0
  295. package/dist/ionic/p-4c0b6220.system.entry.js +4 -0
  296. package/dist/ionic/p-4cbe0257.js +4 -0
  297. package/dist/ionic/p-5345fc46.entry.js +4 -0
  298. package/dist/ionic/p-537407c2.system.js +4 -0
  299. package/dist/ionic/{p-728f5b22.system.js → p-54030163.system.js} +1 -1
  300. package/dist/ionic/p-54da2dd3.system.entry.js +4 -0
  301. package/dist/ionic/p-583f0c5f.js +4 -0
  302. package/dist/ionic/p-59f088ef.js +4 -0
  303. package/dist/ionic/p-5b4aaa87.js +4 -0
  304. package/dist/ionic/p-5dd7815f.system.entry.js +4 -0
  305. package/dist/ionic/{p-f8c63ac0.system.js → p-5f413457.system.js} +2 -2
  306. package/dist/ionic/p-5fead11d.system.entry.js +4 -0
  307. package/dist/ionic/p-60f547a8.entry.js +4 -0
  308. package/dist/ionic/p-6453d7e2.js +4 -0
  309. package/dist/ionic/p-648eac1a.system.entry.js +4 -0
  310. package/dist/ionic/p-695c2cbd.entry.js +4 -0
  311. package/dist/ionic/p-6b5c8c61.system.js +4 -0
  312. package/dist/ionic/{p-74d76684.js → p-6d80bd6d.js} +1 -1
  313. package/dist/ionic/{p-3e91ea3a.system.js → p-6e26cf64.system.js} +2 -2
  314. package/dist/ionic/p-71523065.entry.js +4 -0
  315. package/dist/ionic/p-75d056d0.system.entry.js +4 -0
  316. package/dist/ionic/p-77d57dc2.system.entry.js +4 -0
  317. package/dist/ionic/{p-89947721.system.entry.js → p-7917710f.system.entry.js} +1 -1
  318. package/dist/ionic/p-795787f2.entry.js +4 -0
  319. package/dist/ionic/p-7a81f98e.entry.js +4 -0
  320. package/dist/ionic/p-7bc994fd.js +4 -0
  321. package/dist/ionic/p-7cfe6f4a.entry.js +4 -0
  322. package/dist/ionic/{p-cea92c46.system.js → p-7f143abf.system.js} +1 -1
  323. package/dist/ionic/{p-dbd39afd.system.js → p-7fd5a3d3.system.js} +1 -1
  324. package/dist/ionic/p-836fb660.entry.js +4 -0
  325. package/dist/ionic/p-83cb6a20.system.entry.js +4 -0
  326. package/dist/ionic/p-86521979.system.entry.js +4 -0
  327. package/dist/ionic/p-87281fc9.system.js +4 -0
  328. package/dist/ionic/{p-4c275462.js → p-872be13b.js} +1 -1
  329. package/dist/ionic/p-886ff0f8.system.entry.js +4 -0
  330. package/dist/ionic/p-89ad4473.js +4 -0
  331. package/dist/ionic/p-8a8e843c.system.entry.js +4 -0
  332. package/dist/ionic/p-910e6371.entry.js +4 -0
  333. package/dist/ionic/p-9355dcb4.system.entry.js +4 -0
  334. package/dist/ionic/{p-3d61263b.system.entry.js → p-9685fe95.system.entry.js} +1 -1
  335. package/dist/ionic/{p-58aa8a36.system.js → p-97c801b9.system.js} +1 -1
  336. package/dist/ionic/{p-f25ad420.system.entry.js → p-97cc477f.system.entry.js} +1 -1
  337. package/dist/ionic/p-986dd0b7.entry.js +4 -0
  338. package/dist/ionic/p-99227d83.system.entry.js +4 -0
  339. package/dist/ionic/{p-86d98446.system.entry.js → p-99d106bd.system.entry.js} +1 -1
  340. package/dist/ionic/p-9a7c6bf9.system.js +4 -0
  341. package/dist/ionic/p-9cd19610.system.entry.js +4 -0
  342. package/dist/ionic/p-9f9a666d.system.js +4 -0
  343. package/dist/ionic/p-a0879901.system.js +4 -0
  344. package/dist/ionic/p-a09bf565.entry.js +4 -0
  345. package/dist/ionic/{p-a1cdc742.js → p-a5a91cba.js} +1 -1
  346. package/dist/ionic/p-a66016cd.system.entry.js +4 -0
  347. package/dist/ionic/p-a6ad7cc9.entry.js +4 -0
  348. package/dist/ionic/{p-93e47936.js → p-a6e62d2b.js} +1 -1
  349. package/dist/ionic/p-a78181cc.system.entry.js +4 -0
  350. package/dist/ionic/p-a7e1bd93.entry.js +4 -0
  351. package/dist/ionic/p-a8c55b8a.entry.js +4 -0
  352. package/dist/ionic/p-aaacc929.system.entry.js +4 -0
  353. package/dist/ionic/p-ac558084.entry.js +4 -0
  354. package/dist/ionic/{p-47fd935c.system.js → p-ae21baa6.system.js} +2 -2
  355. package/dist/ionic/p-af321c18.entry.js +4 -0
  356. package/dist/ionic/p-af69da90.entry.js +4 -0
  357. package/dist/ionic/p-b13db3c9.system.entry.js +4 -0
  358. package/dist/ionic/p-b1914bba.system.entry.js +4 -0
  359. package/dist/ionic/{p-a510e9c0.js → p-b1a9e1ce.js} +1 -1
  360. package/dist/ionic/{p-f116fb3f.system.js → p-b30830bd.system.js} +1 -1
  361. package/dist/ionic/{p-1efa63f2.js → p-b447afc8.js} +1 -1
  362. package/dist/ionic/{p-ac1c2b6a.js → p-b45244a2.js} +1 -1
  363. package/dist/ionic/{p-63fde7fe.entry.js → p-b4b60b97.entry.js} +1 -1
  364. package/dist/ionic/p-b5348f8f.system.js +4 -0
  365. package/dist/ionic/p-b6f00169.system.entry.js +4 -0
  366. package/dist/ionic/p-b6f44863.system.js +4 -0
  367. package/dist/ionic/p-b812ce8d.entry.js +4 -0
  368. package/dist/ionic/{p-62887754.system.js → p-b892d7e3.system.js} +1 -1
  369. package/dist/ionic/{p-a2814291.system.js → p-bbc9d5aa.system.js} +1 -1
  370. package/dist/ionic/p-bcb255e3.system.entry.js +4 -0
  371. package/dist/ionic/p-bea37cc1.system.entry.js +4 -0
  372. package/dist/ionic/p-c0a8a8b6.system.entry.js +4 -0
  373. package/dist/ionic/{p-9ed87d1b.js → p-c1c637d2.js} +1 -1
  374. package/dist/ionic/p-c48a6425.system.entry.js +4 -0
  375. package/dist/ionic/{p-8463212e.js → p-c4cf7721.js} +1 -1
  376. package/dist/ionic/p-c7aa652c.entry.js +4 -0
  377. package/dist/ionic/{p-f193945e.system.js → p-cdbb6875.system.js} +1 -1
  378. package/dist/ionic/{p-a538ab98.js → p-d61bbbec.js} +1 -1
  379. package/dist/ionic/p-d683e61f.system.entry.js +4 -0
  380. package/dist/ionic/p-d7e43c62.system.entry.js +4 -0
  381. package/dist/ionic/{p-84667060.entry.js → p-d8005cef.entry.js} +1 -1
  382. package/dist/ionic/{p-18892506.entry.js → p-d854fb32.entry.js} +1 -1
  383. package/dist/ionic/{p-986855d6.js → p-d91c085a.js} +1 -1
  384. package/dist/ionic/{p-5684893b.system.entry.js → p-da89b9bd.system.entry.js} +2 -2
  385. package/dist/ionic/p-dbb23cfa.entry.js +4 -0
  386. package/dist/ionic/p-dcbbd7bb.entry.js +4 -0
  387. package/dist/ionic/p-e5bffd6f.system.entry.js +4 -0
  388. package/dist/ionic/p-e6430e45.entry.js +4 -0
  389. package/dist/ionic/{p-556778bd.system.js → p-e832ef1e.system.js} +1 -1
  390. package/dist/ionic/{p-4626fb32.system.js → p-e97ceed8.system.js} +1 -1
  391. package/dist/ionic/p-e9c36e22.system.entry.js +4 -0
  392. package/dist/ionic/p-ece9123f.entry.js +4 -0
  393. package/dist/ionic/{p-822e47a9.system.js → p-efa05ed2.system.js} +1 -1
  394. package/dist/ionic/{p-5a6d245d.system.entry.js → p-f2b7dad7.system.entry.js} +1 -1
  395. package/dist/ionic/p-f2f33ab4.system.entry.js +4 -0
  396. package/dist/ionic/p-f3508be6.js +4 -0
  397. package/dist/ionic/{p-fad81132.system.entry.js → p-f3d7cf9a.system.entry.js} +1 -1
  398. package/dist/ionic/p-f52959de.js +4 -0
  399. package/dist/ionic/p-fa34bf0c.system.entry.js +4 -0
  400. package/dist/ionic/p-fa5a0d2e.system.entry.js +4 -0
  401. package/dist/ionic/p-fa5dc348.entry.js +4 -0
  402. package/dist/ionic/p-fac055ef.entry.js +4 -0
  403. package/dist/ionic/p-fb559858.entry.js +4 -0
  404. package/dist/ionic/p-fe76a062.entry.js +4 -0
  405. package/dist/types/components/app/app.d.ts +2 -0
  406. package/dist/types/components/badge/badge.d.ts +5 -0
  407. package/dist/types/components/searchbar/searchbar.d.ts +17 -0
  408. package/dist/types/components.d.ts +25 -0
  409. package/dist/types/utils/focus-visible.d.ts +12 -0
  410. package/dist/types/utils/helpers.d.ts +11 -0
  411. package/hydrate/index.js +188 -96
  412. package/hydrate/index.mjs +188 -96
  413. package/package.json +1 -1
  414. package/dist/esm-es5/app-globals-eceadabb.js +0 -4
  415. package/dist/esm-es5/focus-visible-501aff19.js +0 -4
  416. package/dist/esm-es5/helpers-f08d15bd.js +0 -4
  417. package/dist/esm-es5/index-62b4a18b.js +0 -4
  418. package/dist/esm-es5/input-shims-6be83e59.js +0 -4
  419. package/dist/esm-es5/ios.transition-06b78ea0.js +0 -4
  420. package/dist/esm-es5/md.transition-e5712bda.js +0 -4
  421. package/dist/esm-es5/status-tap-edf9f395.js +0 -4
  422. package/dist/esm-es5/swipe-back-17c42610.js +0 -4
  423. package/dist/ionic/p-01451762.entry.js +0 -4
  424. package/dist/ionic/p-038a6294.js +0 -4
  425. package/dist/ionic/p-06f2f110.system.entry.js +0 -4
  426. package/dist/ionic/p-09125f4f.entry.js +0 -4
  427. package/dist/ionic/p-096e5f6d.system.entry.js +0 -4
  428. package/dist/ionic/p-0a0ce78f.system.entry.js +0 -4
  429. package/dist/ionic/p-0db90e9b.entry.js +0 -4
  430. package/dist/ionic/p-101ccd60.system.entry.js +0 -4
  431. package/dist/ionic/p-112120d7.system.js +0 -4
  432. package/dist/ionic/p-12337305.system.entry.js +0 -4
  433. package/dist/ionic/p-156d17cd.js +0 -4
  434. package/dist/ionic/p-18bbe9a5.entry.js +0 -4
  435. package/dist/ionic/p-18c930a5.system.entry.js +0 -4
  436. package/dist/ionic/p-1abd1c99.entry.js +0 -4
  437. package/dist/ionic/p-1cf1141c.system.entry.js +0 -4
  438. package/dist/ionic/p-1dd2b0af.entry.js +0 -4
  439. package/dist/ionic/p-1eeb9796.entry.js +0 -4
  440. package/dist/ionic/p-23b31425.entry.js +0 -4
  441. package/dist/ionic/p-25cc2477.entry.js +0 -4
  442. package/dist/ionic/p-2e35a770.system.js +0 -4
  443. package/dist/ionic/p-2ef115ec.system.entry.js +0 -4
  444. package/dist/ionic/p-330e703e.entry.js +0 -4
  445. package/dist/ionic/p-33dc4514.js +0 -4
  446. package/dist/ionic/p-346c67b0.js +0 -4
  447. package/dist/ionic/p-3583dd40.system.entry.js +0 -4
  448. package/dist/ionic/p-398b00a5.system.entry.js +0 -4
  449. package/dist/ionic/p-3b7adbc3.system.entry.js +0 -4
  450. package/dist/ionic/p-41c19986.system.js +0 -4
  451. package/dist/ionic/p-41f06734.entry.js +0 -4
  452. package/dist/ionic/p-4219582c.system.js +0 -4
  453. package/dist/ionic/p-4385e3fb.system.entry.js +0 -4
  454. package/dist/ionic/p-4a39ba11.entry.js +0 -4
  455. package/dist/ionic/p-4a6d4288.entry.js +0 -4
  456. package/dist/ionic/p-4a869870.entry.js +0 -4
  457. package/dist/ionic/p-4ac4f52a.system.entry.js +0 -4
  458. package/dist/ionic/p-4c9e1b2c.js +0 -4
  459. package/dist/ionic/p-51371e21.system.js +0 -4
  460. package/dist/ionic/p-530c591a.entry.js +0 -4
  461. package/dist/ionic/p-5377db51.system.entry.js +0 -4
  462. package/dist/ionic/p-55546d77.system.entry.js +0 -4
  463. package/dist/ionic/p-57de8d54.system.entry.js +0 -4
  464. package/dist/ionic/p-5860d75f.system.entry.js +0 -4
  465. package/dist/ionic/p-58c64779.system.entry.js +0 -4
  466. package/dist/ionic/p-5a6b3c0d.entry.js +0 -4
  467. package/dist/ionic/p-5ce35a03.js +0 -4
  468. package/dist/ionic/p-5eb8561f.system.entry.js +0 -4
  469. package/dist/ionic/p-5ff5d2bb.entry.js +0 -4
  470. package/dist/ionic/p-60c310ae.system.entry.js +0 -4
  471. package/dist/ionic/p-60d21ee9.system.entry.js +0 -4
  472. package/dist/ionic/p-61f85a49.system.entry.js +0 -4
  473. package/dist/ionic/p-6433742e.system.entry.js +0 -4
  474. package/dist/ionic/p-67b6e18d.entry.js +0 -4
  475. package/dist/ionic/p-6bc2795b.entry.js +0 -4
  476. package/dist/ionic/p-6caa76ec.js +0 -4
  477. package/dist/ionic/p-6cbca6c5.system.entry.js +0 -4
  478. package/dist/ionic/p-6dc32e8b.entry.js +0 -4
  479. package/dist/ionic/p-6e53290f.system.entry.js +0 -4
  480. package/dist/ionic/p-7607d8ba.system.entry.js +0 -4
  481. package/dist/ionic/p-78ed8923.js +0 -4
  482. package/dist/ionic/p-7a858bae.system.js +0 -4
  483. package/dist/ionic/p-7d36cf9f.system.entry.js +0 -4
  484. package/dist/ionic/p-81b72701.entry.js +0 -4
  485. package/dist/ionic/p-82cb4235.js +0 -4
  486. package/dist/ionic/p-857ba8d4.entry.js +0 -4
  487. package/dist/ionic/p-86e9a917.system.entry.js +0 -4
  488. package/dist/ionic/p-871f4046.entry.js +0 -4
  489. package/dist/ionic/p-8956f9a8.system.entry.js +0 -4
  490. package/dist/ionic/p-8a5c53fa.entry.js +0 -4
  491. package/dist/ionic/p-8b0f0a87.entry.js +0 -4
  492. package/dist/ionic/p-8dbfae64.entry.js +0 -4
  493. package/dist/ionic/p-903c544a.js +0 -4
  494. package/dist/ionic/p-916bc9ed.system.entry.js +0 -4
  495. package/dist/ionic/p-92646426.js +0 -4
  496. package/dist/ionic/p-94fc2104.system.entry.js +0 -4
  497. package/dist/ionic/p-9ac1a506.system.js +0 -4
  498. package/dist/ionic/p-a5a9206f.entry.js +0 -4
  499. package/dist/ionic/p-a98061d0.entry.js +0 -4
  500. package/dist/ionic/p-ac1e6986.entry.js +0 -4
  501. package/dist/ionic/p-b18c52cd.entry.js +0 -4
  502. package/dist/ionic/p-b517144d.system.entry.js +0 -4
  503. package/dist/ionic/p-b5dc9a32.system.entry.js +0 -4
  504. package/dist/ionic/p-b80582fe.system.entry.js +0 -4
  505. package/dist/ionic/p-bbcec459.system.js +0 -4
  506. package/dist/ionic/p-bcdd3eaf.entry.js +0 -4
  507. package/dist/ionic/p-c373eebd.system.js +0 -4
  508. package/dist/ionic/p-cdff6a80.system.entry.js +0 -4
  509. package/dist/ionic/p-d4862803.entry.js +0 -4
  510. package/dist/ionic/p-d6ed3be1.entry.js +0 -4
  511. package/dist/ionic/p-dc286a59.entry.js +0 -4
  512. package/dist/ionic/p-df09db21.entry.js +0 -4
  513. package/dist/ionic/p-df4b88fc.system.entry.js +0 -4
  514. package/dist/ionic/p-ea3ca474.system.js +0 -4
  515. package/dist/ionic/p-eb4ba253.entry.js +0 -4
  516. package/dist/ionic/p-ebd641e4.system.entry.js +0 -4
  517. package/dist/ionic/p-ebe94d15.entry.js +0 -4
  518. package/dist/ionic/p-eda736d7.entry.js +0 -4
  519. package/dist/ionic/p-ee17be82.entry.js +0 -4
  520. package/dist/ionic/p-eee899d5.system.entry.js +0 -4
  521. package/dist/ionic/p-f44c9c6e.system.entry.js +0 -4
  522. package/dist/ionic/p-f5be97b8.entry.js +0 -4
  523. package/dist/ionic/p-f8123284.entry.js +0 -4
  524. package/dist/ionic/p-fff78cd2.system.entry.js +0 -4
@@ -128,6 +128,7 @@ Do not edit directly, this file was auto-generated.
128
128
  */
129
129
  border-radius: var(--border-radius);
130
130
  display: block;
131
+ position: relative;
131
132
  }
132
133
 
133
134
  ::slotted(ion-img),
@@ -265,4 +266,20 @@ Do not edit directly, this file was auto-generated.
265
266
  :host(.avatar-xlarge) ::slotted(ion-icon) {
266
267
  width: var(--ion-scale-1000, 40px);
267
268
  height: var(--ion-scale-1000, 40px);
269
+ }
270
+
271
+ :host ::slotted(ion-badge.badge-vertical-top:empty) {
272
+ transform: translate(var(--ion-scale-050, 2px), calc(var(--ion-scale-050, 2px) * -1));
273
+ }
274
+
275
+ :host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-top:empty) {
276
+ transform: translate(var(--ion-scale-100, 4px), calc(var(--ion-scale-100, 4px) * -1));
277
+ }
278
+
279
+ :host ::slotted(ion-badge.badge-vertical-bottom:empty) {
280
+ transform: translate(0, var(--ion-scale-100, 4px));
281
+ }
282
+
283
+ :host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-bottom:empty) {
284
+ transform: translate(var(--ion-scale-100, 4px), calc(var(--ion-scale-100, 4px)));
268
285
  }
@@ -65,6 +65,7 @@
65
65
  */
66
66
  border-radius: var(--border-radius);
67
67
  display: block;
68
+ position: relative;
68
69
  }
69
70
 
70
71
  ::slotted(ion-img),
@@ -65,6 +65,7 @@
65
65
  */
66
66
  border-radius: var(--border-radius);
67
67
  display: block;
68
+ position: relative;
68
69
  }
69
70
 
70
71
  ::slotted(ion-img),
@@ -141,4 +142,12 @@
141
142
  --border-radius: 50%;
142
143
  width: 64px;
143
144
  height: 64px;
145
+ }
146
+
147
+ ::slotted(ion-badge.badge-vertical-top:empty) {
148
+ transform: translate(-50%, 50%);
149
+ }
150
+
151
+ ::slotted(ion-badge.badge-vertical-bottom:empty) {
152
+ transform: translateX(-100%);
144
153
  }
@@ -156,8 +156,19 @@ Do not edit directly, this file was auto-generated.
156
156
  color: var(--ion-color-contrast);
157
157
  }
158
158
 
159
- :host(:empty) {
160
- display: none;
159
+ :host([vertical]) {
160
+ position: absolute;
161
+ }
162
+ :host([vertical]) {
163
+ inset-inline-end: 0;
164
+ }
165
+
166
+ :host(:empty.badge-vertical-top) {
167
+ top: 0;
168
+ }
169
+
170
+ :host(:empty.badge-vertical-bottom) {
171
+ bottom: 0;
161
172
  }
162
173
 
163
174
  :host {
@@ -204,6 +215,11 @@ Do not edit directly, this file was auto-generated.
204
215
  line-height: var(--ion-font-line-height-400, 16px);
205
216
  }
206
217
 
218
+ :host(.badge-xxsmall) ::slotted(ion-icon) {
219
+ width: var(--ion-scale-300, 12px);
220
+ height: var(--ion-scale-300, 12px);
221
+ }
222
+
207
223
  /* Extra Small Badge */
208
224
  :host(.badge-xsmall) {
209
225
  --padding-start: var(--ion-space-100, 4px);
@@ -214,6 +230,11 @@ Do not edit directly, this file was auto-generated.
214
230
  line-height: var(--ion-font-line-height-600, 24px);
215
231
  }
216
232
 
233
+ :host(.badge-xsmall) ::slotted(ion-icon) {
234
+ width: var(--ion-scale-400, 16px);
235
+ height: var(--ion-scale-400, 16px);
236
+ }
237
+
217
238
  /* Small Badge */
218
239
  :host(.badge-small) {
219
240
  --padding-start: var(--ion-space-100, 4px);
@@ -224,6 +245,11 @@ Do not edit directly, this file was auto-generated.
224
245
  line-height: var(--ion-font-line-height-600, 24px);
225
246
  }
226
247
 
248
+ :host(.badge-small) ::slotted(ion-icon) {
249
+ width: var(--ion-scale-500, 20px);
250
+ height: var(--ion-scale-500, 20px);
251
+ }
252
+
227
253
  /* Medium Badge */
228
254
  :host(.badge-medium) {
229
255
  min-width: var(--ion-scale-1000, 40px);
@@ -232,6 +258,11 @@ Do not edit directly, this file was auto-generated.
232
258
  line-height: var(--ion-font-line-height-700, 28px);
233
259
  }
234
260
 
261
+ :host(.badge-medium) ::slotted(ion-icon) {
262
+ width: var(--ion-scale-600, 24px);
263
+ height: var(--ion-scale-600, 24px);
264
+ }
265
+
235
266
  /* Large Badge */
236
267
  :host(.badge-large) {
237
268
  min-width: var(--ion-scale-1200, 48px);
@@ -240,10 +271,43 @@ Do not edit directly, this file was auto-generated.
240
271
  line-height: var(--ion-font-line-height-700, 28px);
241
272
  }
242
273
 
274
+ :host(.badge-large) ::slotted(ion-icon) {
275
+ width: var(--ion-scale-800, 32px);
276
+ height: var(--ion-scale-800, 32px);
277
+ }
278
+
243
279
  /* Extra Large Badge */
244
280
  :host(.badge-xlarge) {
245
281
  min-width: var(--ion-scale-1400, 56px);
246
282
  height: var(--ion-scale-1400, 56px);
247
283
  font-size: var(--ion-font-size-550, 1.375rem);
248
284
  line-height: var(--ion-font-line-height-700, 28px);
285
+ }
286
+
287
+ :host(.badge-xlarge) ::slotted(ion-icon) {
288
+ width: var(--ion-scale-1000, 40px);
289
+ height: var(--ion-scale-1000, 40px);
290
+ }
291
+
292
+ :host(:empty) {
293
+ --padding-start: 0;
294
+ --padding-end: 0;
295
+ }
296
+
297
+ /* sm */
298
+ :host(.badge-small:empty) {
299
+ min-width: var(--ion-scale-200, 8px);
300
+ height: var(--ion-scale-200, 8px);
301
+ }
302
+
303
+ /* md */
304
+ :host(.badge-medium:empty) {
305
+ min-width: var(--ion-scale-300, 12px);
306
+ height: var(--ion-scale-300, 12px);
307
+ }
308
+
309
+ /* lg */
310
+ :host(.badge-large:empty) {
311
+ min-width: var(--ion-scale-400, 16px);
312
+ height: var(--ion-scale-400, 16px);
249
313
  }
@@ -154,8 +154,19 @@
154
154
  color: var(--ion-color-contrast);
155
155
  }
156
156
 
157
- :host(:empty) {
158
- display: none;
157
+ :host([vertical]) {
158
+ position: absolute;
159
+ }
160
+ :host([vertical]) {
161
+ inset-inline-end: 0;
162
+ }
163
+
164
+ :host(:empty.badge-vertical-top) {
165
+ top: 0;
166
+ }
167
+
168
+ :host(:empty.badge-vertical-bottom) {
169
+ bottom: 0;
159
170
  }
160
171
 
161
172
  /**
@@ -197,6 +208,16 @@
197
208
  font-family: var(--ion-font-family, inherit);
198
209
  }
199
210
 
211
+ :host(:empty) {
212
+ --padding-start: 0;
213
+ --padding-end: 0;
214
+ --padding-bottom: 0;
215
+ --padding-top: 0;
216
+ border-radius: 999px;
217
+ width: 10px;
218
+ height: 10px;
219
+ }
220
+
200
221
  /**
201
222
  * Convert a pixels given value into rem
202
223
  *
@@ -13,6 +13,7 @@ export class Badge {
13
13
  this.color = undefined;
14
14
  this.shape = undefined;
15
15
  this.size = undefined;
16
+ this.vertical = undefined;
16
17
  }
17
18
  getShape() {
18
19
  const theme = getIonTheme(this);
@@ -42,11 +43,12 @@ export class Badge {
42
43
  const shape = this.getShape();
43
44
  const size = this.getSize();
44
45
  const theme = getIonTheme(this);
45
- return (h(Host, { key: '81deb3e063e9a3af5059ddbdfdc0a24fce4031c6', class: createColorClasses(this.color, {
46
+ return (h(Host, { key: 'aebcad9a9d4e650344cc855085ab30c376f9b367', class: createColorClasses(this.color, {
46
47
  [theme]: true,
47
48
  [`badge-${shape}`]: shape !== undefined,
48
49
  [`badge-${size}`]: size !== undefined,
49
- }) }, h("slot", { key: 'e398740a75207679e3eff7bf7510cc0409aaf351' })));
50
+ [`badge-vertical-${this.vertical}`]: this.vertical !== undefined,
51
+ }) }, h("slot", { key: 'b62bca8ec3666dce3283573497b7c4306ecc7fc4' })));
50
52
  }
51
53
  static get is() { return "ion-badge"; }
52
54
  static get encapsulation() { return "shadow"; }
@@ -122,6 +124,23 @@ export class Badge {
122
124
  },
123
125
  "attribute": "size",
124
126
  "reflect": false
127
+ },
128
+ "vertical": {
129
+ "type": "string",
130
+ "mutable": false,
131
+ "complexType": {
132
+ "original": "'top' | 'bottom'",
133
+ "resolved": "\"bottom\" | \"top\" | undefined",
134
+ "references": {}
135
+ },
136
+ "required": false,
137
+ "optional": true,
138
+ "docs": {
139
+ "tags": [],
140
+ "text": "Set to `\"top\"` to position the badge on top right absolute position of the parent element.\nSet to `\"bottom\"` to position the badge on bottom right absolute position of the parent element."
141
+ },
142
+ "attribute": "vertical",
143
+ "reflect": false
125
144
  }
126
145
  };
127
146
  }
@@ -154,8 +154,19 @@
154
154
  color: var(--ion-color-contrast);
155
155
  }
156
156
 
157
- :host(:empty) {
158
- display: none;
157
+ :host([vertical]) {
158
+ position: absolute;
159
+ }
160
+ :host([vertical]) {
161
+ inset-inline-end: 0;
162
+ }
163
+
164
+ :host(:empty.badge-vertical-top) {
165
+ top: 0;
166
+ }
167
+
168
+ :host(:empty.badge-vertical-bottom) {
169
+ bottom: 0;
159
170
  }
160
171
 
161
172
  /**
@@ -197,6 +208,16 @@
197
208
  font-family: var(--ion-font-family, inherit);
198
209
  }
199
210
 
211
+ :host(:empty) {
212
+ --padding-start: 0;
213
+ --padding-end: 0;
214
+ --padding-bottom: 0;
215
+ --padding-top: 0;
216
+ border-radius: 999px;
217
+ width: 10px;
218
+ height: 10px;
219
+ }
220
+
200
221
  /**
201
222
  * Convert a pixels given value into rem
202
223
  *
@@ -240,67 +240,37 @@ Do not edit directly, this file was auto-generated.
240
240
  }
241
241
 
242
242
  .searchbar-search-icon {
243
- top: var(--ion-scale-400, 16px);
244
243
  width: var(--ion-scale-400, 16px);
245
244
  height: var(--ion-scale-400, 16px);
246
245
  }
247
- .searchbar-search-icon {
248
- inset-inline-start: var(--ion-scale-400, 16px);
249
- }
250
246
 
251
247
  .searchbar-input {
252
- /**
253
- * Padding start is based on
254
- * desired padding from design,
255
- * the size of the search icon,
256
- * and the gap between the icon and the input.
257
- *
258
- * Padding end is based on
259
- * desired padding from design,
260
- * the size of the clear icon,
261
- * and the gap between the icon and the input.
262
- */
263
- -webkit-padding-start: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
264
- padding-inline-start: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
265
- -webkit-padding-end: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
266
- padding-inline-end: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
267
248
  padding-top: var(--ion-space-300, 12px);
268
249
  padding-bottom: var(--ion-space-300, 12px);
269
- min-height: var(--ion-scale-1200, 48px);
270
250
  contain: strict;
271
251
  }
272
252
 
273
253
  .searchbar-clear-button {
274
- top: var(--ion-scale-400, 16px);
275
254
  width: var(--ion-scale-400, 16px);
276
255
  height: var(--ion-scale-400, 16px);
277
256
  background-color: transparent;
278
257
  font-size: var(--ion-scale-400, 16px);
279
258
  contain: strict;
280
259
  }
281
- .searchbar-clear-button {
282
- inset-inline-end: var(--ion-scale-400, 16px);
283
- }
284
260
 
285
261
  .searchbar-cancel-button {
286
- /**
287
- * The left edge of the cancel button
288
- * should align with the left edge
289
- * of the back button if the searchbar
290
- * is used in a toolbar.
291
- */
292
- top: 0;
262
+ width: var(--ion-scale-400, 16px);
263
+ height: var(--ion-scale-400, 16px);
293
264
  background-color: transparent;
294
265
  font-size: var(--ion-font-size-400, 1rem);
295
266
  }
296
- .searchbar-cancel-button {
297
- inset-inline-start: 9px;
298
- }
299
267
 
300
268
  .searchbar-search-icon,
301
269
  .searchbar-clear-button,
302
270
  .searchbar-cancel-button {
271
+ top: 50%;
303
272
  position: absolute;
273
+ transform: translateY(-50%);
304
274
  }
305
275
 
306
276
  .searchbar-clear-button:focus-visible,
@@ -310,8 +280,27 @@ Do not edit directly, this file was auto-generated.
310
280
  opacity: 1;
311
281
  }
312
282
 
313
- :host-context(ion-toolbar) {
314
- min-height: var(--ion-scale-1200, 48px);
283
+ :host-context(ion-toolbar).searchbar-should-show-cancel .searchbar-cancel-button {
284
+ /**
285
+ * The left edge of the cancel button
286
+ * should align with the left edge
287
+ * of the back button if the searchbar
288
+ * is used in a toolbar regardless of
289
+ * the searchbar size.
290
+ */
291
+ }
292
+ :host-context(ion-toolbar).searchbar-should-show-cancel .searchbar-cancel-button {
293
+ inset-inline-start: 9px;
294
+ }
295
+
296
+ :host-context(ion-toolbar).searchbar-should-show-cancel .searchbar-input {
297
+ /**
298
+ * Padding start is based on
299
+ * the alignment of the back button,
300
+ * the size of the leading icon (search or cancel),
301
+ * and the gap between the icon and the input.
302
+ */
303
+ padding-inline-start: calc(9px + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
315
304
  }
316
305
 
317
306
  /* Hover */
@@ -342,4 +331,125 @@ Do not edit directly, this file was auto-generated.
342
331
  --placeholder-color: var(--ion-primitives-neutral-500, #a2a2a2);
343
332
  cursor: default;
344
333
  pointer-events: none;
334
+ }
335
+
336
+ :host(.searchbar-shape-soft) {
337
+ --border-radius: var(--ion-border-radius-200, 8px);
338
+ }
339
+
340
+ :host(.searchbar-shape-round) {
341
+ --border-radius: var(--ion-border-radius-400, 16px);
342
+ }
343
+
344
+ :host(.searchbar-shape-rectangular) {
345
+ --border-radius: var(--ion-border-radius-0, 0px);
346
+ }
347
+
348
+ /* Small */
349
+ :host(.searchbar-size-small) .searchbar-input {
350
+ /**
351
+ * Padding start is based on
352
+ * desired padding from design,
353
+ * the size of the leading icon (search or cancel),
354
+ * and the gap between the icon and the input.
355
+ *
356
+ * Padding end is based on
357
+ * desired padding from design,
358
+ * the size of the trailing icon (clear),
359
+ * and the gap between the icon and the input.
360
+ */
361
+ -webkit-padding-start: calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
362
+ padding-inline-start: calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
363
+ -webkit-padding-end: calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
364
+ padding-inline-end: calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
365
+ height: var(--ion-scale-1000, 40px);
366
+ }
367
+
368
+ :host(.searchbar-size-small) .searchbar-search-icon,
369
+ :host(.searchbar-size-small) .searchbar-cancel-button {
370
+ inset-inline-start: var(--ion-space-300, 12px);
371
+ }
372
+
373
+ :host(.searchbar-size-small) .searchbar-clear-button {
374
+ inset-inline-end: var(--ion-space-300, 12px);
375
+ }
376
+
377
+ /* Medium */
378
+ :host(.searchbar-size-medium) .searchbar-input {
379
+ /**
380
+ * Padding start is based on
381
+ * desired padding from design,
382
+ * the size of the leading icon (search or cancel),
383
+ * and the gap between the icon and the input.
384
+ *
385
+ * Padding end is based on
386
+ * desired padding from design,
387
+ * the size of the trailing icon (clear),
388
+ * and the gap between the icon and the input.
389
+ */
390
+ -webkit-padding-start: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
391
+ padding-inline-start: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
392
+ -webkit-padding-end: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
393
+ padding-inline-end: calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
394
+ height: var(--ion-scale-1200, 48px);
395
+ }
396
+
397
+ :host(.searchbar-size-medium) .searchbar-search-icon,
398
+ :host(.searchbar-size-medium) .searchbar-cancel-button {
399
+ inset-inline-start: var(--ion-space-400, 16px);
400
+ }
401
+
402
+ :host(.searchbar-size-medium) .searchbar-clear-button {
403
+ inset-inline-end: var(--ion-space-400, 16px);
404
+ }
405
+
406
+ /* Large */
407
+ :host(.searchbar-size-large) .searchbar-search-icon,
408
+ :host(.searchbar-size-large) .searchbar-cancel-button {
409
+ width: var(--ion-scale-500, 20px);
410
+ height: var(--ion-scale-500, 20px);
411
+ }
412
+
413
+ :host(.searchbar-size-large) .searchbar-cancel-button {
414
+ font-size: var(--ion-font-size-500, 1.25rem);
415
+ }
416
+
417
+ :host-context(ion-toolbar).searchbar-size-large.searchbar-should-show-cancel .searchbar-input {
418
+ /**
419
+ * Padding start is based on
420
+ * the alignment of the back button,
421
+ * the size of the leading icon (search or cancel),
422
+ * and the gap between the icon and the input.
423
+ */
424
+ padding-inline-start: calc(9px + var(--ion-scale-500, 20px) + var(--ion-space-200, 8px));
425
+ }
426
+
427
+ :host(.searchbar-size-large) .searchbar-input {
428
+ padding-top: var(--ion-space-400, 16px);
429
+ padding-bottom: var(--ion-space-400, 16px);
430
+ /**
431
+ * Padding start is based on
432
+ * desired padding from design,
433
+ * the size of the leading icon (search or cancel),
434
+ * and the gap between the icon and the input.
435
+ *
436
+ * Padding end is based on
437
+ * desired padding from design,
438
+ * the size of the trailing icon (clear),
439
+ * and the gap between the icon and the input.
440
+ */
441
+ -webkit-padding-start: calc(var(--ion-space-500, 20px) + var(--ion-scale-500, 20px) + var(--ion-space-200, 8px));
442
+ padding-inline-start: calc(var(--ion-space-500, 20px) + var(--ion-scale-500, 20px) + var(--ion-space-200, 8px));
443
+ -webkit-padding-end: calc(var(--ion-space-500, 20px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
444
+ padding-inline-end: calc(var(--ion-space-500, 20px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));
445
+ height: var(--ion-scale-1400, 56px);
446
+ }
447
+
448
+ :host(.searchbar-size-large) .searchbar-search-icon,
449
+ :host(.searchbar-size-large) .searchbar-cancel-button {
450
+ inset-inline-start: var(--ion-space-500, 20px);
451
+ }
452
+
453
+ :host(.searchbar-size-large) .searchbar-clear-button {
454
+ inset-inline-end: var(--ion-space-500, 20px);
345
455
  }
@@ -141,6 +141,8 @@ export class Searchbar {
141
141
  this.spellcheck = false;
142
142
  this.type = 'search';
143
143
  this.value = '';
144
+ this.shape = undefined;
145
+ this.size = undefined;
144
146
  }
145
147
  /**
146
148
  * lang and dir are globally enumerated attributes.
@@ -375,6 +377,30 @@ export class Searchbar {
375
377
  }
376
378
  return true;
377
379
  }
380
+ getShape() {
381
+ const theme = getIonTheme(this);
382
+ const { shape } = this;
383
+ // TODO(ROU-11677): Remove theme check when shapes are defined for all themes.
384
+ if (theme !== 'ionic') {
385
+ return undefined;
386
+ }
387
+ if (shape === undefined) {
388
+ return 'round';
389
+ }
390
+ return shape;
391
+ }
392
+ getSize() {
393
+ const theme = getIonTheme(this);
394
+ const { size } = this;
395
+ // TODO(ROU-11678): Remove theme check when sizes are defined for all themes.
396
+ if (theme !== 'ionic') {
397
+ return undefined;
398
+ }
399
+ if (size === undefined) {
400
+ return 'medium';
401
+ }
402
+ return size;
403
+ }
378
404
  /**
379
405
  * Get the icon to use for the clear icon.
380
406
  * If an icon is set on the component, use that.
@@ -449,8 +475,10 @@ export class Searchbar {
449
475
  const animated = this.animated && config.getBoolean('animated', true);
450
476
  const theme = getIonTheme(this);
451
477
  const shouldShowCancelButton = this.shouldShowCancelButton();
452
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '3301b510959fa5a426230175f5b61b4ead9bcfbb', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: 'cb3a77783c75bbc78acdc7df9c75abcc415188d9', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
453
- return (h(Host, { key: '33fdf75d5f7ce578cfbb7c4befa816c2b30469ac', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
478
+ const shape = this.getShape();
479
+ const size = this.getSize();
480
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '7dc5854b95da27ab51924514413e981d065b3d14', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: theme === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '7ccba83e849da1cf9a1d9ae4818466170c4e7636', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (h("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
481
+ return (h(Host, { key: '0a88320a2d0a836dcfc3befce5e46d105c5c3cc1', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
454
482
  [theme]: true,
455
483
  'searchbar-animated': animated,
456
484
  'searchbar-disabled': this.disabled,
@@ -460,14 +488,16 @@ export class Searchbar {
460
488
  'searchbar-has-focus': this.focused,
461
489
  'searchbar-should-show-clear': this.shouldShowClearButton(),
462
490
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
463
- }) }, h("div", { key: '8a5accb217a1efccc1cd417cef8b95996e277c07', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'dccb39de2157490b1e937c9a2737edb55b7001e6', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, h("ion-icon", { key: 'e85d30887e0b8eb264f86f682362882f4d14bf61', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '73aeda33d35e499a7f9edbb550707f2d5a234110', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
491
+ [`searchbar-shape-${shape}`]: shape !== undefined,
492
+ [`searchbar-size-${size}`]: size !== undefined,
493
+ }) }, h("div", { key: '8a409a99570c2616bc5e414d64b6aba7f508e149', class: "searchbar-input-container" }, h("input", Object.assign({ key: '2d2be3ce84ca419a425ebd4a03d6d83d304e1b63', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), (theme === 'md' || theme === 'ionic') && cancelButton, h("ion-icon", { key: 'd69af04b0790264ecc717ca45e4846359fec494d', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '5f0d2cc8e1f27891e3c77ac9a132b98d5a3a469e', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
464
494
  /**
465
495
  * This prevents mobile browsers from
466
496
  * blurring the input when the clear
467
497
  * button is activated.
468
498
  */
469
499
  ev.preventDefault();
470
- }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '9c9c376352470fc45877f1b89dfecf2c5ca2cc71', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme === 'ios' && cancelButton));
500
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '6c51c6fc759460fc0241df7b973e79bc732a8832', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme === 'ios' && cancelButton));
471
501
  }
472
502
  static get is() { return "ion-searchbar"; }
473
503
  static get encapsulation() { return "scoped"; }
@@ -885,6 +915,40 @@ export class Searchbar {
885
915
  "attribute": "value",
886
916
  "reflect": false,
887
917
  "defaultValue": "''"
918
+ },
919
+ "shape": {
920
+ "type": "string",
921
+ "mutable": false,
922
+ "complexType": {
923
+ "original": "'soft' | 'round' | 'rectangular'",
924
+ "resolved": "\"rectangular\" | \"round\" | \"soft\" | undefined",
925
+ "references": {}
926
+ },
927
+ "required": false,
928
+ "optional": true,
929
+ "docs": {
930
+ "tags": [],
931
+ "text": "Set to `\"soft\"` for a searchbar with slightly rounded corners,\n`\"round\"` for a searchbar with fully rounded corners,\nor `\"rectangular\"` for a searchbar without rounded corners.\n\nDefaults to `\"round\"` for the ionic theme, and `undefined` for all other themes."
932
+ },
933
+ "attribute": "shape",
934
+ "reflect": false
935
+ },
936
+ "size": {
937
+ "type": "string",
938
+ "mutable": false,
939
+ "complexType": {
940
+ "original": "'small' | 'medium' | 'large'",
941
+ "resolved": "\"large\" | \"medium\" | \"small\" | undefined",
942
+ "references": {}
943
+ },
944
+ "required": false,
945
+ "optional": true,
946
+ "docs": {
947
+ "tags": [],
948
+ "text": "Set to `\"large\"` for a searchbar with an increase in height,\nwhile \"small\" and \"medium\" provide progressively smaller heights.\n\nDefaults to `\"medium\"` for the ionic theme, and `undefined` for all other themes."
949
+ },
950
+ "attribute": "size",
951
+ "reflect": false
888
952
  }
889
953
  };
890
954
  }
@@ -24,6 +24,21 @@ export const getOrInitFocusVisibleUtility = () => {
24
24
  }
25
25
  return focusVisibleUtility;
26
26
  };
27
+ /**
28
+ * Used to set focus on an element that uses `ion-focusable`.
29
+ * Do not use this if focusing the element as a result of a keyboard
30
+ * event as the focus utility should handle this for us. This method
31
+ * should be used when we want to programmatically focus an element as
32
+ * a result of another user action. (Ex: We focus the first element
33
+ * inside of a popover when the user presents it, but the popover is not always
34
+ * presented as a result of keyboard action.)
35
+ *
36
+ * @param elements - The elements to set focus on.
37
+ */
38
+ export const focusElements = (elements) => {
39
+ const focusVisible = getOrInitFocusVisibleUtility();
40
+ focusVisible.setFocus(elements);
41
+ };
27
42
  export const startFocusVisible = (rootEl) => {
28
43
  let currentFocus = [];
29
44
  let keyboardMode = true;