@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.mjs CHANGED
@@ -2532,9 +2532,37 @@ const inheritAriaAttributes = (el, ignoreList) => {
2532
2532
  return inheritAttributes$1(el, attributesToInherit);
2533
2533
  };
2534
2534
  const addEventListener$1 = (el, eventName, callback, opts) => {
2535
+ var _a;
2536
+ if (typeof window !== 'undefined') {
2537
+ const win = window;
2538
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2539
+ if (config) {
2540
+ const ael = config.get('_ael');
2541
+ if (ael) {
2542
+ return ael(el, eventName, callback, opts);
2543
+ }
2544
+ else if (config._ael) {
2545
+ return config._ael(el, eventName, callback, opts);
2546
+ }
2547
+ }
2548
+ }
2535
2549
  return el.addEventListener(eventName, callback, opts);
2536
2550
  };
2537
2551
  const removeEventListener = (el, eventName, callback, opts) => {
2552
+ var _a;
2553
+ if (typeof window !== 'undefined') {
2554
+ const win = window;
2555
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
2556
+ if (config) {
2557
+ const rel = config.get('_rel');
2558
+ if (rel) {
2559
+ return rel(el, eventName, callback, opts);
2560
+ }
2561
+ else if (config._rel) {
2562
+ return config._rel(el, eventName, callback, opts);
2563
+ }
2564
+ }
2565
+ }
2538
2566
  return el.removeEventListener(eventName, callback, opts);
2539
2567
  };
2540
2568
  /**
@@ -2689,7 +2717,7 @@ const getNextSiblingOfType = (element) => {
2689
2717
  return null;
2690
2718
  };
2691
2719
 
2692
- /* Ionicons v7.4.0, ES Modules */
2720
+ /* Ionicons v7.2.2, ES Modules */
2693
2721
  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>";
2694
2722
  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>";
2695
2723
  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>";
@@ -2698,7 +2726,7 @@ const caretUpSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000
2698
2726
  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>";
2699
2727
  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>";
2700
2728
  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>";
2701
- 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>";
2729
+ 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>";
2702
2730
  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>";
2703
2731
  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>";
2704
2732
  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>";
@@ -3195,9 +3223,12 @@ let accordionIds = 0;
3195
3223
  * @param message - The string message to be logged to the console.
3196
3224
  */
3197
3225
  const printIonWarning = (message, ...params) => {
3198
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3226
+ const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3227
+ if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3228
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3229
+ }
3199
3230
  };
3200
- /*
3231
+ /**
3201
3232
  * Logs an error to the console with an Ionic prefix
3202
3233
  * to indicate the library that is warning the developer.
3203
3234
  *
@@ -3205,7 +3236,10 @@ const printIonWarning = (message, ...params) => {
3205
3236
  * @param params - Additional arguments to supply to the console.error.
3206
3237
  */
3207
3238
  const printIonError = (message, ...params) => {
3208
- return console.error(`[Ionic Error]: ${message}`, ...params);
3239
+ const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3240
+ if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3241
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3242
+ }
3209
3243
  };
