@ionic/core 7.3.4-dev.11694534020.12e16bee → 7.3.4-dev.11694542086.1f624b36

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 (336) hide show
  1. package/components/icon.js +5 -22
  2. package/components/index7.js +1 -1
  3. package/components/input-shims.js +76 -2
  4. package/components/ion-menu.js +2 -2
  5. package/components/ion-toolbar.js +2 -2
  6. package/dist/cjs/{app-globals-a579aafd.js → app-globals-a63c2a19.js} +1 -1
  7. package/dist/cjs/{button-active-dfd2756e.js → button-active-0ff8e82c.js} +1 -1
  8. package/dist/cjs/{index-484b1104.js → index-184fdd62.js} +6 -6
  9. package/dist/cjs/{index-8568bedb.js → index-be8a2ab9.js} +3 -3
  10. package/dist/cjs/{index-c3b215ee.js → index-d8d1fc0b.js} +1 -1
  11. package/dist/cjs/{index-653be4df.js → index-e6416850.js} +1 -1
  12. package/dist/cjs/index.cjs.js +7 -7
  13. package/dist/cjs/{input-shims-f8569707.js → input-shims-d8e322aa.js} +76 -2
  14. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  15. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  16. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  17. package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
  18. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  19. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  20. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  21. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  22. package/dist/cjs/ion-button_2.cjs.entry.js +7 -24
  23. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-checkbox.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  28. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  29. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  30. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-input.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  37. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  38. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  39. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  41. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  42. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
  46. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  47. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  49. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  50. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
  52. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  56. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  59. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  60. package/dist/cjs/{ionic-global-f81d8b73.js → ionic-global-6d5d27b5.js} +1 -1
  61. package/dist/cjs/ionic.cjs.js +4 -4
  62. package/dist/cjs/{ios.transition-f7c78d7c.js → ios.transition-80582b44.js} +2 -2
  63. package/dist/cjs/loader.cjs.js +3 -3
  64. package/dist/cjs/{md.transition-65dc7dce.js → md.transition-eeca9fb5.js} +2 -2
  65. package/dist/cjs/{overlays-5c1706ed.js → overlays-c78a0148.js} +1 -1
  66. package/dist/cjs/{status-tap-4564b66c.js → status-tap-cc4c6539.js} +1 -1
  67. package/dist/collection/collection-manifest.json +1 -1
  68. package/dist/collection/components/menu/menu.ios.css +94 -0
  69. package/dist/collection/components/menu/menu.md.css +94 -0
  70. package/dist/collection/components/toolbar/toolbar.ios.css +2 -4
  71. package/dist/collection/components/toolbar/toolbar.md.css +2 -4
  72. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +76 -2
  73. package/dist/docs.json +2 -2
  74. package/dist/esm/{app-globals-e8ddf830.js → app-globals-c7886b40.js} +1 -1
  75. package/dist/esm/{button-active-2da0f611.js → button-active-b76ae4ec.js} +1 -1
  76. package/dist/esm/{index-6391de89.js → index-01839411.js} +3 -3
  77. package/dist/esm/{index-b3e05099.js → index-48f5e259.js} +1 -1
  78. package/dist/esm/{index-847f2fde.js → index-adfb2000.js} +6 -6
  79. package/dist/esm/{index-87d8642c.js → index-ecfc2c9f.js} +1 -1
  80. package/dist/esm/index.js +7 -7
  81. package/dist/esm/{input-shims-af993f05.js → input-shims-c738363e.js} +76 -2
  82. package/dist/esm/ion-accordion_2.entry.js +3 -3
  83. package/dist/esm/ion-action-sheet.entry.js +4 -4
  84. package/dist/esm/ion-alert.entry.js +4 -4
  85. package/dist/esm/ion-app_8.entry.js +7 -7
  86. package/dist/esm/ion-avatar_3.entry.js +2 -2
  87. package/dist/esm/ion-back-button.entry.js +3 -3
  88. package/dist/esm/ion-backdrop.entry.js +2 -2
  89. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  90. package/dist/esm/ion-button_2.entry.js +7 -24
  91. package/dist/esm/ion-card_5.entry.js +2 -2
  92. package/dist/esm/ion-checkbox.entry.js +2 -2
  93. package/dist/esm/ion-chip.entry.js +2 -2
  94. package/dist/esm/ion-col_3.entry.js +2 -2
  95. package/dist/esm/ion-datetime-button.entry.js +2 -2
  96. package/dist/esm/ion-datetime_3.entry.js +4 -4
  97. package/dist/esm/ion-fab_3.entry.js +3 -3
  98. package/dist/esm/ion-img.entry.js +2 -2
  99. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  100. package/dist/esm/ion-input.entry.js +3 -3
  101. package/dist/esm/ion-item-option_3.entry.js +2 -2
  102. package/dist/esm/ion-item_8.entry.js +3 -3
  103. package/dist/esm/ion-loading.entry.js +3 -3
  104. package/dist/esm/ion-menu_3.entry.js +7 -7
  105. package/dist/esm/ion-modal.entry.js +4 -4
  106. package/dist/esm/ion-nav_2.entry.js +3 -3
  107. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  108. package/dist/esm/ion-picker-internal.entry.js +1 -1
  109. package/dist/esm/ion-popover.entry.js +4 -4
  110. package/dist/esm/ion-progress-bar.entry.js +2 -2
  111. package/dist/esm/ion-radio_2.entry.js +2 -2
  112. package/dist/esm/ion-range.entry.js +2 -2
  113. package/dist/esm/ion-refresher_2.entry.js +3 -3
  114. package/dist/esm/ion-reorder_2.entry.js +3 -3
  115. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  116. package/dist/esm/ion-route_4.entry.js +2 -2
  117. package/dist/esm/ion-searchbar.entry.js +3 -3
  118. package/dist/esm/ion-segment_2.entry.js +2 -2
  119. package/dist/esm/ion-select_3.entry.js +4 -4
  120. package/dist/esm/ion-spinner.entry.js +2 -2
  121. package/dist/esm/ion-split-pane.entry.js +2 -2
  122. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  123. package/dist/esm/ion-tab_2.entry.js +1 -1
  124. package/dist/esm/ion-text.entry.js +2 -2
  125. package/dist/esm/ion-textarea.entry.js +2 -2
  126. package/dist/esm/ion-toast.entry.js +3 -3
  127. package/dist/esm/ion-toggle.entry.js +3 -3
  128. package/dist/esm/{ionic-global-1ef19007.js → ionic-global-9080266a.js} +1 -1
  129. package/dist/esm/ionic.js +5 -5
  130. package/dist/esm/{ios.transition-3137d23e.js → ios.transition-f43871cd.js} +2 -2
  131. package/dist/esm/loader.js +4 -4
  132. package/dist/esm/{md.transition-48b3b77c.js → md.transition-12d21ad0.js} +2 -2
  133. package/dist/esm/{overlays-e1dadfe6.js → overlays-4565894b.js} +1 -1
  134. package/dist/esm/{status-tap-823a0df3.js → status-tap-121c711d.js} +1 -1
  135. package/dist/esm-es5/app-globals-c7886b40.js +4 -0
  136. package/dist/esm-es5/{button-active-2da0f611.js → button-active-b76ae4ec.js} +1 -1
  137. package/dist/esm-es5/{index-6391de89.js → index-01839411.js} +1 -1
  138. package/dist/esm-es5/{index-b3e05099.js → index-48f5e259.js} +1 -1
  139. package/dist/esm-es5/index.js +1 -1
  140. package/dist/esm-es5/input-shims-c738363e.js +4 -0
  141. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  142. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  143. package/dist/esm-es5/ion-alert.entry.js +1 -1
  144. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  145. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  146. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  147. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  148. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  149. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  150. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  151. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  152. package/dist/esm-es5/ion-chip.entry.js +1 -1
  153. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  154. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  155. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  156. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  157. package/dist/esm-es5/ion-img.entry.js +1 -1
  158. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  159. package/dist/esm-es5/ion-input.entry.js +1 -1
  160. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  161. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  162. package/dist/esm-es5/ion-loading.entry.js +1 -1
  163. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  164. package/dist/esm-es5/ion-modal.entry.js +1 -1
  165. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  166. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  167. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  168. package/dist/esm-es5/ion-popover.entry.js +1 -1
  169. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  170. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  171. package/dist/esm-es5/ion-range.entry.js +1 -1
  172. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  174. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  175. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  176. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  177. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  178. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  179. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  180. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  181. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  182. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  183. package/dist/esm-es5/ion-text.entry.js +1 -1
  184. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  185. package/dist/esm-es5/ion-toast.entry.js +1 -1
  186. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  187. package/dist/esm-es5/{ionic-global-1ef19007.js → ionic-global-9080266a.js} +1 -1
  188. package/dist/esm-es5/ionic.js +1 -1
  189. package/dist/esm-es5/{ios.transition-3137d23e.js → ios.transition-f43871cd.js} +1 -1
  190. package/dist/esm-es5/loader.js +1 -1
  191. package/dist/esm-es5/md.transition-12d21ad0.js +4 -0
  192. package/dist/esm-es5/{overlays-e1dadfe6.js → overlays-4565894b.js} +1 -1
  193. package/dist/esm-es5/{status-tap-823a0df3.js → status-tap-121c711d.js} +1 -1
  194. package/dist/ionic/index.esm.js +1 -1
  195. package/dist/ionic/ionic.esm.js +1 -1
  196. package/dist/ionic/ionic.js +1 -1
  197. package/dist/ionic/{p-c75d63c0.entry.js → p-041ac2c3.entry.js} +1 -1
  198. package/dist/ionic/{p-fabb7294.entry.js → p-072f99fd.entry.js} +1 -1
  199. package/dist/ionic/{p-99028088.entry.js → p-07656a8a.entry.js} +1 -1
  200. package/dist/ionic/{p-857be909.entry.js → p-07f5e286.entry.js} +1 -1
  201. package/dist/ionic/{p-b0129e93.system.entry.js → p-0ce43a8f.system.entry.js} +1 -1
  202. package/dist/ionic/{p-98ebc376.entry.js → p-0dbfa45f.entry.js} +1 -1
  203. package/dist/ionic/{p-38dd9aec.entry.js → p-11d0977d.entry.js} +1 -1
  204. package/dist/ionic/{p-2cdcd6f2.entry.js → p-17e961cf.entry.js} +1 -1
  205. package/dist/ionic/{p-fe83e3e2.entry.js → p-1916030e.entry.js} +1 -1
  206. package/dist/ionic/{p-b3cfc6e1.system.entry.js → p-1b533a76.system.entry.js} +1 -1
  207. package/dist/ionic/{p-bbae0ac3.system.entry.js → p-1c236453.system.entry.js} +1 -1
  208. package/dist/ionic/{p-b2514862.system.entry.js → p-204fb8f0.system.entry.js} +1 -1
  209. package/dist/ionic/p-23ddd787.system.entry.js +4 -0
  210. package/dist/ionic/{p-3ea57ced.system.entry.js → p-26276eb7.system.entry.js} +1 -1
  211. package/dist/ionic/{p-208f640c.entry.js → p-28d8b87b.entry.js} +1 -1
  212. package/dist/ionic/{p-e1f491c6.system.entry.js → p-2ac2278e.system.entry.js} +1 -1
  213. package/dist/ionic/p-2b0ecc04.entry.js +4 -0
  214. package/dist/ionic/{p-69303bb5.system.js → p-2e5930dd.system.js} +1 -1
  215. package/dist/ionic/{p-bf4b8d8a.system.entry.js → p-32983529.system.entry.js} +1 -1
  216. package/dist/ionic/{p-23f63cc8.system.entry.js → p-3bf120f8.system.entry.js} +1 -1
  217. package/dist/ionic/{p-e3cba96d.js → p-3c325277.js} +1 -1
  218. package/dist/ionic/{p-82632e15.system.js → p-3d5a6d14.system.js} +1 -1
  219. package/dist/ionic/{p-77f91ca9.entry.js → p-3f15f60b.entry.js} +1 -1
  220. package/dist/ionic/{p-6b3afb0f.entry.js → p-42e0558f.entry.js} +1 -1
  221. package/dist/ionic/{p-06d6e9c0.system.entry.js → p-4446e19f.system.entry.js} +1 -1
  222. package/dist/ionic/{p-5f611d9e.system.entry.js → p-44a6f15d.system.entry.js} +1 -1
  223. package/dist/ionic/{p-55afcc56.entry.js → p-47a11fc4.entry.js} +1 -1
  224. package/dist/ionic/{p-1ec4dc01.entry.js → p-48d378cf.entry.js} +1 -1
  225. package/dist/ionic/{p-93e47822.entry.js → p-49f2eaa6.entry.js} +1 -1
  226. package/dist/ionic/{p-7b3fcf85.entry.js → p-4d2807fa.entry.js} +1 -1
  227. package/dist/ionic/{p-32d11ce2.system.entry.js → p-4e1a58c6.system.entry.js} +1 -1
  228. package/dist/ionic/{p-859b1ee6.entry.js → p-4f7109fa.entry.js} +1 -1
  229. package/dist/ionic/{p-11a42c03.system.entry.js → p-5080e623.system.entry.js} +1 -1
  230. package/dist/ionic/{p-c4afbed8.system.entry.js → p-5163baf4.system.entry.js} +1 -1
  231. package/dist/ionic/{p-0219ac12.system.entry.js → p-516421e2.system.entry.js} +1 -1
  232. package/dist/ionic/{p-d1d3b740.system.entry.js → p-5260588f.system.entry.js} +1 -1
  233. package/dist/ionic/{p-b22ee0dc.js → p-563068af.js} +1 -1
  234. package/dist/ionic/p-56495958.js +4 -0
  235. package/dist/ionic/{p-dc49c681.system.entry.js → p-574411f2.system.entry.js} +1 -1
  236. package/dist/ionic/{p-8a676776.entry.js → p-57847936.entry.js} +1 -1
  237. package/dist/ionic/{p-d3378c35.entry.js → p-59b40b60.entry.js} +1 -1
  238. package/dist/ionic/{p-af0bc751.system.entry.js → p-5a9dc764.system.entry.js} +1 -1
  239. package/dist/ionic/{p-0ff17c93.entry.js → p-5df94bf8.entry.js} +1 -1
  240. package/dist/ionic/{p-81597423.system.js → p-5e549223.system.js} +1 -1
  241. package/dist/ionic/{p-8ba724fa.system.js → p-5fc777e6.system.js} +1 -1
  242. package/dist/ionic/{p-f79efebd.system.entry.js → p-6276ba2f.system.entry.js} +1 -1
  243. package/dist/ionic/{p-7c938ad6.js → p-629b0629.js} +1 -1
  244. package/dist/ionic/{p-5ed5b824.entry.js → p-68deb933.entry.js} +1 -1
  245. package/dist/ionic/{p-b0e9e0b8.system.entry.js → p-6ccffb74.system.entry.js} +1 -1
  246. package/dist/ionic/{p-98a189f3.entry.js → p-6dff4431.entry.js} +1 -1
  247. package/dist/ionic/{p-fa3327e8.system.entry.js → p-6eb7b33c.system.entry.js} +1 -1
  248. package/dist/ionic/{p-8843b046.system.js → p-7106c152.system.js} +1 -1
  249. package/dist/ionic/{p-839bd69f.system.entry.js → p-7474a472.system.entry.js} +1 -1
  250. package/dist/ionic/{p-0b68c41d.system.entry.js → p-74834696.system.entry.js} +1 -1
  251. package/dist/ionic/p-75d4ceab.js +4 -0
  252. package/dist/ionic/{p-d313542f.entry.js → p-765e6339.entry.js} +1 -1
  253. package/dist/ionic/{p-c759a704.entry.js → p-7b14f1a9.entry.js} +1 -1
  254. package/dist/ionic/{p-f95f798a.system.entry.js → p-810f1bc9.system.entry.js} +1 -1
  255. package/dist/ionic/p-83459b99.entry.js +4 -0
  256. package/dist/ionic/{p-e46368a2.entry.js → p-84084b75.entry.js} +1 -1
  257. package/dist/ionic/{p-68e0ea3c.entry.js → p-8bcd482b.entry.js} +1 -1
  258. package/dist/ionic/{p-48144921.entry.js → p-8db97b90.entry.js} +1 -1
  259. package/dist/ionic/p-8f7edf3e.js +4 -0
  260. package/dist/ionic/{p-87383d00.system.entry.js → p-95188051.system.entry.js} +1 -1
  261. package/dist/ionic/{p-57dc87eb.system.entry.js → p-98bfaff3.system.entry.js} +1 -1
  262. package/dist/ionic/p-99a3df5c.entry.js +4 -0
  263. package/dist/ionic/{p-0142ba6d.entry.js → p-9b53c813.entry.js} +1 -1
  264. package/dist/ionic/{p-e679bd69.system.entry.js → p-9be96bf3.system.entry.js} +1 -1
  265. package/dist/ionic/{p-f7faa32d.entry.js → p-9e8727d6.entry.js} +1 -1
  266. package/dist/ionic/{p-5cd94cc1.entry.js → p-9eaaa910.entry.js} +1 -1
  267. package/dist/ionic/{p-653f2fc6.entry.js → p-9eced28c.entry.js} +1 -1
  268. package/dist/ionic/{p-180f4e51.system.entry.js → p-9f3ad626.system.entry.js} +1 -1
  269. package/dist/ionic/{p-d1bab5e7.system.entry.js → p-a033a91d.system.entry.js} +1 -1
  270. package/dist/ionic/{p-62324608.system.entry.js → p-a037b6d5.system.entry.js} +1 -1
  271. package/dist/ionic/{p-df6743df.system.js → p-a122ecd0.system.js} +1 -1
  272. package/dist/ionic/{p-83008f7c.system.js → p-a314559e.system.js} +2 -2
  273. package/dist/ionic/p-a533868d.system.js +4 -0
  274. package/dist/ionic/{p-1d82df31.system.entry.js → p-a8270ae8.system.entry.js} +1 -1
  275. package/dist/ionic/{p-0053fe81.system.entry.js → p-af6125d1.system.entry.js} +1 -1
  276. package/dist/ionic/{p-785b0913.entry.js → p-b052b578.entry.js} +1 -1
  277. package/dist/ionic/{p-91459620.js → p-b3f6f321.js} +1 -1
  278. package/dist/ionic/{p-a8e01c65.entry.js → p-b453b38d.entry.js} +1 -1
  279. package/dist/ionic/{p-fea46870.system.entry.js → p-b703ebeb.system.entry.js} +1 -1
  280. package/dist/ionic/{p-e53b8af4.system.entry.js → p-b8d7f0eb.system.entry.js} +1 -1
  281. package/dist/ionic/{p-d3b8aebf.entry.js → p-b9179eab.entry.js} +1 -1
  282. package/dist/ionic/{p-59646db0.entry.js → p-bacf09d3.entry.js} +1 -1
  283. package/dist/ionic/{p-4457f4a6.entry.js → p-be187db3.entry.js} +1 -1
  284. package/dist/ionic/{p-b32742f3.system.js → p-bfee11b2.system.js} +1 -1
  285. package/dist/ionic/p-c254bde2.js +4 -0
  286. package/dist/ionic/{p-45ee211b.system.entry.js → p-c2b524f3.system.entry.js} +1 -1
  287. package/dist/ionic/{p-0660215f.entry.js → p-c2d6088f.entry.js} +1 -1
  288. package/dist/ionic/{p-06902103.system.js → p-c68a8814.system.js} +1 -1
  289. package/dist/ionic/p-c7ce7e18.entry.js +4 -0
  290. package/dist/ionic/{p-336420f9.system.entry.js → p-c8c0d58a.system.entry.js} +1 -1
  291. package/dist/ionic/{p-728ac2b3.entry.js → p-cd002251.entry.js} +1 -1
  292. package/dist/ionic/{p-11248f01.js → p-d57e8b06.js} +1 -1
  293. package/dist/ionic/{p-2539e967.system.entry.js → p-d8d30fd1.system.entry.js} +1 -1
  294. package/dist/ionic/p-dacb0258.js +4 -0
  295. package/dist/ionic/{p-b5aa940c.system.entry.js → p-dc4c9086.system.entry.js} +1 -1
  296. package/dist/ionic/{p-5b88f780.entry.js → p-dc7d392d.entry.js} +1 -1
  297. package/dist/ionic/{p-0cc2bf5a.system.entry.js → p-e239ab05.system.entry.js} +1 -1
  298. package/dist/ionic/{p-fd42994b.system.entry.js → p-e65aed58.system.entry.js} +1 -1
  299. package/dist/ionic/{p-d5e3bff3.entry.js → p-eb91aee6.entry.js} +1 -1
  300. package/dist/ionic/{p-5221e3d9.system.entry.js → p-ec344ed1.system.entry.js} +1 -1
  301. package/dist/ionic/{p-ed7b205b.entry.js → p-ec7ff98b.entry.js} +1 -1
  302. package/dist/ionic/{p-8afcaae4.system.entry.js → p-ee55302a.system.entry.js} +1 -1
  303. package/dist/ionic/{p-dbb48066.system.entry.js → p-ef8a8827.system.entry.js} +1 -1
  304. package/dist/ionic/{p-b1e8f045.entry.js → p-f3ec1f2b.entry.js} +1 -1
  305. package/dist/ionic/p-f58cbf92.system.js +4 -0
  306. package/dist/ionic/{p-639d7b25.entry.js → p-f62bed60.entry.js} +1 -1
  307. package/dist/ionic/{p-a1191dc0.system.entry.js → p-fa8fc77b.system.entry.js} +1 -1
  308. package/dist/ionic/{p-5d7aa5dc.system.entry.js → p-fb26fa56.system.entry.js} +1 -1
  309. package/dist/ionic/{p-3ef88fc2.system.entry.js → p-fde174d6.system.entry.js} +1 -1
  310. package/dist/ionic/{p-7b16490a.system.js → p-ff3d728d.system.js} +1 -1
  311. package/dist/node_modules/ionicons/dist/collection/components/icon/icon.css +6 -50
  312. package/dist/types/stencil-public-runtime.d.ts +3 -3
  313. package/hydrate/index.d.ts +5 -5
  314. package/hydrate/index.js +50 -68
  315. package/package.json +4 -4
  316. package/dist/esm-es5/app-globals-e8ddf830.js +0 -4
  317. package/dist/esm-es5/input-shims-af993f05.js +0 -4
  318. package/dist/esm-es5/md.transition-48b3b77c.js +0 -4
  319. package/dist/ionic/p-0be94477.entry.js +0 -4
  320. package/dist/ionic/p-273e78ae.entry.js +0 -4
  321. package/dist/ionic/p-4531b920.system.js +0 -4
  322. package/dist/ionic/p-582dc7c1.js +0 -4
  323. package/dist/ionic/p-778460f7.js +0 -4
  324. package/dist/ionic/p-79d17e21.system.entry.js +0 -4
  325. package/dist/ionic/p-a2b25750.js +0 -4
  326. package/dist/ionic/p-a62c0ff4.js +0 -4
  327. package/dist/ionic/p-c53dd7a2.entry.js +0 -4
  328. package/dist/ionic/p-d2d25501.entry.js +0 -4
  329. package/dist/ionic/p-d898dd46.js +0 -4
  330. package/dist/ionic/p-e3d5608d.system.js +0 -4
  331. /package/dist/esm-es5/{index-847f2fde.js → index-adfb2000.js} +0 -0
  332. /package/dist/esm-es5/{index-87d8642c.js → index-ecfc2c9f.js} +0 -0
  333. /package/dist/ionic/{p-547db962.js → p-0a87858b.js} +0 -0
  334. /package/dist/ionic/{p-5b553dc0.system.js → p-2441ba84.system.js} +0 -0
  335. /package/dist/ionic/{p-de640b80.system.js → p-8985b268.system.js} +0 -0
  336. /package/dist/ionic/{p-156967ec.js → p-a18eb556.js} +0 -0
