voyager-ionic-core 8.4.3 → 8.5.0

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 (605) hide show
  1. package/components/alert.js +30 -4
  2. package/components/checkbox.js +40 -6
  3. package/components/helpers.js +17 -29
  4. package/components/index6.js +11 -3
  5. package/components/index9.js +1 -1
  6. package/components/ion-input.js +22 -9
  7. package/components/ion-item-divider.js +2 -2
  8. package/components/ion-item-group.js +1 -1
  9. package/components/ion-item-option.js +2 -2
  10. package/components/ion-item-options.js +1 -1
  11. package/components/ion-item-sliding.js +1 -1
  12. package/components/ion-loading.js +2 -2
  13. package/components/ion-menu-button.js +2 -2
  14. package/components/ion-menu-toggle.js +2 -2
  15. package/components/ion-menu.js +2 -2
  16. package/components/ion-nav-link.js +1 -1
  17. package/components/ion-nav.js +1 -1
  18. package/components/ion-note.js +2 -2
  19. package/components/ion-picker-legacy.js +2 -2
  20. package/components/ion-progress-bar.js +1 -1
  21. package/components/ion-range.js +28 -6
  22. package/components/ion-refresher-content.js +1 -1
  23. package/components/ion-refresher.js +1 -1
  24. package/components/ion-reorder-group.js +1 -1
  25. package/components/ion-reorder.js +1 -1
  26. package/components/ion-router-link.js +2 -2
  27. package/components/ion-router-outlet.js +1 -1
  28. package/components/ion-router.js +1 -1
  29. package/components/ion-row.js +1 -1
  30. package/components/ion-searchbar.js +4 -4
  31. package/components/ion-segment-button.js +40 -9
  32. package/components/ion-segment-content.js +1 -1
  33. package/components/ion-segment-view.js +2 -2
  34. package/components/ion-segment.js +2 -2
  35. package/components/ion-select-option.js +1 -1
  36. package/components/ion-select.js +87 -16
  37. package/components/ion-skeleton-text.js +2 -2
  38. package/components/ion-split-pane.js +2 -2
  39. package/components/ion-tab-bar.js +2 -2
  40. package/components/ion-tab-button.js +2 -2
  41. package/components/ion-tab.js +2 -2
  42. package/components/ion-tabs.js +1 -1
  43. package/components/ion-text.js +2 -2
  44. package/components/ion-textarea.js +21 -8
  45. package/components/ion-thumbnail.js +1 -1
  46. package/components/ion-toast.js +2 -2
  47. package/components/ion-toggle.js +41 -6
  48. package/components/ionic-global.js +3 -13
  49. package/components/label.js +2 -2
  50. package/components/list-header.js +2 -2
  51. package/components/modal.js +267 -35
  52. package/components/picker-column-option.js +2 -2
  53. package/components/picker-column2.js +2 -2
  54. package/components/popover.js +2 -2
  55. package/components/radio-group.js +39 -2
  56. package/components/radio.js +3 -3
  57. package/components/ripple-effect.js +1 -1
  58. package/components/select-modal.js +1 -1
  59. package/components/select-popover.js +1 -1
  60. package/components/spinner.js +1 -1
  61. package/components/title.js +2 -2
  62. package/components/toolbar.js +2 -2
  63. package/css/core.css.map +1 -1
  64. package/css/ionic.bundle.css.map +1 -1
  65. package/dist/cjs/{app-globals-21afee77.js → app-globals-dd592863.js} +1 -1
  66. package/dist/cjs/{button-active-3f2f60b4.js → button-active-43e2b419.js} +1 -1
  67. package/dist/cjs/{data-21dc0f81.js → data-27cc2c9c.js} +1 -1
  68. package/dist/cjs/{framework-delegate-55f5683a.js → framework-delegate-11b0ba2f.js} +1 -1
  69. package/dist/cjs/{hardware-back-button-9e8a2c4f.js → hardware-back-button-5a99001f.js} +2 -2
  70. package/dist/cjs/{helpers-afaa9001.js → helpers-d0dfbb50.js} +18 -28
  71. package/dist/cjs/{index-73f75efb.js → index-2e236a04.js} +0 -4
  72. package/dist/cjs/{index-9509ecad.js → index-363fe6b2.js} +1 -1
  73. package/dist/cjs/{index-5915f9b3.js → index-48b2a28e.js} +11 -3
  74. package/dist/cjs/{index-5b6a7459.js → index-9b945a2d.js} +2 -2
  75. package/dist/cjs/{index-f05acd21.js → index-f68a486a.js} +6 -6
  76. package/dist/cjs/{index-8e789962.js → index-fd6383b6.js} +4 -4
  77. package/dist/cjs/index.cjs.js +11 -11
  78. package/dist/cjs/{input-shims-9e59ef62.js → input-shims-2d27a5be.js} +5 -3
  79. package/dist/cjs/{input.utils-611cde0b.js → input.utils-2f642324.js} +2 -2
  80. package/dist/cjs/ion-accordion_2.cjs.entry.js +4 -4
  81. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  82. package/dist/cjs/ion-alert.cjs.entry.js +38 -12
  83. package/dist/cjs/ion-app_8.cjs.entry.js +18 -18
  84. package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  88. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  89. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  90. package/dist/cjs/ion-checkbox.cjs.entry.js +40 -9
  91. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  93. package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -5
  94. package/dist/cjs/ion-datetime_3.cjs.entry.js +12 -12
  95. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  96. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  97. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  98. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  99. package/dist/cjs/ion-input.cjs.entry.js +25 -13
  100. package/dist/cjs/ion-item-option_3.cjs.entry.js +9 -9
  101. package/dist/cjs/ion-item_8.cjs.entry.js +14 -14
  102. package/dist/cjs/ion-loading.cjs.entry.js +9 -9
  103. package/dist/cjs/ion-menu_3.cjs.entry.js +14 -14
  104. package/dist/cjs/ion-modal.cjs.entry.js +275 -44
  105. package/dist/cjs/ion-nav_2.cjs.entry.js +9 -9
  106. package/dist/cjs/ion-picker-column-option.cjs.entry.js +5 -5
  107. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  108. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-popover.cjs.entry.js +10 -10
  110. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
  111. package/dist/cjs/ion-radio_2.cjs.entry.js +42 -7
  112. package/dist/cjs/ion-range.cjs.entry.js +31 -10
  113. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  114. package/dist/cjs/ion-reorder_2.cjs.entry.js +7 -7
  115. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  116. package/dist/cjs/ion-route_4.cjs.entry.js +5 -5
  117. package/dist/cjs/ion-searchbar.cjs.entry.js +7 -7
  118. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-segment_2.cjs.entry.js +44 -13
  121. package/dist/cjs/ion-select-modal.cjs.entry.js +8 -8
  122. package/dist/cjs/ion-select_3.cjs.entry.js +93 -25
  123. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  124. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  125. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +7 -7
  126. package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
  127. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  128. package/dist/cjs/ion-textarea.cjs.entry.js +24 -12
  129. package/dist/cjs/ion-toast.cjs.entry.js +9 -9
  130. package/dist/cjs/ion-toggle.cjs.entry.js +41 -9
  131. package/dist/cjs/{ionic-global-d9a8bb5b.js → ionic-global-acb665ad.js} +3 -13
  132. package/dist/cjs/ionic.cjs.js +4 -4
  133. package/dist/cjs/{ios.transition-cf40433b.js → ios.transition-f970164c.js} +5 -5
  134. package/dist/cjs/loader.cjs.js +4 -4
  135. package/dist/cjs/{md.transition-ededf99f.js → md.transition-aa8820dd.js} +5 -5
  136. package/dist/cjs/{notch-controller-d69150f5.js → notch-controller-58d2e557.js} +1 -1
  137. package/dist/cjs/{overlays-aa669eb8.js → overlays-737576a2.js} +5 -5
  138. package/dist/cjs/{status-tap-37681226.js → status-tap-08d1ac81.js} +5 -4
  139. package/dist/cjs/{swipe-back-f38a434a.js → swipe-back-5c0003bd.js} +1 -1
  140. package/dist/collection/components/alert/alert.js +34 -4
  141. package/dist/collection/components/checkbox/checkbox.ios.css +52 -15
  142. package/dist/collection/components/checkbox/checkbox.js +90 -4
  143. package/dist/collection/components/checkbox/checkbox.md.css +52 -15
  144. package/dist/collection/components/input/input.ios.css +3 -2
  145. package/dist/collection/components/input/input.js +18 -4
  146. package/dist/collection/components/input/input.md.css +7 -2
  147. package/dist/collection/components/item-divider/item-divider.js +2 -2
  148. package/dist/collection/components/item-group/item-group.js +1 -1
  149. package/dist/collection/components/item-option/item-option.js +2 -2
  150. package/dist/collection/components/item-options/item-options.js +1 -1
  151. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  152. package/dist/collection/components/label/label.js +2 -2
  153. package/dist/collection/components/list-header/list-header.js +2 -2
  154. package/dist/collection/components/loading/loading.js +2 -2
  155. package/dist/collection/components/menu/menu.js +2 -2
  156. package/dist/collection/components/menu-button/menu-button.js +2 -2
  157. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  158. package/dist/collection/components/modal/animations/ios.enter.js +50 -4
  159. package/dist/collection/components/modal/animations/ios.leave.js +24 -2
  160. package/dist/collection/components/modal/animations/md.enter.js +52 -5
  161. package/dist/collection/components/modal/animations/md.leave.js +26 -3
  162. package/dist/collection/components/modal/animations/sheet.js +11 -2
  163. package/dist/collection/components/modal/gestures/sheet.js +87 -10
  164. package/dist/collection/components/modal/modal.ios.css +16 -0
  165. package/dist/collection/components/modal/modal.js +32 -7
  166. package/dist/collection/components/modal/modal.md.css +6 -0
  167. package/dist/collection/components/nav/nav.js +1 -1
  168. package/dist/collection/components/nav-link/nav-link.js +1 -1
  169. package/dist/collection/components/note/note.js +2 -2
  170. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  171. package/dist/collection/components/picker-legacy/picker.js +2 -2
  172. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  173. package/dist/collection/components/popover/popover.js +2 -2
  174. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  175. package/dist/collection/components/radio/radio.js +3 -3
  176. package/dist/collection/components/radio-group/radio-group.ios.css +205 -0
  177. package/dist/collection/components/radio-group/radio-group.js +72 -1
  178. package/dist/collection/components/radio-group/radio-group.md.css +205 -0
  179. package/dist/collection/components/range/range.js +25 -6
  180. package/dist/collection/components/refresher/refresher.js +1 -1
  181. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  182. package/dist/collection/components/reorder/reorder.js +1 -1
  183. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  184. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  185. package/dist/collection/components/router-link/router-link.js +2 -2
  186. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  187. package/dist/collection/components/row/row.js +1 -1
  188. package/dist/collection/components/searchbar/searchbar.js +4 -4
  189. package/dist/collection/components/segment/segment.js +2 -2
  190. package/dist/collection/components/segment-button/segment-button.js +40 -9
  191. package/dist/collection/components/segment-content/segment-content.js +1 -1
  192. package/dist/collection/components/segment-view/segment-view.js +2 -2
  193. package/dist/collection/components/select/select.ios.css +59 -0
  194. package/dist/collection/components/select/select.js +136 -13
  195. package/dist/collection/components/select/select.md.css +61 -0
  196. package/dist/collection/components/select-modal/select-modal.js +1 -1
  197. package/dist/collection/components/select-option/select-option.js +1 -1
  198. package/dist/collection/components/select-popover/select-popover.js +1 -1
  199. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  200. package/dist/collection/components/spinner/spinner.js +1 -1
  201. package/dist/collection/components/split-pane/split-pane.js +2 -2
  202. package/dist/collection/components/tab/tab.js +2 -2
  203. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  204. package/dist/collection/components/tab-button/tab-button.js +2 -2
  205. package/dist/collection/components/tabs/tabs.js +1 -1
  206. package/dist/collection/components/text/text.js +2 -2
  207. package/dist/collection/components/textarea/textarea.ios.css +3 -2
  208. package/dist/collection/components/textarea/textarea.js +17 -3
  209. package/dist/collection/components/textarea/textarea.md.css +7 -2
  210. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  211. package/dist/collection/components/title/title.js +2 -2
  212. package/dist/collection/components/toast/toast.js +2 -2
  213. package/dist/collection/components/toggle/toggle.ios.css +52 -15
  214. package/dist/collection/components/toggle/toggle.js +91 -4
  215. package/dist/collection/components/toggle/toggle.md.css +52 -15
  216. package/dist/collection/components/toolbar/toolbar.js +6 -2
  217. package/dist/collection/global/ionic-global.js +1 -12
  218. package/dist/collection/utils/floating-point/index.js +5 -0
  219. package/dist/collection/utils/helpers.js +16 -28
  220. package/dist/collection/utils/logging/index.js +10 -3
  221. package/dist/collection/utils/platform.js +2 -1
  222. package/dist/collection/utils/test/platform.utils.js +1 -1
  223. package/dist/docs.json +383 -2
  224. package/dist/esm/{app-globals-5dbb61a5.js → app-globals-7b6cbf1a.js} +1 -1
  225. package/dist/esm/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
  226. package/dist/esm/{data-ae11fd43.js → data-174ad5e0.js} +1 -1
  227. package/dist/esm/{framework-delegate-63d1a679.js → framework-delegate-c7d92b77.js} +1 -1
  228. package/dist/esm/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +2 -2
  229. package/dist/esm/{helpers-da915de8.js → helpers-e48b0397.js} +17 -29
  230. package/dist/esm/{index-28849c61.js → index-527b9e34.js} +1 -4
  231. package/dist/esm/{index-9b0d46f4.js → index-738d7504.js} +11 -3
  232. package/dist/esm/{index-79b30591.js → index-8222b29f.js} +1 -1
  233. package/dist/esm/{index-5cc724f3.js → index-933ca126.js} +2 -2
  234. package/dist/esm/{index-3ad7f18b.js → index-a313df53.js} +6 -6
  235. package/dist/esm/{index-24b48b06.js → index-c63afbe6.js} +4 -4
  236. package/dist/esm/index.js +11 -11
  237. package/dist/esm/{input-shims-0314bbe5.js → input-shims-3070628a.js} +5 -3
  238. package/dist/esm/{input.utils-09c71bc7.js → input.utils-926c04a8.js} +2 -2
  239. package/dist/esm/ion-accordion_2.entry.js +4 -4
  240. package/dist/esm/ion-action-sheet.entry.js +8 -8
  241. package/dist/esm/ion-alert.entry.js +38 -12
  242. package/dist/esm/ion-app_8.entry.js +18 -18
  243. package/dist/esm/ion-avatar_3.entry.js +3 -3
  244. package/dist/esm/ion-back-button.entry.js +3 -3
  245. package/dist/esm/ion-backdrop.entry.js +2 -2
  246. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  247. package/dist/esm/ion-button_2.entry.js +4 -4
  248. package/dist/esm/ion-card_5.entry.js +3 -3
  249. package/dist/esm/ion-checkbox.entry.js +40 -9
  250. package/dist/esm/ion-chip.entry.js +2 -2
  251. package/dist/esm/ion-col_3.entry.js +3 -3
  252. package/dist/esm/ion-datetime-button.entry.js +5 -5
  253. package/dist/esm/ion-datetime_3.entry.js +12 -12
  254. package/dist/esm/ion-fab_3.entry.js +3 -3
  255. package/dist/esm/ion-img.entry.js +3 -3
  256. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  257. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  258. package/dist/esm/ion-input.entry.js +25 -13
  259. package/dist/esm/ion-item-option_3.entry.js +9 -9
  260. package/dist/esm/ion-item_8.entry.js +14 -14
  261. package/dist/esm/ion-loading.entry.js +9 -9
  262. package/dist/esm/ion-menu_3.entry.js +14 -14
  263. package/dist/esm/ion-modal.entry.js +275 -44
  264. package/dist/esm/ion-nav_2.entry.js +9 -9
  265. package/dist/esm/ion-picker-column-option.entry.js +5 -5
  266. package/dist/esm/ion-picker-column.entry.js +3 -3
  267. package/dist/esm/ion-picker.entry.js +2 -2
  268. package/dist/esm/ion-popover.entry.js +10 -10
  269. package/dist/esm/ion-progress-bar.entry.js +4 -4
  270. package/dist/esm/ion-radio_2.entry.js +42 -7
  271. package/dist/esm/ion-range.entry.js +31 -10
  272. package/dist/esm/ion-refresher_2.entry.js +7 -7
  273. package/dist/esm/ion-reorder_2.entry.js +7 -7
  274. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  275. package/dist/esm/ion-route_4.entry.js +5 -5
  276. package/dist/esm/ion-searchbar.entry.js +7 -7
  277. package/dist/esm/ion-segment-content.entry.js +2 -2
  278. package/dist/esm/ion-segment-view.entry.js +3 -3
  279. package/dist/esm/ion-segment_2.entry.js +44 -13
  280. package/dist/esm/ion-select-modal.entry.js +8 -8
  281. package/dist/esm/ion-select_3.entry.js +93 -25
  282. package/dist/esm/ion-spinner.entry.js +3 -3
  283. package/dist/esm/ion-split-pane.entry.js +4 -4
  284. package/dist/esm/ion-tab-bar_2.entry.js +7 -7
  285. package/dist/esm/ion-tab_2.entry.js +6 -6
  286. package/dist/esm/ion-text.entry.js +4 -4
  287. package/dist/esm/ion-textarea.entry.js +24 -12
  288. package/dist/esm/ion-toast.entry.js +9 -9
  289. package/dist/esm/ion-toggle.entry.js +41 -9
  290. package/dist/esm/{ionic-global-c81d82ab.js → ionic-global-ca86cf32.js} +3 -13
  291. package/dist/esm/ionic.js +5 -5
  292. package/dist/esm/{ios.transition-4ee1a3af.js → ios.transition-5fe4d6c8.js} +5 -5
  293. package/dist/esm/loader.js +5 -5
  294. package/dist/esm/{md.transition-5106a0d2.js → md.transition-3d0d3730.js} +5 -5
  295. package/dist/esm/{notch-controller-55b09e11.js → notch-controller-381a5334.js} +1 -1
  296. package/dist/esm/{overlays-e7b9d6d9.js → overlays-7579a420.js} +5 -5
  297. package/dist/esm/{status-tap-f472b09f.js → status-tap-6367b913.js} +5 -4
  298. package/dist/esm/{swipe-back-b613d7db.js → swipe-back-326faa1c.js} +1 -1
  299. package/dist/esm-es5/app-globals-7b6cbf1a.js +4 -0
  300. package/dist/esm-es5/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
  301. package/dist/esm-es5/{data-ae11fd43.js → data-174ad5e0.js} +1 -1
  302. package/dist/esm-es5/{framework-delegate-63d1a679.js → framework-delegate-c7d92b77.js} +1 -1
  303. package/dist/esm-es5/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +1 -1
  304. package/dist/esm-es5/helpers-e48b0397.js +4 -0
  305. package/dist/esm-es5/index-527b9e34.js +5 -0
  306. package/dist/esm-es5/index-738d7504.js +4 -0
  307. package/dist/esm-es5/{index-79b30591.js → index-8222b29f.js} +1 -1
  308. package/dist/esm-es5/{index-5cc724f3.js → index-933ca126.js} +1 -1
  309. package/dist/esm-es5/{index-3ad7f18b.js → index-a313df53.js} +1 -1
  310. package/dist/esm-es5/{index-24b48b06.js → index-c63afbe6.js} +1 -1
  311. package/dist/esm-es5/index.js +1 -1
  312. package/dist/esm-es5/input-shims-3070628a.js +4 -0
  313. package/dist/esm-es5/{input.utils-09c71bc7.js → input.utils-926c04a8.js} +1 -1
  314. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  315. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  316. package/dist/esm-es5/ion-alert.entry.js +1 -1
  317. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  318. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  319. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  320. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  321. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  322. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  323. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  324. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  325. package/dist/esm-es5/ion-chip.entry.js +1 -1
  326. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  327. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  328. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  329. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  330. package/dist/esm-es5/ion-img.entry.js +1 -1
  331. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  332. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  333. package/dist/esm-es5/ion-input.entry.js +1 -1
  334. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  335. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  336. package/dist/esm-es5/ion-loading.entry.js +1 -1
  337. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  338. package/dist/esm-es5/ion-modal.entry.js +1 -1
  339. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  340. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  341. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  342. package/dist/esm-es5/ion-picker.entry.js +1 -1
  343. package/dist/esm-es5/ion-popover.entry.js +1 -1
  344. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  345. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  346. package/dist/esm-es5/ion-range.entry.js +1 -1
  347. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  348. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  349. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  350. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  351. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  352. package/dist/esm-es5/ion-segment-content.entry.js +1 -1
  353. package/dist/esm-es5/ion-segment-view.entry.js +1 -1
  354. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  355. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  356. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  357. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  358. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  359. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  360. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  361. package/dist/esm-es5/ion-text.entry.js +1 -1
  362. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  363. package/dist/esm-es5/ion-toast.entry.js +1 -1
  364. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  365. package/dist/esm-es5/ionic-global-ca86cf32.js +4 -0
  366. package/dist/esm-es5/ionic.js +1 -1
  367. package/dist/esm-es5/{ios.transition-4ee1a3af.js → ios.transition-5fe4d6c8.js} +1 -1
  368. package/dist/esm-es5/loader.js +1 -1
  369. package/dist/esm-es5/md.transition-3d0d3730.js +4 -0
  370. package/dist/esm-es5/{notch-controller-55b09e11.js → notch-controller-381a5334.js} +1 -1
  371. package/dist/esm-es5/{overlays-e7b9d6d9.js → overlays-7579a420.js} +1 -1
  372. package/dist/esm-es5/status-tap-6367b913.js +4 -0
  373. package/dist/esm-es5/{swipe-back-b613d7db.js → swipe-back-326faa1c.js} +1 -1
  374. package/dist/html.html-data.json +48 -0
  375. package/dist/ionic/index.esm.js +1 -1
  376. package/dist/ionic/ionic.esm.js +1 -1
  377. package/dist/ionic/ionic.js +1 -1
  378. package/dist/ionic/{p-58d5df0c.system.entry.js → p-023e8017.system.entry.js} +1 -1
  379. package/dist/ionic/{p-f9a53abb.system.js → p-042d5353.system.js} +1 -1
  380. package/dist/ionic/p-060e4551.js +4 -0
  381. package/dist/ionic/p-0749768d.entry.js +4 -0
  382. package/dist/ionic/p-094c82d7.entry.js +4 -0
  383. package/dist/ionic/{p-7458862e.system.entry.js → p-0adb6909.system.entry.js} +1 -1
  384. package/dist/ionic/{p-508d024a.entry.js → p-0be8a0b5.entry.js} +1 -1
  385. package/dist/ionic/{p-2507278c.system.entry.js → p-0bedc891.system.entry.js} +2 -2
  386. package/dist/ionic/{p-63b0abde.system.entry.js → p-0c9b8240.system.entry.js} +1 -1
  387. package/dist/ionic/p-0ec5b7cf.system.js +4 -0
  388. package/dist/ionic/{p-7ed1657c.system.entry.js → p-1164ff6b.system.entry.js} +1 -1
  389. package/dist/ionic/p-13886789.entry.js +4 -0
  390. package/dist/ionic/p-143ff664.system.entry.js +4 -0
  391. package/dist/ionic/p-18f9b6d5.entry.js +4 -0
  392. package/dist/ionic/{p-62af944c.entry.js → p-19c32a76.entry.js} +1 -1
  393. package/dist/ionic/{p-e4f69534.system.entry.js → p-1a9613bf.system.entry.js} +1 -1
  394. package/dist/ionic/{p-f687573e.system.js → p-1bf5ec17.system.js} +1 -1
  395. package/dist/ionic/{p-5fce0c0b.system.entry.js → p-1c1d781d.system.entry.js} +1 -1
  396. package/dist/ionic/p-1d2844a5.system.entry.js +4 -0
  397. package/dist/ionic/p-1d98a7f1.entry.js +4 -0
  398. package/dist/ionic/p-1f837356.entry.js +4 -0
  399. package/dist/ionic/p-2027221d.js +4 -0
  400. package/dist/ionic/{p-69066a53.js → p-21891ead.js} +1 -1
  401. package/dist/ionic/{p-d743e981.js → p-22bc235f.js} +1 -1
  402. package/dist/ionic/{p-a4565eb5.system.js → p-24ae7b33.system.js} +1 -1
  403. package/dist/ionic/{p-184fbc9e.system.js → p-294271c7.system.js} +1 -1
  404. package/dist/ionic/p-297d6806.system.js +4 -0
  405. package/dist/ionic/p-29a5b4e4.entry.js +4 -0
  406. package/dist/ionic/{p-01186920.system.entry.js → p-2ab4a324.system.entry.js} +1 -1
  407. package/dist/ionic/{p-ffd131f9.system.entry.js → p-2b59470f.system.entry.js} +1 -1
  408. package/dist/ionic/{p-9e33104d.entry.js → p-2ee9a2c6.entry.js} +1 -1
  409. package/dist/ionic/p-2fa5a4b1.entry.js +4 -0
  410. package/dist/ionic/{p-e7ed4a7f.system.js → p-3479f51b.system.js} +1 -1
  411. package/dist/ionic/{p-afecb188.entry.js → p-35f14792.entry.js} +1 -1
  412. package/dist/ionic/{p-7ddc46c3.system.entry.js → p-37a438ad.system.entry.js} +2 -2
  413. package/dist/ionic/{p-937a7e21.entry.js → p-3af7b907.entry.js} +1 -1
  414. package/dist/ionic/{p-c449820c.system.js → p-3bd5fedc.system.js} +1 -1
  415. package/dist/ionic/{p-d18ab582.system.entry.js → p-3be7cdeb.system.entry.js} +2 -2
  416. package/dist/ionic/{p-a15ddedb.system.js → p-3e86b4fa.system.js} +1 -1
  417. package/dist/ionic/p-3f4327f7.js +4 -0
  418. package/dist/ionic/{p-982315a6.entry.js → p-42f6e75c.entry.js} +1 -1
  419. package/dist/ionic/{p-5823babc.system.entry.js → p-4470f87b.system.entry.js} +2 -2
  420. package/dist/ionic/p-4493c1ac.entry.js +4 -0
  421. package/dist/ionic/{p-8635f5e6.system.js → p-44e168f3.system.js} +1 -1
  422. package/dist/ionic/{p-c29f8157.system.entry.js → p-4630688e.system.entry.js} +1 -1
  423. package/dist/ionic/{p-98231c01.system.entry.js → p-472c7e08.system.entry.js} +1 -1
  424. package/dist/ionic/{p-2e46590d.system.entry.js → p-491de063.system.entry.js} +1 -1
  425. package/dist/ionic/{p-985a7e17.system.entry.js → p-49cb79a1.system.entry.js} +1 -1
  426. package/dist/ionic/{p-d6841eac.js → p-4c44d04c.js} +1 -1
  427. package/dist/ionic/p-4c94580e.js +4 -0
  428. package/dist/ionic/{p-1e010627.system.entry.js → p-4d0190ad.system.entry.js} +2 -2
  429. package/dist/ionic/{p-bb0db172.entry.js → p-50f38461.entry.js} +1 -1
  430. package/dist/ionic/{p-0c06e09b.system.js → p-51c363e7.system.js} +1 -1
  431. package/dist/ionic/{p-f1acf541.system.entry.js → p-524ad57e.system.entry.js} +1 -1
  432. package/dist/ionic/{p-a61cba41.entry.js → p-54893ae3.entry.js} +1 -1
  433. package/dist/ionic/p-54e9620f.js +4 -0
  434. package/dist/ionic/p-58c482af.entry.js +4 -0
  435. package/dist/ionic/p-597ff9af.js +4 -0
  436. package/dist/ionic/{p-5da94421.system.js → p-5eb6f582.system.js} +1 -1
  437. package/dist/ionic/{p-15e76dd1.entry.js → p-5f4ff20a.entry.js} +1 -1
  438. package/dist/ionic/{p-fbf284c7.entry.js → p-5f8cd560.entry.js} +1 -1
  439. package/dist/ionic/p-606887b7.system.entry.js +4 -0
  440. package/dist/ionic/{p-bdad26e3.entry.js → p-61e794fb.entry.js} +1 -1
  441. package/dist/ionic/p-66a5d6a8.js +5 -0
  442. package/dist/ionic/p-67163d4a.entry.js +4 -0
  443. package/dist/ionic/p-6797c66e.system.js +4 -0
  444. package/dist/ionic/p-6bb846d3.entry.js +4 -0
  445. package/dist/ionic/{p-d7aa6b00.entry.js → p-6e24cf82.entry.js} +1 -1
  446. package/dist/ionic/p-72e6a9c6.entry.js +4 -0
  447. package/dist/ionic/{p-5b932840.entry.js → p-747f9517.entry.js} +1 -1
  448. package/dist/ionic/{p-9ea607bd.system.js → p-77991411.system.js} +2 -2
  449. package/dist/ionic/{p-9f3008d4.system.js → p-7cc33a9a.system.js} +1 -1
  450. package/dist/ionic/{p-f3102647.system.entry.js → p-7e3b5638.system.entry.js} +1 -1
  451. package/dist/ionic/p-7f39653f.entry.js +4 -0
  452. package/dist/ionic/{p-98ff6b32.entry.js → p-7ff4f502.entry.js} +1 -1
  453. package/dist/ionic/p-81474833.system.entry.js +4 -0
  454. package/dist/ionic/{p-4439fc2a.entry.js → p-838cc359.entry.js} +1 -1
  455. package/dist/ionic/{p-52d7a191.entry.js → p-85f6070f.entry.js} +1 -1
  456. package/dist/ionic/{p-e4ee80be.system.entry.js → p-888d383b.system.entry.js} +1 -1
  457. package/dist/ionic/{p-da074ff7.entry.js → p-8b1c1fd7.entry.js} +1 -1
  458. package/dist/ionic/{p-32d44024.system.entry.js → p-8deac7df.system.entry.js} +1 -1
  459. package/dist/ionic/p-8fc426e2.entry.js +4 -0
  460. package/dist/ionic/p-959cf042.system.entry.js +4 -0
  461. package/dist/ionic/{p-17a9ca63.system.entry.js → p-96450929.system.entry.js} +2 -2
  462. package/dist/ionic/{p-19ea7bff.system.js → p-9a2ff5ea.system.js} +1 -1
  463. package/dist/ionic/p-9a5420dd.js +4 -0
  464. package/dist/ionic/{p-ecceeb90.js → p-9af7f110.js} +1 -1
  465. package/dist/ionic/{p-6d32975a.entry.js → p-9b069739.entry.js} +1 -1
  466. package/dist/ionic/{p-ca065903.system.entry.js → p-9df36075.system.entry.js} +1 -1
  467. package/dist/ionic/p-9e51f822.js +4 -0
  468. package/dist/ionic/{p-372ae7f4.system.js → p-a4866e3e.system.js} +1 -1
  469. package/dist/ionic/{p-95775830.entry.js → p-a520973b.entry.js} +1 -1
  470. package/dist/ionic/{p-17474161.system.js → p-a587b2ae.system.js} +1 -1
  471. package/dist/ionic/{p-cac0e0b3.system.entry.js → p-a63b345e.system.entry.js} +1 -1
  472. package/dist/ionic/{p-3c8e5c23.system.js → p-a6625de8.system.js} +1 -1
  473. package/dist/ionic/{p-6416c34c.system.entry.js → p-a6df5168.system.entry.js} +1 -1
  474. package/dist/ionic/p-a9f2c0a7.entry.js +4 -0
  475. package/dist/ionic/{p-73dc4950.entry.js → p-ab7337e1.entry.js} +1 -1
  476. package/dist/ionic/{p-ed75fcfb.system.entry.js → p-ac58d726.system.entry.js} +1 -1
  477. package/dist/ionic/p-ace2d2be.entry.js +4 -0
  478. package/dist/ionic/{p-efaffe74.entry.js → p-ada878ce.entry.js} +1 -1
  479. package/dist/ionic/p-b055d618.entry.js +4 -0
  480. package/dist/ionic/{p-2799c6d3.system.entry.js → p-b2296998.system.entry.js} +1 -1
  481. package/dist/ionic/{p-fca6ef5f.system.entry.js → p-b2ee0628.system.entry.js} +1 -1
  482. package/dist/ionic/{p-9fa07aec.entry.js → p-b6174297.entry.js} +1 -1
  483. package/dist/ionic/{p-c41ac815.entry.js → p-b85d199c.entry.js} +1 -1
  484. package/dist/ionic/p-b9ea58ef.js +4 -0
  485. package/dist/ionic/{p-14e159ea.system.entry.js → p-b9eb1465.system.entry.js} +1 -1
  486. package/dist/ionic/p-b9f2e353.entry.js +4 -0
  487. package/dist/ionic/p-bbc6db8c.entry.js +4 -0
  488. package/dist/ionic/p-bdd6102f.system.entry.js +4 -0
  489. package/dist/ionic/p-bf64af90.system.js +4 -0
  490. package/dist/ionic/p-bf77d6fa.entry.js +4 -0
  491. package/dist/ionic/{p-33a8a71b.entry.js → p-c005cc37.entry.js} +1 -1
  492. package/dist/ionic/{p-45693d7e.entry.js → p-c25c0ba4.entry.js} +1 -1
  493. package/dist/ionic/p-c5b5f44a.entry.js +4 -0
  494. package/dist/ionic/{p-2172893e.system.entry.js → p-c6a20407.system.entry.js} +1 -1
  495. package/dist/ionic/{p-1046866e.system.entry.js → p-c8331397.system.entry.js} +1 -1
  496. package/dist/ionic/{p-34b11c24.js → p-c8402249.js} +1 -1
  497. package/dist/ionic/{p-61e3f887.entry.js → p-c8bf9ba7.entry.js} +1 -1
  498. package/dist/ionic/{p-72812e99.js → p-ceaea4ce.js} +1 -1
  499. package/dist/ionic/{p-1e67b266.system.entry.js → p-d37fdc68.system.entry.js} +1 -1
  500. package/dist/ionic/{p-0aa833fb.system.js → p-d7032956.system.js} +1 -1
  501. package/dist/ionic/p-d8c9d5ac.system.entry.js +4 -0
  502. package/dist/ionic/{p-2b838f86.system.entry.js → p-daf1e8ec.system.entry.js} +1 -1
  503. package/dist/ionic/{p-2bd0ae94.system.entry.js → p-def7a8bd.system.entry.js} +1 -1
  504. package/dist/ionic/p-e00b72ce.js +4 -0
  505. package/dist/ionic/{p-96cc4814.js → p-e0a05506.js} +1 -1
  506. package/dist/ionic/p-e0c0218f.system.entry.js +4 -0
  507. package/dist/ionic/{p-6499df44.system.entry.js → p-e0c43e11.system.entry.js} +1 -1
  508. package/dist/ionic/{p-2abae1cc.system.entry.js → p-e4683bfd.system.entry.js} +1 -1
  509. package/dist/ionic/{p-567de071.system.entry.js → p-e5708e5d.system.entry.js} +1 -1
  510. package/dist/ionic/{p-12a722b8.system.entry.js → p-e5c27d9f.system.entry.js} +1 -1
  511. package/dist/ionic/{p-06e58c4e.js → p-e7309bfa.js} +1 -1
  512. package/dist/ionic/p-ed768b77.entry.js +4 -0
  513. package/dist/ionic/p-eec4b772.entry.js +4 -0
  514. package/dist/ionic/p-eeee3990.system.entry.js +4 -0
  515. package/dist/ionic/p-efa0f3f5.entry.js +4 -0
  516. package/dist/ionic/p-f02e9382.system.entry.js +4 -0
  517. package/dist/ionic/p-f11a9436.system.js +5 -0
  518. package/dist/ionic/p-f201b53a.system.js +4 -0
  519. package/dist/ionic/{p-3cc276f4.js → p-f554845e.js} +1 -1
  520. package/dist/ionic/{p-424eb140.system.entry.js → p-f6bb9be7.system.entry.js} +1 -1
  521. package/dist/ionic/{p-d60342e3.js → p-f7ce606e.js} +1 -1
  522. package/dist/ionic/{p-1fe02220.system.entry.js → p-f94b2f2f.system.entry.js} +1 -1
  523. package/dist/ionic/{p-797eeea8.system.entry.js → p-ff4a1ba0.system.entry.js} +1 -1
  524. package/dist/types/components/checkbox/checkbox.d.ts +25 -0
  525. package/dist/types/components/input/input.d.ts +8 -0
  526. package/dist/types/components/modal/animations/sheet.d.ts +1 -0
  527. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  528. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  529. package/dist/types/components/modal/modal.d.ts +14 -0
  530. package/dist/types/components/radio-group/radio-group.d.ts +15 -0
  531. package/dist/types/components/range/range.d.ts +3 -2
  532. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  533. package/dist/types/components/select/select.d.ts +29 -0
  534. package/dist/types/components/textarea/textarea.d.ts +8 -0
  535. package/dist/types/components/toggle/toggle.d.ts +25 -0
  536. package/dist/types/components/toolbar/toolbar.d.ts +4 -0
  537. package/dist/types/components.d.ts +96 -0
  538. package/dist/types/utils/config.d.ts +9 -3
  539. package/dist/types/utils/helpers.d.ts +5 -0
  540. package/dist/types/utils/logging/index.d.ts +13 -1
  541. package/dist/types/utils/native/capacitor.d.ts +7 -1
  542. package/dist/types/utils/test/platform.utils.d.ts +1 -1
  543. package/hydrate/index.js +720 -203
  544. package/hydrate/index.mjs +720 -203
  545. package/package.json +7 -7
  546. package/dist/esm-es5/app-globals-5dbb61a5.js +0 -4
  547. package/dist/esm-es5/helpers-da915de8.js +0 -4
  548. package/dist/esm-es5/index-28849c61.js +0 -5
  549. package/dist/esm-es5/index-9b0d46f4.js +0 -4
  550. package/dist/esm-es5/input-shims-0314bbe5.js +0 -4
  551. package/dist/esm-es5/ionic-global-c81d82ab.js +0 -4
  552. package/dist/esm-es5/md.transition-5106a0d2.js +0 -4
  553. package/dist/esm-es5/status-tap-f472b09f.js +0 -4
  554. package/dist/ionic/p-0303d0f8.js +0 -4
  555. package/dist/ionic/p-04909654.entry.js +0 -4
  556. package/dist/ionic/p-0574e87e.js +0 -4
  557. package/dist/ionic/p-06fee233.js +0 -4
  558. package/dist/ionic/p-081a4ce4.entry.js +0 -4
  559. package/dist/ionic/p-12c45a7c.entry.js +0 -4
  560. package/dist/ionic/p-14be4015.entry.js +0 -4
  561. package/dist/ionic/p-16188af7.entry.js +0 -4
  562. package/dist/ionic/p-16799667.system.entry.js +0 -4
  563. package/dist/ionic/p-16bfb979.system.entry.js +0 -4
  564. package/dist/ionic/p-19ec4f42.entry.js +0 -4
  565. package/dist/ionic/p-21e5e7e4.js +0 -4
  566. package/dist/ionic/p-25180df3.system.js +0 -5
  567. package/dist/ionic/p-2690b1de.js +0 -4
  568. package/dist/ionic/p-2b9b78c7.entry.js +0 -4
  569. package/dist/ionic/p-2fc0dafe.entry.js +0 -4
  570. package/dist/ionic/p-322c5fb4.system.js +0 -4
  571. package/dist/ionic/p-37cb43bd.system.entry.js +0 -4
  572. package/dist/ionic/p-3ad285e3.system.js +0 -4
  573. package/dist/ionic/p-404aede0.system.entry.js +0 -4
  574. package/dist/ionic/p-49a0e74c.entry.js +0 -4
  575. package/dist/ionic/p-4ec778aa.entry.js +0 -4
  576. package/dist/ionic/p-51796b2d.entry.js +0 -4
  577. package/dist/ionic/p-5ab1b709.entry.js +0 -4
  578. package/dist/ionic/p-69666e8a.system.entry.js +0 -4
  579. package/dist/ionic/p-6b280620.entry.js +0 -4
  580. package/dist/ionic/p-6d6cedc5.entry.js +0 -4
  581. package/dist/ionic/p-7b9a2b23.entry.js +0 -4
  582. package/dist/ionic/p-88e63c7d.js +0 -4
  583. package/dist/ionic/p-908d6080.entry.js +0 -4
  584. package/dist/ionic/p-942b5e13.entry.js +0 -4
  585. package/dist/ionic/p-9df2c6fb.entry.js +0 -4
  586. package/dist/ionic/p-a43467d8.entry.js +0 -4
  587. package/dist/ionic/p-a69b9fc5.system.js +0 -4
  588. package/dist/ionic/p-b2272f51.system.entry.js +0 -4
  589. package/dist/ionic/p-b335ffed.system.entry.js +0 -4
  590. package/dist/ionic/p-b51e4004.js +0 -4
  591. package/dist/ionic/p-b79ba17c.entry.js +0 -4
  592. package/dist/ionic/p-b7af48c0.js +0 -4
  593. package/dist/ionic/p-b82d4cab.js +0 -4
  594. package/dist/ionic/p-b9d7015f.entry.js +0 -4
  595. package/dist/ionic/p-bc36ad98.system.entry.js +0 -4
  596. package/dist/ionic/p-c4b53b16.system.entry.js +0 -4
  597. package/dist/ionic/p-c9f3a539.entry.js +0 -4
  598. package/dist/ionic/p-cdc83025.entry.js +0 -4
  599. package/dist/ionic/p-d836d43e.js +0 -5
  600. package/dist/ionic/p-de930745.entry.js +0 -4
  601. package/dist/ionic/p-dfb78785.system.js +0 -4
  602. package/dist/ionic/p-e563a35c.entry.js +0 -4
  603. package/dist/ionic/p-e6635685.js +0 -4
  604. package/dist/ionic/p-ebf042e0.system.entry.js +0 -4
  605. package/dist/ionic/p-ff4b7e40.system.js +0 -4
