@pod-os/elements 0.7.0 → 0.7.1-2196a40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (409) hide show
  1. package/dist/cjs/{animation-5840e4df.js → animation-9bea118f.js} +115 -84
  2. package/dist/cjs/{app-globals-1aedd05c.js → app-globals-6352043e.js} +1 -1
  3. package/dist/cjs/{cubic-bezier-dcb7bfef.js → cubic-bezier-0b702a31.js} +13 -12
  4. package/dist/cjs/data-0c9489d7.js +1510 -0
  5. package/dist/cjs/dir-011f46ea.js +20 -0
  6. package/dist/cjs/elements.cjs.js +4 -4
  7. package/dist/cjs/focus-visible-2624ec15.js +76 -0
  8. package/dist/cjs/framework-delegate-437c0645.js +119 -0
  9. package/dist/cjs/{gesture-controller-fbbe9a65.js → gesture-controller-00a6b02f.js} +6 -2
  10. package/dist/cjs/{haptic-09e73337.js → haptic-7358cb0b.js} +37 -8
  11. package/dist/cjs/{hardware-back-button-01027575.js → hardware-back-button-25372ec7.js} +11 -8
  12. package/dist/cjs/{helpers-398ced09.js → helpers-cb08f5ae.js} +115 -15
  13. package/dist/cjs/{index-2067b305.js → index-1b07c737.js} +35 -24
  14. package/dist/cjs/{index-68ae43d2.js → index-2dc3637c.js} +34 -28
  15. package/dist/cjs/index-57b9fa9e.js +30 -0
  16. package/dist/cjs/{index-d01d9183.js → index-643851c6.js} +34 -19
  17. package/dist/cjs/index-731691ca.js +48 -0
  18. package/dist/cjs/{index-6bbae9b1.js → index-7d56774d.js} +12 -8
  19. package/dist/cjs/index-9fca5d6f.js +140 -0
  20. package/dist/cjs/index-b2a479e4.js +38 -0
  21. package/dist/cjs/{index-b4a9ece2.js → index-eaa0d16e.js} +7 -0
  22. package/dist/cjs/{tap-click-f24cb477.js → index-ed2ce04f.js} +37 -19
  23. package/dist/cjs/{input-shims-e959d9e2.js → input-shims-427999f7.js} +89 -38
  24. package/dist/cjs/ion-accordion-group.cjs.entry.js +205 -0
  25. package/dist/cjs/ion-accordion.cjs.entry.js +336 -0
  26. package/dist/cjs/ion-action-sheet_3.cjs.entry.js +865 -0
  27. package/dist/cjs/{ion-app_45.cjs.entry.js → ion-app_46.cjs.entry.js} +1694 -1406
  28. package/dist/cjs/ion-avatar.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-back-button.cjs.entry.js +12 -11
  30. package/dist/cjs/ion-backdrop.cjs.entry.js +4 -4
  31. package/dist/cjs/ion-breadcrumb.cjs.entry.js +101 -0
  32. package/dist/cjs/ion-breadcrumbs.cjs.entry.js +133 -0
  33. package/dist/cjs/ion-buttons_3.cjs.entry.js +793 -0
  34. package/dist/cjs/ion-card-subtitle.cjs.entry.js +4 -4
  35. package/dist/cjs/{ion-list-header_3.cjs.entry.js → ion-checkbox_4.cjs.entry.js} +124 -23
  36. package/dist/cjs/ion-chip.cjs.entry.js +5 -10
  37. package/dist/cjs/ion-datetime-button.cjs.entry.js +346 -0
  38. package/dist/cjs/ion-datetime.cjs.entry.js +1548 -856
  39. package/dist/cjs/ion-fab-button.cjs.entry.js +26 -9
  40. package/dist/cjs/ion-fab-list.cjs.entry.js +4 -4
  41. package/dist/cjs/ion-fab.cjs.entry.js +15 -13
  42. package/dist/cjs/ion-img.cjs.entry.js +28 -4
  43. package/dist/cjs/ion-infinite-scroll-content.cjs.entry.js +5 -5
  44. package/dist/cjs/ion-infinite-scroll.cjs.entry.js +13 -13
  45. package/dist/cjs/ion-input.cjs.entry.js +57 -23
  46. package/dist/cjs/ion-item-option.cjs.entry.js +8 -8
  47. package/dist/cjs/ion-item-options.cjs.entry.js +5 -5
  48. package/dist/cjs/ion-item-sliding.cjs.entry.js +59 -63
  49. package/dist/cjs/ion-loading.cjs.entry.js +37 -36
  50. package/dist/cjs/ion-menu-button.cjs.entry.js +14 -12
  51. package/dist/cjs/ion-menu-toggle.cjs.entry.js +8 -7
  52. package/dist/cjs/ion-menu.cjs.entry.js +71 -57
  53. package/dist/cjs/ion-modal.cjs.entry.js +1384 -154
  54. package/dist/cjs/ion-nav-link.cjs.entry.js +5 -2
  55. package/dist/cjs/ion-nav.cjs.entry.js +177 -171
  56. package/dist/cjs/ion-picker-column.cjs.entry.js +25 -27
  57. package/dist/cjs/ion-picker.cjs.entry.js +22 -17
  58. package/dist/cjs/ion-popover.cjs.entry.js +1208 -182
  59. package/dist/cjs/ion-range.cjs.entry.js +137 -57
  60. package/dist/cjs/ion-refresher-content.cjs.entry.js +7 -12
  61. package/dist/cjs/ion-refresher.cjs.entry.js +150 -148
  62. package/dist/cjs/ion-reorder-group.cjs.entry.js +42 -35
  63. package/dist/cjs/ion-reorder.cjs.entry.js +5 -4
  64. package/dist/cjs/ion-route-redirect.cjs.entry.js +1 -1
  65. package/dist/cjs/ion-route.cjs.entry.js +1 -1
  66. package/dist/cjs/ion-router-link.cjs.entry.js +5 -5
  67. package/dist/cjs/ion-router-outlet.cjs.entry.js +24 -20
  68. package/dist/cjs/ion-router.cjs.entry.js +291 -194
  69. package/dist/cjs/ion-segment-button.cjs.entry.js +10 -17
  70. package/dist/cjs/ion-segment.cjs.entry.js +119 -26
  71. package/dist/cjs/ion-select-option.cjs.entry.js +3 -3
  72. package/dist/cjs/ion-select.cjs.entry.js +113 -78
  73. package/dist/cjs/ion-slide.cjs.entry.js +3 -3
  74. package/dist/cjs/ion-slides.cjs.entry.js +26 -27
  75. package/dist/cjs/ion-spinner.cjs.entry.js +10 -9
  76. package/dist/cjs/ion-split-pane.cjs.entry.js +16 -12
  77. package/dist/cjs/ion-tab-bar.cjs.entry.js +16 -23
  78. package/dist/cjs/ion-tab-button.cjs.entry.js +6 -6
  79. package/dist/cjs/ion-tab.cjs.entry.js +4 -4
  80. package/dist/cjs/ion-tabs.cjs.entry.js +4 -5
  81. package/dist/cjs/ion-text.cjs.entry.js +3 -3
  82. package/dist/cjs/ion-textarea.cjs.entry.js +31 -29
  83. package/dist/cjs/ion-thumbnail.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-toast.cjs.entry.js +49 -59
  85. package/dist/cjs/ion-toggle.cjs.entry.js +41 -22
  86. package/dist/cjs/ion-virtual-scroll.cjs.entry.js +39 -31
  87. package/dist/cjs/{ionic-global-56e10eb5.js → ionic-global-f2d95fd3.js} +112 -93
  88. package/dist/cjs/{ios.transition-32e4623d.js → ios.transition-0f31ec9a.js} +78 -53
  89. package/dist/cjs/{keyboard-9e8103e4.js → keyboard-79afcba2.js} +6 -3
  90. package/dist/cjs/keyboard-controller-a934d106.js +42 -0
  91. package/dist/cjs/loader.cjs.js +4 -4
  92. package/dist/cjs/{md.transition-169c54f0.js → md.transition-d2a33a23.js} +15 -17
  93. package/dist/cjs/{menu-toggle-util-087678e0.js → menu-toggle-util-0a43ff7c.js} +5 -2
  94. package/dist/cjs/{overlays-49fe9ba7.js → overlays-65c716aa.js} +187 -71
  95. package/dist/cjs/spinner-configs-cd0abbeb.js +147 -0
  96. package/dist/cjs/{status-tap-ada894ff.js → status-tap-beaa3a71.js} +10 -5
  97. package/dist/cjs/{swipe-back-c4a778df.js → swipe-back-666ea8e6.js} +34 -15
  98. package/dist/cjs/test-component.cjs.entry.js +1 -1
  99. package/dist/cjs/{theme-2259d0f5.js → theme-fc63803b.js} +9 -5
  100. package/dist/collection/collection-manifest.json +7 -0
  101. package/dist/custom-elements/index.js +12689 -4785
  102. package/dist/custom-elements/{tap-click.js → index2.js} +36 -18
  103. package/dist/custom-elements/input-shims.js +87 -38
  104. package/dist/custom-elements/ios.transition.js +74 -50
  105. package/dist/custom-elements/md.transition.js +11 -14
  106. package/dist/custom-elements/status-tap.js +7 -4
  107. package/dist/custom-elements/swipe-back.js +31 -13
  108. package/dist/elements/elements.css +1 -1
  109. package/dist/elements/elements.esm.js +1 -1
  110. package/dist/elements/p-0268cbd3.entry.js +7 -0
  111. package/dist/elements/p-0587332d.entry.js +1 -0
  112. package/dist/elements/{p-cfc0e54d.js → p-0991c811.js} +3 -0
  113. package/dist/elements/p-0a69a563.entry.js +1 -0
  114. package/dist/elements/p-0b95be17.entry.js +1 -0
  115. package/dist/elements/p-0d284fe0.entry.js +1 -0
  116. package/dist/elements/p-0fd77b33.entry.js +1 -0
  117. package/dist/elements/p-120dec2b.entry.js +1 -0
  118. package/dist/elements/p-12880671.entry.js +1 -0
  119. package/dist/elements/p-14ccd586.entry.js +1 -0
  120. package/dist/elements/{p-83d45051.entry.js → p-14df6ac0.entry.js} +1 -1
  121. package/dist/elements/{p-e860be6a.entry.js → p-17079f06.entry.js} +1 -1
  122. package/dist/elements/p-19e4a688.js +4 -0
  123. package/dist/elements/p-1afc4eb4.js +4 -0
  124. package/dist/elements/p-1beaf6bf.js +4 -0
  125. package/dist/elements/p-1d1c6a6f.entry.js +1 -0
  126. package/dist/elements/{p-31d30e42.entry.js → p-1d98f84b.entry.js} +1 -1
  127. package/dist/elements/p-278ca4c9.js +4 -0
  128. package/dist/elements/p-27f5629c.entry.js +1 -0
  129. package/dist/elements/p-29c0f03f.js +4 -0
  130. package/dist/elements/p-2da59aca.js +4 -0
  131. package/dist/elements/p-3152143f.js +4 -0
  132. package/dist/elements/p-343ff720.entry.js +7 -0
  133. package/dist/elements/p-36d4c9a8.js +4 -0
  134. package/dist/elements/p-3a30dfb2.entry.js +1 -0
  135. package/dist/elements/p-3c013bf1.entry.js +1 -0
  136. package/dist/elements/{p-74ba1e42.entry.js → p-3c318da5.entry.js} +1 -1
  137. package/dist/elements/p-3cee3222.entry.js +1 -0
  138. package/dist/elements/p-480b3c4f.entry.js +1 -0
  139. package/dist/elements/p-4e9d8f18.entry.js +1 -0
  140. package/dist/elements/p-53e23176.js +2 -0
  141. package/dist/elements/p-548524f3.js +4 -0
  142. package/dist/elements/p-5739fa41.entry.js +1 -0
  143. package/dist/elements/p-5808c505.js +1 -0
  144. package/dist/elements/p-58a8cc2a.js +4 -0
  145. package/dist/elements/p-6035415e.entry.js +1 -0
  146. package/dist/elements/p-60eeae90.js +4 -0
  147. package/dist/elements/p-610b03ff.entry.js +4 -0
  148. package/dist/elements/p-67777478.entry.js +1 -0
  149. package/dist/elements/p-6ab826e1.entry.js +1 -0
  150. package/dist/elements/p-6f5a2827.entry.js +1 -0
  151. package/dist/elements/p-779676c5.entry.js +1 -0
  152. package/dist/elements/p-7916ecc5.entry.js +1 -0
  153. package/dist/elements/p-79f06b80.entry.js +1 -0
  154. package/dist/elements/p-7b5991c1.entry.js +1 -0
  155. package/dist/elements/p-7d0def79.js +5 -0
  156. package/dist/elements/p-8112afea.js +4 -0
  157. package/dist/elements/p-83678d7d.entry.js +4 -0
  158. package/dist/elements/p-87e45c94.entry.js +1 -0
  159. package/dist/elements/p-8da6a31e.entry.js +1 -0
  160. package/dist/elements/p-8f80768f.entry.js +4 -0
  161. package/dist/elements/p-8fe0433b.js +4 -0
  162. package/dist/elements/{p-4cb27b48.entry.js → p-9147d82b.entry.js} +1 -1
  163. package/dist/elements/p-97abb434.entry.js +1 -0
  164. package/dist/elements/p-98497a4b.entry.js +1 -0
  165. package/dist/elements/p-9c719139.js +4 -0
  166. package/dist/elements/p-9ca37332.js +4 -0
  167. package/dist/elements/{p-37de7110.js → p-9d48def2.js} +3 -0
  168. package/dist/elements/p-a79a6ad9.entry.js +79 -0
  169. package/dist/elements/p-a805f2f9.entry.js +1 -0
  170. package/dist/elements/p-a86a5bfa.entry.js +1 -0
  171. package/dist/elements/{p-9c1dbe52.entry.js → p-ac34eab7.entry.js} +1 -1
  172. package/dist/elements/p-ad366eab.entry.js +4 -0
  173. package/dist/elements/p-aef3a931.js +7 -0
  174. package/dist/elements/p-b0537eb3.entry.js +1 -0
  175. package/dist/elements/p-b337f3b8.js +4 -0
  176. package/dist/elements/p-b34bf73f.entry.js +7 -0
  177. package/dist/elements/p-b41e66f0.entry.js +1 -0
  178. package/dist/elements/p-b47e7091.entry.js +1 -0
  179. package/dist/elements/p-b840320e.js +4 -0
  180. package/dist/elements/p-b934ac5d.entry.js +1 -0
  181. package/dist/elements/p-b98314e0.entry.js +4 -0
  182. package/dist/elements/p-bd12806f.entry.js +1 -0
  183. package/dist/elements/p-c16d38d5.js +4 -0
  184. package/dist/elements/p-c84205a3.js +4 -0
  185. package/dist/elements/{p-06675ac7.entry.js → p-cbe318f8.entry.js} +1 -1
  186. package/dist/elements/p-cfed7395.js +4 -0
  187. package/dist/elements/p-d22a1dc7.entry.js +7 -0
  188. package/dist/elements/p-d3e75c94.entry.js +1 -0
  189. package/dist/elements/p-d8f6d3ce.entry.js +14 -0
  190. package/dist/elements/p-d9880221.entry.js +4 -0
  191. package/dist/elements/p-da5db8fb.entry.js +1 -0
  192. package/dist/elements/{p-91fe653f.js → p-dcc6b03c.js} +3 -0
  193. package/dist/elements/{p-305e246c.entry.js → p-dd846020.entry.js} +1 -1
  194. package/dist/elements/p-df240b2a.entry.js +4 -0
  195. package/dist/elements/p-dffd8689.js +4 -0
  196. package/dist/elements/p-e495a095.js +4 -0
  197. package/dist/elements/p-e5fc7d42.entry.js +1 -0
  198. package/dist/elements/{p-aaa8393e.entry.js → p-eb137e9d.entry.js} +1 -1
  199. package/dist/elements/p-f4e54a17.js +7 -0
  200. package/dist/elements/p-f67d0717.entry.js +1 -0
  201. package/dist/elements/p-f7f4c640.js +1 -0
  202. package/dist/elements/p-f851b91a.js +4 -0
  203. package/dist/elements/p-fb27ee76.entry.js +1 -0
  204. package/dist/elements/p-fbddca35.entry.js +1 -0
  205. package/dist/elements/p-fc1df8e0.entry.js +7 -0
  206. package/dist/elements/p-fdac5f3a.js +4 -0
  207. package/dist/esm/{animation-fe6ed422.js → animation-801a007a.js} +115 -84
  208. package/dist/esm/{app-globals-27d92837.js → app-globals-05a3abfb.js} +1 -1
  209. package/dist/esm/{cubic-bezier-108b8579.js → cubic-bezier-538b6253.js} +13 -12
  210. package/dist/esm/data-62c81c24.js +1463 -0
  211. package/dist/esm/dir-defb16c6.js +18 -0
  212. package/dist/esm/elements.js +4 -4
  213. package/dist/esm/focus-visible-78d55799.js +74 -0
  214. package/dist/esm/framework-delegate-7e2b767b.js +115 -0
  215. package/dist/esm/{gesture-controller-8f35af24.js → gesture-controller-c466ff14.js} +6 -2
  216. package/dist/esm/{haptic-c424e670.js → haptic-e7d5ef4d.js} +38 -9
  217. package/dist/esm/{hardware-back-button-bb4c578a.js → hardware-back-button-242191a7.js} +11 -8
  218. package/dist/esm/{helpers-44e3bd9f.js → helpers-aeff219b.js} +113 -16
  219. package/dist/esm/index-0dbaca1a.js +28 -0
  220. package/dist/esm/index-1f3d8582.js +34 -0
  221. package/dist/esm/{index-97199683.js → index-2be9a18b.js} +34 -28
  222. package/dist/esm/{index-8d682224.js → index-51e4a829.js} +12 -8
  223. package/dist/esm/{index-8a463a85.js → index-6048aed6.js} +35 -24
  224. package/dist/esm/index-65ecd543.js +25 -0
  225. package/dist/esm/{tap-click-a7e55ef5.js → index-b212db1c.js} +37 -19
  226. package/dist/esm/{index-e4deec27.js → index-cb938ffb.js} +7 -1
  227. package/dist/esm/{index-3a1bd803.js → index-d39eb62b.js} +35 -20
  228. package/dist/esm/index-ebf7f059.js +128 -0
  229. package/dist/esm/{input-shims-3b48722f.js → input-shims-8a389148.js} +89 -38
  230. package/dist/esm/ion-accordion-group.entry.js +201 -0
  231. package/dist/esm/ion-accordion.entry.js +332 -0
  232. package/dist/esm/ion-action-sheet_3.entry.js +859 -0
  233. package/dist/esm/{ion-app_45.entry.js → ion-app_46.entry.js} +1694 -1407
  234. package/dist/esm/ion-avatar.entry.js +2 -2
  235. package/dist/esm/ion-back-button.entry.js +12 -11
  236. package/dist/esm/ion-backdrop.entry.js +4 -4
  237. package/dist/esm/ion-breadcrumb.entry.js +97 -0
  238. package/dist/esm/ion-breadcrumbs.entry.js +129 -0
  239. package/dist/esm/ion-buttons_3.entry.js +787 -0
  240. package/dist/esm/ion-card-subtitle.entry.js +4 -4
  241. package/dist/esm/{ion-list-header_3.entry.js → ion-checkbox_4.entry.js} +124 -24
  242. package/dist/esm/ion-chip.entry.js +5 -10
  243. package/dist/esm/ion-datetime-button.entry.js +342 -0
  244. package/dist/esm/ion-datetime.entry.js +1548 -856
  245. package/dist/esm/ion-fab-button.entry.js +26 -9
  246. package/dist/esm/ion-fab-list.entry.js +4 -4
  247. package/dist/esm/ion-fab.entry.js +15 -13
  248. package/dist/esm/ion-img.entry.js +28 -4
  249. package/dist/esm/ion-infinite-scroll-content.entry.js +5 -5
  250. package/dist/esm/ion-infinite-scroll.entry.js +13 -13
  251. package/dist/esm/ion-input.entry.js +57 -23
  252. package/dist/esm/ion-item-option.entry.js +8 -8
  253. package/dist/esm/ion-item-options.entry.js +5 -5
  254. package/dist/esm/ion-item-sliding.entry.js +59 -63
  255. package/dist/esm/ion-loading.entry.js +37 -36
  256. package/dist/esm/ion-menu-button.entry.js +14 -12
  257. package/dist/esm/ion-menu-toggle.entry.js +8 -7
  258. package/dist/esm/ion-menu.entry.js +71 -57
  259. package/dist/esm/ion-modal.entry.js +1375 -145
  260. package/dist/esm/ion-nav-link.entry.js +5 -2
  261. package/dist/esm/ion-nav.entry.js +177 -171
  262. package/dist/esm/ion-picker-column.entry.js +25 -27
  263. package/dist/esm/ion-picker.entry.js +22 -17
  264. package/dist/esm/ion-popover.entry.js +1208 -182
  265. package/dist/esm/ion-range.entry.js +137 -57
  266. package/dist/esm/ion-refresher-content.entry.js +7 -12
  267. package/dist/esm/ion-refresher.entry.js +149 -147
  268. package/dist/esm/ion-reorder-group.entry.js +42 -35
  269. package/dist/esm/ion-reorder.entry.js +5 -4
  270. package/dist/esm/ion-route-redirect.entry.js +1 -1
  271. package/dist/esm/ion-route.entry.js +1 -1
  272. package/dist/esm/ion-router-link.entry.js +5 -5
  273. package/dist/esm/ion-router-outlet.entry.js +24 -20
  274. package/dist/esm/ion-router.entry.js +291 -194
  275. package/dist/esm/ion-segment-button.entry.js +10 -17
  276. package/dist/esm/ion-segment.entry.js +119 -26
  277. package/dist/esm/ion-select-option.entry.js +3 -3
  278. package/dist/esm/ion-select.entry.js +113 -78
  279. package/dist/esm/ion-slide.entry.js +3 -3
  280. package/dist/esm/ion-slides.entry.js +26 -27
  281. package/dist/esm/ion-spinner.entry.js +10 -9
  282. package/dist/esm/ion-split-pane.entry.js +16 -12
  283. package/dist/esm/ion-tab-bar.entry.js +16 -23
  284. package/dist/esm/ion-tab-button.entry.js +6 -6
  285. package/dist/esm/ion-tab.entry.js +4 -4
  286. package/dist/esm/ion-tabs.entry.js +4 -5
  287. package/dist/esm/ion-text.entry.js +3 -3
  288. package/dist/esm/ion-textarea.entry.js +31 -29
  289. package/dist/esm/ion-thumbnail.entry.js +2 -2
  290. package/dist/esm/ion-toast.entry.js +49 -59
  291. package/dist/esm/ion-toggle.entry.js +41 -22
  292. package/dist/esm/ion-virtual-scroll.entry.js +39 -31
  293. package/dist/esm/{ionic-global-2e28f7c7.js → ionic-global-6cd57191.js} +112 -93
  294. package/dist/esm/{ios.transition-a783e3cd.js → ios.transition-bbd952f2.js} +78 -53
  295. package/dist/{custom-elements/keyboard.js → esm/keyboard-413afe04.js} +6 -3
  296. package/dist/esm/keyboard-controller-33693bc2.js +40 -0
  297. package/dist/esm/loader.js +4 -4
  298. package/dist/esm/{md.transition-5a4a8c82.js → md.transition-5170a6d3.js} +15 -17
  299. package/dist/esm/{menu-toggle-util-562dfc9c.js → menu-toggle-util-82bf888a.js} +5 -2
  300. package/dist/esm/{overlays-fc9a0625.js → overlays-0c7f05e1.js} +186 -71
  301. package/dist/esm/spinner-configs-cbcd1f62.js +145 -0
  302. package/dist/esm/{status-tap-69e62ad6.js → status-tap-ad757b8a.js} +10 -5
  303. package/dist/esm/swipe-back-7ef22876.js +69 -0
  304. package/dist/esm/test-component.entry.js +1 -1
  305. package/dist/esm/{theme-d21826a7.js → theme-7cf2cab0.js} +9 -5
  306. package/package.json +4 -5
  307. package/LICENSE +0 -21
  308. package/dist/cjs/button-active-c14dab31.js +0 -66
  309. package/dist/cjs/focus-visible-16c98640.js +0 -45
  310. package/dist/cjs/framework-delegate-c45292a3.js +0 -37
  311. package/dist/cjs/ion-action-sheet.cjs.entry.js +0 -265
  312. package/dist/cjs/ion-alert.cjs.entry.js +0 -456
  313. package/dist/cjs/ion-buttons.cjs.entry.js +0 -42
  314. package/dist/cjs/ion-checkbox.cjs.entry.js +0 -117
  315. package/dist/cjs/ion-note.cjs.entry.js +0 -29
  316. package/dist/cjs/ion-select-popover.cjs.entry.js +0 -35
  317. package/dist/cjs/spinner-configs-fb16b986.js +0 -112
  318. package/dist/custom-elements/focus-visible.js +0 -43
  319. package/dist/elements/p-03bda390.js +0 -1
  320. package/dist/elements/p-0be044f1.entry.js +0 -1
  321. package/dist/elements/p-119c7c6c.entry.js +0 -1
  322. package/dist/elements/p-14c7c3ea.entry.js +0 -1
  323. package/dist/elements/p-1d4a2c61.js +0 -1
  324. package/dist/elements/p-1d894ac4.entry.js +0 -1
  325. package/dist/elements/p-1dafa1ce.entry.js +0 -1
  326. package/dist/elements/p-23b89ccb.entry.js +0 -1
  327. package/dist/elements/p-2c03b9ab.entry.js +0 -1
  328. package/dist/elements/p-346985f2.js +0 -1
  329. package/dist/elements/p-360f1c62.entry.js +0 -1
  330. package/dist/elements/p-373e1f25.entry.js +0 -1
  331. package/dist/elements/p-40547acb.entry.js +0 -1
  332. package/dist/elements/p-40b68014.entry.js +0 -1
  333. package/dist/elements/p-42e4f702.entry.js +0 -1
  334. package/dist/elements/p-489807e5.js +0 -1
  335. package/dist/elements/p-4ad72d54.entry.js +0 -1
  336. package/dist/elements/p-4cca7b5e.entry.js +0 -1
  337. package/dist/elements/p-4f24d306.js +0 -1
  338. package/dist/elements/p-519d6a53.entry.js +0 -1
  339. package/dist/elements/p-536e8e52.entry.js +0 -1
  340. package/dist/elements/p-599bb53f.entry.js +0 -1
  341. package/dist/elements/p-5eb7a546.js +0 -1
  342. package/dist/elements/p-60df2bed.entry.js +0 -1
  343. package/dist/elements/p-65133e33.js +0 -1
  344. package/dist/elements/p-6693fce8.js +0 -1
  345. package/dist/elements/p-689bdcc1.entry.js +0 -1
  346. package/dist/elements/p-70713b3d.entry.js +0 -1
  347. package/dist/elements/p-707d5d76.js +0 -1
  348. package/dist/elements/p-7212b7f2.js +0 -1
  349. package/dist/elements/p-73992898.entry.js +0 -1
  350. package/dist/elements/p-792c1e0f.entry.js +0 -1
  351. package/dist/elements/p-7e5300af.js +0 -2
  352. package/dist/elements/p-8068987c.entry.js +0 -1
  353. package/dist/elements/p-83accf46.entry.js +0 -1
  354. package/dist/elements/p-86635d06.entry.js +0 -1
  355. package/dist/elements/p-874c2b44.js +0 -1
  356. package/dist/elements/p-89c12ce8.entry.js +0 -1
  357. package/dist/elements/p-8bcba3f7.entry.js +0 -1
  358. package/dist/elements/p-8c759f51.entry.js +0 -1
  359. package/dist/elements/p-8f945e6b.entry.js +0 -1
  360. package/dist/elements/p-9300ab6a.js +0 -1
  361. package/dist/elements/p-93cacd51.entry.js +0 -1
  362. package/dist/elements/p-9408d0b4.entry.js +0 -1
  363. package/dist/elements/p-98c79eda.js +0 -1
  364. package/dist/elements/p-99f8abed.js +0 -1
  365. package/dist/elements/p-9ca7e079.js +0 -1
  366. package/dist/elements/p-a4648b74.entry.js +0 -1
  367. package/dist/elements/p-aab0f63c.js +0 -1
  368. package/dist/elements/p-ad4e2295.entry.js +0 -1
  369. package/dist/elements/p-afb8f7d5.entry.js +0 -1
  370. package/dist/elements/p-b055ec44.js +0 -1
  371. package/dist/elements/p-b078d63b.entry.js +0 -1
  372. package/dist/elements/p-b3460325.entry.js +0 -1
  373. package/dist/elements/p-b5406b58.entry.js +0 -1
  374. package/dist/elements/p-b5ef0c91.entry.js +0 -1
  375. package/dist/elements/p-b6ba623e.entry.js +0 -1
  376. package/dist/elements/p-b9926d8b.entry.js +0 -1
  377. package/dist/elements/p-bfd4cfcd.entry.js +0 -1
  378. package/dist/elements/p-c08dd7d0.entry.js +0 -1
  379. package/dist/elements/p-c0db9c51.entry.js +0 -1
  380. package/dist/elements/p-c1e7fbfb.js +0 -1
  381. package/dist/elements/p-ca69d6c9.js +0 -1
  382. package/dist/elements/p-cc4cb1ac.entry.js +0 -1
  383. package/dist/elements/p-cf8a7031.entry.js +0 -1
  384. package/dist/elements/p-cff82b6f.js +0 -1
  385. package/dist/elements/p-d01009b8.entry.js +0 -67
  386. package/dist/elements/p-d6d1e65f.entry.js +0 -1
  387. package/dist/elements/p-d9462b66.entry.js +0 -1
  388. package/dist/elements/p-e2e0fee9.entry.js +0 -1
  389. package/dist/elements/p-e642b266.entry.js +0 -1
  390. package/dist/elements/p-e953934f.entry.js +0 -1
  391. package/dist/elements/p-f0474f46.js +0 -1
  392. package/dist/elements/p-f10a94f6.entry.js +0 -1
  393. package/dist/elements/p-f2426182.entry.js +0 -1
  394. package/dist/elements/p-f327fd21.js +0 -1
  395. package/dist/elements/p-f84987ee.js +0 -1
  396. package/dist/elements/p-f8a3367d.entry.js +0 -1
  397. package/dist/esm/button-active-fd9d6d91.js +0 -64
  398. package/dist/esm/focus-visible-edb28f19.js +0 -43
  399. package/dist/esm/framework-delegate-9cd8048f.js +0 -34
  400. package/dist/esm/ion-action-sheet.entry.js +0 -261
  401. package/dist/esm/ion-alert.entry.js +0 -452
  402. package/dist/esm/ion-buttons.entry.js +0 -38
  403. package/dist/esm/ion-checkbox.entry.js +0 -113
  404. package/dist/esm/ion-note.entry.js +0 -25
  405. package/dist/esm/ion-select-popover.entry.js +0 -31
  406. package/dist/esm/keyboard-e6abcb80.js +0 -125
  407. package/dist/esm/spinner-configs-aaf2a1a9.js +0 -110
  408. package/dist/esm/swipe-back-d84cfc8a.js +0 -50
  409. package/readme.md +0 -55
