@ionic/core 8.4.4-dev.11741046329.16b83b14 → 8.4.4-dev.11741048645.1fe58d92

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 (553) hide show
  1. package/components/checkbox.js +6 -40
  2. package/components/helpers.js +11 -1
  3. package/components/index6.js +3 -11
  4. package/components/index7.js +2 -2
  5. package/components/index9.js +1 -1
  6. package/components/ion-segment-button.js +40 -9
  7. package/components/ion-select.js +41 -16
  8. package/components/ion-toggle.js +4 -6
  9. package/components/modal.js +35 -259
  10. package/components/toolbar.js +2 -2
  11. package/css/core.css +1 -1
  12. package/css/core.css.map +1 -1
  13. package/css/global.bundle.css +1 -1
  14. package/css/global.bundle.css.map +1 -1
  15. package/css/ionic.bundle.css +1 -1
  16. package/css/ionic.bundle.css.map +1 -1
  17. package/css/palettes/dark.always.css +1 -1
  18. package/css/palettes/dark.always.css.map +1 -1
  19. package/css/palettes/dark.class.css +1 -1
  20. package/css/palettes/dark.class.css.map +1 -1
  21. package/css/palettes/dark.system.css +1 -1
  22. package/css/palettes/dark.system.css.map +1 -1
  23. package/css/palettes/high-contrast-dark.always.css +1 -1
  24. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  25. package/css/palettes/high-contrast-dark.class.css +1 -1
  26. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  27. package/css/palettes/high-contrast-dark.system.css +1 -1
  28. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  29. package/css/palettes/high-contrast.always.css +1 -1
  30. package/css/palettes/high-contrast.always.css.map +1 -1
  31. package/css/palettes/high-contrast.class.css +1 -1
  32. package/css/palettes/high-contrast.class.css.map +1 -1
  33. package/css/palettes/high-contrast.system.css +1 -1
  34. package/css/palettes/high-contrast.system.css.map +1 -1
  35. package/css/structure.css +1 -1
  36. package/css/structure.css.map +1 -1
  37. package/css/typography.css +1 -1
  38. package/css/typography.css.map +1 -1
  39. package/dist/cjs/{data-108e531d.js → data-21dc0f81.js} +1 -1
  40. package/dist/cjs/{framework-delegate-55f5683a.js → framework-delegate-05579976.js} +1 -1
  41. package/dist/cjs/{helpers-afaa9001.js → helpers-4be3f90d.js} +11 -0
  42. package/dist/cjs/{index-073c7cdc.js → index-0e360e93.js} +2 -2
  43. package/dist/cjs/{index-3652c918.js → index-1ae3f40a.js} +2 -2
  44. package/dist/cjs/{index-e975c92b.js → index-4e14a46e.js} +4 -4
  45. package/dist/cjs/{index-2a46a047.js → index-5915f9b3.js} +3 -11
  46. package/dist/cjs/{index-9509ecad.js → index-ad7a712e.js} +1 -1
  47. package/dist/cjs/{index-0d762bba.js → index-c441c903.js} +2 -2
  48. package/dist/cjs/index.cjs.js +8 -8
  49. package/dist/cjs/{input-shims-cd05268a.js → input-shims-e748a364.js} +3 -5
  50. package/dist/cjs/{input.utils-ffb2f81b.js → input.utils-74e4ec28.js} +2 -2
  51. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  52. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  53. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  54. package/dist/cjs/ion-app_8.cjs.entry.js +11 -11
  55. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  56. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
  59. package/dist/cjs/ion-checkbox.cjs.entry.js +7 -38
  60. package/dist/cjs/ion-datetime-button.cjs.entry.js +3 -3
  61. package/dist/cjs/ion-datetime_3.cjs.entry.js +6 -6
  62. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  64. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  67. package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
  68. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  69. package/dist/cjs/ion-loading.cjs.entry.js +4 -4
  70. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  71. package/dist/cjs/ion-modal.cjs.entry.js +41 -264
  72. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
  73. package/dist/cjs/ion-picker-column-option.cjs.entry.js +1 -1
  74. package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  76. package/dist/cjs/ion-popover.cjs.entry.js +5 -5
  77. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  78. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
  79. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  80. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  81. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  82. package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-segment_2.cjs.entry.js +40 -9
  85. package/dist/cjs/ion-select-modal.cjs.entry.js +4 -4
  86. package/dist/cjs/ion-select_3.cjs.entry.js +46 -20
  87. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +1 -1
  88. package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
  90. package/dist/cjs/ion-toast.cjs.entry.js +4 -4
  91. package/dist/cjs/ion-toggle.cjs.entry.js +6 -7
  92. package/dist/cjs/ionic.cjs.js +1 -1
  93. package/dist/cjs/{ios.transition-0e664e88.js → ios.transition-afdec89f.js} +3 -3
  94. package/dist/cjs/loader.cjs.js +1 -1
  95. package/dist/cjs/{md.transition-2e8aef2c.js → md.transition-9f0d3db5.js} +3 -3
  96. package/dist/cjs/{notch-controller-d69150f5.js → notch-controller-a0c464d1.js} +1 -1
  97. package/dist/cjs/{overlays-65fdaff6.js → overlays-76b29cd4.js} +3 -3
  98. package/dist/cjs/{status-tap-d74f1429.js → status-tap-fb807fad.js} +3 -4
  99. package/dist/cjs/{swipe-back-0303a5e4.js → swipe-back-47a52b83.js} +1 -1
  100. package/dist/collection/components/checkbox/checkbox.ios.css +15 -52
  101. package/dist/collection/components/checkbox/checkbox.js +4 -90
  102. package/dist/collection/components/checkbox/checkbox.md.css +15 -52
  103. package/dist/collection/components/modal/animations/ios.enter.js +4 -50
  104. package/dist/collection/components/modal/animations/ios.leave.js +2 -24
  105. package/dist/collection/components/modal/animations/md.enter.js +5 -52
  106. package/dist/collection/components/modal/animations/md.leave.js +3 -26
  107. package/dist/collection/components/modal/animations/sheet.js +2 -11
  108. package/dist/collection/components/modal/gestures/sheet.js +10 -79
  109. package/dist/collection/components/modal/modal.ios.css +0 -16
  110. package/dist/collection/components/modal/modal.js +7 -32
  111. package/dist/collection/components/modal/modal.md.css +0 -6
  112. package/dist/collection/components/segment-button/segment-button.js +40 -9
  113. package/dist/collection/components/select/select.js +40 -32
  114. package/dist/collection/components/toggle/toggle.js +4 -23
  115. package/dist/collection/components/toolbar/toolbar.js +2 -6
  116. package/dist/collection/utils/helpers.js +10 -0
  117. package/dist/collection/utils/logging/index.js +3 -10
  118. package/dist/docs.json +2 -187
  119. package/dist/esm/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  120. package/dist/esm/{framework-delegate-63d1a679.js → framework-delegate-f683816e.js} +1 -1
  121. package/dist/esm/{helpers-da915de8.js → helpers-9b49d7d2.js} +11 -1
  122. package/dist/esm/{index-e2cf2ceb.js → index-10f4ed65.js} +2 -2
  123. package/dist/esm/{index-efb8ecdf.js → index-33f7e3ff.js} +2 -2
  124. package/dist/esm/{index-79b30591.js → index-5a0f5fd0.js} +1 -1
  125. package/dist/esm/{index-2f7fde3d.js → index-7ec5519a.js} +4 -4
  126. package/dist/esm/{index-cb21eccb.js → index-8785a9c6.js} +2 -2
  127. package/dist/esm/{index-6ad967f3.js → index-9b0d46f4.js} +3 -11
  128. package/dist/esm/index.js +8 -8
  129. package/dist/esm/{input-shims-2fd7c6ef.js → input-shims-0e65111b.js} +3 -5
  130. package/dist/esm/{input.utils-961c9f17.js → input.utils-1ad8dafc.js} +2 -2
  131. package/dist/esm/ion-accordion_2.entry.js +3 -3
  132. package/dist/esm/ion-action-sheet.entry.js +4 -4
  133. package/dist/esm/ion-alert.entry.js +4 -4
  134. package/dist/esm/ion-app_8.entry.js +11 -11
  135. package/dist/esm/ion-back-button.entry.js +2 -2
  136. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  137. package/dist/esm/ion-button_2.entry.js +2 -2
  138. package/dist/esm/ion-card_5.entry.js +1 -1
  139. package/dist/esm/ion-checkbox.entry.js +7 -38
  140. package/dist/esm/ion-datetime-button.entry.js +3 -3
  141. package/dist/esm/ion-datetime_3.entry.js +6 -6
  142. package/dist/esm/ion-fab_3.entry.js +2 -2
  143. package/dist/esm/ion-img.entry.js +1 -1
  144. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  145. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  146. package/dist/esm/ion-input.entry.js +5 -5
  147. package/dist/esm/ion-item-option_3.entry.js +3 -3
  148. package/dist/esm/ion-item_8.entry.js +2 -2
  149. package/dist/esm/ion-loading.entry.js +4 -4
  150. package/dist/esm/ion-menu_3.entry.js +6 -6
  151. package/dist/esm/ion-modal.entry.js +41 -264
  152. package/dist/esm/ion-nav_2.entry.js +5 -5
  153. package/dist/esm/ion-picker-column-option.entry.js +1 -1
  154. package/dist/esm/ion-picker-column.entry.js +1 -1
  155. package/dist/esm/ion-picker.entry.js +1 -1
  156. package/dist/esm/ion-popover.entry.js +5 -5
  157. package/dist/esm/ion-progress-bar.entry.js +1 -1
  158. package/dist/esm/ion-radio_2.entry.js +1 -1
  159. package/dist/esm/ion-range.entry.js +3 -3
  160. package/dist/esm/ion-refresher_2.entry.js +4 -4
  161. package/dist/esm/ion-reorder_2.entry.js +4 -4
  162. package/dist/esm/ion-route_4.entry.js +1 -1
  163. package/dist/esm/ion-searchbar.entry.js +2 -2
  164. package/dist/esm/ion-segment_2.entry.js +40 -9
  165. package/dist/esm/ion-select-modal.entry.js +4 -4
  166. package/dist/esm/ion-select_3.entry.js +46 -20
  167. package/dist/esm/ion-tab-bar_2.entry.js +1 -1
  168. package/dist/esm/ion-tab_2.entry.js +2 -2
  169. package/dist/esm/ion-textarea.entry.js +4 -4
  170. package/dist/esm/ion-toast.entry.js +4 -4
  171. package/dist/esm/ion-toggle.entry.js +6 -7
  172. package/dist/esm/ionic.js +1 -1
  173. package/dist/esm/{ios.transition-b1da3753.js → ios.transition-085853ff.js} +3 -3
  174. package/dist/esm/loader.js +1 -1
  175. package/dist/esm/{md.transition-571b3859.js → md.transition-33826623.js} +3 -3
  176. package/dist/esm/{notch-controller-55b09e11.js → notch-controller-3dc61260.js} +1 -1
  177. package/dist/esm/{overlays-5deab4de.js → overlays-e3d0d356.js} +3 -3
  178. package/dist/esm/{status-tap-79eac0ac.js → status-tap-163e8128.js} +3 -4
  179. package/dist/esm/{swipe-back-e5394307.js → swipe-back-23ee7ab1.js} +1 -1
  180. package/dist/esm-es5/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
  181. package/dist/esm-es5/{framework-delegate-63d1a679.js → framework-delegate-f683816e.js} +1 -1
  182. package/dist/esm-es5/{helpers-da915de8.js → helpers-9b49d7d2.js} +1 -1
  183. package/dist/esm-es5/{index-e2cf2ceb.js → index-10f4ed65.js} +1 -1
  184. package/dist/esm-es5/{index-efb8ecdf.js → index-33f7e3ff.js} +1 -1
  185. package/dist/esm-es5/{index-79b30591.js → index-5a0f5fd0.js} +1 -1
  186. package/dist/esm-es5/{index-2f7fde3d.js → index-7ec5519a.js} +1 -1
  187. package/dist/esm-es5/{index-cb21eccb.js → index-8785a9c6.js} +1 -1
  188. package/dist/esm-es5/index-9b0d46f4.js +4 -0
  189. package/dist/esm-es5/index.js +1 -1
  190. package/dist/esm-es5/input-shims-0e65111b.js +4 -0
  191. package/dist/esm-es5/{input.utils-961c9f17.js → input.utils-1ad8dafc.js} +1 -1
  192. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  193. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  194. package/dist/esm-es5/ion-alert.entry.js +1 -1
  195. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  196. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  197. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  198. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  199. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  200. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  201. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  202. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  203. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  204. package/dist/esm-es5/ion-img.entry.js +1 -1
  205. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  206. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  207. package/dist/esm-es5/ion-input.entry.js +1 -1
  208. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  210. package/dist/esm-es5/ion-loading.entry.js +1 -1
  211. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  212. package/dist/esm-es5/ion-modal.entry.js +1 -1
  213. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  214. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  215. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  216. package/dist/esm-es5/ion-picker.entry.js +1 -1
  217. package/dist/esm-es5/ion-popover.entry.js +1 -1
  218. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  219. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  220. package/dist/esm-es5/ion-range.entry.js +1 -1
  221. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  222. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  224. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  225. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  226. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  227. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  228. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  229. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  231. package/dist/esm-es5/ion-toast.entry.js +1 -1
  232. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  233. package/dist/esm-es5/ionic.js +1 -1
  234. package/dist/esm-es5/{ios.transition-b1da3753.js → ios.transition-085853ff.js} +1 -1
  235. package/dist/esm-es5/loader.js +1 -1
  236. package/dist/esm-es5/md.transition-33826623.js +4 -0
  237. package/dist/esm-es5/{notch-controller-55b09e11.js → notch-controller-3dc61260.js} +1 -1
  238. package/dist/esm-es5/{overlays-5deab4de.js → overlays-e3d0d356.js} +1 -1
  239. package/dist/esm-es5/status-tap-163e8128.js +4 -0
  240. package/dist/esm-es5/{swipe-back-e5394307.js → swipe-back-23ee7ab1.js} +1 -1
  241. package/dist/html.html-data.json +0 -24
  242. package/dist/ionic/index.esm.js +1 -1
  243. package/dist/ionic/ionic.esm.js +1 -1
  244. package/dist/ionic/{p-f1c4dcd4.js → p-02e1ebd9.js} +1 -1
  245. package/dist/ionic/{p-937a7e21.entry.js → p-02e23f26.entry.js} +1 -1
  246. package/dist/ionic/{p-15e76dd1.entry.js → p-03ee25cb.entry.js} +1 -1
  247. package/dist/ionic/p-06fee233.js +4 -0
  248. package/dist/ionic/p-075a94bd.js +4 -0
  249. package/dist/ionic/{p-8cfba7e9.system.entry.js → p-085a5dd6.system.entry.js} +1 -1
  250. package/dist/ionic/p-0a59f4fa.entry.js +4 -0
  251. package/dist/ionic/p-0e43be1b.entry.js +4 -0
  252. package/dist/ionic/{p-7ed1657c.system.entry.js → p-0eb2553a.system.entry.js} +1 -1
  253. package/dist/ionic/p-0ee3b5a2.system.js +4 -0
  254. package/dist/ionic/{p-2b838f86.system.entry.js → p-0f191cbe.system.entry.js} +1 -1
  255. package/dist/ionic/p-135e5731.js +4 -0
  256. package/dist/ionic/{p-b6efeab8.js → p-13dc21b0.js} +1 -1
  257. package/dist/ionic/{p-9b428d25.entry.js → p-1693cbc4.entry.js} +1 -1
  258. package/dist/ionic/{p-567de071.system.entry.js → p-17ba2b14.system.entry.js} +1 -1
  259. package/dist/ionic/{p-a88dec0d.system.js → p-1a790eef.system.js} +2 -2
  260. package/dist/ionic/{p-a0eb506c.system.entry.js → p-1bc65aec.system.entry.js} +1 -1
  261. package/dist/ionic/p-1f405274.js +4 -0
  262. package/dist/ionic/{p-120fb79a.entry.js → p-203633d1.entry.js} +1 -1
  263. package/dist/ionic/{p-9f364443.system.entry.js → p-23b73db1.system.entry.js} +1 -1
  264. package/dist/ionic/p-25fa1d30.system.entry.js +4 -0
  265. package/dist/ionic/{p-f1060cd8.entry.js → p-26194519.entry.js} +1 -1
  266. package/dist/ionic/{p-de930745.entry.js → p-265939f0.entry.js} +1 -1
  267. package/dist/ionic/{p-16188af7.entry.js → p-2aebc4a0.entry.js} +1 -1
  268. package/dist/ionic/{p-34b11c24.js → p-2bc73fb5.js} +1 -1
  269. package/dist/ionic/p-2c9eb774.system.js +4 -0
  270. package/dist/ionic/{p-1e67b266.system.entry.js → p-2cf2db18.system.entry.js} +1 -1
  271. package/dist/ionic/{p-2e46590d.system.entry.js → p-2ef3c7ee.system.entry.js} +1 -1
  272. package/dist/ionic/p-322c5fb4.system.js +1 -1
  273. package/dist/ionic/{p-1e955a45.system.js → p-32be7b07.system.js} +1 -1
  274. package/dist/ionic/{p-f63c2d12.entry.js → p-32e99b0a.entry.js} +1 -1
  275. package/dist/ionic/{p-61db139d.entry.js → p-337a61d5.entry.js} +1 -1
  276. package/dist/ionic/{p-c4238c12.system.js → p-340e3f24.system.js} +1 -1
  277. package/dist/ionic/{p-a090bce8.system.entry.js → p-3572f86a.system.entry.js} +1 -1
  278. package/dist/ionic/{p-ab674093.system.entry.js → p-3df889b3.system.entry.js} +1 -1
  279. package/dist/ionic/{p-05b74e45.system.entry.js → p-3eaf1444.system.entry.js} +1 -1
  280. package/dist/ionic/{p-1ab13b2b.js → p-42808996.js} +1 -1
  281. package/dist/ionic/{p-744c8672.system.entry.js → p-4346c79d.system.entry.js} +1 -1
  282. package/dist/ionic/{p-a15ddedb.system.js → p-4452a8ac.system.js} +1 -1
  283. package/dist/ionic/{p-63b0abde.system.entry.js → p-45accc62.system.entry.js} +1 -1
  284. package/dist/ionic/{p-b1eb86fd.entry.js → p-45de8d2a.entry.js} +1 -1
  285. package/dist/ionic/p-48a8d9b4.system.entry.js +4 -0
  286. package/dist/ionic/{p-52d7a191.entry.js → p-4ad78edc.entry.js} +1 -1
  287. package/dist/ionic/{p-2da9c8a7.entry.js → p-4c252070.entry.js} +1 -1
  288. package/dist/ionic/{p-19ea7bff.system.js → p-5126cf1e.system.js} +1 -1
  289. package/dist/ionic/{p-cb13696c.js → p-51dec25d.js} +1 -1
  290. package/dist/ionic/{p-bdf2cb2e.system.entry.js → p-551e8ff7.system.entry.js} +1 -1
  291. package/dist/ionic/{p-933727f9.system.entry.js → p-561ddcd4.system.entry.js} +2 -2
  292. package/dist/ionic/p-56da53ad.system.entry.js +4 -0
  293. package/dist/ionic/{p-948e6c6a.entry.js → p-57379000.entry.js} +1 -1
  294. package/dist/ionic/{p-e06057c9.entry.js → p-57ceead7.entry.js} +1 -1
  295. package/dist/ionic/{p-6d6cedc5.entry.js → p-6190d0d6.entry.js} +1 -1
  296. package/dist/ionic/p-68dc53a5.js +4 -0
  297. package/dist/ionic/{p-74e3f0af.system.entry.js → p-697b4a5e.system.entry.js} +2 -2
  298. package/dist/ionic/{p-248318e0.system.entry.js → p-6a2d9764.system.entry.js} +1 -1
  299. package/dist/ionic/{p-15d18206.entry.js → p-702caed7.entry.js} +1 -1
  300. package/dist/ionic/{p-7ddc46c3.system.entry.js → p-70ccc275.system.entry.js} +1 -1
  301. package/dist/ionic/{p-98ff6b32.entry.js → p-76446a85.entry.js} +1 -1
  302. package/dist/ionic/{p-2346ab53.system.entry.js → p-77036bbd.system.entry.js} +1 -1
  303. package/dist/ionic/{p-98231c01.system.entry.js → p-77e7b7b6.system.entry.js} +1 -1
  304. package/dist/ionic/{p-72812e99.js → p-7a1766d6.js} +1 -1
  305. package/dist/ionic/{p-cba1f9bc.system.entry.js → p-7b96e5c1.system.entry.js} +1 -1
  306. package/dist/ionic/{p-7b9a2b23.entry.js → p-7bac3d83.entry.js} +1 -1
  307. package/dist/ionic/{p-9df2c6fb.entry.js → p-7c1f8b94.entry.js} +1 -1
  308. package/dist/ionic/{p-8694928f.entry.js → p-803f0bc2.entry.js} +1 -1
  309. package/dist/ionic/p-83810019.entry.js +4 -0
  310. package/dist/ionic/{p-7a6eaf9e.entry.js → p-85fee58d.entry.js} +1 -1
  311. package/dist/ionic/{p-d22e2a38.system.js → p-881d9e52.system.js} +1 -1
  312. package/dist/ionic/{p-9b122e3c.system.entry.js → p-8922be26.system.entry.js} +1 -1
  313. package/dist/ionic/p-8a836849.entry.js +4 -0
  314. package/dist/ionic/p-8d5472fb.entry.js +4 -0
  315. package/dist/ionic/{p-e09d6392.system.entry.js → p-91f17b25.system.entry.js} +2 -2
  316. package/dist/ionic/{p-d7aa6b00.entry.js → p-955c3eb8.entry.js} +1 -1
  317. package/dist/ionic/{p-8635f5e6.system.js → p-95da3ae2.system.js} +1 -1
  318. package/dist/ionic/{p-b9d7015f.entry.js → p-9b3bb24e.entry.js} +1 -1
  319. package/dist/ionic/{p-d6eaffb1.system.entry.js → p-9be5f3ee.system.entry.js} +2 -2
  320. package/dist/ionic/{p-5c08627a.system.js → p-9eee4de1.system.js} +1 -1
  321. package/dist/ionic/{p-cac0e0b3.system.entry.js → p-a0f3846e.system.entry.js} +1 -1
  322. package/dist/ionic/{p-7de1e42c.system.js → p-a2b6dd57.system.js} +1 -1
  323. package/dist/ionic/{p-6933c482.system.entry.js → p-a4575db1.system.entry.js} +1 -1
  324. package/dist/ionic/{p-01186920.system.entry.js → p-a9e24ae2.system.entry.js} +1 -1
  325. package/dist/ionic/{p-0eb35a7f.system.js → p-aa63b365.system.js} +1 -1
  326. package/dist/ionic/p-af09741c.entry.js +4 -0
  327. package/dist/ionic/{p-a8f2c254.entry.js → p-b0d8bbee.entry.js} +1 -1
  328. package/dist/ionic/{p-3ad285e3.system.js → p-b3680e2f.system.js} +1 -1
  329. package/dist/ionic/p-b7433d7d.js +4 -0
  330. package/dist/ionic/{p-585b455c.system.entry.js → p-b91acf8d.system.entry.js} +1 -1
  331. package/dist/ionic/{p-b51e4004.js → p-bb11d9fb.js} +1 -1
  332. package/dist/ionic/{p-ada36597.system.js → p-c1b51537.system.js} +1 -1
  333. package/dist/ionic/{p-bb0db172.entry.js → p-c32644d7.entry.js} +1 -1
  334. package/dist/ionic/{p-c41ac815.entry.js → p-c8d645b3.entry.js} +1 -1
  335. package/dist/ionic/{p-5c9eb9af.entry.js → p-cc700b6b.entry.js} +1 -1
  336. package/dist/ionic/{p-3cc276f4.js → p-d4ca0475.js} +1 -1
  337. package/dist/ionic/{p-1a5bc5f7.js → p-d60342e3.js} +1 -1
  338. package/dist/ionic/{p-081a4ce4.entry.js → p-d9b3fa7e.entry.js} +1 -1
  339. package/dist/ionic/{p-58d5df0c.system.entry.js → p-da8ef548.system.entry.js} +1 -1
  340. package/dist/ionic/{p-985a7e17.system.entry.js → p-dc146a2a.system.entry.js} +1 -1
  341. package/dist/ionic/p-df862603.entry.js +4 -0
  342. package/dist/ionic/{p-eef505e8.entry.js → p-e1bbacb7.entry.js} +1 -1
  343. package/dist/ionic/{p-302b50bb.system.entry.js → p-e265ae18.system.entry.js} +1 -1
  344. package/dist/ionic/{p-2172893e.system.entry.js → p-e2e19375.system.entry.js} +1 -1
  345. package/dist/ionic/p-e308de5b.system.js +4 -0
  346. package/dist/ionic/{p-a4a2420e.system.entry.js → p-e456ee59.system.entry.js} +1 -1
  347. package/dist/ionic/{p-da2b833b.js → p-e6200d13.js} +1 -1
  348. package/dist/ionic/{p-b3c60433.system.js → p-e8232807.system.js} +1 -1
  349. package/dist/ionic/{p-f1120724.system.entry.js → p-e8aed00f.system.entry.js} +1 -1
  350. package/dist/ionic/{p-fceec762.entry.js → p-e97a3f44.entry.js} +1 -1
  351. package/dist/ionic/{p-89bf08c7.entry.js → p-ed882fb1.entry.js} +1 -1
  352. package/dist/ionic/{p-6dfb0f39.system.entry.js → p-f2c19415.system.entry.js} +1 -1
  353. package/dist/ionic/{p-e4ee80be.system.entry.js → p-f301a694.system.entry.js} +1 -1
  354. package/dist/ionic/{p-7a02f476.entry.js → p-f3269679.entry.js} +1 -1
  355. package/dist/ionic/{p-92763d3d.entry.js → p-f4066aa9.entry.js} +1 -1
  356. package/dist/ionic/{p-e76dae93.entry.js → p-f42743d1.entry.js} +1 -1
  357. package/dist/ionic/{p-28706c6f.js → p-f5035354.js} +1 -1
  358. package/dist/ionic/{p-343b6b1d.system.js → p-f687573e.system.js} +1 -1
  359. package/dist/ionic/{p-797eeea8.system.entry.js → p-f78af648.system.entry.js} +1 -1
  360. package/dist/ionic/p-ff4b7e40.system.js +4 -0
  361. package/dist/ionic/{p-fbd41a7e.system.entry.js → p-ffc48bc5.system.entry.js} +1 -1
  362. package/dist/ionic/svg/accessibility-outline.svg +1 -1
  363. package/dist/ionic/svg/accessibility-sharp.svg +1 -1
  364. package/dist/ionic/svg/accessibility.svg +1 -1
  365. package/dist/ionic/svg/arrow-down-left-box-outline.svg +1 -0
  366. package/dist/ionic/svg/arrow-down-left-box-sharp.svg +1 -0
  367. package/dist/ionic/svg/arrow-down-left-box.svg +1 -0
  368. package/dist/ionic/svg/arrow-down-right-box-outline.svg +1 -0
  369. package/dist/ionic/svg/arrow-down-right-box-sharp.svg +1 -0
  370. package/dist/ionic/svg/arrow-down-right-box.svg +1 -0
  371. package/dist/ionic/svg/arrow-up-left-box-outline.svg +1 -0
  372. package/dist/ionic/svg/arrow-up-left-box-sharp.svg +1 -0
  373. package/dist/ionic/svg/arrow-up-left-box.svg +1 -0
  374. package/dist/ionic/svg/arrow-up-right-box-outline.svg +1 -0
  375. package/dist/ionic/svg/arrow-up-right-box-sharp.svg +1 -0
  376. package/dist/ionic/svg/arrow-up-right-box.svg +1 -0
  377. package/dist/ionic/svg/bag-add-outline.svg +1 -1
  378. package/dist/ionic/svg/bag-add-sharp.svg +1 -1
  379. package/dist/ionic/svg/bag-add.svg +1 -1
  380. package/dist/ionic/svg/bag-check-outline.svg +1 -1
  381. package/dist/ionic/svg/bag-check-sharp.svg +1 -1
  382. package/dist/ionic/svg/bag-check.svg +1 -1
  383. package/dist/ionic/svg/bag-handle-outline.svg +1 -1
  384. package/dist/ionic/svg/bag-handle-sharp.svg +1 -1
  385. package/dist/ionic/svg/bag-handle.svg +1 -1
  386. package/dist/ionic/svg/bag-outline.svg +1 -1
  387. package/dist/ionic/svg/bag-remove-outline.svg +1 -1
  388. package/dist/ionic/svg/bag-remove-sharp.svg +1 -1
  389. package/dist/ionic/svg/bag-remove.svg +1 -1
  390. package/dist/ionic/svg/bag-sharp.svg +1 -1
  391. package/dist/ionic/svg/bag.svg +1 -1
  392. package/dist/ionic/svg/balloon-outline.svg +1 -1
  393. package/dist/ionic/svg/balloon-sharp.svg +1 -1
  394. package/dist/ionic/svg/balloon.svg +1 -1
  395. package/dist/ionic/svg/ban-outline.svg +1 -1
  396. package/dist/ionic/svg/ban-sharp.svg +1 -1
  397. package/dist/ionic/svg/ban.svg +1 -1
  398. package/dist/ionic/svg/binoculars-outline.svg +1 -0
  399. package/dist/ionic/svg/binoculars-sharp.svg +1 -0
  400. package/dist/ionic/svg/binoculars.svg +1 -0
  401. package/dist/ionic/svg/body-outline.svg +1 -1
  402. package/dist/ionic/svg/bowling-ball-outline.svg +1 -1
  403. package/dist/ionic/svg/bowling-ball-sharp.svg +1 -1
  404. package/dist/ionic/svg/bowling-ball.svg +1 -1
  405. package/dist/ionic/svg/calendar-clear-outline.svg +1 -1
  406. package/dist/ionic/svg/calendar-clear-sharp.svg +1 -1
  407. package/dist/ionic/svg/calendar-clear.svg +1 -1
  408. package/dist/ionic/svg/calendar-number-outline.svg +1 -1
  409. package/dist/ionic/svg/calendar-number-sharp.svg +1 -1
  410. package/dist/ionic/svg/calendar-number.svg +1 -1
  411. package/dist/ionic/svg/calendar-outline.svg +1 -1
  412. package/dist/ionic/svg/calendar-sharp.svg +1 -1
  413. package/dist/ionic/svg/calendar.svg +1 -1
  414. package/dist/ionic/svg/chevron-collapse-outline.svg +1 -1
  415. package/dist/ionic/svg/chevron-collapse-sharp.svg +1 -1
  416. package/dist/ionic/svg/chevron-collapse.svg +1 -1
  417. package/dist/ionic/svg/chevron-expand-outline.svg +1 -1
  418. package/dist/ionic/svg/chevron-expand-sharp.svg +1 -1
  419. package/dist/ionic/svg/chevron-expand.svg +1 -1
  420. package/dist/ionic/svg/color-wand-outline.svg +1 -1
  421. package/dist/ionic/svg/color-wand.svg +1 -1
  422. package/dist/ionic/svg/diamond-outline.svg +1 -1
  423. package/dist/ionic/svg/diamond-sharp.svg +1 -1
  424. package/dist/ionic/svg/diamond.svg +1 -1
  425. package/dist/ionic/svg/dice-outline.svg +1 -1
  426. package/dist/ionic/svg/dice-sharp.svg +1 -1
  427. package/dist/ionic/svg/dice.svg +1 -1
  428. package/dist/ionic/svg/document-lock-outline.svg +1 -1
  429. package/dist/ionic/svg/document-lock-sharp.svg +1 -1
  430. package/dist/ionic/svg/document-lock.svg +1 -1
  431. package/dist/ionic/svg/extension-puzzle-outline.svg +1 -1
  432. package/dist/ionic/svg/extension-puzzle-sharp.svg +1 -1
  433. package/dist/ionic/svg/extension-puzzle.svg +1 -1
  434. package/dist/ionic/svg/filter-circle-outline.svg +1 -1
  435. package/dist/ionic/svg/filter-circle-sharp.svg +1 -1
  436. package/dist/ionic/svg/filter-circle.svg +1 -1
  437. package/dist/ionic/svg/fish-outline.svg +1 -1
  438. package/dist/ionic/svg/fish-sharp.svg +1 -1
  439. package/dist/ionic/svg/fish.svg +1 -1
  440. package/dist/ionic/svg/footsteps-outline.svg +1 -1
  441. package/dist/ionic/svg/footsteps-sharp.svg +1 -1
  442. package/dist/ionic/svg/footsteps.svg +1 -1
  443. package/dist/ionic/svg/id-card-outline.svg +1 -1
  444. package/dist/ionic/svg/id-card-sharp.svg +1 -1
  445. package/dist/ionic/svg/id-card.svg +1 -1
  446. package/dist/ionic/svg/invert-mode-outline.svg +1 -1
  447. package/dist/ionic/svg/invert-mode-sharp.svg +1 -1
  448. package/dist/ionic/svg/invert-mode.svg +1 -1
  449. package/dist/ionic/svg/logo-alipay.svg +1 -1
  450. package/dist/ionic/svg/logo-android.svg +1 -1
  451. package/dist/ionic/svg/logo-appflow.svg +1 -0
  452. package/dist/ionic/svg/logo-apple-ar.svg +1 -1
  453. package/dist/ionic/svg/logo-behance.svg +1 -1
  454. package/dist/ionic/svg/logo-bitbucket.svg +1 -1
  455. package/dist/ionic/svg/logo-deviantart.svg +1 -1
  456. package/dist/ionic/svg/logo-discord.svg +1 -1
  457. package/dist/ionic/svg/logo-docker.svg +1 -1
  458. package/dist/ionic/svg/logo-edge.svg +1 -1
  459. package/dist/ionic/svg/logo-facebook.svg +1 -1
  460. package/dist/ionic/svg/logo-figma.svg +1 -1
  461. package/dist/ionic/svg/logo-firebase.svg +1 -1
  462. package/dist/ionic/svg/logo-gitlab.svg +1 -1
  463. package/dist/ionic/svg/logo-ionic.svg +1 -1
  464. package/dist/ionic/svg/logo-mastodon.svg +1 -1
  465. package/dist/ionic/svg/logo-medium.svg +1 -1
  466. package/dist/ionic/svg/logo-microsoft.svg +1 -1
  467. package/dist/ionic/svg/logo-npm.svg +1 -1
  468. package/dist/ionic/svg/logo-paypal.svg +1 -1
  469. package/dist/ionic/svg/logo-soundcloud.svg +1 -1
  470. package/dist/ionic/svg/logo-tableau.svg +1 -1
  471. package/dist/ionic/svg/logo-tiktok.svg +1 -1
  472. package/dist/ionic/svg/logo-trapeze.svg +1 -0
  473. package/dist/ionic/svg/logo-venmo.svg +1 -1
  474. package/dist/ionic/svg/logo-vercel.svg +1 -1
  475. package/dist/ionic/svg/logo-wechat.svg +1 -1
  476. package/dist/ionic/svg/logo-x.svg +1 -0
  477. package/dist/ionic/svg/logo-yahoo.svg +1 -1
  478. package/dist/ionic/svg/prism-outline.svg +1 -1
  479. package/dist/ionic/svg/prism-sharp.svg +1 -1
  480. package/dist/ionic/svg/prism.svg +1 -1
  481. package/dist/ionic/svg/scale-outline.svg +1 -1
  482. package/dist/ionic/svg/scale-sharp.svg +1 -1
  483. package/dist/ionic/svg/scale.svg +1 -1
  484. package/dist/ionic/svg/server-outline.svg +1 -1
  485. package/dist/ionic/svg/server-sharp.svg +1 -1
  486. package/dist/ionic/svg/server.svg +1 -1
  487. package/dist/ionic/svg/shield-half-outline.svg +1 -1
  488. package/dist/ionic/svg/shield-half-sharp.svg +1 -1
  489. package/dist/ionic/svg/shield-half.svg +1 -1
  490. package/dist/ionic/svg/sparkles-outline.svg +1 -1
  491. package/dist/ionic/svg/sparkles-sharp.svg +1 -1
  492. package/dist/ionic/svg/sparkles.svg +1 -1
  493. package/dist/ionic/svg/storefront-outline.svg +1 -1
  494. package/dist/ionic/svg/storefront-sharp.svg +1 -1
  495. package/dist/ionic/svg/storefront.svg +1 -1
  496. package/dist/ionic/svg/telescope-outline.svg +1 -1
  497. package/dist/ionic/svg/telescope-sharp.svg +1 -1
  498. package/dist/ionic/svg/telescope.svg +1 -1
  499. package/dist/ionic/svg/ticket-outline.svg +1 -1
  500. package/dist/ionic/svg/ticket-sharp.svg +1 -1
  501. package/dist/ionic/svg/ticket.svg +1 -1
  502. package/dist/ionic/svg/today-outline.svg +1 -1
  503. package/dist/ionic/svg/today-sharp.svg +1 -1
  504. package/dist/ionic/svg/today.svg +1 -1
  505. package/dist/ionic/svg/unlink-outline.svg +1 -1
  506. package/dist/ionic/svg/unlink-sharp.svg +1 -1
  507. package/dist/ionic/svg/unlink.svg +1 -1
  508. package/dist/ionic/svg/videocam-off-outline.svg +1 -1
  509. package/dist/ionic/svg/videocam-off-sharp.svg +1 -1
  510. package/dist/ionic/svg/videocam-off.svg +1 -1
  511. package/dist/ionic/svg/wifi-outline.svg +1 -1
  512. package/dist/ionic/svg/wifi-sharp.svg +1 -1
  513. package/dist/ionic/svg/wifi.svg +1 -1
  514. package/dist/types/components/checkbox/checkbox.d.ts +0 -25
  515. package/dist/types/components/modal/animations/sheet.d.ts +0 -1
  516. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  517. package/dist/types/components/modal/modal-interface.d.ts +0 -1
  518. package/dist/types/components/modal/modal.d.ts +0 -11
  519. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  520. package/dist/types/components/select/select.d.ts +0 -6
  521. package/dist/types/components/toggle/toggle.d.ts +0 -6
  522. package/dist/types/components/toolbar/toolbar.d.ts +0 -4
  523. package/dist/types/components.d.ts +0 -48
  524. package/dist/types/utils/config.d.ts +0 -9
  525. package/dist/types/utils/helpers.d.ts +1 -0
  526. package/dist/types/utils/logging/index.d.ts +1 -13
  527. package/hydrate/index.js +141 -348
  528. package/hydrate/index.mjs +141 -348
  529. package/package.json +5 -5
  530. package/dist/esm-es5/index-6ad967f3.js +0 -4
  531. package/dist/esm-es5/input-shims-2fd7c6ef.js +0 -4
  532. package/dist/esm-es5/md.transition-571b3859.js +0 -4
  533. package/dist/esm-es5/status-tap-79eac0ac.js +0 -4
  534. package/dist/ionic/p-0430c2e0.entry.js +0 -4
  535. package/dist/ionic/p-0af823e1.js +0 -4
  536. package/dist/ionic/p-1132ffee.entry.js +0 -4
  537. package/dist/ionic/p-4c2d5b80.system.js +0 -4
  538. package/dist/ionic/p-4c98e2cf.system.js +0 -4
  539. package/dist/ionic/p-4ec778aa.entry.js +0 -4
  540. package/dist/ionic/p-577bc414.entry.js +0 -4
  541. package/dist/ionic/p-67222c16.system.js +0 -4
  542. package/dist/ionic/p-72bc8a1c.js +0 -4
  543. package/dist/ionic/p-7513b0c4.js +0 -4
  544. package/dist/ionic/p-9343a445.js +0 -4
  545. package/dist/ionic/p-a3db8ee3.js +0 -4
  546. package/dist/ionic/p-c4b53b16.system.entry.js +0 -4
  547. package/dist/ionic/p-cdc83025.entry.js +0 -4
  548. package/dist/ionic/p-d1c5b60e.system.js +0 -4
  549. package/dist/ionic/p-d7dd8fb1.entry.js +0 -4
  550. package/dist/ionic/p-e3171ff3.entry.js +0 -4
  551. package/dist/ionic/p-e4fde4fb.system.entry.js +0 -4
  552. package/dist/ionic/p-e6376b93.system.entry.js +0 -4
  553. package/dist/ionic/p-e8d56122.js +0 -4