@@ -1,23 +1,23 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, w as writeTask, h, f as Host, i as getElement } from './index-28849c61.js';
5
- import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-5cc724f3.js';
6
- import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-63d1a679.js';
7
- import { g as getElementRoot, j as clamp, r as raf, h as inheritAttributes, k as hasLazyBuild } from './helpers-da915de8.js';
4
+ import { r as registerInstance, c as createEvent, w as writeTask, h, e as Host, f as getElement } from './index-527b9e34.js';
5
+ import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-933ca126.js';
6
+ import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-c7d92b77.js';
7
+ import { g as getElementRoot, j as clamp, r as raf, h as inheritAttributes, k as hasLazyBuild } from './helpers-e48b0397.js';
8
8
  import { c as createLockController } from './lock-controller-316928be.js';
9
- import { p as printIonWarning } from './index-9b0d46f4.js';
9
+ import { p as printIonWarning } from './index-738d7504.js';
10
10
  import { g as getCapacitor } from './capacitor-59395cbd.js';
11
- import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-e7b9d6d9.js';
11
+ import { G as GESTURE, O as OVERLAY_GESTURE_PRIORITY, F as FOCUS_TRAP_DISABLE_CLASS, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-7579a420.js';
12
12
  import { g as getClassMap } from './theme-01f3f29c.js';
13
- import { e as deepReady, w as waitForMount } from './index-3ad7f18b.js';
14
- import { b as getIonMode, c as config } from './ionic-global-c81d82ab.js';
13
+ import { e as deepReady, w as waitForMount } from './index-a313df53.js';
14
+ import { b as getIonMode, c as config } from './ionic-global-ca86cf32.js';
15
15
  import { KEYBOARD_DID_OPEN } from './keyboard-52278bd7.js';
16
16
  import { c as createAnimation } from './animation-eab5a4ca.js';
17
17
  import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
18
18
  import { createGesture } from './index-39782642.js';
19
19
  import { w as win } from './index-a5d50daf.js';
20
- import './hardware-back-button-06ef3c3e.js';
20
+ import './hardware-back-button-864101a3.js';
21
21
  import './gesture-controller-314a54f6.js';
22
22
  import './keyboard-73175e24.js';
23
23
 
@@ -502,7 +502,7 @@ const computeDuration = (remaining, velocity) => {
502
502
  };
503
503
 
504
504
  const createSheetEnterAnimation = (opts) => {
505
- const { currentBreakpoint, backdropBreakpoint } = opts;
505
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
506
506
  /**
507
507
  * If the backdropBreakpoint is undefined, then the backdrop
508
508
  * should always fade in. If the backdropBreakpoint came before the
@@ -522,7 +522,16 @@ const createSheetEnterAnimation = (opts) => {
522
522
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
523
523
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
524
524
  ]);
525
- return { wrapperAnimation, backdropAnimation };
525
+ /**
526
+ * This allows the content to be scrollable at any breakpoint.
527
+ */
528
+ const contentAnimation = !expandToScroll
529
+ ? createAnimation('contentAnimation').keyframes([
530
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
531
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
532
+ ])
533
+ : undefined;
534
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
526
535
  };
527
536
  const createSheetLeaveAnimation = (opts) => {
528
537
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -557,22 +566,68 @@ const createEnterAnimation$1 = () => {
557
566
  })
558
567
  .afterClearStyles(['pointer-events']);
559
568
  const wrapperAnimation = createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
560
- return { backdropAnimation, wrapperAnimation };
569
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
561
570
  };
