@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
package/hydrate/index.mjs CHANGED
@@ -2366,6 +2366,99 @@ var modeResolutionChain = [];
2366
2366
 
2367
2367
  const caretDownSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMTMuNjYsMTAxLjY2bC04MCw4MGE4LDgsMCwwLDEtMTEuMzIsMGwtODAtODBBOCw4LDAsMCwxLDUzLjY2LDkwLjM0TDEyOCwxNjQuNjlsNzQuMzQtNzQuMzVhOCw4LDAsMCwxLDExLjMyLDExLjMyWiIvPjwvc3ZnPg==';
2368
2368
 
2369
+ const ION_FOCUSED = 'ion-focused';
2370
+ const ION_FOCUSABLE = 'ion-focusable';
2371
+ const FOCUS_KEYS = [
2372
+ 'Tab',
2373
+ 'ArrowDown',
2374
+ 'Space',
2375
+ 'Escape',
2376
+ ' ',
2377
+ 'Shift',
2378
+ 'Enter',
2379
+ 'ArrowLeft',
2380
+ 'ArrowRight',
2381
+ 'ArrowUp',
2382
+ 'Home',
2383
+ 'End',
2384
+ ];
2385
+ let focusVisibleUtility = null;
2386
+ const getOrInitFocusVisibleUtility = () => {
2387
+ if (!focusVisibleUtility) {
2388
+ focusVisibleUtility = startFocusVisible();
2389
+ }
2390
+ return focusVisibleUtility;
2391
+ };
2392
+ /**
2393
+ * Used to set focus on an element that uses `ion-focusable`.
2394
+ * Do not use this if focusing the element as a result of a keyboard
2395
+ * event as the focus utility should handle this for us. This method
2396
+ * should be used when we want to programmatically focus an element as
2397
+ * a result of another user action. (Ex: We focus the first element
2398
+ * inside of a popover when the user presents it, but the popover is not always
2399
+ * presented as a result of keyboard action.)
2400
+ *
2401
+ * @param elements - The elements to set focus on.
2402
+ */
2403
+ const focusElements = (elements) => {
2404
+ const focusVisible = getOrInitFocusVisibleUtility();
2405
+ focusVisible.setFocus(elements);
2406
+ };
2407
+ const startFocusVisible = (rootEl) => {
2408
+ let currentFocus = [];
2409
+ let keyboardMode = true;
2410
+ const ref = rootEl ? rootEl.shadowRoot : document;
2411
+ const root = rootEl ? rootEl : document.body;
2412
+ const setFocus = (elements) => {
2413
+ currentFocus.forEach((el) => el.classList.remove(ION_FOCUSED));
2414
+ elements.forEach((el) => el.classList.add(ION_FOCUSED));
2415
+ currentFocus = elements;
2416
+ };
2417
+ const pointerDown = () => {
2418
+ keyboardMode = false;
2419
+ setFocus([]);
2420
+ };
2421
+ const onKeydown = (ev) => {
2422
+ keyboardMode = FOCUS_KEYS.includes(ev.key);
2423
+ if (!keyboardMode) {
2424
+ setFocus([]);
2425
+ }
2426
+ };
2427
+ const onFocusin = (ev) => {
2428
+ if (keyboardMode && ev.composedPath !== undefined) {
2429
+ const toFocus = ev.composedPath().filter((el) => {
2430
+ // TODO(FW-2832): type
2431
+ if (el.classList) {
2432
+ return el.classList.contains(ION_FOCUSABLE);
2433
+ }
2434
+ return false;
2435
+ });
2436
+ setFocus(toFocus);
2437
+ }
2438
+ };
2439
+ const onFocusout = () => {
2440
+ if (ref.activeElement === root) {
2441
+ setFocus([]);
2442
+ }
2443
+ };
2444
+ ref.addEventListener('keydown', onKeydown);
2445
+ ref.addEventListener('focusin', onFocusin);
2446
+ ref.addEventListener('focusout', onFocusout);
2447
+ ref.addEventListener('touchstart', pointerDown, { passive: true });
2448
+ ref.addEventListener('mousedown', pointerDown);
2449
+ const destroy = () => {
2450
+ ref.removeEventListener('keydown', onKeydown);
2451
+ ref.removeEventListener('focusin', onFocusin);
2452
+ ref.removeEventListener('focusout', onFocusout);
2453
+ ref.removeEventListener('touchstart', pointerDown);
2454
+ ref.removeEventListener('mousedown', pointerDown);
2455
+ };
2456
+ return {
2457
+ destroy,
2458
+ setFocus,
2459
+ };
2460
+ };
2461
+
2369
2462
  // TODO(FW-2832): types
2370
2463
  class Config {
2371
2464
  constructor() {
@@ -2627,6 +2720,17 @@ const raf = (h) => {
2627
2720
  const hasShadowDom = (el) => {
2628
2721
  return !!el.shadowRoot && !!el.attachShadow;
2629
2722
  };
2723
+ /**
2724
+ * Focuses a given element while ensuring proper focus management
2725
+ * within the Ionic framework. If the element is marked as `ion-focusable`,
2726
+ * this function will delegate focus handling to `ion-app` or manually
2727
+ * apply focus when a custom app root is used.
2728
+ *
2729
+ * This function helps maintain accessibility and expected focus behavior
2730
+ * in both standard and custom root environments.
2731
+ *
2732
+ * @param el - The element to focus.
2733
+ */
2630
2734
  const focusVisibleElement = (el) => {
2631
2735
  el.focus();
2632
2736
  /**
@@ -2641,7 +2745,33 @@ const focusVisibleElement = (el) => {
2641
2745
  const appRootSelector = config.get('appRootSelector', 'ion-app');
2642
2746
  const app = el.closest(appRootSelector);
2643
2747
  if (app) {
2644
- app.setFocus([el]);
2748
+ if (appRootSelector === 'ion-app') {
2749
+ /**
2750
+ * If the app root is the default, then it will be
2751
+ * in charge of setting focus. This is because the
2752
+ * focus-visible utility is attached to the app root
2753
+ * and will handle setting focus on the correct element.
2754
+ */
2755
+ app.setFocus([el]);
2756
+ }
2757
+ else {
2758
+ /**
2759
+ * When using a custom app root selector, the focus-visible
2760
+ * utility is not available to manage focus automatically.
2761
+ * If we set focus immediately, the element may not be fully
2762
+ * rendered or interactive, especially if it was just added
2763
+ * to the DOM. Using requestAnimationFrame ensures that focus
2764
+ * is applied on the next frame, allowing the DOM to settle
2765
+ * before changing focus.
2766
+ */
2767
+ requestAnimationFrame(() => {
2768
+ /**
2769
+ * The focus-visible utility is used to set focus on an
2770
+ * element that uses `ion-focusable`.
2771
+ */
2772
+ focusElements([el]);
2773
+ });
2774
+ }
2645
2775
  }
2646
2776
  }
2647
2777
  };
@@ -7521,84 +7651,6 @@ const buttonClass$2 = (button) => {
7521
7651
  return Object.assign({ 'alert-button': true, 'ion-focusable': true, 'ion-activatable': true, [`alert-button-role-${button.role}`]: button.role !== undefined }, getClassMap(button.cssClass));
7522
7652
  };
7523
7653
 
7524
- const ION_FOCUSED = 'ion-focused';
7525
- const ION_FOCUSABLE = 'ion-focusable';
7526
- const FOCUS_KEYS = [
7527
- 'Tab',
7528
- 'ArrowDown',
7529
- 'Space',
7530
- 'Escape',
7531
- ' ',
7532
- 'Shift',
7533
- 'Enter',
7534
- 'ArrowLeft',
7535
- 'ArrowRight',
7536
- 'ArrowUp',
7537
- 'Home',
7538
- 'End',
7539
- ];
7540
- let focusVisibleUtility = null;
7541
- const getOrInitFocusVisibleUtility = () => {
7542
- if (!focusVisibleUtility) {
7543
- focusVisibleUtility = startFocusVisible();
7544
- }
7545
- return focusVisibleUtility;
7546
- };
7547
- const startFocusVisible = (rootEl) => {
7548
- let currentFocus = [];
7549
- let keyboardMode = true;
7550
- const ref = rootEl ? rootEl.shadowRoot : document;
7551
- const root = rootEl ? rootEl : document.body;
7552
- const setFocus = (elements) => {
7553
- currentFocus.forEach((el) => el.classList.remove(ION_FOCUSED));
7554
- elements.forEach((el) => el.classList.add(ION_FOCUSED));
7555
- currentFocus = elements;
7556
- };
7557
- const pointerDown = () => {
7558
- keyboardMode = false;
7559
- setFocus([]);
7560
- };
7561
- const onKeydown = (ev) => {
7562
- keyboardMode = FOCUS_KEYS.includes(ev.key);
7563
- if (!keyboardMode) {
7564
- setFocus([]);
7565
- }
7566
- };
7567
- const onFocusin = (ev) => {
7568
- if (keyboardMode && ev.composedPath !== undefined) {
7569
- const toFocus = ev.composedPath().filter((el) => {
7570
- // TODO(FW-2832): type
7571
- if (el.classList) {
7572
- return el.classList.contains(ION_FOCUSABLE);
7573
- }
7574
- return false;
7575
- });
7576
- setFocus(toFocus);
7577
- }
7578
- };
7579
- const onFocusout = () => {
7580
- if (ref.activeElement === root) {
7581
- setFocus([]);
7582
- }
7583
- };
7584
- ref.addEventListener('keydown', onKeydown);
7585
- ref.addEventListener('focusin', onFocusin);
7586
- ref.addEventListener('focusout', onFocusout);
7587
- ref.addEventListener('touchstart', pointerDown, { passive: true });
7588
- ref.addEventListener('mousedown', pointerDown);
7589
- const destroy = () => {
7590
- ref.removeEventListener('keydown', onKeydown);
7591
- ref.removeEventListener('focusin', onFocusin);
7592
- ref.removeEventListener('focusout', onFocusout);
7593
- ref.removeEventListener('touchstart', pointerDown);
7594
- ref.removeEventListener('mousedown', pointerDown);
7595
- };
7596
- return {
7597
- destroy,
7598
- setFocus,
7599
- };
7600
- };
7601
-
7602
7654
  const appCss = "html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}";
