@ionic/core 7.5.2-dev.11697834896.1fed55cc → 7.5.2-dev.11698269070.1738c1a7

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 (319) hide show
  1. package/components/action-sheet.js +3 -3
  2. package/components/alert.js +3 -3
  3. package/components/animation.js +29 -15
  4. package/components/backdrop.js +12 -5
  5. package/components/checkbox.js +0 -2
  6. package/components/index8.js +0 -1
  7. package/components/input-shims.js +9 -1
  8. package/components/ion-datetime.js +2 -2
  9. package/components/ion-fab.js +1 -1
  10. package/components/ion-input.js +9 -4
  11. package/components/ion-loading.js +1 -1
  12. package/components/ion-menu.js +15 -3
  13. package/components/ion-picker.js +1 -1
  14. package/components/ion-range.js +0 -2
  15. package/components/ion-refresher.js +8 -1
  16. package/components/ion-reorder.js +2 -2
  17. package/components/ion-searchbar.js +9 -2
  18. package/components/ion-select.js +2 -4
  19. package/components/ion-skeleton-text.js +1 -14
  20. package/components/ion-textarea.js +9 -4
  21. package/components/ion-toggle.js +0 -2
  22. package/components/item.js +2 -2
  23. package/components/label.js +2 -2
  24. package/components/overlays.js +6 -0
  25. package/components/popover.js +1 -1
  26. package/components/radio.js +0 -3
  27. package/components/watch-options.js +14 -3
  28. package/css/core.css.map +1 -1
  29. package/css/ionic.bundle.css.map +1 -1
  30. package/dist/cjs/{animation-1a53c50e.js → animation-1083855c.js} +29 -15
  31. package/dist/cjs/{index-d0fdb56d.js → index-174dc666.js} +2 -2
  32. package/dist/cjs/{index-4eedbc59.js → index-5a2463aa.js} +1 -1
  33. package/dist/cjs/{index-10873539.js → index-da2c7a37.js} +0 -1
  34. package/dist/cjs/index.cjs.js +6 -6
  35. package/dist/cjs/{input-shims-da7dc0de.js → input-shims-b0a75a01.js} +10 -2
  36. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  37. package/dist/cjs/ion-alert.cjs.entry.js +5 -5
  38. package/dist/cjs/ion-app_8.cjs.entry.js +4 -4
  39. package/dist/cjs/ion-backdrop.cjs.entry.js +9 -4
  40. package/dist/cjs/ion-checkbox.cjs.entry.js +0 -2
  41. package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
  42. package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
  43. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +1 -1
  44. package/dist/cjs/ion-input.cjs.entry.js +8 -3
  45. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  46. package/dist/cjs/ion-item_8.cjs.entry.js +4 -17
  47. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-menu_3.cjs.entry.js +18 -6
  49. package/dist/cjs/ion-modal.cjs.entry.js +4 -4
  50. package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
  51. package/dist/cjs/ion-popover.cjs.entry.js +4 -4
  52. package/dist/cjs/ion-radio_2.cjs.entry.js +0 -3
  53. package/dist/cjs/ion-range.cjs.entry.js +1 -3
  54. package/dist/cjs/ion-refresher_2.cjs.entry.js +10 -3
  55. package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
  56. package/dist/cjs/ion-searchbar.cjs.entry.js +8 -1
  57. package/dist/cjs/ion-select_3.cjs.entry.js +4 -6
  58. package/dist/cjs/ion-textarea.cjs.entry.js +8 -3
  59. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-toggle.cjs.entry.js +0 -2
  61. package/dist/cjs/ionic.cjs.js +2 -2
  62. package/dist/cjs/{ios.transition-2af7c625.js → ios.transition-74ad019b.js} +2 -2
  63. package/dist/cjs/loader.cjs.js +1 -1
  64. package/dist/cjs/{md.transition-992379b5.js → md.transition-efcc0ad3.js} +2 -2
  65. package/dist/cjs/{overlays-1a734051.js → overlays-3e58eaad.js} +6 -0
  66. package/dist/cjs/{status-tap-778e8054.js → status-tap-b19eb3c8.js} +1 -1
  67. package/dist/cjs/{watch-options-f3f77e54.js → watch-options-53bbb124.js} +14 -3
  68. package/dist/collection/collection-manifest.json +1 -1
  69. package/dist/collection/components/action-sheet/action-sheet.ios.css +16 -3
  70. package/dist/collection/components/action-sheet/action-sheet.js +1 -1
  71. package/dist/collection/components/action-sheet/action-sheet.md.css +16 -3
  72. package/dist/collection/components/alert/alert.ios.css +18 -5
  73. package/dist/collection/components/alert/alert.js +1 -1
  74. package/dist/collection/components/alert/alert.md.css +18 -5
  75. package/dist/collection/components/backdrop/backdrop.js +53 -4
  76. package/dist/collection/components/checkbox/checkbox.js +0 -2
  77. package/dist/collection/components/datetime/datetime.ios.css +0 -1
  78. package/dist/collection/components/datetime/datetime.md.css +0 -1
  79. package/dist/collection/components/fab/fab.css +24 -36
  80. package/dist/collection/components/fab/test/safe-area/fab.e2e.js +63 -0
  81. package/dist/collection/components/input/input.js +9 -4
  82. package/dist/collection/components/item/item.ios.css +3 -25
  83. package/dist/collection/components/item/item.md.css +3 -25
  84. package/dist/collection/components/item/test/disabled/item.e2e.js +1 -0
  85. package/dist/collection/components/item/test/text/item.e2e.js +14 -0
  86. package/dist/collection/components/label/label.ios.css +3 -14
  87. package/dist/collection/components/label/label.md.css +3 -14
  88. package/dist/collection/components/loading/loading.js +1 -1
  89. package/dist/collection/components/menu/menu.js +15 -3
  90. package/dist/collection/components/note/test/a11y/note.e2e.js +0 -43
  91. package/dist/collection/components/picker/picker.js +1 -1
  92. package/dist/collection/components/popover/popover.js +1 -1
  93. package/dist/collection/components/radio/radio.js +5 -4
  94. package/dist/collection/components/radio/test/legacy/a11y/radio.e2e.js +5 -5
  95. package/dist/collection/components/range/range.js +0 -2
  96. package/dist/collection/components/refresher/refresher.utils.js +8 -1
  97. package/dist/collection/components/reorder/reorder.ios.css +1 -34
  98. package/dist/collection/components/reorder/reorder.md.css +1 -34
  99. package/dist/collection/components/searchbar/searchbar.js +9 -2
  100. package/dist/collection/components/select/select.ios.css +0 -5
  101. package/dist/collection/components/select/select.js +0 -2
  102. package/dist/collection/components/select/select.md.css +0 -5
  103. package/dist/collection/components/select/test/legacy/wrapping/select.e2e.js +1 -1
  104. package/dist/collection/components/skeleton-text/skeleton-text.js +0 -39
  105. package/dist/collection/components/split-pane/test/multiple/split-pane.e2e.js +31 -0
  106. package/dist/collection/components/textarea/textarea.js +9 -4
  107. package/dist/collection/components/toggle/toggle.js +0 -2
  108. package/dist/collection/utils/animation/animation.js +29 -15
  109. package/dist/collection/utils/content/index.js +0 -1
  110. package/dist/collection/utils/input-shims/hacks/common.js +9 -1
  111. package/dist/collection/utils/overlays.js +6 -0
  112. package/dist/collection/utils/test/overlays/overlays.e2e.js +65 -0
  113. package/dist/collection/utils/watch-options.js +14 -3
  114. package/dist/docs.json +2 -2
  115. package/dist/esm/{animation-a9cdd18b.js → animation-8aa13916.js} +29 -15
  116. package/dist/esm/{index-746a238e.js → index-4392efa5.js} +0 -1
  117. package/dist/esm/{index-5c647d55.js → index-aae132ba.js} +1 -1
  118. package/dist/esm/{index-533d569d.js → index-ec72506a.js} +2 -2
  119. package/dist/esm/index.js +6 -6
  120. package/dist/esm/{input-shims-d78a3c77.js → input-shims-d0c93e5d.js} +10 -2
  121. package/dist/esm/ion-action-sheet.entry.js +5 -5
  122. package/dist/esm/ion-alert.entry.js +5 -5
  123. package/dist/esm/ion-app_8.entry.js +4 -4
  124. package/dist/esm/ion-backdrop.entry.js +10 -5
  125. package/dist/esm/ion-checkbox.entry.js +0 -2
  126. package/dist/esm/ion-datetime_3.entry.js +5 -5
  127. package/dist/esm/ion-fab_3.entry.js +1 -1
  128. package/dist/esm/ion-infinite-scroll_2.entry.js +1 -1
  129. package/dist/esm/ion-input.entry.js +9 -4
  130. package/dist/esm/ion-item-option_3.entry.js +2 -2
  131. package/dist/esm/ion-item_8.entry.js +4 -17
  132. package/dist/esm/ion-loading.entry.js +3 -3
  133. package/dist/esm/ion-menu_3.entry.js +18 -6
  134. package/dist/esm/ion-modal.entry.js +4 -4
  135. package/dist/esm/ion-nav_2.entry.js +1 -1
  136. package/dist/esm/ion-popover.entry.js +4 -4
  137. package/dist/esm/ion-radio_2.entry.js +0 -3
  138. package/dist/esm/ion-range.entry.js +1 -3
  139. package/dist/esm/ion-refresher_2.entry.js +10 -3
  140. package/dist/esm/ion-reorder_2.entry.js +3 -3
  141. package/dist/esm/ion-searchbar.entry.js +9 -2
  142. package/dist/esm/ion-select_3.entry.js +4 -6
  143. package/dist/esm/ion-textarea.entry.js +9 -4
  144. package/dist/esm/ion-toast.entry.js +2 -2
  145. package/dist/esm/ion-toggle.entry.js +0 -2
  146. package/dist/esm/ionic.js +2 -2
  147. package/dist/esm/{ios.transition-b3053722.js → ios.transition-f1cea7e0.js} +2 -2
  148. package/dist/esm/loader.js +1 -1
  149. package/dist/esm/{md.transition-bdf2eec2.js → md.transition-1bf39c32.js} +2 -2
  150. package/dist/esm/{overlays-cec6bac8.js → overlays-9b1b807c.js} +6 -0
  151. package/dist/esm/{status-tap-9aeeaca5.js → status-tap-4e96ecf3.js} +1 -1
  152. package/dist/esm/{watch-options-355a920a.js → watch-options-02d8498b.js} +14 -3
  153. package/dist/esm-es5/animation-8aa13916.js +4 -0
  154. package/dist/esm-es5/{index-5c647d55.js → index-aae132ba.js} +1 -1
  155. package/dist/esm-es5/{index-533d569d.js → index-ec72506a.js} +1 -1
  156. package/dist/esm-es5/index.js +1 -1
  157. package/dist/esm-es5/{input-shims-d78a3c77.js → input-shims-d0c93e5d.js} +1 -1
  158. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  159. package/dist/esm-es5/ion-alert.entry.js +1 -1
  160. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  161. package/dist/esm-es5/ion-backdrop.entry.js +2 -2
  162. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  163. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  164. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  165. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  166. package/dist/esm-es5/ion-input.entry.js +1 -1
  167. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  168. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  169. package/dist/esm-es5/ion-loading.entry.js +1 -1
  170. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  171. package/dist/esm-es5/ion-modal.entry.js +1 -1
  172. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  173. package/dist/esm-es5/ion-popover.entry.js +1 -1
  174. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  175. package/dist/esm-es5/ion-range.entry.js +1 -1
  176. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  177. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  178. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  179. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  180. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  181. package/dist/esm-es5/ion-toast.entry.js +1 -1
  182. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  183. package/dist/esm-es5/ionic.js +1 -1
  184. package/dist/esm-es5/{ios.transition-b3053722.js → ios.transition-f1cea7e0.js} +1 -1
  185. package/dist/esm-es5/loader.js +1 -1
  186. package/dist/esm-es5/{md.transition-bdf2eec2.js → md.transition-1bf39c32.js} +1 -1
  187. package/dist/esm-es5/{overlays-cec6bac8.js → overlays-9b1b807c.js} +1 -1
  188. package/dist/esm-es5/{status-tap-9aeeaca5.js → status-tap-4e96ecf3.js} +1 -1
  189. package/dist/esm-es5/{watch-options-355a920a.js → watch-options-02d8498b.js} +1 -1
  190. package/dist/ionic/index.esm.js +1 -1
  191. package/dist/ionic/ionic.esm.js +1 -1
  192. package/dist/ionic/ionic.js +1 -1
  193. package/dist/ionic/p-017631df.system.entry.js +4 -0
  194. package/dist/ionic/{p-307b0e77.entry.js → p-0362c48a.entry.js} +1 -1
  195. package/dist/ionic/p-0c0d536f.system.entry.js +4 -0
  196. package/dist/ionic/{p-8286f6d4.system.js → p-0c78d548.system.js} +1 -1
  197. package/dist/ionic/p-0fb53284.system.js +4 -0
  198. package/dist/ionic/{p-32d17eee.entry.js → p-14f61991.entry.js} +1 -1
  199. package/dist/ionic/p-16520f50.system.entry.js +4 -0
  200. package/dist/ionic/p-19707956.entry.js +4 -0
  201. package/dist/ionic/{p-ad12e632.system.entry.js → p-2222b68a.system.entry.js} +1 -1
  202. package/dist/ionic/{p-b45118c0.system.entry.js → p-23410b18.system.entry.js} +1 -1
  203. package/dist/ionic/p-2e8e0045.js +4 -0
  204. package/dist/ionic/{p-408e5ee6.system.entry.js → p-306d845d.system.entry.js} +1 -1
  205. package/dist/ionic/{p-8e24ebbc.js → p-311d91cc.js} +1 -1
  206. package/dist/ionic/p-354d016f.entry.js +4 -0
  207. package/dist/ionic/{p-bc08029e.system.entry.js → p-3574440a.system.entry.js} +1 -1
  208. package/dist/ionic/p-3602001b.system.js +4 -0
  209. package/dist/ionic/{p-12445803.system.entry.js → p-372f1f80.system.entry.js} +1 -1
  210. package/dist/ionic/{p-aac723ac.system.entry.js → p-3e2ddf5e.system.entry.js} +1 -1
  211. package/dist/ionic/{p-7e77a185.system.entry.js → p-43cdeb48.system.entry.js} +1 -1
  212. package/dist/ionic/p-4a329bd3.entry.js +4 -0
  213. package/dist/ionic/{p-1f81b5be.entry.js → p-4e9114af.entry.js} +1 -1
  214. package/dist/ionic/p-4ef4a7ba.entry.js +4 -0
  215. package/dist/ionic/{p-074d4971.js → p-507845ca.js} +1 -1
  216. package/dist/ionic/{p-c87827ca.system.js → p-5aac9314.system.js} +1 -1
  217. package/dist/ionic/{p-7c08106a.entry.js → p-623a953a.entry.js} +1 -1
  218. package/dist/ionic/{p-5416c18a.system.js → p-62b29300.system.js} +1 -1
  219. package/dist/ionic/p-62bfd4cb.system.entry.js +4 -0
  220. package/dist/ionic/{p-0b24c4e7.entry.js → p-630ceef5.entry.js} +1 -1
  221. package/dist/ionic/{p-5a12d57c.system.entry.js → p-65ab4cb5.system.entry.js} +1 -1
  222. package/dist/ionic/{p-5ffd6742.system.js → p-664d1430.system.js} +1 -1
  223. package/dist/ionic/{p-b132c2c0.system.js → p-67eecef4.system.js} +1 -1
  224. package/dist/ionic/{p-8f01a9a2.system.js → p-78ce7391.system.js} +1 -1
  225. package/dist/ionic/{p-2743fb40.js → p-79fdc224.js} +1 -1
  226. package/dist/ionic/p-7b48cf4f.system.entry.js +4 -0
  227. package/dist/ionic/p-7e80194c.entry.js +4 -0
  228. package/dist/ionic/p-83198481.entry.js +4 -0
  229. package/dist/ionic/{p-7b3cfd36.system.entry.js → p-8ab12bec.system.entry.js} +1 -1
  230. package/dist/ionic/p-8b1237b9.entry.js +4 -0
  231. package/dist/ionic/{p-acbcc508.system.entry.js → p-8fdd6396.system.entry.js} +1 -1
  232. package/dist/ionic/p-97c65aa5.js +4 -0
  233. package/dist/ionic/p-9d166dc1.js +4 -0
  234. package/dist/ionic/p-a7f83510.entry.js +4 -0
  235. package/dist/ionic/{p-c49672d8.system.js → p-b216de09.system.js} +1 -1
  236. package/dist/ionic/p-b9a17fcb.system.entry.js +4 -0
  237. package/dist/ionic/{p-64416e79.system.js → p-be7fcb09.system.js} +1 -1
  238. package/dist/ionic/{p-64b36ecd.system.js → p-c50ea33f.system.js} +1 -1
  239. package/dist/ionic/{p-0f10b5f5.system.entry.js → p-c6cae705.system.entry.js} +1 -1
  240. package/dist/ionic/{p-b20b49ba.js → p-c842da0a.js} +1 -1
  241. package/dist/ionic/p-c9f70283.entry.js +4 -0
  242. package/dist/ionic/p-cf04003c.system.entry.js +4 -0
  243. package/dist/ionic/p-cf67c66c.entry.js +4 -0
  244. package/dist/ionic/p-d3ba42e6.system.entry.js +4 -0
  245. package/dist/ionic/{p-49367d48.entry.js → p-d70cc00d.entry.js} +1 -1
  246. package/dist/ionic/{p-cf62e1c8.js → p-d99ceb6a.js} +1 -1
  247. package/dist/ionic/{p-a3fe2e01.entry.js → p-db0140c0.entry.js} +1 -1
  248. package/dist/ionic/{p-f094de62.system.entry.js → p-db6fb00c.system.entry.js} +1 -1
  249. package/dist/ionic/{p-ec4f26da.system.entry.js → p-dd043db2.system.entry.js} +1 -1
  250. package/dist/ionic/p-dd213cdd.system.entry.js +4 -0
  251. package/dist/ionic/{p-623dd07e.entry.js → p-df189fa7.entry.js} +1 -1
  252. package/dist/ionic/p-e21ca02c.entry.js +4 -0
  253. package/dist/ionic/p-e552cf80.entry.js +4 -0
  254. package/dist/ionic/p-e97b48ff.entry.js +4 -0
  255. package/dist/ionic/p-ebdf4f41.entry.js +4 -0
  256. package/dist/ionic/{p-0ae4c173.entry.js → p-f089f3b1.entry.js} +1 -1
  257. package/dist/ionic/p-f10de93b.js +4 -0
  258. package/dist/ionic/p-f1e15f7a.entry.js +4 -0
  259. package/dist/ionic/p-f3185dcb.system.entry.js +4 -0
  260. package/dist/ionic/p-f45792a4.system.entry.js +4 -0
  261. package/dist/ionic/p-f4bd51c5.entry.js +4 -0
  262. package/dist/ionic/p-f9017b2c.system.entry.js +4 -0
  263. package/dist/types/components/action-sheet/action-sheet.d.ts +1 -0
  264. package/dist/types/components/alert/alert.d.ts +1 -0
  265. package/dist/types/components/backdrop/backdrop.d.ts +5 -2
  266. package/dist/types/components/loading/loading.d.ts +1 -0
  267. package/dist/types/components/menu/menu.d.ts +1 -1
  268. package/dist/types/components/modal/modal.d.ts +1 -1
  269. package/dist/types/components/picker/picker.d.ts +1 -0
  270. package/dist/types/components/popover/popover.d.ts +1 -0
  271. package/dist/types/components/radio/radio.d.ts +1 -1
  272. package/dist/types/components/skeleton-text/skeleton-text.d.ts +1 -9
  273. package/dist/types/components.d.ts +627 -5
  274. package/dist/types/stencil-public-runtime.d.ts +2 -0
  275. package/dist/types/utils/animation/animation-interface.d.ts +4 -4
  276. package/dist/types/utils/content/index.d.ts +1 -1
  277. package/dist/types/utils/focus-visible.d.ts +3 -2
  278. package/dist/types/utils/overlays-interface.d.ts +1 -0
  279. package/dist/types/utils/watch-options.d.ts +9 -1
  280. package/hydrate/index.js +146 -94
  281. package/package.json +3 -3
  282. package/dist/esm-es5/animation-a9cdd18b.js +0 -4
  283. package/dist/ionic/p-0866bf93.entry.js +0 -4
  284. package/dist/ionic/p-22beb08d.entry.js +0 -4
  285. package/dist/ionic/p-23f57624.system.entry.js +0 -4
  286. package/dist/ionic/p-27381a03.entry.js +0 -4
  287. package/dist/ionic/p-29b56db6.system.entry.js +0 -4
  288. package/dist/ionic/p-31a8fd9a.entry.js +0 -4
  289. package/dist/ionic/p-35e399bd.entry.js +0 -4
  290. package/dist/ionic/p-449f4377.js +0 -4
  291. package/dist/ionic/p-4ba4bbf8.entry.js +0 -4
  292. package/dist/ionic/p-4f97c112.entry.js +0 -4
  293. package/dist/ionic/p-505cc23b.entry.js +0 -4
  294. package/dist/ionic/p-5bf16a18.js +0 -4
  295. package/dist/ionic/p-69613961.system.entry.js +0 -4
  296. package/dist/ionic/p-6b097e5f.entry.js +0 -4
  297. package/dist/ionic/p-755b2917.system.js +0 -4
  298. package/dist/ionic/p-75cba889.entry.js +0 -4
  299. package/dist/ionic/p-7a4bb59b.entry.js +0 -4
  300. package/dist/ionic/p-7c6a16c1.system.entry.js +0 -4
  301. package/dist/ionic/p-7f8844bd.system.entry.js +0 -4
  302. package/dist/ionic/p-8277369c.entry.js +0 -4
  303. package/dist/ionic/p-87c3c4ec.entry.js +0 -4
  304. package/dist/ionic/p-9d93e024.system.entry.js +0 -4
  305. package/dist/ionic/p-9f2e0db9.js +0 -4
  306. package/dist/ionic/p-af37e8de.system.entry.js +0 -4
  307. package/dist/ionic/p-b77734e0.entry.js +0 -4
  308. package/dist/ionic/p-c2e6cc69.entry.js +0 -4
  309. package/dist/ionic/p-c7612d99.system.entry.js +0 -4
  310. package/dist/ionic/p-d0c77b0e.system.entry.js +0 -4
  311. package/dist/ionic/p-d625ae76.js +0 -4
  312. package/dist/ionic/p-d6f6b311.system.entry.js +0 -4
  313. package/dist/ionic/p-db1a1e00.entry.js +0 -4
  314. package/dist/ionic/p-f63446a2.system.entry.js +0 -4
  315. package/dist/ionic/p-f6c370f4.system.entry.js +0 -4
  316. package/dist/ionic/p-f735392d.system.js +0 -4
  317. /package/dist/esm-es5/{index-746a238e.js → index-4392efa5.js} +0 -0
  318. /package/dist/ionic/{p-b24aa895.js → p-114a36ed.js} +0 -0
  319. /package/dist/ionic/{p-64475ab5.system.js → p-8a308596.system.js} +0 -0
