@ionic/core 8.4.4-dev.11741048645.1fe58d92 → 8.4.4-dev.11741101920.155e1c29

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 (697) hide show
  1. package/components/checkbox.js +6 -4
  2. package/components/helpers.js +1 -11
  3. package/components/index6.js +11 -3
  4. package/components/index7.js +2 -2
  5. package/components/index9.js +1 -1
  6. package/components/ion-item-divider.js +2 -2
  7. package/components/ion-item-group.js +1 -1
  8. package/components/ion-item-option.js +2 -2
  9. package/components/ion-item-options.js +1 -1
  10. package/components/ion-item-sliding.js +1 -1
  11. package/components/ion-loading.js +2 -2
  12. package/components/ion-menu-button.js +2 -2
  13. package/components/ion-menu-toggle.js +2 -2
  14. package/components/ion-menu.js +2 -2
  15. package/components/ion-nav-link.js +1 -1
  16. package/components/ion-nav.js +1 -1
  17. package/components/ion-note.js +2 -2
  18. package/components/ion-picker-legacy.js +2 -2
  19. package/components/ion-progress-bar.js +1 -1
  20. package/components/ion-range.js +3 -3
  21. package/components/ion-refresher-content.js +1 -1
  22. package/components/ion-refresher.js +1 -1
  23. package/components/ion-reorder-group.js +1 -1
  24. package/components/ion-reorder.js +1 -1
  25. package/components/ion-router-link.js +2 -2
  26. package/components/ion-router-outlet.js +1 -1
  27. package/components/ion-row.js +1 -1
  28. package/components/ion-searchbar.js +4 -4
  29. package/components/ion-segment-button.js +9 -40
  30. package/components/ion-segment-content.js +1 -1
  31. package/components/ion-segment-view.js +2 -2
  32. package/components/ion-segment.js +2 -2
  33. package/components/ion-select-option.js +1 -1
  34. package/components/ion-select.js +16 -41
  35. package/components/ion-skeleton-text.js +2 -2
  36. package/components/ion-split-pane.js +2 -2
  37. package/components/ion-tab-bar.js +2 -2
  38. package/components/ion-tab-button.js +2 -2
  39. package/components/ion-tab.js +2 -2
  40. package/components/ion-tabs.js +1 -1
  41. package/components/ion-text.js +2 -2
  42. package/components/ion-textarea.js +2 -2
  43. package/components/ion-thumbnail.js +1 -1
  44. package/components/ion-toast.js +2 -2
  45. package/components/ion-toggle.js +6 -4
  46. package/components/label.js +2 -2
  47. package/components/list-header.js +2 -2
  48. package/components/modal.js +259 -35
  49. package/components/picker-column-option.js +2 -2
  50. package/components/picker-column2.js +2 -2
  51. package/components/popover.js +2 -2
  52. package/components/radio-group.js +39 -2
  53. package/components/radio.js +3 -3
  54. package/components/ripple-effect.js +1 -1
  55. package/components/select-modal.js +1 -1
  56. package/components/select-popover.js +1 -1
  57. package/components/spinner.js +1 -1
  58. package/components/title.js +2 -2
  59. package/components/toolbar.js +2 -2
  60. package/css/core.css +1 -1
  61. package/css/core.css.map +1 -1
  62. package/css/global.bundle.css +1 -1
  63. package/css/global.bundle.css.map +1 -1
  64. package/css/ionic.bundle.css +1 -1
  65. package/css/ionic.bundle.css.map +1 -1
  66. package/css/palettes/dark.always.css +1 -1
  67. package/css/palettes/dark.always.css.map +1 -1
  68. package/css/palettes/dark.class.css +1 -1
  69. package/css/palettes/dark.class.css.map +1 -1
  70. package/css/palettes/dark.system.css +1 -1
  71. package/css/palettes/dark.system.css.map +1 -1
  72. package/css/palettes/high-contrast-dark.always.css +1 -1
  73. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  74. package/css/palettes/high-contrast-dark.class.css +1 -1
  75. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  76. package/css/palettes/high-contrast-dark.system.css +1 -1
  77. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  78. package/css/palettes/high-contrast.always.css +1 -1
  79. package/css/palettes/high-contrast.always.css.map +1 -1
  80. package/css/palettes/high-contrast.class.css +1 -1
  81. package/css/palettes/high-contrast.class.css.map +1 -1
  82. package/css/palettes/high-contrast.system.css +1 -1
  83. package/css/palettes/high-contrast.system.css.map +1 -1
  84. package/css/structure.css +1 -1
  85. package/css/structure.css.map +1 -1
  86. package/css/typography.css +1 -1
  87. package/css/typography.css.map +1 -1
  88. package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
  89. package/dist/cjs/{framework-delegate-05579976.js → framework-delegate-55f5683a.js} +1 -1
  90. package/dist/cjs/{helpers-4be3f90d.js → helpers-afaa9001.js} +0 -11
  91. package/dist/cjs/{index-0e360e93.js → index-073c7cdc.js} +2 -2
  92. package/dist/cjs/{index-c441c903.js → index-0d762bba.js} +2 -2
  93. package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
  94. package/dist/cjs/{index-1ae3f40a.js → index-3652c918.js} +2 -2
  95. package/dist/cjs/{index-ad7a712e.js → index-9509ecad.js} +1 -1
  96. package/dist/cjs/{index-4e14a46e.js → index-e975c92b.js} +4 -4
  97. package/dist/cjs/index.cjs.js +8 -8
  98. package/dist/cjs/{input-shims-e748a364.js → input-shims-cd05268a.js} +5 -3
  99. package/dist/cjs/{input.utils-74e4ec28.js → input.utils-ffb2f81b.js} +2 -2
  100. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  101. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  102. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  103. package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
  104. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  105. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  106. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  108. package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
  109. package/dist/cjs/ion-checkbox.cjs.entry.js +6 -5
  110. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  111. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  112. package/dist/cjs/ion-datetime_3.cjs.entry.js +10 -10
  113. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  115. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  116. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  117. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  118. package/dist/cjs/ion-item-option_3.cjs.entry.js +7 -7
  119. package/dist/cjs/ion-item_8.cjs.entry.js +13 -13
  120. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  121. package/dist/cjs/ion-menu_3.cjs.entry.js +12 -12
  122. package/dist/cjs/ion-modal.cjs.entry.js +264 -41
  123. package/dist/cjs/ion-nav_2.cjs.entry.js +7 -7
  124. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  125. package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
  126. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  127. package/dist/cjs/ion-popover.cjs.entry.js +7 -7
  128. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  129. package/dist/cjs/ion-radio_2.cjs.entry.js +40 -5
  130. package/dist/cjs/ion-range.cjs.entry.js +6 -6
  131. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  132. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  133. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  134. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  135. package/dist/cjs/ion-searchbar.cjs.entry.js +6 -6
  136. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  137. package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
  138. package/dist/cjs/ion-segment_2.cjs.entry.js +11 -42
  139. package/dist/cjs/ion-select-modal.cjs.entry.js +5 -5
  140. package/dist/cjs/ion-select_3.cjs.entry.js +22 -48
  141. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  142. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  143. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +5 -5
  144. package/dist/cjs/ion-tab_2.cjs.entry.js +5 -5
  145. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  146. package/dist/cjs/ion-textarea.cjs.entry.js +6 -6
  147. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  148. package/dist/cjs/ion-toggle.cjs.entry.js +7 -6
  149. package/dist/cjs/ionic.cjs.js +1 -1
  150. package/dist/cjs/{ios.transition-afdec89f.js → ios.transition-0e664e88.js} +3 -3
  151. package/dist/cjs/loader.cjs.js +1 -1
  152. package/dist/cjs/{md.transition-9f0d3db5.js → md.transition-2e8aef2c.js} +3 -3
  153. package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-d69150f5.js} +1 -1
  154. package/dist/cjs/{overlays-76b29cd4.js → overlays-65fdaff6.js} +3 -3
  155. package/dist/cjs/{status-tap-fb807fad.js → status-tap-d74f1429.js} +4 -3
  156. package/dist/cjs/{swipe-back-47a52b83.js → swipe-back-0303a5e4.js} +1 -1
  157. package/dist/collection/components/checkbox/checkbox.js +23 -4
  158. package/dist/collection/components/item-divider/item-divider.js +2 -2
  159. package/dist/collection/components/item-group/item-group.js +1 -1
  160. package/dist/collection/components/item-option/item-option.js +2 -2
  161. package/dist/collection/components/item-options/item-options.js +1 -1
  162. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  163. package/dist/collection/components/label/label.js +2 -2
  164. package/dist/collection/components/list-header/list-header.js +2 -2
  165. package/dist/collection/components/loading/loading.js +2 -2
  166. package/dist/collection/components/menu/menu.js +2 -2
  167. package/dist/collection/components/menu-button/menu-button.js +2 -2
  168. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  169. package/dist/collection/components/modal/animations/ios.enter.js +50 -4
  170. package/dist/collection/components/modal/animations/ios.leave.js +24 -2
  171. package/dist/collection/components/modal/animations/md.enter.js +52 -5
  172. package/dist/collection/components/modal/animations/md.leave.js +26 -3
  173. package/dist/collection/components/modal/animations/sheet.js +11 -2
  174. package/dist/collection/components/modal/gestures/sheet.js +79 -10
  175. package/dist/collection/components/modal/modal.ios.css +16 -0
  176. package/dist/collection/components/modal/modal.js +32 -7
  177. package/dist/collection/components/modal/modal.md.css +6 -0
  178. package/dist/collection/components/nav/nav.js +1 -1
  179. package/dist/collection/components/nav-link/nav-link.js +1 -1
  180. package/dist/collection/components/note/note.js +2 -2
  181. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  182. package/dist/collection/components/picker-legacy/picker.js +2 -2
  183. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  184. package/dist/collection/components/popover/popover.js +2 -2
  185. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  186. package/dist/collection/components/radio/radio.js +3 -3
  187. package/dist/collection/components/radio-group/radio-group.ios.css +206 -0
  188. package/dist/collection/components/radio-group/radio-group.js +72 -1
  189. package/dist/collection/components/radio-group/radio-group.md.css +206 -0
  190. package/dist/collection/components/range/range.js +3 -3
  191. package/dist/collection/components/refresher/refresher.js +1 -1
  192. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  193. package/dist/collection/components/reorder/reorder.js +1 -1
  194. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  195. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  196. package/dist/collection/components/router-link/router-link.js +2 -2
  197. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  198. package/dist/collection/components/row/row.js +1 -1
  199. package/dist/collection/components/searchbar/searchbar.js +4 -4
  200. package/dist/collection/components/segment/segment.js +2 -2
  201. package/dist/collection/components/segment-button/segment-button.js +9 -40
  202. package/dist/collection/components/segment-content/segment-content.js +1 -1
  203. package/dist/collection/components/segment-view/segment-view.js +2 -2
  204. package/dist/collection/components/select/select.js +32 -40
  205. package/dist/collection/components/select-modal/select-modal.js +1 -1
  206. package/dist/collection/components/select-option/select-option.js +1 -1
  207. package/dist/collection/components/select-popover/select-popover.js +1 -1
  208. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  209. package/dist/collection/components/spinner/spinner.js +1 -1
  210. package/dist/collection/components/split-pane/split-pane.js +2 -2
  211. package/dist/collection/components/tab/tab.js +2 -2
  212. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  213. package/dist/collection/components/tab-button/tab-button.js +2 -2
  214. package/dist/collection/components/tabs/tabs.js +1 -1
  215. package/dist/collection/components/text/text.js +2 -2
  216. package/dist/collection/components/textarea/textarea.js +2 -2
  217. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  218. package/dist/collection/components/title/title.js +2 -2
  219. package/dist/collection/components/toast/toast.js +2 -2
  220. package/dist/collection/components/toggle/toggle.js +23 -4
  221. package/dist/collection/components/toolbar/toolbar.js +6 -2
  222. package/dist/collection/utils/helpers.js +0 -10
  223. package/dist/collection/utils/logging/index.js +10 -3
  224. package/dist/docs.json +163 -2
  225. package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  226. package/dist/esm/{framework-delegate-f683816e.js → framework-delegate-63d1a679.js} +1 -1
  227. package/dist/esm/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -11
  228. package/dist/esm/{index-7ec5519a.js → index-2f7fde3d.js} +4 -4
  229. package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
  230. package/dist/esm/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
  231. package/dist/esm/{index-8785a9c6.js → index-cb21eccb.js} +2 -2
  232. package/dist/esm/{index-10f4ed65.js → index-e2cf2ceb.js} +2 -2
  233. package/dist/esm/{index-33f7e3ff.js → index-efb8ecdf.js} +2 -2
  234. package/dist/esm/index.js +8 -8
  235. package/dist/esm/{input-shims-0e65111b.js → input-shims-2fd7c6ef.js} +5 -3
  236. package/dist/esm/{input.utils-1ad8dafc.js → input.utils-961c9f17.js} +2 -2
  237. package/dist/esm/ion-accordion_2.entry.js +3 -3
  238. package/dist/esm/ion-action-sheet.entry.js +4 -4
  239. package/dist/esm/ion-alert.entry.js +4 -4
  240. package/dist/esm/ion-app_8.entry.js +14 -14
  241. package/dist/esm/ion-avatar_3.entry.js +1 -1
  242. package/dist/esm/ion-back-button.entry.js +2 -2
  243. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  244. package/dist/esm/ion-button_2.entry.js +2 -2
  245. package/dist/esm/ion-card_5.entry.js +1 -1
  246. package/dist/esm/ion-checkbox.entry.js +6 -5
  247. package/dist/esm/ion-col_3.entry.js +1 -1
  248. package/dist/esm/ion-datetime-button.entry.js +3 -3
  249. package/dist/esm/ion-datetime_3.entry.js +10 -10
  250. package/dist/esm/ion-fab_3.entry.js +2 -2
  251. package/dist/esm/ion-img.entry.js +1 -1
  252. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  253. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  254. package/dist/esm/ion-input.entry.js +5 -5
  255. package/dist/esm/ion-item-option_3.entry.js +7 -7
  256. package/dist/esm/ion-item_8.entry.js +13 -13
  257. package/dist/esm/ion-loading.entry.js +6 -6
  258. package/dist/esm/ion-menu_3.entry.js +12 -12
  259. package/dist/esm/ion-modal.entry.js +264 -41
  260. package/dist/esm/ion-nav_2.entry.js +7 -7
  261. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  262. package/dist/esm/ion-picker-column.entry.js +1 -1
  263. package/dist/esm/ion-picker.entry.js +1 -1
  264. package/dist/esm/ion-popover.entry.js +7 -7
  265. package/dist/esm/ion-progress-bar.entry.js +2 -2
  266. package/dist/esm/ion-radio_2.entry.js +40 -5
  267. package/dist/esm/ion-range.entry.js +6 -6
  268. package/dist/esm/ion-refresher_2.entry.js +6 -6
  269. package/dist/esm/ion-reorder_2.entry.js +6 -6
  270. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  271. package/dist/esm/ion-route_4.entry.js +3 -3
  272. package/dist/esm/ion-searchbar.entry.js +6 -6
  273. package/dist/esm/ion-segment-content.entry.js +1 -1
  274. package/dist/esm/ion-segment-view.entry.js +2 -2
  275. package/dist/esm/ion-segment_2.entry.js +11 -42
  276. package/dist/esm/ion-select-modal.entry.js +5 -5
  277. package/dist/esm/ion-select_3.entry.js +22 -48
  278. package/dist/esm/ion-spinner.entry.js +1 -1
  279. package/dist/esm/ion-split-pane.entry.js +2 -2
  280. package/dist/esm/ion-tab-bar_2.entry.js +5 -5
  281. package/dist/esm/ion-tab_2.entry.js +5 -5
  282. package/dist/esm/ion-text.entry.js +2 -2
  283. package/dist/esm/ion-textarea.entry.js +6 -6
  284. package/dist/esm/ion-toast.entry.js +6 -6
  285. package/dist/esm/ion-toggle.entry.js +7 -6
  286. package/dist/esm/ionic.js +1 -1
  287. package/dist/esm/{ios.transition-085853ff.js → ios.transition-b1da3753.js} +3 -3
  288. package/dist/esm/loader.js +1 -1
  289. package/dist/esm/{md.transition-33826623.js → md.transition-571b3859.js} +3 -3
  290. package/dist/esm/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
  291. package/dist/esm/{overlays-e3d0d356.js → overlays-5deab4de.js} +3 -3
  292. package/dist/esm/{status-tap-163e8128.js → status-tap-79eac0ac.js} +4 -3
  293. package/dist/esm/{swipe-back-23ee7ab1.js → swipe-back-e5394307.js} +1 -1
  294. package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  295. package/dist/esm-es5/{framework-delegate-f683816e.js → framework-delegate-63d1a679.js} +1 -1
  296. package/dist/esm-es5/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -1
  297. package/dist/esm-es5/{index-7ec5519a.js → index-2f7fde3d.js} +1 -1
  298. package/dist/esm-es5/index-6ad967f3.js +4 -0
  299. package/dist/esm-es5/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
  300. package/dist/esm-es5/{index-8785a9c6.js → index-cb21eccb.js} +1 -1
  301. package/dist/esm-es5/{index-10f4ed65.js → index-e2cf2ceb.js} +1 -1
  302. package/dist/esm-es5/{index-33f7e3ff.js → index-efb8ecdf.js} +1 -1
  303. package/dist/esm-es5/index.js +1 -1
  304. package/dist/esm-es5/input-shims-2fd7c6ef.js +4 -0
  305. package/dist/esm-es5/{input.utils-1ad8dafc.js → input.utils-961c9f17.js} +1 -1
  306. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  307. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  308. package/dist/esm-es5/ion-alert.entry.js +1 -1
  309. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  310. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  311. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  312. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  313. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  314. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  315. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  316. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  317. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  318. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  319. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  320. package/dist/esm-es5/ion-img.entry.js +1 -1
  321. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  322. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  323. package/dist/esm-es5/ion-input.entry.js +1 -1
  324. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  325. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  326. package/dist/esm-es5/ion-loading.entry.js +1 -1
  327. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  328. package/dist/esm-es5/ion-modal.entry.js +1 -1
  329. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  330. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  331. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  332. package/dist/esm-es5/ion-picker.entry.js +1 -1
  333. package/dist/esm-es5/ion-popover.entry.js +1 -1
  334. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  335. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  336. package/dist/esm-es5/ion-range.entry.js +1 -1
  337. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  338. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  339. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  340. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  341. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  342. package/dist/esm-es5/ion-segment-content.entry.js +1 -1
  343. package/dist/esm-es5/ion-segment-view.entry.js +1 -1
  344. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  345. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  346. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  347. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  348. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  349. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  350. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  351. package/dist/esm-es5/ion-text.entry.js +1 -1
  352. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  353. package/dist/esm-es5/ion-toast.entry.js +1 -1
  354. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  355. package/dist/esm-es5/ionic.js +1 -1
  356. package/dist/esm-es5/{ios.transition-085853ff.js → ios.transition-b1da3753.js} +1 -1
  357. package/dist/esm-es5/loader.js +1 -1
  358. package/dist/esm-es5/md.transition-571b3859.js +4 -0
  359. package/dist/esm-es5/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
  360. package/dist/esm-es5/{overlays-e3d0d356.js → overlays-5deab4de.js} +1 -1
  361. package/dist/esm-es5/status-tap-79eac0ac.js +4 -0
  362. package/dist/esm-es5/{swipe-back-23ee7ab1.js → swipe-back-e5394307.js} +1 -1
  363. package/dist/html.html-data.json +24 -0
  364. package/dist/ionic/index.esm.js +1 -1
  365. package/dist/ionic/ionic.esm.js +1 -1
  366. package/dist/ionic/{p-a9e24ae2.system.entry.js → p-01186920.system.entry.js} +1 -1
  367. package/dist/ionic/{p-ffc48bc5.system.entry.js → p-01af2109.system.entry.js} +1 -1
  368. package/dist/ionic/{p-3eaf1444.system.entry.js → p-05b74e45.system.entry.js} +1 -1
  369. package/dist/ionic/{p-d9b3fa7e.entry.js → p-081a4ce4.entry.js} +1 -1
  370. package/dist/ionic/p-0af823e1.js +4 -0
  371. package/dist/ionic/p-0b7112fc.entry.js +4 -0
  372. package/dist/ionic/{p-aa63b365.system.js → p-0eb35a7f.system.js} +1 -1
  373. package/dist/ionic/{p-3df889b3.system.entry.js → p-0ef6abb0.system.entry.js} +1 -1
  374. package/dist/ionic/p-109cae7d.entry.js +4 -0
  375. package/dist/ionic/{p-203633d1.entry.js → p-120fb79a.entry.js} +1 -1
  376. package/dist/ionic/{p-702caed7.entry.js → p-15d18206.entry.js} +1 -1
  377. package/dist/ionic/{p-03ee25cb.entry.js → p-15e76dd1.entry.js} +1 -1
  378. package/dist/ionic/{p-5126cf1e.system.js → p-19ea7bff.system.js} +1 -1
  379. package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
  380. package/dist/ionic/{p-42808996.js → p-1ab13b2b.js} +1 -1
  381. package/dist/ionic/{p-62af944c.entry.js → p-1c934892.entry.js} +1 -1
  382. package/dist/ionic/{p-2cf2db18.system.entry.js → p-1e67b266.system.entry.js} +1 -1
  383. package/dist/ionic/{p-4c252070.entry.js → p-1e6d7da3.entry.js} +1 -1
  384. package/dist/ionic/{p-32be7b07.system.js → p-1e955a45.system.js} +1 -1
  385. package/dist/ionic/{p-e2e19375.system.entry.js → p-1fbc571c.system.entry.js} +1 -1
  386. package/dist/ionic/{p-77036bbd.system.entry.js → p-2346ab53.system.entry.js} +1 -1
  387. package/dist/ionic/{p-6a2d9764.system.entry.js → p-248318e0.system.entry.js} +1 -1
  388. package/dist/ionic/{p-02e23f26.entry.js → p-27d29df8.entry.js} +1 -1
  389. package/dist/ionic/{p-f5035354.js → p-28706c6f.js} +1 -1
  390. package/dist/ionic/p-2b048a95.system.entry.js +4 -0
  391. package/dist/ionic/{p-afecb188.entry.js → p-2d1d8a25.entry.js} +1 -1
  392. package/dist/ionic/{p-f301a694.system.entry.js → p-31c37f38.system.entry.js} +1 -1
  393. package/dist/ionic/p-322c5fb4.system.js +1 -1
  394. package/dist/ionic/{p-70ccc275.system.entry.js → p-33c9f005.system.entry.js} +2 -2
  395. package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
  396. package/dist/ionic/{p-2bc73fb5.js → p-34b11c24.js} +1 -1
  397. package/dist/ionic/{p-a4575db1.system.entry.js → p-37495da1.system.entry.js} +1 -1
  398. package/dist/ionic/{p-f2c19415.system.entry.js → p-39164acf.system.entry.js} +1 -1
  399. package/dist/ionic/{p-b3680e2f.system.js → p-3ad285e3.system.js} +1 -1
  400. package/dist/ionic/{p-e97a3f44.entry.js → p-3b33b7d3.entry.js} +1 -1
  401. package/dist/ionic/{p-d4ca0475.js → p-3cc276f4.js} +1 -1
  402. package/dist/ionic/p-3e6be709.entry.js +4 -0
  403. package/dist/ionic/{p-26194519.entry.js → p-40b5455f.entry.js} +1 -1
  404. package/dist/ionic/{p-1693cbc4.entry.js → p-4b4f4a4c.entry.js} +1 -1
  405. package/dist/ionic/p-4c2d5b80.system.js +4 -0
  406. package/dist/ionic/p-4c98e2cf.system.js +4 -0
  407. package/dist/ionic/{p-7c1f8b94.entry.js → p-4e6a6eca.entry.js} +1 -1
  408. package/dist/ionic/{p-32e99b0a.entry.js → p-51030d96.entry.js} +1 -1
  409. package/dist/ionic/{p-4ad78edc.entry.js → p-52d7a191.entry.js} +1 -1
  410. package/dist/ionic/{p-7b96e5c1.system.entry.js → p-542a569d.system.entry.js} +1 -1
  411. package/dist/ionic/{p-77e7b7b6.system.entry.js → p-55d16109.system.entry.js} +1 -1
  412. package/dist/ionic/{p-da8ef548.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
  413. package/dist/ionic/{p-9eee4de1.system.js → p-5c08627a.system.js} +1 -1
  414. package/dist/ionic/{p-424eb140.system.entry.js → p-5cc9314d.system.entry.js} +1 -1
  415. package/dist/ionic/{p-1bc65aec.system.entry.js → p-5d0c6c4d.system.entry.js} +1 -1
  416. package/dist/ionic/{p-803f0bc2.entry.js → p-5d93d251.entry.js} +1 -1
  417. package/dist/ionic/{p-4346c79d.system.entry.js → p-5e0df4c8.system.entry.js} +1 -1
  418. package/dist/ionic/{p-8922be26.system.entry.js → p-62f648c8.system.entry.js} +1 -1
  419. package/dist/ionic/{p-45accc62.system.entry.js → p-63b0abde.system.entry.js} +1 -1
  420. package/dist/ionic/p-67222c16.system.js +4 -0
  421. package/dist/ionic/p-6c95736e.entry.js +4 -0
  422. package/dist/ionic/p-71c9d1fe.entry.js +4 -0
  423. package/dist/ionic/{p-7a1766d6.js → p-72812e99.js} +1 -1
  424. package/dist/ionic/p-72bc8a1c.js +4 -0
  425. package/dist/ionic/{p-fca6ef5f.system.entry.js → p-744b2484.system.entry.js} +1 -1
  426. package/dist/ionic/p-7513b0c4.js +4 -0
  427. package/dist/ionic/{p-76446a85.entry.js → p-7895d719.entry.js} +1 -1
  428. package/dist/ionic/{p-85fee58d.entry.js → p-7a6eaf9e.entry.js} +1 -1
  429. package/dist/ionic/{p-16799667.system.entry.js → p-7af3d1e8.system.entry.js} +1 -1
  430. package/dist/ionic/{p-7bac3d83.entry.js → p-7b9a2b23.entry.js} +1 -1
  431. package/dist/ionic/{p-a2b6dd57.system.js → p-7de1e42c.system.js} +1 -1
  432. package/dist/ionic/{p-0eb2553a.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
  433. package/dist/ionic/{p-95da3ae2.system.js → p-8635f5e6.system.js} +1 -1
  434. package/dist/ionic/p-870ae33b.system.entry.js +4 -0
  435. package/dist/ionic/p-87479c71.entry.js +4 -0
  436. package/dist/ionic/{p-ed882fb1.entry.js → p-89bf08c7.entry.js} +1 -1
  437. package/dist/ionic/p-89cc9270.entry.js +4 -0
  438. package/dist/ionic/{p-48a8d9b4.system.entry.js → p-8ac07653.system.entry.js} +2 -2
  439. package/dist/ionic/{p-085a5dd6.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
  440. package/dist/ionic/p-8e35b472.entry.js +4 -0
  441. package/dist/ionic/{p-2aebc4a0.entry.js → p-8e5dbf2b.entry.js} +1 -1
  442. package/dist/ionic/p-8f4361a8.system.entry.js +4 -0
  443. package/dist/ionic/p-9135153b.entry.js +4 -0
  444. package/dist/ionic/{p-e1bbacb7.entry.js → p-922daa9f.entry.js} +1 -1
  445. package/dist/ionic/{p-561ddcd4.system.entry.js → p-933727f9.system.entry.js} +2 -2
  446. package/dist/ionic/p-9343a445.js +4 -0
  447. package/dist/ionic/{p-57379000.entry.js → p-948e6c6a.entry.js} +1 -1
  448. package/dist/ionic/{p-dc146a2a.system.entry.js → p-985a7e17.system.entry.js} +1 -1
  449. package/dist/ionic/{p-3572f86a.system.entry.js → p-a090bce8.system.entry.js} +1 -1
  450. package/dist/ionic/{p-4452a8ac.system.js → p-a15ddedb.system.js} +1 -1
  451. package/dist/ionic/{p-2ef3c7ee.system.entry.js → p-a3a1d721.system.entry.js} +1 -1
  452. package/dist/ionic/p-a3db8ee3.js +4 -0
  453. package/dist/ionic/{p-e456ee59.system.entry.js → p-a4a2420e.system.entry.js} +1 -1
  454. package/dist/ionic/{p-1a790eef.system.js → p-a88dec0d.system.js} +2 -2
  455. package/dist/ionic/{p-b0d8bbee.entry.js → p-a8f2c254.entry.js} +1 -1
  456. package/dist/ionic/{p-af09741c.entry.js → p-abf549eb.entry.js} +1 -1
  457. package/dist/ionic/{p-c1b51537.system.js → p-ada36597.system.js} +1 -1
  458. package/dist/ionic/{p-e265ae18.system.entry.js → p-b0c7b12b.system.entry.js} +1 -1
  459. package/dist/ionic/{p-45de8d2a.entry.js → p-b1eb86fd.entry.js} +1 -1
  460. package/dist/ionic/{p-5b932840.entry.js → p-b1f885df.entry.js} +1 -1
  461. package/dist/ionic/{p-e8232807.system.js → p-b3c60433.system.js} +1 -1
  462. package/dist/ionic/{p-bb11d9fb.js → p-b51e4004.js} +1 -1
  463. package/dist/ionic/{p-13dc21b0.js → p-b6efeab8.js} +1 -1
  464. package/dist/ionic/{p-e8aed00f.system.entry.js → p-b7329612.system.entry.js} +1 -1
  465. package/dist/ionic/{p-9b3bb24e.entry.js → p-b9d7015f.entry.js} +1 -1
  466. package/dist/ionic/p-ba3f918e.entry.js +4 -0
  467. package/dist/ionic/{p-f78af648.system.entry.js → p-bc68c7cf.system.entry.js} +1 -1
  468. package/dist/ionic/{p-337a61d5.entry.js → p-bd5f29ea.entry.js} +1 -1
  469. package/dist/ionic/{p-95775830.entry.js → p-bf63d4b2.entry.js} +1 -1
  470. package/dist/ionic/{p-c8d645b3.entry.js → p-c41ac815.entry.js} +1 -1
  471. package/dist/ionic/{p-340e3f24.system.js → p-c4238c12.system.js} +1 -1
  472. package/dist/ionic/p-c4d86289.entry.js +4 -0
  473. package/dist/ionic/{p-c32644d7.entry.js → p-c51dc7fe.entry.js} +1 -1
  474. package/dist/ionic/{p-23b73db1.system.entry.js → p-c7ab2908.system.entry.js} +1 -1
  475. package/dist/ionic/{p-a0f3846e.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
  476. package/dist/ionic/{p-51dec25d.js → p-cb13696c.js} +1 -1
  477. package/dist/ionic/{p-551e8ff7.system.entry.js → p-cb6954d4.system.entry.js} +1 -1
  478. package/dist/ionic/{p-17ba2b14.system.entry.js → p-cd7ffa67.system.entry.js} +1 -1
  479. package/dist/ionic/p-d1c5b60e.system.js +4 -0
  480. package/dist/ionic/{p-9be5f3ee.system.entry.js → p-d2203d60.system.entry.js} +2 -2
  481. package/dist/ionic/{p-881d9e52.system.js → p-d22e2a38.system.js} +1 -1
  482. package/dist/ionic/{p-b91acf8d.system.entry.js → p-d341d412.system.entry.js} +1 -1
  483. package/dist/ionic/{p-955c3eb8.entry.js → p-d7aa6b00.entry.js} +1 -1
  484. package/dist/ionic/{p-697b4a5e.system.entry.js → p-d8d15f9b.system.entry.js} +2 -2
  485. package/dist/ionic/{p-e6200d13.js → p-da2b833b.js} +1 -1
  486. package/dist/ionic/p-da7e1bc4.entry.js +4 -0
  487. package/dist/ionic/{p-91f17b25.system.entry.js → p-e09d6392.system.entry.js} +2 -2
  488. package/dist/ionic/{p-2507278c.system.entry.js → p-e0a6dc45.system.entry.js} +1 -1
  489. package/dist/ionic/{p-57ceead7.entry.js → p-e75295c8.entry.js} +1 -1
  490. package/dist/ionic/{p-f42743d1.entry.js → p-e76dae93.entry.js} +1 -1
  491. package/dist/ionic/p-e8d56122.js +4 -0
  492. package/dist/ionic/{p-2abae1cc.system.entry.js → p-e9ddf8fe.system.entry.js} +1 -1
  493. package/dist/ionic/{p-02e1ebd9.js → p-f1c4dcd4.js} +1 -1
  494. package/dist/ionic/{p-73dc4950.entry.js → p-f2a72b24.entry.js} +1 -1
  495. package/dist/ionic/{p-0f191cbe.system.entry.js → p-f658c74e.system.entry.js} +1 -1
  496. package/dist/ionic/{p-7458862e.system.entry.js → p-f8e37d24.system.entry.js} +1 -1
  497. package/dist/ionic/{p-f3269679.entry.js → p-f907406b.entry.js} +1 -1
  498. package/dist/ionic/{p-ed75fcfb.system.entry.js → p-fd4e25b5.system.entry.js} +1 -1
  499. package/dist/ionic/{p-6d32975a.entry.js → p-fd6cff12.entry.js} +1 -1
  500. package/dist/ionic/svg/accessibility-outline.svg +1 -1
  501. package/dist/ionic/svg/accessibility-sharp.svg +1 -1
  502. package/dist/ionic/svg/accessibility.svg +1 -1
  503. package/dist/ionic/svg/bag-add-outline.svg +1 -1
  504. package/dist/ionic/svg/bag-add-sharp.svg +1 -1
  505. package/dist/ionic/svg/bag-add.svg +1 -1
  506. package/dist/ionic/svg/bag-check-outline.svg +1 -1
  507. package/dist/ionic/svg/bag-check-sharp.svg +1 -1
  508. package/dist/ionic/svg/bag-check.svg +1 -1
  509. package/dist/ionic/svg/bag-handle-outline.svg +1 -1
  510. package/dist/ionic/svg/bag-handle-sharp.svg +1 -1
  511. package/dist/ionic/svg/bag-handle.svg +1 -1
  512. package/dist/ionic/svg/bag-outline.svg +1 -1
  513. package/dist/ionic/svg/bag-remove-outline.svg +1 -1
  514. package/dist/ionic/svg/bag-remove-sharp.svg +1 -1
  515. package/dist/ionic/svg/bag-remove.svg +1 -1
  516. package/dist/ionic/svg/bag-sharp.svg +1 -1
  517. package/dist/ionic/svg/bag.svg +1 -1
  518. package/dist/ionic/svg/balloon-outline.svg +1 -1
  519. package/dist/ionic/svg/balloon-sharp.svg +1 -1
  520. package/dist/ionic/svg/balloon.svg +1 -1
  521. package/dist/ionic/svg/ban-outline.svg +1 -1
  522. package/dist/ionic/svg/ban-sharp.svg +1 -1
  523. package/dist/ionic/svg/ban.svg +1 -1
  524. package/dist/ionic/svg/body-outline.svg +1 -1
  525. package/dist/ionic/svg/bowling-ball-outline.svg +1 -1
  526. package/dist/ionic/svg/bowling-ball-sharp.svg +1 -1
  527. package/dist/ionic/svg/bowling-ball.svg +1 -1
  528. package/dist/ionic/svg/calendar-clear-outline.svg +1 -1
  529. package/dist/ionic/svg/calendar-clear-sharp.svg +1 -1
  530. package/dist/ionic/svg/calendar-clear.svg +1 -1
  531. package/dist/ionic/svg/calendar-number-outline.svg +1 -1
  532. package/dist/ionic/svg/calendar-number-sharp.svg +1 -1
  533. package/dist/ionic/svg/calendar-number.svg +1 -1
  534. package/dist/ionic/svg/calendar-outline.svg +1 -1
  535. package/dist/ionic/svg/calendar-sharp.svg +1 -1
  536. package/dist/ionic/svg/calendar.svg +1 -1
  537. package/dist/ionic/svg/chevron-collapse-outline.svg +1 -1
  538. package/dist/ionic/svg/chevron-collapse-sharp.svg +1 -1
  539. package/dist/ionic/svg/chevron-collapse.svg +1 -1
  540. package/dist/ionic/svg/chevron-expand-outline.svg +1 -1
  541. package/dist/ionic/svg/chevron-expand-sharp.svg +1 -1
  542. package/dist/ionic/svg/chevron-expand.svg +1 -1
  543. package/dist/ionic/svg/color-wand-outline.svg +1 -1
  544. package/dist/ionic/svg/color-wand.svg +1 -1
  545. package/dist/ionic/svg/diamond-outline.svg +1 -1
  546. package/dist/ionic/svg/diamond-sharp.svg +1 -1
  547. package/dist/ionic/svg/diamond.svg +1 -1
  548. package/dist/ionic/svg/dice-outline.svg +1 -1
  549. package/dist/ionic/svg/dice-sharp.svg +1 -1
  550. package/dist/ionic/svg/dice.svg +1 -1
  551. package/dist/ionic/svg/document-lock-outline.svg +1 -1
  552. package/dist/ionic/svg/document-lock-sharp.svg +1 -1
  553. package/dist/ionic/svg/document-lock.svg +1 -1
  554. package/dist/ionic/svg/extension-puzzle-outline.svg +1 -1
  555. package/dist/ionic/svg/extension-puzzle-sharp.svg +1 -1
  556. package/dist/ionic/svg/extension-puzzle.svg +1 -1
  557. package/dist/ionic/svg/filter-circle-outline.svg +1 -1
  558. package/dist/ionic/svg/filter-circle-sharp.svg +1 -1
  559. package/dist/ionic/svg/filter-circle.svg +1 -1
  560. package/dist/ionic/svg/fish-outline.svg +1 -1
  561. package/dist/ionic/svg/fish-sharp.svg +1 -1
  562. package/dist/ionic/svg/fish.svg +1 -1
  563. package/dist/ionic/svg/footsteps-outline.svg +1 -1
  564. package/dist/ionic/svg/footsteps-sharp.svg +1 -1
  565. package/dist/ionic/svg/footsteps.svg +1 -1
  566. package/dist/ionic/svg/id-card-outline.svg +1 -1
  567. package/dist/ionic/svg/id-card-sharp.svg +1 -1
  568. package/dist/ionic/svg/id-card.svg +1 -1
  569. package/dist/ionic/svg/invert-mode-outline.svg +1 -1
  570. package/dist/ionic/svg/invert-mode-sharp.svg +1 -1
  571. package/dist/ionic/svg/invert-mode.svg +1 -1
  572. package/dist/ionic/svg/logo-alipay.svg +1 -1
  573. package/dist/ionic/svg/logo-android.svg +1 -1
  574. package/dist/ionic/svg/logo-apple-ar.svg +1 -1
  575. package/dist/ionic/svg/logo-behance.svg +1 -1
  576. package/dist/ionic/svg/logo-bitbucket.svg +1 -1
  577. package/dist/ionic/svg/logo-deviantart.svg +1 -1
  578. package/dist/ionic/svg/logo-discord.svg +1 -1
  579. package/dist/ionic/svg/logo-docker.svg +1 -1
  580. package/dist/ionic/svg/logo-edge.svg +1 -1
  581. package/dist/ionic/svg/logo-facebook.svg +1 -1
  582. package/dist/ionic/svg/logo-figma.svg +1 -1
  583. package/dist/ionic/svg/logo-firebase.svg +1 -1
  584. package/dist/ionic/svg/logo-gitlab.svg +1 -1
  585. package/dist/ionic/svg/logo-ionic.svg +1 -1
  586. package/dist/ionic/svg/logo-mastodon.svg +1 -1
  587. package/dist/ionic/svg/logo-medium.svg +1 -1
  588. package/dist/ionic/svg/logo-microsoft.svg +1 -1
  589. package/dist/ionic/svg/logo-npm.svg +1 -1
  590. package/dist/ionic/svg/logo-paypal.svg +1 -1
  591. package/dist/ionic/svg/logo-soundcloud.svg +1 -1
  592. package/dist/ionic/svg/logo-tableau.svg +1 -1
  593. package/dist/ionic/svg/logo-tiktok.svg +1 -1
  594. package/dist/ionic/svg/logo-venmo.svg +1 -1
  595. package/dist/ionic/svg/logo-vercel.svg +1 -1
  596. package/dist/ionic/svg/logo-wechat.svg +1 -1
  597. package/dist/ionic/svg/logo-yahoo.svg +1 -1
  598. package/dist/ionic/svg/prism-outline.svg +1 -1
  599. package/dist/ionic/svg/prism-sharp.svg +1 -1
  600. package/dist/ionic/svg/prism.svg +1 -1
  601. package/dist/ionic/svg/scale-outline.svg +1 -1
  602. package/dist/ionic/svg/scale-sharp.svg +1 -1
  603. package/dist/ionic/svg/scale.svg +1 -1
  604. package/dist/ionic/svg/server-outline.svg +1 -1
  605. package/dist/ionic/svg/server-sharp.svg +1 -1
  606. package/dist/ionic/svg/server.svg +1 -1
  607. package/dist/ionic/svg/shield-half-outline.svg +1 -1
  608. package/dist/ionic/svg/shield-half-sharp.svg +1 -1
  609. package/dist/ionic/svg/shield-half.svg +1 -1
  610. package/dist/ionic/svg/sparkles-outline.svg +1 -1
  611. package/dist/ionic/svg/sparkles-sharp.svg +1 -1
  612. package/dist/ionic/svg/sparkles.svg +1 -1
  613. package/dist/ionic/svg/storefront-outline.svg +1 -1
  614. package/dist/ionic/svg/storefront-sharp.svg +1 -1
  615. package/dist/ionic/svg/storefront.svg +1 -1
  616. package/dist/ionic/svg/telescope-outline.svg +1 -1
  617. package/dist/ionic/svg/telescope-sharp.svg +1 -1
  618. package/dist/ionic/svg/telescope.svg +1 -1
  619. package/dist/ionic/svg/ticket-outline.svg +1 -1
  620. package/dist/ionic/svg/ticket-sharp.svg +1 -1
  621. package/dist/ionic/svg/ticket.svg +1 -1
  622. package/dist/ionic/svg/today-outline.svg +1 -1
  623. package/dist/ionic/svg/today-sharp.svg +1 -1
  624. package/dist/ionic/svg/today.svg +1 -1
  625. package/dist/ionic/svg/unlink-outline.svg +1 -1
  626. package/dist/ionic/svg/unlink-sharp.svg +1 -1
  627. package/dist/ionic/svg/unlink.svg +1 -1
  628. package/dist/ionic/svg/videocam-off-outline.svg +1 -1
  629. package/dist/ionic/svg/videocam-off-sharp.svg +1 -1
  630. package/dist/ionic/svg/videocam-off.svg +1 -1
  631. package/dist/ionic/svg/wifi-outline.svg +1 -1
  632. package/dist/ionic/svg/wifi-sharp.svg +1 -1
  633. package/dist/ionic/svg/wifi.svg +1 -1
  634. package/dist/types/components/checkbox/checkbox.d.ts +6 -0
  635. package/dist/types/components/modal/animations/sheet.d.ts +1 -0
  636. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  637. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  638. package/dist/types/components/modal/modal.d.ts +11 -0
  639. package/dist/types/components/radio-group/radio-group.d.ts +15 -0
  640. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  641. package/dist/types/components/select/select.d.ts +6 -0
  642. package/dist/types/components/toggle/toggle.d.ts +6 -0
  643. package/dist/types/components/toolbar/toolbar.d.ts +4 -0
  644. package/dist/types/components.d.ts +48 -0
  645. package/dist/types/utils/config.d.ts +9 -0
  646. package/dist/types/utils/helpers.d.ts +0 -1
  647. package/dist/types/utils/logging/index.d.ts +13 -1
  648. package/hydrate/index.js +430 -221
  649. package/hydrate/index.mjs +430 -221
  650. package/package.json +5 -5
  651. package/dist/esm-es5/index-9b0d46f4.js +0 -4
  652. package/dist/esm-es5/input-shims-0e65111b.js +0 -4
  653. package/dist/esm-es5/md.transition-33826623.js +0 -4
  654. package/dist/esm-es5/status-tap-163e8128.js +0 -4
  655. package/dist/ionic/p-06fee233.js +0 -4
  656. package/dist/ionic/p-075a94bd.js +0 -4
  657. package/dist/ionic/p-0a59f4fa.entry.js +0 -4
  658. package/dist/ionic/p-0e43be1b.entry.js +0 -4
  659. package/dist/ionic/p-0ee3b5a2.system.js +0 -4
  660. package/dist/ionic/p-135e5731.js +0 -4
  661. package/dist/ionic/p-14be4015.entry.js +0 -4
  662. package/dist/ionic/p-16bfb979.system.entry.js +0 -4
  663. package/dist/ionic/p-1f405274.js +0 -4
  664. package/dist/ionic/p-25fa1d30.system.entry.js +0 -4
  665. package/dist/ionic/p-265939f0.entry.js +0 -4
  666. package/dist/ionic/p-2c9eb774.system.js +0 -4
  667. package/dist/ionic/p-49a0e74c.entry.js +0 -4
  668. package/dist/ionic/p-56da53ad.system.entry.js +0 -4
  669. package/dist/ionic/p-6190d0d6.entry.js +0 -4
  670. package/dist/ionic/p-68dc53a5.js +0 -4
  671. package/dist/ionic/p-83810019.entry.js +0 -4
  672. package/dist/ionic/p-8a836849.entry.js +0 -4
  673. package/dist/ionic/p-8d5472fb.entry.js +0 -4
  674. package/dist/ionic/p-b7433d7d.js +0 -4
  675. package/dist/ionic/p-cc700b6b.entry.js +0 -4
  676. package/dist/ionic/p-df862603.entry.js +0 -4
  677. package/dist/ionic/p-e308de5b.system.js +0 -4
  678. package/dist/ionic/p-f4066aa9.entry.js +0 -4
  679. package/dist/ionic/p-ff4b7e40.system.js +0 -4
  680. package/dist/ionic/svg/arrow-down-left-box-outline.svg +0 -1
  681. package/dist/ionic/svg/arrow-down-left-box-sharp.svg +0 -1
  682. package/dist/ionic/svg/arrow-down-left-box.svg +0 -1
  683. package/dist/ionic/svg/arrow-down-right-box-outline.svg +0 -1
  684. package/dist/ionic/svg/arrow-down-right-box-sharp.svg +0 -1
  685. package/dist/ionic/svg/arrow-down-right-box.svg +0 -1
  686. package/dist/ionic/svg/arrow-up-left-box-outline.svg +0 -1
  687. package/dist/ionic/svg/arrow-up-left-box-sharp.svg +0 -1
  688. package/dist/ionic/svg/arrow-up-left-box.svg +0 -1
  689. package/dist/ionic/svg/arrow-up-right-box-outline.svg +0 -1
  690. package/dist/ionic/svg/arrow-up-right-box-sharp.svg +0 -1
  691. package/dist/ionic/svg/arrow-up-right-box.svg +0 -1
  692. package/dist/ionic/svg/binoculars-outline.svg +0 -1
  693. package/dist/ionic/svg/binoculars-sharp.svg +0 -1
  694. package/dist/ionic/svg/binoculars.svg +0 -1
  695. package/dist/ionic/svg/logo-appflow.svg +0 -1
  696. package/dist/ionic/svg/logo-trapeze.svg +0 -1
  697. package/dist/ionic/svg/logo-x.svg +0 -1
package/hydrate/index.mjs CHANGED
@@ -2706,18 +2706,8 @@ const shallowEqualStringMap = (map1, map2) => {
2706
2706
  }
2707
2707
  return true;
2708
2708
  };
2709
- const getNextSiblingOfType = (element) => {
2710
- let sibling = element.nextSibling;
2711
- while (sibling) {
2712
- if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
2713
- return sibling;
2714
- }
2715
- sibling = sibling.nextSibling;
2716
- }
2717
- return null;
2718
- };
2719
2709
 
2720
- /* Ionicons v7.4.0, ES Modules */
2710
+ /* Ionicons v7.2.2, ES Modules */
2721
2711
  const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
2722
2712
  const arrowDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>";
2723
2713
  const caretBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M368 64L144 256l224 192V64z'/></svg>";
@@ -2726,7 +2716,7 @@ const caretUpSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000
2726
2716
  const checkmarkOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' d='M416 128L192 384l-96-96' class='ionicon-fill-none ionicon-stroke-width'/></svg>";
2727
2717
  const chevronBack = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M328 112L184 256l144 144' class='ionicon-fill-none'/></svg>";
2728
2718
  const chevronDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 184l144 144 144-144' class='ionicon-fill-none'/></svg>";
2729
- const chevronExpand = "data:image/svg+xml;utf8,<svg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg' class='ionicon'><path d='M136 208l120-104 120 104M136 304l120 104 120-104' stroke-width='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none'/></svg>";
2719
+ const chevronExpand = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M136 208l120-104 120 104M136 304l120 104 120-104' stroke-width='48' stroke-linecap='round' stroke-linejoin='round' class='ionicon-fill-none'/></svg>";
2730
2720
  const chevronForward = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>";
2731
2721
  const chevronForwardOutline = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M184 112l144 144-144 144' class='ionicon-fill-none'/></svg>";
2732
2722
  const close = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M289.94 256l95-95A24 24 0 00351 127l-95 95-95-95a24 24 0 00-34 34l95 95-95 95a24 24 0 1034 34l95-95 95 95a24 24 0 0034-34z'/></svg>";
@@ -3223,9 +3213,12 @@ let accordionIds = 0;
3223
3213
  * @param message - The string message to be logged to the console.
3224
3214
  */
3225
3215
  const printIonWarning = (message, ...params) => {
3226
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3216
+ const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3217
+ if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3218
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3219
+ }
3227
3220
  };
3228
- /*
3221
+ /**
3229
3222
  * Logs an error to the console with an Ionic prefix
3230
3223
  * to indicate the library that is warning the developer.
3231
3224
  *
@@ -3233,7 +3226,10 @@ const printIonWarning = (message, ...params) => {
3233
3226
  * @param params - Additional arguments to supply to the console.error.
3234
3227
  */
3235
3228
  const printIonError = (message, ...params) => {
3236
- return console.error(`[Ionic Error]: ${message}`, ...params);
3229
+ const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3230
+ if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3231
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3232
+ }
3237
3233
  };
