@ionic/core 8.4.4-dev.11741027468.1f4941f2 → 8.4.4-dev.11741030124.1142ac6a

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 (249) hide show
  1. package/components/checkbox.js +4 -6
  2. package/components/index6.js +3 -11
  3. package/components/ion-select.js +4 -6
  4. package/components/ion-toggle.js +4 -6
  5. package/components/modal.js +35 -259
  6. package/components/toolbar.js +2 -2
  7. package/css/core.css.map +1 -1
  8. package/css/ionic.bundle.css.map +1 -1
  9. package/dist/cjs/{data-108e531d.js → data-21dc0f81.js} +1 -1
  10. package/dist/cjs/{index-0ff61d0b.js → index-1ae3f40a.js} +1 -1
  11. package/dist/cjs/{index-26bb7e42.js → index-4e14a46e.js} +3 -3
  12. package/dist/cjs/{index-2a46a047.js → index-5915f9b3.js} +3 -11
  13. package/dist/cjs/{index-6770fc00.js → index-c441c903.js} +1 -1
  14. package/dist/cjs/index.cjs.js +6 -6
  15. package/dist/cjs/{input-shims-fd997b01.js → input-shims-e748a364.js} +2 -4
  16. package/dist/cjs/{input.utils-c15a1814.js → input.utils-74e4ec28.js} +1 -1
  17. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
  19. package/dist/cjs/ion-alert.cjs.entry.js +2 -2
  20. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  21. package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
  22. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -5
  23. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-datetime_3.cjs.entry.js +3 -3
  25. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
  27. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  31. package/dist/cjs/ion-modal.cjs.entry.js +39 -262
  32. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-popover.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-select_3.cjs.entry.js +6 -7
  39. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-toggle.cjs.entry.js +4 -5
  42. package/dist/cjs/ionic.cjs.js +1 -1
  43. package/dist/cjs/{ios.transition-a4f35c55.js → ios.transition-afdec89f.js} +2 -2
  44. package/dist/cjs/loader.cjs.js +1 -1
  45. package/dist/cjs/{md.transition-cdf904e6.js → md.transition-9f0d3db5.js} +2 -2
  46. package/dist/cjs/{overlays-86695cf1.js → overlays-76b29cd4.js} +1 -1
  47. package/dist/cjs/{status-tap-1a2485c1.js → status-tap-fb807fad.js} +2 -3
  48. package/dist/collection/components/checkbox/checkbox.js +4 -23
  49. package/dist/collection/components/modal/animations/ios.enter.js +4 -50
  50. package/dist/collection/components/modal/animations/ios.leave.js +2 -24
  51. package/dist/collection/components/modal/animations/md.enter.js +5 -52
  52. package/dist/collection/components/modal/animations/md.leave.js +3 -26
  53. package/dist/collection/components/modal/animations/sheet.js +2 -11
  54. package/dist/collection/components/modal/gestures/sheet.js +10 -79
  55. package/dist/collection/components/modal/modal.ios.css +0 -16
  56. package/dist/collection/components/modal/modal.js +7 -32
  57. package/dist/collection/components/modal/modal.md.css +0 -6
  58. package/dist/collection/components/select/select.js +4 -23
  59. package/dist/collection/components/toggle/toggle.js +4 -23
  60. package/dist/collection/components/toolbar/toolbar.js +2 -6
  61. package/dist/collection/utils/logging/index.js +3 -10
  62. package/dist/docs.json +2 -115
  63. package/dist/esm/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  64. package/dist/esm/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
  65. package/dist/esm/{index-6a5baab0.js → index-7ec5519a.js} +3 -3
  66. package/dist/esm/{index-7105cd59.js → index-8785a9c6.js} +1 -1
  67. package/dist/esm/{index-6ad967f3.js → index-9b0d46f4.js} +3 -11
  68. package/dist/esm/index.js +6 -6
  69. package/dist/esm/{input-shims-dff819a9.js → input-shims-0e65111b.js} +2 -4
  70. package/dist/esm/{input.utils-2f1029cf.js → input.utils-1ad8dafc.js} +1 -1
  71. package/dist/esm/ion-accordion_2.entry.js +1 -1
  72. package/dist/esm/ion-action-sheet.entry.js +2 -2
  73. package/dist/esm/ion-alert.entry.js +2 -2
  74. package/dist/esm/ion-app_8.entry.js +7 -7
  75. package/dist/esm/ion-button_2.entry.js +1 -1
  76. package/dist/esm/ion-checkbox.entry.js +4 -5
  77. package/dist/esm/ion-datetime-button.entry.js +2 -2
  78. package/dist/esm/ion-datetime_3.entry.js +3 -3
  79. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  80. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  81. package/dist/esm/ion-input.entry.js +2 -2
  82. package/dist/esm/ion-item-option_3.entry.js +2 -2
  83. package/dist/esm/ion-loading.entry.js +2 -2
  84. package/dist/esm/ion-menu_3.entry.js +3 -3
  85. package/dist/esm/ion-modal.entry.js +39 -262
  86. package/dist/esm/ion-nav_2.entry.js +2 -2
  87. package/dist/esm/ion-popover.entry.js +3 -3
  88. package/dist/esm/ion-range.entry.js +2 -2
  89. package/dist/esm/ion-refresher_2.entry.js +2 -2
  90. package/dist/esm/ion-reorder_2.entry.js +2 -2
  91. package/dist/esm/ion-select-modal.entry.js +2 -2
  92. package/dist/esm/ion-select_3.entry.js +6 -7
  93. package/dist/esm/ion-textarea.entry.js +2 -2
  94. package/dist/esm/ion-toast.entry.js +2 -2
  95. package/dist/esm/ion-toggle.entry.js +4 -5
  96. package/dist/esm/ionic.js +1 -1
  97. package/dist/esm/{ios.transition-314468a2.js → ios.transition-085853ff.js} +2 -2
  98. package/dist/esm/loader.js +1 -1
  99. package/dist/esm/{md.transition-a560e0e2.js → md.transition-33826623.js} +2 -2
  100. package/dist/esm/{overlays-9a81f230.js → overlays-e3d0d356.js} +1 -1
  101. package/dist/esm/{status-tap-d07dbc82.js → status-tap-163e8128.js} +2 -3
  102. package/dist/esm-es5/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  103. package/dist/esm-es5/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
  104. package/dist/esm-es5/{index-6a5baab0.js → index-7ec5519a.js} +1 -1
  105. package/dist/esm-es5/{index-7105cd59.js → index-8785a9c6.js} +1 -1
  106. package/dist/esm-es5/index-9b0d46f4.js +4 -0
  107. package/dist/esm-es5/index.js +1 -1
  108. package/dist/esm-es5/input-shims-0e65111b.js +4 -0
  109. package/dist/esm-es5/{input.utils-2f1029cf.js → input.utils-1ad8dafc.js} +1 -1
  110. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  111. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  112. package/dist/esm-es5/ion-alert.entry.js +1 -1
  113. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  114. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  115. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  116. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  117. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  118. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  119. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  120. package/dist/esm-es5/ion-input.entry.js +1 -1
  121. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  122. package/dist/esm-es5/ion-loading.entry.js +1 -1
  123. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  124. package/dist/esm-es5/ion-modal.entry.js +1 -1
  125. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  126. package/dist/esm-es5/ion-popover.entry.js +1 -1
  127. package/dist/esm-es5/ion-range.entry.js +1 -1
  128. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  129. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  130. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  131. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  132. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  133. package/dist/esm-es5/ion-toast.entry.js +1 -1
  134. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  135. package/dist/esm-es5/ionic.js +1 -1
  136. package/dist/esm-es5/{ios.transition-314468a2.js → ios.transition-085853ff.js} +1 -1
  137. package/dist/esm-es5/loader.js +1 -1
  138. package/dist/esm-es5/md.transition-33826623.js +4 -0
  139. package/dist/esm-es5/{overlays-9a81f230.js → overlays-e3d0d356.js} +1 -1
  140. package/dist/esm-es5/status-tap-163e8128.js +4 -0
  141. package/dist/html.html-data.json +0 -16
  142. package/dist/ionic/index.esm.js +1 -1
  143. package/dist/ionic/ionic.esm.js +1 -1
  144. package/dist/ionic/{p-c935cfc9.js → p-02e1ebd9.js} +1 -1
  145. package/dist/ionic/{p-037fc3f3.entry.js → p-0397811d.entry.js} +1 -1
  146. package/dist/ionic/p-06fee233.js +4 -0
  147. package/dist/ionic/p-075a94bd.js +4 -0
  148. package/dist/ionic/p-0a59f4fa.entry.js +4 -0
  149. package/dist/ionic/{p-18e101b7.system.entry.js → p-0c9b6d3a.system.entry.js} +1 -1
  150. package/dist/ionic/p-0e43be1b.entry.js +4 -0
  151. package/dist/ionic/p-0ee3b5a2.system.js +4 -0
  152. package/dist/ionic/p-135e5731.js +4 -0
  153. package/dist/ionic/{p-990630ca.js → p-13dc21b0.js} +1 -1
  154. package/dist/ionic/{p-d7bb5325.entry.js → p-14143257.entry.js} +1 -1
  155. package/dist/ionic/{p-a584c79d.system.entry.js → p-162c8d0c.system.entry.js} +1 -1
  156. package/dist/ionic/{p-578efda4.system.js → p-1a790eef.system.js} +2 -2
  157. package/dist/ionic/{p-5010643d.system.entry.js → p-1bbe8665.system.entry.js} +2 -2
  158. package/dist/ionic/{p-5882bffa.system.entry.js → p-1bc65aec.system.entry.js} +1 -1
  159. package/dist/ionic/{p-70af0afb.entry.js → p-203633d1.entry.js} +1 -1
  160. package/dist/ionic/p-25fa1d30.system.entry.js +4 -0
  161. package/dist/ionic/{p-9de5c787.entry.js → p-26194519.entry.js} +1 -1
  162. package/dist/ionic/p-322c5fb4.system.js +1 -1
  163. package/dist/ionic/{p-155c2bb0.entry.js → p-32e99b0a.entry.js} +1 -1
  164. package/dist/ionic/{p-8e407469.system.js → p-340e3f24.system.js} +1 -1
  165. package/dist/ionic/{p-d821466d.system.entry.js → p-3572f86a.system.entry.js} +1 -1
  166. package/dist/ionic/{p-63c09585.system.entry.js → p-3df889b3.system.entry.js} +1 -1
  167. package/dist/ionic/{p-e32557bb.system.entry.js → p-3eaf1444.system.entry.js} +1 -1
  168. package/dist/ionic/{p-39dd4f62.js → p-42808996.js} +1 -1
  169. package/dist/ionic/{p-efbf5af5.system.entry.js → p-4346c79d.system.entry.js} +1 -1
  170. package/dist/ionic/{p-36c448fe.entry.js → p-45de8d2a.entry.js} +1 -1
  171. package/dist/ionic/{p-acc8399c.system.entry.js → p-48a8d9b4.system.entry.js} +2 -2
  172. package/dist/ionic/{p-e5849f8d.entry.js → p-4c252070.entry.js} +1 -1
  173. package/dist/ionic/p-51dec25d.js +4 -0
  174. package/dist/ionic/{p-484d855b.system.entry.js → p-561ddcd4.system.entry.js} +1 -1
  175. package/dist/ionic/{p-bc616455.entry.js → p-57379000.entry.js} +1 -1
  176. package/dist/ionic/{p-a5b31c0f.entry.js → p-57ceead7.entry.js} +1 -1
  177. package/dist/ionic/{p-97a65908.entry.js → p-5cde8ef3.entry.js} +1 -1
  178. package/dist/ionic/p-61d044b4.entry.js +4 -0
  179. package/dist/ionic/p-68dc53a5.js +4 -0
  180. package/dist/ionic/{p-2cbe5399.entry.js → p-6b1bd0c1.entry.js} +1 -1
  181. package/dist/ionic/{p-31a6efce.system.entry.js → p-7b96e5c1.system.entry.js} +1 -1
  182. package/dist/ionic/{p-5fe8b767.entry.js → p-803f0bc2.entry.js} +1 -1
  183. package/dist/ionic/{p-9962f63f.entry.js → p-82b931e2.entry.js} +1 -1
  184. package/dist/ionic/{p-8818edd8.entry.js → p-83e68c71.entry.js} +1 -1
  185. package/dist/ionic/p-84b1b9a0.entry.js +4 -0
  186. package/dist/ionic/{p-af452fa4.system.js → p-881d9e52.system.js} +1 -1
  187. package/dist/ionic/p-8a836849.entry.js +4 -0
  188. package/dist/ionic/{p-af744710.system.entry.js → p-91f17b25.system.entry.js} +2 -2
  189. package/dist/ionic/{p-d1172fe3.system.entry.js → p-9a1f985d.system.entry.js} +1 -1
  190. package/dist/ionic/{p-eeb5cb45.system.entry.js → p-9be5f3ee.system.entry.js} +1 -1
  191. package/dist/ionic/{p-acb30a5c.system.js → p-9eee4de1.system.js} +1 -1
  192. package/dist/ionic/{p-860eb968.system.js → p-a2b6dd57.system.js} +1 -1
  193. package/dist/ionic/{p-10327ad2.system.entry.js → p-a3c78186.system.entry.js} +1 -1
  194. package/dist/ionic/{p-4d413973.system.entry.js → p-a4575db1.system.entry.js} +1 -1
  195. package/dist/ionic/{p-73897169.system.js → p-aa63b365.system.js} +1 -1
  196. package/dist/ionic/{p-155f4d90.entry.js → p-b0d8bbee.entry.js} +1 -1
  197. package/dist/ionic/p-b7433d7d.js +4 -0
  198. package/dist/ionic/{p-65346408.system.entry.js → p-b91acf8d.system.entry.js} +1 -1
  199. package/dist/ionic/{p-d99e8644.system.js → p-c1b51537.system.js} +1 -1
  200. package/dist/ionic/{p-8cfba7e9.system.entry.js → p-c29f8157.system.entry.js} +1 -1
  201. package/dist/ionic/{p-72ec9a26.entry.js → p-cc700b6b.entry.js} +1 -1
  202. package/dist/ionic/{p-0bfffa34.system.entry.js → p-d06601eb.system.entry.js} +1 -1
  203. package/dist/ionic/{p-93e3654c.system.entry.js → p-d192fdf7.system.entry.js} +1 -1
  204. package/dist/ionic/{p-7ae680ba.system.entry.js → p-d3b26da4.system.entry.js} +1 -1
  205. package/dist/ionic/{p-1a5bc5f7.js → p-d60342e3.js} +1 -1
  206. package/dist/ionic/{p-89bf08c7.entry.js → p-da074ff7.entry.js} +1 -1
  207. package/dist/ionic/{p-fec13c57.entry.js → p-e1bbacb7.entry.js} +1 -1
  208. package/dist/ionic/{p-179bf9d1.system.entry.js → p-e265ae18.system.entry.js} +1 -1
  209. package/dist/ionic/{p-fbf86e62.system.js → p-e308de5b.system.js} +1 -1
  210. package/dist/ionic/{p-655723eb.system.entry.js → p-e456ee59.system.entry.js} +1 -1
  211. package/dist/ionic/{p-058e61eb.system.js → p-e8232807.system.js} +1 -1
  212. package/dist/ionic/{p-80c6d619.entry.js → p-e97a3f44.entry.js} +1 -1
  213. package/dist/ionic/{p-f5d6624d.entry.js → p-f42743d1.entry.js} +1 -1
  214. package/dist/ionic/{p-4d3a5f86.js → p-f5035354.js} +1 -1
  215. package/dist/ionic/{p-343b6b1d.system.js → p-f687573e.system.js} +1 -1
  216. package/dist/ionic/p-ff4b7e40.system.js +4 -0
  217. package/dist/ionic/{p-f56752be.system.entry.js → p-ffc48bc5.system.entry.js} +1 -1
  218. package/dist/types/components/checkbox/checkbox.d.ts +0 -6
  219. package/dist/types/components/modal/animations/sheet.d.ts +0 -1
  220. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  221. package/dist/types/components/modal/modal-interface.d.ts +0 -1
  222. package/dist/types/components/modal/modal.d.ts +0 -11
  223. package/dist/types/components/select/select.d.ts +0 -6
  224. package/dist/types/components/toggle/toggle.d.ts +0 -6
  225. package/dist/types/components/toolbar/toolbar.d.ts +0 -4
  226. package/dist/types/components.d.ts +0 -32
  227. package/dist/types/utils/config.d.ts +0 -9
  228. package/dist/types/utils/logging/index.d.ts +1 -13
  229. package/hydrate/index.js +52 -292
  230. package/hydrate/index.mjs +52 -292
  231. package/package.json +2 -2
  232. package/dist/esm-es5/index-6ad967f3.js +0 -4
  233. package/dist/esm-es5/input-shims-dff819a9.js +0 -4
  234. package/dist/esm-es5/md.transition-a560e0e2.js +0 -4
  235. package/dist/esm-es5/status-tap-d07dbc82.js +0 -4
  236. package/dist/ionic/p-21227121.js +0 -4
  237. package/dist/ionic/p-22149a4f.js +0 -4
  238. package/dist/ionic/p-34479cfb.entry.js +0 -4
  239. package/dist/ionic/p-346b2baf.js +0 -4
  240. package/dist/ionic/p-3e99e3e0.entry.js +0 -4
  241. package/dist/ionic/p-42c9deb1.entry.js +0 -4
  242. package/dist/ionic/p-52245809.js +0 -4
  243. package/dist/ionic/p-5c9324c6.js +0 -4
  244. package/dist/ionic/p-67222c16.system.js +0 -4
  245. package/dist/ionic/p-712fedc9.entry.js +0 -4
  246. package/dist/ionic/p-a18470c6.entry.js +0 -4
  247. package/dist/ionic/p-c3802319.system.js +0 -4
  248. package/dist/ionic/p-e8d56122.js +0 -4
  249. package/dist/ionic/p-f2613334.system.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -3227,12 +3227,9 @@ let accordionIds = 0;
