voyager-ionic-core 8.4.3 → 8.5.1

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 +286 -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 +294 -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 +108 -12
  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 +294 -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-4888cb66.system.entry.js +4 -0
  425. package/dist/ionic/{p-2e46590d.system.entry.js → p-491de063.system.entry.js} +1 -1
  426. package/dist/ionic/{p-985a7e17.system.entry.js → p-49cb79a1.system.entry.js} +1 -1
  427. package/dist/ionic/{p-d6841eac.js → p-4c44d04c.js} +1 -1
  428. package/dist/ionic/p-4c94580e.js +4 -0
  429. package/dist/ionic/{p-1e010627.system.entry.js → p-4d0190ad.system.entry.js} +2 -2
  430. package/dist/ionic/{p-bb0db172.entry.js → p-50f38461.entry.js} +1 -1
  431. package/dist/ionic/{p-0c06e09b.system.js → p-51c363e7.system.js} +1 -1
  432. package/dist/ionic/{p-f1acf541.system.entry.js → p-524ad57e.system.entry.js} +1 -1
  433. package/dist/ionic/{p-a61cba41.entry.js → p-54893ae3.entry.js} +1 -1
  434. package/dist/ionic/p-54e9620f.js +4 -0
  435. package/dist/ionic/p-58c482af.entry.js +4 -0
  436. package/dist/ionic/p-597ff9af.js +4 -0
  437. package/dist/ionic/{p-5da94421.system.js → p-5eb6f582.system.js} +1 -1
  438. package/dist/ionic/{p-15e76dd1.entry.js → p-5f4ff20a.entry.js} +1 -1
  439. package/dist/ionic/{p-fbf284c7.entry.js → p-5f8cd560.entry.js} +1 -1
  440. package/dist/ionic/p-606887b7.system.entry.js +4 -0
  441. package/dist/ionic/{p-bdad26e3.entry.js → p-61e794fb.entry.js} +1 -1
  442. package/dist/ionic/p-66a5d6a8.js +5 -0
  443. package/dist/ionic/p-67163d4a.entry.js +4 -0
  444. package/dist/ionic/p-6797c66e.system.js +4 -0
  445. package/dist/ionic/p-6bb846d3.entry.js +4 -0
  446. package/dist/ionic/{p-d7aa6b00.entry.js → p-6e24cf82.entry.js} +1 -1
  447. package/dist/ionic/p-72e6a9c6.entry.js +4 -0
  448. package/dist/ionic/{p-5b932840.entry.js → p-747f9517.entry.js} +1 -1
  449. package/dist/ionic/{p-9ea607bd.system.js → p-77991411.system.js} +2 -2
  450. package/dist/ionic/{p-9f3008d4.system.js → p-7cc33a9a.system.js} +1 -1
  451. package/dist/ionic/{p-f3102647.system.entry.js → p-7e3b5638.system.entry.js} +1 -1
  452. package/dist/ionic/p-7f39653f.entry.js +4 -0
  453. package/dist/ionic/{p-98ff6b32.entry.js → p-7ff4f502.entry.js} +1 -1
  454. package/dist/ionic/p-81474833.system.entry.js +4 -0
  455. package/dist/ionic/{p-4439fc2a.entry.js → p-838cc359.entry.js} +1 -1
  456. package/dist/ionic/{p-52d7a191.entry.js → p-85f6070f.entry.js} +1 -1
  457. package/dist/ionic/{p-e4ee80be.system.entry.js → p-888d383b.system.entry.js} +1 -1
  458. package/dist/ionic/{p-da074ff7.entry.js → p-8b1c1fd7.entry.js} +1 -1
  459. package/dist/ionic/{p-32d44024.system.entry.js → p-8deac7df.system.entry.js} +1 -1
  460. package/dist/ionic/p-8fc426e2.entry.js +4 -0
  461. package/dist/ionic/p-959cf042.system.entry.js +4 -0
  462. package/dist/ionic/{p-17a9ca63.system.entry.js → p-96450929.system.entry.js} +2 -2
  463. package/dist/ionic/{p-19ea7bff.system.js → p-9a2ff5ea.system.js} +1 -1
  464. package/dist/ionic/p-9a5420dd.js +4 -0
  465. package/dist/ionic/{p-ecceeb90.js → p-9af7f110.js} +1 -1
  466. package/dist/ionic/{p-6d32975a.entry.js → p-9b069739.entry.js} +1 -1
  467. package/dist/ionic/{p-ca065903.system.entry.js → p-9df36075.system.entry.js} +1 -1
  468. package/dist/ionic/p-9e51f822.js +4 -0
  469. package/dist/ionic/{p-372ae7f4.system.js → p-a4866e3e.system.js} +1 -1
  470. package/dist/ionic/{p-95775830.entry.js → p-a520973b.entry.js} +1 -1
  471. package/dist/ionic/{p-17474161.system.js → p-a587b2ae.system.js} +1 -1
  472. package/dist/ionic/{p-cac0e0b3.system.entry.js → p-a63b345e.system.entry.js} +1 -1
  473. package/dist/ionic/{p-3c8e5c23.system.js → p-a6625de8.system.js} +1 -1
  474. package/dist/ionic/{p-6416c34c.system.entry.js → p-a6df5168.system.entry.js} +1 -1
  475. package/dist/ionic/p-a9f2c0a7.entry.js +4 -0
  476. package/dist/ionic/{p-73dc4950.entry.js → p-ab7337e1.entry.js} +1 -1
  477. package/dist/ionic/{p-ed75fcfb.system.entry.js → p-ac58d726.system.entry.js} +1 -1
  478. package/dist/ionic/p-ace2d2be.entry.js +4 -0
  479. package/dist/ionic/{p-efaffe74.entry.js → p-ada878ce.entry.js} +1 -1
  480. package/dist/ionic/p-b055d618.entry.js +4 -0
  481. package/dist/ionic/p-b0e53bc7.entry.js +4 -0
  482. package/dist/ionic/{p-2799c6d3.system.entry.js → p-b2296998.system.entry.js} +1 -1
  483. package/dist/ionic/{p-fca6ef5f.system.entry.js → p-b2ee0628.system.entry.js} +1 -1
  484. package/dist/ionic/{p-9fa07aec.entry.js → p-b6174297.entry.js} +1 -1
  485. package/dist/ionic/{p-c41ac815.entry.js → p-b85d199c.entry.js} +1 -1
  486. package/dist/ionic/p-b9ea58ef.js +4 -0
  487. package/dist/ionic/{p-14e159ea.system.entry.js → p-b9eb1465.system.entry.js} +1 -1
  488. package/dist/ionic/p-b9f2e353.entry.js +4 -0
  489. package/dist/ionic/p-bbc6db8c.entry.js +4 -0
  490. package/dist/ionic/p-bf64af90.system.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 +739 -203
  544. package/hydrate/index.mjs +739 -203
  545. package/package.json +11 -11
  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
