voyager-ionic-core 8.4.3 → 8.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (605) hide show
  1. package/components/alert.js +30 -4
  2. package/components/checkbox.js +40 -6
  3. package/components/helpers.js +17 -29
  4. package/components/index6.js +11 -3
  5. package/components/index9.js +1 -1
  6. package/components/ion-input.js +22 -9
  7. package/components/ion-item-divider.js +2 -2
  8. package/components/ion-item-group.js +1 -1
  9. package/components/ion-item-option.js +2 -2
  10. package/components/ion-item-options.js +1 -1
  11. package/components/ion-item-sliding.js +1 -1
  12. package/components/ion-loading.js +2 -2
  13. package/components/ion-menu-button.js +2 -2
  14. package/components/ion-menu-toggle.js +2 -2
  15. package/components/ion-menu.js +2 -2
  16. package/components/ion-nav-link.js +1 -1
  17. package/components/ion-nav.js +1 -1
  18. package/components/ion-note.js +2 -2
  19. package/components/ion-picker-legacy.js +2 -2
  20. package/components/ion-progress-bar.js +1 -1
  21. package/components/ion-range.js +28 -6
  22. package/components/ion-refresher-content.js +1 -1
  23. package/components/ion-refresher.js +1 -1
  24. package/components/ion-reorder-group.js +1 -1
  25. package/components/ion-reorder.js +1 -1
  26. package/components/ion-router-link.js +2 -2
  27. package/components/ion-router-outlet.js +1 -1
  28. package/components/ion-router.js +1 -1
  29. package/components/ion-row.js +1 -1
  30. package/components/ion-searchbar.js +4 -4
  31. package/components/ion-segment-button.js +40 -9
  32. package/components/ion-segment-content.js +1 -1
  33. package/components/ion-segment-view.js +2 -2
  34. package/components/ion-segment.js +2 -2
  35. package/components/ion-select-option.js +1 -1
  36. package/components/ion-select.js +87 -16
  37. package/components/ion-skeleton-text.js +2 -2
  38. package/components/ion-split-pane.js +2 -2
  39. package/components/ion-tab-bar.js +2 -2
  40. package/components/ion-tab-button.js +2 -2
  41. package/components/ion-tab.js +2 -2
  42. package/components/ion-tabs.js +1 -1
  43. package/components/ion-text.js +2 -2
  44. package/components/ion-textarea.js +21 -8
  45. package/components/ion-thumbnail.js +1 -1
  46. package/components/ion-toast.js +2 -2
  47. package/components/ion-toggle.js +41 -6
  48. package/components/ionic-global.js +3 -13
  49. package/components/label.js +2 -2
  50. package/components/list-header.js +2 -2
  51. package/components/modal.js +286 -35
  52. package/components/picker-column-option.js +2 -2
  53. package/components/picker-column2.js +2 -2
  54. package/components/popover.js +2 -2
  55. package/components/radio-group.js +39 -2
  56. package/components/radio.js +3 -3
  57. package/components/ripple-effect.js +1 -1
  58. package/components/select-modal.js +1 -1
  59. package/components/select-popover.js +1 -1
  60. package/components/spinner.js +1 -1
  61. package/components/title.js +2 -2
  62. package/components/toolbar.js +2 -2
  63. package/css/core.css.map +1 -1
  64. package/css/ionic.bundle.css.map +1 -1
  65. package/dist/cjs/{app-globals-21afee77.js → app-globals-dd592863.js} +1 -1
  66. package/dist/cjs/{button-active-3f2f60b4.js → button-active-43e2b419.js} +1 -1
  67. package/dist/cjs/{data-21dc0f81.js → data-27cc2c9c.js} +1 -1
  68. package/dist/cjs/{framework-delegate-55f5683a.js → framework-delegate-11b0ba2f.js} +1 -1
  69. package/dist/cjs/{hardware-back-button-9e8a2c4f.js → hardware-back-button-5a99001f.js} +2 -2
  70. package/dist/cjs/{helpers-afaa9001.js → helpers-d0dfbb50.js} +18 -28
  71. package/dist/cjs/{index-73f75efb.js → index-2e236a04.js} +0 -4
  72. package/dist/cjs/{index-9509ecad.js → index-363fe6b2.js} +1 -1
  73. package/dist/cjs/{index-5915f9b3.js → index-48b2a28e.js} +11 -3
  74. package/dist/cjs/{index-5b6a7459.js → index-9b945a2d.js} +2 -2
  75. package/dist/cjs/{index-f05acd21.js → index-f68a486a.js} +6 -6
  76. package/dist/cjs/{index-8e789962.js → index-fd6383b6.js} +4 -4
  77. package/dist/cjs/index.cjs.js +11 -11
  78. package/dist/cjs/{input-shims-9e59ef62.js → input-shims-2d27a5be.js} +5 -3
  79. package/dist/cjs/{input.utils-611cde0b.js → input.utils-2f642324.js} +2 -2
  80. package/dist/cjs/ion-accordion_2.cjs.entry.js +4 -4
  81. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  82. package/dist/cjs/ion-alert.cjs.entry.js +38 -12
  83. package/dist/cjs/ion-app_8.cjs.entry.js +18 -18
  84. package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  88. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  89. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  90. package/dist/cjs/ion-checkbox.cjs.entry.js +40 -9
  91. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  93. package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -5
  94. package/dist/cjs/ion-datetime_3.cjs.entry.js +12 -12
  95. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  96. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  97. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  98. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  99. package/dist/cjs/ion-input.cjs.entry.js +25 -13
  100. package/dist/cjs/ion-item-option_3.cjs.entry.js +9 -9
  101. package/dist/cjs/ion-item_8.cjs.entry.js +14 -14
  102. package/dist/cjs/ion-loading.cjs.entry.js +9 -9
  103. package/dist/cjs/ion-menu_3.cjs.entry.js +14 -14
  104. package/dist/cjs/ion-modal.cjs.entry.js +294 -44
  105. package/dist/cjs/ion-nav_2.cjs.entry.js +9 -9
  106. package/dist/cjs/ion-picker-column-option.cjs.entry.js +5 -5
  107. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  108. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-popover.cjs.entry.js +10 -10
  110. package/dist/cjs/ion-progress-bar.cjs.entry.js +4 -4
  111. package/dist/cjs/ion-radio_2.cjs.entry.js +42 -7
  112. package/dist/cjs/ion-range.cjs.entry.js +31 -10
  113. package/dist/cjs/ion-refresher_2.cjs.entry.js +7 -7
  114. package/dist/cjs/ion-reorder_2.cjs.entry.js +7 -7
  115. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  116. package/dist/cjs/ion-route_4.cjs.entry.js +5 -5
  117. package/dist/cjs/ion-searchbar.cjs.entry.js +7 -7
  118. package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-segment-view.cjs.entry.js +3 -3
  120. package/dist/cjs/ion-segment_2.cjs.entry.js +44 -13
  121. package/dist/cjs/ion-select-modal.cjs.entry.js +8 -8
  122. package/dist/cjs/ion-select_3.cjs.entry.js +93 -25
  123. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  124. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  125. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +7 -7
  126. package/dist/cjs/ion-tab_2.cjs.entry.js +6 -6
  127. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  128. package/dist/cjs/ion-textarea.cjs.entry.js +24 -12
  129. package/dist/cjs/ion-toast.cjs.entry.js +9 -9
  130. package/dist/cjs/ion-toggle.cjs.entry.js +41 -9
  131. package/dist/cjs/{ionic-global-d9a8bb5b.js → ionic-global-acb665ad.js} +3 -13
  132. package/dist/cjs/ionic.cjs.js +4 -4
  133. package/dist/cjs/{ios.transition-cf40433b.js → ios.transition-f970164c.js} +5 -5
  134. package/dist/cjs/loader.cjs.js +4 -4
  135. package/dist/cjs/{md.transition-ededf99f.js → md.transition-aa8820dd.js} +5 -5
  136. package/dist/cjs/{notch-controller-d69150f5.js → notch-controller-58d2e557.js} +1 -1
  137. package/dist/cjs/{overlays-aa669eb8.js → overlays-737576a2.js} +5 -5
  138. package/dist/cjs/{status-tap-37681226.js → status-tap-08d1ac81.js} +5 -4
  139. package/dist/cjs/{swipe-back-f38a434a.js → swipe-back-5c0003bd.js} +1 -1
  140. package/dist/collection/components/alert/alert.js +34 -4
  141. package/dist/collection/components/checkbox/checkbox.ios.css +52 -15
  142. package/dist/collection/components/checkbox/checkbox.js +90 -4
  143. package/dist/collection/components/checkbox/checkbox.md.css +52 -15
  144. package/dist/collection/components/input/input.ios.css +3 -2
  145. package/dist/collection/components/input/input.js +18 -4
  146. package/dist/collection/components/input/input.md.css +7 -2
  147. package/dist/collection/components/item-divider/item-divider.js +2 -2
  148. package/dist/collection/components/item-group/item-group.js +1 -1
  149. package/dist/collection/components/item-option/item-option.js +2 -2
  150. package/dist/collection/components/item-options/item-options.js +1 -1
  151. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  152. package/dist/collection/components/label/label.js +2 -2
  153. package/dist/collection/components/list-header/list-header.js +2 -2
  154. package/dist/collection/components/loading/loading.js +2 -2
  155. package/dist/collection/components/menu/menu.js +2 -2
  156. package/dist/collection/components/menu-button/menu-button.js +2 -2
  157. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  158. package/dist/collection/components/modal/animations/ios.enter.js +50 -4
  159. package/dist/collection/components/modal/animations/ios.leave.js +24 -2
  160. package/dist/collection/components/modal/animations/md.enter.js +52 -5
  161. package/dist/collection/components/modal/animations/md.leave.js +26 -3
  162. package/dist/collection/components/modal/animations/sheet.js +11 -2
  163. package/dist/collection/components/modal/gestures/sheet.js +108 -12
  164. package/dist/collection/components/modal/modal.ios.css +16 -0
  165. package/dist/collection/components/modal/modal.js +32 -7
  166. package/dist/collection/components/modal/modal.md.css +6 -0
  167. package/dist/collection/components/nav/nav.js +1 -1
  168. package/dist/collection/components/nav-link/nav-link.js +1 -1
  169. package/dist/collection/components/note/note.js +2 -2
  170. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  171. package/dist/collection/components/picker-legacy/picker.js +2 -2
  172. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  173. package/dist/collection/components/popover/popover.js +2 -2
  174. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  175. package/dist/collection/components/radio/radio.js +3 -3
  176. package/dist/collection/components/radio-group/radio-group.ios.css +205 -0
  177. package/dist/collection/components/radio-group/radio-group.js +72 -1
  178. package/dist/collection/components/radio-group/radio-group.md.css +205 -0
  179. package/dist/collection/components/range/range.js +25 -6
  180. package/dist/collection/components/refresher/refresher.js +1 -1
  181. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  182. package/dist/collection/components/reorder/reorder.js +1 -1
  183. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  184. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  185. package/dist/collection/components/router-link/router-link.js +2 -2
  186. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  187. package/dist/collection/components/row/row.js +1 -1
  188. package/dist/collection/components/searchbar/searchbar.js +4 -4
  189. package/dist/collection/components/segment/segment.js +2 -2
  190. package/dist/collection/components/segment-button/segment-button.js +40 -9
  191. package/dist/collection/components/segment-content/segment-content.js +1 -1
  192. package/dist/collection/components/segment-view/segment-view.js +2 -2
  193. package/dist/collection/components/select/select.ios.css +59 -0
  194. package/dist/collection/components/select/select.js +136 -13
  195. package/dist/collection/components/select/select.md.css +61 -0
  196. package/dist/collection/components/select-modal/select-modal.js +1 -1
  197. package/dist/collection/components/select-option/select-option.js +1 -1
  198. package/dist/collection/components/select-popover/select-popover.js +1 -1
  199. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  200. package/dist/collection/components/spinner/spinner.js +1 -1
  201. package/dist/collection/components/split-pane/split-pane.js +2 -2
  202. package/dist/collection/components/tab/tab.js +2 -2
  203. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  204. package/dist/collection/components/tab-button/tab-button.js +2 -2
  205. package/dist/collection/components/tabs/tabs.js +1 -1
  206. package/dist/collection/components/text/text.js +2 -2
  207. package/dist/collection/components/textarea/textarea.ios.css +3 -2
  208. package/dist/collection/components/textarea/textarea.js +17 -3
  209. package/dist/collection/components/textarea/textarea.md.css +7 -2
  210. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  211. package/dist/collection/components/title/title.js +2 -2
  212. package/dist/collection/components/toast/toast.js +2 -2
  213. package/dist/collection/components/toggle/toggle.ios.css +52 -15
  214. package/dist/collection/components/toggle/toggle.js +91 -4
  215. package/dist/collection/components/toggle/toggle.md.css +52 -15
  216. package/dist/collection/components/toolbar/toolbar.js +6 -2
  217. package/dist/collection/global/ionic-global.js +1 -12
  218. package/dist/collection/utils/floating-point/index.js +5 -0
  219. package/dist/collection/utils/helpers.js +16 -28
  220. package/dist/collection/utils/logging/index.js +10 -3
  221. package/dist/collection/utils/platform.js +2 -1
  222. package/dist/collection/utils/test/platform.utils.js +1 -1
  223. package/dist/docs.json +383 -2
  224. package/dist/esm/{app-globals-5dbb61a5.js → app-globals-7b6cbf1a.js} +1 -1
  225. package/dist/esm/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
  226. package/dist/esm/{data-ae11fd43.js → data-174ad5e0.js} +1 -1
  227. package/dist/esm/{framework-delegate-63d1a679.js → framework-delegate-c7d92b77.js} +1 -1
  228. package/dist/esm/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +2 -2
  229. package/dist/esm/{helpers-da915de8.js → helpers-e48b0397.js} +17 -29
  230. package/dist/esm/{index-28849c61.js → index-527b9e34.js} +1 -4
  231. package/dist/esm/{index-9b0d46f4.js → index-738d7504.js} +11 -3
  232. package/dist/esm/{index-79b30591.js → index-8222b29f.js} +1 -1
  233. package/dist/esm/{index-5cc724f3.js → index-933ca126.js} +2 -2
  234. package/dist/esm/{index-3ad7f18b.js → index-a313df53.js} +6 -6
  235. package/dist/esm/{index-24b48b06.js → index-c63afbe6.js} +4 -4
  236. package/dist/esm/index.js +11 -11
  237. package/dist/esm/{input-shims-0314bbe5.js → input-shims-3070628a.js} +5 -3
  238. package/dist/esm/{input.utils-09c71bc7.js → input.utils-926c04a8.js} +2 -2
  239. package/dist/esm/ion-accordion_2.entry.js +4 -4
  240. package/dist/esm/ion-action-sheet.entry.js +8 -8
  241. package/dist/esm/ion-alert.entry.js +38 -12
  242. package/dist/esm/ion-app_8.entry.js +18 -18
  243. package/dist/esm/ion-avatar_3.entry.js +3 -3
  244. package/dist/esm/ion-back-button.entry.js +3 -3
  245. package/dist/esm/ion-backdrop.entry.js +2 -2
  246. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  247. package/dist/esm/ion-button_2.entry.js +4 -4
  248. package/dist/esm/ion-card_5.entry.js +3 -3
  249. package/dist/esm/ion-checkbox.entry.js +40 -9
  250. package/dist/esm/ion-chip.entry.js +2 -2
  251. package/dist/esm/ion-col_3.entry.js +3 -3
  252. package/dist/esm/ion-datetime-button.entry.js +5 -5
  253. package/dist/esm/ion-datetime_3.entry.js +12 -12
  254. package/dist/esm/ion-fab_3.entry.js +3 -3
  255. package/dist/esm/ion-img.entry.js +3 -3
  256. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  257. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  258. package/dist/esm/ion-input.entry.js +25 -13
  259. package/dist/esm/ion-item-option_3.entry.js +9 -9
  260. package/dist/esm/ion-item_8.entry.js +14 -14
  261. package/dist/esm/ion-loading.entry.js +9 -9
  262. package/dist/esm/ion-menu_3.entry.js +14 -14
  263. package/dist/esm/ion-modal.entry.js +294 -44
  264. package/dist/esm/ion-nav_2.entry.js +9 -9
  265. package/dist/esm/ion-picker-column-option.entry.js +5 -5
  266. package/dist/esm/ion-picker-column.entry.js +3 -3
  267. package/dist/esm/ion-picker.entry.js +2 -2
  268. package/dist/esm/ion-popover.entry.js +10 -10
  269. package/dist/esm/ion-progress-bar.entry.js +4 -4
  270. package/dist/esm/ion-radio_2.entry.js +42 -7
  271. package/dist/esm/ion-range.entry.js +31 -10
  272. package/dist/esm/ion-refresher_2.entry.js +7 -7
  273. package/dist/esm/ion-reorder_2.entry.js +7 -7
  274. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  275. package/dist/esm/ion-route_4.entry.js +5 -5
  276. package/dist/esm/ion-searchbar.entry.js +7 -7
  277. package/dist/esm/ion-segment-content.entry.js +2 -2
  278. package/dist/esm/ion-segment-view.entry.js +3 -3
  279. package/dist/esm/ion-segment_2.entry.js +44 -13
  280. package/dist/esm/ion-select-modal.entry.js +8 -8
  281. package/dist/esm/ion-select_3.entry.js +93 -25
  282. package/dist/esm/ion-spinner.entry.js +3 -3
  283. package/dist/esm/ion-split-pane.entry.js +4 -4
  284. package/dist/esm/ion-tab-bar_2.entry.js +7 -7
  285. package/dist/esm/ion-tab_2.entry.js +6 -6
  286. package/dist/esm/ion-text.entry.js +4 -4
  287. package/dist/esm/ion-textarea.entry.js +24 -12
  288. package/dist/esm/ion-toast.entry.js +9 -9
  289. package/dist/esm/ion-toggle.entry.js +41 -9
  290. package/dist/esm/{ionic-global-c81d82ab.js → ionic-global-ca86cf32.js} +3 -13
  291. package/dist/esm/ionic.js +5 -5
  292. package/dist/esm/{ios.transition-4ee1a3af.js → ios.transition-5fe4d6c8.js} +5 -5
  293. package/dist/esm/loader.js +5 -5
  294. package/dist/esm/{md.transition-5106a0d2.js → md.transition-3d0d3730.js} +5 -5
  295. package/dist/esm/{notch-controller-55b09e11.js → notch-controller-381a5334.js} +1 -1
  296. package/dist/esm/{overlays-e7b9d6d9.js → overlays-7579a420.js} +5 -5
  297. package/dist/esm/{status-tap-f472b09f.js → status-tap-6367b913.js} +5 -4
  298. package/dist/esm/{swipe-back-b613d7db.js → swipe-back-326faa1c.js} +1 -1
  299. package/dist/esm-es5/app-globals-7b6cbf1a.js +4 -0
  300. package/dist/esm-es5/{button-active-f6503382.js → button-active-90f1dbc4.js} +1 -1
  301. package/dist/esm-es5/{data-ae11fd43.js → data-174ad5e0.js} +1 -1
  302. package/dist/esm-es5/{framework-delegate-63d1a679.js → framework-delegate-c7d92b77.js} +1 -1
  303. package/dist/esm-es5/{hardware-back-button-06ef3c3e.js → hardware-back-button-864101a3.js} +1 -1
  304. package/dist/esm-es5/helpers-e48b0397.js +4 -0
  305. package/dist/esm-es5/index-527b9e34.js +5 -0
  306. package/dist/esm-es5/index-738d7504.js +4 -0
  307. package/dist/esm-es5/{index-79b30591.js → index-8222b29f.js} +1 -1
  308. package/dist/esm-es5/{index-5cc724f3.js → index-933ca126.js} +1 -1
  309. package/dist/esm-es5/{index-3ad7f18b.js → index-a313df53.js} +1 -1
  310. package/dist/esm-es5/{index-24b48b06.js → index-c63afbe6.js} +1 -1
  311. package/dist/esm-es5/index.js +1 -1
  312. package/dist/esm-es5/input-shims-3070628a.js +4 -0
  313. package/dist/esm-es5/{input.utils-09c71bc7.js → input.utils-926c04a8.js} +1 -1
  314. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  315. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  316. package/dist/esm-es5/ion-alert.entry.js +1 -1
  317. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  318. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  319. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  320. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  321. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  322. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  323. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  324. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  325. package/dist/esm-es5/ion-chip.entry.js +1 -1
  326. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  327. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  328. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  329. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  330. package/dist/esm-es5/ion-img.entry.js +1 -1
  331. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  332. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  333. package/dist/esm-es5/ion-input.entry.js +1 -1
  334. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  335. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  336. package/dist/esm-es5/ion-loading.entry.js +1 -1
  337. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  338. package/dist/esm-es5/ion-modal.entry.js +1 -1
  339. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  340. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  341. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  342. package/dist/esm-es5/ion-picker.entry.js +1 -1
  343. package/dist/esm-es5/ion-popover.entry.js +1 -1
  344. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  345. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  346. package/dist/esm-es5/ion-range.entry.js +1 -1
  347. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  348. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  349. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  350. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  351. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  352. package/dist/esm-es5/ion-segment-content.entry.js +1 -1
  353. package/dist/esm-es5/ion-segment-view.entry.js +1 -1
  354. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  355. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  356. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  357. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  358. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  359. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  360. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  361. package/dist/esm-es5/ion-text.entry.js +1 -1
  362. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  363. package/dist/esm-es5/ion-toast.entry.js +1 -1
  364. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  365. package/dist/esm-es5/ionic-global-ca86cf32.js +4 -0
  366. package/dist/esm-es5/ionic.js +1 -1
  367. package/dist/esm-es5/{ios.transition-4ee1a3af.js → ios.transition-5fe4d6c8.js} +1 -1
  368. package/dist/esm-es5/loader.js +1 -1
  369. package/dist/esm-es5/md.transition-3d0d3730.js +4 -0
  370. package/dist/esm-es5/{notch-controller-55b09e11.js → notch-controller-381a5334.js} +1 -1
  371. package/dist/esm-es5/{overlays-e7b9d6d9.js → overlays-7579a420.js} +1 -1
  372. package/dist/esm-es5/status-tap-6367b913.js +4 -0
  373. package/dist/esm-es5/{swipe-back-b613d7db.js → swipe-back-326faa1c.js} +1 -1
  374. package/dist/html.html-data.json +48 -0
  375. package/dist/ionic/index.esm.js +1 -1
  376. package/dist/ionic/ionic.esm.js +1 -1
  377. package/dist/ionic/ionic.js +1 -1
  378. package/dist/ionic/{p-58d5df0c.system.entry.js → p-023e8017.system.entry.js} +1 -1
  379. package/dist/ionic/{p-f9a53abb.system.js → p-042d5353.system.js} +1 -1
  380. package/dist/ionic/p-060e4551.js +4 -0
  381. package/dist/ionic/p-0749768d.entry.js +4 -0
  382. package/dist/ionic/p-094c82d7.entry.js +4 -0
  383. package/dist/ionic/{p-7458862e.system.entry.js → p-0adb6909.system.entry.js} +1 -1
  384. package/dist/ionic/{p-508d024a.entry.js → p-0be8a0b5.entry.js} +1 -1
  385. package/dist/ionic/{p-2507278c.system.entry.js → p-0bedc891.system.entry.js} +2 -2
  386. package/dist/ionic/{p-63b0abde.system.entry.js → p-0c9b8240.system.entry.js} +1 -1
  387. package/dist/ionic/p-0ec5b7cf.system.js +4 -0
  388. package/dist/ionic/{p-7ed1657c.system.entry.js → p-1164ff6b.system.entry.js} +1 -1
  389. package/dist/ionic/p-13886789.entry.js +4 -0
  390. package/dist/ionic/p-143ff664.system.entry.js +4 -0
  391. package/dist/ionic/p-18f9b6d5.entry.js +4 -0
  392. package/dist/ionic/{p-62af944c.entry.js → p-19c32a76.entry.js} +1 -1
  393. package/dist/ionic/{p-e4f69534.system.entry.js → p-1a9613bf.system.entry.js} +1 -1
  394. package/dist/ionic/{p-f687573e.system.js → p-1bf5ec17.system.js} +1 -1
  395. package/dist/ionic/{p-5fce0c0b.system.entry.js → p-1c1d781d.system.entry.js} +1 -1
  396. package/dist/ionic/p-1d2844a5.system.entry.js +4 -0
  397. package/dist/ionic/p-1d98a7f1.entry.js +4 -0
  398. package/dist/ionic/p-1f837356.entry.js +4 -0
  399. package/dist/ionic/p-2027221d.js +4 -0
  400. package/dist/ionic/{p-69066a53.js → p-21891ead.js} +1 -1
  401. package/dist/ionic/{p-d743e981.js → p-22bc235f.js} +1 -1
  402. package/dist/ionic/{p-a4565eb5.system.js → p-24ae7b33.system.js} +1 -1
  403. package/dist/ionic/{p-184fbc9e.system.js → p-294271c7.system.js} +1 -1
  404. package/dist/ionic/p-297d6806.system.js +4 -0
  405. package/dist/ionic/p-29a5b4e4.entry.js +4 -0
  406. package/dist/ionic/{p-01186920.system.entry.js → p-2ab4a324.system.entry.js} +1 -1
  407. package/dist/ionic/{p-ffd131f9.system.entry.js → p-2b59470f.system.entry.js} +1 -1
  408. package/dist/ionic/{p-9e33104d.entry.js → p-2ee9a2c6.entry.js} +1 -1
  409. package/dist/ionic/p-2fa5a4b1.entry.js +4 -0
  410. package/dist/ionic/{p-e7ed4a7f.system.js → p-3479f51b.system.js} +1 -1
  411. package/dist/ionic/{p-afecb188.entry.js → p-35f14792.entry.js} +1 -1
  412. package/dist/ionic/{p-7ddc46c3.system.entry.js → p-37a438ad.system.entry.js} +2 -2
  413. package/dist/ionic/{p-937a7e21.entry.js → p-3af7b907.entry.js} +1 -1
  414. package/dist/ionic/{p-c449820c.system.js → p-3bd5fedc.system.js} +1 -1
  415. package/dist/ionic/{p-d18ab582.system.entry.js → p-3be7cdeb.system.entry.js} +2 -2
  416. package/dist/ionic/{p-a15ddedb.system.js → p-3e86b4fa.system.js} +1 -1
  417. package/dist/ionic/p-3f4327f7.js +4 -0
  418. package/dist/ionic/{p-982315a6.entry.js → p-42f6e75c.entry.js} +1 -1
  419. package/dist/ionic/{p-5823babc.system.entry.js → p-4470f87b.system.entry.js} +2 -2
  420. package/dist/ionic/p-4493c1ac.entry.js +4 -0
  421. package/dist/ionic/{p-8635f5e6.system.js → p-44e168f3.system.js} +1 -1
  422. package/dist/ionic/{p-c29f8157.system.entry.js → p-4630688e.system.entry.js} +1 -1
  423. package/dist/ionic/{p-98231c01.system.entry.js → p-472c7e08.system.entry.js} +1 -1
  424. package/dist/ionic/p-4888cb66.system.entry.js +4 -0
  425. package/dist/ionic/{p-2e46590d.system.entry.js → p-491de063.system.entry.js} +1 -1
  426. package/dist/ionic/{p-985a7e17.system.entry.js → p-49cb79a1.system.entry.js} +1 -1
  427. package/dist/ionic/{p-d6841eac.js → p-4c44d04c.js} +1 -1
  428. package/dist/ionic/p-4c94580e.js +4 -0
  429. package/dist/ionic/{p-1e010627.system.entry.js → p-4d0190ad.system.entry.js} +2 -2
  430. package/dist/ionic/{p-bb0db172.entry.js → p-50f38461.entry.js} +1 -1
  431. package/dist/ionic/{p-0c06e09b.system.js → p-51c363e7.system.js} +1 -1
  432. package/dist/ionic/{p-f1acf541.system.entry.js → p-524ad57e.system.entry.js} +1 -1
  433. package/dist/ionic/{p-a61cba41.entry.js → p-54893ae3.entry.js} +1 -1
  434. package/dist/ionic/p-54e9620f.js +4 -0
  435. package/dist/ionic/p-58c482af.entry.js +4 -0
  436. package/dist/ionic/p-597ff9af.js +4 -0
  437. package/dist/ionic/{p-5da94421.system.js → p-5eb6f582.system.js} +1 -1
  438. package/dist/ionic/{p-15e76dd1.entry.js → p-5f4ff20a.entry.js} +1 -1
  439. package/dist/ionic/{p-fbf284c7.entry.js → p-5f8cd560.entry.js} +1 -1
  440. package/dist/ionic/p-606887b7.system.entry.js +4 -0
  441. package/dist/ionic/{p-bdad26e3.entry.js → p-61e794fb.entry.js} +1 -1
  442. package/dist/ionic/p-66a5d6a8.js +5 -0
  443. package/dist/ionic/p-67163d4a.entry.js +4 -0
  444. package/dist/ionic/p-6797c66e.system.js +4 -0
  445. package/dist/ionic/p-6bb846d3.entry.js +4 -0
  446. package/dist/ionic/{p-d7aa6b00.entry.js → p-6e24cf82.entry.js} +1 -1
  447. package/dist/ionic/p-72e6a9c6.entry.js +4 -0
  448. package/dist/ionic/{p-5b932840.entry.js → p-747f9517.entry.js} +1 -1
  449. package/dist/ionic/{p-9ea607bd.system.js → p-77991411.system.js} +2 -2
  450. package/dist/ionic/{p-9f3008d4.system.js → p-7cc33a9a.system.js} +1 -1
  451. package/dist/ionic/{p-f3102647.system.entry.js → p-7e3b5638.system.entry.js} +1 -1
  452. package/dist/ionic/p-7f39653f.entry.js +4 -0
  453. package/dist/ionic/{p-98ff6b32.entry.js → p-7ff4f502.entry.js} +1 -1
  454. package/dist/ionic/p-81474833.system.entry.js +4 -0
  455. package/dist/ionic/{p-4439fc2a.entry.js → p-838cc359.entry.js} +1 -1
  456. package/dist/ionic/{p-52d7a191.entry.js → p-85f6070f.entry.js} +1 -1
  457. package/dist/ionic/{p-e4ee80be.system.entry.js → p-888d383b.system.entry.js} +1 -1
  458. package/dist/ionic/{p-da074ff7.entry.js → p-8b1c1fd7.entry.js} +1 -1
  459. package/dist/ionic/{p-32d44024.system.entry.js → p-8deac7df.system.entry.js} +1 -1
  460. package/dist/ionic/p-8fc426e2.entry.js +4 -0
  461. package/dist/ionic/p-959cf042.system.entry.js +4 -0
  462. package/dist/ionic/{p-17a9ca63.system.entry.js → p-96450929.system.entry.js} +2 -2
  463. package/dist/ionic/{p-19ea7bff.system.js → p-9a2ff5ea.system.js} +1 -1
  464. package/dist/ionic/p-9a5420dd.js +4 -0
  465. package/dist/ionic/{p-ecceeb90.js → p-9af7f110.js} +1 -1
  466. package/dist/ionic/{p-6d32975a.entry.js → p-9b069739.entry.js} +1 -1
  467. package/dist/ionic/{p-ca065903.system.entry.js → p-9df36075.system.entry.js} +1 -1
  468. package/dist/ionic/p-9e51f822.js +4 -0
  469. package/dist/ionic/{p-372ae7f4.system.js → p-a4866e3e.system.js} +1 -1
  470. package/dist/ionic/{p-95775830.entry.js → p-a520973b.entry.js} +1 -1
  471. package/dist/ionic/{p-17474161.system.js → p-a587b2ae.system.js} +1 -1
  472. package/dist/ionic/{p-cac0e0b3.system.entry.js → p-a63b345e.system.entry.js} +1 -1
  473. package/dist/ionic/{p-3c8e5c23.system.js → p-a6625de8.system.js} +1 -1
  474. package/dist/ionic/{p-6416c34c.system.entry.js → p-a6df5168.system.entry.js} +1 -1
  475. package/dist/ionic/p-a9f2c0a7.entry.js +4 -0
  476. package/dist/ionic/{p-73dc4950.entry.js → p-ab7337e1.entry.js} +1 -1
  477. package/dist/ionic/{p-ed75fcfb.system.entry.js → p-ac58d726.system.entry.js} +1 -1
  478. package/dist/ionic/p-ace2d2be.entry.js +4 -0
  479. package/dist/ionic/{p-efaffe74.entry.js → p-ada878ce.entry.js} +1 -1
  480. package/dist/ionic/p-b055d618.entry.js +4 -0
  481. package/dist/ionic/p-b0e53bc7.entry.js +4 -0
  482. package/dist/ionic/{p-2799c6d3.system.entry.js → p-b2296998.system.entry.js} +1 -1
  483. package/dist/ionic/{p-fca6ef5f.system.entry.js → p-b2ee0628.system.entry.js} +1 -1
  484. package/dist/ionic/{p-9fa07aec.entry.js → p-b6174297.entry.js} +1 -1
  485. package/dist/ionic/{p-c41ac815.entry.js → p-b85d199c.entry.js} +1 -1
  486. package/dist/ionic/p-b9ea58ef.js +4 -0
  487. package/dist/ionic/{p-14e159ea.system.entry.js → p-b9eb1465.system.entry.js} +1 -1
  488. package/dist/ionic/p-b9f2e353.entry.js +4 -0
  489. package/dist/ionic/p-bbc6db8c.entry.js +4 -0
  490. package/dist/ionic/p-bf64af90.system.js +4 -0
  491. package/dist/ionic/{p-33a8a71b.entry.js → p-c005cc37.entry.js} +1 -1
  492. package/dist/ionic/{p-45693d7e.entry.js → p-c25c0ba4.entry.js} +1 -1
  493. package/dist/ionic/p-c5b5f44a.entry.js +4 -0
  494. package/dist/ionic/{p-2172893e.system.entry.js → p-c6a20407.system.entry.js} +1 -1
  495. package/dist/ionic/{p-1046866e.system.entry.js → p-c8331397.system.entry.js} +1 -1
  496. package/dist/ionic/{p-34b11c24.js → p-c8402249.js} +1 -1
  497. package/dist/ionic/{p-61e3f887.entry.js → p-c8bf9ba7.entry.js} +1 -1
  498. package/dist/ionic/{p-72812e99.js → p-ceaea4ce.js} +1 -1
  499. package/dist/ionic/{p-1e67b266.system.entry.js → p-d37fdc68.system.entry.js} +1 -1
  500. package/dist/ionic/{p-0aa833fb.system.js → p-d7032956.system.js} +1 -1
  501. package/dist/ionic/p-d8c9d5ac.system.entry.js +4 -0
  502. package/dist/ionic/{p-2b838f86.system.entry.js → p-daf1e8ec.system.entry.js} +1 -1
  503. package/dist/ionic/{p-2bd0ae94.system.entry.js → p-def7a8bd.system.entry.js} +1 -1
  504. package/dist/ionic/p-e00b72ce.js +4 -0
  505. package/dist/ionic/{p-96cc4814.js → p-e0a05506.js} +1 -1
  506. package/dist/ionic/p-e0c0218f.system.entry.js +4 -0
  507. package/dist/ionic/{p-6499df44.system.entry.js → p-e0c43e11.system.entry.js} +1 -1
  508. package/dist/ionic/{p-2abae1cc.system.entry.js → p-e4683bfd.system.entry.js} +1 -1
  509. package/dist/ionic/{p-567de071.system.entry.js → p-e5708e5d.system.entry.js} +1 -1
  510. package/dist/ionic/{p-12a722b8.system.entry.js → p-e5c27d9f.system.entry.js} +1 -1
  511. package/dist/ionic/{p-06e58c4e.js → p-e7309bfa.js} +1 -1
  512. package/dist/ionic/p-ed768b77.entry.js +4 -0
  513. package/dist/ionic/p-eec4b772.entry.js +4 -0
  514. package/dist/ionic/p-eeee3990.system.entry.js +4 -0
  515. package/dist/ionic/p-efa0f3f5.entry.js +4 -0
  516. package/dist/ionic/p-f02e9382.system.entry.js +4 -0
  517. package/dist/ionic/p-f11a9436.system.js +5 -0
  518. package/dist/ionic/p-f201b53a.system.js +4 -0
  519. package/dist/ionic/{p-3cc276f4.js → p-f554845e.js} +1 -1
  520. package/dist/ionic/{p-424eb140.system.entry.js → p-f6bb9be7.system.entry.js} +1 -1
  521. package/dist/ionic/{p-d60342e3.js → p-f7ce606e.js} +1 -1
  522. package/dist/ionic/{p-1fe02220.system.entry.js → p-f94b2f2f.system.entry.js} +1 -1
  523. package/dist/ionic/{p-797eeea8.system.entry.js → p-ff4a1ba0.system.entry.js} +1 -1
  524. package/dist/types/components/checkbox/checkbox.d.ts +25 -0
  525. package/dist/types/components/input/input.d.ts +8 -0
  526. package/dist/types/components/modal/animations/sheet.d.ts +1 -0
  527. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  528. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  529. package/dist/types/components/modal/modal.d.ts +14 -0
  530. package/dist/types/components/radio-group/radio-group.d.ts +15 -0
  531. package/dist/types/components/range/range.d.ts +3 -2
  532. package/dist/types/components/segment-button/segment-button.d.ts +2 -1
  533. package/dist/types/components/select/select.d.ts +29 -0
  534. package/dist/types/components/textarea/textarea.d.ts +8 -0
  535. package/dist/types/components/toggle/toggle.d.ts +25 -0
  536. package/dist/types/components/toolbar/toolbar.d.ts +4 -0
  537. package/dist/types/components.d.ts +96 -0
  538. package/dist/types/utils/config.d.ts +9 -3
  539. package/dist/types/utils/helpers.d.ts +5 -0
  540. package/dist/types/utils/logging/index.d.ts +13 -1
  541. package/dist/types/utils/native/capacitor.d.ts +7 -1
  542. package/dist/types/utils/test/platform.utils.d.ts +1 -1
  543. package/hydrate/index.js +739 -203
  544. package/hydrate/index.mjs +739 -203
  545. package/package.json +11 -11
  546. package/dist/esm-es5/app-globals-5dbb61a5.js +0 -4
  547. package/dist/esm-es5/helpers-da915de8.js +0 -4
  548. package/dist/esm-es5/index-28849c61.js +0 -5
  549. package/dist/esm-es5/index-9b0d46f4.js +0 -4
  550. package/dist/esm-es5/input-shims-0314bbe5.js +0 -4
  551. package/dist/esm-es5/ionic-global-c81d82ab.js +0 -4
  552. package/dist/esm-es5/md.transition-5106a0d2.js +0 -4
  553. package/dist/esm-es5/status-tap-f472b09f.js +0 -4
  554. package/dist/ionic/p-0303d0f8.js +0 -4
  555. package/dist/ionic/p-04909654.entry.js +0 -4
  556. package/dist/ionic/p-0574e87e.js +0 -4
  557. package/dist/ionic/p-06fee233.js +0 -4
  558. package/dist/ionic/p-081a4ce4.entry.js +0 -4
  559. package/dist/ionic/p-12c45a7c.entry.js +0 -4
  560. package/dist/ionic/p-14be4015.entry.js +0 -4
  561. package/dist/ionic/p-16188af7.entry.js +0 -4
  562. package/dist/ionic/p-16799667.system.entry.js +0 -4
  563. package/dist/ionic/p-16bfb979.system.entry.js +0 -4
  564. package/dist/ionic/p-19ec4f42.entry.js +0 -4
  565. package/dist/ionic/p-21e5e7e4.js +0 -4
  566. package/dist/ionic/p-25180df3.system.js +0 -5
  567. package/dist/ionic/p-2690b1de.js +0 -4
  568. package/dist/ionic/p-2b9b78c7.entry.js +0 -4
  569. package/dist/ionic/p-2fc0dafe.entry.js +0 -4
  570. package/dist/ionic/p-322c5fb4.system.js +0 -4
  571. package/dist/ionic/p-37cb43bd.system.entry.js +0 -4
  572. package/dist/ionic/p-3ad285e3.system.js +0 -4
  573. package/dist/ionic/p-404aede0.system.entry.js +0 -4
  574. package/dist/ionic/p-49a0e74c.entry.js +0 -4
  575. package/dist/ionic/p-4ec778aa.entry.js +0 -4
  576. package/dist/ionic/p-51796b2d.entry.js +0 -4
  577. package/dist/ionic/p-5ab1b709.entry.js +0 -4
  578. package/dist/ionic/p-69666e8a.system.entry.js +0 -4
  579. package/dist/ionic/p-6b280620.entry.js +0 -4
  580. package/dist/ionic/p-6d6cedc5.entry.js +0 -4
  581. package/dist/ionic/p-7b9a2b23.entry.js +0 -4
  582. package/dist/ionic/p-88e63c7d.js +0 -4
  583. package/dist/ionic/p-908d6080.entry.js +0 -4
  584. package/dist/ionic/p-942b5e13.entry.js +0 -4
  585. package/dist/ionic/p-9df2c6fb.entry.js +0 -4
  586. package/dist/ionic/p-a43467d8.entry.js +0 -4
  587. package/dist/ionic/p-a69b9fc5.system.js +0 -4
  588. package/dist/ionic/p-b2272f51.system.entry.js +0 -4
  589. package/dist/ionic/p-b335ffed.system.entry.js +0 -4
  590. package/dist/ionic/p-b51e4004.js +0 -4
  591. package/dist/ionic/p-b79ba17c.entry.js +0 -4
  592. package/dist/ionic/p-b7af48c0.js +0 -4
  593. package/dist/ionic/p-b82d4cab.js +0 -4
  594. package/dist/ionic/p-b9d7015f.entry.js +0 -4
  595. package/dist/ionic/p-bc36ad98.system.entry.js +0 -4
  596. package/dist/ionic/p-c4b53b16.system.entry.js +0 -4
  597. package/dist/ionic/p-c9f3a539.entry.js +0 -4
  598. package/dist/ionic/p-cdc83025.entry.js +0 -4
  599. package/dist/ionic/p-d836d43e.js +0 -5
  600. package/dist/ionic/p-de930745.entry.js +0 -4
  601. package/dist/ionic/p-dfb78785.system.js +0 -4
  602. package/dist/ionic/p-e563a35c.entry.js +0 -4
  603. package/dist/ionic/p-e6635685.js +0 -4
  604. package/dist/ionic/p-ebf042e0.system.entry.js +0 -4
  605. package/dist/ionic/p-ff4b7e40.system.js +0 -4