3227
3227
  * @param message - The string message to be logged to the console.
3228
3228
  */
3229
3229
  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
- }
3230
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3234
3231
  };
3235
- /**
3232
+ /*
3236
3233
  * Logs an error to the console with an Ionic prefix
3237
3234
  * to indicate the library that is warning the developer.
3238
3235
  *
@@ -3240,10 +3237,7 @@ const printIonWarning = (message, ...params) => {
3240
3237
  * @param params - Additional arguments to supply to the console.error.
3241
3238
  */
3242
3239
  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
- }
3240
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3247
3241
  };
3248
3242
  /**
3249
3243
  * Prints an error informing developers that an implementation requires an element to be used
@@ -8507,7 +8501,6 @@ class Checkbox {
8507
8501
  this.labelPlacement = 'start';
8508
8502
  this.justify = undefined;
8509
8503
  this.alignment = undefined;
8510
- this.required = false;
8511
8504
  }
8512
8505
  componentWillLoad() {
8513
8506
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8519,11 +8512,11 @@ class Checkbox {
8519
8512
  }
8520
8513
  }
8521
8514
  render() {
8522
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8515
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8523
8516
  const mode = getIonMode$1(this);
8524
8517
  const path = getSVGPath(mode, indeterminate);
8525
8518
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8526
- return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8519
+ return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8527
8520
  [mode]: true,
8528
8521
  'in-item': hostContext('ion-item', el),
8529
8522
  'checkbox-checked': checked,
@@ -8533,10 +8526,10 @@ class Checkbox {
8533
8526
  [`checkbox-justify-${justify}`]: justify !== undefined,
8534
8527
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8535
8528
  [`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: {
8529
+ }), onClick: this.onClick }, hAsync("label", { key: '68222fb736a5ec3f2e488649b0e2ce0417dcb224', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'f12962d7e9b19c744cfdbdeccc67ae7f5d080281', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), hAsync("div", { key: 'c72df2699414b1e5a41a1bc267bc634f0c93dcff', class: {
8537
8530
  'label-text-wrapper': true,
8538
8531
  '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)))));
8532
+ }, part: "label" }, hAsync("slot", { key: 'a2a80285178a7e0e3b536fc9ca26b8b444aa4307' })), hAsync("div", { key: 'c2b05e0d1fe8df5dcd72858220b5ff51ecaee4cc', class: "native-wrapper" }, hAsync("svg", { key: 'ee24913fded72258ebd9713654a6dba92a18fcf7', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8540
8533
  }
8541
8534
  getSVGPath(mode, indeterminate) {
8542
8535
  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 +8556,6 @@ class Checkbox {
8563
8556
  "labelPlacement": [1, "label-placement"],
8564
8557
  "justify": [1],
8565
8558
  "alignment": [1],
8566
- "required": [4],
8567
8559
  "setFocus": [64]
8568
8560
  },
8569
8561
  "$listeners$": undefined,
@@ -19039,7 +19031,7 @@ const computeDuration = (remaining, velocity) => {
19039
19031
  };
19040
19032
 
19041
19033
  const createSheetEnterAnimation = (opts) => {
19042
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19034
+ const { currentBreakpoint, backdropBreakpoint } = opts;
19043
19035
  /**
19044
19036
  * If the backdropBreakpoint is undefined, then the backdrop
19045
19037
  * should always fade in. If the backdropBreakpoint came before the
@@ -19059,16 +19051,7 @@ const createSheetEnterAnimation = (opts) => {
19059
19051
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19060
19052
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19061
19053
  ]);
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 };
19054
+ return { wrapperAnimation, backdropAnimation };
19072
19055
  };
19073
19056
  const createSheetLeaveAnimation = (opts) => {
19074
19057
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19103,68 +19086,22 @@ const createEnterAnimation$1 = () => {
19103
19086
  })
19104
19087
  .afterClearStyles(['pointer-events']);
19105
19088
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19106
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19089
+ return { backdropAnimation, wrapperAnimation };
19107
19090
  };
19108
19091
  /**
19109
19092
  * iOS Modal Enter Animation for the Card presentation style
19110
19093
  */