@@ -5,23 +5,23 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index$3 = require('./index-73f75efb.js');
9
- const index$2 = require('./index-5b6a7459.js');
10
- const frameworkDelegate = require('./framework-delegate-55f5683a.js');
11
- const helpers = require('./helpers-afaa9001.js');
8
+ const index$3 = require('./index-2e236a04.js');
9
+ const index$2 = require('./index-9b945a2d.js');
10
+ const frameworkDelegate = require('./framework-delegate-11b0ba2f.js');
11
+ const helpers = require('./helpers-d0dfbb50.js');
12
12
  const lockController = require('./lock-controller-6585a42a.js');
13
- const index$4 = require('./index-5915f9b3.js');
13
+ const index$4 = require('./index-48b2a28e.js');
14
14
  const capacitor = require('./capacitor-c04564bf.js');
15
- const overlays = require('./overlays-aa669eb8.js');
15
+ const overlays = require('./overlays-737576a2.js');
16
16
  const theme = require('./theme-d1c573d2.js');
17
- const index$5 = require('./index-f05acd21.js');
18
- const ionicGlobal = require('./ionic-global-d9a8bb5b.js');
17
+ const index$5 = require('./index-f68a486a.js');
18
+ const ionicGlobal = require('./ionic-global-acb665ad.js');
19
19
  const keyboard = require('./keyboard-af1bb365.js');
