voyager-ionic-core 8.0.1 → 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 (601) hide show
  1. package/README.md +1 -1
  2. package/components/checkbox.js +5 -5
  3. package/components/index2.js +119 -1
  4. package/components/ion-accordion-group.js +2 -2
  5. package/components/ion-content.js +6 -4
  6. package/components/ion-datetime-button.js +2 -2
  7. package/components/ion-datetime.js +17 -14
  8. package/components/ion-fab-button.js +2 -2
  9. package/components/ion-fab-list.js +2 -2
  10. package/components/ion-fab.js +2 -2
  11. package/components/ion-footer.js +2 -2
  12. package/components/ion-grid.js +2 -2
  13. package/components/ion-header.js +2 -2
  14. package/components/ion-img.js +1 -1
  15. package/components/ion-infinite-scroll-content.js +2 -2
  16. package/components/ion-infinite-scroll.js +1 -1
  17. package/components/ion-input-password-toggle.js +3 -3
  18. package/components/ion-input.js +8 -4
  19. package/components/ion-item-divider.js +2 -2
  20. package/components/ion-item-group.js +1 -1
  21. package/components/ion-item-option.js +2 -2
  22. package/components/ion-item-options.js +1 -1
  23. package/components/ion-item-sliding.js +1 -1
  24. package/components/ion-loading.js +2 -2
  25. package/components/ion-menu-button.js +2 -2
  26. package/components/ion-menu-toggle.js +2 -2
  27. package/components/ion-menu.js +2 -2
  28. package/components/ion-modal.js +10 -8
  29. package/components/ion-nav-link.js +1 -1
  30. package/components/ion-nav.js +1 -1
  31. package/components/ion-note.js +2 -2
  32. package/components/ion-picker-legacy.js +2 -2
  33. package/components/ion-progress-bar.js +1 -1
  34. package/components/ion-range.js +3 -3
  35. package/components/ion-refresher-content.js +1 -1
  36. package/components/ion-refresher.js +1 -1
  37. package/components/ion-reorder-group.js +1 -1
  38. package/components/ion-reorder.js +1 -1
  39. package/components/ion-router-link.js +2 -2
  40. package/components/ion-router-outlet.js +1 -1
  41. package/components/ion-row.js +1 -1
  42. package/components/ion-searchbar.js +5 -5
  43. package/components/ion-segment-button.js +3 -3
  44. package/components/ion-segment.js +10 -9
  45. package/components/ion-select-option.js +1 -1
  46. package/components/ion-select.js +20 -7
  47. package/components/ion-skeleton-text.js +2 -2
  48. package/components/ion-split-pane.js +2 -2
  49. package/components/ion-tab-bar.js +2 -2
  50. package/components/ion-tab-button.js +2 -2
  51. package/components/ion-tab.js +2 -2
  52. package/components/ion-tabs.js +1 -1
  53. package/components/ion-text.js +2 -2
  54. package/components/ion-textarea.js +2 -2
  55. package/components/ion-thumbnail.js +1 -1
  56. package/components/ion-title.js +2 -2
  57. package/components/ion-toast.js +2 -2
  58. package/components/ion-toggle.js +5 -5
  59. package/components/ion-toolbar.js +2 -2
  60. package/components/ionic-global.js +8 -1
  61. package/components/ios.transition.js +94 -67
  62. package/components/label.js +3 -3
  63. package/components/list-header.js +2 -2
  64. package/components/list.js +1 -1
  65. package/components/overlays.js +3 -2
  66. package/components/picker-column-option.js +2 -2
  67. package/components/picker-column.js +177 -6
  68. package/components/picker-column2.js +2 -2
  69. package/components/picker.js +2 -2
  70. package/components/popover.js +6 -4
  71. package/components/radio-group.js +1 -1
  72. package/components/radio.js +16 -5
  73. package/components/ripple-effect.js +1 -1
  74. package/components/select-popover.js +2 -2
  75. package/components/spinner.js +1 -1
  76. package/css/core.css +1 -1
  77. package/css/core.css.map +1 -1
  78. package/css/global.bundle.css.map +1 -1
  79. package/css/ionic.bundle.css +1 -1
  80. package/css/ionic.bundle.css.map +1 -1
  81. package/css/palettes/dark.always.css +1 -1
  82. package/css/palettes/dark.always.css.map +1 -1
  83. package/css/palettes/dark.class.css +1 -1
  84. package/css/palettes/dark.class.css.map +1 -1
  85. package/css/palettes/dark.system.css +1 -1
  86. package/css/palettes/dark.system.css.map +1 -1
  87. package/css/palettes/high-contrast-dark.always.css.map +1 -1
  88. package/css/palettes/high-contrast-dark.class.css.map +1 -1
  89. package/css/palettes/high-contrast-dark.system.css.map +1 -1
  90. package/css/palettes/high-contrast.always.css.map +1 -1
  91. package/css/palettes/high-contrast.class.css.map +1 -1
  92. package/css/palettes/high-contrast.system.css.map +1 -1
  93. package/css/typography.css.map +1 -1
  94. package/dist/cjs/{app-globals-542c4d91.js → app-globals-1c261a7f.js} +1 -1
  95. package/dist/cjs/{button-active-47528f4c.js → button-active-8da8d63e.js} +1 -1
  96. package/dist/cjs/{hardware-back-button-06ae4d9c.js → hardware-back-button-93f7a8f0.js} +2 -2
  97. package/dist/cjs/{index-57b504ac.js → index-93b3a556.js} +2 -2
  98. package/dist/cjs/index-ceeb4ff8.js +2259 -0
  99. package/dist/cjs/{index-c76a1d14.js → index-fa3cf6ba.js} +124 -6
  100. package/dist/cjs/index.cjs.js +9 -9
  101. package/dist/cjs/ion-accordion_2.cjs.entry.js +4 -4
  102. package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
  103. package/dist/cjs/ion-alert.cjs.entry.js +5 -5
  104. package/dist/cjs/ion-app_8.cjs.entry.js +20 -19
  105. package/dist/cjs/ion-avatar_3.cjs.entry.js +3 -3
  106. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  107. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  108. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
  110. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  111. package/dist/cjs/ion-checkbox.cjs.entry.js +7 -7
  112. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-col_3.cjs.entry.js +5 -5
  114. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  115. package/dist/cjs/ion-datetime_3.cjs.entry.js +25 -22
  116. package/dist/cjs/ion-fab_3.cjs.entry.js +8 -8
  117. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  118. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  119. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +5 -5
  120. package/dist/cjs/ion-input.cjs.entry.js +9 -6
  121. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  122. package/dist/cjs/ion-item_8.cjs.entry.js +15 -15
  123. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  124. package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
  125. package/dist/cjs/ion-modal.cjs.entry.js +13 -12
  126. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -5
  127. package/dist/cjs/ion-picker-column-option.cjs.entry.js +4 -4
  128. package/dist/cjs/ion-picker-column.cjs.entry.js +177 -8
  129. package/dist/cjs/ion-picker.cjs.entry.js +3 -3
  130. package/dist/cjs/ion-popover.cjs.entry.js +9 -8
  131. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  132. package/dist/cjs/ion-radio_2.cjs.entry.js +19 -8
  133. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  134. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  135. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  136. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  137. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  138. package/dist/cjs/ion-searchbar.cjs.entry.js +7 -7
  139. package/dist/cjs/ion-segment_2.cjs.entry.js +15 -14
  140. package/dist/cjs/ion-select_3.cjs.entry.js +27 -14
  141. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  142. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  143. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  144. package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
  145. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  146. package/dist/cjs/ion-textarea.cjs.entry.js +4 -4
  147. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  148. package/dist/cjs/ion-toggle.cjs.entry.js +7 -7
  149. package/dist/cjs/{ionic-global-f3622afe.js → ionic-global-f401ca2e.js} +9 -2
  150. package/dist/cjs/ionic.cjs.js +5 -5
  151. package/dist/cjs/{ios.transition-288dfa83.js → ios.transition-ae54d131.js} +98 -69
  152. package/dist/cjs/loader.cjs.js +4 -4
  153. package/dist/cjs/{md.transition-6e5f6a8d.js → md.transition-dbc2d3f3.js} +4 -2
  154. package/dist/cjs/{overlays-32cfd236.js → overlays-d4afb0bd.js} +5 -3
  155. package/dist/cjs/{status-tap-c47ff5f5.js → status-tap-0a82a165.js} +1 -1
  156. package/dist/collection/collection-manifest.json +1 -1
  157. package/dist/collection/components/accordion/test/a11y/accordion.e2e.js +4 -3
  158. package/dist/collection/components/accordion-group/accordion-group.js +3 -3
  159. package/dist/collection/components/alert/test/a11y/alert.e2e.js +3 -1
  160. package/dist/collection/components/breadcrumbs/test/reactive/breadcrumbs.e2e.js +1 -1
  161. package/dist/collection/components/checkbox/checkbox.ios.css +1 -0
  162. package/dist/collection/components/checkbox/checkbox.js +4 -4
  163. package/dist/collection/components/checkbox/checkbox.md.css +1 -0
  164. package/dist/collection/components/content/content.js +23 -4
  165. package/dist/collection/components/content/test/content.spec.js +27 -0
  166. package/dist/collection/components/datetime/datetime.js +18 -15
  167. package/dist/collection/components/datetime/test/overlay-roles/datetime.e2e.js +34 -0
  168. package/dist/collection/components/datetime/test/position/datetime.e2e.js +1 -1
  169. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  170. package/dist/collection/components/fab/fab.js +2 -2
  171. package/dist/collection/components/fab-button/fab-button.js +2 -2
  172. package/dist/collection/components/fab-list/fab-list.js +2 -2
  173. package/dist/collection/components/footer/footer.js +2 -2
  174. package/dist/collection/components/grid/grid.js +2 -2
  175. package/dist/collection/components/header/header.js +2 -2
  176. package/dist/collection/components/img/img.js +1 -1
  177. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  178. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  179. package/dist/collection/components/input/input.js +25 -5
  180. package/dist/collection/components/input/test/input.spec.js +13 -0
  181. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  182. package/dist/collection/components/item/test/a11y/item.e2e.js +24 -4
  183. package/dist/collection/components/item/test/inputs/item.e2e.js +46 -0
  184. package/dist/collection/components/item/test/slotted-inputs/item.e2e.js +135 -0
  185. package/dist/collection/components/item-divider/item-divider.js +2 -2
  186. package/dist/collection/components/item-group/item-group.js +1 -1
  187. package/dist/collection/components/item-option/item-option.js +2 -2
  188. package/dist/collection/components/item-options/item-options.js +1 -1
  189. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  190. package/dist/collection/components/label/label.ios.css +1 -1
  191. package/dist/collection/components/label/label.js +2 -2
  192. package/dist/collection/components/list/list.js +1 -1
  193. package/dist/collection/components/list-header/list-header.js +2 -2
  194. package/dist/collection/components/loading/loading.js +2 -2
  195. package/dist/collection/components/loading/test/basic/loading.e2e.js +1 -1
  196. package/dist/collection/components/menu/menu.js +2 -2
  197. package/dist/collection/components/menu/test/basic/menu.e2e.js +1 -1
  198. package/dist/collection/components/menu-button/menu-button.js +2 -2
  199. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  200. package/dist/collection/components/modal/gestures/sheet.js +3 -2
  201. package/dist/collection/components/modal/modal.js +25 -6
  202. package/dist/collection/components/modal/test/basic/modal.spec.js +19 -0
  203. package/dist/collection/components/modal/test/trigger/modal.e2e.js +1 -1
  204. package/dist/collection/components/nav/nav.js +1 -1
  205. package/dist/collection/components/nav/test/basic/nav.e2e.js +5 -5
  206. package/dist/collection/components/nav/test/nested/nav.e2e.js +6 -6
  207. package/dist/collection/components/nav/test/routing/nav.e2e.js +7 -7
  208. package/dist/collection/components/nav-link/nav-link.js +1 -1
  209. package/dist/collection/components/note/note.js +2 -2
  210. package/dist/collection/components/picker/picker.js +2 -2
  211. package/dist/collection/components/picker-column/picker-column.css +19 -0
  212. package/dist/collection/components/picker-column/picker-column.js +180 -6
  213. package/dist/collection/components/picker-column/test/picker-column.spec.js +83 -0
  214. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  215. package/dist/collection/components/picker-legacy/picker.js +2 -2
  216. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  217. package/dist/collection/components/popover/popover.js +23 -4
  218. package/dist/collection/components/popover/test/basic/popover.spec.js +19 -0
  219. package/dist/collection/components/popover/test/trigger/popover.e2e.js +1 -1
  220. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  221. package/dist/collection/components/radio/radio.ios.css +1 -0
  222. package/dist/collection/components/radio/radio.js +14 -3
  223. package/dist/collection/components/radio/radio.md.css +1 -0
  224. package/dist/collection/components/radio-group/radio-group.js +2 -2
  225. package/dist/collection/components/range/range.js +4 -4
  226. package/dist/collection/components/refresher/refresher.js +1 -1
  227. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  228. package/dist/collection/components/reorder/reorder.js +1 -1
  229. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  230. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  231. package/dist/collection/components/router-link/router-link.js +2 -2
  232. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  233. package/dist/collection/components/row/row.js +1 -1
  234. package/dist/collection/components/searchbar/searchbar.js +6 -6
  235. package/dist/collection/components/segment/segment.js +11 -10
  236. package/dist/collection/components/segment-button/segment-button.js +3 -3
  237. package/dist/collection/components/select/select.ios.css +1 -0
  238. package/dist/collection/components/select/select.js +19 -6
  239. package/dist/collection/components/select/select.md.css +1 -0
  240. package/dist/collection/components/select/test/basic/select.e2e.js +1 -1
  241. package/dist/collection/components/select/test/disabled/select.e2e.js +1 -1
  242. package/dist/collection/components/select/test/fill/select.e2e.js +25 -0
  243. package/dist/collection/components/select-option/select-option.js +1 -1
  244. package/dist/collection/components/select-popover/select-popover.js +1 -1
  245. package/dist/collection/components/select-popover/select-popover.md.css +8 -1
  246. package/dist/collection/components/select-popover/test/basic/select-popover.e2e.js +2 -2
  247. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  248. package/dist/collection/components/spinner/spinner.js +1 -1
  249. package/dist/collection/components/split-pane/split-pane.js +2 -2
  250. package/dist/collection/components/tab/tab.js +2 -2
  251. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  252. package/dist/collection/components/tab-button/tab-button.js +2 -2
  253. package/dist/collection/components/tabs/tabs.js +1 -1
  254. package/dist/collection/components/text/text.js +2 -2
  255. package/dist/collection/components/textarea/textarea.js +3 -3
  256. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  257. package/dist/collection/components/title/title.js +2 -2
  258. package/dist/collection/components/toast/test/basic/toast.e2e.js +1 -0
  259. package/dist/collection/components/toast/toast.js +2 -2
  260. package/dist/collection/components/toggle/toggle.ios.css +1 -0
  261. package/dist/collection/components/toggle/toggle.js +4 -4
  262. package/dist/collection/components/toggle/toggle.md.css +1 -0
  263. package/dist/collection/components/toolbar/toolbar.js +2 -2
  264. package/dist/collection/global/config.js +8 -1
  265. package/dist/collection/global/test/config-controller.spec.js +9 -1
  266. package/dist/collection/utils/focus-controller/index.js +112 -0
  267. package/dist/collection/utils/focus-controller/test/generic/focus-controller.e2e.js +52 -0
  268. package/dist/collection/utils/focus-controller/test/ionic/focus-controller.e2e.js +52 -0
  269. package/dist/collection/utils/overlays.js +2 -1
  270. package/dist/collection/utils/transition/index.js +11 -1
  271. package/dist/collection/utils/transition/ios.transition.js +94 -67
  272. package/dist/docs.d.ts +34 -0
  273. package/dist/docs.json +3616 -497
  274. package/dist/esm/{app-globals-3cbaf9d9.js → app-globals-7c667c11.js} +1 -1
  275. package/dist/esm/{button-active-9e3c1f3b.js → button-active-7c57df95.js} +1 -1
  276. package/dist/esm/{hardware-back-button-804f43bb.js → hardware-back-button-63852d15.js} +2 -2
  277. package/dist/esm/{index-8dbae644.js → index-1e2f8425.js} +2 -2
  278. package/dist/esm/index-8d8c14b0.js +2221 -0
  279. package/dist/esm/{index-f7fbe1fb.js → index-91ed2172.js} +122 -4
  280. package/dist/esm/index.js +9 -9
  281. package/dist/esm/ion-accordion_2.entry.js +4 -4
  282. package/dist/esm/ion-action-sheet.entry.js +5 -5
  283. package/dist/esm/ion-alert.entry.js +5 -5
  284. package/dist/esm/ion-app_8.entry.js +20 -19
  285. package/dist/esm/ion-avatar_3.entry.js +3 -3
  286. package/dist/esm/ion-back-button.entry.js +2 -2
  287. package/dist/esm/ion-backdrop.entry.js +2 -2
  288. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  289. package/dist/esm/ion-button_2.entry.js +2 -2
  290. package/dist/esm/ion-card_5.entry.js +2 -2
  291. package/dist/esm/ion-checkbox.entry.js +7 -7
  292. package/dist/esm/ion-chip.entry.js +2 -2
  293. package/dist/esm/ion-col_3.entry.js +5 -5
  294. package/dist/esm/ion-datetime-button.entry.js +4 -4
  295. package/dist/esm/ion-datetime_3.entry.js +25 -22
  296. package/dist/esm/ion-fab_3.entry.js +8 -8
  297. package/dist/esm/ion-img.entry.js +3 -3
  298. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  299. package/dist/esm/ion-input-password-toggle.entry.js +5 -5
  300. package/dist/esm/ion-input.entry.js +9 -6
  301. package/dist/esm/ion-item-option_3.entry.js +6 -6
  302. package/dist/esm/ion-item_8.entry.js +15 -15
  303. package/dist/esm/ion-loading.entry.js +6 -6
  304. package/dist/esm/ion-menu_3.entry.js +11 -11
  305. package/dist/esm/ion-modal.entry.js +13 -12
  306. package/dist/esm/ion-nav_2.entry.js +6 -5
  307. package/dist/esm/ion-picker-column-option.entry.js +4 -4
  308. package/dist/esm/ion-picker-column.entry.js +177 -8
  309. package/dist/esm/ion-picker.entry.js +3 -3
  310. package/dist/esm/ion-popover.entry.js +9 -8
  311. package/dist/esm/ion-progress-bar.entry.js +3 -3
  312. package/dist/esm/ion-radio_2.entry.js +19 -8
  313. package/dist/esm/ion-range.entry.js +5 -5
  314. package/dist/esm/ion-refresher_2.entry.js +4 -4
  315. package/dist/esm/ion-reorder_2.entry.js +4 -4
  316. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  317. package/dist/esm/ion-route_4.entry.js +4 -4
  318. package/dist/esm/ion-searchbar.entry.js +7 -7
  319. package/dist/esm/ion-segment_2.entry.js +15 -14
  320. package/dist/esm/ion-select_3.entry.js +27 -14
  321. package/dist/esm/ion-spinner.entry.js +3 -3
  322. package/dist/esm/ion-split-pane.entry.js +4 -4
  323. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  324. package/dist/esm/ion-tab_2.entry.js +4 -4
  325. package/dist/esm/ion-text.entry.js +4 -4
  326. package/dist/esm/ion-textarea.entry.js +4 -4
  327. package/dist/esm/ion-toast.entry.js +6 -6
  328. package/dist/esm/ion-toggle.entry.js +7 -7
  329. package/dist/esm/{ionic-global-d2d8f882.js → ionic-global-8180d812.js} +9 -2
  330. package/dist/esm/ionic.js +6 -6
  331. package/dist/esm/{ios.transition-a0041e41.js → ios.transition-140cedc8.js} +98 -69
  332. package/dist/esm/loader.js +5 -5
  333. package/dist/esm/{md.transition-0c0602d9.js → md.transition-4961bea4.js} +4 -2
  334. package/dist/esm/{overlays-696d25f5.js → overlays-e8e5bd06.js} +5 -4
  335. package/dist/esm/{status-tap-37a74d1c.js → status-tap-0502d0fd.js} +1 -1
  336. package/dist/esm-es5/app-globals-7c667c11.js +4 -0
  337. package/dist/esm-es5/{button-active-9e3c1f3b.js → button-active-7c57df95.js} +1 -1
  338. package/dist/esm-es5/{hardware-back-button-804f43bb.js → hardware-back-button-63852d15.js} +1 -1
  339. package/dist/esm-es5/{index-8dbae644.js → index-1e2f8425.js} +1 -1
  340. package/dist/esm-es5/index-8d8c14b0.js +5 -0
  341. package/dist/esm-es5/index-91ed2172.js +4 -0
  342. package/dist/esm-es5/index.js +1 -1
  343. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  344. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  345. package/dist/esm-es5/ion-alert.entry.js +1 -1
  346. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  347. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  348. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  349. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  350. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  351. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  352. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  353. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  354. package/dist/esm-es5/ion-chip.entry.js +1 -1
  355. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  356. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  357. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  358. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  359. package/dist/esm-es5/ion-img.entry.js +1 -1
  360. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  361. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  362. package/dist/esm-es5/ion-input.entry.js +1 -1
  363. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  364. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  365. package/dist/esm-es5/ion-loading.entry.js +1 -1
  366. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  367. package/dist/esm-es5/ion-modal.entry.js +1 -1
  368. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  369. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  370. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  371. package/dist/esm-es5/ion-picker.entry.js +1 -1
  372. package/dist/esm-es5/ion-popover.entry.js +1 -1
  373. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  374. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  375. package/dist/esm-es5/ion-range.entry.js +1 -1
  376. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  377. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  378. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  379. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  380. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  381. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  382. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  383. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  384. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  385. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  386. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  387. package/dist/esm-es5/ion-text.entry.js +1 -1
  388. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  389. package/dist/esm-es5/ion-toast.entry.js +1 -1
  390. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  391. package/dist/esm-es5/ionic-global-8180d812.js +4 -0
  392. package/dist/esm-es5/ionic.js +1 -1
  393. package/dist/esm-es5/ios.transition-140cedc8.js +4 -0
  394. package/dist/esm-es5/loader.js +1 -1
  395. package/dist/esm-es5/md.transition-4961bea4.js +4 -0
  396. package/dist/esm-es5/{overlays-696d25f5.js → overlays-e8e5bd06.js} +1 -1
  397. package/dist/esm-es5/{status-tap-37a74d1c.js → status-tap-0502d0fd.js} +1 -1
  398. package/dist/html.html-data.json +115 -91
  399. package/dist/ionic/index.esm.js +1 -1
  400. package/dist/ionic/ionic.esm.js +1 -1
  401. package/dist/ionic/ionic.js +1 -1
  402. package/dist/ionic/{p-e9ef13be.system.entry.js → p-00343522.system.entry.js} +1 -1
  403. package/dist/ionic/{p-bdd3053f.entry.js → p-00f85ca4.entry.js} +1 -1
  404. package/dist/ionic/p-0213e506.entry.js +4 -0
  405. package/dist/ionic/p-036382b2.system.entry.js +4 -0
  406. package/dist/ionic/{p-c7e0b81a.entry.js → p-0617a85d.entry.js} +1 -1
  407. package/dist/ionic/{p-5d3a8503.system.entry.js → p-06330374.system.entry.js} +2 -2
  408. package/dist/ionic/p-0973cae7.entry.js +4 -0
  409. package/dist/ionic/{p-e3005be4.system.entry.js → p-09bd8558.system.entry.js} +1 -1
  410. package/dist/ionic/{p-6e9bd6ba.system.entry.js → p-0a9c8c36.system.entry.js} +1 -1
  411. package/dist/ionic/p-0f89c47c.js +4 -0
  412. package/dist/ionic/{p-2f308f7f.system.entry.js → p-111b0e11.system.entry.js} +2 -2
  413. package/dist/ionic/{p-93e43f42.system.entry.js → p-11feccde.system.entry.js} +1 -1
  414. package/dist/ionic/p-13a736a9.entry.js +4 -0
  415. package/dist/ionic/{p-bbbe3138.system.entry.js → p-18657fab.system.entry.js} +1 -1
  416. package/dist/ionic/p-1ca3679b.entry.js +4 -0
  417. package/dist/ionic/{p-cdee3a44.system.entry.js → p-1dd59f8d.system.entry.js} +1 -1
  418. package/dist/ionic/p-1e5cabf8.entry.js +4 -0
  419. package/dist/ionic/{p-b799a007.entry.js → p-24b0ece0.entry.js} +1 -1
  420. package/dist/ionic/{p-4e5288de.system.js → p-27317f8f.system.js} +1 -1
  421. package/dist/ionic/p-30bbe61c.system.js +4 -0
  422. package/dist/ionic/{p-4e548bd7.system.entry.js → p-34827988.system.entry.js} +1 -1
  423. package/dist/ionic/p-370835b4.system.js +4 -0
  424. package/dist/ionic/p-39303199.system.js +4 -0
  425. package/dist/ionic/{p-aa0ed22b.system.entry.js → p-3b0711a0.system.entry.js} +1 -1
  426. package/dist/ionic/{p-94180ecc.entry.js → p-3d1951f5.entry.js} +1 -1
  427. package/dist/ionic/p-3fd68f4e.system.entry.js +4 -0
  428. package/dist/ionic/{p-b571cab1.entry.js → p-443cbfcb.entry.js} +1 -1
  429. package/dist/ionic/{p-3f5b86b4.entry.js → p-4455daad.entry.js} +1 -1
  430. package/dist/ionic/{p-aa0f60b2.system.js → p-45a51395.system.js} +1 -1
  431. package/dist/ionic/{p-c671b28e.js → p-4691dc8d.js} +1 -1
  432. package/dist/ionic/{p-7f59064a.entry.js → p-4713f5f0.entry.js} +1 -1
  433. package/dist/ionic/p-479e7655.system.js +5 -0
  434. package/dist/ionic/{p-283fd4e1.system.entry.js → p-47ab6574.system.entry.js} +1 -1
  435. package/dist/ionic/{p-c4676693.entry.js → p-4816d827.entry.js} +1 -1
  436. package/dist/ionic/{p-1930d8e7.entry.js → p-4927bd6e.entry.js} +1 -1
  437. package/dist/ionic/p-4fa57f1e.system.entry.js +4 -0
  438. package/dist/ionic/{p-26d33af2.system.entry.js → p-54b04ed1.system.entry.js} +1 -1
  439. package/dist/ionic/{p-c3ca0292.system.entry.js → p-5cd86cdb.system.entry.js} +1 -1
  440. package/dist/ionic/{p-63265e00.system.entry.js → p-5e1094ae.system.entry.js} +2 -2
  441. package/dist/ionic/{p-4c153abb.entry.js → p-5f610767.entry.js} +1 -1
  442. package/dist/ionic/p-65a8336f.entry.js +4 -0
  443. package/dist/ionic/p-66de062f.system.entry.js +4 -0
  444. package/dist/ionic/{p-5a3a3373.entry.js → p-69cc64ab.entry.js} +1 -1
  445. package/dist/ionic/p-6c16d0e8.js +4 -0
  446. package/dist/ionic/p-6e76ed16.entry.js +4 -0
  447. package/dist/ionic/p-7058dfda.entry.js +4 -0
  448. package/dist/ionic/{p-1980c728.system.js → p-7171dbf4.system.js} +1 -1
  449. package/dist/ionic/p-7198726e.entry.js +4 -0
  450. package/dist/ionic/{p-5d4d89e0.system.entry.js → p-71e2f283.system.entry.js} +1 -1
  451. package/dist/ionic/{p-d6229f05.system.entry.js → p-71f25447.system.entry.js} +1 -1
  452. package/dist/ionic/{p-5fbc2eae.system.entry.js → p-750e902d.system.entry.js} +1 -1
  453. package/dist/ionic/{p-53a3b33c.system.entry.js → p-764eb419.system.entry.js} +1 -1
  454. package/dist/ionic/p-76637161.system.entry.js +4 -0
  455. package/dist/ionic/{p-8627f783.system.entry.js → p-78bf8302.system.entry.js} +2 -2
  456. package/dist/ionic/p-79f4cb29.entry.js +4 -0
  457. package/dist/ionic/p-7a416af9.entry.js +4 -0
  458. package/dist/ionic/{p-e49099b0.entry.js → p-80aae5d7.entry.js} +1 -1
  459. package/dist/ionic/{p-819e8479.system.entry.js → p-8890e47f.system.entry.js} +1 -1
  460. package/dist/ionic/{p-8caca06c.system.entry.js → p-8c7490bc.system.entry.js} +1 -1
  461. package/dist/ionic/{p-051d2d23.js → p-8d0eb68d.js} +1 -1
  462. package/dist/ionic/{p-b76bcd9e.system.entry.js → p-935221f8.system.entry.js} +1 -1
  463. package/dist/ionic/{p-70181008.entry.js → p-941ecbba.entry.js} +1 -1
  464. package/dist/ionic/{p-0af79ebd.entry.js → p-94b46442.entry.js} +1 -1
  465. package/dist/ionic/p-967da5f2.system.js +4 -0
  466. package/dist/ionic/{p-1e4d7975.system.js → p-98125393.system.js} +1 -1
  467. package/dist/ionic/{p-08c4d048.entry.js → p-9b46f7e0.entry.js} +1 -1
  468. package/dist/ionic/{p-6730a2f1.entry.js → p-a00a5621.entry.js} +1 -1
  469. package/dist/ionic/{p-a592f1b8.system.entry.js → p-a055fdcf.system.entry.js} +1 -1
  470. package/dist/ionic/{p-2c3c7cb9.system.entry.js → p-a0abe7ab.system.entry.js} +2 -2
  471. package/dist/ionic/p-a4116282.entry.js +4 -0
  472. package/dist/ionic/p-a4a45ad9.system.js +4 -0
  473. package/dist/ionic/p-a5adb027.entry.js +4 -0
  474. package/dist/ionic/{p-8c4fc85f.system.js → p-a82d4913.system.js} +1 -1
  475. package/dist/ionic/{p-23e440b6.entry.js → p-a87b1500.entry.js} +1 -1
  476. package/dist/ionic/{p-2b1e669d.system.entry.js → p-a931cd3e.system.entry.js} +1 -1
  477. package/dist/ionic/{p-748e6b2b.system.entry.js → p-ae3be67f.system.entry.js} +1 -1
  478. package/dist/ionic/{p-9384565a.entry.js → p-aeb61b82.entry.js} +1 -1
  479. package/dist/ionic/{p-33d926c3.entry.js → p-aeef6ac4.entry.js} +1 -1
  480. package/dist/ionic/p-aef1c744.system.js +4 -0
  481. package/dist/ionic/p-b0ff8469.system.entry.js +4 -0
  482. package/dist/ionic/{p-5ff497dc.system.entry.js → p-b7299e38.system.entry.js} +1 -1
  483. package/dist/ionic/{p-c23627c3.entry.js → p-b7eecfa6.entry.js} +1 -1
  484. package/dist/ionic/{p-45034312.system.entry.js → p-b84d9005.system.entry.js} +1 -1
  485. package/dist/ionic/{p-48888af6.system.entry.js → p-bad2e0c8.system.entry.js} +1 -1
  486. package/dist/ionic/p-bd7ad51d.system.entry.js +4 -0
  487. package/dist/ionic/{p-d11c336d.js → p-bdc1b4e3.js} +1 -1
  488. package/dist/ionic/{p-42f00e72.system.entry.js → p-c1d7a187.system.entry.js} +1 -1
  489. package/dist/ionic/p-c4493e98.system.entry.js +4 -0
  490. package/dist/ionic/p-c44efdb8.entry.js +4 -0
  491. package/dist/ionic/p-c5543c41.system.entry.js +4 -0
  492. package/dist/ionic/p-c5c65bbe.js +4 -0
  493. package/dist/ionic/{p-5d80b741.entry.js → p-c6143912.entry.js} +1 -1
  494. package/dist/ionic/{p-bd6d9610.entry.js → p-c623f0d9.entry.js} +1 -1
  495. package/dist/ionic/p-c6d9d978.system.entry.js +4 -0
  496. package/dist/ionic/p-c7717147.js +4 -0
  497. package/dist/ionic/p-c7a015e4.entry.js +4 -0
  498. package/dist/ionic/{p-c07e7a5d.entry.js → p-c89af27e.entry.js} +1 -1
  499. package/dist/ionic/{p-d1a8f599.entry.js → p-cd681265.entry.js} +1 -1
  500. package/dist/ionic/{p-f5c42f72.entry.js → p-cf8ad0c3.entry.js} +1 -1
  501. package/dist/ionic/p-d6dbda17.js +5 -0
  502. package/dist/ionic/{p-e885f3c4.entry.js → p-d7e957e9.entry.js} +1 -1
  503. package/dist/ionic/p-d8a1f0e2.entry.js +4 -0
  504. package/dist/ionic/p-dba2da82.system.entry.js +4 -0
  505. package/dist/ionic/{p-77ce6034.js → p-ddde112a.js} +1 -1
  506. package/dist/ionic/{p-2ab5db0d.system.entry.js → p-e08d9edc.system.entry.js} +1 -1
  507. package/dist/ionic/{p-c9ba1908.entry.js → p-eaab79f3.entry.js} +1 -1
  508. package/dist/ionic/{p-0b12d1ee.system.entry.js → p-ee8bf348.system.entry.js} +1 -1
  509. package/dist/ionic/{p-9b31ebfa.entry.js → p-eea44228.entry.js} +1 -1
  510. package/dist/ionic/{p-c62571da.entry.js → p-eef82267.entry.js} +1 -1
  511. package/dist/ionic/{p-2a3e98fb.system.entry.js → p-f149e6c3.system.entry.js} +1 -1
  512. package/dist/ionic/{p-fd392e7f.system.entry.js → p-f1c090c5.system.entry.js} +1 -1
  513. package/dist/ionic/{p-ebe0aa6d.entry.js → p-f5efe527.entry.js} +1 -1
  514. package/dist/ionic/p-f6a419d2.js +4 -0
  515. package/dist/ionic/p-f896c857.system.entry.js +4 -0
  516. package/dist/ionic/{p-576786c0.system.entry.js → p-f9046353.system.entry.js} +1 -1
  517. package/dist/ionic/p-f9b3ffd6.system.entry.js +4 -0
  518. package/dist/ionic/{p-320cfcab.entry.js → p-fa7234ee.entry.js} +1 -1
  519. package/dist/ionic/{p-470f73c4.entry.js → p-fba8ea9e.entry.js} +1 -1
  520. package/dist/ionic/p-fc6f99be.js +4 -0
  521. package/dist/ionic/{p-b0093947.system.js → p-fcbd65bc.system.js} +1 -1
  522. package/dist/types/components/accordion-group/accordion-group.d.ts +3 -4
  523. package/dist/types/components/checkbox/checkbox.d.ts +3 -4
  524. package/dist/types/components/content/content.d.ts +8 -0
  525. package/dist/types/components/datetime/datetime.d.ts +2 -0
  526. package/dist/types/components/input/input.d.ts +6 -0
  527. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  528. package/dist/types/components/modal/modal.d.ts +18 -0
  529. package/dist/types/components/picker-column/picker-column.d.ts +37 -0
  530. package/dist/types/components/popover/popover-interface.d.ts +1 -0
  531. package/dist/types/components/popover/popover.d.ts +18 -0
  532. package/dist/types/components/radio/radio.d.ts +1 -0
  533. package/dist/types/components/radio-group/radio-group.d.ts +2 -0
  534. package/dist/types/components/range/range.d.ts +1 -1
  535. package/dist/types/components/searchbar/searchbar.d.ts +2 -0
  536. package/dist/types/components/segment/segment.d.ts +4 -2
  537. package/dist/types/components/select/select.d.ts +4 -1
  538. package/dist/types/components/textarea/textarea.d.ts +2 -0
  539. package/dist/types/components/toggle/toggle.d.ts +3 -2
  540. package/dist/types/components.d.ts +44 -12
  541. package/dist/types/stencil-public-runtime.d.ts +1 -0
  542. package/dist/types/utils/config.d.ts +9 -0
  543. package/dist/types/utils/focus-controller/index.d.ts +13 -0
  544. package/dist/types/utils/overlays.d.ts +1 -0
  545. package/hydrate/index.js +43590 -39248
  546. package/loader/cdn.js +1 -1
  547. package/loader/index.cjs.js +1 -1
  548. package/loader/index.es2017.js +1 -1
  549. package/loader/index.js +1 -1
  550. package/package.json +7 -7
  551. package/dist/cjs/index-1437d080.js +0 -11980
  552. package/dist/esm/index-5dc2b88e.js +0 -11942
  553. package/dist/esm-es5/app-globals-3cbaf9d9.js +0 -4
  554. package/dist/esm-es5/index-5dc2b88e.js +0 -18
  555. package/dist/esm-es5/index-f7fbe1fb.js +0 -4
  556. package/dist/esm-es5/ionic-global-d2d8f882.js +0 -4
  557. package/dist/esm-es5/ios.transition-a0041e41.js +0 -4
  558. package/dist/esm-es5/md.transition-0c0602d9.js +0 -4
  559. package/dist/ionic/p-057b5866.entry.js +0 -4
  560. package/dist/ionic/p-06d5221c.js +0 -4
  561. package/dist/ionic/p-06fad524.system.js +0 -4
  562. package/dist/ionic/p-0d56dea9.entry.js +0 -4
  563. package/dist/ionic/p-0d960144.system.entry.js +0 -4
  564. package/dist/ionic/p-13bfcef4.system.entry.js +0 -4
  565. package/dist/ionic/p-16016625.system.js +0 -4
  566. package/dist/ionic/p-1a5227b3.system.entry.js +0 -4
  567. package/dist/ionic/p-20304962.js +0 -4
  568. package/dist/ionic/p-2dfdda15.system.entry.js +0 -4
  569. package/dist/ionic/p-2fa34b5c.entry.js +0 -4
  570. package/dist/ionic/p-32048e4c.system.js +0 -18
  571. package/dist/ionic/p-34511b1d.js +0 -4
  572. package/dist/ionic/p-385964e6.entry.js +0 -4
  573. package/dist/ionic/p-4324e8a4.entry.js +0 -4
  574. package/dist/ionic/p-45664cb9.system.js +0 -4
  575. package/dist/ionic/p-49cdc4f2.entry.js +0 -4
  576. package/dist/ionic/p-4ad48ec9.system.entry.js +0 -4
  577. package/dist/ionic/p-4af0b730.js +0 -8
  578. package/dist/ionic/p-4fcef939.entry.js +0 -4
  579. package/dist/ionic/p-567a21a2.system.entry.js +0 -4
  580. package/dist/ionic/p-583f8865.system.entry.js +0 -4
  581. package/dist/ionic/p-58f89707.js +0 -4
  582. package/dist/ionic/p-720927ad.entry.js +0 -4
  583. package/dist/ionic/p-7536b4b3.system.js +0 -4
  584. package/dist/ionic/p-7ef5bb32.entry.js +0 -4
  585. package/dist/ionic/p-806aad8f.system.js +0 -4
  586. package/dist/ionic/p-80f85095.system.entry.js +0 -4
  587. package/dist/ionic/p-8664c316.entry.js +0 -4
  588. package/dist/ionic/p-8e031d97.entry.js +0 -4
  589. package/dist/ionic/p-8f48c966.system.entry.js +0 -4
  590. package/dist/ionic/p-94731a92.system.entry.js +0 -4
  591. package/dist/ionic/p-a801da4b.system.entry.js +0 -4
  592. package/dist/ionic/p-adb896a0.entry.js +0 -4
  593. package/dist/ionic/p-cb4f96f3.system.js +0 -4
  594. package/dist/ionic/p-cc856712.entry.js +0 -4
  595. package/dist/ionic/p-cd1b9056.js +0 -4
  596. package/dist/ionic/p-d918e7ef.system.entry.js +0 -4
  597. package/dist/ionic/p-df062892.system.entry.js +0 -4
  598. package/dist/ionic/p-ee3bbaf2.entry.js +0 -4
  599. package/dist/ionic/p-f0be340f.entry.js +0 -4
  600. package/dist/ionic/p-fc94e18f.entry.js +0 -4
  601. package/dist/ionic/p-fdf40b09.js +0 -4