@@ -47,6 +47,18 @@
47
47
  }
48
48
 
49
49
  :host(.menu-side-start) .menu-inner {
50
+ /**
51
+ * Menu does not cover the whole screen so we need to set the safe area for the
52
+ * side that touches the screen edge only. Since safe area is not logical, it
53
+ * needs to be applied to the correct side depending on the language direction.
54
+ * Otherwise, the content will have less space on both sides.
55
+ *
56
+ * LTR:
57
+ * The left side of the menu touches the screen edge. The safe area padding has
58
+ * already been set in the core styles, so there's no need to set it again.
59
+ * The right side of the menu is not touching the screen edge. Padding is not
60
+ * applied to the right side of the menu. A value of 0 is set.
61
+ */
50
62
  --ion-safe-area-right: 0px;
51
63
  top: 0;
52
64
  bottom: 0;
@@ -77,8 +89,55 @@
77
89
  }
78
90
  }
79
91
  }
92
+ :host-context([dir=rtl]):host(.menu-side-start) .menu-inner, :host-context([dir=rtl]).menu-side-start .menu-inner {
93
+ /**
94
+ * Menu does not cover the whole screen so we need to set the safe area for the
95
+ * side that touches the screen edge only. Since safe area is not logical, it
96
+ * needs to be applied to the correct side depending on the language direction.
97
+ * Otherwise, the content will have less space on both sides.
98
+ *
99
+ * RTL:
100
+ * The right side of the menu touches the screen edge. The safe area padding has
101
+ * already been set in the core styles, so there's no need to set it again.
102
+ * The left side of the menu is not touching the screen edge. Padding is not
103
+ * applied to the left side of the menu. A value of 0 is set.
104
+ */
105
+ --ion-safe-area-right: env(safe-area-inset-right);
106
+ --ion-safe-area-left: 0px;
107
+ }
108
+
109
+ @supports selector(:dir(rtl)) {
110
+ :host(.menu-side-start) .menu-inner:dir(rtl) {
111
+ /**
112
+ * Menu does not cover the whole screen so we need to set the safe area for the
113
+ * side that touches the screen edge only. Since safe area is not logical, it
114
+ * needs to be applied to the correct side depending on the language direction.
115
+ * Otherwise, the content will have less space on both sides.
116
+ *
117
+ * RTL:
118
+ * The right side of the menu touches the screen edge. The safe area padding has
119
+ * already been set in the core styles, so there's no need to set it again.
120
+ * The left side of the menu is not touching the screen edge. Padding is not
121
+ * applied to the left side of the menu. A value of 0 is set.
122
+ */
123
+ --ion-safe-area-right: env(safe-area-inset-right);
124
+ --ion-safe-area-left: 0px;
125
+ }
126
+ }
80
127
 