7603
7655
  var IonAppStyle0 = appCss;
7604
7656
 
@@ -7618,14 +7670,19 @@ class App {
7618
7670
  * a result of another user action. (Ex: We focus the first element
7619
7671
  * inside of a popover when the user presents it, but the popover is not always
7620
7672
  * presented as a result of keyboard action.)
7673
+ *
7674
+ * @param elements - The elements to set focus on.
7621
7675
  */
7622
7676
  async setFocus(elements) {
7623
- const focusVisible = getOrInitFocusVisibleUtility();
7624
- focusVisible.setFocus(elements);
7677
+ /**
7678
+ * The focus-visible utility is used to set focus on an
7679
+ * element that uses `ion-focusable`.
7680
+ */
7681
+ focusElements(elements);
7625
7682
  }
7626
7683
  render() {
7627
7684
  const theme = getIonTheme(this);
7628
- return (hAsync(Host, { key: '109f9e80230b5f7dfab0714ed18be1162c589c04', class: {
7685
+ return (hAsync(Host, { key: '25667e21b2fffa03ccf013044c340e96bd7faad9', class: {
7629
7686
  [theme]: true,
7630
7687
  'ion-page': true,
7631
7688
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -7645,13 +7702,13 @@ class App {
7645
7702
  }; }
7646
7703
  }
7647
7704
 
7648
- const avatarIonicCss = ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--padding-top:var(--ion-space-0, 0px);--padding-bottom:var(--ion-space-0, 0px);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background:var(--ion-primitives-neutral-100, #f5f5f5);color:var(--ion-primitives-neutral-800, #626262);font-weight:var(--ion-font-weight-medium, 500);line-height:var(--ion-font-line-height-700, 28px)}:host(:not(.avatar-image)){-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}:host(.avatar-xxsmall){--padding-end:var(--ion-space-050, 2px);--padding-start:var(--ion-space-050, 2px);width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px);font-size:var(--ion-font-size-300, 0.75rem);line-height:var(--ion-font-line-height-500, 20px)}:host(.avatar-xsmall){--padding-end:var(--ion-space-050, 2px);--padding-start:var(--ion-space-050, 2px);width:var(--ion-scale-600, 24px);height:var(--ion-scale-600, 24px);font-size:var(--ion-font-size-300, 0.75rem);line-height:var(--ion-font-line-height-500, 20px)}:host(.avatar-small){--padding-end:var(--ion-space-150, 6px);--padding-start:var(--ion-space-150, 6px);width:var(--ion-scale-800, 32px);height:var(--ion-scale-800, 32px);font-size:var(--ion-font-size-400, 1rem);line-height:var(--ion-font-line-height-600, 24px)}:host(.avatar-medium){--padding-end:var(--ion-space-200, 8px);--padding-start:var(--ion-space-200, 8px);width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px);font-size:var(--ion-font-size-450, 1.125rem)}:host(.avatar-large){--padding-end:var(--ion-space-250, 10px);--padding-start:var(--ion-space-250, 10px);width:var(--ion-scale-1200, 48px);height:var(--ion-scale-1200, 48px);font-size:var(--ion-font-size-500, 1.25rem)}:host(.avatar-xlarge){--padding-end:var(--ion-space-300, 12px);--padding-start:var(--ion-space-300, 12px);width:var(--ion-scale-1400, 56px);height:var(--ion-scale-1400, 56px);font-size:var(--ion-font-size-550, 1.375rem)}:host(.avatar-xxsmall.avatar-soft),:host(.avatar-xsmall.avatar-soft),:host(.avatar-small.avatar-soft){--border-radius:var(--ion-border-radius-100, 4px)}:host(.avatar-soft){--border-radius:var(--ion-border-radius-200, 8px)}:host(.avatar-round){--border-radius:var(--ion-border-radius-full, 999px)}:host(.avatar-rectangular){--border-radius:var(--ion-border-radius-0, 0px)}:host(.avatar-icon){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host(.avatar-xsmall) ::slotted(ion-icon){width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px)}:host(.avatar-small) ::slotted(ion-icon){width:var(--ion-scale-500, 20px);height:var(--ion-scale-500, 20px)}:host(.avatar-medium) ::slotted(ion-icon){width:var(--ion-scale-600, 24px);height:var(--ion-scale-600, 24px)}:host(.avatar-large) ::slotted(ion-icon){width:var(--ion-scale-800, 32px);height:var(--ion-scale-800, 32px)}:host(.avatar-xlarge) ::slotted(ion-icon){width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px)}";
7705
+ const avatarIonicCss = ":host{border-radius:var(--border-radius);display:block;position:relative}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--padding-top:var(--ion-space-0, 0px);--padding-bottom:var(--ion-space-0, 0px);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;background:var(--ion-primitives-neutral-100, #f5f5f5);color:var(--ion-primitives-neutral-800, #626262);font-weight:var(--ion-font-weight-medium, 500);line-height:var(--ion-font-line-height-700, 28px)}:host(:not(.avatar-image)){-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom)}:host(.avatar-xxsmall){--padding-end:var(--ion-space-050, 2px);--padding-start:var(--ion-space-050, 2px);width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px);font-size:var(--ion-font-size-300, 0.75rem);line-height:var(--ion-font-line-height-500, 20px)}:host(.avatar-xsmall){--padding-end:var(--ion-space-050, 2px);--padding-start:var(--ion-space-050, 2px);width:var(--ion-scale-600, 24px);height:var(--ion-scale-600, 24px);font-size:var(--ion-font-size-300, 0.75rem);line-height:var(--ion-font-line-height-500, 20px)}:host(.avatar-small){--padding-end:var(--ion-space-150, 6px);--padding-start:var(--ion-space-150, 6px);width:var(--ion-scale-800, 32px);height:var(--ion-scale-800, 32px);font-size:var(--ion-font-size-400, 1rem);line-height:var(--ion-font-line-height-600, 24px)}:host(.avatar-medium){--padding-end:var(--ion-space-200, 8px);--padding-start:var(--ion-space-200, 8px);width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px);font-size:var(--ion-font-size-450, 1.125rem)}:host(.avatar-large){--padding-end:var(--ion-space-250, 10px);--padding-start:var(--ion-space-250, 10px);width:var(--ion-scale-1200, 48px);height:var(--ion-scale-1200, 48px);font-size:var(--ion-font-size-500, 1.25rem)}:host(.avatar-xlarge){--padding-end:var(--ion-space-300, 12px);--padding-start:var(--ion-space-300, 12px);width:var(--ion-scale-1400, 56px);height:var(--ion-scale-1400, 56px);font-size:var(--ion-font-size-550, 1.375rem)}:host(.avatar-xxsmall.avatar-soft),:host(.avatar-xsmall.avatar-soft),:host(.avatar-small.avatar-soft){--border-radius:var(--ion-border-radius-100, 4px)}:host(.avatar-soft){--border-radius:var(--ion-border-radius-200, 8px)}:host(.avatar-round){--border-radius:var(--ion-border-radius-full, 999px)}:host(.avatar-rectangular){--border-radius:var(--ion-border-radius-0, 0px)}:host(.avatar-icon){padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host(.avatar-xsmall) ::slotted(ion-icon){width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px)}:host(.avatar-small) ::slotted(ion-icon){width:var(--ion-scale-500, 20px);height:var(--ion-scale-500, 20px)}:host(.avatar-medium) ::slotted(ion-icon){width:var(--ion-scale-600, 24px);height:var(--ion-scale-600, 24px)}:host(.avatar-large) ::slotted(ion-icon){width:var(--ion-scale-800, 32px);height:var(--ion-scale-800, 32px)}:host(.avatar-xlarge) ::slotted(ion-icon){width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px)}:host ::slotted(ion-badge.badge-vertical-top:empty){-webkit-transform:translate(var(--ion-scale-050, 2px), calc(var(--ion-scale-050, 2px) * -1));transform:translate(var(--ion-scale-050, 2px), calc(var(--ion-scale-050, 2px) * -1))}:host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-top:empty){-webkit-transform:translate(var(--ion-scale-100, 4px), calc(var(--ion-scale-100, 4px) * -1));transform:translate(var(--ion-scale-100, 4px), calc(var(--ion-scale-100, 4px) * -1))}:host ::slotted(ion-badge.badge-vertical-bottom:empty){-webkit-transform:translate(0, var(--ion-scale-100, 4px));transform:translate(0, var(--ion-scale-100, 4px))}:host(.avatar-xxsmall) ::slotted(ion-badge.badge-vertical-bottom:empty){-webkit-transform:translate(var(--ion-scale-100, 4px), calc(var(--ion-scale-100, 4px)));transform:translate(var(--ion-scale-100, 4px), calc(var(--ion-scale-100, 4px)))}";
7649
7706
  var IonAvatarIonicStyle0 = avatarIonicCss;
7650
7707
 
7651
- const avatarIosCss = ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}";
7708
+ const avatarIosCss = ":host{border-radius:var(--border-radius);display:block;position:relative}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}";
7652
7709
  var IonAvatarIosStyle0 = avatarIosCss;
7653
7710
 
7654
- const avatarMdCss = ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:64px;height:64px}";
7711
+ const avatarMdCss = ":host{border-radius:var(--border-radius);display:block;position:relative}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:64px;height:64px}::slotted(ion-badge.badge-vertical-top:empty){-webkit-transform:translate(-50%, 50%);transform:translate(-50%, 50%)}::slotted(ion-badge.badge-vertical-bottom:empty){-webkit-transform:translateX(-100%);transform:translateX(-100%)}";
7655
7712
  var IonAvatarMdStyle0 = avatarMdCss;
7656
7713
 
7657
7714
  /**
@@ -7903,13 +7960,13 @@ class Backdrop {
7903
7960
  }; }
7904
7961
  }
7905
7962
 
7906
- const badgeIonicCss = ":host{--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(:empty){display:none}:host{--background:var(--ion-color-primary, #105cef);--color:var(--ion-color-primary-contrast, #fff);--padding-start:var(--ion-space-200, 8px);--padding-end:var(--ion-space-200, 8px);--padding-top:var(--ion-space-0, 0px);--padding-bottom:var(--ion-space-0, 0px);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-weight:var(--ion-font-weight-medium, 500)}:host(.badge-soft){border-radius:var(--ion-border-radius-200, 8px)}:host(.badge-xxsmall.badge-soft),:host(.badge-xsmall.badge-soft),:host(.badge-small.badge-soft){border-radius:var(--ion-border-radius-100, 4px)}:host(.badge-round){border-radius:var(--ion-border-radius-full, 999px)}:host(.badge-rectangular){border-radius:var(--ion-border-radius-0, 0px)}:host(.badge-xxsmall){--padding-start:var(--ion-space-050, 2px);--padding-end:var(--ion-space-050, 2px);min-width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px);font-size:var(--ion-font-size-300, 0.75rem);line-height:var(--ion-font-line-height-400, 16px)}:host(.badge-xsmall){--padding-start:var(--ion-space-100, 4px);--padding-end:var(--ion-space-100, 4px);min-width:var(--ion-scale-600, 24px);height:var(--ion-scale-600, 24px);font-size:var(--ion-font-size-350, 0.875rem);line-height:var(--ion-font-line-height-600, 24px)}:host(.badge-small){--padding-start:var(--ion-space-100, 4px);--padding-end:var(--ion-space-100, 4px);min-width:var(--ion-scale-800, 32px);height:var(--ion-scale-800, 32px);font-size:var(--ion-font-size-400, 1rem);line-height:var(--ion-font-line-height-600, 24px)}:host(.badge-medium){min-width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px);font-size:var(--ion-font-size-450, 1.125rem);line-height:var(--ion-font-line-height-700, 28px)}:host(.badge-large){min-width:var(--ion-scale-1200, 48px);height:var(--ion-scale-1200, 48px);font-size:var(--ion-font-size-500, 1.25rem);line-height:var(--ion-font-line-height-700, 28px)}:host(.badge-xlarge){min-width:var(--ion-scale-1400, 56px);height:var(--ion-scale-1400, 56px);font-size:var(--ion-font-size-550, 1.375rem);line-height:var(--ion-font-line-height-700, 28px)}";
7963
+ const badgeIonicCss = ":host{--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host([vertical]){position:absolute}:host([vertical]){inset-inline-end:0}:host(:empty.badge-vertical-top){top:0}:host(:empty.badge-vertical-bottom){bottom:0}:host{--background:var(--ion-color-primary, #105cef);--color:var(--ion-color-primary-contrast, #fff);--padding-start:var(--ion-space-200, 8px);--padding-end:var(--ion-space-200, 8px);--padding-top:var(--ion-space-0, 0px);--padding-bottom:var(--ion-space-0, 0px);display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;font-weight:var(--ion-font-weight-medium, 500)}:host(.badge-soft){border-radius:var(--ion-border-radius-200, 8px)}:host(.badge-xxsmall.badge-soft),:host(.badge-xsmall.badge-soft),:host(.badge-small.badge-soft){border-radius:var(--ion-border-radius-100, 4px)}:host(.badge-round){border-radius:var(--ion-border-radius-full, 999px)}:host(.badge-rectangular){border-radius:var(--ion-border-radius-0, 0px)}:host(.badge-xxsmall){--padding-start:var(--ion-space-050, 2px);--padding-end:var(--ion-space-050, 2px);min-width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px);font-size:var(--ion-font-size-300, 0.75rem);line-height:var(--ion-font-line-height-400, 16px)}:host(.badge-xxsmall) ::slotted(ion-icon){width:var(--ion-scale-300, 12px);height:var(--ion-scale-300, 12px)}:host(.badge-xsmall){--padding-start:var(--ion-space-100, 4px);--padding-end:var(--ion-space-100, 4px);min-width:var(--ion-scale-600, 24px);height:var(--ion-scale-600, 24px);font-size:var(--ion-font-size-350, 0.875rem);line-height:var(--ion-font-line-height-600, 24px)}:host(.badge-xsmall) ::slotted(ion-icon){width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px)}:host(.badge-small){--padding-start:var(--ion-space-100, 4px);--padding-end:var(--ion-space-100, 4px);min-width:var(--ion-scale-800, 32px);height:var(--ion-scale-800, 32px);font-size:var(--ion-font-size-400, 1rem);line-height:var(--ion-font-line-height-600, 24px)}:host(.badge-small) ::slotted(ion-icon){width:var(--ion-scale-500, 20px);height:var(--ion-scale-500, 20px)}:host(.badge-medium){min-width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px);font-size:var(--ion-font-size-450, 1.125rem);line-height:var(--ion-font-line-height-700, 28px)}:host(.badge-medium) ::slotted(ion-icon){width:var(--ion-scale-600, 24px);height:var(--ion-scale-600, 24px)}:host(.badge-large){min-width:var(--ion-scale-1200, 48px);height:var(--ion-scale-1200, 48px);font-size:var(--ion-font-size-500, 1.25rem);line-height:var(--ion-font-line-height-700, 28px)}:host(.badge-large) ::slotted(ion-icon){width:var(--ion-scale-800, 32px);height:var(--ion-scale-800, 32px)}:host(.badge-xlarge){min-width:var(--ion-scale-1400, 56px);height:var(--ion-scale-1400, 56px);font-size:var(--ion-font-size-550, 1.375rem);line-height:var(--ion-font-line-height-700, 28px)}:host(.badge-xlarge) ::slotted(ion-icon){width:var(--ion-scale-1000, 40px);height:var(--ion-scale-1000, 40px)}:host(:empty){--padding-start:0;--padding-end:0}:host(.badge-small:empty){min-width:var(--ion-scale-200, 8px);height:var(--ion-scale-200, 8px)}:host(.badge-medium:empty){min-width:var(--ion-scale-300, 12px);height:var(--ion-scale-300, 12px)}:host(.badge-large:empty){min-width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px)}";
7907
7964
  var IonBadgeIonicStyle0 = badgeIonicCss;
7908
7965
 
7909
- const badgeIosCss = ":host{--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(:empty){display:none}:host{--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff);font-family:var(--ion-font-family, inherit)}:host{border-radius:10px;font-size:max(13px, 0.8125rem)}";
7966
+ const badgeIosCss = ":host{--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host([vertical]){position:absolute}:host([vertical]){inset-inline-end:0}:host(:empty.badge-vertical-top){top:0}:host(:empty.badge-vertical-bottom){bottom:0}:host{--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff);font-family:var(--ion-font-family, inherit)}:host(:empty){--padding-start:0;--padding-end:0;--padding-bottom:0;--padding-top:0;border-radius:999px;width:10px;height:10px}:host{border-radius:10px;font-size:max(13px, 0.8125rem)}";
7910
7967
  var IonBadgeIosStyle0 = badgeIosCss;
7911
7968
 
7912
- const badgeMdCss = ":host{--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(:empty){display:none}:host{--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff);font-family:var(--ion-font-family, inherit)}:host{--padding-top:3px;--padding-end:4px;--padding-bottom:4px;--padding-start:4px;border-radius:4px}";
7969
+ const badgeMdCss = ":host{--padding-top:3px;--padding-end:8px;--padding-bottom:3px;--padding-start:8px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:inline-block;min-width:10px;background:var(--background);color:var(--color);font-size:0.8125rem;font-weight:bold;line-height:1;text-align:center;white-space:nowrap;contain:content;vertical-align:baseline}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host([vertical]){position:absolute}:host([vertical]){inset-inline-end:0}:host(:empty.badge-vertical-top){top:0}:host(:empty.badge-vertical-bottom){bottom:0}:host{--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff);font-family:var(--ion-font-family, inherit)}:host(:empty){--padding-start:0;--padding-end:0;--padding-bottom:0;--padding-top:0;border-radius:999px;width:10px;height:10px}:host{--padding-top:3px;--padding-end:4px;--padding-bottom:4px;--padding-start:4px;border-radius:4px}";
7913
7970
  var IonBadgeMdStyle0 = badgeMdCss;
7914
7971
 
7915
7972
  /**
@@ -7922,6 +7979,7 @@ class Badge {
7922
7979
  this.color = undefined;
7923
7980
  this.shape = undefined;
7924
7981
  this.size = undefined;
7982
+ this.vertical = undefined;
7925
7983
  }
7926
7984
  getShape() {
7927
7985
  const theme = getIonTheme(this);
@@ -7951,11 +8009,12 @@ class Badge {
7951
8009
  const shape = this.getShape();
7952
8010
  const size = this.getSize();
7953
8011
  const theme = getIonTheme(this);
7954
- return (hAsync(Host, { key: '81deb3e063e9a3af5059ddbdfdc0a24fce4031c6', class: createColorClasses$1(this.color, {
8012
+ return (hAsync(Host, { key: 'aebcad9a9d4e650344cc855085ab30c376f9b367', class: createColorClasses$1(this.color, {
7955
8013
  [theme]: true,
7956
8014
  [`badge-${shape}`]: shape !== undefined,
7957
8015
  [`badge-${size}`]: size !== undefined,
7958
- }) }, hAsync("slot", { key: 'e398740a75207679e3eff7bf7510cc0409aaf351' })));
8016
+ [`badge-vertical-${this.vertical}`]: this.vertical !== undefined,
8017
+ }) }, hAsync("slot", { key: 'b62bca8ec3666dce3283573497b7c4306ecc7fc4' })));
7959
8018
  }
7960
8019
  static get style() { return {
7961
8020
  ionic: IonBadgeIonicStyle0,
@@ -7968,7 +8027,8 @@ class Badge {
7968
8027
  "$members$": {
7969
8028
  "color": [513],
7970
8029
  "shape": [1],
7971
- "size": [1]
8030
+ "size": [1],
8031
+ "vertical": [1]
7972
8032
  },
7973
8033
  "$listeners$": undefined,
7974
8034
  "$lazyBundleId$": "-",
@@ -29335,7 +29395,7 @@ const arrowLeftSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53
29335
29395
 
29336
29396
  const magnifyingGlassSvg = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBmaWxsPSJjdXJyZW50Q29sb3IiPjxwYXRoIGQ9Ik0yMjkuNjYsMjE4LjM0bC01MC4wNy01MC4wNmE4OC4xMSw4OC4xMSwwLDEsMC0xMS4zMSwxMS4zMWw1MC4wNiw1MC4wN2E4LDgsMCwwLDAsMTEuMzItMTEuMzJaTTQwLDExMmE3Miw3MiwwLDEsMSw3Miw3MkE3Mi4wOCw3Mi4wOCwwLDAsMSw0MCwxMTJaIi8+PC9zdmc+';
29337
29397
 
29338
- const searchbarIonicCss = ".sc-ion-searchbar-ionic-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 1);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box}.searchbar-search-icon.sc-ion-searchbar-ionic{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ionic{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ionic{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;border-radius:var(--border-radius);display:block;width:100%;min-height:inherit;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ionic::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ionic::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ionic>div.sc-ion-searchbar-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ionic:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ionic-h .searchbar-clear-button.sc-ion-searchbar-ionic{display:block}.sc-ion-searchbar-ionic-h{--background:var(--ion-primitives-neutral-100, #f5f5f5);--border-radius:var(--ion-border-radius-400, 16px);--box-shadow:none;--cancel-button-color:var(--ion-primitives-neutral-800, #626262);--clear-button-color:var(--ion-primitives-neutral-1000, #3b3b3b);--color:var(--ion-primitives-neutral-1200, #242424);--icon-color:var(--ion-primitives-neutral-800, #626262);--placeholder-color:var(--ion-primitives-neutral-800, #626262);--focus-ring-color:var(--ion-border-focus-default, #b5c0f7);--focus-ring-width:var(--ion-border-size-050, 2px);font-size:var(--ion-font-size-350, 0.875rem);font-weight:var(--ion-font-weight-regular, 400);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-600, 24px);text-decoration:none;text-transform:none;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.searchbar-search-icon.sc-ion-searchbar-ionic{top:var(--ion-scale-400, 16px);width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px)}.searchbar-search-icon.sc-ion-searchbar-ionic{inset-inline-start:var(--ion-scale-400, 16px)}.searchbar-input.sc-ion-searchbar-ionic{-webkit-padding-start:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-start:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));-webkit-padding-end:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-end:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-top:var(--ion-space-300, 12px);padding-bottom:var(--ion-space-300, 12px);min-height:var(--ion-scale-1200, 48px);contain:strict}.searchbar-clear-button.sc-ion-searchbar-ionic{top:var(--ion-scale-400, 16px);width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px);background-color:transparent;font-size:var(--ion-scale-400, 16px);contain:strict}.searchbar-clear-button.sc-ion-searchbar-ionic{inset-inline-end:var(--ion-scale-400, 16px)}.searchbar-cancel-button.sc-ion-searchbar-ionic{top:0;background-color:transparent;font-size:var(--ion-font-size-400, 1rem)}.searchbar-cancel-button.sc-ion-searchbar-ionic{inset-inline-start:9px}.searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-clear-button.sc-ion-searchbar-ionic,.searchbar-cancel-button.sc-ion-searchbar-ionic{position:absolute}.searchbar-clear-button.sc-ion-searchbar-ionic:focus-visible,.searchbar-cancel-button.sc-ion-searchbar-ionic:focus-visible ion-icon.sc-ion-searchbar-ionic{border-radius:var(--ion-border-radius-100, 4px);outline:var(--ion-border-size-050, 2px) var(--ion-border-style-solid, solid) var(--ion-border-focus-default, #b5c0f7);opacity:1}ion-toolbar.sc-ion-searchbar-ionic-h,ion-toolbar .sc-ion-searchbar-ionic-h{min-height:var(--ion-scale-1200, 48px)}.sc-ion-searchbar-ionic-h:hover{--background:var(--ion-primitives-neutral-200, #e7e7e7)}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{outline:var(--focus-ring-width) var(--ion-border-style-solid, solid) var(--focus-ring-color)}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic,.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{display:block}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic+.searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic+.searchbar-search-icon.sc-ion-searchbar-ionic{display:none}.searchbar-disabled.sc-ion-searchbar-ionic-h{--color:var(--ion-primitives-neutral-500, #a2a2a2);--icon-color:var(--ion-primitives-neutral-500, #a2a2a2);--placeholder-color:var(--ion-primitives-neutral-500, #a2a2a2);cursor:default;pointer-events:none}";
29398
+ const searchbarIonicCss = ".sc-ion-searchbar-ionic-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 1);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box}.searchbar-search-icon.sc-ion-searchbar-ionic{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ionic{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ionic{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;border-radius:var(--border-radius);display:block;width:100%;min-height:inherit;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ionic::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ionic::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ionic::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ionic>div.sc-ion-searchbar-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ionic:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ionic-h .searchbar-clear-button.sc-ion-searchbar-ionic{display:block}.sc-ion-searchbar-ionic-h{--background:var(--ion-primitives-neutral-100, #f5f5f5);--border-radius:var(--ion-border-radius-400, 16px);--box-shadow:none;--cancel-button-color:var(--ion-primitives-neutral-800, #626262);--clear-button-color:var(--ion-primitives-neutral-1000, #3b3b3b);--color:var(--ion-primitives-neutral-1200, #242424);--icon-color:var(--ion-primitives-neutral-800, #626262);--placeholder-color:var(--ion-primitives-neutral-800, #626262);--focus-ring-color:var(--ion-border-focus-default, #b5c0f7);--focus-ring-width:var(--ion-border-size-050, 2px);font-size:var(--ion-font-size-350, 0.875rem);font-weight:var(--ion-font-weight-regular, 400);letter-spacing:var(--ion-font-letter-spacing-0, 0%);line-height:var(--ion-font-line-height-600, 24px);text-decoration:none;text-transform:none;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}.searchbar-search-icon.sc-ion-searchbar-ionic{width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px)}.searchbar-input.sc-ion-searchbar-ionic{padding-top:var(--ion-space-300, 12px);padding-bottom:var(--ion-space-300, 12px);contain:strict}.searchbar-clear-button.sc-ion-searchbar-ionic{width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px);background-color:transparent;font-size:var(--ion-scale-400, 16px);contain:strict}.searchbar-cancel-button.sc-ion-searchbar-ionic{width:var(--ion-scale-400, 16px);height:var(--ion-scale-400, 16px);background-color:transparent;font-size:var(--ion-font-size-400, 1rem)}.searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-clear-button.sc-ion-searchbar-ionic,.searchbar-cancel-button.sc-ion-searchbar-ionic{top:50%;position:absolute;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.searchbar-clear-button.sc-ion-searchbar-ionic:focus-visible,.searchbar-cancel-button.sc-ion-searchbar-ionic:focus-visible ion-icon.sc-ion-searchbar-ionic{border-radius:var(--ion-border-radius-100, 4px);outline:var(--ion-border-size-050, 2px) var(--ion-border-style-solid, solid) var(--ion-border-focus-default, #b5c0f7);opacity:1}ion-toolbar.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic,ion-toolbar .searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{inset-inline-start:9px}ion-toolbar.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic,ion-toolbar .searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{-webkit-padding-start:calc(9px + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-start:calc(9px + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px))}.sc-ion-searchbar-ionic-h:hover{--background:var(--ion-primitives-neutral-200, #e7e7e7)}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{outline:var(--focus-ring-width) var(--ion-border-style-solid, solid) var(--focus-ring-color)}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic,.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{display:block}.searchbar-has-focus.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic+.searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic+.searchbar-search-icon.sc-ion-searchbar-ionic{display:none}.searchbar-disabled.sc-ion-searchbar-ionic-h{--color:var(--ion-primitives-neutral-500, #a2a2a2);--icon-color:var(--ion-primitives-neutral-500, #a2a2a2);--placeholder-color:var(--ion-primitives-neutral-500, #a2a2a2);cursor:default;pointer-events:none}.searchbar-shape-soft.sc-ion-searchbar-ionic-h{--border-radius:var(--ion-border-radius-200, 8px)}.searchbar-shape-round.sc-ion-searchbar-ionic-h{--border-radius:var(--ion-border-radius-400, 16px)}.searchbar-shape-rectangular.sc-ion-searchbar-ionic-h{--border-radius:var(--ion-border-radius-0, 0px)}.searchbar-size-small.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{-webkit-padding-start:calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-start:calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));-webkit-padding-end:calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-end:calc(var(--ion-space-300, 12px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));height:var(--ion-scale-1000, 40px)}.searchbar-size-small.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-size-small.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{inset-inline-start:var(--ion-space-300, 12px)}.searchbar-size-small.sc-ion-searchbar-ionic-h .searchbar-clear-button.sc-ion-searchbar-ionic{inset-inline-end:var(--ion-space-300, 12px)}.searchbar-size-medium.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{-webkit-padding-start:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-start:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));-webkit-padding-end:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-end:calc(var(--ion-space-400, 16px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));height:var(--ion-scale-1200, 48px)}.searchbar-size-medium.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-size-medium.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{inset-inline-start:var(--ion-space-400, 16px)}.searchbar-size-medium.sc-ion-searchbar-ionic-h .searchbar-clear-button.sc-ion-searchbar-ionic{inset-inline-end:var(--ion-space-400, 16px)}.searchbar-size-large.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-size-large.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{width:var(--ion-scale-500, 20px);height:var(--ion-scale-500, 20px)}.searchbar-size-large.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{font-size:var(--ion-font-size-500, 1.25rem)}ion-toolbar.searchbar-size-large.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic,ion-toolbar .searchbar-size-large.searchbar-should-show-cancel.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{-webkit-padding-start:calc(9px + var(--ion-scale-500, 20px) + var(--ion-space-200, 8px));padding-inline-start:calc(9px + var(--ion-scale-500, 20px) + var(--ion-space-200, 8px))}.searchbar-size-large.sc-ion-searchbar-ionic-h .searchbar-input.sc-ion-searchbar-ionic{padding-top:var(--ion-space-400, 16px);padding-bottom:var(--ion-space-400, 16px);-webkit-padding-start:calc(var(--ion-space-500, 20px) + var(--ion-scale-500, 20px) + var(--ion-space-200, 8px));padding-inline-start:calc(var(--ion-space-500, 20px) + var(--ion-scale-500, 20px) + var(--ion-space-200, 8px));-webkit-padding-end:calc(var(--ion-space-500, 20px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));padding-inline-end:calc(var(--ion-space-500, 20px) + var(--ion-scale-400, 16px) + var(--ion-space-200, 8px));height:var(--ion-scale-1400, 56px)}.searchbar-size-large.sc-ion-searchbar-ionic-h .searchbar-search-icon.sc-ion-searchbar-ionic,.searchbar-size-large.sc-ion-searchbar-ionic-h .searchbar-cancel-button.sc-ion-searchbar-ionic{inset-inline-start:var(--ion-space-500, 20px)}.searchbar-size-large.sc-ion-searchbar-ionic-h .searchbar-clear-button.sc-ion-searchbar-ionic{inset-inline-end:var(--ion-space-500, 20px)}";
29339
29399
  var IonSearchbarIonicStyle0 = searchbarIonicCss;
29340
29400
 
29341
29401
  const searchbarIosCss = ".sc-ion-searchbar-ios-h{--placeholder-color:initial;--placeholder-font-style:initial;--placeholder-font-weight:initial;--placeholder-opacity:var(--ion-placeholder-opacity, 1);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box}.searchbar-search-icon.sc-ion-searchbar-ios{color:var(--icon-color);pointer-events:none}.searchbar-input-container.sc-ion-searchbar-ios{display:block;position:relative;-ms-flex-negative:1;flex-shrink:1;width:100%}.searchbar-input.sc-ion-searchbar-ios{color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-align:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;white-space:inherit;border-radius:var(--border-radius);display:block;width:100%;min-height:inherit;border:0;outline:none;background:var(--background);font-family:inherit;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-input.sc-ion-searchbar-ios::-webkit-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-moz-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios:-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-ms-input-placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::placeholder{color:var(--placeholder-color);font-family:inherit;font-style:var(--placeholder-font-style);font-weight:var(--placeholder-font-weight);opacity:var(--placeholder-opacity)}.searchbar-input.sc-ion-searchbar-ios::-webkit-search-cancel-button,.searchbar-input.sc-ion-searchbar-ios::-ms-clear{display:none}.searchbar-cancel-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:none;height:100%;border:0;outline:none;color:var(--cancel-button-color);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-cancel-button.sc-ion-searchbar-ios>div.sc-ion-searchbar-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%}.searchbar-clear-button.sc-ion-searchbar-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:none;min-height:0;outline:none;color:var(--clear-button-color);-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbar-clear-button.sc-ion-searchbar-ios:focus{opacity:0.5}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios{display:block}.sc-ion-searchbar-ios-h{--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);font-family:var(--ion-font-family, inherit)}.ion-color.sc-ion-searchbar-ios-h{color:var(--ion-color-contrast)}.ion-color.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{background:var(--ion-color-base)}.ion-color.sc-ion-searchbar-ios-h .searchbar-clear-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:inherit}.searchbar-disabled.sc-ion-searchbar-ios-h{cursor:default;opacity:0.4;pointer-events:none}.sc-ion-searchbar-ios-h{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.07);--border-radius:10px;--box-shadow:none;--cancel-button-color:var(--ion-color-primary, #0054e9);--clear-button-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));--color:var(--ion-text-color, #000);--icon-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666));-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:12px;padding-bottom:12px;min-height:60px;contain:content}.searchbar-input-container.sc-ion-searchbar-ios{min-height:36px}.searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:calc(50% - 60px);margin-inline-start:calc(50% - 60px);top:0;position:absolute;width:1.375rem;height:100%;contain:strict}.searchbar-search-icon.sc-ion-searchbar-ios{inset-inline-start:5px}.searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:6px;padding-bottom:6px;height:100%;font-size:1.0625rem;font-weight:400;contain:strict}.searchbar-has-value.searchbar-should-show-clear.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:1.75rem;padding-inline-start:1.75rem;-webkit-padding-end:1.75rem;padding-inline-end:1.75rem}.searchbar-clear-button.sc-ion-searchbar-ios{top:0;background-position:center;position:absolute;width:1.875rem;height:100%;border:0;background-color:transparent}.searchbar-clear-button.sc-ion-searchbar-ios{inset-inline-end:0}.searchbar-clear-icon.sc-ion-searchbar-ios{width:1.125rem;height:100%}.searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0;background-color:transparent;font-size:17px}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{-webkit-margin-start:0;margin-inline-start:0}.searchbar-left-aligned.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-padding-start:1.875rem;padding-inline-start:1.875rem}.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{display:block}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios{-webkit-transition:all 300ms ease;transition:all 300ms ease}.searchbar-animated.searchbar-has-focus.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios,.searchbar-animated.searchbar-should-show-cancel.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{opacity:1;pointer-events:auto}.searchbar-animated.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-margin-end:-100%;margin-inline-end:-100%;-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);-webkit-transition:all 300ms ease;transition:all 300ms ease;opacity:0;pointer-events:none}.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-input.sc-ion-searchbar-ios,.searchbar-no-animate.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{-webkit-transition-duration:0ms;transition-duration:0ms}.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios{color:var(--ion-color-base)}@media (any-hover: hover){.ion-color.sc-ion-searchbar-ios-h .searchbar-cancel-button.sc-ion-searchbar-ios:hover{color:var(--ion-color-tint)}}ion-toolbar.sc-ion-searchbar-ios-h,ion-toolbar .sc-ion-searchbar-ios-h{padding-top:1px;padding-bottom:15px;min-height:52px}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color),ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color){color:inherit}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-cancel-button.sc-ion-searchbar-ios{color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h .searchbar-search-icon.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-input.sc-ion-searchbar-ios{background:rgba(var(--ion-color-contrast-rgb), 0.07);color:currentColor}ion-toolbar.ion-color.sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios,ion-toolbar.ion-color .sc-ion-searchbar-ios-h:not(.ion-color) .searchbar-clear-button.sc-ion-searchbar-ios{color:currentColor;opacity:0.5}";
@@ -29482,6 +29542,8 @@ class Searchbar {
29482
29542
  this.spellcheck = false;
29483
29543
  this.type = 'search';
29484
29544
  this.value = '';
29545
+ this.shape = undefined;
29546
+ this.size = undefined;
29485
29547
  }
29486
29548
  /**
29487
29549
  * lang and dir are globally enumerated attributes.
@@ -29713,6 +29775,30 @@ class Searchbar {
29713
29775
  }
29714
29776
  return true;
29715
29777
  }
29778
+ getShape() {
29779
+ const theme = getIonTheme(this);
29780
+ const { shape } = this;
29781
+ // TODO(ROU-11677): Remove theme check when shapes are defined for all themes.
29782
+ if (theme !== 'ionic') {
29783
+ return undefined;
29784
+ }
29785
+ if (shape === undefined) {
29786
+ return 'round';
29787
+ }
29788
+ return shape;
29789
+ }
29790
+ getSize() {
29791
+ const theme = getIonTheme(this);
29792
+ const { size } = this;
29793
+ // TODO(ROU-11678): Remove theme check when sizes are defined for all themes.
29794
+ if (theme !== 'ionic') {
29795
+ return undefined;
29796
+ }
29797
+ if (size === undefined) {
29798
+ return 'medium';
29799
+ }
29800
+ return size;
29801
+ }
29716
29802
  /**
29717
29803
  * Get the icon to use for the clear icon.
29718
29804
  * If an icon is set on the component, use that.
@@ -29787,8 +29873,10 @@ class Searchbar {
29787
29873
  const animated = this.animated && config.getBoolean('animated', true);
29788
29874
  const theme = getIonTheme(this);
29789
29875
  const shouldShowCancelButton = this.shouldShowCancelButton();
29790
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("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" }, hAsync("div", { key: 'cb3a77783c75bbc78acdc7df9c75abcc415188d9', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (hAsync("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
29791
- return (hAsync(Host, { key: '33fdf75d5f7ce578cfbb7c4befa816c2b30469ac', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
29876
+ const shape = this.getShape();
29877
+ const size = this.getSize();
29878
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("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" }, hAsync("div", { key: '7ccba83e849da1cf9a1d9ae4818466170c4e7636', "aria-hidden": "true" }, theme === 'md' || theme === 'ionic' ? (hAsync("ion-icon", { "aria-hidden": "true", icon: searchbarCancelIcon, lazy: false })) : (cancelButtonText))));
29879
+ return (hAsync(Host, { key: '0a88320a2d0a836dcfc3befce5e46d105c5c3cc1', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
29792
29880
  [theme]: true,
29793
29881
  'searchbar-animated': animated,
29794
29882
  'searchbar-disabled': this.disabled,
@@ -29798,14 +29886,16 @@ class Searchbar {
29798
29886
  'searchbar-has-focus': this.focused,
29799
29887
  'searchbar-should-show-clear': this.shouldShowClearButton(),
29800
29888
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
29801
- }) }, hAsync("div", { key: '8a5accb217a1efccc1cd417cef8b95996e277c07', class: "searchbar-input-container" }, hAsync("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, hAsync("ion-icon", { key: 'e85d30887e0b8eb264f86f682362882f4d14bf61', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '73aeda33d35e499a7f9edbb550707f2d5a234110', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
29889
+ [`searchbar-shape-${shape}`]: shape !== undefined,
29890
+ [`searchbar-size-${size}`]: size !== undefined,
29891
+ }) }, hAsync("div", { key: '8a409a99570c2616bc5e414d64b6aba7f508e149', class: "searchbar-input-container" }, hAsync("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, hAsync("ion-icon", { key: 'd69af04b0790264ecc717ca45e4846359fec494d', "aria-hidden": "true", icon: searchbarSearchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '5f0d2cc8e1f27891e3c77ac9a132b98d5a3a469e', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
29802
29892
  /**
29803
29893
  * This prevents mobile browsers from
29804
29894
  * blurring the input when the clear
29805
29895
  * button is activated.
29806
29896
  */
29807
29897
  ev.preventDefault();
29808
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '9c9c376352470fc45877f1b89dfecf2c5ca2cc71', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme === 'ios' && cancelButton));
29898
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '6c51c6fc759460fc0241df7b973e79bc732a8832', "aria-hidden": "true", icon: searchbarClearIcon, lazy: false, class: "searchbar-clear-icon" }))), theme === 'ios' && cancelButton));
29809
29899
  }
