voyager-ionic-core 7.4.4 → 7.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 (574) hide show
  1. package/components/action-sheet.js +2 -2
  2. package/components/alert.js +10 -2
  3. package/components/button.js +2 -2
  4. package/components/buttons.js +2 -2
  5. package/components/checkbox.js +1 -1
  6. package/components/data.js +96 -22
  7. package/components/haptic.js +1 -0
  8. package/components/icon.js +31 -18
  9. package/components/index.js +1 -0
  10. package/components/index4.js +26 -19
  11. package/components/index7.js +1 -1
  12. package/components/ion-back-button.js +2 -2
  13. package/components/ion-badge.js +2 -2
  14. package/components/ion-breadcrumb.js +2 -2
  15. package/components/ion-card-content.js +2 -2
  16. package/components/ion-card-subtitle.js +2 -2
  17. package/components/ion-card-title.js +2 -2
  18. package/components/ion-card.js +2 -2
  19. package/components/ion-chip.js +8 -3
  20. package/components/ion-datetime-button.js +6 -6
  21. package/components/ion-datetime.js +6 -6
  22. package/components/ion-header.js +1 -1
  23. package/components/ion-input.js +2 -2
  24. package/components/ion-item-divider.js +2 -2
  25. package/components/ion-item-option.js +2 -2
  26. package/components/ion-item-options.js +2 -2
  27. package/components/ion-loading.js +2 -2
  28. package/components/ion-menu-button.js +2 -2
  29. package/components/ion-menu.js +0 -12
  30. package/components/ion-nav.js +1 -0
  31. package/components/ion-range.js +2 -2
  32. package/components/ion-reorder.js +2 -2
  33. package/components/ion-router.js +3 -0
  34. package/components/ion-searchbar.js +9 -3
  35. package/components/ion-select.js +3 -3
  36. package/components/ion-textarea.js +2 -2
  37. package/components/ion-title.js +2 -2
  38. package/components/ion-toast.js +159 -15
  39. package/components/ion-toolbar.js +1 -1
  40. package/components/ios.transition.js +212 -43
  41. package/components/item.js +2 -2
  42. package/components/label.js +2 -2
  43. package/components/list-header.js +2 -2
  44. package/components/note.js +2 -2
  45. package/components/overlays.js +1 -0
  46. package/components/radio.js +2 -2
  47. package/css/core.css +100 -0
  48. package/css/core.css.map +1 -1
  49. package/css/display.css +33 -0
  50. package/css/display.css.map +1 -1
  51. package/css/float-elements.css +33 -0
  52. package/css/float-elements.css.map +1 -1
  53. package/css/global.bundle.css +84 -6
  54. package/css/global.bundle.css.map +1 -1
  55. package/css/ionic-swiper.css +33 -0
  56. package/css/ionic-swiper.css.map +1 -1
  57. package/css/ionic.bundle.css +1 -1
  58. package/css/ionic.bundle.css.map +1 -1
  59. package/css/padding.css +33 -0
  60. package/css/padding.css.map +1 -1
  61. package/css/structure.css +33 -0
  62. package/css/structure.css.map +1 -1
  63. package/css/text-alignment.css +33 -0
  64. package/css/text-alignment.css.map +1 -1
  65. package/css/text-transformation.css +33 -0
  66. package/css/text-transformation.css.map +1 -1
  67. package/css/typography.css +51 -6
  68. package/css/typography.css.map +1 -1
  69. package/css/utils.bundle.css +165 -0
  70. package/css/utils.bundle.css.map +1 -1
  71. package/dist/cjs/{button-active-0932cee9.js → button-active-c0ff1915.js} +1 -1
  72. package/dist/cjs/{data-db832785.js → data-c8d21093.js} +96 -22
  73. package/dist/cjs/{haptic-c5f6b4d5.js → haptic-678abc9f.js} +1 -0
  74. package/dist/cjs/{index-d8d1fc0b.js → index-09471526.js} +1 -1
  75. package/dist/cjs/{index-f94cbab1.js → index-5e7529f6.js} +26 -19
  76. package/dist/cjs/{index-d3568232.js → index-eccba000.js} +2 -2
  77. package/dist/cjs/index.cjs.js +8 -6
  78. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  79. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  80. package/dist/cjs/ion-alert.cjs.entry.js +13 -5
  81. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  82. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  84. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  85. package/dist/cjs/ion-button_2.cjs.entry.js +33 -20
  86. package/dist/cjs/ion-card_5.cjs.entry.js +8 -8
  87. package/dist/cjs/ion-checkbox.cjs.entry.js +1 -1
  88. package/dist/cjs/ion-chip.cjs.entry.js +7 -2
  89. package/dist/cjs/ion-datetime-button.cjs.entry.js +6 -6
  90. package/dist/cjs/ion-datetime_3.cjs.entry.js +9 -9
  91. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  92. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  93. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  94. package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
  95. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  96. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -19
  97. package/dist/cjs/ion-modal.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -1
  99. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +1 -1
  100. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  101. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  102. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  103. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  104. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  105. package/dist/cjs/ion-route_4.cjs.entry.js +3 -0
  106. package/dist/cjs/ion-searchbar.cjs.entry.js +10 -4
  107. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  108. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-toast.cjs.entry.js +176 -34
  110. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  111. package/dist/cjs/ionic.cjs.js +2 -2
  112. package/dist/cjs/{ios.transition-7d688757.js → ios.transition-5af5991e.js} +213 -44
  113. package/dist/cjs/loader.cjs.js +1 -1
  114. package/dist/cjs/{md.transition-d77d3c2e.js → md.transition-1e740a6a.js} +1 -1
  115. package/dist/cjs/{overlays-7e1a08fa.js → overlays-1a734051.js} +1 -0
  116. package/dist/collection/collection-manifest.json +1 -1
  117. package/dist/collection/components/accordion/accordion.ios.css +66 -0
  118. package/dist/collection/components/accordion/accordion.md.css +33 -0
  119. package/dist/collection/components/accordion-group/accordion-group.ios.css +66 -0
  120. package/dist/collection/components/accordion-group/accordion-group.md.css +99 -0
  121. package/dist/collection/components/action-sheet/action-sheet.ios.css +80 -12
  122. package/dist/collection/components/action-sheet/action-sheet.md.css +76 -8
  123. package/dist/collection/components/action-sheet/test/a11y/action-sheet.e2e.js +27 -0
  124. package/dist/collection/components/alert/alert.ios.css +138 -21
  125. package/dist/collection/components/alert/alert.js +8 -0
  126. package/dist/collection/components/alert/alert.md.css +108 -8
  127. package/dist/collection/components/alert/test/a11y/alert.e2e.js +122 -0
  128. package/dist/collection/components/avatar/avatar.ios.css +66 -0
  129. package/dist/collection/components/avatar/avatar.md.css +66 -0
  130. package/dist/collection/components/back-button/back-button.ios.css +83 -1
  131. package/dist/collection/components/back-button/back-button.md.css +75 -3
  132. package/dist/collection/components/back-button/test/a11y/back-button.e2e.js +26 -0
  133. package/dist/collection/components/backdrop/backdrop.ios.css +66 -0
  134. package/dist/collection/components/backdrop/backdrop.md.css +66 -0
  135. package/dist/collection/components/badge/badge.ios.css +75 -1
  136. package/dist/collection/components/badge/badge.md.css +67 -1
  137. package/dist/collection/components/badge/test/a11y/badge.e2e.js +22 -0
  138. package/dist/collection/components/breadcrumb/breadcrumb.ios.css +80 -3
  139. package/dist/collection/components/breadcrumb/breadcrumb.md.css +69 -3
  140. package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +33 -0
  141. package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +33 -0
  142. package/dist/collection/components/breadcrumbs/test/a11y/breadcrumbs.e2e.js +21 -0
  143. package/dist/collection/components/button/button.ios.css +118 -19
  144. package/dist/collection/components/button/button.md.css +69 -3
  145. package/dist/collection/components/button/test/a11y/button.e2e.js +61 -0
  146. package/dist/collection/components/buttons/buttons.ios.css +102 -3
  147. package/dist/collection/components/buttons/buttons.md.css +101 -2
  148. package/dist/collection/components/buttons/test/a11y/buttons.e2e.js +74 -0
  149. package/dist/collection/components/card/card.ios.css +67 -1
  150. package/dist/collection/components/card/card.md.css +67 -1
  151. package/dist/collection/components/card/test/a11y/card.e2e.js +31 -0
  152. package/dist/collection/components/card-content/card-content.ios.css +71 -5
  153. package/dist/collection/components/card-content/card-content.md.css +71 -5
  154. package/dist/collection/components/card-header/card-header.ios.css +66 -0
  155. package/dist/collection/components/card-header/card-header.md.css +66 -0
  156. package/dist/collection/components/card-subtitle/card-subtitle.ios.css +67 -1
  157. package/dist/collection/components/card-subtitle/card-subtitle.md.css +67 -1
  158. package/dist/collection/components/card-title/card-title.ios.css +67 -1
  159. package/dist/collection/components/card-title/card-title.md.css +67 -1
  160. package/dist/collection/components/checkbox/checkbox.ios.css +101 -2
  161. package/dist/collection/components/checkbox/checkbox.md.css +99 -0
  162. package/dist/collection/components/checkbox/test/a11y/checkbox.e2e.js +18 -0
  163. package/dist/collection/components/chip/chip.ios.css +190 -0
  164. package/dist/collection/components/chip/chip.js +4 -2
  165. package/dist/collection/components/chip/{chip.css → chip.md.css} +43 -7
  166. package/dist/collection/components/chip/test/a11y/chip.e2e.js +58 -0
  167. package/dist/collection/components/col/col.css +66 -0
  168. package/dist/collection/components/content/content.css +33 -0
  169. package/dist/collection/components/datetime/datetime.ios.css +198 -7
  170. package/dist/collection/components/datetime/datetime.js +13 -7
  171. package/dist/collection/components/datetime/datetime.md.css +97 -5
  172. package/dist/collection/components/datetime/test/a11y/datetime.e2e.js +28 -0
  173. package/dist/collection/components/datetime/test/hour-cycle/datetime.e2e.js +14 -0
  174. package/dist/collection/components/datetime/utils/data.js +33 -7
  175. package/dist/collection/components/datetime/utils/format.js +27 -10
  176. package/dist/collection/components/datetime/utils/helpers.js +37 -5
  177. package/dist/collection/components/datetime-button/datetime-button.css +36 -2
  178. package/dist/collection/components/datetime-button/datetime-button.js +4 -4
  179. package/dist/collection/components/datetime-button/test/a11y/datetime-button.e2e.js +38 -0
  180. package/dist/collection/components/fab/fab.css +132 -0
  181. package/dist/collection/components/fab-button/fab-button.ios.css +66 -0
  182. package/dist/collection/components/fab-button/fab-button.md.css +66 -0
  183. package/dist/collection/components/fab-list/fab-list.css +66 -0
  184. package/dist/collection/components/footer/footer.ios.css +66 -0
  185. package/dist/collection/components/footer/footer.md.css +66 -0
  186. package/dist/collection/components/grid/grid.css +66 -0
  187. package/dist/collection/components/header/header.ios.css +71 -2
  188. package/dist/collection/components/header/header.md.css +66 -0
  189. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +66 -0
  190. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +66 -0
  191. package/dist/collection/components/input/input.ios.css +100 -1
  192. package/dist/collection/components/input/input.md.css +199 -1
  193. package/dist/collection/components/input/test/a11y/input.e2e.js +15 -1
  194. package/dist/collection/components/item/item.ios.css +70 -4
  195. package/dist/collection/components/item/item.md.css +138 -6
  196. package/dist/collection/components/item/test/a11y/item.e2e.js +116 -1
  197. package/dist/collection/components/item-divider/item-divider.ios.css +101 -9
  198. package/dist/collection/components/item-divider/item-divider.md.css +103 -11
  199. package/dist/collection/components/item-divider/test/a11y/item-divider.e2e.js +44 -0
  200. package/dist/collection/components/item-group/item-group.ios.css +68 -1
  201. package/dist/collection/components/item-group/item-group.md.css +68 -1
  202. package/dist/collection/components/item-option/item-option.ios.css +67 -1
  203. package/dist/collection/components/item-option/item-option.md.css +67 -1
  204. package/dist/collection/components/item-options/item-options.ios.css +99 -1
  205. package/dist/collection/components/item-options/item-options.md.css +99 -1
  206. package/dist/collection/components/item-sliding/item-sliding.css +33 -0
  207. package/dist/collection/components/item-sliding/test/a11y/item-sliding.e2e.js +34 -0
  208. package/dist/collection/components/label/label.ios.css +105 -6
  209. package/dist/collection/components/label/label.md.css +104 -5
  210. package/dist/collection/components/label/test/a11y/label.e2e.js +66 -0
  211. package/dist/collection/components/list/list.ios.css +99 -0
  212. package/dist/collection/components/list/list.md.css +99 -0
  213. package/dist/collection/components/list-header/list-header.ios.css +100 -1
  214. package/dist/collection/components/list-header/list-header.md.css +100 -1
  215. package/dist/collection/components/list-header/test/a11y/list-header.e2e.js +24 -0
  216. package/dist/collection/components/loading/loading.ios.css +67 -1
  217. package/dist/collection/components/loading/loading.md.css +67 -1
  218. package/dist/collection/components/loading/test/a11y/loading.e2e.js +19 -0
  219. package/dist/collection/components/menu/menu.ios.css +66 -0
  220. package/dist/collection/components/menu/menu.js +0 -12
  221. package/dist/collection/components/menu/menu.md.css +66 -0
  222. package/dist/collection/components/menu/test/multiple/menu.e2e.js +60 -0
  223. package/dist/collection/components/menu-button/menu-button.ios.css +70 -2
  224. package/dist/collection/components/menu-button/menu-button.md.css +71 -3
  225. package/dist/collection/components/menu-button/test/a11y/menu-button.e2e.js +20 -1
  226. package/dist/collection/components/modal/modal.ios.css +66 -0
  227. package/dist/collection/components/modal/modal.md.css +66 -0
  228. package/dist/collection/components/nav/nav.css +33 -0
  229. package/dist/collection/components/nav/nav.js +1 -0
  230. package/dist/collection/components/note/note.ios.css +67 -0
  231. package/dist/collection/components/note/note.md.css +67 -1
  232. package/dist/collection/components/note/test/a11y/note.e2e.js +52 -0
  233. package/dist/collection/components/picker/picker.ios.css +66 -0
  234. package/dist/collection/components/picker/picker.md.css +66 -0
  235. package/dist/collection/components/picker-column/picker-column.ios.css +66 -0
  236. package/dist/collection/components/picker-column/picker-column.md.css +66 -0
  237. package/dist/collection/components/picker-column-internal/picker-column-internal.ios.css +33 -0
  238. package/dist/collection/components/picker-column-internal/picker-column-internal.md.css +66 -0
  239. package/dist/collection/components/picker-internal/picker-internal.ios.css +66 -0
  240. package/dist/collection/components/picker-internal/picker-internal.md.css +66 -0
  241. package/dist/collection/components/popover/popover.ios.css +66 -0
  242. package/dist/collection/components/popover/popover.md.css +66 -0
  243. package/dist/collection/components/progress-bar/progress-bar.ios.css +33 -0
  244. package/dist/collection/components/progress-bar/progress-bar.md.css +33 -0
  245. package/dist/collection/components/radio/radio.ios.css +104 -5
  246. package/dist/collection/components/radio/radio.md.css +104 -5
  247. package/dist/collection/components/radio/test/a11y/radio.e2e.js +21 -0
  248. package/dist/collection/components/range/range.ios.css +82 -8
  249. package/dist/collection/components/range/range.md.css +99 -11
  250. package/dist/collection/components/range/test/a11y/range.e2e.js +22 -0
  251. package/dist/collection/components/refresher/refresher.ios.css +66 -0
  252. package/dist/collection/components/refresher/refresher.md.css +66 -0
  253. package/dist/collection/components/reorder/reorder.ios.css +75 -2
  254. package/dist/collection/components/reorder/reorder.md.css +75 -2
  255. package/dist/collection/components/reorder-group/reorder-group.css +33 -0
  256. package/dist/collection/components/reorder-group/test/a11y/reorder-group.e2e.js +33 -0
  257. package/dist/collection/components/ripple-effect/ripple-effect.css +33 -0
  258. package/dist/collection/components/router/router.js +2 -0
  259. package/dist/collection/components/router/utils/path.js +1 -0
  260. package/dist/collection/components/router-link/router-link.css +33 -0
  261. package/dist/collection/components/router-outlet/router-outlet.css +33 -0
  262. package/dist/collection/components/row/row.css +66 -0
  263. package/dist/collection/components/searchbar/searchbar.ios.css +95 -16
  264. package/dist/collection/components/searchbar/searchbar.js +7 -1
  265. package/dist/collection/components/searchbar/searchbar.md.css +77 -10
  266. package/dist/collection/components/searchbar/test/a11y/searchbar.e2e.js +37 -0
  267. package/dist/collection/components/searchbar/test/basic/searchbar.e2e.js +18 -0
  268. package/dist/collection/components/segment/segment.ios.css +99 -0
  269. package/dist/collection/components/segment/segment.md.css +99 -0
  270. package/dist/collection/components/segment-button/segment-button.ios.css +66 -0
  271. package/dist/collection/components/segment-button/segment-button.md.css +66 -0
  272. package/dist/collection/components/select/select.ios.css +102 -3
  273. package/dist/collection/components/select/select.js +1 -1
  274. package/dist/collection/components/select/select.md.css +167 -2
  275. package/dist/collection/components/select/test/a11y/select.e2e.js +22 -0
  276. package/dist/collection/components/select-popover/select-popover.ios.css +101 -1
  277. package/dist/collection/components/select-popover/select-popover.md.css +99 -0
  278. package/dist/collection/components/skeleton-text/skeleton-text.css +33 -0
  279. package/dist/collection/components/spinner/spinner.css +33 -0
  280. package/dist/collection/components/split-pane/split-pane.ios.css +99 -0
  281. package/dist/collection/components/split-pane/split-pane.md.css +99 -0
  282. package/dist/collection/components/tab-bar/tab-bar.ios.css +99 -0
  283. package/dist/collection/components/tab-bar/tab-bar.md.css +99 -0
  284. package/dist/collection/components/tab-button/tab-button.ios.css +66 -0
  285. package/dist/collection/components/tab-button/tab-button.md.css +66 -0
  286. package/dist/collection/components/tabs/tabs.css +33 -0
  287. package/dist/collection/components/text/text.css +33 -0
  288. package/dist/collection/components/textarea/test/a11y/textarea.e2e.js +15 -1
  289. package/dist/collection/components/textarea/textarea.ios.css +133 -1
  290. package/dist/collection/components/textarea/textarea.md.css +199 -1
  291. package/dist/collection/components/thumbnail/thumbnail.css +33 -0
  292. package/dist/collection/components/title/test/a11y/title.e2e.js +61 -0
  293. package/dist/collection/components/title/title.ios.css +52 -10
  294. package/dist/collection/components/title/title.md.css +35 -2
  295. package/dist/collection/components/toast/animations/ios.enter.js +2 -3
  296. package/dist/collection/components/toast/animations/ios.leave.js +2 -3
  297. package/dist/collection/components/toast/animations/md.enter.js +2 -3
  298. package/dist/collection/components/toast/animations/utils.js +85 -0
  299. package/dist/collection/components/toast/test/a11y/toast.e2e.js +98 -1
  300. package/dist/collection/components/toast/test/position-anchor/toast.e2e.js +45 -0
  301. package/dist/collection/components/toast/toast.ios.css +74 -3
  302. package/dist/collection/components/toast/toast.js +98 -9
  303. package/dist/collection/components/toast/toast.md.css +74 -4
  304. package/dist/collection/components/toggle/toggle.ios.css +99 -0
  305. package/dist/collection/components/toggle/toggle.md.css +99 -0
  306. package/dist/collection/components/toolbar/toolbar.ios.css +66 -14
  307. package/dist/collection/components/toolbar/toolbar.md.css +66 -0
  308. package/dist/collection/css/test/a11y/typography.e2e.js +32 -0
  309. package/dist/collection/index.js +1 -0
  310. package/dist/collection/utils/menu-controller/index.js +26 -19
  311. package/dist/collection/utils/native/haptic.js +1 -0
  312. package/dist/collection/utils/overlays.js +1 -0
  313. package/dist/collection/utils/transition/ios.transition.js +212 -43
  314. package/dist/docs.json +74 -11
  315. package/dist/esm/{button-active-5136c12d.js → button-active-d926d4f4.js} +1 -1
  316. package/dist/esm/{data-009dbf15.js → data-44d9e816.js} +96 -22
  317. package/dist/esm/{haptic-6447af60.js → haptic-1243b917.js} +1 -0
  318. package/dist/esm/{index-641aeeed.js → index-a09eac70.js} +2 -2
  319. package/dist/esm/{index-ecfc2c9f.js → index-c132c5f1.js} +1 -1
  320. package/dist/esm/{index-d78b533e.js → index-df55802d.js} +26 -19
  321. package/dist/esm/index.js +7 -6
  322. package/dist/esm/ion-accordion_2.entry.js +1 -1
  323. package/dist/esm/ion-action-sheet.entry.js +5 -5
  324. package/dist/esm/ion-alert.entry.js +13 -5
  325. package/dist/esm/ion-app_8.entry.js +7 -7
  326. package/dist/esm/ion-avatar_3.entry.js +2 -2
  327. package/dist/esm/ion-back-button.entry.js +3 -3
  328. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  329. package/dist/esm/ion-button_2.entry.js +33 -20
  330. package/dist/esm/ion-card_5.entry.js +8 -8
  331. package/dist/esm/ion-checkbox.entry.js +1 -1
  332. package/dist/esm/ion-chip.entry.js +7 -2
  333. package/dist/esm/ion-datetime-button.entry.js +6 -6
  334. package/dist/esm/ion-datetime_3.entry.js +9 -9
  335. package/dist/esm/ion-fab_3.entry.js +1 -1
  336. package/dist/esm/ion-input.entry.js +3 -3
  337. package/dist/esm/ion-item-option_3.entry.js +4 -4
  338. package/dist/esm/ion-item_8.entry.js +11 -11
  339. package/dist/esm/ion-loading.entry.js +3 -3
  340. package/dist/esm/ion-menu_3.entry.js +7 -18
  341. package/dist/esm/ion-modal.entry.js +2 -2
  342. package/dist/esm/ion-nav_2.entry.js +2 -1
  343. package/dist/esm/ion-picker-column-internal.entry.js +1 -1
  344. package/dist/esm/ion-popover.entry.js +2 -2
  345. package/dist/esm/ion-radio_2.entry.js +2 -2
  346. package/dist/esm/ion-range.entry.js +2 -2
  347. package/dist/esm/ion-refresher_2.entry.js +2 -2
  348. package/dist/esm/ion-reorder_2.entry.js +4 -4
  349. package/dist/esm/ion-route_4.entry.js +3 -0
  350. package/dist/esm/ion-searchbar.entry.js +10 -4
  351. package/dist/esm/ion-select_3.entry.js +5 -5
  352. package/dist/esm/ion-textarea.entry.js +2 -2
  353. package/dist/esm/ion-toast.entry.js +159 -17
  354. package/dist/esm/ion-toggle.entry.js +2 -2
  355. package/dist/esm/ionic.js +2 -2
  356. package/dist/esm/{ios.transition-04c9a97a.js → ios.transition-4d1322d6.js} +213 -44
  357. package/dist/esm/loader.js +1 -1
  358. package/dist/esm/{md.transition-67a8aabd.js → md.transition-66b425d0.js} +1 -1
  359. package/dist/esm/{overlays-2fa52617.js → overlays-cec6bac8.js} +1 -0
  360. package/dist/esm-es5/{button-active-5136c12d.js → button-active-d926d4f4.js} +1 -1
  361. package/dist/esm-es5/data-44d9e816.js +4 -0
  362. package/dist/esm-es5/index-a09eac70.js +4 -0
  363. package/dist/esm-es5/index-df55802d.js +4 -0
  364. package/dist/esm-es5/index.js +1 -1
  365. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  366. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  367. package/dist/esm-es5/ion-alert.entry.js +1 -1
  368. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  369. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  370. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  371. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  372. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  373. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  374. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  375. package/dist/esm-es5/ion-chip.entry.js +1 -1
  376. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  377. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  378. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  379. package/dist/esm-es5/ion-input.entry.js +1 -1
  380. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  381. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  382. package/dist/esm-es5/ion-loading.entry.js +1 -1
  383. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  384. package/dist/esm-es5/ion-modal.entry.js +1 -1
  385. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  386. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  387. package/dist/esm-es5/ion-popover.entry.js +1 -1
  388. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  389. package/dist/esm-es5/ion-range.entry.js +1 -1
  390. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  391. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  392. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  393. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  394. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  395. package/dist/esm-es5/ion-toast.entry.js +1 -1
  396. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  397. package/dist/esm-es5/ionic.js +1 -1
  398. package/dist/esm-es5/ios.transition-4d1322d6.js +4 -0
  399. package/dist/esm-es5/loader.js +1 -1
  400. package/dist/esm-es5/md.transition-66b425d0.js +4 -0
  401. package/dist/html.html-data.json +11 -1
  402. package/dist/ionic/index.esm.js +1 -1
  403. package/dist/ionic/ionic.esm.js +1 -1
  404. package/dist/ionic/ionic.js +1 -1
  405. package/dist/ionic/p-012952cd.system.entry.js +4 -0
  406. package/dist/ionic/p-091c8792.system.js +4 -0
  407. package/dist/ionic/{p-4b8db805.entry.js → p-0ac3fb2c.entry.js} +1 -1
  408. package/dist/ionic/{p-ec9052a4.entry.js → p-0b00b937.entry.js} +1 -1
  409. package/dist/ionic/{p-9b4a77fc.system.entry.js → p-0b7c25ee.system.entry.js} +1 -1
  410. package/dist/ionic/p-0bbede6a.system.entry.js +4 -0
  411. package/dist/ionic/{p-1d0aa82f.system.entry.js → p-0f1f59da.system.entry.js} +1 -1
  412. package/dist/ionic/p-17240d90.js +4 -0
  413. package/dist/ionic/p-19fba51c.entry.js +4 -0
  414. package/dist/ionic/p-1a463b1e.system.entry.js +4 -0
  415. package/dist/ionic/p-1edb53a1.entry.js +4 -0
  416. package/dist/ionic/p-1f260a7b.entry.js +4 -0
  417. package/dist/ionic/{p-1c82e9ff.js → p-28ea45b9.js} +1 -1
  418. package/dist/ionic/p-2a8eeef7.system.js +4 -0
  419. package/dist/ionic/p-303bf1e8.system.entry.js +4 -0
  420. package/dist/ionic/p-31119a15.entry.js +4 -0
  421. package/dist/ionic/p-34259245.system.entry.js +4 -0
  422. package/dist/ionic/{p-914ac0fc.entry.js → p-35b26732.entry.js} +1 -1
  423. package/dist/ionic/p-35e399bd.entry.js +4 -0
  424. package/dist/ionic/{p-4dd96c8d.entry.js → p-38089641.entry.js} +1 -1
  425. package/dist/ionic/{p-f588e951.entry.js → p-3818f63f.entry.js} +1 -1
  426. package/dist/ionic/p-38c5fe2b.system.entry.js +4 -0
  427. package/dist/ionic/p-4215652f.system.entry.js +4 -0
  428. package/dist/ionic/p-4e50b8d1.entry.js +4 -0
  429. package/dist/ionic/p-4f97c112.entry.js +4 -0
  430. package/dist/ionic/p-54200074.entry.js +4 -0
  431. package/dist/ionic/p-572cce26.system.entry.js +4 -0
  432. package/dist/ionic/p-61b192a4.system.entry.js +4 -0
  433. package/dist/ionic/p-62e7d4fa.js +4 -0
  434. package/dist/ionic/p-673846f6.entry.js +4 -0
  435. package/dist/ionic/p-6ce0a709.system.entry.js +4 -0
  436. package/dist/ionic/p-6f6646bf.system.entry.js +4 -0
  437. package/dist/ionic/{p-2a7c0093.entry.js → p-7423746f.entry.js} +1 -1
  438. package/dist/ionic/p-755b2917.system.js +4 -0
  439. package/dist/ionic/p-78030c1f.system.entry.js +4 -0
  440. package/dist/ionic/p-8083aadb.entry.js +4 -0
  441. package/dist/ionic/p-81ef7437.system.entry.js +4 -0
  442. package/dist/ionic/{p-deb6ddad.entry.js → p-8209372c.entry.js} +1 -1
  443. package/dist/ionic/p-8c1805f4.system.entry.js +4 -0
  444. package/dist/ionic/p-8d6728a1.system.entry.js +4 -0
  445. package/dist/ionic/p-9dc85536.system.entry.js +4 -0
  446. package/dist/ionic/p-9e106f58.entry.js +4 -0
  447. package/dist/ionic/p-a164e3ab.system.entry.js +4 -0
  448. package/dist/ionic/{p-5efb899f.entry.js → p-a200a7fc.entry.js} +1 -1
  449. package/dist/ionic/p-a34fc12e.system.entry.js +4 -0
  450. package/dist/ionic/p-a9c32660.entry.js +4 -0
  451. package/dist/ionic/{p-5ece7025.system.js → p-aa377971.system.js} +1 -1
  452. package/dist/ionic/p-ad48dd13.system.js +4 -0
  453. package/dist/ionic/{p-d89d0de0.entry.js → p-afb6658f.entry.js} +1 -1
  454. package/dist/ionic/{p-6fb80ef3.system.entry.js → p-b753ec0d.system.entry.js} +1 -1
  455. package/dist/ionic/p-b8c3f071.system.js +4 -0
  456. package/dist/ionic/p-bb055450.system.entry.js +4 -0
  457. package/dist/ionic/p-c105bd36.entry.js +4 -0
  458. package/dist/ionic/p-c42c86c0.system.entry.js +4 -0
  459. package/dist/ionic/p-c44fe9fd.js +4 -0
  460. package/dist/ionic/p-c575a7b8.system.entry.js +4 -0
  461. package/dist/ionic/{p-3c2c6fce.entry.js → p-c679fcb5.entry.js} +1 -1
  462. package/dist/ionic/p-c8c9d699.system.entry.js +4 -0
  463. package/dist/ionic/p-c92f0a6d.system.entry.js +4 -0
  464. package/dist/ionic/p-c956e82c.system.entry.js +4 -0
  465. package/dist/ionic/p-cabd2c6d.entry.js +4 -0
  466. package/dist/ionic/p-cd2d17c3.system.entry.js +4 -0
  467. package/dist/ionic/{p-238f0ac5.system.entry.js → p-ce7d67a7.system.entry.js} +1 -1
  468. package/dist/ionic/p-d6e53e66.entry.js +4 -0
  469. package/dist/ionic/p-de68588d.js +4 -0
  470. package/dist/ionic/p-e028178a.system.js +4 -0
  471. package/dist/ionic/p-e0f0d55f.system.js +4 -0
  472. package/dist/ionic/p-e1d5752d.system.entry.js +4 -0
  473. package/dist/ionic/{p-f623aa6d.entry.js → p-e25cb483.entry.js} +1 -1
  474. package/dist/ionic/p-e65ebe96.entry.js +4 -0
  475. package/dist/ionic/p-e74faf2a.entry.js +4 -0
  476. package/dist/ionic/p-eb7d0922.js +4 -0
  477. package/dist/ionic/p-eb8dc56f.system.entry.js +4 -0
  478. package/dist/ionic/{p-8297652e.entry.js → p-f4309ac7.entry.js} +1 -1
  479. package/dist/ionic/p-f5bf698b.entry.js +4 -0
  480. package/dist/ionic/p-f7566bad.entry.js +4 -0
  481. package/dist/ionic/p-f919c026.entry.js +4 -0
  482. package/dist/ionic/{p-5cd791b3.system.entry.js → p-f9fa802c.system.entry.js} +1 -1
  483. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +49 -6
  484. package/dist/types/components/datetime/datetime-interface.d.ts +1 -0
  485. package/dist/types/components/datetime/datetime.d.ts +2 -2
  486. package/dist/types/components/datetime/utils/data.d.ts +3 -3
  487. package/dist/types/components/datetime/utils/format.d.ts +3 -3
  488. package/dist/types/components/datetime/utils/helpers.d.ts +15 -1
  489. package/dist/types/components/menu/menu-interface.d.ts +15 -5
  490. package/dist/types/components/toast/animations/ios.enter.d.ts +2 -1
  491. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  492. package/dist/types/components/toast/animations/md.enter.d.ts +2 -1
  493. package/dist/types/components/toast/animations/utils.d.ts +18 -0
  494. package/dist/types/components/toast/toast-interface.d.ts +11 -0
  495. package/dist/types/components/toast/toast.d.ts +21 -1
  496. package/dist/types/components.d.ts +16 -8
  497. package/dist/types/index.d.ts +1 -0
  498. package/dist/types/stencil-public-runtime.d.ts +19 -0
  499. package/dist/types/utils/menu-controller/index.d.ts +2 -22
  500. package/hydrate/index.js +630 -204
  501. package/package.json +10 -12
  502. package/dist/esm-es5/data-009dbf15.js +0 -4
  503. package/dist/esm-es5/index-641aeeed.js +0 -4
  504. package/dist/esm-es5/index-d78b533e.js +0 -4
  505. package/dist/esm-es5/ios.transition-04c9a97a.js +0 -4
  506. package/dist/esm-es5/md.transition-67a8aabd.js +0 -4
  507. package/dist/ionic/p-02a4e81a.js +0 -4
  508. package/dist/ionic/p-03c381ec.system.entry.js +0 -4
  509. package/dist/ionic/p-048f1ebe.entry.js +0 -4
  510. package/dist/ionic/p-04e7c8fd.entry.js +0 -4
  511. package/dist/ionic/p-05ae600a.system.js +0 -4
  512. package/dist/ionic/p-0c37546b.system.entry.js +0 -4
  513. package/dist/ionic/p-117cd69f.system.entry.js +0 -4
  514. package/dist/ionic/p-13d6e57a.js +0 -4
  515. package/dist/ionic/p-164b0e76.entry.js +0 -4
  516. package/dist/ionic/p-170e9de0.system.entry.js +0 -4
  517. package/dist/ionic/p-19384b9e.entry.js +0 -4
  518. package/dist/ionic/p-2784263e.system.entry.js +0 -4
  519. package/dist/ionic/p-29e3a9bb.entry.js +0 -4
  520. package/dist/ionic/p-32717950.system.entry.js +0 -4
  521. package/dist/ionic/p-32d364f0.entry.js +0 -4
  522. package/dist/ionic/p-35818410.entry.js +0 -4
  523. package/dist/ionic/p-37448ac1.entry.js +0 -4
  524. package/dist/ionic/p-38ccfd71.system.entry.js +0 -4
  525. package/dist/ionic/p-44ef7224.system.js +0 -4
  526. package/dist/ionic/p-45f5c8ba.system.entry.js +0 -4
  527. package/dist/ionic/p-47db15c6.entry.js +0 -4
  528. package/dist/ionic/p-4811e4af.system.entry.js +0 -4
  529. package/dist/ionic/p-4bb26b01.system.entry.js +0 -4
  530. package/dist/ionic/p-4d6ac0fe.system.entry.js +0 -4
  531. package/dist/ionic/p-51269f3b.system.js +0 -4
  532. package/dist/ionic/p-55d3a9b2.entry.js +0 -4
  533. package/dist/ionic/p-576e6d0f.system.entry.js +0 -4
  534. package/dist/ionic/p-5b32b053.entry.js +0 -4
  535. package/dist/ionic/p-5bc5008c.entry.js +0 -4
  536. package/dist/ionic/p-5c3e72a8.system.js +0 -4
  537. package/dist/ionic/p-5c651aab.system.entry.js +0 -4
  538. package/dist/ionic/p-64e20cd9.entry.js +0 -4
  539. package/dist/ionic/p-65a5761f.js +0 -4
  540. package/dist/ionic/p-6ac3e877.system.entry.js +0 -4
  541. package/dist/ionic/p-706a0391.entry.js +0 -4
  542. package/dist/ionic/p-72aea40e.system.entry.js +0 -4
  543. package/dist/ionic/p-73ed9a91.js +0 -4
  544. package/dist/ionic/p-7cfd253c.js +0 -4
  545. package/dist/ionic/p-839276d4.entry.js +0 -4
  546. package/dist/ionic/p-8ee012cb.system.entry.js +0 -4
  547. package/dist/ionic/p-908720f3.system.entry.js +0 -4
  548. package/dist/ionic/p-95b14c73.system.entry.js +0 -4
  549. package/dist/ionic/p-99dfa53f.system.entry.js +0 -4
  550. package/dist/ionic/p-a18ec02b.entry.js +0 -4
  551. package/dist/ionic/p-b109a3d7.system.entry.js +0 -4
  552. package/dist/ionic/p-b3690814.system.entry.js +0 -4
  553. package/dist/ionic/p-c3efbcf5.system.js +0 -4
  554. package/dist/ionic/p-c48fc95d.system.entry.js +0 -4
  555. package/dist/ionic/p-c7428627.system.entry.js +0 -4
  556. package/dist/ionic/p-d0ad0430.system.entry.js +0 -4
  557. package/dist/ionic/p-d55c9f92.system.entry.js +0 -4
  558. package/dist/ionic/p-d7b8d224.entry.js +0 -4
  559. package/dist/ionic/p-df5fe0be.system.js +0 -4
  560. package/dist/ionic/p-e1ac688a.entry.js +0 -4
  561. package/dist/ionic/p-e2fd0895.entry.js +0 -4
  562. package/dist/ionic/p-f960fd84.system.entry.js +0 -4
  563. package/dist/ionic/p-fbcb157b.system.js +0 -4
  564. package/dist/ionic/p-fccfe602.entry.js +0 -4
  565. package/dist/ionic/p-ff555f6f.system.entry.js +0 -4
  566. /package/dist/esm-es5/{haptic-6447af60.js → haptic-1243b917.js} +0 -0
  567. /package/dist/esm-es5/{index-ecfc2c9f.js → index-c132c5f1.js} +0 -0
  568. /package/dist/esm-es5/{overlays-2fa52617.js → overlays-cec6bac8.js} +0 -0
  569. /package/dist/ionic/{p-8985b268.system.js → p-8050b9b9.system.js} +0 -0
  570. /package/dist/ionic/{p-6ba7fad7.system.js → p-8f01a9a2.system.js} +0 -0
  571. /package/dist/ionic/{p-14d7b7e2.system.js → p-b4b4bb29.system.js} +0 -0
  572. /package/dist/ionic/{p-bb6f38ed.js → p-b923f3d7.js} +0 -0
  573. /package/dist/ionic/{p-63505fbb.js → p-cf62e1c8.js} +0 -0
  574. /package/dist/ionic/{p-0a87858b.js → p-ea96fa73.js} +0 -0