@@ -4,6 +4,7 @@
4
4
  import { h } from "@stencil/core";
5
5
  import { newSpecPage } from "@stencil/core/testing";
6
6
  import { Popover } from "../../popover";
7
+ import { FOCUS_TRAP_DISABLE_CLASS } from "../../../../utils/overlays";
7
8
  describe('popover: htmlAttributes inheritance', () => {
8
9
  it('should correctly inherit attributes on host', async () => {
9
10
  const page = await newSpecPage({
@@ -14,3 +15,21 @@ describe('popover: htmlAttributes inheritance', () => {
14
15
  await expect(popover.getAttribute('data-testid')).toBe('basic-popover');
15
16
  });
16
17
  });
18
+ describe('popover: focus trap', () => {
19
+ it('should set the focus trap class when disabled', async () => {
20
+ const page = await newSpecPage({
21
+ components: [Popover],
22
+ template: () => h("ion-popover", { focusTrap: false, overlayIndex: 1 }),
23
+ });
24
+ const popover = page.body.querySelector('ion-popover');
25
+ expect(popover.classList.contains(FOCUS_TRAP_DISABLE_CLASS)).toBe(true);
26
+ });
27
+ it('should not set the focus trap class by default', async () => {
28
+ const page = await newSpecPage({
29
+ components: [Popover],
30
+ template: () => h("ion-popover", { overlayIndex: 1 }),
31
+ });
32
+ const popover = page.body.querySelector('ion-popover');
33
+ expect(popover.classList.contains(FOCUS_TRAP_DISABLE_CLASS)).toBe(false);
34
+ });
35
+ });
@@ -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();
@@ -28,7 +28,7 @@ export class ProgressBar {
28
28
  const mode = getIonMode(this);
29
29
  // If the progress is displayed as a solid bar.
30
30
  const progressSolid = buffer === 1;
31
- return (h(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
31
+ return (h(Host, { key: 'b293f4475bcdaa7851b41ebfda659037f0365120', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
32
32
  [mode]: true,
33
33
  [`progress-bar-${type}`]: true,
34
34
  'progress-paused': paused,
@@ -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: 'cb00934d052260e97462e97a1669045cbb0b963a', 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: '05613f89400469692442bf3c02c27f9299c5d6ef', class: "radio-wrapper" }, h("div", { key: '89b5d7668c3856f417c318629086cf46a072efbe', 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: 'd5e43a8d0fe5a7fc323887d310fd64d6f87deef7' })), h("div", { key: '7fd221189adcfccca1ed18dcd0a60cde6261120b', 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
 
@@ -153,7 +153,7 @@ export class RadioGroup {
153
153
  const { label, labelId, el, name, value } = this;
154
154
  const mode = getIonMode(this);
155
155
  renderHiddenInput(true, el, name, value, false);
156
- return h(Host, { key: 'b6b439d6d53d17a5a4d9853a7cf6065b28213338', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
156
+ return h(Host, { key: '7a8ad7eb6a05c6f96a348dcf30fd0c610a95688c', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
157
157
  }
158
158
  static get is() { return "ion-radio-group"; }
159
159
  static get properties() {
@@ -245,7 +245,7 @@ export class RadioGroup {
245
245
  "composed": true,
246
246
  "docs": {
247
247
  "tags": [],
248
- "text": "Emitted when the value has changed."
248
+ "text": "Emitted when the value has changed.\n\nThis event will not emit when programmatically setting the `value` property."
249
249
  },
250
250
  "complexType": {
251
251
  "original": "RadioGroupChangeEventDetail",
@@ -561,7 +561,7 @@ export class Range {
561
561
  const needsEndAdjustment = inItem && !hasEndContent;
562
562
  const mode = getIonMode(this);
563
563
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
564
- return (h(Host, { key: 'cd70b5db9eae808a644643d7095a1b5264cbc5fe', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
564
+ return (h(Host, { key: '7ad5ca892fd46c64ce5583e91e6812410a869921', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
565
565
  [mode]: true,
566
566
  'in-item': inItem,
567
567
  'range-disabled': disabled,
@@ -570,10 +570,10 @@ export class Range {
570
570
  [`range-label-placement-${labelPlacement}`]: true,
571
571
  'range-item-start-adjustment': needsStartAdjustment,
572
572
  'range-item-end-adjustment': needsEndAdjustment,
573
- }) }, h("label", { key: '78ef0523f0064d6b268ae17ef72f90094511d897', class: "range-wrapper", id: "range-label" }, h("div", { key: '6e4b2051e770dabe80dcb9f412e9aae1859e9f33', class: {
573
+ }) }, h("label", { key: 'eb8d46a9572341b4cc3c91d8a5de0667bd166ca4', class: "range-wrapper", id: "range-label" }, h("div", { key: '21acd6ff6eba17bf6923bf723fea055b95fd29ca', class: {
574
574
  'label-text-wrapper': true,
575
575
  'label-text-wrapper-hidden': !hasLabel,
576
- }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '72cdb8f6657a3b84f759743cedd600020c954c6a', class: "native-wrapper" }, h("slot", { key: 'f7a38d6bd63df5dc8b4470f1f4acaaf3e5c80514', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'ae74ac8c1da691e3be1b2f00dfd3c8419b9566ec', name: "end" })))));
576
+ }, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '7644c86a6ad3edf2c27f02dd2a14795b3720ea0d', class: "native-wrapper" }, h("slot", { key: '1bbeccee57addc126b36de395e28ba655248695b', name: "start" }), this.renderRangeSlider(), h("slot", { key: '2963dd84e4116fc3956c304eb53deefd0d1291df', name: "end" })))));
577
577
  }
578
578
  static get is() { return "ion-range"; }
579
579
  static get encapsulation() { return "shadow"; }
@@ -909,7 +909,7 @@ export class Range {
909
909
  "composed": true,
910
910
  "docs": {
911
911
  "tags": [],
912
- "text": "The `ionChange` event is fired for `<ion-range>` elements when the user\nmodifies the element's value:\n- When the user releases the knob after dragging;\n- When the user moves the knob with keyboard arrows\n\n`ionChange` is not fired when the value is changed programmatically."
912
+ "text": "The `ionChange` event is fired for `<ion-range>` elements when the user\nmodifies the element's value:\n- When the user releases the knob after dragging;\n- When the user moves the knob with keyboard arrows\n\nThis event will not emit when programmatically setting the `value` property."
913
913
  },
914
914
  "complexType": {
915
915
  "original": "RangeChangeEventDetail",
@@ -594,7 +594,7 @@ export class Refresher {
594
594
  }
595
595
  render() {
596
596
  const mode = getIonMode(this);
597
- return (h(Host, { key: 'e7f4f2f96de7e80430bf54967ebc12e7216b2ca9', slot: "fixed", class: {
597
+ return (h(Host, { key: '1696f66f62d18c9075294f17cb24263325fcf35d', slot: "fixed", class: {
598
598
  [mode]: true,
599
599
  // Used internally for styling
600
600
  [`refresher-${mode}`]: true,
@@ -52,7 +52,7 @@ export class RefresherContent {
52
52
  const pullingIcon = this.pullingIcon;
53
53
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
54
54
  const mode = getIonMode(this);
55
- return (h(Host, { key: '19633bbcf02e3dba885d6bdcdaf2269bf4c8e2f5', class: mode }, h("div", { key: '28922e434a55a6cac0476fe2bee56941ce0d1c02', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: 'fe575bf996021884677e9b23a3215d63caf894f5', class: "refresher-pulling-icon" }, h("div", { key: '59fe12297fd95bc33b8df8cd35316e2a1c084d91', class: "spinner-arrow-container" }, h("ion-spinner", { key: 'af9cc013ae04945c140b2865610ca73edb52ab48', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: '34df66ad1b0f706a0532957251aa2c20bf4587d8', class: "arrow-container" }, h("ion-icon", { key: 'ffdb5c123e606b823491c6c51cc2b497f62581bb', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: 'ac3a2032bb969264d20fa057e9123441005d7a9d', class: "refresher-pulling-icon" }, h("ion-icon", { key: 'd969d10915548e72aae289b52154366f3dd39b31', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'a8f854f81a94812d7bef8ce088331d94f49ff53d', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'a1f646945370e40c844d62bc0c647443ae9dfbe7', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: 'ab3ff4047769b6436e222b46d193c1e8b23e2fce', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
55
+ return (h(Host, { key: '1bec5b4da221c69d856f3f5ddf40f2e03ebf2a4c', class: mode }, h("div", { key: '4fcc526c4f1881e9368d9cd16bd7030919bd3841', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: 'a4e9e2e12c2d7faefc8303ec8c021f999ddf308e', class: "refresher-pulling-icon" }, h("div", { key: '5a2d215feb7fb4b64d540d3a65c0f24b415a2433', class: "spinner-arrow-container" }, h("ion-spinner", { key: 'abef2621d671ac6ff0abac43a702cbd825b7f127', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: '30087d672c3780672a05874cd93cd099b2855462', class: "arrow-container" }, h("ion-icon", { key: '5e30333dee469aec0d8efc8c4e6dabb619c6f363', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: '48fe72b5ce8ded633c6ee799cebb520b9c8be528', class: "refresher-pulling-icon" }, h("ion-icon", { key: 'd8dfd5d42056b1c0a436c5006affb255407816c0', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'c2cbfb94f157c82601ffe7bb815ff82ebc7c0a49', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: '17f3ebe6a31768d5e389f45a2c12f68600185db9', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: 'e8e61f8d7189c9939bba184201c9509d1d5b0fad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
56
56
  }
57
57
  static get is() { return "ion-refresher-content"; }
58
58
  static get properties() {
@@ -20,7 +20,7 @@ export class Reorder {
20
20
  render() {
21
21
  const mode = getIonMode(this);
22
22
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
23
- return (h(Host, { key: '27266e30bcb7e10c57fb6d546399cfb1f1c93b23', class: mode }, h("slot", { key: '8745cb9a31458e884c27eed1fb90d104fe9a79eb' }, h("ion-icon", { key: '6c4b9631a2f5610f1e21b2db025b6702d0d593bf', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
23
+ return (h(Host, { key: '663d74e231e3af56b6298ee2539fdac9c8465839', class: mode }, h("slot", { key: 'c7c384ab8c9ca8abdc89cd984a39dfde70e342ca' }, h("ion-icon", { key: 'c8b6052db03d4b9e33a90e600c20861c73ee73ce', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
24
24
  }
25
25
  static get is() { return "ion-reorder"; }
26
26
  static get encapsulation() { return "shadow"; }
@@ -238,7 +238,7 @@ export class ReorderGroup {
238
238
  }
239
239
  render() {
240
240
  const mode = getIonMode(this);
241
- return (h(Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
241
+ return (h(Host, { key: '491f3e5843cf728ff4589e58bd86b8ce6709b293', class: {
242
242
  [mode]: true,
243
243
  'reorder-enabled': !this.disabled,
244
244
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -59,7 +59,7 @@ export class RippleEffect {
59
59
  }
60
60
  render() {
61
61
  const mode = getIonMode(this);
62
- return (h(Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
62
+ return (h(Host, { key: '2302f087ab1c6755355736e4ca77309c5fdcf185', role: "presentation", class: {
63
63
  [mode]: true,
64
64
  unbounded: this.unbounded,
65
65
  } }));
@@ -23,10 +23,10 @@ export class RouterLink {
23
23
  rel: this.rel,
24
24
  target: this.target,
25
25
  };
26
- return (h(Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: createColorClasses(this.color, {
26
+ return (h(Host, { key: 'f876442cab5b14b7e83c6d6ad2c2d878a9c57439', onClick: this.onClick, class: createColorClasses(this.color, {
27
27
  [mode]: true,
28
28
  'ion-activatable': true,
29
- }) }, h("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), h("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
29
+ }) }, h("a", Object.assign({ key: 'c44b78ec1fd10a40c23bfe548860ac2b346646a8' }, attrs), h("slot", { key: 'd32180a567613f79f89885135bd0d776ffc1eb8e' }))));
30
30
  }
31
31
  static get is() { return "ion-router-link"; }
32
32
  static get encapsulation() { return "shadow"; }
@@ -178,7 +178,7 @@ export class RouterOutlet {
178
178
  return true;
179
179
  }
180
180
  render() {
181
- return h("slot", { key: '44a7798b8574966f7fd699564b6006411a98a805' });
181
+ return h("slot", { key: 'dac9120f5ffa628b16c04e5fdd44ea8e560c97e6' });
182
182
  }
183
183
  static get is() { return "ion-router-outlet"; }
184
184
  static get encapsulation() { return "shadow"; }
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
5
5
  import { getIonMode } from "../../global/ionic-global";
6
6
  export class Row {
7
7
  render() {
8
- return (h(Host, { key: 'aea072a5005e3f1f309f0d1ae5be5ee19869b035', class: getIonMode(this) }, h("slot", { key: '2a481c2126ac6ca65f0a1bbd07c2d3365409cb78' })));
8
+ return (h(Host, { key: '813c9a7f6782d2cf8eb27f30d3ab28e6f3122868', class: getIonMode(this) }, h("slot", { key: '356bec4d4d408ea63d6b431b06465d5b7bcbff71' })));
9
9
  }
10
10
  static get is() { return "ion-row"; }
11
11
  static get encapsulation() { return "shadow"; }
@@ -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: '753b11f41484edcb2714aa81be8bc7bc0370cb2e', "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: 'e42fe29767fb06a5e4f9060c3f8a47b040528e4f', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
382
- return (h(Host, { key: 'da667148dc3300f4a8473315d04e6560194f51dc', 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: 'b1a28467d41dd989e6aee10c7c9fb70a7c1534f1', class: "searchbar-input-container" }, h("input", Object.assign({ key: '4983f67966f79b2846c1369c7feaa0c568bc3025', "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: 'b6576522762a83a7d9977f312dce433c2aaa2490', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: 'c460a3be7ffed2ddf4b08f64ea4ec6843586a726', "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: 'e2e5dcdeca46d2588642e7b9f05d396f6e0332a9', "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"; }
@@ -852,7 +852,7 @@ export class Searchbar {
852
852
  "composed": true,
853
853
  "docs": {
854
854
  "tags": [],
855
- "text": "The `ionChange` event is fired for `<ion-searchbar>` elements when the user\nmodifies the element's value. Unlike the `ionInput` event, the `ionChange`\nevent is not necessarily fired for each alteration to an element's value.\n\nThe `ionChange` event is fired when the value has been committed\nby the user. This can happen when the element loses focus or\nwhen the \"Enter\" key is pressed. `ionChange` can also fire\nwhen clicking the clear or cancel buttons."
855
+ "text": "The `ionChange` event is fired for `<ion-searchbar>` elements when the user\nmodifies the element's value. Unlike the `ionInput` event, the `ionChange`\nevent is not necessarily fired for each alteration to an element's value.\n\nThe `ionChange` event is fired when the value has been committed\nby the user. This can happen when the element loses focus or\nwhen the \"Enter\" key is pressed. `ionChange` can also fire\nwhen clicking the clear or cancel buttons.\n\nThis event will not emit when programmatically setting the `value` property."
856
856
  },
857
857
  "complexType": {
858
858
  "original": "SearchbarChangeEventDetail",
@@ -34,6 +34,14 @@ export class Segment {
34
34
  }
35
35
  }
36
36
  };
37
+ this.onSlottedItemsChange = () => {
38
+ /**
39
+ * When the slotted segment buttons change we need to
40
+ * ensure that the new segment buttons are checked if
41
+ * the value matches the segment button value.
42
+ */
43
+ this.valueChanged(this.value);
44
+ };
37
45
  this.getSegmentButton = (selector) => {
38
46
  var _a, _b;
39
47
  const buttons = this.getButtons().filter((button) => !button.disabled);
@@ -101,13 +109,6 @@ export class Segment {
101
109
  }
102
110
  async componentDidLoad() {
103
111
  this.setCheckedClasses();
104
- /**
105
- * If the value changes before watchers
106
- * are setup, then the ionSelect watch callback
107
- * will not fire. As a result, we manually
108
- * fire this event when Select is loaded.
109
- */
110
- this.ionSelect.emit({ value: this.value });
111
112
  /**
112
113
  * We need to wait for the buttons to all be rendered
113
114
  * before we can scroll.
@@ -420,14 +421,14 @@ export class Segment {
420
421
  }
421
422
  render() {
422
423
  const mode = getIonMode(this);
423
- return (h(Host, { key: '22bd7bbecaa9f0c95971565e06ef3fa4ad44a946', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
424
+ return (h(Host, { key: 'ad0946134c8d465b760ad792655f1cb9922db520', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
424
425
  [mode]: true,
425
426
  'in-toolbar': hostContext('ion-toolbar', this.el),
426
427
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
427
428
  'segment-activated': this.activated,
428
429
  'segment-disabled': this.disabled,
429
430
  'segment-scrollable': this.scrollable,
430
- }) }, h("slot", { key: '6d6fe81026928662137b872206de55117fda30a2' })));
431
+ }) }, h("slot", { key: 'dcdb425bcda0d60acb7c317e5e671ed462715b4a', onSlotchange: this.onSlottedItemsChange })));
431
432
  }
432
433
  static get is() { return "ion-segment"; }
433
434
  static get encapsulation() { return "shadow"; }
@@ -579,7 +580,7 @@ export class Segment {
579
580
  "composed": true,
580
581
  "docs": {
581
582
  "tags": [],
582
- "text": "Emitted when the value property has changed and any\ndragging pointer has been released from `ion-segment`."
583
+ "text": "Emitted when the value property has changed and any dragging pointer has been released from `ion-segment`.\n\nThis event will not emit when programmatically setting the `value` property."
583
584
  },
584
585
  "complexType": {
585
586
  "original": "SegmentChangeEventDetail",
@@ -78,7 +78,7 @@ export class SegmentButton {
78
78
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
79
79
  const mode = getIonMode(this);
80
80
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
81
- return (h(Host, { key: '9b54e4841be5d0f4f2ee230a649bfbe01066c7c7', class: {
81
+ return (h(Host, { key: '70cf5c7a3ae2620222c5250c644faf3cfc3b3e4e', class: {
82
82
  [mode]: true,
83
83
  'in-toolbar': hostContext('ion-toolbar', this.el),
84
84
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -94,10 +94,10 @@ export class SegmentButton {
94
94
  'ion-activatable': true,
95
95
  'ion-activatable-instant': true,
96
96
  'ion-focusable': true,
97
- } }, h("button", Object.assign({ key: 'b97b964b5f3f1bf53e41ad2a1ad4853d5f956fe5', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '0eeb2616f7c5a7a7fc1e2e3bd34ab461de6179f4', class: "button-inner" }, h("slot", { key: '5ac8fafa2f23e30f8df63bfe236a9604cfb388ae' })), mode === 'md' && h("ion-ripple-effect", { key: '86032e9726e2b6437ffc34f59fcbe564616cc9ca' })), h("div", { key: '536b1da58dd2521be290707d6b1726831340cf9f', part: "indicator", class: {
97
+ } }, h("button", Object.assign({ key: 'a53c9f1e360934e8d2e90476642ba4507fc38ebd', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '7d8feda840d389941cc693f500b5eba0b39b41da', class: "button-inner" }, h("slot", { key: 'd9ae1eec45db253cbf573d29cd545658dd595d87' })), mode === 'md' && h("ion-ripple-effect", { key: '49e6a16968709dc9b3fc77bc9fb99acb42fda88c' })), h("div", { key: '4e3ea0989ed5205dbb03586e4facb439b05a92de', part: "indicator", class: {
98
98
  'segment-button-indicator': true,
99
99
  'segment-button-indicator-animated': true,
100
- } }, h("div", { key: 'b43124415ebd77c87285791522c5afc26a137f96', part: "indicator-background", class: "segment-button-indicator-background" }))));
100
+ } }, h("div", { key: '65c72a151080998c1e548c87d4d4ebd5c7dda72f', part: "indicator-background", class: "segment-button-indicator-background" }))));
101
101
  }
102
102
  static get is() { return "ion-segment-button"; }
103
103
  static get encapsulation() { return "shadow"; }
@@ -138,6 +138,7 @@
138
138
  */
139
139
  :host([slot=start]),
140
140
  :host([slot=end]) {
141
+ flex: initial;
141
142
  width: auto;
142
143
  }
143
144
 
@@ -99,9 +99,6 @@ export class Select {
99
99
  this.value = value;
100
100
  this.ionChange.emit({ value });
101
101
  }
102
- componentWillLoad() {
103
- this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
104
- }
105
102
  async connectedCallback() {
106
103
  const { el } = this;
107
104
  this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
@@ -118,6 +115,22 @@ export class Select {
118
115
  forceUpdate(this);
119
116
  });
120
117
  }
118
+ componentWillLoad() {
119
+ this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
120
+ }
121
+ componentDidLoad() {
122
+ /**
123
+ * If any of the conditions that trigger the styleChanged callback
124
+ * are met on component load, it is possible the event emitted
125
+ * prior to a parent web component registering an event listener.
126
+ *
127
+ * To ensure the parent web component receives the event, we
128
+ * emit the style event again after the component has loaded.
129
+ *
130
+ * This is often seen in Angular with the `dist` output target.
131
+ */
132
+ this.emitStyle();
133
+ }
121
134
  disconnectedCallback() {
122
135
  if (this.mutationO) {
123
136
  this.mutationO.disconnect();
@@ -610,7 +623,7 @@ export class Select {
610
623
  * TODO(FW-5592): Remove hasStartEndSlots condition
611
624
  */
612
625
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
613
- return (h(Host, { key: '5a1b82be3f737a2ce5b87c5cd716f898a902ab10', onClick: this.onClick, class: createColorClasses(this.color, {
626
+ return (h(Host, { key: 'e14586e887c0b73457b9f1e8f0585dfc7d590051', onClick: this.onClick, class: createColorClasses(this.color, {
614
627
  [mode]: true,
615
628
  'in-item': inItem,
616
629
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -626,7 +639,7 @@ export class Select {
626
639
  [`select-justify-${justify}`]: justifyEnabled,
627
640
  [`select-shape-${shape}`]: shape !== undefined,
628
641
  [`select-label-placement-${labelPlacement}`]: true,
629
- }) }, h("label", { key: '79a6e99e38fa3f72d876f4b8ac0077a9fbf4bd2d', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: 'e18ac0b4a35e2cdde858347a9b116218533cd532', class: "select-wrapper-inner" }, h("slot", { key: 'cc194f718ef9363d3496531f0d9259e33b66f4d8', name: "start" }), h("div", { key: '833c5544e453c0ac543f5d4898d0f492caac405a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'adaa4064c9ad01ef7a452308680eb09dc3ad60ff', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'd47a6ef0a6192c5f098973aa517aad2aa9ae8dfc', class: "select-highlight" }))));
642
+ }) }, h("label", { key: 'b44929542c809f2dca25afc588701762a083edd1', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '195e3fad9cea0363ff00bf257ec2975fe5aa6887', class: "select-wrapper-inner" }, h("slot", { key: '9da7161a69b92d6fd124a478348d3fa420092f26', name: "start" }), h("div", { key: '49c589c164d167de0ba5741a0c80fba58ea0bec6', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: 'de1536d910fceb8e2dbdda13abcf88ee969888b8', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'e821b7b32cd1996eaa6d471df9b531ad0d491098', class: "select-highlight" }))));
630
643
  }
631
644
  static get is() { return "ion-select"; }
632
645
  static get encapsulation() { return "shadow"; }
@@ -1010,7 +1023,7 @@ export class Select {
1010
1023
  "composed": true,
1011
1024
  "docs": {
1012
1025
  "tags": [],
1013
- "text": "Emitted when the value has changed."
1026
+ "text": "Emitted when the value has changed.\n\nThis event will not emit when programmatically setting the `value` property."
1014
1027
  },
1015
1028
  "complexType": {
1016
1029
  "original": "SelectChangeEventDetail",
@@ -138,6 +138,7 @@
138
138
  */
139
139
  :host([slot=start]),
140
140
  :host([slot=end]) {
141
+ flex: initial;
141
142
  width: auto;
142
143
  }
143
144
 
@@ -32,7 +32,7 @@ configs({ directions: ['ltr'] }).forEach(({ title, config }) => {
32
32
  });
33
33
  test.describe('select: popover', () => {
34
34
  test('it should open a popover select', async ({ page, skip }) => {
35
- // TODO (FW-2979)
35
+ // TODO (ROU-5437)
36
36
  skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
37
37
  const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
38
38
  await page.click('#customPopoverSelect');
@@ -6,7 +6,7 @@ import { configs, test } from "../../../../utils/test/playwright/index";
6
6
  configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
7
7
  test.describe(title('select: disabled options'), () => {
8
8
  test('should not focus a disabled option when no value is set', async ({ page, skip }) => {
9
- // TODO (FW-2979)
9
+ // TODO (ROU-5437)
10
10
  skip.browser('webkit', 'Safari 16 only allows text fields and pop-up menus to be focused.');
11
11
  test.info().annotations.push({
12
12
  type: 'issue',
@@ -189,4 +189,29 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, screenshot, co
189
189
  await expect(notchCutout).toBeHidden();
190
190
  });
191
191
  });
192
+ test(title('select: fill outline: fit-content should display select options'), async ({ page }, testInfo) => {
193
+ testInfo.annotations.push({
194
+ type: 'issue',
195
+ description: 'https://github.com/ionic-team/ionic-framework/issues/29321',
196
+ });
197
+ await page.setContent(`
198
+ <ion-select
199
+ fill="outline"
200
+ aria-label="Fruit"
201
+ value="apple"
202
+ interface="popover"
203
+ style="width: fit-content"
204
+ >
205
+ <ion-select-option value="5">5</ion-select-option>
206
+ <ion-select-option value="10">10</ion-select-option>
207
+ <ion-select-option value="15">15</ion-select-option>
208
+ </ion-select>
209
+ `, config);
210
+ const select = page.locator('ion-select');
211
+ const ionPopoverDidPresent = await page.spyOnEvent('ionPopoverDidPresent');
212
+ await select.click();
213
+ await ionPopoverDidPresent.next();
214
+ const selectPopover = page.locator('ion-select-popover');
215
+ await expect(selectPopover).toHaveScreenshot(screenshot(`select-fill-outline-fit-content`));
216
+ });
192
217
  });
@@ -10,7 +10,7 @@ export class SelectOption {
10
10
  this.value = undefined;
11
11
  }
12
12
  render() {
13
- return h(Host, { key: '6fa504ac5597098086050c0f517a03be8b8032c9', role: "option", id: this.inputId, class: getIonMode(this) });
13
+ return h(Host, { key: 'ba5a9c695c53fe0802af11a49f4305a9b8f71773', role: "option", id: this.inputId, class: getIonMode(this) });
14
14
  }
15
15
  static get is() { return "ion-select-option"; }
16
16
  static get encapsulation() { return "shadow"; }
@@ -102,7 +102,7 @@ export class SelectPopover {
102
102
  render() {
103
103
  const { header, message, options, subHeader } = this;
104
104
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
105
- return (h(Host, { key: '2ed838c17d47198c697164a0a750aafb6ca61a95', class: getIonMode(this) }, h("ion-list", { key: '24fe7a6e9e45458c201b178ca236645d0f49ea8a' }, header !== undefined && h("ion-list-header", { key: 'ebe64853dcd59c14a8f4dc9c2dc9e66d1e9767f6' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: 'ed7c6f2d7e1282b3048df0af8f1e3fd3b08297c6' }, h("ion-label", { key: 'a81f6c4011a0dce47b80c98a45d80b1368d84a1e', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: '4fd72c62da896092d535580917bb8a5ad6609c05' }, subHeader), message !== undefined && h("p", { key: '88aead29b35d69743abe4015f96a6fa9f199a0ff' }, message)))), this.renderOptions(options))));
105
+ return (h(Host, { key: '302553a2eec4d1442751b8af28b7c9bd3487fd5d', class: getIonMode(this) }, h("ion-list", { key: '39ae8579e6fe3bae2c7504147268ad5c82fd27e6' }, header !== undefined && h("ion-list-header", { key: 'e0e6686380d188f46c593e1bb25287dcf08c75c2' }, header), hasSubHeaderOrMessage && (h("ion-item", { key: '8a2d8652db269593c0ba7d767277e12c2b06144d' }, h("ion-label", { key: 'a30cc0ecf95d5bdd6421ee1683922c1b853e98ea', class: "ion-text-wrap" }, subHeader !== undefined && h("h3", { key: 'c298459ca450123808a08d65660825b2c26d00e5' }, subHeader), message !== undefined && h("p", { key: 'ed895fbaec020e809021138401341b6fd7675035' }, message)))), this.renderOptions(options))));
106
106
  }
107
107
  static get is() { return "ion-select-popover"; }
108
108
  static get encapsulation() { return "scoped"; }
@@ -189,7 +189,14 @@ ion-label {
189
189
  * }
190
190
  */
191
191
  ion-list ion-radio::part(container) {
192
- opacity: 0;
192
+ display: none;
193
+ }
194
+
195
+ ion-list ion-radio::part(label) {
196
+ margin-left: 0;
197
+ margin-right: 0;
198
+ margin-top: 0;
199
+ margin-bottom: 0;
193
200
  }
194
201
 
195
202
  ion-item {
@@ -18,7 +18,7 @@ const checkedOptions = [
18
18
  configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
19
19
  test.describe(title('select-popover: basic'), () => {
20
20
  test.beforeEach(({ browserName }) => {
21
- test.skip(browserName === 'webkit', 'https://ionic-cloud.atlassian.net/browse/FW-2979');
21
+ test.skip(browserName === 'webkit', 'ROU-5437');
22
22
  });
23
23
  test.describe('single selection', () => {
24
24
  let selectPopoverPage;
@@ -44,7 +44,7 @@ configs({ modes: ['md'], directions: ['ltr'] }).forEach(({ title, config }) => {
44
44
  await expect(selectPopoverPage.popover).not.toBeVisible();
45
45
  });
46
46
  test('pressing Space on a selected option should dismiss the popover', async ({ browserName }) => {
47
- test.skip(browserName === 'firefox', 'Same behavior as https://ionic-cloud.atlassian.net/browse/FW-2979');
47
+ test.skip(browserName === 'firefox', 'Same behavior as ROU-5437');
48
48
  await selectPopoverPage.setup(config, checkedOptions, false);
49
49
  await selectPopoverPage.pressSpaceOnOption('apple');
50
50
  await selectPopoverPage.ionPopoverDidDismiss.next();
@@ -25,11 +25,11 @@ export class SkeletonText {
25
25
  const animated = this.animated && config.getBoolean('animated', true);
26
26
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
27
27
  const mode = getIonMode(this);
28
- return (h(Host, { key: '8a1b489e35564056b3babce548982e58fec74119', class: {
28
+ return (h(Host, { key: '1a3e78e9a6f740d609d1f0b7a16cb6eff4a2d617', class: {
29
29
  [mode]: true,
30
30
  'skeleton-text-animated': animated,
31
31
  'in-media': inMedia,
32
- } }, h("span", { key: '71df251a41967dc4dab241f6fa906fa4d568dd9e' }, "\u00A0")));
32
+ } }, h("span", { key: 'be3eabe196ec6e8ec19857375ba30f4c8aa58e7f' }, "\u00A0")));
33
33
  }
34
34
  static get is() { return "ion-skeleton-text"; }
35
35
  static get encapsulation() { return "shadow"; }
@@ -39,7 +39,7 @@ export class Spinner {
39
39
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
40
40
  }
41
41
  }
42
- return (h(Host, { key: '9422c25aadfdf08861e26bb1aa336c94391d10a3', class: createColorClasses(self.color, {
42
+ return (h(Host, { key: '50cbaed55eeab15292447d106a80b93db4cb40de', class: createColorClasses(self.color, {
43
43
  [mode]: true,
44
44
  [`spinner-${spinnerName}`]: true,
45
45
  'spinner-paused': self.paused || config.getBoolean('_testing'),