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
@@ -70,10 +70,9 @@ export declare class Checkbox implements ComponentInterface {
70
70
  */
71
71
  alignment: 'start' | 'center';
72
72
  /**
73
- * Emitted when the checked property has changed
74
- * as a result of a user action such as a click.
75
- * This event will not emit when programmatically
76
- * setting the checked property.
73
+ * Emitted when the checked property has changed as a result of a user action such as a click.
74
+ *
75
+ * This event will not emit when programmatically setting the `checked` property.
77
76
  */
78
77
  ionChange: EventEmitter<CheckboxChangeEventDetail>;
79
78
  /**
@@ -35,6 +35,14 @@ export declare class Content implements ComponentInterface {
35
35
  * to transparent.
36
36
  */
37
37
  fullscreen: boolean;
38
+ /**
39
+ * Controls where the fixed content is placed relative to the main content
40
+ * in the DOM. This can be used to control the order in which fixed elements
41
+ * receive keyboard focus.
42
+ * For example, if a FAB in the fixed slot should receive keyboard focus before
43
+ * the main page content, set this property to `'before'`.
44
+ */
45
+ fixedSlotPlacement: 'after' | 'before';
38
46
  /**
39
47
  * If `true` and the content does not cause an overflow scroll, the scroll interaction will cause a bounce.
40
48
  * If the content exceeds the bounds of ionContent, nothing will change.
@@ -295,6 +295,8 @@ export declare class Datetime implements ComponentInterface {
295
295
  ionCancel: EventEmitter<void>;
296
296
  /**
297
297
  * Emitted when the value (selected date) has changed.
298
+ *
299
+ * This event will not emit when programmatically setting the `value` property.
298
300
  */
299
301
  ionChange: EventEmitter<DatetimeChangeEventDetail>;
300
302
  /**
@@ -59,6 +59,10 @@ export declare class Input implements ComponentInterface {
59
59
  * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.
60
60
  */
61
61
  clearInput: boolean;
62
+ /**
63
+ * The icon to use for the clear button. Only applies when `clearInput` is set to `true`.
64
+ */
65
+ clearInputIcon?: string;
62
66
  /**
63
67
  * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `"password"`, `false` for all other types.
64
68
  */
@@ -217,6 +221,8 @@ export declare class Input implements ComponentInterface {
217
221
  * from a date picker for `<ion-input type="date">`, pressing the "Enter" key, etc.).
218
222
  * - When the element loses focus after its value has changed: for elements
219
223
  * where the user's interaction is typing.
224
+ *
225
+ * This event will not emit when programmatically setting the `value` property.
220
226
  */
221
227
  ionChange: EventEmitter<InputChangeEventDetail>;
222
228
  /**
@@ -9,6 +9,7 @@ export interface ModalOptions<T extends ComponentRef = ComponentRef> {
9
9
  delegate?: FrameworkDelegate;
10
10
  animated?: boolean;
11
11
  canDismiss?: boolean | ((data?: any, role?: string) => Promise<boolean>);
12
+ focusTrap?: boolean;
12
13
  mode?: Mode;
13
14
  keyboardClose?: boolean;
14
15
  id?: string;
@@ -163,6 +163,24 @@ export declare class Modal implements ComponentInterface, OverlayInterface {
163
163
  * frameworks such as Angular, React, and Vue.
164
164
  */
165
165
  keepContentsMounted: boolean;
166
+ /**
167
+ * If `true`, focus will not be allowed to move outside of this overlay.
168
+ * If `false`, focus will be allowed to move outside of the overlay.
169
+ *
170
+ * In most scenarios this property should remain set to `true`. Setting
171
+ * this property to `false` can cause severe accessibility issues as users
172
+ * relying on assistive technologies may be able to move focus into
173
+ * a confusing state. We recommend only setting this to `false` when
174
+ * absolutely necessary.
175
+ *
176
+ * Developers may want to consider disabling focus trapping if this
177
+ * overlay presents a non-Ionic overlay from a 3rd party library.
178
+ * Developers would disable focus trapping on the Ionic overlay
179
+ * when presenting the 3rd party overlay and then re-enable
180
+ * focus trapping when dismissing the 3rd party overlay and moving
181
+ * focus back to the Ionic overlay.
182
+ */
183
+ focusTrap: boolean;
166
184
  /**
167
185
  * Determines whether or not a modal can dismiss
168
186
  * when calling the `dismiss` method.
@@ -15,6 +15,10 @@ export declare class PickerColumn implements ComponentInterface {
15
15
  private isColumnVisible;
16
16
  private parentEl?;
17
17
  private canExitInputMode;
18
+ private assistiveFocusable?;
19
+ private updateValueTextOnScroll;
20
+ ariaLabel: string | null;
21
+ ariaLabelChanged(newValue: string): void;
18
22
  isActive: boolean;
19
23
  el: HTMLIonPickerColumnElement;
20
24
  /**
@@ -43,6 +47,8 @@ export declare class PickerColumn implements ComponentInterface {
43
47
  numericInput: boolean;
44
48
  /**
45
49
  * Emitted when the value has changed.
50
+ *
51
+ * This event will not emit when programmatically setting the `value` property.
46
52
  */
47
53
  ionChange: EventEmitter<PickerColumnChangeEventDetail>;
48
54
  valueChange(): void;
@@ -69,6 +75,7 @@ export declare class PickerColumn implements ComponentInterface {
69
75
  * Use this method instead of the global `pickerColumn.focus()`.
70
76
  */
71
77
  setFocus(): Promise<void>;
78
+ connectedCallback(): void;
72
79
  private centerPickerItemInView;
73
80
  private setPickerItemActiveState;
74
81
  /**
@@ -102,5 +109,35 @@ export declare class PickerColumn implements ComponentInterface {
102
109
  */
103
110
  private exitInputMode;
104
111
  get activeItem(): HTMLIonPickerColumnOptionElement | undefined;
112
+ /**
113
+ * Find the next enabled option after the active option.
114
+ * @param stride - How many options to "jump" over in order to select the next option.
115
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
116
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
117
+ * the enabled option 5 options after the active one. Note that the actual option selected
118
+ * may be past the stride if the option at the stride is disabled.
119
+ */
120
+ private findNextOption;
121
+ /**
122
+ * Find the next enabled option after the active option.
123
+ * @param stride - How many options to "jump" over in order to select the next option.
124
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
125
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
126
+ * the enabled option 5 options before the active one. Note that the actual option selected
127
+ * may be past the stride if the option at the stride is disabled.
128
+ */
129
+ private findPreviousOption;
130
+ private onKeyDown;
131
+ /**
132
+ * Utility to generate the correct text for aria-valuetext.
133
+ */
134
+ private getOptionValueText;
135
+ /**
136
+ * Render an element that overlays the column. This element is for assistive
137
+ * tech to allow users to navigate the column up/down. This element should receive
138
+ * focus as it listens for synthesized keyboard events as required by the
139
+ * slider role: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/slider_role
140
+ */
141
+ private renderAssistiveFocusable;
105
142
  render(): any;
106
143
  }
@@ -12,6 +12,7 @@ export interface PopoverOptions<T extends ComponentRef = ComponentRef> {
12
12
  event?: Event;
13
13
  delegate?: FrameworkDelegate;
14
14
  animated?: boolean;
15
+ focusTrap?: boolean;
15
16
  mode?: Mode;
16
17
  keyboardClose?: boolean;
17
18
  id?: string;
@@ -171,6 +171,24 @@ export declare class Popover implements ComponentInterface, PopoverInterface {
171
171
  * behavior in a popover using a list of items.
172
172
  */
173
173
  keyboardEvents: boolean;
174
+ /**
175
+ * If `true`, focus will not be allowed to move outside of this overlay.
176
+ * If `false`, focus will be allowed to move outside of the overlay.
177
+ *
178
+ * In most scenarios this property should remain set to `true`. Setting
179
+ * this property to `false` can cause severe accessibility issues as users
180
+ * relying on assistive technologies may be able to move focus into
181
+ * a confusing state. We recommend only setting this to `false` when
182
+ * absolutely necessary.
183
+ *
184
+ * Developers may want to consider disabling focus trapping if this
185
+ * overlay presents a non-Ionic overlay from a 3rd party library.
186
+ * Developers would disable focus trapping on the Ionic overlay
187
+ * when presenting the 3rd party overlay and then re-enable
188
+ * focus trapping when dismissing the 3rd party overlay and moving
189
+ * focus back to the Ionic overlay.
190
+ */
191
+ focusTrap: boolean;
174
192
  onTriggerChange(): void;
175
193
  onIsOpenChange(newValue: boolean, oldValue: boolean): void;
176
194
  /**
@@ -73,6 +73,7 @@ export declare class Radio implements ComponentInterface {
73
73
  * Emitted when the radio button loses focus.
74
74
  */
75
75
  ionBlur: EventEmitter<void>;
76
+ componentDidLoad(): void;
76
77
  /** @internal */
77
78
  setFocus(ev: globalThis.Event): Promise<void>;
78
79
  /** @internal */
@@ -27,6 +27,8 @@ export declare class RadioGroup implements ComponentInterface {
27
27
  valueChanged(value: any | undefined): void;
28
28
  /**
29
29
  * Emitted when the value has changed.
30
+ *
31
+ * This event will not emit when programmatically setting the `value` property.
30
32
  */
31
33
  ionChange: EventEmitter<RadioGroupChangeEventDetail>;
32
34
  /**
@@ -127,7 +127,7 @@ export declare class Range implements ComponentInterface {
127
127
  * - When the user releases the knob after dragging;
128
128
  * - When the user moves the knob with keyboard arrows
129
129
  *
130
- * `ionChange` is not fired when the value is changed programmatically.
130
+ * This event will not emit when programmatically setting the `value` property.
131
131
  */
132
132
  ionChange: EventEmitter<RangeChangeEventDetail>;
133
133
  /**
@@ -153,6 +153,8 @@ export declare class Searchbar implements ComponentInterface {
153
153
  * by the user. This can happen when the element loses focus or
154
154
  * when the "Enter" key is pressed. `ionChange` can also fire
155
155
  * when clicking the clear or cancel buttons.
156
+ *
157
+ * This event will not emit when programmatically setting the `value` property.
156
158
  */
157
159
  ionChange: EventEmitter<SearchbarChangeEventDetail>;
158
160
  /**
@@ -43,8 +43,9 @@ export declare class Segment implements ComponentInterface {
43
43
  */
44
44
  selectOnFocus: boolean;
45
45
  /**
46
- * Emitted when the value property has changed and any
47
- * dragging pointer has been released from `ion-segment`.
46
+ * Emitted when the value property has changed and any dragging pointer has been released from `ion-segment`.
47
+ *
48
+ * This event will not emit when programmatically setting the `value` property.
48
49
  */
49
50
  ionChange: EventEmitter<SegmentChangeEventDetail>;
50
51
  /**
@@ -85,6 +86,7 @@ export declare class Segment implements ComponentInterface {
85
86
  private setNextIndex;
86
87
  private emitStyle;
87
88
  private onClick;
89
+ private onSlottedItemsChange;
88
90
  private getSegmentButton;
89
91
  onKeyDown(ev: KeyboardEvent): void;
90
92
  render(): any;
@@ -139,6 +139,8 @@ export declare class Select implements ComponentInterface {
139
139
  value?: any | null;
140
140
  /**
141
141
  * Emitted when the value has changed.
142
+ *
143
+ * This event will not emit when programmatically setting the `value` property.
142
144
  */
143
145
  ionChange: EventEmitter<SelectChangeEventDetail>;
144
146
  /**
@@ -164,8 +166,9 @@ export declare class Select implements ComponentInterface {
164
166
  ionStyle: EventEmitter<StyleEventDetail>;
165
167
  protected styleChanged(): void;
166
168
  private setValue;
167
- componentWillLoad(): void;
168
169
  connectedCallback(): Promise<void>;
170
+ componentWillLoad(): void;
171
+ componentDidLoad(): void;
169
172
  disconnectedCallback(): void;
170
173
  /**
171
174
  * Open the select overlay. The overlay is either an alert, action sheet, or popover,
@@ -176,6 +176,8 @@ export declare class Textarea implements ComponentInterface {
176
176
  * The `ionChange` event is fired when the user modifies the textarea's value.
177
177
  * Unlike the `ionInput` event, the `ionChange` event is fired when
178
178
  * the element loses focus after its value has been modified.
179
+ *
180
+ * This event will not emit when programmatically setting the `value` property.
179
181
  */
180
182
  ionChange: EventEmitter<TextareaChangeEventDetail>;
181
183
  /**
@@ -75,8 +75,9 @@ export declare class Toggle implements ComponentInterface {
75
75
  */
76
76
  alignment: 'start' | 'center';
77
77
  /**
78
- * Emitted when the user switches the toggle on or off. Does not emit
79
- * when programmatically changing the value of the `checked` property.
78
+ * Emitted when the user switches the toggle on or off.
79
+ *
80
+ * This event will not emit when programmatically setting the `checked` property.
80
81
  */
81
82
  ionChange: EventEmitter<ToggleChangeEventDetail>;
82
83
  /**
@@ -762,6 +762,10 @@ export namespace Components {
762
762
  * The color to use from your application's color palette. Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`. For more information on colors, see [theming](/docs/theming/basics).
763
763
  */
764
764
  "color"?: Color;
765
+ /**
766
+ * Controls where the fixed content is placed relative to the main content in the DOM. This can be used to control the order in which fixed elements receive keyboard focus. For example, if a FAB in the fixed slot should receive keyboard focus before the main page content, set this property to `'before'`.
767
+ */
768
+ "fixedSlotPlacement": 'after' | 'before';
765
769
  /**
766
770
  * If `true` and the content does not cause an overflow scroll, the scroll interaction will cause a bounce. If the content exceeds the bounds of ionContent, nothing will change. Note, this does not disable the system bounce on iOS. That is an OS level setting.
767
771
  */
@@ -1162,6 +1166,10 @@ export namespace Components {
1162
1166
  * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.
1163
1167
  */
1164
1168
  "clearInput": boolean;
1169
+ /**
1170
+ * The icon to use for the clear button. Only applies when `clearInput` is set to `true`.
1171
+ */
1172
+ "clearInputIcon"?: string;
1165
1173
  /**
1166
1174
  * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `"password"`, `false` for all other types.
1167
1175
  */
@@ -1715,6 +1723,10 @@ export namespace Components {
1715
1723
  * Animation to use when the modal is presented.
1716
1724
  */
1717
1725
  "enterAnimation"?: AnimationBuilder;
1726
+ /**
1727
+ * If `true`, focus will not be allowed to move outside of this overlay. If `false`, focus will be allowed to move outside of the overlay. In most scenarios this property should remain set to `true`. Setting this property to `false` can cause severe accessibility issues as users relying on assistive technologies may be able to move focus into a confusing state. We recommend only setting this to `false` when absolutely necessary. Developers may want to consider disabling focus trapping if this overlay presents a non-Ionic overlay from a 3rd party library. Developers would disable focus trapping on the Ionic overlay when presenting the 3rd party overlay and then re-enable focus trapping when dismissing the 3rd party overlay and moving focus back to the Ionic overlay.
1728
+ */
1729
+ "focusTrap": boolean;
1718
1730
  /**
1719
1731
  * Returns the current breakpoint of a sheet style modal
1720
1732
  */
@@ -2131,6 +2143,10 @@ export namespace Components {
2131
2143
  * The event to pass to the popover animation.
2132
2144
  */
2133
2145
  "event": any;
2146
+ /**
2147
+ * If `true`, focus will not be allowed to move outside of this overlay. If `false`, focus will be allowed to move outside of the overlay. In most scenarios this property should remain set to `true`. Setting this property to `false` can cause severe accessibility issues as users relying on assistive technologies may be able to move focus into a confusing state. We recommend only setting this to `false` when absolutely necessary. Developers may want to consider disabling focus trapping if this overlay presents a non-Ionic overlay from a 3rd party library. Developers would disable focus trapping on the Ionic overlay when presenting the 3rd party overlay and then re-enable focus trapping when dismissing the 3rd party overlay and moving focus back to the Ionic overlay.
2148
+ */
2149
+ "focusTrap": boolean;
2134
2150
  "getParentPopover": () => Promise<HTMLIonPopoverElement | null>;
2135
2151
  "hasController": boolean;
2136
2152
  /**
@@ -4770,7 +4786,7 @@ declare namespace LocalJSX {
4770
4786
  */
4771
4787
  "multiple"?: boolean;
4772
4788
  /**
4773
- * Emitted when the value property has changed as a result of a user action such as a click. This event will not emit when programmatically setting the value property.
4789
+ * Emitted when the value property has changed as a result of a user action such as a click. This event will not emit when programmatically setting the `value` property.
4774
4790
  */
4775
4791
  "onIonChange"?: (event: IonAccordionGroupCustomEvent<AccordionGroupChangeEventDetail>) => void;
4776
4792
  /**
@@ -5328,7 +5344,7 @@ declare namespace LocalJSX {
5328
5344
  */
5329
5345
  "onIonBlur"?: (event: IonCheckboxCustomEvent<void>) => void;
5330
5346
  /**
5331
- * Emitted when the checked property has changed as a result of a user action such as a click. This event will not emit when programmatically setting the checked property.
5347
+ * Emitted when the checked property has changed as a result of a user action such as a click. This event will not emit when programmatically setting the `checked` property.
5332
5348
  */
5333
5349
  "onIonChange"?: (event: IonCheckboxCustomEvent<CheckboxChangeEventDetail>) => void;
5334
5350
  /**
@@ -5461,6 +5477,10 @@ declare namespace LocalJSX {
5461
5477
  * The color to use from your application's color palette. Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`. For more information on colors, see [theming](/docs/theming/basics).
5462
5478
  */
5463
5479
  "color"?: Color;
5480
+ /**
5481
+ * Controls where the fixed content is placed relative to the main content in the DOM. This can be used to control the order in which fixed elements receive keyboard focus. For example, if a FAB in the fixed slot should receive keyboard focus before the main page content, set this property to `'before'`.
5482
+ */
5483
+ "fixedSlotPlacement"?: 'after' | 'before';
5464
5484
  /**
5465
5485
  * If `true` and the content does not cause an overflow scroll, the scroll interaction will cause a bounce. If the content exceeds the bounds of ionContent, nothing will change. Note, this does not disable the system bounce on iOS. That is an OS level setting.
5466
5486
  */
@@ -5584,7 +5604,7 @@ declare namespace LocalJSX {
5584
5604
  */
5585
5605
  "onIonCancel"?: (event: IonDatetimeCustomEvent<void>) => void;
5586
5606
  /**
5587
- * Emitted when the value (selected date) has changed.
5607
+ * Emitted when the value (selected date) has changed. This event will not emit when programmatically setting the `value` property.
5588
5608
  */
5589
5609
  "onIonChange"?: (event: IonDatetimeCustomEvent<DatetimeChangeEventDetail>) => void;
5590
5610
  /**
@@ -5857,6 +5877,10 @@ declare namespace LocalJSX {
5857
5877
  * If `true`, a clear icon will appear in the input when there is a value. Clicking it clears the input.
5858
5878
  */
5859
5879
  "clearInput"?: boolean;
5880
+ /**
5881
+ * The icon to use for the clear button. Only applies when `clearInput` is set to `true`.
5882
+ */
5883
+ "clearInputIcon"?: string;
5860
5884
  /**
5861
5885
  * If `true`, the value will be cleared after focus upon edit. Defaults to `true` when `type` is `"password"`, `false` for all other types.
5862
5886
  */
@@ -5942,7 +5966,7 @@ declare namespace LocalJSX {
5942
5966
  */
5943
5967
  "onIonBlur"?: (event: IonInputCustomEvent<FocusEvent>) => void;
5944
5968
  /**
5945
- * The `ionChange` event is fired when the user modifies the input's value. Unlike the `ionInput` event, the `ionChange` event is only fired when changes are committed, not as the user types. Depending on the way the users interacts with the element, the `ionChange` event fires at a different moment: - When the user commits the change explicitly (e.g. by selecting a date from a date picker for `<ion-input type="date">`, pressing the "Enter" key, etc.). - When the element loses focus after its value has changed: for elements where the user's interaction is typing.
5969
+ * The `ionChange` event is fired when the user modifies the input's value. Unlike the `ionInput` event, the `ionChange` event is only fired when changes are committed, not as the user types. Depending on the way the users interacts with the element, the `ionChange` event fires at a different moment: - When the user commits the change explicitly (e.g. by selecting a date from a date picker for `<ion-input type="date">`, pressing the "Enter" key, etc.). - When the element loses focus after its value has changed: for elements where the user's interaction is typing. This event will not emit when programmatically setting the `value` property.
5946
5970
  */
5947
5971
  "onIonChange"?: (event: IonInputCustomEvent<InputChangeEventDetail>) => void;
5948
5972
  /**
@@ -6383,6 +6407,10 @@ declare namespace LocalJSX {
6383
6407
  * Animation to use when the modal is presented.
6384
6408
  */
6385
6409
  "enterAnimation"?: AnimationBuilder;
6410
+ /**
6411
+ * If `true`, focus will not be allowed to move outside of this overlay. If `false`, focus will be allowed to move outside of the overlay. In most scenarios this property should remain set to `true`. Setting this property to `false` can cause severe accessibility issues as users relying on assistive technologies may be able to move focus into a confusing state. We recommend only setting this to `false` when absolutely necessary. Developers may want to consider disabling focus trapping if this overlay presents a non-Ionic overlay from a 3rd party library. Developers would disable focus trapping on the Ionic overlay when presenting the 3rd party overlay and then re-enable focus trapping when dismissing the 3rd party overlay and moving focus back to the Ionic overlay.
6412
+ */
6413
+ "focusTrap"?: boolean;
6386
6414
  /**
6387
6415
  * The horizontal line that displays at the top of a sheet modal. It is `true` by default when setting the `breakpoints` and `initialBreakpoint` properties.
6388
6416
  */
@@ -6546,7 +6574,7 @@ declare namespace LocalJSX {
6546
6574
  */
6547
6575
  "mode"?: "ios" | "md";
6548
6576
  /**
6549
- * Emitted when the value has changed.
6577
+ * Emitted when the value has changed. This event will not emit when programmatically setting the `value` property.
6550
6578
  */
6551
6579
  "onIonChange"?: (event: IonPickerColumnCustomEvent<PickerColumnChangeEventDetail>) => void;
6552
6580
  /**
@@ -6701,6 +6729,10 @@ declare namespace LocalJSX {
6701
6729
  * The event to pass to the popover animation.
6702
6730
  */
6703
6731
  "event"?: any;
6732
+ /**
6733
+ * If `true`, focus will not be allowed to move outside of this overlay. If `false`, focus will be allowed to move outside of the overlay. In most scenarios this property should remain set to `true`. Setting this property to `false` can cause severe accessibility issues as users relying on assistive technologies may be able to move focus into a confusing state. We recommend only setting this to `false` when absolutely necessary. Developers may want to consider disabling focus trapping if this overlay presents a non-Ionic overlay from a 3rd party library. Developers would disable focus trapping on the Ionic overlay when presenting the 3rd party overlay and then re-enable focus trapping when dismissing the 3rd party overlay and moving focus back to the Ionic overlay.
6734
+ */
6735
+ "focusTrap"?: boolean;
6704
6736
  /**
6705
6737
  * Additional attributes to pass to the popover.
6706
6738
  */
@@ -6868,7 +6900,7 @@ declare namespace LocalJSX {
6868
6900
  */
6869
6901
  "name"?: string;
6870
6902
  /**
6871
- * Emitted when the value has changed.
6903
+ * Emitted when the value has changed. This event will not emit when programmatically setting the `value` property.
6872
6904
  */
6873
6905
  "onIonChange"?: (event: IonRadioGroupCustomEvent<RadioGroupChangeEventDetail>) => void;
6874
6906
  /**
@@ -6926,7 +6958,7 @@ declare namespace LocalJSX {
6926
6958
  */
6927
6959
  "onIonBlur"?: (event: IonRangeCustomEvent<void>) => void;
6928
6960
  /**
6929
- * The `ionChange` event is fired for `<ion-range>` elements when the user modifies the element's value: - When the user releases the knob after dragging; - When the user moves the knob with keyboard arrows `ionChange` is not fired when the value is changed programmatically.
6961
+ * The `ionChange` event is fired for `<ion-range>` elements when the user modifies the element's value: - When the user releases the knob after dragging; - When the user moves the knob with keyboard arrows This event will not emit when programmatically setting the `value` property.
6930
6962
  */
6931
6963
  "onIonChange"?: (event: IonRangeCustomEvent<RangeChangeEventDetail>) => void;
6932
6964
  /**
@@ -7222,7 +7254,7 @@ declare namespace LocalJSX {
7222
7254
  */
7223
7255
  "onIonCancel"?: (event: IonSearchbarCustomEvent<void>) => void;
7224
7256
  /**
7225
- * The `ionChange` event is fired for `<ion-searchbar>` elements when the user modifies the element's value. Unlike the `ionInput` event, the `ionChange` event is not necessarily fired for each alteration to an element's value. The `ionChange` event is fired when the value has been committed by the user. This can happen when the element loses focus or when the "Enter" key is pressed. `ionChange` can also fire when clicking the clear or cancel buttons.
7257
+ * The `ionChange` event is fired for `<ion-searchbar>` elements when the user modifies the element's value. Unlike the `ionInput` event, the `ionChange` event is not necessarily fired for each alteration to an element's value. The `ionChange` event is fired when the value has been committed by the user. This can happen when the element loses focus or when the "Enter" key is pressed. `ionChange` can also fire when clicking the clear or cancel buttons. This event will not emit when programmatically setting the `value` property.
7226
7258
  */
7227
7259
  "onIonChange"?: (event: IonSearchbarCustomEvent<SearchbarChangeEventDetail>) => void;
7228
7260
  /**
@@ -7280,7 +7312,7 @@ declare namespace LocalJSX {
7280
7312
  */
7281
7313
  "mode"?: "ios" | "md";
7282
7314
  /**
7283
- * Emitted when the value property has changed and any dragging pointer has been released from `ion-segment`.
7315
+ * Emitted when the value property has changed and any dragging pointer has been released from `ion-segment`. This event will not emit when programmatically setting the `value` property.
7284
7316
  */
7285
7317
  "onIonChange"?: (event: IonSegmentCustomEvent<SegmentChangeEventDetail>) => void;
7286
7318
  /**
@@ -7392,7 +7424,7 @@ declare namespace LocalJSX {
7392
7424
  */
7393
7425
  "onIonCancel"?: (event: IonSelectCustomEvent<void>) => void;
7394
7426
  /**
7395
- * Emitted when the value has changed.
7427
+ * Emitted when the value has changed. This event will not emit when programmatically setting the `value` property.
7396
7428
  */
7397
7429
  "onIonChange"?: (event: IonSelectCustomEvent<SelectChangeEventDetail>) => void;
7398
7430
  /**
@@ -7674,7 +7706,7 @@ declare namespace LocalJSX {
7674
7706
  */
7675
7707
  "onIonBlur"?: (event: IonTextareaCustomEvent<FocusEvent>) => void;
7676
7708
  /**
7677
- * The `ionChange` event is fired when the user modifies the textarea's value. Unlike the `ionInput` event, the `ionChange` event is fired when the element loses focus after its value has been modified.
7709
+ * The `ionChange` event is fired when the user modifies the textarea's value. Unlike the `ionInput` event, the `ionChange` event is fired when the element loses focus after its value has been modified. This event will not emit when programmatically setting the `value` property.
7678
7710
  */
7679
7711
  "onIonChange"?: (event: IonTextareaCustomEvent<TextareaChangeEventDetail>) => void;
7680
7712
  /**
@@ -7886,7 +7918,7 @@ declare namespace LocalJSX {
7886
7918
  */
7887
7919
  "onIonBlur"?: (event: IonToggleCustomEvent<void>) => void;
7888
7920
  /**
7889
- * Emitted when the user switches the toggle on or off. Does not emit when programmatically changing the value of the `checked` property.
7921
+ * Emitted when the user switches the toggle on or off. This event will not emit when programmatically setting the `checked` property.
7890
7922
  */
7891
7923
  "onIonChange"?: (event: IonToggleCustomEvent<ToggleChangeEventDetail>) => void;
7892
7924
  /**
@@ -768,6 +768,7 @@ export declare namespace JSXBase {
768
768
  hrefLang?: string;
769
769
  hreflang?: string;
770
770
  media?: string;
771
+ ping?: string;
771
772
  rel?: string;
772
773
  target?: string;
773
774
  referrerPolicy?: ReferrerPolicy;
@@ -165,6 +165,13 @@ export interface IonicConfig {
165
165
  * Overrides the default platform detection methods.
166
166
  */
167
167
  platform?: PlatformConfig;
168
+ /**
169
+ * @experimental
170
+ * When defined, Ionic will move focus to the appropriate element after each
171
+ * page transition. This ensures that users relying on assistive technology
172
+ * are informed when a page transition happens.
173
+ */
174
+ focusManagerPriority?: FocusManagerPriority[];
168
175
  /**
169
176
  * @experimental
170
177
  * If `true`, the [CloseWatcher API](https://github.com/WICG/close-watcher) will be used to handle
@@ -186,6 +193,8 @@ export interface IonicConfig {
186
193
  _rel?: (el: any, name: string, cb: any, opts: any) => any;
187
194
  _ce?: (eventName: string, opts: any) => any;
188
195
  }
196
+ type FocusManagerPriority = 'content' | 'heading' | 'banner';
189
197
  export declare const setupConfig: (config: IonicConfig) => any;
190
198
  export declare const getMode: () => Mode;
191
199
  export declare const ENABLE_HTML_CONTENT_DEFAULT = false;
200
+ export {};
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The focus controller allows us to manage focus within a view so assistive
3
+ * technologies can inform users of changes to the navigation state. Traditional
4
+ * native apps have a way of informing assistive technology about a navigation
5
+ * state change. Mobile browsers have this too, but only when doing a full page
6
+ * load. In a single page app we do not do that, so we need to build this
7
+ * integration ourselves.
8
+ */
9
+ export declare const createFocusController: () => FocusController;
10
+ export type FocusController = {
11
+ saveViewFocus: (referenceEl?: HTMLElement) => void;
12
+ setViewFocus: (referenceEl: HTMLElement) => void;
13
+ };
@@ -134,3 +134,4 @@ export declare const createTriggerController: () => {
134
134
  addClickListener: (el: HTMLIonOverlayElement, trigger: string) => void;
135
135
  removeClickListener: () => void;
136
136
  };
137
+ export declare const FOCUS_TRAP_DISABLE_CLASS = "ion-disable-focus-trap";