@ionic/core 8.4.4-dev.11741027468.1f4941f2 → 8.4.4-dev.11741032668.18899f9b

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 (383) hide show
  1. package/components/checkbox.js +4 -6
  2. package/components/index6.js +3 -11
  3. package/components/ion-select.js +14 -43
  4. package/components/ion-toggle.js +4 -6
  5. package/components/ionic-global.js +2 -1
  6. package/components/modal.js +35 -259
  7. package/components/toolbar.js +2 -2
  8. package/css/core.css.map +1 -1
  9. package/css/ionic.bundle.css.map +1 -1
  10. package/dist/cjs/{app-globals-21afee77.js → app-globals-4283fe37.js} +1 -1
  11. package/dist/cjs/{data-108e531d.js → data-21dc0f81.js} +1 -1
  12. package/dist/cjs/{hardware-back-button-9e8a2c4f.js → hardware-back-button-f2cbbdce.js} +1 -1
  13. package/dist/cjs/{index-2a46a047.js → index-5915f9b3.js} +3 -11
  14. package/dist/cjs/{index-26bb7e42.js → index-90ec3b6c.js} +4 -4
  15. package/dist/cjs/{index-0ff61d0b.js → index-9c6c9e9c.js} +3 -3
  16. package/dist/cjs/{index-6770fc00.js → index-c441c903.js} +1 -1
  17. package/dist/cjs/index.cjs.js +8 -8
  18. package/dist/cjs/{input-shims-fd997b01.js → input-shims-e748a364.js} +2 -4
  19. package/dist/cjs/{input.utils-c15a1814.js → input.utils-74e4ec28.js} +1 -1
  20. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  22. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  23. package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
  24. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  25. package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
  26. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
  27. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
  28. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
  30. package/dist/cjs/ion-checkbox.cjs.entry.js +5 -6
  31. package/dist/cjs/ion-chip.cjs.entry.js +1 -1
  32. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  33. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
  35. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  36. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  37. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  40. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  41. package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
  42. package/dist/cjs/ion-loading.cjs.entry.js +4 -4
  43. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  44. package/dist/cjs/ion-modal.cjs.entry.js +41 -264
  45. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-picker-column-option.cjs.entry.js +1 -1
  47. package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
  48. package/dist/cjs/ion-popover.cjs.entry.js +5 -5
  49. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  50. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
  51. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  52. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  55. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  56. package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
  57. package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
  58. package/dist/cjs/ion-select-modal.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-select_3.cjs.entry.js +17 -45
  60. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  61. package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
  62. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +1 -1
  63. package/dist/cjs/ion-text.cjs.entry.js +1 -1
  64. package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-toast.cjs.entry.js +4 -4
  66. package/dist/cjs/ion-toggle.cjs.entry.js +5 -6
  67. package/dist/cjs/{ionic-global-d9a8bb5b.js → ionic-global-96da1b2e.js} +2 -1
  68. package/dist/cjs/ionic.cjs.js +3 -3
  69. package/dist/cjs/{ios.transition-a4f35c55.js → ios.transition-2dae3b92.js} +3 -3
  70. package/dist/cjs/loader.cjs.js +3 -3
  71. package/dist/cjs/{md.transition-cdf904e6.js → md.transition-ea3260a7.js} +3 -3
  72. package/dist/cjs/{overlays-86695cf1.js → overlays-3880b5b5.js} +3 -3
  73. package/dist/cjs/{status-tap-1a2485c1.js → status-tap-fb807fad.js} +2 -3
  74. package/dist/collection/components/checkbox/checkbox.js +4 -23
  75. package/dist/collection/components/modal/animations/ios.enter.js +4 -50
  76. package/dist/collection/components/modal/animations/ios.leave.js +2 -24
  77. package/dist/collection/components/modal/animations/md.enter.js +5 -52
  78. package/dist/collection/components/modal/animations/md.leave.js +3 -26
  79. package/dist/collection/components/modal/animations/sheet.js +2 -11
  80. package/dist/collection/components/modal/gestures/sheet.js +10 -79
  81. package/dist/collection/components/modal/modal.ios.css +0 -16
  82. package/dist/collection/components/modal/modal.js +7 -32
  83. package/dist/collection/components/modal/modal.md.css +0 -6
  84. package/dist/collection/components/select/select.js +13 -59
  85. package/dist/collection/components/toggle/toggle.js +4 -23
  86. package/dist/collection/components/toolbar/toolbar.js +2 -6
  87. package/dist/collection/utils/logging/index.js +3 -10
  88. package/dist/collection/utils/platform.js +2 -1
  89. package/dist/collection/utils/test/platform.utils.js +1 -1
  90. package/dist/docs.json +2 -115
  91. package/dist/esm/{app-globals-5dbb61a5.js → app-globals-c10a1137.js} +1 -1
  92. package/dist/esm/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  93. package/dist/esm/{hardware-back-button-06ef3c3e.js → hardware-back-button-44195e92.js} +1 -1
  94. package/dist/esm/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
  95. package/dist/esm/{index-6ad967f3.js → index-9b0d46f4.js} +3 -11
  96. package/dist/esm/{index-6a5baab0.js → index-b019fc18.js} +4 -4
  97. package/dist/esm/{index-7105cd59.js → index-e1e9a0d3.js} +3 -3
  98. package/dist/esm/index.js +8 -8
  99. package/dist/esm/{input-shims-dff819a9.js → input-shims-0e65111b.js} +2 -4
  100. package/dist/esm/{input.utils-2f1029cf.js → input.utils-1ad8dafc.js} +1 -1
  101. package/dist/esm/ion-accordion_2.entry.js +2 -2
  102. package/dist/esm/ion-action-sheet.entry.js +4 -4
  103. package/dist/esm/ion-alert.entry.js +4 -4
  104. package/dist/esm/ion-app_8.entry.js +10 -10
  105. package/dist/esm/ion-avatar_3.entry.js +1 -1
  106. package/dist/esm/ion-back-button.entry.js +1 -1
  107. package/dist/esm/ion-backdrop.entry.js +1 -1
  108. package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
  109. package/dist/esm/ion-button_2.entry.js +2 -2
  110. package/dist/esm/ion-card_5.entry.js +1 -1
  111. package/dist/esm/ion-checkbox.entry.js +5 -6
  112. package/dist/esm/ion-chip.entry.js +1 -1
  113. package/dist/esm/ion-col_3.entry.js +1 -1
  114. package/dist/esm/ion-datetime-button.entry.js +3 -3
  115. package/dist/esm/ion-datetime_3.entry.js +5 -5
  116. package/dist/esm/ion-fab_3.entry.js +1 -1
  117. package/dist/esm/ion-img.entry.js +1 -1
  118. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  119. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  120. package/dist/esm/ion-input.entry.js +3 -3
  121. package/dist/esm/ion-item-option_3.entry.js +3 -3
  122. package/dist/esm/ion-item_8.entry.js +1 -1
  123. package/dist/esm/ion-loading.entry.js +4 -4
  124. package/dist/esm/ion-menu_3.entry.js +5 -5
  125. package/dist/esm/ion-modal.entry.js +41 -264
  126. package/dist/esm/ion-nav_2.entry.js +3 -3
  127. package/dist/esm/ion-picker-column-option.entry.js +1 -1
  128. package/dist/esm/ion-picker-column.entry.js +1 -1
  129. package/dist/esm/ion-popover.entry.js +5 -5
  130. package/dist/esm/ion-progress-bar.entry.js +1 -1
  131. package/dist/esm/ion-radio_2.entry.js +1 -1
  132. package/dist/esm/ion-range.entry.js +3 -3
  133. package/dist/esm/ion-refresher_2.entry.js +3 -3
  134. package/dist/esm/ion-reorder_2.entry.js +3 -3
  135. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  136. package/dist/esm/ion-route_4.entry.js +1 -1
  137. package/dist/esm/ion-searchbar.entry.js +1 -1
  138. package/dist/esm/ion-segment_2.entry.js +1 -1
  139. package/dist/esm/ion-select-modal.entry.js +4 -4
  140. package/dist/esm/ion-select_3.entry.js +18 -46
  141. package/dist/esm/ion-spinner.entry.js +1 -1
  142. package/dist/esm/ion-split-pane.entry.js +1 -1
  143. package/dist/esm/ion-tab-bar_2.entry.js +1 -1
  144. package/dist/esm/ion-text.entry.js +1 -1
  145. package/dist/esm/ion-textarea.entry.js +3 -3
  146. package/dist/esm/ion-toast.entry.js +4 -4
  147. package/dist/esm/ion-toggle.entry.js +5 -6
  148. package/dist/esm/{ionic-global-c81d82ab.js → ionic-global-bf78a847.js} +2 -1
  149. package/dist/esm/ionic.js +3 -3
  150. package/dist/esm/{ios.transition-314468a2.js → ios.transition-b7103952.js} +3 -3
  151. package/dist/esm/loader.js +3 -3
  152. package/dist/esm/{md.transition-a560e0e2.js → md.transition-e4034e0a.js} +3 -3
  153. package/dist/esm/{overlays-9a81f230.js → overlays-aea27b63.js} +3 -3
  154. package/dist/esm/{status-tap-d07dbc82.js → status-tap-163e8128.js} +2 -3
  155. package/dist/esm-es5/app-globals-c10a1137.js +4 -0
  156. package/dist/esm-es5/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  157. package/dist/esm-es5/{hardware-back-button-06ef3c3e.js → hardware-back-button-44195e92.js} +1 -1
  158. package/dist/esm-es5/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
  159. package/dist/esm-es5/index-9b0d46f4.js +4 -0
  160. package/dist/esm-es5/{index-6a5baab0.js → index-b019fc18.js} +1 -1
  161. package/dist/esm-es5/{index-7105cd59.js → index-e1e9a0d3.js} +1 -1
  162. package/dist/esm-es5/index.js +1 -1
  163. package/dist/esm-es5/input-shims-0e65111b.js +4 -0
  164. package/dist/esm-es5/{input.utils-2f1029cf.js → input.utils-1ad8dafc.js} +1 -1
  165. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  166. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  167. package/dist/esm-es5/ion-alert.entry.js +1 -1
  168. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  169. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  170. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  171. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  172. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  174. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  175. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  176. package/dist/esm-es5/ion-chip.entry.js +1 -1
  177. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  178. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  179. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  181. package/dist/esm-es5/ion-img.entry.js +1 -1
  182. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  183. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  184. package/dist/esm-es5/ion-input.entry.js +1 -1
  185. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  186. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  187. package/dist/esm-es5/ion-loading.entry.js +1 -1
  188. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  189. package/dist/esm-es5/ion-modal.entry.js +1 -1
  190. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  191. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  192. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  193. package/dist/esm-es5/ion-popover.entry.js +1 -1
  194. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  195. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  196. package/dist/esm-es5/ion-range.entry.js +1 -1
  197. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  198. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  199. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  200. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  201. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  202. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  203. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  204. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  205. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  206. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  207. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  208. package/dist/esm-es5/ion-text.entry.js +1 -1
  209. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  210. package/dist/esm-es5/ion-toast.entry.js +1 -1
  211. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  212. package/dist/esm-es5/{ionic-global-c81d82ab.js → ionic-global-bf78a847.js} +1 -1
  213. package/dist/esm-es5/ionic.js +1 -1
  214. package/dist/esm-es5/{ios.transition-314468a2.js → ios.transition-b7103952.js} +1 -1
  215. package/dist/esm-es5/loader.js +1 -1
  216. package/dist/esm-es5/{md.transition-a560e0e2.js → md.transition-e4034e0a.js} +1 -1
  217. package/dist/esm-es5/{overlays-9a81f230.js → overlays-aea27b63.js} +1 -1
  218. package/dist/esm-es5/status-tap-163e8128.js +4 -0
  219. package/dist/html.html-data.json +0 -16
  220. package/dist/ionic/index.esm.js +1 -1
  221. package/dist/ionic/ionic.esm.js +1 -1
  222. package/dist/ionic/ionic.js +1 -1
  223. package/dist/ionic/{p-5b932840.entry.js → p-026517fb.entry.js} +1 -1
  224. package/dist/ionic/{p-e8f34871.entry.js → p-035c0885.entry.js} +1 -1
  225. package/dist/ionic/p-0440660b.js +4 -0
  226. package/dist/ionic/p-06fee233.js +4 -0
  227. package/dist/ionic/p-075a94bd.js +4 -0
  228. package/dist/ionic/{p-c935cfc9.js → p-0a499487.js} +1 -1
  229. package/dist/ionic/{p-484d855b.system.entry.js → p-0d0a6fb9.system.entry.js} +2 -2
  230. package/dist/ionic/{p-d7bb5325.entry.js → p-0dc23518.entry.js} +1 -1
  231. package/dist/ionic/p-0ee3b5a2.system.js +4 -0
  232. package/dist/ionic/{p-155c2bb0.entry.js → p-13052792.entry.js} +1 -1
  233. package/dist/ionic/p-135e5731.js +4 -0
  234. package/dist/ionic/{p-84d08aae.system.entry.js → p-13892787.system.entry.js} +1 -1
  235. package/dist/ionic/{p-92365bc1.system.entry.js → p-1543d6b2.system.entry.js} +1 -1
  236. package/dist/ionic/{p-f301a694.system.entry.js → p-16f1ba65.system.entry.js} +1 -1
  237. package/dist/ionic/{p-578efda4.system.js → p-1a790eef.system.js} +2 -2
  238. package/dist/ionic/{p-63c09585.system.entry.js → p-1c2f74e4.system.entry.js} +1 -1
  239. package/dist/ionic/{p-c32644d7.entry.js → p-200dfb8f.entry.js} +1 -1
  240. package/dist/ionic/{p-65346408.system.entry.js → p-22e4210e.system.entry.js} +1 -1
  241. package/dist/ionic/{p-fca17935.entry.js → p-288a2cff.entry.js} +1 -1
  242. package/dist/ionic/{p-10327ad2.system.entry.js → p-28cb707b.system.entry.js} +1 -1
  243. package/dist/ionic/{p-bc616455.entry.js → p-2c9abc61.entry.js} +1 -1
  244. package/dist/ionic/p-30ec5574.entry.js +4 -0
  245. package/dist/ionic/p-3667bc71.system.js +4 -0
  246. package/dist/ionic/{p-a9e24ae2.system.entry.js → p-3c6d2c1e.system.entry.js} +1 -1
  247. package/dist/ionic/p-3c7371c4.system.entry.js +4 -0
  248. package/dist/ionic/{p-9b3bb24e.entry.js → p-406f9aa1.entry.js} +1 -1
  249. package/dist/ionic/{p-da8ef548.system.entry.js → p-42585688.system.entry.js} +1 -1
  250. package/dist/ionic/{p-39dd4f62.js → p-42808996.js} +1 -1
  251. package/dist/ionic/{p-afecb188.entry.js → p-42a9bb35.entry.js} +1 -1
  252. package/dist/ionic/{p-f3102647.system.entry.js → p-478dfa8c.system.entry.js} +1 -1
  253. package/dist/ionic/{p-346b2baf.js → p-47e6c342.js} +1 -1
  254. package/dist/ionic/{p-af744710.system.entry.js → p-4a465405.system.entry.js} +2 -2
  255. package/dist/ionic/{p-f89cf011.system.entry.js → p-4c9ccc7f.system.entry.js} +1 -1
  256. package/dist/ionic/p-4e8946f7.js +4 -0
  257. package/dist/ionic/{p-2abae1cc.system.entry.js → p-4eed0eb2.system.entry.js} +1 -1
  258. package/dist/ionic/{p-9962f63f.entry.js → p-4f2f4e3b.entry.js} +1 -1
  259. package/dist/ionic/{p-d821466d.system.entry.js → p-50c24ade.system.entry.js} +1 -1
  260. package/dist/ionic/p-51f13ac7.entry.js +4 -0
  261. package/dist/ionic/{p-95775830.entry.js → p-56a8aa85.entry.js} +1 -1
  262. package/dist/ionic/{p-f56752be.system.entry.js → p-5976e3b7.system.entry.js} +1 -1
  263. package/dist/ionic/{p-f78af648.system.entry.js → p-5a8efe64.system.entry.js} +1 -1
  264. package/dist/ionic/{p-5882bffa.system.entry.js → p-5b03d498.system.entry.js} +1 -1
  265. package/dist/ionic/{p-36c448fe.entry.js → p-5b867a40.entry.js} +1 -1
  266. package/dist/ionic/{p-5fe8b767.entry.js → p-5bc12439.entry.js} +1 -1
  267. package/dist/ionic/{p-70af0afb.entry.js → p-60f1b2fa.entry.js} +1 -1
  268. package/dist/ionic/p-6167f80e.entry.js +4 -0
  269. package/dist/ionic/p-627c1f42.entry.js +4 -0
  270. package/dist/ionic/{p-d99e8644.system.js → p-647b0625.system.js} +1 -1
  271. package/dist/ionic/{p-02e23f26.entry.js → p-656516a2.entry.js} +1 -1
  272. package/dist/ionic/p-68dc53a5.js +4 -0
  273. package/dist/ionic/p-699c97a3.entry.js +4 -0
  274. package/dist/ionic/{p-7b98cebe.entry.js → p-6b1f082e.entry.js} +1 -1
  275. package/dist/ionic/p-6bc9998f.entry.js +4 -0
  276. package/dist/ionic/{p-ecceeb90.js → p-6f3d8334.js} +1 -1
  277. package/dist/ionic/{p-76446a85.entry.js → p-703d60a2.entry.js} +1 -1
  278. package/dist/ionic/{p-fca6ef5f.system.entry.js → p-712b57f9.system.entry.js} +1 -1
  279. package/dist/ionic/{p-955c3eb8.entry.js → p-72b65035.entry.js} +1 -1
  280. package/dist/ionic/{p-acc8399c.system.entry.js → p-75a0fffe.system.entry.js} +2 -2
  281. package/dist/ionic/{p-e32557bb.system.entry.js → p-77b1bb00.system.entry.js} +1 -1
  282. package/dist/ionic/{p-dc146a2a.system.entry.js → p-808c9efc.system.entry.js} +1 -1
  283. package/dist/ionic/{p-eeb5cb45.system.entry.js → p-8154947f.system.entry.js} +1 -1
  284. package/dist/ionic/{p-8cfba7e9.system.entry.js → p-830f1a37.system.entry.js} +1 -1
  285. package/dist/ionic/{p-0bfffa34.system.entry.js → p-842bb3c8.system.entry.js} +1 -1
  286. package/dist/ionic/{p-41780810.entry.js → p-85632b54.entry.js} +1 -1
  287. package/dist/ionic/{p-62af944c.entry.js → p-85b1ffae.entry.js} +1 -1
  288. package/dist/ionic/{p-af452fa4.system.js → p-881d9e52.system.js} +1 -1
  289. package/dist/ionic/{p-3c8e5c23.system.js → p-8911101b.system.js} +1 -1
  290. package/dist/ionic/{p-990630ca.js → p-8db44ad3.js} +1 -1
  291. package/dist/ionic/{p-77e7b7b6.system.entry.js → p-9065e1ed.system.entry.js} +1 -1
  292. package/dist/ionic/{p-2ef3c7ee.system.entry.js → p-92e4df0c.system.entry.js} +1 -1
  293. package/dist/ionic/{p-655723eb.system.entry.js → p-9393bfbe.system.entry.js} +1 -1
  294. package/dist/ionic/{p-a584c79d.system.entry.js → p-944d66b5.system.entry.js} +1 -1
  295. package/dist/ionic/{p-acb30a5c.system.js → p-97acff20.system.js} +1 -1
  296. package/dist/ionic/{p-97a65908.entry.js → p-98c08d09.entry.js} +1 -1
  297. package/dist/ionic/{p-5fce0c0b.system.entry.js → p-9c7efe25.system.entry.js} +1 -1
  298. package/dist/ionic/{p-d1172fe3.system.entry.js → p-9c82a07c.system.entry.js} +1 -1
  299. package/dist/ionic/{p-93e3654c.system.entry.js → p-9ce56f65.system.entry.js} +1 -1
  300. package/dist/ionic/{p-bdad26e3.entry.js → p-9d4a8059.entry.js} +1 -1
  301. package/dist/ionic/{p-a5b31c0f.entry.js → p-9fe2050a.entry.js} +1 -1
  302. package/dist/ionic/{p-2515cb4d.system.entry.js → p-a197ff3b.system.entry.js} +1 -1
  303. package/dist/ionic/{p-9de5c787.entry.js → p-a33837c9.entry.js} +1 -1
  304. package/dist/ionic/{p-e5849f8d.entry.js → p-a3705e10.entry.js} +1 -1
  305. package/dist/ionic/{p-2507278c.system.entry.js → p-a873feda.system.entry.js} +1 -1
  306. package/dist/ionic/{p-73897169.system.js → p-aa63b365.system.js} +1 -1
  307. package/dist/ionic/{p-fec13c57.entry.js → p-acc78e36.entry.js} +1 -1
  308. package/dist/ionic/{p-c8d645b3.entry.js → p-b5639a4f.entry.js} +1 -1
  309. package/dist/ionic/{p-037fc3f3.entry.js → p-b609d03b.entry.js} +1 -1
  310. package/dist/ionic/{p-70ccc275.system.entry.js → p-b637aa3f.system.entry.js} +1 -1
  311. package/dist/ionic/{p-bb2a6761.entry.js → p-b7d2ba68.entry.js} +1 -1
  312. package/dist/ionic/{p-80c6d619.entry.js → p-bed40aa8.entry.js} +1 -1
  313. package/dist/ionic/{p-155f4d90.entry.js → p-c15a77e2.entry.js} +1 -1
  314. package/dist/ionic/{p-6d32975a.entry.js → p-c2583512.entry.js} +1 -1
  315. package/dist/ionic/{p-efbf5af5.system.entry.js → p-c3f4ea6c.system.entry.js} +1 -1
  316. package/dist/ionic/{p-265939f0.entry.js → p-c3f5dcf9.entry.js} +1 -1
  317. package/dist/ionic/p-c42a4dad.system.entry.js +4 -0
  318. package/dist/ionic/{p-33a8a71b.entry.js → p-c66604e4.entry.js} +1 -1
  319. package/dist/ionic/{p-058e61eb.system.js → p-c6ff3239.system.js} +1 -1
  320. package/dist/ionic/{p-4d413973.system.entry.js → p-ca908a50.system.entry.js} +1 -1
  321. package/dist/ionic/{p-fbf86e62.system.js → p-cc964e4f.system.js} +1 -1
  322. package/dist/ionic/{p-5010643d.system.entry.js → p-d0a7f584.system.entry.js} +1 -1
  323. package/dist/ionic/{p-7ae680ba.system.entry.js → p-d17f0dca.system.entry.js} +1 -1
  324. package/dist/ionic/{p-7458862e.system.entry.js → p-d4896d36.system.entry.js} +1 -1
  325. package/dist/ionic/{p-1a5bc5f7.js → p-d60342e3.js} +1 -1
  326. package/dist/ionic/{p-ed75fcfb.system.entry.js → p-d7fef52e.system.entry.js} +1 -1
  327. package/dist/ionic/{p-a69b9fc5.system.js → p-d86d7845.system.js} +1 -1
  328. package/dist/ionic/{p-dd0c9350.system.entry.js → p-dcc9aaf1.system.entry.js} +1 -1
  329. package/dist/ionic/{p-6190d0d6.entry.js → p-dd0cad9c.entry.js} +1 -1
  330. package/dist/ionic/{p-56da53ad.system.entry.js → p-ddc058a7.system.entry.js} +1 -1
  331. package/dist/ionic/{p-d743e981.js → p-e25cd3c7.js} +1 -1
  332. package/dist/ionic/{p-df862603.entry.js → p-e3357909.entry.js} +1 -1
  333. package/dist/ionic/{p-179bf9d1.system.entry.js → p-e78bff37.system.entry.js} +1 -1
  334. package/dist/ionic/{p-18e101b7.system.entry.js → p-ea7c658c.system.entry.js} +2 -2
  335. package/dist/ionic/{p-9f3008d4.system.js → p-eb4ac14d.system.js} +1 -1
  336. package/dist/ionic/{p-4d3a5f86.js → p-eb599bcb.js} +1 -1
  337. package/dist/ionic/{p-72ec9a26.entry.js → p-eb6f173b.entry.js} +1 -1
  338. package/dist/ionic/{p-89bf08c7.entry.js → p-ebd0a280.entry.js} +1 -1
  339. package/dist/ionic/{p-31a6efce.system.entry.js → p-ef144104.system.entry.js} +1 -1
  340. package/dist/ionic/{p-2cbe5399.entry.js → p-f00ba947.entry.js} +1 -1
  341. package/dist/ionic/{p-8e407469.system.js → p-f1d1c614.system.js} +1 -1
  342. package/dist/ionic/p-f4f255cb.system.js +4 -0
  343. package/dist/ionic/{p-343b6b1d.system.js → p-f687573e.system.js} +1 -1
  344. package/dist/ionic/{p-f5d6624d.entry.js → p-faa5e2b9.entry.js} +1 -1
  345. package/dist/ionic/{p-8818edd8.entry.js → p-fd988d29.entry.js} +1 -1
  346. package/dist/ionic/p-ff4b7e40.system.js +4 -0
  347. package/dist/types/components/checkbox/checkbox.d.ts +0 -6
  348. package/dist/types/components/modal/animations/sheet.d.ts +0 -1
  349. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  350. package/dist/types/components/modal/modal-interface.d.ts +0 -1
  351. package/dist/types/components/modal/modal.d.ts +0 -11
  352. package/dist/types/components/select/select.d.ts +0 -6
  353. package/dist/types/components/toggle/toggle.d.ts +0 -6
  354. package/dist/types/components/toolbar/toolbar.d.ts +0 -4
  355. package/dist/types/components.d.ts +0 -32
  356. package/dist/types/utils/config.d.ts +0 -9
  357. package/dist/types/utils/logging/index.d.ts +1 -13
  358. package/dist/types/utils/test/platform.utils.d.ts +1 -1
  359. package/hydrate/index.js +63 -329
  360. package/hydrate/index.mjs +63 -329
  361. package/package.json +2 -2
  362. package/dist/esm-es5/app-globals-5dbb61a5.js +0 -4
  363. package/dist/esm-es5/index-6ad967f3.js +0 -4
  364. package/dist/esm-es5/input-shims-dff819a9.js +0 -4
  365. package/dist/esm-es5/status-tap-d07dbc82.js +0 -4
  366. package/dist/ionic/p-0574e87e.js +0 -4
  367. package/dist/ionic/p-16bfb979.system.entry.js +0 -4
  368. package/dist/ionic/p-21227121.js +0 -4
  369. package/dist/ionic/p-22149a4f.js +0 -4
  370. package/dist/ionic/p-322c5fb4.system.js +0 -4
  371. package/dist/ionic/p-34479cfb.entry.js +0 -4
  372. package/dist/ionic/p-3e99e3e0.entry.js +0 -4
  373. package/dist/ionic/p-42c9deb1.entry.js +0 -4
  374. package/dist/ionic/p-49a0e74c.entry.js +0 -4
  375. package/dist/ionic/p-52245809.js +0 -4
  376. package/dist/ionic/p-5c9324c6.js +0 -4
  377. package/dist/ionic/p-67222c16.system.js +0 -4
  378. package/dist/ionic/p-712fedc9.entry.js +0 -4
  379. package/dist/ionic/p-860eb968.system.js +0 -4
  380. package/dist/ionic/p-a18470c6.entry.js +0 -4
  381. package/dist/ionic/p-c3802319.system.js +0 -4
  382. package/dist/ionic/p-e8d56122.js +0 -4
  383. package/dist/ionic/p-f2613334.system.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -2841,7 +2841,8 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
