voyager-ionic-core 8.3.4 → 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-ad9b5007.system.entry.js → p-3b419d79.system.entry.js} +1 -1
  390. package/dist/ionic/p-424eb140.system.entry.js +4 -0
  391. package/dist/ionic/{p-b7657e8d.entry.js → p-4439fc2a.entry.js} +1 -1
  392. package/dist/ionic/{p-be71fe0f.system.entry.js → p-4561cd09.system.entry.js} +1 -1
  393. package/dist/ionic/{p-c34659b9.entry.js → p-45693d7e.entry.js} +1 -1
  394. package/dist/ionic/p-49a0e74c.entry.js +4 -0
  395. package/dist/ionic/{p-6d50faff.entry.js → p-4a274c89.entry.js} +1 -1
  396. package/dist/ionic/{p-41c89b8d.entry.js → p-4b000207.entry.js} +1 -1
  397. package/dist/ionic/{p-fd0cb4ef.entry.js → p-4ec778aa.entry.js} +1 -1
  398. package/dist/ionic/{p-f559ac5b.entry.js → p-51796b2d.entry.js} +1 -1
  399. package/dist/ionic/{p-9ece8dcf.entry.js → p-52d7a191.entry.js} +1 -1
  400. package/dist/ionic/{p-79e7be3a.system.entry.js → p-5393e8bb.system.entry.js} +1 -1
  401. package/dist/ionic/{p-ce705aac.system.entry.js → p-567de071.system.entry.js} +1 -1
  402. package/dist/ionic/{p-95823c62.system.entry.js → p-5823babc.system.entry.js} +2 -2
  403. package/dist/ionic/{p-baffaf8d.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
  404. package/dist/ionic/{p-521eca2e.entry.js → p-5ab1b709.entry.js} +1 -1
  405. package/dist/ionic/{p-c71f301f.system.entry.js → p-5b5c1505.system.entry.js} +1 -1
  406. package/dist/ionic/{p-8d44cf1f.entry.js → p-5b932840.entry.js} +1 -1
  407. package/dist/ionic/{p-f0ab13a8.system.entry.js → p-5bd39e5e.system.entry.js} +2 -2
  408. package/dist/ionic/{p-5800e441.entry.js → p-5f79d8c5.entry.js} +1 -1
  409. package/dist/ionic/{p-53add985.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
  410. package/dist/ionic/{p-233e6c93.entry.js → p-62af944c.entry.js} +1 -1
  411. package/dist/ionic/{p-00b01a55.system.entry.js → p-63b0abde.system.entry.js} +1 -1
  412. package/dist/ionic/p-6734db42.system.entry.js +4 -0
  413. package/dist/ionic/p-69666e8a.system.entry.js +4 -0
  414. package/dist/ionic/{p-5e842258.entry.js → p-6d32975a.entry.js} +1 -1
  415. package/dist/ionic/p-73dc4950.entry.js +4 -0
  416. package/dist/ionic/{p-fcd71204.system.entry.js → p-7458862e.system.entry.js} +1 -1
  417. package/dist/ionic/{p-a3711608.system.entry.js → p-797eeea8.system.entry.js} +1 -1
  418. package/dist/ionic/{p-f8c8b9ba.entry.js → p-7b9a2b23.entry.js} +1 -1
  419. package/dist/ionic/{p-6817cf42.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
  420. package/dist/ionic/{p-79b12fda.system.js → p-8f05ba3b.system.js} +1 -1
  421. package/dist/ionic/p-908d6080.entry.js +4 -0
  422. package/dist/ionic/{p-af999a31.entry.js → p-937a7e21.entry.js} +1 -1
  423. package/dist/ionic/{p-4c8fceb0.entry.js → p-95775830.entry.js} +1 -1
  424. package/dist/ionic/{p-973f0b15.system.entry.js → p-98231c01.system.entry.js} +1 -1
  425. package/dist/ionic/{p-25928b83.system.entry.js → p-985a7e17.system.entry.js} +1 -1
  426. package/dist/ionic/{p-e3a5da9d.entry.js → p-98ff6b32.entry.js} +1 -1
  427. package/dist/ionic/{p-6e85e450.entry.js → p-9df2c6fb.entry.js} +1 -1
  428. package/dist/ionic/{p-7251fed5.entry.js → p-9ee1e8a6.entry.js} +1 -1
  429. package/dist/ionic/{p-da263d8e.entry.js → p-9fa07aec.entry.js} +1 -1
  430. package/dist/ionic/{p-d58f21d2.entry.js → p-a1051806.entry.js} +1 -1
  431. package/dist/ionic/{p-6ceb04b5.entry.js → p-a1b9a163.entry.js} +1 -1
  432. package/dist/ionic/p-a34b4d94.entry.js +4 -0
  433. package/dist/ionic/{p-8836d0eb.system.entry.js → p-a49378bb.system.entry.js} +1 -1
  434. package/dist/ionic/{p-6b8893dd.entry.js → p-a61cba41.entry.js} +1 -1
  435. package/dist/ionic/p-adbc4bdf.entry.js +4 -0
  436. package/dist/ionic/{p-49bc6544.entry.js → p-afecb188.entry.js} +1 -1
  437. package/dist/ionic/{p-be715dd3.system.entry.js → p-b335ffed.system.entry.js} +1 -1
  438. package/dist/ionic/{p-e3f13b08.js → p-b82d4cab.js} +1 -1
  439. package/dist/ionic/{p-68c4df55.entry.js → p-b9d7015f.entry.js} +1 -1
  440. package/dist/ionic/{p-7243df6f.entry.js → p-bb0db172.entry.js} +1 -1
  441. package/dist/ionic/{p-df83e308.system.entry.js → p-bc36ad98.system.entry.js} +1 -1
  442. package/dist/ionic/{p-773d118d.entry.js → p-bdad26e3.entry.js} +1 -1
  443. package/dist/ionic/p-c29f8157.system.entry.js +4 -0
  444. package/dist/ionic/p-c2b74d92.system.entry.js +4 -0
  445. package/dist/ionic/{p-176b372f.entry.js → p-c41ac815.entry.js} +1 -1
  446. package/dist/ionic/{p-5417b9bb.entry.js → p-c9f3a539.entry.js} +1 -1
  447. package/dist/ionic/{p-2ea1ca4f.system.entry.js → p-ca065903.system.entry.js} +1 -1
  448. package/dist/ionic/{p-2ca6eac2.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
  449. package/dist/ionic/{p-3c968c7f.system.entry.js → p-d18ab582.system.entry.js} +2 -2
  450. package/dist/ionic/{p-92d7a3d1.entry.js → p-d7aa6b00.entry.js} +1 -1
  451. package/dist/ionic/{p-21cfd4de.entry.js → p-da074ff7.entry.js} +1 -1
  452. package/dist/ionic/{p-9e208825.entry.js → p-db0c8e7d.entry.js} +1 -1
  453. package/dist/ionic/{p-89a0a446.entry.js → p-de930745.entry.js} +1 -1
  454. package/dist/ionic/p-e2252ad6.entry.js +4 -0
  455. package/dist/ionic/{p-960803fc.system.entry.js → p-e4ee80be.system.entry.js} +1 -1
  456. package/dist/ionic/{p-dda5c73d.entry.js → p-e563a35c.entry.js} +1 -1
  457. package/dist/ionic/{p-7740e32c.system.js → p-e7ed4a7f.system.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-f10b70a1.entry.js +4 -0
  461. package/dist/ionic/{p-01503bbd.system.entry.js → p-f3102647.system.entry.js} +1 -1
  462. package/dist/ionic/{p-6562e0a9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
  463. package/dist/ionic/{p-b0180ce1.system.entry.js → p-ffd131f9.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 {
@@ -28131,7 +28140,7 @@ class RouterOutlet {
28131
28140
  return true;
28132
28141
  }
28133
28142
  render() {
28134
- return hAsync("slot", { key: 'dac9120f5ffa628b16c04e5fdd44ea8e560c97e6' });
28143
+ return hAsync("slot", { key: '44a7798b8574966f7fd699564b6006411a98a805' });
28135
28144
  }
28136
28145
  get el() { return getElement(this); }
28137
28146
  static get watchers() { return {
@@ -28165,7 +28174,7 @@ class Row {
28165
28174
  registerInstance(this, hostRef);
28166
28175
  }
28167
28176
  render() {
28168
- return (hAsync(Host, { key: '813c9a7f6782d2cf8eb27f30d3ab28e6f3122868', class: getIonMode$1(this) }, hAsync("slot", { key: '356bec4d4d408ea63d6b431b06465d5b7bcbff71' })));
28177
+ return (hAsync(Host, { key: 'aea072a5005e3f1f309f0d1ae5be5ee19869b035', class: getIonMode$1(this) }, hAsync("slot", { key: '2a481c2126ac6ca65f0a1bbd07c2d3365409cb78' })));
28169
28178
  }
28170
28179
  static get style() { return IonRowStyle0; }
28171
28180
  static get cmpMeta() { return {
@@ -28559,8 +28568,8 @@ class Searchbar {
28559
28568
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
28560
28569
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
28561
28570
  const shouldShowCancelButton = this.shouldShowCancelButton();
28562
- 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))));
28563
- return (hAsync(Host, { key: '34878db21f63a9bdffca0446d8ad5619ff04cac3', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28571
+ 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))));
28572
+ return (hAsync(Host, { key: '17d57ece5852d03047e4d53ddad6c9d88a432a00', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28564
28573
  [mode]: true,
28565
28574
  'searchbar-animated': animated,
28566
28575
  'searchbar-disabled': this.disabled,
@@ -28570,14 +28579,14 @@ class Searchbar {
28570
28579
  'searchbar-has-focus': this.focused,
28571
28580
  'searchbar-should-show-clear': this.shouldShowClearButton(),
28572
28581
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
28573
- }) }, 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) => {
28582
+ }) }, 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) => {
28574
28583
  /**
28575
28584
  * This prevents mobile browsers from
28576
28585
  * blurring the input when the clear
28577
28586
  * button is activated.
28578
28587
  */
28579
28588
  ev.preventDefault();
28580
- }, 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));
28589
+ }, 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));
28581
28590
  }
