@ionic/core 8.4.4-dev.11741050043.10a3c31a → 8.4.4-dev.11741105335.1f4941f2

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 (646) hide show
  1. package/components/checkbox.js +6 -4
  2. package/components/helpers.js +28 -0
  3. package/components/index6.js +11 -3
  4. package/components/index7.js +2 -2
  5. package/components/ion-select.js +6 -4
  6. package/components/ion-toggle.js +6 -4
  7. package/components/ionic-global.js +12 -1
  8. package/components/modal.js +259 -35
  9. package/components/toolbar.js +2 -2
  10. package/css/core.css +1 -1
  11. package/css/core.css.map +1 -1
  12. package/css/global.bundle.css +1 -1
  13. package/css/global.bundle.css.map +1 -1
  14. package/css/ionic.bundle.css +1 -1
  15. package/css/ionic.bundle.css.map +1 -1
  16. package/css/palettes/dark.always.css +1 -1
  17. package/css/palettes/dark.always.css.map +1 -1
  18. package/css/palettes/dark.class.css +1 -1
  19. package/css/palettes/dark.class.css.map +1 -1
  20. package/css/palettes/dark.system.css +1 -1
  21. package/css/palettes/dark.system.css.map +1 -1
  22. package/css/palettes/high-contrast-dark.always.css +1 -1
  23. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  24. package/css/palettes/high-contrast-dark.class.css +1 -1
  25. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  26. package/css/palettes/high-contrast-dark.system.css +1 -1
  27. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  28. package/css/palettes/high-contrast.always.css +1 -1
  29. package/css/palettes/high-contrast.always.css.map +1 -1
  30. package/css/palettes/high-contrast.class.css +1 -1
  31. package/css/palettes/high-contrast.class.css.map +1 -1
  32. package/css/palettes/high-contrast.system.css +1 -1
  33. package/css/palettes/high-contrast.system.css.map +1 -1
  34. package/css/structure.css +1 -1
  35. package/css/structure.css.map +1 -1
  36. package/css/typography.css +1 -1
  37. package/css/typography.css.map +1 -1
  38. package/dist/cjs/{app-globals-247c7281.js → app-globals-21afee77.js} +1 -1
  39. package/dist/cjs/{button-active-43e2b419.js → button-active-3f2f60b4.js} +1 -1
  40. package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
  41. package/dist/cjs/{framework-delegate-2a11ff27.js → framework-delegate-05579976.js} +1 -1
  42. package/dist/cjs/{hardware-back-button-25324112.js → hardware-back-button-9e8a2c4f.js} +2 -2
  43. package/dist/cjs/{helpers-06f744d7.js → helpers-4be3f90d.js} +28 -0
  44. package/dist/cjs/{index-0e360e93.js → index-073c7cdc.js} +2 -2
  45. package/dist/cjs/{index-17772b90.js → index-0ff61d0b.js} +4 -4
  46. package/dist/cjs/{index-a9253094.js → index-26bb7e42.js} +6 -6
  47. package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
  48. package/dist/cjs/{index-5235cd7a.js → index-6770fc00.js} +2 -2
  49. package/dist/cjs/{index-2e236a04.js → index-73f75efb.js} +4 -0
  50. package/dist/cjs/{index-d36529a6.js → index-ad7a712e.js} +1 -1
  51. package/dist/cjs/index.cjs.js +11 -11
  52. package/dist/cjs/{input-shims-a1181384.js → input-shims-fd997b01.js} +5 -3
  53. package/dist/cjs/{input.utils-693b953e.js → input.utils-c15a1814.js} +2 -2
  54. package/dist/cjs/ion-accordion_2.cjs.entry.js +5 -5
  55. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  56. package/dist/cjs/ion-alert.cjs.entry.js +8 -8
  57. package/dist/cjs/ion-app_8.cjs.entry.js +15 -15
  58. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
  60. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +4 -4
  62. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  63. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-checkbox.cjs.entry.js +8 -7
  65. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -5
  68. package/dist/cjs/ion-datetime_3.cjs.entry.js +9 -9
  69. package/dist/cjs/ion-fab_3.cjs.entry.js +4 -4
  70. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  71. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  72. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +4 -4
  73. package/dist/cjs/ion-input.cjs.entry.js +7 -7
  74. package/dist/cjs/ion-item-option_3.cjs.entry.js +5 -5
  75. package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
  76. package/dist/cjs/ion-loading.cjs.entry.js +7 -7
  77. package/dist/cjs/ion-menu_3.cjs.entry.js +9 -9
  78. package/dist/cjs/ion-modal.cjs.entry.js +267 -44
  79. package/dist/cjs/ion-nav_2.cjs.entry.js +7 -7
  80. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  81. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  82. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-popover.cjs.entry.js +8 -8
  84. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  87. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  88. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  89. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  91. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  92. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  93. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  94. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  95. package/dist/cjs/ion-select-modal.cjs.entry.js +7 -7
  96. package/dist/cjs/ion-select_3.cjs.entry.js +14 -13
  97. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  99. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  100. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  101. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-textarea.cjs.entry.js +6 -6
  103. package/dist/cjs/ion-toast.cjs.entry.js +7 -7
  104. package/dist/cjs/ion-toggle.cjs.entry.js +9 -8
  105. package/dist/cjs/{ionic-global-20cee824.js → ionic-global-d9a8bb5b.js} +12 -1
  106. package/dist/cjs/ionic.cjs.js +4 -4
  107. package/dist/cjs/{ios.transition-c3e3b768.js → ios.transition-a4f35c55.js} +5 -5
  108. package/dist/cjs/loader.cjs.js +4 -4
  109. package/dist/cjs/{md.transition-91d9b2db.js → md.transition-cdf904e6.js} +5 -5
  110. package/dist/cjs/{notch-controller-57bae241.js → notch-controller-a0c464d1.js} +1 -1
  111. package/dist/cjs/{overlays-93c1a579.js → overlays-86695cf1.js} +5 -5
  112. package/dist/cjs/{status-tap-ede4c3df.js → status-tap-1a2485c1.js} +5 -4
  113. package/dist/cjs/{swipe-back-2aee5ac9.js → swipe-back-47a52b83.js} +1 -1
  114. package/dist/collection/components/checkbox/checkbox.js +23 -4
  115. package/dist/collection/components/modal/animations/ios.enter.js +50 -4
  116. package/dist/collection/components/modal/animations/ios.leave.js +24 -2
  117. package/dist/collection/components/modal/animations/md.enter.js +52 -5
  118. package/dist/collection/components/modal/animations/md.leave.js +26 -3
  119. package/dist/collection/components/modal/animations/sheet.js +11 -2
  120. package/dist/collection/components/modal/gestures/sheet.js +79 -10
  121. package/dist/collection/components/modal/modal.ios.css +16 -0
  122. package/dist/collection/components/modal/modal.js +32 -7
  123. package/dist/collection/components/modal/modal.md.css +6 -0
  124. package/dist/collection/components/select/select.js +23 -4
  125. package/dist/collection/components/toggle/toggle.js +23 -4
  126. package/dist/collection/components/toolbar/toolbar.js +6 -2
  127. package/dist/collection/global/ionic-global.js +12 -1
  128. package/dist/collection/utils/helpers.js +28 -0
  129. package/dist/collection/utils/logging/index.js +10 -3
  130. package/dist/docs.json +115 -2
  131. package/dist/esm/{app-globals-0aadb3a9.js → app-globals-5dbb61a5.js} +1 -1
  132. package/dist/esm/{button-active-90f1dbc4.js → button-active-f6503382.js} +1 -1
  133. package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  134. package/dist/esm/{framework-delegate-3e745cc0.js → framework-delegate-f683816e.js} +1 -1
  135. package/dist/esm/{hardware-back-button-d58e8ab6.js → hardware-back-button-06ef3c3e.js} +2 -2
  136. package/dist/esm/{helpers-16b36a2b.js → helpers-9b49d7d2.js} +28 -0
  137. package/dist/esm/{index-527b9e34.js → index-28849c61.js} +4 -1
  138. package/dist/esm/{index-299c3a24.js → index-5a0f5fd0.js} +1 -1
  139. package/dist/esm/{index-ae5421cc.js → index-6a5baab0.js} +6 -6
  140. package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
  141. package/dist/esm/{index-a94537d9.js → index-7105cd59.js} +4 -4
  142. package/dist/esm/{index-d312d755.js → index-dd0f7395.js} +2 -2
  143. package/dist/esm/{index-10f4ed65.js → index-e2cf2ceb.js} +2 -2
  144. package/dist/esm/index.js +11 -11
  145. package/dist/esm/{input-shims-7761bb89.js → input-shims-dff819a9.js} +5 -3
  146. package/dist/esm/{input.utils-005c974b.js → input.utils-2f1029cf.js} +2 -2
  147. package/dist/esm/ion-accordion_2.entry.js +5 -5
  148. package/dist/esm/ion-action-sheet.entry.js +8 -8
  149. package/dist/esm/ion-alert.entry.js +8 -8
  150. package/dist/esm/ion-app_8.entry.js +15 -15
  151. package/dist/esm/ion-avatar_3.entry.js +2 -2
  152. package/dist/esm/ion-back-button.entry.js +4 -4
  153. package/dist/esm/ion-backdrop.entry.js +2 -2
  154. package/dist/esm/ion-breadcrumb_2.entry.js +4 -4
  155. package/dist/esm/ion-button_2.entry.js +4 -4
  156. package/dist/esm/ion-card_5.entry.js +3 -3
  157. package/dist/esm/ion-checkbox.entry.js +8 -7
  158. package/dist/esm/ion-chip.entry.js +2 -2
  159. package/dist/esm/ion-col_3.entry.js +2 -2
  160. package/dist/esm/ion-datetime-button.entry.js +5 -5
  161. package/dist/esm/ion-datetime_3.entry.js +9 -9
  162. package/dist/esm/ion-fab_3.entry.js +4 -4
  163. package/dist/esm/ion-img.entry.js +3 -3
  164. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  165. package/dist/esm/ion-input-password-toggle.entry.js +4 -4
  166. package/dist/esm/ion-input.entry.js +7 -7
  167. package/dist/esm/ion-item-option_3.entry.js +5 -5
  168. package/dist/esm/ion-item_8.entry.js +4 -4
  169. package/dist/esm/ion-loading.entry.js +7 -7
  170. package/dist/esm/ion-menu_3.entry.js +9 -9
  171. package/dist/esm/ion-modal.entry.js +267 -44
  172. package/dist/esm/ion-nav_2.entry.js +7 -7
  173. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  174. package/dist/esm/ion-picker-column.entry.js +3 -3
  175. package/dist/esm/ion-picker.entry.js +2 -2
  176. package/dist/esm/ion-popover.entry.js +8 -8
  177. package/dist/esm/ion-progress-bar.entry.js +3 -3
  178. package/dist/esm/ion-radio_2.entry.js +3 -3
  179. package/dist/esm/ion-range.entry.js +5 -5
  180. package/dist/esm/ion-refresher_2.entry.js +6 -6
  181. package/dist/esm/ion-reorder_2.entry.js +6 -6
  182. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  183. package/dist/esm/ion-route_4.entry.js +3 -3
  184. package/dist/esm/ion-searchbar.entry.js +4 -4
  185. package/dist/esm/ion-segment-content.entry.js +1 -1
  186. package/dist/esm/ion-segment-view.entry.js +1 -1
  187. package/dist/esm/ion-segment_2.entry.js +3 -3
  188. package/dist/esm/ion-select-modal.entry.js +7 -7
  189. package/dist/esm/ion-select_3.entry.js +14 -13
  190. package/dist/esm/ion-spinner.entry.js +2 -2
  191. package/dist/esm/ion-split-pane.entry.js +2 -2
  192. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  193. package/dist/esm/ion-tab_2.entry.js +3 -3
  194. package/dist/esm/ion-text.entry.js +2 -2
  195. package/dist/esm/ion-textarea.entry.js +6 -6
  196. package/dist/esm/ion-toast.entry.js +7 -7
  197. package/dist/esm/ion-toggle.entry.js +9 -8
  198. package/dist/esm/{ionic-global-33560a0a.js → ionic-global-c81d82ab.js} +12 -1
  199. package/dist/esm/ionic.js +5 -5
  200. package/dist/esm/{ios.transition-ee25fba4.js → ios.transition-314468a2.js} +5 -5
  201. package/dist/esm/loader.js +5 -5
  202. package/dist/esm/{md.transition-76353fd3.js → md.transition-a560e0e2.js} +5 -5
  203. package/dist/esm/{notch-controller-b94a6b7b.js → notch-controller-3dc61260.js} +1 -1
  204. package/dist/esm/{overlays-87b6aa7c.js → overlays-9a81f230.js} +5 -5
  205. package/dist/esm/{status-tap-c5dd83b2.js → status-tap-d07dbc82.js} +5 -4
  206. package/dist/esm/{swipe-back-6e381b00.js → swipe-back-23ee7ab1.js} +1 -1
  207. package/dist/esm-es5/app-globals-5dbb61a5.js +4 -0
  208. package/dist/esm-es5/{button-active-90f1dbc4.js → button-active-f6503382.js} +1 -1
  209. package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  210. package/dist/esm-es5/{framework-delegate-3e745cc0.js → framework-delegate-f683816e.js} +1 -1
  211. package/dist/esm-es5/{hardware-back-button-d58e8ab6.js → hardware-back-button-06ef3c3e.js} +1 -1
  212. package/dist/esm-es5/helpers-9b49d7d2.js +4 -0
  213. package/dist/esm-es5/index-28849c61.js +5 -0
  214. package/dist/esm-es5/{index-299c3a24.js → index-5a0f5fd0.js} +1 -1
  215. package/dist/esm-es5/{index-ae5421cc.js → index-6a5baab0.js} +1 -1
  216. package/dist/esm-es5/index-6ad967f3.js +4 -0
  217. package/dist/esm-es5/{index-a94537d9.js → index-7105cd59.js} +1 -1
  218. package/dist/esm-es5/{index-d312d755.js → index-dd0f7395.js} +1 -1
  219. package/dist/esm-es5/{index-10f4ed65.js → index-e2cf2ceb.js} +1 -1
  220. package/dist/esm-es5/index.js +1 -1
  221. package/dist/esm-es5/input-shims-dff819a9.js +4 -0
  222. package/dist/esm-es5/{input.utils-005c974b.js → input.utils-2f1029cf.js} +1 -1
  223. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  224. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  225. package/dist/esm-es5/ion-alert.entry.js +1 -1
  226. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  227. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  228. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  229. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  230. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  231. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  232. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  233. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  234. package/dist/esm-es5/ion-chip.entry.js +1 -1
  235. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  236. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  237. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  238. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  239. package/dist/esm-es5/ion-img.entry.js +1 -1
  240. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  241. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  242. package/dist/esm-es5/ion-input.entry.js +1 -1
  243. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  244. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  245. package/dist/esm-es5/ion-loading.entry.js +1 -1
  246. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  247. package/dist/esm-es5/ion-modal.entry.js +1 -1
  248. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  249. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  250. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  251. package/dist/esm-es5/ion-picker.entry.js +1 -1
  252. package/dist/esm-es5/ion-popover.entry.js +1 -1
  253. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  254. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  255. package/dist/esm-es5/ion-range.entry.js +1 -1
  256. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  257. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  258. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  259. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  260. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  261. package/dist/esm-es5/ion-segment-content.entry.js +1 -1
  262. package/dist/esm-es5/ion-segment-view.entry.js +1 -1
  263. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  264. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  265. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  266. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  267. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  268. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  269. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  270. package/dist/esm-es5/ion-text.entry.js +1 -1
  271. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  272. package/dist/esm-es5/ion-toast.entry.js +1 -1
  273. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  274. package/dist/esm-es5/ionic-global-c81d82ab.js +4 -0
  275. package/dist/esm-es5/ionic.js +1 -1
  276. package/dist/esm-es5/{ios.transition-ee25fba4.js → ios.transition-314468a2.js} +1 -1
  277. package/dist/esm-es5/loader.js +1 -1
  278. package/dist/esm-es5/md.transition-a560e0e2.js +4 -0
  279. package/dist/esm-es5/{notch-controller-b94a6b7b.js → notch-controller-3dc61260.js} +1 -1
  280. package/dist/esm-es5/{overlays-87b6aa7c.js → overlays-9a81f230.js} +1 -1
  281. package/dist/esm-es5/status-tap-d07dbc82.js +4 -0
  282. package/dist/esm-es5/{swipe-back-6e381b00.js → swipe-back-23ee7ab1.js} +1 -1
  283. package/dist/html.html-data.json +16 -0
  284. package/dist/ionic/index.esm.js +1 -1
  285. package/dist/ionic/ionic.esm.js +1 -1
  286. package/dist/ionic/ionic.js +1 -1
  287. package/dist/ionic/{p-c9f32d38.entry.js → p-02e23f26.entry.js} +1 -1
  288. package/dist/ionic/{p-9e5d5e43.entry.js → p-037fc3f3.entry.js} +1 -1
  289. package/dist/ionic/p-0574e87e.js +4 -0
  290. package/dist/ionic/{p-3a993e5c.system.js → p-058e61eb.system.js} +1 -1
  291. package/dist/ionic/{p-0892f0a1.system.entry.js → p-0bfffa34.system.entry.js} +1 -1
  292. package/dist/ionic/{p-5216f047.system.entry.js → p-0eb2553a.system.entry.js} +1 -1
  293. package/dist/ionic/{p-6b0c686e.system.entry.js → p-10327ad2.system.entry.js} +1 -1
  294. package/dist/ionic/p-14be4015.entry.js +4 -0
  295. package/dist/ionic/{p-5f8c7f64.entry.js → p-155c2bb0.entry.js} +1 -1
  296. package/dist/ionic/p-155f4d90.entry.js +4 -0
  297. package/dist/ionic/{p-dbac4f3e.system.entry.js → p-16799667.system.entry.js} +1 -1
  298. package/dist/ionic/p-16bfb979.system.entry.js +4 -0
  299. package/dist/ionic/{p-ad4cca47.system.entry.js → p-179bf9d1.system.entry.js} +1 -1
  300. package/dist/ionic/{p-37344c74.system.entry.js → p-18e101b7.system.entry.js} +2 -2
  301. package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
  302. package/dist/ionic/{p-32be7b07.system.js → p-1e955a45.system.js} +1 -1
  303. package/dist/ionic/p-1f405274.js +4 -0
  304. package/dist/ionic/p-21227121.js +4 -0
  305. package/dist/ionic/p-22149a4f.js +4 -0
  306. package/dist/ionic/{p-e78844bd.system.entry.js → p-2507278c.system.entry.js} +1 -1
  307. package/dist/ionic/{p-e31c0092.system.entry.js → p-2515cb4d.system.entry.js} +1 -1
  308. package/dist/ionic/p-25180df3.system.js +5 -0
  309. package/dist/ionic/p-265939f0.entry.js +4 -0
  310. package/dist/ionic/{p-d7811e30.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
  311. package/dist/ionic/{p-fb4ae485.js → p-2bc73fb5.js} +1 -1
  312. package/dist/ionic/{p-41dc2b36.system.js → p-2c9eb774.system.js} +1 -1
  313. package/dist/ionic/{p-e80fc48f.entry.js → p-2cbe5399.entry.js} +1 -1
  314. package/dist/ionic/{p-87570c71.system.entry.js → p-2ef3c7ee.system.entry.js} +1 -1
  315. package/dist/ionic/{p-86189afd.system.entry.js → p-31a6efce.system.entry.js} +1 -1
  316. package/dist/ionic/p-322c5fb4.system.js +4 -0
  317. package/dist/ionic/{p-7341f38d.entry.js → p-33a8a71b.entry.js} +1 -1
  318. package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
  319. package/dist/ionic/p-34479cfb.entry.js +4 -0
  320. package/dist/ionic/{p-ece761b3.js → p-346b2baf.js} +1 -1
  321. package/dist/ionic/{p-fae7cdef.entry.js → p-36c448fe.entry.js} +1 -1
  322. package/dist/ionic/{p-a4866e3e.system.js → p-372ae7f4.system.js} +1 -1
  323. package/dist/ionic/{p-1828fde5.js → p-39dd4f62.js} +1 -1
  324. package/dist/ionic/{p-f99425b1.system.js → p-3c8e5c23.system.js} +1 -1
  325. package/dist/ionic/p-3e99e3e0.entry.js +4 -0
  326. package/dist/ionic/p-41780810.entry.js +4 -0
  327. package/dist/ionic/{p-c8c27ae7.system.entry.js → p-424eb140.system.entry.js} +1 -1
  328. package/dist/ionic/p-42c9deb1.entry.js +4 -0
  329. package/dist/ionic/{p-1fed4470.system.js → p-4452a8ac.system.js} +1 -1
  330. package/dist/ionic/{p-f4af839e.system.entry.js → p-484d855b.system.entry.js} +2 -2
  331. package/dist/ionic/p-49a0e74c.entry.js +4 -0
  332. package/dist/ionic/{p-93ee5b02.entry.js → p-4ad78edc.entry.js} +1 -1
  333. package/dist/ionic/{p-e9336870.js → p-4d3a5f86.js} +1 -1
  334. package/dist/ionic/{p-741f94fe.system.entry.js → p-4d413973.system.entry.js} +1 -1
  335. package/dist/ionic/{p-84746494.system.entry.js → p-5010643d.system.entry.js} +1 -1
  336. package/dist/ionic/{p-56358500.system.js → p-5126cf1e.system.js} +1 -1
  337. package/dist/ionic/p-52245809.js +4 -0
  338. package/dist/ionic/{p-8fdfd686.system.entry.js → p-56da53ad.system.entry.js} +1 -1
  339. package/dist/ionic/{p-d1410529.system.js → p-578efda4.system.js} +2 -2
  340. package/dist/ionic/{p-ed1a1717.system.entry.js → p-5882bffa.system.entry.js} +1 -1
  341. package/dist/ionic/{p-ecc26ede.entry.js → p-5b932840.entry.js} +1 -1
  342. package/dist/ionic/p-5c9324c6.js +4 -0
  343. package/dist/ionic/{p-67d24f70.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
  344. package/dist/ionic/{p-17088ca0.entry.js → p-5fe8b767.entry.js} +1 -1
  345. package/dist/ionic/{p-b28ea018.entry.js → p-6190d0d6.entry.js} +1 -1
  346. package/dist/ionic/{p-fa8b0bbd.entry.js → p-62af944c.entry.js} +1 -1
  347. package/dist/ionic/{p-a9de8117.system.entry.js → p-63c09585.system.entry.js} +1 -1
  348. package/dist/ionic/{p-06260d68.system.entry.js → p-65346408.system.entry.js} +1 -1
  349. package/dist/ionic/{p-e4cc4565.system.entry.js → p-655723eb.system.entry.js} +1 -1
  350. package/dist/ionic/p-67222c16.system.js +4 -0
  351. package/dist/ionic/{p-21891ead.js → p-69066a53.js} +1 -1
  352. package/dist/ionic/{p-644cfb0d.entry.js → p-6d32975a.entry.js} +1 -1
  353. package/dist/ionic/p-70af0afb.entry.js +4 -0
  354. package/dist/ionic/{p-71235698.system.entry.js → p-70ccc275.system.entry.js} +1 -1
  355. package/dist/ionic/p-712fedc9.entry.js +4 -0
  356. package/dist/ionic/p-72ec9a26.entry.js +4 -0
  357. package/dist/ionic/{p-07cf4028.system.js → p-73897169.system.js} +1 -1
  358. package/dist/ionic/{p-4cfb0dc8.entry.js → p-73dc4950.entry.js} +1 -1
  359. package/dist/ionic/{p-2664778b.system.entry.js → p-7458862e.system.entry.js} +1 -1
  360. package/dist/ionic/{p-4ea83104.entry.js → p-76446a85.entry.js} +1 -1
  361. package/dist/ionic/{p-2be04f09.system.entry.js → p-77e7b7b6.system.entry.js} +1 -1
  362. package/dist/ionic/{p-9dfcac21.js → p-7a1766d6.js} +1 -1
  363. package/dist/ionic/{p-b22a0644.system.entry.js → p-7ae680ba.system.entry.js} +1 -1
  364. package/dist/ionic/p-7b98cebe.entry.js +4 -0
  365. package/dist/ionic/{p-c23b3d05.entry.js → p-80c6d619.entry.js} +1 -1
  366. package/dist/ionic/{p-67f4233a.system.entry.js → p-84d08aae.system.entry.js} +1 -1
  367. package/dist/ionic/{p-57de65cb.system.js → p-860eb968.system.js} +1 -1
  368. package/dist/ionic/{p-7b091122.entry.js → p-8818edd8.entry.js} +1 -1
  369. package/dist/ionic/{p-b42d475d.entry.js → p-89bf08c7.entry.js} +1 -1
  370. package/dist/ionic/{p-43fe4853.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
  371. package/dist/ionic/{p-7d2357da.system.js → p-8e407469.system.js} +1 -1
  372. package/dist/ionic/{p-bdcfdf25.system.entry.js → p-92365bc1.system.entry.js} +1 -1
  373. package/dist/ionic/{p-e9cd554c.system.entry.js → p-93e3654c.system.entry.js} +1 -1
  374. package/dist/ionic/{p-d7e6cd7e.entry.js → p-955c3eb8.entry.js} +1 -1
  375. package/dist/ionic/{p-6752a057.entry.js → p-95775830.entry.js} +1 -1
  376. package/dist/ionic/{p-caafaec4.system.js → p-95da3ae2.system.js} +1 -1
  377. package/dist/ionic/{p-037621ad.entry.js → p-97a65908.entry.js} +1 -1
  378. package/dist/ionic/{p-37c85d40.js → p-990630ca.js} +1 -1
  379. package/dist/ionic/p-9962f63f.entry.js +4 -0
  380. package/dist/ionic/p-9b3bb24e.entry.js +4 -0
  381. package/dist/ionic/{p-a9740e59.entry.js → p-9de5c787.entry.js} +1 -1
  382. package/dist/ionic/p-9f3008d4.system.js +4 -0
  383. package/dist/ionic/p-a18470c6.entry.js +4 -0
  384. package/dist/ionic/{p-82028789.system.entry.js → p-a584c79d.system.entry.js} +1 -1
  385. package/dist/ionic/{p-695c3921.entry.js → p-a5b31c0f.entry.js} +1 -1
  386. package/dist/ionic/p-a69b9fc5.system.js +4 -0
  387. package/dist/ionic/{p-50eb95ba.system.entry.js → p-a9e24ae2.system.entry.js} +1 -1
  388. package/dist/ionic/{p-09aa088e.system.js → p-acb30a5c.system.js} +1 -1
  389. package/dist/ionic/{p-e5a3b38b.system.entry.js → p-acc8399c.system.entry.js} +2 -2
  390. package/dist/ionic/{p-9bcc9444.entry.js → p-af09741c.entry.js} +1 -1
  391. package/dist/ionic/{p-4ba8de87.system.js → p-af452fa4.system.js} +1 -1
  392. package/dist/ionic/{p-80a4f5a4.system.entry.js → p-af744710.system.entry.js} +1 -1
  393. package/dist/ionic/{p-2fa83e88.entry.js → p-afecb188.entry.js} +1 -1
  394. package/dist/ionic/p-b3680e2f.system.js +4 -0
  395. package/dist/ionic/p-bb11d9fb.js +4 -0
  396. package/dist/ionic/p-bb2a6761.entry.js +4 -0
  397. package/dist/ionic/{p-f0e14400.entry.js → p-bc616455.entry.js} +1 -1
  398. package/dist/ionic/{p-841c4879.entry.js → p-bdad26e3.entry.js} +1 -1
  399. package/dist/ionic/{p-b480d2b1.entry.js → p-c32644d7.entry.js} +1 -1
  400. package/dist/ionic/p-c3802319.system.js +4 -0
  401. package/dist/ionic/{p-48e13c51.entry.js → p-c8d645b3.entry.js} +1 -1
  402. package/dist/ionic/p-c935cfc9.js +4 -0
  403. package/dist/ionic/{p-ca27d793.system.entry.js → p-d1172fe3.system.entry.js} +1 -1
  404. package/dist/ionic/{p-9f85d4b1.js → p-d4ca0475.js} +1 -1
  405. package/dist/ionic/{p-ff861eb0.js → p-d743e981.js} +1 -1
  406. package/dist/ionic/{p-22336c85.entry.js → p-d7bb5325.entry.js} +1 -1
  407. package/dist/ionic/{p-68327266.system.entry.js → p-d821466d.system.entry.js} +1 -1
  408. package/dist/ionic/p-d836d43e.js +5 -0
  409. package/dist/ionic/{p-89d3401f.system.js → p-d99e8644.system.js} +1 -1
  410. package/dist/ionic/{p-e6200d13.js → p-da2b833b.js} +1 -1
  411. package/dist/ionic/{p-685e9613.system.entry.js → p-da8ef548.system.entry.js} +1 -1
  412. package/dist/ionic/{p-a0a5c0db.system.entry.js → p-dc146a2a.system.entry.js} +1 -1
  413. package/dist/ionic/{p-135d546a.system.entry.js → p-dd0c9350.system.entry.js} +1 -1
  414. package/dist/ionic/{p-73d6a80d.entry.js → p-df862603.entry.js} +1 -1
  415. package/dist/ionic/{p-1fa70a4d.system.entry.js → p-e2e19375.system.entry.js} +1 -1
  416. package/dist/ionic/{p-4bcc2581.system.entry.js → p-e32557bb.system.entry.js} +1 -1
  417. package/dist/ionic/{p-6724b6ce.entry.js → p-e5849f8d.entry.js} +1 -1
  418. package/dist/ionic/p-e8d56122.js +4 -0
  419. package/dist/ionic/{p-3711b93e.entry.js → p-e8f34871.entry.js} +1 -1
  420. package/dist/ionic/{p-8f6d68b7.js → p-ecceeb90.js} +1 -1
  421. package/dist/ionic/{p-fd01cb8a.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
  422. package/dist/ionic/{p-e4c8444f.system.entry.js → p-eeb5cb45.system.entry.js} +2 -2
  423. package/dist/ionic/{p-db8a02a0.system.entry.js → p-efbf5af5.system.entry.js} +1 -1
  424. package/dist/ionic/p-f2613334.system.entry.js +4 -0
  425. package/dist/ionic/{p-ced5d9b6.system.entry.js → p-f301a694.system.entry.js} +1 -1
  426. package/dist/ionic/{p-f93eb347.system.entry.js → p-f3102647.system.entry.js} +1 -1
  427. package/dist/ionic/{p-734de30f.system.entry.js → p-f56752be.system.entry.js} +1 -1
  428. package/dist/ionic/p-f5d6624d.entry.js +4 -0
  429. package/dist/ionic/{p-82acef74.system.entry.js → p-f78af648.system.entry.js} +1 -1
  430. package/dist/ionic/{p-64c76f26.system.entry.js → p-f89cf011.system.entry.js} +1 -1
  431. package/dist/ionic/{p-6d969696.system.js → p-fbf86e62.system.js} +1 -1
  432. package/dist/ionic/p-fca17935.entry.js +4 -0
  433. package/dist/ionic/{p-81a4c94d.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
  434. package/dist/ionic/p-fec13c57.entry.js +4 -0
  435. package/dist/ionic/svg/accessibility-outline.svg +1 -1
  436. package/dist/ionic/svg/accessibility-sharp.svg +1 -1
  437. package/dist/ionic/svg/accessibility.svg +1 -1
  438. package/dist/ionic/svg/bag-add-outline.svg +1 -1
  439. package/dist/ionic/svg/bag-add-sharp.svg +1 -1
  440. package/dist/ionic/svg/bag-add.svg +1 -1
  441. package/dist/ionic/svg/bag-check-outline.svg +1 -1
  442. package/dist/ionic/svg/bag-check-sharp.svg +1 -1
  443. package/dist/ionic/svg/bag-check.svg +1 -1
  444. package/dist/ionic/svg/bag-handle-outline.svg +1 -1
  445. package/dist/ionic/svg/bag-handle-sharp.svg +1 -1
  446. package/dist/ionic/svg/bag-handle.svg +1 -1
  447. package/dist/ionic/svg/bag-outline.svg +1 -1
  448. package/dist/ionic/svg/bag-remove-outline.svg +1 -1
  449. package/dist/ionic/svg/bag-remove-sharp.svg +1 -1
  450. package/dist/ionic/svg/bag-remove.svg +1 -1
  451. package/dist/ionic/svg/bag-sharp.svg +1 -1
  452. package/dist/ionic/svg/bag.svg +1 -1
  453. package/dist/ionic/svg/balloon-outline.svg +1 -1
  454. package/dist/ionic/svg/balloon-sharp.svg +1 -1
  455. package/dist/ionic/svg/balloon.svg +1 -1
  456. package/dist/ionic/svg/ban-outline.svg +1 -1
  457. package/dist/ionic/svg/ban-sharp.svg +1 -1
  458. package/dist/ionic/svg/ban.svg +1 -1
  459. package/dist/ionic/svg/body-outline.svg +1 -1
  460. package/dist/ionic/svg/bowling-ball-outline.svg +1 -1
  461. package/dist/ionic/svg/bowling-ball-sharp.svg +1 -1
  462. package/dist/ionic/svg/bowling-ball.svg +1 -1
  463. package/dist/ionic/svg/calendar-clear-outline.svg +1 -1
  464. package/dist/ionic/svg/calendar-clear-sharp.svg +1 -1
  465. package/dist/ionic/svg/calendar-clear.svg +1 -1
  466. package/dist/ionic/svg/calendar-number-outline.svg +1 -1
  467. package/dist/ionic/svg/calendar-number-sharp.svg +1 -1
  468. package/dist/ionic/svg/calendar-number.svg +1 -1
  469. package/dist/ionic/svg/calendar-outline.svg +1 -1
  470. package/dist/ionic/svg/calendar-sharp.svg +1 -1
  471. package/dist/ionic/svg/calendar.svg +1 -1
  472. package/dist/ionic/svg/chevron-collapse-outline.svg +1 -1
  473. package/dist/ionic/svg/chevron-collapse-sharp.svg +1 -1
  474. package/dist/ionic/svg/chevron-collapse.svg +1 -1
  475. package/dist/ionic/svg/chevron-expand-outline.svg +1 -1
  476. package/dist/ionic/svg/chevron-expand-sharp.svg +1 -1
  477. package/dist/ionic/svg/chevron-expand.svg +1 -1
  478. package/dist/ionic/svg/color-wand-outline.svg +1 -1
  479. package/dist/ionic/svg/color-wand.svg +1 -1
  480. package/dist/ionic/svg/diamond-outline.svg +1 -1
  481. package/dist/ionic/svg/diamond-sharp.svg +1 -1
  482. package/dist/ionic/svg/diamond.svg +1 -1
  483. package/dist/ionic/svg/dice-outline.svg +1 -1
  484. package/dist/ionic/svg/dice-sharp.svg +1 -1
  485. package/dist/ionic/svg/dice.svg +1 -1
  486. package/dist/ionic/svg/document-lock-outline.svg +1 -1
  487. package/dist/ionic/svg/document-lock-sharp.svg +1 -1
  488. package/dist/ionic/svg/document-lock.svg +1 -1
  489. package/dist/ionic/svg/extension-puzzle-outline.svg +1 -1
  490. package/dist/ionic/svg/extension-puzzle-sharp.svg +1 -1
  491. package/dist/ionic/svg/extension-puzzle.svg +1 -1
  492. package/dist/ionic/svg/filter-circle-outline.svg +1 -1
  493. package/dist/ionic/svg/filter-circle-sharp.svg +1 -1
  494. package/dist/ionic/svg/filter-circle.svg +1 -1
  495. package/dist/ionic/svg/fish-outline.svg +1 -1
  496. package/dist/ionic/svg/fish-sharp.svg +1 -1
  497. package/dist/ionic/svg/fish.svg +1 -1
  498. package/dist/ionic/svg/footsteps-outline.svg +1 -1
  499. package/dist/ionic/svg/footsteps-sharp.svg +1 -1
  500. package/dist/ionic/svg/footsteps.svg +1 -1
  501. package/dist/ionic/svg/id-card-outline.svg +1 -1
  502. package/dist/ionic/svg/id-card-sharp.svg +1 -1
  503. package/dist/ionic/svg/id-card.svg +1 -1
  504. package/dist/ionic/svg/invert-mode-outline.svg +1 -1
  505. package/dist/ionic/svg/invert-mode-sharp.svg +1 -1
  506. package/dist/ionic/svg/invert-mode.svg +1 -1
  507. package/dist/ionic/svg/logo-alipay.svg +1 -1
  508. package/dist/ionic/svg/logo-android.svg +1 -1
  509. package/dist/ionic/svg/logo-apple-ar.svg +1 -1
  510. package/dist/ionic/svg/logo-behance.svg +1 -1
  511. package/dist/ionic/svg/logo-bitbucket.svg +1 -1
  512. package/dist/ionic/svg/logo-deviantart.svg +1 -1
  513. package/dist/ionic/svg/logo-discord.svg +1 -1
  514. package/dist/ionic/svg/logo-docker.svg +1 -1
  515. package/dist/ionic/svg/logo-edge.svg +1 -1
  516. package/dist/ionic/svg/logo-facebook.svg +1 -1
  517. package/dist/ionic/svg/logo-figma.svg +1 -1
  518. package/dist/ionic/svg/logo-firebase.svg +1 -1
  519. package/dist/ionic/svg/logo-gitlab.svg +1 -1
  520. package/dist/ionic/svg/logo-ionic.svg +1 -1
  521. package/dist/ionic/svg/logo-mastodon.svg +1 -1
  522. package/dist/ionic/svg/logo-medium.svg +1 -1
  523. package/dist/ionic/svg/logo-microsoft.svg +1 -1
  524. package/dist/ionic/svg/logo-npm.svg +1 -1
  525. package/dist/ionic/svg/logo-paypal.svg +1 -1
  526. package/dist/ionic/svg/logo-soundcloud.svg +1 -1
  527. package/dist/ionic/svg/logo-tableau.svg +1 -1
  528. package/dist/ionic/svg/logo-tiktok.svg +1 -1
  529. package/dist/ionic/svg/logo-venmo.svg +1 -1
  530. package/dist/ionic/svg/logo-vercel.svg +1 -1
  531. package/dist/ionic/svg/logo-wechat.svg +1 -1
  532. package/dist/ionic/svg/logo-yahoo.svg +1 -1
  533. package/dist/ionic/svg/prism-outline.svg +1 -1
  534. package/dist/ionic/svg/prism-sharp.svg +1 -1
  535. package/dist/ionic/svg/prism.svg +1 -1
  536. package/dist/ionic/svg/scale-outline.svg +1 -1
  537. package/dist/ionic/svg/scale-sharp.svg +1 -1
  538. package/dist/ionic/svg/scale.svg +1 -1
  539. package/dist/ionic/svg/server-outline.svg +1 -1
  540. package/dist/ionic/svg/server-sharp.svg +1 -1
  541. package/dist/ionic/svg/server.svg +1 -1
  542. package/dist/ionic/svg/shield-half-outline.svg +1 -1
  543. package/dist/ionic/svg/shield-half-sharp.svg +1 -1
  544. package/dist/ionic/svg/shield-half.svg +1 -1
  545. package/dist/ionic/svg/sparkles-outline.svg +1 -1
  546. package/dist/ionic/svg/sparkles-sharp.svg +1 -1
  547. package/dist/ionic/svg/sparkles.svg +1 -1
  548. package/dist/ionic/svg/storefront-outline.svg +1 -1
  549. package/dist/ionic/svg/storefront-sharp.svg +1 -1
  550. package/dist/ionic/svg/storefront.svg +1 -1
  551. package/dist/ionic/svg/telescope-outline.svg +1 -1
  552. package/dist/ionic/svg/telescope-sharp.svg +1 -1
  553. package/dist/ionic/svg/telescope.svg +1 -1
  554. package/dist/ionic/svg/ticket-outline.svg +1 -1
  555. package/dist/ionic/svg/ticket-sharp.svg +1 -1
  556. package/dist/ionic/svg/ticket.svg +1 -1
  557. package/dist/ionic/svg/today-outline.svg +1 -1
  558. package/dist/ionic/svg/today-sharp.svg +1 -1
  559. package/dist/ionic/svg/today.svg +1 -1
  560. package/dist/ionic/svg/unlink-outline.svg +1 -1
  561. package/dist/ionic/svg/unlink-sharp.svg +1 -1
  562. package/dist/ionic/svg/unlink.svg +1 -1
  563. package/dist/ionic/svg/videocam-off-outline.svg +1 -1
  564. package/dist/ionic/svg/videocam-off-sharp.svg +1 -1
  565. package/dist/ionic/svg/videocam-off.svg +1 -1
  566. package/dist/ionic/svg/wifi-outline.svg +1 -1
  567. package/dist/ionic/svg/wifi-sharp.svg +1 -1
  568. package/dist/ionic/svg/wifi.svg +1 -1
  569. package/dist/types/components/checkbox/checkbox.d.ts +6 -0
  570. package/dist/types/components/modal/animations/sheet.d.ts +1 -0
  571. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  572. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  573. package/dist/types/components/modal/modal.d.ts +11 -0
  574. package/dist/types/components/select/select.d.ts +6 -0
  575. package/dist/types/components/toggle/toggle.d.ts +6 -0
  576. package/dist/types/components/toolbar/toolbar.d.ts +4 -0
  577. package/dist/types/components.d.ts +32 -0
  578. package/dist/types/utils/config.d.ts +12 -0
  579. package/dist/types/utils/logging/index.d.ts +13 -1
  580. package/hydrate/index.js +322 -54
  581. package/hydrate/index.mjs +322 -54
  582. package/package.json +4 -4
  583. package/dist/esm-es5/app-globals-0aadb3a9.js +0 -4
  584. package/dist/esm-es5/helpers-16b36a2b.js +0 -4
  585. package/dist/esm-es5/index-527b9e34.js +0 -5
  586. package/dist/esm-es5/index-9b0d46f4.js +0 -4
  587. package/dist/esm-es5/input-shims-7761bb89.js +0 -4
  588. package/dist/esm-es5/ionic-global-33560a0a.js +0 -4
  589. package/dist/esm-es5/md.transition-76353fd3.js +0 -4
  590. package/dist/esm-es5/status-tap-c5dd83b2.js +0 -4
  591. package/dist/ionic/p-0612c7c3.entry.js +0 -4
  592. package/dist/ionic/p-06fee233.js +0 -4
  593. package/dist/ionic/p-0a47a1fb.entry.js +0 -4
  594. package/dist/ionic/p-0caec68d.entry.js +0 -4
  595. package/dist/ionic/p-14e6a33e.entry.js +0 -4
  596. package/dist/ionic/p-1fadb8b9.js +0 -4
  597. package/dist/ionic/p-235edda0.entry.js +0 -4
  598. package/dist/ionic/p-248ff024.system.js +0 -4
  599. package/dist/ionic/p-2bc0c8cf.entry.js +0 -4
  600. package/dist/ionic/p-32ab7c59.entry.js +0 -4
  601. package/dist/ionic/p-39f6077e.js +0 -4
  602. package/dist/ionic/p-5406a48a.system.entry.js +0 -4
  603. package/dist/ionic/p-5430a6da.entry.js +0 -4
  604. package/dist/ionic/p-5b73e74c.js +0 -4
  605. package/dist/ionic/p-5faf0879.js +0 -4
  606. package/dist/ionic/p-60666514.entry.js +0 -4
  607. package/dist/ionic/p-61153ec9.entry.js +0 -4
  608. package/dist/ionic/p-637c868c.entry.js +0 -4
  609. package/dist/ionic/p-66a5d6a8.js +0 -5
  610. package/dist/ionic/p-71062ade.system.js +0 -4
  611. package/dist/ionic/p-75098ab5.system.js +0 -4
  612. package/dist/ionic/p-93ce49e8.entry.js +0 -4
  613. package/dist/ionic/p-a25c4e5d.js +0 -4
  614. package/dist/ionic/p-a8a9c283.system.js +0 -4
  615. package/dist/ionic/p-bd92a627.system.js +0 -4
  616. package/dist/ionic/p-be685cdb.entry.js +0 -4
  617. package/dist/ionic/p-bfe78c18.entry.js +0 -4
  618. package/dist/ionic/p-c566c4ac.js +0 -4
  619. package/dist/ionic/p-c98f1186.entry.js +0 -4
  620. package/dist/ionic/p-d6251c7e.system.entry.js +0 -4
  621. package/dist/ionic/p-e13a0a45.entry.js +0 -4
  622. package/dist/ionic/p-e530e6e3.entry.js +0 -4
  623. package/dist/ionic/p-e6e2ff13.entry.js +0 -4
  624. package/dist/ionic/p-f11a9436.system.js +0 -5
  625. package/dist/ionic/p-f70935ed.js +0 -4
  626. package/dist/ionic/p-fd579866.js +0 -4
  627. package/dist/ionic/p-ff4b7e40.system.js +0 -4
  628. package/dist/ionic/p-ff57f33a.entry.js +0 -4
  629. package/dist/ionic/svg/arrow-down-left-box-outline.svg +0 -1
  630. package/dist/ionic/svg/arrow-down-left-box-sharp.svg +0 -1
  631. package/dist/ionic/svg/arrow-down-left-box.svg +0 -1
  632. package/dist/ionic/svg/arrow-down-right-box-outline.svg +0 -1
  633. package/dist/ionic/svg/arrow-down-right-box-sharp.svg +0 -1
  634. package/dist/ionic/svg/arrow-down-right-box.svg +0 -1
  635. package/dist/ionic/svg/arrow-up-left-box-outline.svg +0 -1
  636. package/dist/ionic/svg/arrow-up-left-box-sharp.svg +0 -1
  637. package/dist/ionic/svg/arrow-up-left-box.svg +0 -1
  638. package/dist/ionic/svg/arrow-up-right-box-outline.svg +0 -1
  639. package/dist/ionic/svg/arrow-up-right-box-sharp.svg +0 -1
  640. package/dist/ionic/svg/arrow-up-right-box.svg +0 -1
  641. package/dist/ionic/svg/binoculars-outline.svg +0 -1
  642. package/dist/ionic/svg/binoculars-sharp.svg +0 -1
  643. package/dist/ionic/svg/binoculars.svg +0 -1
  644. package/dist/ionic/svg/logo-appflow.svg +0 -1
  645. package/dist/ionic/svg/logo-trapeze.svg +0 -1
  646. package/dist/ionic/svg/logo-x.svg +0 -1
package/hydrate/index.js CHANGED
@@ -2536,9 +2536,37 @@ const inheritAriaAttributes = (el, ignoreList) => {
2536
2536
  return inheritAttributes$1(el, attributesToInherit);
2537
2537
  };
2538
2538
  const addEventListener$1 = (el, eventName, callback, opts) => {
2539
+ var _a;
2540
+ if (typeof window !== 'undefined') {
2541
+ const win = window;
2542
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2543
+ if (config) {
2544
+ const ael = config.get('_ael');
2545
+ if (ael) {
2546
+ return ael(el, eventName, callback, opts);
2547
+ }
2548
+ else if (config._ael) {
2549
+ return config._ael(el, eventName, callback, opts);
2550
+ }
2551
+ }
2552
+ }
2539
2553
  return el.addEventListener(eventName, callback, opts);
2540
2554
  };
2541
2555
  const removeEventListener = (el, eventName, callback, opts) => {
2556
+ var _a;
2557
+ if (typeof window !== 'undefined') {
2558
+ const win = window;
2559
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2560
+ if (config) {
2561
+ const rel = config.get('_rel');
2562
+ if (rel) {
2563
+ return rel(el, eventName, callback, opts);
2564
+ }
2565
+ else if (config._rel) {
2566
+ return config._rel(el, eventName, callback, opts);
2567
+ }
2568
+ }
2569
+ }
2542
2570
  return el.removeEventListener(eventName, callback, opts);
2543
2571
  };
2544
2572
  /**
@@ -2693,7 +2721,7 @@ const getNextSiblingOfType = (element) => {
2693
2721
  return null;
2694
2722
  };
2695
2723
 
2696
- /* Ionicons v7.4.0, ES Modules */
2724
+ /* Ionicons v7.2.2, ES Modules */
2697
2725
  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>";
2698
2726
  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>";
2699
2727
  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>";
@@ -2702,7 +2730,7 @@ const caretUpSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000
2702
2730
  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>";
2703
2731
  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>";
2704
2732
  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>";
2705
- 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>";
2733
+ 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>";
2706
2734
  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>";
2707
2735
  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>";
2708
2736
  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>";
@@ -3199,9 +3227,12 @@ let accordionIds = 0;
3199
3227
  * @param message - The string message to be logged to the console.
3200
3228
  */
3201
3229
  const printIonWarning = (message, ...params) => {
3202
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3230
+ const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3231
+ if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3232
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3233
+ }
3203
3234
  };
3204
- /*
3235
+ /**
3205
3236
  * Logs an error to the console with an Ionic prefix
3206
3237
  * to indicate the library that is warning the developer.
3207
3238
  *
@@ -3209,7 +3240,10 @@ const printIonWarning = (message, ...params) => {
3209
3240
  * @param params - Additional arguments to supply to the console.error.
3210
3241
  */
3211
3242
  const printIonError = (message, ...params) => {
3212
- return console.error(`[Ionic Error]: ${message}`, ...params);
3243
+ const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3244
+ if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3245
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3246
+ }
3213
3247
  };
3214
3248
  /**
3215
3249
  * Prints an error informing developers that an implementation requires an element to be used
@@ -8473,6 +8507,7 @@ class Checkbox {
8473
8507
  this.labelPlacement = 'start';
8474
8508
  this.justify = undefined;
8475
8509
  this.alignment = undefined;
8510
+ this.required = false;
8476
8511
  }
8477
8512
  componentWillLoad() {
8478
8513
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8484,11 +8519,11 @@ class Checkbox {
8484
8519
  }
8485
8520
  }
8486
8521
  render() {
8487
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8522
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8488
8523
  const mode = getIonMode$1(this);
8489
8524
  const path = getSVGPath(mode, indeterminate);
8490
8525
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8491
- return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8526
+ return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8492
8527
  [mode]: true,
8493
8528
  'in-item': hostContext('ion-item', el),
8494
8529
  'checkbox-checked': checked,
@@ -8498,10 +8533,10 @@ class Checkbox {
8498
8533
  [`checkbox-justify-${justify}`]: justify !== undefined,
8499
8534
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8500
8535
  [`checkbox-label-placement-${labelPlacement}`]: true,
8501
- }), 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: {
8536
+ }), 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: {
8502
8537
  'label-text-wrapper': true,
8503
8538
  'label-text-wrapper-hidden': el.textContent === '',
8504
- }, 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)))));
8539
+ }, 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)))));
8505
8540
  }
8506
8541
  getSVGPath(mode, indeterminate) {
8507
8542
  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" }));
@@ -8528,6 +8563,7 @@ class Checkbox {
8528
8563
  "labelPlacement": [1, "label-placement"],
8529
8564
  "justify": [1],
8530
8565
  "alignment": [1],
8566
+ "required": [4],
8531
8567
  "setFocus": [64]
8532
8568
  },
8533
8569
  "$listeners$": undefined,
@@ -19003,7 +19039,7 @@ const computeDuration = (remaining, velocity) => {
19003
19039
  };
19004
19040
 
19005
19041
  const createSheetEnterAnimation = (opts) => {
19006
- const { currentBreakpoint, backdropBreakpoint } = opts;
19042
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19007
19043
  /**
19008
19044
  * If the backdropBreakpoint is undefined, then the backdrop
19009
19045
  * should always fade in. If the backdropBreakpoint came before the
@@ -19023,7 +19059,16 @@ const createSheetEnterAnimation = (opts) => {
19023
19059
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19024
19060
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19025
19061
  ]);
19026
- return { wrapperAnimation, backdropAnimation };
19062
+ /**
19063
+ * This allows the content to be scrollable at any breakpoint.
19064
+ */
19065
+ const contentAnimation = !expandToScroll
19066
+ ? createAnimation('contentAnimation').keyframes([
19067
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
19068
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
19069
+ ])
19070
+ : undefined;
19071
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
19027
19072
  };
19028
19073
  const createSheetLeaveAnimation = (opts) => {
19029
19074
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19058,22 +19103,68 @@ const createEnterAnimation$1 = () => {
19058
19103
  })
19059
19104
  .afterClearStyles(['pointer-events']);
19060
19105
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19061
- return { backdropAnimation, wrapperAnimation };
19106
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19062
19107
  };
19063
19108
  /**
19064
19109
  * iOS Modal Enter Animation for the Card presentation style
19065
19110
  */
19066
19111
  const iosEnterAnimation$3 = (baseEl, opts) => {
19067
- const { presentingEl, currentBreakpoint } = opts;
19112
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19068
19113
  const root = getElementRoot(baseEl);
19069
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19114
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19070
19115
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19071
19116
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
19117
+ // The content animation is only added if scrolling is enabled for
19118
+ // all the breakpoints.
19119
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19072
19120
  const baseAnimation = createAnimation('entering-base')
19073
19121
  .addElement(baseEl)
19074
19122
  .easing('cubic-bezier(0.32,0.72,0,1)')
19075
19123
  .duration(500)
19076
- .addAnimation(wrapperAnimation);
19124
+ .addAnimation([wrapperAnimation])
19125
+ .beforeAddWrite(() => {
19126
+ if (expandToScroll) {
19127
+ // Scroll can only be done when the modal is fully expanded.
19128
+ return;
19129
+ }
19130
+ /**
19131
+ * There are some browsers that causes flickering when
19132
+ * dragging the content when scroll is enabled at every
19133
+ * breakpoint. This is due to the wrapper element being
19134
+ * transformed off the screen and having a snap animation.
19135
+ *
19136
+ * A workaround is to clone the footer element and append
19137
+ * it outside of the wrapper element. This way, the footer
19138
+ * is still visible and the drag can be done without
19139
+ * flickering. The original footer is hidden until the modal
19140
+ * is dismissed. This maintains the animation of the footer
19141
+ * when the modal is dismissed.
19142
+ *
19143
+ * The workaround needs to be done before the animation starts
19144
+ * so there are no flickering issues.
19145
+ */
19146
+ const ionFooter = baseEl.querySelector('ion-footer');
19147
+ /**
19148
+ * This check is needed to prevent more than one footer
19149
+ * from being appended to the shadow root.
19150
+ * Otherwise, iOS and MD enter animations would append
19151
+ * the footer twice.
19152
+ */
19153
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19154
+ if (ionFooter && !ionFooterAlreadyAppended) {
19155
+ const footerHeight = ionFooter.clientHeight;
19156
+ const clonedFooter = ionFooter.cloneNode(true);
19157
+ baseEl.shadowRoot.appendChild(clonedFooter);
19158
+ ionFooter.style.setProperty('display', 'none');
19159
+ ionFooter.setAttribute('aria-hidden', 'true');
19160
+ // Padding is added to prevent some content from being hidden.
19161
+ const page = baseEl.querySelector('.ion-page');
19162
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19163
+ }
19164
+ });
19165
+ if (contentAnimation) {
19166
+ baseAnimation.addAnimation(contentAnimation);
19167
+ }
19077
19168
  if (presentingEl) {
19078
19169
  const isMobile = window.innerWidth < 768;
19079
19170
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19151,7 +19242,7 @@ const createLeaveAnimation$1 = () => {
19151
19242
  * iOS Modal Leave Animation
19152
19243
  */
19153
19244
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19154
- const { presentingEl, currentBreakpoint } = opts;
19245
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19155
19246
  const root = getElementRoot(baseEl);
19156
19247
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19157
19248
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19160,7 +19251,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19160
19251
  .addElement(baseEl)
19161
19252
  .easing('cubic-bezier(0.32,0.72,0,1)')
19162
19253
  .duration(duration)
19163
- .addAnimation(wrapperAnimation);
19254
+ .addAnimation(wrapperAnimation)
19255
+ .beforeAddWrite(() => {
19256
+ if (expandToScroll) {
19257
+ // Scroll can only be done when the modal is fully expanded.
19258
+ return;
19259
+ }
19260
+ /**
19261
+ * If expandToScroll is disabled, we need to swap
19262
+ * the visibility to the original, so the footer
19263
+ * dismisses with the modal and doesn't stay
19264
+ * until the modal is removed from the DOM.
19265
+ */
19266
+ const ionFooter = baseEl.querySelector('ion-footer');
19267
+ if (ionFooter) {
19268
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19269
+ ionFooter.style.removeProperty('display');
19270
+ ionFooter.removeAttribute('aria-hidden');
19271
+ clonedFooter.style.setProperty('display', 'none');
19272
+ clonedFooter.setAttribute('aria-hidden', 'true');
19273
+ const page = baseEl.querySelector('.ion-page');
19274
+ page.style.removeProperty('padding-bottom');
19275
+ }
19276
+ });
19164
19277
  if (presentingEl) {
19165
19278
  const isMobile = window.innerWidth < 768;
19166
19279
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19238,22 +19351,69 @@ const createEnterAnimation = () => {
19238
19351
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19239
19352
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19240
19353
  ]);
19241
- return { backdropAnimation, wrapperAnimation };
19354
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19242
19355
  };
19243
19356
  /**
19244
19357
  * Md Modal Enter Animation
19245
19358
  */
19246
19359
  const mdEnterAnimation$2 = (baseEl, opts) => {
19247
- const { currentBreakpoint } = opts;
19360
+ const { currentBreakpoint, expandToScroll } = opts;
19248
19361
  const root = getElementRoot(baseEl);
19249
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19362
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19250
19363
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19251
19364
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19252
- return createAnimation()
19365
+ // The content animation is only added if scrolling is enabled for
19366
+ // all the breakpoints.
19367
+ expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19368
+ const baseAnimation = createAnimation()
19253
19369
  .addElement(baseEl)
19254
19370
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19255
19371
  .duration(280)
19256
- .addAnimation([backdropAnimation, wrapperAnimation]);
19372
+ .addAnimation([backdropAnimation, wrapperAnimation])
19373
+ .beforeAddWrite(() => {
19374
+ if (expandToScroll) {
19375
+ // Scroll can only be done when the modal is fully expanded.
19376
+ return;
19377
+ }
19378
+ /**
19379
+ * There are some browsers that causes flickering when
19380
+ * dragging the content when scroll is enabled at every
19381
+ * breakpoint. This is due to the wrapper element being
19382
+ * transformed off the screen and having a snap animation.
19383
+ *
19384
+ * A workaround is to clone the footer element and append
19385
+ * it outside of the wrapper element. This way, the footer
19386
+ * is still visible and the drag can be done without
19387
+ * flickering. The original footer is hidden until the modal
19388
+ * is dismissed. This maintains the animation of the footer
19389
+ * when the modal is dismissed.
19390
+ *
19391
+ * The workaround needs to be done before the animation starts
19392
+ * so there are no flickering issues.
19393
+ */
19394
+ const ionFooter = baseEl.querySelector('ion-footer');
19395
+ /**
19396
+ * This check is needed to prevent more than one footer
19397
+ * from being appended to the shadow root.
19398
+ * Otherwise, iOS and MD enter animations would append
19399
+ * the footer twice.
19400
+ */
19401
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19402
+ if (ionFooter && !ionFooterAlreadyAppended) {
19403
+ const footerHeight = ionFooter.clientHeight;
19404
+ const clonedFooter = ionFooter.cloneNode(true);
19405
+ baseEl.shadowRoot.appendChild(clonedFooter);
19406
+ ionFooter.style.setProperty('display', 'none');
19407
+ ionFooter.setAttribute('aria-hidden', 'true');
19408
+ // Padding is added to prevent some content from being hidden.
19409
+ const page = baseEl.querySelector('.ion-page');
19410
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19411
+ }
19412
+ });
19413
+ if (contentAnimation) {
19414
+ baseAnimation.addAnimation(contentAnimation);
19415
+ }
19416
+ return baseAnimation;
19257
19417
  };
19258
19418
 
19259
19419
  const createLeaveAnimation = () => {
@@ -19268,18 +19428,41 @@ const createLeaveAnimation = () => {
19268
19428
  * Md Modal Leave Animation
19269
19429
  */
19270
19430
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19271
- const { currentBreakpoint } = opts;
19431
+ const { currentBreakpoint, expandToScroll } = opts;
19272
19432
  const root = getElementRoot(baseEl);
19273
19433
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19274
19434
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19275
19435
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19276
- return createAnimation()
19436
+ const baseAnimation = createAnimation()
19277
19437
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19278
19438
  .duration(200)
19279
- .addAnimation([backdropAnimation, wrapperAnimation]);
19439
+ .addAnimation([backdropAnimation, wrapperAnimation])
19440
+ .beforeAddWrite(() => {
19441
+ if (expandToScroll) {
19442
+ // Scroll can only be done when the modal is fully expanded.
19443
+ return;
19444
+ }
19445
+ /**
19446
+ * If expandToScroll is disabled, we need to swap
19447
+ * the visibility to the original, so the footer
19448
+ * dismisses with the modal and doesn't stay
19449
+ * until the modal is removed from the DOM.
19450
+ */
19451
+ const ionFooter = baseEl.querySelector('ion-footer');
19452
+ if (ionFooter) {
19453
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19454
+ ionFooter.style.removeProperty('display');
19455
+ ionFooter.removeAttribute('aria-hidden');
19456
+ clonedFooter.style.setProperty('display', 'none');
19457
+ clonedFooter.setAttribute('aria-hidden', 'true');
19458
+ const page = baseEl.querySelector('.ion-page');
19459
+ page.style.removeProperty('padding-bottom');
19460
+ }
19461
+ });
19462
+ return baseAnimation;
19280
19463
  };
19281
19464
 
19282
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19465
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19283
19466
  // Defaults for the sheet swipe animation
19284
19467
  const defaultBackdrop = [
19285
19468
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19296,6 +19479,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19296
19479
  { offset: 1, transform: 'translateY(100%)' },
19297
19480
  ],
19298
19481
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19482
+ CONTENT_KEYFRAMES: [
19483
+ { offset: 0, maxHeight: '100%' },
19484
+ { offset: 1, maxHeight: '0%' },
19485
+ ],
19299
19486
  };
19300
19487
  const contentEl = baseEl.querySelector('ion-content');
19301
19488
  const height = wrapperEl.clientHeight;
@@ -19303,10 +19490,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19303
19490
  let offset = 0;
19304
19491
  let canDismissBlocksGesture = false;
19305
19492
  const canDismissMaxStep = 0.95;
19306
- const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19307
- const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19308
19493
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
19309
19494
  const minBreakpoint = breakpoints[0];
19495
+ const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19496
+ const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19497
+ const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19310
19498
  const enableBackdrop = () => {
19311
19499
  baseEl.style.setProperty('pointer-events', 'auto');
19312
19500
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19329,6 +19517,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19329
19517
  */
19330
19518
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19331
19519
  };
19520
+ /**
19521
+ * Toggles the visible modal footer when `expandToScroll` is disabled.
19522
+ * @param footer The footer to show.
19523
+ */
19524
+ const swapFooterVisibility = (footer) => {
19525
+ const originalFooter = baseEl.querySelector('ion-footer');
19526
+ if (!originalFooter) {
19527
+ return;
19528
+ }
19529
+ const clonedFooter = wrapperEl.nextElementSibling;
19530
+ const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
19531
+ const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
19532
+ footerToShow.style.removeProperty('display');
19533
+ footerToShow.removeAttribute('aria-hidden');
19534
+ const page = baseEl.querySelector('.ion-page');
19535
+ if (footer === 'original') {
19536
+ page.style.removeProperty('padding-bottom');
19537
+ }
19538
+ else {
19539
+ const pagePadding = footerToShow.clientHeight;
19540
+ page.style.setProperty('padding-bottom', `${pagePadding}px`);
19541
+ }
19542
+ footerToHide.style.setProperty('display', 'none');
19543
+ footerToHide.setAttribute('aria-hidden', 'true');
19544
+ };
19332
19545
  /**
19333
19546
  * After the entering animation completes,
19334
19547
  * we need to set the animation to go from
@@ -19340,6 +19553,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19340
19553
  if (wrapperAnimation && backdropAnimation) {
19341
19554
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19342
19555
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19556
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19343
19557
  animation.progressStart(true, 1 - currentBreakpoint);
19344
19558
  /**
19345
19559
  * If backdrop is not enabled, then content
@@ -19356,7 +19570,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19356
19570
  disableBackdrop();
19357
19571
  }
19358
19572
  }
19359
- if (contentEl && currentBreakpoint !== maxBreakpoint) {
19573
+ if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19360
19574
  contentEl.scrollY = false;
19361
19575
  }
19362
19576
  const canStart = (detail) => {
@@ -19370,6 +19584,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19370
19584
  */
19371
19585
  const contentEl = findClosestIonContent(detail.event.target);
19372
19586
  currentBreakpoint = getCurrentBreakpoint();
19587
+ /**
19588
+ * If we have expandToScroll disabled, we should not allow the swipe gesture to start
19589
+ * if the content is being swiped.
19590
+ */
19591
+ if (!expandToScroll && contentEl) {
19592
+ return false;
19593
+ }
19373
19594
  if (currentBreakpoint === 1 && contentEl) {
19374
19595
  /**
19375
19596
  * The modal should never swipe to close on the content with a refresher.
@@ -19400,6 +19621,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19400
19621
  * Remove undefined check
19401
19622
  */
19402
19623
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
19624
+ /**
19625
+ * If expandToScroll is disabled, we need to swap
19626
+ * the footer visibility to the original, so if the modal
19627
+ * is dismissed, the footer dismisses with the modal
19628
+ * and doesn't stay on the screen after the modal is gone.
19629
+ */
19630
+ if (!expandToScroll) {
19631
+ swapFooterVisibility('original');
19632
+ }
19403
19633
  /**
19404
19634
  * If we are pulling down, then it is possible we are pulling on the content.
19405
19635
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19515,6 +19745,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19515
19745
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19516
19746
  },
19517
19747
  ]);
19748
+ if (contentAnimation) {
19749
+ /**
19750
+ * The modal content should scroll at any breakpoint when expandToScroll
19751
+ * is disabled. In order to do this, the content needs to be completely
19752
+ * viewable so scrolling can access everything. Otherwise, the default
19753
+ * behavior would show the content off the screen and only allow
19754
+ * scrolling when the sheet is fully expanded.
19755
+ */
19756
+ contentAnimation.keyframes([
19757
+ { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
19758
+ { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
19759
+ ]);
19760
+ }
19518
19761
  animation.progressStep(0);
19519
19762
  }
19520
19763
  /**
@@ -19522,6 +19765,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19522
19765
  * snapping animation completes.
19523
19766
  */
19524
19767
  gesture.enable(false);
19768
+ /**
19769
+ * If expandToScroll is disabled, we need to swap
19770
+ * the footer visibility to the cloned one so the footer
19771
+ * doesn't flicker when the sheet's height is animated.
19772
+ */
19773
+ if (!expandToScroll && shouldRemainOpen) {
19774
+ swapFooterVisibility('cloned');
19775
+ }
19525
19776
  if (shouldPreventDismiss) {
19526
19777
  handleCanDismiss(baseEl, animation);
19527
19778
  }
@@ -19529,13 +19780,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19529
19780
  onDismiss();
19530
19781
  }
19531
19782
  /**
19532
- * If the sheet is going to be fully expanded then we should enable
19533
- * scrolling immediately. The sheet modal animation takes ~500ms to finish
19534
- * so if we wait until then there is a visible delay for when scrolling is
19535
- * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19536
- * as the gesture is released, so we align with that.
19783
+ * Enables scrolling immediately if the sheet is about to fully expand
19784
+ * or if it allows scrolling at any breakpoint. Without this, there would
19785
+ * be a ~500ms delay while the modal animation completes, causing a
19786
+ * noticeable lag. Native iOS allows scrolling as soon as the gesture is
19787
+ * released, so we align with that behavior.
19537
19788
  */
19538
- if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19789
+ if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19539
19790
  contentEl.scrollY = true;
19540
19791
  }
19541
19792
  return new Promise((resolve) => {
@@ -19553,6 +19804,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19553
19804
  raf(() => {
19554
19805
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19555
19806
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19807
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19556
19808
  animation.progressStart(true, 1 - snapToBreakpoint);
19557
19809
  currentBreakpoint = snapToBreakpoint;
19558
19810
  onBreakpointChange(currentBreakpoint);
@@ -19605,10 +19857,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19605
19857
  };
19606
19858
  };
19607
19859
 
19608
- 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}";
19860
+ 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}";
19609
19861
  var IonModalIosStyle0 = modalIosCss;
19610
19862
 
19611
- 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}";
19863
+ 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}";
19612
19864
  var IonModalMdStyle0 = modalMdCss;