20
20
  const animation = require('./animation-b4fdf128.js');
21
21
  const cubicBezier = require('./cubic-bezier-f2dccc53.js');
22
22
  const index$1 = require('./index-ee07ed59.js');
23
23
  const index = require('./index-c8d52405.js');
24
- require('./hardware-back-button-9e8a2c4f.js');
24
+ require('./hardware-back-button-5a99001f.js');
25
25
  require('./gesture-controller-9436f482.js');
26
26
  require('./keyboard-0272231f.js');
27
27
 
@@ -506,7 +506,7 @@ const computeDuration = (remaining, velocity) => {
506
506
  };
507
507
 
508
508
  const createSheetEnterAnimation = (opts) => {
509
- const { currentBreakpoint, backdropBreakpoint } = opts;
509
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
510
510
  /**
511
511
  * If the backdropBreakpoint is undefined, then the backdrop
512
512
  * should always fade in. If the backdropBreakpoint came before the
@@ -526,7 +526,16 @@ const createSheetEnterAnimation = (opts) => {
526
526
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
527
527
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
528
528
  ]);
529
- return { wrapperAnimation, backdropAnimation };
529
+ /**
530
+ * This allows the content to be scrollable at any breakpoint.
531
+ */
532
+ const contentAnimation = !expandToScroll
533
+ ? animation.createAnimation('contentAnimation').keyframes([
534
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
535
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
536
+ ])
537
+ : undefined;
538
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
530
539
  };
531
540
  const createSheetLeaveAnimation = (opts) => {
532
541
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -561,22 +570,68 @@ const createEnterAnimation$1 = () => {
561
570
  })
562
571
  .afterClearStyles(['pointer-events']);
563
572
  const wrapperAnimation = animation.createAnimation().fromTo('transform', 'translateY(100vh)', 'translateY(0vh)');
564
- return { backdropAnimation, wrapperAnimation };
573
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
565
574
  };
566
575
  /**
567
576
  * iOS Modal Enter Animation for the Card presentation style
568
577
  */