@@ -54,60 +54,134 @@ const createLargeTitleTransition = (rootAnimation, rtl, backDirection, enteringE
54
54
  if (shouldAnimationForward) {
55
55
  const leavingLargeTitleBox = leavingLargeTitle.getBoundingClientRect();
56
56
  const enteringBackButtonBox = enteringBackButton.getBoundingClientRect();
57
- animateLargeTitle(rootAnimation, rtl, backDirection, leavingLargeTitle, leavingLargeTitleBox, enteringBackButtonBox);
58
- animateBackButton(rootAnimation, rtl, backDirection, enteringBackButton, leavingLargeTitleBox, enteringBackButtonBox);
57
+ const enteringBackButtonTextEl = shadow(enteringBackButton).querySelector('.button-text');
58
+ const enteringBackButtonTextBox = enteringBackButtonTextEl.getBoundingClientRect();
59
+ const leavingLargeTitleTextEl = shadow(leavingLargeTitle).querySelector('.toolbar-title');
60
+ const leavingLargeTitleTextBox = leavingLargeTitleTextEl.getBoundingClientRect();
61
+ animateLargeTitle(rootAnimation, rtl, backDirection, leavingLargeTitle, leavingLargeTitleBox, leavingLargeTitleTextBox, enteringBackButtonTextEl, enteringBackButtonTextBox);
62
+ animateBackButton(rootAnimation, rtl, backDirection, enteringBackButton, enteringBackButtonBox, enteringBackButtonTextEl, enteringBackButtonTextBox, leavingLargeTitle, leavingLargeTitleTextBox);
59
63
  }
60
64
  else if (shouldAnimationBackward) {
61
65
  const enteringLargeTitleBox = enteringLargeTitle.getBoundingClientRect();
62
66
  const leavingBackButtonBox = leavingBackButton.getBoundingClientRect();
63
- animateLargeTitle(rootAnimation, rtl, backDirection, enteringLargeTitle, enteringLargeTitleBox, leavingBackButtonBox);
64
- animateBackButton(rootAnimation, rtl, backDirection, leavingBackButton, enteringLargeTitleBox, leavingBackButtonBox);
67
+ const leavingBackButtonTextEl = shadow(leavingBackButton).querySelector('.button-text');
68
+ const leavingBackButtonTextBox = leavingBackButtonTextEl.getBoundingClientRect();
69
+ const enteringLargeTitleTextEl = shadow(enteringLargeTitle).querySelector('.toolbar-title');
70
+ const enteringLargeTitleTextBox = enteringLargeTitleTextEl.getBoundingClientRect();
71
+ animateLargeTitle(rootAnimation, rtl, backDirection, enteringLargeTitle, enteringLargeTitleBox, enteringLargeTitleTextBox, leavingBackButtonTextEl, leavingBackButtonTextBox);
72
+ animateBackButton(rootAnimation, rtl, backDirection, leavingBackButton, leavingBackButtonBox, leavingBackButtonTextEl, leavingBackButtonTextBox, enteringLargeTitle, enteringLargeTitleTextBox);
65
73
  }
66
74
  return {
67
75
  forward: shouldAnimationForward,
68
76
  backward: shouldAnimationBackward,
69
77
  };
70
78
  };