19613
19865
 
19614
19866
  // TODO(FW-2832): types
@@ -19687,6 +19939,7 @@ class Modal {
19687
19939
  this.enterAnimation = undefined;
19688
19940
  this.leaveAnimation = undefined;
19689
19941
  this.breakpoints = undefined;
19942
+ this.expandToScroll = true;
19690
19943
  this.initialBreakpoint = undefined;
19691
19944
  this.backdropBreakpoint = 0;
19692
19945
  this.handle = undefined;
@@ -19902,6 +20155,7 @@ class Modal {
19902
20155
  presentingEl: presentingElement,
19903
20156
  currentBreakpoint: this.initialBreakpoint,
19904
20157
  backdropBreakpoint: this.backdropBreakpoint,
20158
+ expandToScroll: this.expandToScroll,
19905
20159
  });
19906
20160
  /* tslint:disable-next-line */
19907
20161
  if (typeof window !== 'undefined') {
@@ -19952,7 +20206,10 @@ class Modal {
19952
20206
  // should be in the DOM and referenced by now, except
19953
20207
  // for the presenting el
19954
20208
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
19955
- const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20209
+ const ani = (this.animation = animationBuilder(el, {
20210
+ presentingEl: this.presentingElement,
20211
+ expandToScroll: this.expandToScroll,
20212
+ }));
19956
20213
  const contentEl = findIonContent(el);
19957
20214
  if (!contentEl) {
19958
20215
  printIonContentErrorMsg(el);
@@ -19997,9 +20254,10 @@ class Modal {
19997
20254
  presentingEl: this.presentingElement,
19998
20255
  currentBreakpoint: initialBreakpoint,
19999
20256
  backdropBreakpoint,
20257
+ expandToScroll: this.expandToScroll,
20000
20258
  }));
20001
20259
  ani.progressStart(true, 1);
20002
- 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) => {
20260
+ 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) => {
20003
20261
  if (this.currentBreakpoint !== breakpoint) {
20004
20262
  this.currentBreakpoint = breakpoint;
20005
20263
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20077,6 +20335,7 @@ class Modal {
20077
20335
  presentingEl: presentingElement,
20078
20336
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20079
20337
  backdropBreakpoint: this.backdropBreakpoint,
20338
+ expandToScroll: this.expandToScroll,
20080
20339
  });
20081
20340
  if (dismissed) {
20082
20341
  const { delegate } = this.getDelegate();
@@ -20162,23 +20421,23 @@ class Modal {
20162
20421
  return true;
20163
20422
  }
20164
20423
  render() {
20165
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20424
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20166
20425
  const showHandle = handle !== false && isSheetModal;
20167
20426
  const mode = getIonMode$1(this);
20168
20427
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20169
20428
  const isHandleCycle = handleBehavior === 'cycle';
20170
- return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20429
+ return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20171
20430
  zIndex: `${20000 + this.overlayIndex}`,
20172
- }, 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',
20431
+ }, 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: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
20173
20432
  /*
20174
20433
  role and aria-modal must be used on the
20175
20434
  same element. They must also be set inside the
20176
20435
  shadow DOM otherwise ion-button will not be highlighted
20177
20436
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20178
20437
  */
20179
- 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",
20438
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
20180
20439
  // Prevents the handle from receiving keyboard focus when it does not cycle
20181
- 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' }))));
20440
+ 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: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
20182
20441
  }
