@ionic/core 8.0.1-dev.11713911458.1ad5f4cf → 8.0.1-dev.11714492860.17c00351

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 (411) hide show
  1. package/components/input-shims.js +5 -5
  2. package/components/ion-content.js +6 -4
  3. package/components/ion-datetime-button.js +2 -2
  4. package/components/ion-datetime.js +15 -13
  5. package/components/ion-fab-button.js +2 -2
  6. package/components/ion-fab-list.js +2 -2
  7. package/components/ion-fab.js +2 -2
  8. package/components/ion-footer.js +2 -2
  9. package/components/ion-grid.js +2 -2
  10. package/components/ion-header.js +2 -2
  11. package/components/ion-img.js +1 -1
  12. package/components/ion-infinite-scroll-content.js +2 -2
  13. package/components/ion-infinite-scroll.js +1 -1
  14. package/components/ion-input-password-toggle.js +3 -3
  15. package/components/ion-input.js +8 -12
  16. package/components/ion-item-divider.js +2 -2
  17. package/components/ion-item-group.js +1 -1
  18. package/components/ion-item-option.js +2 -2
  19. package/components/ion-item-options.js +1 -1
  20. package/components/ion-item-sliding.js +1 -1
  21. package/components/ion-loading.js +2 -2
  22. package/components/ion-menu-button.js +2 -2
  23. package/components/ion-menu-toggle.js +2 -2
  24. package/components/ion-menu.js +2 -2
  25. package/components/ion-modal.js +10 -8
  26. package/components/ion-nav-link.js +1 -1
  27. package/components/ion-nav.js +1 -1
  28. package/components/ion-note.js +2 -2
  29. package/components/ion-picker-legacy.js +2 -2
  30. package/components/ion-progress-bar.js +1 -1
  31. package/components/ion-range.js +3 -3
  32. package/components/ion-refresher-content.js +1 -1
  33. package/components/ion-refresher.js +1 -1
  34. package/components/ion-reorder-group.js +1 -1
  35. package/components/ion-reorder.js +1 -1
  36. package/components/ion-router-link.js +2 -2
  37. package/components/ion-router-outlet.js +1 -1
  38. package/components/ion-row.js +1 -1
  39. package/components/ion-searchbar.js +4 -4
  40. package/components/ion-segment-button.js +3 -3
  41. package/components/ion-segment.js +2 -2
  42. package/components/ion-select-option.js +1 -1
  43. package/components/ion-select.js +2 -2
  44. package/components/ion-skeleton-text.js +2 -2
  45. package/components/ion-split-pane.js +2 -2
  46. package/components/ion-tab-bar.js +2 -2
  47. package/components/ion-tab-button.js +2 -2
  48. package/components/ion-tab.js +2 -2
  49. package/components/ion-tabs.js +1 -1
  50. package/components/ion-text.js +2 -2
  51. package/components/ion-textarea.js +2 -2
  52. package/components/ion-thumbnail.js +1 -1
  53. package/components/ion-title.js +2 -2
  54. package/components/ion-toast.js +2 -2
  55. package/components/ion-toggle.js +3 -3
  56. package/components/ion-toolbar.js +2 -2
  57. package/components/label.js +2 -2
  58. package/components/list-header.js +2 -2
  59. package/components/list.js +1 -1
  60. package/components/overlays.js +3 -2
  61. package/components/picker-column-option.js +2 -2
  62. package/components/picker-column.js +156 -4
  63. package/components/picker-column2.js +2 -2
  64. package/components/picker.js +2 -2
  65. package/components/popover.js +6 -4
  66. package/components/radio-group.js +1 -1
  67. package/components/radio.js +3 -3
  68. package/components/ripple-effect.js +1 -1
  69. package/components/select-popover.js +1 -1
  70. package/components/spinner.js +1 -1
  71. package/css/palettes/dark.always.css +1 -1
  72. package/css/palettes/dark.always.css.map +1 -1
  73. package/css/palettes/dark.class.css +1 -1
  74. package/css/palettes/dark.class.css.map +1 -1
  75. package/css/palettes/dark.system.css +1 -1
  76. package/css/palettes/dark.system.css.map +1 -1
  77. package/dist/cjs/index.cjs.js +1 -1
  78. package/dist/cjs/{input-shims-9e59ef62.js → input-shims-20d639e6.js} +5 -5
  79. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-app_8.cjs.entry.js +15 -14
  82. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  83. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  84. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  85. package/dist/cjs/ion-datetime_3.cjs.entry.js +20 -18
  86. package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
  87. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  88. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  89. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  90. package/dist/cjs/ion-input.cjs.entry.js +7 -12
  91. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  92. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  93. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  94. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  95. package/dist/cjs/ion-modal.cjs.entry.js +9 -8
  96. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-picker-column.cjs.entry.js +154 -4
  99. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-popover.cjs.entry.js +5 -4
  101. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  102. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  103. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  104. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  105. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  106. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  107. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  108. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  109. package/dist/cjs/ion-segment_2.cjs.entry.js +5 -5
  110. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  111. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  112. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  113. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  114. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  115. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  116. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  117. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  118. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  119. package/dist/cjs/ionic.cjs.js +1 -1
  120. package/dist/cjs/loader.cjs.js +1 -1
  121. package/dist/cjs/{overlays-10c452b2.js → overlays-574e681c.js} +3 -1
  122. package/dist/collection/components/content/content.js +23 -4
  123. package/dist/collection/components/content/test/content.spec.js +27 -0
  124. package/dist/collection/components/datetime/datetime.js +15 -13
  125. package/dist/collection/components/datetime/test/overlay-roles/datetime.e2e.js +34 -0
  126. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  127. package/dist/collection/components/fab/fab.js +2 -2
  128. package/dist/collection/components/fab-button/fab-button.js +2 -2
  129. package/dist/collection/components/fab-list/fab-list.js +2 -2
  130. package/dist/collection/components/footer/footer.js +2 -2
  131. package/dist/collection/components/grid/grid.js +2 -2
  132. package/dist/collection/components/header/header.js +2 -2
  133. package/dist/collection/components/img/img.js +1 -1
  134. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  135. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  136. package/dist/collection/components/input/input.js +24 -12
  137. package/dist/collection/components/input/test/input.spec.js +13 -0
  138. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  139. package/dist/collection/components/item-divider/item-divider.js +2 -2
  140. package/dist/collection/components/item-group/item-group.js +1 -1
  141. package/dist/collection/components/item-option/item-option.js +2 -2
  142. package/dist/collection/components/item-options/item-options.js +1 -1
  143. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  144. package/dist/collection/components/label/label.js +2 -2
  145. package/dist/collection/components/list/list.js +1 -1
  146. package/dist/collection/components/list-header/list-header.js +2 -2
  147. package/dist/collection/components/loading/loading.js +2 -2
  148. package/dist/collection/components/menu/menu.js +2 -2
  149. package/dist/collection/components/menu-button/menu-button.js +2 -2
  150. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  151. package/dist/collection/components/modal/gestures/sheet.js +3 -2
  152. package/dist/collection/components/modal/modal.js +25 -6
  153. package/dist/collection/components/modal/test/basic/modal.spec.js +19 -0
  154. package/dist/collection/components/nav/nav.js +1 -1
  155. package/dist/collection/components/nav-link/nav-link.js +1 -1
  156. package/dist/collection/components/note/note.js +2 -2
  157. package/dist/collection/components/picker/picker.js +2 -2
  158. package/dist/collection/components/picker-column/picker-column.css +19 -0
  159. package/dist/collection/components/picker-column/picker-column.js +158 -3
  160. package/dist/collection/components/picker-column/test/picker-column.spec.js +83 -0
  161. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  162. package/dist/collection/components/picker-legacy/picker.js +2 -2
  163. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  164. package/dist/collection/components/popover/popover.js +23 -4
  165. package/dist/collection/components/popover/test/basic/popover.spec.js +19 -0
  166. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  167. package/dist/collection/components/radio/radio.js +3 -3
  168. package/dist/collection/components/radio-group/radio-group.js +1 -1
  169. package/dist/collection/components/range/range.js +3 -3
  170. package/dist/collection/components/refresher/refresher.js +1 -1
  171. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  172. package/dist/collection/components/reorder/reorder.js +1 -1
  173. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  174. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  175. package/dist/collection/components/router-link/router-link.js +2 -2
  176. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  177. package/dist/collection/components/row/row.js +1 -1
  178. package/dist/collection/components/searchbar/searchbar.js +4 -4
  179. package/dist/collection/components/segment/segment.js +2 -2
  180. package/dist/collection/components/segment-button/segment-button.js +3 -3
  181. package/dist/collection/components/select/select.js +2 -2
  182. package/dist/collection/components/select-option/select-option.js +1 -1
  183. package/dist/collection/components/select-popover/select-popover.js +1 -1
  184. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  185. package/dist/collection/components/spinner/spinner.js +1 -1
  186. package/dist/collection/components/split-pane/split-pane.js +2 -2
  187. package/dist/collection/components/tab/tab.js +2 -2
  188. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  189. package/dist/collection/components/tab-button/tab-button.js +2 -2
  190. package/dist/collection/components/tabs/tabs.js +1 -1
  191. package/dist/collection/components/text/text.js +2 -2
  192. package/dist/collection/components/textarea/textarea.js +2 -2
  193. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  194. package/dist/collection/components/title/title.js +2 -2
  195. package/dist/collection/components/toast/toast.js +2 -2
  196. package/dist/collection/components/toggle/toggle.js +3 -3
  197. package/dist/collection/components/toolbar/toolbar.js +2 -2
  198. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -5
  199. package/dist/collection/utils/overlays.js +2 -1
  200. package/dist/docs.json +96 -1
  201. package/dist/esm/index.js +1 -1
  202. package/dist/esm/{input-shims-0314bbe5.js → input-shims-4530285e.js} +5 -5
  203. package/dist/esm/ion-action-sheet.entry.js +1 -1
  204. package/dist/esm/ion-alert.entry.js +1 -1
  205. package/dist/esm/ion-app_8.entry.js +15 -14
  206. package/dist/esm/ion-avatar_3.entry.js +1 -1
  207. package/dist/esm/ion-col_3.entry.js +3 -3
  208. package/dist/esm/ion-datetime-button.entry.js +2 -2
  209. package/dist/esm/ion-datetime_3.entry.js +20 -18
  210. package/dist/esm/ion-fab_3.entry.js +6 -6
  211. package/dist/esm/ion-img.entry.js +1 -1
  212. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  213. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  214. package/dist/esm/ion-input.entry.js +7 -12
  215. package/dist/esm/ion-item-option_3.entry.js +4 -4
  216. package/dist/esm/ion-item_8.entry.js +12 -12
  217. package/dist/esm/ion-loading.entry.js +3 -3
  218. package/dist/esm/ion-menu_3.entry.js +7 -7
  219. package/dist/esm/ion-modal.entry.js +9 -8
  220. package/dist/esm/ion-nav_2.entry.js +2 -2
  221. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  222. package/dist/esm/ion-picker-column.entry.js +154 -4
  223. package/dist/esm/ion-picker.entry.js +2 -2
  224. package/dist/esm/ion-popover.entry.js +5 -4
  225. package/dist/esm/ion-progress-bar.entry.js +1 -1
  226. package/dist/esm/ion-radio_2.entry.js +4 -4
  227. package/dist/esm/ion-range.entry.js +3 -3
  228. package/dist/esm/ion-refresher_2.entry.js +2 -2
  229. package/dist/esm/ion-reorder_2.entry.js +2 -2
  230. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  231. package/dist/esm/ion-route_4.entry.js +2 -2
  232. package/dist/esm/ion-searchbar.entry.js +4 -4
  233. package/dist/esm/ion-segment_2.entry.js +5 -5
  234. package/dist/esm/ion-select_3.entry.js +5 -5
  235. package/dist/esm/ion-spinner.entry.js +1 -1
  236. package/dist/esm/ion-split-pane.entry.js +2 -2
  237. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  238. package/dist/esm/ion-tab_2.entry.js +3 -3
  239. package/dist/esm/ion-text.entry.js +2 -2
  240. package/dist/esm/ion-textarea.entry.js +2 -2
  241. package/dist/esm/ion-toast.entry.js +3 -3
  242. package/dist/esm/ion-toggle.entry.js +3 -3
  243. package/dist/esm/ionic.js +1 -1
  244. package/dist/esm/loader.js +1 -1
  245. package/dist/esm/{overlays-6fb4a2f2.js → overlays-1eac28e2.js} +3 -2
  246. package/dist/esm-es5/index.js +1 -1
  247. package/dist/esm-es5/input-shims-4530285e.js +4 -0
  248. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  249. package/dist/esm-es5/ion-alert.entry.js +1 -1
  250. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  251. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  252. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  253. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  254. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  255. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  256. package/dist/esm-es5/ion-img.entry.js +1 -1
  257. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  258. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  259. package/dist/esm-es5/ion-input.entry.js +1 -1
  260. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  261. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  262. package/dist/esm-es5/ion-loading.entry.js +1 -1
  263. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  264. package/dist/esm-es5/ion-modal.entry.js +1 -1
  265. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  266. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  267. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  268. package/dist/esm-es5/ion-picker.entry.js +1 -1
  269. package/dist/esm-es5/ion-popover.entry.js +1 -1
  270. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  271. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-range.entry.js +1 -1
  273. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  274. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  275. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  276. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  277. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  278. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  279. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  280. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  281. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  282. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  283. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  284. package/dist/esm-es5/ion-text.entry.js +1 -1
  285. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  286. package/dist/esm-es5/ion-toast.entry.js +1 -1
  287. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  288. package/dist/esm-es5/ionic.js +1 -1
  289. package/dist/esm-es5/loader.js +1 -1
  290. package/dist/esm-es5/{overlays-6fb4a2f2.js → overlays-1eac28e2.js} +1 -1
  291. package/dist/html.html-data.json +24 -0
  292. package/dist/ionic/index.esm.js +1 -1
  293. package/dist/ionic/ionic.esm.js +1 -1
  294. package/dist/ionic/{p-50205ef9.system.entry.js → p-0d88f9c2.system.entry.js} +1 -1
  295. package/dist/ionic/{p-1fe1f512.entry.js → p-1a8d2fe3.entry.js} +1 -1
  296. package/dist/ionic/{p-3008ca4e.system.entry.js → p-1aff89d0.system.entry.js} +1 -1
  297. package/dist/ionic/{p-4a01cec0.entry.js → p-2185597f.entry.js} +1 -1
  298. package/dist/ionic/{p-7f33a6e2.system.entry.js → p-22d183b4.system.entry.js} +2 -2
  299. package/dist/ionic/{p-5f15ee76.entry.js → p-255b6f01.entry.js} +1 -1
  300. package/dist/ionic/p-282cc565.js +4 -0
  301. package/dist/ionic/{p-4f6ebc2b.entry.js → p-2870db48.entry.js} +1 -1
  302. package/dist/ionic/p-2a517297.system.entry.js +4 -0
  303. package/dist/ionic/{p-cbd87df6.entry.js → p-2b45e94f.entry.js} +1 -1
  304. package/dist/ionic/{p-cf8101a6.system.entry.js → p-2c1cc9bf.system.entry.js} +1 -1
  305. package/dist/ionic/p-2e56ebdc.entry.js +4 -0
  306. package/dist/ionic/{p-e62d4a6c.entry.js → p-30a40a57.entry.js} +1 -1
  307. package/dist/ionic/{p-98af538a.system.entry.js → p-320f9186.system.entry.js} +2 -2
  308. package/dist/ionic/{p-6ef17d86.system.entry.js → p-3339b5ca.system.entry.js} +1 -1
  309. package/dist/ionic/p-39a3eca2.entry.js +4 -0
  310. package/dist/ionic/{p-703f62c1.entry.js → p-3af6a819.entry.js} +1 -1
  311. package/dist/ionic/{p-8a5152e5.entry.js → p-3f7e6661.entry.js} +1 -1
  312. package/dist/ionic/{p-814efd87.system.entry.js → p-4195e4d0.system.entry.js} +1 -1
  313. package/dist/ionic/{p-dbc3e90c.entry.js → p-454c2bfe.entry.js} +1 -1
  314. package/dist/ionic/{p-2690b1de.js → p-46111310.js} +1 -1
  315. package/dist/ionic/p-46f407f0.system.js +4 -0
  316. package/dist/ionic/{p-4809ddae.system.entry.js → p-47915d5c.system.entry.js} +1 -1
  317. package/dist/ionic/{p-5ad55625.entry.js → p-49a47e7c.entry.js} +1 -1
  318. package/dist/ionic/p-4b078620.entry.js +4 -0
  319. package/dist/ionic/{p-332aa81e.entry.js → p-4c24ae09.entry.js} +1 -1
  320. package/dist/ionic/{p-904df2ee.system.entry.js → p-4c3d0457.system.entry.js} +1 -1
  321. package/dist/ionic/{p-530207f9.entry.js → p-4f1d1637.entry.js} +1 -1
  322. package/dist/ionic/{p-341b3f37.entry.js → p-4fc2a1ce.entry.js} +1 -1
  323. package/dist/ionic/{p-53d69c70.system.entry.js → p-5015ef54.system.entry.js} +1 -1
  324. package/dist/ionic/{p-e8a713b5.entry.js → p-5087e4df.entry.js} +1 -1
  325. package/dist/ionic/{p-5895b91d.entry.js → p-5408ee96.entry.js} +1 -1
  326. package/dist/ionic/p-55b9eb6b.system.entry.js +4 -0
  327. package/dist/ionic/p-56932fb6.entry.js +4 -0
  328. package/dist/ionic/{p-987e38ef.system.entry.js → p-56c470c2.system.entry.js} +1 -1
  329. package/dist/ionic/{p-5c26fed5.system.entry.js → p-5983ad03.system.entry.js} +1 -1
  330. package/dist/ionic/p-5a82c7b9.system.entry.js +4 -0
  331. package/dist/ionic/p-5e074809.system.entry.js +4 -0
  332. package/dist/ionic/{p-e81c3ca2.system.entry.js → p-676e0f71.system.entry.js} +1 -1
  333. package/dist/ionic/{p-eac224fa.entry.js → p-70605125.entry.js} +1 -1
  334. package/dist/ionic/{p-9fd3ca09.system.entry.js → p-70e00e9f.system.entry.js} +1 -1
  335. package/dist/ionic/p-70e5135e.system.entry.js +4 -0
  336. package/dist/ionic/{p-1472c130.entry.js → p-71044f08.entry.js} +1 -1
  337. package/dist/ionic/{p-fa0bf39d.system.entry.js → p-75a6989a.system.entry.js} +1 -1
  338. package/dist/ionic/{p-68afa357.system.entry.js → p-7e5972a0.system.entry.js} +2 -2
  339. package/dist/ionic/p-8134b3c4.entry.js +4 -0
  340. package/dist/ionic/{p-4f77a080.system.entry.js → p-89f2d585.system.entry.js} +1 -1
  341. package/dist/ionic/{p-6cf780b6.system.entry.js → p-8ffff03f.system.entry.js} +1 -1
  342. package/dist/ionic/p-90f77fc2.entry.js +4 -0
  343. package/dist/ionic/{p-d277ba16.entry.js → p-91cb391a.entry.js} +1 -1
  344. package/dist/ionic/{p-bc3d649d.entry.js → p-9277e3d2.entry.js} +1 -1
  345. package/dist/ionic/{p-ca5bb110.system.entry.js → p-94d20e10.system.entry.js} +1 -1
  346. package/dist/ionic/{p-48f60474.entry.js → p-962f482c.entry.js} +1 -1
  347. package/dist/ionic/p-9832568f.entry.js +4 -0
  348. package/dist/ionic/{p-f956e38a.entry.js → p-9876ce3b.entry.js} +1 -1
  349. package/dist/ionic/{p-151e8afd.entry.js → p-9a06b83d.entry.js} +1 -1
  350. package/dist/ionic/{p-f8f8c5a8.system.entry.js → p-9dbd1f93.system.entry.js} +1 -1
  351. package/dist/ionic/{p-c54b167f.system.entry.js → p-9e829e8f.system.entry.js} +1 -1
  352. package/dist/ionic/p-a0351a92.system.js +4 -0
  353. package/dist/ionic/{p-c927dbe2.system.entry.js → p-a0dd50e4.system.entry.js} +1 -1
  354. package/dist/ionic/{p-2b86020c.system.entry.js → p-a4ce5696.system.entry.js} +1 -1
  355. package/dist/ionic/{p-1ba197b6.entry.js → p-a51785b7.entry.js} +1 -1
  356. package/dist/ionic/{p-e292247e.system.entry.js → p-a6f505f5.system.entry.js} +1 -1
  357. package/dist/ionic/{p-d061515d.system.entry.js → p-ac058b0e.system.entry.js} +1 -1
  358. package/dist/ionic/{p-38010e7c.system.entry.js → p-ae6f15b0.system.entry.js} +1 -1
  359. package/dist/ionic/{p-91b568e2.system.entry.js → p-b0fc315c.system.entry.js} +1 -1
  360. package/dist/ionic/p-b1b68c3e.entry.js +4 -0
  361. package/dist/ionic/{p-e93cd31c.entry.js → p-b80dfa1b.entry.js} +1 -1
  362. package/dist/ionic/{p-df0d39c7.system.entry.js → p-b8d966bb.system.entry.js} +2 -2
  363. package/dist/ionic/{p-90f8498c.entry.js → p-ba8fd3f7.entry.js} +1 -1
  364. package/dist/ionic/{p-3d977e09.system.entry.js → p-bd62a431.system.entry.js} +2 -2
  365. package/dist/ionic/{p-70f6b982.entry.js → p-bebb01a5.entry.js} +1 -1
  366. package/dist/ionic/p-c34a80bd.entry.js +4 -0
  367. package/dist/ionic/{p-ca6decbd.entry.js → p-cfd91e4b.entry.js} +1 -1
  368. package/dist/ionic/{p-aa79cc0e.system.entry.js → p-d3a32834.system.entry.js} +2 -2
  369. package/dist/ionic/{p-275dd0ba.system.entry.js → p-d5559e4d.system.entry.js} +1 -1
  370. package/dist/ionic/p-d724072e.system.entry.js +4 -0
  371. package/dist/ionic/{p-55bc2a11.system.entry.js → p-d833beb7.system.entry.js} +1 -1
  372. package/dist/ionic/p-d8d6ebc0.system.js +1 -1
  373. package/dist/ionic/{p-7c93f00b.system.entry.js → p-da29453c.system.entry.js} +1 -1
  374. package/dist/ionic/{p-e099a6f3.entry.js → p-dffd0e36.entry.js} +1 -1
  375. package/dist/ionic/{p-07584ab4.system.js → p-e22c0afe.system.js} +1 -1
  376. package/dist/ionic/{p-1c42ad90.entry.js → p-eb1428cc.entry.js} +1 -1
  377. package/dist/ionic/{p-e1ad8e76.entry.js → p-f49da44a.entry.js} +1 -1
  378. package/dist/ionic/p-f5006fa9.system.entry.js +4 -0
  379. package/dist/ionic/p-fe9a80b7.entry.js +4 -0
  380. package/dist/types/components/content/content.d.ts +8 -0
  381. package/dist/types/components/input/input.d.ts +4 -0
  382. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  383. package/dist/types/components/modal/modal.d.ts +18 -0
  384. package/dist/types/components/picker-column/picker-column.d.ts +35 -0
  385. package/dist/types/components/popover/popover-interface.d.ts +1 -0
  386. package/dist/types/components/popover/popover.d.ts +18 -0
  387. package/dist/types/components.d.ts +32 -0
  388. package/dist/types/utils/overlays.d.ts +1 -0
  389. package/hydrate/index.js +309 -153
  390. package/package.json +1 -1
  391. package/dist/esm-es5/input-shims-0314bbe5.js +0 -4
  392. package/dist/ionic/p-34f26d8b.entry.js +0 -4
  393. package/dist/ionic/p-4d2b2d23.system.entry.js +0 -4
  394. package/dist/ionic/p-582db405.system.entry.js +0 -4
  395. package/dist/ionic/p-7372cf23.system.entry.js +0 -4
  396. package/dist/ionic/p-84ead641.entry.js +0 -4
  397. package/dist/ionic/p-91dabef7.system.js +0 -4
  398. package/dist/ionic/p-a28ea4d8.system.entry.js +0 -4
  399. package/dist/ionic/p-a39a73e3.entry.js +0 -4
  400. package/dist/ionic/p-a90201f2.js +0 -4
  401. package/dist/ionic/p-ac045dad.entry.js +0 -4
  402. package/dist/ionic/p-ba35f07f.entry.js +0 -4
  403. package/dist/ionic/p-c2762c6a.system.entry.js +0 -4
  404. package/dist/ionic/p-cc258008.entry.js +0 -4
  405. package/dist/ionic/p-ce5bf737.system.entry.js +0 -4
  406. package/dist/ionic/p-cf45a5c7.system.entry.js +0 -4
  407. package/dist/ionic/p-dfb78785.system.js +0 -4
  408. package/dist/ionic/p-e5f99a0d.entry.js +0 -4
  409. package/dist/ionic/p-e781c893.entry.js +0 -4
  410. package/dist/ionic/p-ec178f19.entry.js +0 -4
  411. package/dist/ionic/p-f6fec6a0.entry.js +0 -4