19111
19094
  const iosEnterAnimation$3 = (baseEl, opts) => {
19112
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19095
+ const { presentingEl, currentBreakpoint } = opts;
19113
19096
  const root = getElementRoot(baseEl);
19114
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19097
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19115
19098
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19116
19099
  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
19100
  const baseAnimation = createAnimation('entering-base')
19121
19101
  .addElement(baseEl)
19122
19102
  .easing('cubic-bezier(0.32,0.72,0,1)')
19123
19103
  .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
- }
19104
+ .addAnimation(wrapperAnimation);
19168
19105
  if (presentingEl) {
19169
19106
  const isMobile = window.innerWidth < 768;
19170
19107
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19242,7 +19179,7 @@ const createLeaveAnimation$1 = () => {
19242
19179
  * iOS Modal Leave Animation
19243
19180
  */
19244
19181
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19245
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19182
+ const { presentingEl, currentBreakpoint } = opts;
19246
19183
  const root = getElementRoot(baseEl);
19247
19184
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19248
19185
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19251,29 +19188,7 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19251
19188
  .addElement(baseEl)
19252
19189
  .easing('cubic-bezier(0.32,0.72,0,1)')
19253
19190
  .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
- });
19191
+ .addAnimation(wrapperAnimation);
19277
19192
  if (presentingEl) {
19278
19193
  const isMobile = window.innerWidth < 768;
19279
19194
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19351,69 +19266,22 @@ const createEnterAnimation = () => {
19351
19266
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19352
19267
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19353
19268
  ]);
