@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.js CHANGED
@@ -2845,7 +2845,8 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
2845
2845
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
2846
2846
  const isCapacitorNative = (win) => {
2847
2847
  const capacitor = win['Capacitor'];
2848
- return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
2848
+ // TODO(ROU-11693): Remove when we no longer support Capacitor 2, which does not have isNativePlatform
2849
+ return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
2849
2850
  };
2850
2851
  const isElectron = (win) => testUserAgent(win, /electron/i);
2851
2852
  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); };
@@ -3227,12 +3228,9 @@ let accordionIds = 0;
3227
3228
  * @param message - The string message to be logged to the console.
3228
3229
  */
3229
3230
  const printIonWarning = (message, ...params) => {
3230
- const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3231
- if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3232
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3233
- }
3231
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3234
3232
  };
3235
- /**
3233
+ /*
3236
3234
  * Logs an error to the console with an Ionic prefix
3237
3235
  * to indicate the library that is warning the developer.
3238
3236
  *
@@ -3240,10 +3238,7 @@ const printIonWarning = (message, ...params) => {
3240
3238
  * @param params - Additional arguments to supply to the console.error.
3241
3239
  */
3242
3240
  const printIonError = (message, ...params) => {
3243
- const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3244
- if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3245
- return console.error(`[Ionic Error]: ${message}`, ...params);
3246
- }
3241
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3247
3242
  };
3248
3243
  /**
3249
3244
  * Prints an error informing developers that an implementation requires an element to be used
@@ -8507,7 +8502,6 @@ class Checkbox {
8507
8502
  this.labelPlacement = 'start';
8508
8503
  this.justify = undefined;
8509
8504
  this.alignment = undefined;
8510
- this.required = false;
8511
8505
  }
8512
8506
  componentWillLoad() {
8513
8507
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8519,11 +8513,11 @@ class Checkbox {
8519
8513
  }
8520
8514
  }
8521
8515
  render() {
8522
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8516
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8523
8517
  const mode = getIonMode$1(this);
8524
8518
  const path = getSVGPath(mode, indeterminate);
8525
8519
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8526
- return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8520
+ return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8527
8521
  [mode]: true,
8528
8522
  'in-item': hostContext('ion-item', el),
8529
8523
  'checkbox-checked': checked,
@@ -8533,10 +8527,10 @@ class Checkbox {
8533
8527
  [`checkbox-justify-${justify}`]: justify !== undefined,
8534
8528
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8535
8529
  [`checkbox-label-placement-${labelPlacement}`]: true,
8536
- }), onClick: this.onClick }, hAsync("label", { key: '3439d546e8b60187421db698eab63a0bdd31c973', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: '9f45cf7dbdedcf01ec132c11e16979adb1aa102f', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), hAsync("div", { key: '4e882f98939cc4b7c7ab7459c751d3f4bb2023fe', class: {
8530
+ }), 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: {
8537
8531
  'label-text-wrapper': true,
8538
8532
  'label-text-wrapper-hidden': el.textContent === '',
8539
- }, part: "label" }, hAsync("slot", { key: '0abda81297a086d02c4a56af75005547971dfcfe' })), hAsync("div", { key: '36489ea3f48a7d0ec46b77c243f9f253ef5c2b3b', class: "native-wrapper" }, hAsync("svg", { key: '4c53b52f5e93752672a34eb6f180b75fa9af9046', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8533
+ }, 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)))));
8540
8534
  }
8541
8535
  getSVGPath(mode, indeterminate) {
8542
8536
  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" }));
@@ -8563,7 +8557,6 @@ class Checkbox {
8563
8557
  "labelPlacement": [1, "label-placement"],
8564
8558
  "justify": [1],
8565
8559
  "alignment": [1],
8566
- "required": [4],
8567
8560
  "setFocus": [64]
8568
8561
  },
8569
8562
  "$listeners$": undefined,
@@ -19039,7 +19032,7 @@ const computeDuration = (remaining, velocity) => {
19039
19032
  };
19040
19033
 
19041
19034
  const createSheetEnterAnimation = (opts) => {
19042
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19035
+ const { currentBreakpoint, backdropBreakpoint } = opts;
19043
19036
  /**
19044
19037
  * If the backdropBreakpoint is undefined, then the backdrop
19045
19038
  * should always fade in. If the backdropBreakpoint came before the
@@ -19059,16 +19052,7 @@ const createSheetEnterAnimation = (opts) => {
19059
19052
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19060
19053
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19061
19054
  ]);
19062
- /**
19063
- * This allows the content to be scrollable at any breakpoint.
19064
- */
19065
- const contentAnimation = !expandToScroll
19066
- ? createAnimation('contentAnimation').keyframes([
19067
- { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
19068
- { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
19069
- ])
19070
- : undefined;
19071
- return { wrapperAnimation, backdropAnimation, contentAnimation };
19055
+ return { wrapperAnimation, backdropAnimation };
19072
19056
  };
19073
19057
  const createSheetLeaveAnimation = (opts) => {
19074
19058
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19103,68 +19087,22 @@ const createEnterAnimation$1 = () => {
19103
19087
  })
19104
19088
  .afterClearStyles(['pointer-events']);
19105
19089
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19106
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19090
+ return { backdropAnimation, wrapperAnimation };
19107
19091
  };
