@ionic/core 8.3.5-nightly.20241101 → 8.4.0

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 (496) hide show
  1. package/components/alert.js +7 -5
  2. package/components/backdrop.js +1 -1
  3. package/components/button.js +2 -2
  4. package/components/buttons.js +2 -2
  5. package/components/checkbox.js +7 -5
  6. package/components/content.js +446 -0
  7. package/components/header.js +356 -0
  8. package/components/index4.js +2 -2
  9. package/components/ion-app.js +1 -1
  10. package/components/ion-avatar.js +1 -1
  11. package/components/ion-back-button.js +2 -2
  12. package/components/ion-badge.js +2 -2
  13. package/components/ion-breadcrumb.js +4 -4
  14. package/components/ion-breadcrumbs.js +2 -2
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +2 -2
  17. package/components/ion-card-subtitle.js +2 -2
  18. package/components/ion-card-title.js +2 -2
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-chip.js +2 -2
  21. package/components/ion-col.js +2 -2
  22. package/components/ion-content.js +1 -441
  23. package/components/ion-datetime-button.js +2 -2
  24. package/components/ion-datetime.js +2 -2
  25. package/components/ion-fab-button.js +2 -2
  26. package/components/ion-fab-list.js +2 -2
  27. package/components/ion-fab.js +2 -2
  28. package/components/ion-footer.js +2 -2
  29. package/components/ion-grid.js +2 -2
  30. package/components/ion-header.js +1 -351
  31. package/components/ion-img.js +1 -1
  32. package/components/ion-infinite-scroll-content.js +2 -2
  33. package/components/ion-infinite-scroll.js +1 -1
  34. package/components/ion-input-password-toggle.js +3 -3
  35. package/components/ion-input.js +3 -3
  36. package/components/ion-item-divider.js +2 -2
  37. package/components/ion-item-group.js +1 -1
  38. package/components/ion-item-option.js +2 -2
  39. package/components/ion-item-options.js +1 -1
  40. package/components/ion-item-sliding.js +1 -1
  41. package/components/ion-loading.js +2 -2
  42. package/components/ion-menu-button.js +2 -2
  43. package/components/ion-menu-toggle.js +2 -2
  44. package/components/ion-menu.js +19 -19
  45. package/components/ion-modal.js +1 -1737
  46. package/components/ion-nav-link.js +1 -1
  47. package/components/ion-nav.js +1 -1
  48. package/components/ion-note.js +2 -2
  49. package/components/ion-picker-legacy.js +2 -2
  50. package/components/ion-progress-bar.js +1 -1
  51. package/components/ion-range.js +3 -3
  52. package/components/ion-refresher-content.js +1 -1
  53. package/components/ion-refresher.js +1 -1
  54. package/components/ion-reorder-group.js +1 -1
  55. package/components/ion-reorder.js +1 -1
  56. package/components/ion-router-link.js +2 -2
  57. package/components/ion-router-outlet.js +1 -1
  58. package/components/ion-row.js +1 -1
  59. package/components/ion-searchbar.js +4 -4
  60. package/components/ion-segment-button.js +24 -5
  61. package/components/ion-segment-content.d.ts +11 -0
  62. package/components/ion-segment-content.js +37 -0
  63. package/components/ion-segment-view.d.ts +11 -0
  64. package/components/ion-segment-view.js +140 -0
  65. package/components/ion-segment.js +110 -15
  66. package/components/ion-select-modal.d.ts +11 -0
  67. package/components/ion-select-modal.js +9 -0
  68. package/components/ion-select-option.js +1 -1
  69. package/components/ion-select.js +114 -41
  70. package/components/ion-skeleton-text.js +2 -2
  71. package/components/ion-split-pane.js +2 -2
  72. package/components/ion-tab-bar.js +2 -2
  73. package/components/ion-tab-button.js +2 -2
  74. package/components/ion-tab.js +2 -2
  75. package/components/ion-tabs.js +1 -1
  76. package/components/ion-text.js +2 -2
  77. package/components/ion-textarea.js +2 -2
  78. package/components/ion-thumbnail.js +1 -1
  79. package/components/ion-title.js +1 -70
  80. package/components/ion-toast.js +2 -2
  81. package/components/ion-toggle.js +3 -3
  82. package/components/ion-toolbar.js +1 -88
  83. package/components/label.js +2 -2
  84. package/components/list-header.js +2 -2
  85. package/components/list.js +1 -1
  86. package/components/modal.js +1742 -0
  87. package/components/picker-column-option.js +2 -2
  88. package/components/picker-column.js +3 -3
  89. package/components/picker-column2.js +2 -2
  90. package/components/picker.js +2 -2
  91. package/components/popover.js +2 -2
  92. package/components/radio-group.js +5 -3
  93. package/components/radio.js +7 -5
  94. package/components/ripple-effect.js +1 -1
  95. package/components/select-modal.js +197 -0
  96. package/components/select-popover.js +1 -1
  97. package/components/spinner.js +1 -1
  98. package/components/title.js +75 -0
  99. package/components/toolbar.js +93 -0
  100. package/dist/cjs/{index-9cd00dc3.js → index-8e789962.js} +2 -2
  101. package/dist/cjs/index.cjs.js +1 -1
  102. package/dist/cjs/ion-alert.cjs.entry.js +7 -5
  103. package/dist/cjs/ion-app_8.cjs.entry.js +15 -15
  104. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  105. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  106. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
  107. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +6 -6
  108. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-card_5.cjs.entry.js +8 -8
  110. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -4
  111. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  112. package/dist/cjs/ion-col_3.cjs.entry.js +5 -5
  113. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-datetime_3.cjs.entry.js +6 -6
  115. package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
  116. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  117. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  118. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  119. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  121. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  122. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  123. package/dist/cjs/ion-menu_3.cjs.entry.js +23 -23
  124. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  125. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  126. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  127. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  128. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  129. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  130. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  131. package/dist/cjs/ion-radio_2.cjs.entry.js +12 -8
  132. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  133. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  134. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  135. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  136. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  137. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  138. package/dist/cjs/ion-segment-content.cjs.entry.js +23 -0
  139. package/dist/cjs/ion-segment-view.cjs.entry.js +122 -0
  140. package/dist/cjs/ion-segment_2.cjs.entry.js +132 -19
  141. package/dist/cjs/ion-select-modal.cjs.entry.js +111 -0
  142. package/dist/cjs/ion-select_3.cjs.entry.js +39 -14
  143. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  144. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  145. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  146. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  147. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  148. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  149. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  150. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  151. package/dist/cjs/ionic.cjs.js +1 -1
  152. package/dist/cjs/loader.cjs.js +1 -1
  153. package/dist/collection/collection-manifest.json +3 -0
  154. package/dist/collection/components/alert/alert.js +7 -5
  155. package/dist/collection/components/app/app.js +1 -1
  156. package/dist/collection/components/avatar/avatar.js +1 -1
  157. package/dist/collection/components/back-button/back-button.js +2 -2
  158. package/dist/collection/components/backdrop/backdrop.js +1 -1
  159. package/dist/collection/components/badge/badge.js +2 -2
  160. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  161. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  162. package/dist/collection/components/button/button.js +2 -2
  163. package/dist/collection/components/buttons/buttons.js +2 -2
  164. package/dist/collection/components/card/card.js +1 -1
  165. package/dist/collection/components/card-content/card-content.js +1 -1
  166. package/dist/collection/components/card-header/card-header.js +2 -2
  167. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  168. package/dist/collection/components/card-title/card-title.js +2 -2
  169. package/dist/collection/components/checkbox/checkbox.js +29 -4
  170. package/dist/collection/components/chip/chip.js +2 -2
  171. package/dist/collection/components/col/col.js +2 -2
  172. package/dist/collection/components/content/content.js +3 -3
  173. package/dist/collection/components/datetime/datetime.js +2 -2
  174. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  175. package/dist/collection/components/fab/fab.js +2 -2
  176. package/dist/collection/components/fab-button/fab-button.js +2 -2
  177. package/dist/collection/components/fab-list/fab-list.js +2 -2
  178. package/dist/collection/components/footer/footer.js +2 -2
  179. package/dist/collection/components/grid/grid.js +2 -2
  180. package/dist/collection/components/header/header.js +2 -2
  181. package/dist/collection/components/img/img.js +1 -1
  182. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  183. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  184. package/dist/collection/components/input/input.js +3 -3
  185. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  186. package/dist/collection/components/item-divider/item-divider.js +2 -2
  187. package/dist/collection/components/item-group/item-group.js +1 -1
  188. package/dist/collection/components/item-option/item-option.js +2 -2
  189. package/dist/collection/components/item-options/item-options.js +1 -1
  190. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  191. package/dist/collection/components/label/label.js +2 -2
  192. package/dist/collection/components/list/list.js +1 -1
  193. package/dist/collection/components/list-header/list-header.js +2 -2
  194. package/dist/collection/components/loading/loading.js +2 -2
  195. package/dist/collection/components/menu/menu.js +47 -27
  196. package/dist/collection/components/menu-button/menu-button.js +2 -2
  197. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  198. package/dist/collection/components/modal/modal.js +4 -4
  199. package/dist/collection/components/nav/nav.js +1 -1
  200. package/dist/collection/components/nav-link/nav-link.js +1 -1
  201. package/dist/collection/components/note/note.js +2 -2
  202. package/dist/collection/components/picker/picker.js +2 -2
  203. package/dist/collection/components/picker-column/picker-column.js +3 -3
  204. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  205. package/dist/collection/components/picker-legacy/picker.js +2 -2
  206. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  207. package/dist/collection/components/popover/popover.js +2 -2
  208. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  209. package/dist/collection/components/radio/radio.js +9 -7
  210. package/dist/collection/components/radio-group/radio-group.js +5 -3
  211. package/dist/collection/components/range/range.js +3 -3
  212. package/dist/collection/components/refresher/refresher.js +1 -1
  213. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  214. package/dist/collection/components/reorder/reorder.js +1 -1
  215. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  216. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  217. package/dist/collection/components/router-link/router-link.js +2 -2
  218. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  219. package/dist/collection/components/row/row.js +1 -1
  220. package/dist/collection/components/searchbar/searchbar.js +4 -4
  221. package/dist/collection/components/segment/segment.js +115 -14
  222. package/dist/collection/components/segment-button/segment-button.js +40 -5
  223. package/dist/collection/components/segment-content/segment-content.css +6 -0
  224. package/dist/collection/components/segment-content/segment-content.js +21 -0
  225. package/dist/collection/components/segment-view/segment-view-interface.js +1 -0
  226. package/dist/collection/components/segment-view/segment-view.ios.css +83 -0
  227. package/dist/collection/components/segment-view/segment-view.js +227 -0
  228. package/dist/collection/components/segment-view/segment-view.md.css +83 -0
  229. package/dist/collection/components/select/select.js +61 -16
  230. package/dist/collection/components/select-modal/select-modal-interface.js +1 -0
  231. package/dist/collection/components/select-modal/select-modal.ios.css +3 -0
  232. package/dist/collection/components/select-modal/select-modal.js +159 -0
  233. package/dist/collection/components/select-modal/select-modal.md.css +110 -0
  234. package/dist/collection/components/select-modal/test/fixtures.js +48 -0
  235. package/dist/collection/components/select-option/select-option.js +1 -1
  236. package/dist/collection/components/select-popover/select-popover.js +1 -1
  237. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  238. package/dist/collection/components/spinner/spinner.js +1 -1
  239. package/dist/collection/components/split-pane/split-pane.js +2 -2
  240. package/dist/collection/components/tab/tab.js +2 -2
  241. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  242. package/dist/collection/components/tab-button/tab-button.js +2 -2
  243. package/dist/collection/components/tabs/tabs.js +1 -1
  244. package/dist/collection/components/text/text.js +2 -2
  245. package/dist/collection/components/textarea/textarea.js +2 -2
  246. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  247. package/dist/collection/components/title/title.js +2 -2
  248. package/dist/collection/components/toast/toast.js +2 -2
  249. package/dist/collection/components/toggle/toggle.js +3 -3
  250. package/dist/collection/components/toolbar/toolbar.js +2 -2
  251. package/dist/collection/utils/menu-controller/index.js +2 -2
  252. package/dist/docs.json +426 -29
  253. package/dist/esm/{index-fe1782b1.js → index-24b48b06.js} +2 -2
  254. package/dist/esm/index.js +1 -1
  255. package/dist/esm/ion-alert.entry.js +7 -5
  256. package/dist/esm/ion-app_8.entry.js +15 -15
  257. package/dist/esm/ion-avatar_3.entry.js +4 -4
  258. package/dist/esm/ion-back-button.entry.js +2 -2
  259. package/dist/esm/ion-backdrop.entry.js +1 -1
  260. package/dist/esm/ion-breadcrumb_2.entry.js +6 -6
  261. package/dist/esm/ion-button_2.entry.js +2 -2
  262. package/dist/esm/ion-card_5.entry.js +8 -8
  263. package/dist/esm/ion-checkbox.entry.js +5 -4
  264. package/dist/esm/ion-chip.entry.js +2 -2
  265. package/dist/esm/ion-col_3.entry.js +5 -5
  266. package/dist/esm/ion-datetime-button.entry.js +2 -2
  267. package/dist/esm/ion-datetime_3.entry.js +6 -6
  268. package/dist/esm/ion-fab_3.entry.js +6 -6
  269. package/dist/esm/ion-img.entry.js +1 -1
  270. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  271. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  272. package/dist/esm/ion-input.entry.js +3 -3
  273. package/dist/esm/ion-item-option_3.entry.js +4 -4
  274. package/dist/esm/ion-item_8.entry.js +12 -12
  275. package/dist/esm/ion-loading.entry.js +2 -2
  276. package/dist/esm/ion-menu_3.entry.js +24 -24
  277. package/dist/esm/ion-modal.entry.js +4 -4
  278. package/dist/esm/ion-nav_2.entry.js +2 -2
  279. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  280. package/dist/esm/ion-picker-column.entry.js +3 -3
  281. package/dist/esm/ion-picker.entry.js +2 -2
  282. package/dist/esm/ion-popover.entry.js +2 -2
  283. package/dist/esm/ion-progress-bar.entry.js +1 -1
  284. package/dist/esm/ion-radio_2.entry.js +12 -8
  285. package/dist/esm/ion-range.entry.js +3 -3
  286. package/dist/esm/ion-refresher_2.entry.js +2 -2
  287. package/dist/esm/ion-reorder_2.entry.js +2 -2
  288. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  289. package/dist/esm/ion-route_4.entry.js +2 -2
  290. package/dist/esm/ion-searchbar.entry.js +4 -4
  291. package/dist/esm/ion-segment-content.entry.js +19 -0
  292. package/dist/esm/ion-segment-view.entry.js +118 -0
  293. package/dist/esm/ion-segment_2.entry.js +132 -19
  294. package/dist/esm/ion-select-modal.entry.js +107 -0
  295. package/dist/esm/ion-select_3.entry.js +40 -15
  296. package/dist/esm/ion-spinner.entry.js +1 -1
  297. package/dist/esm/ion-split-pane.entry.js +2 -2
  298. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  299. package/dist/esm/ion-tab_2.entry.js +3 -3
  300. package/dist/esm/ion-text.entry.js +2 -2
  301. package/dist/esm/ion-textarea.entry.js +2 -2
  302. package/dist/esm/ion-toast.entry.js +2 -2
  303. package/dist/esm/ion-toggle.entry.js +3 -3
  304. package/dist/esm/ionic.js +1 -1
  305. package/dist/esm/loader.js +1 -1
  306. package/dist/esm-es5/{index-fe1782b1.js → index-24b48b06.js} +1 -1
  307. package/dist/esm-es5/index.js +1 -1
  308. package/dist/esm-es5/ion-alert.entry.js +1 -1
  309. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  310. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  311. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  312. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  313. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  314. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  315. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  316. package/dist/esm-es5/ion-checkbox.entry.js +2 -2
  317. package/dist/esm-es5/ion-chip.entry.js +1 -1
  318. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  319. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  320. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  321. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  322. package/dist/esm-es5/ion-img.entry.js +1 -1
  323. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  324. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  325. package/dist/esm-es5/ion-input.entry.js +1 -1
  326. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  327. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  328. package/dist/esm-es5/ion-loading.entry.js +1 -1
  329. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  330. package/dist/esm-es5/ion-modal.entry.js +1 -1
  331. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  332. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  333. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  334. package/dist/esm-es5/ion-picker.entry.js +1 -1
  335. package/dist/esm-es5/ion-popover.entry.js +1 -1
  336. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  337. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  338. package/dist/esm-es5/ion-range.entry.js +1 -1
  339. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  340. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  341. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  342. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  343. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  344. package/dist/esm-es5/ion-segment-content.entry.js +4 -0
  345. package/dist/esm-es5/ion-segment-view.entry.js +4 -0
  346. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  347. package/dist/esm-es5/ion-select-modal.entry.js +4 -0
  348. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  349. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  350. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  351. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  352. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  353. package/dist/esm-es5/ion-text.entry.js +1 -1
  354. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  355. package/dist/esm-es5/ion-toast.entry.js +1 -1
  356. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  357. package/dist/esm-es5/ionic.js +1 -1
  358. package/dist/esm-es5/loader.js +1 -1
  359. package/dist/html.html-data.json +65 -2
  360. package/dist/ionic/index.esm.js +1 -1
  361. package/dist/ionic/ionic.esm.js +1 -1
  362. package/dist/ionic/{p-313ccc01.system.entry.js → p-01186920.system.entry.js} +1 -1
  363. package/dist/ionic/{p-0790b342.system.entry.js → p-0161caf9.system.entry.js} +1 -1
  364. package/dist/ionic/p-0437ace4.system.entry.js +4 -0
  365. package/dist/ionic/{p-e3e1e3de.entry.js → p-081a4ce4.entry.js} +1 -1
  366. package/dist/ionic/p-09cf2394.entry.js +4 -0
  367. package/dist/ionic/p-14be4015.entry.js +4 -0
  368. package/dist/ionic/p-15e76dd1.entry.js +4 -0
  369. package/dist/ionic/{p-003eecb9.entry.js → p-16188af7.entry.js} +1 -1
  370. package/dist/ionic/p-16799667.system.entry.js +4 -0
  371. package/dist/ionic/p-16bfb979.system.entry.js +4 -0
  372. package/dist/ionic/{p-b54fc1ae.entry.js → p-19ec4f42.entry.js} +1 -1
  373. package/dist/ionic/p-1b7605a7.system.entry.js +4 -0
  374. package/dist/ionic/p-1c1b8e1f.entry.js +4 -0
  375. package/dist/ionic/{p-8b6232a6.system.entry.js → p-1e010627.system.entry.js} +2 -2
  376. package/dist/ionic/{p-d754c709.system.entry.js → p-1e41f2aa.system.entry.js} +1 -1
  377. package/dist/ionic/{p-cdb11938.system.entry.js → p-1e67b266.system.entry.js} +1 -1
  378. package/dist/ionic/{p-bd25d639.system.entry.js → p-1ebd1e27.system.entry.js} +1 -1
  379. package/dist/ionic/{p-836d39d4.system.entry.js → p-2172893e.system.entry.js} +1 -1
  380. package/dist/ionic/{p-4a0a4204.system.entry.js → p-2507278c.system.entry.js} +1 -1
  381. package/dist/ionic/{p-75c0dc65.system.entry.js → p-2799c6d3.system.entry.js} +1 -1
  382. package/dist/ionic/{p-a879ecb7.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
  383. package/dist/ionic/{p-293ed6ac.system.entry.js → p-2b838f86.system.entry.js} +1 -1
  384. package/dist/ionic/{p-4a82bd1c.system.entry.js → p-2e46590d.system.entry.js} +1 -1
  385. package/dist/ionic/{p-148b8abb.entry.js → p-2fc0dafe.entry.js} +1 -1
  386. package/dist/ionic/p-322c5fb4.system.js +2 -2
  387. package/dist/ionic/{p-60cc7986.entry.js → p-33a8a71b.entry.js} +1 -1
  388. package/dist/ionic/{p-18105026.system.entry.js → p-37cb43bd.system.entry.js} +1 -1
  389. package/dist/ionic/p-424eb140.system.entry.js +4 -0
  390. package/dist/ionic/{p-b7657e8d.entry.js → p-4439fc2a.entry.js} +1 -1
  391. package/dist/ionic/{p-c34659b9.entry.js → p-45693d7e.entry.js} +1 -1
  392. package/dist/ionic/p-49a0e74c.entry.js +4 -0
  393. package/dist/ionic/{p-6d50faff.entry.js → p-4a274c89.entry.js} +1 -1
  394. package/dist/ionic/{p-fd0cb4ef.entry.js → p-4ec778aa.entry.js} +1 -1
  395. package/dist/ionic/{p-9ece8dcf.entry.js → p-52d7a191.entry.js} +1 -1
  396. package/dist/ionic/{p-79e7be3a.system.entry.js → p-5393e8bb.system.entry.js} +1 -1
  397. package/dist/ionic/{p-ce705aac.system.entry.js → p-567de071.system.entry.js} +1 -1
  398. package/dist/ionic/{p-95823c62.system.entry.js → p-5823babc.system.entry.js} +2 -2
  399. package/dist/ionic/{p-baffaf8d.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
  400. package/dist/ionic/{p-ffb17177.system.entry.js → p-5972efea.system.entry.js} +1 -1
  401. package/dist/ionic/{p-521eca2e.entry.js → p-5ab1b709.entry.js} +1 -1
  402. package/dist/ionic/{p-c71f301f.system.entry.js → p-5b5c1505.system.entry.js} +1 -1
  403. package/dist/ionic/{p-8d44cf1f.entry.js → p-5b932840.entry.js} +1 -1
  404. package/dist/ionic/{p-f0ab13a8.system.entry.js → p-5bd39e5e.system.entry.js} +2 -2
  405. package/dist/ionic/{p-53add985.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
  406. package/dist/ionic/{p-233e6c93.entry.js → p-62af944c.entry.js} +1 -1
  407. package/dist/ionic/{p-00b01a55.system.entry.js → p-63b0abde.system.entry.js} +1 -1
  408. package/dist/ionic/{p-a90e2708.system.entry.js → p-66640ff7.system.entry.js} +1 -1
  409. package/dist/ionic/p-6734db42.system.entry.js +4 -0
  410. package/dist/ionic/p-69666e8a.system.entry.js +4 -0
  411. package/dist/ionic/{p-5e842258.entry.js → p-6d32975a.entry.js} +1 -1
  412. package/dist/ionic/p-73dc4950.entry.js +4 -0
  413. package/dist/ionic/{p-fcd71204.system.entry.js → p-7458862e.system.entry.js} +1 -1
  414. package/dist/ionic/{p-a3711608.system.entry.js → p-797eeea8.system.entry.js} +1 -1
  415. package/dist/ionic/{p-f8c8b9ba.entry.js → p-7b9a2b23.entry.js} +1 -1
  416. package/dist/ionic/{p-6817cf42.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
  417. package/dist/ionic/{p-79b12fda.system.js → p-8f05ba3b.system.js} +1 -1
  418. package/dist/ionic/p-908d6080.entry.js +4 -0
  419. package/dist/ionic/{p-af999a31.entry.js → p-937a7e21.entry.js} +1 -1
  420. package/dist/ionic/{p-4c8fceb0.entry.js → p-95775830.entry.js} +1 -1
  421. package/dist/ionic/{p-973f0b15.system.entry.js → p-98231c01.system.entry.js} +1 -1
  422. package/dist/ionic/{p-25928b83.system.entry.js → p-985a7e17.system.entry.js} +1 -1
  423. package/dist/ionic/{p-e3a5da9d.entry.js → p-98ff6b32.entry.js} +1 -1
  424. package/dist/ionic/{p-6e85e450.entry.js → p-9df2c6fb.entry.js} +1 -1
  425. package/dist/ionic/{p-7251fed5.entry.js → p-9ee1e8a6.entry.js} +1 -1
  426. package/dist/ionic/{p-da263d8e.entry.js → p-9fa07aec.entry.js} +1 -1
  427. package/dist/ionic/{p-d58f21d2.entry.js → p-a1051806.entry.js} +1 -1
  428. package/dist/ionic/{p-6ceb04b5.entry.js → p-a1b9a163.entry.js} +1 -1
  429. package/dist/ionic/p-a34b4d94.entry.js +4 -0
  430. package/dist/ionic/{p-8836d0eb.system.entry.js → p-a49378bb.system.entry.js} +1 -1
  431. package/dist/ionic/{p-6b8893dd.entry.js → p-a61cba41.entry.js} +1 -1
  432. package/dist/ionic/p-adbc4bdf.entry.js +4 -0
  433. package/dist/ionic/{p-49bc6544.entry.js → p-afecb188.entry.js} +1 -1
  434. package/dist/ionic/{p-be715dd3.system.entry.js → p-b335ffed.system.entry.js} +1 -1
  435. package/dist/ionic/{p-e3f13b08.js → p-b82d4cab.js} +1 -1
  436. package/dist/ionic/{p-68c4df55.entry.js → p-b9d7015f.entry.js} +1 -1
  437. package/dist/ionic/{p-7243df6f.entry.js → p-bb0db172.entry.js} +1 -1
  438. package/dist/ionic/{p-df83e308.system.entry.js → p-bc36ad98.system.entry.js} +1 -1
  439. package/dist/ionic/{p-773d118d.entry.js → p-bdad26e3.entry.js} +1 -1
  440. package/dist/ionic/p-c29f8157.system.entry.js +4 -0
  441. package/dist/ionic/p-c2b74d92.system.entry.js +4 -0
  442. package/dist/ionic/{p-176b372f.entry.js → p-c41ac815.entry.js} +1 -1
  443. package/dist/ionic/{p-5417b9bb.entry.js → p-c9f3a539.entry.js} +1 -1
  444. package/dist/ionic/{p-2ea1ca4f.system.entry.js → p-ca065903.system.entry.js} +1 -1
  445. package/dist/ionic/{p-2ca6eac2.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
  446. package/dist/ionic/{p-3c968c7f.system.entry.js → p-d18ab582.system.entry.js} +2 -2
  447. package/dist/ionic/{p-92d7a3d1.entry.js → p-d7aa6b00.entry.js} +1 -1
  448. package/dist/ionic/{p-921e159f.system.entry.js → p-d7e982e7.system.entry.js} +1 -1
  449. package/dist/ionic/{p-21cfd4de.entry.js → p-da074ff7.entry.js} +1 -1
  450. package/dist/ionic/{p-9e208825.entry.js → p-db0c8e7d.entry.js} +1 -1
  451. package/dist/ionic/{p-89a0a446.entry.js → p-de930745.entry.js} +1 -1
  452. package/dist/ionic/p-e2252ad6.entry.js +4 -0
  453. package/dist/ionic/{p-960803fc.system.entry.js → p-e4ee80be.system.entry.js} +1 -1
  454. package/dist/ionic/{p-dda5c73d.entry.js → p-e563a35c.entry.js} +1 -1
  455. package/dist/ionic/{p-7740e32c.system.js → p-e7ed4a7f.system.js} +1 -1
  456. package/dist/ionic/{p-661ce4a8.entry.js → p-e9a173ed.entry.js} +1 -1
  457. package/dist/ionic/{p-05beda73.entry.js → p-eba29931.entry.js} +1 -1
  458. package/dist/ionic/{p-0373d924.system.entry.js → p-ebf042e0.system.entry.js} +1 -1
  459. package/dist/ionic/{p-9b6c6302.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
  460. package/dist/ionic/{p-8640e9cd.entry.js → p-ee7ba749.entry.js} +1 -1
  461. package/dist/ionic/p-f10b70a1.entry.js +4 -0
  462. package/dist/ionic/{p-01503bbd.system.entry.js → p-f3102647.system.entry.js} +1 -1
  463. package/dist/ionic/{p-6562e0a9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
  464. package/dist/types/components/checkbox/checkbox.d.ts +2 -1
  465. package/dist/types/components/menu/menu-interface.d.ts +5 -2
  466. package/dist/types/components/menu/menu.d.ts +6 -6
  467. package/dist/types/components/radio/radio.d.ts +1 -1
  468. package/dist/types/components/segment/segment.d.ts +21 -1
  469. package/dist/types/components/segment-button/segment-button.d.ts +4 -0
  470. package/dist/types/components/segment-content/segment-content.d.ts +4 -0
  471. package/dist/types/components/segment-view/segment-view-interface.d.ts +4 -0
  472. package/dist/types/components/segment-view/segment-view.d.ts +55 -0
  473. package/dist/types/components/select/select-interface.d.ts +1 -1
  474. package/dist/types/components/select/select.d.ts +5 -4
  475. package/dist/types/components/select-modal/select-modal-interface.d.ts +10 -0
  476. package/dist/types/components/select-modal/select-modal.d.ts +16 -0
  477. package/dist/types/components/select-modal/test/fixtures.d.ts +16 -0
  478. package/dist/types/components.d.ts +103 -13
  479. package/dist/types/utils/overlays-interface.d.ts +1 -1
  480. package/hydrate/index.js +610 -212
  481. package/hydrate/index.mjs +610 -212
  482. package/package.json +1 -1
  483. package/dist/ionic/p-110e03be.system.entry.js +0 -4
  484. package/dist/ionic/p-2200e26b.entry.js +0 -4
  485. package/dist/ionic/p-44d1539c.system.entry.js +0 -4
  486. package/dist/ionic/p-53854390.entry.js +0 -4
  487. package/dist/ionic/p-63d65dbc.system.entry.js +0 -4
  488. package/dist/ionic/p-72ffd137.system.entry.js +0 -4
  489. package/dist/ionic/p-82ab7ccb.entry.js +0 -4
  490. package/dist/ionic/p-87a4407b.entry.js +0 -4
  491. package/dist/ionic/p-9172535c.entry.js +0 -4
  492. package/dist/ionic/p-93f37ceb.system.entry.js +0 -4
  493. package/dist/ionic/p-9895e7f3.entry.js +0 -4
  494. package/dist/ionic/p-a0c88dc2.system.entry.js +0 -4
  495. package/dist/ionic/p-a89dac49.entry.js +0 -4
  496. package/dist/ionic/p-f88ebc36.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -4619,6 +4619,7 @@ const createController = (tagName) => {
4619
4619
  };
4620
4620
  const alertController = /*@__PURE__*/ createController('ion-alert');
4621
4621
  const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
4622
+ const modalController = /*@__PURE__*/ createController('ion-modal');
4622
4623
  const popoverController = /*@__PURE__*/ createController('ion-popover');
4623
4624
  /**
4624
4625
  * Prepares the overlay element to be presented.
@@ -7287,13 +7288,15 @@ class Alert {
7287
7288
  const msgId = `alert-${overlayIndex}-msg`;
7288
7289
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
7289
7290
  /**
7290
- * If the header is defined, use that. Otherwise, fall back to the subHeader.
7291
- * If neither is defined, don't set aria-labelledby.
7291
+ * Use both the header and subHeader ids if they are defined.
7292
+ * If only the header is defined, use the header id.
7293
+ * If only the subHeader is defined, use the subHeader id.
7294
+ * If neither are defined, do not set aria-labelledby.
7292
7295
  */
7293
- const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
7294
- return (hAsync(Host, Object.assign({ key: 'c7d53f48b359f2bc3480a2e1ba34948fc9378fb0', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
7296
+ const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7297
+ return (hAsync(Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
7295
7298
  zIndex: `${20000 + overlayIndex}`,
7296
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '18c7e6b5d63435d9a6a82bda951158e7e1af6e92', tappable: this.backdropDismiss }), hAsync("div", { key: '8ea08a2a70239e817442c12596f51b108aca428c', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '215ca5d72b8b180788e9748f5f22de01fa5a152a', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '9880acd318428d4b5d670c67dd156477877f99f2', class: "alert-head" }, header && (hAsync("h2", { key: '612dec8dc9bfdcb36e1e4655dc214b7c229b20c8', id: hdrId, class: "alert-title" }, header)), subHeader && (hAsync("h2", { key: 'e3c54c80a1cd9399595064b5a0a887c16fdc8ff8', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '9062655e906b5caf36df6f742fd412552ae510be', tabindex: "0", "aria-hidden": "true" })));
7299
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), hAsync("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (hAsync("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
7297
7300
  }
7298
7301
  get el() { return getElement(this); }
7299
7302
  static get watchers() { return {
@@ -7371,7 +7374,7 @@ class App {
7371
7374
  }
7372
7375
  render() {
7373
7376
  const mode = getIonMode$1(this);
7374
- return (hAsync(Host, { key: 'e95cdeb2709edbc74f4e6ebf77cb110154605b72', class: {
7377
+ return (hAsync(Host, { key: '96715520fd05d6f0e6fa26a8ba78792cfccd4c0a', class: {
7375
7378
  [mode]: true,
7376
7379
  'ion-page': true,
7377
7380
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -7402,7 +7405,7 @@ class Avatar {
7402
7405
  registerInstance(this, hostRef);
7403
7406
  }
7404
7407
  render() {
7405
- return (hAsync(Host, { key: 'dc1e3cd535e419eebe5599574fd2393ebfde8bbc', class: getIonMode$1(this) }, hAsync("slot", { key: 'edb8441c063ea592b41345ea97d88ecd90cb3052' })));
7408
+ return (hAsync(Host, { key: '998217066084f966bf5d356fed85bcbd451f675a', class: getIonMode$1(this) }, hAsync("slot", { key: '1a6f7c9d4dc6a875f86b5b3cda6d59cb39587f22' })));
7406
7409
  }
7407
7410
  static get style() { return {
7408
7411
  ios: IonAvatarIosStyle0,
@@ -7490,7 +7493,7 @@ class BackButton {
7490
7493
  const showBackButton = defaultHref !== undefined;
7491
7494
  const mode = getIonMode$1(this);
7492
7495
  const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';
7493
- return (hAsync(Host, { key: '8351c93a1812c94c979fb115f07a9ad7b3152188', onClick: this.onClick, class: createColorClasses$1(color, {
7496
+ return (hAsync(Host, { key: '5466624a10f1ab56f5469e6dc07080303880f2fe', onClick: this.onClick, class: createColorClasses$1(color, {
7494
7497
  [mode]: true,
7495
7498
  button: true, // ion-buttons target .button
7496
7499
  'back-button-disabled': disabled,
@@ -7500,7 +7503,7 @@ class BackButton {
7500
7503
  'ion-activatable': true,
7501
7504
  'ion-focusable': true,
7502
7505
  'show-back-button': showBackButton,
7503
- }) }, hAsync("button", { key: '991b8baa784dbfbdf8d3581cbbf6a858ac1f1e6e', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, hAsync("span", { key: '929fcd83a4fdb00cf97ca803f234719171602a5e', class: "button-inner" }, backButtonIcon && (hAsync("ion-icon", { key: '0c10d412ae8342d96f221e626b421c9abadac748', part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (hAsync("span", { key: '96f505880a80f36ee8b8c78268b450f3629ee613', part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && hAsync("ion-ripple-effect", { key: '0aecf5d415c608069eb1a10043530bd0929b6383', type: this.rippleType }))));
7506
+ }) }, hAsync("button", { key: '63bc75ef0ad7cc9fb79e58217a3314b20acd73e3', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, hAsync("span", { key: '5d3eacbd11af2245c6e1151cab446a0d96559ad8', class: "button-inner" }, backButtonIcon && (hAsync("ion-icon", { key: '6439af0ae463764174e7d3207f02267811df666d', part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (hAsync("span", { key: '8ee89fb18dfdb5b75948a8b197ff4cdbc008742f', part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && hAsync("ion-ripple-effect", { key: '63803a884998bc73bea5afe0b2a0a14e3fa4d6bf', type: this.rippleType }))));
7504
7507
  }
7505
7508
  get el() { return getElement(this); }
7506
7509
  static get style() { return {
@@ -7553,7 +7556,7 @@ class Backdrop {
7553
7556
  }
7554
7557
  render() {
7555
7558
  const mode = getIonMode$1(this);
7556
- return (hAsync(Host, { key: 'fe191068e2aaadfdbe7a463c08d227a1b36d7a98', "aria-hidden": "true", class: {
7559
+ return (hAsync(Host, { key: '7abaf2c310aa399607451b14063265e8a5846938', "aria-hidden": "true", class: {
7557
7560
  [mode]: true,
7558
7561
  'backdrop-hide': !this.visible,
7559
7562
  'backdrop-no-tappable': !this.tappable,
@@ -7593,9 +7596,9 @@ class Badge {
7593
7596
  }
7594
7597
  render() {
7595
7598
  const mode = getIonMode$1(this);
7596
- return (hAsync(Host, { key: '1253618692342bcf9487188402dc3d49ae0de480', class: createColorClasses$1(this.color, {
7599
+ return (hAsync(Host, { key: '1a2d39c5deec771a2f2196447627b62a7d4c8389', class: createColorClasses$1(this.color, {
7597
7600
  [mode]: true,
7598
- }) }, hAsync("slot", { key: '71d65e203965ea37b94504a8a0a96beb52d4e356' })));
7601
+ }) }, hAsync("slot", { key: 'fc1b6587f1ed24715748eb6785e7fb7a57cdd5cd' })));
7599
7602
  }
7600
7603
  static get style() { return {
7601
7604
  ios: IonBadgeIosStyle0,
@@ -7681,7 +7684,7 @@ class Breadcrumb {
7681
7684
  // to show the separator as long as it isn't also the last breadcrumb
7682
7685
  // otherwise if not collapsed use the value in separator
7683
7686
  const showSeparator = last ? false : collapsed ? (showCollapsedIndicator && !last ? true : false) : separator;
7684
- return (hAsync(Host, { key: 'dfe55ad57f23e5da5f2e2c51fea99964812472e3', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
7687
+ return (hAsync(Host, { key: '32ca61c83721dff52b5e97171ed449dce3584a55', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
7685
7688
  [mode]: true,
7686
7689
  'breadcrumb-active': active,
7687
7690
  'breadcrumb-collapsed': collapsed,
@@ -7691,15 +7694,15 @@ class Breadcrumb {
7691
7694
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
7692
7695
  'ion-activatable': clickable,
7693
7696
  'ion-focusable': clickable,
7694
- }) }, hAsync(TagType, Object.assign({ key: 'e361b1f0e7de6dd5c5dd4f6deae72c2c8210466d' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("slot", { key: '9daeb45a8a28c89f3ad5751f71b8412197846371', name: "start" }), hAsync("slot", { key: '4849e63cdffd6c712292745138b68730442c8b0d' }), hAsync("slot", { key: '6edf9bac5aec06ccec2844efac2d9afa1d24cf57', name: "end" })), showCollapsedIndicator && (hAsync("button", { key: 'de7f5faea75b44011b289d259265e2435a65874f', part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
7697
+ }) }, hAsync(TagType, Object.assign({ key: '479feb845f4a6d8009d5422b33eb423730b9722b' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("slot", { key: '3c5dcaeb0d258235d1b7707868026ff1d1404099', name: "start" }), hAsync("slot", { key: 'f1cfb934443cd97dc220882c5e3596ea879d66cf' }), hAsync("slot", { key: '539710121b5b1f3ee8d4c24a9651b67c2ae08add', name: "end" })), showCollapsedIndicator && (hAsync("button", { key: 'ed53a95ccd89022c8b7bee0658a221ec62a5c73b', part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
7695
7698
  'breadcrumbs-collapsed-indicator': true,
7696
- } }, hAsync("ion-icon", { key: '957d8851af9c99dda263f34eff0b35a0fc212c32', "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
7699
+ } }, hAsync("ion-icon", { key: 'a849e1142a86f06f207cf11662fa2a560ab7fc6a', "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
7697
7700
  /**
7698
7701
  * Separators should not be announced by narrators.
7699
7702
  * We add aria-hidden on the span so that this applies
7700
7703
  * to any custom separators too.
7701
7704
  */
7702
- hAsync("span", { key: '97d646c37c4c41ad6b12c3a543d1146fde06fc9a', class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, hAsync("slot", { key: '0429f671a986f2d7be1b1b69fc879e80806d2916', name: "separator" }, mode === 'ios' ? (hAsync("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (hAsync("span", null, "/")))))));
7705
+ hAsync("span", { key: 'fc3c741cb01fafef8b26046c7ee5b190efc69a7c', class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, hAsync("slot", { key: '4871932ae1dae520767e0713e7cee2d11b0bba6d', name: "separator" }, mode === 'ios' ? (hAsync("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (hAsync("span", null, "/")))))));
7703
7706
  }
7704
7707
  get el() { return getElement(this); }
7705
7708
  static get style() { return {
@@ -7839,12 +7842,12 @@ class Breadcrumbs {
7839
7842
  render() {
7840
7843
  const { color, collapsed } = this;
7841
7844
  const mode = getIonMode$1(this);
7842
- return (hAsync(Host, { key: '18ffba1642f10cc2bc31440e84f23aa6f042e501', class: createColorClasses$1(color, {
7845
+ return (hAsync(Host, { key: 'fe64e9cdf597ede2db140bf5fa05a0359d82db57', class: createColorClasses$1(color, {
7843
7846
  [mode]: true,
7844
7847
  'in-toolbar': hostContext('ion-toolbar', this.el),
7845
7848
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
7846
7849
  'breadcrumbs-collapsed': collapsed,
7847
- }) }, hAsync("slot", { key: '3db6d31590e3047889ce554d57d155c8ea2e1455', onSlotchange: this.slotChanged })));
7850
+ }) }, hAsync("slot", { key: 'a2c99b579e339055c50a613d5c6b61032f5ddffe', onSlotchange: this.slotChanged })));
7848
7851
  }
7849
7852
  get el() { return getElement(this); }
7850
7853
  static get watchers() { return {
@@ -8087,7 +8090,7 @@ class Button {
8087
8090
  {
8088
8091
  type !== 'button' && this.renderHiddenButton();
8089
8092
  }
8090
- return (hAsync(Host, { key: '8f3a0363d46ef888d22b0b0812c70cb4f79e6efa', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8093
+ return (hAsync(Host, { key: '340a809d85698741bb36e796355cae89a970655f', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8091
8094
  [mode]: true,
8092
8095
  [buttonType]: true,
8093
8096
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -8102,7 +8105,7 @@ class Button {
8102
8105
  'button-disabled': disabled,
8103
8106
  'ion-activatable': true,
8104
8107
  'ion-focusable': true,
8105
- }) }, hAsync(TagType, Object.assign({ key: 'a517c7d06aab15ad4c2a51b8ec224c1aeb4ed565' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("span", { key: '127c26dd97c0bf5097433df77df7313d59784899', class: "button-inner" }, hAsync("slot", { key: '39d9a9cad8e1addbe63406062e555e05c2cb541b', name: "icon-only", onSlotchange: this.slotChanged }), hAsync("slot", { key: 'cfdebdd89155c6c21eb80e51e06456a3a6d877e0', name: "start" }), hAsync("slot", { key: 'eac497e0f97ab55baa834ae23155d89b0f7069c6' }), hAsync("slot", { key: 'c99f7900f8856b32a0b4ac11092d461f5e9a1109', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'c681edb0480879fbd801575f2233f6e118898638', type: this.rippleType }))));
8108
+ }) }, hAsync(TagType, Object.assign({ key: '03ae1b94a0d606aa65aa6f82c2fc76abcf3f1300' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("span", { key: '90bf53d4ffcab88ee596ece7113d5b6409e61143', class: "button-inner" }, hAsync("slot", { key: 'a7876695f0d8702e8bcb471ae4c0984f27d77458', name: "icon-only", onSlotchange: this.slotChanged }), hAsync("slot", { key: '2c8551586f8726884d7797a6d3fee2d4b3aab35f', name: "start" }), hAsync("slot", { key: '9ab07accdb22b08d0a463a7c821c9793507d1f7d' }), hAsync("slot", { key: '8984afe177e6ba021435875a3798e2a64f3bdf2c', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '3e9f01e7a1198b6b7109502293a971da7072a4f3', type: this.rippleType }))));
8106
8109
  }
8107
8110
  get el() { return getElement(this); }
8108
8111
  static get watchers() { return {
@@ -8153,10 +8156,10 @@ class Buttons {
8153
8156
  }
8154
8157
  render() {
8155
8158
  const mode = getIonMode$1(this);
8156
- return (hAsync(Host, { key: '4e5ce9abb3f56e8c91e3eb58c2819300e61eba24', class: {
8159
+ return (hAsync(Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
8157
8160
  [mode]: true,
8158
8161
  ['buttons-collapse']: this.collapse,
8159
- } }, hAsync("slot", { key: 'f2f360ec888b6e946b512fed07431fab47c61482' })));
8162
+ } }, hAsync("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
8160
8163
  }
8161
8164
  static get style() { return {
8162
8165
  ios: IonButtonsIosStyle0,
@@ -8225,7 +8228,7 @@ class Card {
8225
8228
  }
8226
8229
  render() {
8227
8230
  const mode = getIonMode$1(this);
8228
- return (hAsync(Host, { key: '8584300522f382ee8891c039d71da82533dfa36a', class: createColorClasses$1(this.color, {
8231
+ return (hAsync(Host, { key: '85e9b30bd81e79a0c7ac75cb3664bdcf9e4afc4d', class: createColorClasses$1(this.color, {
8229
8232
  [mode]: true,
8230
8233
  'card-disabled': this.disabled,
8231
8234
  'ion-activatable': this.isClickable(),
@@ -8272,7 +8275,7 @@ class CardContent {
8272
8275
  }
8273
8276
  render() {
8274
8277
  const mode = getIonMode$1(this);
8275
- return (hAsync(Host, { key: '2a2d0b48aad4b83990a1748fce60e772514eb223', class: {
8278
+ return (hAsync(Host, { key: 'd98e4d1fc6ad3237549f9bc17e4c67ec5059b1b3', class: {
8276
8279
  [mode]: true,
8277
8280
  // Used internally for styling
8278
8281
  [`card-content-${mode}`]: true,
@@ -8309,11 +8312,11 @@ class CardHeader {
8309
8312
  }
8310
8313
  render() {
8311
8314
  const mode = getIonMode$1(this);
8312
- return (hAsync(Host, { key: '18d12507ec6e650a72d721e9d0f4128b5e86df1d', class: createColorClasses$1(this.color, {
8315
+ return (hAsync(Host, { key: '64246b81931203a64d553c788cd736f41e23f37b', class: createColorClasses$1(this.color, {
8313
8316
  'card-header-translucent': this.translucent,
8314
8317
  'ion-inherit-color': true,
8315
8318
  [mode]: true,
8316
- }) }, hAsync("slot", { key: '3374c087d8c3f014082787e255432e7a335ef44f' })));
8319
+ }) }, hAsync("slot", { key: 'af2da2dfe266889afeb57fac25c6a730558dbba4' })));
8317
8320
  }
8318
8321
  static get style() { return {
8319
8322
  ios: IonCardHeaderIosStyle0,
@@ -8348,10 +8351,10 @@ class CardSubtitle {
8348
8351
  }
8349
8352
  render() {
8350
8353
  const mode = getIonMode$1(this);
8351
- return (hAsync(Host, { key: 'cbcb01bd01cf6de64a0b04fb626e42b07ceb8f53', role: "heading", "aria-level": "3", class: createColorClasses$1(this.color, {
8354
+ return (hAsync(Host, { key: '84d820a19d9074f9c8bc61ccba1ca40062a60b73', role: "heading", "aria-level": "3", class: createColorClasses$1(this.color, {
8352
8355
  'ion-inherit-color': true,
8353
8356
  [mode]: true,
8354
- }) }, hAsync("slot", { key: 'cbcaa73aa5799882c48d6c0aabfb13651bcc91c0' })));
8357
+ }) }, hAsync("slot", { key: 'e4d07d395a1f4469a90847636083101b32b776a1' })));
8355
8358
  }
8356
8359
  static get style() { return {
8357
8360
  ios: IonCardSubtitleIosStyle0,
@@ -8385,10 +8388,10 @@ class CardTitle {
8385
8388
  }
8386
8389
  render() {
8387
8390
  const mode = getIonMode$1(this);
8388
- return (hAsync(Host, { key: 'f904a0ca6489f147d03c9c5f9f2c5549cdb38d1a', role: "heading", "aria-level": "2", class: createColorClasses$1(this.color, {
8391
+ return (hAsync(Host, { key: 'fca001a86396e83718d5211cd71912fdf40dea2f', role: "heading", "aria-level": "2", class: createColorClasses$1(this.color, {
8389
8392
  'ion-inherit-color': true,
8390
8393
  [mode]: true,
8391
- }) }, hAsync("slot", { key: 'effb921de4ad8dfbbe318b3f692f4005812da7b1' })));
8394
+ }) }, hAsync("slot", { key: '2ba416aed488b2ff462fa75fb3b70373a6dd7da6' })));
8392
8395
  }
8393
8396
  static get style() { return {
8394
8397
  ios: IonCardTitleIosStyle0,
@@ -8473,7 +8476,8 @@ class Checkbox {
8473
8476
  componentWillLoad() {
8474
8477
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
8475
8478
  }
8476
- setFocus() {
8479
+ /** @internal */
8480
+ async setFocus() {
8477
8481
  if (this.focusEl) {
8478
8482
  this.focusEl.focus();
8479
8483
  }
@@ -8483,7 +8487,7 @@ class Checkbox {
8483
8487
  const mode = getIonMode$1(this);
8484
8488
  const path = getSVGPath(mode, indeterminate);
8485
8489
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8486
- return (hAsync(Host, { key: 'd7a07fbf130413eaa4622c07786e8a00723113eb', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8490
+ return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8487
8491
  [mode]: true,
8488
8492
  'in-item': hostContext('ion-item', el),
8489
8493
  'checkbox-checked': checked,
@@ -8493,10 +8497,10 @@ class Checkbox {
8493
8497
  [`checkbox-justify-${justify}`]: justify !== undefined,
8494
8498
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8495
8499
  [`checkbox-label-placement-${labelPlacement}`]: true,
8496
- }), onClick: this.onClick }, hAsync("label", { key: '99797589ed4ea7cbac53531c85b2d4a2dcd568c4', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'cc12fe7920ab23c6f21546f7b312b8f1f5671349', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), hAsync("div", { key: '1b087f061da5abca6129d372503d8882b77e24be', class: {
8500
+ }), onClick: this.onClick }, hAsync("label", { key: '68222fb736a5ec3f2e488649b0e2ce0417dcb224', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'f12962d7e9b19c744cfdbdeccc67ae7f5d080281', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), hAsync("div", { key: 'c72df2699414b1e5a41a1bc267bc634f0c93dcff', class: {
8497
8501
  'label-text-wrapper': true,
8498
8502
  'label-text-wrapper-hidden': el.textContent === '',
8499
- }, part: "label" }, hAsync("slot", { key: 'bc84274c826fa1db1207230aa03bf5790afe2992' })), hAsync("div", { key: '89e9396dc9215804bd8ac42e943a292d050ef8c5', class: "native-wrapper" }, hAsync("svg", { key: '2aafac248c639074faaf17044d8d9204474a9b7b', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8503
+ }, part: "label" }, hAsync("slot", { key: 'a2a80285178a7e0e3b536fc9ca26b8b444aa4307' })), hAsync("div", { key: 'c2b05e0d1fe8df5dcd72858220b5ff51ecaee4cc', class: "native-wrapper" }, hAsync("svg", { key: 'ee24913fded72258ebd9713654a6dba92a18fcf7', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8500
8504
  }
8501
8505
  getSVGPath(mode, indeterminate) {
8502
8506
  let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -8522,7 +8526,8 @@ class Checkbox {
8522
8526
  "value": [8],
8523
8527
  "labelPlacement": [1, "label-placement"],
8524
8528
  "justify": [1],
8525
- "alignment": [1]
8529
+ "alignment": [1],
8530
+ "setFocus": [64]
8526
8531
  },
8527
8532
  "$listeners$": undefined,
8528
8533
  "$lazyBundleId$": "-",
@@ -8549,12 +8554,12 @@ class Chip {
8549
8554
  }
8550
8555
  render() {
8551
8556
  const mode = getIonMode$1(this);
8552
- return (hAsync(Host, { key: '7dd923c1b28d1eb1efa348f66f49cec067645af9', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
8557
+ return (hAsync(Host, { key: 'fa2e9a4837ef87a17ef10f388e8caa7f604d9145', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
8553
8558
  [mode]: true,
8554
8559
  'chip-outline': this.outline,
8555
8560
  'chip-disabled': this.disabled,
8556
8561
  'ion-activatable': true,
8557
- }) }, hAsync("slot", { key: '7ede838bf109dc27a898ee2dcdeabc3f439c8e6f' }), mode === 'md' && hAsync("ion-ripple-effect", { key: '5acb073029544e73fcc0db4cc4e661ec1df4d231' })));
8562
+ }) }, hAsync("slot", { key: '3793fbd9d915cef7241fb101e2bc64c08b9ba482' }), mode === 'md' && hAsync("ion-ripple-effect", { key: 'd3b95b53918611dec095a50f2aaaab65617947a4' })));
8558
8563
  }
8559
8564
  static get style() { return {
8560
8565
  ios: IonChipIosStyle0,
@@ -8705,9 +8710,9 @@ class Col {
8705
8710
  render() {
8706
8711
  const isRTL = document.dir === 'rtl';
8707
8712
  const mode = getIonMode$1(this);
8708
- return (hAsync(Host, { key: 'c37fa4c4c993385ccbb6f4e89b2f390b140507a0', class: {
8713
+ return (hAsync(Host, { key: '32ed75d81dd09d9bc8999f6d42e5b3cb99c84d91', class: {
8709
8714
  [mode]: true,
8710
- }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, hAsync("slot", { key: '6a5296ff0b9dee6600c2dafe7363a065d053bac2' })));
8715
+ }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, hAsync("slot", { key: '38f8d0440c20cc6d1b1d6a654d07f16de61d8134' })));
8711
8716
  }
8712
8717
  static get style() { return IonColStyle0; }
8713
8718
  static get cmpMeta() { return {
@@ -9081,7 +9086,7 @@ class Content {
9081
9086
  const forceOverscroll = this.shouldForceOverscroll();
9082
9087
  const transitionShadow = mode === 'ios';
9083
9088
  this.resize();
9084
- return (hAsync(Host, Object.assign({ key: '92a7cbc2e9c812930f4231bd846411933a5dded6', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
9089
+ return (hAsync(Host, Object.assign({ key: 'f2a24aa66dbf5c76f9d4b06f708eb73cadc239df', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
9085
9090
  [mode]: true,
9086
9091
  'content-sizing': hostContext('ion-popover', this.el),
9087
9092
  overscroll: forceOverscroll,
@@ -9089,12 +9094,12 @@ class Content {
9089
9094
  }), style: {
9090
9095
  '--offset-top': `${this.cTop}px`,
9091
9096
  '--offset-bottom': `${this.cBottom}px`,
9092
- } }, inheritedAttributes), hAsync("div", { key: '52498d8874b9944b8245e448ea9dfc75b3929c2d', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: '00e157a53485b285300404178436276afceb63f5', class: {
9097
+ } }, inheritedAttributes), hAsync("div", { key: '6480ca7648b278abb36477b3838bccbcd4995e2a', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: '29a23b663f5f0215bb000820c01e1814c0d55985', class: {
9093
9098
  'inner-scroll': true,
9094
9099
  'scroll-x': scrollX,
9095
9100
  'scroll-y': scrollY,
9096
9101
  overscroll: (scrollX || scrollY) && forceOverscroll,
9097
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '8522320514a2e8a63f7dc9ade6c1fb3fb00f454e' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
9102
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '0fe1bd05609a4b88ae2ce9addf5d5dc5dc1806f0' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
9098
9103
  }
9099
9104
  get el() { return getElement(this); }
9100
9105
  static get style() { return IonContentStyle0; }
@@ -12615,7 +12620,7 @@ class Datetime {
12615
12620
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
12616
12621
  const hasWheelVariant = hasDatePresentation && preferWheel;
12617
12622
  renderHiddenInput(true, el, name, formatValue(value), disabled);
12618
- return (hAsync(Host, { key: '2933ce5caaeb21a633b1ec4d936e86b0f0890807', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12623
+ return (hAsync(Host, { key: '7afbb1a7e6c78389b4588999779e5c90e010e85d', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12619
12624
  [mode]: true,
12620
12625
  ['datetime-readonly']: readonly,
12621
12626
  ['datetime-disabled']: disabled,
@@ -12625,7 +12630,7 @@ class Datetime {
12625
12630
  [`datetime-size-${size}`]: true,
12626
12631
  [`datetime-prefer-wheel`]: hasWheelVariant,
12627
12632
  [`datetime-grid`]: isGridStyle,
12628
- })) }, hAsync("div", { key: '0efc9ef0aa1a29234412b2eddf5d7ff899b7543f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12633
+ })) }, hAsync("div", { key: '297c458d4d17154cb297e2ef5926505bcb2d1fce', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12629
12634
  }
12630
12635
  get el() { return getElement(this); }
12631
12636
  static get watchers() { return {
@@ -13033,11 +13038,11 @@ class DatetimeButton {
13033
13038
  render() {
13034
13039
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
13035
13040
  const mode = getIonMode$1(this);
13036
- return (hAsync(Host, { key: '0be955404133adbb31ae16a6599014bb29765f19', class: createColorClasses$1(color, {
13041
+ return (hAsync(Host, { key: '26e606af6f067a5774db37ed41387ffebb941777', class: createColorClasses$1(color, {
13037
13042
  [mode]: true,
13038
13043
  [`${selectedButton}-active`]: datetimeActive,
13039
13044
  ['datetime-button-disabled']: disabled,
13040
- }) }, dateText && (hAsync("button", { key: '812dcb50b17768cc13a5cfa0bcce8b113cee0f09', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: '46930c740a32a78502df9e651f9bd5914d6a9fea', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '0602999cc8435dc37aa22da7f5531bc8cb71e1b4' }))), timeText && (hAsync("button", { key: 'ecdd21da5181ecbdce03209f9f6673b7dcbc1f78', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: 'b5b093b5166d12d11e27360788edaac916d44390', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: '70bb3a04f4748d13233eeb257503968dbd1161a9' })))));
13045
+ }) }, dateText && (hAsync("button", { key: '6b7aa66a15b4a6d89d411e40586de28a2ac9f343', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: 'd42f34fd167be34386319e7ea788c2ab03c90b87', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '47dd34f3c2799064cac7a5fe25440ecc043950f0' }))), timeText && (hAsync("button", { key: 'd77424a20fae320654774c7bfc8a8e2369d3afe3', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: 'ac088a78141bb53f2efd48dd7745f8954c92378b', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3a58ddfd28b9396e2518ffd62a045ec13d8b9d0' })))));
13041
13046
  }
13042
13047
  get el() { return getElement(this); }
13043
13048
  static get style() { return {
@@ -13111,12 +13116,12 @@ class Fab {
13111
13116
  render() {
13112
13117
  const { horizontal, vertical, edge } = this;
13113
13118
  const mode = getIonMode$1(this);
13114
- return (hAsync(Host, { key: 'cb44cf6486b0a6439b99da87c065b0b52e2514f4', class: {
13119
+ return (hAsync(Host, { key: '8a310806d0e748d7ebb0ed3d9a2652038e0f2960', class: {
13115
13120
  [mode]: true,
13116
13121
  [`fab-horizontal-${horizontal}`]: horizontal !== undefined,
13117
13122
  [`fab-vertical-${vertical}`]: vertical !== undefined,
13118
13123
  'fab-edge': edge,
13119
- } }, hAsync("slot", { key: '1ed484c7ecb10cd81fbca9a4f5c4049bf82f9f8a' })));
13124
+ } }, hAsync("slot", { key: '9394ef6d6e5b0410fa6ba212171f687fb178ce2d' })));
13120
13125
  }
13121
13126
  get el() { return getElement(this); }
13122
13127
  static get watchers() { return {
@@ -13206,7 +13211,7 @@ class FabButton {
13206
13211
  rel: this.rel,
13207
13212
  target: this.target,
13208
13213
  };
13209
- return (hAsync(Host, { key: 'eb347f7d6749c40637540d84778eb8d1b667a947', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13214
+ return (hAsync(Host, { key: '4eee204d20b0e2ffed49a88f6cb3e04b6697965c', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13210
13215
  [mode]: true,
13211
13216
  'fab-button-in-list': inList,
13212
13217
  'fab-button-translucent-in-list': inList && translucent,
@@ -13217,7 +13222,7 @@ class FabButton {
13217
13222
  'ion-activatable': true,
13218
13223
  'ion-focusable': true,
13219
13224
  [`fab-button-${size}`]: size !== undefined,
13220
- }) }, hAsync(TagType, Object.assign({ key: '83e853c8815f41543c848eb2e05ec2bb1716110a' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), hAsync("ion-icon", { key: '798deede94de658e4345acf7c2aafe2ab2567b0b', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: '99252fde6de1aca73fc240a6da7e29acac9acb18', class: "button-inner" }, hAsync("slot", { key: 'dc73e9b41bf1f0e385e5784f975dfb81e37c8dfb' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '8413e162f44a0350f54dff06cff7aad101de3549' }))));
13225
+ }) }, hAsync(TagType, Object.assign({ key: '914561622c0c6bd41453e828a7d8a39f924875ac' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), hAsync("ion-icon", { key: '2c8090742a64c62a79243667027a195cca9d5912', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: 'c3e55291e4c4d306d34a4b95dd2e727e87bdf39c', class: "button-inner" }, hAsync("slot", { key: 'f8e57f71d8f8878d9746cfece82f57f19ef9e988' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'a5e94fa0bb9836072300617245ed0c1b4887bac6' }))));
13221
13226
  }
13222
13227
  get el() { return getElement(this); }
13223
13228
  static get style() { return {
@@ -13268,11 +13273,11 @@ class FabList {
13268
13273
  }
13269
13274
  render() {
13270
13275
  const mode = getIonMode$1(this);
13271
- return (hAsync(Host, { key: 'fa1d195b9950654ba0e984bf61d981c977d05275', class: {
13276
+ return (hAsync(Host, { key: '64b33366447f66c7f979cfac56307fbb1a6fac1c', class: {
13272
13277
  [mode]: true,
13273
13278
  'fab-list-active': this.activated,
13274
13279
  [`fab-list-side-${this.side}`]: true,
13275
- } }, hAsync("slot", { key: '2ec738c66c05112e1e2521155d6adfc36d2fd1db' })));
13280
+ } }, hAsync("slot", { key: 'd9f474f7f20fd7e813db358fddc720534ca05bb6' })));
13276
13281
  }
13277
13282
  get el() { return getElement(this); }
13278
13283
  static get watchers() { return {
@@ -13724,7 +13729,7 @@ class Footer {
13724
13729
  const mode = getIonMode$1(this);
13725
13730
  const tabs = this.el.closest('ion-tabs');
13726
13731
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
13727
- return (hAsync(Host, { key: '5da19dc38ba73e1ddfd1bef3ebd485105d77c751', role: "contentinfo", class: {
13732
+ return (hAsync(Host, { key: 'ddc228f1a1e7fa4f707dccf74db2490ca3241137', role: "contentinfo", class: {
13728
13733
  [mode]: true,
13729
13734
  // Used internally for styling
13730
13735
  [`footer-${mode}`]: true,
@@ -13732,7 +13737,7 @@ class Footer {
13732
13737
  [`footer-translucent-${mode}`]: translucent,
13733
13738
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
13734
13739
  [`footer-collapse-${collapse}`]: collapse !== undefined,
13735
- } }, mode === 'ios' && translucent && hAsync("div", { key: 'fafad08090a33d8c4e8a5b63d61929dcb89aab47', class: "footer-background" }), hAsync("slot", { key: 'e0a443d346afa55e4317c0bc1263fdbe3c619559' })));
13740
+ } }, mode === 'ios' && translucent && hAsync("div", { key: 'e16ed4963ff94e06de77eb8038201820af73937c', class: "footer-background" }), hAsync("slot", { key: 'f186934febf85d37133d9351a96c1a64b0a4b203' })));
13736
13741
  }
13737
13742
  get el() { return getElement(this); }
13738
13743
  static get style() { return {
@@ -13763,10 +13768,10 @@ class Grid {
13763
13768
  }
13764
13769
  render() {
13765
13770
  const mode = getIonMode$1(this);
13766
- return (hAsync(Host, { key: '930ce78b02f8360fbca08a35d364d2c09128c6c8', class: {
13771
+ return (hAsync(Host, { key: '617127ecfabf9bf615bef1dda1be3fed5a065949', class: {
13767
13772
  [mode]: true,
13768
13773
  'grid-fixed': this.fixed,
13769
- } }, hAsync("slot", { key: 'c47bf7ef2197f5ebc42d3e2c55044276fb0db393' })));
13774
+ } }, hAsync("slot", { key: 'c781fff853b093d8f44bdb7943bbc4f17c903803' })));
13770
13775
  }
13771
13776
  static get style() { return IonGridStyle0; }
13772
13777
  static get cmpMeta() { return {
@@ -14097,14 +14102,14 @@ class Header {
14097
14102
  const collapse = this.collapse || 'none';
14098
14103
  // banner role must be at top level, so remove role if inside a menu
14099
14104
  const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
14100
- return (hAsync(Host, Object.assign({ key: 'c687314ef290793a9d633ad20cfc5eeb47621e31', role: roleType, class: {
14105
+ return (hAsync(Host, Object.assign({ key: 'b6cc27f0b08afc9fcc889683525da765d80ba672', role: roleType, class: {
14101
14106
  [mode]: true,
14102
14107
  // Used internally for styling
14103
14108
  [`header-${mode}`]: true,
14104
14109
  [`header-translucent`]: this.translucent,
14105
14110
  [`header-collapse-${collapse}`]: true,
14106
14111
  [`header-translucent-${mode}`]: this.translucent,
14107
- } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: 'b429996046082405a91e7c23f95516db0b736f12', class: "header-background" }), hAsync("slot", { key: 'e17a8965f8d3a33c1bfcb056c153d8242e5229fa' })));
14112
+ } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: '395766d4dcee3398bc91960db21f922095292f14', class: "header-background" }), hAsync("slot", { key: '09a67ece27b258ff1248805d43d92a49b2c6859a' })));
14108
14113
  }
14109
14114
  get el() { return getElement(this); }
14110
14115
  static get style() { return {
@@ -14383,7 +14388,7 @@ class Img {
14383
14388
  render() {
14384
14389
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
14385
14390
  const { draggable } = inheritedAttributes;
14386
- return (hAsync(Host, { key: '14d24d65ec8e5522192ca58035264971b1ab883b', class: getIonMode$1(this) }, hAsync("img", { key: '345ba155a5fdce5e66c397a599b7333d37d9cb1d', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
14391
+ return (hAsync(Host, { key: 'da600442894427dee1974a28e545613afac69fca', class: getIonMode$1(this) }, hAsync("img", { key: '16df0c7069af86c0fa7ce5af598bc0f63b4eb71a', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
14387
14392
  }
14388
14393
  get el() { return getElement(this); }
14389
14394
  static get watchers() { return {
@@ -14590,7 +14595,7 @@ class InfiniteScroll {
14590
14595
  render() {
14591
14596
  const mode = getIonMode$1(this);
14592
14597
  const disabled = this.disabled;
14593
- return (hAsync(Host, { key: '1444429a86950c449953cbf578436cc8cabf40ec', class: {
14598
+ return (hAsync(Host, { key: 'e844956795f69be33396ce4480aa7a54ad01b28c', class: {
14594
14599
  [mode]: true,
14595
14600
  'infinite-scroll-loading': this.isLoading,
14596
14601
  'infinite-scroll-enabled': !disabled,
@@ -14646,11 +14651,11 @@ class InfiniteScrollContent {
14646
14651
  }
14647
14652
  render() {
14648
14653
  const mode = getIonMode$1(this);
14649
- return (hAsync(Host, { key: '060278bf9cb0321e182352f9613be4ebbb028259', class: {
14654
+ return (hAsync(Host, { key: '7c16060dcfe2a0b0fb3e2f8f4c449589a76f1baa', class: {
14650
14655
  [mode]: true,
14651
14656
  // Used internally for styling
14652
14657
  [`infinite-scroll-content-${mode}`]: true,
14653
- } }, hAsync("div", { key: '07d3cada920145f979ad315bd187fb878e0c3da3', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: '6254f175d7543d09f3dd47cd0589a2809182cd8c', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: 'a6a816d1c65b60b786333b209b63492aa716a283', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
14658
+ } }, hAsync("div", { key: 'a94f4d8746e053dc718f97520bd7e48cb316443a', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: '10143d5d2a50a2a2bc5de1cee8e7ab51263bcf23', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: '8846e88191690d9c61a0b462889ed56fbfed8b0d', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
14654
14659
  }
14655
14660
  static get style() { return {
14656
14661
  ios: IonInfiniteScrollContentIosStyle0,
@@ -15397,7 +15402,7 @@ class Input {
15397
15402
  * TODO(FW-5592): Remove hasStartEndSlots condition
15398
15403
  */
15399
15404
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
15400
- return (hAsync(Host, { key: 'cdde9963d71685e6a4f3f3b3bc52e75d022435cb', class: createColorClasses$1(this.color, {
15405
+ return (hAsync(Host, { key: '54b5662d9a7f011a85e4119650c92b9af275bf96', class: createColorClasses$1(this.color, {
15401
15406
  [mode]: true,
15402
15407
  'has-value': hasValue,
15403
15408
  'has-focus': hasFocus,
@@ -15408,7 +15413,7 @@ class Input {
15408
15413
  'in-item': inItem,
15409
15414
  'in-item-color': hostContext('ion-item.ion-color', this.el),
15410
15415
  'input-disabled': disabled,
15411
- }) }, hAsync("label", { key: '4412791c93405f20e50e50363879265180b6078f', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '5c71c43ef3eeb44dde76ed64ce10763834c8fbc7', class: "native-wrapper" }, hAsync("slot", { key: '1d86b58dc299a4208dd02ccdc9ceaea7576698c3', name: "start" }), hAsync("input", Object.assign({ key: '7fc932174485f7d09e6a797dfd49ea11fbad71b6', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '46de455e4e308b8d7640b04778f7c7559b4124c6', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
15416
+ }) }, hAsync("label", { key: '551cf8a932af3275689ecf32988b84355404e8f1', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: 'b3601dca7e0f23517748f6e7feb899c953355bc4', class: "native-wrapper" }, hAsync("slot", { key: 'd687a9bb4c5778cfee35ce1b8d6d16ddc8eca768', name: "start" }), hAsync("input", Object.assign({ key: 'ab927e84e43bedf8b7827bb743888a1778292deb', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '0d2ee3f7e69cee75f071f37b2e9bc174572c5a01', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
15412
15417
  /**
15413
15418
  * This prevents mobile browsers from
15414
15419
  * blurring the input when the clear
@@ -15423,7 +15428,7 @@ class Input {
15423
15428
  * for screen readers as it means users would be unable to swipe past the clear button.
15424
15429
  */
15425
15430
  ev.stopPropagation();
15426
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '375e860a20e1807ce0db0e1934a0650fe9929966', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '859d47a1b88aa8377479e5d11e52a6a1c1c30e7e', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'd2d4286b348107e33247b5c0afda0f8bd697ecee', class: "input-highlight" })), this.renderBottomContent()));
15431
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: 'c7715111897f43839c10d38662616edb662cd49b', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: 'afc44cbe1ad50f17942d5297a12509abecbd6ecd', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'ee3af32cd9003d497f33e352e56313d43295f3a9', class: "input-highlight" })), this.renderBottomContent()));
15427
15432
  }
15428
15433
  get el() { return getElement(this); }
15429
15434
  static get watchers() { return {
@@ -15545,16 +15550,16 @@ class InputPasswordToggle {
15545
15550
  const showPasswordIcon = (_a = this.showIcon) !== null && _a !== void 0 ? _a : eye;
15546
15551
  const hidePasswordIcon = (_b = this.hideIcon) !== null && _b !== void 0 ? _b : eyeOff;
15547
15552
  const isPasswordVisible = type === 'text';
15548
- return (hAsync(Host, { key: 'ed1c29726ce0c91548f0e2ada61e3f8b5c813d2d', class: createColorClasses$1(color, {
15553
+ return (hAsync(Host, { key: 'd9811e25bfeb2aa197352bb9be852e9e420739d5', class: createColorClasses$1(color, {
15549
15554
  [mode]: true,
15550
- }) }, hAsync("ion-button", { key: '9698eccdaedb86cf12d20acc53660371b3af3c55', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": "show password", role: "switch", type: "button", onPointerDown: (ev) => {
15555
+ }) }, hAsync("ion-button", { key: '1eaea1442b248fb2b8d61538b27274e647a07804', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": "show password", role: "switch", type: "button", onPointerDown: (ev) => {
15551
15556
  /**
15552
15557
  * This prevents mobile browsers from
15553
15558
  * blurring the input when the password toggle
15554
15559
  * button is activated.
15555
15560
  */
15556
15561
  ev.preventDefault();
15557
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '1f2119c30b56c800d9af44e6499445a0ebb466cf', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15562
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '9c88de8f4631d9bde222ce2edf6950d639e04773', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15558
15563
  }
15559
15564
  get el() { return getElement(this); }
15560
15565
  static get watchers() { return {
@@ -15850,11 +15855,11 @@ class ItemDivider {
15850
15855
  }
15851
15856
  render() {
15852
15857
  const mode = getIonMode$1(this);
15853
- return (hAsync(Host, { key: '60fda1dab7dbc0038ec7ff68a661896430f7d5c5', class: createColorClasses$1(this.color, {
15858
+ return (hAsync(Host, { key: '6cff318230a9b2a9db529df154285d3dd9822efe', class: createColorClasses$1(this.color, {
15854
15859
  [mode]: true,
15855
15860
  'item-divider-sticky': this.sticky,
15856
15861
  item: true,
15857
- }) }, hAsync("slot", { key: '6ce072dfc2adfa699a2c34ffe25ed221c74d9eea', name: "start" }), hAsync("div", { key: '9a441be204ee2f0b567432722407c75e3cbbe942', class: "item-divider-inner" }, hAsync("div", { key: 'fd6f2969b345dba51400a290473e594d2d019dc5', class: "item-divider-wrapper" }, hAsync("slot", { key: 'ebf5601b21c4cf199c01bf142865b8da0c1ba4a6' })), hAsync("slot", { key: '249af8f30113f2c986976d518126661f65531121', name: "end" }))));
15862
+ }) }, hAsync("slot", { key: 'eb50dfab74ab0fd13697db17ecd60e8fa0bf1750', name: "start" }), hAsync("div", { key: '2806efd89d086f4fb844a479d9c095e1e0775713', class: "item-divider-inner" }, hAsync("div", { key: '77b7d5fa987e5f1c26d8023cd1f974a8a263a3de', class: "item-divider-wrapper" }, hAsync("slot", { key: 'dbafb0deb140a19a2a9748fd5b48760c39c6fd2e' })), hAsync("slot", { key: 'ef9a848fe21e84ef21cd273b8a4d9f95f558175b', name: "end" }))));
15858
15863
  }
15859
15864
  get el() { return getElement(this); }
15860
15865
  static get style() { return {
@@ -15886,7 +15891,7 @@ class ItemGroup {
15886
15891
  }
15887
15892
  render() {
15888
15893
  const mode = getIonMode$1(this);
15889
- return (hAsync(Host, { key: '24ff047b7c45f963f0dad072c65d38a230c2bc97', role: "group", class: {
15894
+ return (hAsync(Host, { key: 'f9ffe0290d3fa546494fe55f952d8554f2a8abf8', role: "group", class: {
15890
15895
  [mode]: true,
15891
15896
  // Used internally for styling
15892
15897
  [`item-group-${mode}`]: true,
@@ -15954,12 +15959,12 @@ class ItemOption {
15954
15959
  href: this.href,
15955
15960
  target: this.target,
15956
15961
  };
15957
- return (hAsync(Host, { key: '1900e015f593fefd710478a2088e052399c957eb', onClick: this.onClick, class: createColorClasses$1(this.color, {
15962
+ return (hAsync(Host, { key: '89310624997821858c1abde60c0ffb142ca466e0', onClick: this.onClick, class: createColorClasses$1(this.color, {
15958
15963
  [mode]: true,
15959
15964
  'item-option-disabled': disabled,
15960
15965
  'item-option-expandable': expandable,
15961
15966
  'ion-activatable': true,
15962
- }) }, hAsync(TagType, Object.assign({ key: '5db2bb9bc72b7b00c324e4189cd1b5f862680ebb' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: '6927e812ad001c5e7bd17f440d82c3830c58957b', class: "button-inner" }, hAsync("slot", { key: '0fde4333def94c55d1318868c2bc71e780d5876a', name: "top" }), hAsync("div", { key: '7ecc9ae8ddf66d7ed5d9f30becc9faf820e1c62e', class: "horizontal-wrapper" }, hAsync("slot", { key: 'a15567fd4bd91080e9fbb6bb0c9b0e67d8a67051', name: "start" }), hAsync("slot", { key: '7f86cdd28063e23f9d78997623333c5037c4f364', name: "icon-only" }), hAsync("slot", { key: '4abb69ce3ad6c4917dd87b7b1eb0fa1c69917d73' }), hAsync("slot", { key: '8b35a29f48722040465f182679ac17209937578d', name: "end" })), hAsync("slot", { key: 'fa15a00891b41d66a4ccb51575dec54b72d0059e', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '0c071910c90fafca8026f59d78f4d9d5224d150a' }))));
15967
+ }) }, hAsync(TagType, Object.assign({ key: 'e4dfbb3048eed03a7f7e84c6f75545e0ca9b45fb' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'dffcf437fbdc15f2e7a19e60a015e90c73c8377d', class: "button-inner" }, hAsync("slot", { key: '48a23512e0601e062118d8b2c46c8bb96f25509f', name: "top" }), hAsync("div", { key: '952a9a9aa3a476aa1f4408d7e208bf9e916b8c30', class: "horizontal-wrapper" }, hAsync("slot", { key: 'f8d18a61c1ecec4a22a55443cf72bbc51383b64f', name: "start" }), hAsync("slot", { key: '1f9f219e6f879d2e0bf6d80cf0d3f518eb14ce0e', name: "icon-only" }), hAsync("slot", { key: 'a55adcdbe68131e5b1855c2dd45dd9454ab544fb' }), hAsync("slot", { key: '3c4c85a4fbb7efc797d8bc5adf6d238da022ff9f', name: "end" })), hAsync("slot", { key: '503c7e4b306745c523f57f24399ea06ba9b1e21d', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b0e270b0c4f3ff9f9b6d74bad12a9278d7633226' }))));
15963
15968
  }
15964
15969
  get el() { return getElement(this); }
15965
15970
  static get style() { return {
@@ -16006,7 +16011,7 @@ class ItemOptions {
16006
16011
  render() {
16007
16012
  const mode = getIonMode$1(this);
16008
16013
  const isEnd = isEndSide(this.side);
16009
- return (hAsync(Host, { key: 'e28cd6a236323b5cc203c9b96782aa81024da924', class: {
16014
+ return (hAsync(Host, { key: '6d91399d2aaaa81d514d0bbc8dffe53eeec25d36', class: {
16010
16015
  [mode]: true,
16011
16016
  // Used internally for styling
16012
16017
  [`item-options-${mode}`]: true,
@@ -16468,7 +16473,7 @@ class ItemSliding {
16468
16473
  }
16469
16474
  render() {
16470
16475
  const mode = getIonMode$1(this);
16471
- return (hAsync(Host, { key: '99f87c8bd794ae69830b407ba55013ac44793c26', class: {
16476
+ return (hAsync(Host, { key: '47a3edd2ef2080ed9cfc2784277dea09785c7dc4', class: {
16472
16477
  [mode]: true,
16473
16478
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
16474
16479
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -16577,13 +16582,13 @@ class Label {
16577
16582
  render() {
16578
16583
  const position = this.position;
16579
16584
  const mode = getIonMode$1(this);
16580
- return (hAsync(Host, { key: 'c2c0f388dab910d294efb9fbb409ee4ef829c1ed', class: createColorClasses$1(this.color, {
16585
+ return (hAsync(Host, { key: '6353a70565ef6fbbbf4042b000e536c61bcf99a9', class: createColorClasses$1(this.color, {
16581
16586
  [mode]: true,
16582
16587
  'in-item-color': hostContext('ion-item.ion-color', this.el),
16583
16588
  [`label-${position}`]: position !== undefined,
16584
16589
  [`label-no-animate`]: this.noAnimate,
16585
16590
  'label-rtl': document.dir === 'rtl',
16586
- }) }, hAsync("slot", { key: '4de6b69950f417873a13c851018ec31ea2686f0a' })));
16591
+ }) }, hAsync("slot", { key: '6ef9c2758c0168442aa84941af0a6cec1ef1ec21' })));
16587
16592
  }
16588
16593
  get el() { return getElement(this); }
16589
16594
  static get watchers() { return {
@@ -16639,7 +16644,7 @@ class List {
16639
16644
  render() {
16640
16645
  const mode = getIonMode$1(this);
16641
16646
  const { lines, inset } = this;
16642
- return (hAsync(Host, { key: '8bde220025a7eeca6da075379c6487c4c9bdddc1', role: "list", class: {
16647
+ return (hAsync(Host, { key: '5ff2b0b3989cc99ce17abb8bcd7ec1847940d1ec', role: "list", class: {
16643
16648
  [mode]: true,
16644
16649
  // Used internally for styling
16645
16650
  [`list-${mode}`]: true,
@@ -16685,10 +16690,10 @@ class ListHeader {
16685
16690
  render() {
16686
16691
  const { lines } = this;
16687
16692
  const mode = getIonMode$1(this);
16688
- return (hAsync(Host, { key: '7e2e050f13722f2b870a2415d99a9e631e9ca267', class: createColorClasses$1(this.color, {
16693
+ return (hAsync(Host, { key: 'fb78bd8601cbd7b90ec84a96e0c8325be1132b1e', class: createColorClasses$1(this.color, {
16689
16694
  [mode]: true,
16690
16695
  [`list-header-lines-${lines}`]: lines !== undefined,
16691
- }) }, hAsync("div", { key: '6117bebc45800d874e9b75355476fbced5cc8398', class: "list-header-inner" }, hAsync("slot", { key: '9165fb274cd2c45a5a65c271d8b1f30e8a00c890' }))));
16696
+ }) }, hAsync("div", { key: '2580ad49f3a54973e15f14d645a1e55a6fa066ac', class: "list-header-inner" }, hAsync("slot", { key: '677b2e2ec8eeb3ae6ad329e86c76451cf3ae6c2f' }))));
16692
16697
  }
16693
16698
  static get style() { return {
16694
16699
  ios: IonListHeaderIosStyle0,
@@ -16957,9 +16962,9 @@ class Loading {
16957
16962
  * Otherwise, don't set aria-labelledby.
16958
16963
  */
16959
16964
  const ariaLabelledBy = message !== undefined ? msgId : null;
16960
- return (hAsync(Host, Object.assign({ key: 'fb3d2cd7cd0539ed6540d8be50e243c7916b3ca2', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
16965
+ return (hAsync(Host, Object.assign({ key: 'd97f536b7f443ea19a2bbf2dcbc7f546b8e0a092', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
16961
16966
  zIndex: `${40000 + this.overlayIndex}`,
16962
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'c8bd30782f3040b1b80e88aa924861e439d40754', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '7ad4447fafa49aa861d311221b8c2e8171b4c610', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '1879df0d895eb8ee20ccdc94dd35d708c1140b91', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '220f292c136681f5fa91f94669aac75b15e490ce', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'd599084a1426d941bdd080a988d8ad5b9589b823', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'e443897b353a48e0c72718dba04d83d7c5070d73', tabindex: "0", "aria-hidden": "true" })));
16967
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '6cd39bd7912fd080ab59d041644054c96d238ea9', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'c14ca5a9308844f11bcb010257e15208a75b39bc', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '118bceefa8e1cf8b225a858f224e6d919cf03c26', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '490d6e8ae4433835fe273162d7b90deab944fb39', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'c5cf6549c43df4cb23814b3e62ec4d9e7ea2b64f', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '2b888362122d3b66b0492d53b0c21bd6a2a97501', tabindex: "0", "aria-hidden": "true" })));
16963
16968
  }
16964
16969
  get el() { return getElement(this); }
16965
16970
  static get watchers() { return {
@@ -17311,7 +17316,7 @@ const createMenuController = () => {
17311
17316
  menus.splice(index, 1);
17312
17317
  }
17313
17318
  };
17314
- const _setOpen = async (menu, shouldOpen, animated) => {
17319
+ const _setOpen = async (menu, shouldOpen, animated, role) => {
17315
17320
  if (isAnimatingSync()) {
17316
17321
  return false;
17317
17322
  }
@@ -17321,7 +17326,7 @@ const createMenuController = () => {
17321
17326
  await openedMenu.setOpen(false, false);
17322
17327
  }
17323
17328
  }
17324
- return menu._setOpen(shouldOpen, animated);
17329
+ return menu._setOpen(shouldOpen, animated, role);
17325
17330
  };
17326
17331
  const _createAnimation = (type, menuCmp) => {
17327
17332
  const animationBuilder = menuAnimations.get(type); // TODO(FW-2832): type
@@ -17555,13 +17560,13 @@ class Menu {
17555
17560
  if (shouldClose) {
17556
17561
  ev.preventDefault();
17557
17562
  ev.stopPropagation();
17558
- this.close();
17563
+ this.close(undefined, BACKDROP);
17559
17564
  }
17560
17565
  }
17561
17566
  }
17562
17567
  onKeydown(ev) {
17563
17568
  if (ev.key === 'Escape') {
17564
- this.close();
17569
+ this.close(undefined, BACKDROP);
17565
17570
  }
17566
17571
  }
17567
17572
  /**
@@ -17590,8 +17595,8 @@ class Menu {
17590
17595
  * Closes the menu. If the menu is already closed or it can't be closed,
17591
17596
  * it returns `false`.
17592
17597
  */
17593
- close(animated = true) {
17594
- return this.setOpen(false, animated);
17598
+ close(animated = true, role) {
17599
+ return this.setOpen(false, animated, role);
17595
17600
  }
17596
17601
  /**
17597
17602
  * Toggles the menu. If the menu is already open, it will try to close, otherwise it will try to open it.
@@ -17604,8 +17609,8 @@ class Menu {
17604
17609
  * Opens or closes the button.
17605
17610
  * If the operation can't be completed successfully, it returns `false`.
17606
17611
  */
17607
- setOpen(shouldOpen, animated = true) {
17608
- return menuController._setOpen(this, shouldOpen, animated);
17612
+ setOpen(shouldOpen, animated = true, role) {
17613
+ return menuController._setOpen(this, shouldOpen, animated, role);
17609
17614
  }
17610
17615
  trapKeyboardFocus(ev, doc) {
17611
17616
  const target = ev.target;
@@ -17643,12 +17648,12 @@ class Menu {
17643
17648
  }
17644
17649
  }
17645
17650
  }
17646
- async _setOpen(shouldOpen, animated = true) {
17651
+ async _setOpen(shouldOpen, animated = true, role) {
17647
17652
  // If the menu is disabled or it is currently being animated, let's do nothing
17648
17653
  if (!this._isActive() || this.isAnimating || shouldOpen === this._isOpen) {
17649
17654
  return false;
17650
17655
  }
17651
- this.beforeAnimation(shouldOpen);
17656
+ this.beforeAnimation(shouldOpen, role);
17652
17657
  await this.loadAnimation();
17653
17658
  await this.startAnimation(shouldOpen, animated);
17654
17659
  /**
@@ -17660,7 +17665,7 @@ class Menu {
17660
17665
  this.operationCancelled = false;
17661
17666
  return false;
17662
17667
  }
17663
- this.afterAnimation(shouldOpen);
17668
+ this.afterAnimation(shouldOpen, role);
17664
17669
  return true;
17665
17670
  }
17666
17671
  async loadAnimation() {
@@ -17735,7 +17740,7 @@ class Menu {
17735
17740
  return checkEdgeSide(window, detail.currentX, this.isEndSide, this.maxEdgeStart);
17736
17741
  }
17737
17742
  onWillStart() {
17738
- this.beforeAnimation(!this._isOpen);
17743
+ this.beforeAnimation(!this._isOpen, GESTURE);
17739
17744
  return this.loadAnimation();
17740
17745
  }
17741
17746
  onStart() {
@@ -17802,10 +17807,10 @@ class Menu {
17802
17807
  const playTo = this._isOpen ? !shouldComplete : shouldComplete;
17803
17808
  this.animation
17804
17809
  .easing('cubic-bezier(0.4, 0.0, 0.6, 1)')
17805
- .onFinish(() => this.afterAnimation(shouldOpen), { oneTimeCallback: true })
17810
+ .onFinish(() => this.afterAnimation(shouldOpen, GESTURE), { oneTimeCallback: true })
17806
17811
  .progressEnd(playTo ? 1 : 0, this._isOpen ? 1 - newStepValue : newStepValue, 300);
17807
17812
  }
17808
- beforeAnimation(shouldOpen) {
17813
+ beforeAnimation(shouldOpen, role) {
17809
17814
  assert(!this.isAnimating, '_before() should not be called while animating');
17810
17815
  // this places the menu into the correct location before it animates in
17811
17816
  // this css class doesn't actually kick off any animations
@@ -17844,10 +17849,10 @@ class Menu {
17844
17849
  this.ionWillOpen.emit();
17845
17850
  }
17846
17851
  else {
17847
- this.ionWillClose.emit();
17852
+ this.ionWillClose.emit({ role });
17848
17853
  }
17849
17854
  }
17850
- afterAnimation(isOpen) {
17855
+ afterAnimation(isOpen, role) {
17851
17856
  var _a;
17852
17857
  // keep opening/closing the menu disabled for a touch more yet
17853
17858
  // only add listeners/css if it's enabled and isOpen
@@ -17897,7 +17902,7 @@ class Menu {
17897
17902
  this.animation.stop();
17898
17903
  }
17899
17904
  // emit close event
17900
- this.ionDidClose.emit();
17905
+ this.ionDidClose.emit({ role });
17901
17906
  // undo focus trapping so multiple menus don't collide
17902
17907
  document.removeEventListener('focus', this.handleFocus, true);
17903
17908
  }
@@ -17929,7 +17934,7 @@ class Menu {
17929
17934
  * If the menu is disabled then we should
17930
17935
  * forcibly close the menu even if it is open.
17931
17936
  */
17932
- this.afterAnimation(false);
17937
+ this.afterAnimation(false, GESTURE);
17933
17938
  }
17934
17939
  }
17935
17940
  render() {
@@ -17940,14 +17945,14 @@ class Menu {
17940
17945
  * the ionBackButton listener in the menu controller
17941
17946
  * will handle closing the menu when Escape is pressed.
17942
17947
  */
17943
- return (hAsync(Host, { key: '30c0c9bfb8973e4a6feb658f8c4ee8e362f464ed', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
17948
+ return (hAsync(Host, { key: '5aaea91873d0885b97304372223b2a6ed16ca28b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
17944
17949
  [mode]: true,
17945
17950
  [`menu-type-${type}`]: true,
17946
17951
  'menu-enabled': !disabled,
17947
17952
  [`menu-side-${side}`]: true,
17948
17953
  'menu-pane-visible': isPaneVisible,
17949
17954
  'split-pane-side': hostContext('ion-split-pane', el),
17950
- } }, hAsync("div", { key: '34b0e5840906862cf1bc27207e089004b0402c56', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '2cd7e61a8c0987ca4b3f1f8b33cba7152f1275fe' })), hAsync("ion-backdrop", { key: 'd190b1f9b66c76e276f27bfe074d3aab796180fb', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
17955
+ } }, hAsync("div", { key: '3ba822411ad11eff52c518fecf1b2a5b47e0b678', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'd28a78e98493b21d43ea8b19e96b21547adf1916' })), hAsync("ion-backdrop", { key: '0468c15d111737f5cb646918dcfacedadf907a8f', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
17951
17956
  }
17952
17957
  get el() { return getElement(this); }
17953
17958
  static get watchers() { return {
@@ -18050,7 +18055,7 @@ class MenuButton {
18050
18055
  type: this.type,
18051
18056
  };
18052
18057
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
18053
- return (hAsync(Host, { key: '95a8b9f09c7fae9713a8dc003ed277f6f31403da', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18058
+ return (hAsync(Host, { key: '7ec29715ce7926b7c2b08f3d9cac8aaa16b3dc28', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18054
18059
  [mode]: true,
18055
18060
  button: true, // ion-buttons target .button
18056
18061
  'menu-button-hidden': hidden,
@@ -18059,7 +18064,7 @@ class MenuButton {
18059
18064
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
18060
18065
  'ion-activatable': true,
18061
18066
  'ion-focusable': true,
18062
- }) }, hAsync("button", Object.assign({ key: '39f3ce20c400d2fac4890a042e8e44426709fca5' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '310978dc1cdef668de6720cde2a2304253679176', class: "button-inner" }, hAsync("slot", { key: '2a2b9de524c1fc3c526fe9559cb077b976852725' }, hAsync("ion-icon", { key: '9c22d7ea9fc3d76c32ec1c1b4b13d982c60b8c2d', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: 'c58c9e29c763070383472f65a9d322a684bcb564', type: "unbounded" }))));
18067
+ }) }, hAsync("button", Object.assign({ key: 'd4c5929264af3ba0328118bcc27d2ab7ef5d3809' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '7bfa6e9a93105486623d044861e879ec79ff64f1', class: "button-inner" }, hAsync("slot", { key: '071ab58e285832fc188706166f5547d45d501ac5' }, hAsync("ion-icon", { key: '918ec5d791921de9821c347af4f65f97dd94aabf', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: '00ffdd53f635e706c1dbd01b8e7944498650fe81', type: "unbounded" }))));
18063
18068
  }
18064
18069
  get el() { return getElement(this); }
18065
18070
  static get style() { return {
@@ -18108,10 +18113,10 @@ class MenuToggle {
18108
18113
  render() {
18109
18114
  const mode = getIonMode$1(this);
18110
18115
  const hidden = this.autoHide && !this.visible;
18111
- return (hAsync(Host, { key: '90e621f09792383f1badcc1b402b1ac7d08c5f98', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18116
+ return (hAsync(Host, { key: '7c27ea5b0795676bf5cb33e1f83aa142c197f64e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18112
18117
  [mode]: true,
18113
18118
  'menu-toggle-hidden': hidden,
18114
- } }, hAsync("slot", { key: 'c0abdd1d91e9d80ee3704e3e374ebe1f29078460' })));
18119
+ } }, hAsync("slot", { key: '69f187becedc0fe34603d41d279f043cf0fdf776' })));
18115
18120
  }
18116
18121
  static get style() { return IonMenuToggleStyle0; }
18117
18122
  static get cmpMeta() { return {
@@ -20115,18 +20120,18 @@ class Modal {
20115
20120
  const mode = getIonMode$1(this);
20116
20121
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20117
20122
  const isHandleCycle = handleBehavior === 'cycle';
20118
- return (hAsync(Host, Object.assign({ key: '013ba4864ca4d2c1052c512f6a4b0732b8decff7', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20123
+ return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20119
20124
  zIndex: `${20000 + this.overlayIndex}`,
20120
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '498b1c0a03836d6799dcf3b8e9315805c70f6480', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'ce22e4caf1096e87248926fe2477f0d5a4c8a5cf', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '540e47b15d8290166c39b022c725182114a75682',
20125
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
20121
20126
  /*
20122
20127
  role and aria-modal must be used on the
20123
20128
  same element. They must also be set inside the
20124
20129
  shadow DOM otherwise ion-button will not be highlighted
20125
20130
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20126
20131
  */
20127
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'f3b352ec9a63a7ec801462aacfd8295b4302d115', class: "modal-handle",
20132
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
20128
20133
  // Prevents the handle from receiving keyboard focus when it does not cycle
20129
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '31a3f58f4c733ffdf736523c154200874a96b1d0' }))));
20134
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
20130
20135
  }
20131
20136
  get el() { return getElement(this); }
20132
20137
  static get watchers() { return {
@@ -21075,7 +21080,7 @@ class Nav {
21075
21080
  }
21076
21081
  }
21077
21082
  render() {
21078
- return hAsync("slot", { key: 'e9d99a8a0b84f02f9964d8143cd5e647e43334f9' });
21083
+ return hAsync("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
21079
21084
  }
21080
21085
  get el() { return getElement(this); }
21081
21086
  static get watchers() { return {
@@ -21148,7 +21153,7 @@ class NavLink {
21148
21153
  this.routerAnimation = undefined;
21149
21154
  }
21150
21155
  render() {
21151
- return hAsync(Host, { key: '42c23dcdec5fdb25defebaf6e8a9fa75754ff8eb', onClick: this.onClick });
21156
+ return hAsync(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
21152
21157
  }
21153
21158
  get el() { return getElement(this); }
21154
21159
  static get cmpMeta() { return {
@@ -21182,9 +21187,9 @@ class Note {
21182
21187
  }
21183
21188
  render() {
21184
21189
  const mode = getIonMode$1(this);
21185
- return (hAsync(Host, { key: '90ec2fe8c9487608ed8c0bdc32c2e80a6a0890b3', class: createColorClasses$1(this.color, {
21190
+ return (hAsync(Host, { key: '10a3495bc21166176986441479f8f7539029d161', class: createColorClasses$1(this.color, {
21186
21191
  [mode]: true,
21187
- }) }, hAsync("slot", { key: '115ee3f79e6c526b0644443aad468e99385d0eda' })));
21192
+ }) }, hAsync("slot", { key: 'b6a9459e1b85f608fafd060a4bfeb11637ebe873' })));
21188
21193
  }
21189
21194
  static get style() { return {
21190
21195
  ios: IonNoteIosStyle0,
@@ -21681,7 +21686,7 @@ class Picker$1 {
21681
21686
  this.emitInputModeChange();
21682
21687
  }
21683
21688
  render() {
21684
- return (hAsync(Host, { key: '02b0687b1f80ba295a965dfba76dd59e2d1de5d3', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: 'f83ed84bcf9e02539c00d8a4e63e6a0d7fc4ac71', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
21689
+ return (hAsync(Host, { key: 'f92214a09dc85b65873676f40fde2b802960e704', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: '6da37f75aca4ea1c9cb3bc733ebda2116279f313', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
21685
21690
  var _a;
21686
21691
  /**
21687
21692
  * The "Enter" key represents
@@ -21696,7 +21701,7 @@ class Picker$1 {
21696
21701
  if (ev.key === 'Enter') {
21697
21702
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
21698
21703
  }
21699
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '45b07fb0617d8e006712776bf78302288edb3ff4', class: "picker-before" }), hAsync("div", { key: '73009229368e0d62b09c913aacade26f068a7aa9', class: "picker-after" }), hAsync("div", { key: 'b73da00e446cd1cfd511c39212e14a00d355752e', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: 'd969f5efc5ddb9eda6c4828702efd1ceeb69f767' })));
21704
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '298e99d83dd3f5bf2798150bab0bb4024af472fa', class: "picker-before" }), hAsync("div", { key: 'ea578f04eb562a4dc6d6cc92de133dcb9fb7f42a', class: "picker-after" }), hAsync("div", { key: '84567824956dfe967992a629904836ba8b75b3ec', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: 'df81f8fb90e1f649b608328034528f5c31c70c3b' })));
21700
21705
  }
21701
21706
  get el() { return getElement(this); }
21702
21707
  static get style() { return {
@@ -21949,11 +21954,11 @@ class Picker {
21949
21954
  render() {
21950
21955
  const { htmlAttributes } = this;
21951
21956
  const mode = getIonMode$1(this);
21952
- return (hAsync(Host, Object.assign({ key: '3b163ca87354a3a4f302ff016d5affd0dc97bccc', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
21957
+ return (hAsync(Host, Object.assign({ key: '0712fa8732141848e50ad2e08e2ba66ef2a48991', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
21953
21958
  zIndex: `${20000 + this.overlayIndex}`,
21954
21959
  }, class: Object.assign({ [mode]: true,
21955
21960
  // Used internally for styling
21956
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'da4224447bdbcfbadd1bd63ebe7a7bfdb8aa3129', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '65eba425990a21be00fdac90de20a630d284cf97', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'd78ada360801b2c051baa030751f3d83ac81e697', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'd5bd9ddfbdbdaf42048a1496e7939eb3aee6da65', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '96ee1e3ec77c57174b1a93135b66bea6b7002555', class: "picker-columns" }, hAsync("div", { key: 'e11b1c238f350e65bde2ee67eee9d71c830e74e7', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '4d5fc7c723185111ec01fd34ef95a897c301238d', class: "picker-below-highlight" }))), hAsync("div", { key: '899bcad97609c1d971c1b886551db5ba0248a9f4', tabindex: "0", "aria-hidden": "true" })));
21961
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'c997632ef0488698739664012de5a6494de438b6', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '20045054a76cca997b410835fa6b305af22dcb12', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'a73a6ac20b685ed9694d4fa95ea236ce5d63fdbf', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '1221cdcc2ff013deeba12170129c8fe78308330c', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '45038a58430a4251100797b902e7034243137564', class: "picker-columns" }, hAsync("div", { key: 'c579bb69cddd4090912855ffd7f59536280f34b9', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '978c6632d82a97d053b729c9de65dd3af4c4cee2', class: "picker-below-highlight" }))), hAsync("div", { key: 'e7e9dc437a3cf6d559e2cb0df71af69047a2ae31', tabindex: "0", "aria-hidden": "true" })));
21957
21962
  }
21958
21963
  get el() { return getElement(this); }
21959
21964
  static get watchers() { return {
@@ -22535,12 +22540,12 @@ class PickerColumn {
22535
22540
  render() {
22536
22541
  const { color, disabled, isActive, numericInput } = this;
22537
22542
  const mode = getIonMode$1(this);
22538
- return (hAsync(Host, { key: 'd60736ce74c0e8c774a163272b78fbad32993ec2', class: createColorClasses$1(color, {
22543
+ return (hAsync(Host, { key: 'a221dc10f1eb7c41637a16d2c7167c16939822fd', class: createColorClasses$1(color, {
22539
22544
  [mode]: true,
22540
22545
  ['picker-column-active']: isActive,
22541
22546
  ['picker-column-numeric-input']: numericInput,
22542
22547
  ['picker-column-disabled']: disabled,
22543
- }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '74611112ef154b343ae29a773f8cd8a01cc1447d', name: "prefix" }), hAsync("div", { key: 'af772d2b61b7eb41a567593d290b80a50b7caa72', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
22548
+ }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '81b0656f606856f3dc0a657bf167d81a5011405e', name: "prefix" }), hAsync("div", { key: '71b9de67c04150255dd66592601c9d926db0c31c', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
22544
22549
  this.scrollEl = el;
22545
22550
  },
22546
22551
  /**
@@ -22561,7 +22566,7 @@ class PickerColumn {
22561
22566
  * To prevent this, we set the tabIndex to -1. This
22562
22567
  * will match the behavior of the other browsers.
22563
22568
  */
22564
- tabIndex: -1 }, hAsync("div", { key: '4b646ee97bcf8ed541b9798c91dff189eec41dd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'a44d1a10d20a13aeb47f9871b09e291aa7f216bd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '6a481715bd68fa68dc2a76c2e867ce771ea680b0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '23236e731b1ad432c104761ebeec91697a6b7643' }), hAsync("div", { key: '58a6c1f35a3ff0b26acaceebfd477d74b6dcfd6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'ea864872dec6dc363406d1bd9101b1bf21944db6', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '28cc4c570d0dd59f491eef2b15a5ed706d28b7bb', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'cff1cc0bea732a5ce22bb451c5ea404a84af1993', name: "suffix" })));
22569
+ tabIndex: -1 }, hAsync("div", { key: 'ebdc2f08c83db0cf17b4be29f28fcb00f529601e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '04ab56fcb8e6a7d6af00204c4560feb99ff34a56', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '6cf8f538903faf0fe1e4130f3eaf7b4e2e17cb52', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '1cc392307b70c576be5b81b5226ceba735957f0f' }), hAsync("div", { key: '23e3f28e2a99b9aa8b7c8f68ad9583e3ca63e9e2', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '8a0563f09780c3116af0caebe4f40587ec1f041f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '13207e248fc0009f37e0c90a3ee2bac2f130b856', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: '55ecf2ab5f214f936c2468cbdb7952daf89416b8', name: "suffix" })));
22565
22570
  }
22566
22571
  get el() { return getElement(this); }
22567
22572
  static get watchers() { return {
@@ -22928,9 +22933,9 @@ class PickerColumnCmp {
22928
22933
  render() {
22929
22934
  const col = this.col;
22930
22935
  const mode = getIonMode$1(this);
22931
- return (hAsync(Host, { key: '56289a294e5c580f3e7fe5fc12777aa7f80ad19b', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
22936
+ return (hAsync(Host, { key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
22932
22937
  'max-width': this.col.columnWidth,
22933
- } }, col.prefix && (hAsync("div", { key: 'd21f44667b5df567d6879723fe643ea7c2c60bef', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: 'bb427e5f24fd832703926e0e847ad05567597262', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '0413f7c074b6534b8967387ecb9957a79a267aff', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
22938
+ } }, col.prefix && (hAsync("div", { key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '1d9c0892ce56e0da9044c79eb953827166f5190b', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
22934
22939
  }
22935
22940
  get el() { return getElement(this); }
22936
22941
  static get watchers() { return {
@@ -23034,10 +23039,10 @@ class PickerColumnOption {
23034
23039
  render() {
23035
23040
  const { color, disabled, ariaLabel } = this;
23036
23041
  const mode = getIonMode$1(this);
23037
- return (hAsync(Host, { key: 'cc4435a0ce0e55be1321bcabaf342ed68cf5ba1e', class: createColorClasses$1(color, {
23042
+ return (hAsync(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses$1(color, {
23038
23043
  [mode]: true,
23039
23044
  ['option-disabled']: disabled,
23040
- }) }, hAsync("button", { key: '0187fb967771e0787807a8538dce4e59f6a98565', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: 'dbe52552f3f27332816748c12d929cc81060841d' }))));
23045
+ }) }, hAsync("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
23041
23046
  }
23042
23047
  get el() { return getElement(this); }
23043
23048
  static get watchers() { return {
@@ -24351,9 +24356,9 @@ class Popover {
24351
24356
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
24352
24357
  const desktop = isPlatform('desktop');
24353
24358
  const enableArrow = arrow && !parentPopover;
24354
- return (hAsync(Host, Object.assign({ key: '3a7c4c39384bab1447c4bd6b9b06d7837a09353b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24359
+ return (hAsync(Host, Object.assign({ key: 'ffe8b37c9ffb5cac210a7307e6cdfcf78712905b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24355
24360
  zIndex: `${20000 + this.overlayIndex}`,
24356
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '38a1c4ad29238d1e81cab407f099121fa4947cce', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'f825494c5e3be89d7fcf0229e29b405bccb13edb', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '3acae5a0106389c776c8ffe5bf10f3ff006e0346', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '2aa73e9f06b1d2ac4c0d36c23186b9164f395079', class: "popover-content", part: "content" }, hAsync("slot", { key: '62f5713414aae47dde6a8aef1f9b69af287534ae' })))));
24361
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '12b3ffa3928b4d56a4f09c3d2f5d493d47b45255', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '2c2862d5c7e75b637973c712b4982bf4978c0cdf', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '0cfacc52afaa7abc28c1b7742889d7a1c23a37ad', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '3ef570c44d4fe7f063dd419008c92c8c40d3cd22', class: "popover-content", part: "content" }, hAsync("slot", { key: '6fc5dfdce20fee1642bc1f05d41b5bf7d1034457' })))));
24357
24362
  }
24358
24363
  get el() { return getElement(this); }
24359
24364
  static get watchers() { return {
@@ -24445,7 +24450,7 @@ class ProgressBar {
24445
24450
  const mode = getIonMode$1(this);
24446
24451
  // If the progress is displayed as a solid bar.
24447
24452
  const progressSolid = buffer === 1;
24448
- return (hAsync(Host, { key: 'b293f4475bcdaa7851b41ebfda659037f0365120', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24453
+ return (hAsync(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24449
24454
  [mode]: true,
24450
24455
  [`progress-bar-${type}`]: true,
24451
24456
  'progress-paused': paused,
@@ -24578,8 +24583,10 @@ class Radio {
24578
24583
  }
24579
24584
  /** @internal */
24580
24585
  async setFocus(ev) {
24581
- ev.stopPropagation();
24582
- ev.preventDefault();
24586
+ if (ev !== undefined) {
24587
+ ev.stopPropagation();
24588
+ ev.preventDefault();
24589
+ }
24583
24590
  this.el.focus();
24584
24591
  }
24585
24592
  /** @internal */
@@ -24613,7 +24620,7 @@ class Radio {
24613
24620
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
24614
24621
  const mode = getIonMode$1(this);
24615
24622
  const inItem = hostContext('ion-item', el);
24616
- return (hAsync(Host, { key: 'd6d9525eea9dadc3ea7060eb9b8cbb919e1d7091', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24623
+ return (hAsync(Host, { key: '5a0adab55ad009305de4856fa1b9f93f2279a734', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24617
24624
  [mode]: true,
24618
24625
  'in-item': inItem,
24619
24626
  'radio-checked': checked,
@@ -24624,10 +24631,10 @@ class Radio {
24624
24631
  // Focus and active styling should not apply when the radio is in an item
24625
24632
  'ion-activatable': !inItem,
24626
24633
  'ion-focusable': !inItem,
24627
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '3ec73512bac8feb651c66e544899c6a4330d504c', class: "radio-wrapper" }, hAsync("div", { key: '9ae7ecb19c7bafe0ce3d0f717af0338251964ebf', class: {
24634
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'f5673a798e6d87868339f046445f707e1d93b7b6', class: "radio-wrapper" }, hAsync("div", { key: 'e9190c06f75a171cab63e3f74ccf771c3ed87005', class: {
24628
24635
  'label-text-wrapper': true,
24629
24636
  'label-text-wrapper-hidden': !hasLabel,
24630
- }, part: "label" }, hAsync("slot", { key: '2950f1579a22d4a06f9c903fd462c2b46f43bfd7' })), hAsync("div", { key: '8b19ce30b39066744108a6de2da42a7ce8ffdbec', class: "native-wrapper" }, this.renderRadioControl()))));
24637
+ }, part: "label" }, hAsync("slot", { key: '6cedf4e7b3bd03e4a635727dd7b6094bab64af64' })), hAsync("div", { key: '26dd48d9d2848b7f100b732abdc4a3171adde483', class: "native-wrapper" }, this.renderRadioControl()))));
24631
24638
  }
24632
24639
  get el() { return getElement(this); }
24633
24640
  static get watchers() { return {
@@ -24759,7 +24766,9 @@ class RadioGroup {
24759
24766
  this.ionChange.emit({ value, event });
24760
24767
  }
24761
24768
  onKeydown(ev) {
24762
- const inSelectPopover = !!this.el.closest('ion-select-popover');
24769
+ // We don't want the value to automatically change/emit when the radio group is part of a select interface
24770
+ // as this will cause the interface to close when navigating through the radio group options
24771
+ const inSelectInterface = !!this.el.closest('ion-select-popover') || !!this.el.closest('ion-select-modal');
24763
24772
  if (ev.target && !this.el.contains(ev.target)) {
24764
24773
  return;
24765
24774
  }
@@ -24783,7 +24792,7 @@ class RadioGroup {
24783
24792
  }
24784
24793
  if (next && radios.includes(next)) {
24785
24794
  next.setFocus(ev);
24786
- if (!inSelectPopover) {
24795
+ if (!inSelectInterface) {
24787
24796
  this.value = next.value;
24788
24797
  this.emitValueChange(ev);
24789
24798
  }
@@ -24812,7 +24821,7 @@ class RadioGroup {
24812
24821
  const { label, labelId, el, name, value } = this;
24813
24822
  const mode = getIonMode$1(this);
24814
24823
  renderHiddenInput(true, el, name, value, false);
24815
- return hAsync(Host, { key: '7a8ad7eb6a05c6f96a348dcf30fd0c610a95688c', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24824
+ return hAsync(Host, { key: '99f543b9caa8e2d30a80e7ea7ecf6b6fdacc76eb', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24816
24825
  }
24817
24826
  get el() { return getElement(this); }
24818
24827
  static get watchers() { return {
@@ -25444,7 +25453,7 @@ class Range {
25444
25453
  const needsEndAdjustment = inItem && !hasEndContent;
25445
25454
  const mode = getIonMode$1(this);
25446
25455
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25447
- return (hAsync(Host, { key: '877c9f15e62fadb184f9da82dc19898227521e07', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25456
+ return (hAsync(Host, { key: '05c699caaead7cc74deaae2a958c4632191473a8', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25448
25457
  [mode]: true,
25449
25458
  'in-item': inItem,
25450
25459
  'range-disabled': disabled,
@@ -25453,10 +25462,10 @@ class Range {
25453
25462
  [`range-label-placement-${labelPlacement}`]: true,
25454
25463
  'range-item-start-adjustment': needsStartAdjustment,
25455
25464
  'range-item-end-adjustment': needsEndAdjustment,
25456
- }) }, hAsync("label", { key: '2ae9088349a65e09b0e33c53442190ef563b2345', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'c3d0ca96ceb1e57fbd383e9c7e4da14d931771b8', class: {
25465
+ }) }, hAsync("label", { key: '959837bcc48c4bda33ae1f62b66ef444329a2961', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'a434c6b5c26f57f52b3af98d881e7e6a179c89fc', class: {
25457
25466
  'label-text-wrapper': true,
25458
25467
  'label-text-wrapper-hidden': !hasLabel,
25459
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '25d20fd5e015931f60a8ecc5374a1c84d167af9c', class: "native-wrapper" }, hAsync("slot", { key: 'ae9f9fd92eed35b81ca97a81caa56332d8b6b2b2', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '74b7dede566a959c9b05a6de68426c7e339d18c8', name: "end" })))));
25468
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '87df1037b6b3337bd1fab05d33a26bf658c57914', class: "native-wrapper" }, hAsync("slot", { key: '2cb88f101da49b70aeae29b0bf5445fac241bb2f', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '17b835cfb2bd9b8e1957afd425543ff02b913d83', name: "end" })))));
25460
25469
  }
25461
25470
  get el() { return getElement(this); }
25462
25471
  static get watchers() { return {
@@ -26357,7 +26366,7 @@ class Refresher {
26357
26366
  }
26358
26367
  render() {
26359
26368
  const mode = getIonMode$1(this);
26360
- return (hAsync(Host, { key: '3270f181a5141e7d886ec554a3e892974446b90e', slot: "fixed", class: {
26369
+ return (hAsync(Host, { key: '9d4ac22988aec2c6af0b0c90934c52f62f0e4ce3', slot: "fixed", class: {
26361
26370
  [mode]: true,
26362
26371
  // Used internally for styling
26363
26372
  [`refresher-${mode}`]: true,
@@ -26585,7 +26594,7 @@ class RefresherContent {
26585
26594
  const pullingIcon = this.pullingIcon;
26586
26595
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
26587
26596
  const mode = getIonMode$1(this);
26588
- return (hAsync(Host, { key: '1bec5b4da221c69d856f3f5ddf40f2e03ebf2a4c', class: mode }, hAsync("div", { key: '4fcc526c4f1881e9368d9cd16bd7030919bd3841', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'a4e9e2e12c2d7faefc8303ec8c021f999ddf308e', class: "refresher-pulling-icon" }, hAsync("div", { key: '5a2d215feb7fb4b64d540d3a65c0f24b415a2433', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: 'abef2621d671ac6ff0abac43a702cbd825b7f127', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: '30087d672c3780672a05874cd93cd099b2855462', class: "arrow-container" }, hAsync("ion-icon", { key: '5e30333dee469aec0d8efc8c4e6dabb619c6f363', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '48fe72b5ce8ded633c6ee799cebb520b9c8be528', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'd8dfd5d42056b1c0a436c5006affb255407816c0', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'c2cbfb94f157c82601ffe7bb815ff82ebc7c0a49', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: '17f3ebe6a31768d5e389f45a2c12f68600185db9', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: 'e8e61f8d7189c9939bba184201c9509d1d5b0fad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
26597
+ return (hAsync(Host, { key: '19633bbcf02e3dba885d6bdcdaf2269bf4c8e2f5', class: mode }, hAsync("div", { key: '28922e434a55a6cac0476fe2bee56941ce0d1c02', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'fe575bf996021884677e9b23a3215d63caf894f5', class: "refresher-pulling-icon" }, hAsync("div", { key: '59fe12297fd95bc33b8df8cd35316e2a1c084d91', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: 'af9cc013ae04945c140b2865610ca73edb52ab48', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: '34df66ad1b0f706a0532957251aa2c20bf4587d8', class: "arrow-container" }, hAsync("ion-icon", { key: 'ffdb5c123e606b823491c6c51cc2b497f62581bb', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'ac3a2032bb969264d20fa057e9123441005d7a9d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'd969d10915548e72aae289b52154366f3dd39b31', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'a8f854f81a94812d7bef8ce088331d94f49ff53d', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'a1f646945370e40c844d62bc0c647443ae9dfbe7', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: 'ab3ff4047769b6436e222b46d193c1e8b23e2fce', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
26589
26598
  }
26590
26599
  get el() { return getElement(this); }
26591
26600
  static get cmpMeta() { return {
@@ -26628,7 +26637,7 @@ class Reorder {
26628
26637
  render() {
26629
26638
  const mode = getIonMode$1(this);
26630
26639
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
26631
- return (hAsync(Host, { key: '663d74e231e3af56b6298ee2539fdac9c8465839', class: mode }, hAsync("slot", { key: 'c7c384ab8c9ca8abdc89cd984a39dfde70e342ca' }, hAsync("ion-icon", { key: 'c8b6052db03d4b9e33a90e600c20861c73ee73ce', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
26640
+ return (hAsync(Host, { key: '27266e30bcb7e10c57fb6d546399cfb1f1c93b23', class: mode }, hAsync("slot", { key: '8745cb9a31458e884c27eed1fb90d104fe9a79eb' }, hAsync("ion-icon", { key: '6c4b9631a2f5610f1e21b2db025b6702d0d593bf', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
26632
26641
  }
26633
26642
  get el() { return getElement(this); }
26634
26643
  static get style() { return {
@@ -26882,7 +26891,7 @@ class ReorderGroup {
26882
26891
  }
26883
26892
  render() {
26884
26893
  const mode = getIonMode$1(this);
26885
- return (hAsync(Host, { key: '491f3e5843cf728ff4589e58bd86b8ce6709b293', class: {
26894
+ return (hAsync(Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
26886
26895
  [mode]: true,
26887
26896
  'reorder-enabled': !this.disabled,
26888
26897
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -26990,7 +26999,7 @@ class RippleEffect {
26990
26999
  }
26991
27000
  render() {
26992
27001
  const mode = getIonMode$1(this);
26993
- return (hAsync(Host, { key: '2302f087ab1c6755355736e4ca77309c5fdcf185', role: "presentation", class: {
27002
+ return (hAsync(Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
26994
27003
  [mode]: true,
26995
27004
  unbounded: this.unbounded,
26996
27005
  } }));
@@ -27932,10 +27941,10 @@ class RouterLink {
27932
27941
  rel: this.rel,
27933
27942
  target: this.target,
27934
27943
  };
27935
- return (hAsync(Host, { key: 'f876442cab5b14b7e83c6d6ad2c2d878a9c57439', onClick: this.onClick, class: createColorClasses$1(this.color, {
27944
+ return (hAsync(Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: createColorClasses$1(this.color, {
27936
27945
  [mode]: true,
27937
27946
  'ion-activatable': true,
27938
- }) }, hAsync("a", Object.assign({ key: 'c44b78ec1fd10a40c23bfe548860ac2b346646a8' }, attrs), hAsync("slot", { key: 'd32180a567613f79f89885135bd0d776ffc1eb8e' }))));
27947
+ }) }, hAsync("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), hAsync("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
27939
27948
  }
27940
27949
  static get style() { return IonRouterLinkStyle0; }
27941
27950
  static get cmpMeta() { return {
@@ -28130,7 +28139,7 @@ class RouterOutlet {
28130
28139
  return true;
28131
28140
  }
28132
28141
  render() {
28133
- return hAsync("slot", { key: '8279a453c66a766e6e383ff59842b4ae070c13a9' });
28142
+ return hAsync("slot", { key: 'a70341f58d19df55de1dad00e3464388e446aa2a' });
28134
28143
  }
28135
28144
  get el() { return getElement(this); }
28136
28145
  static get watchers() { return {
@@ -28164,7 +28173,7 @@ class Row {
28164
28173
  registerInstance(this, hostRef);
28165
28174
  }
28166
28175
  render() {
28167
- return (hAsync(Host, { key: '813c9a7f6782d2cf8eb27f30d3ab28e6f3122868', class: getIonMode$1(this) }, hAsync("slot", { key: '356bec4d4d408ea63d6b431b06465d5b7bcbff71' })));
28176
+ return (hAsync(Host, { key: 'aea072a5005e3f1f309f0d1ae5be5ee19869b035', class: getIonMode$1(this) }, hAsync("slot", { key: '2a481c2126ac6ca65f0a1bbd07c2d3365409cb78' })));
28168
28177
  }
28169
28178
  static get style() { return IonRowStyle0; }
28170
28179
  static get cmpMeta() { return {
@@ -28558,8 +28567,8 @@ class Searchbar {
28558
28567
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
28559
28568
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
28560
28569
  const shouldShowCancelButton = this.shouldShowCancelButton();
28561
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '20b2d0f2e3425eede725dbe3323c7c29cdb66f4e', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '3a516c3fdd35256eb79639fd340afcdd92cfd7aa', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
28562
- return (hAsync(Host, { key: '34878db21f63a9bdffca0446d8ad5619ff04cac3', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28570
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '0ef595eb1628928d4c7fdb166b8e41768700fa6e', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: 'ea2c9b36d991acf5af7662059cb6b045f683ca94', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
28571
+ return (hAsync(Host, { key: '17d57ece5852d03047e4d53ddad6c9d88a432a00', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28563
28572
  [mode]: true,
28564
28573
  'searchbar-animated': animated,
28565
28574
  'searchbar-disabled': this.disabled,
@@ -28569,14 +28578,14 @@ class Searchbar {
28569
28578
  'searchbar-has-focus': this.focused,
28570
28579
  'searchbar-should-show-clear': this.shouldShowClearButton(),
28571
28580
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
28572
- }) }, hAsync("div", { key: 'faa7b011206a8359b1963368c65988e506b260cb', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '732d3e5a2b258da6f136a14472ac872816a9853b', "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)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '767dca971849f221dde220deae728b41bf764b98', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '9941b5de1ed9ebcf3e81de8e0731c09dea5a89d9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
28581
+ }) }, hAsync("div", { key: 'f67c2124e70c24eef0a271516e9c4bdaf7e98ceb', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '8c7f7ccc6809cca30ccc8c4e98e349d3f916321d', "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)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: 'f06524d3163b3883bbde937862aa1e0e8f49f6e1', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '9f7ba2bec93412ecb674b197be13db1de308bb57', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
28573
28582
  /**
28574
28583
  * This prevents mobile browsers from
28575
28584
  * blurring the input when the clear
28576
28585
  * button is activated.
28577
28586
  */
28578
28587
  ev.preventDefault();
28579
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'cb2b543d286373a84e2c6c2a959f92b045bbd7dd', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
28588
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '19fc3dbc722acc47ff7eb3c94ad4de8aed38dff4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
28580
28589
  }
28581
28590
  get el() { return getElement(this); }
28582
28591
  static get watchers() { return {
@@ -28643,6 +28652,7 @@ class Segment {
28643
28652
  this.ionChange = createEvent(this, "ionChange", 7);
28644
28653
  this.ionSelect = createEvent(this, "ionSelect", 7);
28645
28654
  this.ionStyle = createEvent(this, "ionStyle", 7);
28655
+ this.segmentViewEl = null;
28646
28656
  this.onClick = (ev) => {
28647
28657
  const current = ev.target;
28648
28658
  const previous = this.checked;
@@ -28657,7 +28667,13 @@ class Segment {
28657
28667
  if (current !== previous) {
28658
28668
  this.emitValueChange();
28659
28669
  }
28660
- if (this.scrollable || !this.swipeGesture) {
28670
+ if (this.segmentViewEl) {
28671
+ this.updateSegmentView();
28672
+ if (this.scrollable && previous) {
28673
+ this.checkButton(previous, current);
28674
+ }
28675
+ }
28676
+ else if (this.scrollable || !this.swipeGesture) {
28661
28677
  if (previous) {
28662
28678
  this.checkButton(previous, current);
28663
28679
  }
@@ -28713,19 +28729,49 @@ class Segment {
28713
28729
  swipeGestureChanged() {
28714
28730
  this.gestureChanged();
28715
28731
  }
28716
- valueChanged(value) {
28732
+ valueChanged(value, oldValue) {
28733
+ // Force a value to exist if we're using a segment view
28734
+ if (this.segmentViewEl && value === undefined) {
28735
+ this.value = this.getButtons()[0].value;
28736
+ return;
28737
+ }
28738
+ if (oldValue !== undefined && value !== undefined) {
28739
+ const buttons = this.getButtons();
28740
+ const previous = buttons.find((button) => button.value === oldValue);
28741
+ const current = buttons.find((button) => button.value === value);
28742
+ if (previous && current) {
28743
+ if (!this.segmentViewEl) {
28744
+ this.checkButton(previous, current);
28745
+ }
28746
+ else if (this.triggerScrollOnValueChange !== false) {
28747
+ this.updateSegmentView();
28748
+ }
28749
+ }
28750
+ }
28751
+ else if (value !== undefined && oldValue === undefined && this.segmentViewEl) {
28752
+ this.updateSegmentView();
28753
+ }
28717
28754
  /**
28718
28755
  * `ionSelect` is emitted every time the value changes (internal or external changes).
28719
28756
  * Used by `ion-segment-button` to determine if the button should be checked.
28720
28757
  */
28721
28758
  this.ionSelect.emit({ value });
28722
- this.scrollActiveButtonIntoView();
28759
+ // The scroll listener should handle scrolling the active button into view as needed
28760
+ if (!this.segmentViewEl) {
28761
+ this.scrollActiveButtonIntoView();
28762
+ }
28763
+ this.triggerScrollOnValueChange = undefined;
28723
28764
  }
28724
28765
  disabledChanged() {
28725
28766
  this.gestureChanged();
28726
- const buttons = this.getButtons();
28727
- for (const button of buttons) {
28728
- button.disabled = this.disabled;
28767
+ if (!this.segmentViewEl) {
28768
+ const buttons = this.getButtons();
28769
+ for (const button of buttons) {
28770
+ button.disabled = this.disabled;
28771
+ }
28772
+ }
28773
+ else {
28774
+ this.segmentViewEl.disabled = this.disabled;
28729
28775
  }
28730
28776
  }
28731
28777
  gestureChanged() {
@@ -28735,6 +28781,10 @@ class Segment {
28735
28781
  }
28736
28782
  connectedCallback() {
28737
28783
  this.emitStyle();
28784
+ this.segmentViewEl = this.getSegmentView();
28785
+ }
28786
+ disconnectedCallback() {
28787
+ this.segmentViewEl = null;
28738
28788
  }
28739
28789
  componentWillLoad() {
28740
28790
  this.emitStyle();
@@ -28768,6 +28818,9 @@ class Segment {
28768
28818
  if (this.disabled) {
28769
28819
  this.disabledChanged();
28770
28820
  }
28821
+ // Update segment view based on the initial value,
28822
+ // but do not animate the scroll
28823
+ this.updateSegmentView(false);
28771
28824
  }
28772
28825
  onStart(detail) {
28773
28826
  this.valueBeforeGesture = this.value;
@@ -28784,6 +28837,7 @@ class Segment {
28784
28837
  if (value !== undefined) {
28785
28838
  if (this.valueBeforeGesture !== value) {
28786
28839
  this.emitValueChange();
28840
+ this.updateSegmentView();
28787
28841
  }
28788
28842
  }
28789
28843
  this.valueBeforeGesture = undefined;
@@ -28811,12 +28865,7 @@ class Segment {
28811
28865
  setActivated(activated) {
28812
28866
  const buttons = this.getButtons();
28813
28867
  buttons.forEach((button) => {
28814
- if (activated) {
28815
- button.classList.add('segment-button-activated');
28816
- }
28817
- else {
28818
- button.classList.remove('segment-button-activated');
28819
- }
28868
+ button.classList.toggle('segment-button-activated', activated);
28820
28869
  });
28821
28870
  this.activated = activated;
28822
28871
  }
@@ -28867,6 +28916,7 @@ class Segment {
28867
28916
  currentIndicator.classList.add('segment-button-indicator-animated');
28868
28917
  // Remove the transform to slide the indicator back to the button clicked
28869
28918
  currentIndicator.style.setProperty('transform', '');
28919
+ this.scrollActiveButtonIntoView(true);
28870
28920
  });
28871
28921
  this.value = current.value;
28872
28922
  this.setCheckedClasses();
@@ -28882,6 +28932,60 @@ class Segment {
28882
28932
  buttons[next].classList.add('segment-button-after-checked');
28883
28933
  }
28884
28934
  }
28935
+ getSegmentView() {
28936
+ const buttons = this.getButtons();
28937
+ // Get the first button with a contentId
28938
+ const firstContentId = buttons.find((button) => button.contentId);
28939
+ // Get the segment content with an id matching the button's contentId
28940
+ const segmentContent = document.querySelector(`ion-segment-content[id="${firstContentId === null || firstContentId === void 0 ? void 0 : firstContentId.contentId}"]`);
28941
+ // Return the segment view for that matching segment content
28942
+ return segmentContent === null || segmentContent === void 0 ? void 0 : segmentContent.closest('ion-segment-view');
28943
+ }
28944
+ handleSegmentViewScroll(ev) {
28945
+ const { scrollRatio, isManualScroll } = ev.detail;
28946
+ if (!isManualScroll) {
28947
+ return;
28948
+ }
28949
+ const dispatchedFrom = ev.target;
28950
+ const segmentViewEl = this.segmentViewEl;
28951
+ const segmentEl = this.el;
28952
+ // Only update the indicator if the event was dispatched from the correct segment view
28953
+ if (ev.composedPath().includes(segmentViewEl) || (dispatchedFrom === null || dispatchedFrom === void 0 ? void 0 : dispatchedFrom.contains(segmentEl))) {
28954
+ const buttons = this.getButtons();
28955
+ // If no buttons are found or there is no value set then do nothing
28956
+ if (!buttons.length)
28957
+ return;
28958
+ const index = buttons.findIndex((button) => button.value === this.value);
28959
+ const current = buttons[index];
28960
+ const nextIndex = Math.round(scrollRatio * (buttons.length - 1));
28961
+ if (this.lastNextIndex === undefined || this.lastNextIndex !== nextIndex) {
28962
+ this.lastNextIndex = nextIndex;
28963
+ this.triggerScrollOnValueChange = false;
28964
+ this.checkButton(current, buttons[nextIndex]);
28965
+ this.emitValueChange();
28966
+ }
28967
+ }
28968
+ }
28969
+ /**
28970
+ * Finds the related segment view and sets its current content
28971
+ * based on the selected segment button. This method
28972
+ * should be called on initial load of the segment,
28973
+ * after the gesture is completed (if dragging between segments)
28974
+ * and when a segment button is clicked directly.
28975
+ */
28976
+ updateSegmentView(smoothScroll = true) {
28977
+ const buttons = this.getButtons();
28978
+ const button = buttons.find((btn) => btn.value === this.value);
28979
+ // If the button does not have a contentId then there is
28980
+ // no associated segment view to update
28981
+ if (!(button === null || button === void 0 ? void 0 : button.contentId)) {
28982
+ return;
28983
+ }
28984
+ const segmentView = this.segmentViewEl;
28985
+ if (segmentView) {
28986
+ segmentView.setContent(button.contentId, smoothScroll);
28987
+ }
28988
+ }
28885
28989
  scrollActiveButtonIntoView(smoothScroll = true) {
28886
28990
  const { scrollable, value, el } = this;
28887
28991
  if (scrollable) {
@@ -29064,14 +29168,14 @@ class Segment {
29064
29168
  }
29065
29169
  render() {
29066
29170
  const mode = getIonMode$1(this);
29067
- return (hAsync(Host, { key: 'f1f7103b4c298e037df850ac809a1a7c6e9987a7', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29171
+ return (hAsync(Host, { key: '66bd7a565ba73540b3bbe56dd23b95e59bcef9bc', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29068
29172
  [mode]: true,
29069
29173
  'in-toolbar': hostContext('ion-toolbar', this.el),
29070
29174
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
29071
29175
  'segment-activated': this.activated,
29072
29176
  'segment-disabled': this.disabled,
29073
29177
  'segment-scrollable': this.scrollable,
29074
- }) }, hAsync("slot", { key: '6efdb318b13da8d21687084aa0761728fdf12579', onSlotchange: this.onSlottedItemsChange })));
29178
+ }) }, hAsync("slot", { key: '782c521b1a33729b8eab1c4b879bc3f2ff48ae1b', onSlotchange: this.onSlottedItemsChange })));
29075
29179
  }
29076
29180
  get el() { return getElement(this); }
29077
29181
  static get watchers() { return {
@@ -29096,7 +29200,7 @@ class Segment {
29096
29200
  "selectOnFocus": [4, "select-on-focus"],
29097
29201
  "activated": [32]
29098
29202
  },
29099
- "$listeners$": [[0, "keydown", "onKeyDown"]],
29203
+ "$listeners$": [[16, "ionSegmentViewScroll", "handleSegmentViewScroll"], [0, "keydown", "onKeyDown"]],
29100
29204
  "$lazyBundleId$": "-",
29101
29205
  "$attrsToReflect$": [["color", "color"]]
29102
29206
  }; }
@@ -29133,6 +29237,7 @@ class SegmentButton {
29133
29237
  }
29134
29238
  };
29135
29239
  this.checked = false;
29240
+ this.contentId = undefined;
29136
29241
  this.disabled = false;
29137
29242
  this.layout = 'icon-top';
29138
29243
  this.type = 'button';
@@ -29148,6 +29253,26 @@ class SegmentButton {
29148
29253
  addEventListener$1(segmentEl, 'ionSelect', this.updateState);
29149
29254
  addEventListener$1(segmentEl, 'ionStyle', this.updateStyle);
29150
29255
  }
29256
+ // Return if there is no contentId defined
29257
+ if (!this.contentId)
29258
+ return;
29259
+ // Attempt to find the Segment Content by its contentId
29260
+ const segmentContent = document.getElementById(this.contentId);
29261
+ // If no associated Segment Content exists, log an error and return
29262
+ if (!segmentContent) {
29263
+ console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
29264
+ return;
29265
+ }
29266
+ // Ensure the found element is a valid ION-SEGMENT-CONTENT
29267
+ if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
29268
+ console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
29269
+ return;
29270
+ }
29271
+ // Prevent buttons from being disabled when associated with segment content
29272
+ if (this.disabled) {
29273
+ console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
29274
+ this.disabled = false;
29275
+ }
29151
29276
  }
29152
29277
  disconnectedCallback() {
29153
29278
  const segmentEl = this.segmentEl;
@@ -29181,7 +29306,7 @@ class SegmentButton {
29181
29306
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
29182
29307
  const mode = getIonMode$1(this);
29183
29308
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
29184
- return (hAsync(Host, { key: '70cf5c7a3ae2620222c5250c644faf3cfc3b3e4e', class: {
29309
+ return (hAsync(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
29185
29310
  [mode]: true,
29186
29311
  'in-toolbar': hostContext('ion-toolbar', this.el),
29187
29312
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -29197,10 +29322,7 @@ class SegmentButton {
29197
29322
  'ion-activatable': true,
29198
29323
  'ion-activatable-instant': true,
29199
29324
  'ion-focusable': true,
29200
- } }, hAsync("button", Object.assign({ key: 'a53c9f1e360934e8d2e90476642ba4507fc38ebd', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '7d8feda840d389941cc693f500b5eba0b39b41da', class: "button-inner" }, hAsync("slot", { key: 'd9ae1eec45db253cbf573d29cd545658dd595d87' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '49e6a16968709dc9b3fc77bc9fb99acb42fda88c' })), hAsync("div", { key: '4e3ea0989ed5205dbb03586e4facb439b05a92de', part: "indicator", class: {
29201
- 'segment-button-indicator': true,
29202
- 'segment-button-indicator-animated': true,
29203
- } }, hAsync("div", { key: '65c72a151080998c1e548c87d4d4ebd5c7dda72f', part: "indicator-background", class: "segment-button-indicator-background" }))));
29325
+ } }, hAsync("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, hAsync("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), hAsync("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
29204
29326
  }
29205
29327
  get el() { return getElement(this); }
29206
29328
  static get watchers() { return {
@@ -29214,6 +29336,7 @@ class SegmentButton {
29214
29336
  "$flags$": 41,
29215
29337
  "$tagName$": "ion-segment-button",
29216
29338
  "$members$": {
29339
+ "contentId": [513, "content-id"],
29217
29340
  "disabled": [1028],
29218
29341
  "layout": [1],
29219
29342
  "type": [1],
@@ -29223,6 +29346,151 @@ class SegmentButton {
29223
29346
  },
29224
29347
  "$listeners$": undefined,
29225
29348
  "$lazyBundleId$": "-",
29349
+ "$attrsToReflect$": [["contentId", "content-id"]]
29350
+ }; }
29351
+ }
29352
+
29353
+ const segmentContentCss = ":host{scroll-snap-align:center;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}";
29354
+ var IonSegmentContentStyle0 = segmentContentCss;
29355
+
29356
+ class SegmentContent {
29357
+ constructor(hostRef) {
29358
+ registerInstance(this, hostRef);
29359
+ }
29360
+ render() {
29361
+ return (hAsync(Host, { key: '03684b2999ac64fe13e376fd7e7f279976e9d4f2' }, hAsync("slot", { key: '143031075bf33ca19e7cfd76fc8a67b83ccaf11c' })));
29362
+ }
29363
+ static get style() { return IonSegmentContentStyle0; }
29364
+ static get cmpMeta() { return {
29365
+ "$flags$": 9,
29366
+ "$tagName$": "ion-segment-content",
29367
+ "$members$": undefined,
29368
+ "$listeners$": undefined,
29369
+ "$lazyBundleId$": "-",
29370
+ "$attrsToReflect$": []
29371
+ }; }
29372
+ }
29373
+
29374
+ const segmentViewIosCss = ":host{display:-ms-flexbox;display:flex;height:100%;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}:host::-webkit-scrollbar{display:none}:host(.segment-view-disabled){-ms-touch-action:none;touch-action:none;overflow-x:hidden}:host(.segment-view-scroll-disabled){pointer-events:none}:host(.segment-view-disabled){opacity:0.3}";
29375
+ var IonSegmentViewIosStyle0 = segmentViewIosCss;
29376
+
29377
+ const segmentViewMdCss = ":host{display:-ms-flexbox;display:flex;height:100%;overflow-x:scroll;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none}:host::-webkit-scrollbar{display:none}:host(.segment-view-disabled){-ms-touch-action:none;touch-action:none;overflow-x:hidden}:host(.segment-view-scroll-disabled){pointer-events:none}:host(.segment-view-disabled){opacity:0.3}";
29378
+ var IonSegmentViewMdStyle0 = segmentViewMdCss;
29379
+
29380
+ class SegmentView {
29381
+ constructor(hostRef) {
29382
+ registerInstance(this, hostRef);
29383
+ this.ionSegmentViewScroll = createEvent(this, "ionSegmentViewScroll", 7);
29384
+ this.scrollEndTimeout = null;
29385
+ this.isTouching = false;
29386
+ this.disabled = false;
29387
+ this.isManualScroll = undefined;
29388
+ }
29389
+ handleScroll(ev) {
29390
+ var _a;
29391
+ const { scrollLeft, scrollWidth, clientWidth } = ev.target;
29392
+ const scrollRatio = scrollLeft / (scrollWidth - clientWidth);
29393
+ this.ionSegmentViewScroll.emit({
29394
+ scrollRatio,
29395
+ isManualScroll: (_a = this.isManualScroll) !== null && _a !== void 0 ? _a : true,
29396
+ });
29397
+ // Reset the timeout to check for scroll end
29398
+ this.resetScrollEndTimeout();
29399
+ }
29400
+ /**
29401
+ * Handle touch start event to know when the user is actively dragging the segment view.
29402
+ */
29403
+ handleScrollStart() {
29404
+ if (this.scrollEndTimeout) {
29405
+ clearTimeout(this.scrollEndTimeout);
29406
+ this.scrollEndTimeout = null;
29407
+ }
29408
+ this.isTouching = true;
29409
+ }
29410
+ /**
29411
+ * Handle touch end event to know when the user is no longer dragging the segment view.
29412
+ */
29413
+ handleTouchEnd() {
29414
+ this.isTouching = false;
29415
+ }
29416
+ /**
29417
+ * Reset the scroll end detection timer. This is called on every scroll event.
29418
+ */
29419
+ resetScrollEndTimeout() {
29420
+ if (this.scrollEndTimeout) {
29421
+ clearTimeout(this.scrollEndTimeout);
29422
+ this.scrollEndTimeout = null;
29423
+ }
29424
+ this.scrollEndTimeout = setTimeout(() => {
29425
+ this.checkForScrollEnd();
29426
+ },
29427
+ // Setting this to a lower value may result in inconsistencies in behavior
29428
+ // across browsers (particularly Firefox).
29429
+ // Ideally, all of this logic is removed once the scroll end event is
29430
+ // supported on all browsers (https://caniuse.com/?search=scrollend)
29431
+ 100);
29432
+ }
29433
+ /**
29434
+ * Check if the scroll has ended and the user is not actively touching.
29435
+ * If the conditions are met (active content is enabled and no active touch),
29436
+ * reset the scroll position and emit the scroll end event.
29437
+ */
29438
+ checkForScrollEnd() {
29439
+ // Only emit scroll end event if the active content is not disabled and
29440
+ // the user is not touching the segment view
29441
+ if (!this.isTouching) {
29442
+ this.isManualScroll = undefined;
29443
+ }
29444
+ }
29445
+ /**
29446
+ * @internal
29447
+ *
29448
+ * This method is used to programmatically set the displayed segment content
29449
+ * in the segment view. Calling this method will update the `value` of the
29450
+ * corresponding segment button.
29451
+ *
29452
+ * @param id: The id of the segment content to display.
29453
+ * @param smoothScroll: Whether to animate the scroll transition.
29454
+ */
29455
+ async setContent(id, smoothScroll = true) {
29456
+ const contents = this.getSegmentContents();
29457
+ const index = contents.findIndex((content) => content.id === id);
29458
+ if (index === -1)
29459
+ return;
29460
+ this.isManualScroll = false;
29461
+ this.resetScrollEndTimeout();
29462
+ const contentWidth = this.el.offsetWidth;
29463
+ this.el.scrollTo({
29464
+ top: 0,
29465
+ left: index * contentWidth,
29466
+ behavior: smoothScroll ? 'smooth' : 'instant',
29467
+ });
29468
+ }
29469
+ getSegmentContents() {
29470
+ return Array.from(this.el.querySelectorAll('ion-segment-content'));
29471
+ }
29472
+ render() {
29473
+ const { disabled, isManualScroll } = this;
29474
+ return (hAsync(Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
29475
+ 'segment-view-disabled': disabled,
29476
+ 'segment-view-scroll-disabled': isManualScroll === false,
29477
+ } }, hAsync("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
29478
+ }
29479
+ get el() { return getElement(this); }
29480
+ static get style() { return {
29481
+ ios: IonSegmentViewIosStyle0,
29482
+ md: IonSegmentViewMdStyle0
29483
+ }; }
29484
+ static get cmpMeta() { return {
29485
+ "$flags$": 41,
29486
+ "$tagName$": "ion-segment-view",
29487
+ "$members$": {
29488
+ "disabled": [4],
29489
+ "isManualScroll": [32],
29490
+ "setContent": [64]
29491
+ },
29492
+ "$listeners$": [[1, "scroll", "handleScroll"], [1, "touchstart", "handleScrollStart"], [1, "touchend", "handleTouchEnd"]],
29493
+ "$lazyBundleId$": "-",
29226
29494
  "$attrsToReflect$": []
29227
29495
  }; }
29228
29496
  }
@@ -29383,13 +29651,12 @@ class Select {
29383
29651
  this.setFocus();
29384
29652
  });
29385
29653
  await overlay.present();
29386
- // focus selected option for popovers
29387
- if (this.interface === 'popover') {
29388
- const indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
29654
+ // focus selected option for popovers and modals
29655
+ if (this.interface === 'popover' || this.interface === 'modal') {
29656
+ const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29389
29657
  if (indexOfSelected > -1) {
29390
29658
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
29391
29659
  if (selectedItem) {
29392
- focusVisibleElement(selectedItem);
29393
29660
  /**
29394
29661
  * Browsers such as Firefox do not
29395
29662
  * correctly delegate focus when manually
@@ -29403,8 +29670,11 @@ class Select {
29403
29670
  */
29404
29671
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
29405
29672
  if (interactiveEl) {
29406
- interactiveEl.focus();
29673
+ // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29674
+ // and removing `ion-focused` style
29675
+ interactiveEl.setFocus();
29407
29676
  }
29677
+ focusVisibleElement(selectedItem);
29408
29678
  }
29409
29679
  }
29410
29680
  else {
@@ -29413,11 +29683,14 @@ class Select {
29413
29683
  */
29414
29684
  const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
29415
29685
  if (firstEnabledOption) {
29416
- focusVisibleElement(firstEnabledOption.closest('ion-item'));
29417
29686
  /**
29418
29687
  * Focus the option for the same reason as we do above.
29688
+ *
29689
+ * Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29690
+ * and removing `ion-focused` style
29419
29691
  */
29420
- firstEnabledOption.focus();
29692
+ firstEnabledOption.setFocus();
29693
+ focusVisibleElement(firstEnabledOption.closest('ion-item'));
29421
29694
  }
29422
29695
  }
29423
29696
  }
@@ -29439,6 +29712,9 @@ class Select {
29439
29712
  if (selectInterface === 'popover') {
29440
29713
  return this.openPopover(ev);
29441
29714
  }
29715
+ if (selectInterface === 'modal') {
29716
+ return this.openModal();
29717
+ }
29442
29718
  return this.openAlert();
29443
29719
  }
29444
29720
  updateOverlayOptions() {
@@ -29455,7 +29731,13 @@ class Select {
29455
29731
  case 'popover':
29456
29732
  const popover = overlay.querySelector('ion-select-popover');
29457
29733
  if (popover) {
29458
- popover.options = this.createPopoverOptions(childOpts, value);
29734
+ popover.options = this.createOverlaySelectOptions(childOpts, value);
29735
+ }
29736
+ break;
29737
+ case 'modal':
29738
+ const modal = overlay.querySelector('ion-select-modal');
29739
+ if (modal) {
29740
+ modal.options = this.createOverlaySelectOptions(childOpts, value);
29459
29741
  }
29460
29742
  break;
29461
29743
  case 'alert':
@@ -29510,7 +29792,7 @@ class Select {
29510
29792
  });
29511
29793
  return alertInputs;
29512
29794
  }
29513
- createPopoverOptions(data, selectValue) {
29795
+ createOverlaySelectOptions(data, selectValue) {
29514
29796
  const popoverOptions = data.map((option) => {
29515
29797
  const value = getOptionValue(option);
29516
29798
  // Remove hydrated before copying over classes
@@ -29570,7 +29852,7 @@ class Select {
29570
29852
  message: interfaceOptions.message,
29571
29853
  multiple,
29572
29854
  value,
29573
- options: this.createPopoverOptions(this.childOpts, value),
29855
+ options: this.createOverlaySelectOptions(this.childOpts, value),
29574
29856
  } });
29575
29857
  return popoverController.create(popoverOpts);
29576
29858
  }
@@ -29605,6 +29887,17 @@ class Select {
29605
29887
  ] });
29606
29888
  return alertController.create(alertOpts);
29607
29889
  }
29890
+ openModal() {
29891
+ const { multiple, value, interfaceOptions } = this;
29892
+ const mode = getIonMode$1(this);
29893
+ const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
29894
+ header: interfaceOptions.header,
29895
+ multiple,
29896
+ value,
29897
+ options: this.createOverlaySelectOptions(this.childOpts, value),
29898
+ } });
29899
+ return modalController.create(modalOpts);
29900
+ }
29608
29901
  /**
29609
29902
  * Close the select interface.
29610
29903
  */
@@ -29812,7 +30105,7 @@ class Select {
29812
30105
  * TODO(FW-5592): Remove hasStartEndSlots condition
29813
30106
  */
29814
30107
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
29815
- return (hAsync(Host, { key: '73c571c1f8468e1c3f4fe02fbbb33ba9cbc8e989', onClick: this.onClick, class: createColorClasses$1(this.color, {
30108
+ return (hAsync(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses$1(this.color, {
29816
30109
  [mode]: true,
29817
30110
  'in-item': inItem,
29818
30111
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -29828,7 +30121,7 @@ class Select {
29828
30121
  [`select-justify-${justify}`]: justifyEnabled,
29829
30122
  [`select-shape-${shape}`]: shape !== undefined,
29830
30123
  [`select-label-placement-${labelPlacement}`]: true,
29831
- }) }, hAsync("label", { key: '2b08538cba0b9f747541d57ac18fb6a1ea658878', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '33f54373bcb02c72a9d0af2efffebc27ee2c69fe', class: "select-wrapper-inner" }, hAsync("slot", { key: 'd1c93aec99dc1cd6410f93309cef615fe04b541b', name: "start" }), hAsync("div", { key: '493d1a3cad9565516f855bef75685b020785ffd3', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '353a3ee5635f8a8f3be411efd6caef6c2ad74a89', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'fd5f85555db02affe954f9f4f2876ac8fe676234', class: "select-highlight" }))));
30124
+ }) }, hAsync("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, hAsync("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), hAsync("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', class: "select-highlight" }))));
29832
30125
  }
29833
30126
  get el() { return getElement(this); }
29834
30127
  static get watchers() { return {
@@ -29908,6 +30201,108 @@ const textForValue = (opts, value, compareWith) => {
29908
30201
  let selectIds = 0;
29909
30202
  const OPTION_CLASS = 'select-interface-option';
29910
30203
 
30204
+ const ionicSelectModalMdCss = ".sc-ion-select-modal-ionic-h{height:100%}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container){display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-ionic{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-ionic{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-ionic{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}";
30205
+ var IonSelectModalIonicStyle0 = ionicSelectModalMdCss;
30206
+
30207
+ const selectModalIosCss = ".sc-ion-select-modal-ios-h{height:100%}";
30208
+ var IonSelectModalIosStyle0 = selectModalIosCss;
30209
+
30210
+ const selectModalMdCss = ".sc-ion-select-modal-md-h{height:100%}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container){display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}";
30211
+ var IonSelectModalMdStyle0 = selectModalMdCss;
30212
+
30213
+ class SelectModal {
30214
+ constructor(hostRef) {
30215
+ registerInstance(this, hostRef);
30216
+ this.header = undefined;
30217
+ this.multiple = undefined;
30218
+ this.options = [];
30219
+ }
30220
+ closeModal() {
30221
+ const modal = this.el.closest('ion-modal');
30222
+ if (modal) {
30223
+ modal.dismiss();
30224
+ }
30225
+ }
30226
+ findOptionFromEvent(ev) {
30227
+ const { options } = this;
30228
+ return options.find((o) => o.value === ev.target.value);
30229
+ }
30230
+ getValues(ev) {
30231
+ const { multiple, options } = this;
30232
+ if (multiple) {
30233
+ // this is a modal with checkboxes (multiple value select)
30234
+ // return an array of all the checked values
30235
+ return options.filter((o) => o.checked).map((o) => o.value);
30236
+ }
30237
+ // this is a modal with radio buttons (single value select)
30238
+ // return the value that was clicked, otherwise undefined
30239
+ const option = ev ? this.findOptionFromEvent(ev) : null;
30240
+ return option ? option.value : undefined;
30241
+ }
30242
+ callOptionHandler(ev) {
30243
+ const option = this.findOptionFromEvent(ev);
30244
+ const values = this.getValues(ev);
30245
+ if (option === null || option === void 0 ? void 0 : option.handler) {
30246
+ safeCall(option.handler, values);
30247
+ }
30248
+ }
30249
+ setChecked(ev) {
30250
+ const { multiple } = this;
30251
+ const option = this.findOptionFromEvent(ev);
30252
+ // this is a modal with checkboxes (multiple value select)
30253
+ // we need to set the checked value for this option
30254
+ if (multiple && option) {
30255
+ option.checked = ev.detail.checked;
30256
+ }
30257
+ }
30258
+ renderRadioOptions() {
30259
+ const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
30260
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
30261
+ // TODO FW-4784
30262
+ 'item-radio-checked': option.value === checked
30263
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
30264
+ if (ev.key === ' ') {
30265
+ /**
30266
+ * Selecting a radio option with keyboard navigation,
30267
+ * either through the Enter or Space keys, should
30268
+ * dismiss the modal.
30269
+ */
30270
+ this.closeModal();
30271
+ }
30272
+ } }, option.text))))));
30273
+ }
30274
+ renderCheckboxOptions() {
30275
+ return this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
30276
+ // TODO FW-4784
30277
+ 'item-checkbox-checked': option.checked
30278
+ }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
30279
+ this.setChecked(ev);
30280
+ this.callOptionHandler(ev);
30281
+ } }, option.text))));
30282
+ }
30283
+ render() {
30284
+ return (hAsync(Host, { key: 'f4b92f4fc3d646f9a327e43a9622abaf69659c28', class: getIonMode$1(this) }, hAsync("ion-header", { key: '11232ef496e7abd69e55cef988963a4869a7b01e' }, hAsync("ion-toolbar", { key: 'e7c41878691a504d44c658db02807867df542588' }, this.header !== undefined && hAsync("ion-title", { key: 'fcf9d33e0f3e0076ff14805de68848f9ef199cca' }, this.header), hAsync("ion-buttons", { key: '748a967ae0ce68bc2fd018a6b9ebe0e4b810f6ac', slot: "end" }, hAsync("ion-button", { key: 'f5e60791870b5085a31b7af70ed4bb3fb83eb185', onClick: () => this.closeModal() }, "Close")))), hAsync("ion-content", { key: '159797957b6f788a9b393d91864c18db34481c68' }, hAsync("ion-list", { key: '4124554fe8b2411637cbf02f08e50e0d8f804175' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
30285
+ }
30286
+ get el() { return getElement(this); }
30287
+ static get style() { return {
30288
+ ionic: IonSelectModalIonicStyle0,
30289
+ ios: IonSelectModalIosStyle0,
30290
+ md: IonSelectModalMdStyle0
30291
+ }; }
30292
+ static get cmpMeta() { return {
30293
+ "$flags$": 34,
30294
+ "$tagName$": "ion-select-modal",
30295
+ "$members$": {
30296
+ "header": [1],
30297
+ "multiple": [4],
30298
+ "options": [16]
30299
+ },
30300
+ "$listeners$": undefined,
30301
+ "$lazyBundleId$": "-",
30302
+ "$attrsToReflect$": []
30303
+ }; }
30304
+ }
30305
+
29911
30306
  const selectOptionCss = ":host{display:none}";
29912
30307
  var IonSelectOptionStyle0 = selectOptionCss;
29913
30308
 
@@ -29919,7 +30314,7 @@ class SelectOption {
29919
30314
  this.value = undefined;
29920
30315
  }
29921
30316
  render() {
29922
- return hAsync(Host, { key: 'ba5a9c695c53fe0802af11a49f4305a9b8f71773', role: "option", id: this.inputId, class: getIonMode$1(this) });
30317
+ return hAsync(Host, { key: '2e6fa159464f04f6d8720f960141f67918bc7534', role: "option", id: this.inputId, class: getIonMode$1(this) });
29923
30318
  }
29924
30319
  get el() { return getElement(this); }
29925
30320
  static get style() { return IonSelectOptionStyle0; }
@@ -30039,7 +30434,7 @@ class SelectPopover {
30039
30434
  render() {
30040
30435
  const { header, message, options, subHeader } = this;
30041
30436
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
30042
- return (hAsync(Host, { key: '302553a2eec4d1442751b8af28b7c9bd3487fd5d', class: getIonMode$1(this) }, hAsync("ion-list", { key: '39ae8579e6fe3bae2c7504147268ad5c82fd27e6' }, header !== undefined && hAsync("ion-list-header", { key: 'e0e6686380d188f46c593e1bb25287dcf08c75c2' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '8a2d8652db269593c0ba7d767277e12c2b06144d' }, hAsync("ion-label", { key: 'a30cc0ecf95d5bdd6421ee1683922c1b853e98ea', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'c298459ca450123808a08d65660825b2c26d00e5' }, subHeader), message !== undefined && hAsync("p", { key: 'ed895fbaec020e809021138401341b6fd7675035' }, message)))), this.renderOptions(options))));
30437
+ return (hAsync(Host, { key: 'dd0990db4de4f175b176b27f35501dd1604ca400', class: getIonMode$1(this) }, hAsync("ion-list", { key: 'cea2bc3687b8b2490a2a9ff4a1e16cd34169558e' }, header !== undefined && hAsync("ion-list-header", { key: '194aebb53453c43f913daae45a1a3066a1708c4c' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'b706b07a3c63ad8104d2db413e210c735ec1bec9' }, hAsync("ion-label", { key: '6e52b5b4cf6b04ff3dd5671d64264233de4190d5', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: '6ef4440d17f5db8c96c63b9aa5073f4fe4b8ad62' }, subHeader), message !== undefined && hAsync("p", { key: 'c7b3b76c30ecd606c0e985a0258c13d3a75756e7' }, message)))), this.renderOptions(options))));
30043
30438
  }
30044
30439
  get el() { return getElement(this); }
30045
30440
  static get style() { return {
@@ -30087,11 +30482,11 @@ class SkeletonText {
30087
30482
  const animated = this.animated && config.getBoolean('animated', true);
30088
30483
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
30089
30484
  const mode = getIonMode$1(this);
30090
- return (hAsync(Host, { key: '1a3e78e9a6f740d609d1f0b7a16cb6eff4a2d617', class: {
30485
+ return (hAsync(Host, { key: 'fdfabf9364caf507450239b62be24f08873bd650', class: {
30091
30486
  [mode]: true,
30092
30487
  'skeleton-text-animated': animated,
30093
30488
  'in-media': inMedia,
30094
- } }, hAsync("span", { key: 'be3eabe196ec6e8ec19857375ba30f4c8aa58e7f' }, "\u00A0")));
30489
+ } }, hAsync("span", { key: '3482c88dcc177547185ce87972afa064a542367d' }, "\u00A0")));
30095
30490
  }
30096
30491
  get el() { return getElement(this); }
30097
30492
  static get style() { return IonSkeletonTextStyle0; }
@@ -30144,7 +30539,7 @@ class Spinner {
30144
30539
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
30145
30540
  }
30146
30541
  }
30147
- return (hAsync(Host, { key: '50cbaed55eeab15292447d106a80b93db4cb40de', class: createColorClasses$1(self.color, {
30542
+ return (hAsync(Host, { key: '9d30ee9f5aa0dd0e220da07e75d05b8b2435224d', class: createColorClasses$1(self.color, {
30148
30543
  [mode]: true,
30149
30544
  [`spinner-${spinnerName}`]: true,
30150
30545
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -30244,12 +30639,12 @@ class SplitPane {
30244
30639
  }
30245
30640
  render() {
30246
30641
  const mode = getIonMode$1(this);
30247
- return (hAsync(Host, { key: 'd54c356cd4bff7e55325160882dea8249f47f388', class: {
30642
+ return (hAsync(Host, { key: '1ca0b0299d03605bb358112ca56cbafbe58f00f5', class: {
30248
30643
  [mode]: true,
30249
30644
  // Used internally for styling
30250
30645
  [`split-pane-${mode}`]: true,
30251
30646
  'split-pane-visible': this.visible,
30252
- } }, hAsync("slot", { key: 'af62690d0fd686cfbd29d888c79eda9001f13e2f' })));
30647
+ } }, hAsync("slot", { key: 'abe231361727ae7fc63edd592a4490caac1909fb' })));
30253
30648
  }
30254
30649
  get el() { return getElement(this); }
30255
30650
  static get watchers() { return {
@@ -30318,10 +30713,10 @@ class Tab {
30318
30713
  }
30319
30714
  render() {
30320
30715
  const { tab, active, component } = this;
30321
- return (hAsync(Host, { key: '46d5498418f5379861c3d7465e8021dec45f1200', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30716
+ return (hAsync(Host, { key: 'cb75d0877979b3b8df8f7e1952bfa9677da1eaa5', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30322
30717
  'ion-page': component === undefined,
30323
30718
  'tab-hidden': !active,
30324
- } }, hAsync("slot", { key: 'b45045dccb87dfe75e3f5a5a474bb48b6c98e922' })));
30719
+ } }, hAsync("slot", { key: '37fbb7b7a6b03eb93b1dacd2dc1025b78eb2aa6b' })));
30325
30720
  }
30326
30721
  get el() { return getElement(this); }
30327
30722
  static get watchers() { return {
@@ -30399,11 +30794,11 @@ class TabBar {
30399
30794
  const { color, translucent, keyboardVisible } = this;
30400
30795
  const mode = getIonMode$1(this);
30401
30796
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
30402
- return (hAsync(Host, { key: '3a8595dd83f89e8319471a7a7f9f64b2565b384c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30797
+ return (hAsync(Host, { key: 'a87fd2ea5df053705a37ea7ffec043e75c4a9907', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30403
30798
  [mode]: true,
30404
30799
  'tab-bar-translucent': translucent,
30405
30800
  'tab-bar-hidden': shouldHide,
30406
- }) }, hAsync("slot", { key: '8b65eceb922f6abfa15f41046261586fb94b981f' })));
30801
+ }) }, hAsync("slot", { key: '81a6223299b6cab29d7ddced590e9152e2b3ded0' })));
30407
30802
  }
30408
30803
  get el() { return getElement(this); }
30409
30804
  static get watchers() { return {
@@ -30501,7 +30896,7 @@ class TabButton {
30501
30896
  rel,
30502
30897
  target,
30503
30898
  };
30504
- return (hAsync(Host, { key: '4b528ce31f67e10ad849e0c99bd034bba675c227', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
30899
+ return (hAsync(Host, { key: '5976c45943ea7ea8e7c1a85fc9996de421439f08', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
30505
30900
  [mode]: true,
30506
30901
  'tab-selected': selected,
30507
30902
  'tab-disabled': disabled,
@@ -30513,7 +30908,7 @@ class TabButton {
30513
30908
  'ion-activatable': true,
30514
30909
  'ion-selectable': true,
30515
30910
  'ion-focusable': true,
30516
- } }, hAsync("a", Object.assign({ key: '0da8784b1b243ffaaaf04dd7adb55d6881ed0c08' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '2c628e8f1ebc129f84876c01530468cb97d8bf3a', class: "button-inner" }, hAsync("slot", { key: '8052a171d197a7de1a7eb12b091c35f73ae1ee21' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '4186bdb5ed045ec16f495a14fa30ac864c576227', type: "unbounded" }))));
30911
+ } }, hAsync("a", Object.assign({ key: '1db09d861b67ff292018fb4b0dc7b85bd4677eb8' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '4381eafcb27e8c7bb0d86d4f115ceb0caf03b9b4', class: "button-inner" }, hAsync("slot", { key: '1981135f6fbb88376c1bd923c55c70fe8b5c5159' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '0509bc7155d055d1ed710600e9cf4df135881491', type: "unbounded" }))));
30517
30912
  }
30518
30913
  get el() { return getElement(this); }
30519
30914
  static get style() { return {
@@ -30689,7 +31084,7 @@ class Tabs {
30689
31084
  return Array.from(this.el.querySelectorAll('ion-tab'));
30690
31085
  }
30691
31086
  render() {
30692
- return (hAsync(Host, { key: 'eb094c9bd15b7777c53bd0bd6d225784fa472849', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'a516ca6915bf26e77eeeb0ff684c4fcc7d4420a7', name: "top" }), hAsync("div", { key: 'dd2a32a072d77afe216abc4958c1d686405fb780', class: "tabs-inner" }, hAsync("slot", { key: '222c20ba862068f5c78e7bbef4fa213499fb2fa5' })), hAsync("slot", { key: '3e76dcb1b21873aa137d095c56131514054ead3a', name: "bottom" })));
31087
+ return (hAsync(Host, { key: 'e01ccf6bfaccad094515be50e407399c733fc226', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '38d2d01dbfd8a08f01e6f0e27274b21d75424e37', name: "top" }), hAsync("div", { key: '7e894f0f423e2d43e1c68daff5f9f6c442fad237', class: "tabs-inner" }, hAsync("slot", { key: 'df16be529a0370a26d0adf850530b31607507c23' })), hAsync("slot", { key: '44642e1cb24c3281c43db75fd69a32fe0defe40a', name: "bottom" })));
30693
31088
  }
30694
31089
  get el() { return getElement(this); }
30695
31090
  static get style() { return IonTabsStyle0; }
@@ -30731,9 +31126,9 @@ class Text {
30731
31126
  }
30732
31127
  render() {
30733
31128
  const mode = getIonMode$1(this);
30734
- return (hAsync(Host, { key: '4b76333b1ea5cab134b9dc1f5670c0d5a253fc32', class: createColorClasses$1(this.color, {
31129
+ return (hAsync(Host, { key: 'e134d70c04344b708a2ecf6253722781ad2ca826', class: createColorClasses$1(this.color, {
30735
31130
  [mode]: true,
30736
- }) }, hAsync("slot", { key: '3dee5f16bc58b3d92547d910bd4f441a00ce2039' })));
31131
+ }) }, hAsync("slot", { key: 'da79c760f7ebbcd007ce110439f05a62cb22eac8' })));
30737
31132
  }
30738
31133
  static get style() { return IonTextStyle0; }
30739
31134
  static get cmpMeta() { return {
@@ -31115,7 +31510,7 @@ class Textarea {
31115
31510
  * TODO(FW-5592): Remove hasStartEndSlots condition
31116
31511
  */
31117
31512
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
31118
- return (hAsync(Host, { key: 'e8a5b5727c6a018bbd6f5507b690bc5f0959e352', class: createColorClasses$1(this.color, {
31513
+ return (hAsync(Host, { key: 'd6e25c83d8eab8cb1a5b6ab411c9a13847f69f8d', class: createColorClasses$1(this.color, {
31119
31514
  [mode]: true,
31120
31515
  'has-value': hasValue,
31121
31516
  'has-focus': hasFocus,
@@ -31124,7 +31519,7 @@ class Textarea {
31124
31519
  [`textarea-shape-${shape}`]: shape !== undefined,
31125
31520
  [`textarea-label-placement-${labelPlacement}`]: true,
31126
31521
  'textarea-disabled': disabled,
31127
- }) }, hAsync("label", { key: '48e889571e2d3e7e150b038e4b4b15862b418288', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '6c6c7872ae4d351d8b8d772ad18ce3ba7a0e9a87', class: "textarea-wrapper-inner" }, hAsync("div", { key: '03aef5dfa59af0fa78a3e5c92e0ed72396717d72', class: "start-slot-wrapper" }, hAsync("slot", { key: '39aee9faebb0f1d10de5a5817fd9d9771b074b96', name: "start" })), hAsync("div", { key: '738e8ff603f4c9b9083b3139db861f4b7ec20f79', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '7763fb4f8ffe94635167331c70d21d661544c4f8', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: 'b3af9ec0982c6dbd381afaa02df153d7e90471be', class: "end-slot-wrapper" }, hAsync("slot", { key: '60f99bcd49a5ec2e1fa6e3e77809aefeb9d2d0d6', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: '6a7f45639ba027f4da573adae53f1197a6dec383', class: "textarea-highlight" })), this.renderBottomContent()));
31522
+ }) }, hAsync("label", { key: 'f840a5be2b776a4b9c18c6da24e0b7d3d4838fee', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '979461fc0d4684926d79d75759c63c6867b7622b', class: "textarea-wrapper-inner" }, hAsync("div", { key: '88f0d5d4bac29597cc2588e5b2ed72fb4fbe153d', class: "start-slot-wrapper" }, hAsync("slot", { key: '21dcca0e59c1260e3d0d1e126c1c590de15c4bad', name: "start" })), hAsync("div", { key: '3c48a4bb3d763a389d3429123e7c110064b9b8d4', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '1550599ad15b3f215c104c014e90711f073ace8b', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: '4f01ab4d2994a6de6f49eb9ed2e310d00daf21b2', class: "end-slot-wrapper" }, hAsync("slot", { key: '501e288b6807e039972bb4f0b63906114255518a', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'd3008eed34494aa9f8e98a28eac3b465dc4c2bd0', class: "textarea-highlight" })), this.renderBottomContent()));
31128
31523
  }
31129
31524
  get el() { return getElement(this); }
31130
31525
  static get watchers() { return {
@@ -31186,7 +31581,7 @@ class Thumbnail {
31186
31581
  registerInstance(this, hostRef);
31187
31582
  }
31188
31583
  render() {
31189
- return (hAsync(Host, { key: 'ea55000055f941b0c79561e8934be6242ec8e114', class: getIonMode$1(this) }, hAsync("slot", { key: 'a4f934f442797f5c66a77e0ef8920fdd07c204f2' })));
31584
+ return (hAsync(Host, { key: 'cfa9aeb1d4fd624a9732c5230d29dd887e4b7771', class: getIonMode$1(this) }, hAsync("slot", { key: '29bc6e64063cba44e2643228df54394883933918' })));
31190
31585
  }
31191
31586
  static get style() { return IonThumbnailStyle0; }
31192
31587
  static get cmpMeta() { return {
@@ -32022,9 +32417,9 @@ class Toast {
32022
32417
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
32023
32418
  printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
32024
32419
  }
32025
- return (hAsync(Host, Object.assign({ key: '68c336f80af04ba484ca9899bae8f40c0d9b7691', tabindex: "-1" }, this.htmlAttributes, { style: {
32420
+ return (hAsync(Host, Object.assign({ key: 'c05655ff06af8d0e48c2a85396b07ad942fa81b4', tabindex: "-1" }, this.htmlAttributes, { style: {
32026
32421
  zIndex: `${60000 + this.overlayIndex}`,
32027
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '3483b188f14b700964a123997a60a43a2023a1b6', class: wrapperClass }, hAsync("div", { key: '1b88544a9b87253b364cbec6285625388979b560', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'bd1c42e3b14af66b880dfe283e3ae910075c0f70', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'a5ef6cdabc1f7c70d11a5f2a0abf8737fe7550e8', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
32422
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '9393ead4de1bf28529661d6f64049d34e18d725c', class: wrapperClass }, hAsync("div", { key: '3e9dd73c17c337849c3f26e8d0f395b3e5ee20a7', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '5d15b18364301ad55e44e9f601014ac33181590b', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'f6dd164502637a882c5caf18445d8509b85ad6f9', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
32028
32423
  }
32029
32424
  get el() { return getElement(this); }
32030
32425
  static get watchers() { return {
@@ -32244,7 +32639,7 @@ class Toggle {
32244
32639
  const value = this.getValue();
32245
32640
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32246
32641
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32247
- return (hAsync(Host, { key: '8f024fb0fbc2d4442be0574b03450426e8e4fc9e', onClick: this.onClick, class: createColorClasses$1(color, {
32642
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
32248
32643
  [mode]: true,
32249
32644
  'in-item': hostContext('ion-item', el),
32250
32645
  'toggle-activated': activated,
@@ -32254,10 +32649,10 @@ class Toggle {
32254
32649
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32255
32650
  [`toggle-label-placement-${labelPlacement}`]: true,
32256
32651
  [`toggle-${rtl}`]: true,
32257
- }) }, hAsync("label", { key: '0492f009cd89755adf41f60925028002df0e67b1', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'fd98b23e8adfa2630878eddc30607a0b1bf9e798', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: 'bcbde055ad9450319ae41e8956a1e8cc0a7796a4', class: {
32652
+ }) }, hAsync("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
32258
32653
  'label-text-wrapper': true,
32259
32654
  'label-text-wrapper-hidden': !this.hasLabel,
32260
- }, part: "label" }, hAsync("slot", { key: '7a6ea9515d454d80615f0622f361c5f91b41345c' })), hAsync("div", { key: '6d3670b81b8f809092c98b3f3b8e483ddf6a7cac', class: "native-wrapper" }, this.renderToggleControl()))));
32655
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
32261
32656
  }
32262
32657
  get el() { return getElement(this); }
32263
32658
  static get watchers() { return {
@@ -32361,10 +32756,10 @@ class Toolbar {
32361
32756
  this.childrenStyles.forEach((value) => {
32362
32757
  Object.assign(childStyles, value);
32363
32758
  });
32364
- return (hAsync(Host, { key: '4bb3a55001408a3bdf033af76b9196cb96c07c09', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32759
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32365
32760
  [mode]: true,
32366
32761
  'in-toolbar': hostContext('ion-toolbar', this.el),
32367
- })) }, hAsync("div", { key: '0891db157d6e028c6d03696f13fb510ea91b0296', class: "toolbar-background" }), hAsync("div", { key: '95fbc870d808f74af4bb18cd8f8ec8c7828a9e0b', class: "toolbar-container" }, hAsync("slot", { key: '84d4a9644660fe00ca085055ca8d12f3647531ad', name: "start" }), hAsync("slot", { key: 'fd361dc9c9979f59aed2fedcf94629506fae62b0', name: "secondary" }), hAsync("div", { key: '54d2b28616a4627c55766f66dc453707752758a6', class: "toolbar-content" }, hAsync("slot", { key: '8f65e0830cce7135640b90eb694e282cb7e5efd2' })), hAsync("slot", { key: 'c78be11a207c8674f222543646398636956087e6', name: "primary" }), hAsync("slot", { key: 'ab25e1601ccaa8cb0d81921b849bcb7402aa7826', name: "end" }))));
32762
+ })) }, hAsync("div", { key: 'c0b4415d3b2472de643a9be7cb3b13b3b628621b', class: "toolbar-background" }), hAsync("div", { key: '0ccb8a2dbeaa28d8f9bed87629c0c097446690c2', class: "toolbar-container" }, hAsync("slot", { key: '3e726dac359e923df21d80301651f16063a3de20', name: "start" }), hAsync("slot", { key: 'cd799330b56a7f8833bc61bb2807aafb21846f71', name: "secondary" }), hAsync("div", { key: '395282e6ac8c53576922dcdb5f08c25d34638c86', class: "toolbar-content" }, hAsync("slot", { key: 'a437c60e4ba5aae65e55169ae82a6f379868ec1d' })), hAsync("slot", { key: '711af9b9d321a7b31ede924c9bdcad767aa9a1ca', name: "primary" }), hAsync("slot", { key: 'ecc02edeaf80a837890bcb08d5096df1e22a0b9a', name: "end" }))));
32368
32763
  }
32369
32764
  get el() { return getElement(this); }
32370
32765
  static get style() { return {
@@ -32414,11 +32809,11 @@ class ToolbarTitle {
32414
32809
  render() {
32415
32810
  const mode = getIonMode$1(this);
32416
32811
  const size = this.getSize();
32417
- return (hAsync(Host, { key: '5a58dc437a6f4257244bbdd7e9a682a17d8c9a6b', class: createColorClasses$1(this.color, {
32812
+ return (hAsync(Host, { key: '7293d2ecd6262feb0d8d769effbb208230baed89', class: createColorClasses$1(this.color, {
32418
32813
  [mode]: true,
32419
32814
  [`title-${size}`]: true,
32420
32815
  'title-rtl': document.dir === 'rtl',
32421
- }) }, hAsync("div", { key: '58682ea7b8f47a08adfad419b5c76b34784c6501', class: "toolbar-title" }, hAsync("slot", { key: '8a9248534e4c3076f5e2dfda38ef86069796851c' }))));
32816
+ }) }, hAsync("div", { key: '086ec3a361ebdf6506846a8704b457cda3a6f897', class: "toolbar-title" }, hAsync("slot", { key: '59add7eb92b82d6832a8f0894f897c51fdf4f214' }))));
32422
32817
  }
32423
32818
  get el() { return getElement(this); }
32424
32819
  static get watchers() { return {
@@ -32519,7 +32914,10 @@ registerComponents([
32519
32914
  Searchbar,
32520
32915
  Segment,
32521
32916
  SegmentButton,
32917
+ SegmentContent,
32918
+ SegmentView,
32522
32919
  Select,
32920
+ SelectModal,
32523
32921
  SelectOption,
32524
32922
  SelectPopover,
32525
32923
  SkeletonText,