20183
20442
  get el() { return getElement(this); }
20184
20443
  static get watchers() { return {
@@ -20200,6 +20459,7 @@ class Modal {
20200
20459
  "enterAnimation": [16],
20201
20460
  "leaveAnimation": [16],
20202
20461
  "breakpoints": [16],
20462
+ "expandToScroll": [4, "expand-to-scroll"],
20203
20463
  "initialBreakpoint": [2, "initial-breakpoint"],
20204
20464
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20205
20465
  "handle": [4],
@@ -29674,6 +29934,7 @@ class Select {
29674
29934
  this.expandedIcon = undefined;
29675
29935
  this.shape = undefined;
29676
29936
  this.value = undefined;
29937
+ this.required = false;
29677
29938
  }
29678
29939
  styleChanged() {
29679
29940
  this.emitStyle();
@@ -30185,8 +30446,8 @@ class Select {
30185
30446
  return renderedLabel;
30186
30447
  }
30187
30448
  renderListbox() {
30188
- const { disabled, inputId, isExpanded } = this;
30189
- 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) }));
30449
+ const { disabled, inputId, isExpanded, required } = this;
30450
+ 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) }));
30190
30451
  }
30191
30452
  render() {
30192
30453
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30217,7 +30478,7 @@ class Select {
30217
30478
  * TODO(FW-5592): Remove hasStartEndSlots condition
30218
30479
  */
30219
30480
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30220
- return (hAsync(Host, { key: 'b2dca9ae25d88e4d9fdb55003041a66be5668fcf', onClick: this.onClick, class: createColorClasses$1(this.color, {
30481
+ return (hAsync(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses$1(this.color, {
30221
30482
  [mode]: true,
30222
30483
  'in-item': inItem,
30223
30484
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30233,7 +30494,7 @@ class Select {
30233
30494
  [`select-justify-${justify}`]: justifyEnabled,
30234
30495
  [`select-shape-${shape}`]: shape !== undefined,
30235
30496
  [`select-label-placement-${labelPlacement}`]: true,
30236
- }) }, 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" }))));
30497
+ }) }, hAsync("label", { key: '91674f8f5cce37c87a7096d09b3f1d351cba1527', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '2229333833047db13ed2a01cb10bb6e6f774031d', class: "select-wrapper-inner" }, hAsync("slot", { key: 'f2766bdf8bff261efa5711f72d9edef407e45189', name: "start" }), hAsync("div", { key: '84fec020ecaaac41298a01dbffdbb2f3744170b4', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '9b91237d7a1621bce1e15546abcb4f6b74cccc5f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'e02aea3e8f344376013257f5261a29408e62b359', class: "select-highlight" }))));
30237
30498
  }
30238
30499
  get el() { return getElement(this); }
30239
30500
  static get watchers() { return {
@@ -30269,6 +30530,7 @@ class Select {
30269
30530
  "expandedIcon": [1, "expanded-icon"],
30270
30531
  "shape": [1],
30271
30532
  "value": [1032],
30533
+ "required": [4],
30272
30534
  "isExpanded": [32],
30273
30535
  "open": [64]
30274
30536
  },
@@ -32665,6 +32927,7 @@ class Toggle {
32665
32927
  this.labelPlacement = 'start';
32666
32928
  this.justify = undefined;
32667
32929
  this.alignment = undefined;
32930
+ this.required = false;
32668
32931
  }
32669
32932
  disabledChanged() {
32670
32933
  if (this.gesture) {
@@ -32746,12 +33009,12 @@ class Toggle {
32746
33009
  return this.el.textContent !== '';
32747
33010
  }
32748
33011
  render() {
32749
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
33012
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32750
33013
  const mode = getIonMode$1(this);
32751
33014
  const value = this.getValue();
32752
33015
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32753
33016
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32754
- return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
33017
+ return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
32755
33018
  [mode]: true,
32756
33019
  'in-item': hostContext('ion-item', el),
32757
33020
  'toggle-activated': activated,
@@ -32761,10 +33024,10 @@ class Toggle {
32761
33024
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32762
33025
  [`toggle-label-placement-${labelPlacement}`]: true,
32763
33026
  [`toggle-${rtl}`]: true,
32764
- }) }, 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: {
33027
+ }) }, hAsync("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', 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: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
32765
33028
  'label-text-wrapper': true,
32766
33029
  'label-text-wrapper-hidden': !this.hasLabel,
32767
- }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
33030
+ }, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
32768
33031
  }
32769
33032
  get el() { return getElement(this); }
32770
33033
  static get watchers() { return {
@@ -32787,6 +33050,7 @@ class Toggle {
32787
33050
  "labelPlacement": [1, "label-placement"],
32788
33051
  "justify": [1],
32789
33052
  "alignment": [1],
33053
+ "required": [4],
32790
33054
  "activated": [32]
32791
33055
  },
32792
33056
  "$listeners$": undefined,
@@ -32818,6 +33082,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
32818
33082
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
32819
33083
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
32820
33084
  * @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
33085
+ *
33086
+ * @part background - The background of the toolbar, covering the entire area behind the toolbar content.
33087
+ * @part container - The container that wraps all toolbar content, including the default slot and named slot content.
33088
+ * @part content - The container for the default slot, wrapping content provided without a named slot.
32821
33089
  */
32822
33090
  class Toolbar {
32823
33091
  constructor(hostRef) {
@@ -32868,10 +33136,10 @@ class Toolbar {
32868
33136
  this.childrenStyles.forEach((value) => {
32869
33137
  Object.assign(childStyles, value);
32870
33138
  });
32871
- return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33139
+ return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32872
33140
  [mode]: true,
32873
33141
  'in-toolbar': hostContext('ion-toolbar', this.el),
32874
- })) }, 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" }))));
33142
+ })) }, hAsync("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), hAsync("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), hAsync("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), hAsync("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), hAsync("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), hAsync("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
32875
33143
  }
32876
33144
  get el() { return getElement(this); }
32877
33145
  static get style() { return {