voyager-ionic-core 8.1.0 → 8.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/README.md +1 -1
  2. package/components/checkbox.js +2 -2
  3. package/components/ion-searchbar.js +5 -5
  4. package/components/ion-segment.js +10 -9
  5. package/components/ion-select.js +20 -7
  6. package/components/ion-toggle.js +2 -2
  7. package/components/ionic-global.js +8 -1
  8. package/components/picker-column.js +25 -6
  9. package/components/radio.js +16 -5
  10. package/dist/cjs/{app-globals-66b7dc06.js → app-globals-1c261a7f.js} +1 -1
  11. package/dist/cjs/{button-active-9135c809.js → button-active-8da8d63e.js} +1 -1
  12. package/dist/cjs/{hardware-back-button-ed931127.js → hardware-back-button-93f7a8f0.js} +2 -2
  13. package/dist/cjs/{index-c54654c6.js → index-93b3a556.js} +2 -2
  14. package/dist/cjs/{index-8709af32.js → index-ceeb4ff8.js} +45 -20
  15. package/dist/cjs/{index-c0b7f8f4.js → index-fa3cf6ba.js} +4 -4
  16. package/dist/cjs/index.cjs.js +8 -8
  17. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  18. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  19. package/dist/cjs/ion-alert.cjs.entry.js +5 -5
  20. package/dist/cjs/ion-app_8.cjs.entry.js +6 -6
  21. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  22. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  23. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  24. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  25. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  26. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  27. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  28. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  29. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  31. package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
  32. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-input.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-item-option_3.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  39. package/dist/cjs/ion-loading.cjs.entry.js +4 -4
  40. package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
  41. package/dist/cjs/ion-modal.cjs.entry.js +5 -5
  42. package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
  43. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  44. package/dist/cjs/ion-picker-column.cjs.entry.js +27 -8
  45. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  46. package/dist/cjs/ion-popover.cjs.entry.js +5 -5
  47. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-radio_2.cjs.entry.js +18 -7
  49. package/dist/cjs/ion-range.cjs.entry.js +2 -2
  50. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  51. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  52. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-searchbar.cjs.entry.js +7 -7
  55. package/dist/cjs/ion-segment_2.cjs.entry.js +12 -11
  56. package/dist/cjs/ion-select_3.cjs.entry.js +24 -11
  57. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  59. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  60. package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
  61. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-toast.cjs.entry.js +4 -4
  64. package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
  65. package/dist/cjs/{ionic-global-35b86a09.js → ionic-global-f401ca2e.js} +9 -2
  66. package/dist/cjs/ionic.cjs.js +4 -4
  67. package/dist/cjs/{ios.transition-5ddf92f1.js → ios.transition-ae54d131.js} +3 -3
  68. package/dist/cjs/loader.cjs.js +3 -3
  69. package/dist/cjs/{md.transition-047c18c5.js → md.transition-dbc2d3f3.js} +3 -3
  70. package/dist/cjs/{overlays-cb04d075.js → overlays-d4afb0bd.js} +2 -2
  71. package/dist/cjs/{status-tap-5b2775cd.js → status-tap-0a82a165.js} +1 -1
  72. package/dist/collection/collection-manifest.json +1 -1
  73. package/dist/collection/components/accordion/test/a11y/accordion.e2e.js +4 -3
  74. package/dist/collection/components/alert/test/a11y/alert.e2e.js +3 -1
  75. package/dist/collection/components/breadcrumbs/test/reactive/breadcrumbs.e2e.js +1 -1
  76. package/dist/collection/components/checkbox/checkbox.ios.css +1 -0
  77. package/dist/collection/components/checkbox/checkbox.md.css +1 -0
  78. package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
  79. package/dist/collection/components/item/test/inputs/item.e2e.js +46 -0
  80. package/dist/collection/components/item/test/slotted-inputs/item.e2e.js +135 -0
  81. package/dist/collection/components/loading/test/basic/loading.e2e.js +1 -1
  82. package/dist/collection/components/menu/test/basic/menu.e2e.js +1 -1
  83. package/dist/collection/components/modal/test/trigger/modal.e2e.js +1 -1
  84. package/dist/collection/components/nav/test/basic/nav.e2e.js +5 -5
  85. package/dist/collection/components/nav/test/nested/nav.e2e.js +6 -6
  86. package/dist/collection/components/nav/test/routing/nav.e2e.js +7 -7
  87. package/dist/collection/components/picker-column/picker-column.js +25 -6
  88. package/dist/collection/components/popover/test/trigger/popover.e2e.js +1 -1
  89. package/dist/collection/components/radio/radio.ios.css +1 -0
  90. package/dist/collection/components/radio/radio.js +14 -3
  91. package/dist/collection/components/radio/radio.md.css +1 -0
  92. package/dist/collection/components/searchbar/searchbar.js +5 -5
  93. package/dist/collection/components/segment/segment.js +10 -9
  94. package/dist/collection/components/select/select.ios.css +1 -0
  95. package/dist/collection/components/select/select.js +18 -5
  96. package/dist/collection/components/select/select.md.css +1 -0
  97. package/dist/collection/components/select/test/basic/select.e2e.js +1 -1
  98. package/dist/collection/components/select/test/disabled/select.e2e.js +1 -1
  99. package/dist/collection/components/select-popover/test/basic/select-popover.e2e.js +2 -2
  100. package/dist/collection/components/toast/test/basic/toast.e2e.js +1 -0
  101. package/dist/collection/components/toggle/toggle.ios.css +1 -0
  102. package/dist/collection/components/toggle/toggle.md.css +1 -0
  103. package/dist/collection/global/config.js +8 -1
  104. package/dist/collection/global/test/config-controller.spec.js +9 -1
  105. package/dist/docs.d.ts +34 -0
  106. package/dist/docs.json +3506 -482
  107. package/dist/esm/{app-globals-b99e6d29.js → app-globals-7c667c11.js} +1 -1
  108. package/dist/esm/{button-active-920addb8.js → button-active-7c57df95.js} +1 -1
  109. package/dist/esm/{hardware-back-button-2d9760b6.js → hardware-back-button-63852d15.js} +2 -2
  110. package/dist/esm/{index-7ae7186a.js → index-1e2f8425.js} +2 -2
  111. package/dist/esm/{index-9aab3bcf.js → index-8d8c14b0.js} +45 -20
  112. package/dist/esm/{index-8e6b6a24.js → index-91ed2172.js} +4 -4
  113. package/dist/esm/index.js +8 -8
  114. package/dist/esm/ion-accordion_2.entry.js +2 -2
  115. package/dist/esm/ion-action-sheet.entry.js +5 -5
  116. package/dist/esm/ion-alert.entry.js +5 -5
  117. package/dist/esm/ion-app_8.entry.js +6 -6
  118. package/dist/esm/ion-avatar_3.entry.js +2 -2
  119. package/dist/esm/ion-back-button.entry.js +2 -2
  120. package/dist/esm/ion-backdrop.entry.js +2 -2
  121. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  122. package/dist/esm/ion-button_2.entry.js +2 -2
  123. package/dist/esm/ion-card_5.entry.js +2 -2
  124. package/dist/esm/ion-checkbox.entry.js +4 -4
  125. package/dist/esm/ion-chip.entry.js +2 -2
  126. package/dist/esm/ion-col_3.entry.js +2 -2
  127. package/dist/esm/ion-datetime-button.entry.js +2 -2
  128. package/dist/esm/ion-datetime_3.entry.js +4 -4
  129. package/dist/esm/ion-fab_3.entry.js +2 -2
  130. package/dist/esm/ion-img.entry.js +2 -2
  131. package/dist/esm/ion-infinite-scroll_2.entry.js +2 -2
  132. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  133. package/dist/esm/ion-input.entry.js +2 -2
  134. package/dist/esm/ion-item-option_3.entry.js +2 -2
  135. package/dist/esm/ion-item_8.entry.js +2 -2
  136. package/dist/esm/ion-loading.entry.js +4 -4
  137. package/dist/esm/ion-menu_3.entry.js +5 -5
  138. package/dist/esm/ion-modal.entry.js +5 -5
  139. package/dist/esm/ion-nav_2.entry.js +3 -3
  140. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  141. package/dist/esm/ion-picker-column.entry.js +27 -8
  142. package/dist/esm/ion-picker.entry.js +1 -1
  143. package/dist/esm/ion-popover.entry.js +5 -5
  144. package/dist/esm/ion-progress-bar.entry.js +2 -2
  145. package/dist/esm/ion-radio_2.entry.js +18 -7
  146. package/dist/esm/ion-range.entry.js +2 -2
  147. package/dist/esm/ion-refresher_2.entry.js +2 -2
  148. package/dist/esm/ion-reorder_2.entry.js +2 -2
  149. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  150. package/dist/esm/ion-route_4.entry.js +2 -2
  151. package/dist/esm/ion-searchbar.entry.js +7 -7
  152. package/dist/esm/ion-segment_2.entry.js +12 -11
  153. package/dist/esm/ion-select_3.entry.js +24 -11
  154. package/dist/esm/ion-spinner.entry.js +2 -2
  155. package/dist/esm/ion-split-pane.entry.js +2 -2
  156. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  157. package/dist/esm/ion-tab_2.entry.js +1 -1
  158. package/dist/esm/ion-text.entry.js +2 -2
  159. package/dist/esm/ion-textarea.entry.js +2 -2
  160. package/dist/esm/ion-toast.entry.js +4 -4
  161. package/dist/esm/ion-toggle.entry.js +4 -4
  162. package/dist/esm/{ionic-global-4528d288.js → ionic-global-8180d812.js} +9 -2
  163. package/dist/esm/ionic.js +5 -5
  164. package/dist/esm/{ios.transition-e35d0940.js → ios.transition-140cedc8.js} +3 -3
  165. package/dist/esm/loader.js +4 -4
  166. package/dist/esm/{md.transition-4b90a1f0.js → md.transition-4961bea4.js} +3 -3
  167. package/dist/esm/{overlays-df2c06b2.js → overlays-e8e5bd06.js} +2 -2
  168. package/dist/esm/{status-tap-12c27922.js → status-tap-0502d0fd.js} +1 -1
  169. package/dist/esm-es5/app-globals-7c667c11.js +4 -0
  170. package/dist/esm-es5/{button-active-920addb8.js → button-active-7c57df95.js} +1 -1
  171. package/dist/esm-es5/{hardware-back-button-2d9760b6.js → hardware-back-button-63852d15.js} +1 -1
  172. package/dist/esm-es5/{index-7ae7186a.js → index-1e2f8425.js} +1 -1
  173. package/dist/esm-es5/index-8d8c14b0.js +5 -0
  174. package/dist/esm-es5/{index-8e6b6a24.js → index-91ed2172.js} +1 -1
  175. package/dist/esm-es5/index.js +1 -1
  176. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  177. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  178. package/dist/esm-es5/ion-alert.entry.js +1 -1
  179. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  180. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  181. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  182. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  183. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  184. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  185. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  186. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  187. package/dist/esm-es5/ion-chip.entry.js +1 -1
  188. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  189. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  190. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  191. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  192. package/dist/esm-es5/ion-img.entry.js +1 -1
  193. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  194. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  195. package/dist/esm-es5/ion-input.entry.js +1 -1
  196. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  197. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  198. package/dist/esm-es5/ion-loading.entry.js +1 -1
  199. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  200. package/dist/esm-es5/ion-modal.entry.js +1 -1
  201. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  202. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  203. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  204. package/dist/esm-es5/ion-picker.entry.js +1 -1
  205. package/dist/esm-es5/ion-popover.entry.js +1 -1
  206. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  207. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  208. package/dist/esm-es5/ion-range.entry.js +1 -1
  209. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  210. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  211. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  212. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  213. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  214. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  215. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  216. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  217. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  218. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  219. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  220. package/dist/esm-es5/ion-text.entry.js +1 -1
  221. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  222. package/dist/esm-es5/ion-toast.entry.js +1 -1
  223. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  224. package/dist/esm-es5/ionic-global-8180d812.js +4 -0
  225. package/dist/esm-es5/ionic.js +1 -1
  226. package/dist/esm-es5/{ios.transition-e35d0940.js → ios.transition-140cedc8.js} +1 -1
  227. package/dist/esm-es5/loader.js +1 -1
  228. package/dist/esm-es5/md.transition-4961bea4.js +4 -0
  229. package/dist/esm-es5/{overlays-df2c06b2.js → overlays-e8e5bd06.js} +1 -1
  230. package/dist/esm-es5/{status-tap-12c27922.js → status-tap-0502d0fd.js} +1 -1
  231. package/dist/html.html-data.json +91 -91
  232. package/dist/ionic/index.esm.js +1 -1
  233. package/dist/ionic/ionic.esm.js +1 -1
  234. package/dist/ionic/ionic.js +1 -1
  235. package/dist/ionic/{p-e6e197f5.system.entry.js → p-00343522.system.entry.js} +1 -1
  236. package/dist/ionic/{p-fcecca8f.entry.js → p-00f85ca4.entry.js} +1 -1
  237. package/dist/ionic/p-0213e506.entry.js +4 -0
  238. package/dist/ionic/{p-d73a16e6.system.entry.js → p-036382b2.system.entry.js} +1 -1
  239. package/dist/ionic/{p-8a03fbee.entry.js → p-0617a85d.entry.js} +1 -1
  240. package/dist/ionic/{p-279f3bac.system.entry.js → p-06330374.system.entry.js} +2 -2
  241. package/dist/ionic/p-0973cae7.entry.js +4 -0
  242. package/dist/ionic/{p-08ea3402.system.entry.js → p-09bd8558.system.entry.js} +1 -1
  243. package/dist/ionic/{p-fb21fd1c.system.entry.js → p-0a9c8c36.system.entry.js} +1 -1
  244. package/dist/ionic/{p-712d54ae.js → p-0f89c47c.js} +1 -1
  245. package/dist/ionic/{p-b28d3ccb.system.entry.js → p-111b0e11.system.entry.js} +1 -1
  246. package/dist/ionic/{p-628967e3.system.entry.js → p-11feccde.system.entry.js} +1 -1
  247. package/dist/ionic/{p-130299c9.entry.js → p-13a736a9.entry.js} +1 -1
  248. package/dist/ionic/{p-d69b26d9.system.entry.js → p-18657fab.system.entry.js} +1 -1
  249. package/dist/ionic/{p-0536574e.entry.js → p-1ca3679b.entry.js} +1 -1
  250. package/dist/ionic/{p-8d14ee8c.system.entry.js → p-1dd59f8d.system.entry.js} +2 -2
  251. package/dist/ionic/{p-5dc9f99a.entry.js → p-1e5cabf8.entry.js} +1 -1
  252. package/dist/ionic/{p-9797f6eb.entry.js → p-24b0ece0.entry.js} +1 -1
  253. package/dist/ionic/{p-e81f22e3.system.js → p-27317f8f.system.js} +1 -1
  254. package/dist/ionic/{p-30baae57.system.js → p-30bbe61c.system.js} +1 -1
  255. package/dist/ionic/{p-55f99a39.system.entry.js → p-34827988.system.entry.js} +1 -1
  256. package/dist/ionic/p-370835b4.system.js +4 -0
  257. package/dist/ionic/p-39303199.system.js +4 -0
  258. package/dist/ionic/{p-0a6d801e.system.entry.js → p-3b0711a0.system.entry.js} +1 -1
  259. package/dist/ionic/{p-7349de07.entry.js → p-3d1951f5.entry.js} +1 -1
  260. package/dist/ionic/p-3fd68f4e.system.entry.js +4 -0
  261. package/dist/ionic/{p-bbbe869e.entry.js → p-443cbfcb.entry.js} +1 -1
  262. package/dist/ionic/{p-09538818.entry.js → p-4455daad.entry.js} +1 -1
  263. package/dist/ionic/{p-eb3023c9.system.js → p-45a51395.system.js} +1 -1
  264. package/dist/ionic/{p-1cc0b31f.js → p-4691dc8d.js} +1 -1
  265. package/dist/ionic/{p-52ce473d.entry.js → p-4713f5f0.entry.js} +1 -1
  266. package/dist/ionic/p-479e7655.system.js +5 -0
  267. package/dist/ionic/{p-c41435e6.system.entry.js → p-47ab6574.system.entry.js} +1 -1
  268. package/dist/ionic/{p-1eb63fa4.entry.js → p-4816d827.entry.js} +1 -1
  269. package/dist/ionic/{p-ba70039f.entry.js → p-4927bd6e.entry.js} +1 -1
  270. package/dist/ionic/{p-498eb648.system.entry.js → p-4fa57f1e.system.entry.js} +1 -1
  271. package/dist/ionic/{p-ed5aebaa.system.entry.js → p-54b04ed1.system.entry.js} +1 -1
  272. package/dist/ionic/{p-199f826f.system.entry.js → p-5cd86cdb.system.entry.js} +1 -1
  273. package/dist/ionic/{p-dc0d9ff5.system.entry.js → p-5e1094ae.system.entry.js} +1 -1
  274. package/dist/ionic/{p-5091f63c.entry.js → p-5f610767.entry.js} +1 -1
  275. package/dist/ionic/p-65a8336f.entry.js +4 -0
  276. package/dist/ionic/p-66de062f.system.entry.js +4 -0
  277. package/dist/ionic/{p-6c3666d5.entry.js → p-69cc64ab.entry.js} +1 -1
  278. package/dist/ionic/{p-6f008ad2.js → p-6c16d0e8.js} +1 -1
  279. package/dist/ionic/{p-7402fcdf.entry.js → p-6e76ed16.entry.js} +1 -1
  280. package/dist/ionic/p-7058dfda.entry.js +4 -0
  281. package/dist/ionic/{p-a39d3482.system.js → p-7171dbf4.system.js} +1 -1
  282. package/dist/ionic/{p-26bb6bb8.entry.js → p-7198726e.entry.js} +1 -1
  283. package/dist/ionic/{p-9848d7be.system.entry.js → p-71e2f283.system.entry.js} +1 -1
  284. package/dist/ionic/{p-9664a1a2.system.entry.js → p-71f25447.system.entry.js} +1 -1
  285. package/dist/ionic/{p-62e44e4a.system.entry.js → p-750e902d.system.entry.js} +1 -1
  286. package/dist/ionic/{p-0b007acc.system.entry.js → p-764eb419.system.entry.js} +1 -1
  287. package/dist/ionic/p-76637161.system.entry.js +4 -0
  288. package/dist/ionic/{p-83d748f8.system.entry.js → p-78bf8302.system.entry.js} +1 -1
  289. package/dist/ionic/{p-4824398b.entry.js → p-79f4cb29.entry.js} +1 -1
  290. package/dist/ionic/{p-80265a58.entry.js → p-7a416af9.entry.js} +1 -1
  291. package/dist/ionic/{p-29de09dd.entry.js → p-80aae5d7.entry.js} +1 -1
  292. package/dist/ionic/{p-9213681c.system.entry.js → p-8890e47f.system.entry.js} +1 -1
  293. package/dist/ionic/{p-4d8f408d.system.entry.js → p-8c7490bc.system.entry.js} +1 -1
  294. package/dist/ionic/{p-9da86308.js → p-8d0eb68d.js} +1 -1
  295. package/dist/ionic/{p-10feef7e.system.entry.js → p-935221f8.system.entry.js} +1 -1
  296. package/dist/ionic/{p-3f53a0b1.entry.js → p-941ecbba.entry.js} +1 -1
  297. package/dist/ionic/{p-e6e88ab9.entry.js → p-94b46442.entry.js} +1 -1
  298. package/dist/ionic/{p-cec8589b.system.js → p-967da5f2.system.js} +1 -1
  299. package/dist/ionic/{p-5734ac17.system.js → p-98125393.system.js} +1 -1
  300. package/dist/ionic/{p-aaaaaea1.entry.js → p-9b46f7e0.entry.js} +1 -1
  301. package/dist/ionic/{p-2c588aa2.entry.js → p-a00a5621.entry.js} +1 -1
  302. package/dist/ionic/{p-380efbfa.system.entry.js → p-a055fdcf.system.entry.js} +1 -1
  303. package/dist/ionic/{p-a50f23bf.system.entry.js → p-a0abe7ab.system.entry.js} +1 -1
  304. package/dist/ionic/{p-0395be73.entry.js → p-a4116282.entry.js} +1 -1
  305. package/dist/ionic/{p-33e10509.system.js → p-a4a45ad9.system.js} +1 -1
  306. package/dist/ionic/{p-1b435d20.entry.js → p-a5adb027.entry.js} +1 -1
  307. package/dist/ionic/p-a82d4913.system.js +4 -0
  308. package/dist/ionic/{p-f357707e.entry.js → p-a87b1500.entry.js} +1 -1
  309. package/dist/ionic/{p-57bc32e2.system.entry.js → p-a931cd3e.system.entry.js} +1 -1
  310. package/dist/ionic/{p-7d6fd45f.system.entry.js → p-ae3be67f.system.entry.js} +1 -1
  311. package/dist/ionic/{p-98f6116f.entry.js → p-aeb61b82.entry.js} +1 -1
  312. package/dist/ionic/{p-52f53904.entry.js → p-aeef6ac4.entry.js} +1 -1
  313. package/dist/ionic/{p-a488b7ab.system.js → p-aef1c744.system.js} +1 -1
  314. package/dist/ionic/{p-9c6dcf78.system.entry.js → p-b0ff8469.system.entry.js} +1 -1
  315. package/dist/ionic/{p-77731f19.system.entry.js → p-b7299e38.system.entry.js} +1 -1
  316. package/dist/ionic/{p-b02eda30.entry.js → p-b7eecfa6.entry.js} +1 -1
  317. package/dist/ionic/{p-9bfd7cda.system.entry.js → p-b84d9005.system.entry.js} +1 -1
  318. package/dist/ionic/{p-99ca9787.system.entry.js → p-bad2e0c8.system.entry.js} +1 -1
  319. package/dist/ionic/{p-90dfc454.system.entry.js → p-bd7ad51d.system.entry.js} +1 -1
  320. package/dist/ionic/{p-5cc6dcf5.js → p-bdc1b4e3.js} +1 -1
  321. package/dist/ionic/{p-509620b8.system.entry.js → p-c1d7a187.system.entry.js} +1 -1
  322. package/dist/ionic/{p-ecbdbf25.system.entry.js → p-c4493e98.system.entry.js} +1 -1
  323. package/dist/ionic/p-c44efdb8.entry.js +4 -0
  324. package/dist/ionic/p-c5543c41.system.entry.js +4 -0
  325. package/dist/ionic/{p-66ed603b.js → p-c5c65bbe.js} +1 -1
  326. package/dist/ionic/{p-a4ab7449.entry.js → p-c6143912.entry.js} +1 -1
  327. package/dist/ionic/{p-6ec88301.entry.js → p-c623f0d9.entry.js} +1 -1
  328. package/dist/ionic/{p-b62ae60a.system.entry.js → p-c6d9d978.system.entry.js} +1 -1
  329. package/dist/ionic/p-c7717147.js +4 -0
  330. package/dist/ionic/{p-f9baf25c.entry.js → p-c7a015e4.entry.js} +1 -1
  331. package/dist/ionic/{p-78405458.entry.js → p-c89af27e.entry.js} +1 -1
  332. package/dist/ionic/{p-5109a566.entry.js → p-cd681265.entry.js} +1 -1
  333. package/dist/ionic/{p-dc1e363a.entry.js → p-cf8ad0c3.entry.js} +1 -1
  334. package/dist/ionic/p-d6dbda17.js +5 -0
  335. package/dist/ionic/{p-f53bcebd.entry.js → p-d7e957e9.entry.js} +1 -1
  336. package/dist/ionic/p-d8a1f0e2.entry.js +4 -0
  337. package/dist/ionic/{p-5ec3bb70.system.entry.js → p-dba2da82.system.entry.js} +2 -2
  338. package/dist/ionic/{p-a953ef66.js → p-ddde112a.js} +1 -1
  339. package/dist/ionic/{p-700567ab.system.entry.js → p-e08d9edc.system.entry.js} +1 -1
  340. package/dist/ionic/{p-df517d1f.entry.js → p-eaab79f3.entry.js} +1 -1
  341. package/dist/ionic/{p-b07affd5.system.entry.js → p-ee8bf348.system.entry.js} +1 -1
  342. package/dist/ionic/{p-207e11dc.entry.js → p-eea44228.entry.js} +1 -1
  343. package/dist/ionic/{p-99884813.entry.js → p-eef82267.entry.js} +1 -1
  344. package/dist/ionic/{p-e0a8ffd0.system.entry.js → p-f149e6c3.system.entry.js} +1 -1
  345. package/dist/ionic/{p-6a2cf398.system.entry.js → p-f1c090c5.system.entry.js} +1 -1
  346. package/dist/ionic/{p-606f069c.entry.js → p-f5efe527.entry.js} +1 -1
  347. package/dist/ionic/p-f6a419d2.js +4 -0
  348. package/dist/ionic/p-f896c857.system.entry.js +4 -0
  349. package/dist/ionic/{p-8cb80f83.system.entry.js → p-f9046353.system.entry.js} +1 -1
  350. package/dist/ionic/{p-b9181033.system.entry.js → p-f9b3ffd6.system.entry.js} +1 -1
  351. package/dist/ionic/{p-b563b6ac.entry.js → p-fa7234ee.entry.js} +1 -1
  352. package/dist/ionic/{p-09b4e9ec.entry.js → p-fba8ea9e.entry.js} +1 -1
  353. package/dist/ionic/p-fc6f99be.js +4 -0
  354. package/dist/ionic/p-fcbd65bc.system.js +4 -0
  355. package/dist/types/components/radio/radio.d.ts +1 -0
  356. package/dist/types/components/segment/segment.d.ts +1 -0
  357. package/dist/types/components/select/select.d.ts +2 -1
  358. package/dist/types/stencil-public-runtime.d.ts +1 -0
  359. package/hydrate/index.js +175 -143
  360. package/loader/cdn.js +1 -1
  361. package/loader/index.cjs.js +1 -1
  362. package/loader/index.es2017.js +1 -1
  363. package/loader/index.js +1 -1
  364. package/package.json +2 -2
  365. package/dist/esm-es5/app-globals-b99e6d29.js +0 -4
  366. package/dist/esm-es5/index-9aab3bcf.js +0 -5
  367. package/dist/esm-es5/ionic-global-4528d288.js +0 -4
  368. package/dist/esm-es5/md.transition-4b90a1f0.js +0 -4
  369. package/dist/ionic/p-01a27023.system.entry.js +0 -4
  370. package/dist/ionic/p-03b86a5e.js +0 -4
  371. package/dist/ionic/p-049d43bd.entry.js +0 -4
  372. package/dist/ionic/p-15d1ddba.js +0 -4
  373. package/dist/ionic/p-2ff0e0aa.system.js +0 -4
  374. package/dist/ionic/p-31d27232.system.js +0 -4
  375. package/dist/ionic/p-3c27be4a.entry.js +0 -4
  376. package/dist/ionic/p-3d015cdb.system.js +0 -5
  377. package/dist/ionic/p-433157a4.entry.js +0 -4
  378. package/dist/ionic/p-670c9f57.system.entry.js +0 -4
  379. package/dist/ionic/p-6df12af0.system.entry.js +0 -4
  380. package/dist/ionic/p-7eb47906.entry.js +0 -4
  381. package/dist/ionic/p-842c9fca.system.js +0 -4
  382. package/dist/ionic/p-92d7e99d.system.js +0 -4
  383. package/dist/ionic/p-9ec42be0.js +0 -4
  384. package/dist/ionic/p-a2e94ade.system.entry.js +0 -4
  385. package/dist/ionic/p-a76ab3ea.system.entry.js +0 -4
  386. package/dist/ionic/p-b04c27d8.entry.js +0 -4
  387. package/dist/ionic/p-dba5cb84.js +0 -5
  388. package/dist/ionic/p-fa8f2e62.entry.js +0 -4
