voyager-ionic-core 8.5.7 → 8.6.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 (811) hide show
  1. package/components/action-sheet.js +37 -23
  2. package/components/alert.js +42 -26
  3. package/components/animation.js +2 -2
  4. package/components/backdrop.js +11 -4
  5. package/components/button-active.js +1 -1
  6. package/components/button.js +53 -29
  7. package/components/buttons.js +14 -4
  8. package/components/capacitor.js +1 -1
  9. package/components/checkbox.js +40 -16
  10. package/components/config.js +1 -1
  11. package/components/content.js +24 -5
  12. package/components/data.js +31 -6
  13. package/components/gesture-controller.js +1 -1
  14. package/components/haptic.js +1 -1
  15. package/components/hardware-back-button.js +2 -2
  16. package/components/header.js +12 -7
  17. package/components/helpers.js +3 -6
  18. package/components/icon.js +1 -2
  19. package/components/index.js +1 -1
  20. package/components/index2.js +1 -1
  21. package/components/index3.js +3 -5
  22. package/components/index4.js +1 -1
  23. package/components/index5.js +2 -2
  24. package/components/index6.js +28 -3
  25. package/components/index7.js +163 -27
  26. package/components/index8.js +1 -1
  27. package/components/index9.js +3 -163
  28. package/components/input-shims.js +25 -2
  29. package/components/input.utils.js +2 -2
  30. package/components/ion-accordion-group.js +20 -7
  31. package/components/ion-accordion.js +32 -14
  32. package/components/ion-app.js +4 -5
  33. package/components/ion-avatar.js +2 -4
  34. package/components/ion-back-button.js +12 -13
  35. package/components/ion-badge.js +2 -5
  36. package/components/ion-breadcrumb.js +22 -20
  37. package/components/ion-breadcrumbs.js +14 -10
  38. package/components/ion-card-content.js +2 -4
  39. package/components/ion-card-header.js +7 -5
  40. package/components/ion-card-subtitle.js +2 -5
  41. package/components/ion-card-title.js +2 -5
  42. package/components/ion-card.js +16 -11
  43. package/components/ion-chip.js +8 -5
  44. package/components/ion-col.js +1 -26
  45. package/components/ion-datetime-button.js +16 -14
  46. package/components/ion-datetime.js +222 -131
  47. package/components/ion-fab-button.js +37 -20
  48. package/components/ion-fab-list.js +7 -2
  49. package/components/ion-fab.js +10 -4
  50. package/components/ion-footer.js +13 -8
  51. package/components/ion-grid.js +4 -2
  52. package/components/ion-img.js +1 -6
  53. package/components/ion-infinite-scroll-content.js +2 -6
  54. package/components/ion-infinite-scroll.js +27 -6
  55. package/components/ion-input-otp.d.ts +11 -0
  56. package/components/ion-input-otp.js +631 -0
  57. package/components/ion-input-password-toggle.js +11 -13
  58. package/components/ion-input.js +79 -51
  59. package/components/ion-item-divider.js +11 -7
  60. package/components/ion-item-group.js +3 -5
  61. package/components/ion-item-option.js +16 -14
  62. package/components/ion-item-options.js +7 -5
  63. package/components/ion-item-sliding.js +8 -5
  64. package/components/ion-loading.js +38 -21
  65. package/components/ion-menu-button.js +17 -12
  66. package/components/ion-menu-toggle.js +11 -7
  67. package/components/ion-menu.js +28 -12
  68. package/components/ion-nav-link.js +7 -7
  69. package/components/ion-nav.js +9 -12
  70. package/components/ion-note.js +4 -7
  71. package/components/ion-picker-legacy.js +47 -27
  72. package/components/ion-progress-bar.js +20 -7
  73. package/components/ion-range.js +69 -29
  74. package/components/ion-refresher-content.js +2 -6
  75. package/components/ion-refresher.js +56 -8
  76. package/components/ion-reorder-group.js +7 -5
  77. package/components/ion-reorder.js +4 -6
  78. package/components/ion-route-redirect.js +0 -2
  79. package/components/ion-route.js +9 -7
  80. package/components/ion-router-link.js +9 -11
  81. package/components/ion-router-outlet.js +12 -10
  82. package/components/ion-router.js +19 -1
  83. package/components/ion-row.js +2 -3
  84. package/components/ion-searchbar.js +82 -33
  85. package/components/ion-segment-button.js +22 -13
  86. package/components/ion-segment-content.js +2 -3
  87. package/components/ion-segment-view.js +7 -7
  88. package/components/ion-segment.js +24 -13
  89. package/components/ion-select-option.js +5 -4
  90. package/components/ion-select.js +68 -34
  91. package/components/ion-skeleton-text.js +6 -4
  92. package/components/ion-split-pane.js +13 -8
  93. package/components/ion-tab-bar.js +9 -8
  94. package/components/ion-tab-button.js +12 -14
  95. package/components/ion-tab.js +5 -8
  96. package/components/ion-tabs.js +5 -6
  97. package/components/ion-text.js +3 -5
  98. package/components/ion-textarea.js +72 -36
  99. package/components/ion-thumbnail.js +2 -3
  100. package/components/ion-toast.js +58 -35
  101. package/components/ion-toggle.js +55 -24
  102. package/components/ionic-global.js +1 -1
  103. package/components/item.js +20 -14
  104. package/components/keyboard-controller.js +2 -2
  105. package/components/keyboard.js +134 -69
  106. package/components/keyboard2.js +69 -134
  107. package/components/label.js +4 -8
  108. package/components/list-header.js +4 -8
  109. package/components/list.js +6 -6
  110. package/components/modal.js +252 -205
  111. package/components/notch-controller.js +1 -1
  112. package/components/overlays.js +3 -3
  113. package/components/picker-column-option.js +20 -7
  114. package/components/picker-column.js +25 -10
  115. package/components/picker-column2.js +8 -11
  116. package/components/picker.js +2 -4
  117. package/components/popover.js +132 -40
  118. package/components/radio-group.js +11 -11
  119. package/components/radio.js +30 -16
  120. package/components/refresher.utils.js +2 -2
  121. package/components/ripple-effect.js +11 -3
  122. package/components/select-modal.js +4 -9
  123. package/components/select-popover.js +6 -9
  124. package/components/spinner.js +5 -6
  125. package/components/swipe-back.js +1 -1
  126. package/components/title.js +4 -8
  127. package/components/toolbar.js +4 -7
  128. package/css/core.css +1 -1
  129. package/css/core.css.map +1 -1
  130. package/css/global.bundle.css +1 -1
  131. package/css/global.bundle.css.map +1 -1
  132. package/css/ionic.bundle.css +1 -1
  133. package/css/ionic.bundle.css.map +1 -1
  134. package/css/structure.css +1 -1
  135. package/css/structure.css.map +1 -1
  136. package/dist/cjs/{animation-ab2d3449.js → animation-0T7gKwOt.js} +2 -2
  137. package/dist/cjs/{button-active-43e2b419.js → button-active-C-4ud7Ht.js} +3 -3
  138. package/dist/cjs/{capacitor-c04564bf.js → capacitor-DmA66EwP.js} +1 -1
  139. package/dist/cjs/{config-f6225ae7.js → config-U7OAuj53.js} +1 -1
  140. package/dist/cjs/{data-94e8d392.js → data-DRqa6oM4.js} +30 -5
  141. package/dist/cjs/{framework-delegate-862d9d00.js → framework-delegate-C7sIJyT5.js} +1 -1
  142. package/dist/cjs/{gesture-controller-9436f482.js → gesture-controller-dtqlP_q4.js} +1 -1
  143. package/dist/cjs/{haptic-f6b37aa3.js → haptic-ClPPQ_PS.js} +1 -1
  144. package/dist/cjs/{hardware-back-button-3d2b1004.js → hardware-back-button-D90qZxju.js} +2 -2
  145. package/dist/cjs/{helpers-8a48fdea.js → helpers-BITAzJfi.js} +2 -5
  146. package/dist/cjs/{index-dbe01e08.js → index-BDBT0u4l.js} +3 -3
  147. package/dist/cjs/{index-ee07ed59.js → index-CAvQ7Tka.js} +3 -4
  148. package/dist/cjs/{index-073c7cdc.js → index-CPbAsnJK.js} +1 -0
  149. package/dist/cjs/{index-31b07b9c.js → index-CVa6JE57.js} +3 -3
  150. package/dist/cjs/{index-a96d31ae.js → index-CxfLS2mX.js} +8 -9
  151. package/dist/cjs/{index-2e236a04.js → index-DODXXb_r.js} +1676 -675
  152. package/dist/cjs/{index-1eff7149.js → index-y0QaNtCi.js} +6 -7
  153. package/dist/cjs/index.cjs.js +22 -28
  154. package/dist/cjs/{input-shims-415be7ee.js → input-shims-D1Mfgd4s.js} +29 -6
  155. package/dist/cjs/{input.utils-a7957fd6.js → input.utils-DSoBEyUu.js} +3 -3
  156. package/dist/cjs/ion-accordion_2.cjs.entry.js +56 -29
  157. package/dist/cjs/ion-action-sheet.cjs.entry.js +50 -40
  158. package/dist/cjs/ion-alert.cjs.entry.js +59 -47
  159. package/dist/cjs/ion-app_8.cjs.entry.js +134 -105
  160. package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -20
  161. package/dist/cjs/ion-back-button.cjs.entry.js +21 -26
  162. package/dist/cjs/ion-backdrop.cjs.entry.js +13 -10
  163. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +39 -37
  164. package/dist/cjs/ion-button_2.cjs.entry.js +54 -37
  165. package/dist/cjs/ion-card_5.cjs.entry.js +36 -41
  166. package/dist/cjs/ion-checkbox.cjs.entry.js +44 -24
  167. package/dist/cjs/ion-chip.cjs.entry.js +11 -12
  168. package/dist/cjs/ion-col_3.cjs.entry.js +10 -38
  169. package/dist/cjs/ion-datetime-button.cjs.entry.js +23 -25
  170. package/dist/cjs/ion-datetime_3.cjs.entry.js +344 -241
  171. package/dist/cjs/ion-fab_3.cjs.entry.js +59 -35
  172. package/dist/cjs/ion-img.cjs.entry.js +4 -13
  173. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +38 -25
  174. package/dist/cjs/ion-input-otp.cjs.entry.js +593 -0
  175. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +17 -23
  176. package/dist/cjs/ion-input.cjs.entry.js +86 -62
  177. package/dist/cjs/ion-item-option_3.cjs.entry.js +40 -37
  178. package/dist/cjs/ion-item_8.cjs.entry.js +69 -74
  179. package/dist/cjs/ion-loading.cjs.entry.js +50 -37
  180. package/dist/cjs/ion-menu_3.cjs.entry.js +84 -63
  181. package/dist/cjs/ion-modal.cjs.entry.js +271 -228
  182. package/dist/cjs/ion-nav_2.cjs.entry.js +30 -37
  183. package/dist/cjs/ion-picker-column-option.cjs.entry.js +24 -15
  184. package/dist/cjs/ion-picker-column.cjs.entry.js +32 -21
  185. package/dist/cjs/ion-picker.cjs.entry.js +4 -9
  186. package/dist/cjs/ion-popover.cjs.entry.js +143 -55
  187. package/dist/cjs/ion-progress-bar.cjs.entry.js +24 -15
  188. package/dist/cjs/ion-radio_2.cjs.entry.js +47 -37
  189. package/dist/cjs/ion-range.cjs.entry.js +78 -42
  190. package/dist/cjs/ion-refresher_2.cjs.entry.js +81 -41
  191. package/dist/cjs/ion-reorder_2.cjs.entry.js +19 -23
  192. package/dist/cjs/ion-ripple-effect.cjs.entry.js +13 -9
  193. package/dist/cjs/ion-route_4.cjs.entry.js +52 -40
  194. package/dist/cjs/ion-searchbar.cjs.entry.js +91 -46
  195. package/dist/cjs/ion-segment-content.cjs.entry.js +3 -6
  196. package/dist/cjs/ion-segment-view.cjs.entry.js +8 -10
  197. package/dist/cjs/ion-segment_2.cjs.entry.js +55 -39
  198. package/dist/cjs/ion-select-modal.cjs.entry.js +12 -21
  199. package/dist/cjs/ion-select_3.cjs.entry.js +98 -70
  200. package/dist/cjs/ion-spinner.cjs.entry.js +12 -17
  201. package/dist/cjs/ion-split-pane.cjs.entry.js +16 -15
  202. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +31 -36
  203. package/dist/cjs/ion-tab_2.cjs.entry.js +13 -20
  204. package/dist/cjs/ion-text.cjs.entry.js +6 -12
  205. package/dist/cjs/ion-textarea.cjs.entry.js +79 -47
  206. package/dist/cjs/ion-toast.cjs.entry.js +82 -63
  207. package/dist/cjs/ion-toggle.cjs.entry.js +64 -37
  208. package/dist/cjs/ionic.cjs.js +7 -10
  209. package/dist/cjs/{ios.transition-a131cd4d.js → ios.transition-baEy2tr4.js} +5 -6
  210. package/dist/cjs/{keyboard-0272231f.js → keyboard-UuAS4D_9.js} +1 -1
  211. package/dist/cjs/{keyboard-controller-c05e747a.js → keyboard-controller-GXBiBRKS.js} +2 -2
  212. package/dist/cjs/{keyboard-af1bb365.js → keyboard-hHzlEQpk.js} +3 -3
  213. package/dist/cjs/loader.cjs.js +3 -8
  214. package/dist/cjs/{md.transition-e018ebe5.js → md.transition-Bvc-JrM5.js} +5 -6
  215. package/dist/cjs/{notch-controller-09b7f358.js → notch-controller-BAbqGXRi.js} +2 -2
  216. package/dist/cjs/{overlays-4c291a05.js → overlays-DRDumz2b.js} +9 -10
  217. package/dist/cjs/{status-tap-f1acefac.js → status-tap-Db3WeCkO.js} +3 -4
  218. package/dist/cjs/{swipe-back-442ca3d7.js → swipe-back-bLyc4PSi.js} +5 -5
  219. package/dist/collection/collection-manifest.json +3 -2
  220. package/dist/collection/components/accordion/accordion.js +43 -13
  221. package/dist/collection/components/accordion-group/accordion-group.js +35 -8
  222. package/dist/collection/components/action-sheet/action-sheet.js +84 -31
  223. package/dist/collection/components/alert/alert.js +94 -34
  224. package/dist/collection/components/back-button/back-button.js +30 -14
  225. package/dist/collection/components/backdrop/backdrop.js +18 -3
  226. package/dist/collection/components/badge/badge.js +3 -4
  227. package/dist/collection/components/breadcrumb/breadcrumb.js +57 -26
  228. package/dist/collection/components/breadcrumbs/breadcrumbs.js +24 -10
  229. package/dist/collection/components/button/button.js +97 -36
  230. package/dist/collection/components/buttons/buttons.js +15 -1
  231. package/dist/collection/components/card/card.js +44 -16
  232. package/dist/collection/components/card-header/card-header.js +11 -3
  233. package/dist/collection/components/card-subtitle/card-subtitle.js +3 -4
  234. package/dist/collection/components/card-title/card-title.js +3 -4
  235. package/dist/collection/components/checkbox/checkbox.js +74 -24
  236. package/dist/collection/components/chip/chip.js +15 -4
  237. package/dist/collection/components/col/col.js +72 -50
  238. package/dist/collection/components/content/content.js +43 -9
  239. package/dist/collection/components/datetime/datetime.ios.css +7 -2
  240. package/dist/collection/components/datetime/datetime.js +323 -147
  241. package/dist/collection/components/datetime/datetime.md.css +9 -3
  242. package/dist/collection/components/datetime/utils/data.js +29 -4
  243. package/dist/collection/components/datetime-button/datetime-button.js +21 -11
  244. package/dist/collection/components/fab/fab.js +21 -6
  245. package/dist/collection/components/fab-button/fab-button.js +76 -28
  246. package/dist/collection/components/fab-list/fab-list.js +12 -2
  247. package/dist/collection/components/footer/footer.js +16 -5
  248. package/dist/collection/components/grid/grid.js +6 -1
  249. package/dist/collection/components/header/header.js +15 -4
  250. package/dist/collection/components/img/img.js +6 -6
  251. package/dist/collection/components/infinite-scroll/infinite-scroll.js +35 -7
  252. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +6 -4
  253. package/dist/collection/components/input/input.js +178 -79
  254. package/dist/collection/components/input-otp/input-otp-interface.js +1 -0
  255. package/dist/collection/components/input-otp/input-otp.ios.css +381 -0
  256. package/dist/collection/components/input-otp/input-otp.js +1003 -0
  257. package/dist/collection/components/input-otp/input-otp.md.css +381 -0
  258. package/dist/collection/components/input-password-toggle/input-password-toggle.js +19 -11
  259. package/dist/collection/components/item/item.js +56 -21
  260. package/dist/collection/components/item-divider/item-divider.js +15 -5
  261. package/dist/collection/components/item-group/item-group.js +1 -1
  262. package/dist/collection/components/item-option/item-option.js +38 -18
  263. package/dist/collection/components/item-options/item-options.js +8 -2
  264. package/dist/collection/components/item-sliding/item-sliding.js +9 -3
  265. package/dist/collection/components/label/label.js +8 -6
  266. package/dist/collection/components/list/list.js +10 -4
  267. package/dist/collection/components/list-header/list-header.js +8 -8
  268. package/dist/collection/components/loading/loading.js +88 -31
  269. package/dist/collection/components/menu/menu.js +44 -12
  270. package/dist/collection/components/menu-button/menu-button.js +29 -12
  271. package/dist/collection/components/menu-toggle/menu-toggle.js +16 -7
  272. package/dist/collection/components/modal/animations/ios.enter.js +1 -41
  273. package/dist/collection/components/modal/animations/ios.leave.js +2 -24
  274. package/dist/collection/components/modal/animations/md.enter.js +2 -42
  275. package/dist/collection/components/modal/animations/md.leave.js +2 -24
  276. package/dist/collection/components/modal/gestures/sheet.js +122 -29
  277. package/dist/collection/components/modal/modal.ios.css +0 -10
  278. package/dist/collection/components/modal/modal.js +192 -55
  279. package/dist/collection/components/nav/nav.js +25 -12
  280. package/dist/collection/components/nav-link/nav-link.js +19 -9
  281. package/dist/collection/components/note/note.js +5 -6
  282. package/dist/collection/components/picker-column/picker-column.js +34 -10
  283. package/dist/collection/components/picker-column-option/picker-column-option.js +27 -6
  284. package/dist/collection/components/picker-legacy/picker.js +93 -33
  285. package/dist/collection/components/picker-legacy-column/picker-column.js +7 -5
  286. package/dist/collection/components/popover/popover.js +211 -58
  287. package/dist/collection/components/progress-bar/progress-bar.js +32 -7
  288. package/dist/collection/components/radio/radio.js +49 -19
  289. package/dist/collection/components/radio-group/radio-group.js +27 -13
  290. package/dist/collection/components/range/range.js +112 -37
  291. package/dist/collection/components/refresher/refresher.js +69 -7
  292. package/dist/collection/components/refresher-content/refresher-content.js +13 -9
  293. package/dist/collection/components/reorder/reorder.js +1 -1
  294. package/dist/collection/components/reorder-group/reorder-group.js +7 -2
  295. package/dist/collection/components/ripple-effect/ripple-effect.js +13 -2
  296. package/dist/collection/components/route/route.js +24 -9
  297. package/dist/collection/components/route-redirect/route-redirect.js +6 -6
  298. package/dist/collection/components/router/router.js +24 -2
  299. package/dist/collection/components/router-link/router-link.js +26 -14
  300. package/dist/collection/components/router-outlet/router-outlet.js +25 -9
  301. package/dist/collection/components/row/row.js +1 -1
  302. package/dist/collection/components/searchbar/searchbar.js +146 -51
  303. package/dist/collection/components/segment/segment.js +40 -15
  304. package/dist/collection/components/segment-button/segment-button.js +34 -13
  305. package/dist/collection/components/segment-content/segment-content.js +1 -1
  306. package/dist/collection/components/segment-view/segment-view.js +8 -4
  307. package/dist/collection/components/select/select.js +128 -48
  308. package/dist/collection/components/select-modal/select-modal.js +10 -5
  309. package/dist/collection/components/select-option/select-option.js +10 -4
  310. package/dist/collection/components/select-popover/select-popover.js +19 -9
  311. package/dist/collection/components/skeleton-text/skeleton-text.js +8 -3
  312. package/dist/collection/components/spinner/spinner.js +16 -8
  313. package/dist/collection/components/split-pane/split-pane.js +19 -6
  314. package/dist/collection/components/tab/tab.js +16 -9
  315. package/dist/collection/components/tab-bar/tab-bar.js +16 -7
  316. package/dist/collection/components/tab-button/tab-button.js +34 -18
  317. package/dist/collection/components/tabs/tabs.js +6 -4
  318. package/dist/collection/components/text/text.js +5 -6
  319. package/dist/collection/components/textarea/textarea.js +154 -59
  320. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  321. package/dist/collection/components/title/title.js +8 -8
  322. package/dist/collection/components/toast/toast.js +121 -47
  323. package/dist/collection/components/toggle/toggle.js +86 -28
  324. package/dist/collection/components/toolbar/toolbar.js +5 -4
  325. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +23 -0
  326. package/dist/docs.d.ts +8 -0
  327. package/dist/docs.json +4490 -942
  328. package/dist/esm/{animation-8b25e105.js → animation-BWcUKtbn.js} +2 -2
  329. package/dist/esm/{button-active-90f1dbc4.js → button-active-Bxcnevju.js} +3 -3
  330. package/dist/esm/{capacitor-59395cbd.js → capacitor-CFERIeaU.js} +1 -1
  331. package/dist/esm/{config-9898ed97.js → config-AaTyISnm.js} +1 -1
  332. package/dist/esm/{data-0d7ea6eb.js → data-GIsHsYIB.js} +31 -6
  333. package/dist/esm/{framework-delegate-56b467ad.js → framework-delegate-DxcnWic_.js} +1 -1
  334. package/dist/esm/{gesture-controller-314a54f6.js → gesture-controller-BTEOs1at.js} +1 -1
  335. package/dist/esm/{haptic-ac164e4c.js → haptic-DzAMWJuk.js} +2 -2
  336. package/dist/esm/{hardware-back-button-a7eb8233.js → hardware-back-button-DcH0BbDp.js} +2 -2
  337. package/dist/esm/{helpers-d94bc8ad.js → helpers-1O4D2b7y.js} +3 -6
  338. package/dist/esm/{index-e2cf2ceb.js → index-BLV6ykCk.js} +2 -1
  339. package/dist/esm/{index-527b9e34.js → index-B_U9CtaY.js} +1667 -654
  340. package/dist/esm/{index-9a17db3d.js → index-BlJTBdxG.js} +3 -3
  341. package/dist/esm/{index-be190feb.js → index-CWbP1eJz.js} +3 -3
  342. package/dist/esm/{index-39782642.js → index-CfgBF1SE.js} +4 -6
  343. package/dist/esm/{index-18f31305.js → index-D8sncTHY.js} +5 -6
  344. package/dist/esm/{index-68c0d151.js → index-DfBA5ztX.js} +4 -5
  345. package/dist/esm/index.js +16 -18
  346. package/dist/esm/{input-shims-279903e2.js → input-shims-C3lNp93k.js} +29 -6
  347. package/dist/esm/{input.utils-40504d6d.js → input.utils-zWijNCrx.js} +3 -3
  348. package/dist/esm/ion-accordion_2.entry.js +52 -23
  349. package/dist/esm/ion-action-sheet.entry.js +48 -36
  350. package/dist/esm/ion-alert.entry.js +53 -39
  351. package/dist/esm/ion-app_8.entry.js +99 -68
  352. package/dist/esm/ion-avatar_3.entry.js +8 -16
  353. package/dist/esm/ion-back-button.entry.js +14 -17
  354. package/dist/esm/ion-backdrop.entry.js +12 -7
  355. package/dist/esm/ion-breadcrumb_2.entry.js +37 -33
  356. package/dist/esm/ion-button_2.entry.js +50 -31
  357. package/dist/esm/ion-card_5.entry.js +31 -34
  358. package/dist/esm/ion-checkbox.entry.js +43 -21
  359. package/dist/esm/ion-chip.entry.js +10 -9
  360. package/dist/esm/ion-col_3.entry.js +8 -34
  361. package/dist/esm/ion-datetime-button.entry.js +18 -18
  362. package/dist/esm/ion-datetime_3.entry.js +279 -174
  363. package/dist/esm/ion-fab_3.entry.js +56 -30
  364. package/dist/esm/ion-img.entry.js +3 -10
  365. package/dist/esm/ion-infinite-scroll_2.entry.js +33 -18
  366. package/dist/esm/ion-input-otp.entry.js +591 -0
  367. package/dist/esm/ion-input-password-toggle.entry.js +12 -16
  368. package/dist/esm/ion-input.entry.js +84 -58
  369. package/dist/esm/ion-item-option_3.entry.js +36 -31
  370. package/dist/esm/ion-item_8.entry.js +60 -63
  371. package/dist/esm/ion-loading.entry.js +46 -31
  372. package/dist/esm/ion-menu_3.entry.js +66 -43
  373. package/dist/esm/ion-modal.entry.js +260 -215
  374. package/dist/esm/ion-nav_2.entry.js +17 -22
  375. package/dist/esm/ion-picker-column-option.entry.js +23 -12
  376. package/dist/esm/ion-picker-column.entry.js +29 -16
  377. package/dist/esm/ion-picker.entry.js +4 -7
  378. package/dist/esm/ion-popover.entry.js +137 -47
  379. package/dist/esm/ion-progress-bar.entry.js +22 -11
  380. package/dist/esm/ion-radio_2.entry.js +45 -33
  381. package/dist/esm/ion-range.entry.js +72 -34
  382. package/dist/esm/ion-refresher_2.entry.js +68 -26
  383. package/dist/esm/ion-reorder_2.entry.js +17 -19
  384. package/dist/esm/ion-ripple-effect.entry.js +12 -6
  385. package/dist/esm/ion-route_4.entry.js +35 -21
  386. package/dist/esm/ion-searchbar.entry.js +86 -39
  387. package/dist/esm/ion-segment-content.entry.js +3 -4
  388. package/dist/esm/ion-segment-view.entry.js +8 -8
  389. package/dist/esm/ion-segment_2.entry.js +50 -32
  390. package/dist/esm/ion-select-modal.entry.js +12 -19
  391. package/dist/esm/ion-select_3.entry.js +88 -58
  392. package/dist/esm/ion-spinner.entry.js +8 -11
  393. package/dist/esm/ion-split-pane.entry.js +13 -10
  394. package/dist/esm/ion-tab-bar_2.entry.js +28 -31
  395. package/dist/esm/ion-tab_2.entry.js +11 -16
  396. package/dist/esm/ion-text.entry.js +5 -9
  397. package/dist/esm/ion-textarea.entry.js +77 -43
  398. package/dist/esm/ion-toast.entry.js +65 -44
  399. package/dist/esm/ion-toggle.entry.js +62 -33
  400. package/dist/esm/ionic.js +5 -7
  401. package/dist/esm/{ios.transition-4047cb68.js → ios.transition-BmXtMRXZ.js} +5 -6
  402. package/dist/esm/{keyboard-73175e24.js → keyboard-CUw4ekVy.js} +1 -1
  403. package/dist/esm/{keyboard-controller-ec5c2bfa.js → keyboard-controller-BaaVITYt.js} +2 -2
  404. package/dist/esm/{keyboard-52278bd7.js → keyboard-ywgs5efA.js} +3 -3
  405. package/dist/esm/loader.js +3 -6
  406. package/dist/esm/{md.transition-30ce8d1b.js → md.transition-CLI683c7.js} +5 -6
  407. package/dist/esm/{notch-controller-1a1f7183.js → notch-controller-C5LPspO8.js} +2 -2
  408. package/dist/esm/{overlays-d99dcb0a.js → overlays-8Y2rA-ps.js} +6 -7
  409. package/dist/esm/{status-tap-42a8af65.js → status-tap-7t9T91bG.js} +3 -4
  410. package/dist/esm/{swipe-back-04123e7c.js → swipe-back-D_6Vqlwy.js} +5 -5
  411. package/dist/html.html-data.json +377 -1
  412. package/dist/index.js +1 -1
  413. package/dist/ionic/index.esm.js +1 -1
  414. package/dist/ionic/ionic.esm.js +1 -1
  415. package/dist/ionic/p-0fc6fc38.entry.js +4 -0
  416. package/dist/ionic/p-14ae45e4.entry.js +4 -0
  417. package/dist/ionic/p-15da9760.entry.js +4 -0
  418. package/dist/ionic/p-1739f5f2.entry.js +4 -0
  419. package/dist/ionic/p-18f1813b.entry.js +4 -0
  420. package/dist/ionic/p-2020aa51.entry.js +4 -0
  421. package/dist/ionic/p-2c6c6991.entry.js +4 -0
  422. package/dist/ionic/p-2cfd6b61.entry.js +4 -0
  423. package/dist/ionic/p-2d01ecd5.entry.js +4 -0
  424. package/dist/ionic/p-2da6a16b.entry.js +4 -0
  425. package/dist/ionic/p-3a4feac2.entry.js +4 -0
  426. package/dist/ionic/p-473877b6.entry.js +4 -0
  427. package/dist/ionic/p-4b7d1f35.entry.js +4 -0
  428. package/dist/ionic/p-4d61f20b.entry.js +4 -0
  429. package/dist/ionic/p-4ddc10ef.entry.js +4 -0
  430. package/dist/ionic/p-56712fd4.entry.js +4 -0
  431. package/dist/ionic/p-6b666996.entry.js +4 -0
  432. package/dist/ionic/p-7149db7e.entry.js +4 -0
  433. package/dist/ionic/p-73d7ad90.entry.js +4 -0
  434. package/dist/ionic/p-76b697a3.entry.js +4 -0
  435. package/dist/ionic/{p-ed005d9c.js → p-7qk7mxdr.js} +1 -1
  436. package/dist/ionic/p-81f1b778.entry.js +4 -0
  437. package/dist/ionic/p-8957540a.entry.js +4 -0
  438. package/dist/ionic/p-8a8ef46b.entry.js +4 -0
  439. package/dist/ionic/p-8c674371.entry.js +4 -0
  440. package/dist/ionic/p-8f2f76e0.entry.js +4 -0
  441. package/dist/ionic/p-91bde659.entry.js +4 -0
  442. package/dist/ionic/p-96389029.entry.js +4 -0
  443. package/dist/ionic/p-97667b9c.entry.js +4 -0
  444. package/dist/ionic/p-9b46b31b.entry.js +4 -0
  445. package/dist/ionic/p-9e699d4a.entry.js +4 -0
  446. package/dist/ionic/p-9eeaBrnk.js +4 -0
  447. package/dist/ionic/p-B1MNHTYX.js +4 -0
  448. package/dist/ionic/p-B3XSxWNQ.js +4 -0
  449. package/dist/ionic/{p-da2b833b.js → p-BLV6ykCk.js} +1 -1
  450. package/dist/ionic/p-BROiNJRB.js +4 -0
  451. package/dist/ionic/p-B_U9CtaY.js +5 -0
  452. package/dist/ionic/{p-f08a92cc.js → p-BhLqfMrf.js} +1 -1
  453. package/dist/ionic/{p-2bb55ebc.js → p-BmQduG8c.js} +1 -1
  454. package/dist/ionic/p-CIGNaXM1.js +4 -0
  455. package/dist/ionic/{p-89b61afc.js → p-CKvCXMs9.js} +1 -1
  456. package/dist/ionic/p-CL-KfWxq.js +4 -0
  457. package/dist/ionic/p-CPgXVSua.js +4 -0
  458. package/dist/ionic/p-CRiGyYOA.js +4 -0
  459. package/dist/ionic/{p-10a1bddc.js → p-CbI9XwwW.js} +1 -1
  460. package/dist/ionic/p-Cl0B-RWe.js +4 -0
  461. package/dist/ionic/p-CtWGkNnJ.js +4 -0
  462. package/dist/ionic/{p-27281edd.js → p-D13Eaw-8.js} +1 -1
  463. package/dist/ionic/{p-0f5e6225.js → p-DCfS5Jk_.js} +1 -1
  464. package/dist/ionic/p-DgdWETCP.js +4 -0
  465. package/dist/ionic/p-Do-uqmtX.js +4 -0
  466. package/dist/ionic/p-DonTxalL.js +4 -0
  467. package/dist/ionic/{p-b7b1d91a.js → p-DzH0J0yi.js} +1 -1
  468. package/dist/ionic/p-QwEXyOze.js +4 -0
  469. package/dist/ionic/p-a6282370.entry.js +4 -0
  470. package/dist/ionic/p-a9ac80bd.entry.js +4 -0
  471. package/dist/ionic/p-a9f99c74.entry.js +4 -0
  472. package/dist/ionic/p-aIxOGKys.js +4 -0
  473. package/dist/ionic/p-aa8956c2.entry.js +4 -0
  474. package/dist/ionic/p-b37dbc31.entry.js +4 -0
  475. package/dist/ionic/p-b9f79efc.entry.js +4 -0
  476. package/dist/ionic/p-bNmY-WfR.js +4 -0
  477. package/dist/ionic/p-bb5fc02e.entry.js +4 -0
  478. package/dist/ionic/p-bc01c127.entry.js +4 -0
  479. package/dist/ionic/p-bec79123.entry.js +4 -0
  480. package/dist/ionic/p-c0335397.entry.js +4 -0
  481. package/dist/ionic/p-c448135a.entry.js +4 -0
  482. package/dist/ionic/p-c4912ca5.entry.js +4 -0
  483. package/dist/ionic/p-c884d7e3.entry.js +4 -0
  484. package/dist/ionic/p-cb787a4b.entry.js +4 -0
  485. package/dist/ionic/p-cd12ed1c.entry.js +4 -0
  486. package/dist/ionic/p-cf632ee2.entry.js +4 -0
  487. package/dist/ionic/p-d8ed5df0.entry.js +4 -0
  488. package/dist/ionic/p-e1260ed5.entry.js +4 -0
  489. package/dist/ionic/p-e30ff968.entry.js +4 -0
  490. package/dist/ionic/{p-b6d324f0.js → p-ei_RiGrl.js} +1 -1
  491. package/dist/ionic/p-f83db8cd.entry.js +4 -0
  492. package/dist/ionic/p-fbc5481b.entry.js +4 -0
  493. package/dist/ionic/p-fcc7437b.entry.js +4 -0
  494. package/dist/types/components/button/button.d.ts +11 -0
  495. package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
  496. package/dist/types/components/datetime/datetime.d.ts +6 -0
  497. package/dist/types/components/datetime/utils/data.d.ts +3 -1
  498. package/dist/types/components/datetime/utils/manipulation.d.ts +1 -0
  499. package/dist/types/components/input-otp/input-otp-interface.d.ts +21 -0
  500. package/dist/types/components/input-otp/input-otp.d.ts +268 -0
  501. package/dist/types/components/searchbar/searchbar.d.ts +1 -1
  502. package/dist/types/components.d.ts +786 -2
  503. package/dist/types/interface.d.ts +1 -0
  504. package/dist/types/stencil-public-runtime.d.ts +29 -1
  505. package/hydrate/index.d.ts +44 -7
  506. package/hydrate/index.js +5671 -2585
  507. package/hydrate/index.mjs +5670 -2584
  508. package/loader/cdn.js +1 -2
  509. package/loader/index.cjs.js +1 -2
  510. package/loader/index.es2017.js +0 -1
  511. package/loader/index.js +1 -2
  512. package/package.json +4 -4
  513. package/dist/cjs/app-globals-ddceb1f4.js +0 -10
  514. package/dist/cjs/index-cc858e97.js +0 -129
  515. package/dist/cjs/ionic-global-6dea5a96.js +0 -152
  516. package/dist/esm/app-globals-dbdbb3df.js +0 -8
  517. package/dist/esm/index-cfd9c1f2.js +0 -121
  518. package/dist/esm/ionic-global-b26f573e.js +0 -147
  519. package/dist/esm/polyfills/core-js.js +0 -11
  520. package/dist/esm/polyfills/dom.js +0 -79
  521. package/dist/esm/polyfills/es5-html-element.js +0 -1
  522. package/dist/esm/polyfills/index.js +0 -34
  523. package/dist/esm/polyfills/system.js +0 -6
  524. package/dist/esm-es5/animation-8b25e105.js +0 -4
  525. package/dist/esm-es5/app-globals-dbdbb3df.js +0 -4
  526. package/dist/esm-es5/button-active-90f1dbc4.js +0 -4
  527. package/dist/esm-es5/capacitor-59395cbd.js +0 -4
  528. package/dist/esm-es5/compare-with-utils-a96ff2ea.js +0 -4
  529. package/dist/esm-es5/config-9898ed97.js +0 -4
  530. package/dist/esm-es5/cubic-bezier-fe2083dc.js +0 -4
  531. package/dist/esm-es5/data-0d7ea6eb.js +0 -4
  532. package/dist/esm-es5/dir-babeabeb.js +0 -4
  533. package/dist/esm-es5/focus-visible-dd40d69f.js +0 -4
  534. package/dist/esm-es5/framework-delegate-56b467ad.js +0 -4
  535. package/dist/esm-es5/gesture-controller-314a54f6.js +0 -4
  536. package/dist/esm-es5/haptic-ac164e4c.js +0 -4
  537. package/dist/esm-es5/hardware-back-button-a7eb8233.js +0 -4
  538. package/dist/esm-es5/helpers-d94bc8ad.js +0 -4
  539. package/dist/esm-es5/index-18f31305.js +0 -4
  540. package/dist/esm-es5/index-39782642.js +0 -4
  541. package/dist/esm-es5/index-527b9e34.js +0 -5
  542. package/dist/esm-es5/index-68c0d151.js +0 -4
  543. package/dist/esm-es5/index-9a17db3d.js +0 -4
  544. package/dist/esm-es5/index-a5d50daf.js +0 -4
  545. package/dist/esm-es5/index-be190feb.js +0 -4
  546. package/dist/esm-es5/index-cfd9c1f2.js +0 -5
  547. package/dist/esm-es5/index-e2cf2ceb.js +0 -4
  548. package/dist/esm-es5/index.js +0 -4
  549. package/dist/esm-es5/input-shims-279903e2.js +0 -4
  550. package/dist/esm-es5/input.utils-40504d6d.js +0 -4
  551. package/dist/esm-es5/ion-accordion_2.entry.js +0 -4
  552. package/dist/esm-es5/ion-action-sheet.entry.js +0 -4
  553. package/dist/esm-es5/ion-alert.entry.js +0 -4
  554. package/dist/esm-es5/ion-app_8.entry.js +0 -4
  555. package/dist/esm-es5/ion-avatar_3.entry.js +0 -4
  556. package/dist/esm-es5/ion-back-button.entry.js +0 -4
  557. package/dist/esm-es5/ion-backdrop.entry.js +0 -4
  558. package/dist/esm-es5/ion-breadcrumb_2.entry.js +0 -4
  559. package/dist/esm-es5/ion-button_2.entry.js +0 -4
  560. package/dist/esm-es5/ion-card_5.entry.js +0 -4
  561. package/dist/esm-es5/ion-checkbox.entry.js +0 -4
  562. package/dist/esm-es5/ion-chip.entry.js +0 -4
  563. package/dist/esm-es5/ion-col_3.entry.js +0 -4
  564. package/dist/esm-es5/ion-datetime-button.entry.js +0 -4
  565. package/dist/esm-es5/ion-datetime_3.entry.js +0 -4
  566. package/dist/esm-es5/ion-fab_3.entry.js +0 -4
  567. package/dist/esm-es5/ion-img.entry.js +0 -4
  568. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +0 -4
  569. package/dist/esm-es5/ion-input-password-toggle.entry.js +0 -4
  570. package/dist/esm-es5/ion-input.entry.js +0 -4
  571. package/dist/esm-es5/ion-item-option_3.entry.js +0 -4
  572. package/dist/esm-es5/ion-item_8.entry.js +0 -4
  573. package/dist/esm-es5/ion-loading.entry.js +0 -4
  574. package/dist/esm-es5/ion-menu_3.entry.js +0 -4
  575. package/dist/esm-es5/ion-modal.entry.js +0 -4
  576. package/dist/esm-es5/ion-nav_2.entry.js +0 -4
  577. package/dist/esm-es5/ion-picker-column-option.entry.js +0 -4
  578. package/dist/esm-es5/ion-picker-column.entry.js +0 -4
  579. package/dist/esm-es5/ion-picker.entry.js +0 -4
  580. package/dist/esm-es5/ion-popover.entry.js +0 -4
  581. package/dist/esm-es5/ion-progress-bar.entry.js +0 -4
  582. package/dist/esm-es5/ion-radio_2.entry.js +0 -4
  583. package/dist/esm-es5/ion-range.entry.js +0 -4
  584. package/dist/esm-es5/ion-refresher_2.entry.js +0 -4
  585. package/dist/esm-es5/ion-reorder_2.entry.js +0 -4
  586. package/dist/esm-es5/ion-ripple-effect.entry.js +0 -4
  587. package/dist/esm-es5/ion-route_4.entry.js +0 -4
  588. package/dist/esm-es5/ion-searchbar.entry.js +0 -4
  589. package/dist/esm-es5/ion-segment-content.entry.js +0 -4
  590. package/dist/esm-es5/ion-segment-view.entry.js +0 -4
  591. package/dist/esm-es5/ion-segment_2.entry.js +0 -4
  592. package/dist/esm-es5/ion-select-modal.entry.js +0 -4
  593. package/dist/esm-es5/ion-select_3.entry.js +0 -4
  594. package/dist/esm-es5/ion-spinner.entry.js +0 -4
  595. package/dist/esm-es5/ion-split-pane.entry.js +0 -4
  596. package/dist/esm-es5/ion-tab-bar_2.entry.js +0 -4
  597. package/dist/esm-es5/ion-tab_2.entry.js +0 -4
  598. package/dist/esm-es5/ion-text.entry.js +0 -4
  599. package/dist/esm-es5/ion-textarea.entry.js +0 -4
  600. package/dist/esm-es5/ion-toast.entry.js +0 -4
  601. package/dist/esm-es5/ion-toggle.entry.js +0 -4
  602. package/dist/esm-es5/ionic-global-b26f573e.js +0 -4
  603. package/dist/esm-es5/ionic.js +0 -4
  604. package/dist/esm-es5/ios.transition-4047cb68.js +0 -4
  605. package/dist/esm-es5/keyboard-52278bd7.js +0 -4
  606. package/dist/esm-es5/keyboard-73175e24.js +0 -4
  607. package/dist/esm-es5/keyboard-controller-ec5c2bfa.js +0 -4
  608. package/dist/esm-es5/loader.js +0 -4
  609. package/dist/esm-es5/lock-controller-316928be.js +0 -4
  610. package/dist/esm-es5/md.transition-30ce8d1b.js +0 -4
  611. package/dist/esm-es5/notch-controller-1a1f7183.js +0 -4
  612. package/dist/esm-es5/overlays-d99dcb0a.js +0 -4
  613. package/dist/esm-es5/spinner-configs-964f7cf3.js +0 -4
  614. package/dist/esm-es5/status-tap-42a8af65.js +0 -4
  615. package/dist/esm-es5/swipe-back-04123e7c.js +0 -4
  616. package/dist/esm-es5/theme-01f3f29c.js +0 -4
  617. package/dist/esm-es5/watch-options-c2911ace.js +0 -4
  618. package/dist/ionic/ionic.js +0 -127
  619. package/dist/ionic/p-00023f5a.system.js +0 -4
  620. package/dist/ionic/p-012c3ceb.system.js +0 -4
  621. package/dist/ionic/p-03480b95.system.entry.js +0 -4
  622. package/dist/ionic/p-08cef0b1.entry.js +0 -4
  623. package/dist/ionic/p-08e01816.system.js +0 -4
  624. package/dist/ionic/p-0af640d6.entry.js +0 -4
  625. package/dist/ionic/p-105b2e8b.entry.js +0 -4
  626. package/dist/ionic/p-117d0013.system.entry.js +0 -4
  627. package/dist/ionic/p-11dca959.entry.js +0 -4
  628. package/dist/ionic/p-12193821.system.js +0 -4
  629. package/dist/ionic/p-12830298.system.entry.js +0 -4
  630. package/dist/ionic/p-14154301.system.entry.js +0 -4
  631. package/dist/ionic/p-1706b406.system.entry.js +0 -4
  632. package/dist/ionic/p-17e21141.js +0 -4
  633. package/dist/ionic/p-19494658.system.entry.js +0 -4
  634. package/dist/ionic/p-1966a13c.system.js +0 -4
  635. package/dist/ionic/p-1974d5b2.system.js +0 -4
  636. package/dist/ionic/p-1a7df1c3.system.js +0 -4
  637. package/dist/ionic/p-1a81ac09.system.js +0 -4
  638. package/dist/ionic/p-1b9c59ab.js +0 -4
  639. package/dist/ionic/p-1d307396.system.js +0 -4
  640. package/dist/ionic/p-1dfc11b3.system.js +0 -4
  641. package/dist/ionic/p-1e4371bd.js +0 -4
  642. package/dist/ionic/p-1e955a45.system.js +0 -4
  643. package/dist/ionic/p-200fc491.js +0 -4
  644. package/dist/ionic/p-20d469d0.system.js +0 -4
  645. package/dist/ionic/p-21891ead.js +0 -4
  646. package/dist/ionic/p-2233344a.system.js +0 -4
  647. package/dist/ionic/p-2469240b.entry.js +0 -4
  648. package/dist/ionic/p-24a6c8a3.system.entry.js +0 -4
  649. package/dist/ionic/p-257fb777.entry.js +0 -4
  650. package/dist/ionic/p-25b10f81.js +0 -4
  651. package/dist/ionic/p-2b7827c7.js +0 -4
  652. package/dist/ionic/p-2bff0e69.system.entry.js +0 -4
  653. package/dist/ionic/p-31dc303d.entry.js +0 -4
  654. package/dist/ionic/p-3535d6b5.entry.js +0 -4
  655. package/dist/ionic/p-35cdfd77.system.entry.js +0 -4
  656. package/dist/ionic/p-393ffcc2.entry.js +0 -4
  657. package/dist/ionic/p-39fa7dd1.system.entry.js +0 -4
  658. package/dist/ionic/p-3a30f31b.system.entry.js +0 -4
  659. package/dist/ionic/p-3e1e14d9.system.js +0 -4
  660. package/dist/ionic/p-42f08b26.system.entry.js +0 -4
  661. package/dist/ionic/p-4609d030.system.js +0 -4
  662. package/dist/ionic/p-481e0885.entry.js +0 -4
  663. package/dist/ionic/p-4a5be299.system.entry.js +0 -4
  664. package/dist/ionic/p-4c667fce.js +0 -4
  665. package/dist/ionic/p-4cf4172e.entry.js +0 -4
  666. package/dist/ionic/p-4da92dac.entry.js +0 -4
  667. package/dist/ionic/p-4ed5db19.system.js +0 -4
  668. package/dist/ionic/p-4f255d5a.system.js +0 -4
  669. package/dist/ionic/p-50cb2e8b.system.entry.js +0 -4
  670. package/dist/ionic/p-57957c0f.entry.js +0 -4
  671. package/dist/ionic/p-57d6e18e.entry.js +0 -4
  672. package/dist/ionic/p-57e55ecb.system.js +0 -4
  673. package/dist/ionic/p-5b67b447.js +0 -4
  674. package/dist/ionic/p-5c9feddc.system.entry.js +0 -4
  675. package/dist/ionic/p-5fac20aa.system.entry.js +0 -4
  676. package/dist/ionic/p-612096e6.system.entry.js +0 -4
  677. package/dist/ionic/p-6201c4ba.entry.js +0 -4
  678. package/dist/ionic/p-625248d0.system.js +0 -4
  679. package/dist/ionic/p-663413be.system.js +0 -4
  680. package/dist/ionic/p-6636a436.js +0 -4
  681. package/dist/ionic/p-66a5d6a8.js +0 -5
  682. package/dist/ionic/p-66df5468.system.entry.js +0 -4
  683. package/dist/ionic/p-67077d48.entry.js +0 -4
  684. package/dist/ionic/p-67cacd6d.entry.js +0 -4
  685. package/dist/ionic/p-6835ebdd.system.entry.js +0 -4
  686. package/dist/ionic/p-6b8530f5.system.entry.js +0 -4
  687. package/dist/ionic/p-6c474e87.entry.js +0 -4
  688. package/dist/ionic/p-6dd86ff5.system.entry.js +0 -4
  689. package/dist/ionic/p-6ec0c94a.entry.js +0 -4
  690. package/dist/ionic/p-6f832afe.system.entry.js +0 -4
  691. package/dist/ionic/p-707408c5.system.entry.js +0 -4
  692. package/dist/ionic/p-712c0131.entry.js +0 -4
  693. package/dist/ionic/p-721f43f9.entry.js +0 -4
  694. package/dist/ionic/p-7445a2e5.system.js +0 -4
  695. package/dist/ionic/p-7611ede3.system.entry.js +0 -4
  696. package/dist/ionic/p-781e2dbb.system.js +0 -4
  697. package/dist/ionic/p-792919fd.system.js +0 -4
  698. package/dist/ionic/p-7b8c12c3.entry.js +0 -4
  699. package/dist/ionic/p-7c5c7ae1.system.entry.js +0 -4
  700. package/dist/ionic/p-7e3e6ed2.entry.js +0 -4
  701. package/dist/ionic/p-7ffedf77.system.entry.js +0 -4
  702. package/dist/ionic/p-809483ac.js +0 -4
  703. package/dist/ionic/p-81904a80.entry.js +0 -4
  704. package/dist/ionic/p-84096b45.system.js +0 -4
  705. package/dist/ionic/p-8450f761.entry.js +0 -4
  706. package/dist/ionic/p-8460d95a.entry.js +0 -4
  707. package/dist/ionic/p-85b01465.js +0 -4
  708. package/dist/ionic/p-865fe95c.entry.js +0 -4
  709. package/dist/ionic/p-8674af94.entry.js +0 -4
  710. package/dist/ionic/p-890a4ee2.entry.js +0 -4
  711. package/dist/ionic/p-891553d8.entry.js +0 -4
  712. package/dist/ionic/p-8985cdb6.system.js +0 -4
  713. package/dist/ionic/p-8b050e84.system.js +0 -4
  714. package/dist/ionic/p-8d2d39d0.js +0 -4
  715. package/dist/ionic/p-8dacf4e2.entry.js +0 -4
  716. package/dist/ionic/p-8ededb41.js +0 -4
  717. package/dist/ionic/p-94551927.js +0 -4
  718. package/dist/ionic/p-95001a19.js +0 -4
  719. package/dist/ionic/p-965287fb.system.entry.js +0 -4
  720. package/dist/ionic/p-979d4f5c.system.js +0 -4
  721. package/dist/ionic/p-98fd942b.system.entry.js +0 -4
  722. package/dist/ionic/p-9df5043e.system.entry.js +0 -4
  723. package/dist/ionic/p-9e753482.system.entry.js +0 -4
  724. package/dist/ionic/p-a0fd2fe5.system.entry.js +0 -4
  725. package/dist/ionic/p-a2c6a9c8.entry.js +0 -4
  726. package/dist/ionic/p-a2dd5b69.system.entry.js +0 -4
  727. package/dist/ionic/p-a4866e3e.system.js +0 -4
  728. package/dist/ionic/p-a5dbe0ff.system.entry.js +0 -4
  729. package/dist/ionic/p-a7a97bf4.system.entry.js +0 -4
  730. package/dist/ionic/p-a835aca8.entry.js +0 -4
  731. package/dist/ionic/p-a83e3290.system.js +0 -4
  732. package/dist/ionic/p-a93873de.system.js +0 -4
  733. package/dist/ionic/p-aad57e35.entry.js +0 -4
  734. package/dist/ionic/p-ab7337e1.entry.js +0 -4
  735. package/dist/ionic/p-abe101da.system.js +0 -4
  736. package/dist/ionic/p-ad592db9.entry.js +0 -4
  737. package/dist/ionic/p-aded71ec.js +0 -4
  738. package/dist/ionic/p-ae039072.entry.js +0 -4
  739. package/dist/ionic/p-aebfab05.system.entry.js +0 -4
  740. package/dist/ionic/p-b06ac4a5.system.js +0 -4
  741. package/dist/ionic/p-b2e7eda0.system.entry.js +0 -4
  742. package/dist/ionic/p-b445ff65.entry.js +0 -4
  743. package/dist/ionic/p-b4d17da0.system.entry.js +0 -4
  744. package/dist/ionic/p-b5432d15.entry.js +0 -4
  745. package/dist/ionic/p-b8050298.system.entry.js +0 -4
  746. package/dist/ionic/p-b904cfe2.system.entry.js +0 -4
  747. package/dist/ionic/p-b9c793d4.entry.js +0 -4
  748. package/dist/ionic/p-bafc3eae.system.entry.js +0 -4
  749. package/dist/ionic/p-bf184319.system.entry.js +0 -4
  750. package/dist/ionic/p-bfb763d0.system.entry.js +0 -4
  751. package/dist/ionic/p-c16443a8.system.js +0 -4
  752. package/dist/ionic/p-c1b7d311.system.entry.js +0 -4
  753. package/dist/ionic/p-c2160d8c.entry.js +0 -4
  754. package/dist/ionic/p-c468af8a.system.js +0 -4
  755. package/dist/ionic/p-c5b77054.entry.js +0 -4
  756. package/dist/ionic/p-c5bfa3e9.entry.js +0 -4
  757. package/dist/ionic/p-c61cc894.js +0 -4
  758. package/dist/ionic/p-cad82569.entry.js +0 -4
  759. package/dist/ionic/p-d16fab3f.entry.js +0 -4
  760. package/dist/ionic/p-d1eb2d7f.entry.js +0 -4
  761. package/dist/ionic/p-d382f09c.system.js +0 -4
  762. package/dist/ionic/p-d8d84afa.system.js +0 -4
  763. package/dist/ionic/p-d984c1ab.system.entry.js +0 -4
  764. package/dist/ionic/p-dabe3bd4.js +0 -4
  765. package/dist/ionic/p-df069a0d.entry.js +0 -4
  766. package/dist/ionic/p-e1678e42.entry.js +0 -4
  767. package/dist/ionic/p-e6068998.system.entry.js +0 -4
  768. package/dist/ionic/p-e673a0a2.system.js +0 -4
  769. package/dist/ionic/p-e727e32d.system.entry.js +0 -4
  770. package/dist/ionic/p-e8245753.entry.js +0 -4
  771. package/dist/ionic/p-e887b6a9.system.js +0 -4
  772. package/dist/ionic/p-f08dfb19.entry.js +0 -4
  773. package/dist/ionic/p-f0c9f8e3.system.entry.js +0 -4
  774. package/dist/ionic/p-f0ef39ab.entry.js +0 -4
  775. package/dist/ionic/p-f11a9436.system.js +0 -5
  776. package/dist/ionic/p-f22490a7.system.entry.js +0 -4
  777. package/dist/ionic/p-f6bb9be7.system.entry.js +0 -4
  778. package/dist/ionic/p-f6e7d104.system.js +0 -4
  779. package/dist/ionic/p-f725bf9e.system.js +0 -4
  780. package/dist/ionic/p-f9a87db2.system.entry.js +0 -4
  781. package/dist/ionic/p-fa3f4b96.system.js +0 -4
  782. package/dist/ionic/p-fe063952.system.entry.js +0 -4
  783. package/loader/package.json +0 -11
  784. /package/dist/cjs/{compare-with-utils-df1001d7.js → compare-with-utils-DSicavqM.js} +0 -0
  785. /package/dist/cjs/{cubic-bezier-f2dccc53.js → cubic-bezier-DAjy1V-e.js} +0 -0
  786. /package/dist/cjs/{dir-94c21456.js → dir-Cn0z1rJH.js} +0 -0
  787. /package/dist/cjs/{focus-visible-7a0ce04f.js → focus-visible-CCvKiLh3.js} +0 -0
  788. /package/dist/cjs/{index-c8d52405.js → index-DkNv4J_i.js} +0 -0
  789. /package/dist/cjs/{lock-controller-6585a42a.js → lock-controller-aDB9wrEf.js} +0 -0
  790. /package/dist/cjs/{spinner-configs-282fd50a.js → spinner-configs-DxHKnd3-.js} +0 -0
  791. /package/dist/cjs/{theme-d1c573d2.js → theme-CeDs6Hcv.js} +0 -0
  792. /package/dist/cjs/{watch-options-f5f3e158.js → watch-options-CviOsrTS.js} +0 -0
  793. /package/dist/esm/{compare-with-utils-a96ff2ea.js → compare-with-utils-sObYyvOy.js} +0 -0
  794. /package/dist/esm/{cubic-bezier-fe2083dc.js → cubic-bezier-hHmYLOfE.js} +0 -0
  795. /package/dist/esm/{dir-babeabeb.js → dir-C53feagD.js} +0 -0
  796. /package/dist/esm/{focus-visible-dd40d69f.js → focus-visible-BmVRXR1y.js} +0 -0
  797. /package/dist/esm/{index-a5d50daf.js → index-ZjP4CjeZ.js} +0 -0
  798. /package/dist/esm/{lock-controller-316928be.js → lock-controller-B-hirT0v.js} +0 -0
  799. /package/dist/esm/{spinner-configs-964f7cf3.js → spinner-configs-D4RIp70E.js} +0 -0
  800. /package/dist/esm/{theme-01f3f29c.js → theme-DiVJyqlX.js} +0 -0
  801. /package/dist/esm/{watch-options-c2911ace.js → watch-options-Dtdm8lKC.js} +0 -0
  802. /package/dist/ionic/{p-ccd02320.js → p-B-hirT0v.js} +0 -0
  803. /package/dist/ionic/{p-9b97df10.js → p-BTEOs1at.js} +0 -0
  804. /package/dist/ionic/{p-d47265c8.js → p-BmVRXR1y.js} +0 -0
  805. /package/dist/ionic/{p-fb813dab.js → p-C53feagD.js} +0 -0
  806. /package/dist/ionic/{p-f0c2a614.js → p-D4RIp70E.js} +0 -0
  807. /package/dist/ionic/{p-47794def.js → p-DiVJyqlX.js} +0 -0
  808. /package/dist/ionic/{p-459d13d5.js → p-Dtdm8lKC.js} +0 -0
  809. /package/dist/ionic/{p-7b30edcc.js → p-ZjP4CjeZ.js} +0 -0
  810. /package/dist/ionic/{p-2408c236.js → p-hHmYLOfE.js} +0 -0
  811. /package/dist/ionic/{p-de756e5c.js → p-sObYyvOy.js} +0 -0