569
578
  const iosEnterAnimation = (baseEl, opts) => {
570
- const { presentingEl, currentBreakpoint } = opts;
579
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
571
580
  const root = helpers.getElementRoot(baseEl);
572
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
581
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation$1();
573
582
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
574
583
  wrapperAnimation.addElement(root.querySelectorAll('.modal-wrapper, .modal-shadow')).beforeStyles({ opacity: 1 });
584
+ // The content animation is only added if scrolling is enabled for
585
+ // all the breakpoints.
586
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
575
587
  const baseAnimation = animation.createAnimation('entering-base')
576
588
  .addElement(baseEl)
577
589
  .easing('cubic-bezier(0.32,0.72,0,1)')
578
590
  .duration(500)
579
- .addAnimation(wrapperAnimation);
591
+ .addAnimation([wrapperAnimation])
592
+ .beforeAddWrite(() => {
593
+ if (expandToScroll) {
594
+ // Scroll can only be done when the modal is fully expanded.
595
+ return;
596
+ }
597
+ /**
598
+ * There are some browsers that causes flickering when
599
+ * dragging the content when scroll is enabled at every
600
+ * breakpoint. This is due to the wrapper element being
601
+ * transformed off the screen and having a snap animation.
602
+ *
603
+ * A workaround is to clone the footer element and append
604
+ * it outside of the wrapper element. This way, the footer
605
+ * is still visible and the drag can be done without
606
+ * flickering. The original footer is hidden until the modal
607
+ * is dismissed. This maintains the animation of the footer
608
+ * when the modal is dismissed.
609
+ *
610
+ * The workaround needs to be done before the animation starts
611
+ * so there are no flickering issues.
612
+ */
613
+ const ionFooter = baseEl.querySelector('ion-footer');
614
+ /**
615
+ * This check is needed to prevent more than one footer
616
+ * from being appended to the shadow root.
617
+ * Otherwise, iOS and MD enter animations would append
618
+ * the footer twice.
619
+ */
620
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
621
+ if (ionFooter && !ionFooterAlreadyAppended) {
622
+ const footerHeight = ionFooter.clientHeight;
623
+ const clonedFooter = ionFooter.cloneNode(true);
624
+ baseEl.shadowRoot.appendChild(clonedFooter);
625
+ ionFooter.style.setProperty('display', 'none');
626
+ ionFooter.setAttribute('aria-hidden', 'true');
627
+ // Padding is added to prevent some content from being hidden.
628
+ const page = baseEl.querySelector('.ion-page');
629
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
630
+ }
631
+ });
632
+ if (contentAnimation) {
633
+ baseAnimation.addAnimation(contentAnimation);
634
+ }
580
635
  if (presentingEl) {
581
636
  const isMobile = window.innerWidth < 768;
582
637
  const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
@@ -654,7 +709,7 @@ const createLeaveAnimation$1 = () => {
654
709
  * iOS Modal Leave Animation
655
710
  */
656
711
  const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
657
- const { presentingEl, currentBreakpoint } = opts;
712
+ const { presentingEl, currentBreakpoint, expandToScroll } = opts;
658
713
  const root = helpers.getElementRoot(baseEl);
659
714
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
660
715
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -663,7 +718,29 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
663
718
  .addElement(baseEl)
664
719
  .easing('cubic-bezier(0.32,0.72,0,1)')
665
720
  .duration(duration)
666
- .addAnimation(wrapperAnimation);
721
+ .addAnimation(wrapperAnimation)
722
+ .beforeAddWrite(() => {
723
+ if (expandToScroll) {
724
+ // Scroll can only be done when the modal is fully expanded.
725
+ return;
726
+ }
727
+ /**
728
+ * If expandToScroll is disabled, we need to swap
729
+ * the visibility to the original, so the footer
730
+ * dismisses with the modal and doesn't stay
731
+ * until the modal is removed from the DOM.
732
+ */
733
+ const ionFooter = baseEl.querySelector('ion-footer');
734
+ if (ionFooter) {
735
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
736
+ ionFooter.style.removeProperty('display');
737
+ ionFooter.removeAttribute('aria-hidden');
738
+ clonedFooter.style.setProperty('display', 'none');
739
+ clonedFooter.setAttribute('aria-hidden', 'true');
740
+ const page = baseEl.querySelector('.ion-page');
741
+ page.style.removeProperty('padding-bottom');
742
+ }
743
+ });
667
744
  const appEl = baseEl.closest('ion-app');
668
745
  if (presentingEl && appEl) {
669
746
  const isMobile = window.innerWidth < 768;
@@ -741,22 +818,69 @@ const createEnterAnimation = () => {
741
818
  { offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
742
819
  { offset: 1, opacity: 1, transform: `translateY(0px)` },
743
820
  ]);
744
- return { backdropAnimation, wrapperAnimation };
821
+ return { backdropAnimation, wrapperAnimation, contentAnimation: undefined };
745
822
  };
746
823
  /**
747
824
  * Md Modal Enter Animation
748
825
  */
749
826
  const mdEnterAnimation = (baseEl, opts) => {
750
- const { currentBreakpoint } = opts;
827
+ const { currentBreakpoint, expandToScroll } = opts;
751
828
  const root = helpers.getElementRoot(baseEl);
752
- const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
829
+ const { wrapperAnimation, backdropAnimation, contentAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
753
830
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
754
831
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
755
- return animation.createAnimation()
832
+ // The content animation is only added if scrolling is enabled for
833
+ // all the breakpoints.
834
+ expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
835
+ const baseAnimation = animation.createAnimation()
756
836
  .addElement(baseEl)
757
837
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
758
838
  .duration(280)
759
- .addAnimation([backdropAnimation, wrapperAnimation]);
839
+ .addAnimation([backdropAnimation, wrapperAnimation])
840
+ .beforeAddWrite(() => {
841
+ if (expandToScroll) {
842
+ // Scroll can only be done when the modal is fully expanded.
843
+ return;
844
+ }
845
+ /**
846
+ * There are some browsers that causes flickering when
847
+ * dragging the content when scroll is enabled at every
848
+ * breakpoint. This is due to the wrapper element being
849
+ * transformed off the screen and having a snap animation.
850
+ *
851
+ * A workaround is to clone the footer element and append
852
+ * it outside of the wrapper element. This way, the footer
853
+ * is still visible and the drag can be done without
854
+ * flickering. The original footer is hidden until the modal
855
+ * is dismissed. This maintains the animation of the footer
856
+ * when the modal is dismissed.
857
+ *
858
+ * The workaround needs to be done before the animation starts
859
+ * so there are no flickering issues.
860
+ */
861
+ const ionFooter = baseEl.querySelector('ion-footer');
862
+ /**
863
+ * This check is needed to prevent more than one footer
864
+ * from being appended to the shadow root.
865
+ * Otherwise, iOS and MD enter animations would append
866
+ * the footer twice.
867
+ */
868
+ const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
869
+ if (ionFooter && !ionFooterAlreadyAppended) {
870
+ const footerHeight = ionFooter.clientHeight;
871
+ const clonedFooter = ionFooter.cloneNode(true);
872
+ baseEl.shadowRoot.appendChild(clonedFooter);
873
+ ionFooter.style.setProperty('display', 'none');
874
+ ionFooter.setAttribute('aria-hidden', 'true');
875
+ // Padding is added to prevent some content from being hidden.
876
+ const page = baseEl.querySelector('.ion-page');
877
+ page.style.setProperty('padding-bottom', `${footerHeight}px`);
878
+ }
879
+ });
880
+ if (contentAnimation) {
881
+ baseAnimation.addAnimation(contentAnimation);
882
+ }
883
+ return baseAnimation;
760
884
  };
761
885
 
762
886
  const createLeaveAnimation = () => {
@@ -771,18 +895,41 @@ const createLeaveAnimation = () => {
771
895
  * Md Modal Leave Animation
772
896
  */
773
897
  const mdLeaveAnimation = (baseEl, opts) => {
774
- const { currentBreakpoint } = opts;
898
+ const { currentBreakpoint, expandToScroll } = opts;
775
899
  const root = helpers.getElementRoot(baseEl);
776
900
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
777
901
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
778
902
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
779
- return animation.createAnimation()
903
+ const baseAnimation = animation.createAnimation()
780
904
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
781
905
  .duration(200)
782
- .addAnimation([backdropAnimation, wrapperAnimation]);
906
+ .addAnimation([backdropAnimation, wrapperAnimation])
907
+ .beforeAddWrite(() => {
908
+ if (expandToScroll) {
909
+ // Scroll can only be done when the modal is fully expanded.
910
+ return;
911
+ }
912
+ /**
913
+ * If expandToScroll is disabled, we need to swap
914
+ * the visibility to the original, so the footer
915
+ * dismisses with the modal and doesn't stay
916
+ * until the modal is removed from the DOM.
917
+ */
918
+ const ionFooter = baseEl.querySelector('ion-footer');
919
+ if (ionFooter) {
920
+ const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
921
+ ionFooter.style.removeProperty('display');
922
+ ionFooter.removeAttribute('aria-hidden');
923
+ clonedFooter.style.setProperty('display', 'none');
924
+ clonedFooter.setAttribute('aria-hidden', 'true');
925
+ const page = baseEl.querySelector('.ion-page');
926
+ page.style.removeProperty('padding-bottom');
927
+ }
928
+ });
929
+ return baseAnimation;
783
930
  };
784
931
 
785
- const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
932
+ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
786
933
  // Defaults for the sheet swipe animation
787
934
  const defaultBackdrop = [
788
935
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -799,17 +946,23 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
799
946
  { offset: 1, transform: 'translateY(100%)' },
800
947
  ],
801
948
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
949
+ CONTENT_KEYFRAMES: [
950
+ { offset: 0, maxHeight: '100%' },
951
+ { offset: 1, maxHeight: '0%' },
952
+ ],
802
953
  };
803
954
  const contentEl = baseEl.querySelector('ion-content');
804
955
  const height = wrapperEl.clientHeight;
805
956
  let currentBreakpoint = initialBreakpoint;
806
957
  let offset = 0;
807
958
  let canDismissBlocksGesture = false;
959
+ let cachedScrollEl = null;
808
960
  const canDismissMaxStep = 0.95;
809
- const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
810
- const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
811
961
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
812
962
  const minBreakpoint = breakpoints[0];
963
+ const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
964
+ const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
965
+ const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
813
966
  const enableBackdrop = () => {
814
967
  baseEl.style.setProperty('pointer-events', 'auto');
815
968
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -832,6 +985,31 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
832
985
  */
833
986
  baseEl.classList.add(overlays.FOCUS_TRAP_DISABLE_CLASS);
834
987
  };
988
+ /**
989
+ * Toggles the visible modal footer when `expandToScroll` is disabled.
990
+ * @param footer The footer to show.
991
+ */
992
+ const swapFooterVisibility = (footer) => {
993
+ const originalFooter = baseEl.querySelector('ion-footer');
994
+ if (!originalFooter) {
995
+ return;
996
+ }
997
+ const clonedFooter = wrapperEl.nextElementSibling;
998
+ const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
999
+ const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
1000
+ footerToShow.style.removeProperty('display');
1001
+ footerToShow.removeAttribute('aria-hidden');
1002
+ const page = baseEl.querySelector('.ion-page');
1003
+ if (footer === 'original') {
1004
+ page.style.removeProperty('padding-bottom');
1005
+ }
1006
+ else {
1007
+ const pagePadding = footerToShow.clientHeight;
1008
+ page.style.setProperty('padding-bottom', `${pagePadding}px`);
1009
+ }
1010
+ footerToHide.style.setProperty('display', 'none');
1011
+ footerToHide.setAttribute('aria-hidden', 'true');
1012
+ };
835
1013
  /**
836
1014
  * After the entering animation completes,
837
1015
  * we need to set the animation to go from
@@ -843,6 +1021,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
843
1021
  if (wrapperAnimation && backdropAnimation) {
844
1022
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
845
1023
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
1024
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
846
1025
  animation.progressStart(true, 1 - currentBreakpoint);
847
1026
  /**
848
1027
  * If backdrop is not enabled, then content
@@ -859,7 +1038,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
859
1038
  disableBackdrop();
860
1039
  }
861
1040
  }
862
- if (contentEl && currentBreakpoint !== maxBreakpoint) {
1041
+ if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
863
1042
  contentEl.scrollY = false;
864
1043
  }
865
1044
  const canStart = (detail) => {
@@ -873,6 +1052,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
873
1052
  */
874
1053
  const contentEl = index$2.findClosestIonContent(detail.event.target);
875
1054
  currentBreakpoint = getCurrentBreakpoint();
1055
+ /**
1056
+ * If `expandToScroll` is disabled, we should not allow the swipe gesture
1057
+ * to start if the content is not scrolled to the top.
1058
+ */
1059
+ if (!expandToScroll && contentEl) {
1060
+ const scrollEl = index$2.isIonContent(contentEl) ? helpers.getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
1061
+ return scrollEl.scrollTop === 0;
1062
+ }
876
1063
  if (currentBreakpoint === 1 && contentEl) {
877
1064
  /**
878
1065
  * The modal should never swipe to close on the content with a refresher.
@@ -903,6 +1090,25 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
903
1090
  * Remove undefined check
904
1091
  */
905
1092
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
1093
+ /**
1094
+ * Cache the scroll element reference when the gesture starts,
1095
+ * this allows us to avoid querying the DOM for the target in onMove,
1096
+ * which would impact performance significantly.
1097
+ */
1098
+ if (!expandToScroll) {
1099
+ const targetEl = index$2.findClosestIonContent(detail.event.target);
1100
+ cachedScrollEl =
1101
+ targetEl && index$2.isIonContent(targetEl) ? helpers.getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
1102
+ }
1103
+ /**
1104
+ * If expandToScroll is disabled, we need to swap
1105
+ * the footer visibility to the original, so if the modal
1106
+ * is dismissed, the footer dismisses with the modal
1107
+ * and doesn't stay on the screen after the modal is gone.
1108
+ */
1109
+ if (!expandToScroll) {
1110
+ swapFooterVisibility('original');
1111
+ }
906
1112
  /**
907
1113
  * If we are pulling down, then it is possible we are pulling on the content.
908
1114
  * We do not want scrolling to happen at the same time as the gesture.
@@ -920,6 +1126,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
920
1126
  animation.progressStart(true, 1 - currentBreakpoint);
921
1127
  };
922
1128
  const onMove = (detail) => {
1129
+ /**
1130
+ * If `expandToScroll` is disabled, and an upwards swipe gesture is done within
1131
+ * the scrollable content, we should not allow the swipe gesture to continue.
1132
+ */
1133
+ if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl) {
1134
+ return;
1135
+ }
923
1136
  /**
924
1137
  * If we are pulling down, then it is possible we are pulling on the content.
925
1138
  * We do not want scrolling to happen at the same time as the gesture.
@@ -966,6 +1179,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
966
1179
  animation.progressStep(offset);
967
1180
  };
968
1181
  const onEnd = (detail) => {
1182
+ /**
1183
+ * If expandToScroll is disabled, we should not allow the moveSheetToBreakpoint
1184
+ * function to be called if the user is trying to swipe content upwards and the content
1185
+ * is not scrolled to the top.
1186
+ */
1187
+ if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
1188
+ return;
1189
+ }
969
1190
  /**
970
1191
  * When the gesture releases, we need to determine
971
1192
  * the closest breakpoint to snap to.
@@ -1018,6 +1239,19 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1018
1239
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
1019
1240
  },
1020
1241
  ]);
1242
+ if (contentAnimation) {
1243
+ /**
1244
+ * The modal content should scroll at any breakpoint when expandToScroll
1245
+ * is disabled. In order to do this, the content needs to be completely
1246
+ * viewable so scrolling can access everything. Otherwise, the default
1247
+ * behavior would show the content off the screen and only allow
1248
+ * scrolling when the sheet is fully expanded.
1249
+ */
1250
+ contentAnimation.keyframes([
1251
+ { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
1252
+ { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
1253
+ ]);
1254
+ }
1021
1255
  animation.progressStep(0);
1022
1256
  }
1023
1257
  /**
@@ -1025,6 +1259,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1025
1259
  * snapping animation completes.
1026
1260
  */
1027
1261
  gesture.enable(false);
1262
+ /**
1263
+ * If expandToScroll is disabled, we need to swap
1264
+ * the footer visibility to the cloned one so the footer
1265
+ * doesn't flicker when the sheet's height is animated.
1266
+ */
1267
+ if (!expandToScroll && shouldRemainOpen) {
1268
+ swapFooterVisibility('cloned');
1269
+ }
1028
1270
  if (shouldPreventDismiss) {
1029
1271
  handleCanDismiss(baseEl, animation);
1030
1272
  }
@@ -1032,13 +1274,13 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1032
1274
  onDismiss();
1033
1275
  }
1034
1276
  /**
1035
- * If the sheet is going to be fully expanded then we should enable
1036
- * scrolling immediately. The sheet modal animation takes ~500ms to finish
1037
- * so if we wait until then there is a visible delay for when scrolling is
1038
- * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
1039
- * as the gesture is released, so we align with that.
1277
+ * Enables scrolling immediately if the sheet is about to fully expand
1278
+ * or if it allows scrolling at any breakpoint. Without this, there would
1279
+ * be a ~500ms delay while the modal animation completes, causing a
1280
+ * noticeable lag. Native iOS allows scrolling as soon as the gesture is
1281
+ * released, so we align with that behavior.
1040
1282
  */
1041
- if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
1283
+ if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
1042
1284
  contentEl.scrollY = true;
1043
1285
  }
1044
1286
  return new Promise((resolve) => {
@@ -1056,6 +1298,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1056
1298
  helpers.raf(() => {
1057
1299
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
1058
1300
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
1301
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
1059
1302
  animation.progressStart(true, 1 - snapToBreakpoint);
1060
1303
  currentBreakpoint = snapToBreakpoint;
1061
1304
  onBreakpointChange(currentBreakpoint);
@@ -1108,10 +1351,10 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1108
1351
  };
1109
1352
  };
1110
1353
 
1111
- 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}";
1354
+ 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}";
1112
1355
  const IonModalIosStyle0 = modalIosCss;
1113
1356
 
1114
- 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}";
1357
+ 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}";
1115
1358
  const IonModalMdStyle0 = modalMdCss;