19108
19092
  /**
19109
19093
  * iOS Modal Enter Animation for the Card presentation style
19110
19094
  */
19111
19095
  const iosEnterAnimation$3 = (baseEl, opts) => {
19112
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19096
+ const { presentingEl, currentBreakpoint } = opts;
19113
19097
  const root = getElementRoot(baseEl);
19114
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19098
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19115
19099
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19116
19100
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
19117
- // The content animation is only added if scrolling is enabled for
19118
- // all the breakpoints.
19119
- !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19120
19101
  const baseAnimation = createAnimation('entering-base')
19121
19102
  .addElement(baseEl)
19122
19103
  .easing('cubic-bezier(0.32,0.72,0,1)')
19123
19104
  .duration(500)
19124
- .addAnimation([wrapperAnimation])
19125
- .beforeAddWrite(() => {
19126
- if (expandToScroll) {
19127
- // Scroll can only be done when the modal is fully expanded.
19128
- return;
19129
- }
19130
- /**
19131
- * There are some browsers that causes flickering when
19132
- * dragging the content when scroll is enabled at every
19133
- * breakpoint. This is due to the wrapper element being
19134
- * transformed off the screen and having a snap animation.
19135
- *
19136
- * A workaround is to clone the footer element and append
19137
- * it outside of the wrapper element. This way, the footer
19138
- * is still visible and the drag can be done without
19139
- * flickering. The original footer is hidden until the modal
19140
- * is dismissed. This maintains the animation of the footer
19141
- * when the modal is dismissed.
19142
- *
19143
- * The workaround needs to be done before the animation starts
19144
- * so there are no flickering issues.
19145
- */
19146
- const ionFooter = baseEl.querySelector('ion-footer');
19147
- /**
19148
- * This check is needed to prevent more than one footer
19149
- * from being appended to the shadow root.
19150
- * Otherwise, iOS and MD enter animations would append
19151
- * the footer twice.
19152
- */
19153
- const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19154
- if (ionFooter && !ionFooterAlreadyAppended) {
19155
- const footerHeight = ionFooter.clientHeight;
19156
- const clonedFooter = ionFooter.cloneNode(true);
19157
- baseEl.shadowRoot.appendChild(clonedFooter);
19158
- ionFooter.style.setProperty('display', 'none');
19159
- ionFooter.setAttribute('aria-hidden', 'true');
19160
- // Padding is added to prevent some content from being hidden.
19161
- const page = baseEl.querySelector('.ion-page');
19162
- page.style.setProperty('padding-bottom', `${footerHeight}px`);
19163
- }
19164
- });
19165
- if (contentAnimation) {
19166
- baseAnimation.addAnimation(contentAnimation);
19167
- }
19105
+ .addAnimation(wrapperAnimation);
19168
19106
  if (presentingEl) {
19169
19107
  const isMobile = window.innerWidth < 768;
19170
19108
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19242,7 +19180,7 @@ const createLeaveAnimation$1 = () => {
19242
19180
  * iOS Modal Leave Animation
19243
19181
  */
19244
19182
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19245
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19183
+ const { presentingEl, currentBreakpoint } = opts;
19246
19184
  const root = getElementRoot(baseEl);
19247
19185
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19248
19186
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19251,29 +19189,7 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19251
19189
  .addElement(baseEl)
19252
19190
  .easing('cubic-bezier(0.32,0.72,0,1)')
19253
19191
  .duration(duration)
19254
- .addAnimation(wrapperAnimation)
19255
- .beforeAddWrite(() => {
19256
- if (expandToScroll) {
19257
- // Scroll can only be done when the modal is fully expanded.
19258
- return;
19259
- }
19260
- /**
19261
- * If expandToScroll is disabled, we need to swap
19262
- * the visibility to the original, so the footer
19263
- * dismisses with the modal and doesn't stay
19264
- * until the modal is removed from the DOM.
19265
- */
19266
- const ionFooter = baseEl.querySelector('ion-footer');
19267
- if (ionFooter) {
19268
- const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19269
- ionFooter.style.removeProperty('display');
19270
- ionFooter.removeAttribute('aria-hidden');
19271
- clonedFooter.style.setProperty('display', 'none');
19272
- clonedFooter.setAttribute('aria-hidden', 'true');
19273
- const page = baseEl.querySelector('.ion-page');
19274
- page.style.removeProperty('padding-bottom');
19275
- }
19276
- });
19192
+ .addAnimation(wrapperAnimation);
19277
19193
  if (presentingEl) {
19278
19194
  const isMobile = window.innerWidth < 768;
19279
19195
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19351,69 +19267,22 @@ const createEnterAnimation = () => {
19351
19267
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19352
19268
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19353
19269
  ]);
19354
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19270
+ return { backdropAnimation, wrapperAnimation };
19355
19271
  };
19356
19272
  /**
19357
19273
  * Md Modal Enter Animation
19358
19274
  */
19359
19275
  const mdEnterAnimation$2 = (baseEl, opts) => {
19360
- const { currentBreakpoint, expandToScroll } = opts;
19276
+ const { currentBreakpoint } = opts;
19361
19277
  const root = getElementRoot(baseEl);
19362
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19278
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19363
19279
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19364
19280
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19365
- // The content animation is only added if scrolling is enabled for
19366
- // all the breakpoints.
19367
- expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19368
- const baseAnimation = createAnimation()
19281
+ return createAnimation()
19369
19282
  .addElement(baseEl)
19370
19283
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19371
19284
  .duration(280)
19372
- .addAnimation([backdropAnimation, wrapperAnimation])
19373
- .beforeAddWrite(() => {
19374
- if (expandToScroll) {
19375
- // Scroll can only be done when the modal is fully expanded.
19376
- return;
19377
- }
19378
- /**
19379
- * There are some browsers that causes flickering when
19380
- * dragging the content when scroll is enabled at every
19381
- * breakpoint. This is due to the wrapper element being
19382
- * transformed off the screen and having a snap animation.
19383
- *
19384
- * A workaround is to clone the footer element and append
19385
- * it outside of the wrapper element. This way, the footer
19386
- * is still visible and the drag can be done without
19387
- * flickering. The original footer is hidden until the modal
19388
- * is dismissed. This maintains the animation of the footer
19389
- * when the modal is dismissed.
19390
- *
19391
- * The workaround needs to be done before the animation starts
19392
- * so there are no flickering issues.
19393
- */
19394
- const ionFooter = baseEl.querySelector('ion-footer');
19395
- /**
19396
- * This check is needed to prevent more than one footer
19397
- * from being appended to the shadow root.
19398
- * Otherwise, iOS and MD enter animations would append
19399
- * the footer twice.
19400
- */
19401
- const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19402
- if (ionFooter && !ionFooterAlreadyAppended) {
19403
- const footerHeight = ionFooter.clientHeight;
19404
- const clonedFooter = ionFooter.cloneNode(true);
19405
- baseEl.shadowRoot.appendChild(clonedFooter);
19406
- ionFooter.style.setProperty('display', 'none');
19407
- ionFooter.setAttribute('aria-hidden', 'true');
19408
- // Padding is added to prevent some content from being hidden.
19409
- const page = baseEl.querySelector('.ion-page');
19410
- page.style.setProperty('padding-bottom', `${footerHeight}px`);
19411
- }
19412
- });
19413
- if (contentAnimation) {
19414
- baseAnimation.addAnimation(contentAnimation);
19415
- }
19416
- return baseAnimation;
19285
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19417
19286
  };
19418
19287
 
19419
19288
  const createLeaveAnimation = () => {
@@ -19428,41 +19297,18 @@ const createLeaveAnimation = () => {
19428
19297
  * Md Modal Leave Animation
19429
19298
  */
19430
19299
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19431
- const { currentBreakpoint, expandToScroll } = opts;
19300
+ const { currentBreakpoint } = opts;
19432
19301
  const root = getElementRoot(baseEl);
19433
19302
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19434
19303
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19435
19304
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19436
- const baseAnimation = createAnimation()
19305
+ return createAnimation()
19437
19306
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19438
19307
  .duration(200)
19439
- .addAnimation([backdropAnimation, wrapperAnimation])
19440
- .beforeAddWrite(() => {
19441
- if (expandToScroll) {
19442
- // Scroll can only be done when the modal is fully expanded.
19443
- return;
19444
- }
19445
- /**
19446
- * If expandToScroll is disabled, we need to swap
19447
- * the visibility to the original, so the footer
19448
- * dismisses with the modal and doesn't stay
19449
- * until the modal is removed from the DOM.
19450
- */
19451
- const ionFooter = baseEl.querySelector('ion-footer');
19452
- if (ionFooter) {
19453
- const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19454
- ionFooter.style.removeProperty('display');
19455
- ionFooter.removeAttribute('aria-hidden');
19456
- clonedFooter.style.setProperty('display', 'none');
19457
- clonedFooter.setAttribute('aria-hidden', 'true');
19458
- const page = baseEl.querySelector('.ion-page');
19459
- page.style.removeProperty('padding-bottom');
19460
- }
19461
- });
19462
- return baseAnimation;
19308
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19463
19309
  };
19464
19310
 
19465
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19311
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19466
19312
  // Defaults for the sheet swipe animation
19467
19313
  const defaultBackdrop = [
19468
19314
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19479,10 +19325,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19479
19325
  { offset: 1, transform: 'translateY(100%)' },
19480
19326
  ],
19481
19327
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19482
- CONTENT_KEYFRAMES: [
19483
- { offset: 0, maxHeight: '100%' },
19484
- { offset: 1, maxHeight: '0%' },
19485
- ],
19486
19328
  };
19487
19329
  const contentEl = baseEl.querySelector('ion-content');
19488
19330
  const height = wrapperEl.clientHeight;
@@ -19490,11 +19332,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19490
19332
  let offset = 0;
19491
19333
  let canDismissBlocksGesture = false;
19492
19334
  const canDismissMaxStep = 0.95;
19493
- const maxBreakpoint = breakpoints[breakpoints.length - 1];
19494
- const minBreakpoint = breakpoints[0];
19495
19335
  const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19496
19336
  const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19497
- const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19337
+ const maxBreakpoint = breakpoints[breakpoints.length - 1];
19338
+ const minBreakpoint = breakpoints[0];
19498
19339
  const enableBackdrop = () => {
19499
19340
  baseEl.style.setProperty('pointer-events', 'auto');
19500
19341
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19517,31 +19358,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19517
19358
  */
19518
19359
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19519
19360
  };
19520
- /**
19521
- * Toggles the visible modal footer when `expandToScroll` is disabled.
19522
- * @param footer The footer to show.
19523
- */
19524
- const swapFooterVisibility = (footer) => {
19525
- const originalFooter = baseEl.querySelector('ion-footer');
19526
- if (!originalFooter) {
19527
- return;
19528
- }
19529
- const clonedFooter = wrapperEl.nextElementSibling;
19530
- const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
19531
- const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
19532
- footerToShow.style.removeProperty('display');
19533
- footerToShow.removeAttribute('aria-hidden');
19534
- const page = baseEl.querySelector('.ion-page');
19535
- if (footer === 'original') {
19536
- page.style.removeProperty('padding-bottom');
19537
- }
19538
- else {
19539
- const pagePadding = footerToShow.clientHeight;
19540
- page.style.setProperty('padding-bottom', `${pagePadding}px`);
19541
- }
19542
- footerToHide.style.setProperty('display', 'none');
19543
- footerToHide.setAttribute('aria-hidden', 'true');
19544
- };
19545
19361
  /**
19546
19362
  * After the entering animation completes,
19547
19363
  * we need to set the animation to go from
@@ -19553,7 +19369,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19553
19369
  if (wrapperAnimation && backdropAnimation) {
19554
19370
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19555
19371
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19556
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19557
19372
  animation.progressStart(true, 1 - currentBreakpoint);
19558
19373
  /**
19559
19374
  * If backdrop is not enabled, then content
@@ -19570,7 +19385,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19570
19385
  disableBackdrop();
19571
19386
  }
19572
19387
  }
19573
- if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19388
+ if (contentEl && currentBreakpoint !== maxBreakpoint) {
19574
19389
  contentEl.scrollY = false;
19575
19390
  }
19576
19391
  const canStart = (detail) => {
@@ -19584,13 +19399,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19584
19399
  */
19585
19400
  const contentEl = findClosestIonContent(detail.event.target);
19586
19401
  currentBreakpoint = getCurrentBreakpoint();
19587
- /**
19588
- * If we have expandToScroll disabled, we should not allow the swipe gesture to start
19589
- * if the content is being swiped.
19590
- */
19591
- if (!expandToScroll && contentEl) {
19592
- return false;
19593
- }
19594
19402
  if (currentBreakpoint === 1 && contentEl) {
19595
19403
  /**
19596
19404
  * The modal should never swipe to close on the content with a refresher.
@@ -19621,15 +19429,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19621
19429
  * Remove undefined check
19622
19430
  */
19623
19431
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
19624
- /**
19625
- * If expandToScroll is disabled, we need to swap
19626
- * the footer visibility to the original, so if the modal
19627
- * is dismissed, the footer dismisses with the modal
19628
- * and doesn't stay on the screen after the modal is gone.
19629
- */
19630
- if (!expandToScroll) {
19631
- swapFooterVisibility('original');
19632
- }
19633
19432
  /**
19634
19433
  * If we are pulling down, then it is possible we are pulling on the content.
19635
19434
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19745,19 +19544,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19745
19544
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19746
19545
  },
19747
19546
  ]);
19748
- if (contentAnimation) {
19749
- /**
19750
- * The modal content should scroll at any breakpoint when expandToScroll
19751
- * is disabled. In order to do this, the content needs to be completely
19752
- * viewable so scrolling can access everything. Otherwise, the default
19753
- * behavior would show the content off the screen and only allow
19754
- * scrolling when the sheet is fully expanded.
19755
- */
19756
- contentAnimation.keyframes([
19757
- { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
19758
- { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
19759
- ]);
19760
- }
19761
19547
  animation.progressStep(0);
19762
19548
  }
19763
19549
  /**
@@ -19765,14 +19551,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19765
19551
  * snapping animation completes.
19766
19552
  */
19767
19553
  gesture.enable(false);
19768
- /**
19769
- * If expandToScroll is disabled, we need to swap
19770
- * the footer visibility to the cloned one so the footer
19771
- * doesn't flicker when the sheet's height is animated.
19772
- */
19773
- if (!expandToScroll && shouldRemainOpen) {
19774
- swapFooterVisibility('cloned');
19775
- }
19776
19554
  if (shouldPreventDismiss) {
19777
19555
  handleCanDismiss(baseEl, animation);
19778
19556
  }
@@ -19780,13 +19558,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19780
19558
  onDismiss();
19781
19559
  }
19782
19560
  /**
19783
- * Enables scrolling immediately if the sheet is about to fully expand
19784
- * or if it allows scrolling at any breakpoint. Without this, there would
19785
- * be a ~500ms delay while the modal animation completes, causing a
19786
- * noticeable lag. Native iOS allows scrolling as soon as the gesture is
19787
- * released, so we align with that behavior.
19561
+ * If the sheet is going to be fully expanded then we should enable
19562
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
19563
+ * so if we wait until then there is a visible delay for when scrolling is
19564
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19565
+ * as the gesture is released, so we align with that.
19788
19566
  */
19789
- if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19567
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19790
19568
  contentEl.scrollY = true;
19791
19569
  }
19792
19570
  return new Promise((resolve) => {
@@ -19804,7 +19582,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19804
19582
  raf(() => {
19805
19583
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19806
19584
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19807
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19808
19585
  animation.progressStart(true, 1 - snapToBreakpoint);
19809
19586
  currentBreakpoint = snapToBreakpoint;
19810
19587
  onBreakpointChange(currentBreakpoint);
@@ -19857,10 +19634,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19857
19634
  };
19858
19635
  };
19859
19636
 
19860
- const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}";
19637
+ 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}";
19861
19638
  var IonModalIosStyle0 = modalIosCss;
19862
19639
 
19863
- const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
19640
+ 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}";
19864
19641
  var IonModalMdStyle0 = modalMdCss;
