@ionic/core 7.4.1-nightly.20230919 → 7.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/components/action-sheet.js +3 -0
  2. package/components/alert.js +6 -1
  3. package/components/button.js +2 -0
  4. package/components/checkbox.js +9 -4
  5. package/components/icon.js +6 -0
  6. package/components/input-shims.js +88 -7
  7. package/components/ion-accordion-group.js +5 -1
  8. package/components/ion-accordion.js +2 -0
  9. package/components/ion-breadcrumbs.js +5 -1
  10. package/components/ion-datetime.js +10 -0
  11. package/components/ion-fab-list.js +2 -0
  12. package/components/ion-fab.js +2 -0
  13. package/components/ion-img.js +2 -0
  14. package/components/ion-infinite-scroll.js +3 -0
  15. package/components/ion-input.js +5 -0
  16. package/components/ion-item-sliding.js +2 -0
  17. package/components/ion-loading.js +3 -0
  18. package/components/ion-menu.js +8 -3
  19. package/components/ion-modal.js +3 -0
  20. package/components/ion-nav.js +3 -0
  21. package/components/ion-picker.js +3 -0
  22. package/components/ion-range.js +39 -5
  23. package/components/ion-refresher.js +2 -0
  24. package/components/ion-reorder-group.js +2 -0
  25. package/components/ion-route-redirect.js +3 -0
  26. package/components/ion-route.js +4 -0
  27. package/components/ion-router-outlet.js +2 -0
  28. package/components/ion-searchbar.js +4 -0
  29. package/components/ion-segment-button.js +2 -0
  30. package/components/ion-segment.js +6 -1
  31. package/components/ion-select.js +5 -0
  32. package/components/ion-split-pane.js +4 -0
  33. package/components/ion-tab-bar.js +2 -0
  34. package/components/ion-tab.js +2 -0
  35. package/components/ion-textarea.js +4 -0
  36. package/components/ion-title.js +2 -0
  37. package/components/ion-toast.js +3 -0
  38. package/components/ion-toggle.js +2 -0
  39. package/components/item.js +48 -10
  40. package/components/label.js +3 -0
  41. package/components/overlays.js +30 -10
  42. package/components/picker-column-internal.js +2 -0
  43. package/components/picker-column.js +2 -0
  44. package/components/popover.js +4 -0
  45. package/components/radio-group.js +3 -1
  46. package/components/radio.js +5 -0
  47. package/dist/cjs/{app-globals-a63c2a19.js → app-globals-56164d1a.js} +1 -1
  48. package/dist/cjs/{button-active-0ff8e82c.js → button-active-32f15660.js} +1 -1
  49. package/dist/cjs/{index-e6416850.js → index-5121bb90.js} +1 -1
  50. package/dist/cjs/{index-184fdd62.js → index-6f887430.js} +44 -14
  51. package/dist/cjs/{index-be8a2ab9.js → index-b183138a.js} +3 -3
  52. package/dist/cjs/index.cjs.js +7 -7
  53. package/dist/cjs/{input-shims-f8569707.js → input-shims-da7dc0de.js} +92 -12
  54. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
  56. package/dist/cjs/ion-alert.cjs.entry.js +4 -4
  57. package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
  58. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  61. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-checkbox.cjs.entry.js +8 -6
  65. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  66. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  67. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  68. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  69. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-item_8.cjs.entry.js +37 -10
  75. package/dist/cjs/ion-loading.cjs.entry.js +4 -4
  76. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  77. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  78. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  79. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +2 -2
  80. package/dist/cjs/ion-picker-internal.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-popover.cjs.entry.js +5 -5
  82. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  84. package/dist/cjs/ion-range.cjs.entry.js +34 -7
  85. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  86. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  87. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
  91. package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
  92. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  93. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  94. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  95. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  96. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-toast.cjs.entry.js +4 -4
  99. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  100. package/dist/cjs/{ionic-global-6d5d27b5.js → ionic-global-14a0604b.js} +1 -1
  101. package/dist/cjs/ionic.cjs.js +5 -5
  102. package/dist/cjs/{ios.transition-80582b44.js → ios.transition-4b93903d.js} +2 -2
  103. package/dist/cjs/loader.cjs.js +4 -4
  104. package/dist/cjs/{md.transition-eeca9fb5.js → md.transition-79f3a215.js} +2 -2
  105. package/dist/cjs/{overlays-c78a0148.js → overlays-d3a13e61.js} +33 -13
  106. package/dist/cjs/{status-tap-cc4c6539.js → status-tap-e2e45ff8.js} +1 -1
  107. package/dist/collection/collection-manifest.json +1 -1
  108. package/dist/collection/components/checkbox/checkbox.js +6 -4
  109. package/dist/collection/components/checkbox/test/basic/checkbox.e2e.js +17 -0
  110. package/dist/collection/components/checkbox/test/legacy/basic/checkbox.e2e.js +17 -0
  111. package/dist/collection/components/item/item.ios.css +4 -0
  112. package/dist/collection/components/item/item.js +43 -7
  113. package/dist/collection/components/item/item.md.css +4 -0
  114. package/dist/collection/components/menu/menu.js +2 -2
  115. package/dist/collection/components/radio/test/item/radio.e2e.js +23 -0
  116. package/dist/collection/components/range/range.ios.css +14 -0
  117. package/dist/collection/components/range/range.js +30 -3
  118. package/dist/collection/components/range/range.md.css +14 -0
  119. package/dist/collection/components/range/test/item/range.e2e.js +11 -0
  120. package/dist/collection/components/select/test/basic/select.e2e.js +21 -0
  121. package/dist/collection/components/toggle/test/item/toggle.e2e.js +28 -0
  122. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +86 -4
  123. package/dist/collection/utils/input-shims/hacks/scroll-data.js +2 -3
  124. package/dist/collection/utils/overlays.js +29 -9
  125. package/dist/docs.json +2 -2
  126. package/dist/esm/{app-globals-c7886b40.js → app-globals-8ae762aa.js} +1 -1
  127. package/dist/esm/{button-active-b76ae4ec.js → button-active-513e9fff.js} +1 -1
  128. package/dist/esm/{index-adfb2000.js → index-2d388930.js} +44 -14
  129. package/dist/esm/{index-48f5e259.js → index-61bddc90.js} +1 -1
  130. package/dist/esm/{index-01839411.js → index-87684bba.js} +3 -3
  131. package/dist/esm/index.js +7 -7
  132. package/dist/esm/{input-shims-af993f05.js → input-shims-d78a3c77.js} +88 -8
  133. package/dist/esm/ion-accordion_2.entry.js +2 -2
  134. package/dist/esm/ion-action-sheet.entry.js +4 -4
  135. package/dist/esm/ion-alert.entry.js +4 -4
  136. package/dist/esm/ion-app_8.entry.js +5 -5
  137. package/dist/esm/ion-avatar_3.entry.js +2 -2
  138. package/dist/esm/ion-back-button.entry.js +2 -2
  139. package/dist/esm/ion-backdrop.entry.js +2 -2
  140. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  141. package/dist/esm/ion-button_2.entry.js +2 -2
  142. package/dist/esm/ion-card_5.entry.js +2 -2
  143. package/dist/esm/ion-checkbox.entry.js +8 -6
  144. package/dist/esm/ion-chip.entry.js +2 -2
  145. package/dist/esm/ion-col_3.entry.js +2 -2
  146. package/dist/esm/ion-datetime-button.entry.js +2 -2
  147. package/dist/esm/ion-datetime_3.entry.js +4 -4
  148. package/dist/esm/ion-fab_3.entry.js +2 -2
  149. package/dist/esm/ion-img.entry.js +2 -2
  150. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  151. package/dist/esm/ion-input.entry.js +2 -2
  152. package/dist/esm/ion-item-option_3.entry.js +2 -2
  153. package/dist/esm/ion-item_8.entry.js +37 -10
  154. package/dist/esm/ion-loading.entry.js +4 -4
  155. package/dist/esm/ion-menu_3.entry.js +5 -5
  156. package/dist/esm/ion-modal.entry.js +4 -4
  157. package/dist/esm/ion-nav_2.entry.js +3 -3
  158. package/dist/esm/ion-picker-column-internal.entry.js +2 -2
  159. package/dist/esm/ion-picker-internal.entry.js +1 -1
  160. package/dist/esm/ion-popover.entry.js +5 -5
  161. package/dist/esm/ion-progress-bar.entry.js +2 -2
  162. package/dist/esm/ion-radio_2.entry.js +2 -2
  163. package/dist/esm/ion-range.entry.js +34 -7
  164. package/dist/esm/ion-refresher_2.entry.js +2 -2
  165. package/dist/esm/ion-reorder_2.entry.js +2 -2
  166. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  167. package/dist/esm/ion-route_4.entry.js +2 -2
  168. package/dist/esm/ion-searchbar.entry.js +2 -2
  169. package/dist/esm/ion-segment_2.entry.js +2 -2
  170. package/dist/esm/ion-select_3.entry.js +3 -3
  171. package/dist/esm/ion-spinner.entry.js +2 -2
  172. package/dist/esm/ion-split-pane.entry.js +2 -2
  173. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  174. package/dist/esm/ion-tab_2.entry.js +1 -1
  175. package/dist/esm/ion-text.entry.js +2 -2
  176. package/dist/esm/ion-textarea.entry.js +2 -2
  177. package/dist/esm/ion-toast.entry.js +4 -4
  178. package/dist/esm/ion-toggle.entry.js +2 -2
  179. package/dist/esm/{ionic-global-9080266a.js → ionic-global-b3fc28dd.js} +1 -1
  180. package/dist/esm/ionic.js +6 -6
  181. package/dist/esm/{ios.transition-f43871cd.js → ios.transition-81e1aed6.js} +2 -2
  182. package/dist/esm/loader.js +5 -5
  183. package/dist/esm/{md.transition-12d21ad0.js → md.transition-5becd8b5.js} +2 -2
  184. package/dist/esm/{overlays-4565894b.js → overlays-8fc6656c.js} +31 -11
  185. package/dist/esm/{status-tap-121c711d.js → status-tap-c5af0dba.js} +1 -1
  186. package/dist/esm-es5/app-globals-8ae762aa.js +4 -0
  187. package/dist/esm-es5/{button-active-b76ae4ec.js → button-active-513e9fff.js} +1 -1
  188. package/dist/esm-es5/{index-adfb2000.js → index-2d388930.js} +1 -1
  189. package/dist/esm-es5/{index-48f5e259.js → index-61bddc90.js} +1 -1
  190. package/dist/esm-es5/{index-01839411.js → index-87684bba.js} +1 -1
  191. package/dist/esm-es5/index.js +1 -1
  192. package/dist/esm-es5/input-shims-d78a3c77.js +4 -0
  193. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  195. package/dist/esm-es5/ion-alert.entry.js +1 -1
  196. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  197. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  198. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  199. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  200. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  201. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  202. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  203. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  204. package/dist/esm-es5/ion-chip.entry.js +1 -1
  205. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  206. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  207. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  208. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-img.entry.js +1 -1
  210. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  211. package/dist/esm-es5/ion-input.entry.js +1 -1
  212. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  213. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  214. package/dist/esm-es5/ion-loading.entry.js +1 -1
  215. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  216. package/dist/esm-es5/ion-modal.entry.js +1 -1
  217. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  218. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  219. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  220. package/dist/esm-es5/ion-popover.entry.js +1 -1
  221. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  222. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-range.entry.js +1 -1
  224. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  225. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  226. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  227. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  228. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  229. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  231. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  232. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  233. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  234. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  235. package/dist/esm-es5/ion-text.entry.js +1 -1
  236. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  237. package/dist/esm-es5/ion-toast.entry.js +1 -1
  238. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  239. package/dist/esm-es5/{ionic-global-9080266a.js → ionic-global-b3fc28dd.js} +1 -1
  240. package/dist/esm-es5/ionic.js +1 -1
  241. package/dist/esm-es5/{ios.transition-f43871cd.js → ios.transition-81e1aed6.js} +1 -1
  242. package/dist/esm-es5/loader.js +1 -1
  243. package/dist/esm-es5/{md.transition-12d21ad0.js → md.transition-5becd8b5.js} +1 -1
  244. package/dist/esm-es5/overlays-8fc6656c.js +4 -0
  245. package/dist/esm-es5/{status-tap-121c711d.js → status-tap-c5af0dba.js} +1 -1
  246. package/dist/ionic/index.esm.js +1 -1
  247. package/dist/ionic/ionic.esm.js +1 -1
  248. package/dist/ionic/ionic.js +1 -1
  249. package/dist/ionic/{p-5fc777e6.system.js → p-00aed720.system.js} +1 -1
  250. package/dist/ionic/{p-a033a91d.system.entry.js → p-03e2e541.system.entry.js} +1 -1
  251. package/dist/ionic/{p-59b40b60.entry.js → p-04ef1ba6.entry.js} +1 -1
  252. package/dist/ionic/{p-2b0ecc04.entry.js → p-05f10762.entry.js} +1 -1
  253. package/dist/ionic/{p-3bf120f8.system.entry.js → p-08c5b9f4.system.entry.js} +1 -1
  254. package/dist/ionic/p-09e15a2a.system.entry.js +4 -0
  255. package/dist/ionic/p-0bd3cc92.entry.js +4 -0
  256. package/dist/ionic/{p-57847936.entry.js → p-116641fe.entry.js} +1 -1
  257. package/dist/ionic/{p-cd002251.entry.js → p-13a91505.entry.js} +1 -1
  258. package/dist/ionic/p-13ce151b.entry.js +4 -0
  259. package/dist/ionic/{p-6ccffb74.system.entry.js → p-1a36bf45.system.entry.js} +1 -1
  260. package/dist/ionic/{p-1916030e.entry.js → p-1bce805b.entry.js} +1 -1
  261. package/dist/ionic/{p-46058a1e.system.entry.js → p-1c406ee0.system.entry.js} +1 -1
  262. package/dist/ionic/{p-42e0558f.entry.js → p-20e5eb3e.entry.js} +1 -1
  263. package/dist/ionic/{p-3d5a6d14.system.js → p-2309dba2.system.js} +1 -1
  264. package/dist/ionic/{p-aa702daf.entry.js → p-270aa06b.entry.js} +1 -1
  265. package/dist/ionic/{p-9eced28c.entry.js → p-27614d55.entry.js} +1 -1
  266. package/dist/ionic/{p-c7ce7e18.entry.js → p-327fc1bf.entry.js} +1 -1
  267. package/dist/ionic/p-33630008.system.entry.js +4 -0
  268. package/dist/ionic/{p-8bcd482b.entry.js → p-3730f493.entry.js} +1 -1
  269. package/dist/ionic/{p-95188051.system.entry.js → p-37456282.system.entry.js} +1 -1
  270. package/dist/ionic/{p-07656a8a.entry.js → p-39715fcf.entry.js} +1 -1
  271. package/dist/ionic/{p-f62bed60.entry.js → p-3ae2faf0.entry.js} +1 -1
  272. package/dist/ionic/{p-fa8fc77b.system.entry.js → p-3af01ae0.system.entry.js} +1 -1
  273. package/dist/ionic/p-3cbcb899.entry.js +4 -0
  274. package/dist/ionic/{p-9e8727d6.entry.js → p-3e5676b7.entry.js} +1 -1
  275. package/dist/ionic/{p-ff0615d9.system.entry.js → p-40e16caa.system.entry.js} +1 -1
  276. package/dist/ionic/{p-48d378cf.entry.js → p-42a7b112.entry.js} +1 -1
  277. package/dist/ionic/{p-e239ab05.system.entry.js → p-4616f20a.system.entry.js} +1 -1
  278. package/dist/ionic/{p-4e1a58c6.system.entry.js → p-486b567b.system.entry.js} +1 -1
  279. package/dist/ionic/{p-dfee12f6.entry.js → p-4912b933.entry.js} +1 -1
  280. package/dist/ionic/{p-3d575698.system.entry.js → p-4a1ac160.system.entry.js} +1 -1
  281. package/dist/ionic/{p-b052b578.entry.js → p-4eab1bb4.entry.js} +1 -1
  282. package/dist/ionic/{p-264b5dd9.system.entry.js → p-53bbd357.system.entry.js} +1 -1
  283. package/dist/ionic/{p-9b53c813.entry.js → p-55b99166.entry.js} +1 -1
  284. package/dist/ionic/{p-e3ca182a.entry.js → p-568fec78.entry.js} +1 -1
  285. package/dist/ionic/{p-9be96bf3.system.entry.js → p-5c8c9748.system.entry.js} +1 -1
  286. package/dist/ionic/{p-d57e8b06.js → p-5e2dc8e0.js} +1 -1
  287. package/dist/ionic/{p-3c325277.js → p-5e43aa8b.js} +1 -1
  288. package/dist/ionic/{p-810f1bc9.system.entry.js → p-5e84b718.system.entry.js} +1 -1
  289. package/dist/ionic/{p-60f22efc.system.entry.js → p-60838ce3.system.entry.js} +1 -1
  290. package/dist/ionic/{p-5080e623.system.entry.js → p-62428e04.system.entry.js} +1 -1
  291. package/dist/ionic/{p-516421e2.system.entry.js → p-626f7142.system.entry.js} +1 -1
  292. package/dist/ionic/{p-a8270ae8.system.entry.js → p-63a73b69.system.entry.js} +1 -1
  293. package/dist/ionic/{p-5163baf4.system.entry.js → p-6522a762.system.entry.js} +1 -1
  294. package/dist/ionic/{p-a037b6d5.system.entry.js → p-65a4c12f.system.entry.js} +1 -1
  295. package/dist/ionic/{p-563068af.js → p-6b7e74ba.js} +1 -1
  296. package/dist/ionic/{p-6eb7b33c.system.entry.js → p-6ba07931.system.entry.js} +1 -1
  297. package/dist/ionic/{p-c8c0d58a.system.entry.js → p-6bbf2815.system.entry.js} +1 -1
  298. package/dist/ionic/{p-74834696.system.entry.js → p-6bc9c436.system.entry.js} +1 -1
  299. package/dist/ionic/{p-ec344ed1.system.entry.js → p-6ca0e4b2.system.entry.js} +1 -1
  300. package/dist/ionic/p-6edbc09b.system.js +4 -0
  301. package/dist/ionic/{p-4446e19f.system.entry.js → p-700a2cb1.system.entry.js} +1 -1
  302. package/dist/ionic/p-70ab8b73.js +5 -0
  303. package/dist/ionic/{p-52edd6b0.entry.js → p-7129d04e.entry.js} +1 -1
  304. package/dist/ionic/p-72a1cbc7.js +4 -0
  305. package/dist/ionic/{p-2e5930dd.system.js → p-73f50e29.system.js} +1 -1
  306. package/dist/ionic/{p-204fb8f0.system.entry.js → p-76e8336d.system.entry.js} +1 -1
  307. package/dist/ionic/p-78a293a5.js +4 -0
  308. package/dist/ionic/p-7a3caa4e.system.js +4 -0
  309. package/dist/ionic/{p-32983529.system.entry.js → p-7dc0ee11.system.entry.js} +1 -1
  310. package/dist/ionic/{p-ab051966.entry.js → p-7e46b6ab.entry.js} +1 -1
  311. package/dist/ionic/p-7e9e16bf.system.entry.js +4 -0
  312. package/dist/ionic/{p-6276ba2f.system.entry.js → p-82da795c.system.entry.js} +1 -1
  313. package/dist/ionic/{p-9f3ad626.system.entry.js → p-82f58c25.system.entry.js} +1 -1
  314. package/dist/ionic/{p-5df94bf8.entry.js → p-83b7bbf9.entry.js} +1 -1
  315. package/dist/ionic/{p-ec7ff98b.entry.js → p-88ad9cb6.entry.js} +1 -1
  316. package/dist/ionic/{p-fdfc7b98.entry.js → p-8b79baf0.entry.js} +1 -1
  317. package/dist/ionic/{p-5260588f.system.entry.js → p-8e28945a.system.entry.js} +1 -1
  318. package/dist/ionic/p-8fdd4a2f.system.js +4 -0
  319. package/dist/ionic/{p-49f2eaa6.entry.js → p-90d892fd.entry.js} +1 -1
  320. package/dist/ionic/{p-2441ba84.system.js → p-91546be9.system.js} +1 -1
  321. package/dist/ionic/{p-a122ecd0.system.js → p-918d5f19.system.js} +1 -1
  322. package/dist/ionic/{p-ff3d728d.system.js → p-93616477.system.js} +1 -1
  323. package/dist/ionic/{p-629b0629.js → p-972763df.js} +1 -1
  324. package/dist/ionic/p-9f2e0db9.js +4 -0
  325. package/dist/ionic/{p-c2d6088f.entry.js → p-a1a2dd4d.entry.js} +1 -1
  326. package/dist/ionic/{p-c005eb67.system.entry.js → p-a6d8476b.system.entry.js} +1 -1
  327. package/dist/ionic/{p-28d8b87b.entry.js → p-a720dc73.entry.js} +1 -1
  328. package/dist/ionic/{p-84084b75.entry.js → p-a8d33949.entry.js} +1 -1
  329. package/dist/ionic/{p-70f4fbac.entry.js → p-ab7f8f4c.entry.js} +1 -1
  330. package/dist/ionic/{p-26276eb7.system.entry.js → p-abf426cd.system.entry.js} +1 -1
  331. package/dist/ionic/{p-9fccec52.system.js → p-b098f738.system.js} +1 -1
  332. package/dist/ionic/{p-eb91aee6.entry.js → p-b0dd4f33.entry.js} +1 -1
  333. package/dist/ionic/p-b132c2c0.system.js +4 -0
  334. package/dist/ionic/{p-b453b38d.entry.js → p-b49fe110.entry.js} +1 -1
  335. package/dist/ionic/{p-b703ebeb.system.entry.js → p-b5637aeb.system.entry.js} +1 -1
  336. package/dist/ionic/{p-d74363db.entry.js → p-b95fd3c6.entry.js} +1 -1
  337. package/dist/ionic/{p-ff0611e6.system.entry.js → p-be321bb6.system.entry.js} +1 -1
  338. package/dist/ionic/{p-7474a472.system.entry.js → p-bf8224f4.system.entry.js} +1 -1
  339. package/dist/ionic/{p-0dbfa45f.entry.js → p-bf9b1560.entry.js} +1 -1
  340. package/dist/ionic/{p-98bfaff3.system.entry.js → p-bfac43d7.system.entry.js} +1 -1
  341. package/dist/ionic/{p-574411f2.system.entry.js → p-c4d08d6d.system.entry.js} +1 -1
  342. package/dist/ionic/{p-d8d30fd1.system.entry.js → p-c5729044.system.entry.js} +1 -1
  343. package/dist/ionic/{p-07f5e286.entry.js → p-c7fca267.entry.js} +1 -1
  344. package/dist/ionic/{p-041ac2c3.entry.js → p-cc3aa152.entry.js} +1 -1
  345. package/dist/ionic/{p-6dff4431.entry.js → p-cd12dcd9.entry.js} +1 -1
  346. package/dist/ionic/{p-d0d09178.system.entry.js → p-cd675d89.system.entry.js} +1 -1
  347. package/dist/ionic/{p-ef8a8827.system.entry.js → p-ce24ddd7.system.entry.js} +1 -1
  348. package/dist/ionic/{p-b3f6f321.js → p-ce7a651e.js} +1 -1
  349. package/dist/ionic/{p-5e549223.system.js → p-d4cea1ba.system.js} +1 -1
  350. package/dist/ionic/{p-765e6339.entry.js → p-d8b2c214.entry.js} +1 -1
  351. package/dist/ionic/{p-2ac2278e.system.entry.js → p-de0f1af2.system.entry.js} +1 -1
  352. package/dist/ionic/{p-5a9dc764.system.entry.js → p-de676d36.system.entry.js} +1 -1
  353. package/dist/ionic/{p-22e92b06.system.entry.js → p-df699a02.system.entry.js} +1 -1
  354. package/dist/ionic/{p-99a3df5c.entry.js → p-e24630f9.entry.js} +1 -1
  355. package/dist/ionic/{p-3f15f60b.entry.js → p-e57a38f3.entry.js} +1 -1
  356. package/dist/ionic/{p-74ef17ea.system.entry.js → p-e89abe38.system.entry.js} +1 -1
  357. package/dist/ionic/{p-37c9e295.entry.js → p-ea88031d.entry.js} +1 -1
  358. package/dist/ionic/{p-47a11fc4.entry.js → p-ebaeeee8.entry.js} +1 -1
  359. package/dist/ionic/{p-a314559e.system.js → p-ec102360.system.js} +1 -1
  360. package/dist/ionic/{p-072f99fd.entry.js → p-ee6d9730.entry.js} +1 -1
  361. package/dist/ionic/{p-bacf09d3.entry.js → p-f0dcf99b.entry.js} +1 -1
  362. package/dist/ionic/p-f9015336.js +4 -0
  363. package/dist/ionic/{p-11d0977d.entry.js → p-f920f5ca.entry.js} +1 -1
  364. package/dist/ionic/p-f978ccd1.js +4 -0
  365. package/dist/types/components/checkbox/checkbox.d.ts +1 -0
  366. package/dist/types/components/item/item.d.ts +1 -0
  367. package/dist/types/components/range/range.d.ts +8 -0
  368. package/dist/types/utils/browser/index.d.ts +16 -1
  369. package/dist/types/utils/input-shims/hacks/scroll-data.d.ts +1 -1
  370. package/dist/types/utils/overlays.d.ts +5 -2
  371. package/hydrate/index.js +126 -38
  372. package/package.json +2 -2
  373. package/dist/esm-es5/app-globals-c7886b40.js +0 -4
  374. package/dist/esm-es5/input-shims-af993f05.js +0 -4
  375. package/dist/esm-es5/overlays-4565894b.js +0 -4
  376. package/dist/ionic/p-4531b920.system.js +0 -4
  377. package/dist/ionic/p-56495958.js +0 -4
  378. package/dist/ionic/p-6d640b2b.entry.js +0 -4
  379. package/dist/ionic/p-75d4ceab.js +0 -4
  380. package/dist/ionic/p-8f7edf3e.js +0 -4
  381. package/dist/ionic/p-a18eb556.js +0 -5
  382. package/dist/ionic/p-a533868d.system.js +0 -4
  383. package/dist/ionic/p-be187db3.entry.js +0 -4
  384. package/dist/ionic/p-bfee11b2.system.js +0 -4
  385. package/dist/ionic/p-c68a8814.system.js +0 -4
  386. package/dist/ionic/p-cc758251.system.entry.js +0 -4
  387. package/dist/ionic/p-d898dd46.js +0 -4
  388. package/dist/ionic/p-dacb0258.js +0 -4
  389. package/dist/ionic/p-ee55302a.system.entry.js +0 -4
  390. package/dist/ionic/p-f0c28fbd.entry.js +0 -4
  391. package/dist/ionic/p-fde174d6.system.entry.js +0 -4