81
128
  :host(.menu-side-end) .menu-inner {
129
+ /**
130
+ * Menu does not cover the whole screen so we need to set the safe area for the
131
+ * side that touches the screen edge only. Since safe area is not logical, it
132
+ * needs to be applied to the correct side depending on the language direction.
133
+ * Otherwise, the content will have less space on both sides.
134
+ *
135
+ * LTR:
136
+ * The right side of the menu touches the screen edge. The safe area padding has
137
+ * already been set in the core styles, so there's no need to set it again.
138
+ * The left side of the menu is not touching the screen edge. Padding is not
139
+ * applied to the left side of the menu. A value of 0 is set.
140
+ */
82
141
  --ion-safe-area-left: 0px;
83
142
  top: 0;
84
143
  bottom: 0;
@@ -109,6 +168,41 @@
109
168
  }
110
169
  }
111
170
  }
171
+ :host-context([dir=rtl]):host(.menu-side-end) .menu-inner, :host-context([dir=rtl]).menu-side-end .menu-inner {
172
+ /**
173
+ * Menu does not cover the whole screen so we need to set the safe area for the
174
+ * side that touches the screen edge only. Since safe area is not logical, it
175
+ * needs to be applied to the correct side depending on the language direction.
176
+ * Otherwise, the content will have less space on both sides.
177
+ *
178
+ * RTL:
179
+ * The left side of the menu touches the screen edge. The safe area padding has
180
+ * already been set in the core styles, so there's no need to set it again.
181
+ * The right side of the menu is not touching the screen edge. Padding is not
182
+ * applied to the right side of the menu. A value of 0 is set.
183
+ */
184
+ --ion-safe-area-left: env(safe-area-inset-left);
185
+ --ion-safe-area-right: 0px;
186
+ }
187
+
188
+ @supports selector(:dir(rtl)) {
189
+ :host(.menu-side-end) .menu-inner:dir(rtl) {
190
+ /**
191
+ * Menu does not cover the whole screen so we need to set the safe area for the
192
+ * side that touches the screen edge only. Since safe area is not logical, it
193
+ * needs to be applied to the correct side depending on the language direction.
194
+ * Otherwise, the content will have less space on both sides.
195
+ *
196
+ * RTL:
197
+ * The left side of the menu touches the screen edge. The safe area padding has
198
+ * already been set in the core styles, so there's no need to set it again.
199
+ * The right side of the menu is not touching the screen edge. Padding is not
200
+ * applied to the right side of the menu. A value of 0 is set.
201
+ */
202
+ --ion-safe-area-left: env(safe-area-inset-left);
203
+ --ion-safe-area-right: 0px;
204
+ }
205
+ }
112
206
 