71
- const animateBackButton = (rootAnimation, rtl, backDirection, backButtonEl, largeTitleBox, backButtonBox) => {
79
+ const animateBackButton = (rootAnimation, rtl, backDirection, backButtonEl, backButtonBox, backButtonTextEl, backButtonTextBox, largeTitleEl, largeTitleTextBox) => {
80
+ var _a, _b;
72
81
  const BACK_BUTTON_START_OFFSET = rtl ? `calc(100% - ${backButtonBox.right + 4}px)` : `${backButtonBox.left - 4}px`;
73
- const START_TEXT_TRANSLATE = rtl ? '7px' : '-7px';
74
- const END_TEXT_TRANSLATE = rtl ? '-4px' : '4px';
75
- const ICON_TRANSLATE = rtl ? '-4px' : '4px';
76
82
  const TEXT_ORIGIN_X = rtl ? 'right' : 'left';
77
83
  const ICON_ORIGIN_X = rtl ? 'left' : 'right';
84
+ const CONTAINER_ORIGIN_X = rtl ? 'right' : 'left';
85
+ /**
86
+ * When the title and back button texts match
87
+ * then they should overlap during the page transition.
88
+ * If the texts do not match up then the back button text scale adjusts
89
+ * to not perfectly match the large title text otherwise the
90
+ * proportions will be incorrect.
91
+ * When the texts match we scale both the width and height to account for
92
+ * font weight differences between the title and back button.
93
+ */
94
+ const doTitleAndButtonTextsMatch = ((_a = backButtonTextEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === ((_b = largeTitleEl.textContent) === null || _b === void 0 ? void 0 : _b.trim());
95
+ const WIDTH_SCALE = largeTitleTextBox.width / backButtonTextBox.width;
96
+ /**
97
+ * We subtract an offset to account for slight sizing/padding
98
+ * differences between the title and the back button.
99
+ */
100
+ const HEIGHT_SCALE = (largeTitleTextBox.height - LARGE_TITLE_SIZE_OFFSET) / backButtonTextBox.height;
101
+ const TEXT_START_SCALE = doTitleAndButtonTextsMatch
102
+ ? `scale(${WIDTH_SCALE}, ${HEIGHT_SCALE})`
103
+ : `scale(${HEIGHT_SCALE})`;
104
+ const TEXT_END_SCALE = 'scale(1)';
105
+ const backButtonIconEl = shadow(backButtonEl).querySelector('ion-icon');
106
+ const backButtonIconBox = backButtonIconEl.getBoundingClientRect();
107
+ /**
108
+ * We need to offset the container by the icon dimensions
109
+ * so that the back button text aligns with the large title
110
+ * text. Otherwise, the back button icon will align with the
111
+ * large title text but the back button text will not.
112
+ */
113
+ const CONTAINER_START_TRANSLATE_X = rtl
114
+ ? `${backButtonIconBox.width / 2 - (backButtonIconBox.right - backButtonBox.right)}px`
115
+ : `${backButtonBox.left - backButtonIconBox.width / 2}px`;
116
+ const CONTAINER_END_TRANSLATE_X = rtl ? `-${window.innerWidth - backButtonBox.right}px` : `${backButtonBox.left}px`;
117
+ /**
118
+ * Back button container should be
119
+ * aligned to the top of the title container
120
+ * so the texts overlap as the back button
121
+ * text begins to fade in.
122
+ */
123
+ const CONTAINER_START_TRANSLATE_Y = `${largeTitleTextBox.top}px`;
124
+ /**
125
+ * The cloned back button should align exactly with the
126
+ * real back button on the entering page otherwise there will
127
+ * be a layout shift.
128
+ */
129
+ const CONTAINER_END_TRANSLATE_Y = `${backButtonBox.top}px`;
130
+ /**
131
+ * In the forward direction, the cloned back button
132
+ * container should translate from over the large title
133
+ * to over the back button. In the backward direction,
134
+ * it should translate from over the back button to over
135
+ * the large title.
136
+ */
137
+ const FORWARD_CONTAINER_KEYFRAMES = [
138
+ { offset: 0, transform: `translate3d(${CONTAINER_START_TRANSLATE_X}, ${CONTAINER_START_TRANSLATE_Y}, 0)` },
139
+ { offset: 1, transform: `translate3d(${CONTAINER_END_TRANSLATE_X}, ${CONTAINER_END_TRANSLATE_Y}, 0)` },
140
+ ];
141
+ const BACKWARD_CONTAINER_KEYFRAMES = [
142
+ { offset: 0, transform: `translate3d(${CONTAINER_END_TRANSLATE_X}, ${CONTAINER_END_TRANSLATE_Y}, 0)` },
143
+ { offset: 1, transform: `translate3d(${CONTAINER_START_TRANSLATE_X}, ${CONTAINER_START_TRANSLATE_Y}, 0)` },
144
+ ];
145
+ const CONTAINER_KEYFRAMES = backDirection ? BACKWARD_CONTAINER_KEYFRAMES : FORWARD_CONTAINER_KEYFRAMES;
146
+ /**
147
+ * In the forward direction, the text in the cloned back button
148
+ * should start to be (roughly) the size of the large title
149
+ * and then scale down to be the size of the actual back button.
150
+ * The text should also translate, but that translate is handled
151
+ * by the container keyframes.
152
+ */
78
153
  const FORWARD_TEXT_KEYFRAMES = [
79
- {
80
- offset: 0,
81
- opacity: 0,
82
- transform: `translate3d(${START_TEXT_TRANSLATE}, ${largeTitleBox.top - 40}px, 0) scale(2.1)`,
83
- },
84
- { offset: 1, opacity: 1, transform: `translate3d(${END_TEXT_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },
154
+ { offset: 0, opacity: 0, transform: TEXT_START_SCALE },
155
+ { offset: 1, opacity: 1, transform: TEXT_END_SCALE },
85
156
  ];
86
157
  const BACKWARD_TEXT_KEYFRAMES = [
87
- { offset: 0, opacity: 1, transform: `translate3d(${END_TEXT_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },
88
- { offset: 0.6, opacity: 0 },
89
- {
90
- offset: 1,
91
- opacity: 0,
92
- transform: `translate3d(${START_TEXT_TRANSLATE}, ${largeTitleBox.top - 40}px, 0) scale(2.1)`,
93
- },
158
+ { offset: 0, opacity: 1, transform: TEXT_END_SCALE },
159
+ { offset: 1, opacity: 0, transform: TEXT_START_SCALE },
94
160
  ];
95
161
  const TEXT_KEYFRAMES = backDirection ? BACKWARD_TEXT_KEYFRAMES : FORWARD_TEXT_KEYFRAMES;
162
+ /**
163
+ * The icon should scale in/out in the second
164
+ * half of the animation. The icon should also
165
+ * translate, but that translate is handled by the
166
+ * container keyframes.
167
+ */
96
168
  const FORWARD_ICON_KEYFRAMES = [
97
- { offset: 0, opacity: 0, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 41}px, 0) scale(0.6)` },
98
- { offset: 1, opacity: 1, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },
169
+ { offset: 0, opacity: 0, transform: 'scale(0.6)' },
170
+ { offset: 0.6, opacity: 0, transform: 'scale(0.6)' },
171
+ { offset: 1, opacity: 1, transform: 'scale(1)' },
99
172
  ];
100
173
  const BACKWARD_ICON_KEYFRAMES = [
101
- { offset: 0, opacity: 1, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 46}px, 0) scale(1)` },
102
- { offset: 0.2, opacity: 0, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 41}px, 0) scale(0.6)` },
103
- { offset: 1, opacity: 0, transform: `translate3d(${ICON_TRANSLATE}, ${backButtonBox.top - 41}px, 0) scale(0.6)` },
174
+ { offset: 0, opacity: 1, transform: 'scale(1)' },
175
+ { offset: 0.2, opacity: 0, transform: 'scale(0.6)' },
176
+ { offset: 1, opacity: 0, transform: 'scale(0.6)' },
104
177
  ];
105
178
  const ICON_KEYFRAMES = backDirection ? BACKWARD_ICON_KEYFRAMES : FORWARD_ICON_KEYFRAMES;
106
179
  const enteringBackButtonTextAnimation = createAnimation();
107
180
  const enteringBackButtonIconAnimation = createAnimation();
181
+ const enteringBackButtonAnimation = createAnimation();
108
182
  const clonedBackButtonEl = getClonedElement('ion-back-button');
109
- const backButtonTextEl = shadow(clonedBackButtonEl).querySelector('.button-text');
110
- const backButtonIconEl = shadow(clonedBackButtonEl).querySelector('ion-icon');
183
+ const clonedBackButtonTextEl = shadow(clonedBackButtonEl).querySelector('.button-text');
184
+ const clonedBackButtonIconEl = shadow(clonedBackButtonEl).querySelector('ion-icon');
111
185
  clonedBackButtonEl.text = backButtonEl.text;
112
186
  clonedBackButtonEl.mode = backButtonEl.mode;
113
187
  clonedBackButtonEl.icon = backButtonEl.icon;
@@ -115,11 +189,19 @@ const animateBackButton = (rootAnimation, rtl, backDirection, backButtonEl, larg
115
189
  clonedBackButtonEl.disabled = backButtonEl.disabled;
116
190
  clonedBackButtonEl.style.setProperty('display', 'block');
117
191
  clonedBackButtonEl.style.setProperty('position', 'fixed');
118
- enteringBackButtonIconAnimation.addElement(backButtonIconEl);
119
- enteringBackButtonTextAnimation.addElement(backButtonTextEl);
192
+ enteringBackButtonIconAnimation.addElement(clonedBackButtonIconEl);
193
+ enteringBackButtonTextAnimation.addElement(clonedBackButtonTextEl);
194
+ enteringBackButtonAnimation.addElement(clonedBackButtonEl);
195
+ enteringBackButtonAnimation
196
+ .beforeStyles({
197
+ position: 'absolute',
198
+ top: '0px',
199
+ [CONTAINER_ORIGIN_X]: '0px',
200
+ })
201
+ .keyframes(CONTAINER_KEYFRAMES);
120
202
  enteringBackButtonTextAnimation
121
203
  .beforeStyles({
122
- 'transform-origin': `${TEXT_ORIGIN_X} center`,
204
+ 'transform-origin': `${TEXT_ORIGIN_X} top`,
123
205
  })
124
206
  .beforeAddWrite(() => {
125
207
  backButtonEl.style.setProperty('display', 'none');
@@ -136,21 +218,91 @@ const animateBackButton = (rootAnimation, rtl, backDirection, backButtonEl, larg
136
218
  'transform-origin': `${ICON_ORIGIN_X} center`,
137
219
  })
138
220
  .keyframes(ICON_KEYFRAMES);
139
- rootAnimation.addAnimation([enteringBackButtonTextAnimation, enteringBackButtonIconAnimation]);
221
+ rootAnimation.addAnimation([
222
+ enteringBackButtonTextAnimation,
223
+ enteringBackButtonIconAnimation,
224
+ enteringBackButtonAnimation,
225
+ ]);
140
226
  };
141
- const animateLargeTitle = (rootAnimation, rtl, backDirection, largeTitleEl, largeTitleBox, backButtonBox) => {
142
- const TITLE_START_OFFSET = rtl ? `calc(100% - ${largeTitleBox.right}px)` : `${largeTitleBox.left}px`;
143
- const START_TRANSLATE = rtl ? '-18px' : '18px';
227
+ const animateLargeTitle = (rootAnimation, rtl, backDirection, largeTitleEl, largeTitleBox, largeTitleTextBox, backButtonTextEl, backButtonTextBox) => {
228
+ var _a, _b;
229
+ /**
230
+ * The horizontal transform origin for the large title
231
+ */
144
232
  const ORIGIN_X = rtl ? 'right' : 'left';
233
+ const TITLE_START_OFFSET = rtl ? `calc(100% - ${largeTitleBox.right}px)` : `${largeTitleBox.left}px`;
234
+ /**
235
+ * The cloned large should align exactly with the
236
+ * real large title on the leaving page otherwise there will
237
+ * be a layout shift.
238
+ */
239
+ const START_TRANSLATE_X = '0px';
240
+ const START_TRANSLATE_Y = `${largeTitleBox.top}px`;
241
+ /**
242
+ * How much to offset the large title translation by.
243
+ * This accounts for differences in sizing between the large
244
+ * title and the back button due to padding and font weight.
245
+ */
246
+ const LARGE_TITLE_TRANSLATION_OFFSET = 8;
247
+ /**
248
+ * The scaled title should (roughly) overlap the back button.
249
+ * This ensures that the back button and title overlap during
250
+ * the animation. Note that since both elements either fade in
251
+ * or fade out over the course of the animation, neither element
252
+ * will be fully visible on top of the other. As a result, the overlap
253
+ * does not need to be perfect, so approximate values are acceptable here.
254
+ */
255
+ const END_TRANSLATE_X = rtl
256
+ ? `-${window.innerWidth - backButtonTextBox.right - LARGE_TITLE_TRANSLATION_OFFSET}px`
257
+ : `${backButtonTextBox.x - LARGE_TITLE_TRANSLATION_OFFSET}px`;
258
+ /**
259
+ * The top of the scaled large title
260
+ * should match with the top of the
261
+ * back button text element.
262
+ * We subtract 2px to account for the top padding
263
+ * on the large title element.
264
+ */
265
+ const LARGE_TITLE_TOP_PADDING = 2;
266
+ const END_TRANSLATE_Y = `${backButtonTextBox.y - LARGE_TITLE_TOP_PADDING}px`;
267
+ /**
268
+ * In the forward direction, the large title should start at its
269
+ * normal size and then scale down to be (roughly) the size of the
270
+ * back button on the other view. In the backward direction, the
271
+ * large title should start at (roughly) the size of the back button
272
+ * and then scale up to its original size.
273
+ *
274
+ * Note that since both elements either fade in
275
+ * or fade out over the course of the animation, neither element
276
+ * will be fully visible on top of the other. As a result, the overlap
277
+ * does not need to be perfect, so approximate values are acceptable here.
278
+ */
279
+ /**
280
+ * When the title and back button texts match
281
+ * then they should overlap during the page transition.
282
+ * If the texts do not match up then the large title text scale adjusts
283
+ * to not perfectly match the back button text otherwise the
284
+ * proportions will be incorrect.
285
+ * When the texts match we scale both the width and height to account for
286
+ * font weight differences between the title and back button.
287
+ */
288
+ const doTitleAndButtonTextsMatch = ((_a = backButtonTextEl.textContent) === null || _a === void 0 ? void 0 : _a.trim()) === ((_b = largeTitleEl.textContent) === null || _b === void 0 ? void 0 : _b.trim());
289
+ const WIDTH_SCALE = backButtonTextBox.width / largeTitleTextBox.width;
290
+ const HEIGHT_SCALE = backButtonTextBox.height / (largeTitleTextBox.height - LARGE_TITLE_SIZE_OFFSET);
291
+ const START_SCALE = 'scale(1)';
292
+ const END_SCALE = doTitleAndButtonTextsMatch ? `scale(${WIDTH_SCALE}, ${HEIGHT_SCALE})` : `scale(${HEIGHT_SCALE})`;
145
293
  const BACKWARDS_KEYFRAMES = [
146
- { offset: 0, opacity: 0, transform: `translate3d(${START_TRANSLATE}, ${backButtonBox.top - 4}px, 0) scale(0.49)` },
294
+ { offset: 0, opacity: 0, transform: `translate3d(${END_TRANSLATE_X}, ${END_TRANSLATE_Y}, 0) ${END_SCALE}` },
147
295
  { offset: 0.1, opacity: 0 },
148
- { offset: 1, opacity: 1, transform: `translate3d(0, ${largeTitleBox.top - 2}px, 0) scale(1)` },
296
+ { offset: 1, opacity: 1, transform: `translate3d(${START_TRANSLATE_X}, ${START_TRANSLATE_Y}, 0) ${START_SCALE}` },
149
297
  ];
150
298
  const FORWARDS_KEYFRAMES = [
151
- { offset: 0, opacity: 0.99, transform: `translate3d(0, ${largeTitleBox.top - 2}px, 0) scale(1)` },
299
+ {
300
+ offset: 0,
301
+ opacity: 0.99,
302
+ transform: `translate3d(${START_TRANSLATE_X}, ${START_TRANSLATE_Y}, 0) ${START_SCALE}`,
303
+ },
152
304
  { offset: 0.6, opacity: 0 },
153
- { offset: 1, opacity: 0, transform: `translate3d(${START_TRANSLATE}, ${backButtonBox.top - 4}px, 0) scale(0.5)` },
305
+ { offset: 1, opacity: 0, transform: `translate3d(${END_TRANSLATE_X}, ${END_TRANSLATE_Y}, 0) ${END_SCALE}` },
154
306
  ];
155
307
  const KEYFRAMES = backDirection ? BACKWARDS_KEYFRAMES : FORWARDS_KEYFRAMES;
156
308
  const clonedTitleEl = getClonedElement('ion-title');
@@ -161,17 +313,23 @@ const animateLargeTitle = (rootAnimation, rtl, backDirection, largeTitleEl, larg
161
313
  clonedLargeTitleAnimation.addElement(clonedTitleEl);
162
314
  clonedLargeTitleAnimation
163
315
  .beforeStyles({
164
- 'transform-origin': `${ORIGIN_X} center`,
165
- height: '46px',
316
+ 'transform-origin': `${ORIGIN_X} top`,
317
+ /**
318
+ * Since font size changes will cause
319
+ * the dimension of the large title to change
320
+ * we need to set the cloned title height
321
+ * equal to that of the original large title height.
322
+ */
323
+ height: `${largeTitleBox.height}px`,
166
324
  display: '',
167
325
  position: 'relative',
168
326
  [ORIGIN_X]: TITLE_START_OFFSET,
169
327
  })
170
328
  .beforeAddWrite(() => {
171
- largeTitleEl.style.setProperty('display', 'none');
329
+ largeTitleEl.style.setProperty('opacity', '0');
172
330
  })
173
331
  .afterAddWrite(() => {
174
- largeTitleEl.style.setProperty('display', '');
332
+ largeTitleEl.style.setProperty('opacity', '');
175
333
  clonedTitleEl.style.setProperty('display', 'none');
176
334
  })
177
335
  .keyframes(KEYFRAMES);
@@ -202,6 +360,7 @@ export const iosTransitionAnimation = (navEl, opts) => {
202
360
  .easing(opts.easing || EASING)
203
361
  .fill('both')
204
362
  .beforeRemoveClass('ion-page-invisible');
363
+ // eslint-disable-next-line @typescript-eslint/prefer-optional-chain
205
364
  if (leavingEl && navEl !== null && navEl !== undefined) {
206
365
  const navDecorAnimation = createAnimation();
207
366
  navDecorAnimation.addElement(navEl);
@@ -474,3 +633,13 @@ export const iosTransitionAnimation = (navEl, opts) => {
474
633
  throw err;
475
634
  }
476
635
  };
636
+ /**
637
+ * The scale of the back button during the animation
638
+ * is computed based on the scale of the large title
639
+ * and vice versa. However, we need to account for slight
640
+ * variations in the size of the large title due to
641
+ * padding and font weight. This value should be used to subtract
642
+ * a small amount from the large title height when computing scales
643
+ * to get more accurate scale results.
644
+ */
645
+ const LARGE_TITLE_SIZE_OFFSET = 10;
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2023-10-14T17:23:34",
2
+ "timestamp": "2023-10-19T00:28:11",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.4.1",
5
+ "version": "4.5.0",
6
6
  "typescriptVersion": "5.2.2"
7
7
  },
8
8
  "components": [
@@ -7102,11 +7102,17 @@
7102
7102
  },
7103
7103
  {
7104
7104
  "name": "hourCycle",
7105
- "type": "\"h12\" | \"h23\" | undefined",
7105
+ "type": "\"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined",
7106
7106
  "complexType": {
7107
- "original": "'h23' | 'h12'",
7108
- "resolved": "\"h12\" | \"h23\" | undefined",
7109
- "references": {}
7107
+ "original": "DatetimeHourCycle",
7108
+ "resolved": "\"h11\" | \"h12\" | \"h23\" | \"h24\" | undefined",
7109
+ "references": {
7110
+ "DatetimeHourCycle": {
7111
+ "location": "import",
7112
+ "path": "./datetime-interface",
7113
+ "id": "src/components/datetime/datetime-interface.ts::DatetimeHourCycle"
7114
+ }
7115
+ }
7110
7116
  },
7111
7117
  "mutable": false,
7112
7118
  "attr": "hour-cycle",
@@ -7114,6 +7120,10 @@
7114
7120
  "docs": "The hour cycle of the `ion-datetime`. If no value is set, this is\nspecified by the current locale.",
7115
7121
  "docsTags": [],
7116
7122
  "values": [
7123
+ {
7124
+ "value": "h11",
7125
+ "type": "string"
7126
+ },
7117
7127
  {
7118
7128
  "value": "h12",
7119
7129
  "type": "string"
@@ -7122,6 +7132,10 @@
7122
7132
  "value": "h23",
7123
7133
  "type": "string"
7124
7134
  },
7135
+ {
7136
+ "value": "h24",
7137
+ "type": "string"
7138
+ },
7125
7139
  {
7126
7140
  "type": "undefined"
7127
7141
  }
@@ -27719,7 +27733,7 @@
27719
27733
  "mutable": false,
27720
27734
  "attr": "position",
27721
27735
  "reflectToAttr": false,
27722
- "docs": "The position of the toast on the screen.",
27736
+ "docs": "The starting position of the toast on the screen. Can be tweaked further\nusing the `positionAnchor` property.",
27723
27737
  "docsTags": [],
27724
27738
  "default": "'bottom'",
27725
27739
  "values": [
@@ -27739,6 +27753,38 @@
27739
27753
  "optional": false,
27740
27754
  "required": false
27741
27755
  },
27756
+ {
27757
+ "name": "positionAnchor",
27758
+ "type": "HTMLElement | string | undefined",
27759
+ "complexType": {
27760
+ "original": "HTMLElement | string",
27761
+ "resolved": "HTMLElement | string | undefined",
27762
+ "references": {
27763
+ "HTMLElement": {
27764
+ "location": "global",
27765
+ "id": "global::HTMLElement"
27766
+ }
27767
+ }
27768
+ },
27769
+ "mutable": false,
27770
+ "attr": "position-anchor",
27771
+ "reflectToAttr": false,
27772
+ "docs": "The element to anchor the toast's position to. Can be set as a direct reference\nor the ID of the element. With `position=\"bottom\"`, the toast will sit above the\nchosen element. With `position=\"top\"`, the toast will sit below the chosen element.\nWith `position=\"middle\"`, the value of `positionAnchor` is ignored.",
27773
+ "docsTags": [],
27774
+ "values": [
27775
+ {
27776
+ "type": "HTMLElement"
27777
+ },
27778
+ {
27779
+ "type": "string"
27780
+ },
27781
+ {
27782
+ "type": "undefined"
27783
+ }
27784
+ ],
27785
+ "optional": true,
27786
+ "required": false
27787
+ },
27742
27788
  {
27743
27789
  "name": "translucent",
27744
27790
  "type": "boolean",
@@ -27821,8 +27867,9 @@
27821
27867
  "id": "global::Promise"
27822
27868
  },
27823
27869
  "ToastDismissOptions": {
27824
- "location": "global",
27825
- "id": "global::ToastDismissOptions"
27870
+ "location": "import",
27871
+ "path": "./toast-interface",
27872
+ "id": "src/components/toast/toast-interface.ts::ToastDismissOptions"
27826
27873
  }
27827
27874
  },
27828
27875
  "return": "Promise<boolean>"
@@ -27918,8 +27965,9 @@
27918
27965
  "id": "global::Promise"
27919
27966
  },
27920
27967
  "ToastPresentOptions": {
27921
- "location": "global",
27922
- "id": "global::ToastPresentOptions"
27968
+ "location": "import",
27969
+ "path": "./toast-interface",
27970
+ "id": "src/components/toast/toast-interface.ts::ToastPresentOptions"
27923
27971
  }
27924
27972
  },
