@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.js CHANGED
@@ -2710,18 +2710,8 @@ const shallowEqualStringMap = (map1, map2) => {
2710
2710
  }
2711
2711
  return true;
2712
2712
  };
2713
- const getNextSiblingOfType = (element) => {
2714
- let sibling = element.nextSibling;
2715
- while (sibling) {
2716
- if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
2717
- return sibling;
2718
- }
2719
- sibling = sibling.nextSibling;
2720
- }
2721
- return null;
2722
- };
2723
2713
 
2724
- /* Ionicons v7.4.0, ES Modules */
2714
+ /* Ionicons v7.2.2, ES Modules */
2725
2715
  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>";
2726
2716
  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>";
2727
2717
  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>";
@@ -2730,7 +2720,7 @@ const caretUpSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000
2730
2720
  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>";
2731
2721
  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>";
2732
2722
  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>";
2733
- 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>";
2723
+ 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>";
2734
2724
  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>";
2735
2725
  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>";
2736
2726
  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>";
@@ -3227,9 +3217,12 @@ let accordionIds = 0;
3227
3217
  * @param message - The string message to be logged to the console.
3228
3218
  */
3229
3219
  const printIonWarning = (message, ...params) => {
3230
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3220
+ const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3221
+ if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3222
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3223
+ }
3231
3224
  };
3232
- /*
3225
+ /**
3233
3226
  * Logs an error to the console with an Ionic prefix
3234
3227
  * to indicate the library that is warning the developer.
3235
3228
  *
@@ -3237,7 +3230,10 @@ const printIonWarning = (message, ...params) => {
3237
3230
  * @param params - Additional arguments to supply to the console.error.
3238
3231
  */
3239
3232
  const printIonError = (message, ...params) => {
3240
- return console.error(`[Ionic Error]: ${message}`, ...params);
3233
+ const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3234
+ if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3235
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3236
+ }
3241
3237
  };
3242
3238
  /**
3243
3239
  * Prints an error informing developers that an implementation requires an element to be used
@@ -8501,6 +8497,7 @@ class Checkbox {
8501
8497
  this.labelPlacement = 'start';
8502
8498
  this.justify = undefined;
8503
8499
  this.alignment = undefined;
8500
+ this.required = false;
8504
8501
  }
8505
8502
  componentWillLoad() {
8506
8503
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8512,11 +8509,11 @@ class Checkbox {
8512
8509
  }
8513
8510
  }
8514
8511
  render() {
8515
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8512
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8516
8513
  const mode = getIonMode$1(this);
8517
8514
  const path = getSVGPath(mode, indeterminate);
8518
8515
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8519
- return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8516
+ return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8520
8517
  [mode]: true,
8521
8518
  'in-item': hostContext('ion-item', el),
8522
8519
  'checkbox-checked': checked,
@@ -8526,10 +8523,10 @@ class Checkbox {
8526
8523
  [`checkbox-justify-${justify}`]: justify !== undefined,
8527
8524
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8528
8525
  [`checkbox-label-placement-${labelPlacement}`]: true,
8529
- }), 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: {
8526
+ }), 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: {
8530
8527
  'label-text-wrapper': true,
8531
8528
  'label-text-wrapper-hidden': el.textContent === '',
8532
- }, 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)))));
8529
+ }, 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)))));
8533
8530
  }
8534
8531
  getSVGPath(mode, indeterminate) {
8535
8532
  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" }));
@@ -8556,6 +8553,7 @@ class Checkbox {
8556
8553
  "labelPlacement": [1, "label-placement"],
8557
8554
  "justify": [1],
8558
8555
  "alignment": [1],
8556
+ "required": [4],
8559
8557
  "setFocus": [64]
8560
8558
  },
8561
8559
  "$listeners$": undefined,
@@ -15903,11 +15901,11 @@ class ItemDivider {
15903
15901
  }
15904
15902
  render() {
15905
15903
  const mode = getIonMode$1(this);
15906
- return (hAsync(Host, { key: '6cff318230a9b2a9db529df154285d3dd9822efe', class: createColorClasses$1(this.color, {
15904
+ return (hAsync(Host, { key: '7150b1a3a881c3c312db40821acb9830c2885ccf', class: createColorClasses$1(this.color, {
15907
15905
  [mode]: true,
15908
15906
  'item-divider-sticky': this.sticky,
15909
15907
  item: true,
15910
- }) }, 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" }))));
15908
+ }) }, 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" }))));
15911
15909
  }
15912
15910
  get el() { return getElement(this); }
15913
15911
  static get style() { return {
@@ -15939,7 +15937,7 @@ class ItemGroup {
15939
15937
  }
15940
15938
  render() {
15941
15939
  const mode = getIonMode$1(this);
15942
- return (hAsync(Host, { key: 'f9ffe0290d3fa546494fe55f952d8554f2a8abf8', role: "group", class: {
15940
+ return (hAsync(Host, { key: 'de2a969ed0dda880bc560a325848b28d0287fdb9', role: "group", class: {
15943
15941
  [mode]: true,
15944
15942
  // Used internally for styling
15945
15943
  [`item-group-${mode}`]: true,
@@ -16007,12 +16005,12 @@ class ItemOption {
16007
16005
  href: this.href,
16008
16006
  target: this.target,
16009
16007
  };
16010
- return (hAsync(Host, { key: '89310624997821858c1abde60c0ffb142ca466e0', onClick: this.onClick, class: createColorClasses$1(this.color, {
16008
+ return (hAsync(Host, { key: '1b7708dd178dc2c9280652ca3da38c84ba7b767f', onClick: this.onClick, class: createColorClasses$1(this.color, {
16011
16009
  [mode]: true,
16012
16010
  'item-option-disabled': disabled,
16013
16011
  'item-option-expandable': expandable,
16014
16012
  'ion-activatable': true,
16015
- }) }, 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' }))));
16013
+ }) }, 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' }))));
16016
16014
  }
16017
16015
  get el() { return getElement(this); }
16018
16016
  static get style() { return {
@@ -16059,7 +16057,7 @@ class ItemOptions {
16059
16057
  render() {
16060
16058
  const mode = getIonMode$1(this);
16061
16059
  const isEnd = isEndSide(this.side);
16062
- return (hAsync(Host, { key: '6d91399d2aaaa81d514d0bbc8dffe53eeec25d36', class: {
16060
+ return (hAsync(Host, { key: '7df4b71547524bf359c48e1b40ccbc44e850f632', class: {
16063
16061
  [mode]: true,
16064
16062
  // Used internally for styling
16065
16063
  [`item-options-${mode}`]: true,
@@ -16521,7 +16519,7 @@ class ItemSliding {
16521
16519
  }
16522
16520
  render() {
16523
16521
  const mode = getIonMode$1(this);
16524
- return (hAsync(Host, { key: '47a3edd2ef2080ed9cfc2784277dea09785c7dc4', class: {
16522
+ return (hAsync(Host, { key: '22f83febcbc1bc27e4ddbd7fcbe590de60a10e89', class: {
16525
16523
  [mode]: true,
16526
16524
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
16527
16525
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -16630,13 +16628,13 @@ class Label {
16630
16628
  render() {
16631
16629
  const position = this.position;
16632
16630
  const mode = getIonMode$1(this);
16633
- return (hAsync(Host, { key: '6353a70565ef6fbbbf4042b000e536c61bcf99a9', class: createColorClasses$1(this.color, {
16631
+ return (hAsync(Host, { key: '4da84c95351a74b547f8224ecfa66924d21398c5', class: createColorClasses$1(this.color, {
16634
16632
  [mode]: true,
16635
16633
  'in-item-color': hostContext('ion-item.ion-color', this.el),
16636
16634
  [`label-${position}`]: position !== undefined,
16637
16635
  [`label-no-animate`]: this.noAnimate,
16638
16636
  'label-rtl': document.dir === 'rtl',
16639
- }) }, hAsync("slot", { key: '6ef9c2758c0168442aa84941af0a6cec1ef1ec21' })));
16637
+ }) }, hAsync("slot", { key: 'ea158ebb620275e5492965234d0ab925d391f919' })));
16640
16638
  }
16641
16639
  get el() { return getElement(this); }
16642
16640
  static get watchers() { return {
@@ -16738,10 +16736,10 @@ class ListHeader {
16738
16736
  render() {
16739
16737
  const { lines } = this;
16740
16738
  const mode = getIonMode$1(this);
16741
- return (hAsync(Host, { key: 'fb78bd8601cbd7b90ec84a96e0c8325be1132b1e', class: createColorClasses$1(this.color, {
16739
+ return (hAsync(Host, { key: '95ce2135e2b1ad4d7d6020b0fb9bc6e02b3c0851', class: createColorClasses$1(this.color, {
16742
16740
  [mode]: true,
16743
16741
  [`list-header-lines-${lines}`]: lines !== undefined,
16744
- }) }, hAsync("div", { key: '2580ad49f3a54973e15f14d645a1e55a6fa066ac', class: "list-header-inner" }, hAsync("slot", { key: '677b2e2ec8eeb3ae6ad329e86c76451cf3ae6c2f' }))));
16742
+ }) }, hAsync("div", { key: '3065b0a094bc31a90518898a5126a813c8a33816', class: "list-header-inner" }, hAsync("slot", { key: 'fe15c87d7867f3e5d8185645c49c0228496697b8' }))));
16745
16743
  }
16746
16744
  static get style() { return {
16747
16745
  ios: IonListHeaderIosStyle0,
@@ -17010,9 +17008,9 @@ class Loading {
17010
17008
  * Otherwise, don't set aria-labelledby.
17011
17009
  */
17012
17010
  const ariaLabelledBy = message !== undefined ? msgId : null;
