voyager-ionic-core 7.4.3 → 7.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (687) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +10 -2
  3. package/components/animation.js +60 -1
  4. package/components/button.js +2 -2
  5. package/components/buttons.js +2 -2
  6. package/components/checkbox.js +4 -1
  7. package/components/data.js +96 -22
  8. package/components/haptic.js +1 -0
  9. package/components/icon.js +31 -18
  10. package/components/index.js +1 -0
  11. package/components/index4.js +26 -19
  12. package/components/index7.js +1 -1
  13. package/components/ion-back-button.js +2 -2
  14. package/components/ion-badge.js +2 -2
  15. package/components/ion-breadcrumb.js +2 -2
  16. package/components/ion-card-content.js +2 -2
  17. package/components/ion-card-subtitle.js +2 -2
  18. package/components/ion-card-title.js +2 -2
  19. package/components/ion-card.js +2 -2
  20. package/components/ion-chip.js +8 -3
  21. package/components/ion-datetime-button.js +6 -6
  22. package/components/ion-datetime.js +6 -6
  23. package/components/ion-header.js +1 -1
  24. package/components/ion-input.js +2 -2
  25. package/components/ion-item-divider.js +2 -2
  26. package/components/ion-item-option.js +2 -2
  27. package/components/ion-item-options.js +2 -2
  28. package/components/ion-loading.js +2 -2
  29. package/components/ion-menu-button.js +2 -2
  30. package/components/ion-menu.js +48 -28
  31. package/components/ion-nav.js +1 -0
  32. package/components/ion-range.js +2 -2
  33. package/components/ion-reorder.js +2 -2
  34. package/components/ion-router.js +3 -0
  35. package/components/ion-searchbar.js +9 -3
  36. package/components/ion-select.js +34 -20
  37. package/components/ion-textarea.js +2 -2
  38. package/components/ion-title.js +2 -2
  39. package/components/ion-toast.js +159 -15
  40. package/components/ion-toggle.js +3 -0
  41. package/components/ion-toolbar.js +1 -1
  42. package/components/ios.transition.js +5 -4
  43. package/components/item.js +2 -2
  44. package/components/label.js +2 -2
  45. package/components/list-header.js +2 -2
  46. package/components/note.js +2 -2
  47. package/components/overlays.js +1 -0
  48. package/components/radio-group.js +1 -1
  49. package/components/radio.js +6 -3
  50. package/components/swipe-back.js +4 -0
  51. package/css/core.css +100 -0
  52. package/css/core.css.map +1 -1
  53. package/css/display.css +33 -0
  54. package/css/display.css.map +1 -1
  55. package/css/float-elements.css +33 -0
  56. package/css/float-elements.css.map +1 -1
  57. package/css/global.bundle.css +84 -6
  58. package/css/global.bundle.css.map +1 -1
  59. package/css/ionic-swiper.css +33 -0
  60. package/css/ionic-swiper.css.map +1 -1
  61. package/css/ionic.bundle.css +1 -1
  62. package/css/ionic.bundle.css.map +1 -1
  63. package/css/padding.css +33 -0
  64. package/css/padding.css.map +1 -1
  65. package/css/structure.css +33 -0
  66. package/css/structure.css.map +1 -1
  67. package/css/text-alignment.css +33 -0
  68. package/css/text-alignment.css.map +1 -1
  69. package/css/text-transformation.css +33 -0
  70. package/css/text-transformation.css.map +1 -1
  71. package/css/typography.css +51 -6
  72. package/css/typography.css.map +1 -1
  73. package/css/utils.bundle.css +165 -0
  74. package/css/utils.bundle.css.map +1 -1
  75. package/dist/cjs/{animation-2bb33618.js → animation-c8bdd3c7.js} +60 -1
  76. package/dist/cjs/{app-globals-84b6a756.js → app-globals-fe1ad535.js} +1 -1
  77. package/dist/cjs/{button-active-c358e83c.js → button-active-c0ff1915.js} +2 -2
  78. package/dist/cjs/{data-db832785.js → data-c8d21093.js} +96 -22
  79. package/dist/cjs/{haptic-c5f6b4d5.js → haptic-678abc9f.js} +1 -0
  80. package/dist/cjs/{index-d8d1fc0b.js → index-09471526.js} +1 -1
  81. package/dist/cjs/{index-14a4821e.js → index-305a23dc.js} +95 -51
  82. package/dist/cjs/{index-97a3eade.js → index-5e7529f6.js} +28 -21
  83. package/dist/cjs/{index-acf6bdf0.js → index-d93fb71d.js} +3 -3
  84. package/dist/cjs/index.cjs.js +11 -9
  85. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  87. package/dist/cjs/ion-alert.cjs.entry.js +16 -8
  88. package/dist/cjs/ion-app_8.cjs.entry.js +11 -11
  89. package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -4
  90. package/dist/cjs/ion-back-button.cjs.entry.js +5 -5
  91. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +5 -5
  93. package/dist/cjs/ion-button_2.cjs.entry.js +35 -22
  94. package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
  95. package/dist/cjs/ion-checkbox.cjs.entry.js +6 -3
  96. package/dist/cjs/ion-chip.cjs.entry.js +9 -4
  97. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -8
  99. package/dist/cjs/ion-datetime_3.cjs.entry.js +12 -12
  100. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  101. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  104. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  105. package/dist/cjs/ion-item_8.cjs.entry.js +13 -13
  106. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  107. package/dist/cjs/ion-menu_3.cjs.entry.js +59 -38
  108. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  109. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -4
  110. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +3 -3
  111. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  112. package/dist/cjs/ion-popover.cjs.entry.js +5 -5
  113. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  114. package/dist/cjs/ion-radio_2.cjs.entry.js +9 -6
  115. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  116. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  117. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
  118. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  119. package/dist/cjs/ion-route_4.cjs.entry.js +5 -2
  120. package/dist/cjs/ion-searchbar.cjs.entry.js +12 -6
  121. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  122. package/dist/cjs/ion-select_3.cjs.entry.js +38 -24
  123. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  124. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  125. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  126. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  127. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  128. package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
  129. package/dist/cjs/ion-toast.cjs.entry.js +178 -36
  130. package/dist/cjs/ion-toggle.cjs.entry.js +7 -4
  131. package/dist/cjs/{ionic-global-a71608df.js → ionic-global-fb752503.js} +1 -1
  132. package/dist/cjs/ionic.cjs.js +5 -5
  133. package/dist/cjs/{ios.transition-e31445c2.js → ios.transition-a4d545dd.js} +8 -7
  134. package/dist/cjs/loader.cjs.js +4 -4
  135. package/dist/cjs/{md.transition-fb13ac79.js → md.transition-80bb961b.js} +3 -3
  136. package/dist/cjs/{overlays-efc9d511.js → overlays-1a734051.js} +2 -1
  137. package/dist/cjs/{status-tap-8c22e017.js → status-tap-778e8054.js} +1 -1
  138. package/dist/cjs/{swipe-back-d97c74d1.js → swipe-back-7e843e77.js} +4 -0
  139. package/dist/collection/collection-manifest.json +1 -1
  140. package/dist/collection/components/accordion/accordion.ios.css +66 -0
  141. package/dist/collection/components/accordion/accordion.md.css +33 -0
  142. package/dist/collection/components/accordion-group/accordion-group.ios.css +66 -0
  143. package/dist/collection/components/accordion-group/accordion-group.md.css +99 -0
  144. package/dist/collection/components/action-sheet/action-sheet.ios.css +80 -12
  145. package/dist/collection/components/action-sheet/action-sheet.md.css +76 -8
  146. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +27 -0
  147. package/dist/collection/components/alert/alert.ios.css +138 -21
  148. package/dist/collection/components/alert/alert.js +8 -0
  149. package/dist/collection/components/alert/alert.md.css +108 -8
  150. package/dist/collection/components/alert/test/a11y/alert.e2e.js +122 -0
  151. package/dist/collection/components/avatar/avatar.ios.css +66 -0
  152. package/dist/collection/components/avatar/avatar.md.css +66 -0
  153. package/dist/collection/components/back-button/back-button.ios.css +83 -1
  154. package/dist/collection/components/back-button/back-button.md.css +75 -3
  155. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +26 -0
  156. package/dist/collection/components/backdrop/backdrop.ios.css +66 -0
  157. package/dist/collection/components/backdrop/backdrop.md.css +66 -0
  158. package/dist/collection/components/badge/badge.ios.css +75 -1
  159. package/dist/collection/components/badge/badge.md.css +67 -1
  160. package/dist/collection/components/badge/test/a11y/badge.e2e.js +22 -0
  161. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +80 -3
  162. package/dist/collection/components/breadcrumb/breadcrumb.md.css +69 -3
  163. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +33 -0
  164. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +33 -0
  165. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +21 -0
  166. package/dist/collection/components/button/button.ios.css +118 -19
  167. package/dist/collection/components/button/button.md.css +69 -3
  168. package/dist/collection/components/button/test/a11y/button.e2e.js +61 -0
  169. package/dist/collection/components/buttons/buttons.ios.css +102 -3
  170. package/dist/collection/components/buttons/buttons.md.css +101 -2
  171. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +74 -0
  172. package/dist/collection/components/card/card.ios.css +67 -1
  173. package/dist/collection/components/card/card.md.css +67 -1
  174. package/dist/collection/components/card/test/a11y/card.e2e.js +31 -0
  175. package/dist/collection/components/card-content/card-content.ios.css +71 -5
  176. package/dist/collection/components/card-content/card-content.md.css +71 -5
  177. package/dist/collection/components/card-header/card-header.ios.css +66 -0
  178. package/dist/collection/components/card-header/card-header.md.css +66 -0
  179. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +67 -1
  180. package/dist/collection/components/card-subtitle/card-subtitle.md.css +67 -1
  181. package/dist/collection/components/card-title/card-title.ios.css +67 -1
  182. package/dist/collection/components/card-title/card-title.md.css +67 -1
  183. package/dist/collection/components/checkbox/checkbox.ios.css +101 -2
  184. package/dist/collection/components/checkbox/checkbox.js +3 -0
  185. package/dist/collection/components/checkbox/checkbox.md.css +99 -0
  186. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +18 -0
  187. package/dist/collection/components/chip/chip.ios.css +190 -0
  188. package/dist/collection/components/chip/chip.js +4 -2
  189. package/dist/collection/components/chip/{chip.css → chip.md.css} +43 -7
  190. package/dist/collection/components/chip/test/a11y/chip.e2e.js +58 -0
  191. package/dist/collection/components/col/col.css +66 -0
  192. package/dist/collection/components/content/content.css +33 -0
  193. package/dist/collection/components/datetime/datetime.ios.css +198 -7
  194. package/dist/collection/components/datetime/datetime.js +13 -7
  195. package/dist/collection/components/datetime/datetime.md.css +97 -5
  196. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +28 -0
  197. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +14 -0
  198. package/dist/collection/components/datetime/utils/data.js +33 -7
  199. package/dist/collection/components/datetime/utils/format.js +27 -10
  200. package/dist/collection/components/datetime/utils/helpers.js +37 -5
  201. package/dist/collection/components/datetime-button/datetime-button.css +36 -2
  202. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  203. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +38 -0
  204. package/dist/collection/components/fab/fab.css +132 -0
  205. package/dist/collection/components/fab-button/fab-button.ios.css +66 -0
  206. package/dist/collection/components/fab-button/fab-button.md.css +66 -0
  207. package/dist/collection/components/fab-list/fab-list.css +66 -0
  208. package/dist/collection/components/footer/footer.ios.css +66 -0
  209. package/dist/collection/components/footer/footer.md.css +66 -0
  210. package/dist/collection/components/grid/grid.css +66 -0
  211. package/dist/collection/components/header/header.ios.css +71 -2
  212. package/dist/collection/components/header/header.md.css +66 -0
  213. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +66 -0
  214. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +66 -0
  215. package/dist/collection/components/input/input.ios.css +100 -1
  216. package/dist/collection/components/input/input.md.css +199 -1
  217. package/dist/collection/components/input/test/a11y/input.e2e.js +15 -1
  218. package/dist/collection/components/item/item.ios.css +70 -4
  219. package/dist/collection/components/item/item.md.css +138 -6
  220. package/dist/collection/components/item/test/a11y/item.e2e.js +116 -1
  221. package/dist/collection/components/item-divider/item-divider.ios.css +101 -9
  222. package/dist/collection/components/item-divider/item-divider.md.css +103 -11
  223. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +44 -0
  224. package/dist/collection/components/item-group/item-group.ios.css +68 -1
  225. package/dist/collection/components/item-group/item-group.md.css +68 -1
  226. package/dist/collection/components/item-option/item-option.ios.css +67 -1
  227. package/dist/collection/components/item-option/item-option.md.css +67 -1
  228. package/dist/collection/components/item-options/item-options.ios.css +99 -1
  229. package/dist/collection/components/item-options/item-options.md.css +99 -1
  230. package/dist/collection/components/item-sliding/item-sliding.css +33 -0
  231. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +34 -0
  232. package/dist/collection/components/label/label.ios.css +105 -6
  233. package/dist/collection/components/label/label.md.css +104 -5
  234. package/dist/collection/components/label/test/a11y/label.e2e.js +66 -0
  235. package/dist/collection/components/list/list.ios.css +99 -0
  236. package/dist/collection/components/list/list.md.css +99 -0
  237. package/dist/collection/components/list-header/list-header.ios.css +100 -1
  238. package/dist/collection/components/list-header/list-header.md.css +100 -1
  239. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +24 -0
  240. package/dist/collection/components/loading/loading.ios.css +67 -1
  241. package/dist/collection/components/loading/loading.md.css +67 -1
  242. package/dist/collection/components/loading/test/a11y/loading.e2e.js +19 -0
  243. package/dist/collection/components/menu/menu.ios.css +66 -0
  244. package/dist/collection/components/menu/menu.js +48 -28
  245. package/dist/collection/components/menu/menu.md.css +66 -0
  246. package/dist/collection/components/menu/test/disable/menu.e2e.js +55 -0
  247. package/dist/collection/components/menu/test/multiple/menu.e2e.js +60 -0
  248. package/dist/collection/components/menu-button/menu-button.ios.css +70 -2
  249. package/dist/collection/components/menu-button/menu-button.md.css +71 -3
  250. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +20 -1
  251. package/dist/collection/components/modal/modal.ios.css +66 -0
  252. package/dist/collection/components/modal/modal.md.css +66 -0
  253. package/dist/collection/components/nav/nav.css +33 -0
  254. package/dist/collection/components/nav/nav.js +1 -0
  255. package/dist/collection/components/note/note.ios.css +67 -0
  256. package/dist/collection/components/note/note.md.css +67 -1
  257. package/dist/collection/components/note/test/a11y/note.e2e.js +52 -0
  258. package/dist/collection/components/picker/picker.ios.css +66 -0
  259. package/dist/collection/components/picker/picker.md.css +66 -0
  260. package/dist/collection/components/picker-column/picker-column.ios.css +66 -0
  261. package/dist/collection/components/picker-column/picker-column.md.css +66 -0
  262. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +33 -0
  263. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +66 -0
  264. package/dist/collection/components/picker-internal/picker-internal.ios.css +66 -0
  265. package/dist/collection/components/picker-internal/picker-internal.md.css +66 -0
  266. package/dist/collection/components/popover/popover.ios.css +66 -0
  267. package/dist/collection/components/popover/popover.md.css +66 -0
  268. package/dist/collection/components/progress-bar/progress-bar.ios.css +33 -0
  269. package/dist/collection/components/progress-bar/progress-bar.md.css +33 -0
  270. package/dist/collection/components/radio/radio.ios.css +104 -5
  271. package/dist/collection/components/radio/radio.js +4 -1
  272. package/dist/collection/components/radio/radio.md.css +104 -5
  273. package/dist/collection/components/radio/test/a11y/radio.e2e.js +21 -0
  274. package/dist/collection/components/radio-group/radio-group.js +1 -1
  275. package/dist/collection/components/range/range.ios.css +82 -8
  276. package/dist/collection/components/range/range.md.css +99 -11
  277. package/dist/collection/components/range/test/a11y/range.e2e.js +22 -0
  278. package/dist/collection/components/refresher/refresher.ios.css +66 -0
  279. package/dist/collection/components/refresher/refresher.md.css +66 -0
  280. package/dist/collection/components/reorder/reorder.ios.css +75 -2
  281. package/dist/collection/components/reorder/reorder.md.css +75 -2
  282. package/dist/collection/components/reorder-group/reorder-group.css +33 -0
  283. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +33 -0
  284. package/dist/collection/components/ripple-effect/ripple-effect.css +33 -0
  285. package/dist/collection/components/router/router.js +2 -0
  286. package/dist/collection/components/router/utils/path.js +1 -0
  287. package/dist/collection/components/router-link/router-link.css +33 -0
  288. package/dist/collection/components/router-outlet/router-outlet.css +33 -0
  289. package/dist/collection/components/row/row.css +66 -0
  290. package/dist/collection/components/searchbar/searchbar.ios.css +95 -16
  291. package/dist/collection/components/searchbar/searchbar.js +7 -1
  292. package/dist/collection/components/searchbar/searchbar.md.css +77 -10
  293. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +37 -0
  294. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +18 -0
  295. package/dist/collection/components/segment/segment.ios.css +99 -0
  296. package/dist/collection/components/segment/segment.md.css +99 -0
  297. package/dist/collection/components/segment-button/segment-button.ios.css +66 -0
  298. package/dist/collection/components/segment-button/segment-button.md.css +66 -0
  299. package/dist/collection/components/select/select.ios.css +102 -3
  300. package/dist/collection/components/select/select.js +32 -18
  301. package/dist/collection/components/select/select.md.css +167 -2
  302. package/dist/collection/components/select/test/a11y/select.e2e.js +22 -0
  303. package/dist/collection/components/select/test/disabled/select.e2e.js +30 -0
  304. package/dist/collection/components/select-popover/select-popover.ios.css +101 -1
  305. package/dist/collection/components/select-popover/select-popover.md.css +99 -0
  306. package/dist/collection/components/skeleton-text/skeleton-text.css +33 -0
  307. package/dist/collection/components/spinner/spinner.css +33 -0
  308. package/dist/collection/components/split-pane/split-pane.ios.css +99 -0
  309. package/dist/collection/components/split-pane/split-pane.md.css +99 -0
  310. package/dist/collection/components/tab-bar/tab-bar.ios.css +99 -0
  311. package/dist/collection/components/tab-bar/tab-bar.md.css +99 -0
  312. package/dist/collection/components/tab-button/tab-button.ios.css +66 -0
  313. package/dist/collection/components/tab-button/tab-button.md.css +66 -0
  314. package/dist/collection/components/tabs/tabs.css +33 -0
  315. package/dist/collection/components/text/text.css +33 -0
  316. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +15 -1
  317. package/dist/collection/components/textarea/textarea.ios.css +133 -1
  318. package/dist/collection/components/textarea/textarea.md.css +199 -1
  319. package/dist/collection/components/thumbnail/thumbnail.css +33 -0
  320. package/dist/collection/components/title/test/a11y/title.e2e.js +61 -0
  321. package/dist/collection/components/title/title.ios.css +43 -10
  322. package/dist/collection/components/title/title.md.css +35 -2
  323. package/dist/collection/components/toast/animations/ios.enter.js +2 -3
  324. package/dist/collection/components/toast/animations/ios.leave.js +2 -3
  325. package/dist/collection/components/toast/animations/md.enter.js +2 -3
  326. package/dist/collection/components/toast/animations/utils.js +85 -0
  327. package/dist/collection/components/toast/test/a11y/toast.e2e.js +98 -1
  328. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +45 -0
  329. package/dist/collection/components/toast/toast.ios.css +74 -3
  330. package/dist/collection/components/toast/toast.js +98 -9
  331. package/dist/collection/components/toast/toast.md.css +74 -4
  332. package/dist/collection/components/toggle/toggle.ios.css +99 -0
  333. package/dist/collection/components/toggle/toggle.js +3 -0
  334. package/dist/collection/components/toggle/toggle.md.css +99 -0
  335. package/dist/collection/components/toolbar/toolbar.ios.css +66 -14
  336. package/dist/collection/components/toolbar/toolbar.md.css +66 -0
  337. package/dist/collection/css/test/a11y/typography.e2e.js +32 -0
  338. package/dist/collection/index.js +1 -0
  339. package/dist/collection/utils/animation/animation.js +60 -1
  340. package/dist/collection/utils/gesture/swipe-back.js +4 -0
  341. package/dist/collection/utils/menu-controller/index.js +26 -19
  342. package/dist/collection/utils/native/haptic.js +1 -0
  343. package/dist/collection/utils/overlays.js +1 -0
  344. package/dist/collection/utils/transition/ios.transition.js +5 -4
  345. package/dist/docs.json +74 -11
  346. package/dist/esm/{animation-a1d9e088.js → animation-92066c62.js} +60 -1
  347. package/dist/esm/{app-globals-df292a32.js → app-globals-ec816a70.js} +1 -1
  348. package/dist/esm/{button-active-7180a130.js → button-active-d926d4f4.js} +2 -2
  349. package/dist/esm/{data-009dbf15.js → data-44d9e816.js} +96 -22
  350. package/dist/esm/{haptic-6447af60.js → haptic-1243b917.js} +1 -0
  351. package/dist/esm/{index-32c6828b.js → index-7d2b2808.js} +3 -3
  352. package/dist/esm/{index-cb894020.js → index-b49b173c.js} +95 -51
  353. package/dist/esm/{index-ecfc2c9f.js → index-c132c5f1.js} +1 -1
  354. package/dist/esm/{index-3d6aefa2.js → index-df55802d.js} +28 -21
  355. package/dist/esm/index.js +10 -9
  356. package/dist/esm/ion-accordion_2.entry.js +3 -3
  357. package/dist/esm/ion-action-sheet.entry.js +8 -8
  358. package/dist/esm/ion-alert.entry.js +16 -8
  359. package/dist/esm/ion-app_8.entry.js +11 -11
  360. package/dist/esm/ion-avatar_3.entry.js +4 -4
  361. package/dist/esm/ion-back-button.entry.js +5 -5
  362. package/dist/esm/ion-backdrop.entry.js +2 -2
  363. package/dist/esm/ion-breadcrumb_2.entry.js +5 -5
  364. package/dist/esm/ion-button_2.entry.js +35 -22
  365. package/dist/esm/ion-card_5.entry.js +10 -10
  366. package/dist/esm/ion-checkbox.entry.js +6 -3
  367. package/dist/esm/ion-chip.entry.js +9 -4
  368. package/dist/esm/ion-col_3.entry.js +2 -2
  369. package/dist/esm/ion-datetime-button.entry.js +8 -8
  370. package/dist/esm/ion-datetime_3.entry.js +12 -12
  371. package/dist/esm/ion-fab_3.entry.js +3 -3
  372. package/dist/esm/ion-img.entry.js +2 -2
  373. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  374. package/dist/esm/ion-input.entry.js +5 -5
  375. package/dist/esm/ion-item-option_3.entry.js +6 -6
  376. package/dist/esm/ion-item_8.entry.js +13 -13
  377. package/dist/esm/ion-loading.entry.js +6 -6
  378. package/dist/esm/ion-menu_3.entry.js +58 -37
  379. package/dist/esm/ion-modal.entry.js +5 -5
  380. package/dist/esm/ion-nav_2.entry.js +5 -4
  381. package/dist/esm/ion-picker-column-internal.entry.js +3 -3
  382. package/dist/esm/ion-picker-internal.entry.js +1 -1
  383. package/dist/esm/ion-popover.entry.js +5 -5
  384. package/dist/esm/ion-progress-bar.entry.js +2 -2
  385. package/dist/esm/ion-radio_2.entry.js +9 -6
  386. package/dist/esm/ion-range.entry.js +4 -4
  387. package/dist/esm/ion-refresher_2.entry.js +5 -5
  388. package/dist/esm/ion-reorder_2.entry.js +6 -6
  389. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  390. package/dist/esm/ion-route_4.entry.js +5 -2
  391. package/dist/esm/ion-searchbar.entry.js +12 -6
  392. package/dist/esm/ion-segment_2.entry.js +2 -2
  393. package/dist/esm/ion-select_3.entry.js +38 -24
  394. package/dist/esm/ion-spinner.entry.js +2 -2
  395. package/dist/esm/ion-split-pane.entry.js +2 -2
  396. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  397. package/dist/esm/ion-tab_2.entry.js +1 -1
  398. package/dist/esm/ion-text.entry.js +2 -2
  399. package/dist/esm/ion-textarea.entry.js +4 -4
  400. package/dist/esm/ion-toast.entry.js +162 -20
  401. package/dist/esm/ion-toggle.entry.js +7 -4
  402. package/dist/esm/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  403. package/dist/esm/ionic.js +6 -6
  404. package/dist/esm/{ios.transition-d8223b18.js → ios.transition-a86d7bbe.js} +8 -7
  405. package/dist/esm/loader.js +5 -5
  406. package/dist/esm/{md.transition-caed184e.js → md.transition-365ef6b6.js} +3 -3
  407. package/dist/esm/{overlays-84621c0a.js → overlays-cec6bac8.js} +2 -1
  408. package/dist/esm/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  409. package/dist/esm/{swipe-back-6e8158bc.js → swipe-back-cd4295f3.js} +4 -0
  410. package/dist/esm-es5/animation-92066c62.js +4 -0
  411. package/dist/esm-es5/app-globals-ec816a70.js +4 -0
  412. package/dist/esm-es5/{button-active-7180a130.js → button-active-d926d4f4.js} +1 -1
  413. package/dist/esm-es5/data-44d9e816.js +4 -0
  414. package/dist/esm-es5/{index-32c6828b.js → index-7d2b2808.js} +1 -1
  415. package/dist/esm-es5/index-b49b173c.js +5 -0
  416. package/dist/esm-es5/index-df55802d.js +4 -0
  417. package/dist/esm-es5/index.js +1 -1
  418. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  419. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  420. package/dist/esm-es5/ion-alert.entry.js +1 -1
  421. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  422. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  423. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  424. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  425. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  426. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  427. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  428. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  429. package/dist/esm-es5/ion-chip.entry.js +1 -1
  430. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  431. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  432. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  433. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  434. package/dist/esm-es5/ion-img.entry.js +1 -1
  435. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  436. package/dist/esm-es5/ion-input.entry.js +1 -1
  437. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  438. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  439. package/dist/esm-es5/ion-loading.entry.js +1 -1
  440. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  441. package/dist/esm-es5/ion-modal.entry.js +1 -1
  442. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  443. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  444. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  445. package/dist/esm-es5/ion-popover.entry.js +1 -1
  446. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  447. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  448. package/dist/esm-es5/ion-range.entry.js +1 -1
  449. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  450. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  451. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  452. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  453. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  454. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  455. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  456. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  457. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  458. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  459. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  460. package/dist/esm-es5/ion-text.entry.js +1 -1
  461. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  462. package/dist/esm-es5/ion-toast.entry.js +1 -1
  463. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  464. package/dist/esm-es5/{ionic-global-63a8d8c9.js → ionic-global-246ca78f.js} +1 -1
  465. package/dist/esm-es5/ionic.js +1 -1
  466. package/dist/esm-es5/ios.transition-a86d7bbe.js +4 -0
  467. package/dist/esm-es5/loader.js +1 -1
  468. package/dist/esm-es5/{md.transition-caed184e.js → md.transition-365ef6b6.js} +1 -1
  469. package/dist/esm-es5/{overlays-84621c0a.js → overlays-cec6bac8.js} +1 -1
  470. package/dist/esm-es5/{status-tap-73e982b6.js → status-tap-9aeeaca5.js} +1 -1
  471. package/dist/html.html-data.json +11 -1
  472. package/dist/ionic/index.esm.js +1 -1
  473. package/dist/ionic/ionic.esm.js +1 -1
  474. package/dist/ionic/ionic.js +1 -1
  475. package/dist/ionic/p-012952cd.system.entry.js +4 -0
  476. package/dist/ionic/p-015187e5.system.js +4 -0
  477. package/dist/ionic/p-06ac429a.js +5 -0
  478. package/dist/ionic/{p-dd0c00ed.entry.js → p-0ac3fb2c.entry.js} +1 -1
  479. package/dist/ionic/{p-a1d7f4ef.entry.js → p-0b00b937.entry.js} +1 -1
  480. package/dist/ionic/{p-a8403bed.system.entry.js → p-0b7c25ee.system.entry.js} +1 -1
  481. package/dist/ionic/p-0bbede6a.system.entry.js +4 -0
  482. package/dist/ionic/{p-a4e95028.system.entry.js → p-0f1f59da.system.entry.js} +1 -1
  483. package/dist/ionic/{p-7887ac7a.entry.js → p-108f9d49.entry.js} +1 -1
  484. package/dist/ionic/{p-e263255c.system.entry.js → p-1289b3b5.system.entry.js} +1 -1
  485. package/dist/ionic/{p-a760fd9a.system.js → p-128a98e8.system.js} +1 -1
  486. package/dist/ionic/{p-63f39d2f.entry.js → p-15decbec.entry.js} +1 -1
  487. package/dist/ionic/p-16e44585.js +4 -0
  488. package/dist/ionic/p-17240d90.js +4 -0
  489. package/dist/ionic/{p-8a289322.js → p-181b7c2a.js} +1 -1
  490. package/dist/ionic/p-19fba51c.entry.js +4 -0
  491. package/dist/ionic/p-1a463b1e.system.entry.js +4 -0
  492. package/dist/ionic/{p-9201a4d3.entry.js → p-1ecba429.entry.js} +1 -1
  493. package/dist/ionic/p-1edb53a1.entry.js +4 -0
  494. package/dist/ionic/p-1f260a7b.entry.js +4 -0
  495. package/dist/ionic/{p-3db27dec.entry.js → p-1f81b5be.entry.js} +1 -1
  496. package/dist/ionic/p-28ea45b9.js +4 -0
  497. package/dist/ionic/{p-8f36cde3.system.entry.js → p-29073efe.system.entry.js} +1 -1
  498. package/dist/ionic/p-2bbf3ac4.system.entry.js +4 -0
  499. package/dist/ionic/p-303bf1e8.system.entry.js +4 -0
  500. package/dist/ionic/p-31119a15.entry.js +4 -0
  501. package/dist/ionic/{p-c09e1da9.system.entry.js → p-33a8349a.system.entry.js} +1 -1
  502. package/dist/ionic/p-34259245.system.entry.js +4 -0
  503. package/dist/ionic/{p-7cad90ed.entry.js → p-35b26732.entry.js} +1 -1
  504. package/dist/ionic/p-35e399bd.entry.js +4 -0
  505. package/dist/ionic/p-38089641.entry.js +4 -0
  506. package/dist/ionic/{p-a6c52452.entry.js → p-3818f63f.entry.js} +1 -1
  507. package/dist/ionic/p-38c5fe2b.system.entry.js +4 -0
  508. package/dist/ionic/{p-6f3099b6.system.entry.js → p-3a58e3a4.system.entry.js} +1 -1
  509. package/dist/ionic/{p-9a6f6789.system.entry.js → p-3f3da911.system.entry.js} +1 -1
  510. package/dist/ionic/p-4215652f.system.entry.js +4 -0
  511. package/dist/ionic/p-446230d7.js +4 -0
  512. package/dist/ionic/p-4e50b8d1.entry.js +4 -0
  513. package/dist/ionic/{p-0793ebfd.entry.js → p-4e6e43c1.entry.js} +1 -1
  514. package/dist/ionic/p-4f97c112.entry.js +4 -0
  515. package/dist/ionic/p-54200074.entry.js +4 -0
  516. package/dist/ionic/{p-abfd1f2e.system.entry.js → p-54f6cd27.system.entry.js} +1 -1
  517. package/dist/ionic/p-572cce26.system.entry.js +4 -0
  518. package/dist/ionic/{p-b79eb3cd.entry.js → p-5b976d70.entry.js} +1 -1
  519. package/dist/ionic/p-5c3e72a8.system.js +4 -0
  520. package/dist/ionic/{p-6c7d61b9.system.entry.js → p-6129af0a.system.entry.js} +1 -1
  521. package/dist/ionic/{p-26fbffd4.system.js → p-629aa3fd.system.js} +1 -1
  522. package/dist/ionic/p-62e7d4fa.js +4 -0
  523. package/dist/ionic/p-673846f6.entry.js +4 -0
  524. package/dist/ionic/p-6ce0a709.system.entry.js +4 -0
  525. package/dist/ionic/{p-92d72ad8.entry.js → p-6ea2e653.entry.js} +1 -1
  526. package/dist/ionic/p-6f6646bf.system.entry.js +4 -0
  527. package/dist/ionic/{p-a9b13f18.system.entry.js → p-6f8a95a3.system.entry.js} +1 -1
  528. package/dist/ionic/{p-7a590a28.js → p-76378400.js} +1 -1
  529. package/dist/ionic/p-78030c1f.system.entry.js +4 -0
  530. package/dist/ionic/p-8083aadb.entry.js +4 -0
  531. package/dist/ionic/{p-3dce88bf.entry.js → p-818b2e75.entry.js} +1 -1
  532. package/dist/ionic/p-81ef7437.system.entry.js +4 -0
  533. package/dist/ionic/{p-b4daca17.system.entry.js → p-8a2801f1.system.entry.js} +1 -1
  534. package/dist/ionic/p-8c1805f4.system.entry.js +4 -0
  535. package/dist/ionic/p-8d6728a1.system.entry.js +4 -0
  536. package/dist/ionic/{p-00cf2d6c.js → p-8e24ebbc.js} +1 -1
  537. package/dist/ionic/{p-c8ec0d79.system.js → p-8f01a9a2.system.js} +1 -1
  538. package/dist/ionic/{p-9f9efb31.system.js → p-939e0fa1.system.js} +1 -1
  539. package/dist/ionic/{p-21085f64.system.entry.js → p-95817276.system.entry.js} +1 -1
  540. package/dist/ionic/{p-ca655a7c.entry.js → p-96ba8eac.entry.js} +1 -1
  541. package/dist/ionic/{p-95e44641.system.entry.js → p-9b9dcc3e.system.entry.js} +1 -1
  542. package/dist/ionic/p-9dc85536.system.entry.js +4 -0
  543. package/dist/ionic/{p-50d83224.entry.js → p-a04bfada.entry.js} +1 -1
  544. package/dist/ionic/p-a164e3ab.system.entry.js +4 -0
  545. package/dist/ionic/{p-018ad59f.entry.js → p-a200a7fc.entry.js} +1 -1
  546. package/dist/ionic/p-a34fc12e.system.entry.js +4 -0
  547. package/dist/ionic/p-a7f8dc42.entry.js +4 -0
  548. package/dist/ionic/p-a9c32660.entry.js +4 -0
  549. package/dist/ionic/p-aa377971.system.js +4 -0
  550. package/dist/ionic/p-ad48dd13.system.js +4 -0
  551. package/dist/ionic/{p-0e070fbe.entry.js → p-afb6658f.entry.js} +1 -1
  552. package/dist/ionic/{p-534a1cbc.system.js → p-b3c68723.system.js} +1 -1
  553. package/dist/ionic/{p-4e76e29a.system.entry.js → p-b61a2fa0.system.entry.js} +1 -1
  554. package/dist/ionic/{p-f6f4d4bb.system.entry.js → p-b753ec0d.system.entry.js} +1 -1
  555. package/dist/ionic/p-b8c3f071.system.js +4 -0
  556. package/dist/ionic/p-b9047b05.system.js +4 -0
  557. package/dist/ionic/{p-f37d6823.system.entry.js → p-beb864e4.system.entry.js} +1 -1
  558. package/dist/ionic/{p-58565369.system.entry.js → p-c05315f5.system.entry.js} +1 -1
  559. package/dist/ionic/p-c105bd36.entry.js +4 -0
  560. package/dist/ionic/p-c42c86c0.system.entry.js +4 -0
  561. package/dist/ionic/{p-5c24c115.system.js → p-c49672d8.system.js} +1 -1
  562. package/dist/ionic/{p-57743e20.entry.js → p-c4a5de01.entry.js} +1 -1
  563. package/dist/ionic/{p-c2d6b2fb.entry.js → p-c679fcb5.entry.js} +1 -1
  564. package/dist/ionic/p-c8c9d699.system.entry.js +4 -0
  565. package/dist/ionic/p-c92f0a6d.system.entry.js +4 -0
  566. package/dist/ionic/p-c956e82c.system.entry.js +4 -0
  567. package/dist/ionic/{p-a732cfec.system.js → p-c994fff0.system.js} +1 -1
  568. package/dist/ionic/p-cabd2c6d.entry.js +4 -0
  569. package/dist/ionic/p-cd2d17c3.system.entry.js +4 -0
  570. package/dist/ionic/{p-6db9035a.system.entry.js → p-ce7d67a7.system.entry.js} +1 -1
  571. package/dist/ionic/p-ced41304.system.js +4 -0
  572. package/dist/ionic/{p-84549737.system.entry.js → p-cf0c93e3.system.entry.js} +1 -1
  573. package/dist/ionic/{p-68a3da51.js → p-cf62e1c8.js} +1 -1
  574. package/dist/ionic/{p-7b15d413.entry.js → p-d35217be.entry.js} +1 -1
  575. package/dist/ionic/p-d6e53e66.entry.js +4 -0
  576. package/dist/ionic/{p-fa06c407.entry.js → p-db1a1e00.entry.js} +1 -1
  577. package/dist/ionic/{p-d90f0779.system.entry.js → p-e0f52215.system.entry.js} +1 -1
  578. package/dist/ionic/p-e1d5752d.system.entry.js +4 -0
  579. package/dist/ionic/p-e2bb634f.js +4 -0
  580. package/dist/ionic/p-e38a5f77.js +4 -0
  581. package/dist/ionic/{p-4b23f472.entry.js → p-e42aaa8b.entry.js} +1 -1
  582. package/dist/ionic/p-e65ebe96.entry.js +4 -0
  583. package/dist/ionic/p-e74faf2a.entry.js +4 -0
  584. package/dist/ionic/{p-9e91c83f.system.entry.js → p-eab10949.system.entry.js} +1 -1
  585. package/dist/ionic/{p-ac32f6ce.entry.js → p-eac263dd.entry.js} +1 -1
  586. package/dist/ionic/{p-e3272ed8.entry.js → p-f34f001c.entry.js} +1 -1
  587. package/dist/ionic/p-f4309ac7.entry.js +4 -0
  588. package/dist/ionic/p-f5bf698b.entry.js +4 -0
  589. package/dist/ionic/p-f7566bad.entry.js +4 -0
  590. package/dist/ionic/p-f919c026.entry.js +4 -0
  591. package/dist/ionic/{p-c381a9a9.system.entry.js → p-f9fa802c.system.entry.js} +1 -1
  592. package/dist/ionic/{p-3bf7c0dc.entry.js → p-fcf47f80.entry.js} +1 -1
  593. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +49 -6
  594. package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
  595. package/dist/types/components/datetime/datetime.d.ts +2 -2
  596. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  597. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  598. package/dist/types/components/datetime/utils/helpers.d.ts +15 -1
  599. package/dist/types/components/menu/menu-interface.d.ts +0 -1
  600. package/dist/types/components/menu/menu.d.ts +8 -1
  601. package/dist/types/components/toast/animations/ios.enter.d.ts +2 -1
  602. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  603. package/dist/types/components/toast/animations/md.enter.d.ts +2 -1
  604. package/dist/types/components/toast/animations/utils.d.ts +18 -0
  605. package/dist/types/components/toast/toast-interface.d.ts +11 -0
  606. package/dist/types/components/toast/toast.d.ts +21 -1
  607. package/dist/types/components.d.ts +16 -8
  608. package/dist/types/index.d.ts +1 -0
  609. package/dist/types/utils/menu-controller/index.d.ts +1 -2
  610. package/hydrate/index.js +607 -232
  611. package/package.json +7 -8
  612. package/dist/esm-es5/animation-a1d9e088.js +0 -4
  613. package/dist/esm-es5/app-globals-df292a32.js +0 -4
  614. package/dist/esm-es5/data-009dbf15.js +0 -4
  615. package/dist/esm-es5/index-3d6aefa2.js +0 -4
  616. package/dist/esm-es5/index-cb894020.js +0 -5
  617. package/dist/esm-es5/ios.transition-d8223b18.js +0 -4
  618. package/dist/ionic/p-007168b8.system.entry.js +0 -4
  619. package/dist/ionic/p-037e2738.system.entry.js +0 -4
  620. package/dist/ionic/p-043e8328.system.js +0 -4
  621. package/dist/ionic/p-15278928.entry.js +0 -4
  622. package/dist/ionic/p-1c59608c.system.entry.js +0 -4
  623. package/dist/ionic/p-1caf1ec6.entry.js +0 -4
  624. package/dist/ionic/p-1d2d1ab5.system.entry.js +0 -4
  625. package/dist/ionic/p-23e76249.entry.js +0 -4
  626. package/dist/ionic/p-28678af4.system.entry.js +0 -4
  627. package/dist/ionic/p-2992f2a8.entry.js +0 -4
  628. package/dist/ionic/p-30b04d8d.js +0 -4
  629. package/dist/ionic/p-37fc0d22.system.entry.js +0 -4
  630. package/dist/ionic/p-3e6b0330.system.entry.js +0 -4
  631. package/dist/ionic/p-44ef7224.system.js +0 -4
  632. package/dist/ionic/p-469d6a98.entry.js +0 -4
  633. package/dist/ionic/p-4af11953.entry.js +0 -4
  634. package/dist/ionic/p-4c20879c.entry.js +0 -4
  635. package/dist/ionic/p-57c5eca2.system.js +0 -4
  636. package/dist/ionic/p-5fd0a13e.system.entry.js +0 -4
  637. package/dist/ionic/p-6641d7fa.js +0 -4
  638. package/dist/ionic/p-67e21699.entry.js +0 -4
  639. package/dist/ionic/p-68b405cc.entry.js +0 -4
  640. package/dist/ionic/p-6b2641f6.system.js +0 -4
  641. package/dist/ionic/p-6ce891b2.entry.js +0 -4
  642. package/dist/ionic/p-73eba881.system.js +0 -4
  643. package/dist/ionic/p-7c901810.system.js +0 -4
  644. package/dist/ionic/p-7cfd253c.js +0 -4
  645. package/dist/ionic/p-7d6f2bbb.system.entry.js +0 -4
  646. package/dist/ionic/p-7fd0f045.system.entry.js +0 -4
  647. package/dist/ionic/p-8957b1de.system.entry.js +0 -4
  648. package/dist/ionic/p-89e3d112.system.entry.js +0 -4
  649. package/dist/ionic/p-8c17d825.js +0 -4
  650. package/dist/ionic/p-903c36fe.js +0 -5
  651. package/dist/ionic/p-90ebbca0.entry.js +0 -4
  652. package/dist/ionic/p-94a4ce40.js +0 -4
  653. package/dist/ionic/p-9649c54e.js +0 -4
  654. package/dist/ionic/p-96ad49f1.entry.js +0 -4
  655. package/dist/ionic/p-9d0916cb.system.js +0 -4
  656. package/dist/ionic/p-9e727d1d.entry.js +0 -4
  657. package/dist/ionic/p-a0e2f6d8.entry.js +0 -4
  658. package/dist/ionic/p-a51f5932.entry.js +0 -4
  659. package/dist/ionic/p-ab7edc16.system.entry.js +0 -4
  660. package/dist/ionic/p-b2397f35.entry.js +0 -4
  661. package/dist/ionic/p-b27772bf.entry.js +0 -4
  662. package/dist/ionic/p-b370d1b4.js +0 -4
  663. package/dist/ionic/p-b3bcef34.system.entry.js +0 -4
  664. package/dist/ionic/p-b4c0e9ee.entry.js +0 -4
  665. package/dist/ionic/p-b9e2aede.entry.js +0 -4
  666. package/dist/ionic/p-d2a278b1.entry.js +0 -4
  667. package/dist/ionic/p-d511de89.system.entry.js +0 -4
  668. package/dist/ionic/p-d580cbb7.system.entry.js +0 -4
  669. package/dist/ionic/p-da024961.entry.js +0 -4
  670. package/dist/ionic/p-e40b2cb4.system.entry.js +0 -4
  671. package/dist/ionic/p-e6d2cca2.system.entry.js +0 -4
  672. package/dist/ionic/p-e88ed929.system.entry.js +0 -4
  673. package/dist/ionic/p-ec29338e.entry.js +0 -4
  674. package/dist/ionic/p-ec451ef7.system.entry.js +0 -4
  675. package/dist/ionic/p-f1c2678b.system.entry.js +0 -4
  676. package/dist/ionic/p-f4267847.system.entry.js +0 -4
  677. package/dist/ionic/p-fb18f74b.system.entry.js +0 -4
  678. package/dist/ionic/p-fbc7995a.system.entry.js +0 -4
  679. /package/dist/esm-es5/{haptic-6447af60.js → haptic-1243b917.js} +0 -0
  680. /package/dist/esm-es5/{index-ecfc2c9f.js → index-c132c5f1.js} +0 -0
  681. /package/dist/esm-es5/{swipe-back-6e8158bc.js → swipe-back-cd4295f3.js} +0 -0
  682. /package/dist/ionic/{p-0e9a055c.js → p-32083c2d.js} +0 -0
  683. /package/dist/ionic/{p-8985b268.system.js → p-8050b9b9.system.js} +0 -0
  684. /package/dist/ionic/{p-14d7b7e2.system.js → p-b4b4bb29.system.js} +0 -0
  685. /package/dist/ionic/{p-eacb02b2.system.js → p-b912e055.system.js} +0 -0
  686. /package/dist/ionic/{p-bb6f38ed.js → p-b923f3d7.js} +0 -0
  687. /package/dist/ionic/{p-0a87858b.js → p-ea96fa73.js} +0 -0