@@ -7,7 +7,7 @@ import { clamp, raf, getElementRoot } from "../../../utils/helpers";
7
7
  import { FOCUS_TRAP_DISABLE_CLASS } from "../../../utils/overlays";
8
8
  import { getBackdropValueForSheet } from "../utils";
9
9
  import { calculateSpringStep, handleCanDismiss } from "./utils";
10
- export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
10
+ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
11
11
  // Defaults for the sheet swipe animation
12
12
  const defaultBackdrop = [
13
13
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -24,10 +24,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
24
24
  { offset: 1, transform: 'translateY(100%)' },
25
25
  ],
26
26
  BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
27
- CONTENT_KEYFRAMES: [
28
- { offset: 0, maxHeight: '100%' },
29
- { offset: 1, maxHeight: '0%' },
30
- ],
31
27
  };
32
28
  const contentEl = baseEl.querySelector('ion-content');
33
29
  const height = wrapperEl.clientHeight;
@@ -35,11 +31,10 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
35
31
  let offset = 0;
36
32
  let canDismissBlocksGesture = false;
37
33
  const canDismissMaxStep = 0.95;
38
- const maxBreakpoint = breakpoints[breakpoints.length - 1];
39
- const minBreakpoint = breakpoints[0];
40
34
  const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
41
35
  const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