19354
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19269
+ return { backdropAnimation, wrapperAnimation };
19355
19270
  };
19356
19271
  /**
19357
19272
  * Md Modal Enter Animation
19358
19273
  */
19359
19274
  const mdEnterAnimation$2 = (baseEl, opts) => {
19360
- const { currentBreakpoint, expandToScroll } = opts;
19275
+ const { currentBreakpoint } = opts;
19361
19276
  const root = getElementRoot(baseEl);
19362
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19277
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19363
19278
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19364
19279
  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()
19280
+ return createAnimation()
19369
19281
  .addElement(baseEl)
19370
19282
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19371
19283
  .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;
19284
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19417
19285
  };
19418
19286
 
19419
19287
  const createLeaveAnimation = () => {
@@ -19428,41 +19296,18 @@ const createLeaveAnimation = () => {
19428
19296
  * Md Modal Leave Animation
19429
19297
  */
19430
19298
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19431
- const { currentBreakpoint, expandToScroll } = opts;
19299
+ const { currentBreakpoint } = opts;
19432
19300
  const root = getElementRoot(baseEl);
19433
19301
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19434
19302
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19435
19303
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19436
- const baseAnimation = createAnimation()
19304
+ return createAnimation()
19437
19305
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19438
19306
  .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;
19307
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19463
19308
  };
19464
19309
 
19465
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19310
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19466
19311
  // Defaults for the sheet swipe animation
19467
19312
  const defaultBackdrop = [
19468
19313
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19479,10 +19324,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19479
19324
  { offset: 1, transform: 'translateY(100%)' },
19480
19325
  ],
19481
19326
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19482
- CONTENT_KEYFRAMES: [
19483
- { offset: 0, maxHeight: '100%' },
19484
- { offset: 1, maxHeight: '0%' },
19485
- ],
19486
19327
  };
