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.js CHANGED
@@ -4623,6 +4623,7 @@ const createController = (tagName) => {
4623
4623
  };
4624
4624
  const alertController = /*@__PURE__*/ createController('ion-alert');
4625
4625
  const actionSheetController = /*@__PURE__*/ createController('ion-action-sheet');
4626
+ const modalController = /*@__PURE__*/ createController('ion-modal');
4626
4627
  const popoverController = /*@__PURE__*/ createController('ion-popover');
4627
4628
  /**
4628
4629
  * Prepares the overlay element to be presented.
@@ -7291,13 +7292,15 @@ class Alert {
7291
7292
  const msgId = `alert-${overlayIndex}-msg`;
7292
7293
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
7293
7294
  /**
7294
- * If the header is defined, use that. Otherwise, fall back to the subHeader.
7295
- * If neither is defined, don't set aria-labelledby.
7295
+ * Use both the header and subHeader ids if they are defined.
7296
+ * If only the header is defined, use the header id.
7297
+ * If only the subHeader is defined, use the subHeader id.
7298
+ * If neither are defined, do not set aria-labelledby.
7296
7299
  */
7297
- const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
7298
- 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: {
7300
+ const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7301
+ 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: {
7299
7302
  zIndex: `${20000 + overlayIndex}`,
7300
- }, 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" })));
7303
+ }, 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" })));
7301
7304
  }
7302
7305
  get el() { return getElement(this); }