562
571
  /**
563
572
  * iOS Modal Enter Animation for the Card presentation style
564
573
  */
565
574
  const iosEnterAnimation = (baseEl, opts) => {
566
- const { presentingEl, currentBreakpoint } = opts;
575
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
567
576
  const root = getElementRoot(baseEl);
568
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
577
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
569
578
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
570
579
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
580
+ // The content animation is only added if scrolling is enabled for
581
+ // all the breakpoints.
582
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
571
583
  const baseAnimation = createAnimation('entering-base')
572
584
  .addElement(baseEl)
573
585
  .easing('cubic-bezier(0.32,0.72,0,1)')
574
586
  .duration(500)
575
- .addAnimation(wrapperAnimation);
587
+ .addAnimation([wrapperAnimation])
588
+ .beforeAddWrite(() => {
589
+ if (expandToScroll) {
590
+ // Scroll can only be done when the modal is fully expanded.
591
+ return;
592
+ }
593
+ /**
594
+ * There are some browsers that causes flickering when
595
+ * dragging the content when scroll is enabled at every
596
+ * breakpoint. This is due to the wrapper element being
597
+ * transformed off the screen and having a snap animation.
598
+ *
599
+ * A workaround is to clone the footer element and append
600
+ * it outside of the wrapper element. This way, the footer
601
+ * is still visible and the drag can be done without
602
+ * flickering. The original footer is hidden until the modal
603
+ * is dismissed. This maintains the animation of the footer
604
+ * when the modal is dismissed.
605
+ *
606
+ * The workaround needs to be done before the animation starts
607
+ * so there are no flickering issues.
608
+ */
609
+ const ionFooter = baseEl.querySelector('ion-footer');
610
+ /**
611
+ * This check is needed to prevent more than one footer
612
+ * from being appended to the shadow root.
613
+ * Otherwise, iOS and MD enter animations would append
614
+ * the footer twice.
615
+ */
616
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
617
+ if (ionFooter && !ionFooterAlreadyAppended) {
618
+ const footerHeight = ionFooter.clientHeight;
619
+ const clonedFooter = ionFooter.cloneNode(true);
620
+ baseEl.shadowRoot.appendChild(clonedFooter);
621
+ ionFooter.style.setProperty('display', 'none');
622
+ ionFooter.setAttribute('aria-hidden', 'true');
623
+ // Padding is added to prevent some content from being hidden.
624
+ const page = baseEl.querySelector('.ion-page');
625
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
626
+ }
627
+ });
628
+ if (contentAnimation) {
629
+ baseAnimation.addAnimation(contentAnimation);
630
+ }
576
631
  if (presentingEl) {
577
632
  const isMobile = window.innerWidth < 768;
578
633
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -650,7 +705,7 @@ const createLeaveAnimation$1 = () => {
650
705
  * iOS Modal Leave Animation
651
706
  */
652
707
  const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
653
- const { presentingEl, currentBreakpoint } = opts;
708
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
654
709
  const root = getElementRoot(baseEl);
655
710
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
656
711
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -659,7 +714,29 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
659
714
  .addElement(baseEl)
660
715
  .easing('cubic-bezier(0.32,0.72,0,1)')
661
716
  .duration(duration)
662
- .addAnimation(wrapperAnimation);
717
+ .addAnimation(wrapperAnimation)
718
+ .beforeAddWrite(() => {
719
+ if (expandToScroll) {
720
+ // Scroll can only be done when the modal is fully expanded.
721
+ return;
722
+ }
723
+ /**
724
+ * If expandToScroll is disabled, we need to swap
725
+ * the visibility to the original, so the footer
726
+ * dismisses with the modal and doesn't stay
727
+ * until the modal is removed from the DOM.
728
+ */
729
+ const ionFooter = baseEl.querySelector('ion-footer');
730
+ if (ionFooter) {
731
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
732
+ ionFooter.style.removeProperty('display');
733
+ ionFooter.removeAttribute('aria-hidden');
734
+ clonedFooter.style.setProperty('display', 'none');
735
+ clonedFooter.setAttribute('aria-hidden', 'true');
736
+ const page = baseEl.querySelector('.ion-page');
737
+ page.style.removeProperty('padding-bottom');
738
+ }
739
+ });
663
740
  const appEl = baseEl.closest('ion-app');
664
741
  if (presentingEl && appEl) {
665
742
  const isMobile = window.innerWidth < 768;
@@ -737,22 +814,69 @@ const createEnterAnimation = () => {
737
814
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
738
815
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
739
816
  ]);
740
- return { backdropAnimation, wrapperAnimation };
817
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
741
818
  };
742
819
  /**
743
820
  * Md Modal Enter Animation
744
821
  */
745
822
  const mdEnterAnimation = (baseEl, opts) => {
746
- const { currentBreakpoint } = opts;
823
+ const { currentBreakpoint, expandToScroll } = opts;
747
824
  const root = getElementRoot(baseEl);
748
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
825
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
749
826
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
750
827
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
751
- return createAnimation()
828
+ // The content animation is only added if scrolling is enabled for
829
+ // all the breakpoints.
830
+ expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
831
+ const baseAnimation = createAnimation()
752
832
  .addElement(baseEl)
753
833
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
754
834
  .duration(280)
755
- .addAnimation([backdropAnimation, wrapperAnimation]);
835
+ .addAnimation([backdropAnimation, wrapperAnimation])
836
+ .beforeAddWrite(() => {
837
+ if (expandToScroll) {
838
+ // Scroll can only be done when the modal is fully expanded.
839
+ return;
840
+ }
841
+ /**
842
+ * There are some browsers that causes flickering when
843
+ * dragging the content when scroll is enabled at every
844
+ * breakpoint. This is due to the wrapper element being
845
+ * transformed off the screen and having a snap animation.
846
+ *
847
+ * A workaround is to clone the footer element and append
848
+ * it outside of the wrapper element. This way, the footer
849
+ * is still visible and the drag can be done without
850
+ * flickering. The original footer is hidden until the modal
851
+ * is dismissed. This maintains the animation of the footer
852
+ * when the modal is dismissed.
853
+ *
854
+ * The workaround needs to be done before the animation starts
855
+ * so there are no flickering issues.
856
+ */
857
+ const ionFooter = baseEl.querySelector('ion-footer');
858
+ /**
859
+ * This check is needed to prevent more than one footer
860
+ * from being appended to the shadow root.
861
+ * Otherwise, iOS and MD enter animations would append
862
+ * the footer twice.
863
+ */
864
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
865
+ if (ionFooter && !ionFooterAlreadyAppended) {
866
+ const footerHeight = ionFooter.clientHeight;
867
+ const clonedFooter = ionFooter.cloneNode(true);
868
+ baseEl.shadowRoot.appendChild(clonedFooter);
869
+ ionFooter.style.setProperty('display', 'none');
870
+ ionFooter.setAttribute('aria-hidden', 'true');
871
+ // Padding is added to prevent some content from being hidden.
872
+ const page = baseEl.querySelector('.ion-page');
873
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
874
+ }
875
+ });
876
+ if (contentAnimation) {
877
+ baseAnimation.addAnimation(contentAnimation);
878
+ }
879
+ return baseAnimation;
756
880
  };
757
881
 
758
882
  const createLeaveAnimation = () => {
@@ -767,18 +891,41 @@ const createLeaveAnimation = () => {
767
891
  * Md Modal Leave Animation
768
892
  */
769
893
  const mdLeaveAnimation = (baseEl, opts) => {
770
- const { currentBreakpoint } = opts;
894
+ const { currentBreakpoint, expandToScroll } = opts;
771
895
  const root = getElementRoot(baseEl);
772
896
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
773
897
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
774
898
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
775
- return createAnimation()
899
+ const baseAnimation = createAnimation()
776
900
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
777
901
  .duration(200)
778
- .addAnimation([backdropAnimation, wrapperAnimation]);
902
+ .addAnimation([backdropAnimation, wrapperAnimation])
903
+ .beforeAddWrite(() => {
904
+ if (expandToScroll) {
905
+ // Scroll can only be done when the modal is fully expanded.
906
+ return;
907
+ }
908
+ /**
909
+ * If expandToScroll is disabled, we need to swap
910
+ * the visibility to the original, so the footer
911
+ * dismisses with the modal and doesn't stay
912
+ * until the modal is removed from the DOM.
913
+ */
914
+ const ionFooter = baseEl.querySelector('ion-footer');
915
+ if (ionFooter) {
916
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
917
+ ionFooter.style.removeProperty('display');
918
+ ionFooter.removeAttribute('aria-hidden');
919
+ clonedFooter.style.setProperty('display', 'none');
920
+ clonedFooter.setAttribute('aria-hidden', 'true');
921
+ const page = baseEl.querySelector('.ion-page');
922
+ page.style.removeProperty('padding-bottom');
923
+ }
924
+ });
925
+ return baseAnimation;
779
926
  };
780
927
 
781
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
928
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
782
929
  // Defaults for the sheet swipe animation
783
930
  const defaultBackdrop = [
784
931
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -795,6 +942,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
795
942
  { offset: 1, transform: 'translateY(100%)' },
796
943
  ],
797
944
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
945
+ CONTENT_KEYFRAMES: [
946
+ { offset: 0, maxHeight: '100%' },
947
+ { offset: 1, maxHeight: '0%' },
948
+ ],
798
949
  };
799
950
  const contentEl = baseEl.querySelector('ion-content');
800
951
  const height = wrapperEl.clientHeight;
@@ -802,10 +953,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
802
953
  let offset = 0;
803
954
  let canDismissBlocksGesture = false;
804
955
  const canDismissMaxStep = 0.95;
805
- const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
806
- const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
807
956
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
808
957
  const minBreakpoint = breakpoints[0];
958
+ const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
959
+ const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
960
+ const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
809
961
  const enableBackdrop = () => {
810
962
  baseEl.style.setProperty('pointer-events', 'auto');
811
963
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -828,6 +980,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
828
980
  */
829
981
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
830
982
  };
983
+ /**
984
+ * Toggles the visible modal footer when `expandToScroll` is disabled.
985
+ * @param footer The footer to show.
986
+ */
987
+ const swapFooterVisibility = (footer) => {
988
+ const originalFooter = baseEl.querySelector('ion-footer');
989
+ if (!originalFooter) {
990
+ return;
991
+ }
992
+ const clonedFooter = wrapperEl.nextElementSibling;
993
+ const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
994
+ const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
995
+ footerToShow.style.removeProperty('display');
996
+ footerToShow.removeAttribute('aria-hidden');
997
+ const page = baseEl.querySelector('.ion-page');
998
+ if (footer === 'original') {
999
+ page.style.removeProperty('padding-bottom');
1000
+ }
1001
+ else {
1002
+ const pagePadding = footerToShow.clientHeight;
1003
+ page.style.setProperty('padding-bottom', `${pagePadding}px`);
1004
+ }
1005
+ footerToHide.style.setProperty('display', 'none');
1006
+ footerToHide.setAttribute('aria-hidden', 'true');
1007
+ };
831
1008
  /**
832
1009
  * After the entering animation completes,
833
1010
  * we need to set the animation to go from
@@ -839,6 +1016,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
839
1016
  if (wrapperAnimation && backdropAnimation) {
840
1017
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
841
1018
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
1019
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
842
1020
  animation.progressStart(true, 1 - currentBreakpoint);
843
1021
  /**
844
1022
  * If backdrop is not enabled, then content
@@ -855,7 +1033,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
855
1033
  disableBackdrop();
856
1034
  }
857
1035
  }
858
- if (contentEl && currentBreakpoint !== maxBreakpoint) {
1036
+ if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
859
1037
  contentEl.scrollY = false;
860
1038
  }
861
1039
  const canStart = (detail) => {
@@ -869,6 +1047,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
869
1047
  */
870
1048
  const contentEl = findClosestIonContent(detail.event.target);
871
1049
  currentBreakpoint = getCurrentBreakpoint();
1050
+ /**
1051
+ * If `expandToScroll` is disabled, we should not allow the swipe gesture
1052
+ * to start if the content is not scrolled to the top.
1053
+ */
1054
+ if (!expandToScroll && contentEl) {
1055
+ const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
1056
+ return scrollEl.scrollTop === 0;
1057
+ }
872
1058
  if (currentBreakpoint === 1 && contentEl) {
873
1059
  /**
874
1060
  * The modal should never swipe to close on the content with a refresher.
@@ -899,6 +1085,15 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
899
1085
  * Remove undefined check
900
1086
  */
901
1087
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
1088
+ /**
1089
+ * If expandToScroll is disabled, we need to swap
1090
+ * the footer visibility to the original, so if the modal
1091
+ * is dismissed, the footer dismisses with the modal
1092
+ * and doesn't stay on the screen after the modal is gone.
1093
+ */
1094
+ if (!expandToScroll) {
1095
+ swapFooterVisibility('original');
1096
+ }
902
1097
  /**
903
1098
  * If we are pulling down, then it is possible we are pulling on the content.
904
1099
  * We do not want scrolling to happen at the same time as the gesture.
@@ -916,6 +1111,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
916
1111
  animation.progressStart(true, 1 - currentBreakpoint);
917
1112
  };
918
1113
  const onMove = (detail) => {
1114
+ /**
1115
+ * If `expandToScroll` is disabled, we should not allow the swipe gesture
1116
+ * to continue if the gesture is not pulling down.
1117
+ */
1118
+ if (!expandToScroll && detail.deltaY <= 0) {
1119
+ return;
1120
+ }
919
1121
  /**
920
1122
  * If we are pulling down, then it is possible we are pulling on the content.
921
1123
  * We do not want scrolling to happen at the same time as the gesture.
@@ -1014,6 +1216,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1014
1216
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1015
1217
  },
1016
1218
  ]);
1219
+ if (contentAnimation) {
1220
+ /**
1221
+ * The modal content should scroll at any breakpoint when expandToScroll
1222
+ * is disabled. In order to do this, the content needs to be completely
1223
+ * viewable so scrolling can access everything. Otherwise, the default
1224
+ * behavior would show the content off the screen and only allow
1225
+ * scrolling when the sheet is fully expanded.
1226
+ */
1227
+ contentAnimation.keyframes([
1228
+ { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
1229
+ { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
1230
+ ]);
1231
+ }
1017
1232
  animation.progressStep(0);
1018
1233
  }
1019
1234
  /**
@@ -1021,6 +1236,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1021
1236
  * snapping animation completes.
1022
1237
  */
1023
1238
  gesture.enable(false);
1239
+ /**
1240
+ * If expandToScroll is disabled, we need to swap
1241
+ * the footer visibility to the cloned one so the footer
1242
+ * doesn't flicker when the sheet's height is animated.
1243
+ */
1244
+ if (!expandToScroll && shouldRemainOpen) {
1245
+ swapFooterVisibility('cloned');
1246
+ }
1024
1247
  if (shouldPreventDismiss) {
1025
1248
  handleCanDismiss(baseEl, animation);
1026
1249
  }
@@ -1028,13 +1251,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1028
1251
  onDismiss();
1029
1252
  }
1030
1253
  /**
1031
- * If the sheet is going to be fully expanded then we should enable
1032
- * scrolling immediately. The sheet modal animation takes ~500ms to finish
1033
- * so if we wait until then there is a visible delay for when scrolling is
1034
- * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
1035
- * as the gesture is released, so we align with that.
1254
+ * Enables scrolling immediately if the sheet is about to fully expand
1255
+ * or if it allows scrolling at any breakpoint. Without this, there would
1256
+ * be a ~500ms delay while the modal animation completes, causing a
1257
+ * noticeable lag. Native iOS allows scrolling as soon as the gesture is
1258
+ * released, so we align with that behavior.
1036
1259
  */
1037
- if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
1260
+ if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
1038
1261
  contentEl.scrollY = true;
1039
1262
  }
1040
1263
  return new Promise((resolve) => {
@@ -1052,6 +1275,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1052
1275
  raf(() => {
1053
1276
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
1054
1277
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
1278
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
1055
1279
  animation.progressStart(true, 1 - snapToBreakpoint);
1056
1280
  currentBreakpoint = snapToBreakpoint;
1057
1281
  onBreakpointChange(currentBreakpoint);
@@ -1104,10 +1328,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1104
1328
  };
1105
1329
  };
1106
1330
 
1107
- 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}";
1331
+ 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}";
1108
1332
  const IonModalIosStyle0 = modalIosCss;
1109
1333
 
1110
- 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}";
1334
+ 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}";
1111
1335
  const IonModalMdStyle0 = modalMdCss;