@@ -3,27 +3,23 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- Object.defineProperty(exports, '__esModule', { value: true });
7
-
8
- const index$3 = require('./index-2e236a04.js');
9
- const index$2 = require('./index-31b07b9c.js');
10
- const frameworkDelegate = require('./framework-delegate-862d9d00.js');
11
- const helpers = require('./helpers-8a48fdea.js');
12
- const lockController = require('./lock-controller-6585a42a.js');
13
- const index$4 = require('./index-cc858e97.js');
14
- const capacitor = require('./capacitor-c04564bf.js');
15
- const overlays = require('./overlays-4c291a05.js');
16
- const theme = require('./theme-d1c573d2.js');
17
- const index$5 = require('./index-1eff7149.js');
18
- const ionicGlobal = require('./ionic-global-6dea5a96.js');
19
- const keyboard = require('./keyboard-af1bb365.js');
20
- const animation = require('./animation-ab2d3449.js');
21
- const cubicBezier = require('./cubic-bezier-f2dccc53.js');
22
- const index$1 = require('./index-ee07ed59.js');
23
- const index = require('./index-c8d52405.js');
24
- require('./hardware-back-button-3d2b1004.js');
25
- require('./gesture-controller-9436f482.js');
26
- require('./keyboard-0272231f.js');
6
+ var index$3 = require('./index-DODXXb_r.js');
7
+ var index$2 = require('./index-CVa6JE57.js');
8
+ var frameworkDelegate = require('./framework-delegate-C7sIJyT5.js');
9
+ var helpers = require('./helpers-BITAzJfi.js');
10
+ var lockController = require('./lock-controller-aDB9wrEf.js');
11
+ var capacitor = require('./capacitor-DmA66EwP.js');
12
+ var overlays = require('./overlays-DRDumz2b.js');
13
+ var theme = require('./theme-CeDs6Hcv.js');
14
+ var index$4 = require('./index-y0QaNtCi.js');
15
+ var keyboard = require('./keyboard-hHzlEQpk.js');
16
+ var animation = require('./animation-0T7gKwOt.js');
17
+ var cubicBezier = require('./cubic-bezier-DAjy1V-e.js');
18
+ var index$1 = require('./index-CAvQ7Tka.js');
19
+ var index = require('./index-DkNv4J_i.js');
20
+ require('./hardware-back-button-D90qZxju.js');
21
+ require('./gesture-controller-dtqlP_q4.js');
22
+ require('./keyboard-UuAS4D_9.js');
27
23
 
