voyager-ionic-core 7.7.3 → 7.8.6

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 (610) hide show
  1. package/components/action-sheet.js +3 -3
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +1 -1
  4. package/components/button.js +4 -4
  5. package/components/buttons.js +1 -1
  6. package/components/checkbox.js +1 -1
  7. package/components/data.js +23 -38
  8. package/components/hardware-back-button.js +3 -3
  9. package/components/input-shims.js +5 -5
  10. package/components/ion-app.js +4 -4
  11. package/components/ion-avatar.js +1 -1
  12. package/components/ion-back-button.js +2 -2
  13. package/components/ion-badge.js +2 -2
  14. package/components/ion-breadcrumb.js +4 -4
  15. package/components/ion-breadcrumbs.js +2 -2
  16. package/components/ion-card-content.js +1 -1
  17. package/components/ion-card-header.js +2 -2
  18. package/components/ion-card-subtitle.js +2 -2
  19. package/components/ion-card-title.js +2 -2
  20. package/components/ion-card.js +1 -1
  21. package/components/ion-chip.js +2 -2
  22. package/components/ion-col.js +2 -2
  23. package/components/ion-content.js +3 -3
  24. package/components/ion-datetime-button.js +12 -11
  25. package/components/ion-datetime.js +75 -12
  26. package/components/ion-fab-button.js +2 -2
  27. package/components/ion-fab-list.js +2 -2
  28. package/components/ion-fab.js +2 -2
  29. package/components/ion-footer.js +2 -2
  30. package/components/ion-grid.js +2 -2
  31. package/components/ion-header.js +3 -3
  32. package/components/ion-img.js +1 -1
  33. package/components/ion-infinite-scroll-content.js +2 -2
  34. package/components/ion-infinite-scroll.js +1 -1
  35. package/components/ion-input.js +8 -0
  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 +3 -3
  45. package/components/ion-modal.js +81 -25
  46. package/components/ion-nav-link.js +1 -1
  47. package/components/ion-nav.js +1 -1
  48. package/components/ion-picker.js +2 -2
  49. package/components/ion-progress-bar.js +1 -1
  50. package/components/ion-range.js +126 -21
  51. package/components/ion-refresher-content.js +1 -1
  52. package/components/ion-refresher.js +1 -1
  53. package/components/ion-reorder-group.js +1 -1
  54. package/components/ion-reorder.js +1 -1
  55. package/components/ion-router-link.js +2 -2
  56. package/components/ion-router-outlet.js +1 -1
  57. package/components/ion-row.js +1 -1
  58. package/components/ion-searchbar.js +35 -6
  59. package/components/ion-segment-button.js +3 -3
  60. package/components/ion-segment.js +2 -2
  61. package/components/ion-select-option.js +1 -1
  62. package/components/ion-skeleton-text.js +2 -2
  63. package/components/ion-split-pane.js +2 -2
  64. package/components/ion-tab-bar.js +2 -2
  65. package/components/ion-tab-button.js +2 -2
  66. package/components/ion-tab.js +2 -2
  67. package/components/ion-tabs.js +1 -1
  68. package/components/ion-text.js +2 -2
  69. package/components/ion-thumbnail.js +1 -1
  70. package/components/ion-title.js +2 -2
  71. package/components/ion-toast.js +2 -2
  72. package/components/ion-toolbar.js +2 -2
  73. package/components/item.js +1 -1
  74. package/components/label.js +1 -1
  75. package/components/list-header.js +2 -2
  76. package/components/list.js +1 -1
  77. package/components/note.js +2 -2
  78. package/components/overlays.js +61 -19
  79. package/components/picker-column-internal.js +8 -4
  80. package/components/picker-column.js +2 -2
  81. package/components/picker-internal.js +2 -2
  82. package/components/popover.js +4 -4
  83. package/components/radio-group.js +1 -1
  84. package/components/ripple-effect.js +1 -1
  85. package/components/select-popover.js +1 -1
  86. package/components/spinner.js +1 -1
  87. package/css/core.css +1 -561
  88. package/css/core.css.map +1 -1
  89. package/css/display.css +1 -131
  90. package/css/display.css.map +1 -1
  91. package/css/flex-utils.css +1 -81
  92. package/css/flex-utils.css.map +1 -1
  93. package/css/float-elements.css +1 -293
  94. package/css/float-elements.css.map +1 -1
  95. package/css/global.bundle.css +1 -457
  96. package/css/global.bundle.css.map +1 -1
  97. package/css/ionic-swiper.css +1 -127
  98. package/css/ionic-swiper.css.map +1 -1
  99. package/css/ionic.bundle.css +1 -1
  100. package/css/ionic.bundle.css.map +1 -1
  101. package/css/normalize.css +1 -150
  102. package/css/normalize.css.map +1 -1
  103. package/css/padding.css +1 -202
  104. package/css/padding.css.map +1 -1
  105. package/css/structure.css +1 -152
  106. package/css/structure.css.map +1 -1
  107. package/css/text-alignment.css +1 -243
  108. package/css/text-alignment.css.map +1 -1
  109. package/css/text-transformation.css +1 -158
  110. package/css/text-transformation.css.map +1 -1
  111. package/css/typography.css +1 -157
  112. package/css/typography.css.map +1 -1
  113. package/css/utils.bundle.css +1 -1100
  114. package/css/utils.bundle.css.map +1 -1
  115. package/dist/cjs/{app-globals-92ad1b3d.js → app-globals-c5eb104c.js} +1 -1
  116. package/dist/cjs/{button-active-2d6520ec.js → button-active-181d142e.js} +1 -1
  117. package/dist/cjs/{data-a5109f09.js → data-4487a815.js} +22 -39
  118. package/dist/cjs/{hardware-back-button-2696acaf.js → hardware-back-button-adba3ac7.js} +5 -5
  119. package/dist/cjs/{index-9bfcb6e8.js → index-1f7c54f8.js} +3 -3
  120. package/dist/cjs/{index-0ffe376d.js → index-22617dd6.js} +51 -7
  121. package/dist/cjs/{index-4c96691f.js → index-5c38afe7.js} +2 -2
  122. package/dist/cjs/index.cjs.js +8 -8
  123. package/dist/cjs/{input-shims-a9a85bb9.js → input-shims-05ac9905.js} +5 -5
  124. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  125. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  126. package/dist/cjs/ion-alert.cjs.entry.js +7 -7
  127. package/dist/cjs/ion-app_8.cjs.entry.js +24 -24
  128. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  129. package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
  130. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  131. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -8
  132. package/dist/cjs/ion-button_2.cjs.entry.js +6 -6
  133. package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
  134. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -3
  135. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  136. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  137. package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -13
  138. package/dist/cjs/ion-datetime_3.cjs.entry.js +80 -20
  139. package/dist/cjs/ion-fab_3.cjs.entry.js +8 -8
  140. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  141. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  142. package/dist/cjs/ion-input.cjs.entry.js +10 -2
  143. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  144. package/dist/cjs/ion-item_8.cjs.entry.js +14 -14
  145. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  146. package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
  147. package/dist/cjs/ion-modal.cjs.entry.js +86 -30
  148. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
  149. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +10 -6
  150. package/dist/cjs/ion-picker-internal.cjs.entry.js +3 -3
  151. package/dist/cjs/ion-popover.cjs.entry.js +9 -9
  152. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  153. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  154. package/dist/cjs/ion-range.cjs.entry.js +128 -23
  155. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  156. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  157. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  158. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  159. package/dist/cjs/ion-searchbar.cjs.entry.js +31 -7
  160. package/dist/cjs/ion-segment_2.cjs.entry.js +7 -7
  161. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  162. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  163. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  164. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  165. package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
  166. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  167. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  168. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  169. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  170. package/dist/cjs/{ionic-global-59a10130.js → ionic-global-c5503e93.js} +1 -1
  171. package/dist/cjs/ionic.cjs.js +5 -5
  172. package/dist/cjs/{ios.transition-96679580.js → ios.transition-30830fc4.js} +2 -2
  173. package/dist/cjs/loader.cjs.js +4 -4
  174. package/dist/cjs/{md.transition-d6c98822.js → md.transition-7f581866.js} +2 -2
  175. package/dist/cjs/{overlays-db5d96f3.js → overlays-129dfc13.js} +62 -20
  176. package/dist/cjs/{status-tap-7ad5f0fb.js → status-tap-03d82840.js} +1 -1
  177. package/dist/collection/collection-manifest.json +2 -2
  178. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  179. package/dist/collection/components/alert/alert.js +2 -2
  180. package/dist/collection/components/alert/test/a11y/alert.e2e.js +4 -0
  181. package/dist/collection/components/app/app.js +4 -4
  182. package/dist/collection/components/avatar/avatar.js +1 -1
  183. package/dist/collection/components/back-button/back-button.js +2 -2
  184. package/dist/collection/components/backdrop/backdrop.js +1 -1
  185. package/dist/collection/components/badge/badge.js +2 -2
  186. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  187. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  188. package/dist/collection/components/button/button.ios.css +5 -5
  189. package/dist/collection/components/button/button.js +2 -2
  190. package/dist/collection/components/button/button.md.css +4 -5
  191. package/dist/collection/components/buttons/buttons.js +1 -1
  192. package/dist/collection/components/card/card.js +1 -1
  193. package/dist/collection/components/card-content/card-content.js +1 -1
  194. package/dist/collection/components/card-header/card-header.js +2 -2
  195. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  196. package/dist/collection/components/card-title/card-title.js +2 -2
  197. package/dist/collection/components/checkbox/checkbox.js +1 -1
  198. package/dist/collection/components/checkbox/test/checkbox.spec.js +12 -0
  199. package/dist/collection/components/chip/chip.js +2 -2
  200. package/dist/collection/components/col/col.js +2 -2
  201. package/dist/collection/components/content/content.js +3 -3
  202. package/dist/collection/components/datetime/datetime.js +56 -12
  203. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +80 -1
  204. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  205. package/dist/collection/components/datetime/utils/format.js +24 -37
  206. package/dist/collection/components/datetime/utils/validate.js +45 -0
  207. package/dist/collection/components/datetime-button/datetime-button.js +12 -11
  208. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
  209. package/dist/collection/components/fab/fab.js +2 -2
  210. package/dist/collection/components/fab-button/fab-button.js +2 -2
  211. package/dist/collection/components/fab-list/fab-list.js +2 -2
  212. package/dist/collection/components/footer/footer.js +2 -2
  213. package/dist/collection/components/grid/grid.js +2 -2
  214. package/dist/collection/components/header/header.ios.css +5 -2
  215. package/dist/collection/components/header/header.js +2 -2
  216. package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
  217. package/dist/collection/components/img/img.js +1 -1
  218. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  219. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  220. package/dist/collection/components/input/input.js +8 -0
  221. package/dist/collection/components/item/item.js +1 -1
  222. package/dist/collection/components/item/test/buttons/item.e2e.js +20 -4
  223. package/dist/collection/components/item-divider/item-divider.js +2 -2
  224. package/dist/collection/components/item-group/item-group.js +1 -1
  225. package/dist/collection/components/item-option/item-option.js +2 -2
  226. package/dist/collection/components/item-options/item-options.js +1 -1
  227. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  228. package/dist/collection/components/label/label.js +1 -1
  229. package/dist/collection/components/list/list.js +1 -1
  230. package/dist/collection/components/list-header/list-header.js +2 -2
  231. package/dist/collection/components/loading/loading.js +2 -2
  232. package/dist/collection/components/menu/menu.js +3 -3
  233. package/dist/collection/components/menu-button/menu-button.js +2 -2
  234. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  235. package/dist/collection/components/modal/gestures/sheet.js +45 -20
  236. package/dist/collection/components/modal/modal.js +38 -6
  237. package/dist/collection/components/modal/test/modal-attributes.spec.js +32 -0
  238. package/dist/collection/components/nav/nav.js +1 -1
  239. package/dist/collection/components/nav-link/nav-link.js +1 -1
  240. package/dist/collection/components/note/note.js +2 -2
  241. package/dist/collection/components/picker/picker.js +2 -2
  242. package/dist/collection/components/picker-column/picker-column.js +2 -2
  243. package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
  244. package/dist/collection/components/picker-internal/picker-internal.js +2 -2
  245. package/dist/collection/components/popover/popover.ios.css +0 -1
  246. package/dist/collection/components/popover/popover.js +2 -2
  247. package/dist/collection/components/popover/popover.md.css +0 -1
  248. package/dist/collection/components/popover/test/basic/popover.e2e.js +76 -0
  249. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  250. package/dist/collection/components/radio-group/radio-group.js +1 -1
  251. package/dist/collection/components/range/range.js +126 -21
  252. package/dist/collection/components/range/test/range-events.e2e.js +27 -0
  253. package/dist/collection/components/refresher/refresher.js +1 -1
  254. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  255. package/dist/collection/components/reorder/reorder.js +1 -1
  256. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  257. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  258. package/dist/collection/components/router-link/router-link.js +2 -2
  259. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  260. package/dist/collection/components/row/row.js +1 -1
  261. package/dist/collection/components/searchbar/searchbar.js +86 -6
  262. package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
  263. package/dist/collection/components/segment/segment.js +2 -2
  264. package/dist/collection/components/segment-button/segment-button.js +3 -3
  265. package/dist/collection/components/select-option/select-option.js +1 -1
  266. package/dist/collection/components/select-popover/select-popover.js +1 -1
  267. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  268. package/dist/collection/components/spinner/spinner.js +1 -1
  269. package/dist/collection/components/split-pane/split-pane.js +2 -2
  270. package/dist/collection/components/tab/tab.js +2 -2
  271. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  272. package/dist/collection/components/tab-button/tab-button.js +2 -2
  273. package/dist/collection/components/tabs/tabs.js +1 -1
  274. package/dist/collection/components/text/text.js +2 -2
  275. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  276. package/dist/collection/components/title/title.js +2 -2
  277. package/dist/collection/components/toast/toast.js +2 -2
  278. package/dist/collection/components/toggle/toggle.js +1 -1
  279. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +133 -5
  280. package/dist/collection/components/toolbar/toolbar.js +2 -2
  281. package/dist/collection/utils/hardware-back-button.js +2 -2
  282. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -5
  283. package/dist/collection/utils/overlays.js +61 -19
  284. package/dist/collection/utils/test/overlays/overlays.spec.js +53 -0
  285. package/dist/docs.json +117 -4
  286. package/dist/esm/{app-globals-5cf6195b.js → app-globals-318eef52.js} +1 -1
  287. package/dist/esm/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
  288. package/dist/esm/{data-0f3ab200.js → data-bb424ba8.js} +23 -38
  289. package/dist/esm/{hardware-back-button-b410a047.js → hardware-back-button-6107a37c.js} +5 -5
  290. package/dist/esm/{index-e1b622e3.js → index-6e05b96e.js} +2 -2
  291. package/dist/esm/{index-4c30cddd.js → index-a1a47f01.js} +51 -7
  292. package/dist/esm/{index-348ed70a.js → index-fae1515c.js} +3 -3
  293. package/dist/esm/index.js +8 -8
  294. package/dist/esm/{input-shims-5329bbe8.js → input-shims-a52daa3a.js} +5 -5
  295. package/dist/esm/ion-accordion_2.entry.js +2 -2
  296. package/dist/esm/ion-action-sheet.entry.js +8 -8
  297. package/dist/esm/ion-alert.entry.js +7 -7
  298. package/dist/esm/ion-app_8.entry.js +24 -24
  299. package/dist/esm/ion-avatar_3.entry.js +6 -6
  300. package/dist/esm/ion-back-button.entry.js +4 -4
  301. package/dist/esm/ion-backdrop.entry.js +3 -3
  302. package/dist/esm/ion-breadcrumb_2.entry.js +8 -8
  303. package/dist/esm/ion-button_2.entry.js +6 -6
  304. package/dist/esm/ion-card_5.entry.js +10 -10
  305. package/dist/esm/ion-checkbox.entry.js +3 -3
  306. package/dist/esm/ion-chip.entry.js +4 -4
  307. package/dist/esm/ion-col_3.entry.js +7 -7
  308. package/dist/esm/ion-datetime-button.entry.js +14 -13
  309. package/dist/esm/ion-datetime_3.entry.js +80 -20
  310. package/dist/esm/ion-fab_3.entry.js +8 -8
  311. package/dist/esm/ion-img.entry.js +3 -3
  312. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  313. package/dist/esm/ion-input.entry.js +10 -2
  314. package/dist/esm/ion-item-option_3.entry.js +6 -6
  315. package/dist/esm/ion-item_8.entry.js +14 -14
  316. package/dist/esm/ion-loading.entry.js +6 -6
  317. package/dist/esm/ion-menu_3.entry.js +11 -11
  318. package/dist/esm/ion-modal.entry.js +86 -30
  319. package/dist/esm/ion-nav_2.entry.js +5 -5
  320. package/dist/esm/ion-picker-column-internal.entry.js +10 -6
  321. package/dist/esm/ion-picker-internal.entry.js +3 -3
  322. package/dist/esm/ion-popover.entry.js +9 -9
  323. package/dist/esm/ion-progress-bar.entry.js +3 -3
  324. package/dist/esm/ion-radio_2.entry.js +3 -3
  325. package/dist/esm/ion-range.entry.js +128 -23
  326. package/dist/esm/ion-refresher_2.entry.js +4 -4
  327. package/dist/esm/ion-reorder_2.entry.js +4 -4
  328. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  329. package/dist/esm/ion-route_4.entry.js +4 -4
  330. package/dist/esm/ion-searchbar.entry.js +32 -8
  331. package/dist/esm/ion-segment_2.entry.js +7 -7
  332. package/dist/esm/ion-select_3.entry.js +6 -6
  333. package/dist/esm/ion-spinner.entry.js +3 -3
  334. package/dist/esm/ion-split-pane.entry.js +4 -4
  335. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  336. package/dist/esm/ion-tab_2.entry.js +4 -4
  337. package/dist/esm/ion-text.entry.js +4 -4
  338. package/dist/esm/ion-textarea.entry.js +2 -2
  339. package/dist/esm/ion-toast.entry.js +6 -6
  340. package/dist/esm/ion-toggle.entry.js +2 -2
  341. package/dist/esm/{ionic-global-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
  342. package/dist/esm/ionic.js +6 -6
  343. package/dist/esm/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +2 -2
  344. package/dist/esm/loader.js +5 -5
  345. package/dist/esm/{md.transition-b8224313.js → md.transition-0da92976.js} +2 -2
  346. package/dist/esm/{overlays-19b26885.js → overlays-b874c3c3.js} +62 -20
  347. package/dist/esm/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
  348. package/dist/esm-es5/app-globals-318eef52.js +4 -0
  349. package/dist/esm-es5/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
  350. package/dist/esm-es5/data-bb424ba8.js +4 -0
  351. package/dist/esm-es5/framework-delegate-ed4ba327.js +2 -2
  352. package/dist/esm-es5/hardware-back-button-6107a37c.js +4 -0
  353. package/dist/esm-es5/index-6e05b96e.js +4 -0
  354. package/dist/esm-es5/index-a1a47f01.js +5 -0
  355. package/dist/esm-es5/{index-348ed70a.js → index-fae1515c.js} +1 -1
  356. package/dist/esm-es5/index.js +1 -1
  357. package/dist/esm-es5/input-shims-a52daa3a.js +4 -0
  358. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  359. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  360. package/dist/esm-es5/ion-alert.entry.js +1 -1
  361. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  362. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  363. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  364. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  365. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  366. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  367. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  368. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  369. package/dist/esm-es5/ion-chip.entry.js +1 -1
  370. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  371. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  372. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  373. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  374. package/dist/esm-es5/ion-img.entry.js +1 -1
  375. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  376. package/dist/esm-es5/ion-input.entry.js +1 -1
  377. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  378. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  379. package/dist/esm-es5/ion-loading.entry.js +1 -1
  380. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  381. package/dist/esm-es5/ion-modal.entry.js +1 -1
  382. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  383. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  384. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  385. package/dist/esm-es5/ion-popover.entry.js +1 -1
  386. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  387. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  388. package/dist/esm-es5/ion-range.entry.js +1 -1
  389. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  390. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  391. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  392. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  393. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  394. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  395. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  396. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  397. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  398. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  399. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  400. package/dist/esm-es5/ion-text.entry.js +1 -1
  401. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  402. package/dist/esm-es5/ion-toast.entry.js +1 -1
  403. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  404. package/dist/esm-es5/{ionic-global-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
  405. package/dist/esm-es5/ionic.js +1 -1
  406. package/dist/esm-es5/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +1 -1
  407. package/dist/esm-es5/loader.js +1 -1
  408. package/dist/esm-es5/md.transition-0da92976.js +4 -0
  409. package/dist/esm-es5/overlays-b874c3c3.js +4 -0
  410. package/dist/esm-es5/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
  411. package/dist/html.html-data.json +13 -1
  412. package/dist/ionic/index.esm.js +1 -1
  413. package/dist/ionic/ionic.esm.js +1 -1
  414. package/dist/ionic/ionic.js +1 -1
  415. package/dist/ionic/{p-05253db9.js → p-0047bd0e.js} +1 -1
  416. package/dist/ionic/{p-ebc86ce9.system.entry.js → p-01a1ff55.system.entry.js} +1 -1
  417. package/dist/ionic/{p-2178329b.entry.js → p-01de45e4.entry.js} +1 -1
  418. package/dist/ionic/{p-125f8cdd.system.js → p-0609a7d8.system.js} +1 -1
  419. package/dist/ionic/{p-cfb4d7e0.js → p-08ab4c96.js} +1 -1
  420. package/dist/ionic/{p-76b8bcb8.system.entry.js → p-094cb5ba.system.entry.js} +1 -1
  421. package/dist/ionic/{p-6812d37d.js → p-0aac3a1c.js} +1 -1
  422. package/dist/ionic/{p-de55ec45.js → p-0b743628.js} +1 -1
  423. package/dist/ionic/p-185d82fc.entry.js +4 -0
  424. package/dist/ionic/p-193921ce.entry.js +4 -0
  425. package/dist/ionic/p-1cd372ed.js +4 -0
  426. package/dist/ionic/{p-a6c0a380.js → p-1e151efb.js} +1 -1
  427. package/dist/ionic/{p-7f30ad48.entry.js → p-211d8901.entry.js} +1 -1
  428. package/dist/ionic/p-212f2c37.entry.js +4 -0
  429. package/dist/ionic/p-2433bf5e.system.js +4 -0
  430. package/dist/ionic/p-2732a6ce.entry.js +4 -0
  431. package/dist/ionic/{p-89ca4c4b.system.js → p-280f1fe7.system.js} +1 -1
  432. package/dist/ionic/p-2c1408df.system.js +5 -0
  433. package/dist/ionic/p-2e2808f3.entry.js +4 -0
  434. package/dist/ionic/{p-70fbf4e2.entry.js → p-32086ea4.entry.js} +1 -1
  435. package/dist/ionic/{p-16a61810.entry.js → p-339dee28.entry.js} +1 -1
  436. package/dist/ionic/{p-88e9052d.entry.js → p-34e2b446.entry.js} +1 -1
  437. package/dist/ionic/{p-6e23d039.entry.js → p-374838e4.entry.js} +1 -1
  438. package/dist/ionic/p-3789920e.js +4 -0
  439. package/dist/ionic/{p-bdca4784.js → p-37aab7f7.js} +1 -1
  440. package/dist/ionic/p-3b7d328b.system.entry.js +4 -0
  441. package/dist/ionic/{p-02542247.system.entry.js → p-3b9edd02.system.entry.js} +1 -1
  442. package/dist/ionic/{p-d143fefa.system.entry.js → p-3d23a234.system.entry.js} +1 -1
  443. package/dist/ionic/{p-717e2526.system.entry.js → p-3f75319a.system.entry.js} +2 -2
  444. package/dist/ionic/p-47686f0a.system.entry.js +4 -0
  445. package/dist/ionic/{p-18918a24.system.entry.js → p-47d7ffb4.system.entry.js} +1 -1
  446. package/dist/ionic/{p-7e838f43.system.entry.js → p-48331301.system.entry.js} +1 -1
  447. package/dist/ionic/{p-a3df16b9.system.entry.js → p-491ec3d6.system.entry.js} +1 -1
  448. package/dist/ionic/p-495aabd4.system.entry.js +4 -0
  449. package/dist/ionic/{p-b0aa3806.system.entry.js → p-49616da4.system.entry.js} +1 -1
  450. package/dist/ionic/p-4c68b459.system.entry.js +4 -0
  451. package/dist/ionic/{p-5cb5f63d.system.entry.js → p-4cc54847.system.entry.js} +1 -1
  452. package/dist/ionic/p-4da978ac.entry.js +4 -0
  453. package/dist/ionic/{p-5de920f4.system.entry.js → p-4f9018d4.system.entry.js} +1 -1
  454. package/dist/ionic/{p-baf8eeac.system.entry.js → p-55ae3e14.system.entry.js} +1 -1
  455. package/dist/ionic/{p-9de75bac.system.entry.js → p-56271222.system.entry.js} +1 -1
  456. package/dist/ionic/{p-80aed9fb.system.entry.js → p-565a12d7.system.entry.js} +1 -1
  457. package/dist/ionic/{p-7e16220b.entry.js → p-56b810d5.entry.js} +1 -1
  458. package/dist/ionic/{p-a85d9047.system.entry.js → p-5a0345f7.system.entry.js} +1 -1
  459. package/dist/ionic/{p-f0e54781.system.entry.js → p-5b8d7cdb.system.entry.js} +1 -1
  460. package/dist/ionic/p-5d2011e1.entry.js +4 -0
  461. package/dist/ionic/p-5f3d659f.entry.js +4 -0
  462. package/dist/ionic/p-6236eae6.entry.js +4 -0
  463. package/dist/ionic/{p-4b8a620f.system.entry.js → p-625ef2fb.system.entry.js} +1 -1
  464. package/dist/ionic/{p-6525a8cd.system.js → p-638865d1.system.js} +1 -1
  465. package/dist/ionic/p-662cccde.entry.js +4 -0
  466. package/dist/ionic/p-68416ff0.entry.js +4 -0
  467. package/dist/ionic/{p-91f4e611.system.entry.js → p-686ddecb.system.entry.js} +2 -2
  468. package/dist/ionic/p-6a6550fa.js +4 -0
  469. package/dist/ionic/p-6a6c61b1.system.entry.js +4 -0
  470. package/dist/ionic/p-6afef6c1.system.js +2 -2
  471. package/dist/ionic/{p-abcedc15.system.entry.js → p-6b178502.system.entry.js} +1 -1
  472. package/dist/ionic/{p-2c86025e.system.js → p-6ecddf53.system.js} +1 -1
  473. package/dist/ionic/{p-822730c4.entry.js → p-70929384.entry.js} +1 -1
  474. package/dist/ionic/p-73d70509.system.js +4 -0
  475. package/dist/ionic/{p-c1a871ff.system.entry.js → p-776f7b9e.system.entry.js} +1 -1
  476. package/dist/ionic/p-7872e970.system.entry.js +4 -0
  477. package/dist/ionic/{p-657ccdd6.entry.js → p-804ffec9.entry.js} +1 -1
  478. package/dist/ionic/{p-b27bba38.system.entry.js → p-81c8fa81.system.entry.js} +1 -1
  479. package/dist/ionic/{p-8e651c29.entry.js → p-8294b727.entry.js} +1 -1
  480. package/dist/ionic/p-8528c070.entry.js +4 -0
  481. package/dist/ionic/p-87e81684.system.entry.js +4 -0
  482. package/dist/ionic/p-8954015c.entry.js +4 -0
  483. package/dist/ionic/p-8a1b0abb.system.js +4 -0
  484. package/dist/ionic/{p-2765a571.system.entry.js → p-8a335b91.system.entry.js} +1 -1
  485. package/dist/ionic/{p-479f5926.system.entry.js → p-8eba832c.system.entry.js} +1 -1
  486. package/dist/ionic/{p-b58686e0.entry.js → p-8ed4de58.entry.js} +1 -1
  487. package/dist/ionic/{p-a02ea777.entry.js → p-917bb906.entry.js} +1 -1
  488. package/dist/ionic/{p-ae2b3a7a.system.entry.js → p-93f86b06.system.entry.js} +1 -1
  489. package/dist/ionic/p-9625a2e6.entry.js +4 -0
  490. package/dist/ionic/{p-288649db.system.entry.js → p-9bc8bd0c.system.entry.js} +1 -1
  491. package/dist/ionic/{p-6f59cdbc.system.entry.js → p-9d53b773.system.entry.js} +2 -2
  492. package/dist/ionic/{p-dff97cfa.entry.js → p-9fbfbaef.entry.js} +1 -1
  493. package/dist/ionic/p-a04ecf1a.system.js +4 -0
  494. package/dist/ionic/{p-9998cb62.system.entry.js → p-a3b2d4a7.system.entry.js} +2 -2
  495. package/dist/ionic/{p-973b4db3.entry.js → p-a5cd2e1f.entry.js} +1 -1
  496. package/dist/ionic/p-a5d9fafe.entry.js +4 -0
  497. package/dist/ionic/{p-df504a37.system.js → p-a875459d.system.js} +1 -1
  498. package/dist/ionic/p-ad60590b.entry.js +4 -0
  499. package/dist/ionic/{p-c7288e78.system.entry.js → p-b1bebf4a.system.entry.js} +1 -1
  500. package/dist/ionic/p-b535c93a.entry.js +4 -0
  501. package/dist/ionic/p-b8735394.entry.js +4 -0
  502. package/dist/ionic/p-bb5bbcdf.js +4 -0
  503. package/dist/ionic/p-c379d010.system.entry.js +4 -0
  504. package/dist/ionic/{p-ce1c0a0e.system.entry.js → p-c5ce0862.system.entry.js} +2 -2
  505. package/dist/ionic/p-c76ef1ea.entry.js +4 -0
  506. package/dist/ionic/p-c8580577.system.js +4 -0
  507. package/dist/ionic/{p-2c4bfe1c.entry.js → p-cc0cf2d1.entry.js} +1 -1
  508. package/dist/ionic/{p-15a40a0b.system.entry.js → p-d3a95477.system.entry.js} +1 -1
  509. package/dist/ionic/{p-ceceac26.js → p-d68ecea4.js} +1 -1
  510. package/dist/ionic/p-d873a8c2.system.entry.js +4 -0
  511. package/dist/ionic/{p-079da3df.entry.js → p-dbd77435.entry.js} +1 -1
  512. package/dist/ionic/p-dc2d302c.entry.js +4 -0
  513. package/dist/ionic/{p-7670acd8.entry.js → p-dd2996cf.entry.js} +1 -1
  514. package/dist/ionic/{p-4788693d.entry.js → p-dec423a3.entry.js} +1 -1
  515. package/dist/ionic/{p-2ea71956.system.entry.js → p-deeae694.system.entry.js} +1 -1
  516. package/dist/ionic/p-e06d65b3.system.entry.js +4 -0
  517. package/dist/ionic/{p-cbcffe6e.system.js → p-e0948431.system.js} +1 -1
  518. package/dist/ionic/{p-86813176.system.entry.js → p-e15cfec4.system.entry.js} +1 -1
  519. package/dist/ionic/p-e1bd8d9c.system.entry.js +4 -0
  520. package/dist/ionic/{p-1636923f.system.js → p-e34eefb5.system.js} +1 -1
  521. package/dist/ionic/{p-b6279412.entry.js → p-e57a212a.entry.js} +1 -1
  522. package/dist/ionic/{p-437f4d02.system.entry.js → p-e6ee6ead.system.entry.js} +1 -1
  523. package/dist/ionic/p-e7055fb8.entry.js +4 -0
  524. package/dist/ionic/p-ea723fc4.entry.js +4 -0
  525. package/dist/ionic/p-ead0d463.js +5 -0
  526. package/dist/ionic/p-ed3ad350.entry.js +4 -0
  527. package/dist/ionic/{p-5d7e32ce.js → p-efef9f3a.js} +1 -1
  528. package/dist/ionic/p-f4ccaa64.entry.js +4 -0
  529. package/dist/ionic/{p-bcd9cad8.system.js → p-f4fb429a.system.js} +1 -1
  530. package/dist/ionic/p-f549716b.system.js +4 -0
  531. package/dist/ionic/p-f6a50d5c.entry.js +4 -0
  532. package/dist/ionic/p-fc053a55.entry.js +4 -0
  533. package/dist/ionic/{p-1f19958f.system.entry.js → p-fd059a23.system.entry.js} +1 -1
  534. package/dist/ionic/{p-e4e74b5f.system.entry.js → p-fdcf1482.system.entry.js} +1 -1
  535. package/dist/ionic/{p-3079950e.entry.js → p-fe3ae39d.entry.js} +1 -1
  536. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  537. package/dist/types/components/datetime/datetime.d.ts +10 -1
  538. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  539. package/dist/types/components/datetime/utils/manipulation.d.ts +7 -7
  540. package/dist/types/components/datetime/utils/state.d.ts +2 -2
  541. package/dist/types/components/datetime/utils/validate.d.ts +8 -0
  542. package/dist/types/components/input/input.utils.d.ts +1 -1
  543. package/dist/types/components/range/range.d.ts +29 -0
  544. package/dist/types/components/searchbar/searchbar.d.ts +37 -0
  545. package/dist/types/components/toggle/toggle.d.ts +1 -1
  546. package/dist/types/components.d.ts +36 -4
  547. package/dist/types/utils/framework-delegate.d.ts +1 -1
  548. package/dist/types/utils/hardware-back-button.d.ts +1 -1
  549. package/dist/types/utils/keyboard/keyboard-controller.d.ts +1 -1
  550. package/dist/types/utils/overlays.d.ts +2 -2
  551. package/hydrate/index.js +667 -316
  552. package/package.json +9 -5
  553. package/dist/collection/components/modal/test/a11y/modal.spec.js +0 -22
  554. package/dist/esm-es5/app-globals-5cf6195b.js +0 -4
  555. package/dist/esm-es5/data-0f3ab200.js +0 -4
  556. package/dist/esm-es5/hardware-back-button-b410a047.js +0 -4
  557. package/dist/esm-es5/index-4c30cddd.js +0 -5
  558. package/dist/esm-es5/index-e1b622e3.js +0 -4
  559. package/dist/esm-es5/input-shims-5329bbe8.js +0 -4
  560. package/dist/esm-es5/md.transition-b8224313.js +0 -4
  561. package/dist/esm-es5/overlays-19b26885.js +0 -4
  562. package/dist/ionic/p-021f9d72.entry.js +0 -4
  563. package/dist/ionic/p-02ad4bbe.js +0 -4
  564. package/dist/ionic/p-0b34d3a7.system.js +0 -4
  565. package/dist/ionic/p-12527c4b.entry.js +0 -4
  566. package/dist/ionic/p-1846513c.js +0 -4
  567. package/dist/ionic/p-1a680496.entry.js +0 -4
  568. package/dist/ionic/p-1f16d040.entry.js +0 -4
  569. package/dist/ionic/p-257046d2.system.js +0 -4
  570. package/dist/ionic/p-262024fd.entry.js +0 -4
  571. package/dist/ionic/p-2fd3c3dd.entry.js +0 -4
  572. package/dist/ionic/p-337ac0f5.entry.js +0 -4
  573. package/dist/ionic/p-36be3332.js +0 -4
  574. package/dist/ionic/p-482ea916.system.entry.js +0 -4
  575. package/dist/ionic/p-49f481cc.system.entry.js +0 -4
  576. package/dist/ionic/p-521b3971.entry.js +0 -4
  577. package/dist/ionic/p-644d03d7.system.entry.js +0 -4
  578. package/dist/ionic/p-6b6ca3f5.system.entry.js +0 -4
  579. package/dist/ionic/p-72fa96bf.system.js +0 -5
  580. package/dist/ionic/p-7330c044.system.js +0 -4
  581. package/dist/ionic/p-741a0f0d.system.entry.js +0 -4
  582. package/dist/ionic/p-7a615a5a.entry.js +0 -4
  583. package/dist/ionic/p-84b85535.entry.js +0 -4
  584. package/dist/ionic/p-85f66c3c.entry.js +0 -4
  585. package/dist/ionic/p-860e2539.system.entry.js +0 -4
  586. package/dist/ionic/p-8cc34120.entry.js +0 -4
  587. package/dist/ionic/p-9056778e.system.entry.js +0 -4
  588. package/dist/ionic/p-96084f36.entry.js +0 -4
  589. package/dist/ionic/p-97ca0cb9.system.js +0 -4
  590. package/dist/ionic/p-98aa0553.entry.js +0 -4
  591. package/dist/ionic/p-a1222c24.entry.js +0 -4
  592. package/dist/ionic/p-a4aa6dd2.system.entry.js +0 -4
  593. package/dist/ionic/p-a8459bfb.entry.js +0 -4
  594. package/dist/ionic/p-ae828bd9.system.entry.js +0 -4
  595. package/dist/ionic/p-b4d2f43c.system.js +0 -4
  596. package/dist/ionic/p-b727af6a.entry.js +0 -4
  597. package/dist/ionic/p-ba0fbecc.entry.js +0 -4
  598. package/dist/ionic/p-c1c7309e.entry.js +0 -4
  599. package/dist/ionic/p-cb3065b8.entry.js +0 -4
  600. package/dist/ionic/p-cb9812f7.entry.js +0 -4
  601. package/dist/ionic/p-d425b1de.entry.js +0 -4
  602. package/dist/ionic/p-d6c6541b.system.entry.js +0 -4
  603. package/dist/ionic/p-e1c52dc6.entry.js +0 -4
  604. package/dist/ionic/p-e626800f.system.entry.js +0 -4
  605. package/dist/ionic/p-e94c1402.entry.js +0 -4
  606. package/dist/ionic/p-ed4760ef.entry.js +0 -4
  607. package/dist/ionic/p-ed7a529f.js +0 -5
  608. package/dist/ionic/p-f02c41af.system.js +0 -4
  609. package/dist/ionic/p-f7dce541.js +0 -4
  610. package/dist/ionic/p-fa8d3b01.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  /*!
9
- Stencil Mock Doc v4.12.2 | MIT Licensed | https://stenciljs.com
9
+ Stencil Mock Doc v4.15.0 | MIT Licensed | https://stenciljs.com
10
10
  */
11
11
  const CONTENT_REF_ID = 'r';
12
12
  const ORG_LOCATION_ID = 'o';
@@ -385,6 +385,14 @@ class MockCustomElementRegistry {
385
385
  }
386
386
  return undefined;
387
387
  }
388
+ getName(cstr) {
389
+ for (const [tagName, def] of this.__registry.entries()) {
390
+ if (def.cstr === cstr) {
391
+ return tagName;
392
+ }
393
+ }
394
+ return undefined;
395
+ }
388
396
  upgrade(_rootNode) {
389
397
  //
390
398
  }
@@ -2741,6 +2749,13 @@ function humanReadableList(items) {
2741
2749
  return `${items.slice(0, items.length - 1).join(', ')} and ${items[items.length - 1]}`;
2742
2750
  }
2743
2751
 
2752
+ /**
2753
+ * Serialize a node (either a DOM node or a mock-doc node) to an HTML string
2754
+ *
2755
+ * @param elm the node to serialize
2756
+ * @param opts options to control serialization behavior
2757
+ * @returns an html string
2758
+ */
2744
2759
  function serializeNodeToHtml(elm, opts = {}) {
2745
2760
  const output = {
2746
2761
  currentLineWidth: 0,
@@ -2801,6 +2816,7 @@ function serializeNodeToHtml(elm, opts = {}) {
2801
2816
  return output.text.join('');
2802
2817
  }
2803
2818
  function serializeToHtml(node, opts, output, isShadowRoot) {
2819
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
2804
2820
  if (node.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */ || isShadowRoot) {
2805
2821
  const tagName = isShadowRoot ? 'mock:shadow-root' : getTagName(node);
2806
2822
  if (tagName === 'body') {
@@ -2808,12 +2824,12 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2808
2824
  }
2809
2825
  const ignoreTag = opts.excludeTags != null && opts.excludeTags.includes(tagName);
2810
2826
  if (ignoreTag === false) {
2811
- const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 ? isWithinWhitespaceSensitive(node) : false;
2827
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_a = opts.indentSpaces) !== null && _a !== void 0 ? _a : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
2812
2828
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
2813
2829
  output.text.push('\n');
2814
2830
  output.currentLineWidth = 0;
2815
2831
  }
2816
- if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
2832
+ if (((_b = opts.indentSpaces) !== null && _b !== void 0 ? _b : 0) > 0 && !isWithinWhitespaceSensitiveNode) {
2817
2833
  for (let i = 0; i < output.indent; i++) {
2818
2834
  output.text.push(' ');
2819
2835
  }
@@ -2838,7 +2854,9 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2838
2854
  const attrNamespaceURI = attr.namespaceURI;
2839
2855
  if (attrNamespaceURI == null) {
2840
2856
  output.currentLineWidth += attrName.length + 1;
2841
- if (opts.approximateLineWidth > 0 && output.currentLineWidth > opts.approximateLineWidth) {
2857
+ if (opts.approximateLineWidth &&
2858
+ opts.approximateLineWidth > 0 &&
2859
+ output.currentLineWidth > opts.approximateLineWidth) {
2842
2860
  output.text.push('\n' + attrName);
2843
2861
  output.currentLineWidth = 0;
2844
2862
  }
@@ -2895,7 +2913,8 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2895
2913
  }
2896
2914
  if (node.hasAttribute('style')) {
2897
2915
  const cssText = node.style.cssText;
2898
- if (opts.approximateLineWidth > 0 &&
2916
+ if (opts.approximateLineWidth &&
2917
+ opts.approximateLineWidth > 0 &&
2899
2918
  output.currentLineWidth + cssText.length + 10 > opts.approximateLineWidth) {
2900
2919
  output.text.push(`\nstyle="${cssText}">`);
2901
2920
  output.currentLineWidth = 0;
@@ -2912,14 +2931,14 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2912
2931
  }
2913
2932
  if (EMPTY_ELEMENTS.has(tagName) === false) {
2914
2933
  if (opts.serializeShadowRoot && node.shadowRoot != null) {
2915
- output.indent = output.indent + opts.indentSpaces;
2934
+ output.indent = output.indent + ((_c = opts.indentSpaces) !== null && _c !== void 0 ? _c : 0);
2916
2935
  serializeToHtml(node.shadowRoot, opts, output, true);
2917
- output.indent = output.indent - opts.indentSpaces;
2936
+ output.indent = output.indent - ((_d = opts.indentSpaces) !== null && _d !== void 0 ? _d : 0);
2918
2937
  if (opts.newLines &&
2919
2938
  (node.childNodes.length === 0 ||
2920
2939
  (node.childNodes.length === 1 &&
2921
2940
  node.childNodes[0].nodeType === 3 /* NODE_TYPES.TEXT_NODE */ &&
2922
- node.childNodes[0].nodeValue.trim() === ''))) {
2941
+ ((_e = node.childNodes[0].nodeValue) === null || _e === void 0 ? void 0 : _e.trim()) === ''))) {
2923
2942
  output.text.push('\n');
2924
2943
  output.currentLineWidth = 0;
2925
2944
  for (let i = 0; i < output.indent; i++) {
@@ -2936,9 +2955,9 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2936
2955
  childNodes[0].nodeType === 3 /* NODE_TYPES.TEXT_NODE */ &&
2937
2956
  (typeof childNodes[0].nodeValue !== 'string' || childNodes[0].nodeValue.trim() === '')) ;
2938
2957
  else {
2939
- const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 ? isWithinWhitespaceSensitive(node) : false;
2940
- if (!isWithinWhitespaceSensitiveNode && opts.indentSpaces > 0 && ignoreTag === false) {
2941
- output.indent = output.indent + opts.indentSpaces;
2958
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_f = opts.indentSpaces) !== null && _f !== void 0 ? _f : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
2959
+ if (!isWithinWhitespaceSensitiveNode && ((_g = opts.indentSpaces) !== null && _g !== void 0 ? _g : 0) > 0 && ignoreTag === false) {
2960
+ output.indent = output.indent + ((_h = opts.indentSpaces) !== null && _h !== void 0 ? _h : 0);
2942
2961
  }
2943
2962
  for (let i = 0; i < childNodeLength; i++) {
2944
2963
  serializeToHtml(childNodes[i], opts, output, false);
@@ -2948,8 +2967,8 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2948
2967
  output.text.push('\n');
2949
2968
  output.currentLineWidth = 0;
2950
2969
  }
2951
- if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
2952
- output.indent = output.indent - opts.indentSpaces;
2970
+ if (((_j = opts.indentSpaces) !== null && _j !== void 0 ? _j : 0) > 0 && !isWithinWhitespaceSensitiveNode) {
2971
+ output.indent = output.indent - ((_k = opts.indentSpaces) !== null && _k !== void 0 ? _k : 0);
2953
2972
  for (let i = 0; i < output.indent; i++) {
2954
2973
  output.text.push(' ');
2955
2974
  }
@@ -2964,7 +2983,7 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2964
2983
  }
2965
2984
  }
2966
2985
  }
2967
- if (opts.approximateLineWidth > 0 && STRUCTURE_ELEMENTS.has(tagName)) {
2986
+ if (((_l = opts.approximateLineWidth) !== null && _l !== void 0 ? _l : 0) > 0 && STRUCTURE_ELEMENTS.has(tagName)) {
2968
2987
  output.text.push('\n');
2969
2988
  output.currentLineWidth = 0;
2970
2989
  }
@@ -2984,13 +3003,15 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
2984
3003
  output.text.push(textContent);
2985
3004
  output.currentLineWidth += textContent.length;
2986
3005
  }
2987
- else if (opts.approximateLineWidth > 0 && !output.isWithinBody) ;
3006
+ else if (((_m = opts.approximateLineWidth) !== null && _m !== void 0 ? _m : 0) > 0 && !output.isWithinBody) ;
2988
3007
  else if (!opts.prettyHtml) {
2989
3008
  // this text node is only whitespace, and it's not
2990
3009
  // within a whitespace sensitive element like <pre> or <code>
2991
3010
  // so replace the entire white space with a single new line
2992
3011
  output.currentLineWidth += 1;
2993
- if (opts.approximateLineWidth > 0 && output.currentLineWidth > opts.approximateLineWidth) {
3012
+ if (opts.approximateLineWidth &&
3013
+ opts.approximateLineWidth > 0 &&
3014
+ output.currentLineWidth > opts.approximateLineWidth) {
2994
3015
  // good enough for a new line
2995
3016
  // for perf these are all just estimates
2996
3017
  // we don't care to ensure exact line lengths
@@ -3005,12 +3026,12 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
3005
3026
  }
3006
3027
  else {
3007
3028
  // this text node has text content
3008
- const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 || opts.prettyHtml ? isWithinWhitespaceSensitive(node) : false;
3029
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_o = opts.indentSpaces) !== null && _o !== void 0 ? _o : 0) > 0 || opts.prettyHtml ? isWithinWhitespaceSensitive(node) : false;
3009
3030
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
3010
3031
  output.text.push('\n');
3011
3032
  output.currentLineWidth = 0;
3012
3033
  }
3013
- if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
3034
+ if (((_p = opts.indentSpaces) !== null && _p !== void 0 ? _p : 0) > 0 && !isWithinWhitespaceSensitiveNode) {
3014
3035
  for (let i = 0; i < output.indent; i++) {
3015
3036
  output.text.push(' ');
3016
3037
  }
@@ -3022,7 +3043,7 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
3022
3043
  const parentTagName = node.parentNode != null && node.parentNode.nodeType === 1 /* NODE_TYPES.ELEMENT_NODE */
3023
3044
  ? node.parentNode.nodeName
3024
3045
  : null;
3025
- if (NON_ESCAPABLE_CONTENT.has(parentTagName)) {
3046
+ if (typeof parentTagName === 'string' && NON_ESCAPABLE_CONTENT.has(parentTagName)) {
3026
3047
  // this text node cannot have its content escaped since it's going
3027
3048
  // into an element like <style> or <script>
3028
3049
  if (isWithinWhitespaceSensitive(node)) {
@@ -3055,7 +3076,8 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
3055
3076
  textContentLength = textContent.length;
3056
3077
  if (textContentLength > 1) {
3057
3078
  if (/\s/.test(textContent.charAt(textContentLength - 1))) {
3058
- if (opts.approximateLineWidth > 0 &&
3079
+ if (opts.approximateLineWidth &&
3080
+ opts.approximateLineWidth > 0 &&
3059
3081
  output.currentLineWidth + textContentLength > opts.approximateLineWidth) {
3060
3082
  textContent = textContent.trimRight() + '\n';
3061
3083
  output.currentLineWidth = 0;
@@ -3077,20 +3099,20 @@ function serializeToHtml(node, opts, output, isShadowRoot) {
3077
3099
  else if (node.nodeType === 8 /* NODE_TYPES.COMMENT_NODE */) {
3078
3100
  const nodeValue = node.nodeValue;
3079
3101
  if (opts.removeHtmlComments) {
3080
- const isHydrateAnnotation = nodeValue.startsWith(CONTENT_REF_ID + '.') ||
3081
- nodeValue.startsWith(ORG_LOCATION_ID + '.') ||
3082
- nodeValue.startsWith(SLOT_NODE_ID + '.') ||
3083
- nodeValue.startsWith(TEXT_NODE_ID + '.');
3102
+ const isHydrateAnnotation = (nodeValue === null || nodeValue === void 0 ? void 0 : nodeValue.startsWith(CONTENT_REF_ID + '.')) ||
3103
+ (nodeValue === null || nodeValue === void 0 ? void 0 : nodeValue.startsWith(ORG_LOCATION_ID + '.')) ||
3104
+ (nodeValue === null || nodeValue === void 0 ? void 0 : nodeValue.startsWith(SLOT_NODE_ID + '.')) ||
3105
+ (nodeValue === null || nodeValue === void 0 ? void 0 : nodeValue.startsWith(TEXT_NODE_ID + '.'));
3084
3106
  if (!isHydrateAnnotation) {
3085
3107
  return;
3086
3108
  }
3087
3109
  }
3088
- const isWithinWhitespaceSensitiveNode = opts.newLines || opts.indentSpaces > 0 ? isWithinWhitespaceSensitive(node) : false;
3110
+ const isWithinWhitespaceSensitiveNode = opts.newLines || ((_q = opts.indentSpaces) !== null && _q !== void 0 ? _q : 0) > 0 ? isWithinWhitespaceSensitive(node) : false;
3089
3111
  if (opts.newLines && !isWithinWhitespaceSensitiveNode) {
3090
3112
  output.text.push('\n');
3091
3113
  output.currentLineWidth = 0;
3092
3114
  }
3093
- if (opts.indentSpaces > 0 && !isWithinWhitespaceSensitiveNode) {
3115
+ if (((_r = opts.indentSpaces) !== null && _r !== void 0 ? _r : 0) > 0 && !isWithinWhitespaceSensitiveNode) {
3094
3116
  for (let i = 0; i < output.indent; i++) {
3095
3117
  output.text.push(' ');
3096
3118
  }
@@ -3124,12 +3146,21 @@ function escapeString(str, attrMode) {
3124
3146
  }
3125
3147
  return str.replace(LT_REGEX, '&lt;').replace(GT_REGEX, '&gt;');
3126
3148
  }
3149
+ /**
3150
+ * Determine whether a given node is within a whitespace-sensitive node by
3151
+ * walking the parent chain until either a whitespace-sensitive node is found or
3152
+ * there are no more parents to examine.
3153
+ *
3154
+ * @param node a node to check
3155
+ * @returns whether or not this is within a whitespace-sensitive node
3156
+ */
3127
3157
  function isWithinWhitespaceSensitive(node) {
3128
- while (node != null) {
3129
- if (WHITESPACE_SENSITIVE.has(node.nodeName)) {
3158
+ let _node = node;
3159
+ while (_node != null) {
3160
+ if (WHITESPACE_SENSITIVE.has(_node.nodeName)) {
3130
3161
  return true;
3131
3162
  }
3132
- node = node.parentNode;
3163
+ _node = _node.parentNode;
3133
3164
  }
3134
3165
  return false;
3135
3166
  }
@@ -3143,6 +3174,9 @@ function isWithinWhitespaceSensitive(node) {
3143
3174
  'NOFRAMES',
3144
3175
  'PLAINTEXT',
3145
3176
  ]);
3177
+ /**
3178
+ * A list of whitespace sensitive tag names, such as `code`, `pre`, etc.
3179
+ */
3146
3180
  const WHITESPACE_SENSITIVE = new Set([
3147
3181
  'CODE',
3148
3182
  'OUTPUT',
@@ -3428,6 +3462,18 @@ Testing components with ElementInternals is fully supported in e2e tests.`);
3428
3462
  blur() {
3429
3463
  dispatchEvent(this, new MockFocusEvent('blur', { relatedTarget: null, bubbles: true, cancelable: true, composed: true }));
3430
3464
  }
3465
+ get localName() {
3466
+ /**
3467
+ * The `localName` of an element should be always given, however the way
3468
+ * MockDoc is constructed, it won't allow us to guarantee that. Let's throw
3469
+ * and error we get into the situation where we don't have a `nodeName` set.
3470
+ *
3471
+ */
3472
+ if (!this.nodeName) {
3473
+ throw new Error(`Can't compute elements localName without nodeName`);
3474
+ }
3475
+ return this.nodeName.toLocaleLowerCase();
3476
+ }
3431
3477
  get namespaceURI() {
3432
3478
  return this.__namespaceURI;
3433
3479
  }
@@ -6403,6 +6449,9 @@ class MockDocument extends MockHTMLElement {
6403
6449
  set dir(value) {
6404
6450
  this.documentElement.dir = value;
6405
6451
  }
6452
+ get localName() {
6453
+ throw new Error('Unimplemented');
6454
+ }
6406
6455
  get location() {
6407
6456
  if (this.defaultView != null) {
6408
6457
  return this.defaultView.location;
@@ -6997,6 +7046,10 @@ function queryNonceMetaTagContent(e) {
6997
7046
  return null !== (n = null === (o = null === (t = e.head) || void 0 === t ? void 0 : t.querySelector('meta[name="csp-nonce"]')) || void 0 === o ? void 0 : o.getAttribute("content")) && void 0 !== n ? n : void 0;
6998
7047
  }
6999
7048
 
7049
+ function sortedAttrNames(e) {
7050
+ return e.includes("ref") ? [ ...e.filter((e => "ref" !== e)), "ref" ] : e;
7051
+ }
7052
+
7000
7053
  function componentOnReady$1() {
7001
7054
  return getHostRef(this).$onReadyPromise$;
7002
7055
  }
@@ -7347,31 +7400,36 @@ const createTime = (e, t = "") => {
7347
7400
  }
7348
7401
  }, parseClassListRegex = /\s/, parseClassList = e => e ? e.split(parseClassListRegex) : [], CAPTURE_EVENT_SUFFIX = "Capture", CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + "$"), updateElement = (e, t, o, n) => {
7349
7402
  const s = 11 === t.$elm$.nodeType && t.$elm$.host ? t.$elm$.host : t.$elm$, l = e && e.$attrs$ || EMPTY_OBJ, a = t.$attrs$ || EMPTY_OBJ;
7350
- for (n in l) n in a || setAccessor(s, n, l[n], void 0, o, t.$flags$);
7351
- for (n in a) setAccessor(s, n, l[n], a[n], o, t.$flags$);
7403
+ for (n of sortedAttrNames(Object.keys(l))) n in a || setAccessor(s, n, l[n], void 0, o, t.$flags$);
7404
+ for (n of sortedAttrNames(Object.keys(a))) setAccessor(s, n, l[n], a[n], o, t.$flags$);
7352
7405
  };
7353
7406
 
7354
7407
  let scopeId, contentRef, hostTagName, useNativeShadowDom = !1, checkSlotFallbackVisibility = !1, checkSlotRelocate = !1, isSvgMode = !1;
7355
7408
 
7356
7409
  const createElm = (e, t, o, n) => {
7357
- const s = t.$children$[o];
7358
- let l, a, r, i = 0;
7359
- if (!useNativeShadowDom && (checkSlotRelocate = !0, "slot" === s.$tag$ && (scopeId && n.classList.add(scopeId + "-s"),
7360
- s.$flags$ |= s.$children$ ? 2 : 1)), null !== s.$text$) l = s.$elm$ = doc$1.createTextNode(s.$text$); else if (1 & s.$flags$) l = s.$elm$ = slotReferenceDebugNode(s) ; else {
7361
- if (!isSvgMode && (isSvgMode = "svg" === s.$tag$), l = s.$elm$ = doc$1.createElementNS(isSvgMode ? "http://www.w3.org/2000/svg" : "http://www.w3.org/1999/xhtml", 2 & s.$flags$ ? "slot-fb" : s.$tag$) ,
7362
- isSvgMode && "foreignObject" === s.$tag$ && (isSvgMode = !1), updateElement(null, s, isSvgMode),
7363
- null != scopeId && l["s-si"] !== scopeId && l.classList.add(l["s-si"] = scopeId),
7364
- s.$children$) for (i = 0; i < s.$children$.length; ++i) a = createElm(e, s, i, l),
7365
- a && l.appendChild(a);
7366
- ("svg" === s.$tag$ ? isSvgMode = !1 : "foreignObject" === l.tagName && (isSvgMode = !0));
7410
+ var s;
7411
+ const l = t.$children$[o];
7412
+ let a, r, i, d = 0;
7413
+ if (!useNativeShadowDom && (checkSlotRelocate = !0, "slot" === l.$tag$ && (scopeId && n.classList.add(scopeId + "-s"),
7414
+ l.$flags$ |= l.$children$ ? 2 : 1)), null !== l.$text$) a = l.$elm$ = doc$1.createTextNode(l.$text$); else if (1 & l.$flags$) a = l.$elm$ = slotReferenceDebugNode(l) ; else {
7415
+ if (!isSvgMode && (isSvgMode = "svg" === l.$tag$), a = l.$elm$ = doc$1.createElementNS(isSvgMode ? "http://www.w3.org/2000/svg" : "http://www.w3.org/1999/xhtml", 2 & l.$flags$ ? "slot-fb" : l.$tag$) ,
7416
+ isSvgMode && "foreignObject" === l.$tag$ && (isSvgMode = !1), updateElement(null, l, isSvgMode),
7417
+ null != scopeId && a["s-si"] !== scopeId && a.classList.add(a["s-si"] = scopeId),
7418
+ l.$children$) for (d = 0; d < l.$children$.length; ++d) r = createElm(e, l, d, a),
7419
+ r && a.appendChild(r);
7420
+ ("svg" === l.$tag$ ? isSvgMode = !1 : "foreignObject" === a.tagName && (isSvgMode = !0));
7367
7421
  }
7368
- return l["s-hn"] = hostTagName, 3 & s.$flags$ && (l["s-sr"] = !0,
7369
- l["s-cr"] = contentRef, l["s-sn"] = s.$name$ || "", r = e && e.$children$ && e.$children$[o],
7370
- r && r.$tag$ === s.$tag$ && e.$elm$ && (putBackInOriginalLocation(e.$elm$, !1))),
7371
- l;
7422
+ return a["s-hn"] = hostTagName, 3 & l.$flags$ && (a["s-sr"] = !0,
7423
+ a["s-cr"] = contentRef, a["s-sn"] = l.$name$ || "", a["s-rf"] = null === (s = l.$attrs$) || void 0 === s ? void 0 : s.ref,
7424
+ i = e && e.$children$ && e.$children$[o], i && i.$tag$ === l.$tag$ && e.$elm$ && (putBackInOriginalLocation(e.$elm$, !1))),
7425
+ a;
7372
7426
  }, putBackInOriginalLocation = (e, t) => {
7373
7427
  plt.$flags$ |= 1;
7374
- const o = e.childNodes;
7428
+ const o = Array.from(e.childNodes);
7429
+ if (e["s-sr"] && BUILD.experimentalSlotFixes) {
7430
+ let t = e;
7431
+ for (;t = t.nextSibling; ) t && t["s-sn"] === e["s-sn"] && t["s-sh"] === hostTagName && o.push(t);
7432
+ }
7375
7433
  for (let e = o.length - 1; e >= 0; e--) {
7376
7434
  const n = o[e];
7377
7435
  n["s-hn"] !== hostTagName && n["s-ol"] && (parentReferenceNode(n).insertBefore(n, referenceNode(n)),
@@ -7485,15 +7543,19 @@ const createElm = (e, t, o, n) => {
7485
7543
  let l = null === (n = t["s-ol"]) || void 0 === n ? void 0 : n.previousSibling;
7486
7544
  for (;l; ) {
7487
7545
  let n = null !== (s = l["s-nr"]) && void 0 !== s ? s : null;
7488
- if (n && n["s-sn"] === t["s-sn"] && e === n.parentNode && (n = n.nextSibling, !n || !n["s-nr"])) {
7489
- o = n;
7490
- break;
7546
+ if (n && n["s-sn"] === t["s-sn"] && e === n.parentNode) {
7547
+ for (n = n.nextSibling; n === t || (null == n ? void 0 : n["s-sr"]); ) n = null == n ? void 0 : n.nextSibling;
7548
+ if (!n || !n["s-nr"]) {
7549
+ o = n;
7550
+ break;
7551
+ }
7491
7552
  }
7492
7553
  l = l.previousSibling;
7493
7554
  }
7494
7555
  }
7495
7556
  (!o && e !== t.parentNode || t.nextSibling !== o) && t !== o && (t["s-hn"] || !t["s-ol"] || (t["s-hn"] = t["s-ol"].parentNode.nodeName),
7496
- e.insertBefore(t, o), 1 === t.nodeType && (t.hidden = null !== (l = t["s-ih"]) && void 0 !== l && l));
7557
+ e.insertBefore(t, o), 1 === t.nodeType && (t.hidden = null !== (l = t["s-ih"]) && void 0 !== l && l)),
7558
+ t && "function" == typeof r["s-rf"] && r["s-rf"](t);
7497
7559
  } else 1 === t.nodeType && (o && (t["s-ih"] = null !== (a = t.hidden) && void 0 !== a && a),
7498
7560
  t.hidden = !0);
7499
7561
  }
@@ -7653,8 +7715,10 @@ const callRender = (e, t, o, n) => {
7653
7715
  return e;
7654
7716
  }, initializeComponent = async (e, t, o, n) => {
7655
7717
  let s;
7656
- if (0 == (32 & t.$flags$)) {
7657
- if (t.$flags$ |= 32, BUILD.lazyLoad ) {
7718
+ if (!(32 & t.$flags$)) {
7719
+ t.$flags$ |= 32;
7720
+ const n = o.$lazyBundleId$;
7721
+ if (n) {
7658
7722
  if (s = loadModule(o), s.then) {
7659
7723
  s = await s;
7660
7724
  }
@@ -7669,7 +7733,7 @@ const callRender = (e, t, o, n) => {
7669
7733
  }
7670
7734
  (t.$flags$ &= -9), (t.$flags$ |= 128), e(),
7671
7735
  fireConnectedCallback(t.$lazyInstance$);
7672
- }
7736
+ } else s = e.constructor, customElements.whenDefined(o.$tagName$).then((() => t.$flags$ |= 128));
7673
7737
  if (s.style) {
7674
7738
  let n = s.style;
7675
7739
  "string" != typeof n && (n = n[t.$modeName$ = computeMode(e)], t.$modeName$ && e.setAttribute("s-mode", t.$modeName$));
@@ -7685,7 +7749,7 @@ const callRender = (e, t, o, n) => {
7685
7749
  }, fireConnectedCallback = e => {
7686
7750
  safeCall$1(e, "connectedCallback");
7687
7751
  }, connectedCallback = e => {
7688
- if (0 == (1 & plt.$flags$)) {
7752
+ if (!(1 & plt.$flags$)) {
7689
7753
  const t = getHostRef(e), o = t.$cmpMeta$, n = createTime("connectedCallback", o.$tagName$);
7690
7754
  if (1 & t.$flags$) addHostEventListeners(e, t, o.$listeners$), (null == t ? void 0 : t.$lazyInstance$) ? fireConnectedCallback(t.$lazyInstance$) : (null == t ? void 0 : t.$onReadyPromise$) && t.$onReadyPromise$.then((() => fireConnectedCallback(t.$lazyInstance$))); else {
7691
7755
  let n;
@@ -7728,7 +7792,7 @@ const callRender = (e, t, o, n) => {
7728
7792
  } catch (e) {
7729
7793
  consoleError(e);
7730
7794
  }
7731
- }, getHostListenerTarget = (e, t) => 4 & t ? doc$1 : 8 & t ? win$2 : 16 & t ? doc$1.body : e, hostListenerOpts = e => 0 != (2 & e), insertVdomAnnotations = (e, t) => {
7795
+ }, getHostListenerTarget = (e, t) => 4 & t ? doc$1 : 8 & t ? win$2 : 16 & t ? doc$1.body : e, hostListenerOpts = e => !!(2 & e), insertVdomAnnotations = (e, t) => {
7732
7796
  if (null != e) {
7733
7797
  const o = {
7734
7798
  hostIds: 0,
@@ -9878,7 +9942,7 @@ const createLockController = () => {
9878
9942
  * moment this file is evaluated which could be
9879
9943
  * before the config is set.
9880
9944
  */
9881
- const shoudUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win$1 !== undefined && 'CloseWatcher' in win$1;
9945
+ const shouldUseCloseWatcher = () => config.get('experimentalCloseWatcher', false) && win$1 !== undefined && 'CloseWatcher' in win$1;
9882
9946
  const OVERLAY_BACK_BUTTON_PRIORITY = 100;
9883
9947
  const MENU_BACK_BUTTON_PRIORITY = 99; // 1 less than overlay priority since menu is displayed behind overlays
9884
9948
 
@@ -10368,7 +10432,7 @@ const connectListeners = (doc) => {
10368
10432
  * this behavior will be handled via the ionBackButton
10369
10433
  * event.
10370
10434
  */
10371
- if (!shoudUseCloseWatcher()) {
10435
+ if (!shouldUseCloseWatcher()) {
10372
10436
  doc.addEventListener('keydown', (ev) => {
10373
10437
  if (ev.key === 'Escape') {
10374
10438
  const lastOverlay = getPresentedOverlay(doc);
@@ -10458,15 +10522,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
10458
10522
  return;
10459
10523
  }
10460
10524
  setRootAriaHidden(true);
10461
- /**
10462
- * Hide all other overlays from screen readers so only this one
10463
- * can be read. Note that presenting an overlay always makes
10464
- * it the topmost one.
10465
- */
10466
- if (doc !== undefined) {
10467
- const presentedOverlays = getPresentedOverlays(doc);
10468
- presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
10469
- }
10525
+ hideOverlaysFromScreenReaders(overlay.el);
10470
10526
  overlay.presented = true;
10471
10527
  overlay.willPresent.emit();
10472
10528
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -10559,7 +10615,7 @@ const restoreElementFocus = async (overlayEl) => {
10559
10615
  }
10560
10616
  };
10561
10617
  const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
10562
- var _a, _b, _c;
10618
+ var _a, _b;
10563
10619
  if (!overlay.presented) {
10564
10620
  return false;
10565
10621
  }
@@ -10610,13 +10666,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
10610
10666
  console.error(err);
10611
10667
  }
10612
10668
  overlay.el.remove();
10613
- /**
10614
- * If there are other overlays presented, unhide the new
10615
- * topmost one from screen readers.
10616
- */
10617
- if (doc !== undefined) {
10618
- (_c = getPresentedOverlay(doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
10619
- }
10669
+ revealOverlaysToScreenReaders();
10620
10670
  return true;
10621
10671
  };
10622
10672
  const getAppRoot = (doc) => {
@@ -10812,6 +10862,62 @@ const createTriggerController = () => {
10812
10862
  removeClickListener,
10813
10863
  };
10814
10864
  };
10865
+ /**
10866
+ * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
10867
+ * cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
10868
+ * events here because those events do not fire when the screen readers moves to a non-focusable
10869
+ * element such as text.
10870
+ * Without this logic screen readers would be able to move focus outside of the top focus-trapped overlay.
10871
+ *
10872
+ * @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
10873
+ * fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
10874
+ */
10875
+ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
10876
+ var _a;
10877
+ if (doc === undefined)
10878
+ return;
10879
+ const overlays = getPresentedOverlays(doc);
10880
+ for (let i = overlays.length - 1; i >= 0; i--) {
10881
+ const presentedOverlay = overlays[i];
10882
+ const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
10883
+ /**
10884
+ * If next overlay has aria-hidden then all remaining overlays will have it too.
10885
+ * Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
10886
+ * should not have aria-hidden either so focus can remain in the current overlay.
10887
+ */
10888
+ if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
10889
+ presentedOverlay.setAttribute('aria-hidden', 'true');
10890
+ }
10891
+ }
10892
+ };
10893
+ /**
10894
+ * When dismissing an overlay we need to reveal the new top-most overlay to screen readers.
10895
+ * If the top-most overlay is a Toast we potentially need to reveal more overlays since
10896
+ * focus is never automatically moved to the Toast.
10897
+ */
10898
+ const revealOverlaysToScreenReaders = () => {
10899
+ if (doc === undefined)
10900
+ return;
10901
+ const overlays = getPresentedOverlays(doc);
10902
+ for (let i = overlays.length - 1; i >= 0; i--) {
10903
+ const currentOverlay = overlays[i];
10904
+ /**
10905
+ * If the current we are looking at is a Toast then we can remove aria-hidden.
10906
+ * However, we potentially need to keep looking at the overlay stack because there
10907
+ * could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
10908
+ * overlay too so focus can move there since focus is never automatically moved to the Toast.
10909
+ */
10910
+ currentOverlay.removeAttribute('aria-hidden');
10911
+ /**
10912
+ * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
10913
+ * since this overlay should always receive focus. As a result, all underlying overlays should still
10914
+ * be hidden from screen readers.
10915
+ */
10916
+ if (currentOverlay.tagName !== 'ION-TOAST') {
10917
+ break;
10918
+ }
10919
+ }
10920
+ };
10815
10921
 
10816
10922
  const hostContext = (selector, el) => {
10817
10923
  return el.closest(selector) !== null;
@@ -12183,12 +12289,12 @@ class ActionSheet {
12183
12289
  const cancelButton = allButtons.find((b) => b.role === 'cancel');
12184
12290
  const buttons = allButtons.filter((b) => b.role !== 'cancel');
12185
12291
  const headerID = `action-sheet-${overlayIndex}-header`;
12186
- return (hAsync(Host, Object.assign({ key: 'cd141d12d7d86d3402fd220c4afb61cdbf064c04', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
12292
+ return (hAsync(Host, Object.assign({ key: '49c8b5b3412b5688e44f3e3fa18abcc01c75a770', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
12187
12293
  zIndex: `${20000 + this.overlayIndex}`,
12188
- }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: 'b6a051e2cf5e101edbf59c8a40a04d8f7107fb3c', tappable: this.backdropDismiss }), hAsync("div", { key: '5bfa2b37a417aaff3776f06d92a8544dfcbf714f', tabindex: "0" }), hAsync("div", { key: '77d5a217803fd7be8f8dbedcd0ef5e59f0fd9800', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '3901d56215f05cdab074e2ec321391281a165097', class: "action-sheet-container" }, hAsync("div", { key: '275f5c7981b2ee44fb632b3d137c7209cbfcf45c', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (hAsync("div", { id: headerID, class: {
12294
+ }, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '80b4c279fca194c6d65bbdb8128956641387bb05', tappable: this.backdropDismiss }), hAsync("div", { key: '245cde1873c07ef09267de8ab1a4d6ee51c0a83c', tabindex: "0" }), hAsync("div", { key: '045109bb2118decbe633f45aa3d71b824d37c0fd', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: 'b053f3a177b6ac7f2f76f5470f7023389f06cfd8', class: "action-sheet-container" }, hAsync("div", { key: '88287aa180c22389747c9fec702112e29f4ec039', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (hAsync("div", { key: '693e67af994a0018508a6deb867937916913eaa6', id: headerID, class: {
12189
12295
  'action-sheet-title': true,
12190
12296
  'action-sheet-has-sub-title': this.subHeader !== undefined,
12191
- } }, header, this.subHeader && hAsync("div", { class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (hAsync("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass$3(b), onClick: () => this.buttonClick(b) }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null))))), cancelButton && (hAsync("div", { class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({}, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", null)))))), hAsync("div", { key: '4285893438675be9b40838a93c2ff382a1074cd3', tabindex: "0" })));
12297
+ } }, header, this.subHeader && hAsync("div", { key: '813cbb8d66e46d5a55a6c8bf52c5689882dc7002', class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (hAsync("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass$3(b), onClick: () => this.buttonClick(b) }), hAsync("span", { class: "action-sheet-button-inner" }, b.icon && hAsync("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && hAsync("ion-ripple-effect", null))))), cancelButton && (hAsync("div", { key: 'f99cd10e7d91d3014edac6109c3e6dc128737f7c', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", Object.assign({ key: '595c6a39ba04185e80cc3b0705536f93b4f1ebf4' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass$3(cancelButton), onClick: () => this.buttonClick(cancelButton) }), hAsync("span", { key: '1f40403b907c6e925405a8b405ede9f7f9885611', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '75d5398d889fa70b514843b9cc73b2087a0bf1a0', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: 'cda40def00755c69da9f6a67494eee4dc79550fc' })))))), hAsync("div", { key: '4d9432bae550ef618ba762857144f1558e3e29e7', tabindex: "0" })));
12192
12298
  }
12193
12299
  get el() { return getElement(this); }
12194
12300
  static get watchers() { return {
@@ -12871,9 +12977,9 @@ class Alert {
12871
12977
  * If neither is defined, don't set aria-labelledby.
12872
12978
  */
12873
12979
  const ariaLabelledBy = header ? hdrId : subHeader ? subHdrId : null;
12874
- return (hAsync(Host, Object.assign({ key: '4b7f7880dc5f39aa9b61981af0a821ac0350af7f', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
12980
+ return (hAsync(Host, Object.assign({ key: 'd623baf94bddc6b1932f128f6a605c6232b37fb5', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
12875
12981
  zIndex: `${20000 + overlayIndex}`,
12876
- }, 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: '961a2684013ac61d59882914fd8d759ddb542fe7', tappable: this.backdropDismiss }), hAsync("div", { key: '2ec08c3719b3cd8a4cae09d2c6ac778ffad5f940', tabindex: "0" }), hAsync("div", { key: 'ee543683d20693c9a9497aca4d41f032aa580c9c', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '55015102b67d080249a8859fc8788f3a82d5ead9', class: "alert-head" }, header && (hAsync("h2", { id: hdrId, class: "alert-title" }, header)), subHeader && (hAsync("h2", { id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'df7bcfb0cb41965f169de05edd631a050d5ce648', tabindex: "0" })));
12982
+ }, 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: 'a594ba787a73a33ba10e7a32ca863bd610730cb6', tappable: this.backdropDismiss }), hAsync("div", { key: 'c95ef8332f46ce93fb8d3b7f0168ae5b939c52fd', tabindex: "0" }), hAsync("div", { key: '1895ea338a8e446d01c6151552af658e1e1c841d', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '5156393eb8a8f3e60e7d4bce20b0b85196141b0e', class: "alert-head" }, header && (hAsync("h2", { key: '72ba8253644adfeeb8472531234d3572af28b473', id: hdrId, class: "alert-title" }, header)), subHeader && (hAsync("h2", { key: 'eb8d2443170fbea182199bb3b3f5446c98f1c17e', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '13c6fac1a58574156951ae2dfdd24790c0812e11', tabindex: "0" })));
12877
12983
  }
12878
12984
  get el() { return getElement(this); }
12879
12985
  static get watchers() { return {
@@ -12952,7 +13058,7 @@ class App {
12952
13058
  }
12953
13059
  render() {
12954
13060
  const mode = getIonMode$1(this);
12955
- return (hAsync(Host, { key: '3535eb5c0dab78a78011e552524a98599b2b650f', class: {
13061
+ return (hAsync(Host, { key: '6d7c57453b4be454690e8f1a0721f1e3da8f92aa', class: {
12956
13062
  [mode]: true,
12957
13063
  'ion-page': true,
12958
13064
  'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
@@ -12983,7 +13089,7 @@ class Avatar {
12983
13089
  registerInstance(this, hostRef);
12984
13090
  }
12985
13091
  render() {
12986
- return (hAsync(Host, { key: '95d7ca334f9b66e0983cbc1b782ded0b9a54eaa9', class: getIonMode$1(this) }, hAsync("slot", { key: '011d20189acdb03bee328aa4fa0511826a0b3a36' })));
13092
+ return (hAsync(Host, { key: 'f6014b524497bb18ae919ba6f6928407310d6870', class: getIonMode$1(this) }, hAsync("slot", { key: '192ff4a8e10c0b0a4a2ed795ff2675afa8b23449' })));
12987
13093
  }
12988
13094
  static get style() { return {
12989
13095
  ios: IonAvatarIosStyle0,
@@ -13071,7 +13177,7 @@ class BackButton {
13071
13177
  const showBackButton = defaultHref !== undefined;
13072
13178
  const mode = getIonMode$1(this);
13073
13179
  const ariaLabel = inheritedAttributes['aria-label'] || backButtonText || 'back';
13074
- return (hAsync(Host, { key: '175fff2d7a41d2deaaf7b781c5ba2aac9311ebf4', onClick: this.onClick, class: createColorClasses$1(color, {
13180
+ return (hAsync(Host, { key: '9e837be314ee8ea487ba2771d36668ef58442faa', onClick: this.onClick, class: createColorClasses$1(color, {
13075
13181
  [mode]: true,
13076
13182
  button: true, // ion-buttons target .button
13077
13183
  'back-button-disabled': disabled,
@@ -13081,7 +13187,7 @@ class BackButton {
13081
13187
  'ion-activatable': true,
13082
13188
  'ion-focusable': true,
13083
13189
  'show-back-button': showBackButton,
13084
- }) }, hAsync("button", { key: '59fe30c167ea82e2431e45d46060a01bcb2aea77', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, hAsync("span", { key: '3d704fb7ef001446361e7a09d43763a771b242b9', class: "button-inner" }, backButtonIcon && (hAsync("ion-icon", { part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (hAsync("span", { part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && hAsync("ion-ripple-effect", { type: this.rippleType }))));
13190
+ }) }, hAsync("button", { key: 'c4531348bd80cf6163931c5fb432526aa8127043', type: type, disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }, hAsync("span", { key: 'aab8c6d5f0a84aed9f4e4a2532a239b28c7d5589', class: "button-inner" }, backButtonIcon && (hAsync("ion-icon", { key: '121eae10947b46a3d109709b79f4126b1c40ade4', part: "icon", icon: backButtonIcon, "aria-hidden": "true", lazy: false, "flip-rtl": icon === undefined })), backButtonText && (hAsync("span", { key: '11c28875cc52b99470525d18c1f88f27c390a75a', part: "text", "aria-hidden": "true", class: "button-text" }, backButtonText))), mode === 'md' && hAsync("ion-ripple-effect", { key: '804bf8a06cd033c99d61ec2665c842b3b25945fa', type: this.rippleType }))));
13085
13191
  }
13086
13192
  get el() { return getElement(this); }
13087
13193
  static get style() { return {
@@ -13145,7 +13251,7 @@ class Backdrop {
13145
13251
  }
13146
13252
  render() {
13147
13253
  const mode = getIonMode$1(this);
13148
- return (hAsync(Host, { key: 'b2adb9dabef01fa49388d67d9e8a4a370931f633', tabindex: "-1", "aria-hidden": "true", class: {
13254
+ return (hAsync(Host, { key: '16b1328f4a058b8d3752e58dc56c44bed556c425', tabindex: "-1", "aria-hidden": "true", class: {
13149
13255
  [mode]: true,
13150
13256
  'backdrop-hide': !this.visible,
13151
13257
  'backdrop-no-tappable': !this.tappable,
@@ -13185,9 +13291,9 @@ class Badge {
13185
13291
  }
13186
13292
  render() {
13187
13293
  const mode = getIonMode$1(this);
13188
- return (hAsync(Host, { key: '043eea016721e53f0af1cbf1371bc08694281204', class: createColorClasses$1(this.color, {
13294
+ return (hAsync(Host, { key: '22d41ceefb76f40dfbf739fd71483f1272a45858', class: createColorClasses$1(this.color, {
13189
13295
  [mode]: true,
13190
- }) }, hAsync("slot", { key: 'bd510450d6b60f2794491244e68a83049a5ef6dd' })));
13296
+ }) }, hAsync("slot", { key: 'e7e65463bac5903971a8f9f6be55515f42b81a83' })));
13191
13297
  }
13192
13298
  static get style() { return {
13193
13299
  ios: IonBadgeIosStyle0,
@@ -13273,7 +13379,7 @@ class Breadcrumb {
13273
13379
  // to show the separator as long as it isn't also the last breadcrumb
13274
13380
  // otherwise if not collapsed use the value in separator
13275
13381
  const showSeparator = last ? false : collapsed ? (showCollapsedIndicator && !last ? true : false) : separator;
13276
- return (hAsync(Host, { key: '632efa1bc6dc446e81efe8cd7763cb9b16466563', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13382
+ return (hAsync(Host, { key: '6d354439f90ec3cfab9fbf93cb17a67fb9ca6034', onClick: (ev) => openURL(href, ev, routerDirection, routerAnimation), "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13277
13383
  [mode]: true,
13278
13384
  'breadcrumb-active': active,
13279
13385
  'breadcrumb-collapsed': collapsed,
@@ -13283,15 +13389,15 @@ class Breadcrumb {
13283
13389
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
13284
13390
  'ion-activatable': clickable,
13285
13391
  'ion-focusable': clickable,
13286
- }) }, hAsync(TagType, Object.assign({ key: '6f232cfc590b2e2a23a2e1ee40d6658e7d8b4953' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("slot", { key: 'fec56c6f92c147fbd6273d3efb82b1a6c944699c', name: "start" }), hAsync("slot", { key: '80aa33cdcaab810f544803c6105b489172542846' }), hAsync("slot", { key: '6e1d3f332ae35f5061204bece9756a9bac4aaf4a', name: "end" })), showCollapsedIndicator && (hAsync("button", { part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
13392
+ }) }, hAsync(TagType, Object.assign({ key: '4782977969bd84af02b1834573a6e51069b798ae' }, attrs, { class: "breadcrumb-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("slot", { key: '7d5fb845e463b8195142099773e7f258fc8ed31d', name: "start" }), hAsync("slot", { key: '6b642ccb9101c12f72124fed5dd0f6362345fb41' }), hAsync("slot", { key: '9fb0841fed712e21d1e84b187e1bc9159cf80b56', name: "end" })), showCollapsedIndicator && (hAsync("button", { key: '4b64544d879224d491447a79da8f8672b994af0b', part: "collapsed-indicator", "aria-label": "Show more breadcrumbs", onClick: () => this.collapsedIndicatorClick(), ref: (collapsedEl) => (this.collapsedRef = collapsedEl), class: {
13287
13393
  'breadcrumbs-collapsed-indicator': true,
13288
- } }, hAsync("ion-icon", { "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
13394
+ } }, hAsync("ion-icon", { key: '5a2511b237aa8c401f416e967a831f8315423949', "aria-hidden": "true", icon: ellipsisHorizontal, lazy: false }))), showSeparator && (
13289
13395
  /**
13290
13396
  * Separators should not be announced by narrators.
13291
13397
  * We add aria-hidden on the span so that this applies
13292
13398
  * to any custom separators too.
13293
13399
  */
13294
- hAsync("span", { class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, hAsync("slot", { name: "separator" }, mode === 'ios' ? (hAsync("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (hAsync("span", null, "/")))))));
13400
+ hAsync("span", { key: '348952855dd79eb92f8d370e5839a8d09aff4097', class: "breadcrumb-separator", part: "separator", "aria-hidden": "true" }, hAsync("slot", { key: '0120f416edb1d776fa6900b5986b2b57eef554b3', name: "separator" }, mode === 'ios' ? (hAsync("ion-icon", { icon: chevronForwardOutline, lazy: false, "flip-rtl": true })) : (hAsync("span", null, "/")))))));
13295
13401
  }
13296
13402
  get el() { return getElement(this); }
13297
13403
  static get style() { return {
@@ -13431,12 +13537,12 @@ class Breadcrumbs {
13431
13537
  render() {
13432
13538
  const { color, collapsed } = this;
13433
13539
  const mode = getIonMode$1(this);
13434
- return (hAsync(Host, { key: '35f8a2bffdd85ba6dc31834ebef69602a5a7cca1', class: createColorClasses$1(color, {
13540
+ return (hAsync(Host, { key: 'cd288d4bf5498f86d086eb999b506993818642f3', class: createColorClasses$1(color, {
13435
13541
  [mode]: true,
13436
13542
  'in-toolbar': hostContext('ion-toolbar', this.el),
13437
13543
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
13438
13544
  'breadcrumbs-collapsed': collapsed,
13439
- }) }, hAsync("slot", { key: 'ada062b5d17380d311861d1cf1a22dd62bac5497', onSlotchange: this.slotChanged })));
13545
+ }) }, hAsync("slot", { key: '73c802065511dbebef3867b01ce929313d24cba2', onSlotchange: this.slotChanged })));
13440
13546
  }
13441
13547
  get el() { return getElement(this); }
13442
13548
  static get watchers() { return {
@@ -13465,10 +13571,10 @@ class Breadcrumbs {
13465
13571
  }; }
13466
13572
  }
13467
13573
 
13468
- const buttonIosCss = "/*!@:host*/.sc-ion-button-ios-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-ios-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-ios-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-ios-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-ios-h:not(.button-round) .button-native.sc-ion-button-ios{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-ios{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-ios::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-ios-s>[slot=start],.sc-ion-button-ios-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-ios-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-ios-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-ios-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-ios-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-ios{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-ios-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-ios-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-ios-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}/*!@:host*/.sc-ion-button-ios-h{--border-radius:14px;--padding-top:13px;--padding-bottom:13px;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:3.1em;font-size:min(1rem, 48px);font-weight:500;letter-spacing:0}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-radius:14px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #3880ff);--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--background-activated:transparent;--background-activated-opacity:0;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;font-size:min(1.0625rem, 51px);font-weight:normal}/*!@:host(.in-buttons)*/.in-buttons.sc-ion-button-ios-h{font-size:clamp(17px, 1.0625rem, 21.08px);font-weight:400}/*!@:host(.button-large)*/.button-large.sc-ion-button-ios-h{--border-radius:16px;--padding-top:17px;--padding-start:1em;--padding-end:1em;--padding-bottom:17px;min-height:3.1em;font-size:min(1.25rem, 60px)}/*!@:host(.button-small)*/.button-small.sc-ion-button-ios-h{--border-radius:6px;--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:min(0.8125rem, 39px)}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-ios-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-round)*/.button-round.sc-ion-button-ios-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-ios-h{font-weight:600}/*!@:host(.button-outline.ion-focused.ion-color) .button-native,\n:host(.button-clear.ion-focused.ion-color) .button-native*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-outline.ion-focused.ion-color) .button-native::after,\n:host(.button-clear.ion-focused.ion-color) .button-native::after*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}@media (any-hover: hover){/*!@:host(.button-clear:not(.ion-activated):hover),\n :host(.button-outline:not(.ion-activated):hover)*/.button-clear.sc-ion-button-ios-h:not(.ion-activated):hover,.button-outline.sc-ion-button-ios-h:not(.ion-activated):hover{opacity:0.6}/*!@:host(.button-clear.ion-color:hover) .button-native,\n :host(.button-outline.ion-color:hover) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:transparent}/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--ion-color-tint)}/*!@:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated)) .button-native::after*/.sc-ion-button-ios-h:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated) .button-native.sc-ion-button-ios::after{background:#fff;opacity:0.1}}/*!@:host(.button-clear.ion-activated)*/.button-clear.ion-activated.sc-ion-button-ios-h{opacity:0.4}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-activated.ion-color) .button-native::after*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-activated) .button-native::after*/.button-solid.ion-color.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}";
13574
+ const buttonIosCss = "/*!@:host*/.sc-ion-button-ios-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-ios-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-ios-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-ios-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-ios-h .button-native.sc-ion-button-ios{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-ios-h:not(.button-round) .button-native.sc-ion-button-ios{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-ios{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-ios::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-ios-s>[slot=start],.sc-ion-button-ios-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-ios-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-ios-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-ios-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-ios-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-ios{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-ios::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-ios-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-ios-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-ios-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host*/.sc-ion-button-ios-h{--border-radius:14px;--padding-top:13px;--padding-bottom:13px;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:3.1em;font-size:min(1rem, 48px);font-weight:500;letter-spacing:0}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-ios-h{--background-activated:var(--ion-color-primary-shade, #3171e0);--background-focused:var(--ion-color-primary-shade, #3171e0);--background-hover:var(--ion-color-primary-tint, #4c8dff);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-ios-h{--border-radius:14px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #3880ff);--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-ios-h{--background-activated:transparent;--background-activated-opacity:0;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:transparent;--background-focused-opacity:.1;font-size:min(1.0625rem, 51px);font-weight:normal}/*!@:host(.in-buttons)*/.in-buttons.sc-ion-button-ios-h{font-size:clamp(17px, 1.0625rem, 21.08px);font-weight:400}/*!@:host(.button-large)*/.button-large.sc-ion-button-ios-h{--border-radius:16px;--padding-top:17px;--padding-start:1em;--padding-end:1em;--padding-bottom:17px;min-height:3.1em;font-size:min(1.25rem, 60px)}/*!@:host(.button-small)*/.button-small.sc-ion-button-ios-h{--border-radius:6px;--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:min(0.8125rem, 39px)}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-ios-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-round)*/.button-round.sc-ion-button-ios-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-ios-h{font-weight:600}/*!@:host(.button-outline.ion-focused.ion-color) .button-native,\n:host(.button-clear.ion-focused.ion-color) .button-native*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-outline.ion-focused.ion-color) .button-native::after,\n:host(.button-clear.ion-focused.ion-color) .button-native::after*/.button-outline.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after,.button-clear.ion-focused.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}@media (any-hover: hover){/*!@:host(.button-clear:not(.ion-activated):hover),\n :host(.button-outline:not(.ion-activated):hover)*/.button-clear.sc-ion-button-ios-h:not(.ion-activated):hover,.button-outline.sc-ion-button-ios-h:not(.ion-activated):hover{opacity:0.6}/*!@:host(.button-clear.ion-color:hover) .button-native,\n :host(.button-outline.ion-color:hover) .button-native*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios{color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after,.button-outline.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:transparent}/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-ios-h:hover .button-native.sc-ion-button-ios::after{background:var(--ion-color-tint)}/*!@:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated)) .button-native::after*/.sc-ion-button-ios-h:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated) .button-native.sc-ion-button-ios::after{background:#fff;opacity:0.1}}/*!@:host(.button-clear.ion-activated)*/.button-clear.ion-activated.sc-ion-button-ios-h{opacity:0.4}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios{color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-activated.ion-color) .button-native::after*/.button-outline.ion-activated.ion-color.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-base)}/*!@:host(.button-solid.ion-color.ion-activated) .button-native::after*/.button-solid.ion-color.ion-activated.sc-ion-button-ios-h .button-native.sc-ion-button-ios::after{background:var(--ion-color-shade)}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-ios-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-ios{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}";
13469
13575
  var IonButtonIosStyle0 = buttonIosCss;
13470
13576
 
13471
- const buttonMdCss = "/*!@:host*/.sc-ion-button-md-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-md-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-md-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-md-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-md-h:not(.button-round) .button-native.sc-ion-button-md{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-md{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-md::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-md-s>[slot=start],.sc-ion-button-md-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-md-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-md-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-md-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-md{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-md-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-md-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-md-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}/*!@:host*/.sc-ion-button-md-h{--border-radius:4px;--padding-top:8px;--padding-bottom:8px;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),\n background-color 15ms linear,\n color 15ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:36px;font-size:0.875rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background-activated:transparent;--background-hover:var(--ion-color-primary-contrast, #fff);--background-focused:var(--ion-color-primary-contrast, #fff);--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}/*!@:host(.button-solid.ion-activated)*/.button-solid.ion-activated.sc-ion-button-md-h{--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-round)*/.button-round.sc-ion-button-md-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-large)*/.button-large.sc-ion-button-md-h{--padding-top:14px;--padding-start:1em;--padding-end:1em;--padding-bottom:14px;min-height:2.8em;font-size:1.25rem}/*!@:host(.button-small)*/.button-small.sc-ion-button-md-h{--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:0.8125rem}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-md-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-md-h{font-weight:bold}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color.ion-focused) .button-native::after,\n:host(.button-outline.ion-color.ion-focused) .button-native::after*/.button-clear.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after,.button-outline.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}@media (any-hover: hover){/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after,.button-outline.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}}";
13577
+ const buttonMdCss = "/*!@:host*/.sc-ion-button-md-h{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}/*!@:host(.button-disabled)*/.button-disabled.sc-ion-button-md-h{cursor:default;opacity:0.5;pointer-events:none}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background:var(--ion-color-primary, #3880ff);--color:var(--ion-color-primary-contrast, #fff)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-color:var(--ion-color-primary, #3880ff);--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--border-width:0;--background:transparent;--color:var(--ion-color-primary, #3880ff)}/*!@:host(.button-block)*/.button-block.sc-ion-button-md-h{display:block}/*!@:host(.button-block) .button-native*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}/*!@:host(.button-block) .button-native::after*/.button-block.sc-ion-button-md-h .button-native.sc-ion-button-md::after{clear:both}/*!@:host(.button-full)*/.button-full.sc-ion-button-md-h{display:block}/*!@:host(.button-full) .button-native*/.button-full.sc-ion-button-md-h .button-native.sc-ion-button-md{margin-left:0;margin-right:0;width:100%;contain:content}/*!@:host(.button-full:not(.button-round)) .button-native*/.button-full.sc-ion-button-md-h:not(.button-round) .button-native.sc-ion-button-md{border-radius:0;border-right-width:0;border-left-width:0}/*!@.button-native*/.button-native.sc-ion-button-md{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@.button-native::-moz-focus-inner*/.button-native.sc-ion-button-md::-moz-focus-inner{border:0}/*!@.button-inner*/.button-inner.sc-ion-button-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}/*!@::slotted([slot=start]),\n::slotted([slot=end])*/.sc-ion-button-md-s>[slot=start],.sc-ion-button-md-s>[slot=end]{-ms-flex-negative:0;flex-shrink:0}/*!@::slotted(ion-icon)*/.sc-ion-button-md-s>ion-icon{font-size:1.35em;pointer-events:none}/*!@::slotted(ion-icon[slot=start])*/.sc-ion-button-md-s>ion-icon[slot=start]{-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=end])*/.sc-ion-button-md-s>ion-icon[slot=end]{-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{font-size:1.8em}/*!@ion-ripple-effect*/ion-ripple-effect.sc-ion-button-md{color:var(--ripple-color)}/*!@.button-native::after*/.button-native.sc-ion-button-md::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}/*!@:host(.ion-focused)*/.ion-focused.sc-ion-button-md-h{color:var(--color-focused)}/*!@:host(.ion-focused) .button-native::after*/.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){/*!@:host(:hover)*/.sc-ion-button-md-h:hover{color:var(--color-hover)}/*!@:host(:hover) .button-native::after*/.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}/*!@:host(.ion-activated)*/.ion-activated.sc-ion-button-md-h{color:var(--color-activated)}/*!@:host(.ion-activated) .button-native::after*/.ion-activated.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}/*!@:host(.button-solid.ion-color) .button-native*/.button-solid.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host(.button-outline.ion-color) .button-native*/.button-outline.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}/*!@:host(.button-clear.ion-color) .button-native*/.button-clear.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent;color:var(--ion-color-base)}/*!@:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{color:var(--ion-toolbar-color, var(--color))}/*!@:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}/*!@:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-solid.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}/*!@:host*/.sc-ion-button-md-h{--border-radius:4px;--padding-top:8px;--padding-bottom:8px;--padding-start:1.1em;--padding-end:1.1em;--transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),\n background-color 15ms linear,\n color 15ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:36px;font-size:0.875rem;font-weight:500;letter-spacing:0.06em;text-transform:uppercase}/*!@:host(.button-solid)*/.button-solid.sc-ion-button-md-h{--background-activated:transparent;--background-hover:var(--ion-color-primary-contrast, #fff);--background-focused:var(--ion-color-primary-contrast, #fff);--background-activated-opacity:0;--background-focused-opacity:.24;--background-hover-opacity:.08;--box-shadow:0 3px 1px -2px rgba(0, 0, 0, 0.2), 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 1px 5px 0 rgba(0, 0, 0, 0.12)}/*!@:host(.button-solid.ion-activated)*/.button-solid.ion-activated.sc-ion-button-md-h{--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12)}/*!@:host(.button-outline)*/.button-outline.sc-ion-button-md-h{--border-width:2px;--border-style:solid;--box-shadow:none;--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-outline.ion-activated.ion-color) .button-native*/.button-outline.ion-activated.ion-color.sc-ion-button-md-h .button-native.sc-ion-button-md{background:transparent}/*!@:host(.button-clear)*/.button-clear.sc-ion-button-md-h{--background-activated:transparent;--background-focused:var(--ion-color-primary, #3880ff);--background-hover:var(--ion-color-primary, #3880ff);--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04}/*!@:host(.button-round)*/.button-round.sc-ion-button-md-h{--border-radius:64px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}/*!@:host(.button-large)*/.button-large.sc-ion-button-md-h{--padding-top:14px;--padding-start:1em;--padding-end:1em;--padding-bottom:14px;min-height:2.8em;font-size:1.25rem}/*!@:host(.button-small)*/.button-small.sc-ion-button-md-h{--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:0.8125rem}/*!@:host(.button-has-icon-only)*/.button-has-icon-only.sc-ion-button-md-h{--padding-top:0;--padding-bottom:0}/*!@:host(.button-strong)*/.button-strong.sc-ion-button-md-h{font-weight:bold}/*!@::slotted(ion-icon[slot=icon-only])*/.sc-ion-button-md-s>ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host(.button-solid.ion-color.ion-focused) .button-native::after*/.button-solid.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color.ion-focused) .button-native::after,\n:host(.button-outline.ion-color.ion-focused) .button-native::after*/.button-clear.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after,.button-outline.ion-color.ion-focused.sc-ion-button-md-h .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}@media (any-hover: hover){/*!@:host(.button-solid.ion-color:hover) .button-native::after*/.button-solid.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-contrast)}/*!@:host(.button-clear.ion-color:hover) .button-native::after,\n :host(.button-outline.ion-color:hover) .button-native::after*/.button-clear.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after,.button-outline.ion-color.sc-ion-button-md-h:hover .button-native.sc-ion-button-md::after{background:var(--ion-color-base)}}/*!@:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native*/.button-outline.ion-activated.in-toolbar.sc-ion-button-md-h:not(.ion-color):not(.in-toolbar-color) .button-native.sc-ion-button-md{background:var(--ion-toolbar-background, var(--color));color:var(--ion-toolbar-color, var(--background), var(--ion-color-primary-contrast, #fff))}";
13472
13578
  var IonButtonMdStyle0 = buttonMdCss;
13473
13579
 
13474
13580
  /**
@@ -13667,7 +13773,7 @@ class Button {
13667
13773
  {
13668
13774
  type !== 'button' && this.renderHiddenButton();
13669
13775
  }
13670
- return (hAsync(Host, { key: '8533314504b286ec10e26722f93376d86a7ca1c9', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13776
+ return (hAsync(Host, { key: '54569350aae49882123f0e22a720956eddee33f5', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
13671
13777
  [mode]: true,
13672
13778
  [buttonType]: true,
13673
13779
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -13682,7 +13788,7 @@ class Button {
13682
13788
  'button-disabled': disabled,
13683
13789
  'ion-activatable': true,
13684
13790
  'ion-focusable': true,
13685
- }) }, hAsync(TagType, Object.assign({ key: '79bf020fdac0c2ceb2b05547b3e5a9a11e60abb4' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("span", { key: '109481ba86102647023b746b054b2718d3c9d92a', class: "button-inner" }, hAsync("slot", { key: 'f824ddd9f988b9bd33136555b16aa790d9291b49', name: "icon-only" }), hAsync("slot", { key: 'd614f4e430792c5f93be4b3a8c57a826d74b9cfd', name: "start" }), hAsync("slot", { key: '95d00c8a980c31cc7f84732f51a17a0cd285a7cb' }), hAsync("slot", { key: 'a228ff52cbe04dc9d2e22bb66611ecc96d130e6f', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { type: this.rippleType }))));
13791
+ }) }, hAsync(TagType, Object.assign({ key: '95c196fc5bf080ef308532c3627e2a9d68f24996' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("span", { key: 'e247013b847158187258d28f37ab23905fe49110', class: "button-inner" }, hAsync("slot", { key: '58ac0bd8f643f4392ddbe465fab26eedffe02b7a', name: "icon-only" }), hAsync("slot", { key: '2289d37a37a64472ffe818b3b1126945cebf101e', name: "start" }), hAsync("slot", { key: 'b69a915dff465d251f0466449b91450d4a4048a9' }), hAsync("slot", { key: '594a80d6707fd5edabc03e467f7aae3011d020f6', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b034770cadefe74922ed6564a17147ddc6c9fdb1', type: this.rippleType }))));
13686
13792
  }
13687
13793
  get el() { return getElement(this); }
13688
13794
  static get watchers() { return {
@@ -13732,7 +13838,7 @@ class Buttons {
13732
13838
  }
13733
13839
  render() {
13734
13840
  const mode = getIonMode$1(this);
13735
- return (hAsync(Host, { key: '52c0c5535f5688a481746fe8fd92b6c02941526f', class: {
13841
+ return (hAsync(Host, { key: '2929fd8c4469bab2953c23d47f601706acb104f1', class: {
13736
13842
  [mode]: true,
13737
13843
  ['buttons-collapse']: this.collapse,
13738
13844
  } }));
@@ -13804,7 +13910,7 @@ class Card {
13804
13910
  }
13805
13911
  render() {
13806
13912
  const mode = getIonMode$1(this);
13807
- return (hAsync(Host, { key: '9e35c114ce466623024b94dd6797118ad027417d', class: createColorClasses$1(this.color, {
13913
+ return (hAsync(Host, { key: 'b92792294360fd974324b31ed2d3db00d3e2f8cd', class: createColorClasses$1(this.color, {
13808
13914
  [mode]: true,
13809
13915
  'card-disabled': this.disabled,
13810
13916
  'ion-activatable': this.isClickable(),
@@ -13851,7 +13957,7 @@ class CardContent {
13851
13957
  }
13852
13958
  render() {
13853
13959
  const mode = getIonMode$1(this);
13854
- return (hAsync(Host, { key: 'd4da147bb0b0b14684b54d37d04ba5a8f7a7d71d', class: {
13960
+ return (hAsync(Host, { key: 'dd95806f042fcd124b18126679f671be6e32a021', class: {
13855
13961
  [mode]: true,
13856
13962
  // Used internally for styling
13857
13963
  [`card-content-${mode}`]: true,
@@ -13888,11 +13994,11 @@ class CardHeader {
13888
13994
  }
13889
13995
  render() {
13890
13996
  const mode = getIonMode$1(this);
13891
- return (hAsync(Host, { key: '070294064c4b17c941961c9cccf1ae6592b385b6', class: createColorClasses$1(this.color, {
13997
+ return (hAsync(Host, { key: '44077ad8e3edf7726d0f7a039046e32dc56a83c9', class: createColorClasses$1(this.color, {
13892
13998
  'card-header-translucent': this.translucent,
13893
13999
  'ion-inherit-color': true,
13894
14000
  [mode]: true,
13895
- }) }, hAsync("slot", { key: 'adac918d5e93bf69b07c5bda329ebf8c719bd623' })));
14001
+ }) }, hAsync("slot", { key: '51b6f4048d25521ece18d79e5361c762af41cae7' })));
13896
14002
  }
13897
14003
  static get style() { return {
13898
14004
  ios: IonCardHeaderIosStyle0,
@@ -13927,10 +14033,10 @@ class CardSubtitle {
13927
14033
  }
13928
14034
  render() {
13929
14035
  const mode = getIonMode$1(this);
13930
- return (hAsync(Host, { key: 'ae115cf349cd13f88d20b1fbab6b8a813a87b925', role: "heading", "aria-level": "3", class: createColorClasses$1(this.color, {
14036
+ return (hAsync(Host, { key: '6f94c9ced239cc945a148e0ecc7ab848fa70d8e3', role: "heading", "aria-level": "3", class: createColorClasses$1(this.color, {
13931
14037
  'ion-inherit-color': true,
13932
14038
  [mode]: true,
13933
- }) }, hAsync("slot", { key: 'f5dd779b34b5c5c541cbbe56cc8a877e50513252' })));
14039
+ }) }, hAsync("slot", { key: '445f81155799be5e81baa571bd16d57e5149df62' })));
13934
14040
  }
13935
14041
  static get style() { return {
13936
14042
  ios: IonCardSubtitleIosStyle0,
@@ -13964,10 +14070,10 @@ class CardTitle {
13964
14070
  }
13965
14071
  render() {
13966
14072
  const mode = getIonMode$1(this);
13967
- return (hAsync(Host, { key: '432d7bf971fda63c30c748986143ec2a8be9e4af', role: "heading", "aria-level": "2", class: createColorClasses$1(this.color, {
14073
+ return (hAsync(Host, { key: 'a9e4190346e7d0a8e6089ec1fe01bca0f5f7200d', role: "heading", "aria-level": "2", class: createColorClasses$1(this.color, {
13968
14074
  'ion-inherit-color': true,
13969
14075
  [mode]: true,
13970
- }) }, hAsync("slot", { key: '3c5dcf6ac1bf981c6c0488f0027765269c80db5a' })));
14076
+ }) }, hAsync("slot", { key: '8d87636ad703545b6d2297629205a5a8616eb94e' })));
13971
14077
  }
13972
14078
  static get style() { return {
13973
14079
  ios: IonCardTitleIosStyle0,
@@ -14335,7 +14441,7 @@ class Checkbox {
14335
14441
  const mode = getIonMode$1(this);
14336
14442
  const path = getSVGPath(mode, indeterminate);
14337
14443
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
14338
- return (hAsync(Host, { class: createColorClasses$1(color, {
14444
+ return (hAsync(Host, { "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
14339
14445
  [mode]: true,
14340
14446
  'in-item': hostContext('ion-item', el),
14341
14447
  'checkbox-checked': checked,
@@ -14436,12 +14542,12 @@ class Chip {
14436
14542
  }
14437
14543
  render() {
14438
14544
  const mode = getIonMode$1(this);
14439
- return (hAsync(Host, { key: 'eca7cc616c0c9dd2ab28efd41e203fa094880e9e', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
14545
+ return (hAsync(Host, { key: '886c26b6e7b3e3ca8622a4a0926bdf6dea0a71d4', "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
14440
14546
  [mode]: true,
14441
14547
  'chip-outline': this.outline,
14442
14548
  'chip-disabled': this.disabled,
14443
14549
  'ion-activatable': true,
14444
- }) }, hAsync("slot", { key: 'b64c9067132791f73a8434c37d5a335fb2d96f74' }), mode === 'md' && hAsync("ion-ripple-effect", null)));
14550
+ }) }, hAsync("slot", { key: 'd24353e79ac84013758cee1acb1b0f9b2ebb4d67' }), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b69bb3ce3d464251d5e11ba6a5240e4567f72f05' })));
14445
14551
  }
14446
14552
  static get style() { return {
14447
14553
  ios: IonChipIosStyle0,
@@ -14592,9 +14698,9 @@ class Col {
14592
14698
  render() {
14593
14699
  const isRTL = document.dir === 'rtl';
14594
14700
  const mode = getIonMode$1(this);
14595
- return (hAsync(Host, { key: 'c186972dd12d10a4600975c326f20666fed96abf', class: {
14701
+ return (hAsync(Host, { key: '56ecf3b3f2be05d5f179f2d136d4ab05a4525da9', class: {
14596
14702
  [mode]: true,
14597
- }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, hAsync("slot", { key: '54cc8bd92f94cfd30d9f3e8e59e0f0dc38abfd63' })));
14703
+ }, style: Object.assign(Object.assign(Object.assign(Object.assign({}, this.calculateOffset(isRTL)), this.calculatePull(isRTL)), this.calculatePush(isRTL)), this.calculateSize()) }, hAsync("slot", { key: '8f1113d39dcb709300ebbeaf81bc092c1dd8da3e' })));
14598
14704
  }
14599
14705
  static get style() { return IonColStyle0; }
14600
14706
  static get cmpMeta() { return {
@@ -14964,7 +15070,7 @@ class Content {
14964
15070
  const transitionShadow = mode === 'ios';
14965
15071
  const TagType = isMainContent ? 'main' : 'div';
14966
15072
  this.resize();
14967
- return (hAsync(Host, { key: '65d85e1f7f85876a76eec79addc4bd9f697a5d84', class: createColorClasses$1(this.color, {
15073
+ return (hAsync(Host, { key: 'e13815c0e6f6095150b112d3a1aaf2f509aa0d0b', class: createColorClasses$1(this.color, {
14968
15074
  [mode]: true,
14969
15075
  'content-sizing': hostContext('ion-popover', this.el),
14970
15076
  overscroll: forceOverscroll,
@@ -14972,12 +15078,12 @@ class Content {
14972
15078
  }), style: {
14973
15079
  '--offset-top': `${this.cTop}px`,
14974
15080
  '--offset-bottom': `${this.cBottom}px`,
14975
- } }, hAsync("div", { key: 'e2ac474a62cbc864772c497469100436f41289ff', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), hAsync(TagType, { key: '567a4bc2bcb13adfd987b088f95ac4b20b789f2c', class: {
15081
+ } }, hAsync("div", { key: '8006c4a10d8f7dc83c646246961d018a8097236e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), hAsync(TagType, { key: '4dd2f58421493f7a4ca42f8f5d7b85cda8e320ea', class: {
14976
15082
  'inner-scroll': true,
14977
15083
  'scroll-x': scrollX,
14978
15084
  'scroll-y': scrollY,
14979
15085
  overscroll: (scrollX || scrollY) && forceOverscroll,
14980
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '13909f87dd9f49bf1664ad95038499da376b9480' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, hAsync("slot", { key: '05b56c139e203cfd1e3dd08054e99328e97e9243', name: "fixed" })));
15086
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '37904f8f1d8319156cd901feb21930ef674fe0f7' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, hAsync("slot", { key: '8f696583903af0548d064dca1a6bae060e127485', name: "fixed" })));
14981
15087
  }
14982
15088
  get el() { return getElement(this); }
14983
15089
  static get style() { return IonContentStyle0; }
@@ -15959,7 +16065,25 @@ const getFormattedDayPeriod = (dayPeriod) => {
15959
16065
  }
15960
16066
  return dayPeriod.toUpperCase();
15961
16067
  };
15962
- const getLocalizedTime = (locale, refParts, hourCycle) => {
16068
+ /**
16069
+ * Including time zone options may lead to the rendered text showing a
16070
+ * different time from what was selected in the Datetime, which could cause
16071
+ * confusion.
16072
+ */
16073
+ const stripTimeZone = (formatOptions) => {
16074
+ return Object.assign(Object.assign({}, formatOptions), {
16075
+ /**
16076
+ * Setting the time zone to UTC ensures that the value shown is always the
16077
+ * same as what was selected and safeguards against older Safari bugs with
16078
+ * Intl.DateTimeFormat.
16079
+ */
16080
+ timeZone: 'UTC',
16081
+ /**
16082
+ * We do not want to display the time zone name
16083
+ */
16084
+ timeZoneName: undefined });
16085
+ };
16086
+ const getLocalizedTime = (locale, refParts, hourCycle, formatOptions = { hour: 'numeric', minute: 'numeric' }) => {
15963
16087
  const timeParts = {
15964
16088
  hour: refParts.hour,
15965
16089
  minute: refParts.minute,
@@ -15967,28 +16091,12 @@ const getLocalizedTime = (locale, refParts, hourCycle) => {
15967
16091
  if (timeParts.hour === undefined || timeParts.minute === undefined) {
15968
16092
  return 'Invalid Time';
15969
16093
  }
15970
- return new Intl.DateTimeFormat(locale, {
15971
- hour: 'numeric',
15972
- minute: 'numeric',
15973
- /**
15974
- * Setting the timeZone to UTC prevents
15975
- * new Intl.DatetimeFormat from subtracting
15976
- * the user's current timezone offset
15977
- * when formatting the time.
15978
- */
15979
- timeZone: 'UTC',
16094
+ return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, stripTimeZone(formatOptions)), {
15980
16095
  /**
15981
16096
  * We use hourCycle here instead of hour12 due to:
15982
16097
  * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
15983
16098
  */
15984
- hourCycle,
15985
- /**
15986
- * Setting Z at the end indicates that this
15987
- * date string is in the UTC time zone. This
15988
- * prevents new Date from adding the time zone
15989
- * offset when getting the ISO string.
15990
- */
15991
- }).format(new Date(convertDataToISO(Object.assign({
16099
+ hourCycle })).format(new Date(convertDataToISO(Object.assign({
15992
16100
  /**
15993
16101
  * JS uses a simplified ISO 8601 format which allows for
15994
16102
  * date-only formats and date-time formats, but not
@@ -16074,14 +16182,6 @@ const generateDayAriaLabel = (locale, today, refParts) => {
16074
16182
  */
16075
16183
  return today ? `Today, ${labelString}` : labelString;
16076
16184
  };
16077
- /**
16078
- * Gets the day of the week, month, and day
16079
- * Used for the header in MD mode.
16080
- */
16081
- const getMonthAndDay = (locale, refParts) => {
16082
- const date = getNormalizedDate(refParts);
16083
- return new Intl.DateTimeFormat(locale, { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }).format(date);
16084
- };
16085
16185
  /**
16086
16186
  * Given a locale and a date object,
16087
16187
  * return a formatted string that includes
@@ -16092,15 +16192,6 @@ const getMonthAndYear = (locale, refParts) => {
16092
16192
  const date = getNormalizedDate(refParts);
16093
16193
  return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(date);
16094
16194
  };
16095
- /**
16096
- * Given a locale and a date object,
16097
- * return a formatted string that includes
16098
- * the short month, numeric day, and full year.
16099
- * Example: Apr 22, 2021
16100
- */
16101
- const getMonthDayAndYear = (locale, refParts) => {
16102
- return getLocalizedDateTime(locale, refParts, { month: 'short', day: 'numeric', year: 'numeric' });
16103
- };
16104
16195
  /**
16105
16196
  * Given a locale and a date object,
16106
16197
  * return a formatted string that includes
@@ -16150,7 +16241,7 @@ const getNormalizedDate = (refParts) => {
16150
16241
  */
16151
16242
  const getLocalizedDateTime = (locale, refParts, options) => {
16152
16243
  const date = getNormalizedDate(refParts);
16153
- return getDateTimeFormat(locale, options).format(date);
16244
+ return getDateTimeFormat(locale, stripTimeZone(options)).format(date);
16154
16245
  };
16155
16246
  /**
16156
16247
  * Given a locale, DatetimeParts, and options
@@ -16916,6 +17007,48 @@ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
16916
17007
  return undefined;
16917
17008
  };
16918
17009
 
17010
+ /**
17011
+ * If a time zone is provided in the format options, the rendered text could
17012
+ * differ from what was selected in the Datetime, which could cause
17013
+ * confusion.
17014
+ */
17015
+ const warnIfTimeZoneProvided = (el, formatOptions) => {
17016
+ var _a, _b, _c, _d;
17017
+ if (((_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _a === void 0 ? void 0 : _a.timeZone) ||
17018
+ ((_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _b === void 0 ? void 0 : _b.timeZoneName) ||
17019
+ ((_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _c === void 0 ? void 0 : _c.timeZone) ||
17020
+ ((_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _d === void 0 ? void 0 : _d.timeZoneName)) {
17021
+ printIonWarning('Datetime: "timeZone" and "timeZoneName" are not supported in "formatOptions".', el);
17022
+ }
17023
+ };
17024
+ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) => {
17025
+ // formatOptions is not required
17026
+ if (!formatOptions)
17027
+ return;
17028
+ // If formatOptions is provided, the date and/or time objects are required, depending on the presentation
17029
+ switch (presentation) {
17030
+ case 'date':
17031
+ case 'month-year':
17032
+ case 'month':
17033
+ case 'year':
17034
+ if (formatOptions.date === undefined) {
17035
+ printIonWarning(`Datetime: The '${presentation}' presentation requires a date object in formatOptions.`, el);
17036
+ }
17037
+ break;
17038
+ case 'time':
17039
+ if (formatOptions.time === undefined) {
17040
+ printIonWarning(`Datetime: The 'time' presentation requires a time object in formatOptions.`, el);
17041
+ }
17042
+ break;
17043
+ case 'date-time':
17044
+ case 'time-date':
17045
+ if (formatOptions.date === undefined && formatOptions.time === undefined) {
17046
+ printIonWarning(`Datetime: The '${presentation}' presentation requires either a date or time object (or both) in formatOptions.`, el);
17047
+ }
17048
+ break;
17049
+ }
17050
+ };
17051
+
16919
17052
  const datetimeIosCss = "/*!@:host*/.sc-ion-datetime-ios-h{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}/*!@ion-picker-column-internal*/ion-picker-column-internal.sc-ion-datetime-ios{min-width:26px}/*!@:host(.datetime-size-fixed)*/.datetime-size-fixed.sc-ion-datetime-ios-h{width:auto;height:auto}/*!@:host(.datetime-size-fixed:not(.datetime-prefer-wheel))*/.datetime-size-fixed.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){max-width:350px}/*!@:host(.datetime-size-fixed.datetime-prefer-wheel)*/.datetime-size-fixed.datetime-prefer-wheel.sc-ion-datetime-ios-h{min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}/*!@:host(.datetime-size-cover)*/.datetime-size-cover.sc-ion-datetime-ios-h{width:100%}/*!@:host .calendar-body,\n:host .datetime-year*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{opacity:0}/*!@:host(:not(.datetime-ready)) .datetime-year*/.sc-ion-datetime-ios-h:not(.datetime-ready) .datetime-year.sc-ion-datetime-ios{position:absolute;pointer-events:none}/*!@:host(.datetime-ready) .calendar-body*/.datetime-ready.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{opacity:1}/*!@:host(.datetime-ready) .datetime-year*/.datetime-ready.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:none;opacity:1}/*!@:host .wheel-order-year-first .day-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .day-column.sc-ion-datetime-ios{-ms-flex-order:3;order:3;text-align:end}/*!@:host .wheel-order-year-first .month-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .month-column.sc-ion-datetime-ios{-ms-flex-order:2;order:2;text-align:end}/*!@:host .wheel-order-year-first .year-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .year-column.sc-ion-datetime-ios{-ms-flex-order:1;order:1;text-align:start}/*!@:host .datetime-calendar,\n:host .datetime-year*/.sc-ion-datetime-ios-h .datetime-calendar.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}/*!@:host(.show-month-and-year) .datetime-year*/.show-month-and-year.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{position:absolute;visibility:hidden;pointer-events:none}/*!@@supports (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{inset-inline-start:-99999px}}/*!@@supports not (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios not.sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:-99999px}.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .datetime-time,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .datetime-time{left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:none}}/*!@:host(.month-year-picker-open) .datetime-footer*/.month-year-picker-open.sc-ion-datetime-ios-h .datetime-footer.sc-ion-datetime-ios{display:none}/*!@:host(.datetime-disabled)*/.datetime-disabled.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-disabled) .calendar-days-of-week,\n:host(.datetime-disabled) .datetime-time*/.datetime-disabled.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.datetime-disabled.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{opacity:0.4}/*!@:host(.datetime-readonly)*/.datetime-readonly.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-readonly) .calendar-action-buttons,\n:host(.datetime-readonly) .calendar-body,\n:host(.datetime-readonly) .datetime-year*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{pointer-events:initial}/*!@:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),\n:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios:not(.calendar-day-constrained),.datetime-readonly.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-button[disabled].sc-ion-datetime-ios{opacity:1}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host .datetime-action-buttons.has-clear-button*/.sc-ion-datetime-ios-h .datetime-action-buttons.has-clear-button.sc-ion-datetime-ios{width:100%}/*!@:host .datetime-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@.datetime-action-buttons .datetime-action-buttons-container*/.datetime-action-buttons.sc-ion-datetime-ios .datetime-action-buttons-container.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}/*!@:host .calendar-action-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .calendar-action-buttons ion-item,\n:host .calendar-action-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{--background:translucent}/*!@:host .calendar-action-buttons ion-item ion-label*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-label.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:auto}/*!@:host .calendar-action-buttons ion-item ion-icon*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}/*!@:host .calendar-body*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}/*!@:host .calendar-body .calendar-month*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}/*!@:host .calendar-body .calendar-month-disabled*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-disabled.sc-ion-datetime-ios{scroll-snap-align:none}/*!@:host .calendar-body::-webkit-scrollbar*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios::-webkit-scrollbar{display:none}/*!@:host .calendar-body .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}/*!@:host .calendar-day[disabled]*/.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios{pointer-events:none;opacity:0.4}/*!@.calendar-day:focus*/.calendar-day.sc-ion-datetime-ios:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.datetime-presentation-time) .datetime-time*/.datetime-presentation-time.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host ion-popover*/.sc-ion-datetime-ios-h ion-popover.sc-ion-datetime-ios{--height:200px}/*!@:host .time-header*/.sc-ion-datetime-ios-h .time-header.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@:host .time-body*/.sc-ion-datetime-ios-h .time-body.sc-ion-datetime-ios{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@:host .time-body-active*/.sc-ion-datetime-ios-h .time-body-active.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host(.in-item)*/.in-item.sc-ion-datetime-ios-h{position:static}/*!@:host(.show-month-and-year) .calendar-action-buttons ion-item*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios{--color:var(--ion-color-base)}/*!@:host*/.sc-ion-datetime-ios-h{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}/*!@:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-date:not(.datetime-prefer-wheel))*/.datetime-presentation-date-time.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-time-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){min-height:350px}/*!@:host .datetime-header*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:min(0.875rem, 22.4px)}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{color:var(--title-color)}/*!@:host .datetime-header .datetime-selected-date*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-selected-date.sc-ion-datetime-ios{margin-top:10px}/*!@:host .calendar-action-buttons ion-item*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:min(1rem, 25.6px);font-weight:600}/*!@:host .calendar-action-buttons ion-item ion-icon,\n:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}/*!@:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:auto;height:auto;overflow:initial}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:32px}}/*!@:host .calendar-body .calendar-month .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}/*!@:host .calendar-day*/.sc-ion-datetime-ios-h .calendar-day.sc-ion-datetime-ios{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}/*!@.calendar-day.calendar-day-active*/.calendar-day.calendar-day-active.sc-ion-datetime-ios{background:rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .calendar-day.calendar-day-today*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-day.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-active.sc-ion-datetime-ios{color:var(--ion-color-base);font-weight:600}/*!@:host .calendar-day.calendar-day-today.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.calendar-day-active.sc-ion-datetime-ios{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}/*!@:host .datetime-time .time-header*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios .time-header.sc-ion-datetime-ios{font-weight:600}/*!@:host .datetime-buttons*/.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}/*!@:host .datetime-buttons ::slotted(ion-buttons),\n:host .datetime-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-buttons .sc-ion-datetime-ios-s>ion-buttons,.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .datetime-action-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios{width:100%}";
16920
17053
  var IonDatetimeIosStyle0 = datetimeIosCss;
16921
17054
 
@@ -17564,6 +17697,7 @@ class Datetime {
17564
17697
  this.color = 'primary';
17565
17698
  this.name = this.inputId;
17566
17699
  this.disabled = false;
17700
+ this.formatOptions = undefined;
17567
17701
  this.readonly = false;
17568
17702
  this.isDateEnabled = undefined;
17569
17703
  this.min = undefined;
@@ -17591,6 +17725,11 @@ class Datetime {
17591
17725
  this.size = 'fixed';
17592
17726
  this.preferWheel = false;
17593
17727
  }
17728
+ formatOptionsChanged() {
17729
+ const { el, formatOptions, presentation } = this;
17730
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
17731
+ warnIfTimeZoneProvided(el, formatOptions);
17732
+ }
17594
17733
  disabledChanged() {
17595
17734
  this.emitStyle();
17596
17735
  }
@@ -17600,6 +17739,10 @@ class Datetime {
17600
17739
  maxChanged() {
17601
17740
  this.processMaxParts();
17602
17741
  }
17742
+ presentationChanged() {
17743
+ const { el, formatOptions, presentation } = this;
17744
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
17745
+ }
17603
17746
  get isGridStyle() {
17604
17747
  const { presentation, preferWheel } = this;
17605
17748
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
@@ -17702,6 +17845,7 @@ class Datetime {
17702
17845
  this.initializeKeyboardListeners();
17703
17846
  }
17704
17847
  componentDidLoad() {
17848
+ const { el, intersectionTrackerRef } = this;
17705
17849
  /**
17706
17850
  * If a scrollable element is hidden using `display: none`,
17707
17851
  * it will not have a scroll height meaning we cannot scroll elements
@@ -17727,14 +17871,14 @@ class Datetime {
17727
17871
  this.el.classList.add('datetime-ready');
17728
17872
  });
17729
17873
  };
17730
- const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01 });
17874
+ const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
17731
17875
  /**
17732
17876
  * Use raf to avoid a race condition between the component loading and
17733
17877
  * its display animation starting (such as when shown in a modal). This
17734
17878
  * could cause the datetime to start at a visibility of 0, erroneously
17735
17879
  * triggering the `hiddenIO` observer below.
17736
17880
  */
17737
- raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(this.el));
17881
+ raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(intersectionTrackerRef));
17738
17882
  /**
17739
17883
  * We need to clean up listeners when the datetime is hidden
17740
17884
  * in a popover/modal so that we can properly scroll containers
@@ -17760,8 +17904,8 @@ class Datetime {
17760
17904
  this.el.classList.remove('datetime-ready');
17761
17905
  });
17762
17906
  };
17763
- const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0 });
17764
- raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(this.el));
17907
+ const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0, root: el });
17908
+ raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(intersectionTrackerRef));
17765
17909
  /**
17766
17910
  * Datetime uses Ionic components that emit
17767
17911
  * ionFocus and ionBlur. These events are
@@ -17835,7 +17979,7 @@ class Datetime {
17835
17979
  });
17836
17980
  }
17837
17981
  componentWillLoad() {
17838
- const { el, highlightedDates, multiple, presentation, preferWheel } = this;
17982
+ const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
17839
17983
  if (multiple) {
17840
17984
  if (presentation !== 'date') {
17841
17985
  printIonWarning('Multiple date selection is only supported for presentation="date".', el);
@@ -17852,6 +17996,10 @@ class Datetime {
17852
17996
  printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
17853
17997
  }
17854
17998
  }
17999
+ if (formatOptions) {
18000
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
18001
+ warnIfTimeZoneProvided(el, formatOptions);
18002
+ }
17855
18003
  const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));
17856
18004
  const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));
17857
18005
  const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));
@@ -18359,7 +18507,7 @@ class Datetime {
18359
18507
  return hAsync("slot", { name: "time-label" }, "Time");
18360
18508
  }
18361
18509
  renderTimeOverlay() {
18362
- const { disabled, hourCycle, isTimePopoverOpen, locale } = this;
18510
+ const { disabled, hourCycle, isTimePopoverOpen, locale, formatOptions } = this;
18363
18511
  const computedHourCycle = getHourCycle(locale, hourCycle);
18364
18512
  const activePart = this.getActivePartsWithFallback();
18365
18513
  return [
@@ -18379,7 +18527,7 @@ class Datetime {
18379
18527
  await popoverRef.onWillDismiss();
18380
18528
  this.isTimePopoverOpen = false;
18381
18529
  }
18382
- } }, getLocalizedTime(locale, activePart, computedHourCycle)),
18530
+ } }, getLocalizedTime(locale, activePart, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time)),
18383
18531
  hAsync("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
18384
18532
  /**
18385
18533
  * Intersection Observers do not consistently fire between Blink and Webkit
@@ -18402,7 +18550,8 @@ class Datetime {
18402
18550
  ];
18403
18551
  }
18404
18552
  getHeaderSelectedDateText() {
18405
- const { activeParts, multiple, titleSelectedDatesFormatter } = this;
18553
+ var _a;
18554
+ const { activeParts, formatOptions, multiple, titleSelectedDatesFormatter } = this;
18406
18555
  const isArray = Array.isArray(activeParts);
18407
18556
  let headerText;
18408
18557
  if (multiple && isArray && activeParts.length !== 1) {
@@ -18418,7 +18567,7 @@ class Datetime {
18418
18567
  }
18419
18568
  else {
18420
18569
  // for exactly 1 day selected (multiple set or not), show a formatted version of that
18421
- headerText = getMonthAndDay(this.locale, this.getActivePartsWithFallback());
18570
+ headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { weekday: 'short', month: 'short', day: 'numeric' });
18422
18571
  }
18423
18572
  return headerText;
18424
18573
  }
@@ -18507,7 +18656,7 @@ class Datetime {
18507
18656
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
18508
18657
  const hasWheelVariant = hasDatePresentation && preferWheel;
18509
18658
  renderHiddenInput(true, el, name, formatValue(value), disabled);
18510
- return (hAsync(Host, { key: 'b00545b7bbba3ccf35d53c1eec4f1614fb830c11', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
18659
+ return (hAsync(Host, { key: '8490192beb6c5c6064ed8f2a7be2d51846f84f36', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
18511
18660
  [mode]: true,
18512
18661
  ['datetime-readonly']: readonly,
18513
18662
  ['datetime-disabled']: disabled,
@@ -18517,13 +18666,15 @@ class Datetime {
18517
18666
  [`datetime-size-${size}`]: true,
18518
18667
  [`datetime-prefer-wheel`]: hasWheelVariant,
18519
18668
  [`datetime-grid`]: isGridStyle,
18520
- })) }, this.renderDatetime(mode)));
18669
+ })) }, hAsync("div", { key: 'a2959c07ed871f9004a2f11ab1385a5a7b5737fd', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
18521
18670
  }
18522
18671
  get el() { return getElement(this); }
18523
18672
  static get watchers() { return {
18673
+ "formatOptions": ["formatOptionsChanged"],
18524
18674
  "disabled": ["disabledChanged"],
18525
18675
  "min": ["minChanged"],
18526
18676
  "max": ["maxChanged"],
18677
+ "presentation": ["presentationChanged"],
18527
18678
  "yearValues": ["yearValuesChanged"],
18528
18679
  "monthValues": ["monthValuesChanged"],
18529
18680
  "dayValues": ["dayValuesChanged"],
@@ -18542,6 +18693,7 @@ class Datetime {
18542
18693
  "color": [1],
18543
18694
  "name": [1],
18544
18695
  "disabled": [4],
18696
+ "formatOptions": [16],
18545
18697
  "readonly": [4],
18546
18698
  "isDateEnabled": [16],
18547
18699
  "min": [1025],
@@ -18624,11 +18776,12 @@ class DatetimeButton {
18624
18776
  * to the locale specified on ion-datetime.
18625
18777
  */
18626
18778
  this.setDateTimeText = () => {
18779
+ var _a, _b, _c, _d, _e;
18627
18780
  const { datetimeEl, datetimePresentation } = this;
18628
18781
  if (!datetimeEl) {
18629
18782
  return;
18630
18783
  }
18631
- const { value, locale, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
18784
+ const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
18632
18785
  const parsedValues = this.getParsedDateValues(value);
18633
18786
  /**
18634
18787
  * Both ion-datetime and ion-datetime-button default
@@ -18651,8 +18804,8 @@ class DatetimeButton {
18651
18804
  switch (datetimePresentation) {
18652
18805
  case 'date-time':
18653
18806
  case 'time-date':
18654
- const dateText = getMonthDayAndYear(locale, firstParsedDatetime);
18655
- const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
18807
+ const dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { month: 'short', day: 'numeric', year: 'numeric' });
18808
+ const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time);
18656
18809
  if (preferWheel) {
18657
18810
  this.dateText = `${dateText} ${timeText}`;
18658
18811
  }
@@ -18675,20 +18828,20 @@ class DatetimeButton {
18675
18828
  this.dateText = headerText;
18676
18829
  }
18677
18830
  else {
18678
- this.dateText = getMonthDayAndYear(locale, firstParsedDatetime);
18831
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _b !== void 0 ? _b : { month: 'short', day: 'numeric', year: 'numeric' });
18679
18832
  }
18680
18833
  break;
18681
18834
  case 'time':
18682
- this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
18835
+ this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time);
18683
18836
  break;
18684
18837
  case 'month-year':
18685
- this.dateText = getMonthAndYear(locale, firstParsedDatetime);
18838
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _c !== void 0 ? _c : { month: 'long', year: 'numeric' });
18686
18839
  break;
18687
18840
  case 'month':
18688
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, { month: 'long' });
18841
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) !== null && _d !== void 0 ? _d : { month: 'long' });
18689
18842
  break;
18690
18843
  case 'year':
18691
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, { year: 'numeric' });
18844
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_e = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) !== null && _e !== void 0 ? _e : { year: 'numeric' });
18692
18845
  break;
18693
18846
  }
18694
18847
  };
@@ -18917,11 +19070,11 @@ class DatetimeButton {
18917
19070
  render() {
18918
19071
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
18919
19072
  const mode = getIonMode$1(this);
18920
- return (hAsync(Host, { key: '36fe34d4225940611d74bdef5b954d54749d2dca', class: createColorClasses$1(color, {
19073
+ return (hAsync(Host, { key: 'ab6c21a4c185dee71c8f14cafad82e38831c68d0', class: createColorClasses$1(color, {
18921
19074
  [mode]: true,
18922
19075
  [`${selectedButton}-active`]: datetimeActive,
18923
19076
  ['datetime-button-disabled']: disabled,
18924
- }) }, dateText && (hAsync("button", { 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", { name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", null))), timeText && (hAsync("button", { 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", { name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", null)))));
19077
+ }) }, dateText && (hAsync("button", { key: 'cbda6f3386c3714567a04b5a97a96c71d59822c8', 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: 'a00ff431512827bfef8c02982ef37099b2f21508', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '67935989628a2ed0492edb813fb0475bfd88abe7' }))), timeText && (hAsync("button", { key: '4207c94de5bece91b8388332e0192d1756403e62', 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: '9ffa7ef4417571933bd1757950ec805c49704759', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: 'fbcad00cf828c9719074d1d06f4e13246b28903e' })))));
18925
19078
  }
18926
19079
  get el() { return getElement(this); }
18927
19080
  static get style() { return {
@@ -18995,12 +19148,12 @@ class Fab {
18995
19148
  render() {
18996
19149
  const { horizontal, vertical, edge } = this;
18997
19150
  const mode = getIonMode$1(this);
18998
- return (hAsync(Host, { key: 'eb7470763cfaadd229036fe4e04913cb4a0551c7', class: {
19151
+ return (hAsync(Host, { key: '71df1068c3a2739a69d3571c2fe9bdf401a252cb', class: {
18999
19152
  [mode]: true,
19000
19153
  [`fab-horizontal-${horizontal}`]: horizontal !== undefined,
19001
19154
  [`fab-vertical-${vertical}`]: vertical !== undefined,
19002
19155
  'fab-edge': edge,
19003
- } }, hAsync("slot", { key: 'daf53f8c644db866f69d41401dba7a2791c37ac3' })));
19156
+ } }, hAsync("slot", { key: 'c3afd4a009d355d664f8c04057acf86196bda844' })));
19004
19157
  }
19005
19158
  get el() { return getElement(this); }
19006
19159
  static get watchers() { return {
@@ -19090,7 +19243,7 @@ class FabButton {
19090
19243
  rel: this.rel,
19091
19244
  target: this.target,
19092
19245
  };
19093
- return (hAsync(Host, { key: '78f11aaac39bf0fcb25b64885ee61619223e4241', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
19246
+ return (hAsync(Host, { key: '5b5e73a0236eabb3e994f0f33ee9ab6f75a12b24', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
19094
19247
  [mode]: true,
19095
19248
  'fab-button-in-list': inList,
19096
19249
  'fab-button-translucent-in-list': inList && translucent,
@@ -19101,7 +19254,7 @@ class FabButton {
19101
19254
  'ion-activatable': true,
19102
19255
  'ion-focusable': true,
19103
19256
  [`fab-button-${size}`]: size !== undefined,
19104
- }) }, hAsync(TagType, Object.assign({ key: 'a29b5eff122006d463ef3e10e1abe8378de07dc5' }, 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: 'e554c978fd9825eec9ca958f5b481f662ed6daa4', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: 'd7dd93e93343767d223800899f0fd4c405845023', class: "button-inner" }, hAsync("slot", { key: 'dd5df0945385480e7551e24117d136cd6b231638' })), mode === 'md' && hAsync("ion-ripple-effect", null))));
19257
+ }) }, hAsync(TagType, Object.assign({ key: 'e3c85ff305b6790519543603401b85f294aabed1' }, 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: '39241f9fa051506717c8680e1b809dbf2e56f1a1', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: '03f0ec1c25352f3a5decb33ebc060b9043ab569e', class: "button-inner" }, hAsync("slot", { key: '11c1a17bc0c54b840a96b96e03fffc23f0e64ff2' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '9b1642dba0beb3a22658ad0aead26b2ab57f0367' }))));
19105
19258
  }
19106
19259
  get el() { return getElement(this); }
19107
19260
  static get style() { return {
@@ -19152,11 +19305,11 @@ class FabList {
19152
19305
  }
19153
19306
  render() {
19154
19307
  const mode = getIonMode$1(this);
19155
- return (hAsync(Host, { key: 'c786680f9868700913a182f908f25a612ec08498', class: {
19308
+ return (hAsync(Host, { key: '3de1b0db4eb0230d4d2954e4265ddeb3c930b4dc', class: {
19156
19309
  [mode]: true,
19157
19310
  'fab-list-active': this.activated,
19158
19311
  [`fab-list-side-${this.side}`]: true,
19159
- } }, hAsync("slot", { key: '547f8cb69ab2371095e3deeef1dc13fc1053bdf6' })));
19312
+ } }, hAsync("slot", { key: '970aac2239ad9ea2b6b6c3c3ea45a18c45b37df2' })));
19160
19313
  }
19161
19314
  get el() { return getElement(this); }
19162
19315
  static get watchers() { return {
@@ -19608,7 +19761,7 @@ class Footer {
19608
19761
  const mode = getIonMode$1(this);
19609
19762
  const tabs = this.el.closest('ion-tabs');
19610
19763
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
19611
- return (hAsync(Host, { key: '550b8b8fb614e541e1d369fc1ac5ba1f083913b4', role: "contentinfo", class: {
19764
+ return (hAsync(Host, { key: 'dd8fa96901e8a09759a9621b6513f0492b3a6197', role: "contentinfo", class: {
19612
19765
  [mode]: true,
19613
19766
  // Used internally for styling
19614
19767
  [`footer-${mode}`]: true,
@@ -19616,7 +19769,7 @@ class Footer {
19616
19769
  [`footer-translucent-${mode}`]: translucent,
19617
19770
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
19618
19771
  [`footer-collapse-${collapse}`]: collapse !== undefined,
19619
- } }, mode === 'ios' && translucent && hAsync("div", { class: "footer-background" }), hAsync("slot", { key: 'd25187ecc2ce7848ba882af078cb634e9d5e8814' })));
19772
+ } }, mode === 'ios' && translucent && hAsync("div", { key: '0fbb4ebf8e3951ff399f843dc11aab37fc48f8b7', class: "footer-background" }), hAsync("slot", { key: 'ecb14a65e3b6960670446c4428e3095b3231a3b0' })));
19620
19773
  }
19621
19774
  get el() { return getElement(this); }
19622
19775
  static get style() { return {
@@ -19647,10 +19800,10 @@ class Grid {
19647
19800
  }
19648
19801
  render() {
19649
19802
  const mode = getIonMode$1(this);
19650
- return (hAsync(Host, { key: '03a8975bb9320192033219fc9e06fe7afa4fae4a', class: {
19803
+ return (hAsync(Host, { key: 'a1c2ff77f97761c2bbcd869b2cc7b1558032b406', class: {
19651
19804
  [mode]: true,
19652
19805
  'grid-fixed': this.fixed,
19653
- } }, hAsync("slot", { key: '8d95abb4614e73a46a274668c13fe7c7f011c537' })));
19806
+ } }, hAsync("slot", { key: 'cd25166436cf3a63a11ad436a9b9c5a607e72600' })));
19654
19807
  }
19655
19808
  static get style() { return IonGridStyle0; }
19656
19809
  static get cmpMeta() { return {
@@ -19841,7 +19994,7 @@ const handleHeaderFade = (scrollEl, baseEl, condenseHeader) => {
19841
19994
  });
19842
19995
  };
19843
19996
 
19844
- const headerIosCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header:not(.header-collapse-main):has(~ion-content ion-header[collapse=condense],~ion-content ion-header.header-collapse-condense){opacity:0}";
19997
+ const headerIosCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{--background:var(--ion-background-color, #fff);z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}";
19845
19998
  var IonHeaderIosStyle0 = headerIosCss;
19846
19999
 
19847
20000
  const headerMdCss = "ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}";
@@ -19981,14 +20134,14 @@ class Header {
19981
20134
  const collapse = this.collapse || 'none';
19982
20135
  // banner role must be at top level, so remove role if inside a menu
19983
20136
  const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
19984
- return (hAsync(Host, Object.assign({ key: 'a33e7e1818cb4718ae36b8bcfa811c4138b85fac', role: roleType, class: {
20137
+ return (hAsync(Host, Object.assign({ key: '9fa0af97b605f9fe98b13361bc3d1289745c549f', role: roleType, class: {
19985
20138
  [mode]: true,
19986
20139
  // Used internally for styling
19987
20140
  [`header-${mode}`]: true,
19988
20141
  [`header-translucent`]: this.translucent,
19989
20142
  [`header-collapse-${collapse}`]: true,
19990
20143
  [`header-translucent-${mode}`]: this.translucent,
19991
- } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { class: "header-background" }), hAsync("slot", { key: '7e2fa75034f7422a3dc5691e9b3c25393e16c0ca' })));
20144
+ } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: '1a780d2625302f2465718e304bdd3794c89c9845', class: "header-background" }), hAsync("slot", { key: 'b2b8557b44be40c590bfcc362ac4350f9f8b889e' })));
19992
20145
  }
19993
20146
  get el() { return getElement(this); }
19994
20147
  static get style() { return {
@@ -20267,7 +20420,7 @@ class Img {
20267
20420
  render() {
20268
20421
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
20269
20422
  const { draggable } = inheritedAttributes;
20270
- return (hAsync(Host, { key: '1983ddd575d8f870f249d37a3897dbcc110bf4d7', class: getIonMode$1(this) }, hAsync("img", { key: 'f2ba013804f6ed9e5dadb08c75e47c0f844e67f3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20423
+ return (hAsync(Host, { key: 'efff4d1bd0e54dbeff140c137eb50b803a9f6f60', class: getIonMode$1(this) }, hAsync("img", { key: '3a1e0276ae67a7e40ec8c4ecd0061634573b2094', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20271
20424
  }
20272
20425
  get el() { return getElement(this); }
20273
20426
  static get watchers() { return {
@@ -20474,7 +20627,7 @@ class InfiniteScroll {
20474
20627
  render() {
20475
20628
  const mode = getIonMode$1(this);
20476
20629
  const disabled = this.disabled;
20477
- return (hAsync(Host, { key: '8b5da92c7a1c118cd6c6a6be8f21b11b79f166bd', class: {
20630
+ return (hAsync(Host, { key: 'c2248d06232dd7771dd155693ec75f9258dc969e', class: {
20478
20631
  [mode]: true,
20479
20632
  'infinite-scroll-loading': this.isLoading,
20480
20633
  'infinite-scroll-enabled': !disabled,
@@ -20530,11 +20683,11 @@ class InfiniteScrollContent {
20530
20683
  }
20531
20684
  render() {
20532
20685
  const mode = getIonMode$1(this);
20533
- return (hAsync(Host, { key: '8ffd8ff4c951be0c2b1f48fd4be3a2d7765a989f', class: {
20686
+ return (hAsync(Host, { key: '2f4afb07bcfe3e12528eb9cee8646a097e0b359f', class: {
20534
20687
  [mode]: true,
20535
20688
  // Used internally for styling
20536
20689
  [`infinite-scroll-content-${mode}`]: true,
20537
- } }, hAsync("div", { key: 'd7d03485501b5e2fde7c132309bb6358818eb0cd', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { class: "infinite-loading-spinner" }, hAsync("ion-spinner", { name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20690
+ } }, hAsync("div", { key: 'af038177bf10c88c8970682487a4328689aaa5f2', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: '1da5d419bc6a978b6a509fdab47dae347fc8d221', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: '60cc5c64e0a317ac0005d5afe42c4bb8da58136f', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20538
20691
  }
20539
20692
  static get style() { return {
20540
20693
  ios: IonInfiniteScrollContentIosStyle0,
@@ -21101,6 +21254,14 @@ class Input {
21101
21254
  * button is activated.
21102
21255
  */
21103
21256
  ev.preventDefault();
21257
+ }, onFocusin: (ev) => {
21258
+ /**
21259
+ * Prevent the focusin event from bubbling otherwise it will cause the focusin
21260
+ * event listener in scroll assist to fire. When this fires, focus will be moved
21261
+ * back to the input even if the clear button was never tapped. This poses issues
21262
+ * for screen readers as it means users would be unable to swipe past the clear button.
21263
+ */
21264
+ ev.stopPropagation();
21104
21265
  }, onClick: this.clearTextInput }, hAsync("ion-icon", { "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp }))), hAsync("slot", { name: "end" })), shouldRenderHighlight && hAsync("div", { class: "input-highlight" })), this.renderBottomContent()));
21105
21266
  }
21106
21267
  // TODO FW-2764 Remove this
@@ -21477,7 +21638,7 @@ class Item {
21477
21638
  'ion-activatable': canActivate,
21478
21639
  'ion-focusable': this.focusable,
21479
21640
  'item-rtl': document.dir === 'rtl',
21480
- })), role: inList ? 'listitem' : null }, hAsync(TagType, Object.assign({ key: '1f9e61b627fc94d646cccbfd8be24df745080c2c' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), hAsync("slot", { key: '6690445e14e6f0614beae23b6cc2a2b9cd668934', name: "start" }), hAsync("div", { key: 'cc36ee6ad3f3c04b7fe907f7c63e81fa43938b28', class: "item-inner" }, hAsync("div", { key: '502eff7a3d237fa5658e505b3d2f74cdfdef16af', class: "input-wrapper" }, hAsync("slot", { key: '750d23dcab6844acb92c9636f21dff04c91d2b22' })), hAsync("slot", { key: 'ed16f6bce4ea5a76a181597b879f9bb55c909612', name: "end" }), showDetail && (hAsync("ion-icon", { icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward })), hAsync("div", { key: '29f89d1996f99a0d600c710e1b4bcd6975db7caf', class: "item-inner-highlight" })), canActivate && mode === 'md' && hAsync("ion-ripple-effect", null), hAsync("div", { key: '111ccb2ab79b9975d6f66714866ff4cc20a7b4da', class: "item-highlight" })), hAsync("div", { key: 'd2ea55be7686ffdd95f0b53d7e8e386983cd0c8e', class: "item-bottom" }, hAsync("slot", { key: '20adbe497dd62b23a169a5194947513a32f5c3a0', name: "error" }), hAsync("slot", { key: '52587f1f2b9056e76ad9be8ccd7754cbeaefdc71', name: "helper" }), counterString && hAsync("ion-note", { class: "item-counter" }, counterString))));
21641
+ })), role: inList ? 'listitem' : null }, hAsync(TagType, Object.assign({ key: '1f9e61b627fc94d646cccbfd8be24df745080c2c' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), hAsync("slot", { key: '6690445e14e6f0614beae23b6cc2a2b9cd668934', name: "start" }), hAsync("div", { key: 'cc36ee6ad3f3c04b7fe907f7c63e81fa43938b28', class: "item-inner" }, hAsync("div", { key: '502eff7a3d237fa5658e505b3d2f74cdfdef16af', class: "input-wrapper" }, hAsync("slot", { key: '750d23dcab6844acb92c9636f21dff04c91d2b22' })), hAsync("slot", { key: 'ed16f6bce4ea5a76a181597b879f9bb55c909612', name: "end" }), showDetail && (hAsync("ion-icon", { key: '95f5b05d1e409dbb7637f68313898d01a7321a15', icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward })), hAsync("div", { key: '8074c0486bf0b72a4503f55dcb4a1fa8da310899', class: "item-inner-highlight" })), canActivate && mode === 'md' && hAsync("ion-ripple-effect", { key: '7b2362cdcf8aaf8791f12d3f0b4aa1198d2b4961' }), hAsync("div", { key: 'e82c247286a9dcd1cf6e839b6e95434de175146b', class: "item-highlight" })), hAsync("div", { key: '37524cfdb3518f1f2a958eae4b49977a1199ba3d', class: "item-bottom" }, hAsync("slot", { key: '3643138f87985649e8ee32e099f4b592a45c4712', name: "error" }), hAsync("slot", { key: '0ce71b7fae1256290da625d0d70ac2ff69425247', name: "helper" }), counterString && hAsync("ion-note", { key: '4549ec01076ae1fe959bb88cafa24528444919a1', class: "item-counter" }, counterString))));
21481
21642
  }
21482
21643
  get el() { return getElement(this); }
21483
21644
  static get watchers() { return {
@@ -21540,11 +21701,11 @@ class ItemDivider {
21540
21701
  }
21541
21702
  render() {
21542
21703
  const mode = getIonMode$1(this);
21543
- return (hAsync(Host, { key: '8422b960dfcce4ff1370d9c185e285bb4a3688d5', class: createColorClasses$1(this.color, {
21704
+ return (hAsync(Host, { key: '5727179159ef2a8879f55435265003e0ec72df3f', class: createColorClasses$1(this.color, {
21544
21705
  [mode]: true,
21545
21706
  'item-divider-sticky': this.sticky,
21546
21707
  item: true,
21547
- }) }, hAsync("slot", { key: '240514b96ec48262040460775c8eb0a58d6acfa8', name: "start" }), hAsync("div", { key: 'ec18c092c81cb96f8c49ed7d4dede96c9a3e3f97', class: "item-divider-inner" }, hAsync("div", { key: '9c3f3dcb9b14fd1d37fb1104b3ba953dc9a3e894', class: "item-divider-wrapper" }, hAsync("slot", { key: '6b8e51eb86a5567b80a91034b26228105796a82d' })), hAsync("slot", { key: '7ccb661e1309c1ecca09a823f8e08b1cf90d95dd', name: "end" }))));
21708
+ }) }, hAsync("slot", { key: 'bb7df137e60ca3fa9a50c612e30fbb3ee4c818ad', name: "start" }), hAsync("div", { key: '6a25a01271957cfdd8e8dfb6ef76e1eb710380f2', class: "item-divider-inner" }, hAsync("div", { key: '554ba681b0f346ed0af03232f8b2e6ca399877d9', class: "item-divider-wrapper" }, hAsync("slot", { key: 'f98e20a01f09d0a2e19b7351eb1b4028881a07ab' })), hAsync("slot", { key: '755643b5b8d3463af41b3d0805871073a34386a3', name: "end" }))));
21548
21709
  }
21549
21710
  get el() { return getElement(this); }
21550
21711
  static get style() { return {
@@ -21576,7 +21737,7 @@ class ItemGroup {
21576
21737
  }
21577
21738
  render() {
21578
21739
  const mode = getIonMode$1(this);
21579
- return (hAsync(Host, { key: 'b33f23544ddeeeb61847b146b1dcb7a9ba30af18', role: "group", class: {
21740
+ return (hAsync(Host, { key: '5778fb7e9c6791874b4ff14f0babdae715e322e7', role: "group", class: {
21580
21741
  [mode]: true,
21581
21742
  // Used internally for styling
21582
21743
  [`item-group-${mode}`]: true,
@@ -21644,12 +21805,12 @@ class ItemOption {
21644
21805
  href: this.href,
21645
21806
  target: this.target,
21646
21807
  };
21647
- return (hAsync(Host, { key: '8d8ef0455e0e46d31a84b6f9e83e377e0579f04b', onClick: this.onClick, class: createColorClasses$1(this.color, {
21808
+ return (hAsync(Host, { key: '763c3a7571b143d1068d85103ccab403bc48abae', onClick: this.onClick, class: createColorClasses$1(this.color, {
21648
21809
  [mode]: true,
21649
21810
  'item-option-disabled': disabled,
21650
21811
  'item-option-expandable': expandable,
21651
21812
  'ion-activatable': true,
21652
- }) }, hAsync(TagType, Object.assign({ key: '0d4833cefd206862a75fdef8744e659cff24a39f' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'bfbdab3ee6cfc884eb2bd60c92cf919f4b671c27', class: "button-inner" }, hAsync("slot", { key: '968ebecbd9e8ca5015106d79e5d29b4a1999d39b', name: "top" }), hAsync("div", { key: '38677cd72df6447a4e934695ab08857460be800d', class: "horizontal-wrapper" }, hAsync("slot", { key: 'e65131d2e3f12c3743c7229b0a7f381824a45281', name: "start" }), hAsync("slot", { key: 'c3a9bd83c455a79395574ff4d862299fd9340cd2', name: "icon-only" }), hAsync("slot", { key: '161ca1daed265e8990d28f74744476a37d555d85' }), hAsync("slot", { key: 'd5ecafceada1f8c3c16a2cb6511368828009081f', name: "end" })), hAsync("slot", { key: '39e6a9dffc2cb9e2e9a200f6c669ed47f9a485aa', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", null))));
21813
+ }) }, hAsync(TagType, Object.assign({ key: 'cb199c2ccd38abaad3460f184af3093bf08546cc' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'f3ce9f1d343890c6f55f2609127f1e5113a2eedf', class: "button-inner" }, hAsync("slot", { key: 'cd9434883c0bdb4129fb6f49970d49710653a09a', name: "top" }), hAsync("div", { key: '764529c5f4b3d82105ce55885e8f121a91e8bc4a', class: "horizontal-wrapper" }, hAsync("slot", { key: '5bbd7b9ed9f35c8bf422c3134a1a097e174ad6df', name: "start" }), hAsync("slot", { key: '1e70a781cdf4ffcefb1dea70abe43655d7857c4b', name: "icon-only" }), hAsync("slot", { key: 'c3205e9b1577a56786c10a8b5b420010b5fe53fc' }), hAsync("slot", { key: '6bae6c98cd8d8526a203af47ca8e83753e1e1cb6', name: "end" })), hAsync("slot", { key: '466cc32cdf9cbbdbb58e4b29144215cf2984c0d6', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b5c54b801008b307ca8f718a41101be3e8d1d938' }))));
21653
21814
  }
21654
21815
  get el() { return getElement(this); }
21655
21816
  static get style() { return {
@@ -21696,7 +21857,7 @@ class ItemOptions {
21696
21857
  render() {
21697
21858
  const mode = getIonMode$1(this);
21698
21859
  const isEnd = isEndSide(this.side);
21699
- return (hAsync(Host, { key: '04d6baf62154da6ab9db5e679f982fe3fe276f89', class: {
21860
+ return (hAsync(Host, { key: '3dca0415ec2942ac8e87a057e26bcb290a892f65', class: {
21700
21861
  [mode]: true,
21701
21862
  // Used internally for styling
21702
21863
  [`item-options-${mode}`]: true,
@@ -22158,7 +22319,7 @@ class ItemSliding {
22158
22319
  }
22159
22320
  render() {
22160
22321
  const mode = getIonMode$1(this);
22161
- return (hAsync(Host, { key: 'f666dd119a72247feac11dcd704059fce7677325', class: {
22322
+ return (hAsync(Host, { key: '7f191e38bf717e6ccb246aa7b9fbd29d01e64677', class: {
22162
22323
  [mode]: true,
22163
22324
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
22164
22325
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -22267,7 +22428,7 @@ class Label {
22267
22428
  render() {
22268
22429
  const position = this.position;
22269
22430
  const mode = getIonMode$1(this);
22270
- return (hAsync(Host, { key: '813192a6460057c6d1e42f50f3f257bee2f550d8', class: createColorClasses$1(this.color, {
22431
+ return (hAsync(Host, { key: '72ad4ba5c1137ae0130e421346668e436ea53bf8', class: createColorClasses$1(this.color, {
22271
22432
  [mode]: true,
22272
22433
  'in-item-color': hostContext('ion-item.ion-color', this.el),
22273
22434
  [`label-${position}`]: position !== undefined,
@@ -22329,7 +22490,7 @@ class List {
22329
22490
  render() {
22330
22491
  const mode = getIonMode$1(this);
22331
22492
  const { lines, inset } = this;
22332
- return (hAsync(Host, { key: '2cb1b689d9460d9576b471bb8b13d14fe34d1c2c', role: "list", class: {
22493
+ return (hAsync(Host, { key: '3df401155114c7a39c81f201bf8a181d07e8d4c8', role: "list", class: {
22333
22494
  [mode]: true,
22334
22495
  // Used internally for styling
22335
22496
  [`list-${mode}`]: true,
@@ -22375,10 +22536,10 @@ class ListHeader {
22375
22536
  render() {
22376
22537
  const { lines } = this;
22377
22538
  const mode = getIonMode$1(this);
22378
- return (hAsync(Host, { key: '1b832a6882307d40fe4afc9a95a5db4fbdff60a3', class: createColorClasses$1(this.color, {
22539
+ return (hAsync(Host, { key: 'e5fabb3ae91e6fe47c89273d1d2dba5902f77f94', class: createColorClasses$1(this.color, {
22379
22540
  [mode]: true,
22380
22541
  [`list-header-lines-${lines}`]: lines !== undefined,
22381
- }) }, hAsync("div", { key: 'a53a3f05727b510d1b912c10c92a4aa58f4fe860', class: "list-header-inner" }, hAsync("slot", { key: '9377dee83f050b2cb2c5b7c5d106668cc81d8f90' }))));
22542
+ }) }, hAsync("div", { key: 'a9cfdaa436267fbabb0d618c3932849c1b77fbd2', class: "list-header-inner" }, hAsync("slot", { key: '8ed806fd58f8f2265c5bf466886086e88ada93cc' }))));
22382
22543
  }
22383
22544
  static get style() { return {
22384
22545
  ios: IonListHeaderIosStyle0,
@@ -22644,9 +22805,9 @@ class Loading {
22644
22805
  * Otherwise, don't set aria-labelledby.
22645
22806
  */
22646
22807
  const ariaLabelledBy = message !== undefined ? msgId : null;
22647
- return (hAsync(Host, Object.assign({ key: '95123f54ba1db5e59563d79db075315b43ed20f7', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22808
+ return (hAsync(Host, Object.assign({ key: 'e780853dc67b7b4ebd8dd65cadab648e4238c6ee', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22648
22809
  zIndex: `${40000 + this.overlayIndex}`,
22649
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'e113bf123eaad38f2dafce8ea5d2ebef409d0c0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '1268c9480854383c7883a79d597350540ade93c2', tabindex: "0" }), hAsync("div", { key: 'e86fc71504ebd578117dea2232d9740a087d1249', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { class: "loading-spinner" }, hAsync("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '3b91e2492e06aa65ebe77ed2b6ffb9d2f84bdd9c', tabindex: "0" })));
22810
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '8cd59ca7bc97b981fd578a526dfe859847e4d392', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'ef392aaf2cb7f6f9cecc685525cce3abc333e800', tabindex: "0" }), hAsync("div", { key: 'f1f6df21a7fa6565fe33acb4a5f355b5ec3e65b2', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '725cf5a206152885e31ab061b0c466fe1ead0225', class: "loading-spinner" }, hAsync("ion-spinner", { key: '5891dc39fa133b71576aec219f552386b202e163', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '8103269f1181325a507ed1c681f5ef15e40fbc34', tabindex: "0" })));
22650
22811
  }
22651
22812
  get el() { return getElement(this); }
22652
22813
  static get watchers() { return {
@@ -23644,13 +23805,13 @@ class Menu {
23644
23805
  * the ionBackButton listener in the menu controller
23645
23806
  * will handle closing the menu when Escape is pressed.
23646
23807
  */
23647
- return (hAsync(Host, { key: 'be7145625a30951e5cc26646f6121ee4fa4c910f', onKeyDown: shoudUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23808
+ return (hAsync(Host, { key: '7443f67fbe5122052025bab862136044fc942401', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23648
23809
  [mode]: true,
23649
23810
  [`menu-type-${type}`]: true,
23650
23811
  'menu-enabled': !disabled,
23651
23812
  [`menu-side-${side}`]: true,
23652
23813
  'menu-pane-visible': isPaneVisible,
23653
- } }, hAsync("div", { key: 'ecd6e0641ed67691db270190801f7be365a2d121', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'aea3780e259f2b3ea84697a509bb7f13fa9531e9' })), hAsync("ion-backdrop", { key: 'be3253506a34c4c00eb1814621c674196b72db46', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23814
+ } }, hAsync("div", { key: '45c7d37ace20f663a4bea89cb38bbc798f88dfbd', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '975437a5d4029cc200b6dbc2d47a16b4318c00aa' })), hAsync("ion-backdrop", { key: 'acc8a1f5dc1b1e2a34757bf797e794017f545bdc', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23654
23815
  }
23655
23816
  get el() { return getElement(this); }
23656
23817
  static get watchers() { return {
@@ -23753,7 +23914,7 @@ class MenuButton {
23753
23914
  type: this.type,
23754
23915
  };
23755
23916
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
23756
- return (hAsync(Host, { key: '2fd7130b8d28695162f7efebbd2131e5e9e4f330', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
23917
+ return (hAsync(Host, { key: '7a4543dfcbf559f0d3a473683f8e0bd1d4c3542a', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
23757
23918
  [mode]: true,
23758
23919
  button: true, // ion-buttons target .button
23759
23920
  'menu-button-hidden': hidden,
@@ -23762,7 +23923,7 @@ class MenuButton {
23762
23923
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
23763
23924
  'ion-activatable': true,
23764
23925
  'ion-focusable': true,
23765
- }) }, hAsync("button", Object.assign({ key: 'fa6b1fb9291df812b04065b4b0ebdfd28e5217eb' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '88106a08070ebff7457c581301efe649829aded2', class: "button-inner" }, hAsync("slot", { key: 'e3edfb89e5705b2c08c66f3d3452457667de3657' }, hAsync("ion-icon", { key: '24678e9c3bb2f1f3db113a2ae0ec93e407a7de0c', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { type: "unbounded" }))));
23926
+ }) }, hAsync("button", Object.assign({ key: '2b6944dc130fa765ac7559077254555583529ec3' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: 'b4d1006bec8c9e761c64ae3e2fb64848dfc30307', class: "button-inner" }, hAsync("slot", { key: 'eaf1d57cd2e841c70095821576c52062dc76500b' }, hAsync("ion-icon", { key: '105ddb806aae2e6add6cb3989fd4a5cf5ee7d952', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: '8a312aab747de2bdd6adee74fb0bfcbbde12c191', type: "unbounded" }))));
23766
23927
  }
23767
23928
  get el() { return getElement(this); }
23768
23929
  static get style() { return {
@@ -23811,10 +23972,10 @@ class MenuToggle {
23811
23972
  render() {
23812
23973
  const mode = getIonMode$1(this);
23813
23974
  const hidden = this.autoHide && !this.visible;
23814
- return (hAsync(Host, { key: '5b75baade530bf9e7ed9165a5db3e513975e22f2', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
23975
+ return (hAsync(Host, { key: '94a0815a634c6fb1991854bfbcf5b2b4b61d7710', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
23815
23976
  [mode]: true,
23816
23977
  'menu-toggle-hidden': hidden,
23817
- } }, hAsync("slot", { key: '65dea458274b685125c22af54aa153cf4977113c' })));
23978
+ } }, hAsync("slot", { key: 'f3ac6d17d5421390ab05f3f31ad00ec4f2ca5c7c' })));
23818
23979
  }
23819
23980
  static get style() { return IonMenuToggleStyle0; }
23820
23981
  static get cmpMeta() { return {
@@ -24913,19 +25074,32 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
24913
25074
  }
24914
25075
  const canStart = (detail) => {
24915
25076
  /**
24916
- * If the sheet is fully expanded and
24917
- * the user is swiping on the content,
24918
- * the gesture should not start to
24919
- * allow for scrolling on the content.
25077
+ * If we are swiping on the content, swiping should only be possible if the content
25078
+ * is scrolled all the way to the top so that we do not interfere with scrolling.
25079
+ *
25080
+ * We cannot assume that the `ion-content` target will remain consistent between swipes.
25081
+ * For example, when using ion-nav within a modal it is possible to swipe, push a view,
25082
+ * and then swipe again. The target content will not be the same between swipes.
24920
25083
  */
24921
- const content = detail.event.target.closest('ion-content');
25084
+ const contentEl = findClosestIonContent(detail.event.target);
24922
25085
  currentBreakpoint = getCurrentBreakpoint();
24923
- if (currentBreakpoint === 1 && content) {
24924
- return false;
25086
+ if (currentBreakpoint === 1 && contentEl) {
25087
+ /**
25088
+ * The modal should never swipe to close on the content with a refresher.
25089
+ * Note 1: We cannot solve this by making this gesture have a higher priority than
25090
+ * the refresher gesture as the iOS native refresh gesture uses a scroll listener in
25091
+ * addition to a gesture.
25092
+ *
25093
+ * Note 2: Do not use getScrollElement here because we need this to be a synchronous
25094
+ * operation, and getScrollElement is asynchronous.
25095
+ */
25096
+ const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
25097
+ const hasRefresherInContent = !!contentEl.querySelector('ion-refresher');
25098
+ return !hasRefresherInContent && scrollEl.scrollTop === 0;
24925
25099
  }
24926
25100
  return true;
24927
25101
  };
24928
- const onStart = () => {
25102
+ const onStart = (detail) => {
24929
25103
  /**
24930
25104
  * If canDismiss is anything other than `true`
24931
25105
  * then users should be able to swipe down
@@ -24940,11 +25114,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
24940
25114
  */
24941
25115
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
24942
25116
  /**
24943
- * If swiping on the content
24944
- * we should disable scrolling otherwise
24945
- * the sheet will expand and the content will scroll.
25117
+ * If we are pulling down, then it is possible we are pulling on the content.
25118
+ * We do not want scrolling to happen at the same time as the gesture.
24946
25119
  */
24947
- if (contentEl) {
25120
+ if (detail.deltaY > 0 && contentEl) {
24948
25121
  contentEl.scrollY = false;
24949
25122
  }
24950
25123
  raf(() => {
@@ -24957,6 +25130,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
24957
25130
  animation.progressStart(true, 1 - currentBreakpoint);
24958
25131
  };
24959
25132
  const onMove = (detail) => {
25133
+ /**
25134
+ * If we are pulling down, then it is possible we are pulling on the content.
25135
+ * We do not want scrolling to happen at the same time as the gesture.
25136
+ * This accounts for when the user scrolls down, scrolls all the way up, and then
25137
+ * pulls down again such that the modal should start to move.
25138
+ */
25139
+ if (detail.deltaY > 0 && contentEl) {
25140
+ contentEl.scrollY = false;
25141
+ }
24960
25142
  /**
24961
25143
  * Given the change in gesture position on the Y axis,
24962
25144
  * compute where the offset of the animation should be
@@ -25059,6 +25241,16 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
25059
25241
  else if (!shouldRemainOpen) {
25060
25242
  onDismiss();
25061
25243
  }
25244
+ /**
25245
+ * If the sheet is going to be fully expanded then we should enable
25246
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
25247
+ * so if we wait until then there is a visible delay for when scrolling is
25248
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
25249
+ * as the gesture is released, so we align with that.
25250
+ */
25251
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
25252
+ contentEl.scrollY = true;
25253
+ }
25062
25254
  return new Promise((resolve) => {
25063
25255
  animation
25064
25256
  .onFinish(() => {
@@ -25077,13 +25269,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
25077
25269
  animation.progressStart(true, 1 - snapToBreakpoint);
25078
25270
  currentBreakpoint = snapToBreakpoint;
25079
25271
  onBreakpointChange(currentBreakpoint);
25080
- /**
25081
- * If the sheet is fully expanded, we can safely
25082
- * enable scrolling again.
25083
- */
25084
- if (contentEl && currentBreakpoint === breakpoints[breakpoints.length - 1]) {
25085
- contentEl.scrollY = true;
25086
- }
25087
25272
  /**
25088
25273
  * Backdrop should become enabled
25089
25274
  * after the backdropBreakpoint value
@@ -25260,9 +25445,41 @@ class Modal {
25260
25445
  this.triggerController.removeClickListener();
25261
25446
  }
25262
25447
  componentWillLoad() {
25263
- const { breakpoints, initialBreakpoint, el } = this;
25448
+ const { breakpoints, initialBreakpoint, el, htmlAttributes } = this;
25264
25449
  const isSheetModal = (this.isSheetModal = breakpoints !== undefined && initialBreakpoint !== undefined);
25265
- this.inheritedAttributes = inheritAttributes$1(el, ['aria-label', 'role']);
25450
+ const attributesToInherit = ['aria-label', 'role'];
25451
+ this.inheritedAttributes = inheritAttributes$1(el, attributesToInherit);
25452
+ /**
25453
+ * When using a controller modal you can set attributes
25454
+ * using the htmlAttributes property. Since the above attributes
25455
+ * need to be inherited inside of the modal, we need to look
25456
+ * and see if these attributes are being set via htmlAttributes.
25457
+ *
25458
+ * We could alternatively move this to componentDidLoad to simplify the work
25459
+ * here, but we'd then need to make inheritedAttributes a State variable,
25460
+ * thus causing another render to always happen after the first render.
25461
+ */
25462
+ if (htmlAttributes !== undefined) {
25463
+ attributesToInherit.forEach((attribute) => {
25464
+ const attributeValue = htmlAttributes[attribute];
25465
+ if (attributeValue) {
25466
+ /**
25467
+ * If an attribute we need to inherit was
25468
+ * set using htmlAttributes then add it to
25469
+ * inheritedAttributes and remove it from htmlAttributes.
25470
+ * This ensures the attribute is inherited and not
25471
+ * set on the host.
25472
+ *
25473
+ * In this case, if an inherited attribute is set
25474
+ * on the host element and using htmlAttributes then
25475
+ * htmlAttributes wins, but that's not a pattern that we recommend.
25476
+ * The only time you'd need htmlAttributes is when using modalController.
25477
+ */
25478
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [attribute]: htmlAttributes[attribute] });
25479
+ delete htmlAttributes[attribute];
25480
+ }
25481
+ });
25482
+ }
25266
25483
  if (isSheetModal) {
25267
25484
  this.currentBreakpoint = this.initialBreakpoint;
25268
25485
  }
@@ -25659,18 +25876,18 @@ class Modal {
25659
25876
  const mode = getIonMode$1(this);
25660
25877
  const isCardModal = presentingElement !== undefined && mode === 'ios';
25661
25878
  const isHandleCycle = handleBehavior === 'cycle';
25662
- return (hAsync(Host, Object.assign({ key: '0c2c4369ab2df4ef4660addea5e927c6a0232864', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25879
+ return (hAsync(Host, Object.assign({ key: 'e4ad28e6e794560d85252aebdca7f4752e4e7e99', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25663
25880
  zIndex: `${20000 + this.overlayIndex}`,
25664
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: 'd044383a776c2ee1703f996caedaedca47f2948f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { class: "modal-shadow" }), hAsync("div", Object.assign({ key: '8d23b6a3cc9069e4d46fa0645cde9db3e6f89507',
25881
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '6efd67361a062d15488390f9f0d6c0841e541893', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '557b1c6b297df75acc80d1350b971e65ace6c343', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '67f9b27b662303fbaadaee2ae89972caadfd9994',
25665
25882
  /*
25666
25883
  role and aria-modal must be used on the
25667
25884
  same element. They must also be set inside the
25668
25885
  shadow DOM otherwise ion-button will not be highlighted
25669
25886
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
25670
25887
  */
25671
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { class: "modal-handle",
25888
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '8f1eecc451b52467a8c3cfe500335cf6254bbfbc', class: "modal-handle",
25672
25889
  // Prevents the handle from receiving keyboard focus when it does not cycle
25673
- 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: '3fbb689e4bf5575fbb26ad1000f6ac5993f3bf8f' }))));
25890
+ 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: 'cdc923404f01a14b9071a434c68547da3b22c71e' }))));
25674
25891
  }
25675
25892
  get el() { return getElement(this); }
25676
25893
  static get watchers() { return {
@@ -26615,7 +26832,7 @@ class Nav {
26615
26832
  }
26616
26833
  }
26617
26834
  render() {
26618
- return hAsync("slot", { key: '654286a8a7ef03d4a22497eb51e781a9a8979774' });
26835
+ return hAsync("slot", { key: '6894eccc60e446294b01261477691ea1e88348ab' });
26619
26836
  }
26620
26837
  get el() { return getElement(this); }
26621
26838
  static get watchers() { return {
@@ -26687,7 +26904,7 @@ class NavLink {
26687
26904
  this.routerAnimation = undefined;
26688
26905
  }
26689
26906
  render() {
26690
- return hAsync(Host, { key: 'a781794425ad0866705bc6691256184b93477a74', onClick: this.onClick });
26907
+ return hAsync(Host, { key: 'dab6e8a908395d99c87452c5e5aa4e61d9e72435', onClick: this.onClick });
26691
26908
  }
26692
26909
  get el() { return getElement(this); }
26693
26910
  static get cmpMeta() { return {
@@ -26721,9 +26938,9 @@ class Note {
26721
26938
  }
26722
26939
  render() {
26723
26940
  const mode = getIonMode$1(this);
26724
- return (hAsync(Host, { key: 'eebc0ea94483a248192408a1546739700281d2ae', class: createColorClasses$1(this.color, {
26941
+ return (hAsync(Host, { key: '79a17a318ec6e8326c9741b4a9bb4598acdc225e', class: createColorClasses$1(this.color, {
26725
26942
  [mode]: true,
26726
- }) }, hAsync("slot", { key: '33018e11967398327a0e7c20522547a4d9e8f55b' })));
26943
+ }) }, hAsync("slot", { key: '5adeaccfabb4bee7b84ea5c5de804bd255b29255' })));
26727
26944
  }
26728
26945
  static get style() { return {
26729
26946
  ios: IonNoteIosStyle0,
@@ -26975,11 +27192,11 @@ class Picker {
26975
27192
  render() {
26976
27193
  const { htmlAttributes } = this;
26977
27194
  const mode = getIonMode$1(this);
26978
- return (hAsync(Host, Object.assign({ key: 'c266cc072afaba2da22f70d8b62dc4bc6756d188', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
27195
+ return (hAsync(Host, Object.assign({ key: 'eb5f91ea74fb11daa6942f779ef461742cad9ecb', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
26979
27196
  zIndex: `${20000 + this.overlayIndex}`,
26980
27197
  }, class: Object.assign({ [mode]: true,
26981
27198
  // Used internally for styling
26982
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '35ee3e5028028835580e28ac2c8db65a924d5d6a', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '8b454e6edbcfc45c57d3d8baf7c14b7905921a6e', tabindex: "0" }), hAsync("div", { key: 'e0fee78ec6d097bf0963190f748e5daad602e0f7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'ce66bca18fc3e982ad7d6660f27cb1a03fb8247b', 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: 'a58b9523fe16f109dd6de0610717c5077fed964b', class: "picker-columns" }, hAsync("div", { key: 'acd54c0314cff51e8513a08dd9755c4b847c0617', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-column", { col: c })), hAsync("div", { key: '604730bd87582d048d850c6e0a0f29ba33258918', class: "picker-below-highlight" }))), hAsync("div", { key: '93baf5e6e57aec5f084d7d5b24af14e7d8126b5a', tabindex: "0" })));
27199
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '7ea872d939e62f14129fff15334b2822ad2360c9', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '2d77c225091eacab0207e28c96b966122afafef0', tabindex: "0" }), hAsync("div", { key: '630d21e0c60ad97b71462cdc540858bb6ced0b8f', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'fa8553ec8d2ce8bf93e16e02334b6475cb51b5d4', 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: '177d1bcbd0ce38f16d9c936295a917fb981d02d7', class: "picker-columns" }, hAsync("div", { key: 'be99b6e0279c210ef91a88ccc81acc7d37917a53', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-column", { col: c })), hAsync("div", { key: 'b36b21e8133b59e873e1d3447a1279f1b971c854', class: "picker-below-highlight" }))), hAsync("div", { key: '17cea6dd24dbb0a08073ca4a84bfe027eb24833d', tabindex: "0" })));
26983
27200
  }
26984
27201
  get el() { return getElement(this); }
26985
27202
  static get watchers() { return {
@@ -27370,9 +27587,9 @@ class PickerColumnCmp {
27370
27587
  render() {
27371
27588
  const col = this.col;
27372
27589
  const mode = getIonMode$1(this);
27373
- return (hAsync(Host, { key: '06e2ae483a3bcf4fe721ad0c48cded6a1efdc6c0', 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: {
27590
+ return (hAsync(Host, { key: '49bb4c67a67c7318d4c305df78ceabae36355112', 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: {
27374
27591
  'max-width': this.col.columnWidth,
27375
- } }, col.prefix && (hAsync("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '14bea013788d899edf7155eb3cc10f79fe8e4690', 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", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
27592
+ } }, col.prefix && (hAsync("div", { key: '7e65761d24473e4ba0ce2d4fc707a5c5e8127903', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '65c3aea609401e8ae4ea6d363a1b9436796c0a86', 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: 'c2e5a324ba95dd8832d3eb81b139e1f674d74a35', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
27376
27593
  }
27377
27594
  get el() { return getElement(this); }
27378
27595
  static get watchers() { return {
@@ -27643,7 +27860,11 @@ class PickerColumnInternal {
27643
27860
  */
27644
27861
  componentWillLoad() {
27645
27862
  const visibleCallback = (entries) => {
27646
- const ev = entries[0];
27863
+ /**
27864
+ * Browsers will sometimes group multiple IO events into a single callback.
27865
+ * As a result, we want to grab the last/most recent event in case there are multiple events.
27866
+ */
27867
+ const ev = entries[entries.length - 1];
27647
27868
  if (ev.isIntersecting) {
27648
27869
  const { activeItem, el } = this;
27649
27870
  this.isColumnVisible = true;
@@ -27732,18 +27953,18 @@ class PickerColumnInternal {
27732
27953
  * the attribute can be moved to datetime.tsx and set on every
27733
27954
  * instance of ion-picker-column-internal there instead.
27734
27955
  */
27735
- return (hAsync(Host, { key: 'd0e3818aa4ab06aefd988d1b42ae754244727b8f', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses$1(color, {
27956
+ return (hAsync(Host, { key: '42a034f2533d30d19f96a121eb74d5f757e1c684', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses$1(color, {
27736
27957
  [mode]: true,
27737
27958
  ['picker-column-active']: isActive,
27738
27959
  ['picker-column-numeric-input']: numericInput,
27739
- }) }, hAsync("div", { key: 'ec3b16415db5f64e3fab37fda023560ebcdc9423', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '40c78c9a1277807572d73e23048c2730cab88f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'c51fa817f6999356cf3568a46098e954936b45d5', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
27960
+ }) }, hAsync("div", { key: '85efccb40c87d473c06026b8041d57b40d2369c3', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '9fae4dd6697f23acba18c218ba250ea77954b18d', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'f117afeb204a4f6bb34a1cd0e1b786fa479d8b32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
27740
27961
  const isItemDisabled = pickerDisabled || item.disabled || false;
27741
27962
  return (hAsync("button", { tabindex: "-1", class: {
27742
27963
  'picker-item': true,
27743
27964
  }, "data-value": item.value, "data-index": index, onClick: (ev) => {
27744
27965
  this.centerPickerItemInView(ev.target, true);
27745
27966
  }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
27746
- }), hAsync("div", { key: '80a7461dfe571f46466219b05007b021711aed32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'fed82263295f58c51e2b753d0c06c7d71872b8a7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'e805dff4122cc4e5fb4d7dcb96054fee8ad3bd07', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
27967
+ }), hAsync("div", { key: '28aa37f9ce90e88b9c3a5b2c399e3066e9f339e1', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'ef4ae6bee2b17918f0c2aba9d5c720c1d95987e4', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '564967bc8e42a9018163850da3a967a933b3de7b', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
27747
27968
  }
27748
27969
  get el() { return getElement(this); }
27749
27970
  static get watchers() { return {
@@ -28248,7 +28469,7 @@ class PickerInternal {
28248
28469
  this.emitInputModeChange();
28249
28470
  }
28250
28471
  render() {
28251
- return (hAsync(Host, { key: 'f6b301345583f5ccfc31cce536176af7aeefd193', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: 'e57fd191d49cc500b719d5b9ad35054d55e96c43', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
28472
+ return (hAsync(Host, { key: '01cbd466787242ad070b01909714089570b4d67f', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: '7ff8c0a74c107610a6f0dd9fbc2fc7a4a6dc2468', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
28252
28473
  var _a;
28253
28474
  /**
28254
28475
  * The "Enter" key represents
@@ -28263,7 +28484,7 @@ class PickerInternal {
28263
28484
  if (ev.key === 'Enter') {
28264
28485
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
28265
28486
  }
28266
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '3360e7d913f87293844928e430acde69d399f68e', class: "picker-before" }), hAsync("div", { key: '4db89e681458d4eec5d60ff47d3e0ba9fd116682', class: "picker-after" }), hAsync("div", { key: 'a21b20d77dac8141623995b5a53f416d3d9fc1ef', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: '86c7d926523b615b4769bd1a4e9713b351089369' })));
28487
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '4700c9d877f54ae8f3fb173122193c27637f70a4', class: "picker-before" }), hAsync("div", { key: '7ceae834b15d559f3819ec2116f83669cf6665fc', class: "picker-after" }), hAsync("div", { key: '2d3bfda76279c2ee14edc067c53651be23b8b525', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: '4797def7a3882a8a911ad47949b76f58a9f448d1' })));
28267
28488
  }
28268
28489
  get el() { return getElement(this); }
28269
28490
  static get style() { return {
@@ -29234,10 +29455,10 @@ const mdLeaveAnimation$1 = (baseEl) => {
29234
29455
  .addAnimation([backdropAnimation, wrapperAnimation]);
29235
29456
  };
29236
29457
 
29237
- const popoverIosCss = "/*!@:host*/.sc-ion-popover-ios-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}/*!@:host(.popover-nested)*/.popover-nested.sc-ion-popover-ios-h{pointer-events:none}/*!@:host(.popover-nested) .popover-wrapper*/.popover-nested.sc-ion-popover-ios-h .popover-wrapper.sc-ion-popover-ios{pointer-events:auto}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-popover-ios-h{display:none}/*!@.popover-wrapper*/.popover-wrapper.sc-ion-popover-ios{z-index:10}/*!@.popover-content*/.popover-content.sc-ion-popover-ios{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}/*!@::slotted(.popover-viewport)*/.sc-ion-popover-ios-s>.popover-viewport{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}/*!@:host(.popover-nested.popover-side-left)*/.popover-nested.popover-side-left.sc-ion-popover-ios-h{--offset-x:5px}/*!@:host(.popover-nested.popover-side-right)*/.popover-nested.popover-side-right.sc-ion-popover-ios-h{--offset-x:-5px}/*!@:host(.popover-nested.popover-side-start)*/.popover-nested.popover-side-start.sc-ion-popover-ios-h{--offset-x:5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-start), :host-context([dir=rtl]).popover-nested.popover-side-start*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-ios-h,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-ios-h,[dir=rtl].popover-nested.popover-side-start.sc-ion-popover-ios-h,[dir=rtl] .popover-nested.popover-side-start.sc-ion-popover-ios-h{--offset-x:-5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-start:dir(rtl))*/.popover-nested.popover-side-start.sc-ion-popover-ios-h:dir(rtl){--offset-x:-5px}}/*!@:host(.popover-nested.popover-side-end)*/.popover-nested.popover-side-end.sc-ion-popover-ios-h{--offset-x:-5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-end), :host-context([dir=rtl]).popover-nested.popover-side-end*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-ios-h,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-ios-h,[dir=rtl].popover-nested.popover-side-end.sc-ion-popover-ios-h,[dir=rtl] .popover-nested.popover-side-end.sc-ion-popover-ios-h{--offset-x:5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-end:dir(rtl))*/.popover-nested.popover-side-end.sc-ion-popover-ios-h:dir(rtl){--offset-x:5px}}/*!@:host*/.sc-ion-popover-ios-h{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}/*!@:host(.popover-desktop)*/.popover-desktop.sc-ion-popover-ios-h{--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}/*!@.popover-content*/.popover-content.sc-ion-popover-ios{border-radius:10px}/*!@:host(.popover-desktop) .popover-content*/.popover-desktop.sc-ion-popover-ios-h .popover-content.sc-ion-popover-ios{border:0.5px solid var(--ion-color-step-100, #e6e6e6)}/*!@.popover-arrow*/.popover-arrow.sc-ion-popover-ios{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}/*!@.popover-arrow::after*/.popover-arrow.sc-ion-popover-ios::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:\"\";z-index:10}@supports (inset-inline-start: 0){/*!@.popover-arrow::after*/.popover-arrow.sc-ion-popover-ios::after{inset-inline-start:3px}}@supports not (inset-inline-start: 0){/*!@.popover-arrow::after*/.popover-arrow.sc-ion-popover-ios::after{left:3px}/*!@:host-context([dir=rtl]) .popover-arrow::after*/[dir=rtl].sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after,[dir=rtl] .sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{left:unset;right:unset;right:3px}/*!@[dir=rtl] .popover-arrow::after*/[dir=rtl].sc-ion-popover-ios .popover-arrow.sc-ion-popover-ios::after{left:unset;right:unset;right:3px}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-popover-ios selector(.sc-ion-popover-ios:dir(rtl)){.popover-arrow::after:dir(rtl){left:unset;right:unset;right:3px}}}/*!@:host(.popover-bottom) .popover-arrow*/.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{top:auto;bottom:-10px}/*!@:host(.popover-bottom) .popover-arrow::after*/.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{top:-6px}/*!@:host(.popover-side-left) .popover-arrow*/.popover-side-left.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}/*!@:host(.popover-side-right) .popover-arrow*/.popover-side-right.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}/*!@:host(.popover-side-top) .popover-arrow*/.popover-side-top.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(180deg);transform:rotate(180deg)}/*!@:host(.popover-side-start) .popover-arrow*/.popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}/*!@:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow, :host-context([dir=rtl]).popover-side-start .popover-arrow*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl].popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){/*!@:host(.popover-side-start:dir(rtl)) .popover-arrow*/.popover-side-start.sc-ion-popover-ios-h:dir(rtl) .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}/*!@:host(.popover-side-end) .popover-arrow*/.popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}/*!@:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow, :host-context([dir=rtl]).popover-side-end .popover-arrow*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl].popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){/*!@:host(.popover-side-end:dir(rtl)) .popover-arrow*/.popover-side-end.sc-ion-popover-ios-h:dir(rtl) .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}/*!@.popover-arrow,\n.popover-content*/.popover-arrow.sc-ion-popover-ios,.popover-content.sc-ion-popover-ios{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){/*!@:host(.popover-translucent) .popover-content,\n :host(.popover-translucent) .popover-arrow::after*/.popover-translucent.sc-ion-popover-ios-h .popover-content.sc-ion-popover-ios,.popover-translucent.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}";
29458
+ const popoverIosCss = "/*!@:host*/.sc-ion-popover-ios-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}/*!@:host(.popover-nested)*/.popover-nested.sc-ion-popover-ios-h{pointer-events:none}/*!@:host(.popover-nested) .popover-wrapper*/.popover-nested.sc-ion-popover-ios-h .popover-wrapper.sc-ion-popover-ios{pointer-events:auto}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-popover-ios-h{display:none}/*!@.popover-wrapper*/.popover-wrapper.sc-ion-popover-ios{z-index:10}/*!@.popover-content*/.popover-content.sc-ion-popover-ios{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}/*!@::slotted(.popover-viewport)*/.sc-ion-popover-ios-s>.popover-viewport{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}/*!@:host(.popover-nested.popover-side-left)*/.popover-nested.popover-side-left.sc-ion-popover-ios-h{--offset-x:5px}/*!@:host(.popover-nested.popover-side-right)*/.popover-nested.popover-side-right.sc-ion-popover-ios-h{--offset-x:-5px}/*!@:host(.popover-nested.popover-side-start)*/.popover-nested.popover-side-start.sc-ion-popover-ios-h{--offset-x:5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-start), :host-context([dir=rtl]).popover-nested.popover-side-start*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-ios-h,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-ios-h,[dir=rtl].popover-nested.popover-side-start.sc-ion-popover-ios-h,[dir=rtl] .popover-nested.popover-side-start.sc-ion-popover-ios-h{--offset-x:-5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-start:dir(rtl))*/.popover-nested.popover-side-start.sc-ion-popover-ios-h:dir(rtl){--offset-x:-5px}}/*!@:host(.popover-nested.popover-side-end)*/.popover-nested.popover-side-end.sc-ion-popover-ios-h{--offset-x:-5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-end), :host-context([dir=rtl]).popover-nested.popover-side-end*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-ios-h,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-ios-h,[dir=rtl].popover-nested.popover-side-end.sc-ion-popover-ios-h,[dir=rtl] .popover-nested.popover-side-end.sc-ion-popover-ios-h{--offset-x:5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-end:dir(rtl))*/.popover-nested.popover-side-end.sc-ion-popover-ios-h:dir(rtl){--offset-x:5px}}/*!@:host*/.sc-ion-popover-ios-h{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}/*!@:host(.popover-desktop)*/.popover-desktop.sc-ion-popover-ios-h{--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}/*!@.popover-content*/.popover-content.sc-ion-popover-ios{border-radius:10px}/*!@:host(.popover-desktop) .popover-content*/.popover-desktop.sc-ion-popover-ios-h .popover-content.sc-ion-popover-ios{border:0.5px solid var(--ion-color-step-100, #e6e6e6)}/*!@.popover-arrow*/.popover-arrow.sc-ion-popover-ios{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}/*!@.popover-arrow::after*/.popover-arrow.sc-ion-popover-ios::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:\"\";z-index:10}@supports (inset-inline-start: 0){/*!@.popover-arrow::after*/.popover-arrow.sc-ion-popover-ios::after{inset-inline-start:3px}}@supports not (inset-inline-start: 0){/*!@.popover-arrow::after*/.popover-arrow.sc-ion-popover-ios::after{left:3px}/*!@:host-context([dir=rtl]) .popover-arrow::after*/[dir=rtl].sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after,[dir=rtl] .sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{left:unset;right:unset;right:3px}/*!@[dir=rtl] .popover-arrow::after*/[dir=rtl].sc-ion-popover-ios .popover-arrow.sc-ion-popover-ios::after{left:unset;right:unset;right:3px}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-popover-ios selector(.sc-ion-popover-ios:dir(rtl)){.popover-arrow::after:dir(rtl){left:unset;right:unset;right:3px}}}/*!@:host(.popover-bottom) .popover-arrow*/.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{top:auto;bottom:-10px}/*!@:host(.popover-bottom) .popover-arrow::after*/.popover-bottom.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{top:-6px}/*!@:host(.popover-side-left) .popover-arrow*/.popover-side-left.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}/*!@:host(.popover-side-right) .popover-arrow*/.popover-side-right.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}/*!@:host(.popover-side-top) .popover-arrow*/.popover-side-top.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(180deg);transform:rotate(180deg)}/*!@:host(.popover-side-start) .popover-arrow*/.popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}/*!@:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow, :host-context([dir=rtl]).popover-side-start .popover-arrow*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl].popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .popover-side-start.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){/*!@:host(.popover-side-start:dir(rtl)) .popover-arrow*/.popover-side-start.sc-ion-popover-ios-h:dir(rtl) .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}/*!@:host(.popover-side-end) .popover-arrow*/.popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}/*!@:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow, :host-context([dir=rtl]).popover-side-end .popover-arrow*/[dir=rtl].sc-ion-popover-ios-h -no-combinator.popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .sc-ion-popover-ios-h -no-combinator.popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl].popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios,[dir=rtl] .popover-side-end.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){/*!@:host(.popover-side-end:dir(rtl)) .popover-arrow*/.popover-side-end.sc-ion-popover-ios-h:dir(rtl) .popover-arrow.sc-ion-popover-ios{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}/*!@.popover-arrow,\n.popover-content*/.popover-arrow.sc-ion-popover-ios,.popover-content.sc-ion-popover-ios{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){/*!@:host(.popover-translucent) .popover-content,\n :host(.popover-translucent) .popover-arrow::after*/.popover-translucent.sc-ion-popover-ios-h .popover-content.sc-ion-popover-ios,.popover-translucent.sc-ion-popover-ios-h .popover-arrow.sc-ion-popover-ios::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}";
29238
29459
  var IonPopoverIosStyle0 = popoverIosCss;
29239
29460
 
29240
- const popoverMdCss = "/*!@:host*/.sc-ion-popover-md-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}/*!@:host(.popover-nested)*/.popover-nested.sc-ion-popover-md-h{pointer-events:none}/*!@:host(.popover-nested) .popover-wrapper*/.popover-nested.sc-ion-popover-md-h .popover-wrapper.sc-ion-popover-md{pointer-events:auto}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-popover-md-h{display:none}/*!@.popover-wrapper*/.popover-wrapper.sc-ion-popover-md{z-index:10}/*!@.popover-content*/.popover-content.sc-ion-popover-md{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}/*!@::slotted(.popover-viewport)*/.sc-ion-popover-md-s>.popover-viewport{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;overflow:hidden}/*!@:host(.popover-nested.popover-side-left)*/.popover-nested.popover-side-left.sc-ion-popover-md-h{--offset-x:5px}/*!@:host(.popover-nested.popover-side-right)*/.popover-nested.popover-side-right.sc-ion-popover-md-h{--offset-x:-5px}/*!@:host(.popover-nested.popover-side-start)*/.popover-nested.popover-side-start.sc-ion-popover-md-h{--offset-x:5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-start), :host-context([dir=rtl]).popover-nested.popover-side-start*/[dir=rtl].sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-md-h,[dir=rtl] .sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-md-h,[dir=rtl].popover-nested.popover-side-start.sc-ion-popover-md-h,[dir=rtl] .popover-nested.popover-side-start.sc-ion-popover-md-h{--offset-x:-5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-start:dir(rtl))*/.popover-nested.popover-side-start.sc-ion-popover-md-h:dir(rtl){--offset-x:-5px}}/*!@:host(.popover-nested.popover-side-end)*/.popover-nested.popover-side-end.sc-ion-popover-md-h{--offset-x:-5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-end), :host-context([dir=rtl]).popover-nested.popover-side-end*/[dir=rtl].sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-md-h,[dir=rtl] .sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-md-h,[dir=rtl].popover-nested.popover-side-end.sc-ion-popover-md-h,[dir=rtl] .popover-nested.popover-side-end.sc-ion-popover-md-h{--offset-x:5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-end:dir(rtl))*/.popover-nested.popover-side-end.sc-ion-popover-md-h:dir(rtl){--offset-x:5px}}/*!@:host*/.sc-ion-popover-md-h{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}/*!@.popover-content*/.popover-content.sc-ion-popover-md{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}/*!@:host-context([dir=rtl]) .popover-content*/[dir=rtl].sc-ion-popover-md-h .popover-content.sc-ion-popover-md,[dir=rtl] .sc-ion-popover-md-h .popover-content.sc-ion-popover-md{-webkit-transform-origin:right top;transform-origin:right top}/*!@[dir=rtl] .popover-content*/[dir=rtl].sc-ion-popover-md .popover-content.sc-ion-popover-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){/*!@.popover-content:dir(rtl)*/.popover-content.sc-ion-popover-md:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}/*!@.popover-viewport*/.popover-viewport.sc-ion-popover-md{-webkit-transition-delay:100ms;transition-delay:100ms}/*!@.popover-wrapper*/.popover-wrapper.sc-ion-popover-md{opacity:0}";
29461
+ const popoverMdCss = "/*!@:host*/.sc-ion-popover-md-h{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}/*!@:host(.popover-nested)*/.popover-nested.sc-ion-popover-md-h{pointer-events:none}/*!@:host(.popover-nested) .popover-wrapper*/.popover-nested.sc-ion-popover-md-h .popover-wrapper.sc-ion-popover-md{pointer-events:auto}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-popover-md-h{display:none}/*!@.popover-wrapper*/.popover-wrapper.sc-ion-popover-md{z-index:10}/*!@.popover-content*/.popover-content.sc-ion-popover-md{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}/*!@::slotted(.popover-viewport)*/.sc-ion-popover-md-s>.popover-viewport{--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}/*!@:host(.popover-nested.popover-side-left)*/.popover-nested.popover-side-left.sc-ion-popover-md-h{--offset-x:5px}/*!@:host(.popover-nested.popover-side-right)*/.popover-nested.popover-side-right.sc-ion-popover-md-h{--offset-x:-5px}/*!@:host(.popover-nested.popover-side-start)*/.popover-nested.popover-side-start.sc-ion-popover-md-h{--offset-x:5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-start), :host-context([dir=rtl]).popover-nested.popover-side-start*/[dir=rtl].sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-md-h,[dir=rtl] .sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-start.sc-ion-popover-md-h,[dir=rtl].popover-nested.popover-side-start.sc-ion-popover-md-h,[dir=rtl] .popover-nested.popover-side-start.sc-ion-popover-md-h{--offset-x:-5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-start:dir(rtl))*/.popover-nested.popover-side-start.sc-ion-popover-md-h:dir(rtl){--offset-x:-5px}}/*!@:host(.popover-nested.popover-side-end)*/.popover-nested.popover-side-end.sc-ion-popover-md-h{--offset-x:-5px}/*!@:host-context([dir=rtl]):host(.popover-nested.popover-side-end), :host-context([dir=rtl]).popover-nested.popover-side-end*/[dir=rtl].sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-md-h,[dir=rtl] .sc-ion-popover-md-h -no-combinator.popover-nested.popover-side-end.sc-ion-popover-md-h,[dir=rtl].popover-nested.popover-side-end.sc-ion-popover-md-h,[dir=rtl] .popover-nested.popover-side-end.sc-ion-popover-md-h{--offset-x:5px}@supports selector(:dir(rtl)){/*!@:host(.popover-nested.popover-side-end:dir(rtl))*/.popover-nested.popover-side-end.sc-ion-popover-md-h:dir(rtl){--offset-x:5px}}/*!@:host*/.sc-ion-popover-md-h{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}/*!@.popover-content*/.popover-content.sc-ion-popover-md{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}/*!@:host-context([dir=rtl]) .popover-content*/[dir=rtl].sc-ion-popover-md-h .popover-content.sc-ion-popover-md,[dir=rtl] .sc-ion-popover-md-h .popover-content.sc-ion-popover-md{-webkit-transform-origin:right top;transform-origin:right top}/*!@[dir=rtl] .popover-content*/[dir=rtl].sc-ion-popover-md .popover-content.sc-ion-popover-md{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){/*!@.popover-content:dir(rtl)*/.popover-content.sc-ion-popover-md:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}/*!@.popover-viewport*/.popover-viewport.sc-ion-popover-md{-webkit-transition-delay:100ms;transition-delay:100ms}/*!@.popover-wrapper*/.popover-wrapper.sc-ion-popover-md{opacity:0}";
29241
29462
  var IonPopoverMdStyle0 = popoverMdCss;
29242
29463
 
29243
29464
  // TODO(FW-2832): types
@@ -29569,9 +29790,9 @@ class Popover {
29569
29790
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
29570
29791
  const desktop = isPlatform('desktop');
29571
29792
  const enableArrow = arrow && !parentPopover;
29572
- return (hAsync(Host, Object.assign({ key: '104a5bf92a9bbd2efc71d499a8500e5d55f81711', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
29793
+ return (hAsync(Host, Object.assign({ key: 'f3b86c7bc6ef6b1b27a6ac78e7ddd98e46223bd4', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
29573
29794
  zIndex: `${20000 + this.overlayIndex}`,
29574
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'ef0baa04c22444d4bc705220235a892308d67586', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '5cc5f5c353de614e484e9cfeacecfca9fbfde0e0', class: "popover-content", part: "content" }, hAsync("slot", { key: '2d85c591cdc85efa98afbf40f676525f1402efcf' })))));
29795
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'f7fbd914100838ed7d419eedd19e6b1efa691127', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'a651cb4daa6556e761c2e2b672306ad25e4c9429', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '7c5c7d8d6f9530535124e3fc75a38055f68b7589', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '9f92fff4f36941e8f7de9774aef7d7508ca5cfe5', class: "popover-content", part: "content" }, hAsync("slot", { key: '26c4e3df40a4832caff996ead3321c656eb5704f' })))));
29575
29796
  }
29576
29797
  get el() { return getElement(this); }
29577
29798
  static get watchers() { return {
@@ -29660,7 +29881,7 @@ class ProgressBar {
29660
29881
  const { color, type, reversed, value, buffer } = this;
29661
29882
  const paused = config.getBoolean('_testing');
29662
29883
  const mode = getIonMode$1(this);
29663
- return (hAsync(Host, { key: '384d09558f91dc8119e689c3a8923e67c54c7eb2', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
29884
+ return (hAsync(Host, { key: '944b79ed6fce1b2c0ed48681cd8517a5abbddd80', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
29664
29885
  [mode]: true,
29665
29886
  [`progress-bar-${type}`]: true,
29666
29887
  'progress-paused': paused,
@@ -30083,7 +30304,7 @@ class RadioGroup {
30083
30304
  const { label, labelId, el, name, value } = this;
30084
30305
  const mode = getIonMode$1(this);
30085
30306
  renderHiddenInput(true, el, name, value, false);
30086
- return hAsync(Host, { key: 'd8e84feca8f4dbe7605bc4ad096b6e68b482ba68', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
30307
+ return hAsync(Host, { key: '6065674a08ac2ead25e87219b5628879a759b75a', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
30087
30308
  }
30088
30309
  get el() { return getElement(this); }
30089
30310
  static get watchers() { return {
@@ -30209,8 +30430,14 @@ class Range {
30209
30430
  el: rangeSlider,
30210
30431
  gestureName: 'range',
30211
30432
  gesturePriority: 100,
30212
- threshold: 0,
30213
- onStart: (ev) => this.onStart(ev),
30433
+ /**
30434
+ * Provide a threshold since the drag movement
30435
+ * might be a user scrolling the view.
30436
+ * If this is true, then the range
30437
+ * should not move.
30438
+ */
30439
+ threshold: 10,
30440
+ onStart: () => this.onStart(),
30214
30441
  onMove: (ev) => this.onMove(ev),
30215
30442
  onEnd: (ev) => this.onEnd(ev),
30216
30443
  });
@@ -30393,33 +30620,93 @@ class Range {
30393
30620
  this.value = this.ensureValueInBounds(this.value);
30394
30621
  this.ionChange.emit({ value: this.value });
30395
30622
  }
30396
- onStart(detail) {
30397
- const { contentEl } = this;
30398
- if (contentEl) {
30623
+ /**
30624
+ * The value should be updated on touch end or
30625
+ * when the component is being dragged.
30626
+ * This follows the native behavior of mobile devices.
30627
+ *
30628
+ * For example: When the user lifts their finger from the
30629
+ * screen after tapping the bar or dragging the bar or knob.
30630
+ */
30631
+ onStart() {
30632
+ this.ionKnobMoveStart.emit({ value: this.ensureValueInBounds(this.value) });
30633
+ }
30634
+ /**
30635
+ * The value should be updated while dragging the
30636
+ * bar or knob.
30637
+ *
30638
+ * While the user is dragging, the view
30639
+ * should not scroll. This is to prevent the user from
30640
+ * feeling disoriented while dragging.
30641
+ *
30642
+ * The user can scroll on the view if the knob or
30643
+ * bar is not being dragged.
30644
+ *
30645
+ * @param detail The details of the gesture event.
30646
+ */
30647
+ onMove(detail) {
30648
+ const { contentEl, pressedKnob } = this;
30649
+ const currentX = detail.currentX;
30650
+ /**
30651
+ * Since the user is dragging on the bar or knob, the view should not scroll.
30652
+ *
30653
+ * This only needs to be done once.
30654
+ */
30655
+ if (contentEl && this.initialContentScrollY === undefined) {
30399
30656
  this.initialContentScrollY = disableContentScrollY(contentEl);
30400
30657
  }
30401
- const rect = (this.rect = this.rangeSlider.getBoundingClientRect());
30402
- const currentX = detail.currentX;
30403
- // figure out which knob they started closer to
30404
- let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);
30405
- if (isRTL$1(this.el)) {
30406
- ratio = 1 - ratio;
30658
+ /**
30659
+ * The `pressedKnob` can be undefined if the user just
30660
+ * started dragging the knob.
30661
+ *
30662
+ * This is necessary to determine which knob the user is dragging,
30663
+ * especially when it's a dual knob.
30664
+ * Plus, it determines when to apply certain styles.
30665
+ *
30666
+ * This only needs to be done once since the knob won't change
30667
+ * while the user is dragging.
30668
+ */
30669
+ if (pressedKnob === undefined) {
30670
+ this.setPressedKnob(currentX);
30407
30671
  }
30408
- this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';
30409
- this.setFocus(this.pressedKnob);
30410
- // update the active knob's position
30411
30672
  this.update(currentX);
30412
- this.ionKnobMoveStart.emit({ value: this.ensureValueInBounds(this.value) });
30413
- }
30414
- onMove(detail) {
30415
- this.update(detail.currentX);
30416
30673
  }
30674
+ /**
30675
+ * The value should be updated on touch end:
30676
+ * - When the user lifts their finger from the screen after
30677
+ * tapping the bar.
30678
+ *
30679
+ * @param detail The details of the gesture or mouse event.
30680
+ */
30417
30681
  onEnd(detail) {
30418
30682
  const { contentEl, initialContentScrollY } = this;
30419
- if (contentEl) {
30683
+ const currentX = detail.currentX || detail.clientX;
30684
+ /**
30685
+ * The `pressedKnob` can be undefined if the user never
30686
+ * dragged the knob. They just tapped on the bar.
30687
+ *
30688
+ * This is necessary to determine which knob the user is changing,
30689
+ * especially when it's a dual knob.
30690
+ * Plus, it determines when to apply certain styles.
30691
+ */
30692
+ if (this.pressedKnob === undefined) {
30693
+ this.setPressedKnob(currentX);
30694
+ }
30695
+ /**
30696
+ * The user is no longer dragging the bar or
30697
+ * knob (if they were dragging it).
30698
+ *
30699
+ * The user can now scroll on the view in the next gesture event.
30700
+ */
30701
+ if (contentEl && initialContentScrollY !== undefined) {
30420
30702
  resetContentScrollY(contentEl, initialContentScrollY);
30421
30703
  }
30422
- this.update(detail.currentX);
30704
+ // update the active knob's position
30705
+ this.update(currentX);
30706
+ /**
30707
+ * Reset the pressed knob to undefined since the user
30708
+ * may start dragging a different knob in the next gesture event.
30709
+ */
30423
30710
  this.pressedKnob = undefined;
30424
30711
  this.emitValueChange();
30425
30712
  this.ionKnobMoveEnd.emit({ value: this.ensureValueInBounds(this.value) });
@@ -30446,6 +30733,16 @@ class Range {
30446
30733
  // Update input value
30447
30734
  this.updateValue();
30448
30735
  }
30736
+ setPressedKnob(currentX) {
30737
+ const rect = (this.rect = this.rangeSlider.getBoundingClientRect());
30738
+ // figure out which knob they started closer to
30739
+ let ratio = clamp(0, (currentX - rect.left) / rect.width, 1);
30740
+ if (isRTL$1(this.el)) {
30741
+ ratio = 1 - ratio;
30742
+ }
30743
+ this.pressedKnob = !this.dualKnobs || Math.abs(this.ratioA - ratio) < Math.abs(this.ratioB - ratio) ? 'A' : 'B';
30744
+ this.setFocus(this.pressedKnob);
30745
+ }
30449
30746
  get valA() {
30450
30747
  return ratioToValue(this.ratioA, this.min, this.max, this.step);
30451
30748
  }
@@ -30648,7 +30945,36 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
30648
30945
  if (!this.legacyFormController.hasLegacyControl() && this.hasLabel) {
30649
30946
  labelledBy = 'range-label';
30650
30947
  }
30651
- return (hAsync("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl) }, ticks.map((tick) => (hAsync("div", { style: tickStyle(tick), role: "presentation", class: {
30948
+ return (hAsync("div", { class: "range-slider", ref: (rangeEl) => (this.rangeSlider = rangeEl),
30949
+ /**
30950
+ * Since the gesture has a threshold, the value
30951
+ * won't change until the user has dragged past
30952
+ * the threshold. This is to prevent the range
30953
+ * from moving when the user is scrolling.
30954
+ *
30955
+ * This results in the value not being updated
30956
+ * and the event emitters not being triggered
30957
+ * if the user taps on the range. This is why
30958
+ * we need to listen for the "pointerUp" event.
30959
+ */
30960
+ onPointerUp: (ev) => {
30961
+ /**
30962
+ * If the user drags the knob on the web
30963
+ * version (does not occur on mobile),
30964
+ * the "pointerUp" event will be triggered
30965
+ * along with the gesture's events.
30966
+ * This leads to duplicate events.
30967
+ *
30968
+ * By checking if the pressedKnob is undefined,
30969
+ * we can determine if the "pointerUp" event was
30970
+ * triggered by a tap or a drag. If it was
30971
+ * dragged, the pressedKnob will be defined.
30972
+ */
30973
+ if (this.pressedKnob === undefined) {
30974
+ this.onStart();
30975
+ this.onEnd(ev);
30976
+ }
30977
+ } }, ticks.map((tick) => (hAsync("div", { style: tickStyle(tick), role: "presentation", class: {
30652
30978
  'range-tick': true,
30653
30979
  'range-tick-active': tick.active,
30654
30980
  }, part: tick.active ? 'tick-active' : 'tick' }))), hAsync("div", { class: "range-bar-container" }, hAsync("div", { class: "range-bar", role: "presentation", part: "bar" }), hAsync("div", { class: {
@@ -31559,7 +31885,7 @@ class Refresher {
31559
31885
  }
31560
31886
  render() {
31561
31887
  const mode = getIonMode$1(this);
31562
- return (hAsync(Host, { key: '9cf8e306e367e0ffd99f8a242dce0c9d78f96317', slot: "fixed", class: {
31888
+ return (hAsync(Host, { key: '96f4f595ebdb92a12755b642398691bcaab9f7c1', slot: "fixed", class: {
31563
31889
  [mode]: true,
31564
31890
  // Used internally for styling
31565
31891
  [`refresher-${mode}`]: true,
@@ -31787,7 +32113,7 @@ class RefresherContent {
31787
32113
  const pullingIcon = this.pullingIcon;
31788
32114
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
31789
32115
  const mode = getIonMode$1(this);
31790
- return (hAsync(Host, { key: '537e4d601fd09804d072e9fed9b2c6ba8d890548', class: mode }, hAsync("div", { key: '67f46df746f7da2fc60c47da9216a2920c25166f', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { class: "refresher-pulling-icon" }, hAsync("div", { class: "spinner-arrow-container" }, hAsync("ion-spinner", { name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { class: "arrow-container" }, hAsync("ion-icon", { icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { class: "refresher-pulling-icon" }, hAsync("ion-icon", { icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '216f96af452e1567df7906c4d9e6fbf8c397ad21', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
32116
+ return (hAsync(Host, { key: 'cf3caa51c4aba8a95622f6d32cafa90b683b9d6e', class: mode }, hAsync("div", { key: '5ad70801104bbea873d3525206660c52e4447903', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '0f95df169fd367528bfaa5d9ccf6690a613609c4', class: "refresher-pulling-icon" }, hAsync("div", { key: '4b8f0465a19f017751b207807c32e1fe00fda433', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '77e60179d76f0d17f8f2dc3518f97a2a924418e6', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'f78f63f08f071bead1bfe655bae6394f8a219d91', class: "arrow-container" }, hAsync("ion-icon", { key: '4d833d134d2b221cae2dfb0611d4029f2d664db5', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'e6db19d7fa324363d2a7c3c046510f4c8461f7e6', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: '66c2ef1a53c5809f49891de515da5f55d9bf8dcc', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '80c413e21d362a5bb0419fcd13092453b3445cee', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: '0d5511f9644de26332a1a9ed39b160691fab74d9', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '54e4a96b081c7b453a98e00cceea7c086268a450', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
31791
32117
  }
31792
32118
  get el() { return getElement(this); }
31793
32119
  static get cmpMeta() { return {
@@ -31830,7 +32156,7 @@ class Reorder {
31830
32156
  render() {
31831
32157
  const mode = getIonMode$1(this);
31832
32158
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
31833
- return (hAsync(Host, { key: 'e625707b1810f93f5c667e38b8e2904988a3cff0', class: mode }, hAsync("slot", { key: 'fd0c3167e8a7955a6f841b338345de0528535ff5' }, hAsync("ion-icon", { key: '3fc7bb1adb0dde839ec4898361e359c640e81067', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
32159
+ return (hAsync(Host, { key: '5747b63aa64b05bfed96bbce8087186c7e14c6d5', class: mode }, hAsync("slot", { key: 'a745f29a23c905cd0bff572acb755b597a3fb3c3' }, hAsync("ion-icon", { key: '48f433e85a3a68c16bc426623b2b74957b4b2eb7', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
31834
32160
  }
31835
32161
  get el() { return getElement(this); }
31836
32162
  static get style() { return {
@@ -32084,7 +32410,7 @@ class ReorderGroup {
32084
32410
  }
32085
32411
  render() {
32086
32412
  const mode = getIonMode$1(this);
32087
- return (hAsync(Host, { key: '067b8ff26887c4e458163f70f7308723c90a53f8', class: {
32413
+ return (hAsync(Host, { key: '68b5e5fa00a0531c74597964d84c82da8bc3252f', class: {
32088
32414
  [mode]: true,
32089
32415
  'reorder-enabled': !this.disabled,
32090
32416
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -32192,7 +32518,7 @@ class RippleEffect {
32192
32518
  }
32193
32519
  render() {
32194
32520
  const mode = getIonMode$1(this);
32195
- return (hAsync(Host, { key: 'a9ff1956627908ee4071002ca018eaa80f87cd59', role: "presentation", class: {
32521
+ return (hAsync(Host, { key: 'f1129019a6d556b008c754aeb79618c69baea9f8', role: "presentation", class: {
32196
32522
  [mode]: true,
32197
32523
  unbounded: this.unbounded,
32198
32524
  } }));
@@ -33134,10 +33460,10 @@ class RouterLink {
33134
33460
  rel: this.rel,
33135
33461
  target: this.target,
33136
33462
  };
33137
- return (hAsync(Host, { key: '9944573e56abecc47afd2df03b386e38fc7ed2f3', onClick: this.onClick, class: createColorClasses$1(this.color, {
33463
+ return (hAsync(Host, { key: 'e69892f4c6a6baf040a20c429afdec0e4db2dc0e', onClick: this.onClick, class: createColorClasses$1(this.color, {
33138
33464
  [mode]: true,
33139
33465
  'ion-activatable': true,
33140
- }) }, hAsync("a", Object.assign({ key: '383de10c02eb9ab87e27890548ef681dccf2a765' }, attrs), hAsync("slot", { key: '584a5a52e2b116f3827596cc5869a3557d6bcb6b' }))));
33466
+ }) }, hAsync("a", Object.assign({ key: '648cb22526f2933abe0865c86da6f30eac3ccb87' }, attrs), hAsync("slot", { key: 'd6bc2e28b7c5cc228caedffebe653bde35934b67' }))));
33141
33467
  }
33142
33468
  static get style() { return IonRouterLinkStyle0; }
33143
33469
  static get cmpMeta() { return {
@@ -33333,7 +33659,7 @@ class RouterOutlet {
33333
33659
  return true;
33334
33660
  }
33335
33661
  render() {
33336
- return hAsync("slot", { key: '5e31ebd99536453783f5b6f9119d7fa2bf8a5aad' });
33662
+ return hAsync("slot", { key: '3fe520ecae37af68e07a51f3a3223ea454035a59' });
33337
33663
  }
33338
33664
  get el() { return getElement(this); }
33339
33665
  static get watchers() { return {
@@ -33367,7 +33693,7 @@ class Row {
33367
33693
  registerInstance(this, hostRef);
33368
33694
  }
33369
33695
  render() {
33370
- return (hAsync(Host, { key: 'de94b93c001a93b2a88bcb8e959f421fd5ad4a65', class: getIonMode$1(this) }, hAsync("slot", { key: '41fa951758d3644bb77d80002caf6e25a79393ce' })));
33696
+ return (hAsync(Host, { key: '242c9a45b0bb39af2aebf412fdfa9a176babc834', class: getIonMode$1(this) }, hAsync("slot", { key: 'd9015d663d631bbf20bd3e0821fed874cd6c5156' })));
33371
33697
  }
33372
33698
  static get style() { return IonRowStyle0; }
33373
33699
  static get cmpMeta() { return {
@@ -33402,6 +33728,7 @@ class Searchbar {
33402
33728
  this.isCancelVisible = false;
33403
33729
  this.shouldAlignLeft = true;
33404
33730
  this.inputId = `ion-searchbar-${searchbarIds++}`;
33731
+ this.inheritedAttributes = {};
33405
33732
  /**
33406
33733
  * Clears the input field and triggers the control change.
33407
33734
  */
@@ -33502,6 +33829,7 @@ class Searchbar {
33502
33829
  this.noAnimate = true;
33503
33830
  this.color = undefined;
33504
33831
  this.animated = false;
33832
+ this.autocapitalize = 'default';
33505
33833
  this.autocomplete = 'off';
33506
33834
  this.autocorrect = 'off';
33507
33835
  this.cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);
@@ -33511,6 +33839,8 @@ class Searchbar {
33511
33839
  this.disabled = false;
33512
33840
  this.inputmode = undefined;
33513
33841
  this.enterkeyhint = undefined;
33842
+ this.maxlength = undefined;
33843
+ this.minlength = undefined;
33514
33844
  this.name = this.inputId;
33515
33845
  this.placeholder = 'Search';
33516
33846
  this.searchIcon = undefined;
@@ -33520,6 +33850,19 @@ class Searchbar {
33520
33850
  this.type = 'search';
33521
33851
  this.value = '';
33522
33852
  }
33853
+ /**
33854
+ * lang and dir are globally enumerated attributes.
33855
+ * As a result, creating these as properties
33856
+ * can have unintended side effects. Instead, we
33857
+ * listen for attribute changes and inherit them
33858
+ * to the inner `<input>` element.
33859
+ */
33860
+ onLangChanged(newValue) {
33861
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { lang: newValue });
33862
+ }
33863
+ onDirChanged(newValue) {
33864
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { dir: newValue });
33865
+ }
33523
33866
  debounceChanged() {
33524
33867
  const { ionInput, debounce, originalIonInput } = this;
33525
33868
  /**
@@ -33543,6 +33886,9 @@ class Searchbar {
33543
33886
  connectedCallback() {
33544
33887
  this.emitStyle();
33545
33888
  }
33889
+ componentWillLoad() {
33890
+ this.inheritedAttributes = Object.assign({}, inheritAttributes$1(this.el, ['lang', 'dir']));
33891
+ }
33546
33892
  componentDidLoad() {
33547
33893
  this.originalIonInput = this.ionInput;
33548
33894
  this.positionElements();
@@ -33735,14 +34081,14 @@ class Searchbar {
33735
34081
  return true;
33736
34082
  }
33737
34083
  render() {
33738
- const { cancelButtonText } = this;
34084
+ const { cancelButtonText, autocapitalize } = this;
33739
34085
  const animated = this.animated && config.getBoolean('animated', true);
33740
34086
  const mode = getIonMode$1(this);
33741
34087
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
33742
34088
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
33743
34089
  const shouldShowCancelButton = this.shouldShowCancelButton();
33744
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '1de9b9bc6bad708bafcf4d31fa82838355120486', "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: 'e5178016e17104a80732edbae73c0dfc264bfe52', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
33745
- return (hAsync(Host, { key: '2c88a7b6ec7f33ada7dae560881210d7a8800f76', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
34090
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '9c7b4d2e86d9bcd12e57c9a96723d3da598a3773', "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: '1c25268a776134cccd29eb752898cb8ac0eed30f', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
34091
+ return (hAsync(Host, { key: 'feef9fc7e405656e134a76dc037aaaa1a4ce36b4', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
33746
34092
  [mode]: true,
33747
34093
  'searchbar-animated': animated,
33748
34094
  'searchbar-disabled': this.disabled,
@@ -33752,17 +34098,19 @@ class Searchbar {
33752
34098
  'searchbar-has-focus': this.focused,
33753
34099
  'searchbar-should-show-clear': this.shouldShowClearButton(),
33754
34100
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
33755
- }) }, hAsync("div", { key: '8e914264a99453748a2bf370943e4047a0a587fb', class: "searchbar-input-container" }, hAsync("input", { key: 'd772f3e8d42301e50fbd6c9deb332fbdf3c435ac', "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, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '8d9b461c2c34729b1bb562c227868cf817a353bc', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'bcc39be721f4b825af31aae4dfb3058722d889a8', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
34101
+ }) }, hAsync("div", { key: '92e3925dc0de468e5665705902153837105dfa57', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'fb74faf81b347a62338ccdac981525df1c52b322', "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: 'd58c3636dac1d2e4135989f4c07dc95c51492e60', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '1cece7c63ca5ca4b8799e15ee6d2bac100ef0d5e', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
33756
34102
  /**
33757
34103
  * This prevents mobile browsers from
33758
34104
  * blurring the input when the clear
33759
34105
  * button is activated.
33760
34106
  */
33761
34107
  ev.preventDefault();
33762
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '9a6478e1f1482aa6e62c88bd96cd19cacbfb8d60', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
34108
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'fe3c2b9cac29002f69e95a89b554c7504e2df050', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
33763
34109
  }
33764
34110
  get el() { return getElement(this); }
33765
34111
  static get watchers() { return {
34112
+ "lang": ["onLangChanged"],
34113
+ "dir": ["onDirChanged"],
33766
34114
  "debounce": ["debounceChanged"],
33767
34115
  "value": ["valueChanged"],
33768
34116
  "showCancelButton": ["showCancelButtonChanged"]
@@ -33777,6 +34125,7 @@ class Searchbar {
33777
34125
  "$members$": {
33778
34126
  "color": [513],
33779
34127
  "animated": [4],
34128
+ "autocapitalize": [1],
33780
34129
  "autocomplete": [1],
33781
34130
  "autocorrect": [1],
33782
34131
  "cancelButtonIcon": [1, "cancel-button-icon"],
@@ -33786,6 +34135,8 @@ class Searchbar {
33786
34135
  "disabled": [4],
33787
34136
  "inputmode": [1],
33788
34137
  "enterkeyhint": [1],
34138
+ "maxlength": [2],
34139
+ "minlength": [2],
33789
34140
  "name": [1],
33790
34141
  "placeholder": [1],
33791
34142
  "searchIcon": [1, "search-icon"],
@@ -34228,14 +34579,14 @@ class Segment {
34228
34579
  }
34229
34580
  render() {
34230
34581
  const mode = getIonMode$1(this);
34231
- return (hAsync(Host, { key: '971e62fdaef3b6380aa1bf214605a5bfde662abf', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
34582
+ return (hAsync(Host, { key: '01c94f9fcc51fb5a7612588c87155a130b7c8a9d', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
34232
34583
  [mode]: true,
34233
34584
  'in-toolbar': hostContext('ion-toolbar', this.el),
34234
34585
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
34235
34586
  'segment-activated': this.activated,
34236
34587
  'segment-disabled': this.disabled,
34237
34588
  'segment-scrollable': this.scrollable,
34238
- }) }, hAsync("slot", { key: 'eaa7a8a3d5237c8bbc03f57690fd0aa7e4c124e3' })));
34589
+ }) }, hAsync("slot", { key: 'b0afdfcb7506a765df42d1d6eb4e1d81bf8fd92a' })));
34239
34590
  }
34240
34591
  get el() { return getElement(this); }
34241
34592
  static get watchers() { return {
@@ -34345,7 +34696,7 @@ class SegmentButton {
34345
34696
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
34346
34697
  const mode = getIonMode$1(this);
34347
34698
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
34348
- return (hAsync(Host, { key: 'b50b375ed817b47720b743078202f38c737a4034', class: {
34699
+ return (hAsync(Host, { key: 'daed55711fdb550747d2ad5fb6e012bff6f6b176', class: {
34349
34700
  [mode]: true,
34350
34701
  'in-toolbar': hostContext('ion-toolbar', this.el),
34351
34702
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -34361,10 +34712,10 @@ class SegmentButton {
34361
34712
  'ion-activatable': true,
34362
34713
  'ion-activatable-instant': true,
34363
34714
  'ion-focusable': true,
34364
- } }, hAsync("button", Object.assign({ key: '402f6467ec9ce97aa1df2c72382d07242b51c114', "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: '4f5a1988296c4e59e64255feff264bbbe2ccc312', class: "button-inner" }, hAsync("slot", { key: '35b2a26cca8c76a111e447fa8cae464c504fcb97' })), mode === 'md' && hAsync("ion-ripple-effect", null)), hAsync("div", { key: 'adca0f1e0efcf18b575013d4fb2f22814c81c147', part: "indicator", class: {
34715
+ } }, hAsync("button", Object.assign({ key: '851a4b8ff7e45f5fc559c4d8e9c3102441dbd10e', "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: 'b2dc87747e81ce49dfa1269355027d9380226a6a', class: "button-inner" }, hAsync("slot", { key: '00e21fdcafb533605518beebb9557c724fc88e76' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '358c90ab1b43aae3bc6eb1e58fb38d4892894a68' })), hAsync("div", { key: '20fd3f7c43dd117541314e852d894af855050707', part: "indicator", class: {
34365
34716
  'segment-button-indicator': true,
34366
34717
  'segment-button-indicator-animated': true,
34367
- } }, hAsync("div", { key: '8a23ffe49dc115ee0603e298bb6a39834b910b67', part: "indicator-background", class: "segment-button-indicator-background" }))));
34718
+ } }, hAsync("div", { key: 'bebdeb84466c404d52ce48feda1ece5fb1f202b0', part: "indicator-background", class: "segment-button-indicator-background" }))));
34368
34719
  }
34369
34720
  get el() { return getElement(this); }
34370
34721
  static get watchers() { return {
@@ -35162,7 +35513,7 @@ class SelectOption {
35162
35513
  this.value = undefined;
35163
35514
  }
35164
35515
  render() {
35165
- return hAsync(Host, { key: 'fe62f2d62ede6866e20969a2e7ae25453648fcef', role: "option", id: this.inputId, class: getIonMode$1(this) });
35516
+ return hAsync(Host, { key: 'abf6e85d60e815f59077910abec922826bf46eb2', role: "option", id: this.inputId, class: getIonMode$1(this) });
35166
35517
  }
35167
35518
  get el() { return getElement(this); }
35168
35519
  static get style() { return IonSelectOptionStyle0; }
@@ -35282,7 +35633,7 @@ class SelectPopover {
35282
35633
  render() {
35283
35634
  const { header, message, options, subHeader } = this;
35284
35635
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
35285
- return (hAsync(Host, { key: '9d3995131364d4f1d282e0a1fc34e778e94c9f98', class: getIonMode$1(this) }, hAsync("ion-list", { key: '14244dcd6375eb61d65f3a9450d42a5d7b2d6541' }, header !== undefined && hAsync("ion-list-header", null, header), hasSubHeaderOrMessage && (hAsync("ion-item", null, hAsync("ion-label", { class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", null, subHeader), message !== undefined && hAsync("p", null, message)))), this.renderOptions(options))));
35636
+ return (hAsync(Host, { key: 'ddf45e058c75aae175f8589e3539ff152a5b47ad', class: getIonMode$1(this) }, hAsync("ion-list", { key: '52dbf712bf6cbdcb9d2e6223b99c67ecc90977ff' }, header !== undefined && hAsync("ion-list-header", { key: '692fc85c97591f09a2a9b0bccc8f71e97681cc09' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'ecab23444eaadc3ed21e7053d50890db1012475f' }, hAsync("ion-label", { key: '639f08137d7066fd79316f63e850ddcc6a3b54a7', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'dc501101ac9d68b1d0ce80679b339a2b132d1ae9' }, subHeader), message !== undefined && hAsync("p", { key: '5ead8c1a2e90d29fe0f05e04a9fa65c7e9e62ca5' }, message)))), this.renderOptions(options))));
35286
35637
  }
35287
35638
  get el() { return getElement(this); }
35288
35639
  static get style() { return {
@@ -35330,11 +35681,11 @@ class SkeletonText {
35330
35681
  const animated = this.animated && config.getBoolean('animated', true);
35331
35682
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
35332
35683
  const mode = getIonMode$1(this);
35333
- return (hAsync(Host, { key: 'ee3cd9a5448fb69c8ddfc88a993f9968e1a381ff', class: {
35684
+ return (hAsync(Host, { key: '4dab0fd2de666de12ad8f6dc6ed1e1de0be67ddd', class: {
35334
35685
  [mode]: true,
35335
35686
  'skeleton-text-animated': animated,
35336
35687
  'in-media': inMedia,
35337
- } }, hAsync("span", { key: '8aa792724a3b77877062e9aae838d9e1572b576f' }, "\u00A0")));
35688
+ } }, hAsync("span", { key: 'f8f908ec24d65e63b14d9a54640a5f18f0fa8fa5' }, "\u00A0")));
35338
35689
  }
35339
35690
  get el() { return getElement(this); }
35340
35691
  static get style() { return IonSkeletonTextStyle0; }
@@ -35387,7 +35738,7 @@ class Spinner {
35387
35738
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
35388
35739
  }
35389
35740
  }
35390
- return (hAsync(Host, { key: '47cd6cd98e36e5b99fbe263a6a102610cae240c3', class: createColorClasses$1(self.color, {
35741
+ return (hAsync(Host, { key: '9e08bf306b28bdd76884d353dcaaf31c1bb591f2', class: createColorClasses$1(self.color, {
35391
35742
  [mode]: true,
35392
35743
  [`spinner-${spinnerName}`]: true,
35393
35744
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -35480,12 +35831,12 @@ class SplitPane {
35480
35831
  }
35481
35832
  render() {
35482
35833
  const mode = getIonMode$1(this);
35483
- return (hAsync(Host, { key: '3efe241375d23ae12c47927aa1fc1f3f4b4e5807', class: {
35834
+ return (hAsync(Host, { key: '57ee198506248916e74d8d082ad547a471e6cc73', class: {
35484
35835
  [mode]: true,
35485
35836
  // Used internally for styling
35486
35837
  [`split-pane-${mode}`]: true,
35487
35838
  'split-pane-visible': this.visible,
35488
- } }, hAsync("slot", { key: 'd5c94319658e2291dcc356e6ed7a9abc1a48a8b9' })));
35839
+ } }, hAsync("slot", { key: '2cd89fa50cfe8a7a6bdda981bb89d5a24a8eec88' })));
35489
35840
  }
35490
35841
  get el() { return getElement(this); }
35491
35842
  static get watchers() { return {
@@ -35553,10 +35904,10 @@ class Tab {
35553
35904
  }
35554
35905
  render() {
35555
35906
  const { tab, active, component } = this;
35556
- return (hAsync(Host, { key: '0f4b90f0b1027e89bd447ace17af31c8e155a827', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
35907
+ return (hAsync(Host, { key: '4fe50fa809503794be2ef91383e49b72cad6fa82', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
35557
35908
  'ion-page': component === undefined,
35558
35909
  'tab-hidden': !active,
35559
- } }, hAsync("slot", { key: 'ec3eaacf8b7085510e89273aa8373805ee98a381' })));
35910
+ } }, hAsync("slot", { key: '937777a826936d6b399329a926a704008339803e' })));
35560
35911
  }
35561
35912
  get el() { return getElement(this); }
35562
35913
  static get watchers() { return {
@@ -35634,11 +35985,11 @@ class TabBar {
35634
35985
  const { color, translucent, keyboardVisible } = this;
35635
35986
  const mode = getIonMode$1(this);
35636
35987
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
35637
- return (hAsync(Host, { key: 'e2b4b50270f171ed251359df6c65c5e7e4d526a4', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
35988
+ return (hAsync(Host, { key: '5083528e7f802d2f323ce50585edc98eeb9754c6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
35638
35989
  [mode]: true,
35639
35990
  'tab-bar-translucent': translucent,
35640
35991
  'tab-bar-hidden': shouldHide,
35641
- }) }, hAsync("slot", { key: '37495b2eddd01a758ceaeb36426abc9bd20bcca3' })));
35992
+ }) }, hAsync("slot", { key: 'eb33cdd12da49062219d4aa17a319c3e6361c5c5' })));
35642
35993
  }
35643
35994
  get el() { return getElement(this); }
35644
35995
  static get watchers() { return {
@@ -35736,7 +36087,7 @@ class TabButton {
35736
36087
  rel,
35737
36088
  target,
35738
36089
  };
35739
- return (hAsync(Host, { key: '9926f9392e7910ff3159397e4f907e0d7d2cf5a0', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
36090
+ return (hAsync(Host, { key: 'c7b6a72766b71f34800137dadcf29af657bebddf', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
35740
36091
  [mode]: true,
35741
36092
  'tab-selected': selected,
35742
36093
  'tab-disabled': disabled,
@@ -35748,7 +36099,7 @@ class TabButton {
35748
36099
  'ion-activatable': true,
35749
36100
  'ion-selectable': true,
35750
36101
  'ion-focusable': true,
35751
- } }, hAsync("a", Object.assign({ key: '4b3ace749583a5502e94462f9a70c5158fe0194a' }, 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: 'a2a30c02fbd5052da12586a5ab00a45f3bf53b88', class: "button-inner" }, hAsync("slot", { key: '3fb22ffbb09000d99537b531220c029330ae6940' })), mode === 'md' && hAsync("ion-ripple-effect", { type: "unbounded" }))));
36102
+ } }, hAsync("a", Object.assign({ key: 'a1eca4a5cf0dfdb55099811d03f204f7b3807a2e' }, 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: '888a6d8b95c2f0ca8f74f492729bd28f0d3273d5', class: "button-inner" }, hAsync("slot", { key: '83a234af52ffce9ff0f4cc497712c962115a5813' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '771aff1b83233411e0cf706c3e94c78bca534794', type: "unbounded" }))));
35752
36103
  }
35753
36104
  get el() { return getElement(this); }
35754
36105
  static get style() { return {
@@ -35914,7 +36265,7 @@ class Tabs {
35914
36265
  return Array.from(this.el.querySelectorAll('ion-tab'));
35915
36266
  }
35916
36267
  render() {
35917
- return (hAsync(Host, { key: '9044f05f4716fd9c158864175290dfb044e63539', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '178492f52f15a042e47531007a3564a935847818', name: "top" }), hAsync("div", { key: 'b3affaaeb7752194acde36d9de74dbe2b3280cd1', class: "tabs-inner" }, hAsync("slot", { key: '98f0f4e2903f1a6cec041e06b75073c57960a912' })), hAsync("slot", { key: '0899482561bdaf35e97e5a40860c40978daca03a', name: "bottom" })));
36268
+ return (hAsync(Host, { key: '5102fdd8ae80408811312631f0739c356d913840', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '55f781cd010dcebf9675f2a0b4eab9f4271b780e', name: "top" }), hAsync("div", { key: '2da0ee7b8c82e4bfa42f8bc5873e23e50a88c405', class: "tabs-inner" }, hAsync("slot", { key: '6335a62a10398c008c91f87f15b4a940a95e175d' })), hAsync("slot", { key: '9b6f08a21c703cc7fdebd48eb746d0fde6a8454d', name: "bottom" })));
35918
36269
  }
35919
36270
  get el() { return getElement(this); }
35920
36271
  static get style() { return IonTabsStyle0; }
@@ -35956,9 +36307,9 @@ class Text {
35956
36307
  }
35957
36308
  render() {
35958
36309
  const mode = getIonMode$1(this);
35959
- return (hAsync(Host, { key: '8922ebdd7486c9cb9f9b547a49e5be2261df4ba1', class: createColorClasses$1(this.color, {
36310
+ return (hAsync(Host, { key: '4330b56cbc4e15953d9b3162fb40af728a8195dd', class: createColorClasses$1(this.color, {
35960
36311
  [mode]: true,
35961
- }) }, hAsync("slot", { key: '164cbd0f81a00adfac04f544524e905f721c121c' })));
36312
+ }) }, hAsync("slot", { key: 'ec674a71d8fbb04d537fd79d617d9db4a607c340' })));
35962
36313
  }
35963
36314
  static get style() { return IonTextStyle0; }
35964
36315
  static get cmpMeta() { return {
@@ -36457,7 +36808,7 @@ class Thumbnail {
36457
36808
  registerInstance(this, hostRef);
36458
36809
  }
36459
36810
  render() {
36460
- return (hAsync(Host, { key: '2b3d5139161f4b9075dce537c14b4087986b37c4', class: getIonMode$1(this) }, hAsync("slot", { key: '3c4838c43e1230f9413a3cb66584417fd11382b2' })));
36811
+ return (hAsync(Host, { key: 'd2667635930e4c0896805f452357e7dc9086bc72', class: getIonMode$1(this) }, hAsync("slot", { key: '66eb1487f3da4da2ef71b812a8d0f0fe884c7d81' })));
36461
36812
  }
36462
36813
  static get style() { return IonThumbnailStyle0; }
36463
36814
  static get cmpMeta() { return {
@@ -37290,9 +37641,9 @@ class Toast {
37290
37641
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
37291
37642
  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);
37292
37643
  }
37293
- return (hAsync(Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
37644
+ return (hAsync(Host, Object.assign({ key: '23803334fb668f6ce7044d3a321cb84bc753bd16', tabindex: "-1" }, this.htmlAttributes, { style: {
37294
37645
  zIndex: `${60000 + this.overlayIndex}`,
37295
- }, 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: '27c0feeb89c4efb47c42623a4b036ed84338ed10', class: wrapperClass }, hAsync("div", { key: '41d5a3069f92e4a6acef2793fa4e236cdbdaae88', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '176f497bc990ef2ecc14c7fa90dd3a54a912030a', 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')))));
37646
+ }, 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: '7cd7138ba079fccf97f318b91e9986491ab4214d', class: wrapperClass }, hAsync("div", { key: '93b78fa64e24435adeb77a04c1d1d53d2f093864', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '9a3c71b164ebcfba2540acb7568beffa76b62f47', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'feb9268102d844f1314205f7440de7066cf0620e', 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')))));
37296
37647
  }
37297
37648
  get el() { return getElement(this); }
37298
37649
  static get watchers() { return {
@@ -37678,10 +38029,10 @@ class Toolbar {
37678
38029
  this.childrenStyles.forEach((value) => {
37679
38030
  Object.assign(childStyles, value);
37680
38031
  });
37681
- return (hAsync(Host, { key: 'afac0f08f3981483c072984ce047df5dc9cc1e99', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
38032
+ return (hAsync(Host, { key: '8907ed75fbb2b1dced55c481bba6363f1dca815b', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
37682
38033
  [mode]: true,
37683
38034
  'in-toolbar': hostContext('ion-toolbar', this.el),
37684
- })) }, hAsync("div", { key: '30d4f1d0ec01cc646398301b5f7d469391eb35d2', class: "toolbar-background" }), hAsync("div", { key: '175d1f283e670b57a9bf8fd2a8c5e7d0da749aa8', class: "toolbar-container" }, hAsync("slot", { key: '4853b18092737b32b5995457536fa5a7fc2816ef', name: "start" }), hAsync("slot", { key: '6eb4921200aad02d7977d134edad6cff2aad91ad', name: "secondary" }), hAsync("div", { key: '024e0339c74c4b9a886d49e96723243719643dc2', class: "toolbar-content" }, hAsync("slot", { key: 'b6452c84692fedd6efe33ac67907d01253b76f8f' })), hAsync("slot", { key: '636e56eeaa318ce45a9c3854a30b8eb2819a33e0', name: "primary" }), hAsync("slot", { key: 'a45c19b93dca3719d75bd4d99acc49de87137a7d', name: "end" }))));
38035
+ })) }, hAsync("div", { key: '6bfa09b08d6517f0d680f53b739854cecd631bc9', class: "toolbar-background" }), hAsync("div", { key: '1531bd6dd9e0a5843309bba854b744c453037ad0', class: "toolbar-container" }, hAsync("slot", { key: '881b41697d386eae651b019128573f0fa432cd33', name: "start" }), hAsync("slot", { key: '64a284e6eae5311ac3125dfadb4bb32bdba9d089', name: "secondary" }), hAsync("div", { key: 'c1f47503563b38084b27d7ba54f17ec478482b94', class: "toolbar-content" }, hAsync("slot", { key: '9a85acfba72252705619ae32acae9c14f81aa57d' })), hAsync("slot", { key: '89e08bd761dc6940dbebc5d06f5f080af204aa72', name: "primary" }), hAsync("slot", { key: 'a1cb7d95627f8a3d24dd4b9c11718fc164f53674', name: "end" }))));
37685
38036
  }
37686
38037
  get el() { return getElement(this); }
37687
38038
  static get style() { return {
@@ -37731,11 +38082,11 @@ class ToolbarTitle {
37731
38082
  render() {
37732
38083
  const mode = getIonMode$1(this);
37733
38084
  const size = this.getSize();
37734
- return (hAsync(Host, { key: 'b68a272a33ec81d282629a569676f64d3215a0c7', class: createColorClasses$1(this.color, {
38085
+ return (hAsync(Host, { key: '6f43362b782ef7d340c241bb66f1469663c03cc1', class: createColorClasses$1(this.color, {
37735
38086
  [mode]: true,
37736
38087
  [`title-${size}`]: true,
37737
38088
  'title-rtl': document.dir === 'rtl',
37738
- }) }, hAsync("div", { key: '9069816a14e6e358695c5bd465787cf297c761bc', class: "toolbar-title" }, hAsync("slot", { key: '8894bd04f2292b54050ee864abb5396deadf9874' }))));
38089
+ }) }, hAsync("div", { key: '9c3ff1a289e533ee3426b71ab5560fbea3529502', class: "toolbar-title" }, hAsync("slot", { key: '50d5cc5a1519ad58f1994d2f8c8f08f62baac1fe' }))));
37739
38090
  }
37740
38091
  get el() { return getElement(this); }
37741
38092
  static get watchers() { return {