28582
28591
  get el() { return getElement(this); }
28583
28592
  static get watchers() { return {
@@ -28644,6 +28653,7 @@ class Segment {
28644
28653
  this.ionChange = createEvent(this, "ionChange", 7);
28645
28654
  this.ionSelect = createEvent(this, "ionSelect", 7);
28646
28655
  this.ionStyle = createEvent(this, "ionStyle", 7);
28656
+ this.segmentViewEl = null;
28647
28657
  this.onClick = (ev) => {
28648
28658
  const current = ev.target;
28649
28659
  const previous = this.checked;
@@ -28658,7 +28668,13 @@ class Segment {
28658
28668
  if (current !== previous) {
28659
28669
  this.emitValueChange();
28660
28670
  }
28661
- if (this.scrollable || !this.swipeGesture) {
28671
+ if (this.segmentViewEl) {
28672
+ this.updateSegmentView();
28673
+ if (this.scrollable && previous) {
28674
+ this.checkButton(previous, current);
28675
+ }
28676
+ }
28677
+ else if (this.scrollable || !this.swipeGesture) {
28662
28678
  if (previous) {
28663
28679
  this.checkButton(previous, current);
28664
28680
  }
@@ -28714,19 +28730,49 @@ class Segment {
28714
28730
  swipeGestureChanged() {
28715
28731
  this.gestureChanged();
28716
28732
  }
28717
- valueChanged(value) {
28733
+ valueChanged(value, oldValue) {
28734
+ // Force a value to exist if we're using a segment view
28735
+ if (this.segmentViewEl && value === undefined) {
28736
+ this.value = this.getButtons()[0].value;
28737
+ return;
28738
+ }
28739
+ if (oldValue !== undefined && value !== undefined) {
28740
+ const buttons = this.getButtons();
28741
+ const previous = buttons.find((button) => button.value === oldValue);
28742
+ const current = buttons.find((button) => button.value === value);
28743
+ if (previous && current) {
28744
+ if (!this.segmentViewEl) {
28745
+ this.checkButton(previous, current);
28746
+ }
28747
+ else if (this.triggerScrollOnValueChange !== false) {
28748
+ this.updateSegmentView();
28749
+ }
28750
+ }
28751
+ }
28752
+ else if (value !== undefined && oldValue === undefined && this.segmentViewEl) {
28753
+ this.updateSegmentView();
28754
+ }
28718
28755
  /**
28719
28756
  * `ionSelect` is emitted every time the value changes (internal or external changes).
28720
28757
  * Used by `ion-segment-button` to determine if the button should be checked.
28721
28758
  */
28722
28759
  this.ionSelect.emit({ value });
28723
- this.scrollActiveButtonIntoView();
28760
+ // The scroll listener should handle scrolling the active button into view as needed
28761
+ if (!this.segmentViewEl) {
28762
+ this.scrollActiveButtonIntoView();
28763
+ }
28764
+ this.triggerScrollOnValueChange = undefined;
28724
28765
  }
28725
28766
  disabledChanged() {
28726
28767
  this.gestureChanged();
28727
- const buttons = this.getButtons();
28728
- for (const button of buttons) {
28729
- button.disabled = this.disabled;
28768
+ if (!this.segmentViewEl) {
28769
+ const buttons = this.getButtons();
28770
+ for (const button of buttons) {
28771
+ button.disabled = this.disabled;
28772
+ }
28773
+ }
28774
+ else {
28775
+ this.segmentViewEl.disabled = this.disabled;
28730
28776
  }
28731
28777
  }
28732
28778
  gestureChanged() {
@@ -28736,6 +28782,10 @@ class Segment {
28736
28782
  }
28737
28783
  connectedCallback() {
28738
28784
  this.emitStyle();
28785
+ this.segmentViewEl = this.getSegmentView();
28786
+ }
28787
+ disconnectedCallback() {
28788
+ this.segmentViewEl = null;
28739
28789
  }
28740
28790
  componentWillLoad() {
28741
28791
  this.emitStyle();
@@ -28769,6 +28819,9 @@ class Segment {
28769
28819
  if (this.disabled) {
28770
28820
  this.disabledChanged();
28771
28821
  }
28822
+ // Update segment view based on the initial value,
28823
+ // but do not animate the scroll
28824
+ this.updateSegmentView(false);
28772
28825
  }
28773
28826
  onStart(detail) {
28774
28827
  this.valueBeforeGesture = this.value;
@@ -28785,6 +28838,7 @@ class Segment {
28785
28838
  if (value !== undefined) {
28786
28839
  if (this.valueBeforeGesture !== value) {
28787
28840
  this.emitValueChange();
28841
+ this.updateSegmentView();
28788
28842
  }
28789
28843
  }
28790
28844
  this.valueBeforeGesture = undefined;
@@ -28812,12 +28866,7 @@ class Segment {
28812
28866
  setActivated(activated) {
28813
28867
  const buttons = this.getButtons();
28814
28868
  buttons.forEach((button) => {
28815
- if (activated) {
28816
- button.classList.add('segment-button-activated');
28817
- }
28818
- else {
28819
- button.classList.remove('segment-button-activated');
28820
- }
28869
+ button.classList.toggle('segment-button-activated', activated);
28821
28870
  });
28822
28871
  this.activated = activated;
28823
28872
  }
@@ -28868,6 +28917,7 @@ class Segment {
28868
28917
  currentIndicator.classList.add('segment-button-indicator-animated');
28869
28918
  // Remove the transform to slide the indicator back to the button clicked
28870
28919
  currentIndicator.style.setProperty('transform', '');
28920
+ this.scrollActiveButtonIntoView(true);
28871
28921
  });
28872
28922
  this.value = current.value;
28873
28923
  this.setCheckedClasses();
@@ -28883,6 +28933,60 @@ class Segment {
28883
28933
  buttons[next].classList.add('segment-button-after-checked');
28884
28934
  }
28885
28935
  }
28936
+ getSegmentView() {
28937
+ const buttons = this.getButtons();
28938
+ // Get the first button with a contentId
28939
+ const firstContentId = buttons.find((button) => button.contentId);
28940
+ // Get the segment content with an id matching the button's contentId
28941
+ const segmentContent = document.querySelector(`ion-segment-content[id="${firstContentId === null || firstContentId === void 0 ? void 0 : firstContentId.contentId}"]`);
28942
+ // Return the segment view for that matching segment content
28943
+ return segmentContent === null || segmentContent === void 0 ? void 0 : segmentContent.closest('ion-segment-view');
28944
+ }
28945
+ handleSegmentViewScroll(ev) {
28946
+ const { scrollRatio, isManualScroll } = ev.detail;
28947
+ if (!isManualScroll) {
28948
+ return;
28949
+ }
28950
+ const dispatchedFrom = ev.target;
28951
+ const segmentViewEl = this.segmentViewEl;
28952
+ const segmentEl = this.el;
28953
+ // Only update the indicator if the event was dispatched from the correct segment view
28954
+ if (ev.composedPath().includes(segmentViewEl) || (dispatchedFrom === null || dispatchedFrom === void 0 ? void 0 : dispatchedFrom.contains(segmentEl))) {
28955
+ const buttons = this.getButtons();
28956
+ // If no buttons are found or there is no value set then do nothing
28957
+ if (!buttons.length)
28958
+ return;
28959
+ const index = buttons.findIndex((button) => button.value === this.value);
28960
+ const current = buttons[index];
28961
+ const nextIndex = Math.round(scrollRatio * (buttons.length - 1));
28962
+ if (this.lastNextIndex === undefined || this.lastNextIndex !== nextIndex) {
28963
+ this.lastNextIndex = nextIndex;
28964
+ this.triggerScrollOnValueChange = false;
28965
+ this.checkButton(current, buttons[nextIndex]);
28966
+ this.emitValueChange();
28967
+ }
28968
+ }
28969
+ }
28970
+ /**
28971
+ * Finds the related segment view and sets its current content
28972
+ * based on the selected segment button. This method
28973
+ * should be called on initial load of the segment,
28974
+ * after the gesture is completed (if dragging between segments)
28975
+ * and when a segment button is clicked directly.
28976
+ */
28977
+ updateSegmentView(smoothScroll = true) {
28978
+ const buttons = this.getButtons();
28979
+ const button = buttons.find((btn) => btn.value === this.value);
28980
+ // If the button does not have a contentId then there is
28981
+ // no associated segment view to update
28982
+ if (!(button === null || button === void 0 ? void 0 : button.contentId)) {
28983
+ return;
28984
+ }
28985
+ const segmentView = this.segmentViewEl;
28986
+ if (segmentView) {
28987
+ segmentView.setContent(button.contentId, smoothScroll);
28988
+ }
28989
+ }
28886
28990
  scrollActiveButtonIntoView(smoothScroll = true) {
28887
28991
  const { scrollable, value, el } = this;
28888
28992
  if (scrollable) {
@@ -29065,14 +29169,14 @@ class Segment {
29065
29169
  }
29066
29170
  render() {
29067
29171
  const mode = getIonMode$1(this);
29068
- return (hAsync(Host, { key: 'f1f7103b4c298e037df850ac809a1a7c6e9987a7', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29172
+ return (hAsync(Host, { key: '66bd7a565ba73540b3bbe56dd23b95e59bcef9bc', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29069
29173
  [mode]: true,
29070
29174
  'in-toolbar': hostContext('ion-toolbar', this.el),
29071
29175
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
29072
29176
  'segment-activated': this.activated,
29073
29177
  'segment-disabled': this.disabled,
29074
29178
  'segment-scrollable': this.scrollable,
29075
- }) }, hAsync("slot", { key: '6efdb318b13da8d21687084aa0761728fdf12579', onSlotchange: this.onSlottedItemsChange })));
29179
+ }) }, hAsync("slot", { key: '782c521b1a33729b8eab1c4b879bc3f2ff48ae1b', onSlotchange: this.onSlottedItemsChange })));
29076
29180
  }
29077
29181
  get el() { return getElement(this); }
29078
29182
  static get watchers() { return {
@@ -29097,7 +29201,7 @@ class Segment {
29097
29201
  "selectOnFocus": [4, "select-on-focus"],
29098
29202
  "activated": [32]
29099
29203
  },
29100
- "$listeners$": [[0, "keydown", "onKeyDown"]],
29204
+ "$listeners$": [[16, "ionSegmentViewScroll", "handleSegmentViewScroll"], [0, "keydown", "onKeyDown"]],
29101
29205
  "$lazyBundleId$": "-",
29102
29206
  "$attrsToReflect$": [["color", "color"]]
29103
29207
  }; }
@@ -29134,6 +29238,7 @@ class SegmentButton {
29134
29238
  }
29135
29239
  };
29136
29240
  this.checked = false;
29241
+ this.contentId = undefined;
29137
29242
  this.disabled = false;
29138
29243
  this.layout = 'icon-top';
29139
29244
  this.type = 'button';
@@ -29149,6 +29254,26 @@ class SegmentButton {
29149
29254
  addEventListener$1(segmentEl, 'ionSelect', this.updateState);
29150
29255
  addEventListener$1(segmentEl, 'ionStyle', this.updateStyle);
29151
29256
  }
29257
+ // Return if there is no contentId defined
29258
+ if (!this.contentId)
29259
+ return;
29260
+ // Attempt to find the Segment Content by its contentId
29261
+ const segmentContent = document.getElementById(this.contentId);
29262
+ // If no associated Segment Content exists, log an error and return
29263
+ if (!segmentContent) {
29264
+ console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
29265
+ return;
29266
+ }
29267
+ // Ensure the found element is a valid ION-SEGMENT-CONTENT
29268
+ if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
29269
+ console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
29270
+ return;
29271
+ }
29272
+ // Prevent buttons from being disabled when associated with segment content
29273
+ if (this.disabled) {
29274
+ console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
29275
+ this.disabled = false;
29276
+ }
29152
29277
  }
29153
29278
  disconnectedCallback() {
29154
29279
  const segmentEl = this.segmentEl;
@@ -29182,7 +29307,7 @@ class SegmentButton {
29182
29307
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
29183
29308
  const mode = getIonMode$1(this);
29184
29309
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
29185
- return (hAsync(Host, { key: '70cf5c7a3ae2620222c5250c644faf3cfc3b3e4e', class: {
29310
+ return (hAsync(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
29186
29311
  [mode]: true,
29187
29312
  'in-toolbar': hostContext('ion-toolbar', this.el),
29188
29313
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -29198,10 +29323,7 @@ class SegmentButton {
29198
29323
  'ion-activatable': true,
29199
29324
  'ion-activatable-instant': true,
29200
29325
  'ion-focusable': true,
29201
- } }, 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: {
29202
- 'segment-button-indicator': true,
29203
- 'segment-button-indicator-animated': true,
29204
- } }, hAsync("div", { key: '65c72a151080998c1e548c87d4d4ebd5c7dda72f', part: "indicator-background", class: "segment-button-indicator-background" }))));
29326
+ } }, 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" }))));
29205
29327
  }
29206
29328
  get el() { return getElement(this); }
29207
29329
  static get watchers() { return {
@@ -29215,6 +29337,7 @@ class SegmentButton {
29215
29337
  "$flags$": 41,
29216
29338
  "$tagName$": "ion-segment-button",
29217
29339
  "$members$": {
29340
+ "contentId": [513, "content-id"],
29218
29341
  "disabled": [1028],
29219
29342
  "layout": [1],
29220
29343
  "type": [1],
@@ -29224,6 +29347,151 @@ class SegmentButton {
29224
29347
  },
29225
29348
  "$listeners$": undefined,
29226
29349
  "$lazyBundleId$": "-",
29350
+ "$attrsToReflect$": [["contentId", "content-id"]]
29351
+ }; }
29352
+ }
29353
+
29354
+ const segmentContentCss = ":host{scroll-snap-align:center;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}";
29355
+ var IonSegmentContentStyle0 = segmentContentCss;
29356
+
29357
+ class SegmentContent {
29358
+ constructor(hostRef) {
29359
+ registerInstance(this, hostRef);
29360
+ }
29361
+ render() {
29362
+ return (hAsync(Host, { key: '03684b2999ac64fe13e376fd7e7f279976e9d4f2' }, hAsync("slot", { key: '143031075bf33ca19e7cfd76fc8a67b83ccaf11c' })));
29363
+ }
29364
+ static get style() { return IonSegmentContentStyle0; }
29365
+ static get cmpMeta() { return {
29366
+ "$flags$": 9,
29367
+ "$tagName$": "ion-segment-content",
29368
+ "$members$": undefined,
29369
+ "$listeners$": undefined,
29370
+ "$lazyBundleId$": "-",
29371
+ "$attrsToReflect$": []
29372
+ }; }
29373
+ }
29374
+
29375
+ 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}";
29376
+ var IonSegmentViewIosStyle0 = segmentViewIosCss;
29377
+
29378
+ 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}";
29379
+ var IonSegmentViewMdStyle0 = segmentViewMdCss;
29380
+
29381
+ class SegmentView {
29382
+ constructor(hostRef) {
29383
+ registerInstance(this, hostRef);
29384
+ this.ionSegmentViewScroll = createEvent(this, "ionSegmentViewScroll", 7);
29385
+ this.scrollEndTimeout = null;
29386
+ this.isTouching = false;
29387
+ this.disabled = false;
29388
+ this.isManualScroll = undefined;
29389
+ }
29390
+ handleScroll(ev) {
29391
+ var _a;
29392
+ const { scrollLeft, scrollWidth, clientWidth } = ev.target;
29393
+ const scrollRatio = scrollLeft / (scrollWidth - clientWidth);
29394
+ this.ionSegmentViewScroll.emit({
29395
+ scrollRatio,
29396
+ isManualScroll: (_a = this.isManualScroll) !== null && _a !== void 0 ? _a : true,
29397
+ });
29398
+ // Reset the timeout to check for scroll end
29399
+ this.resetScrollEndTimeout();
29400
+ }
29401
+ /**
29402
+ * Handle touch start event to know when the user is actively dragging the segment view.
29403
+ */
29404
+ handleScrollStart() {
29405
+ if (this.scrollEndTimeout) {
29406
+ clearTimeout(this.scrollEndTimeout);
29407
+ this.scrollEndTimeout = null;
29408
+ }
29409
+ this.isTouching = true;
29410
+ }
29411
+ /**
29412
+ * Handle touch end event to know when the user is no longer dragging the segment view.
29413
+ */
29414
+ handleTouchEnd() {
29415
+ this.isTouching = false;
29416
+ }
29417
+ /**
29418
+ * Reset the scroll end detection timer. This is called on every scroll event.
29419
+ */
29420
+ resetScrollEndTimeout() {
29421
+ if (this.scrollEndTimeout) {
29422
+ clearTimeout(this.scrollEndTimeout);
29423
+ this.scrollEndTimeout = null;
29424
+ }
29425
+ this.scrollEndTimeout = setTimeout(() => {
29426
+ this.checkForScrollEnd();
29427
+ },
29428
+ // Setting this to a lower value may result in inconsistencies in behavior
29429
+ // across browsers (particularly Firefox).
29430
+ // Ideally, all of this logic is removed once the scroll end event is
29431
+ // supported on all browsers (https://caniuse.com/?search=scrollend)
29432
+ 100);
29433
+ }
29434
+ /**
29435
+ * Check if the scroll has ended and the user is not actively touching.
29436
+ * If the conditions are met (active content is enabled and no active touch),
29437
+ * reset the scroll position and emit the scroll end event.
29438
+ */
29439
+ checkForScrollEnd() {
29440
+ // Only emit scroll end event if the active content is not disabled and
29441
+ // the user is not touching the segment view
29442
+ if (!this.isTouching) {
29443
+ this.isManualScroll = undefined;
29444
+ }
29445
+ }
29446
+ /**
29447
+ * @internal
29448
+ *
29449
+ * This method is used to programmatically set the displayed segment content
29450
+ * in the segment view. Calling this method will update the `value` of the
29451
+ * corresponding segment button.
29452
+ *
29453
+ * @param id: The id of the segment content to display.
29454
+ * @param smoothScroll: Whether to animate the scroll transition.
29455
+ */
29456
+ async setContent(id, smoothScroll = true) {
29457
+ const contents = this.getSegmentContents();
29458
+ const index = contents.findIndex((content) => content.id === id);
29459
+ if (index === -1)
29460
+ return;
29461
+ this.isManualScroll = false;
29462
+ this.resetScrollEndTimeout();
29463
+ const contentWidth = this.el.offsetWidth;
29464
+ this.el.scrollTo({
29465
+ top: 0,
29466
+ left: index * contentWidth,
29467
+ behavior: smoothScroll ? 'smooth' : 'instant',
29468
+ });
29469
+ }
29470
+ getSegmentContents() {
29471
+ return Array.from(this.el.querySelectorAll('ion-segment-content'));
29472
+ }
29473
+ render() {
29474
+ const { disabled, isManualScroll } = this;
29475
+ return (hAsync(Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
29476
+ 'segment-view-disabled': disabled,
29477
+ 'segment-view-scroll-disabled': isManualScroll === false,
29478
+ } }, hAsync("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
29479
+ }
29480
+ get el() { return getElement(this); }
29481
+ static get style() { return {
29482
+ ios: IonSegmentViewIosStyle0,
29483
+ md: IonSegmentViewMdStyle0
29484
+ }; }
29485
+ static get cmpMeta() { return {
29486
+ "$flags$": 41,
29487
+ "$tagName$": "ion-segment-view",
29488
+ "$members$": {
29489
+ "disabled": [4],
29490
+ "isManualScroll": [32],
29491
+ "setContent": [64]
29492
+ },
29493
+ "$listeners$": [[1, "scroll", "handleScroll"], [1, "touchstart", "handleScrollStart"], [1, "touchend", "handleTouchEnd"]],
29494
+ "$lazyBundleId$": "-",
29227
29495
  "$attrsToReflect$": []
29228
29496
  }; }
29229
29497
  }
@@ -29384,13 +29652,12 @@ class Select {
29384
29652
  this.setFocus();
29385
29653
  });
29386
29654
  await overlay.present();
29387
- // focus selected option for popovers
29388
- if (this.interface === 'popover') {
29389
- const indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
29655
+ // focus selected option for popovers and modals
29656
+ if (this.interface === 'popover' || this.interface === 'modal') {
29657
+ const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29390
29658
  if (indexOfSelected > -1) {
29391
29659
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
29392
29660
  if (selectedItem) {
29393
- focusVisibleElement(selectedItem);
29394
29661
  /**
29395
29662
  * Browsers such as Firefox do not
29396
29663
  * correctly delegate focus when manually
@@ -29404,8 +29671,11 @@ class Select {
29404
29671
  */
29405
29672
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
29406
29673
  if (interactiveEl) {
29407
- interactiveEl.focus();
29674
+ // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29675
+ // and removing `ion-focused` style
29676
+ interactiveEl.setFocus();
29408
29677
  }
29678
+ focusVisibleElement(selectedItem);
29409
29679
  }
29410
29680
  }
29411
29681
  else {
@@ -29414,11 +29684,14 @@ class Select {
29414
29684
  */
29415
29685
  const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
29416
29686
  if (firstEnabledOption) {
29417
- focusVisibleElement(firstEnabledOption.closest('ion-item'));
29418
29687
  /**
29419
29688
  * Focus the option for the same reason as we do above.
29689
+ *
29690
+ * Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29691
+ * and removing `ion-focused` style
29420
29692
  */
29421
- firstEnabledOption.focus();
29693
+ firstEnabledOption.setFocus();
29694
+ focusVisibleElement(firstEnabledOption.closest('ion-item'));
29422
29695
  }
29423
29696
  }
29424
29697
  }
@@ -29440,6 +29713,9 @@ class Select {
29440
29713
  if (selectInterface === 'popover') {
29441
29714
  return this.openPopover(ev);
29442
29715
  }
29716
+ if (selectInterface === 'modal') {
29717
+ return this.openModal();
29718
+ }
29443
29719
  return this.openAlert();
29444
29720
  }
29445
29721
  updateOverlayOptions() {
@@ -29456,7 +29732,13 @@ class Select {
29456
29732
  case 'popover':
29457
29733
  const popover = overlay.querySelector('ion-select-popover');
29458
29734
  if (popover) {
29459
- popover.options = this.createPopoverOptions(childOpts, value);
29735
+ popover.options = this.createOverlaySelectOptions(childOpts, value);
29736
+ }
29737
+ break;
29738
+ case 'modal':
29739
+ const modal = overlay.querySelector('ion-select-modal');
29740
+ if (modal) {
29741
+ modal.options = this.createOverlaySelectOptions(childOpts, value);
29460
29742
  }
29461
29743
  break;
29462
29744
  case 'alert':
@@ -29511,7 +29793,7 @@ class Select {
29511
29793
  });
29512
29794
  return alertInputs;
29513
29795
  }
29514
- createPopoverOptions(data, selectValue) {
29796
+ createOverlaySelectOptions(data, selectValue) {
29515
29797
  const popoverOptions = data.map((option) => {
29516
29798
  const value = getOptionValue(option);
29517
29799
  // Remove hydrated before copying over classes
@@ -29571,7 +29853,7 @@ class Select {
29571
29853
  message: interfaceOptions.message,
29572
29854
  multiple,
29573
29855
  value,
29574
- options: this.createPopoverOptions(this.childOpts, value),
29856
+ options: this.createOverlaySelectOptions(this.childOpts, value),
29575
29857
  } });
29576
29858
  return popoverController.create(popoverOpts);
29577
29859
  }
@@ -29606,6 +29888,17 @@ class Select {
29606
29888
  ] });
29607
29889
  return alertController.create(alertOpts);
29608
29890
  }
29891
+ openModal() {
29892
+ const { multiple, value, interfaceOptions } = this;
29893
+ const mode = getIonMode$1(this);
29894
+ const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
29895
+ header: interfaceOptions.header,
29896
+ multiple,
29897
+ value,
29898
+ options: this.createOverlaySelectOptions(this.childOpts, value),
29899
+ } });
29900
+ return modalController.create(modalOpts);
29901
+ }
29609
29902
  /**
29610
29903
  * Close the select interface.
29611
29904
  */
@@ -29813,7 +30106,7 @@ class Select {
29813
30106
  * TODO(FW-5592): Remove hasStartEndSlots condition
29814
30107
  */
29815
30108
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
29816
- return (hAsync(Host, { key: '73c571c1f8468e1c3f4fe02fbbb33ba9cbc8e989', onClick: this.onClick, class: createColorClasses$1(this.color, {
30109
+ return (hAsync(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses$1(this.color, {
29817
30110
  [mode]: true,
29818
30111
  'in-item': inItem,
29819
30112
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -29829,7 +30122,7 @@ class Select {
29829
30122
  [`select-justify-${justify}`]: justifyEnabled,
29830
30123
  [`select-shape-${shape}`]: shape !== undefined,
29831
30124
  [`select-label-placement-${labelPlacement}`]: true,
29832
- }) }, 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" }))));
30125
+ }) }, 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" }))));
29833
30126
  }
29834
30127
  get el() { return getElement(this); }
29835
30128
  static get watchers() { return {
@@ -29909,6 +30202,108 @@ const textForValue = (opts, value, compareWith) => {
29909
30202
  let selectIds = 0;
29910
30203
  const OPTION_CLASS = 'select-interface-option';
29911
30204
 
30205
+ 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)}";
30206
+ var IonSelectModalIonicStyle0 = ionicSelectModalMdCss;
30207
+
30208
+ const selectModalIosCss = ".sc-ion-select-modal-ios-h{height:100%}";
30209
+ var IonSelectModalIosStyle0 = selectModalIosCss;
30210
+
30211
+ 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)}";
30212
+ var IonSelectModalMdStyle0 = selectModalMdCss;
30213
+
30214
+ class SelectModal {
30215
+ constructor(hostRef) {
30216
+ registerInstance(this, hostRef);
30217
+ this.header = undefined;
30218
+ this.multiple = undefined;
30219
+ this.options = [];
30220
+ }
30221
+ closeModal() {
30222
+ const modal = this.el.closest('ion-modal');
30223
+ if (modal) {
30224
+ modal.dismiss();
30225
+ }
30226
+ }
30227
+ findOptionFromEvent(ev) {
30228
+ const { options } = this;
30229
+ return options.find((o) => o.value === ev.target.value);
30230
+ }
30231
+ getValues(ev) {
30232
+ const { multiple, options } = this;
30233
+ if (multiple) {
30234
+ // this is a modal with checkboxes (multiple value select)
30235
+ // return an array of all the checked values
30236
+ return options.filter((o) => o.checked).map((o) => o.value);
30237
+ }
30238
+ // this is a modal with radio buttons (single value select)
30239
+ // return the value that was clicked, otherwise undefined
30240
+ const option = ev ? this.findOptionFromEvent(ev) : null;
30241
+ return option ? option.value : undefined;
30242
+ }
30243
+ callOptionHandler(ev) {
30244
+ const option = this.findOptionFromEvent(ev);
30245
+ const values = this.getValues(ev);
30246
+ if (option === null || option === void 0 ? void 0 : option.handler) {
30247
+ safeCall(option.handler, values);
30248
+ }
30249
+ }
30250
+ setChecked(ev) {
30251
+ const { multiple } = this;
30252
+ const option = this.findOptionFromEvent(ev);
30253
+ // this is a modal with checkboxes (multiple value select)
30254
+ // we need to set the checked value for this option
30255
+ if (multiple && option) {
30256
+ option.checked = ev.detail.checked;
30257
+ }
30258
+ }
30259
+ renderRadioOptions() {
30260
+ const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
30261
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
30262
+ // TODO FW-4784
30263
+ 'item-radio-checked': option.value === checked
30264
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
30265
+ if (ev.key === ' ') {
30266
+ /**
30267
+ * Selecting a radio option with keyboard navigation,
30268
+ * either through the Enter or Space keys, should
30269
+ * dismiss the modal.
30270
+ */
30271
+ this.closeModal();
30272
+ }
30273
+ } }, option.text))))));
30274
+ }
30275
+ renderCheckboxOptions() {
30276
+ return this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
30277
+ // TODO FW-4784
30278
+ 'item-checkbox-checked': option.checked
30279
+ }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
30280
+ this.setChecked(ev);
30281
+ this.callOptionHandler(ev);
30282
+ } }, option.text))));
30283
+ }
30284
+ render() {
30285
+ 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()))));
30286
+ }
30287
+ get el() { return getElement(this); }
30288
+ static get style() { return {
30289
+ ionic: IonSelectModalIonicStyle0,
30290
+ ios: IonSelectModalIosStyle0,
30291
+ md: IonSelectModalMdStyle0
30292
+ }; }
30293
+ static get cmpMeta() { return {
30294
+ "$flags$": 34,
30295
+ "$tagName$": "ion-select-modal",
30296
+ "$members$": {
30297
+ "header": [1],
30298
+ "multiple": [4],
30299
+ "options": [16]
30300
+ },
30301
+ "$listeners$": undefined,
30302
+ "$lazyBundleId$": "-",
30303
+ "$attrsToReflect$": []
30304
+ }; }
30305
+ }
30306
+
29912
30307
  const selectOptionCss = ":host{display:none}";