@@ -4,7 +4,7 @@
4
4
  import { createAnimation } from "../../../utils/animation/animation";
5
5
  import { getBackdropValueForSheet } from "../utils";
6
6
  export const createSheetEnterAnimation = (opts) => {
7
- const { currentBreakpoint, backdropBreakpoint } = opts;
7
+ const { currentBreakpoint, backdropBreakpoint, expandToScroll } = opts;
8
8
  /**
9
9
  * If the backdropBreakpoint is undefined, then the backdrop
10
10
  * should always fade in. If the backdropBreakpoint came before the
@@ -24,7 +24,16 @@ export const createSheetEnterAnimation = (opts) => {
24
24
  { offset: 0, opacity: 1, transform: 'translateY(100%)' },
25
25
  { offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
26
26
  ]);
27
- return { wrapperAnimation, backdropAnimation };
27
+ /**
28
+ * This allows the content to be scrollable at any breakpoint.
29
+ */
30
+ const contentAnimation = !expandToScroll
31
+ ? createAnimation('contentAnimation').keyframes([
32
+ { offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
33
+ { offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
34
+ ])
35
+ : undefined;
36
+ return { wrapperAnimation, backdropAnimation, contentAnimation };
28
37
  };
29
38
  export const createSheetLeaveAnimation = (opts) => {
30
39
  const { currentBreakpoint, backdropBreakpoint } = opts;
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { isIonContent, findClosestIonContent } from "../../../utils/content/index";
4
+ import { findClosestIonContent, isIonContent } from "../../../utils/content/index";
5
5
  import { createGesture } from "../../../utils/gesture/index";
6
- import { clamp, raf, getElementRoot } from "../../../utils/helpers";
6
+ import { clamp, getElementRoot, raf } 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 = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
10
+ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], expandToScroll, getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
11
11
  // Defaults for the sheet swipe animation
12
12
  const defaultBackdrop = [
13
13
  { offset: 0, opacity: 'var(--backdrop-opacity)' },
@@ -24,17 +24,23 @@ 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
+ ],
27
31
  };
28
32
  const contentEl = baseEl.querySelector('ion-content');
29
33
  const height = wrapperEl.clientHeight;
30
34
  let currentBreakpoint = initialBreakpoint;
31
35
  let offset = 0;
32
36
  let canDismissBlocksGesture = false;
37
+ let cachedScrollEl = null;
33
38
  const canDismissMaxStep = 0.95;
34
- const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
35
- const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
36
39
  const maxBreakpoint = breakpoints[breakpoints.length - 1];
37
40
  const minBreakpoint = breakpoints[0];
41
+ const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
42
+ const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
43
+ const contentAnimation = animation.childAnimations.find((ani) => ani.id === 'contentAnimation');
38
44
  const enableBackdrop = () => {
39
45
  baseEl.style.setProperty('pointer-events', 'auto');
40
46
  backdropEl.style.setProperty('pointer-events', 'auto');
@@ -57,6 +63,31 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
57
63
  */
58
64
  baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
59
65
  };
66
+ /**
67
+ * Toggles the visible modal footer when `expandToScroll` is disabled.
68
+ * @param footer The footer to show.
69
+ */
70
+ const swapFooterVisibility = (footer) => {
71
+ const originalFooter = baseEl.querySelector('ion-footer');
72
+ if (!originalFooter) {
73
+ return;
74
+ }
75
+ const clonedFooter = wrapperEl.nextElementSibling;
76
+ const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
77
+ const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
78
+ footerToShow.style.removeProperty('display');
79
+ footerToShow.removeAttribute('aria-hidden');
80
+ const page = baseEl.querySelector('.ion-page');
81
+ if (footer === 'original') {
82
+ page.style.removeProperty('padding-bottom');
83
+ }
84
+ else {
85
+ const pagePadding = footerToShow.clientHeight;
86
+ page.style.setProperty('padding-bottom', `${pagePadding}px`);
87
+ }
88
+ footerToHide.style.setProperty('display', 'none');
89
+ footerToHide.setAttribute('aria-hidden', 'true');
90
+ };
60
91
  /**
61
92
  * After the entering animation completes,
62
93
  * we need to set the animation to go from
@@ -68,6 +99,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
68
99
  if (wrapperAnimation && backdropAnimation) {
69
100
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
70
101
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
102
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
71
103
  animation.progressStart(true, 1 - currentBreakpoint);
72
104
  /**
73
105
  * If backdrop is not enabled, then content
@@ -84,7 +116,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
84
116
  disableBackdrop();
85
117
  }
86
118
  }
87
- if (contentEl && currentBreakpoint !== maxBreakpoint) {
119
+ if (contentEl && currentBreakpoint !== maxBreakpoint && expandToScroll) {
88
120
  contentEl.scrollY = false;
89
121
  }
90
122
  const canStart = (detail) => {
@@ -98,6 +130,14 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
98
130
  */
99
131
  const contentEl = findClosestIonContent(detail.event.target);
100
132
  currentBreakpoint = getCurrentBreakpoint();
133
+ /**
134
+ * If `expandToScroll` is disabled, we should not allow the swipe gesture
135
+ * to start if the content is not scrolled to the top.
136
+ */
137
+ if (!expandToScroll && contentEl) {
138
+ const scrollEl = isIonContent(contentEl) ? getElementRoot(contentEl).querySelector('.inner-scroll') : contentEl;
139
+ return scrollEl.scrollTop === 0;
140
+ }
101
141
  if (currentBreakpoint === 1 && contentEl) {
102
142
  /**
103
143
  * The modal should never swipe to close on the content with a refresher.
@@ -128,6 +168,25 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
128
168
  * Remove undefined check
129
169
  */
130
170
  canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
171
+ /**
172
+ * Cache the scroll element reference when the gesture starts,
173
+ * this allows us to avoid querying the DOM for the target in onMove,
174
+ * which would impact performance significantly.
175
+ */
176
+ if (!expandToScroll) {
177
+ const targetEl = findClosestIonContent(detail.event.target);
178
+ cachedScrollEl =
179
+ targetEl && isIonContent(targetEl) ? getElementRoot(targetEl).querySelector('.inner-scroll') : targetEl;
180
+ }
181
+ /**
182
+ * If expandToScroll is disabled, we need to swap
183
+ * the footer visibility to the original, so if the modal
184
+ * is dismissed, the footer dismisses with the modal
185
+ * and doesn't stay on the screen after the modal is gone.
186
+ */
187
+ if (!expandToScroll) {
188
+ swapFooterVisibility('original');
189
+ }
131
190
  /**
132
191
  * If we are pulling down, then it is possible we are pulling on the content.
133
192
  * We do not want scrolling to happen at the same time as the gesture.
@@ -145,6 +204,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
145
204
  animation.progressStart(true, 1 - currentBreakpoint);
146
205
  };
147
206
  const onMove = (detail) => {
207
+ /**
208
+ * If `expandToScroll` is disabled, and an upwards swipe gesture is done within
209
+ * the scrollable content, we should not allow the swipe gesture to continue.
210
+ */
211
+ if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl) {
212
+ return;
213
+ }
148
214
  /**
149
215
  * If we are pulling down, then it is possible we are pulling on the content.
150
216
  * We do not want scrolling to happen at the same time as the gesture.
@@ -191,6 +257,14 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
191
257
  animation.progressStep(offset);
192
258
  };
193
259
  const onEnd = (detail) => {
260
+ /**
261
+ * If expandToScroll is disabled, we should not allow the moveSheetToBreakpoint
262
+ * function to be called if the user is trying to swipe content upwards and the content
263
+ * is not scrolled to the top.
264
+ */
265
+ if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
266
+ return;
267
+ }
194
268
  /**
195
269
  * When the gesture releases, we need to determine
196
270
  * the closest breakpoint to snap to.
@@ -243,6 +317,19 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
243
317
  opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
244
318
  },
245
319
  ]);
320
+ if (contentAnimation) {
321
+ /**
322
+ * The modal content should scroll at any breakpoint when expandToScroll
323
+ * is disabled. In order to do this, the content needs to be completely
324
+ * viewable so scrolling can access everything. Otherwise, the default
325
+ * behavior would show the content off the screen and only allow
326
+ * scrolling when the sheet is fully expanded.
327
+ */
328
+ contentAnimation.keyframes([
329
+ { offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
330
+ { offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
331
+ ]);
332
+ }
246
333
  animation.progressStep(0);
247
334
  }