19487
19328
  const contentEl = baseEl.querySelector('ion-content');
19488
19329
  const height = wrapperEl.clientHeight;
@@ -19490,11 +19331,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19490
19331
  let offset = 0;
19491
19332
  let canDismissBlocksGesture = false;
19492
19333
  const canDismissMaxStep = 0.95;
19493
- const maxBreakpoint = breakpoints[breakpoints.length - 1];
19494
- const minBreakpoint = breakpoints[0];
19495
19334
  const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19496
19335
  const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19497
- const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19336
+ const maxBreakpoint = breakpoints[breakpoints.length - 1];
19337
+ const minBreakpoint = breakpoints[0];
19498
19338
  const enableBackdrop = () => {
19499
19339
  baseEl.style.setProperty('pointer-events', 'auto');
19500
19340
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19517,31 +19357,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19517
19357
  */
19518
19358
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19519
19359
  };
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
19360
  /**
19546
19361
  * After the entering animation completes,
19547
19362
  * we need to set the animation to go from
@@ -19553,7 +19368,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19553
19368
  if (wrapperAnimation && backdropAnimation) {
19554
19369
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19555
19370
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19556
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19557
19371
  animation.progressStart(true, 1 - currentBreakpoint);
19558
19372
  /**
19559
19373
  * If backdrop is not enabled, then content
@@ -19570,7 +19384,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19570
19384
  disableBackdrop();
19571
19385
  }
19572
19386
  }
19573
- if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19387
+ if (contentEl && currentBreakpoint !== maxBreakpoint) {
19574
19388
  contentEl.scrollY = false;
19575
19389
  }
19576
19390
  const canStart = (detail) => {
@@ -19584,13 +19398,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19584
19398
  */