1112
1336
 
1113
1337
  const Modal = class {
@@ -1176,6 +1400,7 @@ const Modal = class {
1176
1400
  this.enterAnimation = undefined;
1177
1401
  this.leaveAnimation = undefined;
1178
1402
  this.breakpoints = undefined;
1403
+ this.expandToScroll = true;
1179
1404
  this.initialBreakpoint = undefined;
1180
1405
  this.backdropBreakpoint = 0;
1181
1406
  this.handle = undefined;
@@ -1391,6 +1616,7 @@ const Modal = class {
1391
1616
  presentingEl: presentingElement,
1392
1617
  currentBreakpoint: this.initialBreakpoint,
1393
1618
  backdropBreakpoint: this.backdropBreakpoint,
1619
+ expandToScroll: this.expandToScroll,
1394
1620
  });
1395
1621
  /* tslint:disable-next-line */
1396
1622
  if (typeof window !== 'undefined') {
@@ -1441,7 +1667,10 @@ const Modal = class {
1441
1667
  // should be in the DOM and referenced by now, except
1442
1668
  // for the presenting el
1443
1669
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);
1444
- const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
1670
+ const ani = (this.animation = animationBuilder(el, {
1671
+ presentingEl: this.presentingElement,
1672
+ expandToScroll: this.expandToScroll,
1673
+ }));
1445
1674
  const contentEl = findIonContent(el);
1446
1675
  if (!contentEl) {
1447
1676
  printIonContentErrorMsg(el);
@@ -1486,9 +1715,10 @@ const Modal = class {
1486
1715
  presentingEl: this.presentingElement,
1487
1716
  currentBreakpoint: initialBreakpoint,
1488
1717
  backdropBreakpoint,
1718
+ expandToScroll: this.expandToScroll,
1489
1719
  }));
1490
1720
  ani.progressStart(true, 1);
1491
- 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) => {
1721
+ 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) => {
1492
1722
  if (this.currentBreakpoint !== breakpoint) {
1493
1723
  this.currentBreakpoint = breakpoint;
1494
1724
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -1566,6 +1796,7 @@ const Modal = class {
1566
1796
  presentingEl: presentingElement,
1567
1797
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
1568
1798
  backdropBreakpoint: this.backdropBreakpoint,
1799
+ expandToScroll: this.expandToScroll,
1569
1800
  });
1570
1801
  if (dismissed) {
1571
1802
  const { delegate } = this.getDelegate();
@@ -1651,23 +1882,23 @@ const Modal = class {
1651
1882
  return true;
1652
1883
  }
1653
1884
  render() {
1654
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
1885
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
1655
1886
  const showHandle = handle !== false && isSheetModal;
1656
1887
  const mode = getIonMode(this);
1657
1888
  const isCardModal = presentingElement !== undefined && mode === 'ios';
1658
1889
  const isHandleCycle = handleBehavior === 'cycle';
1659
- return (h(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1890
+ return (h(Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1660
1891
  zIndex: `${20000 + this.overlayIndex}`,
1661
- }, 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 }), h("ion-backdrop", { key: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), h("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
1892
+ }, 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 }), h("ion-backdrop", { key: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), h("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
1662
1893
  /*
1663
1894
  role and aria-modal must be used on the
1664
1895
  same element. They must also be set inside the
1665
1896
  shadow DOM otherwise ion-button will not be highlighted
1666
1897
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
1667
1898
  */
1668
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
1899
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
1669
1900
  // Prevents the handle from receiving keyboard focus when it does not cycle
1670
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
1901
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
1671
1902
  }
1672
1903
  get el() { return getElement(this); }
1673
1904
  static get watchers() { return {
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, i as getElement, f as Host } from './index-28849c61.js';
4
+ import { r as registerInstance, c as createEvent, h, f as getElement, e as Host } from './index-527b9e34.js';
5
5
  import { g as getTimeGivenProgression } from './cubic-bezier-fe2083dc.js';
6
- import { m as assert, s as shallowEqualStringMap } from './helpers-da915de8.js';
7
- import { l as lifecycle, t as transition, s as setPageHidden, d as LIFECYCLE_WILL_UNLOAD, b as LIFECYCLE_WILL_LEAVE, c as LIFECYCLE_DID_LEAVE } from './index-3ad7f18b.js';
8
- import { b as getIonMode, c as config } from './ionic-global-c81d82ab.js';
9
- import { a as attachComponent } from './framework-delegate-63d1a679.js';
10
- import './index-9b0d46f4.js';
6
+ import { n as assert, s as shallowEqualStringMap } from './helpers-e48b0397.js';
7
+ import { b as getIonMode, c as config } from './ionic-global-ca86cf32.js';
8
+ import { l as lifecycle, t as transition, s as setPageHidden, d as LIFECYCLE_WILL_UNLOAD, b as LIFECYCLE_WILL_LEAVE, c as LIFECYCLE_DID_LEAVE } from './index-a313df53.js';
9
+ import { a as attachComponent } from './framework-delegate-c7d92b77.js';
10
+ import './index-738d7504.js';
11
11
 
12
12
  const VIEW_STATE_NEW = 1;
13
13
  const VIEW_STATE_ATTACHED = 2;
@@ -133,7 +133,7 @@ const Nav = class {
133
133
  // We want to set this flag before any watch callbacks are manually called
134
134
  this.didLoad = true;
135
135
  this.rootChanged();
136
- this.gesture = (await import('./swipe-back-b613d7db.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
136
+ this.gesture = (await import('./swipe-back-326faa1c.js')).createSwipeBackGesture(this.el, this.canStart.bind(this), this.onStart.bind(this), this.onMove.bind(this), this.onEnd.bind(this));
137
137
  this.swipeGestureChanged();
138
138
  }
139
139
  connectedCallback() {
@@ -899,7 +899,7 @@ const Nav = class {
899
899
  }
900
900
  }
901
901
  render() {
902
- return h("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
902
+ return h("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
903
903
  }
904
904
  get el() { return getElement(this); }
905
905
  static get watchers() { return {
@@ -941,7 +941,7 @@ const NavLink = class {
941
941
  this.routerAnimation = undefined;
942
942
  }
943
943
  render() {
944
- return h(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
944
+ return h(Host, { key: '9ba170d1b10e08e8a6b5e6a30d363871d455a0a9', onClick: this.onClick });
945
945
  }
946
946
  get el() { return getElement(this); }
947
947
  };