113
207
  ion-backdrop {
114
208
  display: none;
@@ -47,6 +47,18 @@
47
47
  }
48
48
 
49
49
  :host(.menu-side-start) .menu-inner {
50
+ /**
51
+ * Menu does not cover the whole screen so we need to set the safe area for the
52
+ * side that touches the screen edge only. Since safe area is not logical, it
53
+ * needs to be applied to the correct side depending on the language direction.
54
+ * Otherwise, the content will have less space on both sides.
55
+ *
56
+ * LTR:
57
+ * The left side of the menu touches the screen edge. The safe area padding has
58
+ * already been set in the core styles, so there's no need to set it again.
59
+ * The right side of the menu is not touching the screen edge. Padding is not
60
+ * applied to the right side of the menu. A value of 0 is set.
61
+ */
50
62
  --ion-safe-area-right: 0px;
51
63
  top: 0;
52
64
  bottom: 0;
@@ -77,8 +89,55 @@
77
89
  }
78
90
  }
79
91
  }
92
+ :host-context([dir=rtl]):host(.menu-side-start) .menu-inner, :host-context([dir=rtl]).menu-side-start .menu-inner {
93
+ /**
94
+ * Menu does not cover the whole screen so we need to set the safe area for the
95
+ * side that touches the screen edge only. Since safe area is not logical, it
96
+ * needs to be applied to the correct side depending on the language direction.
97
+ * Otherwise, the content will have less space on both sides.
98
+ *
99
+ * RTL:
100
+ * The right side of the menu touches the screen edge. The safe area padding has
101
+ * already been set in the core styles, so there's no need to set it again.
102
+ * The left side of the menu is not touching the screen edge. Padding is not
103
+ * applied to the left side of the menu. A value of 0 is set.
104
+ */
105
+ --ion-safe-area-right: env(safe-area-inset-right);
106
+ --ion-safe-area-left: 0px;
107
+ }
108
+
109
+ @supports selector(:dir(rtl)) {
110
+ :host(.menu-side-start) .menu-inner:dir(rtl) {
111
+ /**
112
+ * Menu does not cover the whole screen so we need to set the safe area for the
113
+ * side that touches the screen edge only. Since safe area is not logical, it
114
+ * needs to be applied to the correct side depending on the language direction.
115
+ * Otherwise, the content will have less space on both sides.
116
+ *
117
+ * RTL:
118
+ * The right side of the menu touches the screen edge. The safe area padding has
119
+ * already been set in the core styles, so there's no need to set it again.
120
+ * The left side of the menu is not touching the screen edge. Padding is not
121
+ * applied to the left side of the menu. A value of 0 is set.
122
+ */
123
+ --ion-safe-area-right: env(safe-area-inset-right);
124
+ --ion-safe-area-left: 0px;
125
+ }
126
+ }
80
127
 