@@ -13,7 +13,7 @@ const ionicGlobal = require('./ionic-global-62487d02.js');
13
13
  const theme = require('./theme-d1c573d2.js');
14
14
  require('./capacitor-c04564bf.js');
15
15
 
16
- const pickerColumnCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
16
+ const pickerColumnCss = ":host{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;max-width:100%;height:200px;font-size:22px;text-align:center}.assistive-focusable{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}.assistive-focusable:focus{outline:none}.picker-opts{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-width:26px;max-height:200px;outline:none;text-align:inherit;-webkit-scroll-snap-type:y mandatory;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;overflow-x:hidden;overflow-y:scroll;scrollbar-width:none}.picker-item-empty{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.picker-opts::-webkit-scrollbar{display:none}::slotted(ion-picker-column-option){display:block;scroll-snap-align:center}.picker-item-empty,:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled){scroll-snap-align:none}::slotted([slot=prefix]),::slotted([slot=suffix]){max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}::slotted([slot=prefix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:end;justify-content:end}::slotted([slot=suffix]){-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0;padding-bottom:0;-ms-flex-pack:start;justify-content:start}:host(.picker-column-disabled) .picker-opts{overflow-y:hidden}:host(.picker-column-disabled) ::slotted(ion-picker-column-option){cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){:host(:focus) .picker-opts{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
17
17
  const IonPickerColumnStyle0 = pickerColumnCss;