@@ -1,3 +1,36 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
1
34
  :host {
2
35
  /**
3
36
  * @prop --background: Background of the menu
@@ -260,6 +293,39 @@ ion-backdrop {
260
293
  /* stylelint-enable declaration-no-important */
261
294
  }
262
295
 
296
+ /**
297
+ * Convert a font size to a dynamic font size.
298
+ * Fonts that participate in Dynamic Type should use
299
+ * dynamic font sizes.
300
+ * @param size - The initial font size including the unit (i.e. px or pt)
301
+ * @param unit (optional) - The unit to convert to. Use this if you want to
302
+ * convert to a unit other than $baselineUnit.
303
+ */
304
+ /**
305
+ * Convert a font size to a dynamic font size but impose
306
+ * a maximum font size.
307
+ * @param size - The initial font size including the unit (i.e. px or pt)
308
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
309
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
310
+ * convert to a unit other than $baselineUnit.
311
+ */
312
+ /**
313
+ * Convert a font size to a dynamic font size but impose
314
+ * a minimum font size.
315
+ * @param size - The initial font size including the unit (i.e. px or pt)
316
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
317
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
318
+ * convert to a unit other than $baselineUnit.
319
+ */
320
+ /**
321
+ * Convert a font size to a dynamic font size but impose
322
+ * maximum and minimum font sizes.
323
+ * @param size - The initial font size including the unit (i.e. px or pt)
324
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
325
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
326
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
327
+ * convert to a unit other than $baselineUnit.
328
+ */
263
329
  :host(.menu-type-push) {
264
330
  z-index: 1000;
265
331
  }