@@ -1954,6 +1954,7 @@ const setValue = (ref, propName, newVal, cmpMeta) => {
1954
1954
  * @returns a reference to the same constructor passed in (but now mutated)
1955
1955
  */
1956
1956
  const proxyComponent = (Cstr, cmpMeta, flags) => {
1957
+ var _a;
1957
1958
  if (cmpMeta.$members$) {
1958
1959
  if (Cstr.watchers) {
1959
1960
  cmpMeta.$watchers$ = Cstr.watchers;
@@ -1991,7 +1992,7 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
1991
1992
  });
1992
1993
  if ((flags & 1 /* PROXY_FLAGS.isElementConstructor */)) {
1993
1994
  const attrNameToPropName = new Map();
1994
- prototype.attributeChangedCallback = function (attrName, _oldValue, newValue) {
1995
+ prototype.attributeChangedCallback = function (attrName, oldValue, newValue) {
1995
1996
  plt.jmp(() => {
1996
1997
  const propName = attrNameToPropName.get(attrName);
1997
1998
  // In a web component lifecycle the attributeChangedCallback runs prior to connectedCallback
@@ -2039,21 +2040,49 @@ const proxyComponent = (Cstr, cmpMeta, flags) => {
2039
2040
  // `propName` to be converted to a `DOMString`, which may not be what we want for other primitive props.
2040
2041
  return;
2041
2042
  }
2043
+ else if (propName == null) {
2044
+ // At this point we should know this is not a "member", so we can treat it like watching an attribute
2045
+ // on a vanilla web component
2046
+ const hostRef = getHostRef(this);
2047
+ const flags = hostRef === null || hostRef === void 0 ? void 0 : hostRef.$flags$;
2048
+ // We only want to trigger the callback(s) if:
2049
+ // 1. The instance is ready
2050
+ // 2. The watchers are ready
2051
+ // 3. The value has changed
2052
+ if (!(flags & 8 /* HOST_FLAGS.isConstructingInstance */) &&
2053
+ flags & 128 /* HOST_FLAGS.isWatchReady */ &&
2054
+ newValue !== oldValue) {
2055
+ const instance = hostRef.$lazyInstance$ ;
2056
+ const entry = cmpMeta.$watchers$[attrName];
2057
+ entry === null || entry === void 0 ? void 0 : entry.forEach((callbackName) => {
2058
+ if (instance[callbackName] != null) {
2059
+ instance[callbackName].call(instance, newValue, oldValue, attrName);
2060
+ }
2061
+ });
2062
+ }
2063
+ return;
2064
+ }
2042
2065
  this[propName] = newValue === null && typeof this[propName] === 'boolean' ? false : newValue;
2043
2066
  });
2044
2067
  };
2045
- // create an array of attributes to observe
2046
- // and also create a map of html attribute name to js property name
2047
- Cstr.observedAttributes = members
2048
- .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */) // filter to only keep props that should match attributes
2049
- .map(([propName, m]) => {
2050
- const attrName = m[1] || propName;
2051
- attrNameToPropName.set(attrName, propName);
2052
- if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
2053
- cmpMeta.$attrsToReflect$.push([propName, attrName]);
2054
- }
2055
- return attrName;
2056
- });
2068
+ // Create an array of attributes to observe
2069
+ // This list in comprised of all strings used within a `@Watch()` decorator
2070
+ // on a component as well as any Stencil-specific "members" (`@Prop()`s and `@State()`s).
2071
+ // As such, there is no way to guarantee type-safety here that a user hasn't entered
2072
+ // an invalid attribute.
2073
+ Cstr.observedAttributes = Array.from(new Set([
2074
+ ...Object.keys((_a = cmpMeta.$watchers$) !== null && _a !== void 0 ? _a : {}),
2075
+ ...members
2076
+ .filter(([_, m]) => m[0] & 15 /* MEMBER_FLAGS.HasAttribute */)
2077
+ .map(([propName, m]) => {
2078
+ const attrName = m[1] || propName;
2079
+ attrNameToPropName.set(attrName, propName);
2080
+ if (m[0] & 512 /* MEMBER_FLAGS.ReflectAttr */) {
2081
+ cmpMeta.$attrsToReflect$.push([propName, attrName]);
2082
+ }
2083
+ return attrName;
2084
+ }),
2085
+ ]));
2057
2086
  }
2058
2087
  }
