@ionic/core 8.4.4-dev.11741105335.1f4941f2 → 8.4.4-dev.11741136034.11909e03

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 (252) hide show
  1. package/components/alert.js +25 -4
  2. package/components/checkbox.js +4 -6
  3. package/components/index6.js +3 -11
  4. package/components/ion-select.js +14 -43
  5. package/components/ion-toggle.js +4 -6
  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/{data-108e531d.js → data-21dc0f81.js} +1 -1
  11. package/dist/cjs/{index-0ff61d0b.js → index-1ae3f40a.js} +1 -1
  12. package/dist/cjs/{index-26bb7e42.js → index-4e14a46e.js} +3 -3
  13. package/dist/cjs/{index-2a46a047.js → index-5915f9b3.js} +3 -11
  14. package/dist/cjs/{index-6770fc00.js → index-c441c903.js} +1 -1
  15. package/dist/cjs/index.cjs.js +6 -6
  16. package/dist/cjs/{input-shims-fd997b01.js → input-shims-e748a364.js} +2 -4
  17. package/dist/cjs/{input.utils-c15a1814.js → input.utils-74e4ec28.js} +1 -1
  18. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  19. package/dist/cjs/ion-action-sheet.cjs.entry.js +2 -2
  20. package/dist/cjs/ion-alert.cjs.entry.js +27 -6
  21. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  22. package/dist/cjs/ion-button_2.cjs.entry.js +1 -1
  23. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -5
  24. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-datetime_3.cjs.entry.js +3 -3
  26. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +1 -1
  28. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-menu_3.cjs.entry.js +3 -3
  32. package/dist/cjs/ion-modal.cjs.entry.js +39 -262
  33. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-popover.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-select-modal.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-select_3.cjs.entry.js +15 -43
  40. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-toggle.cjs.entry.js +4 -5
  43. package/dist/cjs/ionic.cjs.js +1 -1
  44. package/dist/cjs/{ios.transition-a4f35c55.js → ios.transition-afdec89f.js} +2 -2
  45. package/dist/cjs/loader.cjs.js +1 -1
  46. package/dist/cjs/{md.transition-cdf904e6.js → md.transition-9f0d3db5.js} +2 -2
  47. package/dist/cjs/{overlays-86695cf1.js → overlays-76b29cd4.js} +1 -1
  48. package/dist/cjs/{status-tap-1a2485c1.js → status-tap-fb807fad.js} +2 -3
  49. package/dist/collection/components/alert/alert.js +29 -4
  50. package/dist/collection/components/checkbox/checkbox.js +4 -23
  51. package/dist/collection/components/modal/animations/ios.enter.js +4 -50
  52. package/dist/collection/components/modal/animations/ios.leave.js +2 -24
  53. package/dist/collection/components/modal/animations/md.enter.js +5 -52
  54. package/dist/collection/components/modal/animations/md.leave.js +3 -26
  55. package/dist/collection/components/modal/animations/sheet.js +2 -11
  56. package/dist/collection/components/modal/gestures/sheet.js +10 -79
  57. package/dist/collection/components/modal/modal.ios.css +0 -16
  58. package/dist/collection/components/modal/modal.js +7 -32
  59. package/dist/collection/components/modal/modal.md.css +0 -6
  60. package/dist/collection/components/select/select.js +13 -59
  61. package/dist/collection/components/toggle/toggle.js +4 -23
  62. package/dist/collection/components/toolbar/toolbar.js +2 -6
  63. package/dist/collection/utils/logging/index.js +3 -10
  64. package/dist/docs.json +6 -115
  65. package/dist/esm/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  66. package/dist/esm/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
  67. package/dist/esm/{index-6a5baab0.js → index-7ec5519a.js} +3 -3
  68. package/dist/esm/{index-7105cd59.js → index-8785a9c6.js} +1 -1
  69. package/dist/esm/{index-6ad967f3.js → index-9b0d46f4.js} +3 -11
  70. package/dist/esm/index.js +6 -6
  71. package/dist/esm/{input-shims-dff819a9.js → input-shims-0e65111b.js} +2 -4
  72. package/dist/esm/{input.utils-2f1029cf.js → input.utils-1ad8dafc.js} +1 -1
  73. package/dist/esm/ion-accordion_2.entry.js +1 -1
  74. package/dist/esm/ion-action-sheet.entry.js +2 -2
  75. package/dist/esm/ion-alert.entry.js +27 -6
  76. package/dist/esm/ion-app_8.entry.js +7 -7
  77. package/dist/esm/ion-button_2.entry.js +1 -1
  78. package/dist/esm/ion-checkbox.entry.js +4 -5
  79. package/dist/esm/ion-datetime-button.entry.js +2 -2
  80. package/dist/esm/ion-datetime_3.entry.js +3 -3
  81. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  82. package/dist/esm/ion-input-password-toggle.entry.js +1 -1
  83. package/dist/esm/ion-input.entry.js +2 -2
  84. package/dist/esm/ion-item-option_3.entry.js +2 -2
  85. package/dist/esm/ion-loading.entry.js +2 -2
  86. package/dist/esm/ion-menu_3.entry.js +3 -3
  87. package/dist/esm/ion-modal.entry.js +39 -262
  88. package/dist/esm/ion-nav_2.entry.js +2 -2
  89. package/dist/esm/ion-popover.entry.js +3 -3
  90. package/dist/esm/ion-range.entry.js +2 -2
  91. package/dist/esm/ion-refresher_2.entry.js +2 -2
  92. package/dist/esm/ion-reorder_2.entry.js +2 -2
  93. package/dist/esm/ion-select-modal.entry.js +2 -2
  94. package/dist/esm/ion-select_3.entry.js +16 -44
  95. package/dist/esm/ion-textarea.entry.js +2 -2
  96. package/dist/esm/ion-toast.entry.js +2 -2
  97. package/dist/esm/ion-toggle.entry.js +4 -5
  98. package/dist/esm/ionic.js +1 -1
  99. package/dist/esm/{ios.transition-314468a2.js → ios.transition-085853ff.js} +2 -2
  100. package/dist/esm/loader.js +1 -1
  101. package/dist/esm/{md.transition-a560e0e2.js → md.transition-33826623.js} +2 -2
  102. package/dist/esm/{overlays-9a81f230.js → overlays-e3d0d356.js} +1 -1
  103. package/dist/esm/{status-tap-d07dbc82.js → status-tap-163e8128.js} +2 -3
  104. package/dist/esm-es5/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  105. package/dist/esm-es5/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
  106. package/dist/esm-es5/{index-6a5baab0.js → index-7ec5519a.js} +1 -1
  107. package/dist/esm-es5/{index-7105cd59.js → index-8785a9c6.js} +1 -1
  108. package/dist/esm-es5/index-9b0d46f4.js +4 -0
  109. package/dist/esm-es5/index.js +1 -1
  110. package/dist/esm-es5/input-shims-0e65111b.js +4 -0
  111. package/dist/esm-es5/{input.utils-2f1029cf.js → input.utils-1ad8dafc.js} +1 -1
  112. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  113. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  114. package/dist/esm-es5/ion-alert.entry.js +1 -1
  115. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  116. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  117. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  118. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  119. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  120. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  121. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  122. package/dist/esm-es5/ion-input.entry.js +1 -1
  123. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  124. package/dist/esm-es5/ion-loading.entry.js +1 -1
  125. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  126. package/dist/esm-es5/ion-modal.entry.js +1 -1
  127. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  128. package/dist/esm-es5/ion-popover.entry.js +1 -1
  129. package/dist/esm-es5/ion-range.entry.js +1 -1
  130. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  131. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  132. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  133. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  134. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  135. package/dist/esm-es5/ion-toast.entry.js +1 -1
  136. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  137. package/dist/esm-es5/ionic.js +1 -1
  138. package/dist/esm-es5/{ios.transition-314468a2.js → ios.transition-085853ff.js} +1 -1
  139. package/dist/esm-es5/loader.js +1 -1
  140. package/dist/esm-es5/md.transition-33826623.js +4 -0
  141. package/dist/esm-es5/{overlays-9a81f230.js → overlays-e3d0d356.js} +1 -1
  142. package/dist/esm-es5/status-tap-163e8128.js +4 -0
  143. package/dist/html.html-data.json +0 -16
  144. package/dist/ionic/index.esm.js +1 -1
  145. package/dist/ionic/ionic.esm.js +1 -1
  146. package/dist/ionic/{p-c935cfc9.js → p-02e1ebd9.js} +1 -1
  147. package/dist/ionic/{p-037fc3f3.entry.js → p-0397811d.entry.js} +1 -1
  148. package/dist/ionic/p-06fee233.js +4 -0
  149. package/dist/ionic/p-075a94bd.js +4 -0
  150. package/dist/ionic/p-0a59f4fa.entry.js +4 -0
  151. package/dist/ionic/{p-18e101b7.system.entry.js → p-0c9b6d3a.system.entry.js} +1 -1
  152. package/dist/ionic/p-0e43be1b.entry.js +4 -0
  153. package/dist/ionic/p-0ee3b5a2.system.js +4 -0
  154. package/dist/ionic/p-135e5731.js +4 -0
  155. package/dist/ionic/{p-990630ca.js → p-13dc21b0.js} +1 -1
  156. package/dist/ionic/{p-d7bb5325.entry.js → p-14143257.entry.js} +1 -1
  157. package/dist/ionic/{p-a584c79d.system.entry.js → p-162c8d0c.system.entry.js} +1 -1
  158. package/dist/ionic/{p-578efda4.system.js → p-1a790eef.system.js} +2 -2
  159. package/dist/ionic/{p-5010643d.system.entry.js → p-1bbe8665.system.entry.js} +2 -2
  160. package/dist/ionic/{p-5882bffa.system.entry.js → p-1bc65aec.system.entry.js} +1 -1
  161. package/dist/ionic/{p-70af0afb.entry.js → p-203633d1.entry.js} +1 -1
  162. package/dist/ionic/p-25fa1d30.system.entry.js +4 -0
  163. package/dist/ionic/{p-9de5c787.entry.js → p-26194519.entry.js} +1 -1
  164. package/dist/ionic/p-2c8798d0.entry.js +4 -0
  165. package/dist/ionic/p-322c5fb4.system.js +1 -1
  166. package/dist/ionic/{p-155c2bb0.entry.js → p-32e99b0a.entry.js} +1 -1
  167. package/dist/ionic/{p-8e407469.system.js → p-340e3f24.system.js} +1 -1
  168. package/dist/ionic/{p-d821466d.system.entry.js → p-3572f86a.system.entry.js} +1 -1
  169. package/dist/ionic/{p-63c09585.system.entry.js → p-3df889b3.system.entry.js} +1 -1
  170. package/dist/ionic/{p-e32557bb.system.entry.js → p-3eaf1444.system.entry.js} +1 -1
  171. package/dist/ionic/{p-39dd4f62.js → p-42808996.js} +1 -1
  172. package/dist/ionic/{p-efbf5af5.system.entry.js → p-4346c79d.system.entry.js} +1 -1
  173. package/dist/ionic/{p-36c448fe.entry.js → p-45de8d2a.entry.js} +1 -1
  174. package/dist/ionic/{p-acc8399c.system.entry.js → p-48a8d9b4.system.entry.js} +2 -2
  175. package/dist/ionic/{p-e5849f8d.entry.js → p-4c252070.entry.js} +1 -1
  176. package/dist/ionic/p-4e131759.entry.js +4 -0
  177. package/dist/ionic/p-51dec25d.js +4 -0
  178. package/dist/ionic/{p-484d855b.system.entry.js → p-561ddcd4.system.entry.js} +1 -1
  179. package/dist/ionic/{p-bc616455.entry.js → p-57379000.entry.js} +1 -1
  180. package/dist/ionic/{p-a5b31c0f.entry.js → p-57ceead7.entry.js} +1 -1
  181. package/dist/ionic/{p-97a65908.entry.js → p-5cde8ef3.entry.js} +1 -1
  182. package/dist/ionic/p-61d044b4.entry.js +4 -0
  183. package/dist/ionic/p-68dc53a5.js +4 -0
  184. package/dist/ionic/{p-2cbe5399.entry.js → p-6b1bd0c1.entry.js} +1 -1
  185. package/dist/ionic/{p-31a6efce.system.entry.js → p-7b96e5c1.system.entry.js} +1 -1
  186. package/dist/ionic/{p-5fe8b767.entry.js → p-803f0bc2.entry.js} +1 -1
  187. package/dist/ionic/{p-9962f63f.entry.js → p-82b931e2.entry.js} +1 -1
  188. package/dist/ionic/{p-8818edd8.entry.js → p-83e68c71.entry.js} +1 -1
  189. package/dist/ionic/{p-af452fa4.system.js → p-881d9e52.system.js} +1 -1
  190. package/dist/ionic/p-8a836849.entry.js +4 -0
  191. package/dist/ionic/{p-af744710.system.entry.js → p-91f17b25.system.entry.js} +2 -2
  192. package/dist/ionic/{p-d1172fe3.system.entry.js → p-9a1f985d.system.entry.js} +1 -1
  193. package/dist/ionic/{p-eeb5cb45.system.entry.js → p-9be5f3ee.system.entry.js} +1 -1
  194. package/dist/ionic/{p-acb30a5c.system.js → p-9eee4de1.system.js} +1 -1
  195. package/dist/ionic/{p-860eb968.system.js → p-a2b6dd57.system.js} +1 -1
  196. package/dist/ionic/{p-10327ad2.system.entry.js → p-a3c78186.system.entry.js} +1 -1
  197. package/dist/ionic/{p-4d413973.system.entry.js → p-a4575db1.system.entry.js} +1 -1
  198. package/dist/ionic/{p-73897169.system.js → p-aa63b365.system.js} +1 -1
  199. package/dist/ionic/p-b7433d7d.js +4 -0
  200. package/dist/ionic/{p-65346408.system.entry.js → p-b91acf8d.system.entry.js} +1 -1
  201. package/dist/ionic/{p-d99e8644.system.js → p-c1b51537.system.js} +1 -1
  202. package/dist/ionic/{p-8cfba7e9.system.entry.js → p-c29f8157.system.entry.js} +1 -1
  203. package/dist/ionic/{p-72ec9a26.entry.js → p-cc700b6b.entry.js} +1 -1
  204. package/dist/ionic/{p-0bfffa34.system.entry.js → p-d06601eb.system.entry.js} +1 -1
  205. package/dist/ionic/{p-93e3654c.system.entry.js → p-d192fdf7.system.entry.js} +1 -1
  206. package/dist/ionic/{p-1a5bc5f7.js → p-d60342e3.js} +1 -1
  207. package/dist/ionic/{p-89bf08c7.entry.js → p-da074ff7.entry.js} +1 -1
  208. package/dist/ionic/{p-fec13c57.entry.js → p-e1bbacb7.entry.js} +1 -1
  209. package/dist/ionic/{p-179bf9d1.system.entry.js → p-e265ae18.system.entry.js} +1 -1
  210. package/dist/ionic/{p-fbf86e62.system.js → p-e308de5b.system.js} +1 -1
  211. package/dist/ionic/{p-058e61eb.system.js → p-e8232807.system.js} +1 -1
  212. package/dist/ionic/{p-655723eb.system.entry.js → p-e8c3fb87.system.entry.js} +1 -1
  213. package/dist/ionic/{p-80c6d619.entry.js → p-e97a3f44.entry.js} +1 -1
  214. package/dist/ionic/{p-7ae680ba.system.entry.js → p-f2b8c349.system.entry.js} +1 -1
  215. package/dist/ionic/{p-f5d6624d.entry.js → p-f42743d1.entry.js} +1 -1
  216. package/dist/ionic/{p-4d3a5f86.js → p-f5035354.js} +1 -1
  217. package/dist/ionic/{p-343b6b1d.system.js → p-f687573e.system.js} +1 -1
  218. package/dist/ionic/p-ff4b7e40.system.js +4 -0
  219. package/dist/ionic/{p-f56752be.system.entry.js → p-ffc48bc5.system.entry.js} +1 -1
  220. package/dist/types/components/checkbox/checkbox.d.ts +0 -6
  221. package/dist/types/components/modal/animations/sheet.d.ts +0 -1
  222. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  223. package/dist/types/components/modal/modal-interface.d.ts +0 -1
  224. package/dist/types/components/modal/modal.d.ts +0 -11
  225. package/dist/types/components/select/select.d.ts +0 -6
  226. package/dist/types/components/toggle/toggle.d.ts +0 -6
  227. package/dist/types/components/toolbar/toolbar.d.ts +0 -4
  228. package/dist/types/components.d.ts +0 -32
  229. package/dist/types/utils/config.d.ts +0 -9
  230. package/dist/types/utils/logging/index.d.ts +1 -13
  231. package/hydrate/index.js +86 -332
  232. package/hydrate/index.mjs +86 -332
  233. package/package.json +1 -1
  234. package/dist/esm-es5/index-6ad967f3.js +0 -4
  235. package/dist/esm-es5/input-shims-dff819a9.js +0 -4
  236. package/dist/esm-es5/md.transition-a560e0e2.js +0 -4
  237. package/dist/esm-es5/status-tap-d07dbc82.js +0 -4
  238. package/dist/ionic/p-155f4d90.entry.js +0 -4
  239. package/dist/ionic/p-21227121.js +0 -4
  240. package/dist/ionic/p-22149a4f.js +0 -4
  241. package/dist/ionic/p-34479cfb.entry.js +0 -4
  242. package/dist/ionic/p-346b2baf.js +0 -4
  243. package/dist/ionic/p-3e99e3e0.entry.js +0 -4
  244. package/dist/ionic/p-42c9deb1.entry.js +0 -4
  245. package/dist/ionic/p-52245809.js +0 -4
  246. package/dist/ionic/p-5c9324c6.js +0 -4
  247. package/dist/ionic/p-67222c16.system.js +0 -4
  248. package/dist/ionic/p-712fedc9.entry.js +0 -4
  249. package/dist/ionic/p-a18470c6.entry.js +0 -4
  250. package/dist/ionic/p-c3802319.system.js +0 -4
  251. package/dist/ionic/p-e8d56122.js +0 -4
  252. package/dist/ionic/p-f2613334.system.entry.js +0 -4