3210
3244
  /**
3211
3245
  * Prints an error informing developers that an implementation requires an element to be used
@@ -8469,6 +8503,7 @@ class Checkbox {
8469
8503
  this.labelPlacement = 'start';
8470
8504
  this.justify = undefined;
8471
8505
  this.alignment = undefined;
8506
+ this.required = false;
8472
8507
  }
8473
8508
  componentWillLoad() {
8474
8509
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8480,11 +8515,11 @@ class Checkbox {
8480
8515
  }
8481
8516
  }
8482
8517
  render() {
8483
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8518
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8484
8519
  const mode = getIonMode$1(this);
8485
8520
  const path = getSVGPath(mode, indeterminate);
8486
8521
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8487
- return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8522
+ return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8488
8523
  [mode]: true,
8489
8524
  'in-item': hostContext('ion-item', el),
8490
8525
  'checkbox-checked': checked,
@@ -8494,10 +8529,10 @@ class Checkbox {
8494
8529
  [`checkbox-justify-${justify}`]: justify !== undefined,
8495
8530
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8496
8531
  [`checkbox-label-placement-${labelPlacement}`]: true,
8497
- }), 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: {
8532
+ }), 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: {
8498
8533
  'label-text-wrapper': true,
8499
8534
  'label-text-wrapper-hidden': el.textContent === '',
8500
- }, 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)))));
8535
+ }, 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)))));
8501
8536
  }
8502
8537
  getSVGPath(mode, indeterminate) {
8503
8538
  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" }));
@@ -8524,6 +8559,7 @@ class Checkbox {
8524
8559
  "labelPlacement": [1, "label-placement"],
8525
8560
  "justify": [1],
8526
8561
  "alignment": [1],
8562
+ "required": [4],
8527
8563
  "setFocus": [64]
8528
8564
  },
8529
8565
  "$listeners$": undefined,
@@ -18999,7 +19035,7 @@ const computeDuration = (remaining, velocity) => {
18999
19035
  };
19000
19036
 
19001
19037
  const createSheetEnterAnimation = (opts) => {
19002
- const { currentBreakpoint, backdropBreakpoint } = opts;
19038
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19003
19039
  /**
19004
19040
  * If the backdropBreakpoint is undefined, then the backdrop
19005
19041
  * should always fade in. If the backdropBreakpoint came before the
@@ -19019,7 +19055,16 @@ const createSheetEnterAnimation = (opts) => {
19019
19055
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19020
19056
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19021
19057
  ]);
19022
- return { wrapperAnimation, backdropAnimation };
19058
+ /**
19059
+ * This allows the content to be scrollable at any breakpoint.
19060
+ */
19061
+ const contentAnimation = !expandToScroll
19062
+ ? createAnimation('contentAnimation').keyframes([
19063
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
19064
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
19065
+ ])
19066
+ : undefined;
19067
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
19023
19068
  };
19024
19069
  const createSheetLeaveAnimation = (opts) => {
19025
19070
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19054,22 +19099,68 @@ const createEnterAnimation$1 = () => {
19054
19099
  })
19055
19100
  .afterClearStyles(['pointer-events']);
19056
19101
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19057
- return { backdropAnimation, wrapperAnimation };
19102
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19058
19103
  };
19059
19104
  /**
19060
19105
  * iOS Modal Enter Animation for the Card presentation style
19061
19106
  */