42
- const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
36
+ const maxBreakpoint = breakpoints[breakpoints.length - 1];
37
+ const minBreakpoint = breakpoints[0];
43
38
  const enableBackdrop = () => {
44
39
  baseEl.style.setProperty('pointer-events', 'auto');
45
40
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -62,31 +57,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
62
57
  */
63
58
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
64
59
  };
65
- /**
66
- * Toggles the visible modal footer when `expandToScroll` is disabled.
67
- * @param footer The footer to show.
68
- */
69
- const swapFooterVisibility = (footer) => {
70
- const originalFooter = baseEl.querySelector('ion-footer');
71
- if (!originalFooter) {
72
- return;
73
- }
74
- const clonedFooter = wrapperEl.nextElementSibling;
75
- const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
76
- const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
77
- footerToShow.style.removeProperty('display');
78
- footerToShow.removeAttribute('aria-hidden');
79
- const page = baseEl.querySelector('.ion-page');
80
- if (footer === 'original') {
81
- page.style.removeProperty('padding-bottom');
82
- }
83
- else {
84
- const pagePadding = footerToShow.clientHeight;
85
- page.style.setProperty('padding-bottom', `${pagePadding}px`);
86
- }
87
- footerToHide.style.setProperty('display', 'none');
88
- footerToHide.setAttribute('aria-hidden', 'true');
89
- };
90
60
  /**
91
61
  * After the entering animation completes,
92
62
  * we need to set the animation to go from
@@ -98,7 +68,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
98
68
  if (wrapperAnimation && backdropAnimation) {
99
69
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
100
70
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
101
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
102
71
  animation.progressStart(true, 1 - currentBreakpoint);
103
72
  /**
104
73
  * If backdrop is not enabled, then content
@@ -115,7 +84,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
115
84
  disableBackdrop();
116
85
  }
117
86
  }
118
- if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
87
+ if (contentEl && currentBreakpoint !== maxBreakpoint) {
119
88
  contentEl.scrollY = false;
120
89
  }
121
90
  const canStart = (detail) => {
@@ -129,13 +98,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
129
98
  */