package/hydrate/index.mjs CHANGED
@@ -3223,12 +3223,9 @@ let accordionIds = 0;
3223
3223
  * @param message - The string message to be logged to the console.
3224
3224
  */
3225
3225
  const printIonWarning = (message, ...params) => {
3226
- const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
3227
- if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
3228
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
3229
- }
3226
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
3230
3227
  };
3231
- /**
3228
+ /*
3232
3229
  * Logs an error to the console with an Ionic prefix
3233
3230
  * to indicate the library that is warning the developer.
3234
3231
  *
@@ -3236,10 +3233,7 @@ const printIonWarning = (message, ...params) => {
3236
3233
  * @param params - Additional arguments to supply to the console.error.
3237
3234
  */
3238
3235
  const printIonError = (message, ...params) => {
3239
- const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
3240
- if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
3241
- return console.error(`[Ionic Error]: ${message}`, ...params);
3242
- }
3236
+ return console.error(`[Ionic Error]: ${message}`, ...params);
3243
3237
  };
3244
3238
  /**
3245
3239
  * Prints an error informing developers that an implementation requires an element to be used
@@ -7003,6 +6997,7 @@ class Alert {
7003
6997
  }
7004
6998
  }
7005
6999
  onKeydown(ev) {
7000
+ var _a;
7006
7001
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
7007
7002
  /**
7008
7003
  * Based on keyboard navigation requirements, the
@@ -7012,6 +7007,17 @@ class Alert {
7012
7007
  ev.preventDefault();
7013
7008
  return;
7014
7009
  }
7010
+ /**
7011
+ * Ensure when alert container is being focused, and the user presses the tab + shift keys, the focus will be set to the last alert button.
7012
+ */
7013
+ if (ev.target.classList.contains('alert-wrapper')) {
7014
+ if (ev.key === 'Tab' && ev.shiftKey) {
7015
+ ev.preventDefault();
7016
+ const lastChildBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button:last-child');
7017
+ lastChildBtn.focus();
7018
+ return;
7019
+ }
7020
+ }
7015
7021
  // The only inputs we want to navigate between using arrow keys are the radios