2841
2841
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
2842
2842
  const isCapacitorNative = (win) => {
2843
2843
  const capacitor = win['Capacitor'];
2844
- return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
2844
+ // TODO(ROU-11693): Remove when we no longer support Capacitor 2, which does not have isNativePlatform
2845
+ return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
2845
2846
  };
2846
2847
  const isElectron = (win) => testUserAgent(win, /electron/i);
2847
2848
  const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };
@@ -3223,12 +3224,9 @@ let accordionIds = 0;
3223
3224
  * @param message - The string message to be logged to the console.
3224
3225
  */
3225
3226
  const printIonWarning = (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
- }
3227
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3230
3228
  };
3231
- /**
3229
+ /*
3232
3230
  * Logs an error to the console with an Ionic prefix
3233
3231
  * to indicate the library that is warning the developer.
3234
3232
  *
@@ -3236,10 +3234,7 @@ const printIonWarning = (message, ...params) => {
3236
3234
  * @param params - Additional arguments to supply to the console.error.
3237
3235
  */
3238
3236
  const printIonError = (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
- }
3237
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3243
3238
  };
3244
3239
  /**
3245
3240
  * Prints an error informing developers that an implementation requires an element to be used
@@ -8503,7 +8498,6 @@ class Checkbox {
8503
8498
  this.labelPlacement = 'start';
8504
8499
  this.justify = undefined;
8505
8500
  this.alignment = undefined;
8506
- this.required = false;
8507
8501
  }
8508
8502
  componentWillLoad() {
8509
8503
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8515,11 +8509,11 @@ class Checkbox {
8515
8509
  }
8516
8510
  }
8517
8511
  render() {
8518
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8512
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8519
8513
  const mode = getIonMode$1(this);
8520
8514
  const path = getSVGPath(mode, indeterminate);
8521
8515
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8522
- return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8516
+ return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8523
8517
  [mode]: true,
8524
8518
  'in-item': hostContext('ion-item', el),
8525
8519
  'checkbox-checked': checked,
@@ -8529,10 +8523,10 @@ class Checkbox {
8529
8523
  [`checkbox-justify-${justify}`]: justify !== undefined,
8530
8524
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8531
8525
  [`checkbox-label-placement-${labelPlacement}`]: true,
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: {
8526
+ }), 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: {
8533
8527
  'label-text-wrapper': true,
8534
8528
  'label-text-wrapper-hidden': el.textContent === '',
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)))));
8529
+ }, 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)))));
8536
8530
  }
8537
8531
  getSVGPath(mode, indeterminate) {
8538
8532
  let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -8559,7 +8553,6 @@ class Checkbox {
8559
8553
  "labelPlacement": [1, "label-placement"],
8560
8554
  "justify": [1],
8561
8555
  "alignment": [1],
8562
- "required": [4],
8563
8556
  "setFocus": [64]
8564
8557
  },
8565
8558
  "$listeners$": undefined,
@@ -19035,7 +19028,7 @@ const computeDuration = (remaining, velocity) => {
19035
19028
  };
19036
19029
 
19037
19030
  const createSheetEnterAnimation = (opts) => {
19038
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19031
+ const { currentBreakpoint, backdropBreakpoint } = opts;
19039
19032
  /**
19040
19033
  * If the backdropBreakpoint is undefined, then the backdrop
19041
19034
  * should always fade in. If the backdropBreakpoint came before the
@@ -19055,16 +19048,7 @@ const createSheetEnterAnimation = (opts) => {
19055
19048
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19056
19049
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19057
19050
  ]);
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 };
19051
+ return { wrapperAnimation, backdropAnimation };
19068
19052
  };
19069
19053
  const createSheetLeaveAnimation = (opts) => {
19070
19054
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19099,68 +19083,22 @@ const createEnterAnimation$1 = () => {
19099
19083
  })
19100
19084
  .afterClearStyles(['pointer-events']);
19101
19085
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19102
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19086
+ return { backdropAnimation, wrapperAnimation };
19103
19087
  };
19104
19088
  /**
19105
19089
  * iOS Modal Enter Animation for the Card presentation style
19106
19090
  */