@@ -11,6 +11,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
11
11
  test('should not have visual regressions', async ({ page }) => {
12
12
  await page.goto(`/src/components/item/test/disabled`, config);
13
13
  await page.setIonViewport();
14
+ // TODO: FW-4037 - Fix label color inconsistency between disabled controls
14
15
  await expect(page).toHaveScreenshot(screenshot(`item-disabled-diff`));
15
16
  });
16
17
  });
@@ -0,0 +1,14 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test } from "../../../../utils/test/playwright/index";
6
+ configs().forEach(({ title, screenshot, config }) => {
7
+ test.describe(title('item: text'), () => {
8
+ test('should not have visual regressions', async ({ page }) => {
9
+ await page.goto(`/src/components/item/test/text`, config);
10
+ await page.setIonViewport();
11
+ await expect(page).toHaveScreenshot(screenshot(`item-text-diff`));
12
+ });
13
+ });
14
+ });
@@ -41,24 +41,17 @@
41
41
  font-family: var(--ion-font-family, inherit);
42
42
  font-size: inherit;
43
43
  text-overflow: ellipsis;
44
- box-sizing: border-box;
45
- }
46
-
47
- :host-context(.item-legacy) {
48
44
  white-space: nowrap;
49
45
  overflow: hidden;
50
- }
51
-
52
- :host-context(.item:not(.item-input):not(.item-legacy)) {
53
- flex-grow: 1;
46
+ box-sizing: border-box;
54
47
  }