29810
29900
  get el() { return getElement(this); }
29811
29901
  static get watchers() { return {
@@ -29846,6 +29936,8 @@ class Searchbar {
29846
29936
  "spellcheck": [4],
29847
29937
  "type": [1],
29848
29938
  "value": [1025],
29939
+ "shape": [1],
29940
+ "size": [1],
29849
29941
  "focused": [32],
29850
29942
  "noAnimate": [32],
29851
29943
  "setFocus": [64],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.4.2-dev.11740495088.1d73faf5",
3
+ "version": "8.4.2-dev.11741359058.1ab81f3d",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{i as initialize}from"./ionic-global-3c97a4aa.js";var globalScripts=initialize;export{globalScripts as g};
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- var ION_FOCUSED="ion-focused";var ION_FOCUSABLE="ion-focusable";var FOCUS_KEYS=["Tab","ArrowDown","Space","Escape"," ","Shift","Enter","ArrowLeft","ArrowRight","ArrowUp","Home","End"];var focusVisibleUtility=null;var getOrInitFocusVisibleUtility=function(){if(!focusVisibleUtility){focusVisibleUtility=startFocusVisible()}return focusVisibleUtility};var startFocusVisible=function(t){var i=[];var o=true;var r=t?t.shadowRoot:document;var n=t?t:document.body;var u=function(t){i.forEach((function(t){return t.classList.remove(ION_FOCUSED)}));t.forEach((function(t){return t.classList.add(ION_FOCUSED)}));i=t};var e=function(){o=false;u([])};var s=function(t){o=FOCUS_KEYS.includes(t.key);if(!o){u([])}};var c=function(t){if(o&&t.composedPath!==undefined){var i=t.composedPath().filter((function(t){if(t.classList){return t.classList.contains(ION_FOCUSABLE)}return false}));u(i)}};var f=function(){if(r.activeElement===n){u([])}};r.addEventListener("keydown",s);r.addEventListener("focusin",c);r.addEventListener("focusout",f);r.addEventListener("touchstart",e,{passive:true});r.addEventListener("mousedown",e);var a=function(){r.removeEventListener("keydown",s);r.removeEventListener("focusin",c);r.removeEventListener("focusout",f);r.removeEventListener("touchstart",e);r.removeEventListener("mousedown",e)};return{destroy:a,setFocus:u}};export{getOrInitFocusVisibleUtility,startFocusVisible};
@@ -1,4 +0,0 @@
1
- import{__spreadArray}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */import{c as config}from"./config-84eb9670.js";var transitionEndAsync=function(r,a){if(a===void 0){a=0}return new Promise((function(i){transitionEnd(r,a,i)}))};var transitionEnd=function(r,a,i){if(a===void 0){a=0}var e;var n;var t={passive:true};var o=500;var u=function(){if(e){e()}};var s=function(a){if(a===undefined||r===a.target){u();i(a)}};if(r){r.addEventListener("webkitTransitionEnd",s,t);r.addEventListener("transitionend",s,t);n=setTimeout(s,a+o);e=function(){if(n!==undefined){clearTimeout(n);n=undefined}r.removeEventListener("webkitTransitionEnd",s,t);r.removeEventListener("transitionend",s,t)}}return u};var componentOnReady=function(r,a){if(r.componentOnReady){r.componentOnReady().then((function(r){return a(r)}))}else{raf((function(){return a(r)}))}};var hasLazyBuild=function(r){return r.componentOnReady!==undefined};var inheritAttributes=function(r,a){if(a===void 0){a=[]}var i={};a.forEach((function(a){if(r.hasAttribute(a)){var e=r.getAttribute(a);if(e!==null){i[a]=r.getAttribute(a)}r.removeAttribute(a)}}));return i};var ariaAttributes=["role","aria-activedescendant","aria-atomic","aria-autocomplete","aria-braillelabel","aria-brailleroledescription","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colindextext","aria-colspan","aria-controls","aria-current","aria-describedby","aria-description","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowindextext","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext"];var inheritAriaAttributes=function(r,a){var i=ariaAttributes;if(a&&a.length>0){i=i.filter((function(r){return!a.includes(r)}))}return inheritAttributes(r,i)};var addEventListener=function(r,a,i,e){var n;if(typeof window!=="undefined"){var t=window;var o=(n=t===null||t===void 0?void 0:t.Ionic)===null||n===void 0?void 0:n.config;if(o){var u=o.get("_ael");if(u){return u(r,a,i,e)}else if(o._ael){return o._ael(r,a,i,e)}}}return r.addEventListener(a,i,e)};var removeEventListener=function(r,a,i,e){var n;if(typeof window!=="undefined"){var t=window;var o=(n=t===null||t===void 0?void 0:t.Ionic)===null||n===void 0?void 0:n.config;if(o){var u=o.get("_rel");if(u){return u(r,a,i,e)}else if(o._rel){return o._rel(r,a,i,e)}}}return r.removeEventListener(a,i,e)};var getElementRoot=function(r,a){if(a===void 0){a=r}return r.shadowRoot||a};var raf=function(r){if(typeof __zone_symbol__requestAnimationFrame==="function"){return __zone_symbol__requestAnimationFrame(r)}if(typeof requestAnimationFrame==="function"){return requestAnimationFrame(r)}return setTimeout(r)};var hasShadowDom=function(r){return!!r.shadowRoot&&!!r.attachShadow};var focusVisibleElement=function(r){r.focus();if(r.classList.contains("ion-focusable")){var a=config.get("appRootSelector","ion-app");var i=r.closest(a);if(i){i.setFocus([r])}}};var renderHiddenInput=function(r,a,i,e,n){if(r||hasShadowDom(a)){var t=a.querySelector("input.aux-input");if(!t){t=a.ownerDocument.createElement("input");t.type="hidden";t.classList.add("aux-input");a.appendChild(t)}t.disabled=n;t.name=i;t.value=e||""}};var clamp=function(r,a,i){return Math.max(r,Math.min(a,i))};var assert=function(r,a){if(!r){var i="ASSERT: "+a;console.error(i);debugger;throw new Error(i)}};var pointerCoord=function(r){if(r){var a=r.changedTouches;if(a&&a.length>0){var i=a[0];return{x:i.clientX,y:i.clientY}}if(r.pageX!==undefined){return{x:r.pageX,y:r.pageY}}}return{x:0,y:0}};var isEndSide=function(r){var a=document.dir==="rtl";switch(r){case"start":return a;case"end":return!a;default:throw new Error('"'.concat(r,'" is not a valid value for [side]. Use "start" or "end" instead.'))}};var debounceEvent=function(r,a){var i=r._original||r;return{_original:r,emit:debounce(i.emit.bind(i),a)}};var debounce=function(r,a){if(a===void 0){a=0}var i;return function(){var e=[];for(var n=0;n<arguments.length;n++){e[n]=arguments[n]}clearTimeout(i);i=setTimeout.apply(void 0,__spreadArray([r,a],e,false))}};var shallowEqualStringMap=function(r,a){r!==null&&r!==void 0?r:r={};a!==null&&a!==void 0?a:a={};if(r===a){return true}var i=Object.keys(r);if(i.length!==Object.keys(a).length){return false}for(var e=0,n=i;e<n.length;e++){var t=n[e];if(!(t in a)){return false}if(r[t]!==a[t]){return false}}return true};export{addEventListener as a,removeEventListener as b,componentOnReady as c,renderHiddenInput as d,debounceEvent as e,focusVisibleElement as f,getElementRoot as g,inheritAttributes as h,inheritAriaAttributes as i,clamp as j,hasLazyBuild as k,hasShadowDom as l,assert as m,isEndSide as n,debounce as o,pointerCoord as p,raf as r,shallowEqualStringMap as s,transitionEndAsync as t};
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{d as doc}from"./ionic-global-3c97a4aa.js";import{p as pointerCoord}from"./helpers-f08d15bd.js";import"./index-723c0e5d.js";import"./config-84eb9670.js";var startTapClick=function(e){if(doc===undefined){return}var r=0;var t;var n;var i;var a=e.getBoolean("animated",true)&&e.getBoolean("rippleEffect",true);var f=new WeakMap;var o=function(){if(i)clearTimeout(i);i=undefined;if(t){E(false);t=undefined}};var u=function(e){if(t||e.button===2){return}v(getActivatableTarget(e),e)};var c=function(e){v(undefined,e)};var v=function(e,r){if(e&&e===t){return}if(i)clearTimeout(i);i=undefined;var n=pointerCoord(r),a=n.x,o=n.y;if(t){if(f.has(t)){throw new Error("internal error")}if(!t.classList.contains(ACTIVATED)){d(t,a,o)}E(true)}if(e){var u=f.get(e);if(u){clearTimeout(u);f.delete(e)}e.classList.remove(ACTIVATED);var c=function(){d(e,a,o);i=undefined};if(isInstant(e)){c()}else{i=setTimeout(c,ADD_ACTIVATED_DEFERS)}}t=e};var d=function(e,t,i){r=Date.now();e.classList.add(ACTIVATED);if(!a)return;var f=getRippleEffect(e);if(f!==null){T();n=f.addRipple(t,i)}};var T=function(){if(n!==undefined){n.then((function(e){return e()}));n=undefined}};var E=function(e){T();var n=t;if(!n){return}var i=CLEAR_STATE_DEFERS-Date.now()+r;if(e&&i>0&&!isInstant(n)){var a=setTimeout((function(){n.classList.remove(ACTIVATED);f.delete(n)}),CLEAR_STATE_DEFERS);f.set(n,a)}else{n.classList.remove(ACTIVATED)}};doc.addEventListener("ionGestureCaptured",o);doc.addEventListener("pointerdown",u,true);doc.addEventListener("pointerup",c,true);doc.addEventListener("pointercancel",o,true)};var getActivatableTarget=function(e){if(e.composedPath!==undefined){var r=e.composedPath();for(var t=0;t<r.length-2;t++){var n=r[t];if(!(n instanceof ShadowRoot)&&n.classList.contains("ion-activatable")){return n}}}else{return e.target.closest(".ion-activatable")}};var isInstant=function(e){return e.classList.contains("ion-activatable-instant")};var getRippleEffect=function(e){if(e.shadowRoot){var r=e.shadowRoot.querySelector("ion-ripple-effect");if(r){return r}}return e.querySelector("ion-ripple-effect")};var ACTIVATED="ion-activated";var ADD_ACTIVATED_DEFERS=100;var CLEAR_STATE_DEFERS=150;export{startTapClick};
@@ -1,4 +0,0 @@
1
- import{__awaiter,__generator,__spreadArray}from"tslib";
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */import{w as win,d as doc}from"./ionic-global-3c97a4aa.js";import{g as getScrollElement,c as scrollByPoint,f as findClosestIonContent}from"./index-7bd160c2.js";import{a as addEventListener,b as removeEventListener,r as raf,c as componentOnReady}from"./helpers-f08d15bd.js";import{a as KeyboardResize,K as Keyboard}from"./keyboard-9bbd546a.js";import"./index-723c0e5d.js";import"./config-84eb9670.js";import"./capacitor-6b0341c8.js";var cloneMap=new WeakMap;var relocateInput=function(r,n,e,t,i){if(t===void 0){t=0}if(i===void 0){i=false}if(cloneMap.has(r)===e){return}if(e){addClone(r,n,t,i)}else{removeClone(r,n)}};var isFocused=function(r){return r===r.getRootNode().activeElement};var addClone=function(r,n,e,t){if(t===void 0){t=false}var i=n.parentNode;var o=n.cloneNode(false);o.classList.add("cloned-input");o.tabIndex=-1;if(t){o.disabled=true}i.appendChild(o);cloneMap.set(r,o);var a=r.ownerDocument;var u=a.dir==="rtl"?9999:-9999;r.style.pointerEvents="none";n.style.transform="translate3d(".concat(u,"px,").concat(e,"px,0) scale(0)")};var removeClone=function(r,n){var e=cloneMap.get(r);if(e){cloneMap.delete(r);e.remove()}r.style.pointerEvents="";n.style.transform=""};var SCROLL_AMOUNT_PADDING=50;var enableHideCaretOnScroll=function(r,n,e){if(!e||!n){return function(){return}}var t=function(e){if(isFocused(n)){relocateInput(r,n,e)}};var i=function(){return relocateInput(r,n,false)};var o=function(){return t(true)};var a=function(){return t(false)};addEventListener(e,"ionScrollStart",o);addEventListener(e,"ionScrollEnd",a);n.addEventListener("blur",i);return function(){removeEventListener(e,"ionScrollStart",o);removeEventListener(e,"ionScrollEnd",a);n.removeEventListener("blur",i)}};var SKIP_SELECTOR="input, textarea, [no-blur], [contenteditable]";var enableInputBlurring=function(){var r=true;var n=false;var e=document;var t=function(){n=true};var i=function(){r=true};var o=function(t){if(n){n=false;return}var i=e.activeElement;if(!i){return}if(i.matches(SKIP_SELECTOR)){return}var o=t.target;if(o===i){return}if(o.matches(SKIP_SELECTOR)||o.closest(SKIP_SELECTOR)){return}r=false;setTimeout((function(){if(!r){i.blur()}}),50)};addEventListener(e,"ionScrollStart",t);e.addEventListener("focusin",i,true);e.addEventListener("touchend",o,false);return function(){removeEventListener(e,"ionScrollStart",t,true);e.removeEventListener("focusin",i,true);e.removeEventListener("touchend",o,false)}};var SCROLL_ASSIST_SPEED=.3;var getScrollData=function(r,n,e,t){var i;var o=(i=r.closest("ion-item,[ion-item]"))!==null&&i!==void 0?i:r;return calcScrollData(o.getBoundingClientRect(),n.getBoundingClientRect(),e,t)};var calcScrollData=function(r,n,e,t){var i=r.top;var o=r.bottom;var a=n.top;var u=Math.min(n.bottom,t-e);var c=a+15;var d=u-SCROLL_AMOUNT_PADDING;var l=d-o;var f=c-i;var s=Math.round(l<0?-l:f>0?-f:0);var v=Math.min(s,i-a);var S=Math.abs(v);var _=S/SCROLL_ASSIST_SPEED;var w=Math.min(400,Math.max(150,_));return{scrollAmount:v,scrollDuration:w,scrollPadding:e,inputSafeY:-(i-c)+4}};var PADDING_TIMER_KEY="$ionPaddingTimer";var setScrollPadding=function(r,n,e){var t=r[PADDING_TIMER_KEY];if(t){clearTimeout(t)}if(n>0){r.style.setProperty("--keyboard-offset","".concat(n,"px"))}else{r[PADDING_TIMER_KEY]=setTimeout((function(){r.style.setProperty("--keyboard-offset","0px");if(e){e()}}),120)}};var setClearScrollPaddingListener=function(r,n,e){var t=function(){if(n){setScrollPadding(n,0,e)}};r.addEventListener("focusout",t,{once:true})};var currentPadding=0;var SKIP_SCROLL_ASSIST="data-ionic-skip-scroll-assist";var enableScrollAssist=function(r,n,e,t,i,o,a,u){if(u===void 0){u=false}var c=o&&(a===undefined||a.mode===KeyboardResize.None);var d=false;var l=win!==undefined?win.innerHeight:0;var f=function(i){if(d===false){d=true;return}jsSetFocus(r,n,e,t,i.detail.keyboardHeight,c,u,l,false)};var s=function(){d=false;win===null||win===void 0?void 0:win.removeEventListener("ionKeyboardDidShow",f);r.removeEventListener("focusout",s)};var v=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(o){if(n.hasAttribute(SKIP_SCROLL_ASSIST)){n.removeAttribute(SKIP_SCROLL_ASSIST);return[2]}jsSetFocus(r,n,e,t,i,c,u,l);win===null||win===void 0?void 0:win.addEventListener("ionKeyboardDidShow",f);r.addEventListener("focusout",s);return[2]}))}))};r.addEventListener("focusin",v);return function(){r.removeEventListener("focusin",v);win===null||win===void 0?void 0:win.removeEventListener("ionKeyboardDidShow",f);r.removeEventListener("focusout",s)}};var setManualFocus=function(r){if(document.activeElement===r){return}r.setAttribute(SKIP_SCROLL_ASSIST,"true");r.focus()};var jsSetFocus=function(r,n,e,t,i,o){var a=[];for(var u=6;u<arguments.length;u++){a[u-6]=arguments[u]}return __awaiter(void 0,__spreadArray([r,n,e,t,i,o],a,true),void 0,(function(r,n,e,t,i,o,a,u,c){var d,l,f,s,v,S;if(a===void 0){a=false}if(u===void 0){u=0}if(c===void 0){c=true}return __generator(this,(function(_){switch(_.label){case 0:if(!e&&!t){return[2]}d=getScrollData(r,e||t,i,u);if(e&&Math.abs(d.scrollAmount)<4){setManualFocus(n);if(o&&e!==null){setScrollPadding(e,currentPadding);setClearScrollPaddingListener(n,e,(function(){return currentPadding=0}))}return[2]}relocateInput(r,n,true,d.inputSafeY,a);setManualFocus(n);raf((function(){return r.click()}));if(o&&e){currentPadding=d.scrollPadding;setScrollPadding(e,currentPadding)}if(!(typeof window!=="undefined"))return[3,3];f=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(t){switch(t.label){case 0:if(l!==undefined){clearTimeout(l)}window.removeEventListener("ionKeyboardDidShow",s);window.removeEventListener("ionKeyboardDidShow",f);if(!e)return[3,2];return[4,scrollByPoint(e,0,d.scrollAmount,d.scrollDuration)];case 1:t.sent();t.label=2;case 2:relocateInput(r,n,false,d.inputSafeY);setManualFocus(n);if(o){setClearScrollPaddingListener(n,e,(function(){return currentPadding=0}))}return[2]}}))}))};s=function(){window.removeEventListener("ionKeyboardDidShow",s);window.addEventListener("ionKeyboardDidShow",f)};if(!e)return[3,2];return[4,getScrollElement(e)];case 1:v=_.sent();S=v.scrollHeight-v.clientHeight;if(c&&d.scrollAmount>S-v.scrollTop){if(n.type==="password"){d.scrollAmount+=SCROLL_AMOUNT_PADDING;window.addEventListener("ionKeyboardDidShow",s)}else{window.addEventListener("ionKeyboardDidShow",f)}l=setTimeout(f,1e3);return[2]}_.label=2;case 2:f();_.label=3;case 3:return[2]}}))}))};var INPUT_BLURRING=true;var startInputShims=function(r,n){return __awaiter(void 0,void 0,void 0,(function(){var e,t,i,o,a,u,c,d,l,f,s,v,S,_,w,p;return __generator(this,(function(I){switch(I.label){case 0:if(doc===undefined){return[2]}e=n==="ios";t=n==="android";i=r.getNumber("keyboardHeight",290);o=r.getBoolean("scrollAssist",true);a=r.getBoolean("hideCaretOnScroll",e);u=r.getBoolean("inputBlurring",false);c=r.getBoolean("scrollPadding",true);d=Array.from(doc.querySelectorAll("ion-input, ion-textarea"));l=new WeakMap;f=new WeakMap;return[4,Keyboard.getResizeMode()];case 1:s=I.sent();v=function(r){return __awaiter(void 0,void 0,void 0,(function(){var n,e,u,d,v,S,v;return __generator(this,(function(_){switch(_.label){case 0:return[4,new Promise((function(n){return componentOnReady(r,n)}))];case 1:_.sent();n=r.shadowRoot||r;e=n.querySelector("input")||n.querySelector("textarea");u=findClosestIonContent(r);d=!u?r.closest("ion-footer"):null;if(!e){return[2]}if(!!u&&a&&!l.has(r)){v=enableHideCaretOnScroll(r,e,u);l.set(r,v)}S=e.type==="date"||e.type==="datetime-local";if(!S&&(!!u||!!d)&&o&&!f.has(r)){v=enableScrollAssist(r,e,u,d,i,c,s,t);f.set(r,v)}return[2]}}))}))};S=function(r){if(a){var n=l.get(r);if(n){n()}l.delete(r)}if(o){var n=f.get(r);if(n){n()}f.delete(r)}};if(u&&INPUT_BLURRING){enableInputBlurring()}for(_=0,w=d;_<w.length;_++){p=w[_];v(p)}doc.addEventListener("ionInputDidLoad",(function(r){v(r.detail)}));doc.addEventListener("ionInputDidUnload",(function(r){S(r.detail)}));return[2]}}))}))};export{startInputShims};