19107
19091
  const iosEnterAnimation$3 = (baseEl, opts) => {
19108
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19092
+ const { presentingEl, currentBreakpoint } = opts;
19109
19093
  const root = getElementRoot(baseEl);
19110
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19094
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19111
19095
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19112
19096
  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')));
19116
19097
  const baseAnimation = createAnimation('entering-base')
19117
19098
  .addElement(baseEl)
19118
19099
  .easing('cubic-bezier(0.32,0.72,0,1)')
19119
19100
  .duration(500)
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
- }
19101
+ .addAnimation(wrapperAnimation);
19164
19102
  if (presentingEl) {
19165
19103
  const isMobile = window.innerWidth < 768;
19166
19104
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19238,7 +19176,7 @@ const createLeaveAnimation$1 = () => {
19238
19176
  * iOS Modal Leave Animation
19239
19177
  */
19240
19178
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19241
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19179
+ const { presentingEl, currentBreakpoint } = opts;
19242
19180
  const root = getElementRoot(baseEl);
19243
19181
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19244
19182
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19247,29 +19185,7 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19247
19185
  .addElement(baseEl)
19248
19186
  .easing('cubic-bezier(0.32,0.72,0,1)')
19249
19187
  .duration(duration)
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
- });
19188
+ .addAnimation(wrapperAnimation);
19273
19189
  if (presentingEl) {
19274
19190
  const isMobile = window.innerWidth < 768;
19275
19191
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19347,69 +19263,22 @@ const createEnterAnimation = () => {
19347
19263
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19348
19264
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19349
19265
  ]);