28
24
  var Style;
29
25
  (function (Style) {
@@ -445,7 +441,7 @@ const createSwipeToCloseGesture = (el, animation, statusBarStyle, onDismiss) =>
445
441
  * canDismiss is checked.
446
442
  */
447
443
  const shouldComplete = !isAttemptingDismissWithCanDismiss && threshold >= DISMISS_THRESHOLD;
448
- let newStepValue = shouldComplete ? -0.001 : 0.001;
444
+ let newStepValue = shouldComplete ? -1e-3 : 0.001;
449
445
  if (!shouldComplete) {
450
446
  animation.easing('cubic-bezier(1, 0, 0.68, 0.28)');
451
447
  newStepValue += cubicBezier.getTimeGivenProgression([0, 0], [1, 0], [0.68, 0.28], [1, 1], clampedStep)[0];
@@ -588,47 +584,7 @@ const iosEnterAnimation = (baseEl, opts) => {
588
584
  .addElement(baseEl)
589
585
  .easing('cubic-bezier(0.32,0.72,0,1)')
590
586
  .duration(500)
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
- });
587
+ .addAnimation([wrapperAnimation]);
632
588
  if (contentAnimation) {
633
589
  baseAnimation.addAnimation(contentAnimation);
634
590
  }
@@ -709,7 +665,7 @@ const createLeaveAnimation$1 = () => {
709
665
  * iOS Modal Leave Animation
710
666
  */
711
667
  const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
712
- const { presentingEl, currentBreakpoint, expandToScroll } = opts;
668
+ const { presentingEl, currentBreakpoint } = opts;
713
669
  const root = helpers.getElementRoot(baseEl);
714
670
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
715
671
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -718,29 +674,7 @@ const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
718
674
  .addElement(baseEl)
719
675
  .easing('cubic-bezier(0.32,0.72,0,1)')
720
676
  .duration(duration)
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
- });
677
+ .addAnimation(wrapperAnimation);
744
678
  const appEl = baseEl.closest('ion-app');
745
679
  if (presentingEl && appEl) {
746
680
  const isMobile = window.innerWidth < 768;
@@ -831,52 +765,12 @@ const mdEnterAnimation = (baseEl, opts) => {
831
765
  wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
832
766
  // The content animation is only added if scrolling is enabled for
833
767
  // all the breakpoints.
834
- expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
768
+ !expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
835
769
  const baseAnimation = animation.createAnimation()
836
770
  .addElement(baseEl)
837
771
  .easing('cubic-bezier(0.36,0.66,0.04,1)')
838
772
  .duration(280)
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
- });
773
+ .addAnimation([backdropAnimation, wrapperAnimation]);
880
774
  if (contentAnimation) {
881
775
  baseAnimation.addAnimation(contentAnimation);
882
776
  }
@@ -895,7 +789,7 @@ const createLeaveAnimation = () => {
895
789
  * Md Modal Leave Animation
896
790
  */
897
791
  const mdLeaveAnimation = (baseEl, opts) => {
898
- const { currentBreakpoint, expandToScroll } = opts;
792
+ const { currentBreakpoint } = opts;
899
793
  const root = helpers.getElementRoot(baseEl);
900
794
  const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
901
795
  backdropAnimation.addElement(root.querySelector('ion-backdrop'));
@@ -903,29 +797,7 @@ const mdLeaveAnimation = (baseEl, opts) => {
903
797
  const baseAnimation = animation.createAnimation()
904
798
  .easing('cubic-bezier(0.47,0,0.745,0.715)')
905
799
  .duration(200)
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
- });
800
+ .addAnimation([backdropAnimation, wrapperAnimation]);
929
801
  return baseAnimation;
930
802
  };
931
803
 
@@ -957,6 +829,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
957
829
  let offset = 0;
958
830
  let canDismissBlocksGesture = false;
959
831
  let cachedScrollEl = null;
832
+ let cachedFooterEls = null;
833
+ let cachedFooterYPosition = null;
834
+ let currentFooterState = null;
960
835
  const canDismissMaxStep = 0.95;
961
836
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
962
837
  const minBreakpoint = breakpoints[0];
@@ -986,29 +861,87 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
986
861
  baseEl.classList.add(overlays.FOCUS_TRAP_DISABLE_CLASS);
987
862
  };