19865
19642
 
19866
19643
  // TODO(FW-2832): types
@@ -19939,7 +19716,6 @@ class Modal {
19939
19716
  this.enterAnimation = undefined;
19940
19717
  this.leaveAnimation = undefined;
19941
19718
  this.breakpoints = undefined;
19942
- this.expandToScroll = true;
19943
19719
  this.initialBreakpoint = undefined;
19944
19720
  this.backdropBreakpoint = 0;
19945
19721
  this.handle = undefined;
@@ -20155,7 +19931,6 @@ class Modal {
20155
19931
  presentingEl: presentingElement,
20156
19932
  currentBreakpoint: this.initialBreakpoint,
20157
19933
  backdropBreakpoint: this.backdropBreakpoint,
20158
- expandToScroll: this.expandToScroll,
20159
19934
  });
20160
19935
  /* tslint:disable-next-line */
20161
19936
  if (typeof window !== 'undefined') {
@@ -20206,10 +19981,7 @@ class Modal {
20206
19981
  // should be in the DOM and referenced by now, except
20207
19982
  // for the presenting el
20208
19983
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
20209
- const ani = (this.animation = animationBuilder(el, {
20210
- presentingEl: this.presentingElement,
20211
- expandToScroll: this.expandToScroll,
20212
- }));
19984
+ const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20213
19985
  const contentEl = findIonContent(el);
20214
19986
  if (!contentEl) {
20215
19987
  printIonContentErrorMsg(el);
@@ -20254,10 +20026,9 @@ class Modal {
20254
20026
  presentingEl: this.presentingElement,
20255
20027
  currentBreakpoint: initialBreakpoint,
20256
20028
  backdropBreakpoint,
20257
- expandToScroll: this.expandToScroll,
20258
20029
  }));
20259
20030
  ani.progressStart(true, 1);
20260
- const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
20031
+ 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) => {
20261
20032
  if (this.currentBreakpoint !== breakpoint) {
20262
20033
  this.currentBreakpoint = breakpoint;
20263
20034
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20335,7 +20106,6 @@ class Modal {
20335
20106
  presentingEl: presentingElement,
20336
20107
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20337
20108
  backdropBreakpoint: this.backdropBreakpoint,
20338
- expandToScroll: this.expandToScroll,
20339
20109
  });
20340
20110
  if (dismissed) {
20341
20111
  const { delegate } = this.getDelegate();
@@ -20421,23 +20191,23 @@ class Modal {
20421
20191
  return true;
20422
20192
  }
20423
20193
  render() {
20424
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20194
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20425
20195
  const showHandle = handle !== false && isSheetModal;
20426
20196
  const mode = getIonMode$1(this);
20427
20197
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20428
20198
  const isHandleCycle = handleBehavior === 'cycle';
20429
- return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20199
+ return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20430
20200
  zIndex: `${20000 + this.overlayIndex}`,
20431
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
20201
+ }, 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',
20432
20202
  /*
20433
20203
  role and aria-modal must be used on the
20434
20204
  same element. They must also be set inside the
20435
20205
  shadow DOM otherwise ion-button will not be highlighted
20436
20206
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20437
20207
  */
20438
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
20208
+ 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",
20439
20209
  // Prevents the handle from receiving keyboard focus when it does not cycle
20440
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
20210
+ 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' }))));
20441
20211
  }
20442
20212
  get el() { return getElement(this); }
20443
20213
  static get watchers() { return {
@@ -20459,7 +20229,6 @@ class Modal {
20459
20229
  "enterAnimation": [16],
20460
20230
  "leaveAnimation": [16],
20461
20231
  "breakpoints": [16],
20462
- "expandToScroll": [4, "expand-to-scroll"],
20463
20232
  "initialBreakpoint": [2, "initial-breakpoint"],
20464
20233
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20465
20234
  "handle": [4],
@@ -29934,7 +29703,6 @@ class Select {
29934
29703
  this.expandedIcon = undefined;
29935
29704
  this.shape = undefined;
29936
29705
  this.value = undefined;
29937
- this.required = false;
29938
29706
  }
29939
29707
  styleChanged() {
29940
29708
  this.emitStyle();
@@ -29990,8 +29758,15 @@ class Select {
29990
29758
  }
29991
29759
  this.isExpanded = true;
29992
29760
  const overlay = (this.overlay = await this.createOverlay(event));
29993
- // Add logic to scroll selected item into view before presenting
29994
- const scrollSelectedIntoView = () => {
29761
+ overlay.onDidDismiss().then(() => {
29762
+ this.overlay = undefined;
29763
+ this.isExpanded = false;
29764
+ this.ionDismiss.emit();
29765
+ this.setFocus();
29766
+ });
29767
+ await overlay.present();
29768
+ // focus selected option for popovers and modals
29769
+ if (this.interface === 'popover' || this.interface === 'modal') {
29995
29770
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29996
29771
  if (indexOfSelected > -1) {
29997
29772
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -30009,7 +29784,6 @@ class Select {
30009
29784
  */
30010
29785
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
30011
29786
  if (interactiveEl) {
30012
- selectedItem.scrollIntoView({ block: 'nearest' });
30013
29787
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
30014
29788
  // and removing `ion-focused` style
30015
29789
  interactiveEl.setFocus();
@@ -30033,40 +29807,7 @@ class Select {
30033
29807
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
30034
29808
  }
30035
29809
  }
30036
- };
30037
- // For modals and popovers, we can scroll before they're visible
30038
- if (this.interface === 'modal') {
30039
- overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
30040
29810
  }
30041
- else if (this.interface === 'popover') {
30042
- overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
30043
- }
30044
- else {
30045
- /**
30046
- * For alerts and action sheets, we need to wait a frame after willPresent
30047
- * because these overlays don't have their content in the DOM immediately
30048
- * when willPresent fires. By waiting a frame, we ensure the content is
30049
- * rendered and can be properly scrolled into view.
30050
- */
30051
- const scrollAfterRender = () => {
30052
- requestAnimationFrame(() => {
30053
- scrollSelectedIntoView();
30054
- });
30055
- };
30056
- if (this.interface === 'alert') {
30057
- overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
30058
- }
30059
- else if (this.interface === 'action-sheet') {
30060
- overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
30061
- }
30062
- }
30063
- overlay.onDidDismiss().then(() => {
30064
- this.overlay = undefined;
30065
- this.isExpanded = false;
30066
- this.ionDismiss.emit();
30067
- this.setFocus();
30068
- });
30069
- await overlay.present();
30070
29811
  return overlay;
30071
29812
  }
30072
29813
  createOverlay(ev) {
@@ -30446,8 +30187,8 @@ class Select {
30446
30187
  return renderedLabel;
30447
30188
  }
30448
30189
  renderListbox() {
30449
- const { disabled, inputId, isExpanded, required } = this;
30450
- return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
30190
+ const { disabled, inputId, isExpanded } = this;
30191
+ 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) }));
30451
30192
  }
30452
30193
  render() {
30453
30194
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30478,7 +30219,7 @@ class Select {
30478
30219
  * TODO(FW-5592): Remove hasStartEndSlots condition
30479
30220
  */
30480
30221
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30481
- return (hAsync(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses$1(this.color, {
30222
+ return (hAsync(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses$1(this.color, {
30482
30223
  [mode]: true,
30483
30224
  'in-item': inItem,
30484
30225
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30494,7 +30235,7 @@ class Select {
30494
30235
  [`select-justify-${justify}`]: justifyEnabled,
30495
30236
  [`select-shape-${shape}`]: shape !== undefined,
30496
30237
  [`select-label-placement-${labelPlacement}`]: true,
30497
- }) }, hAsync("label", { key: '91674f8f5cce37c87a7096d09b3f1d351cba1527', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '2229333833047db13ed2a01cb10bb6e6f774031d', class: "select-wrapper-inner" }, hAsync("slot", { key: 'f2766bdf8bff261efa5711f72d9edef407e45189', name: "start" }), hAsync("div", { key: '84fec020ecaaac41298a01dbffdbb2f3744170b4', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '9b91237d7a1621bce1e15546abcb4f6b74cccc5f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'e02aea3e8f344376013257f5261a29408e62b359', class: "select-highlight" }))));
30238
+ }) }, 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" }))));
30498
30239
  }
30499
30240
  get el() { return getElement(this); }
30500
30241
  static get watchers() { return {
@@ -30530,7 +30271,6 @@ class Select {
30530
30271
  "expandedIcon": [1, "expanded-icon"],
30531
30272
  "shape": [1],
30532
30273
  "value": [1032],
30533
- "required": [4],
30534
30274
  "isExpanded": [32],
30535
30275
  "open": [64]
30536
30276
  },
@@ -32927,7 +32667,6 @@ class Toggle {
32927
32667
  this.labelPlacement = 'start';
32928
32668
  this.justify = undefined;
32929
32669
  this.alignment = undefined;
32930
- this.required = false;
32931
32670
  }
32932
32671
  disabledChanged() {
32933
32672
  if (this.gesture) {
@@ -33009,12 +32748,12 @@ class Toggle {
33009
32748
  return this.el.textContent !== '';
33010
32749
  }
33011
32750
  render() {
33012
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32751
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
33013
32752
  const mode = getIonMode$1(this);
33014
32753
  const value = this.getValue();
33015
32754
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
33016
32755
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
33017
- return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
32756
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
33018
32757
  [mode]: true,
33019
32758
  'in-item': hostContext('ion-item', el),
33020
32759
  'toggle-activated': activated,
@@ -33024,10 +32763,10 @@ class Toggle {
33024
32763
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
33025
32764
  [`toggle-label-placement-${labelPlacement}`]: true,
33026
32765
  [`toggle-${rtl}`]: true,
33027
- }) }, hAsync("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), hAsync("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
32766
+ }) }, 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: {
33028
32767
  'label-text-wrapper': true,
33029
32768
  'label-text-wrapper-hidden': !this.hasLabel,
33030
- }, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
32769
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
33031
32770
  }
33032
32771
  get el() { return getElement(this); }
33033
32772
  static get watchers() { return {
@@ -33050,7 +32789,6 @@ class Toggle {
33050
32789
  "labelPlacement": [1, "label-placement"],
33051
32790
  "justify": [1],
33052
32791
  "alignment": [1],
33053
- "required": [4],
33054
32792
  "activated": [32]
33055
32793
  },
33056
32794
  "$listeners$": undefined,
@@ -33082,10 +32820,6 @@ var IonToolbarMdStyle0 = toolbarMdCss;
33082
32820
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
33083
32821
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
33084
32822
  * @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
33085
- *
33086
- * @part background - The background of the toolbar, covering the entire area behind the toolbar content.
33087
- * @part container - The container that wraps all toolbar content, including the default slot and named slot content.
33088
- * @part content - The container for the default slot, wrapping content provided without a named slot.
33089
32823
  */
33090
32824
  class Toolbar {
33091
32825
  constructor(hostRef) {
@@ -33136,10 +32870,10 @@ class Toolbar {
33136
32870
  this.childrenStyles.forEach((value) => {
33137
32871
  Object.assign(childStyles, value);
33138
32872
  });
33139
- return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32873
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33140
32874
  [mode]: true,
33141
32875
  'in-toolbar': hostContext('ion-toolbar', this.el),
33142
- })) }, hAsync("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), hAsync("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), hAsync("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), hAsync("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), hAsync("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), hAsync("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
32876
+ })) }, 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" }))));
33143
32877
  }
33144
32878
  get el() { return getElement(this); }
33145
32879
  static get style() { return {