19350
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19266
+ return { backdropAnimation, wrapperAnimation };
19351
19267
  };
19352
19268
  /**
19353
19269
  * Md Modal Enter Animation
19354
19270
  */
19355
19271
  const mdEnterAnimation$2 = (baseEl, opts) => {
19356
- const { currentBreakpoint, expandToScroll } = opts;
19272
+ const { currentBreakpoint } = opts;
19357
19273
  const root = getElementRoot(baseEl);
19358
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19274
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19359
19275
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19360
19276
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
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()
19277
+ return createAnimation()
19365
19278
  .addElement(baseEl)
19366
19279
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19367
19280
  .duration(280)
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;
19281
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19413
19282
  };
19414
19283
 
19415
19284
  const createLeaveAnimation = () => {
@@ -19424,41 +19293,18 @@ const createLeaveAnimation = () => {
19424
19293
  * Md Modal Leave Animation
19425
19294
  */
19426
19295
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19427
- const { currentBreakpoint, expandToScroll } = opts;
19296
+ const { currentBreakpoint } = opts;
19428
19297
  const root = getElementRoot(baseEl);
19429
19298
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19430
19299
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19431
19300
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19432
- const baseAnimation = createAnimation()
19301
+ return createAnimation()
19433
19302
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19434
19303
  .duration(200)
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;
19304
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19459
19305
  };
19460
19306
 
19461
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19307
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19462
19308
  // Defaults for the sheet swipe animation
19463
19309
  const defaultBackdrop = [
19464
19310
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19475,10 +19321,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19475
19321
  { offset: 1, transform: 'translateY(100%)' },
19476
19322
  ],
19477
19323
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19478
- CONTENT_KEYFRAMES: [
19479
- { offset: 0, maxHeight: '100%' },
19480
- { offset: 1, maxHeight: '0%' },
19481
- ],
19482
19324
  };