19585
19399
  const contentEl = findClosestIonContent(detail.event.target);
19586
19400
  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
19401
  if (currentBreakpoint === 1 && contentEl) {
19595
19402
  /**
19596
19403
  * The modal should never swipe to close on the content with a refresher.
@@ -19621,15 +19428,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19621
19428
  * Remove undefined check
19622
19429
  */
19623
19430
  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
19431
  /**
19634
19432
  * If we are pulling down, then it is possible we are pulling on the content.
19635
19433
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19745,19 +19543,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19745
19543
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19746
19544
  },
19747
19545
  ]);
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
19546
  animation.progressStep(0);
19762
19547
  }
19763
19548
  /**
@@ -19765,14 +19550,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19765
19550
  * snapping animation completes.
19766
19551
  */
19767
19552
  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
19553
  if (shouldPreventDismiss) {
19777
19554
  handleCanDismiss(baseEl, animation);
19778
19555
  }
@@ -19780,13 +19557,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19780
19557
  onDismiss();
19781
19558
  }
19782
19559
  /**
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.
19560
+ * If the sheet is going to be fully expanded then we should enable
19561
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
19562
+ * so if we wait until then there is a visible delay for when scrolling is
19563
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19564
+ * as the gesture is released, so we align with that.
19788
19565
  */
19789
- if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19566
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19790
19567
  contentEl.scrollY = true;
19791
19568
  }