17013
- return (hAsync(Host, Object.assign({ key: 'd97f536b7f443ea19a2bbf2dcbc7f546b8e0a092', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
17011
+ return (hAsync(Host, Object.assign({ key: 'd6066c8b56b1fe4b597a243a7dab191ef0d21286', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
17014
17012
  zIndex: `${40000 + this.overlayIndex}`,
17015
- }, 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" })));
17013
+ }, 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" })));
17016
17014
  }
17017
17015
  get el() { return getElement(this); }
17018
17016
  static get watchers() { return {
@@ -18020,14 +18018,14 @@ class Menu {
18020
18018
  * the ionBackButton listener in the menu controller
18021
18019
  * will handle closing the menu when Escape is pressed.
18022
18020
  */
18023
- return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18021
+ return (hAsync(Host, { key: '342db8551d26604128b29b21d2d8c37593972ed9', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
18024
18022
  [mode]: true,
18025
18023
  [`menu-type-${type}`]: true,
18026
18024
  'menu-enabled': !disabled,
18027
18025
  [`menu-side-${side}`]: true,
18028
18026
  'menu-pane-visible': isPaneVisible,
18029
18027
  'split-pane-side': hostContext('ion-split-pane', el),
18030
- } }, 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" })));
18028
+ } }, 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" })));
18031
18029
  }
18032
18030
  get el() { return getElement(this); }
18033
18031
  static get watchers() { return {
@@ -18130,7 +18128,7 @@ class MenuButton {
18130
18128
  type: this.type,
18131
18129
  };
18132
18130
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
18133
- return (hAsync(Host, { key: '7ec29715ce7926b7c2b08f3d9cac8aaa16b3dc28', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18131
+ return (hAsync(Host, { key: '3cde3704f28eb275f4a5ff2985bbb68c1024e79c', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
18134
18132
  [mode]: true,
18135
18133
  button: true, // ion-buttons target .button
18136
18134
  'menu-button-hidden': hidden,
@@ -18139,7 +18137,7 @@ class MenuButton {
18139
18137
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
18140
18138
  'ion-activatable': true,
18141
18139
  'ion-focusable': true,
18142
- }) }, 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" }))));
18140
+ }) }, 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" }))));
18143
18141
  }
18144
18142
  get el() { return getElement(this); }
18145
18143
  static get style() { return {
@@ -18188,10 +18186,10 @@ class MenuToggle {
18188
18186
  render() {
18189
18187
  const mode = getIonMode$1(this);
18190
18188
  const hidden = this.autoHide && !this.visible;
18191
- return (hAsync(Host, { key: '7c27ea5b0795676bf5cb33e1f83aa142c197f64e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18189
+ return (hAsync(Host, { key: '88e88fa13ac7f10ba3acfe378bd11cda0c7e2749', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
18192
18190
  [mode]: true,
18193
18191
  'menu-toggle-hidden': hidden,
18194
- } }, hAsync("slot", { key: '69f187becedc0fe34603d41d279f043cf0fdf776' })));
18192
+ } }, hAsync("slot", { key: '0a14c7b63eda64702d2fd1b4bc7db4809892842d' })));
18195
18193
  }
18196
18194
  static get style() { return IonMenuToggleStyle0; }
18197
18195
  static get cmpMeta() { return {
@@ -19031,7 +19029,7 @@ const computeDuration = (remaining, velocity) => {
19031
19029
  };
19032
19030
 
19033
19031
  const createSheetEnterAnimation = (opts) => {
19034
- const { currentBreakpoint, backdropBreakpoint } = opts;
19032
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19035
19033
  /**
19036
19034
  * If the backdropBreakpoint is undefined, then the backdrop
19037
19035
  * should always fade in. If the backdropBreakpoint came before the
@@ -19051,7 +19049,16 @@ const createSheetEnterAnimation = (opts) => {
19051
19049
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19052
19050
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19053
19051
  ]);
19054
- return { wrapperAnimation, backdropAnimation };
19052
+ /**
19053
+ * This allows the content to be scrollable at any breakpoint.
19054
+ */
19055
+ const contentAnimation = !expandToScroll
19056
+ ? createAnimation('contentAnimation').keyframes([
19057
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
19058
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
19059
+ ])
19060
+ : undefined;
19061
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
19055
19062
  };
19056
19063
  const createSheetLeaveAnimation = (opts) => {
19057
19064
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19086,22 +19093,68 @@ const createEnterAnimation$1 = () => {
19086
19093
  })
19087
19094
  .afterClearStyles(['pointer-events']);
19088
19095
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19089
- return { backdropAnimation, wrapperAnimation };
19096
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19090
19097
  };
19091
19098
  /**
19092
19099
  * iOS Modal Enter Animation for the Card presentation style
19093
19100
  */
19094
19101
  const iosEnterAnimation$3 = (baseEl, opts) => {
19095
- const { presentingEl, currentBreakpoint } = opts;
19102
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19096
19103
  const root = getElementRoot(baseEl);
19097
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19104
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19098
19105
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19099
19106
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
19107
+ // The content animation is only added if scrolling is enabled for
19108
+ // all the breakpoints.
19109
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19100
19110
  const baseAnimation = createAnimation('entering-base')
19101
19111
  .addElement(baseEl)
19102
19112
  .easing('cubic-bezier(0.32,0.72,0,1)')
19103
19113
  .duration(500)
19104
- .addAnimation(wrapperAnimation);
19114
+ .addAnimation([wrapperAnimation])
19115
+ .beforeAddWrite(() => {
19116
+ if (expandToScroll) {
19117
+ // Scroll can only be done when the modal is fully expanded.
19118
+ return;
19119
+ }
19120
+ /**
19121
+ * There are some browsers that causes flickering when
19122
+ * dragging the content when scroll is enabled at every
19123
+ * breakpoint. This is due to the wrapper element being
19124
+ * transformed off the screen and having a snap animation.
19125
+ *
19126
+ * A workaround is to clone the footer element and append
19127
+ * it outside of the wrapper element. This way, the footer
19128
+ * is still visible and the drag can be done without
19129
+ * flickering. The original footer is hidden until the modal
19130
+ * is dismissed. This maintains the animation of the footer
19131
+ * when the modal is dismissed.
19132
+ *
19133
+ * The workaround needs to be done before the animation starts
19134
+ * so there are no flickering issues.
19135
+ */
19136
+ const ionFooter = baseEl.querySelector('ion-footer');
19137
+ /**
19138
+ * This check is needed to prevent more than one footer
19139
+ * from being appended to the shadow root.
19140
+ * Otherwise, iOS and MD enter animations would append
19141
+ * the footer twice.
19142
+ */
19143
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19144
+ if (ionFooter && !ionFooterAlreadyAppended) {
19145
+ const footerHeight = ionFooter.clientHeight;
19146
+ const clonedFooter = ionFooter.cloneNode(true);
19147
+ baseEl.shadowRoot.appendChild(clonedFooter);
19148
+ ionFooter.style.setProperty('display', 'none');
19149
+ ionFooter.setAttribute('aria-hidden', 'true');
19150
+ // Padding is added to prevent some content from being hidden.
19151
+ const page = baseEl.querySelector('.ion-page');
19152
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19153
+ }
19154
+ });
19155
+ if (contentAnimation) {
19156
+ baseAnimation.addAnimation(contentAnimation);
19157
+ }
19105
19158
  if (presentingEl) {
19106
19159
  const isMobile = window.innerWidth < 768;
19107
19160
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19179,7 +19232,7 @@ const createLeaveAnimation$1 = () => {
19179
19232
  * iOS Modal Leave Animation
19180
19233
  */
19181
19234
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19182
- const { presentingEl, currentBreakpoint } = opts;
19235
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19183
19236
  const root = getElementRoot(baseEl);
19184
19237
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19185
19238
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19188,7 +19241,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19188
19241
  .addElement(baseEl)
19189
19242
  .easing('cubic-bezier(0.32,0.72,0,1)')
19190
19243
  .duration(duration)
19191
- .addAnimation(wrapperAnimation);
19244
+ .addAnimation(wrapperAnimation)
19245
+ .beforeAddWrite(() => {
19246
+ if (expandToScroll) {
19247
+ // Scroll can only be done when the modal is fully expanded.
19248
+ return;
19249
+ }
19250
+ /**
19251
+ * If expandToScroll is disabled, we need to swap
19252
+ * the visibility to the original, so the footer
19253
+ * dismisses with the modal and doesn't stay
19254
+ * until the modal is removed from the DOM.
19255
+ */
19256
+ const ionFooter = baseEl.querySelector('ion-footer');
19257
+ if (ionFooter) {
19258
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19259
+ ionFooter.style.removeProperty('display');
19260
+ ionFooter.removeAttribute('aria-hidden');
19261
+ clonedFooter.style.setProperty('display', 'none');
19262
+ clonedFooter.setAttribute('aria-hidden', 'true');
19263
+ const page = baseEl.querySelector('.ion-page');
19264
+ page.style.removeProperty('padding-bottom');
19265
+ }
19266
+ });
19192
19267
  if (presentingEl) {
19193
19268
  const isMobile = window.innerWidth < 768;
19194
19269
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19266,22 +19341,69 @@ const createEnterAnimation = () => {
19266
19341
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19267
19342
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19268
19343
  ]);
19269
- return { backdropAnimation, wrapperAnimation };
19344
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19270
19345
  };
19271
19346
  /**
19272
19347
  * Md Modal Enter Animation
19273
19348
  */
19274
19349
  const mdEnterAnimation$2 = (baseEl, opts) => {
19275
- const { currentBreakpoint } = opts;
19350
+ const { currentBreakpoint, expandToScroll } = opts;
19276
19351
  const root = getElementRoot(baseEl);
19277
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19352
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19278
19353
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19279
19354
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19280
- return createAnimation()
19355
+ // The content animation is only added if scrolling is enabled for
19356
+ // all the breakpoints.
19357
+ expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19358
+ const baseAnimation = createAnimation()
19281
19359
  .addElement(baseEl)
19282
19360
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19283
19361
  .duration(280)
19284
- .addAnimation([backdropAnimation, wrapperAnimation]);
19362
+ .addAnimation([backdropAnimation, wrapperAnimation])
19363
+ .beforeAddWrite(() => {
19364
+ if (expandToScroll) {
19365
+ // Scroll can only be done when the modal is fully expanded.
19366
+ return;
19367
+ }
19368
+ /**
19369
+ * There are some browsers that causes flickering when
19370
+ * dragging the content when scroll is enabled at every
19371
+ * breakpoint. This is due to the wrapper element being
19372
+ * transformed off the screen and having a snap animation.
19373
+ *
19374
+ * A workaround is to clone the footer element and append
19375
+ * it outside of the wrapper element. This way, the footer
19376
+ * is still visible and the drag can be done without
19377
+ * flickering. The original footer is hidden until the modal
19378
+ * is dismissed. This maintains the animation of the footer
19379
+ * when the modal is dismissed.
19380
+ *
19381
+ * The workaround needs to be done before the animation starts
19382
+ * so there are no flickering issues.
19383
+ */
19384
+ const ionFooter = baseEl.querySelector('ion-footer');
19385
+ /**
19386
+ * This check is needed to prevent more than one footer
19387
+ * from being appended to the shadow root.
19388
+ * Otherwise, iOS and MD enter animations would append
19389
+ * the footer twice.
19390
+ */
19391
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19392
+ if (ionFooter && !ionFooterAlreadyAppended) {
19393
+ const footerHeight = ionFooter.clientHeight;
19394
+ const clonedFooter = ionFooter.cloneNode(true);
19395
+ baseEl.shadowRoot.appendChild(clonedFooter);
19396
+ ionFooter.style.setProperty('display', 'none');
19397
+ ionFooter.setAttribute('aria-hidden', 'true');
19398
+ // Padding is added to prevent some content from being hidden.
19399
+ const page = baseEl.querySelector('.ion-page');
19400
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19401
+ }
19402
+ });
19403
+ if (contentAnimation) {
19404
+ baseAnimation.addAnimation(contentAnimation);
19405
+ }
19406
+ return baseAnimation;
19285
19407
  };
19286
19408
 
19287
19409
  const createLeaveAnimation = () => {
@@ -19296,18 +19418,41 @@ const createLeaveAnimation = () => {
19296
19418
  * Md Modal Leave Animation
19297
19419
  */
19298
19420
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19299
- const { currentBreakpoint } = opts;
19421
+ const { currentBreakpoint, expandToScroll } = opts;
19300
19422
  const root = getElementRoot(baseEl);
19301
19423
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19302
19424
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19303
19425
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19304
- return createAnimation()
19426
+ const baseAnimation = createAnimation()
19305
19427
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19306
19428
  .duration(200)
19307
- .addAnimation([backdropAnimation, wrapperAnimation]);
19429
+ .addAnimation([backdropAnimation, wrapperAnimation])
19430
+ .beforeAddWrite(() => {
19431
+ if (expandToScroll) {
19432
+ // Scroll can only be done when the modal is fully expanded.
19433
+ return;
19434
+ }
19435
+ /**
19436
+ * If expandToScroll is disabled, we need to swap
19437
+ * the visibility to the original, so the footer
19438
+ * dismisses with the modal and doesn't stay
19439
+ * until the modal is removed from the DOM.
19440
+ */
19441
+ const ionFooter = baseEl.querySelector('ion-footer');
19442
+ if (ionFooter) {
19443
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19444
+ ionFooter.style.removeProperty('display');
19445
+ ionFooter.removeAttribute('aria-hidden');
19446
+ clonedFooter.style.setProperty('display', 'none');
19447
+ clonedFooter.setAttribute('aria-hidden', 'true');
19448
+ const page = baseEl.querySelector('.ion-page');
19449
+ page.style.removeProperty('padding-bottom');
19450
+ }
19451
+ });
19452
+ return baseAnimation;
19308
19453
  };
19309
19454
 
19310
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19455
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19311
19456
  // Defaults for the sheet swipe animation
19312
19457
  const defaultBackdrop = [
19313
19458
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19324,6 +19469,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19324
19469
  { offset: 1, transform: 'translateY(100%)' },
19325
19470
  ],
19326
19471
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19472
+ CONTENT_KEYFRAMES: [
19473
+ { offset: 0, maxHeight: '100%' },
19474
+ { offset: 1, maxHeight: '0%' },
19475
+ ],
19327
19476
  };
19328
19477
  const contentEl = baseEl.querySelector('ion-content');
19329
19478
  const height = wrapperEl.clientHeight;
@@ -19331,10 +19480,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19331
19480
  let offset = 0;
19332
19481
  let canDismissBlocksGesture = false;
19333
19482
  const canDismissMaxStep = 0.95;
19334
- const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19335
- const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19336
19483
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
19337
19484
  const minBreakpoint = breakpoints[0];
19485
+ const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19486
+ const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19487
+ const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19338
19488
  const enableBackdrop = () => {
19339
19489
  baseEl.style.setProperty('pointer-events', 'auto');
19340
19490
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19357,6 +19507,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19357
19507
  */
19358
19508
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19359
19509
  };
19510
+ /**
19511
+ * Toggles the visible modal footer when `expandToScroll` is disabled.
19512
+ * @param footer The footer to show.
19513
+ */
19514
+ const swapFooterVisibility = (footer) => {
19515
+ const originalFooter = baseEl.querySelector('ion-footer');
19516
+ if (!originalFooter) {
19517
+ return;
19518
+ }
19519
+ const clonedFooter = wrapperEl.nextElementSibling;
19520
+ const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
19521
+ const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
19522
+ footerToShow.style.removeProperty('display');
19523
+ footerToShow.removeAttribute('aria-hidden');
19524
+ const page = baseEl.querySelector('.ion-page');
19525
+ if (footer === 'original') {
19526
+ page.style.removeProperty('padding-bottom');
19527
+ }
19528
+ else {
19529
+ const pagePadding = footerToShow.clientHeight;
19530
+ page.style.setProperty('padding-bottom', `${pagePadding}px`);
19531
+ }
19532
+ footerToHide.style.setProperty('display', 'none');
19533
+ footerToHide.setAttribute('aria-hidden', 'true');
19534
+ };
19360
19535
  /**
19361
19536
  * After the entering animation completes,
19362
19537
  * we need to set the animation to go from
@@ -19368,6 +19543,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19368
19543
  if (wrapperAnimation && backdropAnimation) {
19369
19544
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19370
19545
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19546
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19371
19547
  animation.progressStart(true, 1 - currentBreakpoint);
19372
19548
  /**
19373
19549
  * If backdrop is not enabled, then content
@@ -19384,7 +19560,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19384
19560
  disableBackdrop();
19385
19561
  }
19386
19562
  }
19387
- if (contentEl && currentBreakpoint !== maxBreakpoint) {
19563
+ if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19388
19564
  contentEl.scrollY = false;
19389
19565
  }
19390
19566
  const canStart = (detail) => {
@@ -19398,6 +19574,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19398
19574
  */
19399
19575
  const contentEl = findClosestIonContent(detail.event.target);
19400
19576
  currentBreakpoint = getCurrentBreakpoint();
19577
+ /**
19578
+ * If we have expandToScroll disabled, we should not allow the swipe gesture to start
19579
+ * if the content is being swiped.
19580
+ */
19581
+ if (!expandToScroll && contentEl) {
19582
+ return false;
19583
+ }
19401
19584
  if (currentBreakpoint === 1 && contentEl) {
19402
19585
  /**
19403
19586
  * The modal should never swipe to close on the content with a refresher.
@@ -19428,6 +19611,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19428
19611
  * Remove undefined check
19429
19612
  */
19430
19613
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
19614
+ /**
19615
+ * If expandToScroll is disabled, we need to swap
19616
+ * the footer visibility to the original, so if the modal
19617
+ * is dismissed, the footer dismisses with the modal
19618
+ * and doesn't stay on the screen after the modal is gone.
19619
+ */
19620
+ if (!expandToScroll) {
19621
+ swapFooterVisibility('original');
19622
+ }
19431
19623
  /**
19432
19624
  * If we are pulling down, then it is possible we are pulling on the content.
19433
19625
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19543,6 +19735,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19543
19735
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19544
19736
  },
19545
19737
  ]);
19738
+ if (contentAnimation) {
19739
+ /**
19740
+ * The modal content should scroll at any breakpoint when expandToScroll
19741
+ * is disabled. In order to do this, the content needs to be completely
19742
+ * viewable so scrolling can access everything. Otherwise, the default
19743
+ * behavior would show the content off the screen and only allow
19744
+ * scrolling when the sheet is fully expanded.
19745
+ */
19746
+ contentAnimation.keyframes([
19747
+ { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
19748
+ { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
19749
+ ]);
19750
+ }
19546
19751
  animation.progressStep(0);
19547
19752
  }
19548
19753
  /**
@@ -19550,6 +19755,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19550
19755
  * snapping animation completes.
19551
19756
  */
19552
19757
  gesture.enable(false);
19758
+ /**
19759
+ * If expandToScroll is disabled, we need to swap
19760
+ * the footer visibility to the cloned one so the footer
19761
+ * doesn't flicker when the sheet's height is animated.
19762
+ */
19763
+ if (!expandToScroll && shouldRemainOpen) {
19764
+ swapFooterVisibility('cloned');
19765
+ }
19553
19766
  if (shouldPreventDismiss) {
19554
19767
  handleCanDismiss(baseEl, animation);
19555
19768
  }
@@ -19557,13 +19770,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19557
19770
  onDismiss();
19558
19771
  }
19559
19772
  /**
19560
- * If the sheet is going to be fully expanded then we should enable
19561
- * scrolling immediately. The sheet modal animation takes ~500ms to finish
19562
- * so if we wait until then there is a visible delay for when scrolling is
19563
- * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19564
- * as the gesture is released, so we align with that.
19773
+ * Enables scrolling immediately if the sheet is about to fully expand
19774
+ * or if it allows scrolling at any breakpoint. Without this, there would
19775
+ * be a ~500ms delay while the modal animation completes, causing a
19776
+ * noticeable lag. Native iOS allows scrolling as soon as the gesture is
19777
+ * released, so we align with that behavior.
19565
19778
  */
19566
- if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19779
+ if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19567
19780
  contentEl.scrollY = true;
19568
19781
  }
19569
19782
  return new Promise((resolve) => {
@@ -19581,6 +19794,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19581
19794
  raf(() => {
19582
19795
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19583
19796
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19797
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19584
19798
  animation.progressStart(true, 1 - snapToBreakpoint);
19585
19799
  currentBreakpoint = snapToBreakpoint;
19586
19800
  onBreakpointChange(currentBreakpoint);
@@ -19633,10 +19847,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19633
19847
  };
19634
19848
  };
19635
19849
 
19636
- 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}";
19850
+ 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}";
19637
19851
  var IonModalIosStyle0 = modalIosCss;
19638
19852
 
19639
- 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}";
19853
+ 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}";
19640
19854
  var IonModalMdStyle0 = modalMdCss;
19641
19855
 
19642
19856
  // TODO(FW-2832): types
@@ -19715,6 +19929,7 @@ class Modal {
19715
19929
  this.enterAnimation = undefined;
19716
19930
  this.leaveAnimation = undefined;
19717
19931
  this.breakpoints = undefined;
19932
+ this.expandToScroll = true;
19718
19933
  this.initialBreakpoint = undefined;
19719
19934
  this.backdropBreakpoint = 0;
19720
19935
  this.handle = undefined;
@@ -19930,6 +20145,7 @@ class Modal {
19930
20145
  presentingEl: presentingElement,
19931
20146
  currentBreakpoint: this.initialBreakpoint,
19932
20147
  backdropBreakpoint: this.backdropBreakpoint,
20148
+ expandToScroll: this.expandToScroll,
19933
20149
  });
19934
20150
  /* tslint:disable-next-line */
19935
20151
  if (typeof window !== 'undefined') {
@@ -19980,7 +20196,10 @@ class Modal {
19980
20196
  // should be in the DOM and referenced by now, except
19981
20197
  // for the presenting el
19982
20198
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
19983
- const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20199
+ const ani = (this.animation = animationBuilder(el, {
20200
+ presentingEl: this.presentingElement,
20201
+ expandToScroll: this.expandToScroll,
20202
+ }));
19984
20203
  const contentEl = findIonContent(el);
19985
20204
  if (!contentEl) {
19986
20205
  printIonContentErrorMsg(el);
@@ -20025,9 +20244,10 @@ class Modal {
20025
20244
  presentingEl: this.presentingElement,
20026
20245
  currentBreakpoint: initialBreakpoint,
20027
20246
  backdropBreakpoint,
20247
+ expandToScroll: this.expandToScroll,
20028
20248
  }));
20029
20249
  ani.progressStart(true, 1);
20030
- 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) => {
20250
+ 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) => {
20031
20251
  if (this.currentBreakpoint !== breakpoint) {
20032
20252
  this.currentBreakpoint = breakpoint;
20033
20253
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20105,6 +20325,7 @@ class Modal {
20105
20325
  presentingEl: presentingElement,
20106
20326
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20107
20327
  backdropBreakpoint: this.backdropBreakpoint,
20328
+ expandToScroll: this.expandToScroll,
20108
20329
  });
20109
20330
  if (dismissed) {
20110
20331
  const { delegate } = this.getDelegate();
@@ -20190,23 +20411,23 @@ class Modal {
20190
20411
  return true;
20191
20412
  }
20192
20413
  render() {
20193
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20414
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20194
20415
  const showHandle = handle !== false && isSheetModal;
20195
20416
  const mode = getIonMode$1(this);
20196
20417
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20197
20418
  const isHandleCycle = handleBehavior === 'cycle';
20198
- return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20419
+ return (hAsync(Host, Object.assign({ key: '8b74b6fa151995ab86cdeb989e338ee45c687f6d', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20199
20420
  zIndex: `${20000 + this.overlayIndex}`,
20200
- }, 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',
20421
+ }, 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',
20201
20422
  /*
20202
20423
  role and aria-modal must be used on the
20203
20424
  same element. They must also be set inside the
20204
20425
  shadow DOM otherwise ion-button will not be highlighted
20205
20426
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20206
20427
  */
20207
- 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",
20428
+ 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",
20208
20429
  // Prevents the handle from receiving keyboard focus when it does not cycle
20209
- 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' }))));
20430
+ 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' }))));
20210
20431
  }
20211
20432
  get el() { return getElement(this); }
20212
20433
  static get watchers() { return {
@@ -20228,6 +20449,7 @@ class Modal {
20228
20449
  "enterAnimation": [16],
20229
20450
  "leaveAnimation": [16],
20230
20451
  "breakpoints": [16],
20452
+ "expandToScroll": [4, "expand-to-scroll"],
20231
20453
  "initialBreakpoint": [2, "initial-breakpoint"],
20232
20454
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20233
20455
  "handle": [4],
@@ -21155,7 +21377,7 @@ class Nav {
21155
21377
  }
21156
21378
  }
21157
21379
  render() {
21158
- return hAsync("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
21380
+ return hAsync("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
21159
21381
  }
21160
21382
  get el() { return getElement(this); }
21161
21383
  static get watchers() { return {
@@ -21228,7 +21450,7 @@ class NavLink {
21228
21450
  this.routerAnimation = undefined;
21229
21451
  }
21230
21452
  render() {
21231
- return hAsync(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
21453
+ return hAsync(Host, { key: '9ba170d1b10e08e8a6b5e6a30d363871d455a0a9', onClick: this.onClick });
21232
21454
  }
21233
21455
  get el() { return getElement(this); }
21234
21456
  static get cmpMeta() { return {
@@ -21262,9 +21484,9 @@ class Note {
21262
21484
  }
21263
21485
  render() {
21264
21486
  const mode = getIonMode$1(this);
21265
- return (hAsync(Host, { key: '10a3495bc21166176986441479f8f7539029d161', class: createColorClasses$1(this.color, {
21487
+ return (hAsync(Host, { key: '3c3d9b2aa805c0bc1fdc6270a2bbf4dcc1b96c5b', class: createColorClasses$1(this.color, {
21266
21488
  [mode]: true,
21267
- }) }, hAsync("slot", { key: 'b6a9459e1b85f608fafd060a4bfeb11637ebe873' })));
21489
+ }) }, hAsync("slot", { key: '39e34682009fcb705ecafe51825162734bdf14d3' })));
21268
21490
  }
21269
21491
  static get style() { return {
21270
21492
  ios: IonNoteIosStyle0,
@@ -22029,11 +22251,11 @@ class Picker {
22029
22251
  render() {
22030
22252
  const { htmlAttributes } = this;
22031
22253
  const mode = getIonMode$1(this);
22032
- return (hAsync(Host, Object.assign({ key: '0712fa8732141848e50ad2e08e2ba66ef2a48991', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22254
+ return (hAsync(Host, Object.assign({ key: 'dc03f252e3b59a94bc7132c953d2d3b36b62237e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
22033
22255
  zIndex: `${20000 + this.overlayIndex}`,
22034
22256
  }, class: Object.assign({ [mode]: true,
22035
22257
  // Used internally for styling
22036
- [`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" })));
22258
+ [`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" })));
22037
22259
  }
22038
22260
  get el() { return getElement(this); }
22039
22261
  static get watchers() { return {
@@ -23008,9 +23230,9 @@ class PickerColumnCmp {
23008
23230
  render() {
23009
23231
  const col = this.col;
23010
23232
  const mode = getIonMode$1(this);
23011
- 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: {
23233
+ 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: {
23012
23234
  'max-width': this.col.columnWidth,
23013
- } }, 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))));
23235
+ } }, 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))));
23014
23236
  }
23015
23237
  get el() { return getElement(this); }
23016
23238
  static get watchers() { return {
@@ -23114,10 +23336,10 @@ class PickerColumnOption {
23114
23336
  render() {
23115
23337
  const { color, disabled, ariaLabel } = this;
23116
23338
  const mode = getIonMode$1(this);
23117
- return (hAsync(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses$1(color, {
23339
+ return (hAsync(Host, { key: 'c1353e99c2aa19c0e3ddbe433557ed18e72e1c66', class: createColorClasses$1(color, {
23118
23340
  [mode]: true,
23119
23341
  ['option-disabled']: disabled,
23120
- }) }, hAsync("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
23342
+ }) }, hAsync("button", { key: 'b4ee62ecf7458a07a56e8aa494485766a87a3fcb', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: '9ab1e4700c27103b676670a4b3521c183c6ab83d' }))));
23121
23343
  }
23122
23344
  get el() { return getElement(this); }
23123
23345
  static get watchers() { return {
@@ -24431,9 +24653,9 @@ class Popover {
24431
24653
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
24432
24654
  const desktop = isPlatform('desktop');
24433
24655
  const enableArrow = arrow && !parentPopover;
24434
- return (hAsync(Host, Object.assign({ key: 'ffe8b37c9ffb5cac210a7307e6cdfcf78712905b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24656
+ return (hAsync(Host, Object.assign({ key: '48f108a9b74f121559626889dd5a1fcccf38fc3d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
24435
24657
  zIndex: `${20000 + this.overlayIndex}`,
24436
- }, 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' })))));
24658
+ }, 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' })))));
24437
24659
  }
24438
24660
  get el() { return getElement(this); }
24439
24661
  static get watchers() { return {
@@ -24525,7 +24747,7 @@ class ProgressBar {
24525
24747
  const mode = getIonMode$1(this);
24526
24748
  // If the progress is displayed as a solid bar.
24527
24749
  const progressSolid = buffer === 1;
24528
- return (hAsync(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24750
+ return (hAsync(Host, { key: 'd60eeaa18aaee607e083c0ef9d0de8178d47c4cd', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
24529
24751
  [mode]: true,
24530
24752
  [`progress-bar-${type}`]: true,
24531
24753
  'progress-paused': paused,
@@ -24695,7 +24917,7 @@ class Radio {
24695
24917
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
24696
24918
  const mode = getIonMode$1(this);
24697
24919
  const inItem = hostContext('ion-item', el);
24698
- return (hAsync(Host, { key: '5a0adab55ad009305de4856fa1b9f93f2279a734', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24920
+ return (hAsync(Host, { key: '8badd4aec277addc0793e14df21f73bb345e99b7', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
24699
24921
  [mode]: true,
24700
24922
  'in-item': inItem,
24701
24923
  'radio-checked': checked,
@@ -24706,10 +24928,10 @@ class Radio {
24706
24928
  // Focus and active styling should not apply when the radio is in an item
24707
24929
  'ion-activatable': !inItem,
24708
24930
  'ion-focusable': !inItem,
24709
- }), 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: {
24931
+ }), 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: {
24710
24932
  'label-text-wrapper': true,
24711
24933
  'label-text-wrapper-hidden': !hasLabel,
24712
- }, part: "label" }, hAsync("slot", { key: '6cedf4e7b3bd03e4a635727dd7b6094bab64af64' })), hAsync("div", { key: '26dd48d9d2848b7f100b732abdc4a3171adde483', class: "native-wrapper" }, this.renderRadioControl()))));
24934
+ }, part: "label" }, hAsync("slot", { key: '331f3dc2ce5f6ed8f124fc4560f92e0f7c668a85' })), hAsync("div", { key: '473bd4aaf448753e385f2dda3fddc9f56379aa19', class: "native-wrapper" }, this.renderRadioControl()))));
24713
24935
  }
24714
24936
  get el() { return getElement(this); }
24715
24937
  static get watchers() { return {
@@ -24742,12 +24964,20 @@ class Radio {
24742
24964
  }
24743
24965
  let radioButtonIds = 0;
24744
24966
 
24967
+ 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}";
24968
+ var IonRadioGroupIosStyle0 = radioGroupIosCss;
24969
+
24970
+ 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}";
24971
+ var IonRadioGroupMdStyle0 = radioGroupMdCss;
24972
+
24745
24973
  class RadioGroup {
24746
24974
  constructor(hostRef) {
24747
24975
  registerInstance(this, hostRef);
24748
24976
  this.ionChange = createEvent(this, "ionChange", 7);
24749
24977
  this.ionValueChange = createEvent(this, "ionValueChange", 7);
24750
24978
  this.inputId = `ion-rg-${radioGroupIds++}`;
24979
+ this.helperTextId = `${this.inputId}-helper-text`;
24980
+ this.errorTextId = `${this.inputId}-error-text`;
24751
24981
  this.labelId = `${this.inputId}-lbl`;
24752
24982
  this.setRadioTabindex = (value) => {
24753
24983
  const radios = this.getRadios();
@@ -24799,6 +25029,8 @@ class RadioGroup {
24799
25029
  this.compareWith = undefined;
24800
25030
  this.name = this.inputId;
24801
25031
  this.value = undefined;
25032
+ this.helperText = undefined;
25033
+ this.errorText = undefined;
24802
25034
  }
24803
25035
  valueChanged(value) {
24804
25036
  this.setRadioTabindex(value);
@@ -24897,24 +25129,51 @@ class RadioGroup {
24897
25129
  const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
24898
25130
  radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
24899
25131
  }
25132
+ /**
25133
+ * Renders the helper text or error text values
25134
+ */
25135
+ renderHintText() {
25136
+ const { helperText, errorText, helperTextId, errorTextId } = this;
25137
+ const hasHintText = !!helperText || !!errorText;
25138
+ if (!hasHintText) {
25139
+ return;
25140
+ }
25141
+ return (hAsync("div", { class: "radio-group-top" }, hAsync("div", { id: helperTextId, class: "helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text" }, errorText)));
25142
+ }
25143
+ getHintTextID() {
25144
+ const { el, helperText, errorText, helperTextId, errorTextId } = this;
25145
+ if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
25146
+ return errorTextId;
25147
+ }
25148
+ if (helperText) {
25149
+ return helperTextId;
25150
+ }
25151
+ return undefined;
25152
+ }
24900
25153
  render() {
24901
25154
  const { label, labelId, el, name, value } = this;
24902
25155
  const mode = getIonMode$1(this);
24903
25156
  renderHiddenInput(true, el, name, value, false);
24904
- return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
25157
+ 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' }))));
24905
25158
  }
24906
25159
  get el() { return getElement(this); }
24907
25160
  static get watchers() { return {
24908
25161
  "value": ["valueChanged"]
24909
25162
  }; }
25163
+ static get style() { return {
25164
+ ios: IonRadioGroupIosStyle0,
25165
+ md: IonRadioGroupMdStyle0
25166
+ }; }
24910
25167
  static get cmpMeta() { return {
24911
- "$flags$": 0,
25168
+ "$flags$": 36,
24912
25169
  "$tagName$": "ion-radio-group",
24913
25170
  "$members$": {
24914
25171
  "allowEmptySelection": [4, "allow-empty-selection"],
24915
25172
  "compareWith": [1, "compare-with"],
24916
25173
  "name": [1],
24917
25174
  "value": [1032],
25175
+ "helperText": [1, "helper-text"],
25176
+ "errorText": [1, "error-text"],
24918
25177
  "setFocus": [64]
24919
25178
  },
24920
25179
  "$listeners$": [[4, "keydown", "onKeydown"]],
@@ -25534,7 +25793,7 @@ class Range {
25534
25793
  const needsEndAdjustment = inItem && !hasEndContent;
25535
25794
  const mode = getIonMode$1(this);
25536
25795
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
25537
- return (hAsync(Host, { key: '05c699caaead7cc74deaae2a958c4632191473a8', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25796
+ return (hAsync(Host, { key: 'efb8663a61f36a9db4ef69ece3a22e1424acbc28', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
25538
25797
  [mode]: true,
25539
25798
  'in-item': inItem,
25540
25799
  'range-disabled': disabled,
@@ -25543,10 +25802,10 @@ class Range {
25543
25802
  [`range-label-placement-${labelPlacement}`]: true,
25544
25803
  'range-item-start-adjustment': needsStartAdjustment,
25545
25804
  'range-item-end-adjustment': needsEndAdjustment,
25546
- }) }, hAsync("label", { key: '959837bcc48c4bda33ae1f62b66ef444329a2961', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'a434c6b5c26f57f52b3af98d881e7e6a179c89fc', class: {
25805
+ }) }, hAsync("label", { key: '040be16d5a2b4c1dded852d45a82e7505dc8fb30', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: 'd2ba909a1177dd27c1789f0d3f8f012a39f216c6', class: {
25547
25806
  'label-text-wrapper': true,
25548
25807
  'label-text-wrapper-hidden': !hasLabel,
25549
- }, 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" })))));
25808
+ }, 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" })))));
25550
25809
  }
25551
25810
  get el() { return getElement(this); }
25552
25811
  static get watchers() { return {
@@ -26447,7 +26706,7 @@ class Refresher {
26447
26706
  }
26448
26707
  render() {
26449
26708
  const mode = getIonMode$1(this);
26450
- return (hAsync(Host, { key: '9d4ac22988aec2c6af0b0c90934c52f62f0e4ce3', slot: "fixed", class: {
26709
+ return (hAsync(Host, { key: '4c36bffbfa32ef1bd28a60f4455c125842880659', slot: "fixed", class: {
26451
26710
  [mode]: true,
26452
26711
  // Used internally for styling
26453
26712
  [`refresher-${mode}`]: true,
@@ -26675,7 +26934,7 @@ class RefresherContent {
26675
26934
  const pullingIcon = this.pullingIcon;
26676
26935
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
26677
26936
  const mode = getIonMode$1(this);
26678
- 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())));
26937
+ 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())));
26679
26938
  }
26680
26939
  get el() { return getElement(this); }
26681
26940
  static get cmpMeta() { return {
@@ -26718,7 +26977,7 @@ class Reorder {
26718
26977
  render() {
26719
26978
  const mode = getIonMode$1(this);
26720
26979
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
26721
- 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" }))));
26980
+ 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" }))));
26722
26981
  }
26723
26982
  get el() { return getElement(this); }
26724
26983
  static get style() { return {
@@ -26972,7 +27231,7 @@ class ReorderGroup {
26972
27231
  }
26973
27232
  render() {
26974
27233
  const mode = getIonMode$1(this);
26975
- return (hAsync(Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
27234
+ return (hAsync(Host, { key: '6ca009dd65302a914d459aec638e62977440db20', class: {
26976
27235
  [mode]: true,
26977
27236
  'reorder-enabled': !this.disabled,
26978
27237
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -27080,7 +27339,7 @@ class RippleEffect {
27080
27339
  }
27081
27340
  render() {
27082
27341
  const mode = getIonMode$1(this);
27083
- return (hAsync(Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
27342
+ return (hAsync(Host, { key: '40c7f73e7f5f67e29f83e1236a61c6e1c9943c42', role: "presentation", class: {
27084
27343
  [mode]: true,
27085
27344
  unbounded: this.unbounded,
27086
27345
  } }));
@@ -28022,10 +28281,10 @@ class RouterLink {
28022
28281
  rel: this.rel,
28023
28282
  target: this.target,
28024
28283
  };
28025
- return (hAsync(Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: createColorClasses$1(this.color, {
28284
+ return (hAsync(Host, { key: '11183264fb6ae0db9a7a47c71b6862d60001b834', onClick: this.onClick, class: createColorClasses$1(this.color, {
28026
28285
  [mode]: true,
28027
28286
  'ion-activatable': true,
28028
- }) }, hAsync("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), hAsync("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
28287
+ }) }, hAsync("a", Object.assign({ key: '3e0e5242161cb0df593d6d573e51b8ba750065a1' }, attrs), hAsync("slot", { key: '5bd808e98a4627bb1236f0d955f4b32971355417' }))));
28029
28288
  }
28030
28289
  static get style() { return IonRouterLinkStyle0; }
28031
28290
  static get cmpMeta() { return {
@@ -28220,7 +28479,7 @@ class RouterOutlet {
28220
28479
  return true;
28221
28480
  }
28222
28481
  render() {
28223
- return hAsync("slot", { key: 'a70341f58d19df55de1dad00e3464388e446aa2a' });
28482
+ return hAsync("slot", { key: '8d0c163c5f63158e16ef2db7cc3c756cf597461d' });
28224
28483
  }
28225
28484
  get el() { return getElement(this); }
28226
28485
  static get watchers() { return {
@@ -28254,7 +28513,7 @@ class Row {
28254
28513
  registerInstance(this, hostRef);
28255
28514
  }
28256
28515
  render() {
28257
- return (hAsync(Host, { key: 'aea072a5005e3f1f309f0d1ae5be5ee19869b035', class: getIonMode$1(this) }, hAsync("slot", { key: '2a481c2126ac6ca65f0a1bbd07c2d3365409cb78' })));
28516
+ return (hAsync(Host, { key: 'a690022e2abdce6946d24264574e4aa0886a8ea5', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1a0e831dd1dbfe7877d3ad01d0a3045a5fb29e3' })));
28258
28517
  }
28259
28518
  static get style() { return IonRowStyle0; }
28260
28519
  static get cmpMeta() { return {
@@ -28648,8 +28907,8 @@ class Searchbar {
28648
28907
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
28649
28908
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
28650
28909
  const shouldShowCancelButton = this.shouldShowCancelButton();
28651
- 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))));
28652
- return (hAsync(Host, { key: '17d57ece5852d03047e4d53ddad6c9d88a432a00', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28910
+ 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))));
28911
+ return (hAsync(Host, { key: 'd1a1972725e949fb102c91487aaa7b9d10c2d718', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
28653
28912
  [mode]: true,
28654
28913
  'searchbar-animated': animated,
28655
28914
  'searchbar-disabled': this.disabled,
@@ -28659,14 +28918,14 @@ class Searchbar {
28659
28918
  'searchbar-has-focus': this.focused,
28660
28919
  'searchbar-should-show-clear': this.shouldShowClearButton(),
28661
28920
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
28662
- }) }, 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) => {
28921
+ }) }, 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) => {
28663
28922
  /**
28664
28923
  * This prevents mobile browsers from
28665
28924
  * blurring the input when the clear
28666
28925
  * button is activated.
28667
28926
  */
28668
28927
  ev.preventDefault();
28669
- }, 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));
28928
+ }, 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));
28670
28929
  }
28671
28930
  get el() { return getElement(this); }
28672
28931
  static get watchers() { return {
@@ -29250,14 +29509,14 @@ class Segment {
29250
29509
  }
29251
29510
  render() {
29252
29511
  const mode = getIonMode$1(this);
29253
- return (hAsync(Host, { key: 'b1eb4a6e4f953f6c4882395585799503735bbc6b', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29512
+ return (hAsync(Host, { key: 'a64e39352050b516f7dc82ce95a4bcff8431d1d0', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
29254
29513
  [mode]: true,
29255
29514
  'in-toolbar': hostContext('ion-toolbar', this.el),
29256
29515
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
29257
29516
  'segment-activated': this.activated,
29258
29517
  'segment-disabled': this.disabled,
29259
29518
  'segment-scrollable': this.scrollable,
29260
- }) }, hAsync("slot", { key: 'e7df6b017d154f30eb8021bc965f2e6c8e6480bf', onSlotchange: this.onSlottedItemsChange })));
29519
+ }) }, hAsync("slot", { key: 'bb3f3ec30e59e0461fa620d8961ab730cc802a4e', onSlotchange: this.onSlottedItemsChange })));
29261
29520
  }
29262
29521
  get el() { return getElement(this); }
29263
29522
  static get watchers() { return {
@@ -29328,35 +29587,7 @@ class SegmentButton {
29328
29587
  valueChanged() {
29329
29588
  this.updateState();
29330
29589
  }
29331
- waitForSegmentContent(ionSegment, contentId) {
29332
- return new Promise((resolve, reject) => {
29333
- let timeoutId = undefined;
29334
- let animationFrameId;
29335
- const check = () => {
29336
- if (!ionSegment) {
29337
- reject(new Error(`Segment not found when looking for Segment Content`));
29338
- return;
29339
- }
29340
- const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
29341
- const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
29342
- if (segmentContent && timeoutId) {
29343
- clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
29344
- cancelAnimationFrame(animationFrameId);
29345
- resolve(segmentContent);
29346
- }
29347
- else {
29348
- animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
29349
- }
29350
- };
29351
- check();
29352
- // Set a timeout to reject the promise
29353
- timeoutId = setTimeout(() => {
29354
- cancelAnimationFrame(animationFrameId);
29355
- reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
29356
- }, 1000);
29357
- });
29358
- }
29359
- async connectedCallback() {
29590
+ connectedCallback() {
29360
29591
  const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
29361
29592
  if (segmentEl) {
29362
29593
  this.updateState();
@@ -29366,14 +29597,11 @@ class SegmentButton {
29366
29597
  // Return if there is no contentId defined
29367
29598
  if (!this.contentId)
29368
29599
  return;
29369
- let segmentContent;
29370
- try {
29371
- // Attempt to find the Segment Content by its contentId
29372
- segmentContent = await this.waitForSegmentContent(segmentEl, this.contentId);
29373
- }
29374
- catch (error) {
29375
- // If no associated Segment Content exists, log an error and return
29376
- console.error('Segment Button: ', error.message);
29600
+ // Attempt to find the Segment Content by its contentId
29601
+ const segmentContent = document.getElementById(this.contentId);
29602
+ // If no associated Segment Content exists, log an error and return
29603
+ if (!segmentContent) {
29604
+ console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
29377
29605
  return;
29378
29606
  }
29379
29607
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
@@ -29419,7 +29647,7 @@ class SegmentButton {
29419
29647
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
29420
29648
  const mode = getIonMode$1(this);
29421
29649
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
29422
- return (hAsync(Host, { key: 'f9da656c8eccb80e4ef30e3fa977f2dbbefbc988', class: {
29650
+ return (hAsync(Host, { key: '79518fc8c0d1c72604397a281bdcfdcf4e070395', class: {
29423
29651
  [mode]: true,
29424
29652
  'in-toolbar': hostContext('ion-toolbar', this.el),
29425
29653
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -29435,7 +29663,7 @@ class SegmentButton {
29435
29663
  'ion-activatable': true,
29436
29664
  'ion-activatable-instant': true,
29437
29665
  'ion-focusable': true,
29438
- } }, 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" }))));
29666
+ } }, 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" }))));
29439
29667
  }
29440
29668
  get el() { return getElement(this); }
29441
29669
  static get watchers() { return {
@@ -29471,7 +29699,7 @@ class SegmentContent {
29471
29699
  registerInstance(this, hostRef);
29472
29700
  }
29473
29701
  render() {
29474
- return (hAsync(Host, { key: '03684b2999ac64fe13e376fd7e7f279976e9d4f2' }, hAsync("slot", { key: '143031075bf33ca19e7cfd76fc8a67b83ccaf11c' })));
29702
+ return (hAsync(Host, { key: '64b3965b14c749e77e9ce13b59f349d971e245c8' }, hAsync("slot", { key: '2d0bed34f9bc93f92e713cb51e42220f3cecd8f5' })));
29475
29703
  }
29476
29704
  static get style() { return IonSegmentContentStyle0; }
29477
29705
  static get cmpMeta() { return {
@@ -29584,10 +29812,10 @@ class SegmentView {
29584
29812
  }
29585
29813
  render() {
29586
29814
  const { disabled, isManualScroll } = this;
29587
- return (hAsync(Host, { key: '9f4f11d31c4db776f077e59ae895b35dd4454717', class: {
29815
+ return (hAsync(Host, { key: 'fa528d2d9ae0f00fc3067defe2a047dce77c814a', class: {
29588
29816
  'segment-view-disabled': disabled,
29589
29817
  'segment-view-scroll-disabled': isManualScroll === false,
29590
- } }, hAsync("slot", { key: 'ea58b21f031cee2ab2b70580f336deaefa364538' })));
29818
+ } }, hAsync("slot", { key: '74dc8b4d073caeff1bab272d11b9ea3e1a215954' })));
29591
29819
  }
29592
29820
  get el() { return getElement(this); }
29593
29821
  static get style() { return {
@@ -29702,6 +29930,7 @@ class Select {
29702
29930
  this.expandedIcon = undefined;
29703
29931
  this.shape = undefined;
29704
29932
  this.value = undefined;
29933
+ this.required = false;
29705
29934
  }
29706
29935
  styleChanged() {
29707
29936
  this.emitStyle();
@@ -29757,8 +29986,15 @@ class Select {
29757
29986
  }
29758
29987
  this.isExpanded = true;
29759
29988
  const overlay = (this.overlay = await this.createOverlay(event));
29760
- // Add logic to scroll selected item into view before presenting
29761
- const scrollSelectedIntoView = () => {
29989
+ overlay.onDidDismiss().then(() => {
29990
+ this.overlay = undefined;
29991
+ this.isExpanded = false;
29992
+ this.ionDismiss.emit();
29993
+ this.setFocus();
29994
+ });
29995
+ await overlay.present();
29996
+ // focus selected option for popovers and modals
29997
+ if (this.interface === 'popover' || this.interface === 'modal') {
29762
29998
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29763
29999
  if (indexOfSelected > -1) {
29764
30000
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -29776,7 +30012,6 @@ class Select {
29776
30012
  */
29777
30013
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
29778
30014
  if (interactiveEl) {
29779
- selectedItem.scrollIntoView({ block: 'nearest' });
29780
30015
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
29781
30016
  // and removing `ion-focused` style
29782
30017
  interactiveEl.setFocus();
@@ -29800,40 +30035,7 @@ class Select {
29800
30035
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
29801
30036
  }
29802
30037
  }
29803
- };
29804
- // For modals and popovers, we can scroll before they're visible
29805
- if (this.interface === 'modal') {
29806
- overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
29807
- }
29808
- else if (this.interface === 'popover') {
29809
- overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
29810
30038
  }
29811
- else {
29812
- /**
29813
- * For alerts and action sheets, we need to wait a frame after willPresent
29814
- * because these overlays don't have their content in the DOM immediately
29815
- * when willPresent fires. By waiting a frame, we ensure the content is
29816
- * rendered and can be properly scrolled into view.
29817
- */
29818
- const scrollAfterRender = () => {
29819
- requestAnimationFrame(() => {
29820
- scrollSelectedIntoView();
29821
- });
29822
- };
29823
- if (this.interface === 'alert') {
29824
- overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
29825
- }
29826
- else if (this.interface === 'action-sheet') {
29827
- overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
29828
- }
29829
- }
29830
- overlay.onDidDismiss().then(() => {
29831
- this.overlay = undefined;
29832
- this.isExpanded = false;
29833
- this.ionDismiss.emit();
29834
- this.setFocus();
29835
- });
29836
- await overlay.present();
29837
30039
  return overlay;
29838
30040
  }
29839
30041
  createOverlay(ev) {
@@ -30213,8 +30415,8 @@ class Select {
30213
30415
  return renderedLabel;
30214
30416
  }
30215
30417
  renderListbox() {
30216
- const { disabled, inputId, isExpanded } = this;
30217
- 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) }));
30418
+ const { disabled, inputId, isExpanded, required } = this;
30419
+ 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) }));
30218
30420
  }
30219
30421
  render() {
30220
30422
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30245,7 +30447,7 @@ class Select {
30245
30447
  * TODO(FW-5592): Remove hasStartEndSlots condition
30246
30448
  */
30247
30449
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30248
- return (hAsync(Host, { key: 'b2dca9ae25d88e4d9fdb55003041a66be5668fcf', onClick: this.onClick, class: createColorClasses$1(this.color, {
30450
+ return (hAsync(Host, { key: '457f1130a291ff1f6fdb8a112f6c32b53efdad7a', onClick: this.onClick, class: createColorClasses$1(this.color, {
30249
30451
  [mode]: true,
30250
30452
  'in-item': inItem,
30251
30453
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30261,7 +30463,7 @@ class Select {
30261
30463
  [`select-justify-${justify}`]: justifyEnabled,
30262
30464
  [`select-shape-${shape}`]: shape !== undefined,
30263
30465
  [`select-label-placement-${labelPlacement}`]: true,
30264
- }) }, 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" }))));
30466
+ }) }, 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" }))));
30265
30467
  }
30266
30468
  get el() { return getElement(this); }
30267
30469
  static get watchers() { return {
@@ -30297,6 +30499,7 @@ class Select {
30297
30499
  "expandedIcon": [1, "expanded-icon"],
30298
30500
  "shape": [1],
30299
30501
  "value": [1032],
30502
+ "required": [4],
30300
30503
  "isExpanded": [32],
30301
30504
  "open": [64]
30302
30505
  },
@@ -30421,7 +30624,7 @@ class SelectModal {
30421
30624
  } }, option.text))));
30422
30625
  }
30423
30626
  render() {
30424
- 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()))));
30627
+ 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()))));
30425
30628
  }
30426
30629
  get el() { return getElement(this); }
30427
30630
  static get style() { return {
@@ -30454,7 +30657,7 @@ class SelectOption {
30454
30657
  this.value = undefined;
30455
30658
  }
30456
30659
  render() {
30457
- return hAsync(Host, { key: '2e6fa159464f04f6d8720f960141f67918bc7534', role: "option", id: this.inputId, class: getIonMode$1(this) });
30660
+ return hAsync(Host, { key: '8c96c199ce3a3065de3fe446500f567236e0610a', role: "option", id: this.inputId, class: getIonMode$1(this) });
30458
30661
  }
30459
30662
  get el() { return getElement(this); }
30460
30663
  static get style() { return IonSelectOptionStyle0; }
@@ -30574,7 +30777,7 @@ class SelectPopover {
30574
30777
  render() {
30575
30778
  const { header, message, options, subHeader } = this;
30576
30779
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
30577
- 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))));
30780
+ 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))));
30578
30781
  }
30579
30782
  get el() { return getElement(this); }
30580
30783
  static get style() { return {
@@ -30622,11 +30825,11 @@ class SkeletonText {
30622
30825
  const animated = this.animated && config.getBoolean('animated', true);
30623
30826
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
30624
30827
  const mode = getIonMode$1(this);
30625
- return (hAsync(Host, { key: 'fdfabf9364caf507450239b62be24f08873bd650', class: {
30828
+ return (hAsync(Host, { key: 'c193f9a8e8efab5139544f047bdae4b6d421aa86', class: {
30626
30829
  [mode]: true,
30627
30830
  'skeleton-text-animated': animated,
30628
30831
  'in-media': inMedia,
30629
- } }, hAsync("span", { key: '3482c88dcc177547185ce87972afa064a542367d' }, "\u00A0")));
30832
+ } }, hAsync("span", { key: 'e15db679bd3c359b4df5123efd2f92e5b380fde3' }, "\u00A0")));
30630
30833
  }
30631
30834
  get el() { return getElement(this); }
30632
30835
  static get style() { return IonSkeletonTextStyle0; }
@@ -30679,7 +30882,7 @@ class Spinner {
30679
30882
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
30680
30883
  }
30681
30884
  }
30682
- return (hAsync(Host, { key: '9d30ee9f5aa0dd0e220da07e75d05b8b2435224d', class: createColorClasses$1(self.color, {
30885
+ return (hAsync(Host, { key: 'e0dfa8a3ee2a0469eb31323f506750bd77d65797', class: createColorClasses$1(self.color, {
30683
30886
  [mode]: true,
30684
30887
  [`spinner-${spinnerName}`]: true,
30685
30888
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -30779,12 +30982,12 @@ class SplitPane {
30779
30982
  }
30780
30983
  render() {
30781
30984
  const mode = getIonMode$1(this);
30782
- return (hAsync(Host, { key: '1ca0b0299d03605bb358112ca56cbafbe58f00f5', class: {
30985
+ return (hAsync(Host, { key: '76be70d7fbebc52646a5851f47accc1006615b85', class: {
30783
30986
  [mode]: true,
30784
30987
  // Used internally for styling
30785
30988
  [`split-pane-${mode}`]: true,
30786
30989
  'split-pane-visible': this.visible,
30787
- } }, hAsync("slot", { key: 'abe231361727ae7fc63edd592a4490caac1909fb' })));
30990
+ } }, hAsync("slot", { key: '9a859530f4fb18aff43255bc3940feb9aca625d7' })));
30788
30991
  }
30789
30992
  get el() { return getElement(this); }
30790
30993
  static get watchers() { return {
@@ -30853,10 +31056,10 @@ class Tab {
30853
31056
  }
30854
31057
  render() {
30855
31058
  const { tab, active, component } = this;
30856
- return (hAsync(Host, { key: 'cb75d0877979b3b8df8f7e1952bfa9677da1eaa5', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
31059
+ return (hAsync(Host, { key: '2107ece2f1ebdf748bac8adb78a9ad67e7fc9057', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
30857
31060
  'ion-page': component === undefined,
30858
31061
  'tab-hidden': !active,
30859
- } }, hAsync("slot", { key: '37fbb7b7a6b03eb93b1dacd2dc1025b78eb2aa6b' })));
31062
+ } }, hAsync("slot", { key: 'b4a1bc1aa79f6b82b8f77b544bcb74e65229b541' })));
30860
31063
  }
30861
31064
  get el() { return getElement(this); }
30862
31065
  static get watchers() { return {
@@ -30934,11 +31137,11 @@ class TabBar {
30934
31137
  const { color, translucent, keyboardVisible } = this;
30935
31138
  const mode = getIonMode$1(this);
30936
31139
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
30937
- return (hAsync(Host, { key: 'a87fd2ea5df053705a37ea7ffec043e75c4a9907', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
31140
+ return (hAsync(Host, { key: '62303a7f9d8c98ffab51a5900c144c5117b9c543', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
30938
31141
  [mode]: true,
30939
31142
  'tab-bar-translucent': translucent,
30940
31143
  'tab-bar-hidden': shouldHide,
30941
- }) }, hAsync("slot", { key: '81a6223299b6cab29d7ddced590e9152e2b3ded0' })));
31144
+ }) }, hAsync("slot", { key: '5771a9828f748c2bd6b5e26758b9723c6b3de5ff' })));
30942
31145
  }
30943
31146
  get el() { return getElement(this); }
30944
31147
  static get watchers() { return {
@@ -31036,7 +31239,7 @@ class TabButton {
31036
31239
  rel,
31037
31240
  target,
31038
31241
  };
31039
- return (hAsync(Host, { key: '5976c45943ea7ea8e7c1a85fc9996de421439f08', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
31242
+ return (hAsync(Host, { key: 'a86d441d8df350fe991f2f948fc6b6ad007728f7', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
31040
31243
  [mode]: true,
31041
31244
  'tab-selected': selected,
31042
31245
  'tab-disabled': disabled,
@@ -31048,7 +31251,7 @@ class TabButton {
31048
31251
  'ion-activatable': true,
31049
31252
  'ion-selectable': true,
31050
31253
  'ion-focusable': true,
31051
- } }, 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" }))));
31254
+ } }, 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" }))));
31052
31255
  }
31053
31256
  get el() { return getElement(this); }
31054
31257
  static get style() { return {
@@ -31224,7 +31427,7 @@ class Tabs {
31224
31427
  return Array.from(this.el.querySelectorAll('ion-tab'));
31225
31428
  }
31226
31429
  render() {
31227
- 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" })));
31430
+ 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" })));
31228
31431
  }
31229
31432
  get el() { return getElement(this); }
31230
31433
  static get style() { return IonTabsStyle0; }
@@ -31266,9 +31469,9 @@ class Text {
31266
31469
  }
31267
31470
  render() {
31268
31471
  const mode = getIonMode$1(this);
31269
- return (hAsync(Host, { key: 'e134d70c04344b708a2ecf6253722781ad2ca826', class: createColorClasses$1(this.color, {
31472
+ return (hAsync(Host, { key: '0c2546ea3f24b0a6bfd606199441d0a4edfa4ca1', class: createColorClasses$1(this.color, {
31270
31473
  [mode]: true,
31271
- }) }, hAsync("slot", { key: 'da79c760f7ebbcd007ce110439f05a62cb22eac8' })));
31474
+ }) }, hAsync("slot", { key: 'b7623ccb06f9461090a1f33e9f85886c7a4d5eff' })));
31272
31475
  }
31273
31476
  static get style() { return IonTextStyle0; }
31274
31477
  static get cmpMeta() { return {
@@ -31650,7 +31853,7 @@ class Textarea {
31650
31853
  * TODO(FW-5592): Remove hasStartEndSlots condition
31651
31854
  */
31652
31855
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
31653
- return (hAsync(Host, { key: 'd6e25c83d8eab8cb1a5b6ab411c9a13847f69f8d', class: createColorClasses$1(this.color, {
31856
+ return (hAsync(Host, { key: 'c0dabc66193c41188c817799e45b36abbf097ba1', class: createColorClasses$1(this.color, {
31654
31857
  [mode]: true,
31655
31858
  'has-value': hasValue,
31656
31859
  'has-focus': hasFocus,
@@ -31659,7 +31862,7 @@ class Textarea {
31659
31862
  [`textarea-shape-${shape}`]: shape !== undefined,
31660
31863
  [`textarea-label-placement-${labelPlacement}`]: true,
31661
31864
  'textarea-disabled': disabled,
31662
- }) }, 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()));
31865
+ }) }, 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()));
31663
31866
  }
31664
31867
  get el() { return getElement(this); }
31665
31868
  static get watchers() { return {
@@ -31721,7 +31924,7 @@ class Thumbnail {
31721
31924
  registerInstance(this, hostRef);
31722
31925
  }
31723
31926
  render() {
31724
- return (hAsync(Host, { key: 'cfa9aeb1d4fd624a9732c5230d29dd887e4b7771', class: getIonMode$1(this) }, hAsync("slot", { key: '29bc6e64063cba44e2643228df54394883933918' })));
31927
+ return (hAsync(Host, { key: '7f5fd6c056da2d82feb2c3c33f3e6dec898787f5', class: getIonMode$1(this) }, hAsync("slot", { key: 'd15fd2b6cdc03777edc1930be95ad838e1b376c8' })));
31725
31928
  }
31726
31929
  static get style() { return IonThumbnailStyle0; }
31727
31930
  static get cmpMeta() { return {
@@ -32557,9 +32760,9 @@ class Toast {
32557
32760
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
32558
32761
  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);
32559
32762
  }
32560
- return (hAsync(Host, Object.assign({ key: 'c05655ff06af8d0e48c2a85396b07ad942fa81b4', tabindex: "-1" }, this.htmlAttributes, { style: {
32763
+ return (hAsync(Host, Object.assign({ key: '34036afc0701173d51c9c11ea4a2e1d65685ba41', tabindex: "-1" }, this.htmlAttributes, { style: {
32561
32764
  zIndex: `${60000 + this.overlayIndex}`,
32562
- }, 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')))));
32765
+ }, 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')))));
32563
32766
  }
32564
32767
  get el() { return getElement(this); }
32565
32768
  static get watchers() { return {
@@ -32693,6 +32896,7 @@ class Toggle {
32693
32896
  this.labelPlacement = 'start';
32694
32897
  this.justify = undefined;
32695
32898
  this.alignment = undefined;
32899
+ this.required = false;
32696
32900
  }
32697
32901
  disabledChanged() {
32698
32902
  if (this.gesture) {
@@ -32774,12 +32978,12 @@ class Toggle {
32774
32978
  return this.el.textContent !== '';
32775
32979
  }
32776
32980
  render() {
32777
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
32981
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32778
32982
  const mode = getIonMode$1(this);
32779
32983
  const value = this.getValue();
32780
32984
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32781
32985
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32782
- return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
32986
+ return (hAsync(Host, { key: '381632cf12ef5d27d729e0d59efcb14efad12a51', onClick: this.onClick, class: createColorClasses$1(color, {
32783
32987
  [mode]: true,
32784
32988
  'in-item': hostContext('ion-item', el),
32785
32989
  'toggle-activated': activated,
@@ -32789,10 +32993,10 @@ class Toggle {
32789
32993
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32790
32994
  [`toggle-label-placement-${labelPlacement}`]: true,
32791
32995
  [`toggle-${rtl}`]: true,
32792
- }) }, 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: {
32996
+ }) }, 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: {
32793
32997
  'label-text-wrapper': true,
32794
32998
  'label-text-wrapper-hidden': !this.hasLabel,
32795
- }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
32999
+ }, part: "label" }, hAsync("slot", { key: '67b7e20dc96503cb76dd5e31c5579752de465dcc' })), hAsync("div", { key: '17f89960bcc3302ef8e0c0d4e10513241744e232', class: "native-wrapper" }, this.renderToggleControl()))));
32796
33000
  }
32797
33001
  get el() { return getElement(this); }
32798
33002
  static get watchers() { return {
@@ -32815,6 +33019,7 @@ class Toggle {
32815
33019
  "labelPlacement": [1, "label-placement"],
32816
33020
  "justify": [1],
32817
33021
  "alignment": [1],
33022
+ "required": [4],
32818
33023
  "activated": [32]
32819
33024
  },
32820
33025
  "$listeners$": undefined,
@@ -32846,6 +33051,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
32846
33051
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
32847
33052
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
32848
33053
  * @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
33054
+ *
33055
+ * @part background - The background of the toolbar, covering the entire area behind the toolbar content.
33056
+ * @part container - The container that wraps all toolbar content, including the default slot and named slot content.
33057
+ * @part content - The container for the default slot, wrapping content provided without a named slot.
32849
33058
  */
32850
33059
  class Toolbar {
32851
33060
  constructor(hostRef) {
@@ -32896,10 +33105,10 @@ class Toolbar {
32896
33105
  this.childrenStyles.forEach((value) => {
32897
33106
  Object.assign(childStyles, value);
32898
33107
  });
32899
- return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33108
+ return (hAsync(Host, { key: '402afe7ce0c97883cedd0e48a5a0492a9bfe76ae', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32900
33109
  [mode]: true,
32901
33110
  'in-toolbar': hostContext('ion-toolbar', this.el),
32902
- })) }, 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" }))));
33111
+ })) }, 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" }))));
32903
33112
  }
32904
33113
  get el() { return getElement(this); }
32905
33114
  static get style() { return {
@@ -32949,11 +33158,11 @@ class ToolbarTitle {
32949
33158
  render() {
32950
33159
  const mode = getIonMode$1(this);
32951
33160
  const size = this.getSize();
32952
- return (hAsync(Host, { key: '7293d2ecd6262feb0d8d769effbb208230baed89', class: createColorClasses$1(this.color, {
33161
+ return (hAsync(Host, { key: '3f7b19c99961dbb86c0a925218332528b22e6880', class: createColorClasses$1(this.color, {
32953
33162
  [mode]: true,
32954
33163
  [`title-${size}`]: true,
32955
33164
  'title-rtl': document.dir === 'rtl',
32956
- }) }, hAsync("div", { key: '086ec3a361ebdf6506846a8704b457cda3a6f897', class: "toolbar-title" }, hAsync("slot", { key: '59add7eb92b82d6832a8f0894f897c51fdf4f214' }))));
33165
+ }) }, hAsync("div", { key: '12054fbdd60e40a15875e442c20143766fc34fc3', class: "toolbar-title" }, hAsync("slot", { key: '9f14fb14a67d4bd1e4536a4d64a637fbe5a151c7' }))));
32957
33166
  }
32958
33167
  get el() { return getElement(this); }
32959
33168
  static get watchers() { return {