@@ -1,17 +1,16 @@
1
1
  import { n as now, p as pointerCoord } from './index.js';
2
2
 
3
+ /*!
4
+ * (C) Ionic http://ionicframework.com - MIT License
5
+ */
3
6
  const startTapClick = (config) => {
4
7
  let lastTouch = -MOUSE_WAIT * 10;
5
8
  let lastActivated = 0;
6
- let scrollingEl;
7
9
  let activatableEle;
8
10
  let activeRipple;
9
11
  let activeDefer;
10
12
  const useRippleEffect = config.getBoolean('animated', true) && config.getBoolean('rippleEffect', true);
11
13
  const clearDefers = new WeakMap();
12
- const isScrolling = () => {
13
- return scrollingEl !== undefined && scrollingEl.parentElement !== null;
14
- };
15
14
  // Touch Events
16
15
  const onTouchStart = (ev) => {
17
16
  lastTouch = now(ev);
@@ -22,6 +21,10 @@ const startTapClick = (config) => {
22
21
  pointerUp(ev);
23
22
  };
24
23
  const onMouseDown = (ev) => {
24
+ // Ignore right clicks
25
+ if (ev.button === 2) {
26
+ return;
27
+ }
25
28
  const t = now(ev) - MOUSE_WAIT;
26
29
  if (lastTouch < t) {
27
30
  pointerDown(ev);
@@ -42,10 +45,9 @@ const startTapClick = (config) => {
42
45
  }
43
46
  };
44
47
  const pointerDown = (ev) => {
45
- if (activatableEle || isScrolling()) {
48
+ if (activatableEle) {
46
49
  return;
47
50
  }
48
- scrollingEl = undefined;
49
51
  setActivatedElement(getActivatableTarget(ev), ev);
50
52
  };
51
53
  const pointerUp = (ev) => {
@@ -88,15 +90,17 @@ const startTapClick = (config) => {
88
90
  const addActivated = (el, x, y) => {
89
91
  lastActivated = Date.now();
90
92
  el.classList.add(ACTIVATED);
91
- const rippleEffect = useRippleEffect && getRippleEffect(el);
92
- if (rippleEffect && rippleEffect.addRipple) {
93
+ if (!useRippleEffect)
94
+ return;
95
+ const rippleEffect = getRippleEffect(el);
96
+ if (rippleEffect !== null) {
93
97
  removeRipple();
94
98
  activeRipple = rippleEffect.addRipple(x, y);
95
99
  }
96
100
  };
97
101
  const removeRipple = () => {
98
102
  if (activeRipple !== undefined) {
99
- activeRipple.then(remove => remove());
103
+ activeRipple.then((remove) => remove());
100
104
  activeRipple = undefined;
101
105
  }
102
106
  };
@@ -119,26 +123,40 @@ const startTapClick = (config) => {
119
123
  }
120
124
  };
121
125
  const doc = document;
122
- doc.addEventListener('ionScrollStart', ev => {
123
- scrollingEl = ev.target;
124
- cancelActive();
125
- });
126
- doc.addEventListener('ionScrollEnd', () => {
127
- scrollingEl = undefined;
128
- });
129
126
  doc.addEventListener('ionGestureCaptured', cancelActive);
130
127
  doc.addEventListener('touchstart', onTouchStart, true);
131
128
  doc.addEventListener('touchcancel', onTouchEnd, true);
132
129
  doc.addEventListener('touchend', onTouchEnd, true);
130
+ /**
131
+ * Tap click effects such as the ripple effect should
132
+ * not happen when scrolling. For example, if a user scrolls
133
+ * the page but also happens to do a touchstart on a button
134
+ * as part of the scroll, the ripple effect should not
135
+ * be dispatched. The ripple effect should only happen
136
+ * if the button is activated and the page is not scrolling.
137
+ *
138
+ * pointercancel is dispatched on a gesture when scrolling
139
+ * starts, so this lets us avoid having to listen for
140
+ * ion-content's scroll events.
141
+ */
142
+ doc.addEventListener('pointercancel', cancelActive, true);
133
143
  doc.addEventListener('mousedown', onMouseDown, true);
134
144
  doc.addEventListener('mouseup', onMouseUp, true);
135
145
  };
136
146
  const getActivatableTarget = (ev) => {
137
- if (ev.composedPath) {
147
+ if (ev.composedPath !== undefined) {
148
+ /**
149
+ * composedPath returns EventTarget[]. However,
150
+ * objects other than Element can be targets too.
151
+ * For example, AudioContext can be a target. In this
152
+ * case, we know that the event is a UIEvent so we
153
+ * can assume that the path will contain either Element
154
+ * or ShadowRoot.
155
+ */
138
156
  const path = ev.composedPath();
139
157
  for (let i = 0; i < path.length - 2; i++) {
140
158
  const el = path[i];
141
- if (el.classList && el.classList.contains('ion-activatable')) {
159
+ if (!(el instanceof ShadowRoot) && el.classList.contains('ion-activatable')) {
142
160
  return el;
143
161
  }
144
162
  }
@@ -1,12 +1,15 @@
1
- import { a as addEventListener, r as removeEventListener, b as raf, p as pointerCoord, c as componentOnReady } from './index.js';
1
+ import { a as addEventListener, r as removeEventListener, b as raf, g as getScrollElement, p as pointerCoord, d as scrollByPoint, f as findClosestIonContent, c as componentOnReady } from './index.js';
2
2
 
3
+ /*!
4
+ * (C) Ionic http://ionicframework.com - MIT License
5
+ */
3
6
  const cloneMap = new WeakMap();
4
- const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0) => {
7
+ const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0, disabledClonedInput = false) => {
5
8
  if (cloneMap.has(componentEl) === shouldRelocate) {
6
9
  return;
7
10
  }
8
11
  if (shouldRelocate) {
9
- addClone(componentEl, inputEl, inputRelativeY);
12
+ addClone(componentEl, inputEl, inputRelativeY, disabledClonedInput);
10
13
  }
11
14
  else {
12
15
  removeClone(componentEl, inputEl);
@@ -15,7 +18,7 @@ const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0)
15
18
  const isFocused = (input) => {
16
19
  return input === input.getRootNode().activeElement;
17
20
  };
18
- const addClone = (componentEl, inputEl, inputRelativeY) => {
21
+ const addClone = (componentEl, inputEl, inputRelativeY, disabledClonedInput = false) => {
19
22
  // this allows for the actual input to receive the focus from
20
23
  // the user's touch event, but before it receives focus, it
21
24
  // moves the actual input to a location that will not screw
@@ -30,6 +33,21 @@ const addClone = (componentEl, inputEl, inputRelativeY) => {
30
33
  const clonedEl = inputEl.cloneNode(false);
31
34
  clonedEl.classList.add('cloned-input');
32
35
  clonedEl.tabIndex = -1;
36
+ /**
37
+ * Making the cloned input disabled prevents
38
+ * Chrome for Android from still scrolling
39
+ * the entire page since this cloned input
40
+ * will briefly be hidden by the keyboard
41
+ * even though it is not focused.
42
+ *
43
+ * This is not needed on iOS. While this
44
+ * does not cause functional issues on iOS,
45
+ * the input still appears slightly dimmed even
46
+ * if we set opacity: 1.
47
+ */
48
+ if (disabledClonedInput) {
49
+ clonedEl.disabled = true;
50
+ }
33
51
  parentEl.appendChild(clonedEl);
34
52
  cloneMap.set(componentEl, clonedEl);
35
53
  const doc = componentEl.ownerDocument;
@@ -47,9 +65,14 @@ const removeClone = (componentEl, inputEl) => {
47
65
  inputEl.style.transform = '';
48
66
  };
49
67
 
68
+ /*!
69
+ * (C) Ionic http://ionicframework.com - MIT License
70
+ */
50
71
  const enableHideCaretOnScroll = (componentEl, inputEl, scrollEl) => {
51
72
  if (!scrollEl || !inputEl) {
52
- return () => { return; };
73
+ return () => {
74
+ return;
75
+ };
53
76
  }
54
77
  const scrollHideCaret = (shouldHideCaret) => {
55
78
  if (isFocused(inputEl)) {
@@ -69,6 +92,9 @@ const enableHideCaretOnScroll = (componentEl, inputEl, scrollEl) => {
69
92
  };
70
93
  };
71
94
 
95
+ /*!
96
+ * (C) Ionic http://ionicframework.com - MIT License
97
+ */
72
98
  const SKIP_SELECTOR = 'input, textarea, [no-blur], [contenteditable]';
73
99
  const enableInputBlurring = () => {
74
100
  let focused = true;
@@ -103,7 +129,7 @@ const enableInputBlurring = () => {
103
129
  return;
104
130
  }
105
131
  focused = false;
106
- // TODO: find a better way, why 50ms?
132
+ // TODO FW-2796: find a better way, why 50ms?
107
133
  setTimeout(() => {
108
134
  if (!focused) {
109
135
  active.blur();
@@ -120,9 +146,13 @@ const enableInputBlurring = () => {
120
146
  };
121
147
  };
122
148
 
149
+ /*!
150
+ * (C) Ionic http://ionicframework.com - MIT License
151
+ */
123
152
  const SCROLL_ASSIST_SPEED = 0.3;
124
153
  const getScrollData = (componentEl, contentEl, keyboardHeight) => {
125
- const itemEl = componentEl.closest('ion-item,[ion-item]') || componentEl;
154
+ var _a;
155
+ const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
126
156
  return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, componentEl.ownerDocument.defaultView.innerHeight);
127
157
  };
128
158
  const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
@@ -139,11 +169,7 @@ const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight)
139
169
  const distanceToBottom = safeAreaBottom - inputBottom;
140
170
  const distanceToTop = safeAreaTop - inputTop;
141
171
  // desiredScrollAmount is the negated distance to the safe area according to our calculations.
142
- const desiredScrollAmount = Math.round((distanceToBottom < 0)
143
- ? -distanceToBottom
144
- : (distanceToTop > 0)
145
- ? -distanceToTop
146
- : 0);
172
+ const desiredScrollAmount = Math.round(distanceToBottom < 0 ? -distanceToBottom : distanceToTop > 0 ? -distanceToTop : 0);
147
173
  // our calculations make some assumptions that aren't always true, like the keyboard being closed when an input
148
174
  // gets focus, so make sure we don't scroll the input above the visible area
149
175
  const scrollAmount = Math.min(desiredScrollAmount, inputTop - visibleAreaTop);
@@ -154,11 +180,14 @@ const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight)
154
180
  scrollAmount,
155
181
  scrollDuration,
156
182
  scrollPadding: keyboardHeight,
157
- inputSafeY: -(inputTop - safeAreaTop) + 4
183
+ inputSafeY: -(inputTop - safeAreaTop) + 4,
158
184
  };
159
185
  };
160
186
 
161
- const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardHeight) => {
187
+ /*!
188
+ * (C) Ionic http://ionicframework.com - MIT License
189
+ */
190
+ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput = false) => {
162
191
  let coord;
163
192
  const touchStart = (ev) => {
164
193
  coord = pointerCoord(ev);
@@ -173,19 +202,18 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
173
202
  // focus this input if the pointer hasn't moved XX pixels
174
203
  // and the input doesn't already have focus
175
204
  if (!hasPointerMoved(6, coord, endCoord) && !isFocused(inputEl)) {
176
- ev.stopPropagation();
177
205
  // begin the input focus process
178
- jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight);
206
+ jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput);
179
207
  }
180
208
  };
181
- componentEl.addEventListener('touchstart', touchStart, true);
209
+ componentEl.addEventListener('touchstart', touchStart, { capture: true, passive: true });
182
210
  componentEl.addEventListener('touchend', touchEnd, true);
183
211
  return () => {
184
212
  componentEl.removeEventListener('touchstart', touchStart, true);
185
213
  componentEl.removeEventListener('touchend', touchEnd, true);
186
214
  };
187
215
  };
188
- const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight) => {
216
+ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, disableClonedInput = false) => {
189
217
  if (!contentEl && !footerEl) {
190
218
  return;
191
219
  }
@@ -199,7 +227,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
199
227
  // temporarily move the focus to the focus holder so the browser
200
228
  // doesn't freak out while it's trying to get the input in place
201
229
  // at this point the native text input still does not have focus
202
- relocateInput(componentEl, inputEl, true, scrollData.inputSafeY);
230
+ relocateInput(componentEl, inputEl, true, scrollData.inputSafeY, disableClonedInput);
203
231
  inputEl.focus();
204
232
  /**
205
233
  * Relocating/Focusing input causes the
@@ -207,7 +235,6 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
207
235
  * manually fire one here.
208
236
  */
209
237
  raf(() => componentEl.click());
210
- /* tslint:disable-next-line */
211
238
  if (typeof window !== 'undefined') {
212
239
  let scrollContentTimeout;
213
240
  const scrollContent = async () => {
@@ -219,7 +246,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
219
246
  window.removeEventListener('ionKeyboardDidShow', scrollContent);
220
247
  // scroll the input into place
221
248
  if (contentEl) {
222
- await contentEl.scrollByPoint(0, scrollData.scrollAmount, scrollData.scrollDuration);
249
+ await scrollByPoint(contentEl, 0, scrollData.scrollAmount, scrollData.scrollDuration);
223
250
  }
224
251
  // the scroll view is in the correct position now
225
252
  // give the native text input focus
@@ -232,7 +259,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
232
259
  window.addEventListener('ionKeyboardDidShow', scrollContent);
233
260
  };
234
261
  if (contentEl) {
235
- const scrollEl = await contentEl.getScrollElement();
262
+ const scrollEl = await getScrollElement(contentEl);
236
263
  /**
237
264
  * scrollData will only consider the amount we need
238
265
  * to scroll in order to properly bring the input
@@ -246,7 +273,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
246
273
  * bandwidth to become available.
247
274
  */
248
275
  const totalScrollAmount = scrollEl.scrollHeight - scrollEl.clientHeight;
249
- if (scrollData.scrollAmount > (totalScrollAmount - scrollEl.scrollTop)) {
276
+ if (scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
250
277
  /**
251
278
  * On iOS devices, the system will show a "Passwords" bar above the keyboard
252
279
  * after the initial keyboard is shown. This prevents the webview from resizing
@@ -275,14 +302,17 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
275
302
  };
276
303
  const hasPointerMoved = (threshold, startCoord, endCoord) => {
277
304
  if (startCoord && endCoord) {
278
- const deltaX = (startCoord.x - endCoord.x);
279
- const deltaY = (startCoord.y - endCoord.y);
305
+ const deltaX = startCoord.x - endCoord.x;
306
+ const deltaY = startCoord.y - endCoord.y;
280
307
  const distance = deltaX * deltaX + deltaY * deltaY;
281
- return distance > (threshold * threshold);
308
+ return distance > threshold * threshold;
282
309
  }
283
310
  return false;
284
311
  };
285
312
 
313
+ /*!
314
+ * (C) Ionic http://ionicframework.com - MIT License
315
+ */
286
316
  const PADDING_TIMER_KEY = '$ionPaddingTimer';
287
317
  const enableScrollPadding = (keyboardHeight) => {
288
318
  const doc = document;
@@ -300,18 +330,17 @@ const enableScrollPadding = (keyboardHeight) => {
300
330
  };
301
331
  };
302
332
  const setScrollPadding = (input, keyboardHeight) => {
333
+ var _a, _b;
303
334
  if (input.tagName !== 'INPUT') {
304
335
  return;
305
336
  }
306
337
  if (input.parentElement && input.parentElement.tagName === 'ION-INPUT') {
307
338
  return;
308
339
  }
309
- if (input.parentElement &&
310
- input.parentElement.parentElement &&
311
- input.parentElement.parentElement.tagName === 'ION-SEARCHBAR') {
340
+ if (((_b = (_a = input.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) === null || _b === void 0 ? void 0 : _b.tagName) === 'ION-SEARCHBAR') {
312
341
  return;
313
342
  }
314
- const el = input.closest('ion-content');
343
+ const el = findClosestIonContent(input);
315
344
  if (el === null) {
316
345
  return;
317
346
  }
@@ -329,24 +358,34 @@ const setScrollPadding = (input, keyboardHeight) => {
329
358
  }
330
359
  };
331
360
 
361
+ /*!
362
+ * (C) Ionic http://ionicframework.com - MIT License
363
+ */
332
364
  const INPUT_BLURRING = true;
333
365
  const SCROLL_PADDING = true;
334
- const startInputShims = (config) => {
366
+ const startInputShims = (config, platform) => {
335
367
  const doc = document;
368
+ const isIOS = platform === 'ios';
369
+ const isAndroid = platform === 'android';
370
+ /**
371
+ * Hide Caret and Input Blurring are needed on iOS.
372
+ * Scroll Assist and Scroll Padding are needed on iOS and Android
373
+ * with Chrome web browser (not Chrome webview).
374
+ */
336
375
  const keyboardHeight = config.getNumber('keyboardHeight', 290);
337
376
  const scrollAssist = config.getBoolean('scrollAssist', true);
338
- const hideCaret = config.getBoolean('hideCaretOnScroll', true);
339
- const inputBlurring = config.getBoolean('inputBlurring', true);
377
+ const hideCaret = config.getBoolean('hideCaretOnScroll', isIOS);
378
+ const inputBlurring = config.getBoolean('inputBlurring', isIOS);
340
379
  const scrollPadding = config.getBoolean('scrollPadding', true);
341
380
  const inputs = Array.from(doc.querySelectorAll('ion-input, ion-textarea'));
342
381
  const hideCaretMap = new WeakMap();
343
382
  const scrollAssistMap = new WeakMap();
344
383
  const registerInput = async (componentEl) => {
345
- await new Promise(resolve => componentOnReady(componentEl, resolve));
384
+ await new Promise((resolve) => componentOnReady(componentEl, resolve));
346
385
  const inputRoot = componentEl.shadowRoot || componentEl;
347
386
  const inputEl = inputRoot.querySelector('input') || inputRoot.querySelector('textarea');
348
- const scrollEl = componentEl.closest('ion-content');
349
- const footerEl = (!scrollEl) ? componentEl.closest('ion-footer') : null;
387
+ const scrollEl = findClosestIonContent(componentEl);
388
+ const footerEl = !scrollEl ? componentEl.closest('ion-footer') : null;
350
389
  if (!inputEl) {
351
390
  return;
352
391
  }
@@ -354,8 +393,18 @@ const startInputShims = (config) => {
354
393
  const rmFn = enableHideCaretOnScroll(componentEl, inputEl, scrollEl);
355
394
  hideCaretMap.set(componentEl, rmFn);
356
395
  }
357
- if ((!!scrollEl || !!footerEl) && scrollAssist && !scrollAssistMap.has(componentEl)) {
358
- const rmFn = enableScrollAssist(componentEl, inputEl, scrollEl, footerEl, keyboardHeight);
396
+ /**
397
+ * date/datetime-locale inputs on mobile devices show date picker
398
+ * overlays instead of keyboards. As a result, scroll assist is
399
+ * not needed. This also works around a bug in iOS <16 where
400
+ * scroll assist causes the browser to lock up. See FW-1997.
401
+ */
402
+ const isDateInput = inputEl.type === 'date' || inputEl.type === 'datetime-local';
403
+ if (!isDateInput &&
404
+ (!!scrollEl || !!footerEl) &&
405
+ scrollAssist &&
406
+ !scrollAssistMap.has(componentEl)) {
407
+ const rmFn = enableScrollAssist(componentEl, inputEl, scrollEl, footerEl, keyboardHeight, isAndroid);
359
408
  scrollAssistMap.set(componentEl, rmFn);
360
409
  }
361
410
  };