988
863
  /**
989
- * Toggles the visible modal footer when `expandToScroll` is disabled.
990
- * @param footer The footer to show.
864
+ * Toggles the footer to an absolute position while moving to prevent
865
+ * it from shaking while the sheet is being dragged.
866
+ * @param newPosition Whether the footer is in a moving or stationary position.
991
867
  */
992
- const swapFooterVisibility = (footer) => {
993
- const originalFooter = baseEl.querySelector('ion-footer');
994
- if (!originalFooter) {
995
- return;
868
+ const swapFooterPosition = (newPosition) => {
869
+ if (!cachedFooterEls) {
870
+ cachedFooterEls = Array.from(baseEl.querySelectorAll('ion-footer'));
871
+ if (!cachedFooterEls.length) {
872
+ return;
873
+ }
996
874
  }
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
875
  const page = baseEl.querySelector('.ion-page');
1003
- if (footer === 'original') {
1004
- page.style.removeProperty('padding-bottom');
876
+ currentFooterState = newPosition;
877
+ if (newPosition === 'stationary') {
878
+ cachedFooterEls.forEach((cachedFooterEl) => {
879
+ // Reset positioning styles to allow normal document flow
880
+ cachedFooterEl.classList.remove('modal-footer-moving');
881
+ cachedFooterEl.style.removeProperty('position');
882
+ cachedFooterEl.style.removeProperty('width');
883
+ cachedFooterEl.style.removeProperty('height');
884
+ cachedFooterEl.style.removeProperty('top');
885
+ cachedFooterEl.style.removeProperty('left');
886
+ page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
887
+ // Move to page
888
+ page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
889
+ });
1005
890
  }
1006
891
  else {
1007
- const pagePadding = footerToShow.clientHeight;
1008
- page.style.setProperty('padding-bottom', `${pagePadding}px`);
892
+ let footerHeights = 0;
893
+ cachedFooterEls.forEach((cachedFooterEl, index) => {
894
+ // Get both the footer and document body positions
895
+ const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
896
+ const bodyRect = document.body.getBoundingClientRect();
897
+ // Calculate the total height of all footers
898
+ // so we can add padding to the page element
899
+ footerHeights += cachedFooterEl.clientHeight;
900
+ // Calculate absolute position relative to body
901
+ // We need to subtract the body's offsetTop to get true position within document.body
902
+ const absoluteTop = cachedFooterElRect.top - bodyRect.top;
903
+ const absoluteLeft = cachedFooterElRect.left - bodyRect.left;
904
+ // Capture the footer's current dimensions and store them in CSS variables for
905
+ // later use when applying absolute positioning.
906
+ cachedFooterEl.style.setProperty('--pinned-width', `${cachedFooterEl.clientWidth}px`);
907
+ cachedFooterEl.style.setProperty('--pinned-height', `${cachedFooterEl.clientHeight}px`);
908
+ cachedFooterEl.style.setProperty('--pinned-top', `${absoluteTop}px`);
909
+ cachedFooterEl.style.setProperty('--pinned-left', `${absoluteLeft}px`);
910
+ // Only cache the first footer's Y position
911
+ // This is used to determine if the sheet has been moved below the footer
912
+ // and needs to be swapped back to stationary so it collapses correctly.
913
+ if (index === 0) {
914
+ cachedFooterYPosition = absoluteTop;
915
+ // If there's a header, we need to combine the header height with the footer position
916
+ // because the header moves with the drag handle, so when it starts overlapping the footer,
917
+ // we need to account for that.
918
+ const header = baseEl.querySelector('ion-header');
919
+ if (header) {
920
+ cachedFooterYPosition -= header.clientHeight;
921
+ }
922
+ }
923
+ });
924
+ // Apply the pinning of styles after we've calculated everything
925
+ // so that we don't cause layouts to shift while calculating the footer positions.
926
+ // Otherwise, with multiple footers we'll end up capturing the wrong positions.
927
+ cachedFooterEls.forEach((cachedFooterEl) => {
928
+ // Add padding to the parent element to prevent content from being hidden
929
+ // when the footer is positioned absolutely. This has to be done before we
930
+ // make the footer absolutely positioned or we may accidentally cause the
931
+ // sheet to scroll.
932
+ page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
933
+ // Apply positioning styles to keep footer at bottom
934
+ cachedFooterEl.classList.add('modal-footer-moving');
935
+ // Apply our preserved styles to pin the footer
936
+ cachedFooterEl.style.setProperty('position', 'absolute');
937
+ cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
938
+ cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
939
+ cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
940
+ cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
941
+ // Move the element to the body when everything else is done
942
+ document.body.appendChild(cachedFooterEl);
943
+ });
1009
944
  }
1010
- footerToHide.style.setProperty('display', 'none');
1011
- footerToHide.setAttribute('aria-hidden', 'true');
1012
945
  };
1013
946
  /**
1014
947
  * After the entering animation completes,
@@ -1102,12 +1035,11 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1102
1035
  }
1103
1036
  /**
1104
1037
  * 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.
1038
+ * the footer position to moving so that it doesn't shake
1039
+ * while the sheet is being dragged.
1108
1040
  */
1109
1041
  if (!expandToScroll) {
1110
- swapFooterVisibility('original');
1042
+ swapFooterPosition('moving');
1111
1043
  }
1112
1044
  /**
1113
1045
  * If we are pulling down, then it is possible we are pulling on the content.
@@ -1126,6 +1058,21 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1126
1058
  animation.progressStart(true, 1 - currentBreakpoint);
1127
1059
  };
1128
1060
  const onMove = (detail) => {
1061
+ /**
1062
+ * If `expandToScroll` is disabled, we need to see if we're currently below
1063
+ * the footer element and the footer is in a stationary position. If so,
1064
+ * we need to make the stationary the original position so that the footer
1065
+ * collapses with the sheet.
1066
+ */
1067
+ if (!expandToScroll && cachedFooterYPosition !== null && currentFooterState !== null) {
1068
+ // Check if we need to swap the footer position
1069
+ if (detail.currentY >= cachedFooterYPosition && currentFooterState === 'moving') {
1070
+ swapFooterPosition('stationary');
1071
+ }
1072
+ else if (detail.currentY < cachedFooterYPosition && currentFooterState === 'stationary') {
1073
+ swapFooterPosition('moving');
1074
+ }
1075
+ }
1129
1076
  /**
1130
1077
  * If `expandToScroll` is disabled, and an upwards swipe gesture is done within
1131
1078
  * the scrollable content, we should not allow the swipe gesture to continue.
@@ -1185,6 +1132,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1185
1132
  * is not scrolled to the top.
1186
1133
  */
1187
1134
  if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
1135
+ /**
1136
+ * If expand to scroll is disabled, we need to make sure we swap the footer position
1137
+ * back to stationary so that it will collapse correctly if the modal is dismissed without
1138
+ * dragging (e.g. through a dismiss button).
1139
+ * This can cause issues if the user has a modal with content that can be dragged, as we'll
1140
+ * swap to moving on drag and if we don't swap back here then the footer will get stuck.
1141
+ */
1142
+ swapFooterPosition('stationary');
1188
1143
  return;
1189
1144
  }
1190
1145
  /**
@@ -1259,14 +1214,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1259
1214
  * snapping animation completes.
1260
1215
  */
1261
1216
  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
- }
1270
1217
  if (shouldPreventDismiss) {
1271
1218
  handleCanDismiss(baseEl, animation);
1272
1219
  }
@@ -1283,10 +1230,28 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1283
1230
  if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
1284
1231
  contentEl.scrollY = true;
1285
1232
  }