18
18
 
19
19
  const PickerColumn = class {
@@ -23,6 +23,7 @@ const PickerColumn = class {
23
23
  this.isScrolling = false;
24
24
  this.isColumnVisible = false;
25
25
  this.canExitInputMode = true;
26
+ this.updateValueTextOnScroll = false;
26
27
  this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
27
28
  const { isColumnVisible, scrollEl } = this;
28
29
  if (isColumnVisible && scrollEl) {
@@ -37,6 +38,7 @@ const PickerColumn = class {
37
38
  * of these can cause a scroll to occur.
38
39
  */
39
40
  this.canExitInputMode = canExitInputMode;
41
+ this.updateValueTextOnScroll = false;
40
42
  scrollEl.scroll({
41
43
  top,
42
44
  left: 0,
@@ -109,6 +111,7 @@ const PickerColumn = class {
109
111
  let activeEl = this.activeItem;
110
112
  const scrollCallback = () => {
111
113
  helpers.raf(() => {
114
+ var _a;
112
115
  if (!scrollEl)
113
116
  return;
114
117
  if (timeout) {
@@ -189,8 +192,23 @@ const PickerColumn = class {
189
192
  }
190
193
  activeEl = newActiveElement;
191
194
  this.setPickerItemActiveState(newActiveElement, true);
195
+ /**
196
+ * Set the aria-valuetext even though the value prop has not been updated yet.
197
+ * This enables some screen readers to announce the value as the users drag
198
+ * as opposed to when their release their pointer from the screen.
199
+ *
200
+ * When the value is programmatically updated, we will smoothly scroll
201
+ * to the new option. However, we do not want to update aria-valuetext mid-scroll
202
+ * as that can cause the old value to be briefly set before being set to the
203
+ * correct option. This will cause some screen readers to announce the old value
204
+ * again before announcing the new value. The correct valuetext will be set on render.
205
+ */
206
+ if (this.updateValueTextOnScroll) {
207
+ (_a = this.assistiveFocusable) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
208
+ }
192
209
  timeout = setTimeout(() => {
193
210
  this.isScrolling = false;
211
+ this.updateValueTextOnScroll = true;
194
212
  enableHaptics && haptic.hapticSelectionEnd();
195
213
  /**
196
214
  * Certain tasks (such as those that
@@ -249,12 +267,139 @@ const PickerColumn = class {
249
267
  */
250
268
  this.el.classList.remove('picker-column-active');
251
269
  };
270
+ /**
271
+ * Find the next enabled option after the active option.
272
+ * @param stride - How many options to "jump" over in order to select the next option.
273
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
274
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
275
+ * the enabled option 5 options after the active one. Note that the actual option selected
276
+ * may be past the stride if the option at the stride is disabled.
277
+ */
278
+ this.findNextOption = (stride = 1) => {
279
+ const { activeItem } = this;
280
+ if (!activeItem)
281
+ return null;
282
+ let prevNode = activeItem;
283
+ let node = activeItem.nextElementSibling;
284
+ while (node != null) {
285
+ if (stride > 0) {
286
+ stride--;
287
+ }
288
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
289
+ return node;
290
+ }
291
+ prevNode = node;
292
+ // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
293
+ node = node.nextElementSibling;
294
+ }
295
+ return prevNode;
296
+ };
297
+ /**
298
+ * Find the next enabled option after the active option.
299
+ * @param stride - How many options to "jump" over in order to select the next option.
300
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
301
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
302
+ * the enabled option 5 options before the active one. Note that the actual option selected
303
+ * may be past the stride if the option at the stride is disabled.
304
+ */
305
+ this.findPreviousOption = (stride = 1) => {
306
+ const { activeItem } = this;
307
+ if (!activeItem)
308
+ return null;
309
+ let nextNode = activeItem;
310
+ let node = activeItem.previousElementSibling;
311
+ while (node != null) {
312
+ if (stride > 0) {
313
+ stride--;
314
+ }
315
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
316
+ return node;
317
+ }
318
+ nextNode = node;
319
+ // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
320
+ node = node.previousElementSibling;
321
+ }
322
+ return nextNode;
323
+ };
324
+ this.onKeyDown = (ev) => {
325
+ /**
326
+ * The below operations should be inverted when running on a mobile device.
327
+ * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
328
+ * this should cause the previous option to be selected. On mobile, swiping
329
+ * up causes a view to scroll down. As a result, swiping up on mobile should
330
+ * cause the next option to be selected. The Home/End operations remain
331
+ * unchanged because those always represent the first/last options, respectively.
332
+ */
333
+ const mobile = ionicGlobal.isPlatform('mobile');
334
+ let newOption = null;
335
+ switch (ev.key) {
336
+ case 'ArrowDown':
337
+ newOption = mobile ? this.findPreviousOption() : this.findNextOption();
338
+ break;
339
+ case 'ArrowUp':
340
+ newOption = mobile ? this.findNextOption() : this.findPreviousOption();
341
+ break;
342
+ case 'PageUp':
343
+ newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
344
+ break;
345
+ case 'PageDown':
346
+ newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
347
+ break;
348
+ case 'Home':
349
+ /**
350
+ * There is no guarantee that the first child will be an ion-picker-column-option,
351
+ * so we do not use firstElementChild.
352
+ */
353
+ newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
354
+ break;
355
+ case 'End':
356
+ /**
357
+ * There is no guarantee that the last child will be an ion-picker-column-option,
358
+ * so we do not use lastElementChild.
359
+ */
360
+ newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
361
+ break;
362
+ }
363
+ if (newOption !== null) {
364
+ this.value = newOption.value;
365
+ // This stops any default browser behavior such as scrolling
366
+ ev.preventDefault();
367
+ }
368
+ };
369
+ /**
370
+ * Utility to generate the correct text for aria-valuetext.
371
+ */
372
+ this.getOptionValueText = (el) => {
373
+ var _a;
374
+ return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
375
+ };
376
+ /**
377
+ * Render an element that overlays the column. This element is for assistive
378
+ * tech to allow users to navigate the column up/down. This element should receive
379
+ * focus as it listens for synthesized keyboard events as required by the
380
+ * slider role: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/slider_role
381
+ */
382
+ this.renderAssistiveFocusable = () => {
383
+ const { activeItem } = this;
384
+ const valueText = this.getOptionValueText(activeItem);
385
+ /**
386
+ * When using the picker, the valuetext provides important context that valuenow
387
+ * does not. Additionally, using non-zero valuemin/valuemax values can cause
388
+ * WebKit to incorrectly announce numeric valuetext values (such as a year
389
+ * like "2024") as percentages: https://bugs.webkit.org/show_bug.cgi?id=273126
390
+ */
391
+ return (index.h("div", { ref: (el) => (this.assistiveFocusable = el), class: "assistive-focusable", role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": valueText, "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }));
392
+ };
393
+ this.ariaLabel = null;
252
394
  this.isActive = false;
253
395
  this.disabled = false;
254
396
  this.value = undefined;
255
397
  this.color = 'primary';
256
398
  this.numericInput = false;
257
399
  }
400
+ ariaLabelChanged(newValue) {
401
+ this.ariaLabel = newValue;
402
+ }
258
403
  valueChange() {
259
404
  if (this.isColumnVisible) {
260
405
  /**
@@ -370,6 +515,10 @@ const PickerColumn = class {
370
515
  this.scrollEl.focus();
371
516
  }
372
517
  }
518
+ connectedCallback() {
519
+ var _a;
520
+ this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
521
+ }
373
522
  get activeItem() {
374
523
  const { value } = this;
375
524
  const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
@@ -387,17 +536,18 @@ const PickerColumn = class {
387
536
  render() {
388
537
  const { color, disabled, isActive, numericInput } = this;
389
538
  const mode = ionicGlobal.getIonMode(this);
390
- return (index.h(index.Host, { key: '59648ef23cef1ab6d30955bb95bc23e670ec7256', class: theme.createColorClasses(color, {
539
+ return (index.h(index.Host, { key: '5a6b90bacbfa016d937d1c7ae6c55fd1e19729b5', class: theme.createColorClasses(color, {
391
540
  [mode]: true,
392
541
  ['picker-column-active']: isActive,
393
542
  ['picker-column-numeric-input']: numericInput,
394
543
  ['picker-column-disabled']: disabled,
395
- }) }, index.h("slot", { key: 'fd93192d4945b2c33e0fe93cc90b505f2cec12fc', name: "prefix" }), index.h("div", { key: '99e49c6d58badd2fe5e75f0ebcd4bc00eb50aa58', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
544
+ }) }, this.renderAssistiveFocusable(), index.h("slot", { key: '25785dd94823696945830461404d4127ebfbdb82', name: "prefix" }), index.h("div", { key: '94cb28b3a212574400c84f8e086a1c82654549dc', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
396
545
  this.scrollEl = el;
397
- } }, index.h("div", { key: 'bb44892ef179b25373e45e4b4bc4d1fa617b1ea1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '9ee7aeb8468bbb03f7192d56849dae089b7a0250', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '0baa4bda4bf02a8d06dbf3392b1516ca8ea8d26a', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("slot", { key: 'ff4cad20fd82ab66599473f60d10c18dc1dc76d8' }), index.h("div", { key: '04dcb0390209081e6223b90e45b8f2ef0fdf94bd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '734e3b431a30ce93957e1452516efc86e29ff9c9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '1c68dcf9a029e607bb6bc9c19cd02214914eb6d7', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), index.h("slot", { key: 'd85210cc99c8c1bf83eb1cd51540ebe875d4adeb', name: "suffix" })));
546
+ } }, index.h("div", { key: '19b174ac090d4670323fc2bd8ed8da44bf1ea692', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '8c7ce6384e94acfb6154d5850f4dbabbd542edce', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: 'ea4f5026eff35400698e84f0c88c57ed443d82d0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("slot", { key: '627cb80802653c8e047304d71d1b12865df316b0' }), index.h("div", { key: '468a4fdb3ba93bc5df7e99d68b388f8b52d70945', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: '88d0030269d256b4217e99e26e9a80af81120164', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), index.h("div", { key: 'fb312153e4ad2bdcf1646751d78eeb9afd83e79c', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), index.h("slot", { key: '7fb8379b86f016f70546110e1abf05fb02eb98fb', name: "suffix" })));
398
547
  }
399
548
  get el() { return index.getElement(this); }
400
549
  static get watchers() { return {
550
+ "aria-label": ["ariaLabelChanged"],
401
551
  "value": ["valueChange"]
402
552
  }; }
403
553
  };
@@ -484,7 +484,7 @@ const Picker = class {
484
484
  this.emitInputModeChange();
485
485
  }
486
486
  render() {
487
- return (index.h(index.Host, { key: 'f92214a09dc85b65873676f40fde2b802960e704', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, index.h("input", { key: '6da37f75aca4ea1c9cb3bc733ebda2116279f313', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
487
+ return (index.h(index.Host, { key: '02b0687b1f80ba295a965dfba76dd59e2d1de5d3', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, index.h("input", { key: 'f83ed84bcf9e02539c00d8a4e63e6a0d7fc4ac71', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
488
488
  var _a;
489
489
  /**
490
490
  * The "Enter" key represents
@@ -499,7 +499,7 @@ const Picker = class {
499
499
  if (ev.key === 'Enter') {
500
500
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
501
501
  }
502
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), index.h("div", { key: '298e99d83dd3f5bf2798150bab0bb4024af472fa', class: "picker-before" }), index.h("div", { key: 'ea578f04eb562a4dc6d6cc92de133dcb9fb7f42a', class: "picker-after" }), index.h("div", { key: '84567824956dfe967992a629904836ba8b75b3ec', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), index.h("slot", { key: 'df81f8fb90e1f649b608328034528f5c31c70c3b' })));
502
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), index.h("div", { key: '45b07fb0617d8e006712776bf78302288edb3ff4', class: "picker-before" }), index.h("div", { key: '73009229368e0d62b09c913aacade26f068a7aa9', class: "picker-after" }), index.h("div", { key: 'b73da00e446cd1cfd511c39212e14a00d355752e', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), index.h("slot", { key: 'd969f5efc5ddb9eda6c4828702efd1ceeb69f767' })));
503
503
  }
504
504
  get el() { return index.getElement(this); }
505
505
  };
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-bbc6c29f.js');
9
- const overlays = require('./overlays-10c452b2.js');
9
+ const overlays = require('./overlays-574e681c.js');
10
10
  const frameworkDelegate = require('./framework-delegate-55f5683a.js');
11
11
  const helpers = require('./helpers-afaa9001.js');
12
12
  const lockController = require('./lock-controller-6585a42a.js');
@@ -1067,6 +1067,7 @@ const Popover = class {
1067
1067
  this.arrow = true;
1068
1068
  this.isOpen = false;
1069
1069
  this.keyboardEvents = false;
1070
+ this.focusTrap = true;
1070
1071
  this.keepContentsMounted = false;
1071
1072
  }
1072
1073
  onTriggerChange() {
@@ -1293,12 +1294,12 @@ const Popover = class {
1293
1294
  }
1294
1295
  render() {
1295
1296
  const mode = ionicGlobal.getIonMode(this);
1296
- const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
1297
+ const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
1297
1298
  const desktop = ionicGlobal.isPlatform('desktop');
1298
1299
  const enableArrow = arrow && !parentPopover;
1299
- return (index.h(index.Host, Object.assign({ key: '4bccccf57df72e1196c6a28e803831c0520aef53', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1300
+ return (index.h(index.Host, Object.assign({ key: '17e5e8b3e7ba5e251665fb9d0ade10c781f82f0e', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
1300
1301
  zIndex: `${20000 + this.overlayIndex}`,
1301
- }, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && index.h("ion-backdrop", { key: 'e42f4f61150b7b41093d37d187d1b7bb4187a00e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), index.h("div", { key: '386ac3247b0f82566aae07b6dbf5e97d243ce367', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && index.h("div", { key: '28f0e5ea2fa099b808ffb77a9a0d78b8b46c1513', class: "popover-arrow", part: "arrow" }), index.h("div", { key: '7ba2e3dee529015c4e07ce78ec10dc59985ec6a2', class: "popover-content", part: "content" }, index.h("slot", { key: '915cdc8e389fda210f83aec8b7bbbfa6f830a884' })))));
1302
+ }, class: Object.assign(Object.assign({}, theme.getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [overlays.FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && index.h("ion-backdrop", { key: 'c12fb94b375d7e88a0c5d715440c0f66ad7ee817', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), index.h("div", { key: '478b388cc9a5a382003a2863e968e77a174914ab', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && index.h("div", { key: 'f1c63a0079f197a8d4577e7c00a654871fb9d816', class: "popover-arrow", part: "arrow" }), index.h("div", { key: '08b62a321c09ad4b0f90460468ecbc1d56320bf1', class: "popover-content", part: "content" }, index.h("slot", { key: '55645ff597f64d434219caa28015cf2a4ceb0ee5' })))));
1302
1303
  }
1303
1304
  get el() { return index.getElement(this); }
1304
1305
  static get watchers() { return {
@@ -31,7 +31,7 @@ const ProgressBar = class {
31
31
  const mode = ionicGlobal.getIonMode(this);
32
32
  // If the progress is displayed as a solid bar.
33
33
  const progressSolid = buffer === 1;
34
- return (index.h(index.Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: theme.createColorClasses(color, {
34
+ return (index.h(index.Host, { key: 'b293f4475bcdaa7851b41ebfda659037f0365120', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: theme.createColorClasses(color, {
35
35
  [mode]: true,
36
36
  [`progress-bar-${type}`]: true,
37
37
  'progress-paused': paused,
@@ -112,7 +112,7 @@ const Radio = class {
112
112
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
113
113
  const mode = ionicGlobal.getIonMode(this);
114
114
  const inItem = theme.hostContext('ion-item', el);
115
- return (index.h(index.Host, { key: 'cb00934d052260e97462e97a1669045cbb0b963a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: theme.createColorClasses(color, {
115
+ return (index.h(index.Host, { key: 'e44cade8aa8415bdc825f9d17fc8562487cf5d35', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: theme.createColorClasses(color, {
116
116
  [mode]: true,
117
117
  'in-item': inItem,
118
118
  'radio-checked': checked,
@@ -123,10 +123,10 @@ const Radio = class {
123
123
  // Focus and active styling should not apply when the radio is in an item
124
124
  'ion-activatable': !inItem,
125
125
  'ion-focusable': !inItem,
126
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, index.h("label", { key: '05613f89400469692442bf3c02c27f9299c5d6ef', class: "radio-wrapper" }, index.h("div", { key: '89b5d7668c3856f417c318629086cf46a072efbe', class: {
126
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, index.h("label", { key: '48a99aa80a7d7b4085ef26faf3167903c975517c', class: "radio-wrapper" }, index.h("div", { key: 'a8d74e0603b41215ea3e867356a9be0dcf3722d8', class: {
127
127
  'label-text-wrapper': true,
128
128
  'label-text-wrapper-hidden': !hasLabel,
129
- }, part: "label" }, index.h("slot", { key: 'd5e43a8d0fe5a7fc323887d310fd64d6f87deef7' })), index.h("div", { key: '7fd221189adcfccca1ed18dcd0a60cde6261120b', class: "native-wrapper" }, this.renderRadioControl()))));
129
+ }, part: "label" }, index.h("slot", { key: '9e3cce6254e70b02d50381537438a70435b031cc' })), index.h("div", { key: 'bfa3ee188d911e056a3e60178eac41362efb94b3', class: "native-wrapper" }, this.renderRadioControl()))));
130
130
  }
131
131
  get el() { return index.getElement(this); }
132
132
  static get watchers() { return {
@@ -291,7 +291,7 @@ const RadioGroup = class {
291
291
  const { label, labelId, el, name, value } = this;
292
292
  const mode = ionicGlobal.getIonMode(this);
293
293
  helpers.renderHiddenInput(true, el, name, value, false);
294
- return index.h(index.Host, { key: 'b6b439d6d53d17a5a4d9853a7cf6065b28213338', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
294
+ return index.h(index.Host, { key: '7801c5d6b3916efb15b4e479c6b90a8925e254a4', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
295
295
  }
296
296
  get el() { return index.getElement(this); }
297
297
  static get watchers() { return {
@@ -604,7 +604,7 @@ const Range = class {
604
604
  const needsEndAdjustment = inItem && !hasEndContent;
605
605
  const mode = ionicGlobal.getIonMode(this);
606
606
  helpers.renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
607
- return (index.h(index.Host, { key: 'cd70b5db9eae808a644643d7095a1b5264cbc5fe', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: theme.createColorClasses(this.color, {
607
+ return (index.h(index.Host, { key: '217323e45c3197c0ff9a5e0b12c1f860f9fe5152', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: theme.createColorClasses(this.color, {
608
608
  [mode]: true,
609
609
  'in-item': inItem,
610
610
  'range-disabled': disabled,
@@ -613,10 +613,10 @@ const Range = class {
613
613
  [`range-label-placement-${labelPlacement}`]: true,
614
614
  'range-item-start-adjustment': needsStartAdjustment,
615
615
  'range-item-end-adjustment': needsEndAdjustment,
616
- }) }, index.h("label", { key: '78ef0523f0064d6b268ae17ef72f90094511d897', class: "range-wrapper", id: "range-label" }, index.h("div", { key: '6e4b2051e770dabe80dcb9f412e9aae1859e9f33', class: {
616
+ }) }, index.h("label", { key: '84357e85fc78954b9f598236e802c582dad8f69e', class: "range-wrapper", id: "range-label" }, index.h("div", { key: '85c61c11453e417e27305cddd65d2044b6ffc451', class: {
617
617
  'label-text-wrapper': true,
618
618
  'label-text-wrapper-hidden': !hasLabel,
619
- }, part: "label" }, label !== undefined ? index.h("div", { class: "label-text" }, label) : index.h("slot", { name: "label" })), index.h("div", { key: '72cdb8f6657a3b84f759743cedd600020c954c6a', class: "native-wrapper" }, index.h("slot", { key: 'f7a38d6bd63df5dc8b4470f1f4acaaf3e5c80514', name: "start" }), this.renderRangeSlider(), index.h("slot", { key: 'ae74ac8c1da691e3be1b2f00dfd3c8419b9566ec', name: "end" })))));
619
+ }, part: "label" }, label !== undefined ? index.h("div", { class: "label-text" }, label) : index.h("slot", { name: "label" })), index.h("div", { key: 'f3504d2df23e8b4c7d657f21b8953defddd89e76', class: "native-wrapper" }, index.h("slot", { key: '36e85481fb513462a5e71a3801c3349485e6a1ef', name: "start" }), this.renderRangeSlider(), index.h("slot", { key: 'ed3eae7883e6a55c88b69b678e1de43cee4d1b40', name: "end" })))));
620
620
  }
621
621
  get el() { return index.getElement(this); }
622
622
  static get watchers() { return {
@@ -800,7 +800,7 @@ const Refresher = class {
800
800
  }
801
801
  render() {
802
802
  const mode = ionicGlobal.getIonMode(this);
803
- return (index.h(index.Host, { key: 'e7f4f2f96de7e80430bf54967ebc12e7216b2ca9', slot: "fixed", class: {
803
+ return (index.h(index.Host, { key: '1696f66f62d18c9075294f17cb24263325fcf35d', slot: "fixed", class: {
804
804
  [mode]: true,
805
805
  // Used internally for styling
806
806
  [`refresher-${mode}`]: true,
@@ -867,7 +867,7 @@ const RefresherContent = class {
867
867
  const pullingIcon = this.pullingIcon;
868
868
  const hasSpinner = pullingIcon != null && spinnerConfigs.SPINNERS[pullingIcon] !== undefined;
869
869
  const mode = ionicGlobal.getIonMode(this);
870
- return (index.h(index.Host, { key: '19633bbcf02e3dba885d6bdcdaf2269bf4c8e2f5', class: mode }, index.h("div", { key: '28922e434a55a6cac0476fe2bee56941ce0d1c02', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (index.h("div", { key: 'fe575bf996021884677e9b23a3215d63caf894f5', class: "refresher-pulling-icon" }, index.h("div", { key: '59fe12297fd95bc33b8df8cd35316e2a1c084d91', class: "spinner-arrow-container" }, index.h("ion-spinner", { key: 'af9cc013ae04945c140b2865610ca73edb52ab48', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (index.h("div", { key: '34df66ad1b0f706a0532957251aa2c20bf4587d8', class: "arrow-container" }, index.h("ion-icon", { key: 'ffdb5c123e606b823491c6c51cc2b497f62581bb', icon: index$2.caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (index.h("div", { key: 'ac3a2032bb969264d20fa057e9123441005d7a9d', class: "refresher-pulling-icon" }, index.h("ion-icon", { key: 'd969d10915548e72aae289b52154366f3dd39b31', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), index.h("div", { key: 'a8f854f81a94812d7bef8ce088331d94f49ff53d', class: "refresher-refreshing" }, this.refreshingSpinner && (index.h("div", { key: 'a1f646945370e40c844d62bc0c647443ae9dfbe7', class: "refresher-refreshing-icon" }, index.h("ion-spinner", { key: 'ab3ff4047769b6436e222b46d193c1e8b23e2fce', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
870
+ return (index.h(index.Host, { key: '1bec5b4da221c69d856f3f5ddf40f2e03ebf2a4c', class: mode }, index.h("div", { key: '4fcc526c4f1881e9368d9cd16bd7030919bd3841', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (index.h("div", { key: 'a4e9e2e12c2d7faefc8303ec8c021f999ddf308e', class: "refresher-pulling-icon" }, index.h("div", { key: '5a2d215feb7fb4b64d540d3a65c0f24b415a2433', class: "spinner-arrow-container" }, index.h("ion-spinner", { key: 'abef2621d671ac6ff0abac43a702cbd825b7f127', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (index.h("div", { key: '30087d672c3780672a05874cd93cd099b2855462', class: "arrow-container" }, index.h("ion-icon", { key: '5e30333dee469aec0d8efc8c4e6dabb619c6f363', icon: index$2.caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (index.h("div", { key: '48fe72b5ce8ded633c6ee799cebb520b9c8be528', class: "refresher-pulling-icon" }, index.h("ion-icon", { key: 'd8dfd5d42056b1c0a436c5006affb255407816c0', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), index.h("div", { key: 'c2cbfb94f157c82601ffe7bb815ff82ebc7c0a49', class: "refresher-refreshing" }, this.refreshingSpinner && (index.h("div", { key: '17f3ebe6a31768d5e389f45a2c12f68600185db9', class: "refresher-refreshing-icon" }, index.h("ion-spinner", { key: 'e8e61f8d7189c9939bba184201c9509d1d5b0fad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
871
871
  }
872
872
  get el() { return index.getElement(this); }
873
873
  };
@@ -37,7 +37,7 @@ const Reorder = class {
37
37
  render() {
38
38
  const mode = ionicGlobal.getIonMode(this);
39
39
  const reorderIcon = mode === 'ios' ? index$1.reorderThreeOutline : index$1.reorderTwoSharp;
40
- return (index.h(index.Host, { key: '27266e30bcb7e10c57fb6d546399cfb1f1c93b23', class: mode }, index.h("slot", { key: '8745cb9a31458e884c27eed1fb90d104fe9a79eb' }, index.h("ion-icon", { key: '6c4b9631a2f5610f1e21b2db025b6702d0d593bf', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
40
+ return (index.h(index.Host, { key: '663d74e231e3af56b6298ee2539fdac9c8465839', class: mode }, index.h("slot", { key: 'c7c384ab8c9ca8abdc89cd984a39dfde70e342ca' }, index.h("ion-icon", { key: 'c8b6052db03d4b9e33a90e600c20861c73ee73ce', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
41
41
  }
42
42
  get el() { return index.getElement(this); }
43
43
  };
@@ -283,7 +283,7 @@ const ReorderGroup = class {
283
283
  }
284
284
  render() {
285
285
  const mode = ionicGlobal.getIonMode(this);
286
- return (index.h(index.Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
286
+ return (index.h(index.Host, { key: '491f3e5843cf728ff4589e58bd86b8ce6709b293', class: {
287
287
  [mode]: true,
288
288
  'reorder-enabled': !this.disabled,
289
289
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -68,7 +68,7 @@ const RippleEffect = class {
68
68
  }
69
69
  render() {
70
70
  const mode = ionicGlobal.getIonMode(this);
71
- return (index.h(index.Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
71
+ return (index.h(index.Host, { key: '2302f087ab1c6755355736e4ca77309c5fdcf185', role: "presentation", class: {
72
72
  [mode]: true,
73
73
  unbounded: this.unbounded,
74
74
  } }));
@@ -882,10 +882,10 @@ const RouterLink = class {
882
882
  rel: this.rel,
883
883
  target: this.target,
884
884
  };
885
- return (index.h(index.Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: theme.createColorClasses(this.color, {
885
+ return (index.h(index.Host, { key: 'f876442cab5b14b7e83c6d6ad2c2d878a9c57439', onClick: this.onClick, class: theme.createColorClasses(this.color, {
886
886
  [mode]: true,
887
887
  'ion-activatable': true,
888
- }) }, index.h("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), index.h("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
888
+ }) }, index.h("a", Object.assign({ key: 'c44b78ec1fd10a40c23bfe548860ac2b346646a8' }, attrs), index.h("slot", { key: 'd32180a567613f79f89885135bd0d776ffc1eb8e' }))));
889
889
  }
890
890
  };
891
891
  RouterLink.style = IonRouterLinkStyle0;
@@ -393,8 +393,8 @@ const Searchbar = class {
393
393
  const clearIcon = this.clearIcon || (mode === 'ios' ? index$1.closeCircle : index$1.closeSharp);
394
394
  const searchIcon = this.searchIcon || (mode === 'ios' ? index$1.searchOutline : index$1.searchSharp);
395
395
  const shouldShowCancelButton = this.shouldShowCancelButton();
396
- const cancelButton = this.showCancelButton !== 'never' && (index.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" }, index.h("div", { key: 'e42fe29767fb06a5e4f9060c3f8a47b040528e4f', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
397
- return (index.h(index.Host, { key: 'da667148dc3300f4a8473315d04e6560194f51dc', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
396
+ const cancelButton = this.showCancelButton !== 'never' && (index.h("button", { key: '0309b828f496e449405f4215f6cb10d3ae874f52', "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" }, index.h("div", { key: 'c0563d48fc25cc02ff45f4d708d1bdeb0cf7c7bc', "aria-hidden": "true" }, mode === 'md' ? (index.h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
397
+ return (index.h(index.Host, { key: '0842b78189eb10329d161294048aa26f380056b3', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: theme.createColorClasses(this.color, {
398
398
  [mode]: true,
399
399
  'searchbar-animated': animated,
400
400
  'searchbar-disabled': this.disabled,
@@ -404,14 +404,14 @@ const Searchbar = class {
404
404
  'searchbar-has-focus': this.focused,
405
405
  'searchbar-should-show-clear': this.shouldShowClearButton(),
406
406
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
407
- }) }, index.h("div", { key: 'b1a28467d41dd989e6aee10c7c9fb70a7c1534f1', class: "searchbar-input-container" }, index.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, index.h("ion-icon", { key: 'b6576522762a83a7d9977f312dce433c2aaa2490', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: 'c460a3be7ffed2ddf4b08f64ea4ec6843586a726', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
407
+ }) }, index.h("div", { key: '250fddf0a88c0608f2f797d671ce0d57e4a0983b', class: "searchbar-input-container" }, index.h("input", Object.assign({ key: '8545874203f86312e3a949199ceaeefb9a2cd326', "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, index.h("ion-icon", { key: '3c212122d0c8b1d4e0c38be8e0bd2365232d0f87', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), index.h("button", { key: '4450d17927983da489b051639c14f96f1a96d64a', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
408
408
  /**
409
409
  * This prevents mobile browsers from
410
410
  * blurring the input when the clear
411
411
  * button is activated.
412
412
  */
413
413
  ev.preventDefault();
414
- }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: 'e2e5dcdeca46d2588642e7b9f05d396f6e0332a9', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
414
+ }, onClick: () => this.onClearInput(true) }, index.h("ion-icon", { key: 'f9e9060cbe0caf06763327a01d5f03b0a5d87404', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
415
415
  }
416
416
  get el() { return index.getElement(this); }
417
417
  static get watchers() { return {
@@ -430,14 +430,14 @@ const Segment = class {
430
430
  }
431
431
  render() {
432
432
  const mode = ionicGlobal.getIonMode(this);
433
- return (index.h(index.Host, { key: '22bd7bbecaa9f0c95971565e06ef3fa4ad44a946', role: "tablist", onClick: this.onClick, class: theme.createColorClasses(this.color, {
433
+ return (index.h(index.Host, { key: '1f29e1c1f712a65ddce6c8aa1623fee85cb66ed9', role: "tablist", onClick: this.onClick, class: theme.createColorClasses(this.color, {
434
434
  [mode]: true,
435
435
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
436
436
  'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
437
437
  'segment-activated': this.activated,
438
438
  'segment-disabled': this.disabled,
439
439
  'segment-scrollable': this.scrollable,
440
- }) }, index.h("slot", { key: '6d6fe81026928662137b872206de55117fda30a2' })));
440
+ }) }, index.h("slot", { key: '86f5724565043a3d0983a14cc49c37df9a60c6b0' })));
441
441
  }
442
442
  get el() { return index.getElement(this); }
443
443
  static get watchers() { return {
@@ -525,7 +525,7 @@ const SegmentButton = class {
525
525
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
526
526
  const mode = ionicGlobal.getIonMode(this);
527
527
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
528
- return (index.h(index.Host, { key: '9b54e4841be5d0f4f2ee230a649bfbe01066c7c7', class: {
528
+ return (index.h(index.Host, { key: '70cf5c7a3ae2620222c5250c644faf3cfc3b3e4e', class: {
529
529
  [mode]: true,
530
530
  'in-toolbar': theme.hostContext('ion-toolbar', this.el),
531
531
  'in-toolbar-color': theme.hostContext('ion-toolbar[color]', this.el),
@@ -541,10 +541,10 @@ const SegmentButton = class {
541
541
  'ion-activatable': true,
542
542
  'ion-activatable-instant': true,
543
543
  'ion-focusable': true,
544
- } }, index.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), index.h("span", { key: '0eeb2616f7c5a7a7fc1e2e3bd34ab461de6179f4', class: "button-inner" }, index.h("slot", { key: '5ac8fafa2f23e30f8df63bfe236a9604cfb388ae' })), mode === 'md' && index.h("ion-ripple-effect", { key: '86032e9726e2b6437ffc34f59fcbe564616cc9ca' })), index.h("div", { key: '536b1da58dd2521be290707d6b1726831340cf9f', part: "indicator", class: {
544
+ } }, index.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), index.h("span", { key: '7d8feda840d389941cc693f500b5eba0b39b41da', class: "button-inner" }, index.h("slot", { key: 'd9ae1eec45db253cbf573d29cd545658dd595d87' })), mode === 'md' && index.h("ion-ripple-effect", { key: '49e6a16968709dc9b3fc77bc9fb99acb42fda88c' })), index.h("div", { key: '4e3ea0989ed5205dbb03586e4facb439b05a92de', part: "indicator", class: {
545
545
  'segment-button-indicator': true,
546
546
  'segment-button-indicator-animated': true,
547
- } }, index.h("div", { key: 'b43124415ebd77c87285791522c5afc26a137f96', part: "indicator-background", class: "segment-button-indicator-background" }))));
547
+ } }, index.h("div", { key: '65c72a151080998c1e548c87d4d4ebd5c7dda72f', part: "indicator-background", class: "segment-button-indicator-background" }))));
548
548
  }
549
549
  get el() { return index.getElement(this); }
550
550
  static get watchers() { return {
@@ -9,7 +9,7 @@ const index = require('./index-bbc6c29f.js');
9
9
  const notchController = require('./notch-controller-d69150f5.js');
10
10
  const compareWithUtils = require('./compare-with-utils-df1001d7.js');
11
11
  const helpers = require('./helpers-afaa9001.js');
12
- const overlays = require('./overlays-10c452b2.js');
12
+ const overlays = require('./overlays-574e681c.js');
13
13
  const dir = require('./dir-94c21456.js');
14
14
  const theme = require('./theme-d1c573d2.js');
15
15
  const watchOptions = require('./watch-options-f5f3e158.js');
@@ -586,7 +586,7 @@ const Select = class {
586
586
  * TODO(FW-5592): Remove hasStartEndSlots condition
587
587
  */
588
588
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
589
- return (index.h(index.Host, { key: '5a1b82be3f737a2ce5b87c5cd716f898a902ab10', onClick: this.onClick, class: theme.createColorClasses(this.color, {
589
+ return (index.h(index.Host, { key: '38647216725f05c3ea8e2c7b4125d7035e5bef31', onClick: this.onClick, class: theme.createColorClasses(this.color, {
590
590
  [mode]: true,
591
591
  'in-item': inItem,
592
592
  'in-item-color': theme.hostContext('ion-item.ion-color', el),
@@ -602,7 +602,7 @@ const Select = class {
602
602
  [`select-justify-${justify}`]: justifyEnabled,
603
603
  [`select-shape-${shape}`]: shape !== undefined,
604
604
  [`select-label-placement-${labelPlacement}`]: true,
605
- }) }, index.h("label", { key: '79a6e99e38fa3f72d876f4b8ac0077a9fbf4bd2d', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), index.h("div", { key: 'e18ac0b4a35e2cdde858347a9b116218533cd532', class: "select-wrapper-inner" }, index.h("slot", { key: 'cc194f718ef9363d3496531f0d9259e33b66f4d8', name: "start" }), index.h("div", { key: '833c5544e453c0ac543f5d4898d0f492caac405a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), index.h("slot", { key: 'adaa4064c9ad01ef7a452308680eb09dc3ad60ff', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && index.h("div", { key: 'd47a6ef0a6192c5f098973aa517aad2aa9ae8dfc', class: "select-highlight" }))));
605
+ }) }, index.h("label", { key: '80f465dda111b27548cba11fe734b4916f1da6d7', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), index.h("div", { key: 'b6c22c7f2d42439d89397ffe7182bf0e07225dc1', class: "select-wrapper-inner" }, index.h("slot", { key: '95cf6118d97f974debfe31e17938b6bb9b0bec63', name: "start" }), index.h("div", { key: '647912e4208feaddc581d066007653c910065907', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), index.h("slot", { key: '3bbf5e126327ff21fed8f6ad3acd77d0df900c4a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && index.h("div", { key: 'd790350694c310866c5bd3f8da0edc9f8c17ac0d', class: "select-highlight" }))));
606
606
  }
607
607
  get el() { return index.getElement(this); }
608
608
  static get watchers() { return {
@@ -663,7 +663,7 @@ const SelectOption = class {
663
663
  this.value = undefined;
664
664
  }
665
665
  render() {
666
- return index.h(index.Host, { key: '6fa504ac5597098086050c0f517a03be8b8032c9', role: "option", id: this.inputId, class: ionicGlobal.getIonMode(this) });
666
+ return index.h(index.Host, { key: 'ba5a9c695c53fe0802af11a49f4305a9b8f71773', role: "option", id: this.inputId, class: ionicGlobal.getIonMode(this) });
667
667
  }
668
668
  get el() { return index.getElement(this); }
669
669
  };
@@ -771,7 +771,7 @@ const SelectPopover = class {
771
771
  render() {
772
772
  const { header, message, options, subHeader } = this;
773
773
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
774
- return (index.h(index.Host, { key: '2ed838c17d47198c697164a0a750aafb6ca61a95', class: ionicGlobal.getIonMode(this) }, index.h("ion-list", { key: '24fe7a6e9e45458c201b178ca236645d0f49ea8a' }, header !== undefined && index.h("ion-list-header", { key: 'ebe64853dcd59c14a8f4dc9c2dc9e66d1e9767f6' }, header), hasSubHeaderOrMessage && (index.h("ion-item", { key: 'ed7c6f2d7e1282b3048df0af8f1e3fd3b08297c6' }, index.h("ion-label", { key: 'a81f6c4011a0dce47b80c98a45d80b1368d84a1e', class: "ion-text-wrap" }, subHeader !== undefined && index.h("h3", { key: '4fd72c62da896092d535580917bb8a5ad6609c05' }, subHeader), message !== undefined && index.h("p", { key: '88aead29b35d69743abe4015f96a6fa9f199a0ff' }, message)))), this.renderOptions(options))));
774
+ return (index.h(index.Host, { key: '302553a2eec4d1442751b8af28b7c9bd3487fd5d', class: ionicGlobal.getIonMode(this) }, index.h("ion-list", { key: '39ae8579e6fe3bae2c7504147268ad5c82fd27e6' }, header !== undefined && index.h("ion-list-header", { key: 'e0e6686380d188f46c593e1bb25287dcf08c75c2' }, header), hasSubHeaderOrMessage && (index.h("ion-item", { key: '8a2d8652db269593c0ba7d767277e12c2b06144d' }, index.h("ion-label", { key: 'a30cc0ecf95d5bdd6421ee1683922c1b853e98ea', class: "ion-text-wrap" }, subHeader !== undefined && index.h("h3", { key: 'c298459ca450123808a08d65660825b2c26d00e5' }, subHeader), message !== undefined && index.h("p", { key: 'ed895fbaec020e809021138401341b6fd7675035' }, message)))), this.renderOptions(options))));
775
775
  }
776
776
  get el() { return index.getElement(this); }
777
777
  };
@@ -47,7 +47,7 @@ const Spinner = class {
47
47
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
48
48
  }
49
49
  }
50
- return (index.h(index.Host, { key: '9422c25aadfdf08861e26bb1aa336c94391d10a3', class: theme.createColorClasses(self.color, {
50
+ return (index.h(index.Host, { key: '50cbaed55eeab15292447d106a80b93db4cb40de', class: theme.createColorClasses(self.color, {
51
51
  [mode]: true,
52
52
  [`spinner-${spinnerName}`]: true,
53
53
  'spinner-paused': self.paused || ionicGlobal.config.getBoolean('_testing'),
@@ -125,12 +125,12 @@ const SplitPane = class {
125
125
  }
126
126
  render() {
127
127
  const mode = ionicGlobal.getIonMode(this);
128
- return (index.h(index.Host, { key: 'd04ff97717268184725f25b39bb1416b2b423260', class: {
128
+ return (index.h(index.Host, { key: 'd54c356cd4bff7e55325160882dea8249f47f388', class: {
129
129
  [mode]: true,
130
130
  // Used internally for styling
131
131
  [`split-pane-${mode}`]: true,
132
132
  'split-pane-visible': this.visible,
133
- } }, index.h("slot", { key: '4d355509ab6fcdac415184068ffe1241a5078db3' })));
133
+ } }, index.h("slot", { key: 'af62690d0fd686cfbd29d888c79eda9001f13e2f' })));
134
134
  }
135
135
  get el() { return index.getElement(this); }
136
136
  static get watchers() { return {