81
128
  :host(.menu-side-end) .menu-inner {
129
+ /**
130
+ * Menu does not cover the whole screen so we need to set the safe area for the
131
+ * side that touches the screen edge only. Since safe area is not logical, it
132
+ * needs to be applied to the correct side depending on the language direction.
133
+ * Otherwise, the content will have less space on both sides.
134
+ *
135
+ * LTR:
136
+ * The right side of the menu touches the screen edge. The safe area padding has
137
+ * already been set in the core styles, so there's no need to set it again.
138
+ * The left side of the menu is not touching the screen edge. Padding is not
139
+ * applied to the left side of the menu. A value of 0 is set.
140
+ */
82
141
  --ion-safe-area-left: 0px;
83
142
  top: 0;
84
143
  bottom: 0;
@@ -109,6 +168,41 @@
109
168
  }
110
169
  }
111
170
  }
171
+ :host-context([dir=rtl]):host(.menu-side-end) .menu-inner, :host-context([dir=rtl]).menu-side-end .menu-inner {
172
+ /**
173
+ * Menu does not cover the whole screen so we need to set the safe area for the
174
+ * side that touches the screen edge only. Since safe area is not logical, it
175
+ * needs to be applied to the correct side depending on the language direction.
176
+ * Otherwise, the content will have less space on both sides.
177
+ *
178
+ * RTL:
179
+ * The left side of the menu touches the screen edge. The safe area padding has
180
+ * already been set in the core styles, so there's no need to set it again.
181
+ * The right side of the menu is not touching the screen edge. Padding is not
182
+ * applied to the right side of the menu. A value of 0 is set.
183
+ */
184
+ --ion-safe-area-left: env(safe-area-inset-left);
185
+ --ion-safe-area-right: 0px;
186
+ }
187
+
188
+ @supports selector(:dir(rtl)) {
189
+ :host(.menu-side-end) .menu-inner:dir(rtl) {
190
+ /**
191
+ * Menu does not cover the whole screen so we need to set the safe area for the
192
+ * side that touches the screen edge only. Since safe area is not logical, it
193
+ * needs to be applied to the correct side depending on the language direction.
194
+ * Otherwise, the content will have less space on both sides.
195
+ *
196
+ * RTL:
197
+ * The left side of the menu touches the screen edge. The safe area padding has
198
+ * already been set in the core styles, so there's no need to set it again.
199
+ * The right side of the menu is not touching the screen edge. Padding is not
200
+ * applied to the right side of the menu. A value of 0 is set.
201
+ */
202
+ --ion-safe-area-left: env(safe-area-inset-left);
203
+ --ion-safe-area-right: 0px;
204
+ }
205
+ }
112
206
 