19483
19325
  const contentEl = baseEl.querySelector('ion-content');
19484
19326
  const height = wrapperEl.clientHeight;
@@ -19486,11 +19328,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19486
19328
  let offset = 0;
19487
19329
  let canDismissBlocksGesture = false;
19488
19330
  const canDismissMaxStep = 0.95;
19489
- const maxBreakpoint = breakpoints[breakpoints.length - 1];
19490
- const minBreakpoint = breakpoints[0];
19491
19331
  const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19492
19332
  const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19493
- const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19333
+ const maxBreakpoint = breakpoints[breakpoints.length - 1];
19334
+ const minBreakpoint = breakpoints[0];
19494
19335
  const enableBackdrop = () => {
19495
19336
  baseEl.style.setProperty('pointer-events', 'auto');
19496
19337
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19513,31 +19354,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19513
19354
  */
19514
19355
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19515
19356
  };
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
- };
19541
19357
  /**
19542
19358
  * After the entering animation completes,
19543
19359
  * we need to set the animation to go from
@@ -19549,7 +19365,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19549
19365
  if (wrapperAnimation && backdropAnimation) {
19550
19366
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19551
19367
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19552
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19553
19368
  animation.progressStart(true, 1 - currentBreakpoint);
19554
19369
  /**
19555
19370
  * If backdrop is not enabled, then content
@@ -19566,7 +19381,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19566
19381
  disableBackdrop();
19567
19382
  }
19568
19383
  }
19569
- if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19384
+ if (contentEl && currentBreakpoint !== maxBreakpoint) {
19570
19385
  contentEl.scrollY = false;
19571
19386
  }
19572
19387
  const canStart = (detail) => {
@@ -19580,13 +19395,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19580
19395
  */
