voyager-ionic-core 7.7.3 → 7.8.6

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 (610) hide show
  1. package/components/action-sheet.js +3 -3
  2. package/components/alert.js +2 -2
  3. package/components/backdrop.js +1 -1
  4. package/components/button.js +4 -4
  5. package/components/buttons.js +1 -1
  6. package/components/checkbox.js +1 -1
  7. package/components/data.js +23 -38
  8. package/components/hardware-back-button.js +3 -3
  9. package/components/input-shims.js +5 -5
  10. package/components/ion-app.js +4 -4
  11. package/components/ion-avatar.js +1 -1
  12. package/components/ion-back-button.js +2 -2
  13. package/components/ion-badge.js +2 -2
  14. package/components/ion-breadcrumb.js +4 -4
  15. package/components/ion-breadcrumbs.js +2 -2
  16. package/components/ion-card-content.js +1 -1
  17. package/components/ion-card-header.js +2 -2
  18. package/components/ion-card-subtitle.js +2 -2
  19. package/components/ion-card-title.js +2 -2
  20. package/components/ion-card.js +1 -1
  21. package/components/ion-chip.js +2 -2
  22. package/components/ion-col.js +2 -2
  23. package/components/ion-content.js +3 -3
  24. package/components/ion-datetime-button.js +12 -11
  25. package/components/ion-datetime.js +75 -12
  26. package/components/ion-fab-button.js +2 -2
  27. package/components/ion-fab-list.js +2 -2
  28. package/components/ion-fab.js +2 -2
  29. package/components/ion-footer.js +2 -2
  30. package/components/ion-grid.js +2 -2
  31. package/components/ion-header.js +3 -3
  32. package/components/ion-img.js +1 -1
  33. package/components/ion-infinite-scroll-content.js +2 -2
  34. package/components/ion-infinite-scroll.js +1 -1
  35. package/components/ion-input.js +8 -0
  36. package/components/ion-item-divider.js +2 -2
  37. package/components/ion-item-group.js +1 -1
  38. package/components/ion-item-option.js +2 -2
  39. package/components/ion-item-options.js +1 -1
  40. package/components/ion-item-sliding.js +1 -1
  41. package/components/ion-loading.js +2 -2
  42. package/components/ion-menu-button.js +2 -2
  43. package/components/ion-menu-toggle.js +2 -2
  44. package/components/ion-menu.js +3 -3
  45. package/components/ion-modal.js +81 -25
  46. package/components/ion-nav-link.js +1 -1
  47. package/components/ion-nav.js +1 -1
  48. package/components/ion-picker.js +2 -2
  49. package/components/ion-progress-bar.js +1 -1
  50. package/components/ion-range.js +126 -21
  51. package/components/ion-refresher-content.js +1 -1
  52. package/components/ion-refresher.js +1 -1
  53. package/components/ion-reorder-group.js +1 -1
  54. package/components/ion-reorder.js +1 -1
  55. package/components/ion-router-link.js +2 -2
  56. package/components/ion-router-outlet.js +1 -1
  57. package/components/ion-row.js +1 -1
  58. package/components/ion-searchbar.js +35 -6
  59. package/components/ion-segment-button.js +3 -3
  60. package/components/ion-segment.js +2 -2
  61. package/components/ion-select-option.js +1 -1
  62. package/components/ion-skeleton-text.js +2 -2
  63. package/components/ion-split-pane.js +2 -2
  64. package/components/ion-tab-bar.js +2 -2
  65. package/components/ion-tab-button.js +2 -2
  66. package/components/ion-tab.js +2 -2
  67. package/components/ion-tabs.js +1 -1
  68. package/components/ion-text.js +2 -2
  69. package/components/ion-thumbnail.js +1 -1
  70. package/components/ion-title.js +2 -2
  71. package/components/ion-toast.js +2 -2
  72. package/components/ion-toolbar.js +2 -2
  73. package/components/item.js +1 -1
  74. package/components/label.js +1 -1
  75. package/components/list-header.js +2 -2
  76. package/components/list.js +1 -1
  77. package/components/note.js +2 -2
  78. package/components/overlays.js +61 -19
  79. package/components/picker-column-internal.js +8 -4
  80. package/components/picker-column.js +2 -2
  81. package/components/picker-internal.js +2 -2
  82. package/components/popover.js +4 -4
  83. package/components/radio-group.js +1 -1
  84. package/components/ripple-effect.js +1 -1
  85. package/components/select-popover.js +1 -1
  86. package/components/spinner.js +1 -1
  87. package/css/core.css +1 -561
  88. package/css/core.css.map +1 -1
  89. package/css/display.css +1 -131
  90. package/css/display.css.map +1 -1
  91. package/css/flex-utils.css +1 -81
  92. package/css/flex-utils.css.map +1 -1
  93. package/css/float-elements.css +1 -293
  94. package/css/float-elements.css.map +1 -1
  95. package/css/global.bundle.css +1 -457
  96. package/css/global.bundle.css.map +1 -1
  97. package/css/ionic-swiper.css +1 -127
  98. package/css/ionic-swiper.css.map +1 -1
  99. package/css/ionic.bundle.css +1 -1
  100. package/css/ionic.bundle.css.map +1 -1
  101. package/css/normalize.css +1 -150
  102. package/css/normalize.css.map +1 -1
  103. package/css/padding.css +1 -202
  104. package/css/padding.css.map +1 -1
  105. package/css/structure.css +1 -152
  106. package/css/structure.css.map +1 -1
  107. package/css/text-alignment.css +1 -243
  108. package/css/text-alignment.css.map +1 -1
  109. package/css/text-transformation.css +1 -158
  110. package/css/text-transformation.css.map +1 -1
  111. package/css/typography.css +1 -157
  112. package/css/typography.css.map +1 -1
  113. package/css/utils.bundle.css +1 -1100
  114. package/css/utils.bundle.css.map +1 -1
  115. package/dist/cjs/{app-globals-92ad1b3d.js → app-globals-c5eb104c.js} +1 -1
  116. package/dist/cjs/{button-active-2d6520ec.js → button-active-181d142e.js} +1 -1
  117. package/dist/cjs/{data-a5109f09.js → data-4487a815.js} +22 -39
  118. package/dist/cjs/{hardware-back-button-2696acaf.js → hardware-back-button-adba3ac7.js} +5 -5
  119. package/dist/cjs/{index-9bfcb6e8.js → index-1f7c54f8.js} +3 -3
  120. package/dist/cjs/{index-0ffe376d.js → index-22617dd6.js} +51 -7
  121. package/dist/cjs/{index-4c96691f.js → index-5c38afe7.js} +2 -2
  122. package/dist/cjs/index.cjs.js +8 -8
  123. package/dist/cjs/{input-shims-a9a85bb9.js → input-shims-05ac9905.js} +5 -5
  124. package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
  125. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  126. package/dist/cjs/ion-alert.cjs.entry.js +7 -7
  127. package/dist/cjs/ion-app_8.cjs.entry.js +24 -24
  128. package/dist/cjs/ion-avatar_3.cjs.entry.js +6 -6
  129. package/dist/cjs/ion-back-button.cjs.entry.js +4 -4
  130. package/dist/cjs/ion-backdrop.cjs.entry.js +3 -3
  131. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +8 -8
  132. package/dist/cjs/ion-button_2.cjs.entry.js +6 -6
  133. package/dist/cjs/ion-card_5.cjs.entry.js +10 -10
  134. package/dist/cjs/ion-checkbox.cjs.entry.js +3 -3
  135. package/dist/cjs/ion-chip.cjs.entry.js +4 -4
  136. package/dist/cjs/ion-col_3.cjs.entry.js +7 -7
  137. package/dist/cjs/ion-datetime-button.cjs.entry.js +14 -13
  138. package/dist/cjs/ion-datetime_3.cjs.entry.js +80 -20
  139. package/dist/cjs/ion-fab_3.cjs.entry.js +8 -8
  140. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  141. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  142. package/dist/cjs/ion-input.cjs.entry.js +10 -2
  143. package/dist/cjs/ion-item-option_3.cjs.entry.js +6 -6
  144. package/dist/cjs/ion-item_8.cjs.entry.js +14 -14
  145. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  146. package/dist/cjs/ion-menu_3.cjs.entry.js +11 -11
  147. package/dist/cjs/ion-modal.cjs.entry.js +86 -30
  148. package/dist/cjs/ion-nav_2.cjs.entry.js +5 -5
  149. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +10 -6
  150. package/dist/cjs/ion-picker-internal.cjs.entry.js +3 -3
  151. package/dist/cjs/ion-popover.cjs.entry.js +9 -9
  152. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  153. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  154. package/dist/cjs/ion-range.cjs.entry.js +128 -23
  155. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  156. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  157. package/dist/cjs/ion-ripple-effect.cjs.entry.js +3 -3
  158. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  159. package/dist/cjs/ion-searchbar.cjs.entry.js +31 -7
  160. package/dist/cjs/ion-segment_2.cjs.entry.js +7 -7
  161. package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
  162. package/dist/cjs/ion-spinner.cjs.entry.js +3 -3
  163. package/dist/cjs/ion-split-pane.cjs.entry.js +4 -4
  164. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -6
  165. package/dist/cjs/ion-tab_2.cjs.entry.js +4 -4
  166. package/dist/cjs/ion-text.cjs.entry.js +4 -4
  167. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  168. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  169. package/dist/cjs/ion-toggle.cjs.entry.js +2 -2
  170. package/dist/cjs/{ionic-global-59a10130.js → ionic-global-c5503e93.js} +1 -1
  171. package/dist/cjs/ionic.cjs.js +5 -5
  172. package/dist/cjs/{ios.transition-96679580.js → ios.transition-30830fc4.js} +2 -2
  173. package/dist/cjs/loader.cjs.js +4 -4
  174. package/dist/cjs/{md.transition-d6c98822.js → md.transition-7f581866.js} +2 -2
  175. package/dist/cjs/{overlays-db5d96f3.js → overlays-129dfc13.js} +62 -20
  176. package/dist/cjs/{status-tap-7ad5f0fb.js → status-tap-03d82840.js} +1 -1
  177. package/dist/collection/collection-manifest.json +2 -2
  178. package/dist/collection/components/action-sheet/action-sheet.js +3 -3
  179. package/dist/collection/components/alert/alert.js +2 -2
  180. package/dist/collection/components/alert/test/a11y/alert.e2e.js +4 -0
  181. package/dist/collection/components/app/app.js +4 -4
  182. package/dist/collection/components/avatar/avatar.js +1 -1
  183. package/dist/collection/components/back-button/back-button.js +2 -2
  184. package/dist/collection/components/backdrop/backdrop.js +1 -1
  185. package/dist/collection/components/badge/badge.js +2 -2
  186. package/dist/collection/components/breadcrumb/breadcrumb.js +4 -4
  187. package/dist/collection/components/breadcrumbs/breadcrumbs.js +2 -2
  188. package/dist/collection/components/button/button.ios.css +5 -5
  189. package/dist/collection/components/button/button.js +2 -2
  190. package/dist/collection/components/button/button.md.css +4 -5
  191. package/dist/collection/components/buttons/buttons.js +1 -1
  192. package/dist/collection/components/card/card.js +1 -1
  193. package/dist/collection/components/card-content/card-content.js +1 -1
  194. package/dist/collection/components/card-header/card-header.js +2 -2
  195. package/dist/collection/components/card-subtitle/card-subtitle.js +2 -2
  196. package/dist/collection/components/card-title/card-title.js +2 -2
  197. package/dist/collection/components/checkbox/checkbox.js +1 -1
  198. package/dist/collection/components/checkbox/test/checkbox.spec.js +12 -0
  199. package/dist/collection/components/chip/chip.js +2 -2
  200. package/dist/collection/components/col/col.js +2 -2
  201. package/dist/collection/components/content/content.js +3 -3
  202. package/dist/collection/components/datetime/datetime.js +56 -12
  203. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +80 -1
  204. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  205. package/dist/collection/components/datetime/utils/format.js +24 -37
  206. package/dist/collection/components/datetime/utils/validate.js +45 -0
  207. package/dist/collection/components/datetime-button/datetime-button.js +12 -11
  208. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
  209. package/dist/collection/components/fab/fab.js +2 -2
  210. package/dist/collection/components/fab-button/fab-button.js +2 -2
  211. package/dist/collection/components/fab-list/fab-list.js +2 -2
  212. package/dist/collection/components/footer/footer.js +2 -2
  213. package/dist/collection/components/grid/grid.js +2 -2
  214. package/dist/collection/components/header/header.ios.css +5 -2
  215. package/dist/collection/components/header/header.js +2 -2
  216. package/dist/collection/components/header/test/basic/header.e2e.js +77 -0
  217. package/dist/collection/components/img/img.js +1 -1
  218. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  219. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  220. package/dist/collection/components/input/input.js +8 -0
  221. package/dist/collection/components/item/item.js +1 -1
  222. package/dist/collection/components/item/test/buttons/item.e2e.js +20 -4
  223. package/dist/collection/components/item-divider/item-divider.js +2 -2
  224. package/dist/collection/components/item-group/item-group.js +1 -1
  225. package/dist/collection/components/item-option/item-option.js +2 -2
  226. package/dist/collection/components/item-options/item-options.js +1 -1
  227. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  228. package/dist/collection/components/label/label.js +1 -1
  229. package/dist/collection/components/list/list.js +1 -1
  230. package/dist/collection/components/list-header/list-header.js +2 -2
  231. package/dist/collection/components/loading/loading.js +2 -2
  232. package/dist/collection/components/menu/menu.js +3 -3
  233. package/dist/collection/components/menu-button/menu-button.js +2 -2
  234. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  235. package/dist/collection/components/modal/gestures/sheet.js +45 -20
  236. package/dist/collection/components/modal/modal.js +38 -6
  237. package/dist/collection/components/modal/test/modal-attributes.spec.js +32 -0
  238. package/dist/collection/components/nav/nav.js +1 -1
  239. package/dist/collection/components/nav-link/nav-link.js +1 -1
  240. package/dist/collection/components/note/note.js +2 -2
  241. package/dist/collection/components/picker/picker.js +2 -2
  242. package/dist/collection/components/picker-column/picker-column.js +2 -2
  243. package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
  244. package/dist/collection/components/picker-internal/picker-internal.js +2 -2
  245. package/dist/collection/components/popover/popover.ios.css +0 -1
  246. package/dist/collection/components/popover/popover.js +2 -2
  247. package/dist/collection/components/popover/popover.md.css +0 -1
  248. package/dist/collection/components/popover/test/basic/popover.e2e.js +76 -0
  249. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  250. package/dist/collection/components/radio-group/radio-group.js +1 -1
  251. package/dist/collection/components/range/range.js +126 -21
  252. package/dist/collection/components/range/test/range-events.e2e.js +27 -0
  253. package/dist/collection/components/refresher/refresher.js +1 -1
  254. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  255. package/dist/collection/components/reorder/reorder.js +1 -1
  256. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  257. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  258. package/dist/collection/components/router-link/router-link.js +2 -2
  259. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  260. package/dist/collection/components/row/row.js +1 -1
  261. package/dist/collection/components/searchbar/searchbar.js +86 -6
  262. package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
  263. package/dist/collection/components/segment/segment.js +2 -2
  264. package/dist/collection/components/segment-button/segment-button.js +3 -3
  265. package/dist/collection/components/select-option/select-option.js +1 -1
  266. package/dist/collection/components/select-popover/select-popover.js +1 -1
  267. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  268. package/dist/collection/components/spinner/spinner.js +1 -1
  269. package/dist/collection/components/split-pane/split-pane.js +2 -2
  270. package/dist/collection/components/tab/tab.js +2 -2
  271. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  272. package/dist/collection/components/tab-button/tab-button.js +2 -2
  273. package/dist/collection/components/tabs/tabs.js +1 -1
  274. package/dist/collection/components/text/text.js +2 -2
  275. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  276. package/dist/collection/components/title/title.js +2 -2
  277. package/dist/collection/components/toast/toast.js +2 -2
  278. package/dist/collection/components/toggle/toggle.js +1 -1
  279. package/dist/collection/components/toolbar/test/basic/toolbar.e2e.js +133 -5
  280. package/dist/collection/components/toolbar/toolbar.js +2 -2
  281. package/dist/collection/utils/hardware-back-button.js +2 -2
  282. package/dist/collection/utils/input-shims/hacks/scroll-assist.js +5 -5
  283. package/dist/collection/utils/overlays.js +61 -19
  284. package/dist/collection/utils/test/overlays/overlays.spec.js +53 -0
  285. package/dist/docs.json +117 -4
  286. package/dist/esm/{app-globals-5cf6195b.js → app-globals-318eef52.js} +1 -1
  287. package/dist/esm/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
  288. package/dist/esm/{data-0f3ab200.js → data-bb424ba8.js} +23 -38
  289. package/dist/esm/{hardware-back-button-b410a047.js → hardware-back-button-6107a37c.js} +5 -5
  290. package/dist/esm/{index-e1b622e3.js → index-6e05b96e.js} +2 -2
  291. package/dist/esm/{index-4c30cddd.js → index-a1a47f01.js} +51 -7
  292. package/dist/esm/{index-348ed70a.js → index-fae1515c.js} +3 -3
  293. package/dist/esm/index.js +8 -8
  294. package/dist/esm/{input-shims-5329bbe8.js → input-shims-a52daa3a.js} +5 -5
  295. package/dist/esm/ion-accordion_2.entry.js +2 -2
  296. package/dist/esm/ion-action-sheet.entry.js +8 -8
  297. package/dist/esm/ion-alert.entry.js +7 -7
  298. package/dist/esm/ion-app_8.entry.js +24 -24
  299. package/dist/esm/ion-avatar_3.entry.js +6 -6
  300. package/dist/esm/ion-back-button.entry.js +4 -4
  301. package/dist/esm/ion-backdrop.entry.js +3 -3
  302. package/dist/esm/ion-breadcrumb_2.entry.js +8 -8
  303. package/dist/esm/ion-button_2.entry.js +6 -6
  304. package/dist/esm/ion-card_5.entry.js +10 -10
  305. package/dist/esm/ion-checkbox.entry.js +3 -3
  306. package/dist/esm/ion-chip.entry.js +4 -4
  307. package/dist/esm/ion-col_3.entry.js +7 -7
  308. package/dist/esm/ion-datetime-button.entry.js +14 -13
  309. package/dist/esm/ion-datetime_3.entry.js +80 -20
  310. package/dist/esm/ion-fab_3.entry.js +8 -8
  311. package/dist/esm/ion-img.entry.js +3 -3
  312. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  313. package/dist/esm/ion-input.entry.js +10 -2
  314. package/dist/esm/ion-item-option_3.entry.js +6 -6
  315. package/dist/esm/ion-item_8.entry.js +14 -14
  316. package/dist/esm/ion-loading.entry.js +6 -6
  317. package/dist/esm/ion-menu_3.entry.js +11 -11
  318. package/dist/esm/ion-modal.entry.js +86 -30
  319. package/dist/esm/ion-nav_2.entry.js +5 -5
  320. package/dist/esm/ion-picker-column-internal.entry.js +10 -6
  321. package/dist/esm/ion-picker-internal.entry.js +3 -3
  322. package/dist/esm/ion-popover.entry.js +9 -9
  323. package/dist/esm/ion-progress-bar.entry.js +3 -3
  324. package/dist/esm/ion-radio_2.entry.js +3 -3
  325. package/dist/esm/ion-range.entry.js +128 -23
  326. package/dist/esm/ion-refresher_2.entry.js +4 -4
  327. package/dist/esm/ion-reorder_2.entry.js +4 -4
  328. package/dist/esm/ion-ripple-effect.entry.js +3 -3
  329. package/dist/esm/ion-route_4.entry.js +4 -4
  330. package/dist/esm/ion-searchbar.entry.js +32 -8
  331. package/dist/esm/ion-segment_2.entry.js +7 -7
  332. package/dist/esm/ion-select_3.entry.js +6 -6
  333. package/dist/esm/ion-spinner.entry.js +3 -3
  334. package/dist/esm/ion-split-pane.entry.js +4 -4
  335. package/dist/esm/ion-tab-bar_2.entry.js +6 -6
  336. package/dist/esm/ion-tab_2.entry.js +4 -4
  337. package/dist/esm/ion-text.entry.js +4 -4
  338. package/dist/esm/ion-textarea.entry.js +2 -2
  339. package/dist/esm/ion-toast.entry.js +6 -6
  340. package/dist/esm/ion-toggle.entry.js +2 -2
  341. package/dist/esm/{ionic-global-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
  342. package/dist/esm/ionic.js +6 -6
  343. package/dist/esm/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +2 -2
  344. package/dist/esm/loader.js +5 -5
  345. package/dist/esm/{md.transition-b8224313.js → md.transition-0da92976.js} +2 -2
  346. package/dist/esm/{overlays-19b26885.js → overlays-b874c3c3.js} +62 -20
  347. package/dist/esm/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
  348. package/dist/esm-es5/app-globals-318eef52.js +4 -0
  349. package/dist/esm-es5/{button-active-47ac8092.js → button-active-414be235.js} +1 -1
  350. package/dist/esm-es5/data-bb424ba8.js +4 -0
  351. package/dist/esm-es5/framework-delegate-ed4ba327.js +2 -2
  352. package/dist/esm-es5/hardware-back-button-6107a37c.js +4 -0
  353. package/dist/esm-es5/index-6e05b96e.js +4 -0
  354. package/dist/esm-es5/index-a1a47f01.js +5 -0
  355. package/dist/esm-es5/{index-348ed70a.js → index-fae1515c.js} +1 -1
  356. package/dist/esm-es5/index.js +1 -1
  357. package/dist/esm-es5/input-shims-a52daa3a.js +4 -0
  358. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  359. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  360. package/dist/esm-es5/ion-alert.entry.js +1 -1
  361. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  362. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  363. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  364. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  365. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  366. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  367. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  368. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  369. package/dist/esm-es5/ion-chip.entry.js +1 -1
  370. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  371. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  372. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  373. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  374. package/dist/esm-es5/ion-img.entry.js +1 -1
  375. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  376. package/dist/esm-es5/ion-input.entry.js +1 -1
  377. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  378. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  379. package/dist/esm-es5/ion-loading.entry.js +1 -1
  380. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  381. package/dist/esm-es5/ion-modal.entry.js +1 -1
  382. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  383. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  384. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  385. package/dist/esm-es5/ion-popover.entry.js +1 -1
  386. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  387. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  388. package/dist/esm-es5/ion-range.entry.js +1 -1
  389. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  390. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  391. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  392. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  393. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  394. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  395. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  396. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  397. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  398. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  399. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  400. package/dist/esm-es5/ion-text.entry.js +1 -1
  401. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  402. package/dist/esm-es5/ion-toast.entry.js +1 -1
  403. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  404. package/dist/esm-es5/{ionic-global-ad9a1810.js → ionic-global-94f25d1b.js} +1 -1
  405. package/dist/esm-es5/ionic.js +1 -1
  406. package/dist/esm-es5/{ios.transition-7459f819.js → ios.transition-a50a9a55.js} +1 -1
  407. package/dist/esm-es5/loader.js +1 -1
  408. package/dist/esm-es5/md.transition-0da92976.js +4 -0
  409. package/dist/esm-es5/overlays-b874c3c3.js +4 -0
  410. package/dist/esm-es5/{status-tap-b41ece3c.js → status-tap-dfea3607.js} +1 -1
  411. package/dist/html.html-data.json +13 -1
  412. package/dist/ionic/index.esm.js +1 -1
  413. package/dist/ionic/ionic.esm.js +1 -1
  414. package/dist/ionic/ionic.js +1 -1
  415. package/dist/ionic/{p-05253db9.js → p-0047bd0e.js} +1 -1
  416. package/dist/ionic/{p-ebc86ce9.system.entry.js → p-01a1ff55.system.entry.js} +1 -1
  417. package/dist/ionic/{p-2178329b.entry.js → p-01de45e4.entry.js} +1 -1
  418. package/dist/ionic/{p-125f8cdd.system.js → p-0609a7d8.system.js} +1 -1
  419. package/dist/ionic/{p-cfb4d7e0.js → p-08ab4c96.js} +1 -1
  420. package/dist/ionic/{p-76b8bcb8.system.entry.js → p-094cb5ba.system.entry.js} +1 -1
  421. package/dist/ionic/{p-6812d37d.js → p-0aac3a1c.js} +1 -1
  422. package/dist/ionic/{p-de55ec45.js → p-0b743628.js} +1 -1
  423. package/dist/ionic/p-185d82fc.entry.js +4 -0
  424. package/dist/ionic/p-193921ce.entry.js +4 -0
  425. package/dist/ionic/p-1cd372ed.js +4 -0
  426. package/dist/ionic/{p-a6c0a380.js → p-1e151efb.js} +1 -1
  427. package/dist/ionic/{p-7f30ad48.entry.js → p-211d8901.entry.js} +1 -1
  428. package/dist/ionic/p-212f2c37.entry.js +4 -0
  429. package/dist/ionic/p-2433bf5e.system.js +4 -0
  430. package/dist/ionic/p-2732a6ce.entry.js +4 -0
  431. package/dist/ionic/{p-89ca4c4b.system.js → p-280f1fe7.system.js} +1 -1
  432. package/dist/ionic/p-2c1408df.system.js +5 -0
  433. package/dist/ionic/p-2e2808f3.entry.js +4 -0
  434. package/dist/ionic/{p-70fbf4e2.entry.js → p-32086ea4.entry.js} +1 -1
  435. package/dist/ionic/{p-16a61810.entry.js → p-339dee28.entry.js} +1 -1
  436. package/dist/ionic/{p-88e9052d.entry.js → p-34e2b446.entry.js} +1 -1
  437. package/dist/ionic/{p-6e23d039.entry.js → p-374838e4.entry.js} +1 -1
  438. package/dist/ionic/p-3789920e.js +4 -0
  439. package/dist/ionic/{p-bdca4784.js → p-37aab7f7.js} +1 -1
  440. package/dist/ionic/p-3b7d328b.system.entry.js +4 -0
  441. package/dist/ionic/{p-02542247.system.entry.js → p-3b9edd02.system.entry.js} +1 -1
  442. package/dist/ionic/{p-d143fefa.system.entry.js → p-3d23a234.system.entry.js} +1 -1
  443. package/dist/ionic/{p-717e2526.system.entry.js → p-3f75319a.system.entry.js} +2 -2
  444. package/dist/ionic/p-47686f0a.system.entry.js +4 -0
  445. package/dist/ionic/{p-18918a24.system.entry.js → p-47d7ffb4.system.entry.js} +1 -1
  446. package/dist/ionic/{p-7e838f43.system.entry.js → p-48331301.system.entry.js} +1 -1
  447. package/dist/ionic/{p-a3df16b9.system.entry.js → p-491ec3d6.system.entry.js} +1 -1
  448. package/dist/ionic/p-495aabd4.system.entry.js +4 -0
  449. package/dist/ionic/{p-b0aa3806.system.entry.js → p-49616da4.system.entry.js} +1 -1
  450. package/dist/ionic/p-4c68b459.system.entry.js +4 -0
  451. package/dist/ionic/{p-5cb5f63d.system.entry.js → p-4cc54847.system.entry.js} +1 -1
  452. package/dist/ionic/p-4da978ac.entry.js +4 -0
  453. package/dist/ionic/{p-5de920f4.system.entry.js → p-4f9018d4.system.entry.js} +1 -1
  454. package/dist/ionic/{p-baf8eeac.system.entry.js → p-55ae3e14.system.entry.js} +1 -1
  455. package/dist/ionic/{p-9de75bac.system.entry.js → p-56271222.system.entry.js} +1 -1
  456. package/dist/ionic/{p-80aed9fb.system.entry.js → p-565a12d7.system.entry.js} +1 -1
  457. package/dist/ionic/{p-7e16220b.entry.js → p-56b810d5.entry.js} +1 -1
  458. package/dist/ionic/{p-a85d9047.system.entry.js → p-5a0345f7.system.entry.js} +1 -1
  459. package/dist/ionic/{p-f0e54781.system.entry.js → p-5b8d7cdb.system.entry.js} +1 -1
  460. package/dist/ionic/p-5d2011e1.entry.js +4 -0
  461. package/dist/ionic/p-5f3d659f.entry.js +4 -0
  462. package/dist/ionic/p-6236eae6.entry.js +4 -0
  463. package/dist/ionic/{p-4b8a620f.system.entry.js → p-625ef2fb.system.entry.js} +1 -1
  464. package/dist/ionic/{p-6525a8cd.system.js → p-638865d1.system.js} +1 -1
  465. package/dist/ionic/p-662cccde.entry.js +4 -0
  466. package/dist/ionic/p-68416ff0.entry.js +4 -0
  467. package/dist/ionic/{p-91f4e611.system.entry.js → p-686ddecb.system.entry.js} +2 -2
  468. package/dist/ionic/p-6a6550fa.js +4 -0
  469. package/dist/ionic/p-6a6c61b1.system.entry.js +4 -0
  470. package/dist/ionic/p-6afef6c1.system.js +2 -2
  471. package/dist/ionic/{p-abcedc15.system.entry.js → p-6b178502.system.entry.js} +1 -1
  472. package/dist/ionic/{p-2c86025e.system.js → p-6ecddf53.system.js} +1 -1
  473. package/dist/ionic/{p-822730c4.entry.js → p-70929384.entry.js} +1 -1
  474. package/dist/ionic/p-73d70509.system.js +4 -0
  475. package/dist/ionic/{p-c1a871ff.system.entry.js → p-776f7b9e.system.entry.js} +1 -1
  476. package/dist/ionic/p-7872e970.system.entry.js +4 -0
  477. package/dist/ionic/{p-657ccdd6.entry.js → p-804ffec9.entry.js} +1 -1
  478. package/dist/ionic/{p-b27bba38.system.entry.js → p-81c8fa81.system.entry.js} +1 -1
  479. package/dist/ionic/{p-8e651c29.entry.js → p-8294b727.entry.js} +1 -1
  480. package/dist/ionic/p-8528c070.entry.js +4 -0
  481. package/dist/ionic/p-87e81684.system.entry.js +4 -0
  482. package/dist/ionic/p-8954015c.entry.js +4 -0
  483. package/dist/ionic/p-8a1b0abb.system.js +4 -0
  484. package/dist/ionic/{p-2765a571.system.entry.js → p-8a335b91.system.entry.js} +1 -1
  485. package/dist/ionic/{p-479f5926.system.entry.js → p-8eba832c.system.entry.js} +1 -1
  486. package/dist/ionic/{p-b58686e0.entry.js → p-8ed4de58.entry.js} +1 -1
  487. package/dist/ionic/{p-a02ea777.entry.js → p-917bb906.entry.js} +1 -1
  488. package/dist/ionic/{p-ae2b3a7a.system.entry.js → p-93f86b06.system.entry.js} +1 -1
  489. package/dist/ionic/p-9625a2e6.entry.js +4 -0
  490. package/dist/ionic/{p-288649db.system.entry.js → p-9bc8bd0c.system.entry.js} +1 -1
  491. package/dist/ionic/{p-6f59cdbc.system.entry.js → p-9d53b773.system.entry.js} +2 -2
  492. package/dist/ionic/{p-dff97cfa.entry.js → p-9fbfbaef.entry.js} +1 -1
  493. package/dist/ionic/p-a04ecf1a.system.js +4 -0
  494. package/dist/ionic/{p-9998cb62.system.entry.js → p-a3b2d4a7.system.entry.js} +2 -2
  495. package/dist/ionic/{p-973b4db3.entry.js → p-a5cd2e1f.entry.js} +1 -1
  496. package/dist/ionic/p-a5d9fafe.entry.js +4 -0
  497. package/dist/ionic/{p-df504a37.system.js → p-a875459d.system.js} +1 -1
  498. package/dist/ionic/p-ad60590b.entry.js +4 -0
  499. package/dist/ionic/{p-c7288e78.system.entry.js → p-b1bebf4a.system.entry.js} +1 -1
  500. package/dist/ionic/p-b535c93a.entry.js +4 -0
  501. package/dist/ionic/p-b8735394.entry.js +4 -0
  502. package/dist/ionic/p-bb5bbcdf.js +4 -0
  503. package/dist/ionic/p-c379d010.system.entry.js +4 -0
  504. package/dist/ionic/{p-ce1c0a0e.system.entry.js → p-c5ce0862.system.entry.js} +2 -2
  505. package/dist/ionic/p-c76ef1ea.entry.js +4 -0
  506. package/dist/ionic/p-c8580577.system.js +4 -0
  507. package/dist/ionic/{p-2c4bfe1c.entry.js → p-cc0cf2d1.entry.js} +1 -1
  508. package/dist/ionic/{p-15a40a0b.system.entry.js → p-d3a95477.system.entry.js} +1 -1
  509. package/dist/ionic/{p-ceceac26.js → p-d68ecea4.js} +1 -1
  510. package/dist/ionic/p-d873a8c2.system.entry.js +4 -0
  511. package/dist/ionic/{p-079da3df.entry.js → p-dbd77435.entry.js} +1 -1
  512. package/dist/ionic/p-dc2d302c.entry.js +4 -0
  513. package/dist/ionic/{p-7670acd8.entry.js → p-dd2996cf.entry.js} +1 -1
  514. package/dist/ionic/{p-4788693d.entry.js → p-dec423a3.entry.js} +1 -1
  515. package/dist/ionic/{p-2ea71956.system.entry.js → p-deeae694.system.entry.js} +1 -1
  516. package/dist/ionic/p-e06d65b3.system.entry.js +4 -0
  517. package/dist/ionic/{p-cbcffe6e.system.js → p-e0948431.system.js} +1 -1
  518. package/dist/ionic/{p-86813176.system.entry.js → p-e15cfec4.system.entry.js} +1 -1
  519. package/dist/ionic/p-e1bd8d9c.system.entry.js +4 -0
  520. package/dist/ionic/{p-1636923f.system.js → p-e34eefb5.system.js} +1 -1
  521. package/dist/ionic/{p-b6279412.entry.js → p-e57a212a.entry.js} +1 -1
  522. package/dist/ionic/{p-437f4d02.system.entry.js → p-e6ee6ead.system.entry.js} +1 -1
  523. package/dist/ionic/p-e7055fb8.entry.js +4 -0
  524. package/dist/ionic/p-ea723fc4.entry.js +4 -0
  525. package/dist/ionic/p-ead0d463.js +5 -0
  526. package/dist/ionic/p-ed3ad350.entry.js +4 -0
  527. package/dist/ionic/{p-5d7e32ce.js → p-efef9f3a.js} +1 -1
  528. package/dist/ionic/p-f4ccaa64.entry.js +4 -0
  529. package/dist/ionic/{p-bcd9cad8.system.js → p-f4fb429a.system.js} +1 -1
  530. package/dist/ionic/p-f549716b.system.js +4 -0
  531. package/dist/ionic/p-f6a50d5c.entry.js +4 -0
  532. package/dist/ionic/p-fc053a55.entry.js +4 -0
  533. package/dist/ionic/{p-1f19958f.system.entry.js → p-fd059a23.system.entry.js} +1 -1
  534. package/dist/ionic/{p-e4e74b5f.system.entry.js → p-fdcf1482.system.entry.js} +1 -1
  535. package/dist/ionic/{p-3079950e.entry.js → p-fe3ae39d.entry.js} +1 -1
  536. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  537. package/dist/types/components/datetime/datetime.d.ts +10 -1
  538. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  539. package/dist/types/components/datetime/utils/manipulation.d.ts +7 -7
  540. package/dist/types/components/datetime/utils/state.d.ts +2 -2
  541. package/dist/types/components/datetime/utils/validate.d.ts +8 -0
  542. package/dist/types/components/input/input.utils.d.ts +1 -1
  543. package/dist/types/components/range/range.d.ts +29 -0
  544. package/dist/types/components/searchbar/searchbar.d.ts +37 -0
  545. package/dist/types/components/toggle/toggle.d.ts +1 -1
  546. package/dist/types/components.d.ts +36 -4
  547. package/dist/types/utils/framework-delegate.d.ts +1 -1
  548. package/dist/types/utils/hardware-back-button.d.ts +1 -1
  549. package/dist/types/utils/keyboard/keyboard-controller.d.ts +1 -1
  550. package/dist/types/utils/overlays.d.ts +2 -2
  551. package/hydrate/index.js +667 -316
  552. package/package.json +9 -5
  553. package/dist/collection/components/modal/test/a11y/modal.spec.js +0 -22
  554. package/dist/esm-es5/app-globals-5cf6195b.js +0 -4
  555. package/dist/esm-es5/data-0f3ab200.js +0 -4
  556. package/dist/esm-es5/hardware-back-button-b410a047.js +0 -4
  557. package/dist/esm-es5/index-4c30cddd.js +0 -5
  558. package/dist/esm-es5/index-e1b622e3.js +0 -4
  559. package/dist/esm-es5/input-shims-5329bbe8.js +0 -4
  560. package/dist/esm-es5/md.transition-b8224313.js +0 -4
  561. package/dist/esm-es5/overlays-19b26885.js +0 -4
  562. package/dist/ionic/p-021f9d72.entry.js +0 -4
  563. package/dist/ionic/p-02ad4bbe.js +0 -4
  564. package/dist/ionic/p-0b34d3a7.system.js +0 -4
  565. package/dist/ionic/p-12527c4b.entry.js +0 -4
  566. package/dist/ionic/p-1846513c.js +0 -4
  567. package/dist/ionic/p-1a680496.entry.js +0 -4
  568. package/dist/ionic/p-1f16d040.entry.js +0 -4
  569. package/dist/ionic/p-257046d2.system.js +0 -4
  570. package/dist/ionic/p-262024fd.entry.js +0 -4
  571. package/dist/ionic/p-2fd3c3dd.entry.js +0 -4
  572. package/dist/ionic/p-337ac0f5.entry.js +0 -4
  573. package/dist/ionic/p-36be3332.js +0 -4
  574. package/dist/ionic/p-482ea916.system.entry.js +0 -4
  575. package/dist/ionic/p-49f481cc.system.entry.js +0 -4
  576. package/dist/ionic/p-521b3971.entry.js +0 -4
  577. package/dist/ionic/p-644d03d7.system.entry.js +0 -4
  578. package/dist/ionic/p-6b6ca3f5.system.entry.js +0 -4
  579. package/dist/ionic/p-72fa96bf.system.js +0 -5
  580. package/dist/ionic/p-7330c044.system.js +0 -4
  581. package/dist/ionic/p-741a0f0d.system.entry.js +0 -4
  582. package/dist/ionic/p-7a615a5a.entry.js +0 -4
  583. package/dist/ionic/p-84b85535.entry.js +0 -4
  584. package/dist/ionic/p-85f66c3c.entry.js +0 -4
  585. package/dist/ionic/p-860e2539.system.entry.js +0 -4
  586. package/dist/ionic/p-8cc34120.entry.js +0 -4
  587. package/dist/ionic/p-9056778e.system.entry.js +0 -4
  588. package/dist/ionic/p-96084f36.entry.js +0 -4
  589. package/dist/ionic/p-97ca0cb9.system.js +0 -4
  590. package/dist/ionic/p-98aa0553.entry.js +0 -4
  591. package/dist/ionic/p-a1222c24.entry.js +0 -4
  592. package/dist/ionic/p-a4aa6dd2.system.entry.js +0 -4
  593. package/dist/ionic/p-a8459bfb.entry.js +0 -4
  594. package/dist/ionic/p-ae828bd9.system.entry.js +0 -4
  595. package/dist/ionic/p-b4d2f43c.system.js +0 -4
  596. package/dist/ionic/p-b727af6a.entry.js +0 -4
  597. package/dist/ionic/p-ba0fbecc.entry.js +0 -4
  598. package/dist/ionic/p-c1c7309e.entry.js +0 -4
  599. package/dist/ionic/p-cb3065b8.entry.js +0 -4
  600. package/dist/ionic/p-cb9812f7.entry.js +0 -4
  601. package/dist/ionic/p-d425b1de.entry.js +0 -4
  602. package/dist/ionic/p-d6c6541b.system.entry.js +0 -4
  603. package/dist/ionic/p-e1c52dc6.entry.js +0 -4
  604. package/dist/ionic/p-e626800f.system.entry.js +0 -4
  605. package/dist/ionic/p-e94c1402.entry.js +0 -4
  606. package/dist/ionic/p-ed4760ef.entry.js +0 -4
  607. package/dist/ionic/p-ed7a529f.js +0 -5
  608. package/dist/ionic/p-f02c41af.system.js +0 -4
  609. package/dist/ionic/p-f7dce541.js +0 -4
  610. package/dist/ionic/p-fa8d3b01.entry.js +0 -4
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';
5
- import { n as debounceEvent, c as componentOnReady, r as raf } from './helpers.js';
5
+ import { n as debounceEvent, d as inheritAttributes, c as componentOnReady, r as raf } from './helpers.js';
6
6
  import { i as isRTL } from './dir.js';
7
7
  import { c as createColorClasses } from './theme.js';
8
8
  import { b as arrowBackSharp, j as closeCircle, k as closeSharp, s as searchOutline, q as searchSharp } from './index7.js';
@@ -29,6 +29,7 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
29
29
  this.isCancelVisible = false;
30
30
  this.shouldAlignLeft = true;
31
31
  this.inputId = `ion-searchbar-${searchbarIds++}`;
32
+ this.inheritedAttributes = {};
32
33
  /**
33
34
  * Clears the input field and triggers the control change.
34
35
  */
@@ -129,6 +130,7 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
129
130
  this.noAnimate = true;
130
131
  this.color = undefined;
131
132
  this.animated = false;
133
+ this.autocapitalize = 'default';
132
134
  this.autocomplete = 'off';
133
135
  this.autocorrect = 'off';
134
136
  this.cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);