@@ -4,10 +4,10 @@
4
4
  'use strict';
5
5
 
6
6
  const animation = require('./animation-b4fdf128.js');
7
- const index = require('./index-c0b7f8f4.js');
7
+ const index = require('./index-fa3cf6ba.js');
8
8
  require('./index-c8d52405.js');
9
- require('./ionic-global-35b86a09.js');
10
- require('./index-8709af32.js');
9
+ require('./ionic-global-f401ca2e.js');
10
+ require('./index-ceeb4ff8.js');
11
11
  require('./index-5915f9b3.js');
12
12
  require('./helpers-afaa9001.js');
13
13
 
@@ -5,8 +5,8 @@
5
5
 
6
6
  const index = require('./index-c8d52405.js');
7
7
  const helpers = require('./helpers-afaa9001.js');
8
- const hardwareBackButton = require('./hardware-back-button-ed931127.js');
9
- const ionicGlobal = require('./ionic-global-35b86a09.js');
8
+ const hardwareBackButton = require('./hardware-back-button-93f7a8f0.js');
9
+ const ionicGlobal = require('./ionic-global-f401ca2e.js');
10
10
  const frameworkDelegate = require('./framework-delegate-55f5683a.js');
11
11
  const gestureController = require('./gesture-controller-9436f482.js');