19581
19396
  const contentEl = findClosestIonContent(detail.event.target);
19582
19397
  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
- }
19590
19398
  if (currentBreakpoint === 1 && contentEl) {
19591
19399
  /**
19592
19400
  * The modal should never swipe to close on the content with a refresher.
@@ -19617,15 +19425,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19617
19425
  * Remove undefined check
19618
19426
  */
19619
19427
  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
- }
19629
19428
  /**
19630
19429
  * If we are pulling down, then it is possible we are pulling on the content.
19631
19430
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19741,19 +19540,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19741
19540
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19742
19541
  },
19743
19542
  ]);
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
- }
19757
19543
  animation.progressStep(0);
19758
19544
  }
19759
19545
  /**
@@ -19761,14 +19547,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19761
19547
  * snapping animation completes.
19762
19548
  */
19763
19549
  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
- }
19772
19550
  if (shouldPreventDismiss) {
19773
19551
  handleCanDismiss(baseEl, animation);
19774
19552
  }
@@ -19776,13 +19554,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19776
19554
  onDismiss();
19777
19555
  }
19778
19556
  /**
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.
19557
+ * If the sheet is going to be fully expanded then we should enable
19558
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
19559
+ * so if we wait until then there is a visible delay for when scrolling is
19560
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19561
+ * as the gesture is released, so we align with that.
19784
19562
  */