@@ -138,6 +140,8 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
138
140
  this.disabled = false;
139
141
  this.inputmode = undefined;
140
142
  this.enterkeyhint = undefined;
143
+ this.maxlength = undefined;
144
+ this.minlength = undefined;
141
145
  this.name = this.inputId;
142
146
  this.placeholder = 'Search';
143
147
  this.searchIcon = undefined;
@@ -147,6 +151,21 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
147
151
  this.type = 'search';
148
152
  this.value = '';
149
153
  }
154
+ /**
155
+ * lang and dir are globally enumerated attributes.
156
+ * As a result, creating these as properties
157
+ * can have unintended side effects. Instead, we
158
+ * listen for attribute changes and inherit them
159
+ * to the inner `<input>` element.
160
+ */
161
+ onLangChanged(newValue) {
162
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { lang: newValue });
163
+ forceUpdate(this);
164
+ }
165
+ onDirChanged(newValue) {
166
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { dir: newValue });
167
+ forceUpdate(this);
168
+ }
150
169
  debounceChanged() {
151
170
  const { ionInput, debounce, originalIonInput } = this;
152
171
  /**
@@ -171,6 +190,9 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
171
190
  connectedCallback() {
172
191
  this.emitStyle();
173
192
  }
193
+ componentWillLoad() {
194
+ this.inheritedAttributes = Object.assign({}, inheritAttributes(this.el, ['lang', 'dir']));
195
+ }
174
196
  componentDidLoad() {
175
197
  this.originalIonInput = this.ionInput;
176
198
  this.positionElements();
@@ -363,14 +385,14 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
363
385
  return true;
364
386
  }
365
387
  render() {
366
- const { cancelButtonText } = this;
388
+ const { cancelButtonText, autocapitalize } = this;
367
389
  const animated = this.animated && config.getBoolean('animated', true);
368
390
  const mode = getIonMode(this);
369
391
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
370
392
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
371
393
  const shouldShowCancelButton = this.shouldShowCancelButton();
372
- const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '1de9b9bc6bad708bafcf4d31fa82838355120486', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: 'e5178016e17104a80732edbae73c0dfc264bfe52', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
373
- return (h(Host, { key: '2c88a7b6ec7f33ada7dae560881210d7a8800f76', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
394
+ const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '9c7b4d2e86d9bcd12e57c9a96723d3da598a3773', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '1c25268a776134cccd29eb752898cb8ac0eed30f', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
395
+ return (h(Host, { key: 'feef9fc7e405656e134a76dc037aaaa1a4ce36b4', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
374
396
  [mode]: true,
375
397
  'searchbar-animated': animated,
376
398
  'searchbar-disabled': this.disabled,
@@ -380,17 +402,19 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
380
402
  'searchbar-has-focus': this.focused,
381
403
  'searchbar-should-show-clear': this.shouldShowClearButton(),
382
404
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
383
- }) }, h("div", { key: '8e914264a99453748a2bf370943e4047a0a587fb', class: "searchbar-input-container" }, h("input", { key: 'd772f3e8d42301e50fbd6c9deb332fbdf3c435ac', "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, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }), mode === 'md' && cancelButton, h("ion-icon", { key: '8d9b461c2c34729b1bb562c227868cf817a353bc', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: 'bcc39be721f4b825af31aae4dfb3058722d889a8', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
405
+ }) }, h("div", { key: '92e3925dc0de468e5665705902153837105dfa57', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'fb74faf81b347a62338ccdac981525df1c52b322', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: 'd58c3636dac1d2e4135989f4c07dc95c51492e60', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '1cece7c63ca5ca4b8799e15ee6d2bac100ef0d5e', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
384
406
  /**
385
407
  * This prevents mobile browsers from
386
408
  * blurring the input when the clear
387
409
  * button is activated.
388
410
  */
389
411
  ev.preventDefault();
390
- }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '9a6478e1f1482aa6e62c88bd96cd19cacbfb8d60', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
412
+ }, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'fe3c2b9cac29002f69e95a89b554c7504e2df050', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
391
413
  }