2059
2088
  return Cstr;
@@ -2285,6 +2314,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2285
2314
  }
2286
2315
  lazyBundles.map((lazyBundle) => {
2287
2316
  lazyBundle[1].map((compactMeta) => {
2317
+ var _a;
2288
2318
  const cmpMeta = {
2289
2319
  $flags$: compactMeta[0],
2290
2320
  $tagName$: compactMeta[1],
@@ -2301,7 +2331,7 @@ const bootstrapLazy = (lazyBundles, options = {}) => {
2301
2331
  cmpMeta.$attrsToReflect$ = [];
2302
2332
  }
2303
2333
  {
2304
- cmpMeta.$watchers$ = {};
2334
+ cmpMeta.$watchers$ = (_a = compactMeta[4]) !== null && _a !== void 0 ? _a : {};
2305
2335
  }
2306
2336
  const tagName = cmpMeta.$tagName$;
2307
2337
  const HostElement = class extends HTMLElement {
@@ -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-9080266a.js';
6
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
7
7
  import { c as createAnimation } from './animation-a1d9e088.js';
8
8
 
9
9
  /**
@@ -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-adfb2000.js';
4
+ import { w as writeTask, B as Build } from './index-2d388930.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-f43871cd.js');
14
- const mdTransitionAnimation = () => import('./md.transition-12d21ad0.js');
13
+ const iosTransitionAnimation = () => import('./ios.transition-81e1aed6.js');
14
+ const mdTransitionAnimation = () => import('./md.transition-5becd8b5.js');
15
15
  // TODO(FW-2832): types
16
16
  const transition = (opts) => {
17
17
  return new Promise((resolve, reject) => {
package/dist/esm/index.js CHANGED
@@ -2,18 +2,18 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  export { c as createAnimation } from './animation-a1d9e088.js';
5
- 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, g as getIonPageElement } from './index-01839411.js';
6
- export { iosTransitionAnimation } from './ios.transition-f43871cd.js';
7
- export { mdTransitionAnimation } from './md.transition-12d21ad0.js';
5
+ 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, g as getIonPageElement } from './index-87684bba.js';
6
+ export { iosTransitionAnimation } from './ios.transition-81e1aed6.js';
7
+ export { mdTransitionAnimation } from './md.transition-5becd8b5.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
9
9
  export { createGesture } from './index-ff313b19.js';
10
- export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-9080266a.js';
10
+ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-b3fc28dd.js';
11
11
  export { c as componentOnReady } from './helpers-3379ba19.js';
12
12
  export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-96c9ace3.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';
13
+ export { m as menuController } from './index-61bddc90.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-8fc6656c.js';
15
15
  import './index-7a14ecec.js';
16
- import './index-adfb2000.js';
16
+ import './index-2d388930.js';
17
17
  import './gesture-controller-0fa396c4.js';
18
18
  import './hardware-back-button-39299f84.js';
19
19
  import './framework-delegate-aa433dea.js';
@@ -4,9 +4,9 @@
4
4
  import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index-746a238e.js';
5
5
  import { a as addEventListener, b as removeEventListener, r as raf, c as componentOnReady } from './helpers-3379ba19.js';
6
6
  import { a as KeyboardResize, K as Keyboard } from './keyboard-b063f012.js';
7
+ import { w as win } from './index-7a14ecec.js';
7
8
  import './index-595d62c9.js';
8
9
  import './capacitor-b4979570.js';
9
- import './index-7a14ecec.js';
10
10
 
11
11
  const cloneMap = new WeakMap();
12
12
  const relocateInput = (componentEl, inputEl, shouldRelocate, inputRelativeY = 0, disabledClonedInput = false) => {
@@ -153,11 +153,10 @@ const enableInputBlurring = () => {
153
153
  };
154
154
 
155
155
  const SCROLL_ASSIST_SPEED = 0.3;
156
- const getScrollData = (componentEl, contentEl, keyboardHeight) => {
156
+ const getScrollData = (componentEl, contentEl, keyboardHeight, platformHeight) => {
157
157
  var _a;
158
158
  const itemEl = (_a = componentEl.closest('ion-item,[ion-item]')) !== null && _a !== void 0 ? _a : componentEl;
159
- return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, componentEl.ownerDocument.defaultView.innerHeight // TODO(FW-2832): type
160
- );
159
+ return calcScrollData(itemEl.getBoundingClientRect(), contentEl.getBoundingClientRect(), keyboardHeight, platformHeight);
161
160
  };
162
161
  const calcScrollData = (inputRect, contentRect, keyboardHeight, platformHeight) => {
163
162
  // compute input's Y values relative to the body
@@ -256,6 +255,83 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
256
255
  * Resize info is available on Capacitor 4+
257
256
  */
258
257
  const addScrollPadding = enableScrollPadding && (keyboardResize === undefined || keyboardResize.mode === KeyboardResize.None);
258
+ /**
259
+ * This tracks whether or not the keyboard has been
260
+ * presented for a single focused text field. Note
261
+ * that it does not track if the keyboard is open
262
+ * in general such as if the keyboard is open for
263
+ * a different focused text field.
264
+ */
265
+ let hasKeyboardBeenPresentedForTextField = false;
266
+ /**
267
+ * When adding scroll padding we need to know
268
+ * how much of the viewport the keyboard obscures.
269
+ * We do this by subtracting the keyboard height
270
+ * from the platform height.
271
+ *
272
+ * If we compute this value when switching between
273
+ * inputs then the webview may already be resized.
274
+ * At this point, `win.innerHeight` has already accounted
275
+ * for the keyboard meaning we would then subtract
276
+ * the keyboard height again. This will result in the input
277
+ * being scrolled more than it needs to.
278
+ */
279
+ const platformHeight = win !== undefined ? win.innerHeight : 0;
280
+ /**
281
+ * Scroll assist is run when a text field
282
+ * is focused. However, it may need to
283
+ * re-run when the keyboard size changes
284
+ * such that the text field is now hidden
285
+ * underneath the keyboard.
286
+ * This function re-runs scroll assist
287
+ * when that happens.
288
+ *
289
+ * One limitation of this is on a web browser
290
+ * where native keyboard APIs do not have cross-browser
291
+ * support. `ionKeyboardDidShow` relies on the Visual Viewport API.
292
+ * This means that if the keyboard changes but does not change
293
+ * geometry, then scroll assist will not re-run even if
294
+ * the user has scrolled the text field under the keyboard.
295
+ * This is not a problem when running in Cordova/Capacitor
296
+ * because `ionKeyboardDidShow` uses the native events
297
+ * which fire every time the keyboard changes.
298
+ */
299
+ const keyboardShow = (ev) => {
300
+ /**
301
+ * If the keyboard has not yet been presented
302
+ * for this text field then the text field has just
303
+ * received focus. In that case, the focusin listener
304
+ * will run scroll assist.
305
+ */
306
+ if (hasKeyboardBeenPresentedForTextField === false) {
307
+ hasKeyboardBeenPresentedForTextField = true;
308
+ return;
309
+ }
310
+ /**
311
+ * Otherwise, the keyboard has already been presented
312
+ * for the focused text field.
313
+ * This means that the keyboard likely changed
314
+ * geometry, and we need to re-run scroll assist.
315
+ * This can happen when the user rotates their device
316
+ * or when they switch keyboards.
317
+ *
318
+ * Make sure we pass in the computed keyboard height
319
+ * rather than the estimated keyboard height.
320
+ *
321
+ * Since the keyboard is already open then we do not
322
+ * need to wait for the webview to resize, so we pass
323
+ * "waitForResize: false".
324
+ */
325
+ jsSetFocus(componentEl, inputEl, contentEl, footerEl, ev.detail.keyboardHeight, addScrollPadding, disableClonedInput, platformHeight, false);
326
+ };
327
+ /**
328
+ * Reset the internal state when the text field loses focus.
329
+ */
330
+ const focusOut = () => {
331
+ hasKeyboardBeenPresentedForTextField = false;
332
+ win === null || win === void 0 ? void 0 : win.removeEventListener('ionKeyboardDidShow', keyboardShow);
333
+ componentEl.removeEventListener('focusout', focusOut, true);
334
+ };
259
335
  /**
260
336
  * When the input is about to receive
261
337
  * focus, we need to move it to prevent
@@ -272,11 +348,15 @@ const enableScrollAssist = (componentEl, inputEl, contentEl, footerEl, keyboardH
272
348
  inputEl.removeAttribute(SKIP_SCROLL_ASSIST);
273
349
  return;
274
350
  }
275
- jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput);
351
+ jsSetFocus(componentEl, inputEl, contentEl, footerEl, keyboardHeight, addScrollPadding, disableClonedInput, platformHeight);
352
+ win === null || win === void 0 ? void 0 : win.addEventListener('ionKeyboardDidShow', keyboardShow);
353
+ componentEl.addEventListener('focusout', focusOut, true);
276
354
  };
277
355
  componentEl.addEventListener('focusin', focusIn, true);
278
356
  return () => {
279
357
  componentEl.removeEventListener('focusin', focusIn, true);
358
+ win === null || win === void 0 ? void 0 : win.removeEventListener('ionKeyboardDidShow', keyboardShow);
359
+ componentEl.removeEventListener('focusout', focusOut, true);
280
360
  };
281
361
  };
282
362
  /**
@@ -295,11 +375,11 @@ const setManualFocus = (el) => {
295
375
  el.setAttribute(SKIP_SCROLL_ASSIST, 'true');
296
376
  el.focus();
297
377
  };
298
- const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false) => {
378
+ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHeight, enableScrollPadding, disableClonedInput = false, platformHeight = 0, waitForResize = true) => {
299
379
  if (!contentEl && !footerEl) {
300
380
  return;
301
381
  }
302
- const scrollData = getScrollData(componentEl, (contentEl || footerEl), keyboardHeight);
382
+ const scrollData = getScrollData(componentEl, (contentEl || footerEl), keyboardHeight, platformHeight);
303
383
  if (contentEl && Math.abs(scrollData.scrollAmount) < 4) {
304
384
  // the text input is in a safe position that doesn't
305
385
  // require it to be scrolled into view, just set focus now
@@ -386,7 +466,7 @@ const jsSetFocus = async (componentEl, inputEl, contentEl, footerEl, keyboardHei
386
466
  * bandwidth to become available.
387
467
  */
388
468
  const totalScrollAmount = scrollEl.scrollHeight - scrollEl.clientHeight;
389
- if (scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
469
+ if (waitForResize && scrollData.scrollAmount > totalScrollAmount - scrollEl.scrollTop) {
390
470
  /**
391
471
  * On iOS devices, the system will show a "Passwords" bar above the keyboard
392
472
  * 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-adfb2000.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement, d as createEvent } from './index-2d388930.js';
5
5
  import { r as raf, t as transitionEndAsync, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers-3379ba19.js';
6
6
  import { l as chevronDown } from './index-ecfc2c9f.js';
7
- import { c as config, b as getIonMode } from './ionic-global-9080266a.js';
7
+ import { c as config, b as getIonMode } from './ionic-global-b3fc28dd.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}";
@@ -1,13 +1,13 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, e as readTask, h, H as Host, f as getElement } from './index-adfb2000.js';
5
- import { c as createButtonActiveGesture } from './button-active-b76ae4ec.js';
4
+ import { r as registerInstance, d as createEvent, e as readTask, h, H as Host, f as getElement } from './index-2d388930.js';
5
+ import { c as createButtonActiveGesture } from './button-active-513e9fff.js';
6
6
  import { r as raf } from './helpers-3379ba19.js';
7
7
  import { c as createLockController } from './lock-controller-e8c6c051.js';
8
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-4565894b.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-8fc6656c.js';
9
9
  import { g as getClassMap } from './theme-17531cdf.js';
10
- import { b as getIonMode } from './ionic-global-9080266a.js';
10
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
11
11
  import { c as createAnimation } from './animation-a1d9e088.js';
12
12
  import './haptic-6447af60.js';
13
13
  import './capacitor-b4979570.js';
@@ -1,14 +1,14 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, i as forceUpdate, h, H as Host, f as getElement } from './index-adfb2000.js';
4
+ import { r as registerInstance, d as createEvent, i as forceUpdate, h, H as Host, f as getElement } from './index-2d388930.js';
5
5
  import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-96c9ace3.js';
6
- import { c as createButtonActiveGesture } from './button-active-b76ae4ec.js';
6
+ import { c as createButtonActiveGesture } from './button-active-513e9fff.js';
7
7
  import { r as raf } from './helpers-3379ba19.js';
8
8
  import { c as createLockController } from './lock-controller-e8c6c051.js';
9
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-4565894b.js';
9
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-8fc6656c.js';
10
10
  import { g as getClassMap } from './theme-17531cdf.js';
11
- import { c as config, b as getIonMode } from './ionic-global-9080266a.js';
11
+ import { c as config, b as getIonMode } from './ionic-global-b3fc28dd.js';
12
12
  import { c as createAnimation } from './animation-a1d9e088.js';
13
13
  import './haptic-6447af60.js';
14
14
  import './capacitor-b4979570.js';
@@ -1,8 +1,8 @@
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, e as readTask, i as forceUpdate, w as writeTask } from './index-adfb2000.js';
5
- import { b as getIonMode, c as config, a as isPlatform } from './ionic-global-9080266a.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement, d as createEvent, e as readTask, i as forceUpdate, w as writeTask } from './index-2d388930.js';
5
+ import { b as getIonMode, c as config, a as isPlatform } from './ionic-global-b3fc28dd.js';
6
6
  import { c as componentOnReady, l as clamp, i as inheritAriaAttributes, s as shallowEqualStringMap, m as hasLazyBuild } from './helpers-3379ba19.js';
7
7
  import { i as isRTL } from './dir-912e3e13.js';
8
8
  import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
@@ -10,7 +10,7 @@ import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElemen
10
10
  import { c as createKeyboardController } from './keyboard-controller-0c2dce71.js';
11
11
  import { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
12
12
  import { a as attachComponent, d as detachComponent } from './framework-delegate-aa433dea.js';
13
- import { t as transition } from './index-01839411.js';
13
+ import { t as transition } from './index-87684bba.js';
14
14
  import './index-595d62c9.js';
15
15
  import './index-7a14ecec.js';
16
16
  import './keyboard-b063f012.js';
@@ -30,7 +30,7 @@ const App = class {
30
30
  import('./index-f0cc4e14.js').then((module) => module.startTapClick(config));
31
31
  }
32
32
  if (config.getBoolean('statusTap', isHybrid)) {
33
- import('./status-tap-121c711d.js').then((module) => module.startStatusTap());
33
+ import('./status-tap-c5af0dba.js').then((module) => module.startStatusTap());
34
34
  }
35
35
  if (config.getBoolean('inputShims', needInputShims())) {
36
36
  /**
@@ -38,7 +38,7 @@ const App = class {
38
38
  * platforms proceed into this block.
39
39
  */
40
40
  const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
41
- import('./input-shims-af993f05.js').then((module) => module.startInputShims(config, platform));
41
+ import('./input-shims-d78a3c77.js').then((module) => module.startInputShims(config, platform));
42
42
  }
43
43
  const hardwareBackButtonModule = await import('./hardware-back-button-39299f84.js');
44
44
  if (config.getBoolean('hardwareBackButton', isHybrid)) {
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host } from './index-adfb2000.js';
5
- import { b as getIonMode } from './ionic-global-9080266a.js';
4
+ import { r as registerInstance, h, H as Host } from './index-2d388930.js';
5
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
6
6
  import { c as createColorClasses } from './theme-17531cdf.js';
7
7
 
8
8
  const avatarIosCss = ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}";
@@ -1,11 +1,11 @@
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 } from './index-adfb2000.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement } from './index-2d388930.js';
5
5
  import { i as inheritAriaAttributes } from './helpers-3379ba19.js';
6
6
  import { o as openURL, c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
7
7
  import { c as chevronBack, a as arrowBackSharp } from './index-ecfc2c9f.js';
8
- import { c as config, b as getIonMode } from './ionic-global-9080266a.js';
8
+ import { c as config, b as getIonMode } from './ionic-global-b3fc28dd.js';
9
9
 
10
10
  const backButtonIosCss = ":host{--background:transparent;--color-focused:currentColor;--color-hover:currentColor;--icon-margin-top:0;--icon-margin-bottom:0;--icon-padding-top:0;--icon-padding-end:0;--icon-padding-bottom:0;--icon-padding-start:0;--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--min-width:auto;--min-height:auto;--padding-top:0;--padding-end:0;--padding-bottom:0;--padding-start:0;--opacity:1;--ripple-color:currentColor;--transition:background-color, opacity 100ms linear;display:none;min-width:var(--min-width);min-height:var(--min-height);color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;text-overflow:ellipsis;text-transform:none;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-font-kerning:none;font-kerning:none}ion-ripple-effect{color:var(--ripple-color)}:host(.ion-color) .button-native{color:var(--ion-color-base)}:host(.show-back-button){display:block}:host(.back-button-disabled){cursor:default;opacity:0.5;pointer-events:none}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:block;position:relative;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border:0;outline:none;background:var(--background);line-height:1;cursor:pointer;opacity:var(--opacity);overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}ion-icon{-webkit-padding-start:var(--icon-padding-start);padding-inline-start:var(--icon-padding-start);-webkit-padding-end:var(--icon-padding-end);padding-inline-end:var(--icon-padding-end);padding-top:var(--icon-padding-top);padding-bottom:var(--icon-padding-bottom);-webkit-margin-start:var(--icon-margin-start);margin-inline-start:var(--icon-margin-start);-webkit-margin-end:var(--icon-margin-end);margin-inline-end:var(--icon-margin-end);margin-top:var(--icon-margin-top);margin-bottom:var(--icon-margin-bottom);display:inherit;font-size:var(--icon-font-size);font-weight:var(--icon-font-weight);pointer-events:none}:host(.ion-focused) .button-native{color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0}@media (any-hover: hover){:host(:hover) .button-native{color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-color.ion-focused) .button-native{color:var(--ion-color-base)}@media (any-hover: hover){:host(.ion-color:hover) .button-native{color:var(--ion-color-base)}}:host(.in-toolbar:not(.in-toolbar-color)){color:var(--ion-toolbar-color, var(--color))}:host{--background-hover:transparent;--background-hover-opacity:1;--background-focused:currentColor;--background-focused-opacity:.1;--border-radius:4px;--color:var(--ion-color-primary, #3880ff);--icon-margin-end:1px;--icon-margin-start:-4px;--icon-font-size:1.6em;--min-height:32px;font-size:17px}.button-native{-webkit-transform:translateZ(0);transform:translateZ(0);overflow:visible;z-index:99}:host(.ion-activated) .button-native{opacity:0.4}@media (any-hover: hover){:host(:hover){opacity:0.6}}";
11
11
 
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host } from './index-adfb2000.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host } from './index-2d388930.js';
5
5
  import { G as GESTURE_CONTROLLER } from './gesture-controller-0fa396c4.js';
6
- import { b as getIonMode } from './ionic-global-9080266a.js';
6
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
7
7
 
8
8
  const backdropIosCss = ":host{left:0;right:0;top:0;bottom:0;display:block;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);contain:strict;cursor:pointer;opacity:0.01;-ms-touch-action:none;touch-action:none;z-index:2}:host(.backdrop-hide){background:transparent}:host(.backdrop-no-tappable){cursor:auto}:host{background-color:var(--ion-backdrop-color, #000)}";
9
9
 
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-adfb2000.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-2d388930.js';
5
5
  import { i as inheritAriaAttributes } from './helpers-3379ba19.js';
6
6
  import { o as openURL, c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
7
7
  import { m as chevronForwardOutline, n as ellipsisHorizontal } from './index-ecfc2c9f.js';
8
- import { b as getIonMode } from './ionic-global-9080266a.js';
8
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
9
9
 
10
10
  const breadcrumbIosCss = ":host{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-align:center;align-items:center;color:var(--color);font-size:16px;font-weight:400;line-height:1.5}.breadcrumb-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:100%;outline:none;background:inherit}:host(.breadcrumb-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.breadcrumb-active){color:var(--color-active)}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .breadcrumb-native{background:var(--background-focused)}@media (any-hover: hover){:host(.ion-activatable:hover){color:var(--color-hover)}:host(.ion-activatable.in-breadcrumbs-color:hover),:host(.ion-activatable.ion-color:hover){color:var(--ion-color-shade)}}.breadcrumb-separator{display:-ms-inline-flexbox;display:inline-flex}:host(.breadcrumb-collapsed) .breadcrumb-native{display:none}:host(.in-breadcrumbs-color),:host(.in-breadcrumbs-color.breadcrumb-active){color:var(--ion-color-base)}:host(.in-breadcrumbs-color) .breadcrumb-separator{color:var(--ion-color-base)}:host(.ion-color){color:var(--ion-color-base)}:host(.in-toolbar-color),:host(.in-toolbar-color) .breadcrumb-separator{color:rgba(var(--ion-color-contrast-rgb), 0.8)}:host(.in-toolbar-color.breadcrumb-active){color:var(--ion-color-contrast)}.breadcrumbs-collapsed-indicator{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;-webkit-margin-start:14px;margin-inline-start:14px;-webkit-margin-end:14px;margin-inline-end:14px;margin-top:0;margin-bottom:0;display:-ms-flexbox;display:flex;-ms-flex:1 1 100%;flex:1 1 100%;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:32px;height:18px;border:0;outline:none;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.breadcrumbs-collapsed-indicator ion-icon{margin-top:1px;font-size:22px}:host{--color:var(--ion-color-step-850, #2d4665);--color-active:var(--ion-text-color, #03060b);--color-hover:var(--ion-text-color, #03060b);--color-focused:var(--color-active);--background-focused:var(--ion-color-step-50, rgba(233, 237, 243, 0.7))}:host(.breadcrumb-active){font-weight:600}.breadcrumb-native{border-radius:4px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:5px;padding-bottom:5px;border:1px solid transparent}:host(.ion-focused) .breadcrumb-native{border-radius:8px}:host(.in-breadcrumbs-color.ion-focused) .breadcrumb-native,:host(.ion-color.ion-focused) .breadcrumb-native{background:rgba(var(--ion-color-base-rgb), 0.1);color:var(--ion-color-base)}:host(.ion-focused) ::slotted(ion-icon),:host(.in-breadcrumbs-color.ion-focused) ::slotted(ion-icon),:host(.ion-color.ion-focused) ::slotted(ion-icon){color:var(--ion-color-step-750, #445b78)}.breadcrumb-separator{color:var(--ion-color-step-550, #73849a)}::slotted(ion-icon){color:var(--ion-color-step-400, #92a0b3);font-size:18px}::slotted(ion-icon[slot=start]){-webkit-margin-end:8px;margin-inline-end:8px}::slotted(ion-icon[slot=end]){-webkit-margin-start:8px;margin-inline-start:8px}:host(.breadcrumb-active) ::slotted(ion-icon){color:var(--ion-color-step-850, #242d39)}.breadcrumbs-collapsed-indicator{border-radius:4px;background:var(--ion-color-step-100, #e9edf3);color:var(--ion-color-step-550, #73849a)}.breadcrumbs-collapsed-indicator:hover{opacity:0.45}.breadcrumbs-collapsed-indicator:focus{background:var(--ion-color-step-150, #d9e0ea)}";
11
11
 
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { j as getAssetPath, r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-adfb2000.js';
4
+ import { j as getAssetPath, r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-2d388930.js';
5
5
  import { n as hasShadowDom, i as inheritAriaAttributes } from './helpers-3379ba19.js';
6
6
  import { p as printIonWarning } from './index-595d62c9.js';
7
7
  import { o as openURL, c as createColorClasses$1, h as hostContext } from './theme-17531cdf.js';
8
- import { b as getIonMode$1 } from './ionic-global-9080266a.js';
8
+ import { b as getIonMode$1 } from './ionic-global-b3fc28dd.js';
9
9
 
10
10
  let CACHED_MAP;
11
11
  const getIconMap = () => {
@@ -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 } from './index-adfb2000.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement } from './index-2d388930.js';
5
5
  import { k as inheritAttributes } from './helpers-3379ba19.js';
6
6
  import { o as openURL, c as createColorClasses } from './theme-17531cdf.js';
7
- import { b as getIonMode } from './ionic-global-9080266a.js';
7
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
8
8
 
9
9
  const cardIosCss = ":host{--ion-safe-area-left:0px;--ion-safe-area-right:0px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.card-disabled){cursor:default;opacity:0.3;pointer-events:none}.card-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;min-height:var(--min-height);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:inherit}.card-native::-moz-focus-inner{border:0}button,a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}ion-ripple-effect{color:var(--ripple-color)}:host{--background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));--color:var(--ion-card-color, var(--ion-item-color, var(--ion-color-step-600, #666666)));-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:24px;margin-bottom:24px;border-radius:8px;-webkit-transition:-webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:-webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1), -webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);font-size:14px;-webkit-box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12)}:host(.ion-activated){-webkit-transform:scale3d(0.97, 0.97, 1);transform:scale3d(0.97, 0.97, 1)}";
10
10
 
@@ -1,12 +1,12 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-adfb2000.js';
4
+ import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-2d388930.js';
5
5
  import { c as createLegacyFormController } from './form-controller-ed77647a.js';
6
6
  import { i as inheritAriaAttributes, d as renderHiddenInput, e as getAriaLabel } from './helpers-3379ba19.js';
7
7
  import { p as printIonWarning } from './index-595d62c9.js';
8
8
  import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
9
- import { b as getIonMode } from './ionic-global-9080266a.js';
9
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
10
10
 
11
11
  const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #3880ff);--border-color-checked:var(--ion-color-primary, #3880ff);--checkmark-color:var(--ion-color-primary-contrast, #fff);--checkmark-width:1;--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){width:100%;height:100%}:host([slot=start]:not(.legacy-checkbox)),:host([slot=end]:not(.legacy-checkbox)){width:auto}:host(.legacy-checkbox){width:var(--size);height:var(--size)}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}:host(.legacy-checkbox) label{top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}@supports (inset-inline-start: 0){:host(.legacy-checkbox) label{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host(.legacy-checkbox) label{left:0}:host-context([dir=rtl]):host(.legacy-checkbox) label,:host-context([dir=rtl]).legacy-checkbox label{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(.legacy-checkbox) label:dir(rtl){left:unset;right:unset;right:0}}}:host(.legacy-checkbox) label::-moz-focus-inner{border:0}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit;cursor:inherit}.label-text-wrapper{pointer-events:none;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item:not(.legacy-checkbox)) .label-text-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.legacy-checkbox) .checkbox-icon{display:block;width:100%;height:100%}:host(:not(.legacy-checkbox)) .checkbox-icon{width:var(--size);height:var(--size)}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper:dir(rtl){-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:1px;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:26px}:host(.checkbox-disabled){opacity:0.3}:host(.in-item.legacy-checkbox){-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:9px;display:block;position:static}:host(.in-item.legacy-checkbox[slot=start]){-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:8px;margin-bottom:8px}";
12
12
 
@@ -49,6 +49,9 @@ const Checkbox = class {
49
49
  this.onBlur = () => {
50
50
  this.ionBlur.emit();
51
51
  };
52
+ this.onClick = (ev) => {
53
+ this.toggleChecked(ev);
54
+ };
52
55
  this.color = undefined;
53
56
  this.name = this.inputId;
54
57
  this.checked = false;
@@ -60,9 +63,8 @@ const Checkbox = class {
60
63
  this.alignment = 'center';
61
64
  this.legacy = undefined;
62
65
  }
63
- // TODO(FW-3100): remove this
64
66
  connectedCallback() {
65
- this.legacyFormController = createLegacyFormController(this.el);
67
+ this.legacyFormController = createLegacyFormController(this.el); // TODO(FW-3100): remove this
66
68
  }
67
69
  componentWillLoad() {
68
70
  this.emitStyle();
@@ -109,7 +111,7 @@ const Checkbox = class {
109
111
  [`checkbox-justify-${justify}`]: true,
110
112
  [`checkbox-alignment-${alignment}`]: true,
111
113
  [`checkbox-label-placement-${labelPlacement}`]: true,
112
- }) }, h("label", { class: "checkbox-wrapper" }, h("input", Object.assign({ type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), h("div", { class: {
114
+ }), onClick: this.onClick }, h("label", { class: "checkbox-wrapper" }, h("input", Object.assign({ type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), h("div", { class: {
113
115
  'label-text-wrapper': true,
114
116
  'label-text-wrapper-hidden': el.textContent === '',
115
117
  } }, h("slot", null)), h("div", { class: "native-wrapper" }, h("svg", { class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
@@ -142,7 +144,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
142
144
  'checkbox-indeterminate': indeterminate,
143
145
  'legacy-checkbox': true,
144
146
  interactive: true,
145
- }) }, h("svg", { class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path), h("label", { htmlFor: inputId }, labelText), h("input", { type: "checkbox", "aria-checked": `${checked}`, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) })));
147
+ }), onClick: this.onClick }, h("svg", { class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path), h("label", { htmlFor: inputId }, labelText), h("input", { type: "checkbox", "aria-checked": `${checked}`, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) })));
146
148
  }
147
149
  getSVGPath(mode, indeterminate) {
148
150
  let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -1,9 +1,9 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, H as Host } from './index-adfb2000.js';
4
+ import { r as registerInstance, h, H as Host } from './index-2d388930.js';
5
5
  import { c as createColorClasses } from './theme-17531cdf.js';
6
- import { b as getIonMode } from './ionic-global-9080266a.js';
6
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
7
7
 
8
8
  const chipCss = ":host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.12);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.87);border-radius:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:4px;margin-inline-end:4px;margin-top:4px;margin-bottom:4px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:7px;padding-bottom:7px;display:-ms-inline-flexbox;display:inline-flex;position:relative;-ms-flex-align:center;align-items:center;height:32px;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);font-size:14px;cursor:pointer;overflow:hidden;vertical-align:middle;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.chip-disabled){cursor:default;opacity:0.4;pointer-events:none}:host(.ion-color){background:rgba(var(--ion-color-base-rgb), 0.08);color:var(--ion-color-shade)}:host(.ion-color:focus){background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.ion-color.ion-activated){background:rgba(var(--ion-color-base-rgb), 0.16)}:host(.chip-outline){border-width:1px;border-style:solid}:host(.chip-outline){border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.32);background:transparent}:host(.chip-outline.ion-color){border-color:rgba(var(--ion-color-base-rgb), 0.32)}:host(.chip-outline:not(.ion-color):focus){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.04)}:host(.chip-outline.ion-activated:not(.ion-color)){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)}::slotted(ion-icon){font-size:20px}:host(:not(.ion-color)) ::slotted(ion-icon){color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}::slotted(ion-icon:first-child){-webkit-margin-start:-4px;margin-inline-start:-4px;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:-4px;margin-bottom:-4px}::slotted(ion-icon:last-child){-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:-4px;margin-inline-end:-4px;margin-top:-4px;margin-bottom:-4px}::slotted(ion-avatar){width:24px;height:24px}::slotted(ion-avatar:first-child){-webkit-margin-start:-8px;margin-inline-start:-8px;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:-4px;margin-bottom:-4px}::slotted(ion-avatar:last-child){-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:-8px;margin-inline-end:-8px;margin-top:-4px;margin-bottom:-4px}:host(:focus){outline:none}:host(:focus){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.16)}:host(.ion-activated){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@media (any-hover: hover){:host(:hover){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.16)}:host(.ion-color:hover){background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.chip-outline:not(.ion-color):hover){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.04)}}";
9
9
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, i as forceUpdate, h, H as Host } from './index-adfb2000.js';
5
- import { b as getIonMode } from './ionic-global-9080266a.js';
4
+ import { r as registerInstance, i as forceUpdate, h, H as Host } from './index-2d388930.js';
5
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
6
6
 
7
7
  const SIZE_TO_MEDIA = {
8
8
  xs: '(min-width: 0px)',
@@ -1,11 +1,11 @@
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 } from './index-adfb2000.js';
4
+ import { r as registerInstance, h, H as Host, f as getElement } from './index-2d388930.js';
5
5
  import { a as addEventListener, c as componentOnReady } from './helpers-3379ba19.js';
6
6
  import { a as printIonError } from './index-595d62c9.js';
7
7
  import { c as createColorClasses } from './theme-17531cdf.js';
8
- import { b as getIonMode } from './ionic-global-9080266a.js';
8
+ import { b as getIonMode } from './ionic-global-b3fc28dd.js';
9
9
  import { q as parseDate, t as getToday, J as is24Hour, S as getLocalizedDateTime, G as getMonthAndYear, K as getLocalizedTime, T as getMonthDayAndYear } from './data-009dbf15.js';
10
10
 
11
11
  const iosDatetimeButtonCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;overflow:hidden}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}";