19785
- if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19563
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19786
19564
  contentEl.scrollY = true;
19787
19565
  }
19788
19566
  return new Promise((resolve) => {
@@ -19800,7 +19578,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19800
19578
  raf(() => {
19801
19579
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19802
19580
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19803
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19804
19581
  animation.progressStart(true, 1 - snapToBreakpoint);
19805
19582
  currentBreakpoint = snapToBreakpoint;
19806
19583
  onBreakpointChange(currentBreakpoint);
@@ -19853,10 +19630,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19853
19630
  };
19854
19631
  };
19855
19632
 
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}";
19633
+ 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}";
19857
19634
  var IonModalIosStyle0 = modalIosCss;
19858
19635
 
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}";
19636
+ 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}";
19860
19637
  var IonModalMdStyle0 = modalMdCss;
19861
19638
 
19862
19639
  // TODO(FW-2832): types
@@ -19935,7 +19712,6 @@ class Modal {
19935
19712
  this.enterAnimation = undefined;
19936
19713
  this.leaveAnimation = undefined;
19937
19714
  this.breakpoints = undefined;
19938
- this.expandToScroll = true;
19939
19715
  this.initialBreakpoint = undefined;
19940
19716
  this.backdropBreakpoint = 0;
19941
19717
  this.handle = undefined;
@@ -20151,7 +19927,6 @@ class Modal {
20151
19927
  presentingEl: presentingElement,
20152
19928
  currentBreakpoint: this.initialBreakpoint,
20153
19929
  backdropBreakpoint: this.backdropBreakpoint,
20154
- expandToScroll: this.expandToScroll,
20155
19930
  });
20156
19931
  /* tslint:disable-next-line */