392
414
  get el() { return this; }
393
415
  static get watchers() { return {
416
+ "lang": ["onLangChanged"],
417
+ "dir": ["onDirChanged"],
394
418
  "debounce": ["debounceChanged"],
395
419
  "value": ["valueChanged"],
396
420
  "showCancelButton": ["showCancelButtonChanged"]
@@ -402,6 +426,7 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
402
426
  }, [34, "ion-searchbar", {
403
427
  "color": [513],
404
428
  "animated": [4],
429
+ "autocapitalize": [1],
405
430
  "autocomplete": [1],
406
431
  "autocorrect": [1],
407
432
  "cancelButtonIcon": [1, "cancel-button-icon"],
@@ -411,6 +436,8 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
411
436
  "disabled": [4],
412
437
  "inputmode": [1],
413
438
  "enterkeyhint": [1],
439
+ "maxlength": [2],
440
+ "minlength": [2],
414
441
  "name": [1],
415
442
  "placeholder": [1],
416
443
  "searchIcon": [1, "search-icon"],
@@ -424,6 +451,8 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
424
451
  "setFocus": [64],
425
452
  "getInputElement": [64]
426
453
  }, undefined, {
454
+ "lang": ["onLangChanged"],
455
+ "dir": ["onDirChanged"],
427
456
  "debounce": ["debounceChanged"],
428
457
  "value": ["valueChanged"],
429
458
  "showCancelButton": ["showCancelButtonChanged"]
@@ -82,7 +82,7 @@ const SegmentButton = /*@__PURE__*/ proxyCustomElement(class SegmentButton exten
82
82
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
83
83
  const mode = getIonMode(this);
84
84
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
85
- return (h(Host, { key: 'b50b375ed817b47720b743078202f38c737a4034', class: {
85
+ return (h(Host, { key: 'daed55711fdb550747d2ad5fb6e012bff6f6b176', class: {
86
86
  [mode]: true,
87
87
  'in-toolbar': hostContext('ion-toolbar', this.el),
88
88
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -98,10 +98,10 @@ const SegmentButton = /*@__PURE__*/ proxyCustomElement(class SegmentButton exten
98
98
  'ion-activatable': true,
99
99
  'ion-activatable-instant': true,
100
100
  'ion-focusable': true,
101
- } }, h("button", Object.assign({ key: '402f6467ec9ce97aa1df2c72382d07242b51c114', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '4f5a1988296c4e59e64255feff264bbbe2ccc312', class: "button-inner" }, h("slot", { key: '35b2a26cca8c76a111e447fa8cae464c504fcb97' })), mode === 'md' && h("ion-ripple-effect", null)), h("div", { key: 'adca0f1e0efcf18b575013d4fb2f22814c81c147', part: "indicator", class: {
101
+ } }, h("button", Object.assign({ key: '851a4b8ff7e45f5fc559c4d8e9c3102441dbd10e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: 'b2dc87747e81ce49dfa1269355027d9380226a6a', class: "button-inner" }, h("slot", { key: '00e21fdcafb533605518beebb9557c724fc88e76' })), mode === 'md' && h("ion-ripple-effect", { key: '358c90ab1b43aae3bc6eb1e58fb38d4892894a68' })), h("div", { key: '20fd3f7c43dd117541314e852d894af855050707', part: "indicator", class: {
102
102
  'segment-button-indicator': true,
103
103
  'segment-button-indicator-animated': true,
104
- } }, h("div", { key: '8a23ffe49dc115ee0603e298bb6a39834b910b67', part: "indicator-background", class: "segment-button-indicator-background" }))));
104
+ } }, h("div", { key: 'bebdeb84466c404d52ce48feda1ece5fb1f202b0', part: "indicator-background", class: "segment-button-indicator-background" }))));
105
105
  }
106
106
  get el() { return this; }
107
107
  static get watchers() { return {
@@ -428,14 +428,14 @@ const Segment = /*@__PURE__*/ proxyCustomElement(class Segment extends HTMLEleme
428
428
  }
429
429
  render() {
430
430
  const mode = getIonMode(this);
431
- return (h(Host, { key: '971e62fdaef3b6380aa1bf214605a5bfde662abf', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
431
+ return (h(Host, { key: '01c94f9fcc51fb5a7612588c87155a130b7c8a9d', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
432
432
  [mode]: true,
433
433
  'in-toolbar': hostContext('ion-toolbar', this.el),
434
434
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
435
435
  'segment-activated': this.activated,
436
436
  'segment-disabled': this.disabled,
437
437
  'segment-scrollable': this.scrollable,
438
- }) }, h("slot", { key: 'eaa7a8a3d5237c8bbc03f57690fd0aa7e4c124e3' })));
438
+ }) }, h("slot", { key: 'b0afdfcb7506a765df42d1d6eb4e1d81bf8fd92a' })));
439
439
  }
440
440
  get el() { return this; }
441
441
  static get watchers() { return {
@@ -17,7 +17,7 @@ const SelectOption = /*@__PURE__*/ proxyCustomElement(class SelectOption extends
17
17
  this.value = undefined;
18
18
  }
19
19
  render() {
20
- return h(Host, { key: 'fe62f2d62ede6866e20969a2e7ae25453648fcef', role: "option", id: this.inputId, class: getIonMode(this) });
20
+ return h(Host, { key: 'abf6e85d60e815f59077910abec922826bf46eb2', role: "option", id: this.inputId, class: getIonMode(this) });
21
21
  }
22
22
  get el() { return this; }
23
23
  static get style() { return IonSelectOptionStyle0; }
@@ -32,11 +32,11 @@ const SkeletonText = /*@__PURE__*/ proxyCustomElement(class SkeletonText extends
32
32
  const animated = this.animated && config.getBoolean('animated', true);
33
33
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
34
34
  const mode = getIonMode(this);
35
- return (h(Host, { key: 'ee3cd9a5448fb69c8ddfc88a993f9968e1a381ff', class: {
35
+ return (h(Host, { key: '4dab0fd2de666de12ad8f6dc6ed1e1de0be67ddd', class: {
36
36
  [mode]: true,
37
37
  'skeleton-text-animated': animated,
38
38
  'in-media': inMedia,
39
- } }, h("span", { key: '8aa792724a3b77877062e9aae838d9e1572b576f' }, "\u00A0")));
39
+ } }, h("span", { key: 'f8f908ec24d65e63b14d9a54640a5f18f0fa8fa5' }, "\u00A0")));
40
40
  }
41
41
  get el() { return this; }
42
42
  static get style() { return IonSkeletonTextStyle0; }
@@ -119,12 +119,12 @@ const SplitPane = /*@__PURE__*/ proxyCustomElement(class SplitPane extends HTMLE
119
119
  }
120
120
  render() {
121
121
  const mode = getIonMode(this);
122
- return (h(Host, { key: '3efe241375d23ae12c47927aa1fc1f3f4b4e5807', class: {
122
+ return (h(Host, { key: '57ee198506248916e74d8d082ad547a471e6cc73', class: {
123
123
  [mode]: true,
124
124
  // Used internally for styling
125
125
  [`split-pane-${mode}`]: true,
126
126
  'split-pane-visible': this.visible,
127
- } }, h("slot", { key: 'd5c94319658e2291dcc356e6ed7a9abc1a48a8b9' })));
127
+ } }, h("slot", { key: '2cd89fa50cfe8a7a6bdda981bb89d5a24a8eec88' })));
128
128
  }
129
129
  get el() { return this; }
130
130
  static get watchers() { return {
@@ -60,11 +60,11 @@ const TabBar = /*@__PURE__*/ proxyCustomElement(class TabBar extends HTMLElement
60
60
  const { color, translucent, keyboardVisible } = this;
61
61
  const mode = getIonMode(this);
62
62
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
63
- return (h(Host, { key: 'e2b4b50270f171ed251359df6c65c5e7e4d526a4', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
63
+ return (h(Host, { key: '5083528e7f802d2f323ce50585edc98eeb9754c6', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses(color, {
64
64
  [mode]: true,
65
65
  'tab-bar-translucent': translucent,
66
66
  'tab-bar-hidden': shouldHide,
67
- }) }, h("slot", { key: '37495b2eddd01a758ceaeb36426abc9bd20bcca3' })));
67
+ }) }, h("slot", { key: 'eb33cdd12da49062219d4aa17a319c3e6361c5c5' })));
68
68
  }
69
69
  get el() { return this; }
70
70
  static get watchers() { return {
@@ -76,7 +76,7 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
76
76
  rel,
77
77
  target,
78
78
  };
79
- return (h(Host, { key: '9926f9392e7910ff3159397e4f907e0d7d2cf5a0', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
79
+ return (h(Host, { key: 'c7b6a72766b71f34800137dadcf29af657bebddf', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
80
80
  [mode]: true,
81
81
  'tab-selected': selected,
82
82
  'tab-disabled': disabled,
@@ -88,7 +88,7 @@ const TabButton = /*@__PURE__*/ proxyCustomElement(class TabButton extends HTMLE
88
88
  'ion-activatable': true,
89
89
  'ion-selectable': true,
90
90
  'ion-focusable': true,
91
- } }, h("a", Object.assign({ key: '4b3ace749583a5502e94462f9a70c5158fe0194a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: 'a2a30c02fbd5052da12586a5ab00a45f3bf53b88', class: "button-inner" }, h("slot", { key: '3fb22ffbb09000d99537b531220c029330ae6940' })), mode === 'md' && h("ion-ripple-effect", { type: "unbounded" }))));
91
+ } }, h("a", Object.assign({ key: 'a1eca4a5cf0dfdb55099811d03f204f7b3807a2e' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), h("span", { key: '888a6d8b95c2f0ca8f74f492729bd28f0d3273d5', class: "button-inner" }, h("slot", { key: '83a234af52ffce9ff0f4cc497712c962115a5813' })), mode === 'md' && h("ion-ripple-effect", { key: '771aff1b83233411e0cf706c3e94c78bca534794', type: "unbounded" }))));
92
92
  }
93
93
  get el() { return this; }
94
94
  static get style() { return {
@@ -55,10 +55,10 @@ const Tab = /*@__PURE__*/ proxyCustomElement(class Tab extends HTMLElement {
55
55
  }
56
56
  render() {
57
57
  const { tab, active, component } = this;
58
- return (h(Host, { key: '0f4b90f0b1027e89bd447ace17af31c8e155a827', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
58
+ return (h(Host, { key: '4fe50fa809503794be2ef91383e49b72cad6fa82', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
59
59
  'ion-page': component === undefined,
60
60
  'tab-hidden': !active,
61
- } }, h("slot", { key: 'ec3eaacf8b7085510e89273aa8373805ee98a381' })));
61
+ } }, h("slot", { key: '937777a826936d6b399329a926a704008339803e' })));
62
62
  }
63
63
  get el() { return this; }
64
64
  static get watchers() { return {
@@ -140,7 +140,7 @@ const Tabs = /*@__PURE__*/ proxyCustomElement(class Tabs extends HTMLElement {
140
140
  return Array.from(this.el.querySelectorAll('ion-tab'));
141
141
  }
142
142
  render() {
143
- return (h(Host, { key: '9044f05f4716fd9c158864175290dfb044e63539', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '178492f52f15a042e47531007a3564a935847818', name: "top" }), h("div", { key: 'b3affaaeb7752194acde36d9de74dbe2b3280cd1', class: "tabs-inner" }, h("slot", { key: '98f0f4e2903f1a6cec041e06b75073c57960a912' })), h("slot", { key: '0899482561bdaf35e97e5a40860c40978daca03a', name: "bottom" })));
143
+ return (h(Host, { key: '5102fdd8ae80408811312631f0739c356d913840', onIonTabButtonClick: this.onTabClicked }, h("slot", { key: '55f781cd010dcebf9675f2a0b4eab9f4271b780e', name: "top" }), h("div", { key: '2da0ee7b8c82e4bfa42f8bc5873e23e50a88c405', class: "tabs-inner" }, h("slot", { key: '6335a62a10398c008c91f87f15b4a940a95e175d' })), h("slot", { key: '9b6f08a21c703cc7fdebd48eb746d0fde6a8454d', name: "bottom" })));
144
144
  }
145
145
  get el() { return this; }
146
146
  static get style() { return IonTabsStyle0; }
@@ -17,9 +17,9 @@ const Text = /*@__PURE__*/ proxyCustomElement(class Text extends HTMLElement {
17
17
  }
18
18
  render() {
19
19
  const mode = getIonMode(this);
20
- return (h(Host, { key: '8922ebdd7486c9cb9f9b547a49e5be2261df4ba1', class: createColorClasses(this.color, {
20
+ return (h(Host, { key: '4330b56cbc4e15953d9b3162fb40af728a8195dd', class: createColorClasses(this.color, {
21
21
  [mode]: true,
22
- }) }, h("slot", { key: '164cbd0f81a00adfac04f544524e905f721c121c' })));
22
+ }) }, h("slot", { key: 'ec674a71d8fbb04d537fd79d617d9db4a607c340' })));
23
23
  }
24
24
  static get style() { return IonTextStyle0; }
25
25
  }, [1, "ion-text", {
@@ -14,7 +14,7 @@ const Thumbnail = /*@__PURE__*/ proxyCustomElement(class Thumbnail extends HTMLE
14
14
  this.__attachShadow();
15
15
  }
16
16
  render() {
17
- return (h(Host, { key: '2b3d5139161f4b9075dce537c14b4087986b37c4', class: getIonMode(this) }, h("slot", { key: '3c4838c43e1230f9413a3cb66584417fd11382b2' })));
17
+ return (h(Host, { key: 'd2667635930e4c0896805f452357e7dc9086bc72', class: getIonMode(this) }, h("slot", { key: '66eb1487f3da4da2ef71b812a8d0f0fe884c7d81' })));
18
18
  }
19
19
  static get style() { return IonThumbnailStyle0; }
20
20
  }, [1, "ion-thumbnail"]);
@@ -38,11 +38,11 @@ const ToolbarTitle = /*@__PURE__*/ proxyCustomElement(class ToolbarTitle extends
38
38
  render() {
39
39
  const mode = getIonMode(this);
40
40
  const size = this.getSize();
41
- return (h(Host, { key: 'b68a272a33ec81d282629a569676f64d3215a0c7', class: createColorClasses(this.color, {
41
+ return (h(Host, { key: '6f43362b782ef7d340c241bb66f1469663c03cc1', class: createColorClasses(this.color, {
42
42
  [mode]: true,
43
43
  [`title-${size}`]: true,
44
44
  'title-rtl': document.dir === 'rtl',
45
- }) }, h("div", { key: '9069816a14e6e358695c5bd465787cf297c761bc', class: "toolbar-title" }, h("slot", { key: '8894bd04f2292b54050ee864abb5396deadf9874' }))));
45
+ }) }, h("div", { key: '9c3ff1a289e533ee3426b71ab5560fbea3529502', class: "toolbar-title" }, h("slot", { key: '50d5cc5a1519ad58f1994d2f8c8f08f62baac1fe' }))));
46
46
  }
47
47
  get el() { return this; }
48
48
  static get watchers() { return {
@@ -828,9 +828,9 @@ const Toast = /*@__PURE__*/ proxyCustomElement(class Toast extends HTMLElement {
828
828
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
829
829
  printIonWarning('This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
830
830
  }
831
- return (h(Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
831
+ return (h(Host, Object.assign({ key: '23803334fb668f6ce7044d3a321cb84bc753bd16', tabindex: "-1" }, this.htmlAttributes, { style: {
832
832
  zIndex: `${60000 + this.overlayIndex}`,
833
- }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '27c0feeb89c4efb47c42623a4b036ed84338ed10', class: wrapperClass }, h("div", { key: '41d5a3069f92e4a6acef2793fa4e236cdbdaae88', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '176f497bc990ef2ecc14c7fa90dd3a54a912030a', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
833
+ }, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '7cd7138ba079fccf97f318b91e9986491ab4214d', class: wrapperClass }, h("div", { key: '93b78fa64e24435adeb77a04c1d1d53d2f093864', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '9a3c71b164ebcfba2540acb7568beffa76b62f47', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: 'feb9268102d844f1314205f7440de7066cf0620e', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
834
834
  }
835
835
  get el() { return this; }
836
836
  static get watchers() { return {
@@ -63,10 +63,10 @@ const Toolbar = /*@__PURE__*/ proxyCustomElement(class Toolbar extends HTMLEleme
63
63
  this.childrenStyles.forEach((value) => {
64
64
  Object.assign(childStyles, value);
65
65
  });
66
- return (h(Host, { key: 'afac0f08f3981483c072984ce047df5dc9cc1e99', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
66
+ return (h(Host, { key: '8907ed75fbb2b1dced55c481bba6363f1dca815b', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
67
67
  [mode]: true,
68
68
  'in-toolbar': hostContext('ion-toolbar', this.el),
69
- })) }, h("div", { key: '30d4f1d0ec01cc646398301b5f7d469391eb35d2', class: "toolbar-background" }), h("div", { key: '175d1f283e670b57a9bf8fd2a8c5e7d0da749aa8', class: "toolbar-container" }, h("slot", { key: '4853b18092737b32b5995457536fa5a7fc2816ef', name: "start" }), h("slot", { key: '6eb4921200aad02d7977d134edad6cff2aad91ad', name: "secondary" }), h("div", { key: '024e0339c74c4b9a886d49e96723243719643dc2', class: "toolbar-content" }, h("slot", { key: 'b6452c84692fedd6efe33ac67907d01253b76f8f' })), h("slot", { key: '636e56eeaa318ce45a9c3854a30b8eb2819a33e0', name: "primary" }), h("slot", { key: 'a45c19b93dca3719d75bd4d99acc49de87137a7d', name: "end" }))));
69
+ })) }, h("div", { key: '6bfa09b08d6517f0d680f53b739854cecd631bc9', class: "toolbar-background" }), h("div", { key: '1531bd6dd9e0a5843309bba854b744c453037ad0', class: "toolbar-container" }, h("slot", { key: '881b41697d386eae651b019128573f0fa432cd33', name: "start" }), h("slot", { key: '64a284e6eae5311ac3125dfadb4bb32bdba9d089', name: "secondary" }), h("div", { key: 'c1f47503563b38084b27d7ba54f17ec478482b94', class: "toolbar-content" }, h("slot", { key: '9a85acfba72252705619ae32acae9c14f81aa57d' })), h("slot", { key: '89e08bd761dc6940dbebc5d06f5f080af204aa72', name: "primary" }), h("slot", { key: 'a1cb7d95627f8a3d24dd4b9c11718fc164f53674', name: "end" }))));
70
70
  }
71
71
  get el() { return this; }
72
72
  static get style() { return {
@@ -270,7 +270,7 @@ const Item = /*@__PURE__*/ proxyCustomElement(class Item extends HTMLElement {
270
270
  'ion-activatable': canActivate,
271
271
  'ion-focusable': this.focusable,
272
272
  'item-rtl': document.dir === 'rtl',
273
- })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: '1f9e61b627fc94d646cccbfd8be24df745080c2c' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: '6690445e14e6f0614beae23b6cc2a2b9cd668934', name: "start" }), h("div", { key: 'cc36ee6ad3f3c04b7fe907f7c63e81fa43938b28', class: "item-inner" }, h("div", { key: '502eff7a3d237fa5658e505b3d2f74cdfdef16af', class: "input-wrapper" }, h("slot", { key: '750d23dcab6844acb92c9636f21dff04c91d2b22' })), h("slot", { key: 'ed16f6bce4ea5a76a181597b879f9bb55c909612', name: "end" }), showDetail && (h("ion-icon", { icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward })), h("div", { key: '29f89d1996f99a0d600c710e1b4bcd6975db7caf', class: "item-inner-highlight" })), canActivate && mode === 'md' && h("ion-ripple-effect", null), h("div", { key: '111ccb2ab79b9975d6f66714866ff4cc20a7b4da', class: "item-highlight" })), h("div", { key: 'd2ea55be7686ffdd95f0b53d7e8e386983cd0c8e', class: "item-bottom" }, h("slot", { key: '20adbe497dd62b23a169a5194947513a32f5c3a0', name: "error" }), h("slot", { key: '52587f1f2b9056e76ad9be8ccd7754cbeaefdc71', name: "helper" }), counterString && h("ion-note", { class: "item-counter" }, counterString))));
273
+ })), role: inList ? 'listitem' : null }, h(TagType, Object.assign({ key: '1f9e61b627fc94d646cccbfd8be24df745080c2c' }, attrs, inheritedAriaAttributes, { class: "item-native", part: "native", disabled: disabled }, clickFn), h("slot", { key: '6690445e14e6f0614beae23b6cc2a2b9cd668934', name: "start" }), h("div", { key: 'cc36ee6ad3f3c04b7fe907f7c63e81fa43938b28', class: "item-inner" }, h("div", { key: '502eff7a3d237fa5658e505b3d2f74cdfdef16af', class: "input-wrapper" }, h("slot", { key: '750d23dcab6844acb92c9636f21dff04c91d2b22' })), h("slot", { key: 'ed16f6bce4ea5a76a181597b879f9bb55c909612', name: "end" }), showDetail && (h("ion-icon", { key: '95f5b05d1e409dbb7637f68313898d01a7321a15', icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon", "aria-hidden": "true", "flip-rtl": detailIcon === chevronForward })), h("div", { key: '8074c0486bf0b72a4503f55dcb4a1fa8da310899', class: "item-inner-highlight" })), canActivate && mode === 'md' && h("ion-ripple-effect", { key: '7b2362cdcf8aaf8791f12d3f0b4aa1198d2b4961' }), h("div", { key: 'e82c247286a9dcd1cf6e839b6e95434de175146b', class: "item-highlight" })), h("div", { key: '37524cfdb3518f1f2a958eae4b49977a1199ba3d', class: "item-bottom" }, h("slot", { key: '3643138f87985649e8ee32e099f4b592a45c4712', name: "error" }), h("slot", { key: '0ce71b7fae1256290da625d0d70ac2ff69425247', name: "helper" }), counterString && h("ion-note", { key: '4549ec01076ae1fe959bb88cafa24528444919a1', class: "item-counter" }, counterString))));
274
274
  }
275
275
  get el() { return this; }
276
276
  static get watchers() { return {
@@ -63,7 +63,7 @@ const Label = /*@__PURE__*/ proxyCustomElement(class Label extends HTMLElement {
63
63
  render() {
64
64
  const position = this.position;
65
65
  const mode = getIonMode(this);
66
- return (h(Host, { key: '813192a6460057c6d1e42f50f3f257bee2f550d8', class: createColorClasses(this.color, {
66
+ return (h(Host, { key: '72ad4ba5c1137ae0130e421346668e436ea53bf8', class: createColorClasses(this.color, {
67
67
  [mode]: true,
68
68
  'in-item-color': hostContext('ion-item.ion-color', this.el),
69
69
  [`label-${position}`]: position !== undefined,
@@ -22,10 +22,10 @@ const ListHeader = /*@__PURE__*/ proxyCustomElement(class ListHeader extends HTM
22
22
  render() {
23
23
  const { lines } = this;
24
24
  const mode = getIonMode(this);
25
- return (h(Host, { key: '1b832a6882307d40fe4afc9a95a5db4fbdff60a3', class: createColorClasses(this.color, {
25
+ return (h(Host, { key: 'e5fabb3ae91e6fe47c89273d1d2dba5902f77f94', class: createColorClasses(this.color, {
26
26
  [mode]: true,
27
27
  [`list-header-lines-${lines}`]: lines !== undefined,
28
- }) }, h("div", { key: 'a53a3f05727b510d1b912c10c92a4aa58f4fe860', class: "list-header-inner" }, h("slot", { key: '9377dee83f050b2cb2c5b7c5d106668cc81d8f90' }))));
28
+ }) }, h("div", { key: 'a9cfdaa436267fbabb0d618c3932849c1b77fbd2', class: "list-header-inner" }, h("slot", { key: '8ed806fd58f8f2265c5bf466886086e88ada93cc' }))));
29
29
  }
30
30
  static get style() { return {
31
31
  ios: IonListHeaderIosStyle0,
@@ -33,7 +33,7 @@ const List = /*@__PURE__*/ proxyCustomElement(class List extends HTMLElement {
33
33
  render() {
34
34
  const mode = getIonMode(this);
35
35
  const { lines, inset } = this;
36
- return (h(Host, { key: '2cb1b689d9460d9576b471bb8b13d14fe34d1c2c', role: "list", class: {
36
+ return (h(Host, { key: '3df401155114c7a39c81f201bf8a181d07e8d4c8', role: "list", class: {
37
37
  [mode]: true,
38
38
  // Used internally for styling
39
39
  [`list-${mode}`]: true,
@@ -20,9 +20,9 @@ const Note = /*@__PURE__*/ proxyCustomElement(class Note extends HTMLElement {
20
20
  }
21
21
  render() {
22
22
  const mode = getIonMode(this);
23
- return (h(Host, { key: 'eebc0ea94483a248192408a1546739700281d2ae', class: createColorClasses(this.color, {
23
+ return (h(Host, { key: '79a17a318ec6e8326c9741b4a9bb4598acdc225e', class: createColorClasses(this.color, {
24
24
  [mode]: true,
25
- }) }, h("slot", { key: '33018e11967398327a0e7c20522547a4d9e8f55b' })));
25
+ }) }, h("slot", { key: '5adeaccfabb4bee7b84ea5c5de804bd255b29255' })));
26
26
  }
27
27
  static get style() { return {
28
28
  ios: IonNoteIosStyle0,
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index5.js';
5
- import { OVERLAY_BACK_BUTTON_PRIORITY, shoudUseCloseWatcher } from './hardware-back-button.js';
5
+ import { OVERLAY_BACK_BUTTON_PRIORITY, shouldUseCloseWatcher } from './hardware-back-button.js';
6
6
  import { b as getIonMode, c as config } from './ionic-global.js';
7
7
  import { C as CoreDelegate } from './framework-delegate.js';
8
8
  import { c as componentOnReady, f as focusVisibleElement, a as addEventListener, b as removeEventListener, g as getElementRoot } from './helpers.js';
@@ -364,7 +364,7 @@ const connectListeners = (doc) => {
364
364
  * this behavior will be handled via the ionBackButton
365
365
  * event.
366
366
  */
367
- if (!shoudUseCloseWatcher()) {
367
+ if (!shouldUseCloseWatcher()) {
368
368
  doc.addEventListener('keydown', (ev) => {
369
369
  if (ev.key === 'Escape') {
370
370
  const lastOverlay = getPresentedOverlay(doc);
@@ -454,15 +454,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
454
454
  return;
455
455
  }
456
456
  setRootAriaHidden(true);
457
- /**
458
- * Hide all other overlays from screen readers so only this one
459
- * can be read. Note that presenting an overlay always makes
460
- * it the topmost one.
461
- */
462
- if (doc !== undefined) {
463
- const presentedOverlays = getPresentedOverlays(doc);
464
- presentedOverlays.forEach((o) => o.setAttribute('aria-hidden', 'true'));
465
- }
457
+ hideOverlaysFromScreenReaders(overlay.el);
466
458
  overlay.presented = true;
467
459
  overlay.willPresent.emit();
468
460
  (_a = overlay.willPresentShorthand) === null || _a === void 0 ? void 0 : _a.emit();
@@ -555,7 +547,7 @@ const restoreElementFocus = async (overlayEl) => {
555
547
  }
556
548
  };
557
549
  const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
558
- var _a, _b, _c;
550
+ var _a, _b;
559
551
  if (!overlay.presented) {
560
552
  return false;
561
553
  }
@@ -606,13 +598,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
606
598
  console.error(err);
607
599
  }
608
600
  overlay.el.remove();
609
- /**
610
- * If there are other overlays presented, unhide the new
611
- * topmost one from screen readers.
612
- */
613
- if (doc !== undefined) {
614
- (_c = getPresentedOverlay(doc)) === null || _c === void 0 ? void 0 : _c.removeAttribute('aria-hidden');
615
- }
601
+ revealOverlaysToScreenReaders();
616
602
  return true;
617
603
  };
618
604
  const getAppRoot = (doc) => {
@@ -808,5 +794,61 @@ const createTriggerController = () => {
808
794
  removeClickListener,
809
795
  };
810
796
  };
797
+ /**
798
+ * Ensure that underlying overlays have aria-hidden if necessary so that screen readers
799
+ * cannot move focus to these elements. Note that we cannot rely on focus/focusin/focusout
800
+ * events here because those events do not fire when the screen readers moves to a non-focusable
801
+ * element such as text.
802
+ * Without this logic screen readers would be able to move focus outside of the top focus-trapped overlay.
803
+ *
804
+ * @param newTopMostOverlay - The overlay that is being presented. Since the overlay has not been
805
+ * fully presented yet at the time this function is called it will not be included in the getPresentedOverlays result.
806
+ */
807
+ const hideOverlaysFromScreenReaders = (newTopMostOverlay) => {
808
+ var _a;
809
+ if (doc === undefined)
810
+ return;
811
+ const overlays = getPresentedOverlays(doc);
812
+ for (let i = overlays.length - 1; i >= 0; i--) {
813
+ const presentedOverlay = overlays[i];
814
+ const nextPresentedOverlay = (_a = overlays[i + 1]) !== null && _a !== void 0 ? _a : newTopMostOverlay;
815
+ /**
816
+ * If next overlay has aria-hidden then all remaining overlays will have it too.
817
+ * Or, if the next overlay is a Toast that does not have aria-hidden then current overlay
818
+ * should not have aria-hidden either so focus can remain in the current overlay.
819
+ */
820
+ if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
821
+ presentedOverlay.setAttribute('aria-hidden', 'true');
822
+ }
823
+ }
824
+ };
825
+ /**
826
+ * When dismissing an overlay we need to reveal the new top-most overlay to screen readers.
827
+ * If the top-most overlay is a Toast we potentially need to reveal more overlays since
828
+ * focus is never automatically moved to the Toast.
829
+ */
830
+ const revealOverlaysToScreenReaders = () => {
831
+ if (doc === undefined)
832
+ return;
833
+ const overlays = getPresentedOverlays(doc);
834
+ for (let i = overlays.length - 1; i >= 0; i--) {
835
+ const currentOverlay = overlays[i];
836
+ /**
837
+ * If the current we are looking at is a Toast then we can remove aria-hidden.
838
+ * However, we potentially need to keep looking at the overlay stack because there
839
+ * could be more Toasts underneath. Additionally, we need to unhide the closest non-Toast
840
+ * overlay too so focus can move there since focus is never automatically moved to the Toast.
841
+ */
842
+ currentOverlay.removeAttribute('aria-hidden');
843
+ /**
844
+ * If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
845
+ * since this overlay should always receive focus. As a result, all underlying overlays should still
846
+ * be hidden from screen readers.
847
+ */
848
+ if (currentOverlay.tagName !== 'ION-TOAST') {
849
+ break;
850
+ }
851
+ }
852
+ };
811
853
 
812
854
  export { BACKDROP as B, GESTURE as G, OVERLAY_GESTURE_PRIORITY as O, alertController as a, actionSheetController as b, popoverController as c, createDelegateController as d, createTriggerController as e, present as f, dismiss as g, eventMethod as h, isCancel as i, prepareOverlay as j, setOverlayId as k, loadingController as l, modalController as m, focusFirstDescendant as n, getPresentedOverlay as o, pickerController as p, safeCall as s, toastController as t };
@@ -250,7 +250,11 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
250
250
  */
251
251
  componentWillLoad() {
252
252
  const visibleCallback = (entries) => {
253
- const ev = entries[0];
253
+ /**
254
+ * Browsers will sometimes group multiple IO events into a single callback.
255
+ * As a result, we want to grab the last/most recent event in case there are multiple events.
256
+ */
257
+ const ev = entries[entries.length - 1];
254
258
  if (ev.isIntersecting) {
255
259
  const { activeItem, el } = this;
256
260
  this.isColumnVisible = true;
@@ -339,18 +343,18 @@ const PickerColumnInternal = /*@__PURE__*/ proxyCustomElement(class PickerColumn
339
343
  * the attribute can be moved to datetime.tsx and set on every
340
344
  * instance of ion-picker-column-internal there instead.
341
345
  */
342
- return (h(Host, { key: 'd0e3818aa4ab06aefd988d1b42ae754244727b8f', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
346
+ return (h(Host, { key: '42a034f2533d30d19f96a121eb74d5f757e1c684', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
343
347
  [mode]: true,
344
348
  ['picker-column-active']: isActive,
345
349
  ['picker-column-numeric-input']: numericInput,
346
- }) }, h("div", { key: 'ec3b16415db5f64e3fab37fda023560ebcdc9423', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '40c78c9a1277807572d73e23048c2730cab88f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'c51fa817f6999356cf3568a46098e954936b45d5', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
350
+ }) }, h("div", { key: '85efccb40c87d473c06026b8041d57b40d2369c3', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '9fae4dd6697f23acba18c218ba250ea77954b18d', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'f117afeb204a4f6bb34a1cd0e1b786fa479d8b32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
347
351
  const isItemDisabled = pickerDisabled || item.disabled || false;
348
352
  return (h("button", { tabindex: "-1", class: {
349
353
  'picker-item': true,
350
354
  }, "data-value": item.value, "data-index": index, onClick: (ev) => {
351
355
  this.centerPickerItemInView(ev.target, true);
352
356
  }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
353
- }), h("div", { key: '80a7461dfe571f46466219b05007b021711aed32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'fed82263295f58c51e2b753d0c06c7d71872b8a7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'e805dff4122cc4e5fb4d7dcb96054fee8ad3bd07', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
357
+ }), h("div", { key: '28aa37f9ce90e88b9c3a5b2c399e3066e9f339e1', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'ef4ae6bee2b17918f0c2aba9d5c720c1d95987e4', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '564967bc8e42a9018163850da3a967a933b3de7b', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
354
358
  }
355
359
  get el() { return this; }
356
360
  static get watchers() { return {
@@ -343,9 +343,9 @@ const PickerColumnCmp = /*@__PURE__*/ proxyCustomElement(class PickerColumnCmp e
343
343
  render() {
344
344
  const col = this.col;
345
345
  const mode = getIonMode(this);
346
- return (h(Host, { key: '06e2ae483a3bcf4fe721ad0c48cded6a1efdc6c0', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
346
+ return (h(Host, { key: '49bb4c67a67c7318d4c305df78ceabae36355112', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
347
347
  'max-width': this.col.columnWidth,
348
- } }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '14bea013788d899edf7155eb3cc10f79fe8e4690', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
348
+ } }, col.prefix && (h("div", { key: '7e65761d24473e4ba0ce2d4fc707a5c5e8127903', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '65c3aea609401e8ae4ea6d363a1b9436796c0a86', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { key: 'c2e5a324ba95dd8832d3eb81b139e1f674d74a35', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
349
349
  }
350
350
  get el() { return this; }
351
351
  static get watchers() { return {