7016
7022
  // ignore the keydown event if it is not on a radio button
7017
7023
  if (!inputTypes.has('radio') ||
@@ -7143,7 +7149,16 @@ class Alert {
7143
7149
  async present() {
7144
7150
  const unlock = await this.lockController.lock();
7145
7151
  await this.delegateController.attachViewToDom();
7146
- await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4);
7152
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
7153
+ var _a, _b;
7154
+ if (this.buttons.length === 1 && this.inputs.length === 0) {
7155
+ const queryBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button');
7156
+ queryBtn.focus();
7157
+ }
7158
+ else {
7159
+ (_b = this.wrapperEl) === null || _b === void 0 ? void 0 : _b.focus();
7160
+ }
7161
+ });
7147
7162
  unlock();
7148
7163
  }
7149
7164
  /**
@@ -7315,8 +7330,8 @@ class Alert {
7315
7330
  const { overlayIndex, header, subHeader, message, htmlAttributes } = this;
7316
7331
  const mode = getIonMode$1(this);
7317
7332
  const hdrId = `alert-${overlayIndex}-hdr`;
7318
- const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7319
7333
  const msgId = `alert-${overlayIndex}-msg`;
7334
+ const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7320
7335
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
7321
7336
  /**
7322
7337
  * Use both the header and subHeader ids if they are defined.
@@ -7325,9 +7340,9 @@ class Alert {
7325
7340
  * If neither are defined, do not set aria-labelledby.
7326
7341
  */