19792
19569
  return new Promise((resolve) => {
@@ -19804,7 +19581,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19804
19581
  raf(() => {
19805
19582
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19806
19583
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19807
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19808
19584
  animation.progressStart(true, 1 - snapToBreakpoint);
19809
19585
  currentBreakpoint = snapToBreakpoint;
19810
19586
  onBreakpointChange(currentBreakpoint);
@@ -19857,10 +19633,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19857
19633
  };
19858
19634
  };
19859
19635
 
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}";
19636
+ const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}";
19861
19637
  var IonModalIosStyle0 = modalIosCss;
19862
19638
 
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}";
19639
+ const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
19864
19640
  var IonModalMdStyle0 = modalMdCss;
19865
19641
 
19866
19642
  // TODO(FW-2832): types
@@ -19939,7 +19715,6 @@ class Modal {
19939
19715
  this.enterAnimation = undefined;
19940
19716
  this.leaveAnimation = undefined;
19941
19717
  this.breakpoints = undefined;
19942
- this.expandToScroll = true;
19943
19718
  this.initialBreakpoint = undefined;
19944
19719
  this.backdropBreakpoint = 0;
19945
19720
  this.handle = undefined;
@@ -20155,7 +19930,6 @@ class Modal {
20155
19930
  presentingEl: presentingElement,
20156
19931
  currentBreakpoint: this.initialBreakpoint,
20157
19932
  backdropBreakpoint: this.backdropBreakpoint,
20158
- expandToScroll: this.expandToScroll,
20159
19933
  });
20160
19934
  /* tslint:disable-next-line */
20161
19935
  if (typeof window !== 'undefined') {
@@ -20206,10 +19980,7 @@ class Modal {
20206
19980
  // should be in the DOM and referenced by now, except
20207
19981
  // for the presenting el
20208
19982
  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
- }));
19983
+ const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20213
19984
  const contentEl = findIonContent(el);
20214
19985
  if (!contentEl) {
20215
19986
  printIonContentErrorMsg(el);
@@ -20254,10 +20025,9 @@ class Modal {
20254
20025
  presentingEl: this.presentingElement,
20255
20026
  currentBreakpoint: initialBreakpoint,
20256
20027
  backdropBreakpoint,
20257
- expandToScroll: this.expandToScroll,
20258
20028
  }));