113
207
  ion-backdrop {
114
208
  display: none;
@@ -23,13 +23,11 @@
23
23
  --opacity-scale: 1;
24
24
  -moz-osx-font-smoothing: grayscale;
25
25
  -webkit-font-smoothing: antialiased;
26
- -webkit-padding-start: var(--ion-safe-area-left);
27
- padding-inline-start: var(--ion-safe-area-left);
28
- -webkit-padding-end: var(--ion-safe-area-right);
29
- padding-inline-end: var(--ion-safe-area-right);
30
26
  display: block;
31
27
  position: relative;
32
28
  width: 100%;
29
+ padding-right: var(--ion-safe-area-right);
30
+ padding-left: var(--ion-safe-area-left);
33
31
  color: var(--color);
34
32
  font-family: var(--ion-font-family, inherit);
35
33
  contain: content;
@@ -23,13 +23,11 @@
23
23
  --opacity-scale: 1;
24
24
  -moz-osx-font-smoothing: grayscale;
25
25
  -webkit-font-smoothing: antialiased;
26
- -webkit-padding-start: var(--ion-safe-area-left);
27
- padding-inline-start: var(--ion-safe-area-left);
28
- -webkit-padding-end: var(--ion-safe-area-right);
29
- padding-inline-end: var(--ion-safe-area-right);
30
26
  display: block;
31
27
  position: relative;
32
28
  width: 100%;
29
+ padding-right: var(--ion-safe-area-right);
30
+ padding-left: var(--ion-safe-area-left);
33
31
  color: var(--color);
34
32
  font-family: var(--ion-font-family, inherit);
35
33
  contain: content;
@@ -20,6 +20,68 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
20
20
  * Resize info is available on Capacitor 4+
21
21
  */
22
22
  const addScrollPadding = enableScrollPadding && (keyboardResize === undefined || keyboardResize.mode === KeyboardResize.None);
23
+ /**
24
+ * This tracks whether or not the keyboard has been
25
+ * presented for a single focused text field. Note
26
+ * that it does not track if the keyboard is open
27
+ * in general such as if the keyboard is open for
28
+ * a different focused text field.
29
+ */
30
+ let hasKeyboardBeenPresentedForTextField = false;
31
+ /**
32
+ * Scroll assist is run when a text field
33
+ * is focused. However, it may need to
34
+ * re-run when the keyboard size changes
35
+ * such that the text field is now hidden
36
+ * underneath the keyboard.
37
+ * This function re-runs scroll assist
38
+ * when that happens.
39
+ *
40
+ * One limitation of this is on a web browser
41
+ * where native keyboard APIs do not have cross-browser
42
+ * support. `ionKeyboardDidShow` relies on the Visual Viewport API.
43
+ * This means that if the keyboard changes but does not change
44
+ * geometry, then scroll assist will not re-run even if
45
+ * the user has scrolled the text field under the keyboard.
46
+ * This should not be a problem when running in Cordova/Capacitor
47
+ * because `ionKeyboardDidShow` uses the native events
48
+ * which fire every time the keyboard changes.
49
+ */
50
+ const keyboardShow = (ev) => {
51
+ /**
52
+ * If the keyboard has not yet been presented
53
+ * for this text field then the text field has just
54
+ * received focus. In that case, the focusin listener
55
+ * will run scroll assist.
56
+ */
57
+ if (hasKeyboardBeenPresentedForTextField === false) {
58
+ hasKeyboardBeenPresentedForTextField = true;
59
+ return;
60
+ }
61
+ /**
62
+ * Otherwise, the keyboard has already been presented
63
+ * for the focused text field.
64
+ * This means that the keyboard likely changed
65
+ * geometry, and we need to re-run scroll assist.
66
+ * This can happen when the user rotates their device
67
+ * or when they switch keyboards.
68
+ *
69
+ * Make sure we pass in the computed keyboard height
70
+ * rather than the estimated keyboard height.
71
+ *
72
+ * Since the keyboard is already open then we do not
73
+ * need to wait for the webview to resize, so we pass
74
+ * "waitForResize: false".
75
+ */
76
+ jsSetFocus(componentEl, inputEl, contentEl, footerEl, ev.detail.keyboardHeight, addScrollPadding, disableClonedInput, false);
77
+ };
78
+ /**
79
+ * Reset the internal state when the text field loses focus.
80
+ */
81
+ const focusOut = () => {
82
+ hasKeyboardBeenPresentedForTextField = false;
83
+ window.removeEventListener('ionKeyboardDidShow', keyboardShow);
84
+ };
23
85
  /**
24
86
  * When the input is about to receive
25
87
  * focus, we need to move it to prevent
@@ -37,10 +99,22 @@ export const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, ke
37
99
  return;
38
100
  }
39
101
  jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput);
102
+ /**
103
+ * Listen for any changes to the keyboard
104
+ * dimensions in case we need to re-run scroll assist.
105
+ */
106
+ window.addEventListener('ionKeyboardDidShow', keyboardShow);
107
+ componentEl.addEventListener('focusout', focusOut, true);
40
108
  };
41
109
  componentEl.addEventListener('focusin', focusIn, true);