7303
7306
  static get watchers() { return {
@@ -7375,7 +7378,7 @@ class App {
7375
7378
  }
7376
7379
  render() {
7377
7380
  const mode = getIonMode$1(this);
7378
- return (hAsync(Host, { key: 'e95cdeb2709edbc74f4e6ebf77cb110154605b72', class: {
7381
+ return (hAsync(Host, { key: '96715520fd05d6f0e6fa26a8ba78792cfccd4c0a', class: {
7379
7382
  [mode]: true,
7380
7383
  'ion-page': true,
7381
7384
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -7406,7 +7409,7 @@ class Avatar {
7406
7409
  registerInstance(this, hostRef);
7407
7410
  }
7408
7411
  render() {
7409
- return (hAsync(Host, { key: 'dc1e3cd535e419eebe5599574fd2393ebfde8bbc', class: getIonMode$1(this) }, hAsync("slot", { key: 'edb8441c063ea592b41345ea97d88ecd90cb3052' })));
7412
+ return (hAsync(Host, { key: '998217066084f966bf5d356fed85bcbd451f675a', class: getIonMode$1(this) }, hAsync("slot", { key: '1a6f7c9d4dc6a875f86b5b3cda6d59cb39587f22' })));
7410
7413
  }
7411
7414
  static get style() { return {
7412
7415
  ios: IonAvatarIosStyle0,
@@ -7494,7 +7497,7 @@ class BackButton {
7494
7497
  const showBackButton = defaultHref !== undefined;
7495
7498
  const mode = getIonMode$1(this);
7496
7499
  const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';
7497
- return (hAsync(Host, { key: '8351c93a1812c94c979fb115f07a9ad7b3152188', onClick: this.onClick, class: createColorClasses$1(color, {
7500
+ return (hAsync(Host, { key: '5466624a10f1ab56f5469e6dc07080303880f2fe', onClick: this.onClick, class: createColorClasses$1(color, {
7498
7501
  [mode]: true,
7499
7502
  button: true, // ion-buttons target .button
7500
7503
  'back-button-disabled': disabled,
@@ -7504,7 +7507,7 @@ class BackButton {
7504
7507
  'ion-activatable': true,
7505
7508
  'ion-focusable': true,
7506
7509
  'show-back-button': showBackButton,
7507
- }) }, 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 }))));
7510
+ }) }, 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 }))));
7508
7511
  }
7509
7512
  get el() { return getElement(this); }
7510
7513
  static get style() { return {
@@ -7557,7 +7560,7 @@ class Backdrop {
7557
7560
  }
7558
7561
  render() {
7559
7562
  const mode = getIonMode$1(this);
7560
- return (hAsync(Host, { key: 'fe191068e2aaadfdbe7a463c08d227a1b36d7a98', "aria-hidden": "true", class: {
7563
+ return (hAsync(Host, { key: '7abaf2c310aa399607451b14063265e8a5846938', "aria-hidden": "true", class: {
7561
7564
  [mode]: true,
7562
7565
  'backdrop-hide': !this.visible,
7563
7566
  'backdrop-no-tappable': !this.tappable,
@@ -7597,9 +7600,9 @@ class Badge {
7597
7600
  }
7598
7601
  render() {
7599
7602
  const mode = getIonMode$1(this);
7600
- return (hAsync(Host, { key: '1253618692342bcf9487188402dc3d49ae0de480', class: createColorClasses$1(this.color, {
7603
+ return (hAsync(Host, { key: '1a2d39c5deec771a2f2196447627b62a7d4c8389', class: createColorClasses$1(this.color, {
7601
7604
  [mode]: true,
7602
- }) }, hAsync("slot", { key: '71d65e203965ea37b94504a8a0a96beb52d4e356' })));
7605
+ }) }, hAsync("slot", { key: 'fc1b6587f1ed24715748eb6785e7fb7a57cdd5cd' })));
7603
7606
  }
7604
7607
  static get style() { return {
7605
7608
  ios: IonBadgeIosStyle0,
@@ -7685,7 +7688,7 @@ class Breadcrumb {
7685
7688
  // to show the separator as long as it isn't also the last breadcrumb
7686
7689
  // otherwise if not collapsed use the value in separator
7687
7690
  const showSeparator = last ? false : collapsed ? (showCollapsedIndicator && !last ? true : false) : separator;
7688
- return (hAsync(Host, { key: 'dfe55ad57f23e5da5f2e2c51fea99964812472e3', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
7691
+ return (hAsync(Host, { key: '32ca61c83721dff52b5e97171ed449dce3584a55', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
7689
7692
  [mode]: true,
7690
7693
  'breadcrumb-active': active,
7691
7694
  'breadcrumb-collapsed': collapsed,
@@ -7695,15 +7698,15 @@ class Breadcrumb {
7695
7698
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
7696
7699
  'ion-activatable': clickable,
7697
7700
  'ion-focusable': clickable,
7698
- }) }, 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: {
7701
+ }) }, 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: {
7699
7702
  'breadcrumbs-collapsed-indicator': true,
7700
- } }, hAsync("ion-icon", { key: '957d8851af9c99dda263f34eff0b35a0fc212c32', "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
7703
+ } }, hAsync("ion-icon", { key: 'a849e1142a86f06f207cf11662fa2a560ab7fc6a', "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
7701
7704
  /**
7702
7705
  * Separators should not be announced by narrators.
7703
7706
  * We add aria-hidden on the span so that this applies
7704
7707
  * to any custom separators too.
7705
7708
  */
7706
- 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, "/")))))));
7709
+ 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, "/")))))));
7707
7710
  }
7708
7711
  get el() { return getElement(this); }
7709
7712
  static get style() { return {
@@ -7843,12 +7846,12 @@ class Breadcrumbs {
7843
7846
  render() {
7844
7847
  const { color, collapsed } = this;
7845
7848
  const mode = getIonMode$1(this);
7846
- return (hAsync(Host, { key: '18ffba1642f10cc2bc31440e84f23aa6f042e501', class: createColorClasses$1(color, {
7849
+ return (hAsync(Host, { key: 'fe64e9cdf597ede2db140bf5fa05a0359d82db57', class: createColorClasses$1(color, {
7847
7850
  [mode]: true,
7848
7851
  'in-toolbar': hostContext('ion-toolbar', this.el),
7849
7852
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
7850
7853
  'breadcrumbs-collapsed': collapsed,
7851
- }) }, hAsync("slot", { key: '3db6d31590e3047889ce554d57d155c8ea2e1455', onSlotchange: this.slotChanged })));
7854
+ }) }, hAsync("slot", { key: 'a2c99b579e339055c50a613d5c6b61032f5ddffe', onSlotchange: this.slotChanged })));
7852
7855
  }
7853
7856
  get el() { return getElement(this); }
7854
7857
  static get watchers() { return {
@@ -8091,7 +8094,7 @@ class Button {
8091
8094
  {
8092
8095
  type !== 'button' && this.renderHiddenButton();
8093
8096
  }
8094
- return (hAsync(Host, { key: '8f3a0363d46ef888d22b0b0812c70cb4f79e6efa', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8097
+ return (hAsync(Host, { key: '340a809d85698741bb36e796355cae89a970655f', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
8095
8098
  [mode]: true,
8096
8099
  [buttonType]: true,
8097
8100
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -8106,7 +8109,7 @@ class Button {
8106
8109
  'button-disabled': disabled,
8107
8110
  'ion-activatable': true,
8108
8111
  'ion-focusable': true,
8109
- }) }, 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 }))));
8112
+ }) }, 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 }))));
8110
8113
  }
8111
8114
  get el() { return getElement(this); }
8112
8115
  static get watchers() { return {
@@ -8157,10 +8160,10 @@ class Buttons {
8157
8160
  }
8158
8161
  render() {
8159
8162
  const mode = getIonMode$1(this);
8160
- return (hAsync(Host, { key: '4e5ce9abb3f56e8c91e3eb58c2819300e61eba24', class: {
8163
+ return (hAsync(Host, { key: '58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b', class: {
8161
8164
  [mode]: true,
8162
8165
  ['buttons-collapse']: this.collapse,
8163
- } }, hAsync("slot", { key: 'f2f360ec888b6e946b512fed07431fab47c61482' })));
8166
+ } }, hAsync("slot", { key: '0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8' })));
8164
8167
  }
8165
8168
  static get style() { return {
8166
8169
  ios: IonButtonsIosStyle0,
@@ -8229,7 +8232,7 @@ class Card {
8229
8232
  }
8230
8233
  render() {
8231
8234
  const mode = getIonMode$1(this);
8232
- return (hAsync(Host, { key: '8584300522f382ee8891c039d71da82533dfa36a', class: createColorClasses$1(this.color, {
8235
+ return (hAsync(Host, { key: '85e9b30bd81e79a0c7ac75cb3664bdcf9e4afc4d', class: createColorClasses$1(this.color, {
8233
8236
  [mode]: true,
8234
8237
  'card-disabled': this.disabled,
8235
8238
  'ion-activatable': this.isClickable(),
@@ -8276,7 +8279,7 @@ class CardContent {
8276
8279
  }
8277
8280
  render() {
8278
8281
  const mode = getIonMode$1(this);
8279
- return (hAsync(Host, { key: '2a2d0b48aad4b83990a1748fce60e772514eb223', class: {
8282
+ return (hAsync(Host, { key: 'd98e4d1fc6ad3237549f9bc17e4c67ec5059b1b3', class: {
8280
8283
  [mode]: true,
8281
8284
  // Used internally for styling
8282
8285
  [`card-content-${mode}`]: true,
@@ -8313,11 +8316,11 @@ class CardHeader {
8313
8316
  }
8314
8317
  render() {
8315
8318
  const mode = getIonMode$1(this);
8316
- return (hAsync(Host, { key: '18d12507ec6e650a72d721e9d0f4128b5e86df1d', class: createColorClasses$1(this.color, {
8319
+ return (hAsync(Host, { key: '64246b81931203a64d553c788cd736f41e23f37b', class: createColorClasses$1(this.color, {
8317
8320
  'card-header-translucent': this.translucent,
8318
8321
  'ion-inherit-color': true,
8319
8322
  [mode]: true,
8320
- }) }, hAsync("slot", { key: '3374c087d8c3f014082787e255432e7a335ef44f' })));
8323
+ }) }, hAsync("slot", { key: 'af2da2dfe266889afeb57fac25c6a730558dbba4' })));
8321
8324
  }
8322
8325
  static get style() { return {
8323
8326
  ios: IonCardHeaderIosStyle0,
@@ -8352,10 +8355,10 @@ class CardSubtitle {
8352
8355
  }
8353
8356
  render() {
8354
8357
  const mode = getIonMode$1(this);
8355
- return (hAsync(Host, { key: 'cbcb01bd01cf6de64a0b04fb626e42b07ceb8f53', role: "heading", "aria-level": "3", class: createColorClasses$1(this.color, {
8358
+ return (hAsync(Host, { key: '84d820a19d9074f9c8bc61ccba1ca40062a60b73', role: "heading", "aria-level": "3", class: createColorClasses$1(this.color, {
8356
8359
  'ion-inherit-color': true,
8357
8360
  [mode]: true,
8358
- }) }, hAsync("slot", { key: 'cbcaa73aa5799882c48d6c0aabfb13651bcc91c0' })));
8361
+ }) }, hAsync("slot", { key: 'e4d07d395a1f4469a90847636083101b32b776a1' })));
8359
8362
  }
8360
8363
  static get style() { return {
8361
8364
  ios: IonCardSubtitleIosStyle0,
@@ -8389,10 +8392,10 @@ class CardTitle {
8389
8392
  }
8390
8393
  render() {
8391
8394
  const mode = getIonMode$1(this);
8392
- return (hAsync(Host, { key: 'f904a0ca6489f147d03c9c5f9f2c5549cdb38d1a', role: "heading", "aria-level": "2", class: createColorClasses$1(this.color, {
8395
+ return (hAsync(Host, { key: 'fca001a86396e83718d5211cd71912fdf40dea2f', role: "heading", "aria-level": "2", class: createColorClasses$1(this.color, {
8393
8396
  'ion-inherit-color': true,
8394
8397
  [mode]: true,
8395
- }) }, hAsync("slot", { key: 'effb921de4ad8dfbbe318b3f692f4005812da7b1' })));
8398
+ }) }, hAsync("slot", { key: '2ba416aed488b2ff462fa75fb3b70373a6dd7da6' })));
8396
8399
  }
8397
8400
  static get style() { return {
8398
8401
  ios: IonCardTitleIosStyle0,
@@ -8477,7 +8480,8 @@ class Checkbox {
8477
8480
  componentWillLoad() {
8478
8481
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
8479
8482
  }
8480
- setFocus() {
8483
+ /** @internal */
8484
+ async setFocus() {
8481
8485
  if (this.focusEl) {
8482
8486
  this.focusEl.focus();
8483
8487
  }
@@ -8487,7 +8491,7 @@ class Checkbox {
8487
8491
  const mode = getIonMode$1(this);
8488
8492
  const path = getSVGPath(mode, indeterminate);
8489
8493
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8490
- return (hAsync(Host, { key: 'd7a07fbf130413eaa4622c07786e8a00723113eb', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8494
+ return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8491
8495
  [mode]: true,
8492
8496
  'in-item': hostContext('ion-item', el),
8493
8497
  'checkbox-checked': checked,
@@ -8497,10 +8501,10 @@ class Checkbox {
8497
8501
  [`checkbox-justify-${justify}`]: justify !== undefined,
8498
8502
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8499
8503
  [`checkbox-label-placement-${labelPlacement}`]: true,
8500
- }), 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: {
8504
+ }), 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: {
8501
8505
  'label-text-wrapper': true,
8502
8506
  'label-text-wrapper-hidden': el.textContent === '',
8503
- }, 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)))));
8507
+ }, 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)))));
8504
8508
  }
8505
8509
  getSVGPath(mode, indeterminate) {
8506
8510
  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" }));
@@ -8526,7 +8530,8 @@ class Checkbox {
8526
8530
  "value": [8],
8527
8531
  "labelPlacement": [1, "label-placement"],
8528
8532
  "justify": [1],
8529
- "alignment": [1]
8533
+ "alignment": [1],
8534
+ "setFocus": [64]
8530
8535
  },
8531
8536
  "$listeners$": undefined,
8532
8537
  "$lazyBundleId$": "-",
@@ -8553,12 +8558,12 @@ class Chip {
8553
8558
  }
8554
8559
  render() {
8555
8560
  const mode = getIonMode$1(this);
8556
- return (hAsync(Host, { key: '7dd923c1b28d1eb1efa348f66f49cec067645af9', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
8561
+ return (hAsync(Host, { key: 'fa2e9a4837ef87a17ef10f388e8caa7f604d9145', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
8557
8562
  [mode]: true,
8558
8563
  'chip-outline': this.outline,
8559
8564
  'chip-disabled': this.disabled,
8560
8565
  'ion-activatable': true,
8561
- }) }, hAsync("slot", { key: '7ede838bf109dc27a898ee2dcdeabc3f439c8e6f' }), mode === 'md' && hAsync("ion-ripple-effect", { key: '5acb073029544e73fcc0db4cc4e661ec1df4d231' })));
8566
+ }) }, hAsync("slot", { key: '3793fbd9d915cef7241fb101e2bc64c08b9ba482' }), mode === 'md' && hAsync("ion-ripple-effect", { key: 'd3b95b53918611dec095a50f2aaaab65617947a4' })));
8562
8567
  }
8563
8568
  static get style() { return {
8564
8569
  ios: IonChipIosStyle0,
@@ -8709,9 +8714,9 @@ class Col {
8709
8714
  render() {
8710
8715
  const isRTL = document.dir === 'rtl';
8711
8716
  const mode = getIonMode$1(this);
8712
- return (hAsync(Host, { key: 'c37fa4c4c993385ccbb6f4e89b2f390b140507a0', class: {
8717
+ return (hAsync(Host, { key: '32ed75d81dd09d9bc8999f6d42e5b3cb99c84d91', class: {
8713
8718
  [mode]: true,
8714
- }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, hAsync("slot", { key: '6a5296ff0b9dee6600c2dafe7363a065d053bac2' })));
8719
+ }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, hAsync("slot", { key: '38f8d0440c20cc6d1b1d6a654d07f16de61d8134' })));
8715
8720
  }
8716
8721
  static get style() { return IonColStyle0; }
8717
8722
  static get cmpMeta() { return {
@@ -9085,7 +9090,7 @@ class Content {
9085
9090
  const forceOverscroll = this.shouldForceOverscroll();
9086
9091
  const transitionShadow = mode === 'ios';
9087
9092
  this.resize();
9088
- return (hAsync(Host, Object.assign({ key: '92a7cbc2e9c812930f4231bd846411933a5dded6', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
9093
+ return (hAsync(Host, Object.assign({ key: 'f2a24aa66dbf5c76f9d4b06f708eb73cadc239df', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
9089
9094
  [mode]: true,
9090
9095
  'content-sizing': hostContext('ion-popover', this.el),
9091
9096
  overscroll: forceOverscroll,
@@ -9093,12 +9098,12 @@ class Content {
9093
9098
  }), style: {
9094
9099
  '--offset-top': `${this.cTop}px`,
9095
9100
  '--offset-bottom': `${this.cBottom}px`,
9096
- } }, 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: {
9101
+ } }, 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: {
9097
9102
  'inner-scroll': true,
9098
9103
  'scroll-x': scrollX,
9099
9104
  'scroll-y': scrollY,
9100
9105
  overscroll: (scrollX || scrollY) && forceOverscroll,
9101
- }, 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));
9106
+ }, 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));
9102
9107
  }
9103
9108
  get el() { return getElement(this); }
9104
9109
  static get style() { return IonContentStyle0; }
@@ -12619,7 +12624,7 @@ class Datetime {
12619
12624
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
12620
12625
  const hasWheelVariant = hasDatePresentation && preferWheel;
12621
12626
  renderHiddenInput(true, el, name, formatValue(value), disabled);
12622
- return (hAsync(Host, { key: '2933ce5caaeb21a633b1ec4d936e86b0f0890807', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12627
+ return (hAsync(Host, { key: '7afbb1a7e6c78389b4588999779e5c90e010e85d', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
12623
12628
  [mode]: true,
12624
12629
  ['datetime-readonly']: readonly,
12625
12630
  ['datetime-disabled']: disabled,
@@ -12629,7 +12634,7 @@ class Datetime {
12629
12634
  [`datetime-size-${size}`]: true,
12630
12635
  [`datetime-prefer-wheel`]: hasWheelVariant,
12631
12636
  [`datetime-grid`]: isGridStyle,
12632
- })) }, hAsync("div", { key: '0efc9ef0aa1a29234412b2eddf5d7ff899b7543f', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12637
+ })) }, hAsync("div", { key: '297c458d4d17154cb297e2ef5926505bcb2d1fce', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
12633
12638
  }
12634
12639
  get el() { return getElement(this); }
12635
12640
  static get watchers() { return {
@@ -13037,11 +13042,11 @@ class DatetimeButton {
13037
13042
  render() {
13038
13043
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
13039
13044
  const mode = getIonMode$1(this);
13040
- return (hAsync(Host, { key: '0be955404133adbb31ae16a6599014bb29765f19', class: createColorClasses$1(color, {
13045
+ return (hAsync(Host, { key: '26e606af6f067a5774db37ed41387ffebb941777', class: createColorClasses$1(color, {
13041
13046
  [mode]: true,
13042
13047
  [`${selectedButton}-active`]: datetimeActive,
13043
13048
  ['datetime-button-disabled']: disabled,
13044
- }) }, 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' })))));
13049
+ }) }, 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' })))));
13045
13050
  }
13046
13051
  get el() { return getElement(this); }
13047
13052
  static get style() { return {
@@ -13115,12 +13120,12 @@ class Fab {
13115
13120
  render() {
13116
13121
  const { horizontal, vertical, edge } = this;
13117
13122
  const mode = getIonMode$1(this);
13118
- return (hAsync(Host, { key: 'cb44cf6486b0a6439b99da87c065b0b52e2514f4', class: {
13123
+ return (hAsync(Host, { key: '8a310806d0e748d7ebb0ed3d9a2652038e0f2960', class: {
13119
13124
  [mode]: true,
13120
13125
  [`fab-horizontal-${horizontal}`]: horizontal !== undefined,
13121
13126
  [`fab-vertical-${vertical}`]: vertical !== undefined,
13122
13127
  'fab-edge': edge,
13123
- } }, hAsync("slot", { key: '1ed484c7ecb10cd81fbca9a4f5c4049bf82f9f8a' })));
13128
+ } }, hAsync("slot", { key: '9394ef6d6e5b0410fa6ba212171f687fb178ce2d' })));
13124
13129
  }
13125
13130
  get el() { return getElement(this); }
13126
13131
  static get watchers() { return {
@@ -13210,7 +13215,7 @@ class FabButton {
13210
13215
  rel: this.rel,
13211
13216
  target: this.target,
13212
13217
  };
13213
- return (hAsync(Host, { key: 'eb347f7d6749c40637540d84778eb8d1b667a947', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13218
+ return (hAsync(Host, { key: '4eee204d20b0e2ffed49a88f6cb3e04b6697965c', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13214
13219
  [mode]: true,
13215
13220
  'fab-button-in-list': inList,
13216
13221
  'fab-button-translucent-in-list': inList && translucent,
@@ -13221,7 +13226,7 @@ class FabButton {
13221
13226
  'ion-activatable': true,
13222
13227
  'ion-focusable': true,
13223
13228
  [`fab-button-${size}`]: size !== undefined,
13224
- }) }, 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' }))));
13229
+ }) }, 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' }))));
13225
13230
  }
13226
13231
  get el() { return getElement(this); }
13227
13232
  static get style() { return {
@@ -13272,11 +13277,11 @@ class FabList {
13272
13277
  }
13273
13278
  render() {
13274
13279
  const mode = getIonMode$1(this);
13275
- return (hAsync(Host, { key: 'fa1d195b9950654ba0e984bf61d981c977d05275', class: {
13280
+ return (hAsync(Host, { key: '64b33366447f66c7f979cfac56307fbb1a6fac1c', class: {
13276
13281
  [mode]: true,
13277
13282
  'fab-list-active': this.activated,
13278
13283
  [`fab-list-side-${this.side}`]: true,
13279
- } }, hAsync("slot", { key: '2ec738c66c05112e1e2521155d6adfc36d2fd1db' })));
13284
+ } }, hAsync("slot", { key: 'd9f474f7f20fd7e813db358fddc720534ca05bb6' })));
13280
13285
  }
13281
13286
  get el() { return getElement(this); }
13282
13287
  static get watchers() { return {
@@ -13728,7 +13733,7 @@ class Footer {
13728
13733
  const mode = getIonMode$1(this);
13729
13734
  const tabs = this.el.closest('ion-tabs');
13730
13735
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
13731
- return (hAsync(Host, { key: '5da19dc38ba73e1ddfd1bef3ebd485105d77c751', role: "contentinfo", class: {
13736
+ return (hAsync(Host, { key: 'ddc228f1a1e7fa4f707dccf74db2490ca3241137', role: "contentinfo", class: {
13732
13737
  [mode]: true,
13733
13738
  // Used internally for styling
13734
13739
  [`footer-${mode}`]: true,
@@ -13736,7 +13741,7 @@ class Footer {
13736
13741
  [`footer-translucent-${mode}`]: translucent,
13737
13742
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
13738
13743
  [`footer-collapse-${collapse}`]: collapse !== undefined,
13739
- } }, mode === 'ios' && translucent && hAsync("div", { key: 'fafad08090a33d8c4e8a5b63d61929dcb89aab47', class: "footer-background" }), hAsync("slot", { key: 'e0a443d346afa55e4317c0bc1263fdbe3c619559' })));
13744
+ } }, mode === 'ios' && translucent && hAsync("div", { key: 'e16ed4963ff94e06de77eb8038201820af73937c', class: "footer-background" }), hAsync("slot", { key: 'f186934febf85d37133d9351a96c1a64b0a4b203' })));
13740
13745
  }
13741
13746
  get el() { return getElement(this); }
13742
13747
  static get style() { return {
@@ -13767,10 +13772,10 @@ class Grid {
13767
13772
  }
13768
13773
  render() {
13769
13774
  const mode = getIonMode$1(this);
13770
- return (hAsync(Host, { key: '930ce78b02f8360fbca08a35d364d2c09128c6c8', class: {
13775
+ return (hAsync(Host, { key: '617127ecfabf9bf615bef1dda1be3fed5a065949', class: {
13771
13776
  [mode]: true,
13772
13777
  'grid-fixed': this.fixed,
13773
- } }, hAsync("slot", { key: 'c47bf7ef2197f5ebc42d3e2c55044276fb0db393' })));
13778
+ } }, hAsync("slot", { key: 'c781fff853b093d8f44bdb7943bbc4f17c903803' })));
13774
13779
  }
13775
13780
  static get style() { return IonGridStyle0; }
13776
13781
  static get cmpMeta() { return {
@@ -14101,14 +14106,14 @@ class Header {
14101
14106
  const collapse = this.collapse || 'none';
14102
14107
  // banner role must be at top level, so remove role if inside a menu
14103
14108
  const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
14104
- return (hAsync(Host, Object.assign({ key: 'c687314ef290793a9d633ad20cfc5eeb47621e31', role: roleType, class: {
14109
+ return (hAsync(Host, Object.assign({ key: 'b6cc27f0b08afc9fcc889683525da765d80ba672', role: roleType, class: {
14105
14110
  [mode]: true,
14106
14111
  // Used internally for styling
14107
14112
  [`header-${mode}`]: true,
14108
14113
  [`header-translucent`]: this.translucent,
14109
14114
  [`header-collapse-${collapse}`]: true,
14110
14115
  [`header-translucent-${mode}`]: this.translucent,
14111
- } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: 'b429996046082405a91e7c23f95516db0b736f12', class: "header-background" }), hAsync("slot", { key: 'e17a8965f8d3a33c1bfcb056c153d8242e5229fa' })));
14116
+ } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: '395766d4dcee3398bc91960db21f922095292f14', class: "header-background" }), hAsync("slot", { key: '09a67ece27b258ff1248805d43d92a49b2c6859a' })));
14112
14117
  }
14113
14118
  get el() { return getElement(this); }
14114
14119
  static get style() { return {
@@ -14387,7 +14392,7 @@ class Img {
14387
14392
  render() {
14388
14393
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
14389
14394
  const { draggable } = inheritedAttributes;
14390
- 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) })));
14395
+ 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) })));
14391
14396
  }
14392
14397
  get el() { return getElement(this); }
14393
14398
  static get watchers() { return {
@@ -14594,7 +14599,7 @@ class InfiniteScroll {
14594
14599
  render() {
14595
14600
  const mode = getIonMode$1(this);
14596
14601
  const disabled = this.disabled;
14597
- return (hAsync(Host, { key: '1444429a86950c449953cbf578436cc8cabf40ec', class: {
14602
+ return (hAsync(Host, { key: 'e844956795f69be33396ce4480aa7a54ad01b28c', class: {
14598
14603
  [mode]: true,
14599
14604
  'infinite-scroll-loading': this.isLoading,
14600
14605
  'infinite-scroll-enabled': !disabled,
@@ -14650,11 +14655,11 @@ class InfiniteScrollContent {
14650
14655
  }
14651
14656
  render() {
14652
14657
  const mode = getIonMode$1(this);
14653
- return (hAsync(Host, { key: '060278bf9cb0321e182352f9613be4ebbb028259', class: {
14658
+ return (hAsync(Host, { key: '7c16060dcfe2a0b0fb3e2f8f4c449589a76f1baa', class: {
14654
14659
  [mode]: true,
14655
14660
  // Used internally for styling
14656
14661
  [`infinite-scroll-content-${mode}`]: true,
14657
- } }, 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())));
14662
+ } }, 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())));
14658
14663
  }
14659
14664
  static get style() { return {
14660
14665
  ios: IonInfiniteScrollContentIosStyle0,
@@ -15401,7 +15406,7 @@ class Input {
15401
15406
  * TODO(FW-5592): Remove hasStartEndSlots condition
15402
15407
  */
15403
15408
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
15404
- return (hAsync(Host, { key: 'cdde9963d71685e6a4f3f3b3bc52e75d022435cb', class: createColorClasses$1(this.color, {
15409
+ return (hAsync(Host, { key: '54b5662d9a7f011a85e4119650c92b9af275bf96', class: createColorClasses$1(this.color, {
15405
15410
  [mode]: true,
15406
15411
  'has-value': hasValue,
15407
15412
  'has-focus': hasFocus,
@@ -15412,7 +15417,7 @@ class Input {
15412
15417
  'in-item': inItem,
15413
15418
  'in-item-color': hostContext('ion-item.ion-color', this.el),
15414
15419
  'input-disabled': disabled,
15415
- }) }, 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) => {
15420
+ }) }, 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) => {
15416
15421
  /**
15417
15422
  * This prevents mobile browsers from
15418
15423
  * blurring the input when the clear
@@ -15427,7 +15432,7 @@ class Input {
15427
15432
  * for screen readers as it means users would be unable to swipe past the clear button.
15428
15433
  */
15429
15434
  ev.stopPropagation();
15430
- }, 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()));
15435
+ }, 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()));
15431
15436
  }
15432
15437
  get el() { return getElement(this); }
15433
15438
  static get watchers() { return {
@@ -15549,16 +15554,16 @@ class InputPasswordToggle {
15549
15554
  const showPasswordIcon = (_a = this.showIcon) !== null && _a !== void 0 ? _a : eye;
15550
15555
  const hidePasswordIcon = (_b = this.hideIcon) !== null && _b !== void 0 ? _b : eyeOff;
15551
15556
  const isPasswordVisible = type === 'text';
15552
- return (hAsync(Host, { key: 'ed1c29726ce0c91548f0e2ada61e3f8b5c813d2d', class: createColorClasses$1(color, {
15557
+ return (hAsync(Host, { key: 'd9811e25bfeb2aa197352bb9be852e9e420739d5', class: createColorClasses$1(color, {
15553
15558
  [mode]: true,
15554
- }) }, 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) => {
15559
+ }) }, 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) => {
15555
15560
  /**
15556
15561
  * This prevents mobile browsers from
15557
15562
  * blurring the input when the password toggle
15558
15563
  * button is activated.
15559
15564
  */
15560
15565
  ev.preventDefault();
15561
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '1f2119c30b56c800d9af44e6499445a0ebb466cf', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15566
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '9c88de8f4631d9bde222ce2edf6950d639e04773', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
15562
15567
  }
15563
15568
  get el() { return getElement(this); }
15564
15569
  static get watchers() { return {
@@ -15854,11 +15859,11 @@ class ItemDivider {
15854
15859
  }
15855
15860
  render() {
15856
15861
  const mode = getIonMode$1(this);
15857
- return (hAsync(Host, { key: '60fda1dab7dbc0038ec7ff68a661896430f7d5c5', class: createColorClasses$1(this.color, {
15862
+ return (hAsync(Host, { key: '6cff318230a9b2a9db529df154285d3dd9822efe', class: createColorClasses$1(this.color, {
15858
15863
  [mode]: true,
15859
15864
  'item-divider-sticky': this.sticky,
15860
15865
  item: true,
15861
- }) }, 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" }))));
15866
+ }) }, 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" }))));
15862
15867
  }
15863
15868
  get el() { return getElement(this); }
15864
15869
  static get style() { return {
@@ -15890,7 +15895,7 @@ class ItemGroup {
15890
15895
  }
15891
15896
  render() {
15892
15897
  const mode = getIonMode$1(this);
15893
- return (hAsync(Host, { key: '24ff047b7c45f963f0dad072c65d38a230c2bc97', role: "group", class: {
15898
+ return (hAsync(Host, { key: 'f9ffe0290d3fa546494fe55f952d8554f2a8abf8', role: "group", class: {
15894
15899
  [mode]: true,
15895
15900
  // Used internally for styling
15896
15901
  [`item-group-${mode}`]: true,
@@ -15958,12 +15963,12 @@ class ItemOption {
15958
15963
  href: this.href,
15959
15964
  target: this.target,
15960
15965
  };
15961
- return (hAsync(Host, { key: '1900e015f593fefd710478a2088e052399c957eb', onClick: this.onClick, class: createColorClasses$1(this.color, {
15966
+ return (hAsync(Host, { key: '89310624997821858c1abde60c0ffb142ca466e0', onClick: this.onClick, class: createColorClasses$1(this.color, {
15962
15967
  [mode]: true,
15963
15968
  'item-option-disabled': disabled,
15964
15969
  'item-option-expandable': expandable,
15965
15970
  'ion-activatable': true,
15966
- }) }, 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' }))));
15971
+ }) }, 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' }))));
15967
15972
  }
15968
15973
  get el() { return getElement(this); }
15969
15974
  static get style() { return {
@@ -16010,7 +16015,7 @@ class ItemOptions {
16010
16015
  render() {
16011
16016
  const mode = getIonMode$1(this);
16012
16017
  const isEnd = isEndSide(this.side);
16013
- return (hAsync(Host, { key: 'e28cd6a236323b5cc203c9b96782aa81024da924', class: {
16018
+ return (hAsync(Host, { key: '6d91399d2aaaa81d514d0bbc8dffe53eeec25d36', class: {
16014
16019
  [mode]: true,
16015
16020
  // Used internally for styling
16016
16021
  [`item-options-${mode}`]: true,
@@ -16472,7 +16477,7 @@ class ItemSliding {
16472
16477
  }
16473
16478
  render() {
16474
16479
  const mode = getIonMode$1(this);
16475
- return (hAsync(Host, { key: '99f87c8bd794ae69830b407ba55013ac44793c26', class: {
16480
+ return (hAsync(Host, { key: '47a3edd2ef2080ed9cfc2784277dea09785c7dc4', class: {
16476
16481
  [mode]: true,
16477
16482
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
16478
16483
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -16581,13 +16586,13 @@ class Label {
16581
16586
  render() {
16582
16587
  const position = this.position;
16583
16588
  const mode = getIonMode$1(this);
16584
- return (hAsync(Host, { key: 'c2c0f388dab910d294efb9fbb409ee4ef829c1ed', class: createColorClasses$1(this.color, {
16589
+ return (hAsync(Host, { key: '6353a70565ef6fbbbf4042b000e536c61bcf99a9', class: createColorClasses$1(this.color, {
16585
16590
  [mode]: true,
16586
16591
  'in-item-color': hostContext('ion-item.ion-color', this.el),
16587
16592
  [`label-${position}`]: position !== undefined,
16588
16593
  [`label-no-animate`]: this.noAnimate,
16589
16594
  'label-rtl': document.dir === 'rtl',
16590
- }) }, hAsync("slot", { key: '4de6b69950f417873a13c851018ec31ea2686f0a' })));
16595
+ }) }, hAsync("slot", { key: '6ef9c2758c0168442aa84941af0a6cec1ef1ec21' })));
16591
16596
  }
16592
16597
  get el() { return getElement(this); }
16593
16598
  static get watchers() { return {
@@ -16643,7 +16648,7 @@ class List {
16643
16648
  render() {
16644
16649
  const mode = getIonMode$1(this);
16645
16650
  const { lines, inset } = this;
16646
- return (hAsync(Host, { key: '8bde220025a7eeca6da075379c6487c4c9bdddc1', role: "list", class: {
16651
+ return (hAsync(Host, { key: '5ff2b0b3989cc99ce17abb8bcd7ec1847940d1ec', role: "list", class: {
16647
16652
  [mode]: true,
16648
16653
  // Used internally for styling
16649
16654
  [`list-${mode}`]: true,
@@ -16689,10 +16694,10 @@ class ListHeader {
16689
16694
  render() {
16690
16695
  const { lines } = this;
16691
16696
  const mode = getIonMode$1(this);
16692
- return (hAsync(Host, { key: '7e2e050f13722f2b870a2415d99a9e631e9ca267', class: createColorClasses$1(this.color, {
16697
+ return (hAsync(Host, { key: 'fb78bd8601cbd7b90ec84a96e0c8325be1132b1e', class: createColorClasses$1(this.color, {
16693
16698
  [mode]: true,
16694
16699
  [`list-header-lines-${lines}`]: lines !== undefined,
16695
- }) }, hAsync("div", { key: '6117bebc45800d874e9b75355476fbced5cc8398', class: "list-header-inner" }, hAsync("slot", { key: '9165fb274cd2c45a5a65c271d8b1f30e8a00c890' }))));
16700
+ }) }, hAsync("div", { key: '2580ad49f3a54973e15f14d645a1e55a6fa066ac', class: "list-header-inner" }, hAsync("slot", { key: '677b2e2ec8eeb3ae6ad329e86c76451cf3ae6c2f' }))));
16696
16701
  }
16697
16702
  static get style() { return {
16698
16703
  ios: IonListHeaderIosStyle0,
@@ -16961,9 +16966,9 @@ class Loading {
16961
16966
  * Otherwise, don't set aria-labelledby.
16962
16967
  */
16963
16968
  const ariaLabelledBy = message !== undefined ? msgId : null;
16964
- return (hAsync(Host, Object.assign({ key: 'fb3d2cd7cd0539ed6540d8be50e243c7916b3ca2', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
16969
+ return (hAsync(Host, Object.assign({ key: 'd97f536b7f443ea19a2bbf2dcbc7f546b8e0a092', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
16965
16970
  zIndex: `${40000 + this.overlayIndex}`,
16966
- }, 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" })));
16971
+ }, 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" })));
16967
16972
  }
16968
16973
  get el() { return getElement(this); }
16969
16974
  static get watchers() { return {
@@ -17315,7 +17320,7 @@ const createMenuController = () => {
17315
17320
  menus.splice(index, 1);
17316
17321
  }
17317
17322
  };
17318
- const _setOpen = async (menu, shouldOpen, animated) => {
17323
+ const _setOpen = async (menu, shouldOpen, animated, role) => {
17319
17324
  if (isAnimatingSync()) {
17320
17325
  return false;
17321
17326
  }
@@ -17325,7 +17330,7 @@ const createMenuController = () => {
17325
17330
  await openedMenu.setOpen(false, false);
17326
17331
  }
17327
17332
  }
17328
- return menu._setOpen(shouldOpen, animated);
17333
+ return menu._setOpen(shouldOpen, animated, role);
17329
17334
  };
17330
17335
  const _createAnimation = (type, menuCmp) => {
17331
17336
  const animationBuilder = menuAnimations.get(type); // TODO(FW-2832): type
@@ -17559,13 +17564,13 @@ class Menu {
17559
17564
  if (shouldClose) {
17560
17565
  ev.preventDefault();
17561
17566
  ev.stopPropagation();
17562
- this.close();
17567
+ this.close(undefined, BACKDROP);
17563
17568
  }
17564
17569
  }
17565
17570
  }
17566
17571
  onKeydown(ev) {
17567
17572
  if (ev.key === 'Escape') {
17568
- this.close();
17573
+ this.close(undefined, BACKDROP);
17569
17574
  }
17570
17575
  }
17571
17576
  /**
@@ -17594,8 +17599,8 @@ class Menu {
17594
17599
  * Closes the menu. If the menu is already closed or it can't be closed,
17595
17600
  * it returns `false`.
17596
17601
  */
17597
- close(animated = true) {
17598
- return this.setOpen(false, animated);
17602
+ close(animated = true, role) {
17603
+ return this.setOpen(false, animated, role);
17599
17604
  }
17600
17605
  /**
17601
17606
  * Toggles the menu. If the menu is already open, it will try to close, otherwise it will try to open it.
@@ -17608,8 +17613,8 @@ class Menu {
17608
17613
  * Opens or closes the button.
17609
17614
  * If the operation can't be completed successfully, it returns `false`.
17610
17615
  */
17611
- setOpen(shouldOpen, animated = true) {
17612
- return menuController._setOpen(this, shouldOpen, animated);
17616
+ setOpen(shouldOpen, animated = true, role) {
17617
+ return menuController._setOpen(this, shouldOpen, animated, role);
17613
17618
  }
17614
17619
  trapKeyboardFocus(ev, doc) {
17615
17620
  const target = ev.target;
@@ -17647,12 +17652,12 @@ class Menu {
17647
17652
  }
17648
17653
  }
17649
17654
  }
17650
- async _setOpen(shouldOpen, animated = true) {
17655
+ async _setOpen(shouldOpen, animated = true, role) {
17651
17656
  // If the menu is disabled or it is currently being animated, let's do nothing
17652
17657
  if (!this._isActive() || this.isAnimating || shouldOpen === this._isOpen) {
17653
17658
  return false;
17654
17659
  }
17655
- this.beforeAnimation(shouldOpen);
17660
+ this.beforeAnimation(shouldOpen, role);
17656
17661
  await this.loadAnimation();
17657
17662
  await this.startAnimation(shouldOpen, animated);
17658
17663
  /**
@@ -17664,7 +17669,7 @@ class Menu {
17664
17669
  this.operationCancelled = false;
17665
17670
  return false;
17666
17671
  }
17667
- this.afterAnimation(shouldOpen);
17672
+ this.afterAnimation(shouldOpen, role);
17668
17673
  return true;
17669
17674
  }
17670
17675
  async loadAnimation() {
@@ -17739,7 +17744,7 @@ class Menu {
17739
17744
  return checkEdgeSide(window, detail.currentX, this.isEndSide, this.maxEdgeStart);
17740
17745
  }
17741
17746
  onWillStart() {
17742
- this.beforeAnimation(!this._isOpen);
17747
+ this.beforeAnimation(!this._isOpen, GESTURE);
17743
17748
  return this.loadAnimation();
17744
17749
  }
17745
17750
  onStart() {
@@ -17806,10 +17811,10 @@ class Menu {
17806
17811
  const playTo = this._isOpen ? !shouldComplete : shouldComplete;
17807
17812
  this.animation
17808
17813
  .easing('cubic-bezier(0.4, 0.0, 0.6, 1)')
17809
- .onFinish(() => this.afterAnimation(shouldOpen), { oneTimeCallback: true })
17814
+ .onFinish(() => this.afterAnimation(shouldOpen, GESTURE), { oneTimeCallback: true })
17810
17815
  .progressEnd(playTo ? 1 : 0, this._isOpen ? 1 - newStepValue : newStepValue, 300);
17811
17816
  }
17812
- beforeAnimation(shouldOpen) {
17817
+ beforeAnimation(shouldOpen, role) {
17813
17818
  assert(!this.isAnimating, '_before() should not be called while animating');
17814
17819
  // this places the menu into the correct location before it animates in
17815
17820
  // this css class doesn't actually kick off any animations
@@ -17848,10 +17853,10 @@ class Menu {
17848
17853
  this.ionWillOpen.emit();
17849
17854
  }
17850
17855
  else {
17851
- this.ionWillClose.emit();
17856
+ this.ionWillClose.emit({ role });
17852
17857
  }
17853
17858
  }
17854
- afterAnimation(isOpen) {
17859
+ afterAnimation(isOpen, role) {
17855
17860
  var _a;
17856
17861
  // keep opening/closing the menu disabled for a touch more yet
17857
17862
  // only add listeners/css if it's enabled and isOpen
@@ -17901,7 +17906,7 @@ class Menu {
17901
17906
  this.animation.stop();
17902
17907
  }
17903
17908
  // emit close event
17904
- this.ionDidClose.emit();
17909
+ this.ionDidClose.emit({ role });
17905
17910
  // undo focus trapping so multiple menus don't collide
17906
17911
  document.removeEventListener('focus', this.handleFocus, true);
17907
17912
  }
@@ -17933,7 +17938,7 @@ class Menu {
17933
17938
  * If the menu is disabled then we should
17934
17939
  * forcibly close the menu even if it is open.
17935
17940
  */
17936
- this.afterAnimation(false);
17941
+ this.afterAnimation(false, GESTURE);
17937
17942
  }
17938
17943
  }
17939
17944
  render() {
@@ -17944,14 +17949,14 @@ class Menu {
17944
17949
  * the ionBackButton listener in the menu controller
17945
17950
  * will handle closing the menu when Escape is pressed.
17946
17951
  */
17947
- return (hAsync(Host, { key: '30c0c9bfb8973e4a6feb658f8c4ee8e362f464ed', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
17952
+ return (hAsync(Host, { key: '5aaea91873d0885b97304372223b2a6ed16ca28b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
17948
17953
  [mode]: true,
17949
17954
  [`menu-type-${type}`]: true,
17950
17955
  'menu-enabled': !disabled,
17951
17956
  [`menu-side-${side}`]: true,
17952
17957
  'menu-pane-visible': isPaneVisible,
17953
17958
  'split-pane-side': hostContext('ion-split-pane', el),
17954
- } }, 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" })));
17959
+ } }, 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" })));
17955
17960
  }
17956
17961
  get el() { return getElement(this); }
17957
17962
  static get watchers() { return {
@@ -18054,7 +18059,7 @@ class MenuButton {
18054
18059
  type: this.type,
18055
18060
  };
18056
18061
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
18057
- return (hAsync(Host, { key: '95a8b9f09c7fae9713a8dc003ed277f6f31403da', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18062
+ return (hAsync(Host, { key: '7ec29715ce7926b7c2b08f3d9cac8aaa16b3dc28', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18058
18063
  [mode]: true,
18059
18064
  button: true, // ion-buttons target .button
18060
18065
  'menu-button-hidden': hidden,
@@ -18063,7 +18068,7 @@ class MenuButton {
18063
18068
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
18064
18069
  'ion-activatable': true,
18065
18070
  'ion-focusable': true,
18066
- }) }, 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" }))));
18071
+ }) }, 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" }))));
18067
18072
  }
18068
18073
  get el() { return getElement(this); }
18069
18074
  static get style() { return {
@@ -18112,10 +18117,10 @@ class MenuToggle {
18112
18117
  render() {
18113
18118
  const mode = getIonMode$1(this);
18114
18119
  const hidden = this.autoHide && !this.visible;
18115
- return (hAsync(Host, { key: '90e621f09792383f1badcc1b402b1ac7d08c5f98', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18120
+ return (hAsync(Host, { key: '7c27ea5b0795676bf5cb33e1f83aa142c197f64e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18116
18121
  [mode]: true,
18117
18122
  'menu-toggle-hidden': hidden,
18118
- } }, hAsync("slot", { key: 'c0abdd1d91e9d80ee3704e3e374ebe1f29078460' })));
18123
+ } }, hAsync("slot", { key: '69f187becedc0fe34603d41d279f043cf0fdf776' })));
18119
18124
  }
18120
18125
  static get style() { return IonMenuToggleStyle0; }
18121
18126
  static get cmpMeta() { return {
@@ -20119,18 +20124,18 @@ class Modal {
20119
20124
  const mode = getIonMode$1(this);
20120
20125
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20121
20126
  const isHandleCycle = handleBehavior === 'cycle';
20122
- return (hAsync(Host, Object.assign({ key: '013ba4864ca4d2c1052c512f6a4b0732b8decff7', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20127
+ return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20123
20128
  zIndex: `${20000 + this.overlayIndex}`,
20124
- }, 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',
20129
+ }, 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',
20125
20130
  /*
20126
20131
  role and aria-modal must be used on the
20127
20132
  same element. They must also be set inside the
20128
20133
  shadow DOM otherwise ion-button will not be highlighted
20129
20134
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20130
20135
  */
20131
- 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",
20136
+ 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",
20132
20137
  // Prevents the handle from receiving keyboard focus when it does not cycle
20133
- 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' }))));
20138
+ 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' }))));
20134
20139
  }
20135
20140
  get el() { return getElement(this); }
20136
20141
  static get watchers() { return {
@@ -21079,7 +21084,7 @@ class Nav {
21079
21084
  }
21080
21085
  }
21081
21086
  render() {
21082
- return hAsync("slot", { key: 'e9d99a8a0b84f02f9964d8143cd5e647e43334f9' });
21087
+ return hAsync("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
21083
21088
  }
21084
21089
  get el() { return getElement(this); }
21085
21090
  static get watchers() { return {
@@ -21152,7 +21157,7 @@ class NavLink {
21152
21157
  this.routerAnimation = undefined;
21153
21158
  }
21154
21159
  render() {
21155
- return hAsync(Host, { key: '42c23dcdec5fdb25defebaf6e8a9fa75754ff8eb', onClick: this.onClick });
21160
+ return hAsync(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
21156
21161
  }
21157
21162
  get el() { return getElement(this); }
21158
21163
  static get cmpMeta() { return {
@@ -21186,9 +21191,9 @@ class Note {
21186
21191
  }
21187
21192
  render() {
21188
21193
  const mode = getIonMode$1(this);
21189
- return (hAsync(Host, { key: '90ec2fe8c9487608ed8c0bdc32c2e80a6a0890b3', class: createColorClasses$1(this.color, {
21194
+ return (hAsync(Host, { key: '10a3495bc21166176986441479f8f7539029d161', class: createColorClasses$1(this.color, {
21190
21195
  [mode]: true,
21191
- }) }, hAsync("slot", { key: '115ee3f79e6c526b0644443aad468e99385d0eda' })));
21196
+ }) }, hAsync("slot", { key: 'b6a9459e1b85f608fafd060a4bfeb11637ebe873' })));
21192
21197
  }
21193
21198
  static get style() { return {
21194
21199
  ios: IonNoteIosStyle0,
@@ -21685,7 +21690,7 @@ class Picker$1 {
21685
21690
  this.emitInputModeChange();
21686
21691
  }
21687
21692
  render() {
21688
- 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) => {
21693
+ 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) => {
21689
21694
  var _a;
21690
21695
  /**
21691
21696
  * The "Enter" key represents
@@ -21700,7 +21705,7 @@ class Picker$1 {
21700
21705
  if (ev.key === 'Enter') {
21701
21706
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
21702
21707
  }
21703
- }, 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' })));
21708
+ }, 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' })));
21704
21709
  }
21705
21710
  get el() { return getElement(this); }
21706
21711
  static get style() { return {
@@ -21953,11 +21958,11 @@ class Picker {
21953
21958
  render() {
21954
21959
  const { htmlAttributes } = this;
21955
21960
  const mode = getIonMode$1(this);
21956
- return (hAsync(Host, Object.assign({ key: '3b163ca87354a3a4f302ff016d5affd0dc97bccc', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
21961
+ return (hAsync(Host, Object.assign({ key: '0712fa8732141848e50ad2e08e2ba66ef2a48991', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
21957
21962
  zIndex: `${20000 + this.overlayIndex}`,
21958
21963
  }, class: Object.assign({ [mode]: true,
21959
21964
  // Used internally for styling
21960
- [`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" })));
21965
+ [`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" })));
21961
21966
  }
21962
21967
  get el() { return getElement(this); }
21963
21968
  static get watchers() { return {
@@ -22539,12 +22544,12 @@ class PickerColumn {
22539
22544
  render() {
22540
22545
  const { color, disabled, isActive, numericInput } = this;
22541
22546
  const mode = getIonMode$1(this);
22542
- return (hAsync(Host, { key: 'd60736ce74c0e8c774a163272b78fbad32993ec2', class: createColorClasses$1(color, {
22547
+ return (hAsync(Host, { key: 'a221dc10f1eb7c41637a16d2c7167c16939822fd', class: createColorClasses$1(color, {
22543
22548
  [mode]: true,
22544
22549
  ['picker-column-active']: isActive,
22545
22550
  ['picker-column-numeric-input']: numericInput,
22546
22551
  ['picker-column-disabled']: disabled,
22547
- }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '74611112ef154b343ae29a773f8cd8a01cc1447d', name: "prefix" }), hAsync("div", { key: 'af772d2b61b7eb41a567593d290b80a50b7caa72', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
22552
+ }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '81b0656f606856f3dc0a657bf167d81a5011405e', name: "prefix" }), hAsync("div", { key: '71b9de67c04150255dd66592601c9d926db0c31c', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
22548
22553
  this.scrollEl = el;
22549
22554
  },
22550
22555
  /**
@@ -22565,7 +22570,7 @@ class PickerColumn {
22565
22570
  * To prevent this, we set the tabIndex to -1. This
22566
22571
  * will match the behavior of the other browsers.
22567
22572
  */
22568
- 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" })));
22573
+ 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" })));
22569
22574
  }
22570
22575
  get el() { return getElement(this); }
22571
22576
  static get watchers() { return {
@@ -22932,9 +22937,9 @@ class PickerColumnCmp {
22932
22937
  render() {
22933
22938
  const col = this.col;
22934
22939
  const mode = getIonMode$1(this);
22935
- 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: {
22940
+ 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: {
22936
22941
  'max-width': this.col.columnWidth,
22937
- } }, 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))));
22942
+ } }, 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))));
22938
22943
  }
22939
22944
  get el() { return getElement(this); }
22940
22945
  static get watchers() { return {
@@ -23038,10 +23043,10 @@ class PickerColumnOption {
23038
23043
  render() {
23039
23044
  const { color, disabled, ariaLabel } = this;
23040
23045
  const mode = getIonMode$1(this);
23041
- return (hAsync(Host, { key: 'cc4435a0ce0e55be1321bcabaf342ed68cf5ba1e', class: createColorClasses$1(color, {
23046
+ return (hAsync(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses$1(color, {
23042
23047
  [mode]: true,
23043
23048
  ['option-disabled']: disabled,
23044
- }) }, hAsync("button", { key: '0187fb967771e0787807a8538dce4e59f6a98565', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: 'dbe52552f3f27332816748c12d929cc81060841d' }))));
23049
+ }) }, hAsync("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
23045
23050
  }
23046
23051
  get el() { return getElement(this); }
23047
23052
  static get watchers() { return {
@@ -24355,9 +24360,9 @@ class Popover {
24355
24360
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
24356
24361
  const desktop = isPlatform('desktop');
24357
24362
  const enableArrow = arrow && !parentPopover;
24358
- return (hAsync(Host, Object.assign({ key: '3a7c4c39384bab1447c4bd6b9b06d7837a09353b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24363
+ return (hAsync(Host, Object.assign({ key: 'ffe8b37c9ffb5cac210a7307e6cdfcf78712905b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24359
24364
  zIndex: `${20000 + this.overlayIndex}`,
24360
- }, 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' })))));
24365
+ }, 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' })))));
24361
24366
  }
24362
24367
  get el() { return getElement(this); }
24363
24368
  static get watchers() { return {
@@ -24449,7 +24454,7 @@ class ProgressBar {
24449
24454
  const mode = getIonMode$1(this);
24450
24455
  // If the progress is displayed as a solid bar.
24451
24456
  const progressSolid = buffer === 1;
24452
- return (hAsync(Host, { key: 'b293f4475bcdaa7851b41ebfda659037f0365120', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24457
+ return (hAsync(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24453
24458
  [mode]: true,
24454
24459
  [`progress-bar-${type}`]: true,
24455
24460
  'progress-paused': paused,
@@ -24582,8 +24587,10 @@ class Radio {
24582
24587
  }
24583
24588
  /** @internal */
24584
24589
  async setFocus(ev) {
24585
- ev.stopPropagation();
24586
- ev.preventDefault();
24590
+ if (ev !== undefined) {
24591
+ ev.stopPropagation();
24592
+ ev.preventDefault();
24593
+ }
24587
24594
  this.el.focus();
24588
24595
  }
24589
24596
  /** @internal */
@@ -24617,7 +24624,7 @@ class Radio {
24617
24624
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
24618
24625
  const mode = getIonMode$1(this);
24619
24626
  const inItem = hostContext('ion-item', el);
24620
- return (hAsync(Host, { key: 'd6d9525eea9dadc3ea7060eb9b8cbb919e1d7091', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24627
+ return (hAsync(Host, { key: '5a0adab55ad009305de4856fa1b9f93f2279a734', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24621
24628
  [mode]: true,
24622
24629
  'in-item': inItem,
24623
24630
  'radio-checked': checked,
@@ -24628,10 +24635,10 @@ class Radio {
24628
24635
  // Focus and active styling should not apply when the radio is in an item
24629
24636
  'ion-activatable': !inItem,
24630
24637
  'ion-focusable': !inItem,
24631
- }), 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: {
24638
+ }), 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: {
24632
24639
  'label-text-wrapper': true,
24633
24640
  'label-text-wrapper-hidden': !hasLabel,
24634
- }, part: "label" }, hAsync("slot", { key: '2950f1579a22d4a06f9c903fd462c2b46f43bfd7' })), hAsync("div", { key: '8b19ce30b39066744108a6de2da42a7ce8ffdbec', class: "native-wrapper" }, this.renderRadioControl()))));
24641
+ }, part: "label" }, hAsync("slot", { key: '6cedf4e7b3bd03e4a635727dd7b6094bab64af64' })), hAsync("div", { key: '26dd48d9d2848b7f100b732abdc4a3171adde483', class: "native-wrapper" }, this.renderRadioControl()))));
24635
24642
  }
24636
24643
  get el() { return getElement(this); }
24637
24644
  static get watchers() { return {
@@ -24763,7 +24770,9 @@ class RadioGroup {
24763
24770
  this.ionChange.emit({ value, event });
24764
24771
  }
24765
24772
  onKeydown(ev) {
24766
- const inSelectPopover = !!this.el.closest('ion-select-popover');
24773
+ // We don't want the value to automatically change/emit when the radio group is part of a select interface
24774
+ // as this will cause the interface to close when navigating through the radio group options
24775
+ const inSelectInterface = !!this.el.closest('ion-select-popover') || !!this.el.closest('ion-select-modal');
24767
24776
  if (ev.target && !this.el.contains(ev.target)) {
24768
24777
  return;
24769
24778
  }
@@ -24787,7 +24796,7 @@ class RadioGroup {
24787
24796
  }
24788
24797
  if (next && radios.includes(next)) {
24789
24798
  next.setFocus(ev);
24790
- if (!inSelectPopover) {
24799
+ if (!inSelectInterface) {
24791
24800
  this.value = next.value;
24792
24801
  this.emitValueChange(ev);
24793
24802
  }
@@ -24816,7 +24825,7 @@ class RadioGroup {
24816
24825
  const { label, labelId, el, name, value } = this;
24817
24826
  const mode = getIonMode$1(this);
24818
24827
  renderHiddenInput(true, el, name, value, false);
24819
- return hAsync(Host, { key: '7a8ad7eb6a05c6f96a348dcf30fd0c610a95688c', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24828
+ return hAsync(Host, { key: '99f543b9caa8e2d30a80e7ea7ecf6b6fdacc76eb', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
24820
24829
  }
24821
24830
  get el() { return getElement(this); }
24822
24831
  static get watchers() { return {
@@ -25448,7 +25457,7 @@ class Range {
25448
25457
  const needsEndAdjustment = inItem && !hasEndContent;
25449
25458
  const mode = getIonMode$1(this);
25450
25459
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25451
- return (hAsync(Host, { key: '877c9f15e62fadb184f9da82dc19898227521e07', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25460
+ return (hAsync(Host, { key: '05c699caaead7cc74deaae2a958c4632191473a8', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25452
25461
  [mode]: true,
25453
25462
  'in-item': inItem,
25454
25463
  'range-disabled': disabled,
@@ -25457,10 +25466,10 @@ class Range {
25457
25466
  [`range-label-placement-${labelPlacement}`]: true,
25458
25467
  'range-item-start-adjustment': needsStartAdjustment,
25459
25468
  'range-item-end-adjustment': needsEndAdjustment,
25460
- }) }, hAsync("label", { key: '2ae9088349a65e09b0e33c53442190ef563b2345', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'c3d0ca96ceb1e57fbd383e9c7e4da14d931771b8', class: {
25469
+ }) }, hAsync("label", { key: '959837bcc48c4bda33ae1f62b66ef444329a2961', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'a434c6b5c26f57f52b3af98d881e7e6a179c89fc', class: {
25461
25470
  'label-text-wrapper': true,
25462
25471
  'label-text-wrapper-hidden': !hasLabel,
25463
- }, 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" })))));
25472
+ }, 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" })))));
25464
25473
  }
25465
25474
  get el() { return getElement(this); }
25466
25475
  static get watchers() { return {
@@ -26361,7 +26370,7 @@ class Refresher {
26361
26370
  }
26362
26371
  render() {
26363
26372
  const mode = getIonMode$1(this);
26364
- return (hAsync(Host, { key: '3270f181a5141e7d886ec554a3e892974446b90e', slot: "fixed", class: {
26373
+ return (hAsync(Host, { key: '9d4ac22988aec2c6af0b0c90934c52f62f0e4ce3', slot: "fixed", class: {
26365
26374
  [mode]: true,
26366
26375
  // Used internally for styling
26367
26376
  [`refresher-${mode}`]: true,
@@ -26589,7 +26598,7 @@ class RefresherContent {
26589
26598
  const pullingIcon = this.pullingIcon;
26590
26599
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
26591
26600
  const mode = getIonMode$1(this);
26592
- 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())));
26601
+ 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())));
26593
26602
  }
26594
26603
  get el() { return getElement(this); }
26595
26604
  static get cmpMeta() { return {
@@ -26632,7 +26641,7 @@ class Reorder {
26632
26641
  render() {
26633
26642
  const mode = getIonMode$1(this);
26634
26643
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
26635
- 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" }))));
26644
+ 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" }))));
26636
26645
  }
26637
26646
  get el() { return getElement(this); }
26638
26647
  static get style() { return {
@@ -26886,7 +26895,7 @@ class ReorderGroup {
26886
26895
  }
26887
26896
  render() {
26888
26897
  const mode = getIonMode$1(this);
26889
- return (hAsync(Host, { key: '491f3e5843cf728ff4589e58bd86b8ce6709b293', class: {
26898
+ return (hAsync(Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
26890
26899
  [mode]: true,
26891
26900
  'reorder-enabled': !this.disabled,
26892
26901
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -26994,7 +27003,7 @@ class RippleEffect {
26994
27003
  }
26995
27004
  render() {
26996
27005
  const mode = getIonMode$1(this);
26997
- return (hAsync(Host, { key: '2302f087ab1c6755355736e4ca77309c5fdcf185', role: "presentation", class: {
27006
+ return (hAsync(Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
26998
27007
  [mode]: true,
26999
27008
  unbounded: this.unbounded,
27000
27009
  } }));
@@ -27936,10 +27945,10 @@ class RouterLink {
27936
27945
  rel: this.rel,
27937
27946
  target: this.target,
27938
27947
  };
27939
- return (hAsync(Host, { key: 'f876442cab5b14b7e83c6d6ad2c2d878a9c57439', onClick: this.onClick, class: createColorClasses$1(this.color, {
27948
+ return (hAsync(Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: createColorClasses$1(this.color, {
27940
27949
  [mode]: true,
27941
27950
  'ion-activatable': true,
27942
- }) }, hAsync("a", Object.assign({ key: 'c44b78ec1fd10a40c23bfe548860ac2b346646a8' }, attrs), hAsync("slot", { key: 'd32180a567613f79f89885135bd0d776ffc1eb8e' }))));
27951
+ }) }, hAsync("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), hAsync("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
27943
27952
  }
27944
27953
  static get style() { return IonRouterLinkStyle0; }
27945
27954
  static get cmpMeta() { return {
@@ -28135,7 +28144,7 @@ class RouterOutlet {
28135
28144
  return true;
28136
28145
  }
28137
28146
  render() {
28138
- return hAsync("slot", { key: 'dac9120f5ffa628b16c04e5fdd44ea8e560c97e6' });
28147
+ return hAsync("slot", { key: '44a7798b8574966f7fd699564b6006411a98a805' });
28139
28148
  }
28140
28149
  get el() { return getElement(this); }
28141
28150
  static get watchers() { return {
@@ -28169,7 +28178,7 @@ class Row {
28169
28178
  registerInstance(this, hostRef);
28170
28179
  }
28171
28180
  render() {
28172
- return (hAsync(Host, { key: '813c9a7f6782d2cf8eb27f30d3ab28e6f3122868', class: getIonMode$1(this) }, hAsync("slot", { key: '356bec4d4d408ea63d6b431b06465d5b7bcbff71' })));
28181
+ return (hAsync(Host, { key: 'aea072a5005e3f1f309f0d1ae5be5ee19869b035', class: getIonMode$1(this) }, hAsync("slot", { key: '2a481c2126ac6ca65f0a1bbd07c2d3365409cb78' })));
28173
28182
  }
28174
28183
  static get style() { return IonRowStyle0; }
28175
28184
  static get cmpMeta() { return {
@@ -28563,8 +28572,8 @@ class Searchbar {
28563
28572
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
28564
28573
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
28565
28574
  const shouldShowCancelButton = this.shouldShowCancelButton();
28566
- 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))));
28567
- return (hAsync(Host, { key: '34878db21f63a9bdffca0446d8ad5619ff04cac3', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28575
+ 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))));
28576
+ return (hAsync(Host, { key: '17d57ece5852d03047e4d53ddad6c9d88a432a00', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28568
28577
  [mode]: true,
28569
28578
  'searchbar-animated': animated,
28570
28579
  'searchbar-disabled': this.disabled,
@@ -28574,14 +28583,14 @@ class Searchbar {
28574
28583
  'searchbar-has-focus': this.focused,
28575
28584
  'searchbar-should-show-clear': this.shouldShowClearButton(),
28576
28585
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
28577
- }) }, 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) => {
28586
+ }) }, 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) => {
28578
28587
  /**
28579
28588
  * This prevents mobile browsers from
28580
28589
  * blurring the input when the clear
28581
28590
  * button is activated.
28582
28591
  */
28583
28592
  ev.preventDefault();
28584
- }, 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));
28593
+ }, 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));
28585
28594
  }
28586
28595
  get el() { return getElement(this); }
28587
28596
  static get watchers() { return {
@@ -28648,6 +28657,7 @@ class Segment {
28648
28657
  this.ionChange = createEvent(this, "ionChange", 7);
28649
28658
  this.ionSelect = createEvent(this, "ionSelect", 7);
28650
28659
  this.ionStyle = createEvent(this, "ionStyle", 7);
28660
+ this.segmentViewEl = null;
28651
28661
  this.onClick = (ev) => {
28652
28662
  const current = ev.target;
28653
28663
  const previous = this.checked;
@@ -28662,7 +28672,13 @@ class Segment {
28662
28672
  if (current !== previous) {
28663
28673
  this.emitValueChange();
28664
28674
  }
28665
- if (this.scrollable || !this.swipeGesture) {
28675
+ if (this.segmentViewEl) {
28676
+ this.updateSegmentView();
28677
+ if (this.scrollable && previous) {
28678
+ this.checkButton(previous, current);
28679
+ }
28680
+ }
28681
+ else if (this.scrollable || !this.swipeGesture) {
28666
28682
  if (previous) {
28667
28683
  this.checkButton(previous, current);
28668
28684
  }
@@ -28718,19 +28734,49 @@ class Segment {
28718
28734
  swipeGestureChanged() {
28719
28735
  this.gestureChanged();
28720
28736
  }
28721
- valueChanged(value) {
28737
+ valueChanged(value, oldValue) {
28738
+ // Force a value to exist if we're using a segment view
28739
+ if (this.segmentViewEl && value === undefined) {
28740
+ this.value = this.getButtons()[0].value;
28741
+ return;
28742
+ }
28743
+ if (oldValue !== undefined && value !== undefined) {
28744
+ const buttons = this.getButtons();
28745
+ const previous = buttons.find((button) => button.value === oldValue);
28746
+ const current = buttons.find((button) => button.value === value);
28747
+ if (previous && current) {
28748
+ if (!this.segmentViewEl) {
28749
+ this.checkButton(previous, current);
28750
+ }
28751
+ else if (this.triggerScrollOnValueChange !== false) {
28752
+ this.updateSegmentView();
28753
+ }
28754
+ }
28755
+ }
28756
+ else if (value !== undefined && oldValue === undefined && this.segmentViewEl) {
28757
+ this.updateSegmentView();
28758
+ }
28722
28759
  /**
28723
28760
  * `ionSelect` is emitted every time the value changes (internal or external changes).
28724
28761
  * Used by `ion-segment-button` to determine if the button should be checked.
28725
28762
  */
28726
28763
  this.ionSelect.emit({ value });
28727
- this.scrollActiveButtonIntoView();
28764
+ // The scroll listener should handle scrolling the active button into view as needed
28765
+ if (!this.segmentViewEl) {
28766
+ this.scrollActiveButtonIntoView();
28767
+ }
28768
+ this.triggerScrollOnValueChange = undefined;
28728
28769
  }
28729
28770
  disabledChanged() {
28730
28771
  this.gestureChanged();
28731
- const buttons = this.getButtons();
28732
- for (const button of buttons) {
28733
- button.disabled = this.disabled;
28772
+ if (!this.segmentViewEl) {
28773
+ const buttons = this.getButtons();
28774
+ for (const button of buttons) {
28775
+ button.disabled = this.disabled;
28776
+ }
28777
+ }
28778
+ else {
28779
+ this.segmentViewEl.disabled = this.disabled;
28734
28780
  }
28735
28781
  }
28736
28782
  gestureChanged() {
@@ -28740,6 +28786,10 @@ class Segment {
28740
28786
  }
28741
28787
  connectedCallback() {
28742
28788
  this.emitStyle();
28789
+ this.segmentViewEl = this.getSegmentView();
28790
+ }
28791
+ disconnectedCallback() {
28792
+ this.segmentViewEl = null;
28743
28793
  }
28744
28794
  componentWillLoad() {
28745
28795
  this.emitStyle();
@@ -28773,6 +28823,9 @@ class Segment {
28773
28823
  if (this.disabled) {
28774
28824
  this.disabledChanged();
28775
28825
  }
28826
+ // Update segment view based on the initial value,
28827
+ // but do not animate the scroll
28828
+ this.updateSegmentView(false);
28776
28829
  }
28777
28830
  onStart(detail) {
28778
28831
  this.valueBeforeGesture = this.value;
@@ -28789,6 +28842,7 @@ class Segment {
28789
28842
  if (value !== undefined) {
28790
28843
  if (this.valueBeforeGesture !== value) {
28791
28844
  this.emitValueChange();
28845
+ this.updateSegmentView();
28792
28846
  }
28793
28847
  }
28794
28848
  this.valueBeforeGesture = undefined;
@@ -28816,12 +28870,7 @@ class Segment {
28816
28870
  setActivated(activated) {
28817
28871
  const buttons = this.getButtons();
28818
28872
  buttons.forEach((button) => {
28819
- if (activated) {
28820
- button.classList.add('segment-button-activated');
28821
- }
28822
- else {
28823
- button.classList.remove('segment-button-activated');
28824
- }
28873
+ button.classList.toggle('segment-button-activated', activated);
28825
28874
  });
28826
28875
  this.activated = activated;
28827
28876
  }
@@ -28872,6 +28921,7 @@ class Segment {
28872
28921
  currentIndicator.classList.add('segment-button-indicator-animated');
28873
28922
  // Remove the transform to slide the indicator back to the button clicked
28874
28923
  currentIndicator.style.setProperty('transform', '');
28924
+ this.scrollActiveButtonIntoView(true);
28875
28925
  });
28876
28926
  this.value = current.value;
28877
28927
  this.setCheckedClasses();
@@ -28887,6 +28937,60 @@ class Segment {
28887
28937
  buttons[next].classList.add('segment-button-after-checked');
28888
28938
  }
28889
28939
  }
28940
+ getSegmentView() {
28941
+ const buttons = this.getButtons();
28942
+ // Get the first button with a contentId
28943
+ const firstContentId = buttons.find((button) => button.contentId);
28944
+ // Get the segment content with an id matching the button's contentId
28945
+ const segmentContent = document.querySelector(`ion-segment-content[id="${firstContentId === null || firstContentId === void 0 ? void 0 : firstContentId.contentId}"]`);
28946
+ // Return the segment view for that matching segment content
28947
+ return segmentContent === null || segmentContent === void 0 ? void 0 : segmentContent.closest('ion-segment-view');
28948
+ }
28949
+ handleSegmentViewScroll(ev) {
28950
+ const { scrollRatio, isManualScroll } = ev.detail;
28951
+ if (!isManualScroll) {
28952
+ return;
28953
+ }
28954
+ const dispatchedFrom = ev.target;
28955
+ const segmentViewEl = this.segmentViewEl;
28956
+ const segmentEl = this.el;
28957
+ // Only update the indicator if the event was dispatched from the correct segment view
28958
+ if (ev.composedPath().includes(segmentViewEl) || (dispatchedFrom === null || dispatchedFrom === void 0 ? void 0 : dispatchedFrom.contains(segmentEl))) {
28959
+ const buttons = this.getButtons();
28960
+ // If no buttons are found or there is no value set then do nothing
28961
+ if (!buttons.length)
28962
+ return;
28963
+ const index = buttons.findIndex((button) => button.value === this.value);
28964
+ const current = buttons[index];
28965
+ const nextIndex = Math.round(scrollRatio * (buttons.length - 1));
28966
+ if (this.lastNextIndex === undefined || this.lastNextIndex !== nextIndex) {
28967
+ this.lastNextIndex = nextIndex;
28968
+ this.triggerScrollOnValueChange = false;
28969
+ this.checkButton(current, buttons[nextIndex]);
28970
+ this.emitValueChange();
28971
+ }
28972
+ }
28973
+ }
28974
+ /**
28975
+ * Finds the related segment view and sets its current content
28976
+ * based on the selected segment button. This method
28977
+ * should be called on initial load of the segment,
28978
+ * after the gesture is completed (if dragging between segments)
28979
+ * and when a segment button is clicked directly.
28980
+ */
28981
+ updateSegmentView(smoothScroll = true) {
28982
+ const buttons = this.getButtons();
28983
+ const button = buttons.find((btn) => btn.value === this.value);
28984
+ // If the button does not have a contentId then there is
28985
+ // no associated segment view to update
28986
+ if (!(button === null || button === void 0 ? void 0 : button.contentId)) {
28987
+ return;
28988
+ }
28989
+ const segmentView = this.segmentViewEl;
28990
+ if (segmentView) {
28991
+ segmentView.setContent(button.contentId, smoothScroll);
28992
+ }
28993
+ }
28890
28994
  scrollActiveButtonIntoView(smoothScroll = true) {
28891
28995
  const { scrollable, value, el } = this;
28892
28996
  if (scrollable) {
@@ -29069,14 +29173,14 @@ class Segment {
29069
29173
  }
29070
29174
  render() {
29071
29175
  const mode = getIonMode$1(this);
29072
- return (hAsync(Host, { key: 'f1f7103b4c298e037df850ac809a1a7c6e9987a7', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29176
+ return (hAsync(Host, { key: '66bd7a565ba73540b3bbe56dd23b95e59bcef9bc', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29073
29177
  [mode]: true,
29074
29178
  'in-toolbar': hostContext('ion-toolbar', this.el),
29075
29179
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
29076
29180
  'segment-activated': this.activated,
29077
29181
  'segment-disabled': this.disabled,
29078
29182
  'segment-scrollable': this.scrollable,
29079
- }) }, hAsync("slot", { key: '6efdb318b13da8d21687084aa0761728fdf12579', onSlotchange: this.onSlottedItemsChange })));
29183
+ }) }, hAsync("slot", { key: '782c521b1a33729b8eab1c4b879bc3f2ff48ae1b', onSlotchange: this.onSlottedItemsChange })));
29080
29184
  }
29081
29185
  get el() { return getElement(this); }
29082
29186
  static get watchers() { return {
@@ -29101,7 +29205,7 @@ class Segment {
29101
29205
  "selectOnFocus": [4, "select-on-focus"],
29102
29206
  "activated": [32]
29103
29207
  },
29104
- "$listeners$": [[0, "keydown", "onKeyDown"]],
29208
+ "$listeners$": [[16, "ionSegmentViewScroll", "handleSegmentViewScroll"], [0, "keydown", "onKeyDown"]],
29105
29209
  "$lazyBundleId$": "-",
29106
29210
  "$attrsToReflect$": [["color", "color"]]
29107
29211
  }; }
@@ -29138,6 +29242,7 @@ class SegmentButton {
29138
29242
  }
29139
29243
  };
29140
29244
  this.checked = false;
29245
+ this.contentId = undefined;
29141
29246
  this.disabled = false;
29142
29247
  this.layout = 'icon-top';
29143
29248
  this.type = 'button';
@@ -29153,6 +29258,26 @@ class SegmentButton {
29153
29258
  addEventListener$1(segmentEl, 'ionSelect', this.updateState);
29154
29259
  addEventListener$1(segmentEl, 'ionStyle', this.updateStyle);
29155
29260
  }
29261
+ // Return if there is no contentId defined
29262
+ if (!this.contentId)
29263
+ return;
29264
+ // Attempt to find the Segment Content by its contentId
29265
+ const segmentContent = document.getElementById(this.contentId);
29266
+ // If no associated Segment Content exists, log an error and return
29267
+ if (!segmentContent) {
29268
+ console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
29269
+ return;
29270
+ }
29271
+ // Ensure the found element is a valid ION-SEGMENT-CONTENT
29272
+ if (segmentContent.tagName !== 'ION-SEGMENT-CONTENT') {
29273
+ console.error(`Segment Button: Element with id="${this.contentId}" is not an <ion-segment-content> element.`);
29274
+ return;
29275
+ }
29276
+ // Prevent buttons from being disabled when associated with segment content
29277
+ if (this.disabled) {
29278
+ console.warn(`Segment Button: Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
29279
+ this.disabled = false;
29280
+ }
29156
29281
  }
29157
29282
  disconnectedCallback() {
29158
29283
  const segmentEl = this.segmentEl;
@@ -29186,7 +29311,7 @@ class SegmentButton {
29186
29311
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
29187
29312
  const mode = getIonMode$1(this);
29188
29313
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
29189
- return (hAsync(Host, { key: '70cf5c7a3ae2620222c5250c644faf3cfc3b3e4e', class: {
29314
+ return (hAsync(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
29190
29315
  [mode]: true,
29191
29316
  'in-toolbar': hostContext('ion-toolbar', this.el),
29192
29317
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -29202,10 +29327,7 @@ class SegmentButton {
29202
29327
  'ion-activatable': true,
29203
29328
  'ion-activatable-instant': true,
29204
29329
  'ion-focusable': true,
29205
- } }, 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: {
29206
- 'segment-button-indicator': true,
29207
- 'segment-button-indicator-animated': true,
29208
- } }, hAsync("div", { key: '65c72a151080998c1e548c87d4d4ebd5c7dda72f', part: "indicator-background", class: "segment-button-indicator-background" }))));
29330
+ } }, 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" }))));
29209
29331
  }
29210
29332
  get el() { return getElement(this); }
29211
29333
  static get watchers() { return {
@@ -29219,6 +29341,7 @@ class SegmentButton {
29219
29341
  "$flags$": 41,
29220
29342
  "$tagName$": "ion-segment-button",
29221
29343
  "$members$": {
29344
+ "contentId": [513, "content-id"],
29222
29345
  "disabled": [1028],
29223
29346
  "layout": [1],
29224
29347
  "type": [1],
@@ -29228,6 +29351,151 @@ class SegmentButton {
29228
29351
  },
29229
29352
  "$listeners$": undefined,
29230
29353
  "$lazyBundleId$": "-",
29354
+ "$attrsToReflect$": [["contentId", "content-id"]]
29355
+ }; }
29356
+ }
29357
+
29358
+ const segmentContentCss = ":host{scroll-snap-align:center;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}";
29359
+ var IonSegmentContentStyle0 = segmentContentCss;
29360
+
29361
+ class SegmentContent {
29362
+ constructor(hostRef) {
29363
+ registerInstance(this, hostRef);
29364
+ }
29365
+ render() {
29366
+ return (hAsync(Host, { key: '03684b2999ac64fe13e376fd7e7f279976e9d4f2' }, hAsync("slot", { key: '143031075bf33ca19e7cfd76fc8a67b83ccaf11c' })));
29367
+ }
29368
+ static get style() { return IonSegmentContentStyle0; }
29369
+ static get cmpMeta() { return {
29370
+ "$flags$": 9,
29371
+ "$tagName$": "ion-segment-content",
29372
+ "$members$": undefined,
29373
+ "$listeners$": undefined,
29374
+ "$lazyBundleId$": "-",
29375
+ "$attrsToReflect$": []
29376
+ }; }
29377
+ }
29378
+
29379
+ 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}";
29380
+ var IonSegmentViewIosStyle0 = segmentViewIosCss;
29381
+
29382
+ 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}";
29383
+ var IonSegmentViewMdStyle0 = segmentViewMdCss;
29384
+
29385
+ class SegmentView {
29386
+ constructor(hostRef) {
29387
+ registerInstance(this, hostRef);
29388
+ this.ionSegmentViewScroll = createEvent(this, "ionSegmentViewScroll", 7);
29389
+ this.scrollEndTimeout = null;
29390
+ this.isTouching = false;
29391
+ this.disabled = false;
29392
+ this.isManualScroll = undefined;
29393
+ }
29394
+ handleScroll(ev) {
29395
+ var _a;
29396
+ const { scrollLeft, scrollWidth, clientWidth } = ev.target;
29397
+ const scrollRatio = scrollLeft / (scrollWidth - clientWidth);
29398
+ this.ionSegmentViewScroll.emit({
29399
+ scrollRatio,
29400
+ isManualScroll: (_a = this.isManualScroll) !== null && _a !== void 0 ? _a : true,
29401
+ });
29402
+ // Reset the timeout to check for scroll end
29403
+ this.resetScrollEndTimeout();
29404
+ }
29405
+ /**
29406
+ * Handle touch start event to know when the user is actively dragging the segment view.
29407
+ */
29408
+ handleScrollStart() {
29409
+ if (this.scrollEndTimeout) {
29410
+ clearTimeout(this.scrollEndTimeout);
29411
+ this.scrollEndTimeout = null;
29412
+ }
29413
+ this.isTouching = true;
29414
+ }
29415
+ /**
29416
+ * Handle touch end event to know when the user is no longer dragging the segment view.
29417
+ */
29418
+ handleTouchEnd() {
29419
+ this.isTouching = false;
29420
+ }
29421
+ /**
29422
+ * Reset the scroll end detection timer. This is called on every scroll event.
29423
+ */
29424
+ resetScrollEndTimeout() {
29425
+ if (this.scrollEndTimeout) {
29426
+ clearTimeout(this.scrollEndTimeout);
29427
+ this.scrollEndTimeout = null;
29428
+ }
29429
+ this.scrollEndTimeout = setTimeout(() => {
29430
+ this.checkForScrollEnd();
29431
+ },
29432
+ // Setting this to a lower value may result in inconsistencies in behavior
29433
+ // across browsers (particularly Firefox).
29434
+ // Ideally, all of this logic is removed once the scroll end event is
29435
+ // supported on all browsers (https://caniuse.com/?search=scrollend)
29436
+ 100);
29437
+ }
29438
+ /**
29439
+ * Check if the scroll has ended and the user is not actively touching.
29440
+ * If the conditions are met (active content is enabled and no active touch),
29441
+ * reset the scroll position and emit the scroll end event.
29442
+ */
29443
+ checkForScrollEnd() {
29444
+ // Only emit scroll end event if the active content is not disabled and
29445
+ // the user is not touching the segment view
29446
+ if (!this.isTouching) {
29447
+ this.isManualScroll = undefined;
29448
+ }
29449
+ }
29450
+ /**
29451
+ * @internal
29452
+ *
29453
+ * This method is used to programmatically set the displayed segment content
29454
+ * in the segment view. Calling this method will update the `value` of the
29455
+ * corresponding segment button.
29456
+ *
29457
+ * @param id: The id of the segment content to display.
29458
+ * @param smoothScroll: Whether to animate the scroll transition.
29459
+ */
29460
+ async setContent(id, smoothScroll = true) {
29461
+ const contents = this.getSegmentContents();
29462
+ const index = contents.findIndex((content) => content.id === id);
29463
+ if (index === -1)
29464
+ return;
29465
+ this.isManualScroll = false;
29466
+ this.resetScrollEndTimeout();
29467
+ const contentWidth = this.el.offsetWidth;
29468
+ this.el.scrollTo({
29469
+ top: 0,
29470
+ left: index * contentWidth,
29471
+ behavior: smoothScroll ? 'smooth' : 'instant',
29472
+ });
29473
+ }
29474
+ getSegmentContents() {
29475
+ return Array.from(this.el.querySelectorAll('ion-segment-content'));
29476
+ }
29477
+ render() {
29478
+ const { disabled, isManualScroll } = this;
29479
+ return (hAsync(Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
29480
+ 'segment-view-disabled': disabled,
29481
+ 'segment-view-scroll-disabled': isManualScroll === false,
29482
+ } }, hAsync("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
29483
+ }
29484
+ get el() { return getElement(this); }
29485
+ static get style() { return {
29486
+ ios: IonSegmentViewIosStyle0,
29487
+ md: IonSegmentViewMdStyle0
29488
+ }; }
29489
+ static get cmpMeta() { return {
29490
+ "$flags$": 41,
29491
+ "$tagName$": "ion-segment-view",
29492
+ "$members$": {
29493
+ "disabled": [4],
29494
+ "isManualScroll": [32],
29495
+ "setContent": [64]
29496
+ },
29497
+ "$listeners$": [[1, "scroll", "handleScroll"], [1, "touchstart", "handleScrollStart"], [1, "touchend", "handleTouchEnd"]],
29498
+ "$lazyBundleId$": "-",
29231
29499
  "$attrsToReflect$": []
29232
29500
  }; }
29233
29501
  }
@@ -29388,13 +29656,12 @@ class Select {
29388
29656
  this.setFocus();
29389
29657
  });
29390
29658
  await overlay.present();
29391
- // focus selected option for popovers
29392
- if (this.interface === 'popover') {
29393
- const indexOfSelected = this.childOpts.map((o) => o.value).indexOf(this.value);
29659
+ // focus selected option for popovers and modals
29660
+ if (this.interface === 'popover' || this.interface === 'modal') {
29661
+ const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29394
29662
  if (indexOfSelected > -1) {
29395
29663
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
29396
29664
  if (selectedItem) {
29397
- focusVisibleElement(selectedItem);
29398
29665
  /**
29399
29666
  * Browsers such as Firefox do not
29400
29667
  * correctly delegate focus when manually
@@ -29408,8 +29675,11 @@ class Select {
29408
29675
  */
29409
29676
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
29410
29677
  if (interactiveEl) {
29411
- interactiveEl.focus();
29678
+ // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29679
+ // and removing `ion-focused` style
29680
+ interactiveEl.setFocus();
29412
29681
  }
29682
+ focusVisibleElement(selectedItem);
29413
29683
  }
29414
29684
  }
29415
29685
  else {
@@ -29418,11 +29688,14 @@ class Select {
29418
29688
  */
29419
29689
  const firstEnabledOption = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
29420
29690
  if (firstEnabledOption) {
29421
- focusVisibleElement(firstEnabledOption.closest('ion-item'));
29422
29691
  /**
29423
29692
  * Focus the option for the same reason as we do above.
29693
+ *
29694
+ * Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29695
+ * and removing `ion-focused` style
29424
29696
  */
29425
- firstEnabledOption.focus();
29697
+ firstEnabledOption.setFocus();
29698
+ focusVisibleElement(firstEnabledOption.closest('ion-item'));
29426
29699
  }
29427
29700
  }
29428
29701
  }
@@ -29444,6 +29717,9 @@ class Select {
29444
29717
  if (selectInterface === 'popover') {
29445
29718
  return this.openPopover(ev);
29446
29719
  }
29720
+ if (selectInterface === 'modal') {
29721
+ return this.openModal();
29722
+ }
29447
29723
  return this.openAlert();
29448
29724
  }
29449
29725
  updateOverlayOptions() {
@@ -29460,7 +29736,13 @@ class Select {
29460
29736
  case 'popover':
29461
29737
  const popover = overlay.querySelector('ion-select-popover');
29462
29738
  if (popover) {
29463
- popover.options = this.createPopoverOptions(childOpts, value);
29739
+ popover.options = this.createOverlaySelectOptions(childOpts, value);
29740
+ }
29741
+ break;
29742
+ case 'modal':
29743
+ const modal = overlay.querySelector('ion-select-modal');
29744
+ if (modal) {
29745
+ modal.options = this.createOverlaySelectOptions(childOpts, value);
29464
29746
  }
29465
29747
  break;
29466
29748
  case 'alert':
@@ -29515,7 +29797,7 @@ class Select {
29515
29797
  });
29516
29798
  return alertInputs;
29517
29799
  }
29518
- createPopoverOptions(data, selectValue) {
29800
+ createOverlaySelectOptions(data, selectValue) {
29519
29801
  const popoverOptions = data.map((option) => {
29520
29802
  const value = getOptionValue(option);
29521
29803
  // Remove hydrated before copying over classes
@@ -29575,7 +29857,7 @@ class Select {
29575
29857
  message: interfaceOptions.message,
29576
29858
  multiple,
29577
29859
  value,
29578
- options: this.createPopoverOptions(this.childOpts, value),
29860
+ options: this.createOverlaySelectOptions(this.childOpts, value),
29579
29861
  } });
29580
29862
  return popoverController.create(popoverOpts);
29581
29863
  }
@@ -29610,6 +29892,17 @@ class Select {
29610
29892
  ] });
29611
29893
  return alertController.create(alertOpts);
29612
29894
  }
29895
+ openModal() {
29896
+ const { multiple, value, interfaceOptions } = this;
29897
+ const mode = getIonMode$1(this);
29898
+ const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
29899
+ header: interfaceOptions.header,
29900
+ multiple,
29901
+ value,
29902
+ options: this.createOverlaySelectOptions(this.childOpts, value),
29903
+ } });
29904
+ return modalController.create(modalOpts);
29905
+ }
29613
29906
  /**
29614
29907
  * Close the select interface.
29615
29908
  */
@@ -29817,7 +30110,7 @@ class Select {
29817
30110
  * TODO(FW-5592): Remove hasStartEndSlots condition
29818
30111
  */
29819
30112
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
29820
- return (hAsync(Host, { key: '73c571c1f8468e1c3f4fe02fbbb33ba9cbc8e989', onClick: this.onClick, class: createColorClasses$1(this.color, {
30113
+ return (hAsync(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses$1(this.color, {
29821
30114
  [mode]: true,
29822
30115
  'in-item': inItem,
29823
30116
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -29833,7 +30126,7 @@ class Select {
29833
30126
  [`select-justify-${justify}`]: justifyEnabled,
29834
30127
  [`select-shape-${shape}`]: shape !== undefined,
29835
30128
  [`select-label-placement-${labelPlacement}`]: true,
29836
- }) }, 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" }))));
30129
+ }) }, 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" }))));
29837
30130
  }
29838
30131
  get el() { return getElement(this); }
29839
30132
  static get watchers() { return {
@@ -29913,6 +30206,108 @@ const textForValue = (opts, value, compareWith) => {
29913
30206
  let selectIds = 0;
29914
30207
  const OPTION_CLASS = 'select-interface-option';
29915
30208
 
30209
+ 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)}";
30210
+ var IonSelectModalIonicStyle0 = ionicSelectModalMdCss;
30211
+
30212
+ const selectModalIosCss = ".sc-ion-select-modal-ios-h{height:100%}";
30213
+ var IonSelectModalIosStyle0 = selectModalIosCss;
30214
+
30215
+ 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)}";
30216
+ var IonSelectModalMdStyle0 = selectModalMdCss;
30217
+
30218
+ class SelectModal {
30219
+ constructor(hostRef) {
30220
+ registerInstance(this, hostRef);
30221
+ this.header = undefined;
30222
+ this.multiple = undefined;
30223
+ this.options = [];
30224
+ }
30225
+ closeModal() {
30226
+ const modal = this.el.closest('ion-modal');
30227
+ if (modal) {
30228
+ modal.dismiss();
30229
+ }
30230
+ }
30231
+ findOptionFromEvent(ev) {
30232
+ const { options } = this;
30233
+ return options.find((o) => o.value === ev.target.value);
30234
+ }
30235
+ getValues(ev) {
30236
+ const { multiple, options } = this;
30237
+ if (multiple) {
30238
+ // this is a modal with checkboxes (multiple value select)
30239
+ // return an array of all the checked values
30240
+ return options.filter((o) => o.checked).map((o) => o.value);
30241
+ }
30242
+ // this is a modal with radio buttons (single value select)
30243
+ // return the value that was clicked, otherwise undefined
30244
+ const option = ev ? this.findOptionFromEvent(ev) : null;
30245
+ return option ? option.value : undefined;
30246
+ }
30247
+ callOptionHandler(ev) {
30248
+ const option = this.findOptionFromEvent(ev);
30249
+ const values = this.getValues(ev);
30250
+ if (option === null || option === void 0 ? void 0 : option.handler) {
30251
+ safeCall(option.handler, values);
30252
+ }
30253
+ }
30254
+ setChecked(ev) {
30255
+ const { multiple } = this;
30256
+ const option = this.findOptionFromEvent(ev);
30257
+ // this is a modal with checkboxes (multiple value select)
30258
+ // we need to set the checked value for this option
30259
+ if (multiple && option) {
30260
+ option.checked = ev.detail.checked;
30261
+ }
30262
+ }
30263
+ renderRadioOptions() {
30264
+ const checked = this.options.filter((o) => o.checked).map((o) => o.value)[0];
30265
+ return (hAsync("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
30266
+ // TODO FW-4784
30267
+ 'item-radio-checked': option.value === checked
30268
+ }, getClassMap(option.cssClass)) }, hAsync("ion-radio", { value: option.value, disabled: option.disabled, justify: "start", labelPlacement: "end", onClick: () => this.closeModal(), onKeyUp: (ev) => {
30269
+ if (ev.key === ' ') {
30270
+ /**
30271
+ * Selecting a radio option with keyboard navigation,
30272
+ * either through the Enter or Space keys, should
30273
+ * dismiss the modal.
30274
+ */
30275
+ this.closeModal();
30276
+ }
30277
+ } }, option.text))))));
30278
+ }
30279
+ renderCheckboxOptions() {
30280
+ return this.options.map((option) => (hAsync("ion-item", { class: Object.assign({
30281
+ // TODO FW-4784
30282
+ 'item-checkbox-checked': option.checked
30283
+ }, getClassMap(option.cssClass)) }, hAsync("ion-checkbox", { value: option.value, disabled: option.disabled, checked: option.checked, justify: "start", labelPlacement: "end", onIonChange: (ev) => {
30284
+ this.setChecked(ev);
30285
+ this.callOptionHandler(ev);
30286
+ } }, option.text))));
30287
+ }
30288
+ render() {
30289
+ 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()))));
30290
+ }
30291
+ get el() { return getElement(this); }
30292
+ static get style() { return {
30293
+ ionic: IonSelectModalIonicStyle0,
30294
+ ios: IonSelectModalIosStyle0,
30295
+ md: IonSelectModalMdStyle0
30296
+ }; }
30297
+ static get cmpMeta() { return {
30298
+ "$flags$": 34,
30299
+ "$tagName$": "ion-select-modal",
30300
+ "$members$": {
30301
+ "header": [1],
30302
+ "multiple": [4],
30303
+ "options": [16]
30304
+ },
30305
+ "$listeners$": undefined,
30306
+ "$lazyBundleId$": "-",
30307
+ "$attrsToReflect$": []
30308
+ }; }
30309
+ }
30310
+
29916
30311
  const selectOptionCss = ":host{display:none}";
29917
30312
  var IonSelectOptionStyle0 = selectOptionCss;
29918
30313
 
@@ -29924,7 +30319,7 @@ class SelectOption {
29924
30319
  this.value = undefined;
29925
30320
  }
29926
30321
  render() {
29927
- return hAsync(Host, { key: 'ba5a9c695c53fe0802af11a49f4305a9b8f71773', role: "option", id: this.inputId, class: getIonMode$1(this) });
30322
+ return hAsync(Host, { key: '2e6fa159464f04f6d8720f960141f67918bc7534', role: "option", id: this.inputId, class: getIonMode$1(this) });
29928
30323
  }
29929
30324
  get el() { return getElement(this); }
29930
30325
  static get style() { return IonSelectOptionStyle0; }
@@ -30044,7 +30439,7 @@ class SelectPopover {
30044
30439
  render() {
30045
30440
  const { header, message, options, subHeader } = this;
30046
30441
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
30047
- 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))));
30442
+ 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))));
30048
30443
  }
30049
30444
  get el() { return getElement(this); }
30050
30445
  static get style() { return {
@@ -30092,11 +30487,11 @@ class SkeletonText {
30092
30487
  const animated = this.animated && config.getBoolean('animated', true);
30093
30488
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
30094
30489
  const mode = getIonMode$1(this);
30095
- return (hAsync(Host, { key: '1a3e78e9a6f740d609d1f0b7a16cb6eff4a2d617', class: {
30490
+ return (hAsync(Host, { key: 'fdfabf9364caf507450239b62be24f08873bd650', class: {
30096
30491
  [mode]: true,
30097
30492
  'skeleton-text-animated': animated,
30098
30493
  'in-media': inMedia,
30099
- } }, hAsync("span", { key: 'be3eabe196ec6e8ec19857375ba30f4c8aa58e7f' }, "\u00A0")));
30494
+ } }, hAsync("span", { key: '3482c88dcc177547185ce87972afa064a542367d' }, "\u00A0")));
30100
30495
  }
30101
30496
  get el() { return getElement(this); }
30102
30497
  static get style() { return IonSkeletonTextStyle0; }
@@ -30149,7 +30544,7 @@ class Spinner {
30149
30544
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
30150
30545
  }
30151
30546
  }
30152
- return (hAsync(Host, { key: '50cbaed55eeab15292447d106a80b93db4cb40de', class: createColorClasses$1(self.color, {
30547
+ return (hAsync(Host, { key: '9d30ee9f5aa0dd0e220da07e75d05b8b2435224d', class: createColorClasses$1(self.color, {
30153
30548
  [mode]: true,
30154
30549
  [`spinner-${spinnerName}`]: true,
30155
30550
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -30249,12 +30644,12 @@ class SplitPane {
30249
30644
  }
30250
30645
  render() {
30251
30646
  const mode = getIonMode$1(this);
30252
- return (hAsync(Host, { key: 'd54c356cd4bff7e55325160882dea8249f47f388', class: {
30647
+ return (hAsync(Host, { key: '1ca0b0299d03605bb358112ca56cbafbe58f00f5', class: {
30253
30648
  [mode]: true,
30254
30649
  // Used internally for styling
30255
30650
  [`split-pane-${mode}`]: true,
30256
30651
  'split-pane-visible': this.visible,
30257
- } }, hAsync("slot", { key: 'af62690d0fd686cfbd29d888c79eda9001f13e2f' })));
30652
+ } }, hAsync("slot", { key: 'abe231361727ae7fc63edd592a4490caac1909fb' })));
30258
30653
  }
30259
30654
  get el() { return getElement(this); }
30260
30655
  static get watchers() { return {
@@ -30323,10 +30718,10 @@ class Tab {
30323
30718
  }
30324
30719
  render() {
30325
30720
  const { tab, active, component } = this;
30326
- return (hAsync(Host, { key: '46d5498418f5379861c3d7465e8021dec45f1200', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30721
+ return (hAsync(Host, { key: 'cb75d0877979b3b8df8f7e1952bfa9677da1eaa5', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30327
30722
  'ion-page': component === undefined,
30328
30723
  'tab-hidden': !active,
30329
- } }, hAsync("slot", { key: 'b45045dccb87dfe75e3f5a5a474bb48b6c98e922' })));
30724
+ } }, hAsync("slot", { key: '37fbb7b7a6b03eb93b1dacd2dc1025b78eb2aa6b' })));
30330
30725
  }
30331
30726
  get el() { return getElement(this); }
30332
30727
  static get watchers() { return {
@@ -30404,11 +30799,11 @@ class TabBar {
30404
30799
  const { color, translucent, keyboardVisible } = this;
30405
30800
  const mode = getIonMode$1(this);
30406
30801
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
30407
- return (hAsync(Host, { key: '3a8595dd83f89e8319471a7a7f9f64b2565b384c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30802
+ return (hAsync(Host, { key: 'a87fd2ea5df053705a37ea7ffec043e75c4a9907', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30408
30803
  [mode]: true,
30409
30804
  'tab-bar-translucent': translucent,
30410
30805
  'tab-bar-hidden': shouldHide,
30411
- }) }, hAsync("slot", { key: '8b65eceb922f6abfa15f41046261586fb94b981f' })));
30806
+ }) }, hAsync("slot", { key: '81a6223299b6cab29d7ddced590e9152e2b3ded0' })));
30412
30807
  }
30413
30808
  get el() { return getElement(this); }
30414
30809
  static get watchers() { return {
@@ -30506,7 +30901,7 @@ class TabButton {
30506
30901
  rel,
30507
30902
  target,
30508
30903
  };
30509
- return (hAsync(Host, { key: '4b528ce31f67e10ad849e0c99bd034bba675c227', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
30904
+ return (hAsync(Host, { key: '5976c45943ea7ea8e7c1a85fc9996de421439f08', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
30510
30905
  [mode]: true,
30511
30906
  'tab-selected': selected,
30512
30907
  'tab-disabled': disabled,
@@ -30518,7 +30913,7 @@ class TabButton {
30518
30913
  'ion-activatable': true,
30519
30914
  'ion-selectable': true,
30520
30915
  'ion-focusable': true,
30521
- } }, 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" }))));
30916
+ } }, 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" }))));
30522
30917
  }
30523
30918
  get el() { return getElement(this); }
30524
30919
  static get style() { return {
@@ -30694,7 +31089,7 @@ class Tabs {
30694
31089
  return Array.from(this.el.querySelectorAll('ion-tab'));
30695
31090
  }
30696
31091
  render() {
30697
- 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" })));
31092
+ 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" })));
30698
31093
  }
30699
31094
  get el() { return getElement(this); }
30700
31095
  static get style() { return IonTabsStyle0; }
@@ -30736,9 +31131,9 @@ class Text {
30736
31131
  }
30737
31132
  render() {
30738
31133
  const mode = getIonMode$1(this);
30739
- return (hAsync(Host, { key: '4b76333b1ea5cab134b9dc1f5670c0d5a253fc32', class: createColorClasses$1(this.color, {
31134
+ return (hAsync(Host, { key: 'e134d70c04344b708a2ecf6253722781ad2ca826', class: createColorClasses$1(this.color, {
30740
31135
  [mode]: true,
30741
- }) }, hAsync("slot", { key: '3dee5f16bc58b3d92547d910bd4f441a00ce2039' })));
31136
+ }) }, hAsync("slot", { key: 'da79c760f7ebbcd007ce110439f05a62cb22eac8' })));
30742
31137
  }
30743
31138
  static get style() { return IonTextStyle0; }
30744
31139
  static get cmpMeta() { return {
@@ -31120,7 +31515,7 @@ class Textarea {
31120
31515
  * TODO(FW-5592): Remove hasStartEndSlots condition
31121
31516
  */
31122
31517
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
31123
- return (hAsync(Host, { key: 'e8a5b5727c6a018bbd6f5507b690bc5f0959e352', class: createColorClasses$1(this.color, {
31518
+ return (hAsync(Host, { key: 'd6e25c83d8eab8cb1a5b6ab411c9a13847f69f8d', class: createColorClasses$1(this.color, {
31124
31519
  [mode]: true,
31125
31520
  'has-value': hasValue,
31126
31521
  'has-focus': hasFocus,
@@ -31129,7 +31524,7 @@ class Textarea {
31129
31524
  [`textarea-shape-${shape}`]: shape !== undefined,
31130
31525
  [`textarea-label-placement-${labelPlacement}`]: true,
31131
31526
  'textarea-disabled': disabled,
31132
- }) }, 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()));
31527
+ }) }, 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()));
31133
31528
  }
31134
31529
  get el() { return getElement(this); }
31135
31530
  static get watchers() { return {
@@ -31191,7 +31586,7 @@ class Thumbnail {
31191
31586
  registerInstance(this, hostRef);
31192
31587
  }
31193
31588
  render() {
31194
- return (hAsync(Host, { key: 'ea55000055f941b0c79561e8934be6242ec8e114', class: getIonMode$1(this) }, hAsync("slot", { key: 'a4f934f442797f5c66a77e0ef8920fdd07c204f2' })));
31589
+ return (hAsync(Host, { key: 'cfa9aeb1d4fd624a9732c5230d29dd887e4b7771', class: getIonMode$1(this) }, hAsync("slot", { key: '29bc6e64063cba44e2643228df54394883933918' })));
31195
31590
  }
31196
31591
  static get style() { return IonThumbnailStyle0; }
31197
31592
  static get cmpMeta() { return {
@@ -32027,9 +32422,9 @@ class Toast {
32027
32422
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
32028
32423
  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);
32029
32424
  }
32030
- return (hAsync(Host, Object.assign({ key: '68c336f80af04ba484ca9899bae8f40c0d9b7691', tabindex: "-1" }, this.htmlAttributes, { style: {
32425
+ return (hAsync(Host, Object.assign({ key: 'c05655ff06af8d0e48c2a85396b07ad942fa81b4', tabindex: "-1" }, this.htmlAttributes, { style: {
32031
32426
  zIndex: `${60000 + this.overlayIndex}`,
32032
- }, 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')))));
32427
+ }, 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')))));
32033
32428
  }
32034
32429
  get el() { return getElement(this); }
32035
32430
  static get watchers() { return {
@@ -32249,7 +32644,7 @@ class Toggle {
32249
32644
  const value = this.getValue();
32250
32645
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32251
32646
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32252
- return (hAsync(Host, { key: '8f024fb0fbc2d4442be0574b03450426e8e4fc9e', onClick: this.onClick, class: createColorClasses$1(color, {
32647
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
32253
32648
  [mode]: true,
32254
32649
  'in-item': hostContext('ion-item', el),
32255
32650
  'toggle-activated': activated,
@@ -32259,10 +32654,10 @@ class Toggle {
32259
32654
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32260
32655
  [`toggle-label-placement-${labelPlacement}`]: true,
32261
32656
  [`toggle-${rtl}`]: true,
32262
- }) }, 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: {
32657
+ }) }, 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: {
32263
32658
  'label-text-wrapper': true,
32264
32659
  'label-text-wrapper-hidden': !this.hasLabel,
32265
- }, part: "label" }, hAsync("slot", { key: '7a6ea9515d454d80615f0622f361c5f91b41345c' })), hAsync("div", { key: '6d3670b81b8f809092c98b3f3b8e483ddf6a7cac', class: "native-wrapper" }, this.renderToggleControl()))));
32660
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
32266
32661
  }
32267
32662
  get el() { return getElement(this); }
32268
32663
  static get watchers() { return {
@@ -32366,10 +32761,10 @@ class Toolbar {
32366
32761
  this.childrenStyles.forEach((value) => {
32367
32762
  Object.assign(childStyles, value);
32368
32763
  });
32369
- return (hAsync(Host, { key: '4bb3a55001408a3bdf033af76b9196cb96c07c09', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32764
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32370
32765
  [mode]: true,
32371
32766
  'in-toolbar': hostContext('ion-toolbar', this.el),
32372
- })) }, 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" }))));
32767
+ })) }, 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" }))));
32373
32768
  }
32374
32769
  get el() { return getElement(this); }
32375
32770
  static get style() { return {
@@ -32419,11 +32814,11 @@ class ToolbarTitle {
32419
32814
  render() {
32420
32815
  const mode = getIonMode$1(this);
32421
32816
  const size = this.getSize();
32422
- return (hAsync(Host, { key: '5a58dc437a6f4257244bbdd7e9a682a17d8c9a6b', class: createColorClasses$1(this.color, {
32817
+ return (hAsync(Host, { key: '7293d2ecd6262feb0d8d769effbb208230baed89', class: createColorClasses$1(this.color, {
32423
32818
  [mode]: true,
32424
32819
  [`title-${size}`]: true,
32425
32820
  'title-rtl': document.dir === 'rtl',
32426
- }) }, hAsync("div", { key: '58682ea7b8f47a08adfad419b5c76b34784c6501', class: "toolbar-title" }, hAsync("slot", { key: '8a9248534e4c3076f5e2dfda38ef86069796851c' }))));
32821
+ }) }, hAsync("div", { key: '086ec3a361ebdf6506846a8704b457cda3a6f897', class: "toolbar-title" }, hAsync("slot", { key: '59add7eb92b82d6832a8f0894f897c51fdf4f214' }))));
32427
32822
  }
32428
32823
  get el() { return getElement(this); }
32429
32824
  static get watchers() { return {
@@ -32524,7 +32919,10 @@ registerComponents([
32524
32919
  Searchbar,
32525
32920
  Segment,
32526
32921
  SegmentButton,
32922
+ SegmentContent,
32923
+ SegmentView,
32527
32924
  Select,
32925
+ SelectModal,
32528
32926
  SelectOption,
32529
32927
  SelectPopover,
32530
32928
  SkeletonText,