20157
19932
  if (typeof window !== 'undefined') {
@@ -20202,10 +19977,7 @@ class Modal {
20202
19977
  // should be in the DOM and referenced by now, except
20203
19978
  // for the presenting el
20204
19979
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
20205
- const ani = (this.animation = animationBuilder(el, {
20206
- presentingEl: this.presentingElement,
20207
- expandToScroll: this.expandToScroll,
20208
- }));
19980
+ const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20209
19981
  const contentEl = findIonContent(el);
20210
19982
  if (!contentEl) {
20211
19983
  printIonContentErrorMsg(el);
@@ -20250,10 +20022,9 @@ class Modal {
20250
20022
  presentingEl: this.presentingElement,
20251
20023
  currentBreakpoint: initialBreakpoint,
20252
20024
  backdropBreakpoint,
20253
- expandToScroll: this.expandToScroll,
20254
20025
  }));
20255
20026
  ani.progressStart(true, 1);
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) => {
20027
+ 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) => {
20257
20028
  if (this.currentBreakpoint !== breakpoint) {
20258
20029
  this.currentBreakpoint = breakpoint;
20259
20030
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20331,7 +20102,6 @@ class Modal {
20331
20102
  presentingEl: presentingElement,
20332
20103
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20333
20104
  backdropBreakpoint: this.backdropBreakpoint,
20334
- expandToScroll: this.expandToScroll,
20335
20105
  });
20336
20106
  if (dismissed) {
20337
20107
  const { delegate } = this.getDelegate();
@@ -20417,23 +20187,23 @@ class Modal {
20417
20187
  return true;
20418
20188
  }
20419
20189
  render() {
20420
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20190
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20421
20191
  const showHandle = handle !== false && isSheetModal;
20422
20192
  const mode = getIonMode$1(this);
20423
20193
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20424
20194
  const isHandleCycle = handleBehavior === 'cycle';
20425
- return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20195
+ return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20426
20196
  zIndex: `${20000 + this.overlayIndex}`,
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',
20197
+ }, 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',
20428
20198
  /*
20429
20199
  role and aria-modal must be used on the
20430
20200
  same element. They must also be set inside the
20431
20201
  shadow DOM otherwise ion-button will not be highlighted
20432
20202
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20433
20203
  */
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",
20204
+ 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",
20435
20205
  // Prevents the handle from receiving keyboard focus when it does not cycle
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' }))));
20206
+ 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' }))));
20437
20207
  }
20438
20208
  get el() { return getElement(this); }
20439
20209
  static get watchers() { return {
@@ -20455,7 +20225,6 @@ class Modal {
20455
20225
  "enterAnimation": [16],
20456
20226
  "leaveAnimation": [16],
20457
20227
  "breakpoints": [16],
20458
- "expandToScroll": [4, "expand-to-scroll"],
20459
20228
  "initialBreakpoint": [2, "initial-breakpoint"],
20460
20229
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20461
20230
  "handle": [4],
@@ -29930,7 +29699,6 @@ class Select {
29930
29699
  this.expandedIcon = undefined;
29931
29700
  this.shape = undefined;
29932
29701
  this.value = undefined;
29933
- this.required = false;
29934
29702
  }
29935
29703
  styleChanged() {
29936
29704
  this.emitStyle();
@@ -29986,8 +29754,15 @@ class Select {
29986
29754
  }
29987
29755
  this.isExpanded = true;
29988
29756
  const overlay = (this.overlay = await this.createOverlay(event));
29989
- // Add logic to scroll selected item into view before presenting
29990
- const scrollSelectedIntoView = () => {
29757
+ overlay.onDidDismiss().then(() => {
29758
+ this.overlay = undefined;
29759
+ this.isExpanded = false;
29760
+ this.ionDismiss.emit();
29761
+ this.setFocus();
29762
+ });
29763
+ await overlay.present();
29764
+ // focus selected option for popovers and modals
29765
+ if (this.interface === 'popover' || this.interface === 'modal') {
29991
29766
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29992
29767
  if (indexOfSelected > -1) {
29993
29768
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -30005,7 +29780,6 @@ class Select {
30005
29780
  */
30006
29781
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
30007
29782
  if (interactiveEl) {
30008
- selectedItem.scrollIntoView({ block: 'nearest' });
30009
29783
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
30010
29784
  // and removing `ion-focused` style
30011
29785
  interactiveEl.setFocus();
@@ -30029,40 +29803,7 @@ class Select {
30029
29803
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
30030
29804
  }
30031
29805
  }
30032
- };
30033
- // For modals and popovers, we can scroll before they're visible
30034
- if (this.interface === 'modal') {
30035
- overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
30036
29806
  }
30037
- else if (this.interface === 'popover') {
30038
- overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
30039
- }
30040
- else {
30041
- /**
30042
- * For alerts and action sheets, we need to wait a frame after willPresent
30043
- * because these overlays don't have their content in the DOM immediately
30044
- * when willPresent fires. By waiting a frame, we ensure the content is
30045
- * rendered and can be properly scrolled into view.
30046
- */
30047
- const scrollAfterRender = () => {
30048
- requestAnimationFrame(() => {
30049
- scrollSelectedIntoView();
30050
- });
30051
- };
30052
- if (this.interface === 'alert') {
30053
- overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
30054
- }
30055
- else if (this.interface === 'action-sheet') {
30056
- overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
30057
- }
30058
- }
30059
- overlay.onDidDismiss().then(() => {
30060
- this.overlay = undefined;
30061
- this.isExpanded = false;
30062
- this.ionDismiss.emit();
30063
- this.setFocus();
30064
- });
30065
- await overlay.present();
30066
29807
  return overlay;
30067
29808
  }
30068
29809
  createOverlay(ev) {
@@ -30442,8 +30183,8 @@ class Select {
30442
30183
  return renderedLabel;
30443
30184
  }
30444
30185
  renderListbox() {
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
+ const { disabled, inputId, isExpanded } = this;
30187
+ 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) }));
30447
30188
  }
30448
30189
  render() {
30449
30190
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30474,7 +30215,7 @@ class Select {
30474
30215
  * TODO(FW-5592): Remove hasStartEndSlots condition
30475
30216
  */
30476
30217
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30477
- return (hAsync(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses$1(this.color, {
30218
+ return (hAsync(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses$1(this.color, {
30478
30219
  [mode]: true,
30479
30220
  'in-item': inItem,
30480
30221
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30490,7 +30231,7 @@ class Select {
30490
30231
  [`select-justify-${justify}`]: justifyEnabled,
30491
30232
  [`select-shape-${shape}`]: shape !== undefined,
30492
30233
  [`select-label-placement-${labelPlacement}`]: true,
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" }))));
30234
+ }) }, hAsync("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, hAsync("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), hAsync("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', class: "select-highlight" }))));
30494
30235
  }
30495
30236
  get el() { return getElement(this); }
30496
30237
  static get watchers() { return {
@@ -30526,7 +30267,6 @@ class Select {
30526
30267
  "expandedIcon": [1, "expanded-icon"],
30527
30268
  "shape": [1],
30528
30269
  "value": [1032],
30529
- "required": [4],
30530
30270
  "isExpanded": [32],
30531
30271
  "open": [64]
30532
30272
  },
@@ -32923,7 +32663,6 @@ class Toggle {
32923
32663
  this.labelPlacement = 'start';
32924
32664
  this.justify = undefined;
32925
32665
  this.alignment = undefined;
32926
- this.required = false;
32927
32666
  }
32928
32667
  disabledChanged() {
32929
32668
  if (this.gesture) {
@@ -33005,12 +32744,12 @@ class Toggle {
33005
32744
  return this.el.textContent !== '';
33006
32745
  }
33007
32746
  render() {
33008
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32747
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
33009
32748
  const mode = getIonMode$1(this);
33010
32749
  const value = this.getValue();
33011
32750
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
33012
32751
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
33013
- return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
32752
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
33014
32753
  [mode]: true,
33015
32754
  'in-item': hostContext('ion-item', el),
33016
32755
  'toggle-activated': activated,
@@ -33020,10 +32759,10 @@ class Toggle {
33020
32759
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
33021
32760
  [`toggle-label-placement-${labelPlacement}`]: true,
33022
32761
  [`toggle-${rtl}`]: true,
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: {
32762
+ }) }, 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: {
33024
32763
  'label-text-wrapper': true,
33025
32764
  'label-text-wrapper-hidden': !this.hasLabel,
33026
- }, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
32765
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
33027
32766
  }
33028
32767
  get el() { return getElement(this); }
33029
32768
  static get watchers() { return {
@@ -33046,7 +32785,6 @@ class Toggle {
33046
32785
  "labelPlacement": [1, "label-placement"],
33047
32786
  "justify": [1],
33048
32787
  "alignment": [1],
33049
- "required": [4],
33050
32788
  "activated": [32]
33051
32789
  },
33052
32790
  "$listeners$": undefined,
@@ -33078,10 +32816,6 @@ var IonToolbarMdStyle0 = toolbarMdCss;
33078
32816
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
33079
32817
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
33080
32818
  * @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.
33085
32819
  */
33086
32820
  class Toolbar {
33087
32821
  constructor(hostRef) {
@@ -33132,10 +32866,10 @@ class Toolbar {
33132
32866
  this.childrenStyles.forEach((value) => {
33133
32867
  Object.assign(childStyles, value);
33134
32868
  });
33135
- return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32869
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33136
32870
  [mode]: true,
33137
32871
  'in-toolbar': hostContext('ion-toolbar', this.el),
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" }))));
32872
+ })) }, 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" }))));
33139
32873
  }
33140
32874
  get el() { return getElement(this); }
33141
32875
  static get style() { return {