1233
+ /**
1234
+ * If expandToScroll is disabled and we're animating
1235
+ * to close the sheet, we need to swap
1236
+ * the footer position to stationary so that it
1237
+ * will collapse correctly. We cannot just always swap
1238
+ * here or it'll be jittery while animating movement.
1239
+ */
1240
+ if (!expandToScroll && snapToBreakpoint === 0) {
1241
+ swapFooterPosition('stationary');
1242
+ }
1286
1243
  return new Promise((resolve) => {
1287
1244
  animation
1288
1245
  .onFinish(() => {
1289
1246
  if (shouldRemainOpen) {
1247
+ /**
1248
+ * If expandToScroll is disabled, we need to swap
1249
+ * the footer position to stationary so that it
1250
+ * will act as it would by default.
1251
+ */
1252
+ if (!expandToScroll) {
1253
+ swapFooterPosition('stationary');
1254
+ }
1290
1255
  /**
1291
1256
  * Once the snapping animation completes,
1292
1257
  * we need to reset the animation to go
@@ -1351,11 +1316,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
1351
1316
  };
1352
1317
  };
1353
1318
 
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}";
1355
- const IonModalIosStyle0 = modalIosCss;
1319
+ 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}";
1356
1320
 
1357
1321
  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}";
1358
- const IonModalMdStyle0 = modalMdCss;
1359
1322
 
1360
1323
  const Modal = class {
1361
1324
  constructor(hostRef) {
@@ -1378,6 +1341,112 @@ const Modal = class {
1378
1341
  this.inline = false;
1379
1342
  // Whether or not modal is being dismissed via gesture
1380
1343
  this.gestureAnimationDismissing = false;
1344
+ this.presented = false;
1345
+ /** @internal */
1346
+ this.hasController = false;
1347
+ /**
1348
+ * If `true`, the keyboard will be automatically dismissed when the overlay is presented.
1349
+ */
1350
+ this.keyboardClose = true;
1351
+ /**
1352
+ * Controls whether scrolling or dragging within the sheet modal expands
1353
+ * it to a larger breakpoint. This only takes effect when `breakpoints`
1354
+ * and `initialBreakpoint` are set.
1355
+ *
1356
+ * If `true`, scrolling or dragging anywhere in the modal will first expand
1357
+ * it to the next breakpoint. Once fully expanded, scrolling will affect the
1358
+ * content.
1359
+ * If `false`, scrolling will always affect the content. The modal will
1360
+ * only expand when dragging the header or handle. The modal will close when
1361
+ * dragging the header or handle. It can also be closed when dragging the
1362
+ * content, but only if the content is scrolled to the top.
1363
+ */
1364
+ this.expandToScroll = true;
1365
+ /**
1366
+ * A decimal value between 0 and 1 that indicates the
1367
+ * point after which the backdrop will begin to fade in
1368
+ * when using a sheet modal. Prior to this point, the
1369
+ * backdrop will be hidden and the content underneath
1370
+ * the sheet can be interacted with. This value is exclusive
1371
+ * meaning the backdrop will become active after the value
1372
+ * specified.
1373
+ */
1374
+ this.backdropBreakpoint = 0;
1375
+ /**
1376
+ * The interaction behavior for the sheet modal when the handle is pressed.
1377
+ *
1378
+ * Defaults to `"none"`, which means the modal will not change size or position when the handle is pressed.
1379
+ * Set to `"cycle"` to let the modal cycle between available breakpoints when pressed.
1380
+ *
1381
+ * Handle behavior is unavailable when the `handle` property is set to `false` or
1382
+ * when the `breakpoints` property is not set (using a fullscreen or card modal).
1383
+ */
1384
+ this.handleBehavior = 'none';
1385
+ /**
1386
+ * If `true`, the modal will be dismissed when the backdrop is clicked.
1387
+ */
1388
+ this.backdropDismiss = true;
1389
+ /**
1390
+ * If `true`, a backdrop will be displayed behind the modal.
1391
+ * This property controls whether or not the backdrop
1392
+ * darkens the screen when the modal is presented.
1393
+ * It does not control whether or not the backdrop
1394
+ * is active or present in the DOM.
1395
+ */
1396
+ this.showBackdrop = true;
1397
+ /**
1398
+ * If `true`, the modal will animate.
1399
+ */
1400
+ this.animated = true;
1401
+ /**
1402
+ * If `true`, the modal will open. If `false`, the modal will close.
1403
+ * Use this if you need finer grained control over presentation, otherwise
1404
+ * just use the modalController or the `trigger` property.
1405
+ * Note: `isOpen` will not automatically be set back to `false` when
1406
+ * the modal dismisses. You will need to do that in your code.
1407
+ */
1408
+ this.isOpen = false;
1409
+ /**
1410
+ * If `true`, the component passed into `ion-modal` will
1411
+ * automatically be mounted when the modal is created. The
1412
+ * component will remain mounted even when the modal is dismissed.
1413
+ * However, the component will be destroyed when the modal is
1414
+ * destroyed. This property is not reactive and should only be
1415
+ * used when initially creating a modal.
1416
+ *
1417
+ * Note: This feature only applies to inline modals in JavaScript
1418
+ * frameworks such as Angular, React, and Vue.
1419
+ */
1420
+ this.keepContentsMounted = false;
1421
+ /**
1422
+ * If `true`, focus will not be allowed to move outside of this overlay.
1423
+ * If `false`, focus will be allowed to move outside of the overlay.
1424
+ *
1425
+ * In most scenarios this property should remain set to `true`. Setting
1426
+ * this property to `false` can cause severe accessibility issues as users
1427
+ * relying on assistive technologies may be able to move focus into
1428
+ * a confusing state. We recommend only setting this to `false` when
1429
+ * absolutely necessary.
1430
+ *
1431
+ * Developers may want to consider disabling focus trapping if this
1432
+ * overlay presents a non-Ionic overlay from a 3rd party library.
1433
+ * Developers would disable focus trapping on the Ionic overlay
1434
+ * when presenting the 3rd party overlay and then re-enable
1435
+ * focus trapping when dismissing the 3rd party overlay and moving
1436
+ * focus back to the Ionic overlay.
1437
+ */
1438
+ this.focusTrap = true;
1439
+ /**
1440
+ * Determines whether or not a modal can dismiss
1441
+ * when calling the `dismiss` method.
1442
+ *
1443
+ * If the value is `true` or the value's function returns `true`, the modal will close when trying to dismiss.
1444
+ * If the value is `false` or the value's function returns `false`, the modal will not close when trying to dismiss.
1445
+ *
1446
+ * See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
1447
+ * if you need to access `this` from within the callback.
1448
+ */
1449
+ this.canDismiss = true;
1381
1450
  this.onHandleClick = () => {
1382
1451
  const { sheetTransition, handleBehavior } = this;
1383
1452
  if (handleBehavior !== 'cycle' || sheetTransition !== undefined) {
@@ -1415,32 +1484,6 @@ const Modal = class {
1415
1484
  el.dispatchEvent(ev);
1416
1485
  }
1417
1486
  };
1418
- this.presented = false;
1419
- this.hasController = false;
1420
- this.overlayIndex = undefined;
1421
- this.delegate = undefined;
1422
- this.keyboardClose = true;
1423
- this.enterAnimation = undefined;
1424
- this.leaveAnimation = undefined;
1425
- this.breakpoints = undefined;
1426
- this.expandToScroll = true;
1427
- this.initialBreakpoint = undefined;
1428
- this.backdropBreakpoint = 0;
1429
- this.handle = undefined;
1430
- this.handleBehavior = 'none';
1431
- this.component = undefined;
1432
- this.componentProps = undefined;
1433
- this.cssClass = undefined;
1434
- this.backdropDismiss = true;
1435
- this.showBackdrop = true;
1436
- this.animated = true;
1437
- this.presentingElement = undefined;
1438
- this.htmlAttributes = undefined;
1439
- this.isOpen = false;
1440
- this.trigger = undefined;
1441
- this.keepContentsMounted = false;
1442
- this.focusTrap = true;
1443
- this.canDismiss = true;
1444
1487
  }
1445
1488
  onIsOpenChange(newValue, oldValue) {
1446
1489
  if (newValue === true && oldValue === false) {
@@ -1510,7 +1553,7 @@ const Modal = class {
1510
1553
  this.currentBreakpoint = this.initialBreakpoint;
1511
1554
  }
1512
1555
  if (breakpoints !== undefined && initialBreakpoint !== undefined && !breakpoints.includes(initialBreakpoint)) {
1513
- index$4.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
1556
+ index$3.printIonWarning('[ion-modal] - Your breakpoints array must include the initialBreakpoint value.');
1514
1557
  }
1515
1558
  if (!((_a = this.htmlAttributes) === null || _a === void 0 ? void 0 : _a.id)) {
1516
1559
  overlays.setOverlayId(this.el);
@@ -1610,7 +1653,7 @@ const Modal = class {
1610
1653
  * get the transition incorrect.
1611
1654
  */
1612
1655
  if (helpers.hasLazyBuild(el)) {
1613
- await index$5.deepReady(this.usersElement);
1656
+ await index$4.deepReady(this.usersElement);
1614
1657
  /**
1615
1658
  * If keepContentsMounted="true" then the
1616
1659
  * JS Framework has already mounted the inner
@@ -1621,7 +1664,7 @@ const Modal = class {
1621
1664
  */
1622
1665
  }
1623
1666
  else if (!this.keepContentsMounted) {
1624
- await index$5.waitForMount();
1667
+ await index$4.waitForMount();
1625
1668
  }
1626
1669
  index$3.writeTask(() => this.el.classList.add('show-modal'));
1627
1670
  const hasCardModal = presentingElement !== undefined;
@@ -1630,7 +1673,7 @@ const Modal = class {
1630
1673
  * start of the animation so that it completes
1631
1674
  * by the time the card animation is done.
1632
1675
  */
1633
- if (hasCardModal && ionicGlobal.getIonMode(this) === 'ios') {
1676
+ if (hasCardModal && index$3.getIonMode(this) === 'ios') {
1634
1677
  // Cache the original status bar color before the modal is presented
1635
1678
  this.statusBarStyle = await StatusBar.getStyle();
1636
1679
  setCardStatusBarDark();
@@ -1682,14 +1725,14 @@ const Modal = class {
1682
1725
  }
1683
1726
  initSwipeToClose() {
1684
1727
  var _a;
1685
- if (ionicGlobal.getIonMode(this) !== 'ios') {
1728
+ if (index$3.getIonMode(this) !== 'ios') {
1686
1729
  return;
1687
1730
  }
1688
1731
  const { el } = this;
1689
1732
  // All of the elements needed for the swipe gesture
1690
1733
  // should be in the DOM and referenced by now, except
1691
1734
  // for the presenting el
1692
- const animationBuilder = this.leaveAnimation || index$4.config.get('modalLeave', iosLeaveAnimation);
1735
+ const animationBuilder = this.leaveAnimation || index$3.config.get('modalLeave', iosLeaveAnimation);
1693
1736
  const ani = (this.animation = animationBuilder(el, {
1694
1737
  presentingEl: this.presentingElement,
1695
1738
  expandToScroll: this.expandToScroll,
@@ -1733,7 +1776,7 @@ const Modal = class {
1733
1776
  if (!wrapperEl || initialBreakpoint === undefined) {
1734
1777
  return;
1735
1778
  }
1736
- const animationBuilder = this.enterAnimation || index$4.config.get('modalEnter', iosEnterAnimation);
1779
+ const animationBuilder = this.enterAnimation || index$3.config.get('modalEnter', iosEnterAnimation);
1737
1780
  const ani = (this.animation = animationBuilder(this.el, {
1738
1781
  presentingEl: this.presentingElement,
1739
1782
  currentBreakpoint: initialBreakpoint,
@@ -1807,7 +1850,7 @@ const Modal = class {
1807
1850
  * finishes when the dismiss animation does.
1808
1851
  */
1809
1852
  const hasCardModal = presentingElement !== undefined;
1810
- if (hasCardModal && ionicGlobal.getIonMode(this) === 'ios') {
1853
+ if (hasCardModal && index$3.getIonMode(this) === 'ios') {
1811
1854
  setCardStatusBarDefault(this.statusBarStyle);
1812
1855
  }
1813
1856
  /* tslint:disable-next-line */
@@ -1855,11 +1898,11 @@ const Modal = class {
1855
1898
  */
1856
1899
  async setCurrentBreakpoint(breakpoint) {
1857
1900
  if (!this.isSheetModal) {
1858
- index$4.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
1901
+ index$3.printIonWarning('[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.');
1859
1902
  return;
1860
1903
  }
1861
1904
  if (!this.breakpoints.includes(breakpoint)) {
1862
- index$4.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
1905
+ index$3.printIonWarning(`[ion-modal] - Attempted to set invalid breakpoint value ${breakpoint}. Please double check that the breakpoint value is part of your defined breakpoints.`);
1863
1906
  return;
1864
1907
  }
1865
1908
  const { currentBreakpoint, moveSheetToBreakpoint, canDismiss, breakpoints, animated } = this;
@@ -1907,21 +1950,21 @@ const Modal = class {
1907
1950
  render() {
1908
1951
  const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
1909
1952
  const showHandle = handle !== false && isSheetModal;
1910
- const mode = ionicGlobal.getIonMode(this);
1953
+ const mode = index$3.getIonMode(this);
1911
1954
  const isCardModal = presentingElement !== undefined && mode === 'ios';
1912
1955
  const isHandleCycle = handleBehavior === 'cycle';
1913
- return (index$3.h(index$3.Host, Object.assign({ key: '0991b2e4e32da511e59fb1463b47e4ac1b86d1ca', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1956
+ return (index$3.h(index$3.Host, Object.assign({ key: '0bcbdcfcd7d890eb599da3f97f21c317d34f8e0e', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1914
1957
  zIndex: `${20000 + this.overlayIndex}`,
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: 'ca9453ffe1021fb252ad9460676cfabb5633f00f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: '9f8da446a7b0f3b26aec856e13f6d6d131a7e37b', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '9d08bf600571849c97b58f66df40b496a358d1e1',
1958
+ }, 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: 'd72159e73daa5af7349aa9e8f695aa435eb43069', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && index$3.h("div", { key: 'fd2d9b13676ae72473881649a397b6eacde03a03', class: "modal-shadow" }), index$3.h("div", Object.assign({ key: '908eccb1ad982dcde2dbcff0cbb18b6e60f8ba74',
1916
1959
  /*
1917
1960
  role and aria-modal must be used on the
1918
1961
  same element. They must also be set inside the
1919
1962
  shadow DOM otherwise ion-button will not be highlighted
1920
1963
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
1921
1964
  */
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: 'f8bf0d1126e5376519101225d9965727121ee042', class: "modal-handle",
1965
+ 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: '332dc0b40363a77c7be62331d9f26def91c790e9', class: "modal-handle",
1923
1966
  // Prevents the handle from receiving keyboard focus when it does not cycle
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: '6d52849df98f2c6c8fbc03996a931ea6a39a512b' }))));
1967
+ 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: 'c32698350193c450327e97049daf8b8d1fda0d0e' }))));
1925
1968
  }
1926
1969
  get el() { return index$3.getElement(this); }
1927
1970
  static get watchers() { return {
@@ -1936,8 +1979,8 @@ const LIFECYCLE_MAP = {
1936
1979
  ionModalDidDismiss: 'ionViewDidLeave',
1937
1980
  };
1938
1981
  Modal.style = {
1939
- ios: IonModalIosStyle0,
1940
- md: IonModalMdStyle0
1982
+ ios: modalIosCss,
1983
+ md: modalMdCss
1941
1984
  };
1942
1985
 
1943
1986
  exports.ion_modal = Modal;