3238
3234
  /**
3239
3235
  * Prints an error informing developers that an implementation requires an element to be used
@@ -8497,6 +8493,7 @@ class Checkbox {
8497
8493
  this.labelPlacement = 'start';
8498
8494
  this.justify = undefined;
8499
8495
  this.alignment = undefined;
8496
+ this.required = false;
8500
8497
  }
8501
8498
  componentWillLoad() {
8502
8499
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8508,11 +8505,11 @@ class Checkbox {
8508
8505
  }
8509
8506
  }
8510
8507
  render() {
8511
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8508
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8512
8509
  const mode = getIonMode$1(this);
8513
8510
  const path = getSVGPath(mode, indeterminate);
8514
8511
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8515
- return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8512
+ return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8516
8513
  [mode]: true,
8517
8514
  'in-item': hostContext('ion-item', el),
8518
8515
  'checkbox-checked': checked,
@@ -8522,10 +8519,10 @@ class Checkbox {
8522
8519
  [`checkbox-justify-${justify}`]: justify !== undefined,
8523
8520
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8524
8521
  [`checkbox-label-placement-${labelPlacement}`]: true,
8525
- }), onClick: this.onClick }, hAsync("label", { key: '68222fb736a5ec3f2e488649b0e2ce0417dcb224', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'f12962d7e9b19c744cfdbdeccc67ae7f5d080281', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), hAsync("div", { key: 'c72df2699414b1e5a41a1bc267bc634f0c93dcff', class: {
8522
+ }), onClick: this.onClick }, hAsync("label", { key: '3439d546e8b60187421db698eab63a0bdd31c973', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: '9f45cf7dbdedcf01ec132c11e16979adb1aa102f', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), hAsync("div", { key: '4e882f98939cc4b7c7ab7459c751d3f4bb2023fe', class: {
8526
8523
  'label-text-wrapper': true,
8527
8524
  'label-text-wrapper-hidden': el.textContent === '',
8528
- }, part: "label" }, hAsync("slot", { key: 'a2a80285178a7e0e3b536fc9ca26b8b444aa4307' })), hAsync("div", { key: 'c2b05e0d1fe8df5dcd72858220b5ff51ecaee4cc', class: "native-wrapper" }, hAsync("svg", { key: 'ee24913fded72258ebd9713654a6dba92a18fcf7', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8525
+ }, part: "label" }, hAsync("slot", { key: '0abda81297a086d02c4a56af75005547971dfcfe' })), hAsync("div", { key: '36489ea3f48a7d0ec46b77c243f9f253ef5c2b3b', class: "native-wrapper" }, hAsync("svg", { key: '4c53b52f5e93752672a34eb6f180b75fa9af9046', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8529
8526
  }
8530
8527
  getSVGPath(mode, indeterminate) {
8531
8528
  let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -8552,6 +8549,7 @@ class Checkbox {
8552
8549
  "labelPlacement": [1, "label-placement"],
8553
8550
  "justify": [1],
8554
8551
  "alignment": [1],
8552
+ "required": [4],
8555
8553
  "setFocus": [64]
8556
8554
  },
8557
8555
  "$listeners$": undefined,
@@ -15899,11 +15897,11 @@ class ItemDivider {
15899
15897
  }
15900
15898
  render() {
15901
15899
  const mode = getIonMode$1(this);
15902
- return (hAsync(Host, { key: '6cff318230a9b2a9db529df154285d3dd9822efe', class: createColorClasses$1(this.color, {
15900
+ return (hAsync(Host, { key: '7150b1a3a881c3c312db40821acb9830c2885ccf', class: createColorClasses$1(this.color, {
15903
15901
  [mode]: true,
15904
15902
  'item-divider-sticky': this.sticky,
15905
15903
  item: true,
15906
- }) }, hAsync("slot", { key: 'eb50dfab74ab0fd13697db17ecd60e8fa0bf1750', name: "start" }), hAsync("div", { key: '2806efd89d086f4fb844a479d9c095e1e0775713', class: "item-divider-inner" }, hAsync("div", { key: '77b7d5fa987e5f1c26d8023cd1f974a8a263a3de', class: "item-divider-wrapper" }, hAsync("slot", { key: 'dbafb0deb140a19a2a9748fd5b48760c39c6fd2e' })), hAsync("slot", { key: 'ef9a848fe21e84ef21cd273b8a4d9f95f558175b', name: "end" }))));
15904
+ }) }, hAsync("slot", { key: '6e9d9615f475392a81177bc49b4b01dbdab67925', name: "start" }), hAsync("div", { key: '12fe6b840ad1a1897cc34529e488207b2df448f7', class: "item-divider-inner" }, hAsync("div", { key: '626776a8c9887dd2df5ecf3b7861beb742b41e03', class: "item-divider-wrapper" }, hAsync("slot", { key: '90379dd99914e24ae45c9571c8d390f9b6622fd4' })), hAsync("slot", { key: '105644332c08530155b9cd8e8c6fa9e332072a63', name: "end" }))));
15907
15905
  }
15908
15906
  get el() { return getElement(this); }
15909
15907
  static get style() { return {
@@ -15935,7 +15933,7 @@ class ItemGroup {
15935
15933
  }
15936
15934
  render() {
15937
15935
  const mode = getIonMode$1(this);
15938
- return (hAsync(Host, { key: 'f9ffe0290d3fa546494fe55f952d8554f2a8abf8', role: "group", class: {
15936
+ return (hAsync(Host, { key: 'de2a969ed0dda880bc560a325848b28d0287fdb9', role: "group", class: {
15939
15937
  [mode]: true,
15940
15938
  // Used internally for styling
15941
15939
  [`item-group-${mode}`]: true,
@@ -16003,12 +16001,12 @@ class ItemOption {
16003
16001
  href: this.href,
16004
16002
  target: this.target,
16005
16003
  };
16006
- return (hAsync(Host, { key: '89310624997821858c1abde60c0ffb142ca466e0', onClick: this.onClick, class: createColorClasses$1(this.color, {
16004
+ return (hAsync(Host, { key: '1b7708dd178dc2c9280652ca3da38c84ba7b767f', onClick: this.onClick, class: createColorClasses$1(this.color, {
16007
16005
  [mode]: true,
16008
16006
  'item-option-disabled': disabled,
16009
16007
  'item-option-expandable': expandable,
16010
16008
  'ion-activatable': true,
16011
- }) }, hAsync(TagType, Object.assign({ key: 'e4dfbb3048eed03a7f7e84c6f75545e0ca9b45fb' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'dffcf437fbdc15f2e7a19e60a015e90c73c8377d', class: "button-inner" }, hAsync("slot", { key: '48a23512e0601e062118d8b2c46c8bb96f25509f', name: "top" }), hAsync("div", { key: '952a9a9aa3a476aa1f4408d7e208bf9e916b8c30', class: "horizontal-wrapper" }, hAsync("slot", { key: 'f8d18a61c1ecec4a22a55443cf72bbc51383b64f', name: "start" }), hAsync("slot", { key: '1f9f219e6f879d2e0bf6d80cf0d3f518eb14ce0e', name: "icon-only" }), hAsync("slot", { key: 'a55adcdbe68131e5b1855c2dd45dd9454ab544fb' }), hAsync("slot", { key: '3c4c85a4fbb7efc797d8bc5adf6d238da022ff9f', name: "end" })), hAsync("slot", { key: '503c7e4b306745c523f57f24399ea06ba9b1e21d', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b0e270b0c4f3ff9f9b6d74bad12a9278d7633226' }))));
16009
+ }) }, hAsync(TagType, Object.assign({ key: 'd9f899f5425ad6b97071494485aa3ca90bc89d30' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'adc2cf72b4363be9b9eeb3584723e2bfc862af20', class: "button-inner" }, hAsync("slot", { key: 'e668fe8e655a74e6a35e979e0cd488506b962dbf', name: "top" }), hAsync("div", { key: '2ddcdb92b6b19c3cc549a7aee2400d1a6eeb51f1', class: "horizontal-wrapper" }, hAsync("slot", { key: '441f13df18b72e5ed6bb51b157722e065b5847d2', name: "start" }), hAsync("slot", { key: '425d815874b49e1628880160d7175ed3ca36ca39', name: "icon-only" }), hAsync("slot", { key: '27437d3fa3365b12bc030704e18481fdfb14aebb' }), hAsync("slot", { key: 'bd39330771c7f85c6df10f7f9050335ee7f14ff0', name: "end" })), hAsync("slot", { key: '440cb6dc7743d50b261d4bf61d2c24e24b89e58c', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '29632941464bbb34551cf64961187643f62bf755' }))));
16012
16010
  }
16013
16011
  get el() { return getElement(this); }
16014
16012
  static get style() { return {
@@ -16055,7 +16053,7 @@ class ItemOptions {
16055
16053
  render() {
16056
16054
  const mode = getIonMode$1(this);
16057
16055
  const isEnd = isEndSide(this.side);
16058
- return (hAsync(Host, { key: '6d91399d2aaaa81d514d0bbc8dffe53eeec25d36', class: {
16056
+ return (hAsync(Host, { key: '7df4b71547524bf359c48e1b40ccbc44e850f632', class: {
16059
16057
  [mode]: true,
16060
16058
  // Used internally for styling
16061
16059
  [`item-options-${mode}`]: true,
@@ -16517,7 +16515,7 @@ class ItemSliding {
16517
16515
  }
16518
16516
  render() {
16519
16517
  const mode = getIonMode$1(this);
16520
- return (hAsync(Host, { key: '47a3edd2ef2080ed9cfc2784277dea09785c7dc4', class: {
16518
+ return (hAsync(Host, { key: '22f83febcbc1bc27e4ddbd7fcbe590de60a10e89', class: {
16521
16519
  [mode]: true,
16522
16520
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
16523
16521
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -16626,13 +16624,13 @@ class Label {
16626
16624
  render() {
16627
16625
  const position = this.position;
16628
16626
  const mode = getIonMode$1(this);
16629
- return (hAsync(Host, { key: '6353a70565ef6fbbbf4042b000e536c61bcf99a9', class: createColorClasses$1(this.color, {
16627
+ return (hAsync(Host, { key: '4da84c95351a74b547f8224ecfa66924d21398c5', class: createColorClasses$1(this.color, {
16630
16628
  [mode]: true,
16631
16629
  'in-item-color': hostContext('ion-item.ion-color', this.el),
16632
16630
  [`label-${position}`]: position !== undefined,
16633
16631
  [`label-no-animate`]: this.noAnimate,
16634
16632
  'label-rtl': document.dir === 'rtl',
16635
- }) }, hAsync("slot", { key: '6ef9c2758c0168442aa84941af0a6cec1ef1ec21' })));
16633
+ }) }, hAsync("slot", { key: 'ea158ebb620275e5492965234d0ab925d391f919' })));
16636
16634
  }
16637
16635
  get el() { return getElement(this); }
16638
16636
  static get watchers() { return {
@@ -16734,10 +16732,10 @@ class ListHeader {
16734
16732
  render() {
16735
16733
  const { lines } = this;
16736
16734
  const mode = getIonMode$1(this);
16737
- return (hAsync(Host, { key: 'fb78bd8601cbd7b90ec84a96e0c8325be1132b1e', class: createColorClasses$1(this.color, {
16735
+ return (hAsync(Host, { key: '95ce2135e2b1ad4d7d6020b0fb9bc6e02b3c0851', class: createColorClasses$1(this.color, {
16738
16736
  [mode]: true,
16739
16737
  [`list-header-lines-${lines}`]: lines !== undefined,
16740
- }) }, hAsync("div", { key: '2580ad49f3a54973e15f14d645a1e55a6fa066ac', class: "list-header-inner" }, hAsync("slot", { key: '677b2e2ec8eeb3ae6ad329e86c76451cf3ae6c2f' }))));
16738
+ }) }, hAsync("div", { key: '3065b0a094bc31a90518898a5126a813c8a33816', class: "list-header-inner" }, hAsync("slot", { key: 'fe15c87d7867f3e5d8185645c49c0228496697b8' }))));
16741
16739
  }
16742
16740
  static get style() { return {
16743
16741
  ios: IonListHeaderIosStyle0,
@@ -17006,9 +17004,9 @@ class Loading {
17006
17004
  * Otherwise, don't set aria-labelledby.
17007
17005
  */