110
+ /**
111
+ * Scroll assist is being destroyed for this
112
+ * text field instance, so remove any remaining listeners.
113
+ */
42
114
  return () => {
43
115
  componentEl.removeEventListener('focusin', focusIn, true);
116
+ window.removeEventListener('ionKeyboardDidShow', keyboardShow);
117
+ componentEl.removeEventListener('focusout', focusOut, true);
44
118
  };
45
119
  };
46
120
  /**
@@ -59,7 +133,7 @@ const setManualFocus = (el) => {
59
133
  el.setAttribute(SKIP_SCROLL_ASSIST, 'true');
60
134
  el.focus();
61
135
  };
62
- const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false) => {
136
+ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false, waitForResize = true) => {
63
137
  if (!contentEl && !footerEl) {
64
138
  return;
65
139
  }
@@ -150,7 +224,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
150
224
  * bandwidth to become available.
151
225
  */
152
226
  const totalScrollAmount = scrollEl.scrollHeight - scrollEl.clientHeight;
153
- if (scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
227
+ if (waitForResize && scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
154
228
  /**
155
229
  * On iOS devices, the system will show a "Passwords" bar above the keyboard
156
230
  * after the initial keyboard is shown. This prevents the webview from resizing
package/dist/docs.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
- "timestamp": "2023-09-12T15:55:54",
2
+ "timestamp": "2023-09-12T18:10:21",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.2.0",
5
+ "version": "4.2.1",
6
6
  "typescriptVersion": "5.1.6"
7
7
  },
8
8
  "components": [
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-1ef19007.js';
4
+ import { i as initialize } from './ionic-global-9080266a.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-847f2fde.js';
4
+ import { w as writeTask } from './index-adfb2000.js';
5
5
  import { h as hapticSelectionEnd, a as hapticSelectionStart, b as hapticSelectionChanged } from './haptic-6447af60.js';
6
6
  import { createGesture } from './index-ff313b19.js';
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask, B as Build } from './index-847f2fde.js';
4
+ import { w as writeTask, B as Build } from './index-adfb2000.js';
5
5
  import { r as raf } from './helpers-3379ba19.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
@@ -10,8 +10,8 @@ const LIFECYCLE_WILL_LEAVE = 'ionViewWillLeave';
10
10
  const LIFECYCLE_DID_LEAVE = 'ionViewDidLeave';
11
11
  const LIFECYCLE_WILL_UNLOAD = 'ionViewWillUnload';
12
12
 
13
- const iosTransitionAnimation = () => import('./ios.transition-3137d23e.js');
14
- const mdTransitionAnimation = () => import('./md.transition-48b3b77c.js');
13
+ const iosTransitionAnimation = () => import('./ios.transition-f43871cd.js');
14
+ const mdTransitionAnimation = () => import('./md.transition-12d21ad0.js');
15
15
  // TODO(FW-2832): types
16
16
  const transition = (opts) => {
17
17
  return new Promise((resolve, reject) => {
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-39299f84.js';
5
5
  import { c as componentOnReady } from './helpers-3379ba19.js';
6
- import { b as getIonMode } from './ionic-global-1ef19007.js';
6
+ import { b as getIonMode } from './ionic-global-9080266a.js';
7
7
  import { c as createAnimation } from './animation-a1d9e088.js';
8
8
 
9
9
  /**
@@ -131,13 +131,13 @@ const h = (nodeName, vnodeData, ...children) => {
131
131
  };
132
132
  walk(children);
133
133
  if (vnodeData) {
134
- // normalize class / classname attributes
135
134
  if (vnodeData.key) {
136
135
  key = vnodeData.key;
137
136
  }
138
137
  if (vnodeData.name) {
139
138
  slotName = vnodeData.name;
140
139
  }
140
+ // normalize class / className attributes
141
141
  {
142
142
  const classData = vnodeData.className || vnodeData.class;
143
143
  if (classData) {
@@ -383,7 +383,7 @@ const clientHydrate = (parentVNode, childRenderNodes, slotNodes, shadowRootNodes
383
383
  }
384
384
  }
385
385
  else if (childVNode.$hostId$ === hostId) {
386
- // this comment node is specifcally for this host id
386
+ // this comment node is specifically for this host id
387
387
  if (childNodeType === SLOT_NODE_ID) {
388
388
  // `${SLOT_NODE_ID}.${hostId}.${nodeId}.${depth}.${index}.${slotName}`;
389
389
  childVNode.$tag$ = 'slot';
@@ -1610,7 +1610,7 @@ const renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {
1610
1610
  // has a different next sibling or parent relocated
1611
1611
  if (nodeToRelocate !== insertBeforeNode) {
1612
1612
  if (!nodeToRelocate['s-hn'] && nodeToRelocate['s-ol']) {
1613
- // probably a component in the index.html that doesn't have it's hostname set
1613
+ // probably a component in the index.html that doesn't have its hostname set
1614
1614
  nodeToRelocate['s-hn'] = nodeToRelocate['s-ol'].parentNode.nodeName;
1615
1615
  }
1616
1616
  // add it back to the dom but in its new home
@@ -2014,12 +2014,12 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
2014
2014
  // customElements.define('my-component', MyComponent);
2015
2015
  // </script>
2016
2016
  // ```
2017
- // In this case if we do not unshadow here and use the value of the shadowing property, attributeChangedCallback
2017
+ // In this case if we do not un-shadow here and use the value of the shadowing property, attributeChangedCallback
2018
2018
  // will be called with `newValue = "some-value"` and will set the shadowed property (this.someAttribute = "another-value")
2019
2019
  // to the value that was set inline i.e. "some-value" from above example. When
2020
- // the connectedCallback attempts to unshadow it will use "some-value" as the initial value rather than "another-value"
2020
+ // the connectedCallback attempts to un-shadow it will use "some-value" as the initial value rather than "another-value"
2021
2021
  //
2022
- // The case where the attribute was NOT set inline but was not set programmatically shall be handled/unshadowed
2022
+ // The case where the attribute was NOT set inline but was not set programmatically shall be handled/un-shadowed
2023
2023
  // by connectedCallback as this attributeChangedCallback will not fire.
2024
2024
  //
2025
2025
  // https://developers.google.com/web/fundamentals/web-components/best-practices#lazy-properties
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- /* Ionicons v7.1.3-dev.11694468279.1c23df00, ES Modules */
4
+ /* Ionicons v7.1.0, ES Modules */
5
5
  const arrowBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='square' stroke-miterlimit='10' stroke-width='48' d='M244 400L100 256l144-144M120 256h292' class='ionicon-fill-none'/></svg>";
6
6
  const arrowDown = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path stroke-linecap='round' stroke-linejoin='round' stroke-width='48' d='M112 268l144 144 144-144M256 392V100' class='ionicon-fill-none'/></svg>";
7
7
  const caretBackSharp = "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' class='ionicon' viewBox='0 0 512 512'><path d='M368 64L144 256l224 192V64z'/></svg>";
package/dist/esm/index.js CHANGED
@@ -2,19 +2,19 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  export { c as createAnimation } from './animation-a1d9e088.js';
5
- export { iosTransitionAnimation } from './ios.transition-3137d23e.js';
6
- export { mdTransitionAnimation } from './md.transition-48b3b77c.js';
5
+ export { iosTransitionAnimation } from './ios.transition-f43871cd.js';
6
+ export { mdTransitionAnimation } from './md.transition-12d21ad0.js';
7
7
  export { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
8
8
  export { createGesture } from './index-ff313b19.js';
9
- export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-1ef19007.js';
9
+ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-9080266a.js';
10
10
  export { c as componentOnReady } from './helpers-3379ba19.js';
11
11
  export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-96c9ace3.js';
12
- export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD } from './index-6391de89.js';
13
- export { m as menuController } from './index-b3e05099.js';
14
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-e1dadfe6.js';
12
+ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD } from './index-01839411.js';
13
+ export { m as menuController } from './index-48f5e259.js';
14
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-4565894b.js';
15
15
  import './index-7a14ecec.js';
16
16
  import './gesture-controller-0fa396c4.js';
17
- import './index-847f2fde.js';
17
+ import './index-adfb2000.js';
18
18
  import './hardware-back-button-39299f84.js';
19
19
  import './framework-delegate-aa433dea.js';
20
20
  import './index-595d62c9.js';
@@ -256,6 +256,68 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
256
256
  * Resize info is available on Capacitor 4+
257
257
  */
258
258
  const addScrollPadding = enableScrollPadding && (keyboardResize === undefined || keyboardResize.mode === KeyboardResize.None);
259
+ /**
260
+ * This tracks whether or not the keyboard has been
261
+ * presented for a single focused text field. Note
262
+ * that it does not track if the keyboard is open
263
+ * in general such as if the keyboard is open for
264
+ * a different focused text field.
265
+ */
266
+ let hasKeyboardBeenPresentedForTextField = false;
267
+ /**
268
+ * Scroll assist is run when a text field
269
+ * is focused. However, it may need to
270
+ * re-run when the keyboard size changes
271
+ * such that the text field is now hidden
272
+ * underneath the keyboard.
273
+ * This function re-runs scroll assist
274
+ * when that happens.
275
+ *
276
+ * One limitation of this is on a web browser
277
+ * where native keyboard APIs do not have cross-browser
278
+ * support. `ionKeyboardDidShow` relies on the Visual Viewport API.
279
+ * This means that if the keyboard changes but does not change
280
+ * geometry, then scroll assist will not re-run even if
281
+ * the user has scrolled the text field under the keyboard.
282
+ * This should not be a problem when running in Cordova/Capacitor
283
+ * because `ionKeyboardDidShow` uses the native events
284
+ * which fire every time the keyboard changes.
285
+ */
286
+ const keyboardShow = (ev) => {
287
+ /**
288
+ * If the keyboard has not yet been presented
289
+ * for this text field then the text field has just
290
+ * received focus. In that case, the focusin listener
291
+ * will run scroll assist.
292
+ */
293
+ if (hasKeyboardBeenPresentedForTextField === false) {
294
+ hasKeyboardBeenPresentedForTextField = true;
295
+ return;
296
+ }
297
+ /**
298
+ * Otherwise, the keyboard has already been presented
299
+ * for the focused text field.
300
+ * This means that the keyboard likely changed
301
+ * geometry, and we need to re-run scroll assist.
302
+ * This can happen when the user rotates their device
303
+ * or when they switch keyboards.
304
+ *
305
+ * Make sure we pass in the computed keyboard height
306
+ * rather than the estimated keyboard height.
307
+ *
308
+ * Since the keyboard is already open then we do not
309
+ * need to wait for the webview to resize, so we pass
310
+ * "waitForResize: false".
311
+ */
312
+ jsSetFocus(componentEl, inputEl, contentEl, footerEl, ev.detail.keyboardHeight, addScrollPadding, disableClonedInput, false);
313
+ };
314
+ /**
315
+ * Reset the internal state when the text field loses focus.
316
+ */
317
+ const focusOut = () => {
318
+ hasKeyboardBeenPresentedForTextField = false;
319
+ window.removeEventListener('ionKeyboardDidShow', keyboardShow);
320
+ };
259
321
  /**
260
322
  * When the input is about to receive
261
323
  * focus, we need to move it to prevent
@@ -273,10 +335,22 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
273
335
  return;
274
336
  }
275
337
  jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput);
338
+ /**
339
+ * Listen for any changes to the keyboard
340
+ * dimensions in case we need to re-run scroll assist.
341
+ */
342
+ window.addEventListener('ionKeyboardDidShow', keyboardShow);
343
+ componentEl.addEventListener('focusout', focusOut, true);
276
344
  };