19062
19107
  const iosEnterAnimation$3 = (baseEl, opts) => {
19063
- const { presentingEl, currentBreakpoint } = opts;
19108
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19064
19109
  const root = getElementRoot(baseEl);
19065
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19110
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19066
19111
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19067
19112
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
19113
+ // The content animation is only added if scrolling is enabled for
19114
+ // all the breakpoints.
19115
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19068
19116
  const baseAnimation = createAnimation('entering-base')
19069
19117
  .addElement(baseEl)
19070
19118
  .easing('cubic-bezier(0.32,0.72,0,1)')
19071
19119
  .duration(500)
19072
- .addAnimation(wrapperAnimation);
19120
+ .addAnimation([wrapperAnimation])
19121
+ .beforeAddWrite(() => {
19122
+ if (expandToScroll) {
19123
+ // Scroll can only be done when the modal is fully expanded.
19124
+ return;
19125
+ }
19126
+ /**
19127
+ * There are some browsers that causes flickering when
19128
+ * dragging the content when scroll is enabled at every
19129
+ * breakpoint. This is due to the wrapper element being
19130
+ * transformed off the screen and having a snap animation.
19131
+ *
19132
+ * A workaround is to clone the footer element and append
19133
+ * it outside of the wrapper element. This way, the footer
19134
+ * is still visible and the drag can be done without
19135
+ * flickering. The original footer is hidden until the modal
19136
+ * is dismissed. This maintains the animation of the footer
19137
+ * when the modal is dismissed.
19138
+ *
19139
+ * The workaround needs to be done before the animation starts
19140
+ * so there are no flickering issues.
19141
+ */
19142
+ const ionFooter = baseEl.querySelector('ion-footer');
19143
+ /**
19144
+ * This check is needed to prevent more than one footer
19145
+ * from being appended to the shadow root.
19146
+ * Otherwise, iOS and MD enter animations would append
19147
+ * the footer twice.
19148
+ */
19149
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19150
+ if (ionFooter && !ionFooterAlreadyAppended) {
19151
+ const footerHeight = ionFooter.clientHeight;
19152
+ const clonedFooter = ionFooter.cloneNode(true);
19153
+ baseEl.shadowRoot.appendChild(clonedFooter);
19154
+ ionFooter.style.setProperty('display', 'none');
19155
+ ionFooter.setAttribute('aria-hidden', 'true');
19156
+ // Padding is added to prevent some content from being hidden.
19157
+ const page = baseEl.querySelector('.ion-page');
19158
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19159
+ }
19160
+ });
19161
+ if (contentAnimation) {
19162
+ baseAnimation.addAnimation(contentAnimation);
19163
+ }
19073
19164
  if (presentingEl) {
19074
19165
  const isMobile = window.innerWidth < 768;
19075
19166
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19147,7 +19238,7 @@ const createLeaveAnimation$1 = () => {
19147
19238
  * iOS Modal Leave Animation
19148
19239
  */
19149
19240
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19150
- const { presentingEl, currentBreakpoint } = opts;
19241
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19151
19242
  const root = getElementRoot(baseEl);
19152
19243
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19153
19244
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19156,7 +19247,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19156
19247
  .addElement(baseEl)
19157
19248
  .easing('cubic-bezier(0.32,0.72,0,1)')
19158
19249
  .duration(duration)
19159
- .addAnimation(wrapperAnimation);
19250
+ .addAnimation(wrapperAnimation)
19251
+ .beforeAddWrite(() => {
19252
+ if (expandToScroll) {
19253
+ // Scroll can only be done when the modal is fully expanded.
19254
+ return;
19255
+ }
19256
+ /**
19257
+ * If expandToScroll is disabled, we need to swap
19258
+ * the visibility to the original, so the footer
19259
+ * dismisses with the modal and doesn't stay
19260
+ * until the modal is removed from the DOM.
19261
+ */
19262
+ const ionFooter = baseEl.querySelector('ion-footer');
19263
+ if (ionFooter) {
19264
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19265
+ ionFooter.style.removeProperty('display');
19266
+ ionFooter.removeAttribute('aria-hidden');
19267
+ clonedFooter.style.setProperty('display', 'none');
19268
+ clonedFooter.setAttribute('aria-hidden', 'true');
19269
+ const page = baseEl.querySelector('.ion-page');
19270
+ page.style.removeProperty('padding-bottom');
19271
+ }
19272
+ });
19160
19273
  if (presentingEl) {
19161
19274
  const isMobile = window.innerWidth < 768;
19162
19275
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19234,22 +19347,69 @@ const createEnterAnimation = () => {
19234
19347
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19235
19348
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19236
19349
  ]);
19237
- return { backdropAnimation, wrapperAnimation };
19350
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19238
19351
  };
19239
19352
  /**
19240
19353
  * Md Modal Enter Animation
19241
19354
  */
19242
19355
  const mdEnterAnimation$2 = (baseEl, opts) => {
19243
- const { currentBreakpoint } = opts;
19356
+ const { currentBreakpoint, expandToScroll } = opts;
19244
19357
  const root = getElementRoot(baseEl);
19245
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19358
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19246
19359
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19247
19360
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19248
- return createAnimation()
19361
+ // The content animation is only added if scrolling is enabled for
19362
+ // all the breakpoints.
19363
+ expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19364
+ const baseAnimation = createAnimation()
19249
19365
  .addElement(baseEl)
19250
19366
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19251
19367
  .duration(280)
19252
- .addAnimation([backdropAnimation, wrapperAnimation]);
19368
+ .addAnimation([backdropAnimation, wrapperAnimation])
19369
+ .beforeAddWrite(() => {
19370
+ if (expandToScroll) {
19371
+ // Scroll can only be done when the modal is fully expanded.
19372
+ return;
19373
+ }
19374
+ /**
19375
+ * There are some browsers that causes flickering when
19376
+ * dragging the content when scroll is enabled at every
19377
+ * breakpoint. This is due to the wrapper element being
19378
+ * transformed off the screen and having a snap animation.
19379
+ *
19380
+ * A workaround is to clone the footer element and append
19381
+ * it outside of the wrapper element. This way, the footer
19382
+ * is still visible and the drag can be done without
19383
+ * flickering. The original footer is hidden until the modal
19384
+ * is dismissed. This maintains the animation of the footer
19385
+ * when the modal is dismissed.
19386
+ *
19387
+ * The workaround needs to be done before the animation starts
19388
+ * so there are no flickering issues.
19389
+ */
19390
+ const ionFooter = baseEl.querySelector('ion-footer');
19391
+ /**
19392
+ * This check is needed to prevent more than one footer
19393
+ * from being appended to the shadow root.
19394
+ * Otherwise, iOS and MD enter animations would append
19395
+ * the footer twice.
19396
+ */
19397
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19398
+ if (ionFooter && !ionFooterAlreadyAppended) {
19399
+ const footerHeight = ionFooter.clientHeight;
19400
+ const clonedFooter = ionFooter.cloneNode(true);
19401
+ baseEl.shadowRoot.appendChild(clonedFooter);
19402
+ ionFooter.style.setProperty('display', 'none');
19403
+ ionFooter.setAttribute('aria-hidden', 'true');
19404
+ // Padding is added to prevent some content from being hidden.
19405
+ const page = baseEl.querySelector('.ion-page');
19406
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
19407
+ }
19408
+ });
19409
+ if (contentAnimation) {
19410
+ baseAnimation.addAnimation(contentAnimation);
19411
+ }
19412
+ return baseAnimation;
19253
19413
  };
19254
19414
 
19255
19415
  const createLeaveAnimation = () => {
@@ -19264,18 +19424,41 @@ const createLeaveAnimation = () => {
19264
19424
  * Md Modal Leave Animation
19265
19425
  */
19266
19426
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19267
- const { currentBreakpoint } = opts;
19427
+ const { currentBreakpoint, expandToScroll } = opts;
19268
19428
  const root = getElementRoot(baseEl);
19269
19429
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19270
19430
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19271
19431
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19272
- return createAnimation()
19432
+ const baseAnimation = createAnimation()
19273
19433
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19274
19434
  .duration(200)
19275
- .addAnimation([backdropAnimation, wrapperAnimation]);
19435
+ .addAnimation([backdropAnimation, wrapperAnimation])
19436
+ .beforeAddWrite(() => {
19437
+ if (expandToScroll) {
19438
+ // Scroll can only be done when the modal is fully expanded.
19439
+ return;
19440
+ }
19441
+ /**
19442
+ * If expandToScroll is disabled, we need to swap
19443
+ * the visibility to the original, so the footer
19444
+ * dismisses with the modal and doesn't stay
19445
+ * until the modal is removed from the DOM.
19446
+ */
19447
+ const ionFooter = baseEl.querySelector('ion-footer');
19448
+ if (ionFooter) {
19449
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19450
+ ionFooter.style.removeProperty('display');
19451
+ ionFooter.removeAttribute('aria-hidden');
19452
+ clonedFooter.style.setProperty('display', 'none');
19453
+ clonedFooter.setAttribute('aria-hidden', 'true');
19454
+ const page = baseEl.querySelector('.ion-page');
19455
+ page.style.removeProperty('padding-bottom');
19456
+ }
19457
+ });
19458
+ return baseAnimation;
19276
19459
  };
19277
19460
 
19278
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19461
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19279
19462
  // Defaults for the sheet swipe animation
19280
19463
  const defaultBackdrop = [
19281
19464
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19292,6 +19475,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19292
19475
  { offset: 1, transform: 'translateY(100%)' },
19293
19476
  ],
19294
19477
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19478
+ CONTENT_KEYFRAMES: [
19479
+ { offset: 0, maxHeight: '100%' },
19480
+ { offset: 1, maxHeight: '0%' },
19481
+ ],
19295
19482
  };
19296
19483
  const contentEl = baseEl.querySelector('ion-content');
19297
19484
  const height = wrapperEl.clientHeight;
@@ -19299,10 +19486,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19299
19486
  let offset = 0;
19300
19487
  let canDismissBlocksGesture = false;
19301
19488
  const canDismissMaxStep = 0.95;
19302
- const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19303
- const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19304
19489
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
19305
19490
  const minBreakpoint = breakpoints[0];
19491
+ const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19492
+ const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19493
+ const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19306
19494
  const enableBackdrop = () => {
19307
19495
  baseEl.style.setProperty('pointer-events', 'auto');
19308
19496
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19325,6 +19513,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19325
19513
  */
19326
19514
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19327
19515
  };
19516
+ /**
19517
+ * Toggles the visible modal footer when `expandToScroll` is disabled.
19518
+ * @param footer The footer to show.
19519
+ */
19520
+ const swapFooterVisibility = (footer) => {
19521
+ const originalFooter = baseEl.querySelector('ion-footer');
19522
+ if (!originalFooter) {
19523
+ return;
19524
+ }
19525
+ const clonedFooter = wrapperEl.nextElementSibling;
19526
+ const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
19527
+ const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
19528
+ footerToShow.style.removeProperty('display');
19529
+ footerToShow.removeAttribute('aria-hidden');
19530
+ const page = baseEl.querySelector('.ion-page');
19531
+ if (footer === 'original') {
19532
+ page.style.removeProperty('padding-bottom');
19533
+ }
19534
+ else {
19535
+ const pagePadding = footerToShow.clientHeight;
19536
+ page.style.setProperty('padding-bottom', `${pagePadding}px`);
19537
+ }
19538
+ footerToHide.style.setProperty('display', 'none');
19539
+ footerToHide.setAttribute('aria-hidden', 'true');
19540
+ };
19328
19541
  /**
19329
19542
  * After the entering animation completes,
19330
19543
  * we need to set the animation to go from
@@ -19336,6 +19549,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19336
19549
  if (wrapperAnimation && backdropAnimation) {
19337
19550
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19338
19551
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19552
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19339
19553
  animation.progressStart(true, 1 - currentBreakpoint);
19340
19554
  /**
19341
19555
  * If backdrop is not enabled, then content
@@ -19352,7 +19566,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19352
19566
  disableBackdrop();
19353
19567
  }
19354
19568
  }
19355
- if (contentEl && currentBreakpoint !== maxBreakpoint) {
19569
+ if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19356
19570
  contentEl.scrollY = false;
19357
19571
  }
19358
19572
  const canStart = (detail) => {
@@ -19366,6 +19580,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19366
19580
  */
19367
19581
  const contentEl = findClosestIonContent(detail.event.target);
19368
19582
  currentBreakpoint = getCurrentBreakpoint();
19583
+ /**
19584
+ * If we have expandToScroll disabled, we should not allow the swipe gesture to start
19585
+ * if the content is being swiped.
19586
+ */
19587
+ if (!expandToScroll && contentEl) {
19588
+ return false;
19589
+ }
19369
19590
  if (currentBreakpoint === 1 && contentEl) {
19370
19591
  /**
19371
19592
  * The modal should never swipe to close on the content with a refresher.
@@ -19396,6 +19617,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19396
19617
  * Remove undefined check
19397
19618
  */
19398
19619
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
19620
+ /**
19621
+ * If expandToScroll is disabled, we need to swap
19622
+ * the footer visibility to the original, so if the modal
19623
+ * is dismissed, the footer dismisses with the modal
19624
+ * and doesn't stay on the screen after the modal is gone.
19625
+ */
19626
+ if (!expandToScroll) {
19627
+ swapFooterVisibility('original');
19628
+ }
19399
19629
  /**
19400
19630
  * If we are pulling down, then it is possible we are pulling on the content.
19401
19631
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19511,6 +19741,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19511
19741
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19512
19742
  },
19513
19743
  ]);
19744
+ if (contentAnimation) {
19745
+ /**
19746
+ * The modal content should scroll at any breakpoint when expandToScroll
19747
+ * is disabled. In order to do this, the content needs to be completely
19748
+ * viewable so scrolling can access everything. Otherwise, the default
19749
+ * behavior would show the content off the screen and only allow
19750
+ * scrolling when the sheet is fully expanded.
19751
+ */
19752
+ contentAnimation.keyframes([
19753
+ { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
19754
+ { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
19755
+ ]);
19756
+ }
19514
19757
  animation.progressStep(0);
19515
19758
  }
19516
19759
  /**
@@ -19518,6 +19761,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19518
19761
  * snapping animation completes.
19519
19762
  */
19520
19763
  gesture.enable(false);
19764
+ /**
19765
+ * If expandToScroll is disabled, we need to swap
19766
+ * the footer visibility to the cloned one so the footer
19767
+ * doesn't flicker when the sheet's height is animated.
19768
+ */
19769
+ if (!expandToScroll && shouldRemainOpen) {
19770
+ swapFooterVisibility('cloned');
19771
+ }
19521
19772
  if (shouldPreventDismiss) {
19522
19773
  handleCanDismiss(baseEl, animation);
19523
19774
  }
@@ -19525,13 +19776,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19525
19776
  onDismiss();
19526
19777
  }
19527
19778
  /**
19528
- * If the sheet is going to be fully expanded then we should enable
19529
- * scrolling immediately. The sheet modal animation takes ~500ms to finish
19530
- * so if we wait until then there is a visible delay for when scrolling is
19531
- * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19532
- * as the gesture is released, so we align with that.
19779
+ * Enables scrolling immediately if the sheet is about to fully expand
19780
+ * or if it allows scrolling at any breakpoint. Without this, there would
19781
+ * be a ~500ms delay while the modal animation completes, causing a
19782
+ * noticeable lag. Native iOS allows scrolling as soon as the gesture is
19783
+ * released, so we align with that behavior.
19533
19784
  */
19534
- if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19785
+ if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19535
19786
  contentEl.scrollY = true;
19536
19787
  }
19537
19788
  return new Promise((resolve) => {
@@ -19549,6 +19800,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19549
19800
  raf(() => {
19550
19801
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19551
19802
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19803
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19552
19804
  animation.progressStart(true, 1 - snapToBreakpoint);
19553
19805
  currentBreakpoint = snapToBreakpoint;
19554
19806
  onBreakpointChange(currentBreakpoint);
@@ -19601,10 +19853,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19601
19853
  };
19602
19854
  };
19603
19855
 
19604
- 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}";
19856
+ 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}";
19605
19857
  var IonModalIosStyle0 = modalIosCss;
19606
19858
 
19607
- 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}";
19859
+ 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}";
19608
19860
  var IonModalMdStyle0 = modalMdCss;