17008
17006
  const ariaLabelledBy = message !== undefined ? msgId : null;
17009
- return (hAsync(Host, Object.assign({ key: 'd97f536b7f443ea19a2bbf2dcbc7f546b8e0a092', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
17007
+ return (hAsync(Host, Object.assign({ key: 'd6066c8b56b1fe4b597a243a7dab191ef0d21286', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
17010
17008
  zIndex: `${40000 + this.overlayIndex}`,
17011
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '6cd39bd7912fd080ab59d041644054c96d238ea9', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'c14ca5a9308844f11bcb010257e15208a75b39bc', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '118bceefa8e1cf8b225a858f224e6d919cf03c26', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '490d6e8ae4433835fe273162d7b90deab944fb39', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'c5cf6549c43df4cb23814b3e62ec4d9e7ea2b64f', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '2b888362122d3b66b0492d53b0c21bd6a2a97501', tabindex: "0", "aria-hidden": "true" })));
17009
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '2431eda00a2a3f510f5dfc39b7c7d47c056dfa3d', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'cf210aaf5e754e4eccdb49cf7ead4647b3f9b2d1', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'fa9375143d391656d70e181d25b952c77c2fc6ec', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '8e4a4ed994f7f62df86b03696ac95162df41f52d', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'e5b323c272d365853ba92bd211e390b4fd4751d2', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'cae35ec8c34800477bff3ebcec8010e632158233', tabindex: "0", "aria-hidden": "true" })));
17012
17010
  }