12
12
  const index$1 = require('./index-5915f9b3.js');
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-8709af32.js');
6
+ const index = require('./index-ceeb4ff8.js');
7
7
  const index$1 = require('./index-5b6a7459.js');
8
8
  const helpers = require('./helpers-afaa9001.js');
9
9
  require('./index-5915f9b3.js');
@@ -96,7 +96,7 @@
96
96
  ],
97
97
  "compiler": {
98
98
  "name": "@stencil/core",
99
- "version": "4.17.2",
99
+ "version": "4.18.1",
100
100
  "typescriptVersion": "5.4.5"
101
101
  },
102
102
  "collections": [
@@ -5,10 +5,11 @@ import { expect } from "@playwright/test";
5
5
  import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  configs().forEach(({ config, title }) => {
7
7
  test.describe(title('accordion: a11y'), () => {
8
- test('accordions should be keyboard navigable', async ({ page, skip, browserName }) => {
9
- // TODO(FW-1764): remove skip once issue is resolved
8
+ // TODO(ROU-8157): remove skip once the keyboard navigation is working again
9
+ test.skip('accordions should be keyboard navigable', async ({ page, skip, browserName }) => {
10
+ // TODO(ROU-5358): remove skip once issue is resolved
10
11
  skip.browser('firefox', 'https://github.com/ionic-team/ionic-framework/issues/25070');
11
- // TODO (FW-2979)
12
+ // TODO (ROU-5437)
12
13
  skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
13
14
  await page.goto(`/src/components/accordion/test/a11y`, config);
14
15
  const tabKey = browserName === 'webkit' ? 'Alt+Tab' : 'Tab';
@@ -133,7 +133,9 @@ configs({ directions: ['ltr'] }).forEach(({ config, title }) => {
133
133
  */
134
134
  configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
135
135
  test.describe(title('alert: font scaling'), () => {
136
- test('should scale text on larger font sizes', async ({ page }) => {
136
+ test('should scale text on larger font sizes', async ({ page, skip }) => {
137
+ // TODO(ROU-8158): unskip this test when a solution is found
138
+ skip.browser('chromium', 'Rendering is flaky in Chrome.');
137
139
  await page.setContent(`
138
140
  <style>
139
141
  html {
@@ -11,7 +11,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ config, screenshot, t
11
11
  test.describe('adding a breadcrumb item', () => {
12
12
  test('should update the active item', async ({ page }) => {
13
13
  const breadcrumbItems = page.locator('ion-breadcrumb');
14
- const addItemButton = page.locator('ion-button#add-btn');
14
+ const addItemButton = page.locator('#add-btn');
15
15
  await expect(breadcrumbItems).toHaveCount(4);
16
16
  await addItemButton.click();
17
17
  await page.waitForChanges();
@@ -96,6 +96,7 @@
96
96
  */
97
97
  :host([slot=start]),
98
98
  :host([slot=end]) {
99
+ flex: initial;
99
100
  width: auto;
100
101
  }
101
102
 
@@ -96,6 +96,7 @@
96
96
  */
97
97
  :host([slot=start]),
98
98
  :host([slot=end]) {
99
+ flex: initial;
99
100
  width: auto;
100
101
  }
101
102
 
@@ -8,7 +8,7 @@ configs().forEach(({ title, screenshot, config }) => {
8
8
  test('should position the time picker relative to the click target', async ({ page }) => {
9
9
  await page.goto('/src/components/datetime/test/position', config);
10
10
  const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
11
- const openDateTimeBtn = page.locator('ion-button#open-datetime');
11
+ const openDateTimeBtn = page.locator('#open-datetime');
12
12
  await openDateTimeBtn.click();
13
13
  await ionPopoverDidPresent.next();
14
14
  await page.locator('.datetime-ready').waitFor();
@@ -151,3 +151,49 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
151
151
  });
152
152
  });
153
153
  });
154
+ /**
155
+ * This behavior does not vary across directions
156
+ */
157
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
158
+ test.describe(title('item: inputs'), () => {
159
+ test('should not shrink the width of a div next to a checkbox, radio, select or toggle', async ({ page, }, testInfo) => {
160
+ testInfo.annotations.push({
161
+ type: 'issue',
162
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29319',
163
+ });
164
+ await page.setContent(`
165
+ <style>
166
+ .box {
167
+ background: lightgreen;
168
+
169
+ width: 60px;
170
+ height: 60px;
171
+ }
172
+ </style>
173
+
174
+ <ion-list lines="none">
175
+ <ion-item>
176
+ <div class="box"></div>
177
+ <ion-checkbox>Checkbox</ion-checkbox>
178
+ </ion-item>
179
+ <ion-item>
180
+ <div class="box"></div>
181
+ <ion-radio>Radio</ion-radio>
182
+ </ion-item>
183
+ <ion-item>
184
+ <div class="box"></div>
185
+ <ion-select label="Select">
186
+ <ion-select-option>Option</ion-select-option>
187
+ </ion-select>
188
+ </ion-item>
189
+ <ion-item>
190
+ <div class="box"></div>
191
+ <ion-toggle>Toggle</ion-toggle>
192
+ </ion-item>
193
+ </ion-list>
194
+ `, config);
195
+ const list = page.locator('ion-list');
196
+ await expect(list).toHaveScreenshot(screenshot(`item-inputs-div-with-inputs`));
197
+ });
198
+ });
199
+ });
@@ -12,3 +12,138 @@ configs().forEach(({ title, screenshot, config }) => {
12
12
  });
13
13
  });
14
14
  });
15
+ /**
16
+ * This behavior does not vary across directions
17
+ */
18
+ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
19
+ test.describe(title('item: slotted inputs'), () => {
20
+ test.describe('checkbox', () => {
21
+ test('should not expand the slotted checkbox width larger than its content', async ({ page }, testInfo) => {
22
+ testInfo.annotations.push({
23
+ type: 'issue',
24
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
25
+ });
26
+ await page.setContent(`
27
+ <ion-list>
28
+ <ion-item>
29
+ <ion-checkbox slot="start"></ion-checkbox>
30
+ <ion-label>Label</ion-label>
31
+ </ion-item>
32
+ <ion-item>
33
+ <ion-label>Label</ion-label>
34
+ <ion-checkbox slot="end"></ion-checkbox>
35
+ </ion-item>
36
+ <ion-item>
37
+ <ion-checkbox slot="start">Start</ion-checkbox>
38
+ <ion-label>Label</ion-label>
39
+ </ion-item>
40
+ <ion-item>
41
+ <ion-label>Label</ion-label>
42
+ <ion-checkbox slot="end">End</ion-checkbox>
43
+ </ion-item>
44
+ </ion-list>
45
+ `, config);
46
+ const list = page.locator('ion-list');
47
+ await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-checkbox`));
48
+ });
49
+ });
50
+ test.describe('radio', () => {
51
+ test('should not expand the slotted radio width larger than its content', async ({ page }, testInfo) => {
52
+ testInfo.annotations.push({
53
+ type: 'issue',
54
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
55
+ });
56
+ await page.setContent(`
57
+ <ion-list>
58
+ <ion-item>
59
+ <ion-radio slot="start"></ion-radio>
60
+ <ion-label>Label</ion-label>
61
+ </ion-item>
62
+ <ion-item>
63
+ <ion-label>Label</ion-label>
64
+ <ion-radio slot="end"></ion-radio>
65
+ </ion-item>
66
+ <ion-item>
67
+ <ion-radio slot="start">Start</ion-radio>
68
+ <ion-label>Label</ion-label>
69
+ </ion-item>
70
+ <ion-item>
71
+ <ion-label>Label</ion-label>
72
+ <ion-radio slot="end">End</ion-radio>
73
+ </ion-item>
74
+ </ion-list>
75
+ `, config);
76
+ const list = page.locator('ion-list');
77
+ await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-radio`));
78
+ });
79
+ });
80
+ test.describe('select', () => {
81
+ test('should not expand the slotted select width larger than its content', async ({ page }, testInfo) => {
82
+ testInfo.annotations.push({
83
+ type: 'issue',
84
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
85
+ });
86
+ await page.setContent(`
87
+ <ion-list>
88
+ <ion-item>
89
+ <ion-select slot="start">
90
+ <ion-select-option>Option</ion-select-option>
91
+ </ion-select>
92
+ <ion-label>Label</ion-label>
93
+ </ion-item>
94
+ <ion-item>
95
+ <ion-label>Label</ion-label>
96
+ <ion-select slot="end">
97
+ <ion-select-option>Option</ion-select-option>
98
+ </ion-select>
99
+ </ion-item>
100
+ <ion-item>
101
+ <ion-select slot="start" label="Start">
102
+ <ion-select-option>Option</ion-select-option>
103
+ </ion-select>
104
+ <ion-label>Label</ion-label>
105
+ </ion-item>
106
+ <ion-item>
107
+ <ion-label>Label</ion-label>
108
+ <ion-select slot="end" label="End">
109
+ <ion-select-option>Option</ion-select-option>
110
+ </ion-select>
111
+ </ion-item>
112
+ </ion-list>
113
+ `, config);
114
+ const list = page.locator('ion-list');
115
+ await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-select`));
116
+ });
117
+ });
118
+ test.describe('toggle', () => {
119
+ test('should not expand the slotted toggle width larger than its content', async ({ page }, testInfo) => {
120
+ testInfo.annotations.push({
121
+ type: 'issue',
122
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29423',
123
+ });
124
+ await page.setContent(`
125
+ <ion-list>
126
+ <ion-item>
127
+ <ion-toggle slot="start"></ion-toggle>
128
+ <ion-label>Label</ion-label>
129
+ </ion-item>
130
+ <ion-item>
131
+ <ion-label>Label</ion-label>
132
+ <ion-toggle slot="end"></ion-toggle>
133
+ </ion-item>
134
+ <ion-item>
135
+ <ion-toggle slot="start">Start</ion-toggle>
136
+ <ion-label>Label</ion-label>
137
+ </ion-item>
138
+ <ion-item>
139
+ <ion-label>Label</ion-label>
140
+ <ion-toggle slot="end">End</ion-toggle>
141
+ </ion-item>
142
+ </ion-list>
143
+ `, config);
144
+ const list = page.locator('ion-list');
145
+ await expect(list).toHaveScreenshot(screenshot(`item-slotted-inputs-toggle`));
146
+ });
147
+ });
148
+ });
149
+ });
@@ -60,7 +60,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, screenshot, c
60
60
  const ionLoadingDidPresent = await page.spyOnEvent('ionLoadingDidPresent');
61
61
  await page.click('#html-content-loading');
62
62
  await ionLoadingDidPresent.next();
63
- const button = page.locator('ion-loading ion-button');
63
+ const button = page.locator('ion-loading button');
64
64
  if (browserName === 'webkit') {
65
65
  await page.keyboard.down('Alt');
66
66
  }
@@ -26,7 +26,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
26
26
  });
27
27
  test('should trap focus', async ({ page, skip, browserName }) => {
28
28
  skip.browser('firefox', 'Firefox incorrectly allows keyboard focus to move to ion-content');
29
- // TODO (FW-2979)
29
+ // TODO (ROU-5437)
30
30
  skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
31
31
  const ionDidOpen = await page.spyOnEvent('ionDidOpen');
32
32
  await page.click('#open-start');
@@ -21,7 +21,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
21
21
  await modal.evaluate((modal) => {
22
22
  var _a;
23
23
  modal.remove();
24
- (_a = document.querySelector('ion-button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', modal);
24
+ (_a = document.querySelector('button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', modal);
25
25
  });
26
26
  await page.waitForChanges();
27
27
  await button.click();
@@ -17,7 +17,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
17
17
  });
18
18
  test.describe('pushing a new page', () => {
19
19
  test('should render the pushed component', async ({ page }) => {
20
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page Two")');
20
+ const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
21
21
  const pageOne = page.locator('page-one');
22
22
  const pageTwo = page.locator('page-two');
23
23
  await pageTwoButton.click();
@@ -27,7 +27,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
27
27
  await expect(pageOne).not.toBeVisible();
28
28
  });
29
29
  test('should render the back button', async ({ page }) => {
30
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page Two")');
30
+ const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
31
31
  const pageTwoBackButton = page.locator('page-two ion-back-button');
32
32
  await pageTwoButton.click();
33
33
  await page.waitForChanges();
@@ -37,7 +37,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
37
37
  test('back button should pop to the previous page', async ({ page }) => {
38
38
  const pageOne = page.locator('page-one');
39
39
  const pageTwo = page.locator('page-two');
40
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page Two")');
40
+ const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
41
41
  const pageTwoBackButton = page.locator('page-two ion-back-button');
42
42
  await pageTwoButton.click();
43
43
  await page.waitForChanges();
@@ -52,8 +52,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
52
52
  const pageOne = page.locator('page-one');
53
53
  const pageTwo = page.locator('page-two');
54
54
  const pageThree = page.locator('page-three');
55
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page Two")');
56
- const pageThreeButton = page.locator('ion-button:has-text("Go to Page Three")');
55
+ const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
56
+ const pageThreeButton = page.locator('button:has-text("Go to Page Three")');
57
57
  await pageTwoButton.click();
58
58
  await page.waitForChanges();
59
59
  await expect(pageOne).toHaveCount(1);
@@ -15,8 +15,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
15
15
  test('should push pages with nested ion-nav', async ({ page }) => {
16
16
  const pageOne = page.locator('page-one');
17
17
  const pageTwo = page.locator('page-two');
18
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page 2")');
19
- const pageTwoTwoButton = page.locator('ion-button:has-text("Go to Page 2.2")');
18
+ const pageTwoButton = page.locator('button:has-text("Go to Page 2")');
19
+ const pageTwoTwoButton = page.locator('button:has-text("Go to Page 2.2")');
20
20
  await pageTwoButton.click();
21
21
  await page.waitForChanges();
22
22
  const pageTwoOne = page.locator('page-two-one');
@@ -28,7 +28,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
28
28
  await page.waitForChanges();
29
29
  await expect(pageTwoOne).toHaveCount(1);
30
30
  await expect(pageTwoTwo).toBeVisible();
31
- const pageThreeButton = page.locator('ion-button:has-text("Go to Page 3")');
31
+ const pageThreeButton = page.locator('button:has-text("Go to Page 3")');
32
32
  await pageThreeButton.click();
33
33
  await page.waitForChanges();
34
34
  const pageThree = page.locator('page-three');
@@ -38,15 +38,15 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
38
38
  });
39
39
  test.describe('back button', () => {
40
40
  test('should work with nested ion-nav', async ({ page }) => {
41
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page 2")');
42
- const pageTwoTwoButton = page.locator('ion-button:has-text("Go to Page 2.2")');
41
+ const pageTwoButton = page.locator('button:has-text("Go to Page 2")');
42
+ const pageTwoTwoButton = page.locator('button:has-text("Go to Page 2.2")');
43
43
  await pageTwoButton.click();
44
44
  await page.waitForChanges();
45
45
  const pageTwoOne = page.locator('page-two-one');
46
46
  const pageTwoTwo = page.locator('page-two-two');
47
47
  await pageTwoTwoButton.click();
48
48
  await page.waitForChanges();
49
- const pageThreeButton = page.locator('ion-button:has-text("Go to Page 3")');
49
+ const pageThreeButton = page.locator('button:has-text("Go to Page 3")');
50
50
  const pageThreeBackButton = page.locator('page-three ion-back-button');
51
51
  await pageThreeButton.click();
52
52
  await page.waitForChanges();
@@ -21,8 +21,8 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
21
21
  const pageRoot = page.locator('page-root');
22
22
  const pageOne = page.locator('page-one');
23
23
  const pageTwo = page.locator('page-two');
24
- const pageOneButton = page.locator('ion-button:has-text("Go to Page One")');
25
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page Two")');
24
+ const pageOneButton = page.locator('button:has-text("Go to Page One")');
25
+ const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
26
26
  await pageOneButton.click();
27
27
  await page.waitForChanges();
28
28
  await expect(pageOne).toBeVisible();
@@ -37,7 +37,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
37
37
  await expect(pageOne).toHaveCount(1);
38
38
  });
39
39
  test('should render the back button', async ({ page }) => {
40
- const pageOneButton = page.locator('ion-button:has-text("Go to Page One")');
40
+ const pageOneButton = page.locator('button:has-text("Go to Page One")');
41
41
  const pageOneBackButton = page.locator('page-one ion-back-button');
42
42
  await pageOneButton.click();
43
43
  await page.waitForChanges();
@@ -47,7 +47,7 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
47
47
  test('back button should pop to the previous page', async ({ page }) => {
48
48
  const pageRoot = page.locator('page-root');
49
49
  const pageOne = page.locator('page-one');
50
- const pageOneButton = page.locator('ion-button:has-text("Go to Page One")');
50
+ const pageOneButton = page.locator('button:has-text("Go to Page One")');
51
51
  const pageOneBackButton = page.locator('page-one ion-back-button');
52
52
  await pageOneButton.click();
53
53
  await page.waitForChanges();
@@ -63,9 +63,9 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
63
63
  const pageOne = page.locator('page-one');
64
64
  const pageTwo = page.locator('page-two');
65
65
  const pageThree = page.locator('page-three');
66
- const pageOneButton = page.locator('ion-button:has-text("Go to Page One")');
67
- const pageTwoButton = page.locator('ion-button:has-text("Go to Page Two")');
68
- const pageThreeButton = page.locator('ion-button:has-text("Go to Page Three")');
66
+ const pageOneButton = page.locator('button:has-text("Go to Page One")');
67
+ const pageTwoButton = page.locator('button:has-text("Go to Page Two")');
68
+ const pageThreeButton = page.locator('button:has-text("Go to Page Three")');
69
69
  await pageOneButton.click();
70
70
  await page.waitForChanges();
71
71
  await expect(pageRoot).toHaveCount(1);
@@ -359,7 +359,7 @@ export class PickerColumn {
359
359
  break;
360
360
  }
361
361
  if (newOption !== null) {
362
- this.value = newOption.value;
362
+ this.setValue(newOption.value);
363
363
  // This stops any default browser behavior such as scrolling
364
364
  ev.preventDefault();
365
365
  }
@@ -509,8 +509,8 @@ export class PickerColumn {
509
509
  * Use this method instead of the global `pickerColumn.focus()`.
510
510
  */
511
511
  async setFocus() {
512
- if (this.scrollEl) {
513
- this.scrollEl.focus();
512
+ if (this.assistiveFocusable) {
513
+ this.assistiveFocusable.focus();
514
514
  }
515
515
  }
516
516
  connectedCallback() {
@@ -534,14 +534,33 @@ export class PickerColumn {
534
534
  render() {
535
535
  const { color, disabled, isActive, numericInput } = this;
536
536
  const mode = getIonMode(this);
537
- return (h(Host, { key: 'ced35afc6326a20dbac68193921a807a9c10bb99', class: createColorClasses(color, {
537
+ return (h(Host, { key: 'd60736ce74c0e8c774a163272b78fbad32993ec2', class: createColorClasses(color, {
538
538
  [mode]: true,
539
539
  ['picker-column-active']: isActive,
540
540
  ['picker-column-numeric-input']: numericInput,
541
541
  ['picker-column-disabled']: disabled,
542
- }) }, this.renderAssistiveFocusable(), h("slot", { key: '41e290dcc44dacb4237eb674ce2dedc7db66eb7d', name: "prefix" }), h("div", { key: '1fd869b063900103deadefc40929a1e8f02ec084', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
542
+ }) }, this.renderAssistiveFocusable(), h("slot", { key: '74611112ef154b343ae29a773f8cd8a01cc1447d', name: "prefix" }), h("div", { key: 'af772d2b61b7eb41a567593d290b80a50b7caa72', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
543
543
  this.scrollEl = el;
544
- } }, h("div", { key: '0d2087f775b240c9b2534650eb27f3d99e7690a9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '1245b2bb2b6314c3ec4e0ab3ece4e42beb360fc9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '503b08f6bbe27fa7d34c165a93ec38ce7f1ad590', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: 'ec401a2b2d56546fb3f10239b71320ce7dc6a77d' }), h("div", { key: '97a234018291c5a6ca7a56bb1a9a417cac0b3e6f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '0197711f71486a8fa3c184b593cebe1c1e54c585', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '961304f0a2a10afb3502ce4c5fbdceef0aa933cf', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: 'f38b83d26c3c2ba8ef00da7caf7f0be518b2007d', name: "suffix" })));
544
+ },
545
+ /**
546
+ * When an element has an overlay scroll style and
547
+ * a fixed height, Firefox will focus the scrollable
548
+ * container if the content exceeds the container's
549
+ * dimensions.
550
+ *
551
+ * This causes keyboard navigation to focus to this
552
+ * element instead of going to the next element in
553
+ * the tab order.
554
+ *
555
+ * The desired behavior is for the user to be able to
556
+ * focus the assistive focusable element and tab to
557
+ * the next element in the tab order. Instead of tabbing
558
+ * to this element.
559
+ *
560
+ * To prevent this, we set the tabIndex to -1. This
561
+ * will match the behavior of the other browsers.
562
+ */
563
+ tabIndex: -1 }, h("div", { key: '4b646ee97bcf8ed541b9798c91dff189eec41dd1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'a44d1a10d20a13aeb47f9871b09e291aa7f216bd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '6a481715bd68fa68dc2a76c2e867ce771ea680b0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '23236e731b1ad432c104761ebeec91697a6b7643' }), h("div", { key: '58a6c1f35a3ff0b26acaceebfd477d74b6dcfd6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'ea864872dec6dc363406d1bd9101b1bf21944db6', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '28cc4c570d0dd59f491eef2b15a5ed706d28b7bb', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: 'cff1cc0bea732a5ce22bb451c5ea404a84af1993', name: "suffix" })));
545
564
  }
546
565
  static get is() { return "ion-picker-column"; }
547
566
  static get encapsulation() { return "shadow"; }
@@ -32,7 +32,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
32
32
  await popover.evaluate((popover) => {
33
33
  var _a;
34
34
  popover.remove();
35
- (_a = document.querySelector('ion-button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', popover);
35
+ (_a = document.querySelector('button')) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', popover);
36
36
  });
37
37
  await page.waitForChanges();
38
38
  await button.click();
@@ -126,6 +126,7 @@ input {
126
126
  */
127
127
  :host([slot=start]),
128
128
  :host([slot=end]) {
129
+ flex: initial;
129
130
  width: auto;
130
131
  }
131
132
 
@@ -70,6 +70,17 @@ export class Radio {
70
70
  */
71
71
  this.updateState();
72
72
  }
73
+ componentDidLoad() {
74
+ /**
75
+ * The value may be `undefined` if it
76
+ * gets set before the radio is
77
+ * rendered. This ensures that the radio
78
+ * is checked if the value matches. This
79
+ * happens most often when Angular is
80
+ * rendering the radio.
81
+ */
82
+ this.updateState();
83
+ }
73
84
  /** @internal */
74
85
  async setFocus(ev) {
75
86
  ev.stopPropagation();
@@ -107,7 +118,7 @@ export class Radio {
107
118
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
108
119
  const mode = getIonMode(this);
109
120
  const inItem = hostContext('ion-item', el);
110
- return (h(Host, { key: 'e44cade8aa8415bdc825f9d17fc8562487cf5d35', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
121
+ return (h(Host, { key: '43c95effb6acb119733270e8a5e02fe18b47ee4b', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
111
122
  [mode]: true,
112
123
  'in-item': inItem,
113
124
  'radio-checked': checked,
@@ -118,10 +129,10 @@ export class Radio {
118
129
  // Focus and active styling should not apply when the radio is in an item
119
130
  'ion-activatable': !inItem,
120
131
  'ion-focusable': !inItem,
121
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '48a99aa80a7d7b4085ef26faf3167903c975517c', class: "radio-wrapper" }, h("div", { key: 'a8d74e0603b41215ea3e867356a9be0dcf3722d8', class: {
132
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '168ea77c08fde9832077d617662b93dc9986b544', class: "radio-wrapper" }, h("div", { key: 'ce1e6eee63fbab1e5a66b18f767f4eecc2a227f1', class: {
122
133
  'label-text-wrapper': true,
123
134
  'label-text-wrapper-hidden': !hasLabel,
124
- }, part: "label" }, h("slot", { key: '9e3cce6254e70b02d50381537438a70435b031cc' })), h("div", { key: 'bfa3ee188d911e056a3e60178eac41362efb94b3', class: "native-wrapper" }, this.renderRadioControl()))));
135
+ }, part: "label" }, h("slot", { key: '7d849e43d4356b5c3978c2bba9a6fba5d21ca69d' })), h("div", { key: 'e741f7822364958b050a232bdfccdc413095c244', class: "native-wrapper" }, this.renderRadioControl()))));
125
136
  }
126
137
  static get is() { return "ion-radio"; }
127
138
  static get encapsulation() { return "shadow"; }
@@ -126,6 +126,7 @@ input {
126
126
  */
127
127
  :host([slot=start]),
128
128
  :host([slot=end]) {
129
+ flex: initial;
129
130
  width: auto;
130
131
  }
131
132
 
@@ -23,7 +23,7 @@ export class Searchbar {
23
23
  this.onClearInput = async (shouldFocus) => {
24
24
  this.ionClear.emit();
25
25
  return new Promise((resolve) => {
26
- // setTimeout() fixes https://github.com/ionic-team/ionic/issues/7527
26
+ // setTimeout() fixes https://github.com/ionic-team/ionic-framework/issues/7527
27
27
  // wait for 4 frames
28
28
  setTimeout(() => {
29
29
  const value = this.getValue();
@@ -378,8 +378,8 @@ export class Searchbar {
378
378
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
379
379
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
380
380
  const shouldShowCancelButton = this.shouldShowCancelButton();
381
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '8f3323145edfde317f2762e470f3ab2e27452b69', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: 'a3ae5d8a6fe3a96b5aa7142f7a246876fdbe3ef3', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
382
- return (h(Host, { key: '543593e248261418ea75580e5fbed1c613e57d00', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
381
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '20b2d0f2e3425eede725dbe3323c7c29cdb66f4e', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '3a516c3fdd35256eb79639fd340afcdd92cfd7aa', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
382
+ return (h(Host, { key: '34878db21f63a9bdffca0446d8ad5619ff04cac3', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
383
383
  [mode]: true,
384
384
  'searchbar-animated': animated,
385
385
  'searchbar-disabled': this.disabled,
@@ -389,14 +389,14 @@ export class Searchbar {
389
389
  'searchbar-has-focus': this.focused,
390
390
  'searchbar-should-show-clear': this.shouldShowClearButton(),
391
391
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
392
- }) }, h("div", { key: '01351daea61933fedd1bd6289376183962096479', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'fae92d93e9c16c4b48116da9aa6b3e827d0f830a', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '4d20d2db6ce72e82f86fa140ebd2ad3b6bbf4bd6', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '40102559fa7864a7545466cf1abc40131b5ace6c', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
392
+ }) }, h("div", { key: 'faa7b011206a8359b1963368c65988e506b260cb', class: "searchbar-input-container" }, h("input", Object.assign({ key: '732d3e5a2b258da6f136a14472ac872816a9853b', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '767dca971849f221dde220deae728b41bf764b98', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '9941b5de1ed9ebcf3e81de8e0731c09dea5a89d9', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
393
393
  /**
394
394
  * This prevents mobile browsers from
395
395
  * blurring the input when the clear
396
396
  * button is activated.
397
397
  */
398
398
  ev.preventDefault();
399
- }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '42eb950e72357bba1a1fe2dacfa982412c9d64db', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
399
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'cb2b543d286373a84e2c6c2a959f92b045bbd7dd', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
400
400
  }
401
401
  static get is() { return "ion-searchbar"; }
402
402
  static get encapsulation() { return "scoped"; }