55
48
 
56
49
  :host(.ion-color) {
57
50
  color: var(--ion-color-base);
58
51
  }
59
52
 
60
- :host(.ion-text-nowrap) {
61
- overflow: hidden;
53
+ :host(.ion-text-wrap) {
54
+ white-space: normal;
62
55
  }
63
56
 
64
57
  :host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
@@ -77,10 +70,6 @@
77
70
  align-self: baseline;
78
71
  }
79
72
 
80
- :host-context(.item-skeleton-text) {
81
- overflow: hidden;
82
- }
83
-
84
73
  :host(.label-fixed) {
85
74
  flex: 0 0 100px;
86
75
  width: 100px;
@@ -41,24 +41,17 @@
41
41
  font-family: var(--ion-font-family, inherit);
42
42
  font-size: inherit;
43
43
  text-overflow: ellipsis;
44
- box-sizing: border-box;
45
- }
46
-
47
- :host-context(.item-legacy) {
48
44
  white-space: nowrap;
49
45
  overflow: hidden;
50
- }
51
-
52
- :host-context(.item:not(.item-input):not(.item-legacy)) {
53
- flex-grow: 1;
46
+ box-sizing: border-box;
54
47
  }
55
48
 
56
49
  :host(.ion-color) {
57
50
  color: var(--ion-color-base);
58
51
  }