7327
7342
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7328
- return (hAsync(Host, Object.assign({ key: 'ad7e14b4f92a09387aa80abfb718a755e4e889d6', role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "-1" }, htmlAttributes, { style: {
7343
+ return (hAsync(Host, { key: 'cf4106a77213c7a9ca510a2b9fda47a179c03844', tabindex: "-1", style: {
7329
7344
  zIndex: `${20000 + overlayIndex}`,
7330
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), hAsync("ion-backdrop", { key: '4b4693dca3c910aa9a61c4d90295d785ec6cbe3d', tappable: this.backdropDismiss }), hAsync("div", { key: '64fd19b8f1d8246dcc869053f858bc33506def4b', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'e61ba6f339c3a02cecd37d8b641ee5043018eb29', class: "alert-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '044e00667ffcb74aa2c5e0d0b42669c4004dbb4f', class: "alert-head" }, header && (hAsync("h2", { key: '1aaae8d58722c4cf5debb1f00415ab7ed0a52bbd', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '9c9854dc3b0ad40f1861a49b76d5636afcae9c74', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '19aaca9912f77cde4ae8079be210eda697ed8de1', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: 'a85d27c516f7cdbc85b19f40d2f0bd865490b6a7', tabindex: "0", "aria-hidden": "true" })));
7345
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '8bd13553c3bc548367a84dba8955940b2a43d782', tappable: this.backdropDismiss }), hAsync("div", { key: '4a89918ab6f0f4eb8be3da4703cffe1469b765c0', tabindex: "0", "aria-hidden": "true" }), hAsync("div", Object.assign({ key: '28fee816801cb7f08d1f0ff7e8f277732cadfd2b', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), hAsync("div", { key: 'e0f4a19b352fbea1db65ff28fbb9ebfdd8600583', class: "alert-head" }, header && (hAsync("h2", { key: 'e47f9b036c9179d4cea955d97770fed1e58a2ad3', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '95f90fb025f4e29d5e5d78f787733d2321300787', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '73488f2d301d1579e4457fcc8d01e8b6f133b849', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '8c6767195aeadf99da422f6e55d5c47b1d64562a', tabindex: "0", "aria-hidden": "true" })));
7331
7346
  }
7332
7347
  get el() { return getElement(this); }
7333
7348
  static get watchers() { return {
@@ -8503,7 +8518,6 @@ class Checkbox {
8503
8518
  this.labelPlacement = 'start';
8504
8519
  this.justify = undefined;
8505
8520
  this.alignment = undefined;
8506
- this.required = false;
8507
8521
  }
8508
8522
  componentWillLoad() {
8509
8523
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8515,11 +8529,11 @@ class Checkbox {
8515
8529
  }
8516
8530
  }
8517
8531
  render() {
8518
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8532
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8519
8533
  const mode = getIonMode$1(this);
8520
8534
  const path = getSVGPath(mode, indeterminate);
8521
8535
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8522
- return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8536
+ return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8523
8537
  [mode]: true,
8524
8538
  'in-item': hostContext('ion-item', el),
8525
8539
  'checkbox-checked': checked,
@@ -8529,10 +8543,10 @@ class Checkbox {
8529
8543
  [`checkbox-justify-${justify}`]: justify !== undefined,
8530
8544
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8531
8545
  [`checkbox-label-placement-${labelPlacement}`]: true,
8532
- }), onClick: this.onClick }, hAsync("label", { key: '3439d546e8b60187421db698eab63a0bdd31c973', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: '9f45cf7dbdedcf01ec132c11e16979adb1aa102f', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), hAsync("div", { key: '4e882f98939cc4b7c7ab7459c751d3f4bb2023fe', class: {
8546
+ }), onClick: this.onClick }, hAsync("label", { key: '68222fb736a5ec3f2e488649b0e2ce0417dcb224', class: "checkbox-wrapper" }, hAsync("input", Object.assign({ key: 'f12962d7e9b19c744cfdbdeccc67ae7f5d080281', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), hAsync("div", { key: 'c72df2699414b1e5a41a1bc267bc634f0c93dcff', class: {
8533
8547
  'label-text-wrapper': true,
8534
8548
  'label-text-wrapper-hidden': el.textContent === '',
8535
- }, part: "label" }, hAsync("slot", { key: '0abda81297a086d02c4a56af75005547971dfcfe' })), hAsync("div", { key: '36489ea3f48a7d0ec46b77c243f9f253ef5c2b3b', class: "native-wrapper" }, hAsync("svg", { key: '4c53b52f5e93752672a34eb6f180b75fa9af9046', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8549
+ }, part: "label" }, hAsync("slot", { key: 'a2a80285178a7e0e3b536fc9ca26b8b444aa4307' })), hAsync("div", { key: 'c2b05e0d1fe8df5dcd72858220b5ff51ecaee4cc', class: "native-wrapper" }, hAsync("svg", { key: 'ee24913fded72258ebd9713654a6dba92a18fcf7', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
8536
8550
  }
8537
8551
  getSVGPath(mode, indeterminate) {
8538
8552
  let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -8559,7 +8573,6 @@ class Checkbox {
8559
8573
  "labelPlacement": [1, "label-placement"],
8560
8574
  "justify": [1],
8561
8575
  "alignment": [1],
8562
- "required": [4],
8563
8576
  "setFocus": [64]
8564
8577
  },
8565
8578
  "$listeners$": undefined,
@@ -19035,7 +19048,7 @@ const computeDuration = (remaining, velocity) => {
19035
19048
  };
19036
19049
 
19037
19050
  const createSheetEnterAnimation = (opts) => {
19038
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19051
+ const { currentBreakpoint, backdropBreakpoint } = opts;
19039
19052
  /**
19040
19053
  * If the backdropBreakpoint is undefined, then the backdrop
19041
19054
  * should always fade in. If the backdropBreakpoint came before the
@@ -19055,16 +19068,7 @@ const createSheetEnterAnimation = (opts) => {
19055
19068
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19056
19069
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19057
19070
  ]);
19058
- /**
19059
- * This allows the content to be scrollable at any breakpoint.
19060
- */
19061
- const contentAnimation = !expandToScroll
19062
- ? createAnimation('contentAnimation').keyframes([
19063
- { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
19064
- { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
19065
- ])
19066
- : undefined;
19067
- return { wrapperAnimation, backdropAnimation, contentAnimation };
19071
+ return { wrapperAnimation, backdropAnimation };
19068
19072
  };
19069
19073
  const createSheetLeaveAnimation = (opts) => {
19070
19074
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19099,68 +19103,22 @@ const createEnterAnimation$1 = () => {
19099
19103
  })
19100
19104
  .afterClearStyles(['pointer-events']);
19101
19105
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19102
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19106
+ return { backdropAnimation, wrapperAnimation };
19103
19107
  };
19104
19108
  /**
19105
19109
  * iOS Modal Enter Animation for the Card presentation style
19106
19110
  */
19107
19111
  const iosEnterAnimation$3 = (baseEl, opts) => {
19108
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19112
+ const { presentingEl, currentBreakpoint } = opts;
19109
19113
  const root = getElementRoot(baseEl);
19110
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19114
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19111
19115
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19112
19116
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
19113
- // The content animation is only added if scrolling is enabled for
19114
- // all the breakpoints.
19115
- !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19116
19117
  const baseAnimation = createAnimation('entering-base')
19117
19118
  .addElement(baseEl)
19118
19119
  .easing('cubic-bezier(0.32,0.72,0,1)')
19119
19120
  .duration(500)
19120
- .addAnimation([wrapperAnimation])
19121
- .beforeAddWrite(() => {
19122
- if (expandToScroll) {
19123
- // Scroll can only be done when the modal is fully expanded.
19124
- return;
19125
- }
19126
- /**
19127
- * There are some browsers that causes flickering when
19128
- * dragging the content when scroll is enabled at every
19129
- * breakpoint. This is due to the wrapper element being
19130
- * transformed off the screen and having a snap animation.
19131
- *
19132
- * A workaround is to clone the footer element and append
19133
- * it outside of the wrapper element. This way, the footer
19134
- * is still visible and the drag can be done without
19135
- * flickering. The original footer is hidden until the modal
19136
- * is dismissed. This maintains the animation of the footer
19137
- * when the modal is dismissed.
19138
- *
19139
- * The workaround needs to be done before the animation starts
19140
- * so there are no flickering issues.
19141
- */
19142
- const ionFooter = baseEl.querySelector('ion-footer');
19143
- /**
19144
- * This check is needed to prevent more than one footer
19145
- * from being appended to the shadow root.
19146
- * Otherwise, iOS and MD enter animations would append
19147
- * the footer twice.
19148
- */
19149
- const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19150
- if (ionFooter && !ionFooterAlreadyAppended) {
19151
- const footerHeight = ionFooter.clientHeight;
19152
- const clonedFooter = ionFooter.cloneNode(true);
19153
- baseEl.shadowRoot.appendChild(clonedFooter);
19154
- ionFooter.style.setProperty('display', 'none');
19155
- ionFooter.setAttribute('aria-hidden', 'true');
19156
- // Padding is added to prevent some content from being hidden.
19157
- const page = baseEl.querySelector('.ion-page');
19158
- page.style.setProperty('padding-bottom', `${footerHeight}px`);
19159
- }
19160
- });
19161
- if (contentAnimation) {
19162
- baseAnimation.addAnimation(contentAnimation);
19163
- }
19121
+ .addAnimation(wrapperAnimation);
19164
19122
  if (presentingEl) {
19165
19123
  const isMobile = window.innerWidth < 768;
19166
19124
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19238,7 +19196,7 @@ const createLeaveAnimation$1 = () => {
19238
19196
  * iOS Modal Leave Animation
19239
19197
  */
19240
19198
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19241
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19199
+ const { presentingEl, currentBreakpoint } = opts;
19242
19200
  const root = getElementRoot(baseEl);
19243
19201
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19244
19202
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19247,29 +19205,7 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19247
19205
  .addElement(baseEl)
19248
19206
  .easing('cubic-bezier(0.32,0.72,0,1)')
19249
19207
  .duration(duration)
19250
- .addAnimation(wrapperAnimation)
19251
- .beforeAddWrite(() => {
19252
- if (expandToScroll) {
19253
- // Scroll can only be done when the modal is fully expanded.
19254
- return;
19255
- }
19256
- /**
19257
- * If expandToScroll is disabled, we need to swap
19258
- * the visibility to the original, so the footer
19259
- * dismisses with the modal and doesn't stay
19260
- * until the modal is removed from the DOM.
19261
- */
19262
- const ionFooter = baseEl.querySelector('ion-footer');
19263
- if (ionFooter) {
19264
- const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19265
- ionFooter.style.removeProperty('display');
19266
- ionFooter.removeAttribute('aria-hidden');
19267
- clonedFooter.style.setProperty('display', 'none');
19268
- clonedFooter.setAttribute('aria-hidden', 'true');
19269
- const page = baseEl.querySelector('.ion-page');
19270
- page.style.removeProperty('padding-bottom');
19271
- }
19272
- });
19208
+ .addAnimation(wrapperAnimation);
19273
19209
  if (presentingEl) {
19274
19210
  const isMobile = window.innerWidth < 768;
19275
19211
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19347,69 +19283,22 @@ const createEnterAnimation = () => {
19347
19283
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19348
19284
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19349
19285
  ]);
19350
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19286
+ return { backdropAnimation, wrapperAnimation };
19351
19287
  };
19352
19288
  /**
19353
19289
  * Md Modal Enter Animation
19354
19290
  */
19355
19291
  const mdEnterAnimation$2 = (baseEl, opts) => {
19356
- const { currentBreakpoint, expandToScroll } = opts;
19292
+ const { currentBreakpoint } = opts;
19357
19293
  const root = getElementRoot(baseEl);
19358
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19294
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19359
19295
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19360
19296
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19361
- // The content animation is only added if scrolling is enabled for
19362
- // all the breakpoints.
19363
- expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
19364
- const baseAnimation = createAnimation()
19297
+ return createAnimation()
19365
19298
  .addElement(baseEl)
19366
19299
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19367
19300
  .duration(280)
19368
- .addAnimation([backdropAnimation, wrapperAnimation])
19369
- .beforeAddWrite(() => {
19370
- if (expandToScroll) {
19371
- // Scroll can only be done when the modal is fully expanded.
19372
- return;
19373
- }
19374
- /**
19375
- * There are some browsers that causes flickering when
19376
- * dragging the content when scroll is enabled at every
19377
- * breakpoint. This is due to the wrapper element being
19378
- * transformed off the screen and having a snap animation.
19379
- *
19380
- * A workaround is to clone the footer element and append
19381
- * it outside of the wrapper element. This way, the footer
19382
- * is still visible and the drag can be done without
19383
- * flickering. The original footer is hidden until the modal
19384
- * is dismissed. This maintains the animation of the footer
19385
- * when the modal is dismissed.
19386
- *
19387
- * The workaround needs to be done before the animation starts
19388
- * so there are no flickering issues.
19389
- */
19390
- const ionFooter = baseEl.querySelector('ion-footer');
19391
- /**
19392
- * This check is needed to prevent more than one footer
19393
- * from being appended to the shadow root.
19394
- * Otherwise, iOS and MD enter animations would append
19395
- * the footer twice.
19396
- */
19397
- const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
19398
- if (ionFooter && !ionFooterAlreadyAppended) {
19399
- const footerHeight = ionFooter.clientHeight;
19400
- const clonedFooter = ionFooter.cloneNode(true);
19401
- baseEl.shadowRoot.appendChild(clonedFooter);
19402
- ionFooter.style.setProperty('display', 'none');
19403
- ionFooter.setAttribute('aria-hidden', 'true');
19404
- // Padding is added to prevent some content from being hidden.
19405
- const page = baseEl.querySelector('.ion-page');
19406
- page.style.setProperty('padding-bottom', `${footerHeight}px`);
19407
- }
19408
- });
19409
- if (contentAnimation) {
19410
- baseAnimation.addAnimation(contentAnimation);
19411
- }
19412
- return baseAnimation;
19301
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19413
19302
  };
19414
19303
 
19415
19304
  const createLeaveAnimation = () => {
@@ -19424,41 +19313,18 @@ const createLeaveAnimation = () => {
19424
19313
  * Md Modal Leave Animation
19425
19314
  */
19426
19315
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19427
- const { currentBreakpoint, expandToScroll } = opts;
19316
+ const { currentBreakpoint } = opts;
19428
19317
  const root = getElementRoot(baseEl);
19429
19318
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19430
19319
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19431
19320
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19432
- const baseAnimation = createAnimation()
19321
+ return createAnimation()
19433
19322
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19434
19323
  .duration(200)
19435
- .addAnimation([backdropAnimation, wrapperAnimation])
19436
- .beforeAddWrite(() => {
19437
- if (expandToScroll) {
19438
- // Scroll can only be done when the modal is fully expanded.
19439
- return;
19440
- }
19441
- /**
19442
- * If expandToScroll is disabled, we need to swap
19443
- * the visibility to the original, so the footer
19444
- * dismisses with the modal and doesn't stay
19445
- * until the modal is removed from the DOM.
19446
- */
19447
- const ionFooter = baseEl.querySelector('ion-footer');
19448
- if (ionFooter) {
19449
- const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
19450
- ionFooter.style.removeProperty('display');
19451
- ionFooter.removeAttribute('aria-hidden');
19452
- clonedFooter.style.setProperty('display', 'none');
19453
- clonedFooter.setAttribute('aria-hidden', 'true');
19454
- const page = baseEl.querySelector('.ion-page');
19455
- page.style.removeProperty('padding-bottom');
19456
- }
19457
- });
19458
- return baseAnimation;
19324
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19459
19325
  };
19460
19326
 
19461
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19327
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19462
19328
  // Defaults for the sheet swipe animation
19463
19329
  const defaultBackdrop = [
19464
19330
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19475,10 +19341,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19475
19341
  { offset: 1, transform: 'translateY(100%)' },
19476
19342
  ],
19477
19343
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19478
- CONTENT_KEYFRAMES: [
19479
- { offset: 0, maxHeight: '100%' },
19480
- { offset: 1, maxHeight: '0%' },
19481
- ],
19482
19344
  };
19483
19345
  const contentEl = baseEl.querySelector('ion-content');
19484
19346
  const height = wrapperEl.clientHeight;
@@ -19486,11 +19348,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19486
19348
  let offset = 0;
19487
19349
  let canDismissBlocksGesture = false;
19488
19350
  const canDismissMaxStep = 0.95;
19489
- const maxBreakpoint = breakpoints[breakpoints.length - 1];
19490
- const minBreakpoint = breakpoints[0];
19491
19351
  const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19492
19352
  const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19493
- const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19353
+ const maxBreakpoint = breakpoints[breakpoints.length - 1];
19354
+ const minBreakpoint = breakpoints[0];
19494
19355
  const enableBackdrop = () => {
19495
19356
  baseEl.style.setProperty('pointer-events', 'auto');
19496
19357
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19513,31 +19374,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19513
19374
  */
19514
19375
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19515
19376
  };
19516
- /**
19517
- * Toggles the visible modal footer when `expandToScroll` is disabled.
19518
- * @param footer The footer to show.
19519
- */
19520
- const swapFooterVisibility = (footer) => {
19521
- const originalFooter = baseEl.querySelector('ion-footer');
19522
- if (!originalFooter) {
19523
- return;
19524
- }
19525
- const clonedFooter = wrapperEl.nextElementSibling;
19526
- const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
19527
- const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
19528
- footerToShow.style.removeProperty('display');
19529
- footerToShow.removeAttribute('aria-hidden');
19530
- const page = baseEl.querySelector('.ion-page');
19531
- if (footer === 'original') {
19532
- page.style.removeProperty('padding-bottom');
19533
- }
19534
- else {
19535
- const pagePadding = footerToShow.clientHeight;
19536
- page.style.setProperty('padding-bottom', `${pagePadding}px`);
19537
- }
19538
- footerToHide.style.setProperty('display', 'none');
19539
- footerToHide.setAttribute('aria-hidden', 'true');
19540
- };
19541
19377
  /**
19542
19378
  * After the entering animation completes,
19543
19379
  * we need to set the animation to go from
@@ -19549,7 +19385,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19549
19385
  if (wrapperAnimation && backdropAnimation) {
19550
19386
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19551
19387
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19552
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19553
19388
  animation.progressStart(true, 1 - currentBreakpoint);
19554
19389
  /**
19555
19390
  * If backdrop is not enabled, then content
@@ -19566,7 +19401,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19566
19401
  disableBackdrop();
19567
19402
  }
19568
19403
  }
19569
- if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19404
+ if (contentEl && currentBreakpoint !== maxBreakpoint) {
19570
19405
  contentEl.scrollY = false;
19571
19406
  }
19572
19407
  const canStart = (detail) => {
@@ -19580,13 +19415,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19580
19415
  */
19581
19416
  const contentEl = findClosestIonContent(detail.event.target);
19582
19417
  currentBreakpoint = getCurrentBreakpoint();
19583
- /**
19584
- * If we have expandToScroll disabled, we should not allow the swipe gesture to start
19585
- * if the content is being swiped.
19586
- */
19587
- if (!expandToScroll && contentEl) {
19588
- return false;
19589
- }
19590
19418
  if (currentBreakpoint === 1 && contentEl) {
19591
19419
  /**
19592
19420
  * The modal should never swipe to close on the content with a refresher.
@@ -19617,15 +19445,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19617
19445
  * Remove undefined check
19618
19446
  */
19619
19447
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
19620
- /**
19621
- * If expandToScroll is disabled, we need to swap
19622
- * the footer visibility to the original, so if the modal
19623
- * is dismissed, the footer dismisses with the modal
19624
- * and doesn't stay on the screen after the modal is gone.
19625
- */
19626
- if (!expandToScroll) {
19627
- swapFooterVisibility('original');
19628
- }
19629
19448
  /**
19630
19449
  * If we are pulling down, then it is possible we are pulling on the content.
19631
19450
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19741,19 +19560,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19741
19560
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19742
19561
  },
19743
19562
  ]);
19744
- if (contentAnimation) {
19745
- /**
19746
- * The modal content should scroll at any breakpoint when expandToScroll
19747
- * is disabled. In order to do this, the content needs to be completely
19748
- * viewable so scrolling can access everything. Otherwise, the default
19749
- * behavior would show the content off the screen and only allow
19750
- * scrolling when the sheet is fully expanded.
19751
- */
19752
- contentAnimation.keyframes([
19753
- { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
19754
- { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
19755
- ]);
19756
- }
19757
19563
  animation.progressStep(0);
19758
19564
  }
19759
19565
  /**
@@ -19761,14 +19567,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19761
19567
  * snapping animation completes.
19762
19568
  */
19763
19569
  gesture.enable(false);
19764
- /**
19765
- * If expandToScroll is disabled, we need to swap
19766
- * the footer visibility to the cloned one so the footer
19767
- * doesn't flicker when the sheet's height is animated.
19768
- */
19769
- if (!expandToScroll && shouldRemainOpen) {
19770
- swapFooterVisibility('cloned');
19771
- }
19772
19570
  if (shouldPreventDismiss) {
19773
19571
  handleCanDismiss(baseEl, animation);
19774
19572
  }
@@ -19776,13 +19574,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19776
19574
  onDismiss();
19777
19575
  }
19778
19576
  /**
19779
- * Enables scrolling immediately if the sheet is about to fully expand
19780
- * or if it allows scrolling at any breakpoint. Without this, there would
19781
- * be a ~500ms delay while the modal animation completes, causing a
19782
- * noticeable lag. Native iOS allows scrolling as soon as the gesture is
19783
- * released, so we align with that behavior.
19577
+ * If the sheet is going to be fully expanded then we should enable
19578
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
19579
+ * so if we wait until then there is a visible delay for when scrolling is
19580
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19581
+ * as the gesture is released, so we align with that.
19784
19582
  */
19785
- if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19583
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19786
19584
  contentEl.scrollY = true;
19787
19585
  }
19788
19586
  return new Promise((resolve) => {
@@ -19800,7 +19598,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19800
19598
  raf(() => {
19801
19599
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19802
19600
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19803
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19804
19601
  animation.progressStart(true, 1 - snapToBreakpoint);
19805
19602
  currentBreakpoint = snapToBreakpoint;
19806
19603
  onBreakpointChange(currentBreakpoint);
@@ -19853,10 +19650,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19853
19650
  };
19854
19651
  };
19855
19652
 
19856
- const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}";
19653
+ const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}";
19857
19654
  var IonModalIosStyle0 = modalIosCss;
19858
19655
 
19859
- const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
19656
+ const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
19860
19657
  var IonModalMdStyle0 = modalMdCss;
19861
19658
 
19862
19659
  // TODO(FW-2832): types
@@ -19935,7 +19732,6 @@ class Modal {
19935
19732
  this.enterAnimation = undefined;
19936
19733
  this.leaveAnimation = undefined;
19937
19734
  this.breakpoints = undefined;
19938
- this.expandToScroll = true;
19939
19735
  this.initialBreakpoint = undefined;
19940
19736
  this.backdropBreakpoint = 0;
19941
19737
  this.handle = undefined;
@@ -20151,7 +19947,6 @@ class Modal {
20151
19947
  presentingEl: presentingElement,
20152
19948
  currentBreakpoint: this.initialBreakpoint,
20153
19949
  backdropBreakpoint: this.backdropBreakpoint,
20154
- expandToScroll: this.expandToScroll,
20155
19950
  });
20156
19951
  /* tslint:disable-next-line */
20157
19952
  if (typeof window !== 'undefined') {
@@ -20202,10 +19997,7 @@ class Modal {
20202
19997
  // should be in the DOM and referenced by now, except
20203
19998
  // for the presenting el
20204
19999
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation$3);
20205
- const ani = (this.animation = animationBuilder(el, {
20206
- presentingEl: this.presentingElement,
20207
- expandToScroll: this.expandToScroll,
20208
- }));
20000
+ const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20209
20001
  const contentEl = findIonContent(el);
20210
20002
  if (!contentEl) {
20211
20003
  printIonContentErrorMsg(el);
@@ -20250,10 +20042,9 @@ class Modal {
20250
20042
  presentingEl: this.presentingElement,
20251
20043
  currentBreakpoint: initialBreakpoint,
20252
20044
  backdropBreakpoint,
20253
- expandToScroll: this.expandToScroll,
20254
20045
  }));
20255
20046
  ani.progressStart(true, 1);
20256
- const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
20047
+ const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
20257
20048
  if (this.currentBreakpoint !== breakpoint) {
20258
20049
  this.currentBreakpoint = breakpoint;
20259
20050
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20331,7 +20122,6 @@ class Modal {
20331
20122
  presentingEl: presentingElement,
20332
20123
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20333
20124
  backdropBreakpoint: this.backdropBreakpoint,
20334
- expandToScroll: this.expandToScroll,
20335
20125
  });
20336
20126
  if (dismissed) {
20337
20127
  const { delegate } = this.getDelegate();
@@ -20417,23 +20207,23 @@ class Modal {
20417
20207
  return true;
20418
20208
  }
20419
20209
  render() {
20420
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20210
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20421
20211
  const showHandle = handle !== false && isSheetModal;
20422
20212
  const mode = getIonMode$1(this);
20423
20213
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20424
20214
  const isHandleCycle = handleBehavior === 'cycle';
20425
- return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20215
+ return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20426
20216
  zIndex: `${20000 + this.overlayIndex}`,
20427
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
20217
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
20428
20218
  /*
20429
20219
  role and aria-modal must be used on the
20430
20220
  same element. They must also be set inside the
20431
20221
  shadow DOM otherwise ion-button will not be highlighted
20432
20222
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20433
20223
  */
20434
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
20224
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
20435
20225
  // Prevents the handle from receiving keyboard focus when it does not cycle
20436
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
20226
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
20437
20227
  }
20438
20228
  get el() { return getElement(this); }
20439
20229
  static get watchers() { return {
@@ -20455,7 +20245,6 @@ class Modal {
20455
20245
  "enterAnimation": [16],
20456
20246
  "leaveAnimation": [16],
20457
20247
  "breakpoints": [16],
20458
- "expandToScroll": [4, "expand-to-scroll"],
20459
20248
  "initialBreakpoint": [2, "initial-breakpoint"],
20460
20249
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20461
20250
  "handle": [4],
@@ -29930,7 +29719,6 @@ class Select {
29930
29719
  this.expandedIcon = undefined;
29931
29720
  this.shape = undefined;
29932
29721
  this.value = undefined;
29933
- this.required = false;
29934
29722
  }
29935
29723
  styleChanged() {
29936
29724
  this.emitStyle();
@@ -29986,8 +29774,15 @@ class Select {
29986
29774
  }
29987
29775
  this.isExpanded = true;
29988
29776
  const overlay = (this.overlay = await this.createOverlay(event));
29989
- // Add logic to scroll selected item into view before presenting
29990
- const scrollSelectedIntoView = () => {
29777
+ overlay.onDidDismiss().then(() => {
29778
+ this.overlay = undefined;
29779
+ this.isExpanded = false;
29780
+ this.ionDismiss.emit();
29781
+ this.setFocus();
29782
+ });
29783
+ await overlay.present();
29784
+ // focus selected option for popovers and modals
29785
+ if (this.interface === 'popover' || this.interface === 'modal') {
29991
29786
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29992
29787
  if (indexOfSelected > -1) {
29993
29788
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -30005,7 +29800,6 @@ class Select {
30005
29800
  */
30006
29801
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
30007
29802
  if (interactiveEl) {
30008
- selectedItem.scrollIntoView({ block: 'nearest' });
30009
29803
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
30010
29804
  // and removing `ion-focused` style
30011
29805
  interactiveEl.setFocus();
@@ -30029,40 +29823,7 @@ class Select {
30029
29823
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
30030
29824
  }
30031
29825
  }
30032
- };
30033
- // For modals and popovers, we can scroll before they're visible
30034
- if (this.interface === 'modal') {
30035
- overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
30036
- }
30037
- else if (this.interface === 'popover') {
30038
- overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
30039
- }
30040
- else {
30041
- /**
30042
- * For alerts and action sheets, we need to wait a frame after willPresent
30043
- * because these overlays don't have their content in the DOM immediately
30044
- * when willPresent fires. By waiting a frame, we ensure the content is
30045
- * rendered and can be properly scrolled into view.
30046
- */
30047
- const scrollAfterRender = () => {
30048
- requestAnimationFrame(() => {
30049
- scrollSelectedIntoView();
30050
- });
30051
- };
30052
- if (this.interface === 'alert') {
30053
- overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
30054
- }
30055
- else if (this.interface === 'action-sheet') {
30056
- overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
30057
- }
30058
29826
  }
30059
- overlay.onDidDismiss().then(() => {
30060
- this.overlay = undefined;
30061
- this.isExpanded = false;
30062
- this.ionDismiss.emit();
30063
- this.setFocus();
30064
- });
30065
- await overlay.present();
30066
29827
  return overlay;
30067
29828
  }
30068
29829
  createOverlay(ev) {
@@ -30442,8 +30203,8 @@ class Select {
30442
30203
  return renderedLabel;
30443
30204
  }
30444
30205
  renderListbox() {
30445
- const { disabled, inputId, isExpanded, required } = this;
30446
- return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
30206
+ const { disabled, inputId, isExpanded } = this;
30207
+ return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
30447
30208
  }
30448
30209
  render() {
30449
30210
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30474,7 +30235,7 @@ class Select {
30474
30235
  * TODO(FW-5592): Remove hasStartEndSlots condition
30475
30236
  */
30476
30237
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30477
- return (hAsync(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses$1(this.color, {
30238
+ return (hAsync(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses$1(this.color, {
30478
30239
  [mode]: true,
30479
30240
  'in-item': inItem,
30480
30241
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30490,7 +30251,7 @@ class Select {
30490
30251
  [`select-justify-${justify}`]: justifyEnabled,
30491
30252
  [`select-shape-${shape}`]: shape !== undefined,
30492
30253
  [`select-label-placement-${labelPlacement}`]: true,
30493
- }) }, hAsync("label", { key: '91674f8f5cce37c87a7096d09b3f1d351cba1527', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '2229333833047db13ed2a01cb10bb6e6f774031d', class: "select-wrapper-inner" }, hAsync("slot", { key: 'f2766bdf8bff261efa5711f72d9edef407e45189', name: "start" }), hAsync("div", { key: '84fec020ecaaac41298a01dbffdbb2f3744170b4', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '9b91237d7a1621bce1e15546abcb4f6b74cccc5f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'e02aea3e8f344376013257f5261a29408e62b359', class: "select-highlight" }))));
30254
+ }) }, hAsync("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, hAsync("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), hAsync("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', class: "select-highlight" }))));
30494
30255
  }
30495
30256
  get el() { return getElement(this); }
30496
30257
  static get watchers() { return {
@@ -30526,7 +30287,6 @@ class Select {
30526
30287
  "expandedIcon": [1, "expanded-icon"],
30527
30288
  "shape": [1],
30528
30289
  "value": [1032],
30529
- "required": [4],
30530
30290
  "isExpanded": [32],
30531
30291
  "open": [64]
30532
30292
  },
@@ -32923,7 +32683,6 @@ class Toggle {
32923
32683
  this.labelPlacement = 'start';
32924
32684
  this.justify = undefined;
32925
32685
  this.alignment = undefined;
32926
- this.required = false;
32927
32686
  }
32928
32687
  disabledChanged() {
32929
32688
  if (this.gesture) {
@@ -33005,12 +32764,12 @@ class Toggle {
33005
32764
  return this.el.textContent !== '';
33006
32765
  }
33007
32766
  render() {
33008
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32767
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
33009
32768
  const mode = getIonMode$1(this);
33010
32769
  const value = this.getValue();
33011
32770
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
33012
32771
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
33013
- return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
32772
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
33014
32773
  [mode]: true,
33015
32774
  'in-item': hostContext('ion-item', el),
33016
32775
  'toggle-activated': activated,
@@ -33020,10 +32779,10 @@ class Toggle {
33020
32779
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
33021
32780
  [`toggle-label-placement-${labelPlacement}`]: true,
33022
32781
  [`toggle-${rtl}`]: true,
33023
- }) }, hAsync("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), hAsync("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
32782
+ }) }, hAsync("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
33024
32783
  'label-text-wrapper': true,
33025
32784
  'label-text-wrapper-hidden': !this.hasLabel,
33026
- }, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
32785
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
33027
32786
  }
33028
32787
  get el() { return getElement(this); }
33029
32788
  static get watchers() { return {
@@ -33046,7 +32805,6 @@ class Toggle {
33046
32805
  "labelPlacement": [1, "label-placement"],
33047
32806
  "justify": [1],
33048
32807
  "alignment": [1],
33049
- "required": [4],
33050
32808
  "activated": [32]
33051
32809
  },
33052
32810
  "$listeners$": undefined,
@@ -33078,10 +32836,6 @@ var IonToolbarMdStyle0 = toolbarMdCss;
33078
32836
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
33079
32837
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
33080
32838
  * @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
33081
- *
33082
- * @part background - The background of the toolbar, covering the entire area behind the toolbar content.
33083
- * @part container - The container that wraps all toolbar content, including the default slot and named slot content.
33084
- * @part content - The container for the default slot, wrapping content provided without a named slot.
33085
32839
  */
33086
32840
  class Toolbar {
33087
32841
  constructor(hostRef) {
@@ -33132,10 +32886,10 @@ class Toolbar {
33132
32886
  this.childrenStyles.forEach((value) => {
33133
32887
  Object.assign(childStyles, value);
33134
32888
  });
33135
- return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32889
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33136
32890
  [mode]: true,
33137
32891
  'in-toolbar': hostContext('ion-toolbar', this.el),
33138
- })) }, hAsync("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), hAsync("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, hAsync("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), hAsync("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), hAsync("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), hAsync("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), hAsync("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
32892
+ })) }, hAsync("div", { key: 'c0b4415d3b2472de643a9be7cb3b13b3b628621b', class: "toolbar-background" }), hAsync("div", { key: '0ccb8a2dbeaa28d8f9bed87629c0c097446690c2', class: "toolbar-container" }, hAsync("slot", { key: '3e726dac359e923df21d80301651f16063a3de20', name: "start" }), hAsync("slot", { key: 'cd799330b56a7f8833bc61bb2807aafb21846f71', name: "secondary" }), hAsync("div", { key: '395282e6ac8c53576922dcdb5f08c25d34638c86', class: "toolbar-content" }, hAsync("slot", { key: 'a437c60e4ba5aae65e55169ae82a6f379868ec1d' })), hAsync("slot", { key: '711af9b9d321a7b31ede924c9bdcad767aa9a1ca', name: "primary" }), hAsync("slot", { key: 'ecc02edeaf80a837890bcb08d5096df1e22a0b9a', name: "end" }))));
33139
32893
  }
33140
32894
  get el() { return getElement(this); }
33141
32895
  static get style() { return {