248
335
  /**
@@ -250,6 +337,14 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
250
337
  * snapping animation completes.
251
338
  */
252
339
  gesture.enable(false);
340
+ /**
341
+ * If expandToScroll is disabled, we need to swap
342
+ * the footer visibility to the cloned one so the footer
343
+ * doesn't flicker when the sheet's height is animated.
344
+ */
345
+ if (!expandToScroll && shouldRemainOpen) {
346
+ swapFooterVisibility('cloned');
347
+ }
253
348
  if (shouldPreventDismiss) {
254
349
  handleCanDismiss(baseEl, animation);
255
350
  }
@@ -257,13 +352,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
257
352
  onDismiss();
258
353
  }
259
354
  /**
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.
355
+ * Enables scrolling immediately if the sheet is about to fully expand
356
+ * or if it allows scrolling at any breakpoint. Without this, there would
357
+ * be a ~500ms delay while the modal animation completes, causing a
358
+ * noticeable lag. Native iOS allows scrolling as soon as the gesture is
359
+ * released, so we align with that behavior.
265
360
  */
266
- if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
361
+ if (contentEl && (snapToBreakpoint === breakpoints[breakpoints.length - 1] || !expandToScroll)) {
267
362
  contentEl.scrollY = true;
268
363
  }
269
364
  return new Promise((resolve) => {
@@ -281,6 +376,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
281
376
  raf(() => {
282
377
  wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
283
378
  backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
379
+ contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
284
380
  animation.progressStart(true, 1 - snapToBreakpoint);
285
381
  currentBreakpoint = snapToBreakpoint;
286
382
  onBreakpointChange(currentBreakpoint);
@@ -201,6 +201,12 @@ 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
+
204
210
  /**
205
211
  * Convert a font size to a dynamic font size.
206
212
  * Fonts that participate in Dynamic Type should use
@@ -325,4 +331,14 @@ ion-backdrop {
325
331
  border-start-end-radius: var(--border-radius);
326
332
  border-end-end-radius: 0;
327
333
  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;
328
344
  }
@@ -86,6 +86,7 @@ export class Modal {
86
86
  this.enterAnimation = undefined;
87
87
  this.leaveAnimation = undefined;
88
88
  this.breakpoints = undefined;
89
+ this.expandToScroll = true;
89
90
  this.initialBreakpoint = undefined;
90
91
  this.backdropBreakpoint = 0;
91
92
  this.handle = undefined;
@@ -301,6 +302,7 @@ export class Modal {
301
302
  presentingEl: presentingElement,
302
303
  currentBreakpoint: this.initialBreakpoint,
303
304
  backdropBreakpoint: this.backdropBreakpoint,
305
+ expandToScroll: this.expandToScroll,
304
306
  });
305
307
  /* tslint:disable-next-line */
306
308
  if (typeof window !== 'undefined') {
@@ -351,7 +353,10 @@ export class Modal {
351
353
  // should be in the DOM and referenced by now, except
352
354
  // for the presenting el
353
355
  const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);
354
- const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
356
+ const ani = (this.animation = animationBuilder(el, {
357
+ presentingEl: this.presentingElement,
358
+ expandToScroll: this.expandToScroll,
359
+ }));
355
360
  const contentEl = findIonContent(el);
356
361
  if (!contentEl) {
357
362
  printIonContentErrorMsg(el);
@@ -396,9 +401,10 @@ export class Modal {
396
401
  presentingEl: this.presentingElement,
397
402
  currentBreakpoint: initialBreakpoint,
398
403
  backdropBreakpoint,
404
+ expandToScroll: this.expandToScroll,
399
405
  }));
400
406
  ani.progressStart(true, 1);
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) => {
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) => {
402
408
  if (this.currentBreakpoint !== breakpoint) {
403
409
  this.currentBreakpoint = breakpoint;
404
410
  this.ionBreakpointDidChange.emit({ breakpoint });
@@ -476,6 +482,7 @@ export class Modal {
476
482
  presentingEl: presentingElement,
477
483
  currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
478
484
  backdropBreakpoint: this.backdropBreakpoint,
485
+ expandToScroll: this.expandToScroll,
479
486
  });
480
487
  if (dismissed) {
481
488
  const { delegate } = this.getDelegate();
@@ -561,23 +568,23 @@ export class Modal {
561
568
  return true;
562
569
  }
563
570
  render() {
564
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
571
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
565
572
  const showHandle = handle !== false && isSheetModal;
566
573
  const mode = getIonMode(this);
567
574
  const isCardModal = presentingElement !== undefined && mode === 'ios';
568
575
  const isHandleCycle = handleBehavior === 'cycle';
569
- return (h(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
576
+ return (h(Host, Object.assign({ key: 'e661562f9e4126136cee337e4ab8ca69ac80faae', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
570
577
  zIndex: `${20000 + this.overlayIndex}`,
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',
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: '9221692e0e111f99e80239ca44faaaed9b288425', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '20def7088d31e5eb13c3f2404c514cd8b74cd966', class: "modal-shadow" }), h("div", Object.assign({ key: 'b11229330571d4ff7b9136dfdddcd7d759ada876',
572
579
  /*
573
580
  role and aria-modal must be used on the
574
581
  same element. They must also be set inside the
575
582
  shadow DOM otherwise ion-button will not be highlighted
576
583
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
577
584
  */
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",
585
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '95b2a62477dfbc063a91910f0d37357388cfd914', class: "modal-handle",
579
586
  // Prevents the handle from receiving keyboard focus when it does not cycle
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' }))));
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: 'fba17dfdbdffbfd8992f473f633d172c5124dc19' }))));
581
588
  }
582
589
  static get is() { return "ion-modal"; }
583
590
  static get encapsulation() { return "shadow"; }
@@ -735,6 +742,24 @@ export class Modal {
735
742
  "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]"
736
743
  }
737
744
  },
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\ncontent.\nIf `false`, scrolling will always affect the content. The modal will\nonly expand when dragging the header or handle. The modal will close when\ndragging the header or handle. It can also be closed when dragging the\ncontent, but only if the content is scrolled to the top."
758
+ },
759
+ "attribute": "expand-to-scroll",
760
+ "reflect": false,
761
+ "defaultValue": "true"
762
+ },
738
763
  "initialBreakpoint": {
739
764
  "type": "number",
740
765
  "mutable": false,
@@ -201,6 +201,12 @@ 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
+
204
210
  /**
205
211
  * Convert a font size to a dynamic font size.
206
212
  * Fonts that participate in Dynamic Type should use
@@ -830,7 +830,7 @@ export class Nav {
830
830
  }
831
831
  }
832
832
  render() {
833
- return h("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
833
+ return h("slot", { key: '71e9b5d07fc90ca5534197a63a003a4154aabd59' });
834
834
  }
835
835
  static get is() { return "ion-nav"; }
836
836
  static get encapsulation() { return "shadow"; }
@@ -14,7 +14,7 @@ export class NavLink {
14
14
  this.routerAnimation = undefined;
15
15
  }
16
16
  render() {
17
- return h(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
17
+ return h(Host, { key: '9ba170d1b10e08e8a6b5e6a30d363871d455a0a9', onClick: this.onClick });
18
18
  }
19
19
  static get is() { return "ion-nav-link"; }
20
20
  static get properties() {
@@ -13,9 +13,9 @@ export class Note {
13
13
  }
14
14
  render() {
15
15
  const mode = getIonMode(this);
16
- return (h(Host, { key: '10a3495bc21166176986441479f8f7539029d161', class: createColorClasses(this.color, {
16
+ return (h(Host, { key: '3c3d9b2aa805c0bc1fdc6270a2bbf4dcc1b96c5b', class: createColorClasses(this.color, {
17
17
  [mode]: true,
18
- }) }, h("slot", { key: 'b6a9459e1b85f608fafd060a4bfeb11637ebe873' })));
18
+ }) }, h("slot", { key: '39e34682009fcb705ecafe51825162734bdf14d3' })));
19
19
  }
20
20
  static get is() { return "ion-note"; }
21
21
  static get encapsulation() { return "shadow"; }
@@ -76,10 +76,10 @@ export class PickerColumnOption {
76
76
  render() {
77
77
  const { color, disabled, ariaLabel } = this;
78
78
  const mode = getIonMode(this);
79
- return (h(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses(color, {
79
+ return (h(Host, { key: 'c1353e99c2aa19c0e3ddbe433557ed18e72e1c66', class: createColorClasses(color, {
80
80
  [mode]: true,
81
81
  ['option-disabled']: disabled,
82
- }) }, h("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
82
+ }) }, h("button", { key: 'b4ee62ecf7458a07a56e8aa494485766a87a3fcb', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, h("slot", { key: '9ab1e4700c27103b676670a4b3521c183c6ab83d' }))));
83
83
  }
84
84
  static get is() { return "ion-picker-column-option"; }
85
85
  static get encapsulation() { return "shadow"; }
@@ -185,11 +185,11 @@ export class Picker {
185
185
  render() {
186
186
  const { htmlAttributes } = this;
187
187
  const mode = getIonMode(this);
188
- return (h(Host, Object.assign({ key: '0712fa8732141848e50ad2e08e2ba66ef2a48991', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
188
+ return (h(Host, Object.assign({ key: 'dc03f252e3b59a94bc7132c953d2d3b36b62237e', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
189
189
  zIndex: `${20000 + this.overlayIndex}`,
190
190
  }, class: Object.assign({ [mode]: true,
191
191
  // Used internally for styling
192
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: 'c997632ef0488698739664012de5a6494de438b6', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '20045054a76cca997b410835fa6b305af22dcb12', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'a73a6ac20b685ed9694d4fa95ea236ce5d63fdbf', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: '1221cdcc2ff013deeba12170129c8fe78308330c', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: '45038a58430a4251100797b902e7034243137564', class: "picker-columns" }, h("div", { key: 'c579bb69cddd4090912855ffd7f59536280f34b9', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: '978c6632d82a97d053b729c9de65dd3af4c4cee2', class: "picker-below-highlight" }))), h("div", { key: 'e7e9dc437a3cf6d559e2cb0df71af69047a2ae31', tabindex: "0", "aria-hidden": "true" })));
192
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: 'bdabe9c82c41f96da5dafb1a0aa0854fa7e7ec93', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: '1380e0c8989153b425674753764f12f253f4a738', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'edec769bbc0993d003852d0bf1123e6e2332ebbe', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: 'b82c67ff47aa9412a6ff8f3b2e6230b855e92c51', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: '76485b643387f36b6b3d5f85e4d072fa18e68552', class: "picker-columns" }, h("div", { key: '99268217263feb5285db1b1acd48fd0e4d5f0e7b', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-legacy-column", { col: c })), h("div", { key: '2dd7e488bc4e9695094f0758567e626e0bb5979d', class: "picker-below-highlight" }))), h("div", { key: '8b2f3ae798a4ddcdd4e2716ebba1de797e446ac4', tabindex: "0", "aria-hidden": "true" })));
193
193
  }
194
194
  static get is() { return "ion-picker-legacy"; }
195
195
  static get encapsulation() { return "scoped"; }
@@ -336,9 +336,9 @@ export class PickerColumnCmp {
336
336
  render() {
337
337
  const col = this.col;
338
338
  const mode = getIonMode(this);
339
- return (h(Host, { key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
339
+ return (h(Host, { key: '88a3c9397c9ac92dd814074c8ae6ecf8e3420a2c', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
340
340
  'max-width': this.col.columnWidth,
341
- } }, col.prefix && (h("div", { key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: '1d9c0892ce56e0da9044c79eb953827166f5190b', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
341
+ } }, col.prefix && (h("div", { key: '4491a705d15337e6f45f3cf6fd21af5242474729', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: 'b0dd4b7a7a4c1edc4b73e7fb134ac85264072365', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: 'c16419ce6481d60fc3ba6b8d102a4edf0ede02aa', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
342
342
  }
343
343
  static get is() { return "ion-picker-legacy-column"; }
344
344
  static get originalStyleUrls() {
@@ -338,9 +338,9 @@ export class Popover {
338
338
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
339
339
  const desktop = isPlatform('desktop');
340
340
  const enableArrow = arrow && !parentPopover;
341
- return (h(Host, Object.assign({ key: 'ffe8b37c9ffb5cac210a7307e6cdfcf78712905b', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
341
+ return (h(Host, Object.assign({ key: '48f108a9b74f121559626889dd5a1fcccf38fc3d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
342
342
  zIndex: `${20000 + this.overlayIndex}`,
343
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '12b3ffa3928b4d56a4f09c3d2f5d493d47b45255', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '2c2862d5c7e75b637973c712b4982bf4978c0cdf', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '0cfacc52afaa7abc28c1b7742889d7a1c23a37ad', class: "popover-arrow", part: "arrow" }), h("div", { key: '3ef570c44d4fe7f063dd419008c92c8c40d3cd22', class: "popover-content", part: "content" }, h("slot", { key: '6fc5dfdce20fee1642bc1f05d41b5bf7d1034457' })))));
343
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '580c14ab48472534f59eedc5ba7fa486df25ed4e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '9bcf47893e8d3053e2baa40511785d84feb4038c', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '4d47f2bdc01a546a88190c07f8f4700f21de6715', class: "popover-arrow", part: "arrow" }), h("div", { key: '70018c088654c1996e305b7b6b114419e97824ef', class: "popover-content", part: "content" }, h("slot", { key: '3de8e1959b8facba2fbe694947704832200d8276' })))));
344
344
  }
345
345
  static get is() { return "ion-popover"; }
346
346
  static get encapsulation() { return "shadow"; }
@@ -28,7 +28,7 @@ export class ProgressBar {
28
28
  const mode = getIonMode(this);
29
29
  // If the progress is displayed as a solid bar.
30
30
  const progressSolid = buffer === 1;
31
- return (h(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
31
+ return (h(Host, { key: 'd60eeaa18aaee607e083c0ef9d0de8178d47c4cd', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
32
32
  [mode]: true,
33
33
  [`progress-bar-${type}`]: true,
34
34
  'progress-paused': paused,
@@ -120,7 +120,7 @@ export class Radio {
120
120
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
121
121
  const mode = getIonMode(this);
122
122
  const inItem = hostContext('ion-item', el);
123
- return (h(Host, { key: '5a0adab55ad009305de4856fa1b9f93f2279a734', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
123
+ return (h(Host, { key: '8badd4aec277addc0793e14df21f73bb345e99b7', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
124
124
  [mode]: true,
125
125
  'in-item': inItem,
126
126
  'radio-checked': checked,
@@ -131,10 +131,10 @@ export class Radio {
131
131
  // Focus and active styling should not apply when the radio is in an item
132
132
  'ion-activatable': !inItem,
133
133
  'ion-focusable': !inItem,
134
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: 'f5673a798e6d87868339f046445f707e1d93b7b6', class: "radio-wrapper" }, h("div", { key: 'e9190c06f75a171cab63e3f74ccf771c3ed87005', class: {
134
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '8765b847edc93a1b5a16506e155ed03da807bb10', class: "radio-wrapper" }, h("div", { key: '3d568a0192a32d4f0b8a920019c79ff02639b5c9', class: {
135
135
  'label-text-wrapper': true,
136
136
  'label-text-wrapper-hidden': !hasLabel,
137
- }, part: "label" }, h("slot", { key: '6cedf4e7b3bd03e4a635727dd7b6094bab64af64' })), h("div", { key: '26dd48d9d2848b7f100b732abdc4a3171adde483', class: "native-wrapper" }, this.renderRadioControl()))));
137
+ }, part: "label" }, h("slot", { key: '331f3dc2ce5f6ed8f124fc4560f92e0f7c668a85' })), h("div", { key: '473bd4aaf448753e385f2dda3fddc9f56379aa19', class: "native-wrapper" }, this.renderRadioControl()))));
138
138
  }
139
139
  static get is() { return "ion-radio"; }
140
140
  static get encapsulation() { return "shadow"; }