20259
20029
  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) => {
20030
+ const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
20261
20031
  if (this.currentBreakpoint !== breakpoint) {
20262
20032
  this.currentBreakpoint = breakpoint;
20263
20033
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20335,7 +20105,6 @@ class Modal {
20335
20105
  presentingEl: presentingElement,
20336
20106
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20337
20107
  backdropBreakpoint: this.backdropBreakpoint,
20338
- expandToScroll: this.expandToScroll,
20339
20108
  });
20340
20109
  if (dismissed) {
20341
20110
  const { delegate } = this.getDelegate();
@@ -20421,23 +20190,23 @@ class Modal {
20421
20190
  return true;
20422
20191
  }
20423
20192
  render() {
20424
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20193
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20425
20194
  const showHandle = handle !== false && isSheetModal;
20426
20195
  const mode = getIonMode$1(this);
20427
20196
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20428
20197
  const isHandleCycle = handleBehavior === 'cycle';
20429
- return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20198
+ return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20430
20199
  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',
20200
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
20432
20201
  /*
20433
20202
  role and aria-modal must be used on the
20434
20203
  same element. They must also be set inside the
20435
20204
  shadow DOM otherwise ion-button will not be highlighted
20436
20205
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20437
20206
  */
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",
20207
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
20439
20208
  // 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' }))));
20209
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
20441
20210
  }
20442
20211
  get el() { return getElement(this); }
20443
20212
  static get watchers() { return {
@@ -20459,7 +20228,6 @@ class Modal {
20459
20228
  "enterAnimation": [16],
20460
20229
  "leaveAnimation": [16],
20461
20230
  "breakpoints": [16],
20462
- "expandToScroll": [4, "expand-to-scroll"],
20463
20231
  "initialBreakpoint": [2, "initial-breakpoint"],
20464
20232
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20465
20233
  "handle": [4],
@@ -29934,7 +29702,6 @@ class Select {
29934
29702
  this.expandedIcon = undefined;
29935
29703
  this.shape = undefined;
29936
29704
  this.value = undefined;
29937
- this.required = false;
29938
29705
  }
29939
29706
  styleChanged() {
29940
29707
  this.emitStyle();
@@ -30446,8 +30213,8 @@ class Select {
30446
30213
  return renderedLabel;
30447
30214
  }
30448
30215
  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) }));
30216
+ const { disabled, inputId, isExpanded } = this;
30217
+ return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
30451
30218
  }
30452
30219
  render() {
30453
30220
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30478,7 +30245,7 @@ class Select {
30478
30245
  * TODO(FW-5592): Remove hasStartEndSlots condition
30479
30246
  */
30480
30247
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30481
- return (hAsync(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses$1(this.color, {
30248
+ return (hAsync(Host, { key: 'b2dca9ae25d88e4d9fdb55003041a66be5668fcf', onClick: this.onClick, class: createColorClasses$1(this.color, {
30482
30249
  [mode]: true,
30483
30250
  'in-item': inItem,
30484
30251
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30494,7 +30261,7 @@ class Select {
30494
30261
  [`select-justify-${justify}`]: justifyEnabled,
30495
30262
  [`select-shape-${shape}`]: shape !== undefined,
30496
30263
  [`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" }))));
30264
+ }) }, hAsync("label", { key: 'c22fe9aee8cd448223497ef143e89529fcef8af6', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '601972df4579f4fa6a9c2c12865593e807decb72', class: "select-wrapper-inner" }, hAsync("slot", { key: '5f7b1261862f74b978b26f026533e3fd1cc666ba', name: "start" }), hAsync("div", { key: '39616da89f4b4b78432f6da85116a7de2ca589e7', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '1d7b3601b73af7c05b3627cfc8e5147ea379bb03', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'b0344f0ac15003e22fee66d3d7ed03a07da7e8b7', class: "select-highlight" }))));
30498
30265
  }
30499
30266
  get el() { return getElement(this); }
30500
30267
  static get watchers() { return {
@@ -30530,7 +30297,6 @@ class Select {
30530
30297
  "expandedIcon": [1, "expanded-icon"],
30531
30298
  "shape": [1],
30532
30299
  "value": [1032],
30533
- "required": [4],
30534
30300
  "isExpanded": [32],
30535
30301
  "open": [64]
30536
30302
  },
@@ -32927,7 +32693,6 @@ class Toggle {
32927
32693
  this.labelPlacement = 'start';
32928
32694
  this.justify = undefined;
32929
32695
  this.alignment = undefined;
32930
- this.required = false;
32931
32696
  }
32932
32697
  disabledChanged() {
32933
32698
  if (this.gesture) {
@@ -33009,12 +32774,12 @@ class Toggle {
33009
32774
  return this.el.textContent !== '';
33010
32775
  }
33011
32776
  render() {
33012
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32777
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
33013
32778
  const mode = getIonMode$1(this);
33014
32779
  const value = this.getValue();
33015
32780
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
33016
32781
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
33017
- return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
32782
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
33018
32783
  [mode]: true,
33019
32784
  'in-item': hostContext('ion-item', el),
33020
32785
  'toggle-activated': activated,
@@ -33024,10 +32789,10 @@ class Toggle {
33024
32789
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
33025
32790
  [`toggle-label-placement-${labelPlacement}`]: true,
33026
32791
  [`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: {
32792
+ }) }, hAsync("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
33028
32793
  'label-text-wrapper': true,
33029
32794
  'label-text-wrapper-hidden': !this.hasLabel,
33030
- }, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
32795
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
33031
32796
  }
33032
32797
  get el() { return getElement(this); }
33033
32798
  static get watchers() { return {
@@ -33050,7 +32815,6 @@ class Toggle {
33050
32815
  "labelPlacement": [1, "label-placement"],
33051
32816
  "justify": [1],
33052
32817
  "alignment": [1],
33053
- "required": [4],
33054
32818
  "activated": [32]
33055
32819
  },
33056
32820
  "$listeners$": undefined,
@@ -33082,10 +32846,6 @@ var IonToolbarMdStyle0 = toolbarMdCss;
33082
32846
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
33083
32847
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
33084
32848
  * @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
32849
  */
33090
32850
  class Toolbar {
33091
32851
  constructor(hostRef) {
@@ -33136,10 +32896,10 @@ class Toolbar {
33136
32896
  this.childrenStyles.forEach((value) => {
33137
32897
  Object.assign(childStyles, value);
33138
32898
  });
33139
- return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32899
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33140
32900
  [mode]: true,
33141
32901
  '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" }))));
32902
+ })) }, hAsync("div", { key: 'c0b4415d3b2472de643a9be7cb3b13b3b628621b', class: "toolbar-background" }), hAsync("div", { key: '0ccb8a2dbeaa28d8f9bed87629c0c097446690c2', class: "toolbar-container" }, hAsync("slot", { key: '3e726dac359e923df21d80301651f16063a3de20', name: "start" }), hAsync("slot", { key: 'cd799330b56a7f8833bc61bb2807aafb21846f71', name: "secondary" }), hAsync("div", { key: '395282e6ac8c53576922dcdb5f08c25d34638c86', class: "toolbar-content" }, hAsync("slot", { key: 'a437c60e4ba5aae65e55169ae82a6f379868ec1d' })), hAsync("slot", { key: '711af9b9d321a7b31ede924c9bdcad767aa9a1ca', name: "primary" }), hAsync("slot", { key: 'ecc02edeaf80a837890bcb08d5096df1e22a0b9a', name: "end" }))));
33143
32903
  }
33144
32904
  get el() { return getElement(this); }
33145
32905
  static get style() { return {