19609
19861
 
19610
19862
  // TODO(FW-2832): types
@@ -19683,6 +19935,7 @@ class Modal {
19683
19935
  this.enterAnimation = undefined;
19684
19936
  this.leaveAnimation = undefined;
19685
19937
  this.breakpoints = undefined;
19938
+ this.expandToScroll = true;
19686
19939
  this.initialBreakpoint = undefined;
19687
19940
  this.backdropBreakpoint = 0;
19688
19941
  this.handle = undefined;
@@ -19898,6 +20151,7 @@ class Modal {
19898
20151
  presentingEl: presentingElement,
19899
20152
  currentBreakpoint: this.initialBreakpoint,
19900
20153
  backdropBreakpoint: this.backdropBreakpoint,
20154
+ expandToScroll: this.expandToScroll,
19901
20155
  });
19902
20156
  /* tslint:disable-next-line */
19903
20157
  if (typeof window !== 'undefined') {
@@ -19948,7 +20202,10 @@ class Modal {
19948
20202
  // should be in the DOM and referenced by now, except
19949
20203
  // for the presenting el
19950
20204
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
19951
- const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20205
+ const ani = (this.animation = animationBuilder(el, {
20206
+ presentingEl: this.presentingElement,
20207
+ expandToScroll: this.expandToScroll,
20208
+ }));
19952
20209
  const contentEl = findIonContent(el);
19953
20210
  if (!contentEl) {
19954
20211
  printIonContentErrorMsg(el);
@@ -19993,9 +20250,10 @@ class Modal {
19993
20250
  presentingEl: this.presentingElement,
19994
20251
  currentBreakpoint: initialBreakpoint,
19995
20252
  backdropBreakpoint,
20253
+ expandToScroll: this.expandToScroll,
19996
20254
  }));
19997
20255
  ani.progressStart(true, 1);
19998
- 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) => {
20256
+ 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) => {
19999
20257
  if (this.currentBreakpoint !== breakpoint) {
20000
20258
  this.currentBreakpoint = breakpoint;
20001
20259
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20073,6 +20331,7 @@ class Modal {
20073
20331
  presentingEl: presentingElement,
20074
20332
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20075
20333
  backdropBreakpoint: this.backdropBreakpoint,
20334
+ expandToScroll: this.expandToScroll,
20076
20335
  });
20077
20336
  if (dismissed) {
20078
20337
  const { delegate } = this.getDelegate();
@@ -20158,23 +20417,23 @@ class Modal {
20158
20417
  return true;
20159
20418
  }
20160
20419
  render() {
20161
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20420
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20162
20421
  const showHandle = handle !== false && isSheetModal;
20163
20422
  const mode = getIonMode$1(this);
20164
20423
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20165
20424
  const isHandleCycle = handleBehavior === 'cycle';
20166
- return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20425
+ return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20167
20426
  zIndex: `${20000 + this.overlayIndex}`,
20168
- }, 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',
20427
+ }, 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',
20169
20428
  /*
20170
20429
  role and aria-modal must be used on the
20171
20430
  same element. They must also be set inside the
20172
20431
  shadow DOM otherwise ion-button will not be highlighted
20173
20432
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20174
20433
  */
20175
- 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",
20434
+ 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",
20176
20435
  // Prevents the handle from receiving keyboard focus when it does not cycle
20177
- 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' }))));
20436
+ 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' }))));
20178
20437
  }