130
99
  const contentEl = findClosestIonContent(detail.event.target);
131
100
  currentBreakpoint = getCurrentBreakpoint();
132
- /**
133
- * If we have expandToScroll disabled, we should not allow the swipe gesture to start
134
- * if the content is being swiped.
135
- */
136
- if (!expandToScroll && contentEl) {
137
- return false;
138
- }
139
101
  if (currentBreakpoint === 1 && contentEl) {
140
102
  /**
141
103
  * The modal should never swipe to close on the content with a refresher.
@@ -166,15 +128,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
166
128
  * Remove undefined check
167
129
  */
168
130
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
169
- /**
170
- * If expandToScroll is disabled, we need to swap
171
- * the footer visibility to the original, so if the modal
172
- * is dismissed, the footer dismisses with the modal
173
- * and doesn't stay on the screen after the modal is gone.
174
- */
175
- if (!expandToScroll) {
176
- swapFooterVisibility('original');
177
- }
178
131
  /**
179
132
  * If we are pulling down, then it is possible we are pulling on the content.
180
133
  * We do not want scrolling to happen at the same time as the gesture.
@@ -290,19 +243,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
290
243
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
291
244
  },
292
245
  ]);
293
- if (contentAnimation) {
294
- /**
295
- * The modal content should scroll at any breakpoint when expandToScroll
296
- * is disabled. In order to do this, the content needs to be completely
297
- * viewable so scrolling can access everything. Otherwise, the default
298
- * behavior would show the content off the screen and only allow
299
- * scrolling when the sheet is fully expanded.
300
- */
301
- contentAnimation.keyframes([
302
- { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
303
- { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
304
- ]);
305
- }
306
246
  animation.progressStep(0);
307
247
  }
308
248
  /**
@@ -310,14 +250,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
310
250
  * snapping animation completes.
311
251
  */
312
252
  gesture.enable(false);
313
- /**
314
- * If expandToScroll is disabled, we need to swap
315
- * the footer visibility to the cloned one so the footer
316
- * doesn't flicker when the sheet's height is animated.
317
- */
318
- if (!expandToScroll && shouldRemainOpen) {
319
- swapFooterVisibility('cloned');
320
- }
321
253
  if (shouldPreventDismiss) {
322
254
  handleCanDismiss(baseEl, animation);
323
255
  }
@@ -325,13 +257,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
325
257
  onDismiss();
326
258
  }