59
52
 
60
- :host(.ion-text-nowrap) {
61
- overflow: hidden;
53
+ :host(.ion-text-wrap) {
54
+ white-space: normal;
62
55
  }
63
56
 
64
57
  :host-context(.item-interactive-disabled:not(.item-multiple-inputs)) {
@@ -77,10 +70,6 @@
77
70
  align-self: baseline;
78
71
  }
79
72
 
80
- :host-context(.item-skeleton-text) {
81
- overflow: hidden;
82
- }
83
-
84
73
  :host(.label-fixed) {
85
74
  flex: 0 0 100px;
86
75
  width: 100px;
@@ -146,7 +146,7 @@ export class Loading {
146
146
  const ariaLabelledBy = message !== undefined ? msgId : null;
147
147
  return (h(Host, Object.assign({ role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
148
148
  zIndex: `${40000 + this.overlayIndex}`,
149
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { tabindex: "0" })));
149
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { class: "loading-spinner" }, h("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { tabindex: "0" })));
150
150
  }
151
151
  static get is() { return "ion-loading"; }
152
152
  static get encapsulation() { return "scoped"; }
@@ -173,6 +173,18 @@ export class Menu {
173
173
  this.contentEl = undefined;
174
174
  }
175
175
  onSplitPaneChanged(ev) {
176
+ const { target } = ev;
177
+ const closestSplitPane = this.el.closest('ion-split-pane');
178
+ /**
179
+ * Menu listens on the body for "ionSplitPaneVisible".
180
+ * However, this means the callback will run any time
181
+ * a SplitPane changes visibility. As a result, we only want
182
+ * Menu's visibility state to update if its parent SplitPane
183
+ * changes visibility.
184
+ */
185
+ if (target !== closestSplitPane) {
186
+ return;
187
+ }
176
188
  this.isPaneVisible = ev.detail.isPane(this.el);
177
189
  this.updateState();
178
190
  }
@@ -331,11 +343,11 @@ export class Menu {
331
343
  this.animation = undefined;
332
344
  }
333
345
  // Create new animation
334
- this.animation = await menuController._createAnimation(this.type, this);
346
+ const animation = (this.animation = await menuController._createAnimation(this.type, this));
335
347
  if (!config.getBoolean('animated', true)) {
336
- this.animation.duration(0);
348
+ animation.duration(0);
337
349
  }
338
- this.animation.fill('both');
350
+ animation.fill('both');
339
351
  }
340
352
  async startAnimation(shouldOpen, animated) {
341
353
  const isReversed = !shouldOpen;
@@ -48,48 +48,5 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
48
48
  const note = page.locator('ion-note');
49
49
  await expect(note).toHaveScreenshot(screenshot(`note-item-divider-scale`));
50
50
  });
51
- test('should wrap label to the next line without truncating', async ({ page }) => {
52
- await page.setContent(`
53
- <style>
54
- html {
55
- font-size: 310%;
56
- }
57
- </style>
58
-
59
- <ion-list>
60
- <ion-item>
61
- <ion-note slot="start">Really really long note</ion-note>
62
- <ion-label>Label</ion-label>
63
- </ion-item>
64
-
65
- <ion-item>
66
- <ion-label>Label</ion-label>
67
- <ion-note slot="end">Really really long note</ion-note>
68
- </ion-item>
69
-
70
- <ion-item>
71
- <ion-note slot="start">Note</ion-note>
72
- <ion-label>Really really long label</ion-label>
73
- </ion-item>
74
-
75
- <ion-item>
76
- <ion-label>Really really long label</ion-label>
77
- <ion-note slot="end">Note</ion-note>
78
- </ion-item>
79
-
80
- <ion-item>
81
- <ion-note slot="start">Really really long note</ion-note>
82
- <ion-label>Really really long label</ion-label>
83
- </ion-item>
84
-
85
- <ion-item>
86
- <ion-label>Really really long label</ion-label>
87
- <ion-note slot="end">Really really long note</ion-note>
88
- </ion-item>
89
- </ion-list>
90
- `, config);
91
- const list = page.locator('ion-list');
92
- await expect(list).toHaveScreenshot(screenshot(`note-wrapping-label-scale`));
93
- });
94
51
  });