@@ -3,7 +3,6 @@
3
3
  */
4
4
  import { Build, Host, h } from "@stencil/core";
5
5
  import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
6
- import { doc } from "../../utils/browser/index";
7
6
  import { GESTURE_CONTROLLER } from "../../utils/gesture/index";
8
7
  import { inheritAriaAttributes, assert, clamp, isEndSide as isEnd } from "../../utils/helpers";
9
8
  import { menuController } from "../../utils/menu-controller/index";
@@ -24,6 +23,14 @@ export class Menu {
24
23
  this.lastOnEnd = 0;
25
24
  this.blocker = GESTURE_CONTROLLER.createBlocker({ disableScroll: true });
26
25
  this.didLoad = false;
26
+ /**
27
+ * Flag used to determine if an open/close
28
+ * operation was cancelled. For example, if
29
+ * an app calls "menu.open" then disables the menu
30
+ * part way through the animation, then this would
31
+ * be considered a cancelled operation.
32
+ */
33
+ this.operationCancelled = false;
27
34
  this.isAnimating = false;
28
35
  this._isOpen = false;
29
36
  this.inheritedAttributes = {};
@@ -292,6 +299,15 @@ export class Menu {
292
299
  this.beforeAnimation(shouldOpen);
293
300
  await this.loadAnimation();
294
301
  await this.startAnimation(shouldOpen, animated);
302
+ /**
303
+ * If the animation was cancelled then
304
+ * return false because the operation
305
+ * did not succeed.
306
+ */
307
+ if (this.operationCancelled) {
308
+ this.operationCancelled = false;
309
+ return false;
310
+ }
295
311
  this.afterAnimation(shouldOpen);
296
312
  return true;
297
313
  }
@@ -328,18 +344,23 @@ export class Menu {
328
344
  const easingReverse = mode === 'ios' ? iosEasingReverse : mdEasingReverse;
329
345
  const ani = this.animation
330
346
  .direction(isReversed ? 'reverse' : 'normal')
331
- .easing(isReversed ? easingReverse : easing)
332
- .onFinish(() => {
333
- if (ani.getDirection() === 'reverse') {
334
- ani.direction('normal');
335
- }
336
- });
347
+ .easing(isReversed ? easingReverse : easing);
337
348
  if (animated) {
338
349
  await ani.play();
339
350
  }
340
351
  else {
341
352
  ani.play({ sync: true });
342
353
  }
354
+ /**
355
+ * We run this after the play invocation
356
+ * instead of using ani.onFinish so that
357
+ * multiple onFinish callbacks do not get
358
+ * run if an animation is played, stopped,
359
+ * and then played again.
360
+ */
361
+ if (ani.getDirection() === 'reverse') {
362
+ ani.direction('normal');
363
+ }
343
364
  }
344
365
  _isActive() {
345
366
  return !this.disabled && !this.isPaneVisible;
@@ -476,7 +497,6 @@ export class Menu {
476
497
  }
477
498
  afterAnimation(isOpen) {
478
499
  var _a;
479
- assert(this.isAnimating, '_before() should be called while animating');
480
500
  // keep opening/closing the menu disabled for a touch more yet
481
501
  // only add listeners/css if it's enabled and isOpen
482
502
  // and only remove listeners/css if it's not open
@@ -535,30 +555,30 @@ export class Menu {
535
555
  if (this.gesture) {
536
556
  this.gesture.enable(isActive && this.swipeGesture);
537
557
  }
538
- // Close menu immediately
539
- if (!isActive && this._isOpen) {
540
- // close if this menu is open, and should not be enabled
541
- this.forceClosing();
542
- }
543
- if (doc === null || doc === void 0 ? void 0 : doc.contains(this.el)) {
558
+ /**
559
+ * If the menu is disabled but it is still open
560
+ * then we should close the menu immediately.
561
+ * Additionally, if the menu is in the process
562
+ * of animating {open, close} and the menu is disabled
563
+ * then it should still be closed immediately.
564
+ */
565
+ if (!isActive) {
544
566
  /**
545
- * Only set the active menu if the menu element is
546
- * present in the DOM. Otherwise if it was destructively
547
- * re-hydrated (through Angular Universal), then ignore
548
- * setting the removed node as the active menu.
567
+ * It is possible to disable the menu while
568
+ * it is mid-animation. When this happens, we
569
+ * need to set the operationCancelled flag
570
+ * so that this._setOpen knows to return false
571
+ * and not run the "afterAnimation" callback.
549
572
  */
550
- if (!this.disabled) {
551
- menuController._setActiveMenu(this);
573
+ if (this.isAnimating) {
574
+ this.operationCancelled = true;
552
575
  }
576
+ /**
577
+ * If the menu is disabled then we should
578
+ * forcibly close the menu even if it is open.
579
+ */
580
+ this.afterAnimation(false);
553
581
  }
554
- assert(!this.isAnimating, 'can not be animating');
555
- }
556
- forceClosing() {
557
- assert(this._isOpen, 'menu cannot be closed');
558
- this.isAnimating = true;
559
- const ani = this.animation.direction('reverse');
560
- ani.play({ sync: true });
561
- this.afterAnimation(false);
562
582
  }
563
583
  render() {
564
584
  const { type, disabled, isPaneVisible, inheritedAttributes, side } = this;
@@ -1,3 +1,36 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
1
34
  :host {
2
35
  /**
3
36
  * @prop --background: Background of the menu
@@ -260,6 +293,39 @@ ion-backdrop {
260
293
  /* stylelint-enable declaration-no-important */
261
294
  }
262
295
 
296
+ /**
297
+ * Convert a font size to a dynamic font size.
298
+ * Fonts that participate in Dynamic Type should use
299
+ * dynamic font sizes.
300
+ * @param size - The initial font size including the unit (i.e. px or pt)
301
+ * @param unit (optional) - The unit to convert to. Use this if you want to
302
+ * convert to a unit other than $baselineUnit.
303
+ */
304
+ /**
305
+ * Convert a font size to a dynamic font size but impose
306
+ * a maximum font size.
307
+ * @param size - The initial font size including the unit (i.e. px or pt)
308
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
309
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
310
+ * convert to a unit other than $baselineUnit.
311
+ */
312
+ /**
313
+ * Convert a font size to a dynamic font size but impose
314
+ * a minimum font size.
315
+ * @param size - The initial font size including the unit (i.e. px or pt)
316
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
317
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
318
+ * convert to a unit other than $baselineUnit.
319
+ */
320
+ /**
321
+ * Convert a font size to a dynamic font size but impose
322
+ * maximum and minimum font sizes.
323
+ * @param size - The initial font size including the unit (i.e. px or pt)
324
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
325
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
326
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
327
+ * convert to a unit other than $baselineUnit.
328
+ */
263
329
  :host(.menu-type-overlay) .menu-inner {
264
330
  box-shadow: 4px 0px 16px rgba(0, 0, 0, 0.18);
265
331
  }
@@ -0,0 +1,55 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ /**
7
+ * This behavior does not vary across modes/directions
8
+ */
9
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
+ test.describe(title('menu: disable'), () => {
11
+ test.beforeEach(async ({ page }) => {
12
+ await page.goto(`/src/components/menu/test/disable`, config);
13
+ });
14
+ test('should disable when menu is fully open', async ({ page }) => {
15
+ const logs = [];
16
+ page.on('console', (msg) => {
17
+ if (msg.type() === 'error') {
18
+ logs.push(msg.text());
19
+ }
20
+ });
21
+ const menu = page.locator('ion-menu');
22
+ // Should be visible on initial presentation
23
+ await menu.evaluate((el) => el.open());
24
+ await expect(menu).toBeVisible();
25
+ // Disabling menu should hide it
26
+ await menu.evaluate((el) => (el.disabled = true));
27
+ await expect(menu).toBeHidden();
28
+ // Re-enabling menu and opening it show make it visible
29
+ await menu.evaluate((el) => (el.disabled = false));
30
+ await menu.evaluate((el) => el.open());
31
+ await expect(menu).toBeVisible();
32
+ expect(logs.length).toBe(0);
33
+ });
34
+ test('should disable when menu is animating', async ({ page }) => {
35
+ const logs = [];
36
+ page.on('console', (msg) => {
37
+ if (msg.type() === 'error') {
38
+ logs.push(msg.text());
39
+ }
40
+ });
41
+ const menu = page.locator('ion-menu');
42
+ // Opening and quickly disabling menu should hide it
43
+ menu.evaluate((el) => {
44
+ el.open();
45
+ setTimeout(() => (el.disabled = true), 0);
46
+ });
47
+ await expect(menu).toBeHidden();
48
+ // Re-enabling menu and opening it show make it visible
49
+ await menu.evaluate((el) => (el.disabled = false));
50
+ await menu.evaluate((el) => el.open());
51
+ await expect(menu).toBeVisible();
52
+ expect(logs.length).toBe(0);
53
+ });
54
+ });
55
+ });
@@ -0,0 +1,60 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ /**
7
+ * This behavior does not vary across modes/directions
8
+ */
9
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
+ test.describe(title('menu: multiple'), () => {
11
+ test.beforeEach(async ({ page }, testInfo) => {
12
+ testInfo.annotations.push({
13
+ type: 'issue',
14
+ description: 'https://github.com/ionic-team/ionic-framework/issues/18974',
15
+ });
16
+ await page.goto(`/src/components/menu/test/multiple`, config);
17
+ });
18
+ test('should present each menu on the same side individually', async ({ page }) => {
19
+ const primaryMenu = page.locator('ion-menu#primary-menu');
20
+ const secondaryMenu = page.locator('ion-menu#secondary-menu');
21
+ await primaryMenu.evaluate((el) => el.open());
22
+ await expect(primaryMenu).toBeVisible();
23
+ await primaryMenu.evaluate((el) => el.close());
24
+ await expect(primaryMenu).toBeHidden();
25
+ await secondaryMenu.evaluate((el) => el.open());
26
+ await expect(secondaryMenu).toBeVisible();
27
+ await secondaryMenu.evaluate((el) => el.close());
28
+ await expect(secondaryMenu).toBeHidden();
29
+ });
30
+ test('should close first menu when showing another menu on same side', async ({ page }) => {
31
+ const primaryMenu = page.locator('ion-menu#primary-menu');
32
+ const secondaryMenu = page.locator('ion-menu#secondary-menu');
33
+ await primaryMenu.evaluate((el) => el.open());
34
+ await expect(primaryMenu).toBeVisible();
35
+ await secondaryMenu.evaluate((el) => el.open());
36
+ await expect(primaryMenu).toBeHidden();
37
+ await expect(secondaryMenu).toBeVisible();
38
+ });
39
+ test('passing side to the menuController when multiple menus have that side should result in a warning', async ({ page, }) => {
40
+ const logs = [];
41
+ page.on('console', (msg) => {
42
+ if (msg.type() === 'warning') {
43
+ logs.push(msg.text());
44
+ }
45
+ });
46
+ await page.evaluate(() => window.menuController.open('start'));
47
+ expect(logs.length).toBe(1);
48
+ });
49
+ test('passing side to the menuController when multiple disabled menus have that side should result in a warning', async ({ page, }) => {
50
+ const logs = [];
51
+ page.on('console', (msg) => {
52
+ if (msg.type() === 'warning') {
53
+ logs.push(msg.text());
54
+ }
55
+ });
56
+ await page.evaluate(() => window.menuController.open('end'));
57
+ expect(logs.length).toBe(1);
58
+ });
59
+ });
60
+ });
@@ -1,3 +1,69 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
34
+ /**
35
+ * Convert a font size to a dynamic font size.
36
+ * Fonts that participate in Dynamic Type should use
37
+ * dynamic font sizes.
38
+ * @param size - The initial font size including the unit (i.e. px or pt)
39
+ * @param unit (optional) - The unit to convert to. Use this if you want to
40
+ * convert to a unit other than $baselineUnit.
41
+ */
42
+ /**
43
+ * Convert a font size to a dynamic font size but impose
44
+ * a maximum font size.
45
+ * @param size - The initial font size including the unit (i.e. px or pt)
46
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
47
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
48
+ * convert to a unit other than $baselineUnit.
49
+ */
50
+ /**
51
+ * Convert a font size to a dynamic font size but impose
52
+ * a minimum font size.
53
+ * @param size - The initial font size including the unit (i.e. px or pt)
54
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
55
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
56
+ * convert to a unit other than $baselineUnit.
57
+ */
58
+ /**
59
+ * Convert a font size to a dynamic font size but impose
60
+ * maximum and minimum font sizes.
61
+ * @param size - The initial font size including the unit (i.e. px or pt)
62
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
63
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
64
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
65
+ * convert to a unit other than $baselineUnit.
66
+ */
1
67
  :host {
2
68
  /**
3
69
  * @prop --border-radius: Border radius of the menu button
@@ -65,6 +131,7 @@
65
131
  justify-content: center;
66
132
  width: 100%;
67
133
  height: 100%;
134
+ min-height: inherit;
68
135
  border: 0;
69
136
  outline: none;
70
137
  background: var(--background);
@@ -85,6 +152,7 @@
85
152
  justify-content: center;
86
153
  width: 100%;
87
154
  height: 100%;
155
+ min-height: inherit;
88
156
  z-index: 1;
89
157
  }
90
158
 
@@ -152,8 +220,8 @@ ion-icon {
152
220
  --color: var(--ion-color-primary, #3880ff);
153
221
  --padding-start: 5px;
154
222
  --padding-end: 5px;
155
- height: 32px;
156
- font-size: 31px;
223
+ min-height: 32px;
224
+ font-size: clamp(31px, 1.9375rem, 38.13px);
157
225
  }
158
226
 
159
227
  :host(.ion-activated) {
@@ -1,3 +1,69 @@
1
+ /**
2
+ * Convert a font size to a dynamic font size.
3
+ * Fonts that participate in Dynamic Type should use
4
+ * dynamic font sizes.
5
+ * @param size - The initial font size including the unit (i.e. px or pt)
6
+ * @param unit (optional) - The unit to convert to. Use this if you want to
7
+ * convert to a unit other than $baselineUnit.
8
+ */
9
+ /**
10
+ * Convert a font size to a dynamic font size but impose
11
+ * a maximum font size.
12
+ * @param size - The initial font size including the unit (i.e. px or pt)
13
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
+ * convert to a unit other than $baselineUnit.
16
+ */
17
+ /**
18
+ * Convert a font size to a dynamic font size but impose
19
+ * a minimum font size.
20
+ * @param size - The initial font size including the unit (i.e. px or pt)
21
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
+ * convert to a unit other than $baselineUnit.
24
+ */
25
+ /**
26
+ * Convert a font size to a dynamic font size but impose
27
+ * maximum and minimum font sizes.
28
+ * @param size - The initial font size including the unit (i.e. px or pt)
29
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
+ * convert to a unit other than $baselineUnit.
33
+ */
34
+ /**
35
+ * Convert a font size to a dynamic font size.
36
+ * Fonts that participate in Dynamic Type should use
37
+ * dynamic font sizes.
38
+ * @param size - The initial font size including the unit (i.e. px or pt)
39
+ * @param unit (optional) - The unit to convert to. Use this if you want to
40
+ * convert to a unit other than $baselineUnit.
41
+ */
42
+ /**
43
+ * Convert a font size to a dynamic font size but impose
44
+ * a maximum font size.
45
+ * @param size - The initial font size including the unit (i.e. px or pt)
46
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
47
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
48
+ * convert to a unit other than $baselineUnit.
49
+ */
50
+ /**
51
+ * Convert a font size to a dynamic font size but impose
52
+ * a minimum font size.
53
+ * @param size - The initial font size including the unit (i.e. px or pt)
54
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
55
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
56
+ * convert to a unit other than $baselineUnit.
57
+ */
58
+ /**
59
+ * Convert a font size to a dynamic font size but impose
60
+ * maximum and minimum font sizes.
61
+ * @param size - The initial font size including the unit (i.e. px or pt)
62
+ * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
63
+ * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
64
+ * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
65
+ * convert to a unit other than $baselineUnit.
66
+ */
1
67
  :host {
2
68
  /**
3
69
  * @prop --border-radius: Border radius of the menu button
@@ -65,6 +131,7 @@
65
131
  justify-content: center;
66
132
  width: 100%;
67
133
  height: 100%;
134
+ min-height: inherit;
68
135
  border: 0;
69
136
  outline: none;
70
137
  background: var(--background);
@@ -85,6 +152,7 @@
85
152
  justify-content: center;
86
153
  width: 100%;
87
154
  height: 100%;
155
+ min-height: inherit;
88
156
  z-index: 1;
89
157
  }
90
158
 
@@ -154,9 +222,9 @@ ion-icon {
154
222
  --color: initial;
155
223
  --padding-start: 8px;
156
224
  --padding-end: 8px;
157
- width: 48px;
158
- height: 48px;
159
- font-size: 24px;
225
+ width: 3rem;
226
+ height: 3rem;
227
+ font-size: 1.5rem;
160
228
  }
161
229
 
162
230
  :host(.ion-color.ion-focused)::after {
@@ -4,7 +4,7 @@
4
4
  import AxeBuilder from "@axe-core/playwright";
5
5
  import { expect } from "@playwright/test";
6
6
  import { configs, test } from "../../../../utils/test/playwright/index";
7
- configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
7
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
8
8
  test.describe(title('menu-button: a11y'), () => {
9
9
  test('should not have accessibility violations', async ({ page }) => {
10
10
  await page.goto('/src/components/menu-button/test/a11y', config);
@@ -12,4 +12,23 @@ configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
12
12
  expect(results.violations).toEqual([]);
13
13
  });
14
14
  });
15
+ test.describe(title('menu-button: font scaling'), () => {
16
+ test('should scale text on larger font sizes', async ({ page }) => {
17
+ await page.setContent(`
18
+ <style>
19
+ html {
20
+ font-size: 310%;
21
+ }
22
+ </style>
23
+
24
+ <ion-toolbar>
25
+ <ion-buttons slot="start">
26
+ <ion-menu-button auto-hide="false"></ion-menu-button>
27
+ </ion-buttons>
28
+ </ion-toolbar>
29
+ `, config);
30
+ const menuButton = page.locator('ion-menu-button');
31
+ await expect(menuButton).toHaveScreenshot(screenshot(`menu-button-scale`));
32
+ });
33
+ });
15
34
  });