27925
27973
  "return": "Promise<void>"
@@ -28995,6 +29043,11 @@
28995
29043
  "docstring": "",
28996
29044
  "path": "src/components/datetime/datetime-interface.ts"
28997
29045
  },
29046
+ "src/components/datetime/datetime-interface.ts::DatetimeHourCycle": {
29047
+ "declaration": "export type DatetimeHourCycle = 'h11' | 'h12' | 'h23' | 'h24';",
29048
+ "docstring": "",
29049
+ "path": "src/components/datetime/datetime-interface.ts"
29050
+ },
28998
29051
  "src/components/datetime/datetime-interface.ts::DatetimeChangeEventDetail": {
28999
29052
  "declaration": "export interface DatetimeChangeEventDetail {\n value?: string | string[] | null;\n}",
29000
29053
  "docstring": "",
@@ -29290,6 +29343,16 @@
29290
29343
  "docstring": "",
29291
29344
  "path": "src/components/toast/toast-interface.ts"
29292
29345
  },
29346
+ "src/components/toast/toast-interface.ts::ToastPresentOptions": {
29347
+ "declaration": "export type ToastPresentOptions = ToastPositionAlias & ToastAnimationPosition;",
29348
+ "docstring": "",
29349
+ "path": "src/components/toast/toast-interface.ts"
29350
+ },
29351
+ "src/components/toast/toast-interface.ts::ToastDismissOptions": {
29352
+ "declaration": "export type ToastDismissOptions = ToastPositionAlias & ToastAnimationPosition;",
29353
+ "docstring": "",
29354
+ "path": "src/components/toast/toast-interface.ts"
29355
+ },
29293
29356
  "src/components/toggle/toggle-interface.ts::ToggleChangeEventDetail": {
29294
29357
  "declaration": "export interface ToggleChangeEventDetail<T = any> {\n value: T;\n checked: boolean;\n}",
29295
29358
  "docstring": "",
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as writeTask } from './index-b49b173c.js';
5
- import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-6447af60.js';
5
+ import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-1243b917.js';
6
6
  import { createGesture } from './index-ff313b19.js';
7
7
 
8
8
  const createButtonActiveGesture = (el, isButton) => {