95
52
  });
@@ -174,7 +174,7 @@ export class Picker {
174
174
  zIndex: `${20000 + this.overlayIndex}`,
175
175
  }, class: Object.assign({ [mode]: true,
176
176
  // Used internally for styling
177
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { class: "picker-below-highlight" }))), h("div", { tabindex: "0" })));
177
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { tabindex: "0" }), h("div", { class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { class: "picker-columns" }, h("div", { class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { class: "picker-below-highlight" }))), h("div", { tabindex: "0" })));
178
178
  }
179
179
  static get is() { return "ion-picker"; }
180
180
  static get encapsulation() { return "scoped"; }
@@ -323,7 +323,7 @@ export class Popover {
323
323
  const enableArrow = arrow && !parentPopover;
324
324
  return (h(Host, Object.assign({ "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
325
325
  zIndex: `${20000 + this.overlayIndex}`,
326
- }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { class: "popover-content", part: "content" }, h("slot", null)))));
326
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && (h("ion-backdrop", { ref: (el) => (this.backdropEl = el), tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" })), h("div", { class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { class: "popover-content", part: "content" }, h("slot", null)))));
327
327
  }
328
328
  static get is() { return "ion-popover"; }
329
329
  static get encapsulation() { return "shadow"; }
@@ -85,7 +85,6 @@ export class Radio {
85
85
  }
86
86
  /** @internal */
87
87
  async setFocus(ev) {
88
- // TODO(FW-2832): type (using Event triggers a build error due to conflict with Stencil Event import)
89
88
  ev.stopPropagation();
90
89
  ev.preventDefault();
91
90
  this.el.focus();
@@ -121,8 +120,6 @@ export class Radio {
121
120
  emitStyle() {
122
121
  const style = {
123
122
  'interactive-disabled': this.disabled,
124
- // TODO(FW-3125): remove this
125
- legacy: !!this.legacy,
126
123
  };
127
124
  if (this.legacyFormController.hasLegacyControl()) {
128
125
  style['radio-checked'] = this.checked;
@@ -418,7 +415,7 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
418
415
  return {
419
416
  "setFocus": {
420
417
  "complexType": {
421
- "signature": "(ev: any) => Promise<void>",
418
+ "signature": "(ev: globalThis.Event) => Promise<void>",
422
419
  "parameters": [{
423
420
  "tags": [],
424
421
  "text": ""
@@ -427,6 +424,10 @@ Developers can dismiss this warning by removing their usage of the "legacy" prop
427
424
  "Promise": {
428
425
  "location": "global",
429
426
  "id": "global::Promise"
427
+ },
428
+ "globalThis": {
429
+ "location": "global",
430
+ "id": "global::globalThis"
430
431
  }
431
432
  },
432
433
  "return": "Promise<void>"
@@ -8,9 +8,11 @@ import { configs, test } from "../../../../../utils/test/playwright/index";
8
8
  */
9
9
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
10
10
  test.describe(title('radio: a11y'), () => {
11
- // TODO(FW-5218)
12
- test.fixme('tabbing should switch between radio groups', async ({ page, pageUtils }) => {
11
+ test.beforeEach(async ({ page, skip }) => {
12
+ skip.browser('webkit', 'Tabbing is flaky in Safari');
13
13
  await page.goto(`/src/components/radio/test/legacy/a11y`, config);
14
+ });
15
+ test('tabbing should switch between radio groups', async ({ page, pageUtils }) => {
14
16
  const firstGroupRadios = page.locator('#first-group ion-radio');
15
17
  const secondGroupRadios = page.locator('#second-group ion-radio');
16
18
  await pageUtils.pressKeys('Tab');
@@ -20,9 +22,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
20
22
  await pageUtils.pressKeys('shift+Tab');
21
23
  await expect(firstGroupRadios.nth(0)).toBeFocused();
22
24
  });
23
- // TODO(FW-5218)
24
- test.fixme('using arrow keys should move between enabled radios within group', async ({ page, pageUtils }) => {
25
- await page.goto(`/src/components/radio/test/legacy/a11y`, config);
25
+ test('using arrow keys should move between enabled radios within group', async ({ page, pageUtils }) => {
26
26
  const firstGroupRadios = page.locator('#first-group ion-radio');
27
27
  await pageUtils.pressKeys('Tab');
28
28
  await expect(firstGroupRadios.nth(0)).toBeFocused();
@@ -226,8 +226,6 @@ export class Range {
226
226
  this.ionStyle.emit({
227
227
  interactive: true,
228
228
  'interactive-disabled': this.disabled,
229
- // TODO(FW-2997): remove this
230
- legacy: !!this.legacy,
231
229
  });
232
230
  }
233
231
  }
@@ -16,7 +16,6 @@ export const createPullingAnimation = (type, pullingSpinner, refresherEl) => {
16
16
  : createTranslateAnimation(pullingSpinner, refresherEl);
17
17
  };
18
18
  const createBaseAnimation = (pullingRefresherIcon) => {
19
- // TODO(FW-2832): add types/re-evaluate asserting so many things
20
19
  const spinner = pullingRefresherIcon.querySelector('ion-spinner');
21
20
  const circle = spinner.shadowRoot.querySelector('circle');
22
21
  const spinnerArrowContainer = pullingRefresherIcon.querySelector('.spinner-arrow-container');
@@ -173,6 +172,14 @@ export const shouldUseNativeRefresher = async (referenceEl, mode) => {
173
172
  const refreshingSpinner = referenceEl.querySelector('ion-refresher-content .refresher-refreshing ion-spinner');
174
173
  return (pullingSpinner !== null &&
175
174
  refreshingSpinner !== null &&
175
+ /**
176
+ * We use webkitOverflowScrolling for feature detection with rubber band scrolling
177
+ * on iOS. When doing referenceEl.style, webkitOverflowScrolling is undefined on non-iOS platforms.
178
+ * However, it will be the empty string on iOS.
179
+ * Note that we do not use getPropertyValue (and thus need to cast as any) because calling
180
+ * getPropertyValue('-webkit-overflow-scrolling') will return the empty string if it is not
181
+ * set on the element, even if the platform does not support that.
182
+ */
176
183
  ((mode === 'ios' && isPlatform('mobile') && referenceEl.style.webkitOverflowScrolling !== undefined) ||
177
184
  mode === 'md'));
178
185
  };
@@ -1,36 +1,3 @@
1
- /**
2
- * Convert a font size to a dynamic font size.
3
- * Fonts that participate in Dynamic Type should use
4
- * dynamic font sizes.
5
- * @param size - The initial font size including the unit (i.e. px or pt)
6
- * @param unit (optional) - The unit to convert to. Use this if you want to
7
- * convert to a unit other than $baselineUnit.
8
- */
9
- /**
10
- * Convert a font size to a dynamic font size but impose
11
- * a maximum font size.
12
- * @param size - The initial font size including the unit (i.e. px or pt)
13
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
- * convert to a unit other than $baselineUnit.
16
- */
17
- /**
18
- * Convert a font size to a dynamic font size but impose
19
- * a minimum font size.
20
- * @param size - The initial font size including the unit (i.e. px or pt)
21
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
- * convert to a unit other than $baselineUnit.
24
- */
25
- /**
26
- * Convert a font size to a dynamic font size but impose
27
- * maximum and minimum font sizes.
28
- * @param size - The initial font size including the unit (i.e. px or pt)
29
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
- * convert to a unit other than $baselineUnit.
33
- */
34
1
  :host([slot]) {
35
2
  display: none;
36
3
  line-height: 0;
@@ -46,7 +13,7 @@
46
13
  * icons resize with Dynamic Type.
47
14
  */
48
15
  ::slotted(ion-icon) {
49
- font-size: 1rem;
16
+ font-size: dynamic-font(16px);
50
17
  }
51
18
 
52
19
  /**
@@ -1,36 +1,3 @@
1
- /**
2
- * Convert a font size to a dynamic font size.
3
- * Fonts that participate in Dynamic Type should use
4
- * dynamic font sizes.
5
- * @param size - The initial font size including the unit (i.e. px or pt)
6
- * @param unit (optional) - The unit to convert to. Use this if you want to
7
- * convert to a unit other than $baselineUnit.
8
- */
9
- /**
10
- * Convert a font size to a dynamic font size but impose
11
- * a maximum font size.
12
- * @param size - The initial font size including the unit (i.e. px or pt)
13
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
14
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
15
- * convert to a unit other than $baselineUnit.
16
- */
17
- /**
18
- * Convert a font size to a dynamic font size but impose
19
- * a minimum font size.
20
- * @param size - The initial font size including the unit (i.e. px or pt)
21
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
22
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
23
- * convert to a unit other than $baselineUnit.
24
- */
25
- /**
26
- * Convert a font size to a dynamic font size but impose
27
- * maximum and minimum font sizes.
28
- * @param size - The initial font size including the unit (i.e. px or pt)
29
- * @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
30
- * @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
31
- * @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
32
- * convert to a unit other than $baselineUnit.
33
- */
34
1
  :host([slot]) {
35
2
  display: none;
36
3
  line-height: 0;
@@ -46,7 +13,7 @@
46
13
  * icons resize with Dynamic Type.
47
14
  */
48
15
  ::slotted(ion-icon) {
49
- font-size: 1rem;
16
+ font-size: dynamic-font(16px);
50
17
  }
51
18
 
52
19
  /**
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { Host, forceUpdate, h } from "@stencil/core";
5
- import { debounceEvent, raf } from "../../utils/helpers";
5
+ import { debounceEvent, raf, componentOnReady } from "../../utils/helpers";
6
6
  import { isRTL } from "../../utils/rtl/index";
7
7
  import { createColorClasses } from "../../utils/theme";
8
8
  import { arrowBackSharp, closeCircle, closeSharp, searchOutline, searchSharp } from "ionicons/icons";
@@ -189,7 +189,14 @@ export class Searchbar {
189
189
  /**
190
190
  * Returns the native `<input>` element used under the hood.
191
191
  */
192
- getInputElement() {
192
+ async getInputElement() {
193
+ /**
194
+ * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
195
+ * nativeInput won't be defined yet with the custom elements build, so wait for it to load in.
196
+ */
197
+ if (!this.nativeInput) {
198
+ await new Promise((resolve) => componentOnReady(this.el, resolve));
199
+ }
193
200
  return Promise.resolve(this.nativeInput);
194
201
  }
195
202
  /**
@@ -99,11 +99,6 @@
99
99
  overflow: hidden;
100
100
  }
101
101
 
102
- :host(.in-item:not(.legacy-select)) {
103
- flex: 1 1 0;
104
- width: 0;
105
- }
106
-
107
102
  :host(.in-item.legacy-select) {
108
103
  position: static;
109
104
  max-width: 45%;
@@ -465,8 +465,6 @@ export class Select {
465
465
  style['has-placeholder'] = this.placeholder !== undefined;
466
466
  style['has-value'] = this.hasValue();
467
467
  style['has-focus'] = this.isExpanded;
468
- // TODO(FW-3194): remove this
469
- style['legacy'] = !!this.legacy;
470
468
  }
471
469
  this.ionStyle.emit(style);
472
470
  }
@@ -99,11 +99,6 @@
99
99
  overflow: hidden;
100
100
  }
101
101
 
102
- :host(.in-item:not(.legacy-select)) {
103
- flex: 1 1 0;
104
- width: 0;
105
- }
106
-
107
102
  :host(.in-item.legacy-select) {
108
103
  position: static;
109
104
  max-width: 45%;
@@ -27,7 +27,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
27
27
  await page.setContent(`
28
28
  <ion-item>
29
29
  <ion-label>Really long label should not wrap</ion-label>
30
- <ion-select value="wrap" legacy="true" class="ion-text-wrap">
30
+ <ion-select value="wrap" class="ion-text-wrap">
31
31
  <ion-select-option value="wrap">Should wrap value only when label exists and really long text exists to make it wrap the text</ion-select-option>
32
32
  </ion-select>
33
33
  </ion-item>
@@ -9,18 +9,6 @@ export class SkeletonText {
9
9
  constructor() {
10
10
  this.animated = false;
11
11
  }
12
- componentWillLoad() {
13
- this.emitStyle();
14
- }
15
- emitStyle() {
16
- // The emitted property is used by item in order
17
- // to add the item-skeleton-text class which applies
18
- // overflow: hidden to its label
19
- const style = {
20
- 'skeleton-text': true,
21
- };
22
- this.ionStyle.emit(style);
23
- }
24
12
  render() {
25
13
  const animated = this.animated && config.getBoolean('animated', true);
26
14
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
@@ -65,32 +53,5 @@ export class SkeletonText {
65
53
  }
66
54
  };
67
55
  }
68
- static get events() {
69
- return [{
70
- "method": "ionStyle",
71
- "name": "ionStyle",
72
- "bubbles": true,
73
- "cancelable": true,
74
- "composed": true,
75
- "docs": {
76
- "tags": [{
77
- "name": "internal",
78
- "text": undefined
79
- }],
80
- "text": "Emitted when the styles change."
81
- },
82
- "complexType": {
83
- "original": "StyleEventDetail",
84
- "resolved": "StyleEventDetail",
85
- "references": {
86
- "StyleEventDetail": {
87
- "location": "import",
88
- "path": "../../interface",
89
- "id": "src/interface.d.ts::StyleEventDetail"
90
- }
91
- }
92
- }
93
- }];
94
- }
95
56
  static get elementRef() { return "el"; }
96
57
  }
@@ -0,0 +1,31 @@
1
+ /*!
2
+ * (C) Ionic http://ionicframework.com - MIT License
3
+ */
4
+ import { expect } from "@playwright/test";
5
+ import { configs, test, Viewports } from "../../../../utils/test/playwright/index";
6
+ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
7
+ test.describe(title('split-pane: multiple'), () => {
8
+ test('using multiple split panes should not hide a menu in another split pane', async ({ page }) => {
9
+ test.info().annotations.push({
10
+ type: 'issue',
11
+ description: 'https://github.com/ionic-team/ionic-framework/issues/18683',
12
+ });
13
+ await page.setViewportSize(Viewports.large);
14
+ await page.goto(`/src/components/split-pane/test/multiple`, config);
15
+ const paneOneMenuOne = page.locator('ion-menu#pane-one-menu-one');
16
+ const paneOneMenuTwo = page.locator('ion-menu#pane-one-menu-two');
17
+ const paneTwoMenuOne = page.locator('ion-menu#pane-two-menu-one');
18
+ const paneTwoMenuTwo = page.locator('ion-menu#pane-two-menu-two');
19
+ const showPaneOne = page.locator('button#show-pane-one');
20
+ const showPaneTwo = page.locator('button#show-pane-two');
21
+ await expect(paneOneMenuOne).toBeVisible();
22
+ await expect(paneOneMenuTwo).toBeVisible();
23
+ await showPaneTwo.click();
24
+ await expect(paneTwoMenuOne).toBeVisible();
25
+ await expect(paneTwoMenuTwo).toBeVisible();
26
+ await showPaneOne.click();
27
+ await expect(paneOneMenuOne).toBeVisible();
28
+ await expect(paneOneMenuTwo).toBeVisible();
29
+ });
30
+ });
31
+ });
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Build, Host, forceUpdate, h, writeTask, } from "@stencil/core";
5
5
  import { createLegacyFormController, createNotchController } from "../../utils/forms/index";
6
- import { inheritAriaAttributes, debounceEvent, findItemLabel, inheritAttributes } from "../../utils/helpers";
6
+ import { inheritAriaAttributes, debounceEvent, findItemLabel, inheritAttributes, componentOnReady, } from "../../utils/helpers";
7
7
  import { printIonWarning } from "../../utils/logging/index";
8
8
  import { createSlotMutationController } from "../../utils/slot-mutation-controller";
9
9
  import { createColorClasses, hostContext } from "../../utils/theme";
@@ -169,7 +169,14 @@ export class Textarea {
169
169
  /**
170
170
  * Returns the native `<textarea>` element used under the hood.
171
171
  */
172
- getInputElement() {
172
+ async getInputElement() {
173
+ /**
174
+ * If this gets called in certain early lifecycle hooks (ex: Vue onMounted),
175
+ * nativeInput won't be defined yet with the custom elements build, so wait for it to load in.
176
+ */
177
+ if (!this.nativeInput) {
178
+ await new Promise((resolve) => componentOnReady(this.el, resolve));
179
+ }
173
180
  return Promise.resolve(this.nativeInput);
174
181
  }
175
182
  emitStyle() {
@@ -182,8 +189,6 @@ export class Textarea {
182
189
  'has-placeholder': this.placeholder !== undefined,
183
190
  'has-value': this.hasValue(),
184
191
  'has-focus': this.hasFocus,
185
- // TODO(FW-2876): remove this
186
- legacy: !!this.legacy,
187
192
  });
188
193
  }
189
194
  }
@@ -123,8 +123,6 @@ export class Toggle {
123
123
  if (this.legacyFormController.hasLegacyControl()) {
124
124
  this.ionStyle.emit({
125
125
  'interactive-disabled': this.disabled,
126
- // TODO(FW-2990): remove this
127
- legacy: !!this.legacy,
128
126
  });
129
127
  }
130
128
  }