277
345
  componentEl.addEventListener('focusin', focusIn, true);
346
+ /**
347
+ * Scroll assist is being destroyed for this
348
+ * text field instance, so remove any remaining listeners.
349
+ */
278
350
  return () => {
279
351
  componentEl.removeEventListener('focusin', focusIn, true);
352
+ window.removeEventListener('ionKeyboardDidShow', keyboardShow);
353
+ componentEl.removeEventListener('focusout', focusOut, true);
280
354
  };
281
355
  };
282
356
  /**
@@ -295,7 +369,7 @@ const setManualFocus = (el) => {
295
369
  el.setAttribute(SKIP_SCROLL_ASSIST, 'true');
296
370
  el.focus();
297
371
  };
298
- const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false) => {
372
+ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false, waitForResize = true) => {
299
373
  if (!contentEl && !footerEl) {
300
374
  return;
301
375
  }
@@ -386,7 +460,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
386
460
  * bandwidth to become available.
387
461
  */
388
462
  const totalScrollAmount = scrollEl.scrollHeight - scrollEl.clientHeight;
389
- if (scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
463
+ if (waitForResize && scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
390
464
  /**
391
465
  * On iOS devices, the system will show a "Passwords" bar above the keyboard
392
466
  * after the initial keyboard is shown. This prevents the webview from resizing
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-847f2fde.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-adfb2000.js';
5
5
  import { r as raf, t as transitionEndAsync, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers-3379ba19.js';
6
- import { l as chevronDown } from './index-87d8642c.js';
7
- import { c as config, b as getIonMode } from './ionic-global-1ef19007.js';
6
+ import { l as chevronDown } from './index-ecfc2c9f.js';
7
+ import { c as config, b as getIonMode } from './ionic-global-9080266a.js';
8
8
  import { p as printIonWarning } from './index-595d62c9.js';
9
9
 
10
10
  const accordionIosCss = ":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}";