1116
1359
 
1117
1360
  const Modal = class {
@@ -1180,6 +1423,7 @@ const Modal = class {
1180
1423
  this.enterAnimation = undefined;
1181
1424
  this.leaveAnimation = undefined;
1182
1425
  this.breakpoints = undefined;
1426
+ this.expandToScroll = true;
1183
1427
  this.initialBreakpoint = undefined;
1184
1428
  this.backdropBreakpoint = 0;
1185
1429
  this.handle = undefined;
@@ -1395,6 +1639,7 @@ const Modal = class {
1395
1639
  presentingEl: presentingElement,
1396
1640
  currentBreakpoint: this.initialBreakpoint,
1397
1641
  backdropBreakpoint: this.backdropBreakpoint,
1642
+ expandToScroll: this.expandToScroll,
1398
1643
  });
1399
1644
  /* tslint:disable-next-line */
1400
1645
  if (typeof window !== 'undefined') {
@@ -1445,7 +1690,10 @@ const Modal = class {
1445
1690
  // should be in the DOM and referenced by now, except
1446
1691
  // for the presenting el
1447
1692
  const animationBuilder = this.leaveAnimation || ionicGlobal.config.get('modalLeave', iosLeaveAnimation);
1448
- const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
1693
+ const ani = (this.animation = animationBuilder(el, {
1694
+ presentingEl: this.presentingElement,
1695
+ expandToScroll: this.expandToScroll,
1696
+ }));
1449
1697
  const contentEl = index$2.findIonContent(el);
1450
1698
  if (!contentEl) {
1451
1699
  index$2.printIonContentErrorMsg(el);
@@ -1490,9 +1738,10 @@ const Modal = class {
1490
1738
  presentingEl: this.presentingElement,
1491
1739
  currentBreakpoint: initialBreakpoint,
1492
1740
  backdropBreakpoint,
1741
+ expandToScroll: this.expandToScroll,
1493
1742
  }));
1494
1743
  ani.progressStart(true, 1);
1495
- 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) => {
1744
+ 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) => {
1496
1745
  if (this.currentBreakpoint !== breakpoint) {
1497
1746
  this.currentBreakpoint = breakpoint;
1498
1747
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -1570,6 +1819,7 @@ const Modal = class {
1570
1819
  presentingEl: presentingElement,
1571
1820
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
1572
1821
  backdropBreakpoint: this.backdropBreakpoint,
1822
+ expandToScroll: this.expandToScroll,
1573
1823
  });
1574
1824
  if (dismissed) {
1575
1825
  const { delegate } = this.getDelegate();
@@ -1655,23 +1905,23 @@ const Modal = class {
1655
1905
  return true;
1656
1906
  }
1657
1907
  render() {
1658
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
1908
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
1659
1909
  const showHandle = handle !== false && isSheetModal;
1660
1910
  const mode = ionicGlobal.getIonMode(this);
1661
1911
  const isCardModal = presentingElement !== undefined && mode === 'ios';
1662
1912
  const isHandleCycle = handleBehavior === 'cycle';
1663
- return (index$3.h(index$3.Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1913
+ return (index$3.h(index$3.Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1664
1914
  zIndex: `${20000 + this.overlayIndex}`,
1665
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), index$3.h("ion-backdrop", { key: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
1915
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, theme.getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), index$3.h("ion-backdrop", { key: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
1666
1916
  /*
1667
1917
  role and aria-modal must be used on the
1668
1918
  same element. They must also be set inside the
1669
1919
  shadow DOM otherwise ion-button will not be highlighted
1670
1920
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
1671
1921
  */
1672
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
1922
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (index$3.h("button", { key: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
1673
1923
  // Prevents the handle from receiving keyboard focus when it does not cycle
1674
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), index$3.h("slot", { key: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
1924
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), index$3.h("slot", { key: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
1675
1925
  }
1676
1926
  get el() { return index$3.getElement(this); }
1677
1927
  static get watchers() { return {