327
259
  /**
328
- * Enables scrolling immediately if the sheet is about to fully expand
329
- * or if it allows scrolling at any breakpoint. Without this, there would
330
- * be a ~500ms delay while the modal animation completes, causing a
331
- * noticeable lag. Native iOS allows scrolling as soon as the gesture is
332
- * released, so we align with that behavior.
260
+ * If the sheet is going to be fully expanded then we should enable
261
+ * scrolling immediately. The sheet modal animation takes ~500ms to finish
262
+ * so if we wait until then there is a visible delay for when scrolling is
263
+ * re-enabled. Native iOS allows for scrolling on the sheet modal as soon
264
+ * as the gesture is released, so we align with that.
333
265
  */
334
- if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
266
+ if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
335
267
  contentEl.scrollY = true;
336
268
  }
337
269
  return new Promise((resolve) => {
@@ -349,7 +281,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
349
281
  raf(() => {
350
282
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
351
283
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
352
- contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
353
284
  animation.progressStart(true, 1 - snapToBreakpoint);
354
285
  currentBreakpoint = snapToBreakpoint;
355
286
  onBreakpointChange(currentBreakpoint);
@@ -201,12 +201,6 @@ ion-backdrop {
201
201
  bottom: 0;
202
202
  }
203
203
 
204
- :host(.modal-sheet.modal-no-expand-scroll) ion-footer {
205
- position: absolute;
206
- bottom: 0;
207
- width: var(--width);
208
- }
209
-
210
204
  /**
211
205
  * Convert a font size to a dynamic font size.
212
206
  * Fonts that participate in Dynamic Type should use
@@ -331,14 +325,4 @@ ion-backdrop {
331
325
  border-start-end-radius: var(--border-radius);
332
326
  border-end-end-radius: 0;
333
327
  border-end-start-radius: 0;
334
- }
335
-
336
- /**
337
- * Sheet modals require an additional padding as mentioned in the
338
- * `core.scss` file. However, there's a workaround that requires
339
- * a cloned footer to be added to the modal. This is only necessary
340
- * because the core styles are not being applied to the cloned footer.
341
- */
342
- :host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type {
343
- padding-top: 6px;
344
328
  }
@@ -86,7 +86,6 @@ export class Modal {
86
86
  this.enterAnimation = undefined;
87
87
  this.leaveAnimation = undefined;
88
88
  this.breakpoints = undefined;
89
- this.expandToScroll = true;
90
89
  this.initialBreakpoint = undefined;
91
90
  this.backdropBreakpoint = 0;
92
91
  this.handle = undefined;
@@ -302,7 +301,6 @@ export class Modal {
302
301
  presentingEl: presentingElement,
303
302
  currentBreakpoint: this.initialBreakpoint,
304
303
  backdropBreakpoint: this.backdropBreakpoint,
305
- expandToScroll: this.expandToScroll,
306
304
  });
307
305
  /* tslint:disable-next-line */
308
306
  if (typeof window !== 'undefined') {
@@ -353,10 +351,7 @@ export class Modal {
353
351
  // should be in the DOM and referenced by now, except
354
352
  // for the presenting el
355
353
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);
356
- const ani = (this.animation = animationBuilder(el, {
357
- presentingEl: this.presentingElement,
358
- expandToScroll: this.expandToScroll,
359
- }));
354
+ const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
360
355
  const contentEl = findIonContent(el);
361
356
  if (!contentEl) {
362
357
  printIonContentErrorMsg(el);
@@ -401,10 +396,9 @@ export class Modal {
401
396
  presentingEl: this.presentingElement,
402
397
  currentBreakpoint: initialBreakpoint,
403
398
  backdropBreakpoint,
404
- expandToScroll: this.expandToScroll,
405
399
  }));
406
400
  ani.progressStart(true, 1);
407
- const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
401
+ const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
408
402
  if (this.currentBreakpoint !== breakpoint) {
409
403
  this.currentBreakpoint = breakpoint;
410
404
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -482,7 +476,6 @@ export class Modal {
482
476
  presentingEl: presentingElement,
483
477
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
484
478
  backdropBreakpoint: this.backdropBreakpoint,
485
- expandToScroll: this.expandToScroll,
486
479
  });
487
480
  if (dismissed) {
488
481
  const { delegate } = this.getDelegate();
@@ -568,23 +561,23 @@ export class Modal {
568
561
  return true;
569
562
  }
570
563
  render() {
571
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
564
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
572
565
  const showHandle = handle !== false && isSheetModal;
573
566
  const mode = getIonMode(this);
574
567
  const isCardModal = presentingElement !== undefined && mode === 'ios';
575
568
  const isHandleCycle = handleBehavior === 'cycle';
576
- return (h(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
569
+ return (h(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
577
570
  zIndex: `${20000 + this.overlayIndex}`,
578
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), h("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
571
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), h("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
579
572
  /*
580
573
  role and aria-modal must be used on the
581
574
  same element. They must also be set inside the
582
575
  shadow DOM otherwise ion-button will not be highlighted
583
576
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
584
577
  */
585
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
578
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
586
579
  // Prevents the handle from receiving keyboard focus when it does not cycle
587
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
580
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
588
581
  }
589
582
  static get is() { return "ion-modal"; }
590
583
  static get encapsulation() { return "shadow"; }
@@ -742,24 +735,6 @@ export class Modal {
742
735
  "text": "The breakpoints to use when creating a sheet modal. Each value in the\narray must be a decimal between 0 and 1 where 0 indicates the modal is fully\nclosed and 1 indicates the modal is fully open. Values are relative\nto the height of the modal, not the height of the screen. One of the values in this\narray must be the value of the `initialBreakpoint` property.\nFor example: [0, .25, .5, 1]"
743
736
  }
744
737
  },
745
- "expandToScroll": {
746
- "type": "boolean",
747
- "mutable": false,
748
- "complexType": {
749
- "original": "boolean",
750
- "resolved": "boolean",
751
- "references": {}
752
- },
753
- "required": false,
754
- "optional": false,
755
- "docs": {
756
- "tags": [],
757
- "text": "Controls whether scrolling or dragging within the sheet modal expands\nit to a larger breakpoint. This only takes effect when `breakpoints`\nand `initialBreakpoint` are set.\n\nIf `true`, scrolling or dragging anywhere in the modal will first expand\nit to the next breakpoint. Once fully expanded, scrolling will affect the content.\nIf `false`, scrolling will always affect the content, and the modal will only expand\nwhen dragging the header or handle."
758
- },
759
- "attribute": "expand-to-scroll",
760
- "reflect": false,
761
- "defaultValue": "true"
762
- },
763
738
  "initialBreakpoint": {
764
739
  "type": "number",
765
740
  "mutable": false,
@@ -201,12 +201,6 @@ ion-backdrop {
201
201
  bottom: 0;
202
202
  }
203
203
 
204
- :host(.modal-sheet.modal-no-expand-scroll) ion-footer {
205
- position: absolute;
206
- bottom: 0;
207
- width: var(--width);
208
- }
209
-
210
204
  /**
211
205
  * Convert a font size to a dynamic font size.
212
206
  * Fonts that participate in Dynamic Type should use
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, forceUpdate, h } from "@stencil/core";
5
- import { addEventListener, removeEventListener, inheritAttributes } from "../../utils/helpers";
5
+ import { addEventListener, removeEventListener, inheritAttributes, getNextSiblingOfType } from "../../utils/helpers";
6
6
  import { hostContext } from "../../utils/theme";
7
7
  import { getIonMode } from "../../global/ionic-global";
8
8
  let ids = 0;
@@ -39,7 +39,35 @@ export class SegmentButton {
39
39
  valueChanged() {
40
40
  this.updateState();
41
41
  }
42
- connectedCallback() {
42
+ waitForSegmentContent(ionSegment, contentId) {
43
+ return new Promise((resolve, reject) => {
44
+ let timeoutId = undefined;
45
+ let animationFrameId;
46
+ const check = () => {
47
+ if (!ionSegment) {
48
+ reject(new Error(`Segment not found when looking for Segment Content`));
49
+ return;
50
+ }
51
+ const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
52
+ const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
53
+ if (segmentContent && timeoutId) {
54
+ clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
55
+ cancelAnimationFrame(animationFrameId);
56
+ resolve(segmentContent);
57
+ }
58
+ else {
59
+ animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
60
+ }
61
+ };
62
+ check();
63
+ // Set a timeout to reject the promise
64
+ timeoutId = setTimeout(() => {
65
+ cancelAnimationFrame(animationFrameId);
66
+ reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
67
+ }, 1000);
68
+ });
69
+ }
70
+ async connectedCallback() {
43
71
  const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
44
72
  if (segmentEl) {
45
73
  this.updateState();
@@ -49,11 +77,14 @@ export class SegmentButton {
49
77
  // Return if there is no contentId defined
50
78
  if (!this.contentId)
51
79
  return;
52
- // Attempt to find the Segment Content by its contentId
53
- const segmentContent = document.getElementById(this.contentId);
54
- // If no associated Segment Content exists, log an error and return
55
- if (!segmentContent) {
56
- console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
80
+ let segmentContent;
81
+ try {
82
+ // Attempt to find the Segment Content by its contentId
83
+ segmentContent = await this.waitForSegmentContent(segmentEl, this.contentId);
84
+ }
85
+ catch (error) {
86
+ // If no associated Segment Content exists, log an error and return
87
+ console.error('Segment Button: ', error.message);
57
88
  return;
58
89
  }
59
90
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
@@ -99,7 +130,7 @@ export class SegmentButton {
99
130
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
100
131
  const mode = getIonMode(this);
101
132
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
102
- return (h(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
133
+ return (h(Host, { key: 'f9da656c8eccb80e4ef30e3fa977f2dbbefbc988', class: {
103
134
  [mode]: true,
104
135
  'in-toolbar': hostContext('ion-toolbar', this.el),
105
136
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -115,7 +146,7 @@ export class SegmentButton {
115
146
  'ion-activatable': true,
116
147
  'ion-activatable-instant': true,
117
148
  'ion-focusable': true,
118
- } }, h("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, h("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && h("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), h("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
149
+ } }, h("button", Object.assign({ key: '00dbcdbd81cd74abdd39803f6840a6e477cc7b0c', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '5200c082a9c4788010c4fc33fe75e2b2ad28364a', class: "button-inner" }, h("slot", { key: 'cf3fce2b5d22436b84cd4367a5885df7d6a2715f' })), mode === 'md' && h("ion-ripple-effect", { key: 'f1a2816465f4c2c06644be07315bff2da77e2342' })), h("div", { key: 'aaf31c0ed39641fca698ee98d0773131f4eea6bd', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'fc556651361b7ac305aaedd25ea4afe3173abd20', part: "indicator-background", class: "segment-button-indicator-background" }))));
119
150
  }
120
151
  static get is() { return "ion-segment-button"; }
121
152
  static get encapsulation() { return "shadow"; }
@@ -91,7 +91,6 @@ export class Select {
91
91
  this.expandedIcon = undefined;
92
92
  this.shape = undefined;
93
93
  this.value = undefined;
94
- this.required = false;
95
94
  }
96
95
  styleChanged() {
97
96
  this.emitStyle();
@@ -154,15 +153,8 @@ export class Select {
154
153
  }
155
154
  this.isExpanded = true;
156
155
  const overlay = (this.overlay = await this.createOverlay(event));
157
- overlay.onDidDismiss().then(() => {
158
- this.overlay = undefined;
159
- this.isExpanded = false;
160
- this.ionDismiss.emit();
161
- this.setFocus();
162
- });
163
- await overlay.present();
164
- // focus selected option for popovers and modals
165
- if (this.interface === 'popover' || this.interface === 'modal') {
156
+ // Add logic to scroll selected item into view before presenting
157
+ const scrollSelectedIntoView = () => {
166
158
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
167
159
  if (indexOfSelected > -1) {
168
160
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -180,6 +172,7 @@ export class Select {
180
172
  */
181
173
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
182
174
  if (interactiveEl) {
175
+ selectedItem.scrollIntoView({ block: 'nearest' });
183
176
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
184
177
  // and removing `ion-focused` style
185
178
  interactiveEl.setFocus();
@@ -203,7 +196,40 @@ export class Select {
203
196
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
204
197
  }
205
198
  }
199
+ };
200
+ // For modals and popovers, we can scroll before they're visible
201
+ if (this.interface === 'modal') {
202
+ overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
206
203
  }
204
+ else if (this.interface === 'popover') {
205
+ overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
206
+ }
207
+ else {
208
+ /**
209
+ * For alerts and action sheets, we need to wait a frame after willPresent
210
+ * because these overlays don't have their content in the DOM immediately
211
+ * when willPresent fires. By waiting a frame, we ensure the content is
212
+ * rendered and can be properly scrolled into view.
213
+ */
214
+ const scrollAfterRender = () => {
215
+ requestAnimationFrame(() => {
216
+ scrollSelectedIntoView();
217
+ });
218
+ };
219
+ if (this.interface === 'alert') {
220
+ overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
221
+ }
222
+ else if (this.interface === 'action-sheet') {
223
+ overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
224
+ }
225
+ }
226
+ overlay.onDidDismiss().then(() => {
227
+ this.overlay = undefined;
228
+ this.isExpanded = false;
229
+ this.ionDismiss.emit();
230
+ this.setFocus();
231
+ });
232
+ await overlay.present();
207
233
  return overlay;
208
234
  }
209
235
  createOverlay(ev) {
@@ -629,8 +655,8 @@ export class Select {
629
655
  return renderedLabel;
630
656
  }
631
657
  renderListbox() {
632
- const { disabled, inputId, isExpanded, required } = this;
633
- return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
658
+ const { disabled, inputId, isExpanded } = this;
659
+ return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
634
660
  }
635
661
  render() {
636
662
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -661,7 +687,7 @@ export class Select {
661
687
  * TODO(FW-5592): Remove hasStartEndSlots condition
662
688
  */
663
689
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
664
- return (h(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses(this.color, {
690
+ return (h(Host, { key: 'b2dca9ae25d88e4d9fdb55003041a66be5668fcf', onClick: this.onClick, class: createColorClasses(this.color, {
665
691
  [mode]: true,
666
692
  'in-item': inItem,
667
693
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -677,7 +703,7 @@ export class Select {
677
703
  [`select-justify-${justify}`]: justifyEnabled,
678
704
  [`select-shape-${shape}`]: shape !== undefined,
679
705
  [`select-label-placement-${labelPlacement}`]: true,
680
- }) }, h("label", { key: '07bf3cb57bd1121383d8c746e3ac49da38300082', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '884facd18342797576bbacc761d18d83c52762e3', class: "select-wrapper-inner" }, h("slot", { key: 'c4f2a2a7a76f52db15f9a0b806017caea443c47a', name: "start" }), h("div", { key: '235cf383f268cc74412722cd31e246cbd4c2abe5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '1481302e11c494d49dfd80a7aaf743f7e851558f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '8a45ea9280651695c8e5435f266c286f3e3f6a18', class: "select-highlight" }))));
706
+ }) }, h("label", { key: 'c22fe9aee8cd448223497ef143e89529fcef8af6', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '601972df4579f4fa6a9c2c12865593e807decb72', class: "select-wrapper-inner" }, h("slot", { key: '5f7b1261862f74b978b26f026533e3fd1cc666ba', name: "start" }), h("div", { key: '39616da89f4b4b78432f6da85116a7de2ca589e7', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '1d7b3601b73af7c05b3627cfc8e5147ea379bb03', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'b0344f0ac15003e22fee66d3d7ed03a07da7e8b7', class: "select-highlight" }))));
681
707
  }
682
708
  static get is() { return "ion-select"; }
683
709
  static get encapsulation() { return "shadow"; }
@@ -1043,24 +1069,6 @@ export class Select {
1043
1069
  },
1044
1070
  "attribute": "value",
1045
1071
  "reflect": false
1046
- },
1047
- "required": {
1048
- "type": "boolean",
1049
- "mutable": false,
1050
- "complexType": {
1051
- "original": "boolean",
1052
- "resolved": "boolean",
1053
- "references": {}
1054
- },
1055
- "required": false,
1056
- "optional": false,
1057
- "docs": {
1058
- "tags": [],
1059
- "text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
1060
- },
1061
- "attribute": "required",
1062
- "reflect": false,
1063
- "defaultValue": "false"
1064
1072
  }
1065
1073
  };
1066
1074
  }
@@ -71,7 +71,6 @@ export class Toggle {
71
71
  this.labelPlacement = 'start';
72
72
  this.justify = undefined;
73
73
  this.alignment = undefined;
74
- this.required = false;
75
74
  }
76
75
  disabledChanged() {
77
76
  if (this.gesture) {
@@ -153,12 +152,12 @@ export class Toggle {
153
152
  return this.el.textContent !== '';
154
153
  }
155
154
  render() {
156
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
155
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
157
156
  const mode = getIonMode(this);
158
157
  const value = this.getValue();
159
158
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
160
159
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
161
- return (h(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses(color, {
160
+ return (h(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses(color, {
162
161
  [mode]: true,
163
162
  'in-item': hostContext('ion-item', el),
164
163
  'toggle-activated': activated,
@@ -168,10 +167,10 @@ export class Toggle {
168
167
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
169
168
  [`toggle-label-placement-${labelPlacement}`]: true,
170
169
  [`toggle-${rtl}`]: true,
171
- }) }, h("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, h("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), h("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
170
+ }) }, h("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, h("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
172
171
  'label-text-wrapper': true,
173
172
  'label-text-wrapper-hidden': !this.hasLabel,
174
- }, part: "label" }, h("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), h("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
173
+ }, part: "label" }, h("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), h("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
175
174
  }
176
175
  static get is() { return "ion-toggle"; }
177
176
  static get encapsulation() { return "shadow"; }
@@ -353,24 +352,6 @@ export class Toggle {
353
352
  },
354
353
  "attribute": "alignment",
355
354
  "reflect": false
356
- },
357
- "required": {
358
- "type": "boolean",
359
- "mutable": false,
360
- "complexType": {
361
- "original": "boolean",
362
- "resolved": "boolean",
363
- "references": {}
364
- },
365
- "required": false,
366
- "optional": false,
367
- "docs": {
368
- "tags": [],
369
- "text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
370
- },
371
- "attribute": "required",
372
- "reflect": false,
373
- "defaultValue": "false"
374
355
  }
375
356
  };
376
357
  }
@@ -12,10 +12,6 @@ import { getIonMode } from "../../global/ionic-global";
12
12
  * @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
13
13
  * @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
14
14
  * @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
15
- *
16
- * @part background - The background of the toolbar, covering the entire area behind the toolbar content.
17
- * @part container - The container that wraps all toolbar content, including the default slot and named slot content.
18
- * @part content - The container for the default slot, wrapping content provided without a named slot.
19
15
  */
20
16
  export class Toolbar {
21
17
  constructor() {
@@ -66,10 +62,10 @@ export class Toolbar {
66
62
  this.childrenStyles.forEach((value) => {
67
63
  Object.assign(childStyles, value);
68
64
  });
69
- return (h(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
65
+ return (h(Host, { key: '462538a5ecd01baf3cde116c9f029aeda26c81be', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
70
66
  [mode]: true,
71
67
  'in-toolbar': hostContext('ion-toolbar', this.el),
72
- })) }, h("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), h("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, h("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), h("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), h("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, h("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), h("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), h("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
68
+ })) }, h("div", { key: 'c0b4415d3b2472de643a9be7cb3b13b3b628621b', class: "toolbar-background" }), h("div", { key: '0ccb8a2dbeaa28d8f9bed87629c0c097446690c2', class: "toolbar-container" }, h("slot", { key: '3e726dac359e923df21d80301651f16063a3de20', name: "start" }), h("slot", { key: 'cd799330b56a7f8833bc61bb2807aafb21846f71', name: "secondary" }), h("div", { key: '395282e6ac8c53576922dcdb5f08c25d34638c86', class: "toolbar-content" }, h("slot", { key: 'a437c60e4ba5aae65e55169ae82a6f379868ec1d' })), h("slot", { key: '711af9b9d321a7b31ede924c9bdcad767aa9a1ca', name: "primary" }), h("slot", { key: 'ecc02edeaf80a837890bcb08d5096df1e22a0b9a', name: "end" }))));
73
69
  }
74
70
  static get is() { return "ion-toolbar"; }
75
71
  static get encapsulation() { return "shadow"; }
@@ -364,3 +364,13 @@ export const shallowEqualStringMap = (map1, map2) => {
364
364
  }
365
365
  return true;
366
366
  };
367
+ export const getNextSiblingOfType = (element) => {
368
+ let sibling = element.nextSibling;
369
+ while (sibling) {
370
+ if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
371
+ return sibling;
372
+ }
373
+ sibling = sibling.nextSibling;
374
+ }
375
+ return null;
376
+ };