@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.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
@@ -7007,6 +7001,7 @@ class Alert {
7007
7001
  }
7008
7002
  }
7009
7003
  onKeydown(ev) {
7004
+ var _a;
7010
7005
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
7011
7006
  /**
7012
7007
  * Based on keyboard navigation requirements, the
@@ -7016,6 +7011,17 @@ class Alert {
7016
7011
  ev.preventDefault();
7017
7012
  return;
7018
7013
  }
7014
+ /**
7015
+ * 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.
7016
+ */
7017
+ if (ev.target.classList.contains('alert-wrapper')) {
7018
+ if (ev.key === 'Tab' && ev.shiftKey) {
7019
+ ev.preventDefault();
7020
+ const lastChildBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button:last-child');
7021
+ lastChildBtn.focus();
7022
+ return;
7023
+ }
7024
+ }
7019
7025
  // The only inputs we want to navigate between using arrow keys are the radios
7020
7026
  // ignore the keydown event if it is not on a radio button
7021
7027
  if (!inputTypes.has('radio') ||
@@ -7147,7 +7153,16 @@ class Alert {
7147
7153
  async present() {
7148
7154
  const unlock = await this.lockController.lock();
7149
7155
  await this.delegateController.attachViewToDom();
7150
- await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4);
7156
+ await present(this, 'alertEnter', iosEnterAnimation$5, mdEnterAnimation$4).then(() => {
7157
+ var _a, _b;
7158
+ if (this.buttons.length === 1 && this.inputs.length === 0) {
7159
+ const queryBtn = (_a = this.wrapperEl) === null || _a === void 0 ? void 0 : _a.querySelector('.alert-button');
7160
+ queryBtn.focus();
7161
+ }
7162
+ else {
7163
+ (_b = this.wrapperEl) === null || _b === void 0 ? void 0 : _b.focus();
7164
+ }
7165
+ });
7151
7166
  unlock();
7152
7167
  }
7153
7168
  /**
@@ -7319,8 +7334,8 @@ class Alert {
7319
7334
  const { overlayIndex, header, subHeader, message, htmlAttributes } = this;
7320
7335
  const mode = getIonMode$1(this);
7321
7336
  const hdrId = `alert-${overlayIndex}-hdr`;
7322
- const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7323
7337
  const msgId = `alert-${overlayIndex}-msg`;
7338
+ const subHdrId = `alert-${overlayIndex}-sub-hdr`;
7324
7339
  const role = this.inputs.length > 0 || this.buttons.length > 0 ? 'alertdialog' : 'alert';
7325
7340
  /**
7326
7341
  * Use both the header and subHeader ids if they are defined.
@@ -7329,9 +7344,9 @@ class Alert {
7329
7344
  * If neither are defined, do not set aria-labelledby.
7330
7345
  */
7331
7346
  const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
7332
- 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: {
7347
+ return (hAsync(Host, { key: 'cf4106a77213c7a9ca510a2b9fda47a179c03844', tabindex: "-1", style: {
7333
7348
  zIndex: `${20000 + overlayIndex}`,
7334
- }, 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" })));
7349
+ }, 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" })));
7335
7350
  }
7336
7351
  get el() { return getElement(this); }
7337
7352
  static get watchers() { return {
@@ -8507,7 +8522,6 @@ class Checkbox {
8507
8522
  this.labelPlacement = 'start';
8508
8523
  this.justify = undefined;
8509
8524
  this.alignment = undefined;
8510
- this.required = false;
8511
8525
  }
8512
8526
  componentWillLoad() {
8513
8527
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -8519,11 +8533,11 @@ class Checkbox {
8519
8533
  }
8520
8534
  }
8521
8535
  render() {
8522
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
8536
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
8523
8537
  const mode = getIonMode$1(this);
8524
8538
  const path = getSVGPath(mode, indeterminate);
8525
8539
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
8526
- return (hAsync(Host, { key: '07a5884062dd256b570e856270c74a5a09d2f2a5', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8540
+ return (hAsync(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses$1(color, {
8527
8541
  [mode]: true,
8528
8542
  'in-item': hostContext('ion-item', el),
8529
8543
  'checkbox-checked': checked,
@@ -8533,10 +8547,10 @@ class Checkbox {
8533
8547
  [`checkbox-justify-${justify}`]: justify !== undefined,
8534
8548
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
8535
8549
  [`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: {
8550
+ }), 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
8551
  'label-text-wrapper': true,
8538
8552
  '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)))));
8553
+ }, 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
8554
  }
8541
8555
  getSVGPath(mode, indeterminate) {
8542
8556
  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 +8577,6 @@ class Checkbox {
8563
8577
  "labelPlacement": [1, "label-placement"],
8564
8578
  "justify": [1],
8565
8579
  "alignment": [1],
8566
- "required": [4],
8567
8580
  "setFocus": [64]
8568
8581
  },
8569
8582
  "$listeners$": undefined,
@@ -19039,7 +19052,7 @@ const computeDuration = (remaining, velocity) => {
19039
19052
  };
19040
19053
 
19041
19054
  const createSheetEnterAnimation = (opts) => {
19042
- const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
19055
+ const { currentBreakpoint, backdropBreakpoint } = opts;
19043
19056
  /**
19044
19057
  * If the backdropBreakpoint is undefined, then the backdrop
19045
19058
  * should always fade in. If the backdropBreakpoint came before the
@@ -19059,16 +19072,7 @@ const createSheetEnterAnimation = (opts) => {
19059
19072
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
19060
19073
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
19061
19074
  ]);
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 };
19075
+ return { wrapperAnimation, backdropAnimation };
19072
19076
  };
19073
19077
  const createSheetLeaveAnimation = (opts) => {
19074
19078
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -19103,68 +19107,22 @@ const createEnterAnimation$1 = () => {
19103
19107
  })
19104
19108
  .afterClearStyles(['pointer-events']);
19105
19109
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
19106
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19110
+ return { backdropAnimation, wrapperAnimation };
19107
19111
  };
19108
19112
  /**
19109
19113
  * iOS Modal Enter Animation for the Card presentation style
19110
19114
  */
19111
19115
  const iosEnterAnimation$3 = (baseEl, opts) => {
19112
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19116
+ const { presentingEl, currentBreakpoint } = opts;
19113
19117
  const root = getElementRoot(baseEl);
19114
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19118
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
19115
19119
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19116
19120
  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
19121
  const baseAnimation = createAnimation('entering-base')
19121
19122
  .addElement(baseEl)
19122
19123
  .easing('cubic-bezier(0.32,0.72,0,1)')
19123
19124
  .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
- }
19125
+ .addAnimation(wrapperAnimation);
19168
19126
  if (presentingEl) {
19169
19127
  const isMobile = window.innerWidth < 768;
19170
19128
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19242,7 +19200,7 @@ const createLeaveAnimation$1 = () => {
19242
19200
  * iOS Modal Leave Animation
19243
19201
  */
19244
19202
  const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19245
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
19203
+ const { presentingEl, currentBreakpoint } = opts;
19246
19204
  const root = getElementRoot(baseEl);
19247
19205
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
19248
19206
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -19251,29 +19209,7 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
19251
19209
  .addElement(baseEl)
19252
19210
  .easing('cubic-bezier(0.32,0.72,0,1)')
19253
19211
  .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
- });
19212
+ .addAnimation(wrapperAnimation);
19277
19213
  if (presentingEl) {
19278
19214
  const isMobile = window.innerWidth < 768;
19279
19215
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -19351,69 +19287,22 @@ const createEnterAnimation = () => {
19351
19287
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
19352
19288
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
19353
19289
  ]);
19354
- return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
19290
+ return { backdropAnimation, wrapperAnimation };
19355
19291
  };
19356
19292
  /**
19357
19293
  * Md Modal Enter Animation
19358
19294
  */
19359
19295
  const mdEnterAnimation$2 = (baseEl, opts) => {
19360
- const { currentBreakpoint, expandToScroll } = opts;
19296
+ const { currentBreakpoint } = opts;
19361
19297
  const root = getElementRoot(baseEl);
19362
- const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19298
+ const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
19363
19299
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19364
19300
  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()
19301
+ return createAnimation()
19369
19302
  .addElement(baseEl)
19370
19303
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
19371
19304
  .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;
19305
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19417
19306
  };
19418
19307
 
19419
19308
  const createLeaveAnimation = () => {
@@ -19428,41 +19317,18 @@ const createLeaveAnimation = () => {
19428
19317
  * Md Modal Leave Animation
19429
19318
  */
19430
19319
  const mdLeaveAnimation$2 = (baseEl, opts) => {
19431
- const { currentBreakpoint, expandToScroll } = opts;
19320
+ const { currentBreakpoint } = opts;
19432
19321
  const root = getElementRoot(baseEl);
19433
19322
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
19434
19323
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
19435
19324
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
19436
- const baseAnimation = createAnimation()
19325
+ return createAnimation()
19437
19326
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
19438
19327
  .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;
19328
+ .addAnimation([backdropAnimation, wrapperAnimation]);
19463
19329
  };
19464
19330
 
19465
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19331
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
19466
19332
  // Defaults for the sheet swipe animation
19467
19333
  const defaultBackdrop = [
19468
19334
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -19479,10 +19345,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19479
19345
  { offset: 1, transform: 'translateY(100%)' },
19480
19346
  ],
19481
19347
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
19482
- CONTENT_KEYFRAMES: [
19483
- { offset: 0, maxHeight: '100%' },
19484
- { offset: 1, maxHeight: '0%' },
19485
- ],
19486
19348
  };
19487
19349
  const contentEl = baseEl.querySelector('ion-content');
19488
19350
  const height = wrapperEl.clientHeight;
@@ -19490,11 +19352,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19490
19352
  let offset = 0;
19491
19353
  let canDismissBlocksGesture = false;
19492
19354
  const canDismissMaxStep = 0.95;
19493
- const maxBreakpoint = breakpoints[breakpoints.length - 1];
19494
- const minBreakpoint = breakpoints[0];
19495
19355
  const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
19496
19356
  const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
19497
- const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
19357
+ const maxBreakpoint = breakpoints[breakpoints.length - 1];
19358
+ const minBreakpoint = breakpoints[0];
19498
19359
  const enableBackdrop = () => {
19499
19360
  baseEl.style.setProperty('pointer-events', 'auto');
19500
19361
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -19517,31 +19378,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19517
19378
  */
19518
19379
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
19519
19380
  };
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
19381
  /**
19546
19382
  * After the entering animation completes,
19547
19383
  * we need to set the animation to go from
@@ -19553,7 +19389,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19553
19389
  if (wrapperAnimation && backdropAnimation) {
19554
19390
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19555
19391
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19556
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19557
19392
  animation.progressStart(true, 1 - currentBreakpoint);
19558
19393
  /**
19559
19394
  * If backdrop is not enabled, then content
@@ -19570,7 +19405,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19570
19405
  disableBackdrop();
19571
19406
  }
19572
19407
  }
19573
- if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
19408
+ if (contentEl && currentBreakpoint !== maxBreakpoint) {
19574
19409
  contentEl.scrollY = false;
19575
19410
  }
19576
19411
  const canStart = (detail) => {
@@ -19584,13 +19419,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19584
19419
  */
19585
19420
  const contentEl = findClosestIonContent(detail.event.target);
19586
19421
  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
19422
  if (currentBreakpoint === 1 && contentEl) {
19595
19423
  /**
19596
19424
  * The modal should never swipe to close on the content with a refresher.
@@ -19621,15 +19449,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19621
19449
  * Remove undefined check
19622
19450
  */
19623
19451
  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
19452
  /**
19634
19453
  * If we are pulling down, then it is possible we are pulling on the content.
19635
19454
  * We do not want scrolling to happen at the same time as the gesture.
@@ -19745,19 +19564,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19745
19564
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
19746
19565
  },
19747
19566
  ]);
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
19567
  animation.progressStep(0);
19762
19568
  }
19763
19569
  /**
@@ -19765,14 +19571,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19765
19571
  * snapping animation completes.
19766
19572
  */
19767
19573
  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
19574
  if (shouldPreventDismiss) {
19777
19575
  handleCanDismiss(baseEl, animation);
19778
19576
  }
@@ -19780,13 +19578,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19780
19578
  onDismiss();
19781
19579
  }
19782
19580
  /**
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.
19581
+ * If the sheet is going to be fully expanded then we should enable
19582
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
19583
+ * so if we wait until then there is a visible delay for when scrolling is
19584
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
19585
+ * as the gesture is released, so we align with that.
19788
19586
  */
19789
- if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
19587
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
19790
19588
  contentEl.scrollY = true;
19791
19589
  }
19792
19590
  return new Promise((resolve) => {
@@ -19804,7 +19602,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19804
19602
  raf(() => {
19805
19603
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
19806
19604
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
19807
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
19808
19605
  animation.progressStart(true, 1 - snapToBreakpoint);
19809
19606
  currentBreakpoint = snapToBreakpoint;
19810
19607
  onBreakpointChange(currentBreakpoint);
@@ -19857,10 +19654,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
19857
19654
  };
19858
19655
  };
19859
19656
 
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}";
19657
+ 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
19658
  var IonModalIosStyle0 = modalIosCss;
19862
19659
 
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}";
19660
+ 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
19661
  var IonModalMdStyle0 = modalMdCss;
19865
19662
 
19866
19663
  // TODO(FW-2832): types
@@ -19939,7 +19736,6 @@ class Modal {
19939
19736
  this.enterAnimation = undefined;
19940
19737
  this.leaveAnimation = undefined;
19941
19738
  this.breakpoints = undefined;
19942
- this.expandToScroll = true;
19943
19739
  this.initialBreakpoint = undefined;
19944
19740
  this.backdropBreakpoint = 0;
19945
19741
  this.handle = undefined;
@@ -20155,7 +19951,6 @@ class Modal {
20155
19951
  presentingEl: presentingElement,
20156
19952
  currentBreakpoint: this.initialBreakpoint,
20157
19953
  backdropBreakpoint: this.backdropBreakpoint,
20158
- expandToScroll: this.expandToScroll,
20159
19954
  });
20160
19955
  /* tslint:disable-next-line */
20161
19956
  if (typeof window !== 'undefined') {
@@ -20206,10 +20001,7 @@ class Modal {
20206
20001
  // should be in the DOM and referenced by now, except
20207
20002
  // for the presenting el
20208
20003
  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
- }));
20004
+ const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
20213
20005
  const contentEl = findIonContent(el);
20214
20006
  if (!contentEl) {
20215
20007
  printIonContentErrorMsg(el);
@@ -20254,10 +20046,9 @@ class Modal {
20254
20046
  presentingEl: this.presentingElement,
20255
20047
  currentBreakpoint: initialBreakpoint,
20256
20048
  backdropBreakpoint,
20257
- expandToScroll: this.expandToScroll,
20258
20049
  }));
20259
20050
  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) => {
20051
+ 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
20052
  if (this.currentBreakpoint !== breakpoint) {
20262
20053
  this.currentBreakpoint = breakpoint;
20263
20054
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -20335,7 +20126,6 @@ class Modal {
20335
20126
  presentingEl: presentingElement,
20336
20127
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
20337
20128
  backdropBreakpoint: this.backdropBreakpoint,
20338
- expandToScroll: this.expandToScroll,
20339
20129
  });
20340
20130
  if (dismissed) {
20341
20131
  const { delegate } = this.getDelegate();
@@ -20421,23 +20211,23 @@ class Modal {
20421
20211
  return true;
20422
20212
  }
20423
20213
  render() {
20424
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
20214
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
20425
20215
  const showHandle = handle !== false && isSheetModal;
20426
20216
  const mode = getIonMode$1(this);
20427
20217
  const isCardModal = presentingElement !== undefined && mode === 'ios';
20428
20218
  const isHandleCycle = handleBehavior === 'cycle';
20429
- return (hAsync(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20219
+ return (hAsync(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
20430
20220
  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',
20221
+ }, 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
20222
  /*
20433
20223
  role and aria-modal must be used on the
20434
20224
  same element. They must also be set inside the
20435
20225
  shadow DOM otherwise ion-button will not be highlighted
20436
20226
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
20437
20227
  */
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",
20228
+ 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
20229
  // 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' }))));
20230
+ 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
20231
  }
20442
20232
  get el() { return getElement(this); }
20443
20233
  static get watchers() { return {
@@ -20459,7 +20249,6 @@ class Modal {
20459
20249
  "enterAnimation": [16],
20460
20250
  "leaveAnimation": [16],
20461
20251
  "breakpoints": [16],
20462
- "expandToScroll": [4, "expand-to-scroll"],
20463
20252
  "initialBreakpoint": [2, "initial-breakpoint"],
20464
20253
  "backdropBreakpoint": [2, "backdrop-breakpoint"],
20465
20254
  "handle": [4],
@@ -29934,7 +29723,6 @@ class Select {
29934
29723
  this.expandedIcon = undefined;
29935
29724
  this.shape = undefined;
29936
29725
  this.value = undefined;
29937
- this.required = false;
29938
29726
  }
29939
29727
  styleChanged() {
29940
29728
  this.emitStyle();
@@ -29990,8 +29778,15 @@ class Select {
29990
29778
  }
29991
29779
  this.isExpanded = true;
29992
29780
  const overlay = (this.overlay = await this.createOverlay(event));
29993
- // Add logic to scroll selected item into view before presenting
29994
- const scrollSelectedIntoView = () => {
29781
+ overlay.onDidDismiss().then(() => {
29782
+ this.overlay = undefined;
29783
+ this.isExpanded = false;
29784
+ this.ionDismiss.emit();
29785
+ this.setFocus();
29786
+ });
29787
+ await overlay.present();
29788
+ // focus selected option for popovers and modals
29789
+ if (this.interface === 'popover' || this.interface === 'modal') {
29995
29790
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
29996
29791
  if (indexOfSelected > -1) {
29997
29792
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -30009,7 +29804,6 @@ class Select {
30009
29804
  */
30010
29805
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
30011
29806
  if (interactiveEl) {
30012
- selectedItem.scrollIntoView({ block: 'nearest' });
30013
29807
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
30014
29808
  // and removing `ion-focused` style
30015
29809
  interactiveEl.setFocus();
@@ -30033,40 +29827,7 @@ class Select {
30033
29827
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
30034
29828
  }
30035
29829
  }
30036
- };
30037
- // For modals and popovers, we can scroll before they're visible
30038
- if (this.interface === 'modal') {
30039
- overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
30040
- }
30041
- else if (this.interface === 'popover') {
30042
- overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
30043
- }
30044
- else {
30045
- /**
30046
- * For alerts and action sheets, we need to wait a frame after willPresent
30047
- * because these overlays don't have their content in the DOM immediately
30048
- * when willPresent fires. By waiting a frame, we ensure the content is
30049
- * rendered and can be properly scrolled into view.
30050
- */
30051
- const scrollAfterRender = () => {
30052
- requestAnimationFrame(() => {
30053
- scrollSelectedIntoView();
30054
- });
30055
- };
30056
- if (this.interface === 'alert') {
30057
- overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
30058
- }
30059
- else if (this.interface === 'action-sheet') {
30060
- overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
30061
- }
30062
29830
  }
30063
- overlay.onDidDismiss().then(() => {
30064
- this.overlay = undefined;
30065
- this.isExpanded = false;
30066
- this.ionDismiss.emit();
30067
- this.setFocus();
30068
- });
30069
- await overlay.present();
30070
29831
  return overlay;
30071
29832
  }
30072
29833
  createOverlay(ev) {
@@ -30446,8 +30207,8 @@ class Select {
30446
30207
  return renderedLabel;
30447
30208
  }
30448
30209
  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) }));
30210
+ const { disabled, inputId, isExpanded } = this;
30211
+ 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
30212
  }
30452
30213
  render() {
30453
30214
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -30478,7 +30239,7 @@ class Select {
30478
30239
  * TODO(FW-5592): Remove hasStartEndSlots condition
30479
30240
  */
30480
30241
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
30481
- return (hAsync(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses$1(this.color, {
30242
+ return (hAsync(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses$1(this.color, {
30482
30243
  [mode]: true,
30483
30244
  'in-item': inItem,
30484
30245
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -30494,7 +30255,7 @@ class Select {
30494
30255
  [`select-justify-${justify}`]: justifyEnabled,
30495
30256
  [`select-shape-${shape}`]: shape !== undefined,
30496
30257
  [`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" }))));
30258
+ }) }, hAsync("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, hAsync("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), hAsync("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', class: "select-highlight" }))));
30498
30259
  }
30499
30260
  get el() { return getElement(this); }
30500
30261
  static get watchers() { return {
@@ -30530,7 +30291,6 @@ class Select {
30530
30291
  "expandedIcon": [1, "expanded-icon"],
30531
30292
  "shape": [1],
30532
30293
  "value": [1032],
30533
- "required": [4],
30534
30294
  "isExpanded": [32],
30535
30295
  "open": [64]
30536
30296
  },
@@ -32927,7 +32687,6 @@ class Toggle {
32927
32687
  this.labelPlacement = 'start';
32928
32688
  this.justify = undefined;
32929
32689
  this.alignment = undefined;
32930
- this.required = false;
32931
32690
  }
32932
32691
  disabledChanged() {
32933
32692
  if (this.gesture) {
@@ -33009,12 +32768,12 @@ class Toggle {
33009
32768
  return this.el.textContent !== '';
33010
32769
  }
33011
32770
  render() {
33012
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
32771
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
33013
32772
  const mode = getIonMode$1(this);
33014
32773
  const value = this.getValue();
33015
32774
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
33016
32775
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
33017
- return (hAsync(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses$1(color, {
32776
+ return (hAsync(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses$1(color, {
33018
32777
  [mode]: true,
33019
32778
  'in-item': hostContext('ion-item', el),
33020
32779
  'toggle-activated': activated,
@@ -33024,10 +32783,10 @@ class Toggle {
33024
32783
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
33025
32784
  [`toggle-label-placement-${labelPlacement}`]: true,
33026
32785
  [`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: {
32786
+ }) }, 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
32787
  'label-text-wrapper': true,
33029
32788
  'label-text-wrapper-hidden': !this.hasLabel,
33030
- }, part: "label" }, hAsync("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), hAsync("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
32789
+ }, part: "label" }, hAsync("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), hAsync("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
33031
32790
  }
33032
32791
  get el() { return getElement(this); }
33033
32792
  static get watchers() { return {
@@ -33050,7 +32809,6 @@ class Toggle {
33050
32809
  "labelPlacement": [1, "label-placement"],
33051
32810
  "justify": [1],
33052
32811
  "alignment": [1],
33053
- "required": [4],
33054
32812
  "activated": [32]
33055
32813
  },
33056
32814
  "$listeners$": undefined,
@@ -33082,10 +32840,6 @@ var IonToolbarMdStyle0 = toolbarMdCss;
33082
32840
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
33083
32841
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
33084
32842
  * @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
32843
  */
33090
32844
  class Toolbar {
33091
32845
  constructor(hostRef) {
@@ -33136,10 +32890,10 @@ class Toolbar {
33136
32890
  this.childrenStyles.forEach((value) => {
33137
32891
  Object.assign(childStyles, value);
33138
32892
  });
33139
- return (hAsync(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
32893
+ return (hAsync(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
33140
32894
  [mode]: true,
33141
32895
  '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" }))));
32896
+ })) }, 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
32897
  }
33144
32898
  get el() { return getElement(this); }
33145
32899
  static get style() { return {