20179
20438
  get el() { return getElement(this); }
20180
20439
  static get watchers() { return {
@@ -20196,6 +20455,7 @@ class Modal {
20196
20455
  "enterAnimation": [16],
20197
20456
  "leaveAnimation": [16],
20198
20457
  "breakpoints": [16],
20458
+ "expandToScroll": [4, "expand-to-scroll"],
20199
20459
  "initialBreakpoint": [2, "initial-breakpoint"],
20200
20460
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20201
20461
  "handle": [4],
@@ -29670,6 +29930,7 @@ class Select {
29670
29930
  this.expandedIcon = undefined;
29671
29931
  this.shape = undefined;
29672
29932
  this.value = undefined;
29933
+ this.required = false;
29673
29934
  }
29674
29935
  styleChanged() {
29675
29936
  this.emitStyle();
@@ -30181,8 +30442,8 @@ class Select {
30181
30442
  return renderedLabel;
30182
30443
  }
30183
30444
  renderListbox() {
30184
- const { disabled, inputId, isExpanded } = this;
30185
- 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) }));
30445
+ const { disabled, inputId, isExpanded, required } = this;
30446
+ 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) }));
30186
30447
  }
30187
30448
  render() {
30188
30449
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30213,7 +30474,7 @@ class Select {
30213
30474
  * TODO(FW-5592): Remove hasStartEndSlots condition
30214
30475
  */
30215
30476
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30216
- return (hAsync(Host, { key: 'b2dca9ae25d88e4d9fdb55003041a66be5668fcf', onClick: this.onClick, class: createColorClasses$1(this.color, {
30477
+ return (hAsync(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses$1(this.color, {
30217
30478
  [mode]: true,
30218
30479
  'in-item': inItem,
30219
30480
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30229,7 +30490,7 @@ class Select {
30229
30490
  [`select-justify-${justify}`]: justifyEnabled,
30230
30491
  [`select-shape-${shape}`]: shape !== undefined,
30231
30492
  [`select-label-placement-${labelPlacement}`]: true,
30232
- }) }, 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" }))));
30493
+ }) }, 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" }))));
30233
30494
  }
30234
30495
  get el() { return getElement(this); }
30235
30496
  static get watchers() { return {
@@ -30265,6 +30526,7 @@ class Select {
30265
30526
  "expandedIcon": [1, "expanded-icon"],
30266
30527
  "shape": [1],
30267
30528
  "value": [1032],
30529
+ "required": [4],
30268
30530
  "isExpanded": [32],
30269
30531
  "open": [64]
30270
30532
  },
@@ -32661,6 +32923,7 @@ class Toggle {
32661
32923
  this.labelPlacement = 'start';
32662
32924
  this.justify = undefined;
32663
32925
  this.alignment = undefined;
32926
+ this.required = false;
32664
32927
  }
32665
32928
  disabledChanged() {
32666
32929
  if (this.gesture) {
@@ -32742,12 +33005,12 @@ class Toggle {
32742
33005
  return this.el.textContent !== '';
32743
33006
  }
32744
33007
  render() {
32745
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
33008
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32746
33009
  const mode = getIonMode$1(this);
32747
33010
  const value = this.getValue();
32748
33011
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
32749
33012
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
32750
- return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
33013
+ return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
32751
33014
  [mode]: true,
32752
33015
  'in-item': hostContext('ion-item', el),
32753
33016
  'toggle-activated': activated,
@@ -32757,10 +33020,10 @@ class Toggle {
32757
33020
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
32758
33021
  [`toggle-label-placement-${labelPlacement}`]: true,
32759
33022
  [`toggle-${rtl}`]: true,
32760
- }) }, 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: {
33023
+ }) }, 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: {
32761
33024
  'label-text-wrapper': true,
32762
33025
  'label-text-wrapper-hidden': !this.hasLabel,
32763
- }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
33026
+ }, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
32764
33027
  }
32765
33028
  get el() { return getElement(this); }
32766
33029
  static get watchers() { return {
@@ -32783,6 +33046,7 @@ class Toggle {
32783
33046
  "labelPlacement": [1, "label-placement"],
32784
33047
  "justify": [1],
32785
33048
  "alignment": [1],
33049
+ "required": [4],
32786
33050
  "activated": [32]
32787
33051
  },
32788
33052
  "$listeners$": undefined,
@@ -32814,6 +33078,10 @@ var IonToolbarMdStyle0 = toolbarMdCss;
32814
33078
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
32815
33079
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
32816
33080
  * @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
33081
+ *
33082
+ * @part background - The background of the toolbar, covering the entire area behind the toolbar content.
33083
+ * @part container - The container that wraps all toolbar content, including the default slot and named slot content.
33084
+ * @part content - The container for the default slot, wrapping content provided without a named slot.
32817
33085
  */
32818
33086
  class Toolbar {
32819
33087
  constructor(hostRef) {
@@ -32864,10 +33132,10 @@ class Toolbar {
32864
33132
  this.childrenStyles.forEach((value) => {
32865
33133
  Object.assign(childStyles, value);
32866
33134
  });
32867
- return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33135
+ return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32868
33136
  [mode]: true,
32869
33137
  'in-toolbar': hostContext('ion-toolbar', this.el),
32870
- })) }, 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" }))));
33138
+ })) }, 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" }))));
32871
33139
  }
32872
33140
  get el() { return getElement(this); }
32873
33141
  static get style() { return {