17013
17011
  get el() { return getElement(this); }
17014
17012
  static get watchers() { return {
@@ -18016,14 +18014,14 @@ class Menu {
18016
18014
  * the ionBackButton listener in the menu controller
18017
18015
  * will handle closing the menu when Escape is pressed.
18018
18016
  */
18019
- return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18017
+ return (hAsync(Host, { key: '342db8551d26604128b29b21d2d8c37593972ed9', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18020
18018
  [mode]: true,
18021
18019
  [`menu-type-${type}`]: true,
18022
18020
  'menu-enabled': !disabled,
18023
18021
  [`menu-side-${side}`]: true,
18024
18022
  'menu-pane-visible': isPaneVisible,
18025
18023
  'split-pane-side': hostContext('ion-split-pane', el),
18026
- } }, hAsync("div", { key: '894e680fe227534711128c7aca980964ddb5a08a', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'e9f5934518dc0cceaeadf1f2820614595fec6bc9' })), hAsync("ion-backdrop", { key: '7282077817657b1bb6c155f1404c0a519fece993', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
18024
+ } }, hAsync("div", { key: '3c9bec2862b7fb9d88de66b1600be01f6735e3dd', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '76283b4b2a65c78646f92c3b273eea021eda499c' })), hAsync("ion-backdrop", { key: '121c395bc4873542a1b6ae2c9e23f2e881e75d93', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
18027
18025
  }
18028
18026
  get el() { return getElement(this); }
18029
18027
  static get watchers() { return {
@@ -18126,7 +18124,7 @@ class MenuButton {
18126
18124
  type: this.type,
18127
18125
  };
18128
18126
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
18129
- return (hAsync(Host, { key: '7ec29715ce7926b7c2b08f3d9cac8aaa16b3dc28', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18127
+ return (hAsync(Host, { key: '3cde3704f28eb275f4a5ff2985bbb68c1024e79c', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18130
18128
  [mode]: true,
18131
18129
  button: true, // ion-buttons target .button
18132
18130
  'menu-button-hidden': hidden,
@@ -18135,7 +18133,7 @@ class MenuButton {
18135
18133
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
18136
18134
  'ion-activatable': true,
18137
18135
  'ion-focusable': true,
18138
- }) }, hAsync("button", Object.assign({ key: 'd4c5929264af3ba0328118bcc27d2ab7ef5d3809' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '7bfa6e9a93105486623d044861e879ec79ff64f1', class: "button-inner" }, hAsync("slot", { key: '071ab58e285832fc188706166f5547d45d501ac5' }, hAsync("ion-icon", { key: '918ec5d791921de9821c347af4f65f97dd94aabf', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: '00ffdd53f635e706c1dbd01b8e7944498650fe81', type: "unbounded" }))));
18136
+ }) }, hAsync("button", Object.assign({ key: 'a02a3374288bd1759b6e352ada8eab0d45c6422f' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: 'ba699f2277a4e7b27ce5e42faeefc53d8805bb43', class: "button-inner" }, hAsync("slot", { key: '829fe6cbdeb173f50d1a670389d1565baa6273e4' }, hAsync("ion-icon", { key: 'a9a9f7b8dcffc648a8429fe0adbe766869de72fd', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: '48deca9a771a249f2fc76eaa8b9741c8d66d8355', type: "unbounded" }))));
18139
18137
  }
18140
18138
  get el() { return getElement(this); }
18141
18139
  static get style() { return {
@@ -18184,10 +18182,10 @@ class MenuToggle {
18184
18182
  render() {
18185
18183
  const mode = getIonMode$1(this);
18186
18184
  const hidden = this.autoHide && !this.visible;
18187
- return (hAsync(Host, { key: '7c27ea5b0795676bf5cb33e1f83aa142c197f64e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18185
+ return (hAsync(Host, { key: '88e88fa13ac7f10ba3acfe378bd11cda0c7e2749', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18188
18186
  [mode]: true,
18189
18187
  'menu-toggle-hidden': hidden,
18190
- } }, hAsync("slot", { key: '69f187becedc0fe34603d41d279f043cf0fdf776' })));
18188
+ } }, hAsync("slot", { key: '0a14c7b63eda64702d2fd1b4bc7db4809892842d' })));
18191
18189
  }
18192
18190
  static get style() { return IonMenuToggleStyle0; }
18193
18191
  static get cmpMeta() { return {
@@ -19027,7 +19025,7 @@ const computeDuration = (remaining, velocity) => {
19027
19025
  };
19028
19026
 
19029
19027
  const createSheetEnterAnimation = (opts) => {
19030
- const { currentBreakpoint, backdropBreakpoint } = opts;
19028
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19031
19029
  /**
19032
19030
  * If the backdropBreakpoint is undefined, then the backdrop
19033
19031
  * should always fade in. If the backdropBreakpoint came before the
@@ -19047,7 +19045,16 @@ const createSheetEnterAnimation = (opts) => {
19047
19045
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19048
19046
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19049
19047
  ]);
19050
- return { wrapperAnimation, backdropAnimation };
19048
+ /**
19049
+ * This allows the content to be scrollable at any breakpoint.
19050
+ */
19051
+ const contentAnimation = !expandToScroll
19052
+ ? createAnimation('contentAnimation').keyframes([
19053
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
19054
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
19055
+ ])
19056
+ : undefined;
19057
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
19051
19058
  };
19052
19059
  const createSheetLeaveAnimation = (opts) => {
19053
19060
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19082,22 +19089,68 @@ const createEnterAnimation$1 = () => {
19082
19089
  })
19083
19090
  .afterClearStyles(['pointer-events']);
19084
19091
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19085
- return { backdropAnimation, wrapperAnimation };
19092
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19086
19093
  };
19087
19094
  /**
19088
19095
  * iOS Modal Enter Animation for the Card presentation style
19089
19096
  */
19090
19097
  const iosEnterAnimation$3 = (baseEl, opts) => {
19091
- const { presentingEl, currentBreakpoint } = opts;
19098
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19092
19099
  const root = getElementRoot(baseEl);
19093
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19100
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19094
19101
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19095
19102
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
19103
+ // The content animation is only added if scrolling is enabled for
19104
+ // all the breakpoints.
19105
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19096
19106
  const baseAnimation = createAnimation('entering-base')
19097
19107
  .addElement(baseEl)
19098
19108
  .easing('cubic-bezier(0.32,0.72,0,1)')
19099
19109
  .duration(500)
19100
- .addAnimation(wrapperAnimation);
19110
+ .addAnimation([wrapperAnimation])
19111
+ .beforeAddWrite(() => {
19112
+ if (expandToScroll) {
19113
+ // Scroll can only be done when the modal is fully expanded.
19114
+ return;
19115
+ }
19116
+ /**
19117
+ * There are some browsers that causes flickering when
19118
+ * dragging the content when scroll is enabled at every
19119
+ * breakpoint. This is due to the wrapper element being
19120
+ * transformed off the screen and having a snap animation.
19121
+ *
19122
+ * A workaround is to clone the footer element and append
19123
+ * it outside of the wrapper element. This way, the footer
19124
+ * is still visible and the drag can be done without
19125
+ * flickering. The original footer is hidden until the modal
19126
+ * is dismissed. This maintains the animation of the footer
19127
+ * when the modal is dismissed.
19128
+ *
19129
+ * The workaround needs to be done before the animation starts
19130
+ * so there are no flickering issues.
19131
+ */
19132
+ const ionFooter = baseEl.querySelector('ion-footer');
19133
+ /**
19134
+ * This check is needed to prevent more than one footer
19135
+ * from being appended to the shadow root.
19136
+ * Otherwise, iOS and MD enter animations would append
19137
+ * the footer twice.
19138
+ */
19139
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19140
+ if (ionFooter && !ionFooterAlreadyAppended) {
19141
+ const footerHeight = ionFooter.clientHeight;
19142
+ const clonedFooter = ionFooter.cloneNode(true);
19143
+ baseEl.shadowRoot.appendChild(clonedFooter);
19144
+ ionFooter.style.setProperty('display', 'none');
19145
+ ionFooter.setAttribute('aria-hidden', 'true');
19146
+ // Padding is added to prevent some content from being hidden.
19147
+ const page = baseEl.querySelector('.ion-page');
19148
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19149
+ }
19150
+ });
19151
+ if (contentAnimation) {
19152
+ baseAnimation.addAnimation(contentAnimation);
19153
+ }
19101
19154
  if (presentingEl) {
19102
19155
  const isMobile = window.innerWidth < 768;
19103
19156
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19175,7 +19228,7 @@ const createLeaveAnimation$1 = () => {
19175
19228
  * iOS Modal Leave Animation
19176
19229
  */
19177
19230
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19178
- const { presentingEl, currentBreakpoint } = opts;
19231
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19179
19232
  const root = getElementRoot(baseEl);
19180
19233
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19181
19234
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19184,7 +19237,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19184
19237
  .addElement(baseEl)
19185
19238
  .easing('cubic-bezier(0.32,0.72,0,1)')
19186
19239
  .duration(duration)
19187
- .addAnimation(wrapperAnimation);
19240
+ .addAnimation(wrapperAnimation)
19241
+ .beforeAddWrite(() => {
19242
+ if (expandToScroll) {
19243
+ // Scroll can only be done when the modal is fully expanded.
19244
+ return;
19245
+ }
19246
+ /**
19247
+ * If expandToScroll is disabled, we need to swap
19248
+ * the visibility to the original, so the footer
19249
+ * dismisses with the modal and doesn't stay
19250
+ * until the modal is removed from the DOM.
19251
+ */
19252
+ const ionFooter = baseEl.querySelector('ion-footer');
19253
+ if (ionFooter) {
19254
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19255
+ ionFooter.style.removeProperty('display');
19256
+ ionFooter.removeAttribute('aria-hidden');
19257
+ clonedFooter.style.setProperty('display', 'none');
19258
+ clonedFooter.setAttribute('aria-hidden', 'true');
19259
+ const page = baseEl.querySelector('.ion-page');
19260
+ page.style.removeProperty('padding-bottom');
19261
+ }
19262
+ });
19188
19263
  if (presentingEl) {
19189
19264
  const isMobile = window.innerWidth < 768;
19190
19265
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19262,22 +19337,69 @@ const createEnterAnimation = () => {
19262
19337
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19263
19338
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19264
19339
  ]);
19265
- return { backdropAnimation, wrapperAnimation };
19340
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19266
19341
  };
19267
19342
  /**
19268
19343
  * Md Modal Enter Animation
19269
19344
  */
19270
19345
  const mdEnterAnimation$2 = (baseEl, opts) => {
19271
- const { currentBreakpoint } = opts;
19346
+ const { currentBreakpoint, expandToScroll } = opts;
19272
19347
  const root = getElementRoot(baseEl);
19273
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19348
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19274
19349
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19275
19350
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19276
- return createAnimation()
19351
+ // The content animation is only added if scrolling is enabled for
19352
+ // all the breakpoints.
19353
+ expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19354
+ const baseAnimation = createAnimation()
19277
19355
  .addElement(baseEl)
19278
19356
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19279
19357
  .duration(280)
19280
- .addAnimation([backdropAnimation, wrapperAnimation]);
19358
+ .addAnimation([backdropAnimation, wrapperAnimation])
19359
+ .beforeAddWrite(() => {
19360
+ if (expandToScroll) {
19361
+ // Scroll can only be done when the modal is fully expanded.
19362
+ return;
19363
+ }
19364
+ /**
19365
+ * There are some browsers that causes flickering when
19366
+ * dragging the content when scroll is enabled at every
19367
+ * breakpoint. This is due to the wrapper element being
19368
+ * transformed off the screen and having a snap animation.
19369
+ *
19370
+ * A workaround is to clone the footer element and append
19371
+ * it outside of the wrapper element. This way, the footer
19372
+ * is still visible and the drag can be done without
19373
+ * flickering. The original footer is hidden until the modal
19374
+ * is dismissed. This maintains the animation of the footer
19375
+ * when the modal is dismissed.
19376
+ *
19377
+ * The workaround needs to be done before the animation starts
19378
+ * so there are no flickering issues.
19379
+ */
19380
+ const ionFooter = baseEl.querySelector('ion-footer');
19381
+ /**
19382
+ * This check is needed to prevent more than one footer
19383
+ * from being appended to the shadow root.
19384
+ * Otherwise, iOS and MD enter animations would append
19385
+ * the footer twice.
19386
+ */
19387
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19388
+ if (ionFooter && !ionFooterAlreadyAppended) {
19389
+ const footerHeight = ionFooter.clientHeight;
19390
+ const clonedFooter = ionFooter.cloneNode(true);
19391
+ baseEl.shadowRoot.appendChild(clonedFooter);
19392
+ ionFooter.style.setProperty('display', 'none');
19393
+ ionFooter.setAttribute('aria-hidden', 'true');
19394
+ // Padding is added to prevent some content from being hidden.
19395
+ const page = baseEl.querySelector('.ion-page');
19396
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19397
+ }
19398
+ });
19399
+ if (contentAnimation) {
19400
+ baseAnimation.addAnimation(contentAnimation);
19401
+ }
19402
+ return baseAnimation;
19281
19403
  };
19282
19404
 
19283
19405
  const createLeaveAnimation = () => {
@@ -19292,18 +19414,41 @@ const createLeaveAnimation = () => {
19292
19414
  * Md Modal Leave Animation
19293
19415
  */
19294
19416
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19295
- const { currentBreakpoint } = opts;
19417
+ const { currentBreakpoint, expandToScroll } = opts;
19296
19418
  const root = getElementRoot(baseEl);
19297
19419
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19298
19420
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19299
19421
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19300
- return createAnimation()
19422
+ const baseAnimation = createAnimation()
19301
19423
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19302
19424
  .duration(200)
19303
- .addAnimation([backdropAnimation, wrapperAnimation]);
19425
+ .addAnimation([backdropAnimation, wrapperAnimation])
19426
+ .beforeAddWrite(() => {
19427
+ if (expandToScroll) {
19428
+ // Scroll can only be done when the modal is fully expanded.
19429
+ return;
19430
+ }
19431
+ /**
19432
+ * If expandToScroll is disabled, we need to swap
19433
+ * the visibility to the original, so the footer
19434
+ * dismisses with the modal and doesn't stay
19435
+ * until the modal is removed from the DOM.
19436
+ */
19437
+ const ionFooter = baseEl.querySelector('ion-footer');
19438
+ if (ionFooter) {
19439
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19440
+ ionFooter.style.removeProperty('display');
19441
+ ionFooter.removeAttribute('aria-hidden');
19442
+ clonedFooter.style.setProperty('display', 'none');
19443
+ clonedFooter.setAttribute('aria-hidden', 'true');
19444
+ const page = baseEl.querySelector('.ion-page');
19445
+ page.style.removeProperty('padding-bottom');
19446
+ }
19447
+ });
19448
+ return baseAnimation;
19304
19449
  };
19305
19450
 
19306
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19451
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19307
19452
  // Defaults for the sheet swipe animation
19308
19453
  const defaultBackdrop = [
19309
19454
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19320,6 +19465,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19320
19465
  { offset: 1, transform: 'translateY(100%)' },
19321
19466
  ],
19322
19467
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19468
+ CONTENT_KEYFRAMES: [
19469
+ { offset: 0, maxHeight: '100%' },
19470
+ { offset: 1, maxHeight: '0%' },
19471
+ ],
19323
19472
  };
19324
19473
  const contentEl = baseEl.querySelector('ion-content');
19325
19474
  const height = wrapperEl.clientHeight;
@@ -19327,10 +19476,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19327
19476
  let offset = 0;
19328
19477
  let canDismissBlocksGesture = false;
19329
19478
  const canDismissMaxStep = 0.95;
19330
- const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19331
- const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19332
19479
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
19333
19480
  const minBreakpoint = breakpoints[0];
19481
+ const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19482
+ const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19483
+ const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19334
19484
  const enableBackdrop = () => {
19335
19485
  baseEl.style.setProperty('pointer-events', 'auto');
19336
19486
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19353,6 +19503,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19353
19503
  */
19354
19504
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19355
19505
  };
19506
+ /**
19507
+ * Toggles the visible modal footer when `expandToScroll` is disabled.
19508
+ * @param footer The footer to show.
19509
+ */
19510
+ const swapFooterVisibility = (footer) => {
19511
+ const originalFooter = baseEl.querySelector('ion-footer');
19512
+ if (!originalFooter) {
19513
+ return;
19514
+ }
19515
+ const clonedFooter = wrapperEl.nextElementSibling;
19516
+ const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
19517
+ const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
19518
+ footerToShow.style.removeProperty('display');
19519
+ footerToShow.removeAttribute('aria-hidden');
19520
+ const page = baseEl.querySelector('.ion-page');
19521
+ if (footer === 'original') {
19522
+ page.style.removeProperty('padding-bottom');
19523
+ }
19524
+ else {
19525
+ const pagePadding = footerToShow.clientHeight;
19526
+ page.style.setProperty('padding-bottom', `${pagePadding}px`);
19527
+ }
19528
+ footerToHide.style.setProperty('display', 'none');
19529
+ footerToHide.setAttribute('aria-hidden', 'true');
19530
+ };
19356
19531
  /**
19357
19532
  * After the entering animation completes,
19358
19533
  * we need to set the animation to go from
@@ -19364,6 +19539,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19364
19539
  if (wrapperAnimation && backdropAnimation) {
19365
19540
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19366
19541
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19542
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19367
19543
  animation.progressStart(true, 1 - currentBreakpoint);
19368
19544
  /**
19369
19545
  * If backdrop is not enabled, then content
@@ -19380,7 +19556,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19380
19556
  disableBackdrop();
19381
19557
  }
19382
19558
  }
19383
- if (contentEl && currentBreakpoint !== maxBreakpoint) {
19559
+ if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19384
19560
  contentEl.scrollY = false;
19385
19561
  }
19386
19562
  const canStart = (detail) => {
@@ -19394,6 +19570,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19394
19570
  */
19395
19571
  const contentEl = findClosestIonContent(detail.event.target);
19396
19572
  currentBreakpoint = getCurrentBreakpoint();
19573
+ /**
19574
+ * If we have expandToScroll disabled, we should not allow the swipe gesture to start
19575
+ * if the content is being swiped.
19576
+ */
19577
+ if (!expandToScroll && contentEl) {
19578
+ return false;
19579
+ }
19397
19580
  if (currentBreakpoint === 1 && contentEl) {
19398
19581
  /**
19399
19582
  * The modal should never swipe to close on the content with a refresher.
@@ -19424,6 +19607,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19424
19607
  * Remove undefined check
19425
19608
  */
19426
19609
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
19610
+ /**
19611
+ * If expandToScroll is disabled, we need to swap
19612
+ * the footer visibility to the original, so if the modal
19613
+ * is dismissed, the footer dismisses with the modal
19614
+ * and doesn't stay on the screen after the modal is gone.
19615
+ */
19616
+ if (!expandToScroll) {
19617
+ swapFooterVisibility('original');
19618
+ }
19427
19619
  /**
19428
19620
  * If we are pulling down, then it is possible we are pulling on the content.
19429
19621
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19539,6 +19731,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19539
19731
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19540
19732
  },
19541
19733
  ]);
19734
+ if (contentAnimation) {
19735
+ /**
19736
+ * The modal content should scroll at any breakpoint when expandToScroll
19737
+ * is disabled. In order to do this, the content needs to be completely
19738
+ * viewable so scrolling can access everything. Otherwise, the default
19739
+ * behavior would show the content off the screen and only allow
19740
+ * scrolling when the sheet is fully expanded.
19741
+ */
19742
+ contentAnimation.keyframes([
19743
+ { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
19744
+ { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
19745
+ ]);
19746
+ }
19542
19747
  animation.progressStep(0);
19543
19748
  }
19544
19749
  /**
@@ -19546,6 +19751,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19546
19751
  * snapping animation completes.
19547
19752
  */
19548
19753
  gesture.enable(false);
19754
+ /**
19755
+ * If expandToScroll is disabled, we need to swap
19756
+ * the footer visibility to the cloned one so the footer
19757
+ * doesn't flicker when the sheet's height is animated.
19758
+ */
19759
+ if (!expandToScroll && shouldRemainOpen) {
19760
+ swapFooterVisibility('cloned');
19761
+ }
19549
19762
  if (shouldPreventDismiss) {
19550
19763
  handleCanDismiss(baseEl, animation);
19551
19764
  }
@@ -19553,13 +19766,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19553
19766
  onDismiss();
19554
19767
  }
19555
19768
  /**
19556
- * If the sheet is going to be fully expanded then we should enable
19557
- * scrolling immediately. The sheet modal animation takes ~500ms to finish
19558
- * so if we wait until then there is a visible delay for when scrolling is
19559
- * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19560
- * as the gesture is released, so we align with that.
19769
+ * Enables scrolling immediately if the sheet is about to fully expand
19770
+ * or if it allows scrolling at any breakpoint. Without this, there would
19771
+ * be a ~500ms delay while the modal animation completes, causing a
19772
+ * noticeable lag. Native iOS allows scrolling as soon as the gesture is
19773
+ * released, so we align with that behavior.
19561
19774
  */
19562
- if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19775
+ if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19563
19776
  contentEl.scrollY = true;
19564
19777
  }
19565
19778
  return new Promise((resolve) => {
@@ -19577,6 +19790,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19577
19790
  raf(() => {
19578
19791
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19579
19792
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19793
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19580
19794
  animation.progressStart(true, 1 - snapToBreakpoint);
19581
19795
  currentBreakpoint = snapToBreakpoint;
19582
19796
  onBreakpointChange(currentBreakpoint);
@@ -19629,10 +19843,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19629
19843
  };
19630
19844
  };
19631
19845
 
19632
- const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}";
19846
+ const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}";
19633
19847
  var IonModalIosStyle0 = modalIosCss;
19634
19848
 
19635
- const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
19849
+ const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
19636
19850
  var IonModalMdStyle0 = modalMdCss;
19637
19851
 
19638
19852
  // TODO(FW-2832): types
@@ -19711,6 +19925,7 @@ class Modal {
19711
19925
  this.enterAnimation = undefined;
19712
19926
  this.leaveAnimation = undefined;
19713
19927
  this.breakpoints = undefined;
19928
+ this.expandToScroll = true;
19714
19929
  this.initialBreakpoint = undefined;
19715
19930
  this.backdropBreakpoint = 0;
19716
19931
  this.handle = undefined;
@@ -19926,6 +20141,7 @@ class Modal {
19926
20141
  presentingEl: presentingElement,
19927
20142
  currentBreakpoint: this.initialBreakpoint,
19928
20143
  backdropBreakpoint: this.backdropBreakpoint,
20144
+ expandToScroll: this.expandToScroll,
19929
20145
  });
19930
20146
  /* tslint:disable-next-line */
19931
20147
  if (typeof window !== 'undefined') {
@@ -19976,7 +20192,10 @@ class Modal {
19976
20192
  // should be in the DOM and referenced by now, except
19977
20193
  // for the presenting el
19978
20194
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
19979
- const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20195
+ const ani = (this.animation = animationBuilder(el, {
20196
+ presentingEl: this.presentingElement,
20197
+ expandToScroll: this.expandToScroll,
20198
+ }));
19980
20199
  const contentEl = findIonContent(el);
19981
20200
  if (!contentEl) {
19982
20201
  printIonContentErrorMsg(el);
@@ -20021,9 +20240,10 @@ class Modal {
20021
20240
  presentingEl: this.presentingElement,
20022
20241
  currentBreakpoint: initialBreakpoint,
20023
20242
  backdropBreakpoint,
20243
+ expandToScroll: this.expandToScroll,
20024
20244
  }));
20025
20245
  ani.progressStart(true, 1);
20026
- const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
20246
+ const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
20027
20247
  if (this.currentBreakpoint !== breakpoint) {
20028
20248
  this.currentBreakpoint = breakpoint;
20029
20249
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20101,6 +20321,7 @@ class Modal {
20101
20321
  presentingEl: presentingElement,
20102
20322
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20103
20323
  backdropBreakpoint: this.backdropBreakpoint,
20324
+ expandToScroll: this.expandToScroll,
20104
20325
  });
20105
20326
  if (dismissed) {
20106
20327
  const { delegate } = this.getDelegate();
@@ -20186,23 +20407,23 @@ class Modal {
20186
20407
  return true;
20187
20408
  }
20188
20409
  render() {
20189
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20410
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20190
20411
  const showHandle = handle !== false && isSheetModal;
20191
20412
  const mode = getIonMode$1(this);
20192
20413
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20193
20414
  const isHandleCycle = handleBehavior === 'cycle';
20194
- return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20415
+ return (hAsync(Host, Object.assign({ key: '8b74b6fa151995ab86cdeb989e338ee45c687f6d', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20195
20416
  zIndex: `${20000 + this.overlayIndex}`,
20196
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
20417
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '1b264a356f792492fe5ece24928b701152be3d7f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '14590998fd2e87ebfb08c06bec795d122165ae09', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '73e4d6c4eb342d48dfcb7bfbfae7c020931aa36f',
20197
20418
  /*
20198
20419
  role and aria-modal must be used on the
20199
20420
  same element. They must also be set inside the
20200
20421
  shadow DOM otherwise ion-button will not be highlighted
20201
20422
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20202
20423
  */
20203
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
20424
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '52c4949baf5b7c0639a9a58f06cd4e0cad662b23', class: "modal-handle",
20204
20425
  // Prevents the handle from receiving keyboard focus when it does not cycle
20205
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
20426
+ 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: '0620b3f2e7cfef42f6c602211c4cdcaf4e646546' }))));
20206
20427
  }
20207
20428
  get el() { return getElement(this); }
20208
20429
  static get watchers() { return {
@@ -20224,6 +20445,7 @@ class Modal {
20224
20445
  "enterAnimation": [16],
20225
20446
  "leaveAnimation": [16],
20226
20447
  "breakpoints": [16],
20448
+ "expandToScroll": [4, "expand-to-scroll"],
20227
20449
  "initialBreakpoint": [2, "initial-breakpoint"],
20228
20450
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20229
20451
  "handle": [4],
@@ -21151,7 +21373,7 @@ class Nav {
21151
21373
  }
21152
21374
  }
21153
21375
  render() {
21154
- return hAsync("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
21376
+ return hAsync("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
21155
21377
  }
21156
21378
  get el() { return getElement(this); }
21157
21379
  static get watchers() { return {
@@ -21224,7 +21446,7 @@ class NavLink {
21224
21446
  this.routerAnimation = undefined;
21225
21447
  }
21226
21448
  render() {
21227
- return hAsync(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
21449
+ return hAsync(Host, { key: '9ba170d1b10e08e8a6b5e6a30d363871d455a0a9', onClick: this.onClick });
21228
21450
  }
21229
21451
  get el() { return getElement(this); }
21230
21452
  static get cmpMeta() { return {
@@ -21258,9 +21480,9 @@ class Note {
21258
21480
  }
21259
21481
  render() {
21260
21482
  const mode = getIonMode$1(this);
21261
- return (hAsync(Host, { key: '10a3495bc21166176986441479f8f7539029d161', class: createColorClasses$1(this.color, {
21483
+ return (hAsync(Host, { key: '3c3d9b2aa805c0bc1fdc6270a2bbf4dcc1b96c5b', class: createColorClasses$1(this.color, {
21262
21484
  [mode]: true,
21263
- }) }, hAsync("slot", { key: 'b6a9459e1b85f608fafd060a4bfeb11637ebe873' })));
21485
+ }) }, hAsync("slot", { key: '39e34682009fcb705ecafe51825162734bdf14d3' })));
21264
21486
  }
21265
21487
  static get style() { return {
21266
21488
  ios: IonNoteIosStyle0,
@@ -22025,11 +22247,11 @@ class Picker {
22025
22247
  render() {
22026
22248
  const { htmlAttributes } = this;
22027
22249
  const mode = getIonMode$1(this);
22028
- return (hAsync(Host, Object.assign({ key: '0712fa8732141848e50ad2e08e2ba66ef2a48991', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22250
+ return (hAsync(Host, Object.assign({ key: 'dc03f252e3b59a94bc7132c953d2d3b36b62237e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22029
22251
  zIndex: `${20000 + this.overlayIndex}`,
22030
22252
  }, class: Object.assign({ [mode]: true,
22031
22253
  // Used internally for styling
22032
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'c997632ef0488698739664012de5a6494de438b6', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '20045054a76cca997b410835fa6b305af22dcb12', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'a73a6ac20b685ed9694d4fa95ea236ce5d63fdbf', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '1221cdcc2ff013deeba12170129c8fe78308330c', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '45038a58430a4251100797b902e7034243137564', class: "picker-columns" }, hAsync("div", { key: 'c579bb69cddd4090912855ffd7f59536280f34b9', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '978c6632d82a97d053b729c9de65dd3af4c4cee2', class: "picker-below-highlight" }))), hAsync("div", { key: 'e7e9dc437a3cf6d559e2cb0df71af69047a2ae31', tabindex: "0", "aria-hidden": "true" })));
22254
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'bdabe9c82c41f96da5dafb1a0aa0854fa7e7ec93', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '1380e0c8989153b425674753764f12f253f4a738', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'edec769bbc0993d003852d0bf1123e6e2332ebbe', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'b82c67ff47aa9412a6ff8f3b2e6230b855e92c51', 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: '76485b643387f36b6b3d5f85e4d072fa18e68552', class: "picker-columns" }, hAsync("div", { key: '99268217263feb5285db1b1acd48fd0e4d5f0e7b', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '2dd7e488bc4e9695094f0758567e626e0bb5979d', class: "picker-below-highlight" }))), hAsync("div", { key: '8b2f3ae798a4ddcdd4e2716ebba1de797e446ac4', tabindex: "0", "aria-hidden": "true" })));
22033
22255
  }
22034
22256
  get el() { return getElement(this); }
22035
22257
  static get watchers() { return {
@@ -23004,9 +23226,9 @@ class PickerColumnCmp {
23004
23226
  render() {
23005
23227
  const col = this.col;
23006
23228
  const mode = getIonMode$1(this);
23007
- return (hAsync(Host, { key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
23229
+ return (hAsync(Host, { key: '88a3c9397c9ac92dd814074c8ae6ecf8e3420a2c', 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: {
23008
23230
  'max-width': this.col.columnWidth,
23009
- } }, col.prefix && (hAsync("div", { key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '1d9c0892ce56e0da9044c79eb953827166f5190b', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
23231
+ } }, col.prefix && (hAsync("div", { key: '4491a705d15337e6f45f3cf6fd21af5242474729', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: 'b0dd4b7a7a4c1edc4b73e7fb134ac85264072365', 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: 'c16419ce6481d60fc3ba6b8d102a4edf0ede02aa', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
23010
23232
  }
23011
23233
  get el() { return getElement(this); }
23012
23234
  static get watchers() { return {
@@ -23110,10 +23332,10 @@ class PickerColumnOption {
23110
23332
  render() {
23111
23333
  const { color, disabled, ariaLabel } = this;
23112
23334
  const mode = getIonMode$1(this);
23113
- return (hAsync(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses$1(color, {
23335
+ return (hAsync(Host, { key: 'c1353e99c2aa19c0e3ddbe433557ed18e72e1c66', class: createColorClasses$1(color, {
23114
23336
  [mode]: true,
23115
23337
  ['option-disabled']: disabled,
23116
- }) }, hAsync("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
23338
+ }) }, hAsync("button", { key: 'b4ee62ecf7458a07a56e8aa494485766a87a3fcb', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: '9ab1e4700c27103b676670a4b3521c183c6ab83d' }))));
23117
23339
  }
23118
23340
  get el() { return getElement(this); }
23119
23341
  static get watchers() { return {
@@ -24427,9 +24649,9 @@ class Popover {
24427
24649
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
24428
24650
  const desktop = isPlatform('desktop');
24429
24651
  const enableArrow = arrow && !parentPopover;
24430
- return (hAsync(Host, Object.assign({ key: 'ffe8b37c9ffb5cac210a7307e6cdfcf78712905b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24652
+ return (hAsync(Host, Object.assign({ key: '48f108a9b74f121559626889dd5a1fcccf38fc3d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24431
24653
  zIndex: `${20000 + this.overlayIndex}`,
24432
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '12b3ffa3928b4d56a4f09c3d2f5d493d47b45255', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '2c2862d5c7e75b637973c712b4982bf4978c0cdf', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '0cfacc52afaa7abc28c1b7742889d7a1c23a37ad', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '3ef570c44d4fe7f063dd419008c92c8c40d3cd22', class: "popover-content", part: "content" }, hAsync("slot", { key: '6fc5dfdce20fee1642bc1f05d41b5bf7d1034457' })))));
24654
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '580c14ab48472534f59eedc5ba7fa486df25ed4e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '9bcf47893e8d3053e2baa40511785d84feb4038c', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '4d47f2bdc01a546a88190c07f8f4700f21de6715', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '70018c088654c1996e305b7b6b114419e97824ef', class: "popover-content", part: "content" }, hAsync("slot", { key: '3de8e1959b8facba2fbe694947704832200d8276' })))));
24433
24655
  }
24434
24656
  get el() { return getElement(this); }
24435
24657
  static get watchers() { return {
@@ -24521,7 +24743,7 @@ class ProgressBar {
24521
24743
  const mode = getIonMode$1(this);
24522
24744
  // If the progress is displayed as a solid bar.
24523
24745
  const progressSolid = buffer === 1;
24524
- return (hAsync(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24746
+ return (hAsync(Host, { key: 'd60eeaa18aaee607e083c0ef9d0de8178d47c4cd', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24525
24747
  [mode]: true,
24526
24748
  [`progress-bar-${type}`]: true,
24527
24749
  'progress-paused': paused,
@@ -24691,7 +24913,7 @@ class Radio {
24691
24913
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
24692
24914
  const mode = getIonMode$1(this);
24693
24915
  const inItem = hostContext('ion-item', el);
24694
- return (hAsync(Host, { key: '5a0adab55ad009305de4856fa1b9f93f2279a734', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24916
+ return (hAsync(Host, { key: '8badd4aec277addc0793e14df21f73bb345e99b7', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24695
24917
  [mode]: true,
24696
24918
  'in-item': inItem,
24697
24919
  'radio-checked': checked,
@@ -24702,10 +24924,10 @@ class Radio {
24702
24924
  // Focus and active styling should not apply when the radio is in an item
24703
24925
  'ion-activatable': !inItem,
24704
24926
  'ion-focusable': !inItem,
24705
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: 'f5673a798e6d87868339f046445f707e1d93b7b6', class: "radio-wrapper" }, hAsync("div", { key: 'e9190c06f75a171cab63e3f74ccf771c3ed87005', class: {
24927
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '8765b847edc93a1b5a16506e155ed03da807bb10', class: "radio-wrapper" }, hAsync("div", { key: '3d568a0192a32d4f0b8a920019c79ff02639b5c9', class: {
24706
24928
  'label-text-wrapper': true,
24707
24929
  'label-text-wrapper-hidden': !hasLabel,
24708
- }, part: "label" }, hAsync("slot", { key: '6cedf4e7b3bd03e4a635727dd7b6094bab64af64' })), hAsync("div", { key: '26dd48d9d2848b7f100b732abdc4a3171adde483', class: "native-wrapper" }, this.renderRadioControl()))));
24930
+ }, part: "label" }, hAsync("slot", { key: '331f3dc2ce5f6ed8f124fc4560f92e0f7c668a85' })), hAsync("div", { key: '473bd4aaf448753e385f2dda3fddc9f56379aa19', class: "native-wrapper" }, this.renderRadioControl()))));
24709
24931
  }
24710
24932
  get el() { return getElement(this); }
24711
24933
  static get watchers() { return {
@@ -24738,12 +24960,20 @@ class Radio {
24738
24960
  }
24739
24961
  let radioButtonIds = 0;
24740
24962
 
24963
+ const radioGroupIosCss = "ion-radio-group{vertical-align:top}.radio-group-wrapper{display:inline}.radio-group-top{line-height:1.5}.radio-group-top .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.radio-group-top .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid .radio-group-top .error-text{display:block}.ion-touched.ion-invalid .radio-group-top .helper-text{display:none}ion-list .radio-group-top{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}";
24964
+ var IonRadioGroupIosStyle0 = radioGroupIosCss;
24965
+
24966
+ const radioGroupMdCss = "ion-radio-group{vertical-align:top}.radio-group-wrapper{display:inline}.radio-group-top{line-height:1.5}.radio-group-top .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.radio-group-top .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.ion-touched.ion-invalid .radio-group-top .error-text{display:block}.ion-touched.ion-invalid .radio-group-top .helper-text{display:none}ion-list .radio-group-top{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}";
24967
+ var IonRadioGroupMdStyle0 = radioGroupMdCss;
24968
+
24741
24969
  class RadioGroup {
24742
24970
  constructor(hostRef) {
24743
24971
  registerInstance(this, hostRef);
24744
24972
  this.ionChange = createEvent(this, "ionChange", 7);
24745
24973
  this.ionValueChange = createEvent(this, "ionValueChange", 7);
24746
24974
  this.inputId = `ion-rg-${radioGroupIds++}`;
24975
+ this.helperTextId = `${this.inputId}-helper-text`;
24976
+ this.errorTextId = `${this.inputId}-error-text`;
24747
24977
  this.labelId = `${this.inputId}-lbl`;
24748
24978
  this.setRadioTabindex = (value) => {
24749
24979
  const radios = this.getRadios();
@@ -24795,6 +25025,8 @@ class RadioGroup {
24795
25025
  this.compareWith = undefined;
24796
25026
  this.name = this.inputId;
24797
25027
  this.value = undefined;
25028
+ this.helperText = undefined;
25029
+ this.errorText = undefined;
24798
25030
  }
24799
25031
  valueChanged(value) {
24800
25032
  this.setRadioTabindex(value);
@@ -24893,24 +25125,51 @@ class RadioGroup {
24893
25125
  const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
24894
25126
  radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
24895
25127
  }
25128
+ /**
25129
+ * Renders the helper text or error text values
25130
+ */
25131
+ renderHintText() {
25132
+ const { helperText, errorText, helperTextId, errorTextId } = this;
25133
+ const hasHintText = !!helperText || !!errorText;
25134
+ if (!hasHintText) {
25135
+ return;
25136
+ }
25137
+ return (hAsync("div", { class: "radio-group-top" }, hAsync("div", { id: helperTextId, class: "helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text" }, errorText)));
25138
+ }
25139
+ getHintTextID() {
25140
+ const { el, helperText, errorText, helperTextId, errorTextId } = this;
25141
+ if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
25142
+ return errorTextId;
25143
+ }
25144
+ if (helperText) {
25145
+ return helperTextId;
25146
+ }
25147
+ return undefined;
25148
+ }
24896
25149
  render() {
24897
25150
  const { label, labelId, el, name, value } = this;
24898
25151
  const mode = getIonMode$1(this);
24899
25152
  renderHiddenInput(true, el, name, value, false);
24900
- return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
25153
+ return (hAsync(Host, { key: 'cac92777297029d7fd1b6af264d92850e35dfbba', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, onClick: this.onClick, class: mode }, this.renderHintText(), hAsync("div", { key: '3e7ec0fc7b90d635b84201e006eb5622df2ed191', class: "radio-group-wrapper" }, hAsync("slot", { key: '6b3aaa635597017f961fa895973a0ee174944dcf' }))));
24901
25154
  }
24902
25155
  get el() { return getElement(this); }
24903
25156
  static get watchers() { return {
24904
25157
  "value": ["valueChanged"]
24905
25158
  }; }
25159
+ static get style() { return {
25160
+ ios: IonRadioGroupIosStyle0,
25161
+ md: IonRadioGroupMdStyle0
25162
+ }; }
24906
25163
  static get cmpMeta() { return {
24907
- "$flags$": 0,
25164
+ "$flags$": 36,
24908
25165
  "$tagName$": "ion-radio-group",
24909
25166
  "$members$": {
24910
25167
  "allowEmptySelection": [4, "allow-empty-selection"],
24911
25168
  "compareWith": [1, "compare-with"],
24912
25169
  "name": [1],
24913
25170
  "value": [1032],
25171
+ "helperText": [1, "helper-text"],
25172
+ "errorText": [1, "error-text"],
24914
25173
  "setFocus": [64]
24915
25174
  },
24916
25175
  "$listeners$": [[4, "keydown", "onKeydown"]],
@@ -25530,7 +25789,7 @@ class Range {
25530
25789
  const needsEndAdjustment = inItem && !hasEndContent;
25531
25790
  const mode = getIonMode$1(this);
25532
25791
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25533
- return (hAsync(Host, { key: '05c699caaead7cc74deaae2a958c4632191473a8', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25792
+ return (hAsync(Host, { key: 'efb8663a61f36a9db4ef69ece3a22e1424acbc28', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25534
25793
  [mode]: true,
25535
25794
  'in-item': inItem,
25536
25795
  'range-disabled': disabled,
@@ -25539,10 +25798,10 @@ class Range {
25539
25798
  [`range-label-placement-${labelPlacement}`]: true,
25540
25799
  'range-item-start-adjustment': needsStartAdjustment,
25541
25800
  'range-item-end-adjustment': needsEndAdjustment,
25542
- }) }, hAsync("label", { key: '959837bcc48c4bda33ae1f62b66ef444329a2961', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'a434c6b5c26f57f52b3af98d881e7e6a179c89fc', class: {
25801
+ }) }, hAsync("label", { key: '040be16d5a2b4c1dded852d45a82e7505dc8fb30', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'd2ba909a1177dd27c1789f0d3f8f012a39f216c6', class: {
25543
25802
  'label-text-wrapper': true,
25544
25803
  'label-text-wrapper-hidden': !hasLabel,
25545
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '87df1037b6b3337bd1fab05d33a26bf658c57914', class: "native-wrapper" }, hAsync("slot", { key: '2cb88f101da49b70aeae29b0bf5445fac241bb2f', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '17b835cfb2bd9b8e1957afd425543ff02b913d83', name: "end" })))));
25804
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'eeaa70230c5adfac60468a8ff52a54eaf804c030', class: "native-wrapper" }, hAsync("slot", { key: '1d78f55bb32bb05950dff7dfcc6bfdbef1cddb81', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '2dab4e2894ed7c036871a209419a92f1b6cf6059', name: "end" })))));
25546
25805
  }
25547
25806
  get el() { return getElement(this); }
25548
25807
  static get watchers() { return {
@@ -26443,7 +26702,7 @@ class Refresher {
26443
26702
  }
26444
26703
  render() {
26445
26704
  const mode = getIonMode$1(this);
26446
- return (hAsync(Host, { key: '9d4ac22988aec2c6af0b0c90934c52f62f0e4ce3', slot: "fixed", class: {
26705
+ return (hAsync(Host, { key: '4c36bffbfa32ef1bd28a60f4455c125842880659', slot: "fixed", class: {
26447
26706
  [mode]: true,
26448
26707
  // Used internally for styling
26449
26708
  [`refresher-${mode}`]: true,
@@ -26671,7 +26930,7 @@ class RefresherContent {
26671
26930
  const pullingIcon = this.pullingIcon;
26672
26931
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
26673
26932
  const mode = getIonMode$1(this);
26674
- return (hAsync(Host, { key: '19633bbcf02e3dba885d6bdcdaf2269bf4c8e2f5', class: mode }, hAsync("div", { key: '28922e434a55a6cac0476fe2bee56941ce0d1c02', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'fe575bf996021884677e9b23a3215d63caf894f5', class: "refresher-pulling-icon" }, hAsync("div", { key: '59fe12297fd95bc33b8df8cd35316e2a1c084d91', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: 'af9cc013ae04945c140b2865610ca73edb52ab48', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: '34df66ad1b0f706a0532957251aa2c20bf4587d8', class: "arrow-container" }, hAsync("ion-icon", { key: 'ffdb5c123e606b823491c6c51cc2b497f62581bb', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'ac3a2032bb969264d20fa057e9123441005d7a9d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'd969d10915548e72aae289b52154366f3dd39b31', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'a8f854f81a94812d7bef8ce088331d94f49ff53d', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'a1f646945370e40c844d62bc0c647443ae9dfbe7', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: 'ab3ff4047769b6436e222b46d193c1e8b23e2fce', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
26933
+ return (hAsync(Host, { key: 'fb78d7e31f8feb31025e58903eb9de85cb928dbd', class: mode }, hAsync("div", { key: '23f67800f09765ef8fde8cf85a843e19e667f337', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '5a08d3b69762f8b51dcd3dcfbaf3fddb707257fa', class: "refresher-pulling-icon" }, hAsync("div", { key: '42a613b029e092acdff7fe613a429375d89f157e', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '2f9cdc75938c4d306de7a717ed67901daef71c2c', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: '1f8a6347b4a46417ba55286a79f1a41f04bf9c91', class: "arrow-container" }, hAsync("ion-icon", { key: '326713d11d482d420ba5a739ff4528400a37e9ca', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'ab18c7cbea7bcbfa034f90f317652af4d93660ed', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'f488acd54acc8a61b6c5a279f0d7f9a437c370c0', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '914ad6139442dac53af47120ea821fa11c309a38', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: '7eba732f5e2d72b90399d68a3e89617d8979b3d1', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '838d66d8bef6f56622c62b1068e7fed29e094302', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
26675
26934
  }
26676
26935
  get el() { return getElement(this); }
26677
26936
  static get cmpMeta() { return {
@@ -26714,7 +26973,7 @@ class Reorder {
26714
26973
  render() {
26715
26974
  const mode = getIonMode$1(this);
26716
26975
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
26717
- return (hAsync(Host, { key: '27266e30bcb7e10c57fb6d546399cfb1f1c93b23', class: mode }, hAsync("slot", { key: '8745cb9a31458e884c27eed1fb90d104fe9a79eb' }, hAsync("ion-icon", { key: '6c4b9631a2f5610f1e21b2db025b6702d0d593bf', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
26976
+ return (hAsync(Host, { key: '17adf3165f4e09283d5d6434d7cd47bd23519048', class: mode }, hAsync("slot", { key: 'd00d1cd97c689fc5c7b7175a2051cf697fe22871' }, hAsync("ion-icon", { key: 'eec219aebde6083de98358be3e75965c5a5dc3d0', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
26718
26977
  }
26719
26978
  get el() { return getElement(this); }
26720
26979
  static get style() { return {
@@ -26968,7 +27227,7 @@ class ReorderGroup {
26968
27227
  }
26969
27228
  render() {
26970
27229
  const mode = getIonMode$1(this);
26971
- return (hAsync(Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
27230
+ return (hAsync(Host, { key: '6ca009dd65302a914d459aec638e62977440db20', class: {
26972
27231
  [mode]: true,
26973
27232
  'reorder-enabled': !this.disabled,
26974
27233
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -27076,7 +27335,7 @@ class RippleEffect {
27076
27335
  }
27077
27336
  render() {
27078
27337
  const mode = getIonMode$1(this);
27079
- return (hAsync(Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
27338
+ return (hAsync(Host, { key: '40c7f73e7f5f67e29f83e1236a61c6e1c9943c42', role: "presentation", class: {
27080
27339
  [mode]: true,
27081
27340
  unbounded: this.unbounded,
27082
27341
  } }));
@@ -28018,10 +28277,10 @@ class RouterLink {
28018
28277
  rel: this.rel,
28019
28278
  target: this.target,
28020
28279
  };
28021
- return (hAsync(Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: createColorClasses$1(this.color, {
28280
+ return (hAsync(Host, { key: '11183264fb6ae0db9a7a47c71b6862d60001b834', onClick: this.onClick, class: createColorClasses$1(this.color, {
28022
28281
  [mode]: true,
28023
28282
  'ion-activatable': true,
28024
- }) }, hAsync("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), hAsync("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
28283
+ }) }, hAsync("a", Object.assign({ key: '3e0e5242161cb0df593d6d573e51b8ba750065a1' }, attrs), hAsync("slot", { key: '5bd808e98a4627bb1236f0d955f4b32971355417' }))));
28025
28284
  }
28026
28285
  static get style() { return IonRouterLinkStyle0; }
28027
28286
  static get cmpMeta() { return {
@@ -28216,7 +28475,7 @@ class RouterOutlet {
28216
28475
  return true;
28217
28476
  }
28218
28477
  render() {
28219
- return hAsync("slot", { key: 'a70341f58d19df55de1dad00e3464388e446aa2a' });
28478
+ return hAsync("slot", { key: '8d0c163c5f63158e16ef2db7cc3c756cf597461d' });
28220
28479
  }
28221
28480
  get el() { return getElement(this); }
28222
28481
  static get watchers() { return {
@@ -28250,7 +28509,7 @@ class Row {
28250
28509
  registerInstance(this, hostRef);
28251
28510
  }
28252
28511
  render() {
28253
- return (hAsync(Host, { key: 'aea072a5005e3f1f309f0d1ae5be5ee19869b035', class: getIonMode$1(this) }, hAsync("slot", { key: '2a481c2126ac6ca65f0a1bbd07c2d3365409cb78' })));
28512
+ return (hAsync(Host, { key: 'a690022e2abdce6946d24264574e4aa0886a8ea5', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1a0e831dd1dbfe7877d3ad01d0a3045a5fb29e3' })));
28254
28513
  }
28255
28514
  static get style() { return IonRowStyle0; }
28256
28515
  static get cmpMeta() { return {
@@ -28644,8 +28903,8 @@ class Searchbar {
28644
28903
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
28645
28904
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
28646
28905
  const shouldShowCancelButton = this.shouldShowCancelButton();
28647
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '0ef595eb1628928d4c7fdb166b8e41768700fa6e', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: 'ea2c9b36d991acf5af7662059cb6b045f683ca94', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
28648
- return (hAsync(Host, { key: '17d57ece5852d03047e4d53ddad6c9d88a432a00', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28906
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '989f3e84c472ada6e66dd9b249d0d268bf17ce26', "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: '7d335d4fde33822dc79d26b748ba2e98db7494bb', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
28907
+ return (hAsync(Host, { key: 'd1a1972725e949fb102c91487aaa7b9d10c2d718', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28649
28908
  [mode]: true,
28650
28909
  'searchbar-animated': animated,
28651
28910
  'searchbar-disabled': this.disabled,
@@ -28655,14 +28914,14 @@ class Searchbar {
28655
28914
  'searchbar-has-focus': this.focused,
28656
28915
  'searchbar-should-show-clear': this.shouldShowClearButton(),
28657
28916
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
28658
- }) }, hAsync("div", { key: 'f67c2124e70c24eef0a271516e9c4bdaf7e98ceb', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '8c7f7ccc6809cca30ccc8c4e98e349d3f916321d', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: 'f06524d3163b3883bbde937862aa1e0e8f49f6e1', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '9f7ba2bec93412ecb674b197be13db1de308bb57', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
28917
+ }) }, hAsync("div", { key: 'add53640b2994cb6b2bf02792dafe51aba6b1684', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '160cc36459a4a652e7f41ccd14dcdc782278779e', "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: '8825fd13af0d2dea451ccc0e00ae7b5021dc01c4', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '8a7b56da278b9ca5c4f5a4ee9c01924fd5ae29d8', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
28659
28918
  /**
28660
28919
  * This prevents mobile browsers from
28661
28920
  * blurring the input when the clear
28662
28921
  * button is activated.
28663
28922
  */
28664
28923
  ev.preventDefault();
28665
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '19fc3dbc722acc47ff7eb3c94ad4de8aed38dff4', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
28924
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '24c55274516ab012d8c25f03525c6cdb9409e52f', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
28666
28925
  }
28667
28926
  get el() { return getElement(this); }
28668
28927
  static get watchers() { return {
@@ -29246,14 +29505,14 @@ class Segment {
29246
29505
  }
29247
29506
  render() {
29248
29507
  const mode = getIonMode$1(this);
29249
- return (hAsync(Host, { key: 'b1eb4a6e4f953f6c4882395585799503735bbc6b', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29508
+ return (hAsync(Host, { key: 'a64e39352050b516f7dc82ce95a4bcff8431d1d0', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29250
29509
  [mode]: true,
29251
29510
  'in-toolbar': hostContext('ion-toolbar', this.el),
29252
29511
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
29253
29512
  'segment-activated': this.activated,
29254
29513
  'segment-disabled': this.disabled,
29255
29514
  'segment-scrollable': this.scrollable,
29256
- }) }, hAsync("slot", { key: 'e7df6b017d154f30eb8021bc965f2e6c8e6480bf', onSlotchange: this.onSlottedItemsChange })));
29515
+ }) }, hAsync("slot", { key: 'bb3f3ec30e59e0461fa620d8961ab730cc802a4e', onSlotchange: this.onSlottedItemsChange })));
29257
29516
  }
29258
29517
  get el() { return getElement(this); }
29259
29518
  static get watchers() { return {
@@ -29324,35 +29583,7 @@ class SegmentButton {
29324
29583
  valueChanged() {
29325
29584
  this.updateState();
29326
29585
  }
29327
- waitForSegmentContent(ionSegment, contentId) {
29328
- return new Promise((resolve, reject) => {
29329
- let timeoutId = undefined;
29330
- let animationFrameId;
29331
- const check = () => {
29332
- if (!ionSegment) {
29333
- reject(new Error(`Segment not found when looking for Segment Content`));
29334
- return;
29335
- }
29336
- const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
29337
- const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
29338
- if (segmentContent && timeoutId) {
29339
- clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
29340
- cancelAnimationFrame(animationFrameId);
29341
- resolve(segmentContent);
29342
- }
29343
- else {
29344
- animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
29345
- }
29346
- };
29347
- check();
29348
- // Set a timeout to reject the promise
29349
- timeoutId = setTimeout(() => {
29350
- cancelAnimationFrame(animationFrameId);
29351
- reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
29352
- }, 1000);
29353
- });
29354
- }
29355
- async connectedCallback() {
29586
+ connectedCallback() {
29356
29587
  const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
29357
29588
  if (segmentEl) {
29358
29589
  this.updateState();
@@ -29362,14 +29593,11 @@ class SegmentButton {
29362
29593
  // Return if there is no contentId defined
29363
29594
  if (!this.contentId)
29364
29595
  return;
29365
- let segmentContent;
29366
- try {
29367
- // Attempt to find the Segment Content by its contentId
29368
- segmentContent = await this.waitForSegmentContent(segmentEl, this.contentId);
29369
- }
29370
- catch (error) {
29371
- // If no associated Segment Content exists, log an error and return
29372
- console.error('Segment Button: ', error.message);
29596
+ // Attempt to find the Segment Content by its contentId
29597
+ const segmentContent = document.getElementById(this.contentId);
29598
+ // If no associated Segment Content exists, log an error and return
29599
+ if (!segmentContent) {
29600
+ console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
29373
29601
  return;
29374
29602
  }
29375
29603
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
@@ -29415,7 +29643,7 @@ class SegmentButton {
29415
29643
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
29416
29644
  const mode = getIonMode$1(this);
29417
29645
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
29418
- return (hAsync(Host, { key: 'f9da656c8eccb80e4ef30e3fa977f2dbbefbc988', class: {
29646
+ return (hAsync(Host, { key: '79518fc8c0d1c72604397a281bdcfdcf4e070395', class: {
29419
29647
  [mode]: true,
29420
29648
  'in-toolbar': hostContext('ion-toolbar', this.el),
29421
29649
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -29431,7 +29659,7 @@ class SegmentButton {
29431
29659
  'ion-activatable': true,
29432
29660
  'ion-activatable-instant': true,
29433
29661
  'ion-focusable': true,
29434
- } }, hAsync("button", Object.assign({ key: '00dbcdbd81cd74abdd39803f6840a6e477cc7b0c', "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: '5200c082a9c4788010c4fc33fe75e2b2ad28364a', class: "button-inner" }, hAsync("slot", { key: 'cf3fce2b5d22436b84cd4367a5885df7d6a2715f' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'f1a2816465f4c2c06644be07315bff2da77e2342' })), hAsync("div", { key: 'aaf31c0ed39641fca698ee98d0773131f4eea6bd', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'fc556651361b7ac305aaedd25ea4afe3173abd20', part: "indicator-background", class: "segment-button-indicator-background" }))));
29662
+ } }, hAsync("button", Object.assign({ key: '07acbd21d0c8b89f40160b396115dfaf65235f71', "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: '03d28f57d195e36ed5512dfe5d62c7395c06dba7', class: "button-inner" }, hAsync("slot", { key: '9040099c71aafd9e9491b268f9f2c55773de1542' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'd3ab01738ea620b1e6ebbf5a06fb7028072ac3dc' })), hAsync("div", { key: 'b4e0dd212c824f6b77f9cd7fd51c581710922c3b', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'd693d0f0b628771375c5bf9d4ac6da19d8930303', part: "indicator-background", class: "segment-button-indicator-background" }))));
29435
29663
  }
29436
29664
  get el() { return getElement(this); }
29437
29665
  static get watchers() { return {
@@ -29467,7 +29695,7 @@ class SegmentContent {
29467
29695
  registerInstance(this, hostRef);
29468
29696
  }
29469
29697
  render() {
29470
- return (hAsync(Host, { key: '03684b2999ac64fe13e376fd7e7f279976e9d4f2' }, hAsync("slot", { key: '143031075bf33ca19e7cfd76fc8a67b83ccaf11c' })));
29698
+ return (hAsync(Host, { key: '64b3965b14c749e77e9ce13b59f349d971e245c8' }, hAsync("slot", { key: '2d0bed34f9bc93f92e713cb51e42220f3cecd8f5' })));
29471
29699
  }
29472
29700
  static get style() { return IonSegmentContentStyle0; }
29473
29701
  static get cmpMeta() { return {
@@ -29580,10 +29808,10 @@ class SegmentView {
29580
29808
  }
29581
29809
  render() {
29582
29810
  const { disabled, isManualScroll } = this;
29583
- return (hAsync(Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
29811
+ return (hAsync(Host, { key: 'fa528d2d9ae0f00fc3067defe2a047dce77c814a', class: {
29584
29812
  'segment-view-disabled': disabled,
29585
29813
  'segment-view-scroll-disabled': isManualScroll === false,
29586
- } }, hAsync("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
29814
+ } }, hAsync("slot", { key: '74dc8b4d073caeff1bab272d11b9ea3e1a215954' })));
29587
29815
  }
29588
29816
  get el() { return getElement(this); }
29589
29817
  static get style() { return {
@@ -29698,6 +29926,7 @@ class Select {
29698
29926
  this.expandedIcon = undefined;
29699
29927
  this.shape = undefined;
29700
29928
  this.value = undefined;
29929
+ this.required = false;
29701
29930
  }
29702
29931
  styleChanged() {
29703
29932
  this.emitStyle();
@@ -29753,8 +29982,15 @@ class Select {
29753
29982
  }
29754
29983
  this.isExpanded = true;
29755
29984
  const overlay = (this.overlay = await this.createOverlay(event));
29756
- // Add logic to scroll selected item into view before presenting
29757
- const scrollSelectedIntoView = () => {
29985
+ overlay.onDidDismiss().then(() => {
29986
+ this.overlay = undefined;
29987
+ this.isExpanded = false;
29988
+ this.ionDismiss.emit();
29989
+ this.setFocus();
29990
+ });
29991
+ await overlay.present();
29992
+ // focus selected option for popovers and modals
29993
+ if (this.interface === 'popover' || this.interface === 'modal') {
29758
29994
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29759
29995
  if (indexOfSelected > -1) {
29760
29996
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -29772,7 +30008,6 @@ class Select {
29772
30008
  */
29773
30009
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
29774
30010
  if (interactiveEl) {
29775
- selectedItem.scrollIntoView({ block: 'nearest' });
29776
30011
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29777
30012
  // and removing `ion-focused` style
29778
30013
  interactiveEl.setFocus();
@@ -29796,40 +30031,7 @@ class Select {
29796
30031
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
29797
30032
  }
29798
30033
  }
29799
- };
29800
- // For modals and popovers, we can scroll before they're visible
29801
- if (this.interface === 'modal') {
29802
- overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
29803
- }
29804
- else if (this.interface === 'popover') {
29805
- overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
29806
30034
  }
29807
- else {
29808
- /**
29809
- * For alerts and action sheets, we need to wait a frame after willPresent
29810
- * because these overlays don't have their content in the DOM immediately
29811
- * when willPresent fires. By waiting a frame, we ensure the content is
29812
- * rendered and can be properly scrolled into view.
29813
- */
29814
- const scrollAfterRender = () => {
29815
- requestAnimationFrame(() => {
29816
- scrollSelectedIntoView();
29817
- });
29818
- };
29819
- if (this.interface === 'alert') {
29820
- overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
29821
- }
29822
- else if (this.interface === 'action-sheet') {
29823
- overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
29824
- }
29825
- }
29826
- overlay.onDidDismiss().then(() => {
29827
- this.overlay = undefined;
29828
- this.isExpanded = false;
29829
- this.ionDismiss.emit();
29830
- this.setFocus();
29831
- });
29832
- await overlay.present();
29833
30035
  return overlay;
29834
30036
  }
29835
30037
  createOverlay(ev) {
@@ -30209,8 +30411,8 @@ class Select {
30209
30411
  return renderedLabel;
30210
30412
  }
30211
30413
  renderListbox() {
30212
- const { disabled, inputId, isExpanded } = this;
30213
- return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
30414
+ const { disabled, inputId, isExpanded, required } = this;
30415
+ return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
30214
30416
  }
30215
30417
  render() {
30216
30418
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30241,7 +30443,7 @@ class Select {
30241
30443
  * TODO(FW-5592): Remove hasStartEndSlots condition
30242
30444
  */
30243
30445
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30244
- return (hAsync(Host, { key: 'b2dca9ae25d88e4d9fdb55003041a66be5668fcf', onClick: this.onClick, class: createColorClasses$1(this.color, {
30446
+ return (hAsync(Host, { key: '457f1130a291ff1f6fdb8a112f6c32b53efdad7a', onClick: this.onClick, class: createColorClasses$1(this.color, {
30245
30447
  [mode]: true,
30246
30448
  'in-item': inItem,
30247
30449
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30257,7 +30459,7 @@ class Select {
30257
30459
  [`select-justify-${justify}`]: justifyEnabled,
30258
30460
  [`select-shape-${shape}`]: shape !== undefined,
30259
30461
  [`select-label-placement-${labelPlacement}`]: true,
30260
- }) }, hAsync("label", { key: 'c22fe9aee8cd448223497ef143e89529fcef8af6', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '601972df4579f4fa6a9c2c12865593e807decb72', class: "select-wrapper-inner" }, hAsync("slot", { key: '5f7b1261862f74b978b26f026533e3fd1cc666ba', name: "start" }), hAsync("div", { key: '39616da89f4b4b78432f6da85116a7de2ca589e7', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '1d7b3601b73af7c05b3627cfc8e5147ea379bb03', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'b0344f0ac15003e22fee66d3d7ed03a07da7e8b7', class: "select-highlight" }))));
30462
+ }) }, hAsync("label", { key: '4a66b0da8142d5e83f061308ccaece0737bc1d30', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '62c964f75bca42d8ec0d5026b701b0848c14f701', class: "select-wrapper-inner" }, hAsync("slot", { key: '1c59f789706d5308763465c6bbca218e14774c81', name: "start" }), hAsync("div", { key: '22dc110d2fe3215bc23867eb1453192d2aed547e', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '13e05653f277726ea4cd1c48318c182bd106e69b', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'eab497a5e69bb956884bd0522c1503f654651226', class: "select-highlight" }))));
30261
30463
  }
30262
30464
  get el() { return getElement(this); }
30263
30465
  static get watchers() { return {
@@ -30293,6 +30495,7 @@ class Select {
30293
30495
  "expandedIcon": [1, "expanded-icon"],
30294
30496
  "shape": [1],
30295
30497
  "value": [1032],
30498
+ "required": [4],
30296
30499
  "isExpanded": [32],
30297
30500
  "open": [64]
30298
30501
  },
@@ -30417,7 +30620,7 @@ class SelectModal {
30417
30620
  } }, option.text))));
30418
30621
  }
30419
30622
  render() {
30420
- return (hAsync(Host, { key: '4df42c447b4026d09d9231f09dc4bdae9a8cfe4a', class: getIonMode$1(this) }, hAsync("ion-header", { key: '211c4e869b858867f3d60637e570aeb01de41de7' }, hAsync("ion-toolbar", { key: 'dc4b151331aecbaaaafb460802ee9b689493601d' }, this.header !== undefined && hAsync("ion-title", { key: 'ba1347a59ae0a5c6770c239b5ec02a536a445bd1' }, this.header), hAsync("ion-buttons", { key: '43c98fd25d7e7f54b94b24e53535c6d5ba599892', slot: "end" }, hAsync("ion-button", { key: '51b2b3f3eed42637b2cfc213c95d0bcf10e4b89d', onClick: () => this.closeModal() }, "Close")))), hAsync("ion-content", { key: 'fe721b09f80555856211f7e40dbfc31a533acae1' }, hAsync("ion-list", { key: 'd0b932d137136958d896408fb2fa571023775b92' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
30623
+ return (hAsync(Host, { key: '885198a9f21884e3bfb9bf0af53e0ee3ae37b231', class: getIonMode$1(this) }, hAsync("ion-header", { key: 'd8b63726869747ac711e4fda78a50ce46f72970c' }, hAsync("ion-toolbar", { key: '9ab2a4c1480dd74eeae38d7b580a2e87fb71270e' }, this.header !== undefined && hAsync("ion-title", { key: '87a7034385ef57f55cefdd0371dbb66a64827290' }, this.header), hAsync("ion-buttons", { key: '0a35424ea13ca002abc9a43b6138730254f187d0', slot: "end" }, hAsync("ion-button", { key: '238bf40b47128d9aa995d14d9ff9ebcae4f79492', onClick: () => this.closeModal() }, "Close")))), hAsync("ion-content", { key: '4a256f3381f8cabbc7194337b8ae4aa1c3ab1066' }, hAsync("ion-list", { key: 'acd38fc52024632176467ed6a84106a454021544' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
30421
30624
  }
30422
30625
  get el() { return getElement(this); }
30423
30626
  static get style() { return {
@@ -30450,7 +30653,7 @@ class SelectOption {
30450
30653
  this.value = undefined;
30451
30654
  }
30452
30655
  render() {
30453
- return hAsync(Host, { key: '2e6fa159464f04f6d8720f960141f67918bc7534', role: "option", id: this.inputId, class: getIonMode$1(this) });
30656
+ return hAsync(Host, { key: '8c96c199ce3a3065de3fe446500f567236e0610a', role: "option", id: this.inputId, class: getIonMode$1(this) });
30454
30657
  }
30455
30658
  get el() { return getElement(this); }
30456
30659
  static get style() { return IonSelectOptionStyle0; }
@@ -30570,7 +30773,7 @@ class SelectPopover {
30570
30773
  render() {
30571
30774
  const { header, message, options, subHeader } = this;
30572
30775
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
30573
- return (hAsync(Host, { key: 'dd0990db4de4f175b176b27f35501dd1604ca400', class: getIonMode$1(this) }, hAsync("ion-list", { key: 'cea2bc3687b8b2490a2a9ff4a1e16cd34169558e' }, header !== undefined && hAsync("ion-list-header", { key: '194aebb53453c43f913daae45a1a3066a1708c4c' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'b706b07a3c63ad8104d2db413e210c735ec1bec9' }, hAsync("ion-label", { key: '6e52b5b4cf6b04ff3dd5671d64264233de4190d5', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: '6ef4440d17f5db8c96c63b9aa5073f4fe4b8ad62' }, subHeader), message !== undefined && hAsync("p", { key: 'c7b3b76c30ecd606c0e985a0258c13d3a75756e7' }, message)))), this.renderOptions(options))));
30776
+ return (hAsync(Host, { key: '542367ab8fb72bfebf7e65630b91017d68827fd6', class: getIonMode$1(this) }, hAsync("ion-list", { key: 'f2f0f37e1365cd7780b02de1a1698700d0df48a7' }, header !== undefined && hAsync("ion-list-header", { key: '4b8800a68e800f19277a44b7074ca24b70218daf' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '932b7903daf97d5a57d289b7ee49e868bb9b0cf5' }, hAsync("ion-label", { key: 'fc3f1b69aa2a0bc6125d35692dcad3a8a99fd160', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'eceab2f47afa95f04b138342b0bdbfa1f50919a8' }, subHeader), message !== undefined && hAsync("p", { key: '70f4e27ad1316318efd0c17efce31e5e45c8fa02' }, message)))), this.renderOptions(options))));
30574
30777
  }
30575
30778
  get el() { return getElement(this); }
30576
30779
  static get style() { return {
@@ -30618,11 +30821,11 @@ class SkeletonText {
30618
30821
  const animated = this.animated && config.getBoolean('animated', true);
30619
30822
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
30620
30823
  const mode = getIonMode$1(this);
30621
- return (hAsync(Host, { key: 'fdfabf9364caf507450239b62be24f08873bd650', class: {
30824
+ return (hAsync(Host, { key: 'c193f9a8e8efab5139544f047bdae4b6d421aa86', class: {
30622
30825
  [mode]: true,
30623
30826
  'skeleton-text-animated': animated,
30624
30827
  'in-media': inMedia,
30625
- } }, hAsync("span", { key: '3482c88dcc177547185ce87972afa064a542367d' }, "\u00A0")));
30828
+ } }, hAsync("span", { key: 'e15db679bd3c359b4df5123efd2f92e5b380fde3' }, "\u00A0")));
30626
30829
  }
30627
30830
  get el() { return getElement(this); }
30628
30831
  static get style() { return IonSkeletonTextStyle0; }
@@ -30675,7 +30878,7 @@ class Spinner {
30675
30878
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
30676
30879
  }
30677
30880
  }
30678
- return (hAsync(Host, { key: '9d30ee9f5aa0dd0e220da07e75d05b8b2435224d', class: createColorClasses$1(self.color, {
30881
+ return (hAsync(Host, { key: 'e0dfa8a3ee2a0469eb31323f506750bd77d65797', class: createColorClasses$1(self.color, {
30679
30882
  [mode]: true,
30680
30883
  [`spinner-${spinnerName}`]: true,
30681
30884
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -30775,12 +30978,12 @@ class SplitPane {
30775
30978
  }
30776
30979
  render() {
30777
30980
  const mode = getIonMode$1(this);
30778
- return (hAsync(Host, { key: '1ca0b0299d03605bb358112ca56cbafbe58f00f5', class: {
30981
+ return (hAsync(Host, { key: '76be70d7fbebc52646a5851f47accc1006615b85', class: {
30779
30982
  [mode]: true,
30780
30983
  // Used internally for styling
30781
30984
  [`split-pane-${mode}`]: true,
30782
30985
  'split-pane-visible': this.visible,
30783
- } }, hAsync("slot", { key: 'abe231361727ae7fc63edd592a4490caac1909fb' })));
30986
+ } }, hAsync("slot", { key: '9a859530f4fb18aff43255bc3940feb9aca625d7' })));
30784
30987
  }
30785
30988
  get el() { return getElement(this); }
30786
30989
  static get watchers() { return {
@@ -30849,10 +31052,10 @@ class Tab {
30849
31052
  }
30850
31053
  render() {
30851
31054
  const { tab, active, component } = this;
30852
- return (hAsync(Host, { key: 'cb75d0877979b3b8df8f7e1952bfa9677da1eaa5', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
31055
+ return (hAsync(Host, { key: '2107ece2f1ebdf748bac8adb78a9ad67e7fc9057', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30853
31056
  'ion-page': component === undefined,
30854
31057
  'tab-hidden': !active,
30855
- } }, hAsync("slot", { key: '37fbb7b7a6b03eb93b1dacd2dc1025b78eb2aa6b' })));
31058
+ } }, hAsync("slot", { key: 'b4a1bc1aa79f6b82b8f77b544bcb74e65229b541' })));
30856
31059
  }
30857
31060
  get el() { return getElement(this); }
30858
31061
  static get watchers() { return {
@@ -30930,11 +31133,11 @@ class TabBar {
30930
31133
  const { color, translucent, keyboardVisible } = this;
30931
31134
  const mode = getIonMode$1(this);
30932
31135
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
30933
- return (hAsync(Host, { key: 'a87fd2ea5df053705a37ea7ffec043e75c4a9907', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
31136
+ return (hAsync(Host, { key: '62303a7f9d8c98ffab51a5900c144c5117b9c543', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30934
31137
  [mode]: true,
30935
31138
  'tab-bar-translucent': translucent,
30936
31139
  'tab-bar-hidden': shouldHide,
30937
- }) }, hAsync("slot", { key: '81a6223299b6cab29d7ddced590e9152e2b3ded0' })));
31140
+ }) }, hAsync("slot", { key: '5771a9828f748c2bd6b5e26758b9723c6b3de5ff' })));
30938
31141
  }
30939
31142
  get el() { return getElement(this); }
30940
31143
  static get watchers() { return {
@@ -31032,7 +31235,7 @@ class TabButton {
31032
31235
  rel,
31033
31236
  target,
31034
31237
  };
31035
- return (hAsync(Host, { key: '5976c45943ea7ea8e7c1a85fc9996de421439f08', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
31238
+ return (hAsync(Host, { key: 'a86d441d8df350fe991f2f948fc6b6ad007728f7', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
31036
31239
  [mode]: true,
31037
31240
  'tab-selected': selected,
31038
31241
  'tab-disabled': disabled,
@@ -31044,7 +31247,7 @@ class TabButton {
31044
31247
  'ion-activatable': true,
31045
31248
  'ion-selectable': true,
31046
31249
  'ion-focusable': true,
31047
- } }, hAsync("a", Object.assign({ key: '1db09d861b67ff292018fb4b0dc7b85bd4677eb8' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '4381eafcb27e8c7bb0d86d4f115ceb0caf03b9b4', class: "button-inner" }, hAsync("slot", { key: '1981135f6fbb88376c1bd923c55c70fe8b5c5159' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '0509bc7155d055d1ed710600e9cf4df135881491', type: "unbounded" }))));
31250
+ } }, hAsync("a", Object.assign({ key: '8dfe1ccff2cf21601c5aea7f7f877c0fbe384e09' }, 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: '3f557cf6e96e22b9318b4aee19ede810eb7fb720', class: "button-inner" }, hAsync("slot", { key: '836dd090dbe3c2ea97dc263fca7d01dea6ea0eb6' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '488a924fd04602c1b23e03d1a4c84dfa0f2ca03d', type: "unbounded" }))));
31048
31251
  }
31049
31252
  get el() { return getElement(this); }
31050
31253
  static get style() { return {
@@ -31220,7 +31423,7 @@ class Tabs {
31220
31423
  return Array.from(this.el.querySelectorAll('ion-tab'));
31221
31424
  }
31222
31425
  render() {
31223
- return (hAsync(Host, { key: 'e01ccf6bfaccad094515be50e407399c733fc226', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '38d2d01dbfd8a08f01e6f0e27274b21d75424e37', name: "top" }), hAsync("div", { key: '7e894f0f423e2d43e1c68daff5f9f6c442fad237', class: "tabs-inner" }, hAsync("slot", { key: 'df16be529a0370a26d0adf850530b31607507c23' })), hAsync("slot", { key: '44642e1cb24c3281c43db75fd69a32fe0defe40a', name: "bottom" })));
31426
+ return (hAsync(Host, { key: 'd357c4607cfc89fb88404fe12ea7ef5b397fe6bf', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '18661896589a4ab3c74164f448b928abec9b4db0', name: "top" }), hAsync("div", { key: '3bf30ea2540a196e868a78a861824b4b5d933afd', class: "tabs-inner" }, hAsync("slot", { key: '7cfc154d4d6c1642188ab6508a6be72c8234585e' })), hAsync("slot", { key: '8057679c959195cbdfae156b8ae0cbfd978c5037', name: "bottom" })));
31224
31427
  }
31225
31428
  get el() { return getElement(this); }
31226
31429
  static get style() { return IonTabsStyle0; }
@@ -31262,9 +31465,9 @@ class Text {
31262
31465
  }
31263
31466
  render() {
31264
31467
  const mode = getIonMode$1(this);
31265
- return (hAsync(Host, { key: 'e134d70c04344b708a2ecf6253722781ad2ca826', class: createColorClasses$1(this.color, {
31468
+ return (hAsync(Host, { key: '0c2546ea3f24b0a6bfd606199441d0a4edfa4ca1', class: createColorClasses$1(this.color, {
31266
31469
  [mode]: true,
31267
- }) }, hAsync("slot", { key: 'da79c760f7ebbcd007ce110439f05a62cb22eac8' })));
31470
+ }) }, hAsync("slot", { key: 'b7623ccb06f9461090a1f33e9f85886c7a4d5eff' })));
31268
31471
  }
31269
31472
  static get style() { return IonTextStyle0; }
31270
31473
  static get cmpMeta() { return {
@@ -31646,7 +31849,7 @@ class Textarea {
31646
31849
  * TODO(FW-5592): Remove hasStartEndSlots condition
31647
31850
  */
31648
31851
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
31649
- return (hAsync(Host, { key: 'd6e25c83d8eab8cb1a5b6ab411c9a13847f69f8d', class: createColorClasses$1(this.color, {
31852
+ return (hAsync(Host, { key: 'c0dabc66193c41188c817799e45b36abbf097ba1', class: createColorClasses$1(this.color, {
31650
31853
  [mode]: true,
31651
31854
  'has-value': hasValue,
31652
31855
  'has-focus': hasFocus,
@@ -31655,7 +31858,7 @@ class Textarea {
31655
31858
  [`textarea-shape-${shape}`]: shape !== undefined,
31656
31859
  [`textarea-label-placement-${labelPlacement}`]: true,
31657
31860
  'textarea-disabled': disabled,
31658
- }) }, hAsync("label", { key: 'f840a5be2b776a4b9c18c6da24e0b7d3d4838fee', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '979461fc0d4684926d79d75759c63c6867b7622b', class: "textarea-wrapper-inner" }, hAsync("div", { key: '88f0d5d4bac29597cc2588e5b2ed72fb4fbe153d', class: "start-slot-wrapper" }, hAsync("slot", { key: '21dcca0e59c1260e3d0d1e126c1c590de15c4bad', name: "start" })), hAsync("div", { key: '3c48a4bb3d763a389d3429123e7c110064b9b8d4', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '1550599ad15b3f215c104c014e90711f073ace8b', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: '4f01ab4d2994a6de6f49eb9ed2e310d00daf21b2', class: "end-slot-wrapper" }, hAsync("slot", { key: '501e288b6807e039972bb4f0b63906114255518a', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'd3008eed34494aa9f8e98a28eac3b465dc4c2bd0', class: "textarea-highlight" })), this.renderBottomContent()));
31861
+ }) }, hAsync("label", { key: 'dce1ce6794b914975d93f16f4e1a5721a5f3fc73', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '361ce31a9a22d8d87fb2bbd134fda3d6c66ba0fe', class: "textarea-wrapper-inner" }, hAsync("div", { key: 'e7a7e439d0e723c029951f9ee67adba1694b33d2', class: "start-slot-wrapper" }, hAsync("slot", { key: 'efe797a88b0c2d6067217f7b32fea7526beed90f', name: "start" })), hAsync("div", { key: '21375f64876bc68e25d2de13299a9f3acde2c370', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '3771fc6c31a61f7d9ba41f69fa12987aa2ec0c61', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: 'd81dfd5d6947c3b4ee1bff367080419b9e3ed81c', class: "end-slot-wrapper" }, hAsync("slot", { key: '2b6ab3f6bb66652e6b31ad11bc849bd386014721', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'd37ad4cc35eb7fef873ab41ee164165d18703919', class: "textarea-highlight" })), this.renderBottomContent()));
31659
31862
  }
31660
31863
  get el() { return getElement(this); }
31661
31864
  static get watchers() { return {
@@ -31717,7 +31920,7 @@ class Thumbnail {
31717
31920
  registerInstance(this, hostRef);
31718
31921
  }
31719
31922
  render() {
31720
- return (hAsync(Host, { key: 'cfa9aeb1d4fd624a9732c5230d29dd887e4b7771', class: getIonMode$1(this) }, hAsync("slot", { key: '29bc6e64063cba44e2643228df54394883933918' })));
31923
+ return (hAsync(Host, { key: '7f5fd6c056da2d82feb2c3c33f3e6dec898787f5', class: getIonMode$1(this) }, hAsync("slot", { key: 'd15fd2b6cdc03777edc1930be95ad838e1b376c8' })));
31721
31924
  }
31722
31925
  static get style() { return IonThumbnailStyle0; }
31723
31926
  static get cmpMeta() { return {
@@ -32553,9 +32756,9 @@ class Toast {
32553
32756
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
32554
32757
  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);
32555
32758
  }
32556
- return (hAsync(Host, Object.assign({ key: 'c05655ff06af8d0e48c2a85396b07ad942fa81b4', tabindex: "-1" }, this.htmlAttributes, { style: {
32759
+ return (hAsync(Host, Object.assign({ key: '34036afc0701173d51c9c11ea4a2e1d65685ba41', tabindex: "-1" }, this.htmlAttributes, { style: {
32557
32760
  zIndex: `${60000 + this.overlayIndex}`,
32558
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '9393ead4de1bf28529661d6f64049d34e18d725c', class: wrapperClass }, hAsync("div", { key: '3e9dd73c17c337849c3f26e8d0f395b3e5ee20a7', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '5d15b18364301ad55e44e9f601014ac33181590b', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'f6dd164502637a882c5caf18445d8509b85ad6f9', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
32761
+ }, 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: 'd927e43957f47888ce4e64f1e99c935d55757af7', class: wrapperClass }, hAsync("div", { key: 'ca43bc42478181acdf8cdea6601a85fa95d12216', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: 'fdd6fb8f6e947ed002bd2e63fdc8ec7e764f4a7d', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '37c16c81ee3e4304379dfbcabdffe73db73e4653', 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')))));
32559
32762
  }
32560
32763
  get el() { return getElement(this); }
32561
32764
  static get watchers() { return {
@@ -32689,6 +32892,7 @@ class Toggle {
32689
32892
  this.labelPlacement = 'start';
32690
32893
  this.justify = undefined;
32691
32894
  this.alignment = undefined;
32895
+ this.required = false;
32692
32896
  }
32693
32897
  disabledChanged() {
32694
32898
  if (this.gesture) {
@@ -32770,12 +32974,12 @@ class Toggle {
32770
32974
  return this.el.textContent !== '';
32771
32975
  }
32772
32976
  render() {
32773
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
32977
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32774
32978
  const mode = getIonMode$1(this);
32775
32979
  const value = this.getValue();
32776
32980
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32777
32981
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32778
- return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
32982
+ return (hAsync(Host, { key: '381632cf12ef5d27d729e0d59efcb14efad12a51', onClick: this.onClick, class: createColorClasses$1(color, {
32779
32983
  [mode]: true,
32780
32984
  'in-item': hostContext('ion-item', el),
32781
32985
  'toggle-activated': activated,
@@ -32785,10 +32989,10 @@ class Toggle {
32785
32989
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32786
32990
  [`toggle-label-placement-${labelPlacement}`]: true,
32787
32991
  [`toggle-${rtl}`]: true,
32788
- }) }, hAsync("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
32992
+ }) }, hAsync("label", { key: '73f2bd13ccfc4a1efc68781155f603e665be3d7e', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '0c4b7663ddbf3b1ce94b5fd4c7c21e51db907d71', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), hAsync("div", { key: 'ef1e73bee832bf9ab58d1e47eb037c50b609c0ee', class: {
32789
32993
  'label-text-wrapper': true,
32790
32994
  'label-text-wrapper-hidden': !this.hasLabel,
32791
- }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
32995
+ }, part: "label" }, hAsync("slot", { key: '67b7e20dc96503cb76dd5e31c5579752de465dcc' })), hAsync("div", { key: '17f89960bcc3302ef8e0c0d4e10513241744e232', class: "native-wrapper" }, this.renderToggleControl()))));
32792
32996
  }
32793
32997
  get el() { return getElement(this); }
32794
32998
  static get watchers() { return {
@@ -32811,6 +33015,7 @@ class Toggle {
32811
33015
  "labelPlacement": [1, "label-placement"],
32812
33016
  "justify": [1],
32813
33017
  "alignment": [1],
33018
+ "required": [4],
32814
33019
  "activated": [32]
32815
33020
  },
32816
33021
  "$listeners$": undefined,
@@ -32842,6 +33047,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
32842
33047
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
32843
33048
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
32844
33049
  * @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
33050
+ *
33051
+ * @part background - The background of the toolbar, covering the entire area behind the toolbar content.
33052
+ * @part container - The container that wraps all toolbar content, including the default slot and named slot content.
33053
+ * @part content - The container for the default slot, wrapping content provided without a named slot.
32845
33054
  */
32846
33055
  class Toolbar {
32847
33056
  constructor(hostRef) {
@@ -32892,10 +33101,10 @@ class Toolbar {
32892
33101
  this.childrenStyles.forEach((value) => {
32893
33102
  Object.assign(childStyles, value);
32894
33103
  });
32895
- return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33104
+ return (hAsync(Host, { key: '402afe7ce0c97883cedd0e48a5a0492a9bfe76ae', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32896
33105
  [mode]: true,
32897
33106
  'in-toolbar': hostContext('ion-toolbar', this.el),
32898
- })) }, hAsync("div", { key: 'c0b4415d3b2472de643a9be7cb3b13b3b628621b', class: "toolbar-background" }), hAsync("div", { key: '0ccb8a2dbeaa28d8f9bed87629c0c097446690c2', class: "toolbar-container" }, hAsync("slot", { key: '3e726dac359e923df21d80301651f16063a3de20', name: "start" }), hAsync("slot", { key: 'cd799330b56a7f8833bc61bb2807aafb21846f71', name: "secondary" }), hAsync("div", { key: '395282e6ac8c53576922dcdb5f08c25d34638c86', class: "toolbar-content" }, hAsync("slot", { key: 'a437c60e4ba5aae65e55169ae82a6f379868ec1d' })), hAsync("slot", { key: '711af9b9d321a7b31ede924c9bdcad767aa9a1ca', name: "primary" }), hAsync("slot", { key: 'ecc02edeaf80a837890bcb08d5096df1e22a0b9a', name: "end" }))));
33107
+ })) }, hAsync("div", { key: '2465a6dc8d507ec650538378d1be2abd399c58ad', class: "toolbar-background", part: "background" }), hAsync("div", { key: '6075096afd12303b961e4fe9ad345ef2887573af', class: "toolbar-container", part: "container" }, hAsync("slot", { key: '8b7eec1148cfeb339d87cdf9273f2104703e7601', name: "start" }), hAsync("slot", { key: 'b102d3926cade24faf78b7af78ad5e192c4c0308', name: "secondary" }), hAsync("div", { key: 'c6ab2e978328324c6f9e7892024cbcd8b8987067', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '86f8952c4355a9df5b4bbb95e9d0cafefd272d5b' })), hAsync("slot", { key: '501e43431da6b9dd35b47b79222f948d445f7a78', name: "primary" }), hAsync("slot", { key: '84bf1a15a5e52e8e94df9f479c4ce18004f5ab57', name: "end" }))));
32899
33108
  }
32900
33109
  get el() { return getElement(this); }
32901
33110
  static get style() { return {
@@ -32945,11 +33154,11 @@ class ToolbarTitle {
32945
33154
  render() {
32946
33155
  const mode = getIonMode$1(this);
32947
33156
  const size = this.getSize();
32948
- return (hAsync(Host, { key: '7293d2ecd6262feb0d8d769effbb208230baed89', class: createColorClasses$1(this.color, {
33157
+ return (hAsync(Host, { key: '3f7b19c99961dbb86c0a925218332528b22e6880', class: createColorClasses$1(this.color, {
32949
33158
  [mode]: true,
32950
33159
  [`title-${size}`]: true,
32951
33160
  'title-rtl': document.dir === 'rtl',
32952
- }) }, hAsync("div", { key: '086ec3a361ebdf6506846a8704b457cda3a6f897', class: "toolbar-title" }, hAsync("slot", { key: '59add7eb92b82d6832a8f0894f897c51fdf4f214' }))));
33161
+ }) }, hAsync("div", { key: '12054fbdd60e40a15875e442c20143766fc34fc3', class: "toolbar-title" }, hAsync("slot", { key: '9f14fb14a67d4bd1e4536a4d64a637fbe5a151c7' }))));
32953
33162
  }
32954
33163
  get el() { return getElement(this); }
32955
33164
  static get watchers() { return {