29913
30308
  var IonSelectOptionStyle0 = selectOptionCss;
29914
30309
 
@@ -29920,7 +30315,7 @@ class SelectOption {
29920
30315
  this.value = undefined;
29921
30316
  }
29922
30317
  render() {
29923
- return hAsync(Host, { key: 'ba5a9c695c53fe0802af11a49f4305a9b8f71773', role: "option", id: this.inputId, class: getIonMode$1(this) });
30318
+ return hAsync(Host, { key: '2e6fa159464f04f6d8720f960141f67918bc7534', role: "option", id: this.inputId, class: getIonMode$1(this) });
29924
30319
  }
29925
30320
  get el() { return getElement(this); }
29926
30321
  static get style() { return IonSelectOptionStyle0; }
@@ -30040,7 +30435,7 @@ class SelectPopover {
30040
30435
  render() {
30041
30436
  const { header, message, options, subHeader } = this;
30042
30437
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
30043
- 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))));
30438
+ 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))));
30044
30439
  }
30045
30440
  get el() { return getElement(this); }
30046
30441
  static get style() { return {
@@ -30088,11 +30483,11 @@ class SkeletonText {
30088
30483
  const animated = this.animated && config.getBoolean('animated', true);
30089
30484
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
30090
30485
  const mode = getIonMode$1(this);
30091
- return (hAsync(Host, { key: '1a3e78e9a6f740d609d1f0b7a16cb6eff4a2d617', class: {
30486
+ return (hAsync(Host, { key: 'fdfabf9364caf507450239b62be24f08873bd650', class: {
30092
30487
  [mode]: true,
30093
30488
  'skeleton-text-animated': animated,
30094
30489
  'in-media': inMedia,
30095
- } }, hAsync("span", { key: 'be3eabe196ec6e8ec19857375ba30f4c8aa58e7f' }, "\u00A0")));
30490
+ } }, hAsync("span", { key: '3482c88dcc177547185ce87972afa064a542367d' }, "\u00A0")));
30096
30491
  }
30097
30492
  get el() { return getElement(this); }
30098
30493
  static get style() { return IonSkeletonTextStyle0; }
@@ -30145,7 +30540,7 @@ class Spinner {
30145
30540
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
30146
30541
  }
30147
30542
  }
30148
- return (hAsync(Host, { key: '50cbaed55eeab15292447d106a80b93db4cb40de', class: createColorClasses$1(self.color, {
30543
+ return (hAsync(Host, { key: '9d30ee9f5aa0dd0e220da07e75d05b8b2435224d', class: createColorClasses$1(self.color, {
30149
30544
  [mode]: true,
30150
30545
  [`spinner-${spinnerName}`]: true,
30151
30546
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -30245,12 +30640,12 @@ class SplitPane {
30245
30640
  }
30246
30641
  render() {
30247
30642
  const mode = getIonMode$1(this);
30248
- return (hAsync(Host, { key: 'd54c356cd4bff7e55325160882dea8249f47f388', class: {
30643
+ return (hAsync(Host, { key: '1ca0b0299d03605bb358112ca56cbafbe58f00f5', class: {
30249
30644
  [mode]: true,
30250
30645
  // Used internally for styling
30251
30646
  [`split-pane-${mode}`]: true,
30252
30647
  'split-pane-visible': this.visible,
30253
- } }, hAsync("slot", { key: 'af62690d0fd686cfbd29d888c79eda9001f13e2f' })));
30648
+ } }, hAsync("slot", { key: 'abe231361727ae7fc63edd592a4490caac1909fb' })));
30254
30649
  }
30255
30650
  get el() { return getElement(this); }
30256
30651
  static get watchers() { return {
@@ -30319,10 +30714,10 @@ class Tab {
30319
30714
  }
30320
30715
  render() {
30321
30716
  const { tab, active, component } = this;
30322
- return (hAsync(Host, { key: '46d5498418f5379861c3d7465e8021dec45f1200', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30717
+ return (hAsync(Host, { key: 'cb75d0877979b3b8df8f7e1952bfa9677da1eaa5', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30323
30718
  'ion-page': component === undefined,
30324
30719
  'tab-hidden': !active,
30325
- } }, hAsync("slot", { key: 'b45045dccb87dfe75e3f5a5a474bb48b6c98e922' })));
30720
+ } }, hAsync("slot", { key: '37fbb7b7a6b03eb93b1dacd2dc1025b78eb2aa6b' })));
30326
30721
  }
30327
30722
  get el() { return getElement(this); }
30328
30723
  static get watchers() { return {
@@ -30400,11 +30795,11 @@ class TabBar {
30400
30795
  const { color, translucent, keyboardVisible } = this;
30401
30796
  const mode = getIonMode$1(this);
30402
30797
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
30403
- return (hAsync(Host, { key: '3a8595dd83f89e8319471a7a7f9f64b2565b384c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30798
+ return (hAsync(Host, { key: 'a87fd2ea5df053705a37ea7ffec043e75c4a9907', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30404
30799
  [mode]: true,
30405
30800
  'tab-bar-translucent': translucent,
30406
30801
  'tab-bar-hidden': shouldHide,
30407
- }) }, hAsync("slot", { key: '8b65eceb922f6abfa15f41046261586fb94b981f' })));
30802
+ }) }, hAsync("slot", { key: '81a6223299b6cab29d7ddced590e9152e2b3ded0' })));
30408
30803
  }
30409
30804
  get el() { return getElement(this); }
30410
30805
  static get watchers() { return {
@@ -30502,7 +30897,7 @@ class TabButton {
30502
30897
  rel,
30503
30898
  target,
30504
30899
  };
30505
- return (hAsync(Host, { key: '4b528ce31f67e10ad849e0c99bd034bba675c227', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
30900
+ return (hAsync(Host, { key: '5976c45943ea7ea8e7c1a85fc9996de421439f08', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
30506
30901
  [mode]: true,
30507
30902
  'tab-selected': selected,
30508
30903
  'tab-disabled': disabled,
@@ -30514,7 +30909,7 @@ class TabButton {
30514
30909
  'ion-activatable': true,
30515
30910
  'ion-selectable': true,
30516
30911
  'ion-focusable': true,
30517
- } }, 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" }))));
30912
+ } }, 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" }))));
30518
30913
  }
30519
30914
  get el() { return getElement(this); }
30520
30915
  static get style() { return {
@@ -30690,7 +31085,7 @@ class Tabs {
30690
31085
  return Array.from(this.el.querySelectorAll('ion-tab'));
30691
31086
  }
30692
31087
  render() {
30693
- 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" })));
31088
+ 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" })));
30694
31089
  }
30695
31090
  get el() { return getElement(this); }
30696
31091
  static get style() { return IonTabsStyle0; }
@@ -30732,9 +31127,9 @@ class Text {
30732
31127
  }
30733
31128
  render() {
30734
31129
  const mode = getIonMode$1(this);
30735
- return (hAsync(Host, { key: '4b76333b1ea5cab134b9dc1f5670c0d5a253fc32', class: createColorClasses$1(this.color, {
31130
+ return (hAsync(Host, { key: 'e134d70c04344b708a2ecf6253722781ad2ca826', class: createColorClasses$1(this.color, {
30736
31131
  [mode]: true,
30737
- }) }, hAsync("slot", { key: '3dee5f16bc58b3d92547d910bd4f441a00ce2039' })));
31132
+ }) }, hAsync("slot", { key: 'da79c760f7ebbcd007ce110439f05a62cb22eac8' })));
30738
31133
  }
30739
31134
  static get style() { return IonTextStyle0; }
30740
31135
  static get cmpMeta() { return {
@@ -31116,7 +31511,7 @@ class Textarea {
31116
31511
  * TODO(FW-5592): Remove hasStartEndSlots condition
31117
31512
  */
31118
31513
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
31119
- return (hAsync(Host, { key: 'e8a5b5727c6a018bbd6f5507b690bc5f0959e352', class: createColorClasses$1(this.color, {
31514
+ return (hAsync(Host, { key: 'd6e25c83d8eab8cb1a5b6ab411c9a13847f69f8d', class: createColorClasses$1(this.color, {
31120
31515
  [mode]: true,
31121
31516
  'has-value': hasValue,
31122
31517
  'has-focus': hasFocus,
@@ -31125,7 +31520,7 @@ class Textarea {
31125
31520
  [`textarea-shape-${shape}`]: shape !== undefined,
31126
31521
  [`textarea-label-placement-${labelPlacement}`]: true,
31127
31522
  'textarea-disabled': disabled,
31128
- }) }, 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()));
31523
+ }) }, 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()));
31129
31524
  }
31130
31525
  get el() { return getElement(this); }
31131
31526
  static get watchers() { return {
@@ -31187,7 +31582,7 @@ class Thumbnail {
31187
31582
  registerInstance(this, hostRef);
31188
31583
  }
31189
31584
  render() {
31190
- return (hAsync(Host, { key: 'ea55000055f941b0c79561e8934be6242ec8e114', class: getIonMode$1(this) }, hAsync("slot", { key: 'a4f934f442797f5c66a77e0ef8920fdd07c204f2' })));
31585
+ return (hAsync(Host, { key: 'cfa9aeb1d4fd624a9732c5230d29dd887e4b7771', class: getIonMode$1(this) }, hAsync("slot", { key: '29bc6e64063cba44e2643228df54394883933918' })));
31191
31586
  }
31192
31587
  static get style() { return IonThumbnailStyle0; }
31193
31588
  static get cmpMeta() { return {
@@ -32023,9 +32418,9 @@ class Toast {
32023
32418
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
32024
32419
  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);
32025
32420
  }
32026
- return (hAsync(Host, Object.assign({ key: '68c336f80af04ba484ca9899bae8f40c0d9b7691', tabindex: "-1" }, this.htmlAttributes, { style: {
32421
+ return (hAsync(Host, Object.assign({ key: 'c05655ff06af8d0e48c2a85396b07ad942fa81b4', tabindex: "-1" }, this.htmlAttributes, { style: {
32027
32422
  zIndex: `${60000 + this.overlayIndex}`,
32028
- }, 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')))));
32423
+ }, 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')))));
32029
32424
  }
32030
32425
  get el() { return getElement(this); }
32031
32426
  static get watchers() { return {
@@ -32245,7 +32640,7 @@ class Toggle {
32245
32640
  const value = this.getValue();
32246
32641
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32247
32642
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32248
- return (hAsync(Host, { key: '8f024fb0fbc2d4442be0574b03450426e8e4fc9e', onClick: this.onClick, class: createColorClasses$1(color, {
32643
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
32249
32644
  [mode]: true,
32250
32645
  'in-item': hostContext('ion-item', el),
32251
32646
  'toggle-activated': activated,
@@ -32255,10 +32650,10 @@ class Toggle {
32255
32650
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32256
32651
  [`toggle-label-placement-${labelPlacement}`]: true,
32257
32652
  [`toggle-${rtl}`]: true,
32258
- }) }, 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: {
32653
+ }) }, 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: {
32259
32654
  'label-text-wrapper': true,
32260
32655
  'label-text-wrapper-hidden': !this.hasLabel,
32261
- }, part: "label" }, hAsync("slot", { key: '7a6ea9515d454d80615f0622f361c5f91b41345c' })), hAsync("div", { key: '6d3670b81b8f809092c98b3f3b8e483ddf6a7cac', class: "native-wrapper" }, this.renderToggleControl()))));
32656
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
32262
32657
  }
32263
32658
  get el() { return getElement(this); }
32264
32659
  static get watchers() { return {
@@ -32362,10 +32757,10 @@ class Toolbar {
32362
32757
  this.childrenStyles.forEach((value) => {
32363
32758
  Object.assign(childStyles, value);
32364
32759
  });
32365
- return (hAsync(Host, { key: '4bb3a55001408a3bdf033af76b9196cb96c07c09', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32760
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32366
32761
  [mode]: true,
32367
32762
  'in-toolbar': hostContext('ion-toolbar', this.el),
32368
- })) }, 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" }))));
32763
+ })) }, 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" }))));
32369
32764
  }
32370
32765
  get el() { return getElement(this); }
32371
32766
  static get style() { return {
@@ -32415,11 +32810,11 @@ class ToolbarTitle {
32415
32810
  render() {
32416
32811
  const mode = getIonMode$1(this);
32417
32812
  const size = this.getSize();
32418
- return (hAsync(Host, { key: '5a58dc437a6f4257244bbdd7e9a682a17d8c9a6b', class: createColorClasses$1(this.color, {
32813
+ return (hAsync(Host, { key: '7293d2ecd6262feb0d8d769effbb208230baed89', class: createColorClasses$1(this.color, {
32419
32814
  [mode]: true,
32420
32815
  [`title-${size}`]: true,
32421
32816
  'title-rtl': document.dir === 'rtl',
32422
- }) }, hAsync("div", { key: '58682ea7b8f47a08adfad419b5c76b34784c6501', class: "toolbar-title" }, hAsync("slot", { key: '8a9248534e4c3076f5e2dfda38ef86069796851c' }))));
32817
+ }) }, hAsync("div", { key: '086ec3a361ebdf6506846a8704b457cda3a6f897', class: "toolbar-title" }, hAsync("slot", { key: '59add7eb92b82d6832a8f0894f897c51fdf4f214' }))));
32423
32818
  }
32424
32819
  get el() { return getElement(this); }
32425
32820
  static get watchers() { return {
@@ -32520,7 +32915,10 @@ registerComponents([
32520
32915
  Searchbar,
32521
32916
  Segment,
32522
32917
  SegmentButton,
32918
+ SegmentContent,
32919
+ SegmentView,
32523
32920
  Select,
32921
+ SelectModal,
32524
32922
  SelectOption,
32525
32923
  SelectPopover,
32526
32924
  SkeletonText,