@ionic/core 8.0.1-dev.11713879639.102f51a0 → 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 (396) hide show
  1. package/components/ion-content.js +6 -4
  2. package/components/ion-datetime-button.js +2 -2
  3. package/components/ion-datetime.js +15 -13
  4. package/components/ion-fab-button.js +2 -2
  5. package/components/ion-fab-list.js +2 -2
  6. package/components/ion-fab.js +2 -2
  7. package/components/ion-footer.js +2 -2
  8. package/components/ion-grid.js +2 -2
  9. package/components/ion-header.js +2 -2
  10. package/components/ion-img.js +1 -1
  11. package/components/ion-infinite-scroll-content.js +2 -2
  12. package/components/ion-infinite-scroll.js +1 -1
  13. package/components/ion-input-password-toggle.js +3 -3
  14. package/components/ion-input.js +8 -4
  15. package/components/ion-item-divider.js +2 -2
  16. package/components/ion-item-group.js +1 -1
  17. package/components/ion-item-option.js +2 -2
  18. package/components/ion-item-options.js +1 -1
  19. package/components/ion-item-sliding.js +1 -1
  20. package/components/ion-loading.js +2 -2
  21. package/components/ion-menu-button.js +2 -2
  22. package/components/ion-menu-toggle.js +2 -2
  23. package/components/ion-menu.js +2 -2
  24. package/components/ion-modal.js +10 -8
  25. package/components/ion-nav-link.js +1 -1
  26. package/components/ion-nav.js +1 -1
  27. package/components/ion-note.js +2 -2
  28. package/components/ion-picker-legacy.js +2 -2
  29. package/components/ion-progress-bar.js +1 -1
  30. package/components/ion-range.js +3 -3
  31. package/components/ion-refresher-content.js +1 -1
  32. package/components/ion-refresher.js +1 -1
  33. package/components/ion-reorder-group.js +1 -1
  34. package/components/ion-reorder.js +1 -1
  35. package/components/ion-router-link.js +2 -2
  36. package/components/ion-router-outlet.js +1 -1
  37. package/components/ion-row.js +1 -1
  38. package/components/ion-searchbar.js +4 -4
  39. package/components/ion-segment-button.js +3 -3
  40. package/components/ion-segment.js +2 -2
  41. package/components/ion-select-option.js +1 -1
  42. package/components/ion-select.js +2 -2
  43. package/components/ion-skeleton-text.js +2 -2
  44. package/components/ion-split-pane.js +2 -2
  45. package/components/ion-tab-bar.js +2 -2
  46. package/components/ion-tab-button.js +2 -2
  47. package/components/ion-tab.js +2 -2
  48. package/components/ion-tabs.js +1 -1
  49. package/components/ion-text.js +2 -2
  50. package/components/ion-textarea.js +2 -2
  51. package/components/ion-thumbnail.js +1 -1
  52. package/components/ion-title.js +2 -2
  53. package/components/ion-toast.js +2 -2
  54. package/components/ion-toggle.js +3 -3
  55. package/components/ion-toolbar.js +2 -2
  56. package/components/label.js +2 -2
  57. package/components/list-header.js +2 -2
  58. package/components/list.js +1 -1
  59. package/components/overlays.js +3 -2
  60. package/components/picker-column-option.js +2 -2
  61. package/components/picker-column.js +156 -4
  62. package/components/picker-column2.js +2 -2
  63. package/components/picker.js +2 -2
  64. package/components/popover.js +6 -4
  65. package/components/radio-group.js +1 -1
  66. package/components/radio.js +3 -3
  67. package/components/ripple-effect.js +1 -1
  68. package/components/select-popover.js +1 -1
  69. package/components/spinner.js +1 -1
  70. package/dist/cjs/index.cjs.js +1 -1
  71. package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
  72. package/dist/cjs/ion-alert.cjs.entry.js +1 -1
  73. package/dist/cjs/ion-app_8.cjs.entry.js +14 -13
  74. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  75. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  76. package/dist/cjs/ion-datetime-button.cjs.entry.js +2 -2
  77. package/dist/cjs/ion-datetime_3.cjs.entry.js +20 -18
  78. package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
  79. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  81. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  82. package/dist/cjs/ion-input.cjs.entry.js +7 -4
  83. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  84. package/dist/cjs/ion-item_8.cjs.entry.js +12 -12
  85. package/dist/cjs/ion-loading.cjs.entry.js +3 -3
  86. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  87. package/dist/cjs/ion-modal.cjs.entry.js +9 -8
  88. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  89. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-picker-column.cjs.entry.js +154 -4
  91. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  92. package/dist/cjs/ion-popover.cjs.entry.js +5 -4
  93. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  94. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  95. package/dist/cjs/ion-range.cjs.entry.js +3 -3
  96. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  97. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  98. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  99. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  100. package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
  101. package/dist/cjs/ion-segment_2.cjs.entry.js +5 -5
  102. package/dist/cjs/ion-select_3.cjs.entry.js +5 -5
  103. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  104. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  105. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  106. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  107. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  108. package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
  109. package/dist/cjs/ion-toast.cjs.entry.js +3 -3
  110. package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
  111. package/dist/cjs/ionic.cjs.js +1 -1
  112. package/dist/cjs/loader.cjs.js +1 -1
  113. package/dist/cjs/{overlays-10c452b2.js → overlays-574e681c.js} +3 -1
  114. package/dist/collection/components/content/content.js +23 -4
  115. package/dist/collection/components/content/test/content.spec.js +27 -0
  116. package/dist/collection/components/datetime/datetime.js +15 -13
  117. package/dist/collection/components/datetime/test/overlay-roles/datetime.e2e.js +34 -0
  118. package/dist/collection/components/datetime-button/datetime-button.js +2 -2
  119. package/dist/collection/components/fab/fab.js +2 -2
  120. package/dist/collection/components/fab-button/fab-button.js +2 -2
  121. package/dist/collection/components/fab-list/fab-list.js +2 -2
  122. package/dist/collection/components/footer/footer.js +2 -2
  123. package/dist/collection/components/grid/grid.js +2 -2
  124. package/dist/collection/components/header/header.js +2 -2
  125. package/dist/collection/components/img/img.js +1 -1
  126. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  127. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  128. package/dist/collection/components/input/input.js +24 -4
  129. package/dist/collection/components/input/test/input.spec.js +13 -0
  130. package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
  131. package/dist/collection/components/item-divider/item-divider.js +2 -2
  132. package/dist/collection/components/item-group/item-group.js +1 -1
  133. package/dist/collection/components/item-option/item-option.js +2 -2
  134. package/dist/collection/components/item-options/item-options.js +1 -1
  135. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  136. package/dist/collection/components/label/label.js +2 -2
  137. package/dist/collection/components/list/list.js +1 -1
  138. package/dist/collection/components/list-header/list-header.js +2 -2
  139. package/dist/collection/components/loading/loading.js +2 -2
  140. package/dist/collection/components/menu/menu.js +2 -2
  141. package/dist/collection/components/menu-button/menu-button.js +2 -2
  142. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  143. package/dist/collection/components/modal/gestures/sheet.js +3 -2
  144. package/dist/collection/components/modal/modal.js +25 -6
  145. package/dist/collection/components/modal/test/basic/modal.spec.js +19 -0
  146. package/dist/collection/components/nav/nav.js +1 -1
  147. package/dist/collection/components/nav-link/nav-link.js +1 -1
  148. package/dist/collection/components/note/note.js +2 -2
  149. package/dist/collection/components/picker/picker.js +2 -2
  150. package/dist/collection/components/picker-column/picker-column.css +19 -0
  151. package/dist/collection/components/picker-column/picker-column.js +158 -3
  152. package/dist/collection/components/picker-column/test/picker-column.spec.js +83 -0
  153. package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
  154. package/dist/collection/components/picker-legacy/picker.js +2 -2
  155. package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
  156. package/dist/collection/components/popover/popover.js +23 -4
  157. package/dist/collection/components/popover/test/basic/popover.spec.js +19 -0
  158. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  159. package/dist/collection/components/radio/radio.js +3 -3
  160. package/dist/collection/components/radio-group/radio-group.js +1 -1
  161. package/dist/collection/components/range/range.js +3 -3
  162. package/dist/collection/components/refresher/refresher.js +1 -1
  163. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  164. package/dist/collection/components/reorder/reorder.js +1 -1
  165. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  166. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  167. package/dist/collection/components/router-link/router-link.js +2 -2
  168. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  169. package/dist/collection/components/row/row.js +1 -1
  170. package/dist/collection/components/searchbar/searchbar.js +4 -4
  171. package/dist/collection/components/segment/segment.js +2 -2
  172. package/dist/collection/components/segment-button/segment-button.js +3 -3
  173. package/dist/collection/components/select/select.js +2 -2
  174. package/dist/collection/components/select-option/select-option.js +1 -1
  175. package/dist/collection/components/select-popover/select-popover.js +1 -1
  176. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  177. package/dist/collection/components/spinner/spinner.js +1 -1
  178. package/dist/collection/components/split-pane/split-pane.js +2 -2
  179. package/dist/collection/components/tab/tab.js +2 -2
  180. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  181. package/dist/collection/components/tab-button/tab-button.js +2 -2
  182. package/dist/collection/components/tabs/tabs.js +1 -1
  183. package/dist/collection/components/text/text.js +2 -2
  184. package/dist/collection/components/textarea/textarea.js +2 -2
  185. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  186. package/dist/collection/components/title/title.js +2 -2
  187. package/dist/collection/components/toast/toast.js +2 -2
  188. package/dist/collection/components/toggle/toggle.js +3 -3
  189. package/dist/collection/components/toolbar/toolbar.js +2 -2
  190. package/dist/collection/utils/overlays.js +2 -1
  191. package/dist/docs.json +96 -1
  192. package/dist/esm/index.js +1 -1
  193. package/dist/esm/ion-action-sheet.entry.js +1 -1
  194. package/dist/esm/ion-alert.entry.js +1 -1
  195. package/dist/esm/ion-app_8.entry.js +14 -13
  196. package/dist/esm/ion-avatar_3.entry.js +1 -1
  197. package/dist/esm/ion-col_3.entry.js +3 -3
  198. package/dist/esm/ion-datetime-button.entry.js +2 -2
  199. package/dist/esm/ion-datetime_3.entry.js +20 -18
  200. package/dist/esm/ion-fab_3.entry.js +6 -6
  201. package/dist/esm/ion-img.entry.js +1 -1
  202. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  203. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  204. package/dist/esm/ion-input.entry.js +7 -4
  205. package/dist/esm/ion-item-option_3.entry.js +4 -4
  206. package/dist/esm/ion-item_8.entry.js +12 -12
  207. package/dist/esm/ion-loading.entry.js +3 -3
  208. package/dist/esm/ion-menu_3.entry.js +7 -7
  209. package/dist/esm/ion-modal.entry.js +9 -8
  210. package/dist/esm/ion-nav_2.entry.js +2 -2
  211. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  212. package/dist/esm/ion-picker-column.entry.js +154 -4
  213. package/dist/esm/ion-picker.entry.js +2 -2
  214. package/dist/esm/ion-popover.entry.js +5 -4
  215. package/dist/esm/ion-progress-bar.entry.js +1 -1
  216. package/dist/esm/ion-radio_2.entry.js +4 -4
  217. package/dist/esm/ion-range.entry.js +3 -3
  218. package/dist/esm/ion-refresher_2.entry.js +2 -2
  219. package/dist/esm/ion-reorder_2.entry.js +2 -2
  220. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  221. package/dist/esm/ion-route_4.entry.js +2 -2
  222. package/dist/esm/ion-searchbar.entry.js +4 -4
  223. package/dist/esm/ion-segment_2.entry.js +5 -5
  224. package/dist/esm/ion-select_3.entry.js +5 -5
  225. package/dist/esm/ion-spinner.entry.js +1 -1
  226. package/dist/esm/ion-split-pane.entry.js +2 -2
  227. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  228. package/dist/esm/ion-tab_2.entry.js +3 -3
  229. package/dist/esm/ion-text.entry.js +2 -2
  230. package/dist/esm/ion-textarea.entry.js +2 -2
  231. package/dist/esm/ion-toast.entry.js +3 -3
  232. package/dist/esm/ion-toggle.entry.js +3 -3
  233. package/dist/esm/ionic.js +1 -1
  234. package/dist/esm/loader.js +1 -1
  235. package/dist/esm/{overlays-6fb4a2f2.js → overlays-1eac28e2.js} +3 -2
  236. package/dist/esm-es5/index.js +1 -1
  237. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  238. package/dist/esm-es5/ion-alert.entry.js +1 -1
  239. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  240. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  241. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  242. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  243. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  244. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  245. package/dist/esm-es5/ion-img.entry.js +1 -1
  246. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  247. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  248. package/dist/esm-es5/ion-input.entry.js +1 -1
  249. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  250. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  251. package/dist/esm-es5/ion-loading.entry.js +1 -1
  252. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  253. package/dist/esm-es5/ion-modal.entry.js +1 -1
  254. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  255. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  256. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  257. package/dist/esm-es5/ion-picker.entry.js +1 -1
  258. package/dist/esm-es5/ion-popover.entry.js +1 -1
  259. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  260. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  261. package/dist/esm-es5/ion-range.entry.js +1 -1
  262. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  263. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  264. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  265. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  266. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  267. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  268. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  269. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  270. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  271. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  272. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  273. package/dist/esm-es5/ion-text.entry.js +1 -1
  274. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  275. package/dist/esm-es5/ion-toast.entry.js +1 -1
  276. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  277. package/dist/esm-es5/ionic.js +1 -1
  278. package/dist/esm-es5/loader.js +1 -1
  279. package/dist/esm-es5/{overlays-6fb4a2f2.js → overlays-1eac28e2.js} +1 -1
  280. package/dist/html.html-data.json +24 -0
  281. package/dist/ionic/index.esm.js +1 -1
  282. package/dist/ionic/ionic.esm.js +1 -1
  283. package/dist/ionic/{p-50205ef9.system.entry.js → p-0d88f9c2.system.entry.js} +1 -1
  284. package/dist/ionic/{p-1fe1f512.entry.js → p-1a8d2fe3.entry.js} +1 -1
  285. package/dist/ionic/{p-3008ca4e.system.entry.js → p-1aff89d0.system.entry.js} +1 -1
  286. package/dist/ionic/{p-4a01cec0.entry.js → p-2185597f.entry.js} +1 -1
  287. package/dist/ionic/{p-7f33a6e2.system.entry.js → p-22d183b4.system.entry.js} +2 -2
  288. package/dist/ionic/{p-5f15ee76.entry.js → p-255b6f01.entry.js} +1 -1
  289. package/dist/ionic/p-282cc565.js +4 -0
  290. package/dist/ionic/{p-4f6ebc2b.entry.js → p-2870db48.entry.js} +1 -1
  291. package/dist/ionic/p-2a517297.system.entry.js +4 -0
  292. package/dist/ionic/{p-cbd87df6.entry.js → p-2b45e94f.entry.js} +1 -1
  293. package/dist/ionic/{p-cf8101a6.system.entry.js → p-2c1cc9bf.system.entry.js} +1 -1
  294. package/dist/ionic/p-2e56ebdc.entry.js +4 -0
  295. package/dist/ionic/{p-e62d4a6c.entry.js → p-30a40a57.entry.js} +1 -1
  296. package/dist/ionic/{p-98af538a.system.entry.js → p-320f9186.system.entry.js} +2 -2
  297. package/dist/ionic/{p-6ef17d86.system.entry.js → p-3339b5ca.system.entry.js} +1 -1
  298. package/dist/ionic/p-39a3eca2.entry.js +4 -0
  299. package/dist/ionic/{p-703f62c1.entry.js → p-3af6a819.entry.js} +1 -1
  300. package/dist/ionic/{p-8a5152e5.entry.js → p-3f7e6661.entry.js} +1 -1
  301. package/dist/ionic/{p-814efd87.system.entry.js → p-4195e4d0.system.entry.js} +1 -1
  302. package/dist/ionic/{p-dbc3e90c.entry.js → p-454c2bfe.entry.js} +1 -1
  303. package/dist/ionic/{p-4809ddae.system.entry.js → p-47915d5c.system.entry.js} +1 -1
  304. package/dist/ionic/{p-5ad55625.entry.js → p-49a47e7c.entry.js} +1 -1
  305. package/dist/ionic/p-4b078620.entry.js +4 -0
  306. package/dist/ionic/{p-332aa81e.entry.js → p-4c24ae09.entry.js} +1 -1
  307. package/dist/ionic/{p-904df2ee.system.entry.js → p-4c3d0457.system.entry.js} +1 -1
  308. package/dist/ionic/{p-530207f9.entry.js → p-4f1d1637.entry.js} +1 -1
  309. package/dist/ionic/{p-341b3f37.entry.js → p-4fc2a1ce.entry.js} +1 -1
  310. package/dist/ionic/{p-53d69c70.system.entry.js → p-5015ef54.system.entry.js} +1 -1
  311. package/dist/ionic/{p-e8a713b5.entry.js → p-5087e4df.entry.js} +1 -1
  312. package/dist/ionic/{p-5895b91d.entry.js → p-5408ee96.entry.js} +1 -1
  313. package/dist/ionic/p-55b9eb6b.system.entry.js +4 -0
  314. package/dist/ionic/p-56932fb6.entry.js +4 -0
  315. package/dist/ionic/{p-987e38ef.system.entry.js → p-56c470c2.system.entry.js} +1 -1
  316. package/dist/ionic/{p-5c26fed5.system.entry.js → p-5983ad03.system.entry.js} +1 -1
  317. package/dist/ionic/p-5a82c7b9.system.entry.js +4 -0
  318. package/dist/ionic/p-5e074809.system.entry.js +4 -0
  319. package/dist/ionic/{p-e81c3ca2.system.entry.js → p-676e0f71.system.entry.js} +1 -1
  320. package/dist/ionic/{p-eac224fa.entry.js → p-70605125.entry.js} +1 -1
  321. package/dist/ionic/{p-9fd3ca09.system.entry.js → p-70e00e9f.system.entry.js} +1 -1
  322. package/dist/ionic/p-70e5135e.system.entry.js +4 -0
  323. package/dist/ionic/{p-1472c130.entry.js → p-71044f08.entry.js} +1 -1
  324. package/dist/ionic/{p-4761ae79.system.entry.js → p-75a6989a.system.entry.js} +1 -1
  325. package/dist/ionic/{p-68afa357.system.entry.js → p-7e5972a0.system.entry.js} +2 -2
  326. package/dist/ionic/p-8134b3c4.entry.js +4 -0
  327. package/dist/ionic/{p-4f77a080.system.entry.js → p-89f2d585.system.entry.js} +1 -1
  328. package/dist/ionic/{p-6cf780b6.system.entry.js → p-8ffff03f.system.entry.js} +1 -1
  329. package/dist/ionic/p-90f77fc2.entry.js +4 -0
  330. package/dist/ionic/{p-d277ba16.entry.js → p-91cb391a.entry.js} +1 -1
  331. package/dist/ionic/{p-bc3d649d.entry.js → p-9277e3d2.entry.js} +1 -1
  332. package/dist/ionic/{p-ca5bb110.system.entry.js → p-94d20e10.system.entry.js} +1 -1
  333. package/dist/ionic/{p-48f60474.entry.js → p-962f482c.entry.js} +1 -1
  334. package/dist/ionic/p-9832568f.entry.js +4 -0
  335. package/dist/ionic/{p-f956e38a.entry.js → p-9876ce3b.entry.js} +1 -1
  336. package/dist/ionic/{p-151e8afd.entry.js → p-9a06b83d.entry.js} +1 -1
  337. package/dist/ionic/{p-f8f8c5a8.system.entry.js → p-9dbd1f93.system.entry.js} +1 -1
  338. package/dist/ionic/{p-c54b167f.system.entry.js → p-9e829e8f.system.entry.js} +1 -1
  339. package/dist/ionic/p-a0351a92.system.js +4 -0
  340. package/dist/ionic/{p-c927dbe2.system.entry.js → p-a0dd50e4.system.entry.js} +1 -1
  341. package/dist/ionic/{p-2b86020c.system.entry.js → p-a4ce5696.system.entry.js} +1 -1
  342. package/dist/ionic/{p-1ba197b6.entry.js → p-a51785b7.entry.js} +1 -1
  343. package/dist/ionic/{p-e292247e.system.entry.js → p-a6f505f5.system.entry.js} +1 -1
  344. package/dist/ionic/{p-d061515d.system.entry.js → p-ac058b0e.system.entry.js} +1 -1
  345. package/dist/ionic/{p-38010e7c.system.entry.js → p-ae6f15b0.system.entry.js} +1 -1
  346. package/dist/ionic/{p-91b568e2.system.entry.js → p-b0fc315c.system.entry.js} +1 -1
  347. package/dist/ionic/p-b1b68c3e.entry.js +4 -0
  348. package/dist/ionic/{p-e93cd31c.entry.js → p-b80dfa1b.entry.js} +1 -1
  349. package/dist/ionic/{p-df0d39c7.system.entry.js → p-b8d966bb.system.entry.js} +2 -2
  350. package/dist/ionic/{p-90f8498c.entry.js → p-ba8fd3f7.entry.js} +1 -1
  351. package/dist/ionic/{p-3d977e09.system.entry.js → p-bd62a431.system.entry.js} +2 -2
  352. package/dist/ionic/{p-70f6b982.entry.js → p-bebb01a5.entry.js} +1 -1
  353. package/dist/ionic/p-c34a80bd.entry.js +4 -0
  354. package/dist/ionic/{p-ca6decbd.entry.js → p-cfd91e4b.entry.js} +1 -1
  355. package/dist/ionic/{p-aa79cc0e.system.entry.js → p-d3a32834.system.entry.js} +2 -2
  356. package/dist/ionic/{p-275dd0ba.system.entry.js → p-d5559e4d.system.entry.js} +1 -1
  357. package/dist/ionic/p-d724072e.system.entry.js +4 -0
  358. package/dist/ionic/{p-55bc2a11.system.entry.js → p-d833beb7.system.entry.js} +1 -1
  359. package/dist/ionic/p-d8d6ebc0.system.js +1 -1
  360. package/dist/ionic/{p-7c93f00b.system.entry.js → p-da29453c.system.entry.js} +1 -1
  361. package/dist/ionic/{p-e099a6f3.entry.js → p-dffd0e36.entry.js} +1 -1
  362. package/dist/ionic/{p-07584ab4.system.js → p-e22c0afe.system.js} +1 -1
  363. package/dist/ionic/{p-1c42ad90.entry.js → p-eb1428cc.entry.js} +1 -1
  364. package/dist/ionic/{p-e1ad8e76.entry.js → p-f49da44a.entry.js} +1 -1
  365. package/dist/ionic/p-f5006fa9.system.entry.js +4 -0
  366. package/dist/ionic/p-fe9a80b7.entry.js +4 -0
  367. package/dist/types/components/content/content.d.ts +8 -0
  368. package/dist/types/components/input/input.d.ts +4 -0
  369. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  370. package/dist/types/components/modal/modal.d.ts +18 -0
  371. package/dist/types/components/picker-column/picker-column.d.ts +35 -0
  372. package/dist/types/components/popover/popover-interface.d.ts +1 -0
  373. package/dist/types/components/popover/popover.d.ts +18 -0
  374. package/dist/types/components.d.ts +32 -0
  375. package/dist/types/utils/overlays.d.ts +1 -0
  376. package/hydrate/index.js +309 -145
  377. package/package.json +1 -1
  378. package/dist/ionic/p-32dfbcdc.entry.js +0 -4
  379. package/dist/ionic/p-34f26d8b.entry.js +0 -4
  380. package/dist/ionic/p-582db405.system.entry.js +0 -4
  381. package/dist/ionic/p-629da37e.entry.js +0 -4
  382. package/dist/ionic/p-7372cf23.system.entry.js +0 -4
  383. package/dist/ionic/p-84ead641.entry.js +0 -4
  384. package/dist/ionic/p-91dabef7.system.js +0 -4
  385. package/dist/ionic/p-a28ea4d8.system.entry.js +0 -4
  386. package/dist/ionic/p-a39a73e3.entry.js +0 -4
  387. package/dist/ionic/p-a90201f2.js +0 -4
  388. package/dist/ionic/p-ac045dad.entry.js +0 -4
  389. package/dist/ionic/p-ba35f07f.entry.js +0 -4
  390. package/dist/ionic/p-c2762c6a.system.entry.js +0 -4
  391. package/dist/ionic/p-ce5bf737.system.entry.js +0 -4
  392. package/dist/ionic/p-cf45a5c7.system.entry.js +0 -4
  393. package/dist/ionic/p-e781c893.entry.js +0 -4
  394. package/dist/ionic/p-e832408b.system.entry.js +0 -4
  395. package/dist/ionic/p-ec178f19.entry.js +0 -4
  396. package/dist/ionic/p-f6fec6a0.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -10190,7 +10190,7 @@ const trapKeyboardFocus = (ev, doc) => {
10190
10190
  * behind the sheet should be focusable until
10191
10191
  * the backdrop is enabled.
10192
10192
  */
10193
- if (lastOverlay.classList.contains('ion-disable-focus-trap')) {
10193
+ if (lastOverlay.classList.contains(FOCUS_TRAP_DISABLE_CLASS)) {
10194
10194
  return;
10195
10195
  }
10196
10196
  const trapScopedFocus = () => {
@@ -10865,6 +10865,7 @@ const revealOverlaysToScreenReaders = () => {
10865
10865
  }
10866
10866
  }
10867
10867
  };
10868
+ const FOCUS_TRAP_DISABLE_CLASS = 'ion-disable-focus-trap';
10868
10869
 
10869
10870
  const hostContext = (selector, el) => {
10870
10871
  return el.closest(selector) !== null;
@@ -14201,6 +14202,7 @@ class Content {
14201
14202
  };
14202
14203
  this.color = undefined;
14203
14204
  this.fullscreen = false;
14205
+ this.fixedSlotPlacement = 'after';
14204
14206
  this.forceOverscroll = undefined;
14205
14207
  this.scrollX = false;
14206
14208
  this.scrollY = true;
@@ -14464,13 +14466,13 @@ class Content {
14464
14466
  }
14465
14467
  }
14466
14468
  render() {
14467
- const { isMainContent, scrollX, scrollY, el } = this;
14469
+ const { fixedSlotPlacement, isMainContent, scrollX, scrollY, el } = this;
14468
14470
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
14469
14471
  const mode = getIonMode$1(this);
14470
14472
  const forceOverscroll = this.shouldForceOverscroll();
14471
14473
  const transitionShadow = mode === 'ios';
14472
14474
  this.resize();
14473
- return (hAsync(Host, { key: '98e9658e69c0bbe0113e4c1b89dd7b240334c039', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
14475
+ return (hAsync(Host, { key: 'f599a7da14969df38c20a6f650179d2a319fb58b', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
14474
14476
  [mode]: true,
14475
14477
  'content-sizing': hostContext('ion-popover', this.el),
14476
14478
  overscroll: forceOverscroll,
@@ -14478,12 +14480,12 @@ class Content {
14478
14480
  }), style: {
14479
14481
  '--offset-top': `${this.cTop}px`,
14480
14482
  '--offset-bottom': `${this.cBottom}px`,
14481
- } }, hAsync("div", { key: 'e89aa6ea09625846db52d63bdbf06c3c279a5ba4', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), hAsync("div", { key: '37925cf9d898ede58d5ac7b5a650c648033602a3', class: {
14483
+ } }, hAsync("div", { key: '7c545c3c95ea05abd036d0462936ac153d2a8fc6', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: 'a67ab7438466c99f74b7ba59964802c3ba86ac5b', class: {
14482
14484
  'inner-scroll': true,
14483
14485
  'scroll-x': scrollX,
14484
14486
  'scroll-y': scrollY,
14485
14487
  overscroll: (scrollX || scrollY) && forceOverscroll,
14486
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: 'a40f964cacf0c2e2bdcf962791aaadb386d44323' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, hAsync("slot", { key: 'd21886cff0bc417e1f5e3a436dddc079e967579b', name: "fixed" })));
14488
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '6d10fcac2e40b4dd6c20d91a8957ac07251d2fa7' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
14487
14489
  }
14488
14490
  get el() { return getElement(this); }
14489
14491
  static get style() { return IonContentStyle0; }
@@ -14493,6 +14495,7 @@ class Content {
14493
14495
  "$members$": {
14494
14496
  "color": [513],
14495
14497
  "fullscreen": [4],
14498
+ "fixedSlotPlacement": [1, "fixed-slot-placement"],
14496
14499
  "forceOverscroll": [1028, "force-overscroll"],
14497
14500
  "scrollX": [4, "scroll-x"],
14498
14501
  "scrollY": [4, "scroll-y"],
@@ -16531,10 +16534,10 @@ class Datetime {
16531
16534
  const { activeParts } = this;
16532
16535
  return Array.isArray(activeParts) ? activeParts[0] : activeParts;
16533
16536
  };
16534
- this.closeParentOverlay = () => {
16537
+ this.closeParentOverlay = (role) => {
16535
16538
  const popoverOrModal = this.el.closest('ion-modal, ion-popover');
16536
16539
  if (popoverOrModal) {
16537
- popoverOrModal.dismiss();
16540
+ popoverOrModal.dismiss(undefined, role);
16538
16541
  }
16539
16542
  };
16540
16543
  this.setWorkingParts = (parts) => {
@@ -17204,7 +17207,7 @@ class Datetime {
17204
17207
  }
17205
17208
  }
17206
17209
  if (closeOverlay) {
17207
- this.closeParentOverlay();
17210
+ this.closeParentOverlay(CONFIRM_ROLE);
17208
17211
  }
17209
17212
  }
17210
17213
  /**
@@ -17224,7 +17227,7 @@ class Datetime {
17224
17227
  async cancel(closeOverlay = false) {
17225
17228
  this.ionCancel.emit();
17226
17229
  if (closeOverlay) {
17227
- this.closeParentOverlay();
17230
+ this.closeParentOverlay(CANCEL_ROLE);
17228
17231
  }
17229
17232
  }
17230
17233
  get isCalendarPicker() {
@@ -17536,7 +17539,7 @@ class Datetime {
17536
17539
  const todayString = workingParts.day !== null
17537
17540
  ? `${workingParts.year}-${workingParts.month}-${workingParts.day}`
17538
17541
  : `${defaultParts.year}-${defaultParts.month}-${defaultParts.day}`;
17539
- return (hAsync("ion-picker-column", { class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
17542
+ return (hAsync("ion-picker-column", { "aria-label": "Select a date", class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
17540
17543
  const { value } = ev.detail;
17541
17544
  const findPart = parts.find(({ month, day, year }) => value === `${year}-${month}-${day}`);
17542
17545
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), findPart));
@@ -17611,7 +17614,7 @@ class Datetime {
17611
17614
  const { disabled, workingParts } = this;
17612
17615
  const activePart = this.getActivePartsWithFallback();
17613
17616
  const pickerColumnValue = (_a = (workingParts.day !== null ? workingParts.day : this.defaultParts.day)) !== null && _a !== void 0 ? _a : undefined;
17614
- return (hAsync("ion-picker-column", { class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
17617
+ return (hAsync("ion-picker-column", { "aria-label": "Select a day", class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
17615
17618
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { day: ev.detail.value }));
17616
17619
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { day: ev.detail.value }));
17617
17620
  ev.stopPropagation();
@@ -17623,7 +17626,7 @@ class Datetime {
17623
17626
  }
17624
17627
  const { disabled, workingParts } = this;
17625
17628
  const activePart = this.getActivePartsWithFallback();
17626
- return (hAsync("ion-picker-column", { class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
17629
+ return (hAsync("ion-picker-column", { "aria-label": "Select a month", class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
17627
17630
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { month: ev.detail.value }));
17628
17631
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { month: ev.detail.value }));
17629
17632
  ev.stopPropagation();
@@ -17635,7 +17638,7 @@ class Datetime {
17635
17638
  }
17636
17639
  const { disabled, workingParts } = this;
17637
17640
  const activePart = this.getActivePartsWithFallback();
17638
- return (hAsync("ion-picker-column", { class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
17641
+ return (hAsync("ion-picker-column", { "aria-label": "Select a year", class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
17639
17642
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { year: ev.detail.value }));
17640
17643
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { year: ev.detail.value }));
17641
17644
  ev.stopPropagation();
@@ -17668,7 +17671,7 @@ class Datetime {
17668
17671
  if (hoursData.length === 0)
17669
17672
  return [];
17670
17673
  const activePart = this.getActivePartsWithFallback();
17671
- return (hAsync("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
17674
+ return (hAsync("ion-picker-column", { "aria-label": "Select an hour", color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
17672
17675
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { hour: ev.detail.value }));
17673
17676
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { hour: ev.detail.value }));
17674
17677
  ev.stopPropagation();
@@ -17679,7 +17682,7 @@ class Datetime {
17679
17682
  if (minutesData.length === 0)
17680
17683
  return [];
17681
17684
  const activePart = this.getActivePartsWithFallback();
17682
- return (hAsync("ion-picker-column", { color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
17685
+ return (hAsync("ion-picker-column", { "aria-label": "Select a minute", color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
17683
17686
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { minute: ev.detail.value }));
17684
17687
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { minute: ev.detail.value }));
17685
17688
  ev.stopPropagation();
@@ -17692,7 +17695,7 @@ class Datetime {
17692
17695
  }
17693
17696
  const activePart = this.getActivePartsWithFallback();
17694
17697
  const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
17695
- return (hAsync("ion-picker-column", { style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
17698
+ return (hAsync("ion-picker-column", { "aria-label": "Select a day period", style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
17696
17699
  const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
17697
17700
  this.setWorkingParts(Object.assign(Object.assign({}, workingParts), { ampm: ev.detail.value, hour }));
17698
17701
  this.setActiveParts(Object.assign(Object.assign({}, activePart), { ampm: ev.detail.value, hour }));
@@ -18002,7 +18005,7 @@ class Datetime {
18002
18005
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
18003
18006
  const hasWheelVariant = hasDatePresentation && preferWheel;
18004
18007
  renderHiddenInput(true, el, name, formatValue(value), disabled);
18005
- return (hAsync(Host, { key: 'f1f8ca52cdd9cfc8394b0365c89c0d30cd7316e7', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
18008
+ return (hAsync(Host, { key: '4e247382419e963381c8dcde52ba5aaaae0e6cee', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
18006
18009
  [mode]: true,
18007
18010
  ['datetime-readonly']: readonly,
18008
18011
  ['datetime-disabled']: disabled,
@@ -18012,7 +18015,7 @@ class Datetime {
18012
18015
  [`datetime-size-${size}`]: true,
18013
18016
  [`datetime-prefer-wheel`]: hasWheelVariant,
18014
18017
  [`datetime-grid`]: isGridStyle,
18015
- })) }, hAsync("div", { key: '480068aa8072b60ac521646dfa82480c5f6ce6ef', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
18018
+ })) }, hAsync("div", { key: '27bc39dd318bab9dc4078eedc4fc1b4842f145e6', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
18016
18019
  }
18017
18020
  get el() { return getElement(this); }
18018
18021
  static get watchers() { return {
@@ -18081,6 +18084,8 @@ class Datetime {
18081
18084
  }; }
18082
18085
  }
18083
18086
  let datetimeIds = 0;
18087
+ const CANCEL_ROLE = 'datetime-cancel';
18088
+ const CONFIRM_ROLE = 'datetime-confirm';
18084
18089
  const WHEEL_ITEM_PART = 'wheel-item';
18085
18090
  const WHEEL_ITEM_ACTIVE_PART = `active`;
18086
18091
 
@@ -18418,11 +18423,11 @@ class DatetimeButton {
18418
18423
  render() {
18419
18424
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
18420
18425
  const mode = getIonMode$1(this);
18421
- return (hAsync(Host, { key: '26e606af6f067a5774db37ed41387ffebb941777', class: createColorClasses$1(color, {
18426
+ return (hAsync(Host, { key: '0be955404133adbb31ae16a6599014bb29765f19', class: createColorClasses$1(color, {
18422
18427
  [mode]: true,
18423
18428
  [`${selectedButton}-active`]: datetimeActive,
18424
18429
  ['datetime-button-disabled']: disabled,
18425
- }) }, dateText && (hAsync("button", { key: '6b7aa66a15b4a6d89d411e40586de28a2ac9f343', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: 'd42f34fd167be34386319e7ea788c2ab03c90b87', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '47dd34f3c2799064cac7a5fe25440ecc043950f0' }))), timeText && (hAsync("button", { key: 'd77424a20fae320654774c7bfc8a8e2369d3afe3', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: 'ac088a78141bb53f2efd48dd7745f8954c92378b', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b3a58ddfd28b9396e2518ffd62a045ec13d8b9d0' })))));
18430
+ }) }, dateText && (hAsync("button", { key: '812dcb50b17768cc13a5cfa0bcce8b113cee0f09', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, hAsync("slot", { key: '46930c740a32a78502df9e651f9bd5914d6a9fea', name: "date-target" }, dateText), mode === 'md' && hAsync("ion-ripple-effect", { key: '0602999cc8435dc37aa22da7f5531bc8cb71e1b4' }))), timeText && (hAsync("button", { key: 'ecdd21da5181ecbdce03209f9f6673b7dcbc1f78', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, hAsync("slot", { key: 'b5b093b5166d12d11e27360788edaac916d44390', name: "time-target" }, timeText), mode === 'md' && hAsync("ion-ripple-effect", { key: '70bb3a04f4748d13233eeb257503968dbd1161a9' })))));
18426
18431
  }
18427
18432
  get el() { return getElement(this); }
18428
18433
  static get style() { return {
@@ -18496,12 +18501,12 @@ class Fab {
18496
18501
  render() {
18497
18502
  const { horizontal, vertical, edge } = this;
18498
18503
  const mode = getIonMode$1(this);
18499
- return (hAsync(Host, { key: '8a310806d0e748d7ebb0ed3d9a2652038e0f2960', class: {
18504
+ return (hAsync(Host, { key: 'cb44cf6486b0a6439b99da87c065b0b52e2514f4', class: {
18500
18505
  [mode]: true,
18501
18506
  [`fab-horizontal-${horizontal}`]: horizontal !== undefined,
18502
18507
  [`fab-vertical-${vertical}`]: vertical !== undefined,
18503
18508
  'fab-edge': edge,
18504
- } }, hAsync("slot", { key: '9394ef6d6e5b0410fa6ba212171f687fb178ce2d' })));
18509
+ } }, hAsync("slot", { key: '1ed484c7ecb10cd81fbca9a4f5c4049bf82f9f8a' })));
18505
18510
  }
18506
18511
  get el() { return getElement(this); }
18507
18512
  static get watchers() { return {
@@ -18591,7 +18596,7 @@ class FabButton {
18591
18596
  rel: this.rel,
18592
18597
  target: this.target,
18593
18598
  };
18594
- return (hAsync(Host, { key: '4eee204d20b0e2ffed49a88f6cb3e04b6697965c', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
18599
+ return (hAsync(Host, { key: 'eb347f7d6749c40637540d84778eb8d1b667a947', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
18595
18600
  [mode]: true,
18596
18601
  'fab-button-in-list': inList,
18597
18602
  'fab-button-translucent-in-list': inList && translucent,
@@ -18602,7 +18607,7 @@ class FabButton {
18602
18607
  'ion-activatable': true,
18603
18608
  'ion-focusable': true,
18604
18609
  [`fab-button-${size}`]: size !== undefined,
18605
- }) }, hAsync(TagType, Object.assign({ key: '914561622c0c6bd41453e828a7d8a39f924875ac' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), hAsync("ion-icon", { key: '2c8090742a64c62a79243667027a195cca9d5912', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: 'c3e55291e4c4d306d34a4b95dd2e727e87bdf39c', class: "button-inner" }, hAsync("slot", { key: 'f8e57f71d8f8878d9746cfece82f57f19ef9e988' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'a5e94fa0bb9836072300617245ed0c1b4887bac6' }))));
18610
+ }) }, hAsync(TagType, Object.assign({ key: '83e853c8815f41543c848eb2e05ec2bb1716110a' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, onClick: (ev) => openURL(href, ev, this.routerDirection, this.routerAnimation) }, inheritedAttributes), hAsync("ion-icon", { key: '798deede94de658e4345acf7c2aafe2ab2567b0b', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: '99252fde6de1aca73fc240a6da7e29acac9acb18', class: "button-inner" }, hAsync("slot", { key: 'dc73e9b41bf1f0e385e5784f975dfb81e37c8dfb' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '8413e162f44a0350f54dff06cff7aad101de3549' }))));
18606
18611
  }
18607
18612
  get el() { return getElement(this); }
18608
18613
  static get style() { return {
@@ -18653,11 +18658,11 @@ class FabList {
18653
18658
  }
18654
18659
  render() {
18655
18660
  const mode = getIonMode$1(this);
18656
- return (hAsync(Host, { key: '64b33366447f66c7f979cfac56307fbb1a6fac1c', class: {
18661
+ return (hAsync(Host, { key: 'fa1d195b9950654ba0e984bf61d981c977d05275', class: {
18657
18662
  [mode]: true,
18658
18663
  'fab-list-active': this.activated,
18659
18664
  [`fab-list-side-${this.side}`]: true,
18660
- } }, hAsync("slot", { key: 'd9f474f7f20fd7e813db358fddc720534ca05bb6' })));
18665
+ } }, hAsync("slot", { key: '2ec738c66c05112e1e2521155d6adfc36d2fd1db' })));
18661
18666
  }
18662
18667
  get el() { return getElement(this); }
18663
18668
  static get watchers() { return {
@@ -19109,7 +19114,7 @@ class Footer {
19109
19114
  const mode = getIonMode$1(this);
19110
19115
  const tabs = this.el.closest('ion-tabs');
19111
19116
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
19112
- return (hAsync(Host, { key: 'ddc228f1a1e7fa4f707dccf74db2490ca3241137', role: "contentinfo", class: {
19117
+ return (hAsync(Host, { key: '5da19dc38ba73e1ddfd1bef3ebd485105d77c751', role: "contentinfo", class: {
19113
19118
  [mode]: true,
19114
19119
  // Used internally for styling
19115
19120
  [`footer-${mode}`]: true,
@@ -19117,7 +19122,7 @@ class Footer {
19117
19122
  [`footer-translucent-${mode}`]: translucent,
19118
19123
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
19119
19124
  [`footer-collapse-${collapse}`]: collapse !== undefined,
19120
- } }, mode === 'ios' && translucent && hAsync("div", { key: 'e16ed4963ff94e06de77eb8038201820af73937c', class: "footer-background" }), hAsync("slot", { key: 'f186934febf85d37133d9351a96c1a64b0a4b203' })));
19125
+ } }, mode === 'ios' && translucent && hAsync("div", { key: 'fafad08090a33d8c4e8a5b63d61929dcb89aab47', class: "footer-background" }), hAsync("slot", { key: 'e0a443d346afa55e4317c0bc1263fdbe3c619559' })));
19121
19126
  }
19122
19127
  get el() { return getElement(this); }
19123
19128
  static get style() { return {
@@ -19148,10 +19153,10 @@ class Grid {
19148
19153
  }
19149
19154
  render() {
19150
19155
  const mode = getIonMode$1(this);
19151
- return (hAsync(Host, { key: '617127ecfabf9bf615bef1dda1be3fed5a065949', class: {
19156
+ return (hAsync(Host, { key: '930ce78b02f8360fbca08a35d364d2c09128c6c8', class: {
19152
19157
  [mode]: true,
19153
19158
  'grid-fixed': this.fixed,
19154
- } }, hAsync("slot", { key: 'c781fff853b093d8f44bdb7943bbc4f17c903803' })));
19159
+ } }, hAsync("slot", { key: 'c47bf7ef2197f5ebc42d3e2c55044276fb0db393' })));
19155
19160
  }
19156
19161
  static get style() { return IonGridStyle0; }
19157
19162
  static get cmpMeta() { return {
@@ -19482,14 +19487,14 @@ class Header {
19482
19487
  const collapse = this.collapse || 'none';
19483
19488
  // banner role must be at top level, so remove role if inside a menu
19484
19489
  const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
19485
- return (hAsync(Host, Object.assign({ key: 'b6cc27f0b08afc9fcc889683525da765d80ba672', role: roleType, class: {
19490
+ return (hAsync(Host, Object.assign({ key: 'c687314ef290793a9d633ad20cfc5eeb47621e31', role: roleType, class: {
19486
19491
  [mode]: true,
19487
19492
  // Used internally for styling
19488
19493
  [`header-${mode}`]: true,
19489
19494
  [`header-translucent`]: this.translucent,
19490
19495
  [`header-collapse-${collapse}`]: true,
19491
19496
  [`header-translucent-${mode}`]: this.translucent,
19492
- } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: '395766d4dcee3398bc91960db21f922095292f14', class: "header-background" }), hAsync("slot", { key: '09a67ece27b258ff1248805d43d92a49b2c6859a' })));
19497
+ } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { key: 'b429996046082405a91e7c23f95516db0b736f12', class: "header-background" }), hAsync("slot", { key: 'e17a8965f8d3a33c1bfcb056c153d8242e5229fa' })));
19493
19498
  }
19494
19499
  get el() { return getElement(this); }
19495
19500
  static get style() { return {
@@ -19768,7 +19773,7 @@ class Img {
19768
19773
  render() {
19769
19774
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
19770
19775
  const { draggable } = inheritedAttributes;
19771
- return (hAsync(Host, { key: 'da600442894427dee1974a28e545613afac69fca', class: getIonMode$1(this) }, hAsync("img", { key: '16df0c7069af86c0fa7ce5af598bc0f63b4eb71a', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19776
+ return (hAsync(Host, { key: '14d24d65ec8e5522192ca58035264971b1ab883b', class: getIonMode$1(this) }, hAsync("img", { key: '345ba155a5fdce5e66c397a599b7333d37d9cb1d', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
19772
19777
  }
19773
19778
  get el() { return getElement(this); }
19774
19779
  static get watchers() { return {
@@ -19975,7 +19980,7 @@ class InfiniteScroll {
19975
19980
  render() {
19976
19981
  const mode = getIonMode$1(this);
19977
19982
  const disabled = this.disabled;
19978
- return (hAsync(Host, { key: 'e844956795f69be33396ce4480aa7a54ad01b28c', class: {
19983
+ return (hAsync(Host, { key: '1444429a86950c449953cbf578436cc8cabf40ec', class: {
19979
19984
  [mode]: true,
19980
19985
  'infinite-scroll-loading': this.isLoading,
19981
19986
  'infinite-scroll-enabled': !disabled,
@@ -20031,11 +20036,11 @@ class InfiniteScrollContent {
20031
20036
  }
20032
20037
  render() {
20033
20038
  const mode = getIonMode$1(this);
20034
- return (hAsync(Host, { key: '7c16060dcfe2a0b0fb3e2f8f4c449589a76f1baa', class: {
20039
+ return (hAsync(Host, { key: '060278bf9cb0321e182352f9613be4ebbb028259', class: {
20035
20040
  [mode]: true,
20036
20041
  // Used internally for styling
20037
20042
  [`infinite-scroll-content-${mode}`]: true,
20038
- } }, hAsync("div", { key: 'a94f4d8746e053dc718f97520bd7e48cb316443a', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: '10143d5d2a50a2a2bc5de1cee8e7ab51263bcf23', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: '8846e88191690d9c61a0b462889ed56fbfed8b0d', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20043
+ } }, hAsync("div", { key: '07d3cada920145f979ad315bd187fb878e0c3da3', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { key: '6254f175d7543d09f3dd47cd0589a2809182cd8c', class: "infinite-loading-spinner" }, hAsync("ion-spinner", { key: 'a6a816d1c65b60b786333b209b63492aa716a283', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20039
20044
  }
20040
20045
  static get style() { return {
20041
20046
  ios: IonInfiniteScrollContentIosStyle0,
@@ -20459,6 +20464,7 @@ class Input {
20459
20464
  this.autocorrect = 'off';
20460
20465
  this.autofocus = false;
20461
20466
  this.clearInput = false;
20467
+ this.clearInputIcon = undefined;
20462
20468
  this.clearOnEdit = undefined;
20463
20469
  this.counter = false;
20464
20470
  this.counterFormatter = undefined;
@@ -20739,11 +20745,13 @@ class Input {
20739
20745
  return this.renderLabel();
20740
20746
  }
20741
20747
  render() {
20742
- const { disabled, fill, readonly, shape, inputId, labelPlacement, el, hasFocus } = this;
20748
+ const { disabled, fill, readonly, shape, inputId, labelPlacement, el, hasFocus, clearInputIcon } = this;
20743
20749
  const mode = getIonMode$1(this);
20744
20750
  const value = this.getValue();
20745
20751
  const inItem = hostContext('ion-item', this.el);
20746
20752
  const shouldRenderHighlight = mode === 'md' && fill !== 'outline' && !inItem;
20753
+ const defaultClearIcon = mode === 'ios' ? closeCircle : closeSharp;
20754
+ const clearIconData = clearInputIcon !== null && clearInputIcon !== void 0 ? clearInputIcon : defaultClearIcon;
20747
20755
  const hasValue = this.hasValue();
20748
20756
  const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
20749
20757
  /**
@@ -20764,7 +20772,7 @@ class Input {
20764
20772
  * TODO(FW-5592): Remove hasStartEndSlots condition
20765
20773
  */
20766
20774
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
20767
- return (hAsync(Host, { key: '083568e68a2970485e93a84ad3b837c117e03fed', class: createColorClasses$1(this.color, {
20775
+ return (hAsync(Host, { key: '72705dc05d44da17c617402c2d236a7b58b314f4', class: createColorClasses$1(this.color, {
20768
20776
  [mode]: true,
20769
20777
  'has-value': hasValue,
20770
20778
  'has-focus': hasFocus,
@@ -20775,14 +20783,14 @@ class Input {
20775
20783
  'in-item': inItem,
20776
20784
  'in-item-color': hostContext('ion-item.ion-color', this.el),
20777
20785
  'input-disabled': disabled,
20778
- }) }, hAsync("label", { key: '5e6767a20b8ac61d5df69106f4ce11ecc46ae5bf', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '4af8df127e8194b4eeb8b16936a36489aee17009', class: "native-wrapper" }, hAsync("slot", { key: '90e925fa36a5c057a4ca5e03d5fcaf8e12e711ad', name: "start" }), hAsync("input", Object.assign({ key: '0a5455e8c31beca48e08b97faa5e3e069822248f', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '2f51b23231d9ca819d2af069f3d32df4e29d042d', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
20786
+ }) }, hAsync("label", { key: 'f8c3f6da165b1299f0a6ceb5f4801e4d11eef832', class: "input-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: 'a9232033f23a51ec542bf23e7691966eefdf30c1', class: "native-wrapper" }, hAsync("slot", { key: 'c38d8d6a4bbb64d5416a2f5948055610278c4527', name: "start" }), hAsync("input", Object.assign({ key: 'bb00038edf66e9617439b5b12600f38a9ba06dc6', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '8aa7bdac43a74bc16c7163b5af8dff6d5b37ce0a', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
20779
20787
  /**
20780
20788
  * This prevents mobile browsers from
20781
20789
  * blurring the input when the clear
20782
20790
  * button is activated.
20783
20791
  */
20784
20792
  ev.preventDefault();
20785
- }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '569290d2b83d2752cfda6b5d8a84c06945b5c943', "aria-hidden": "true", icon: mode === 'ios' ? closeCircle : closeSharp }))), hAsync("slot", { key: 'c94a79a60d5d403941dd641202125367ad490e53', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'b4f192ac376fdb1a2b0708797cac46f07818e962', class: "input-highlight" })), this.renderBottomContent()));
20793
+ }, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '200261c73f9610ef80609605ef2bc7b0affaf857', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '5f4511c2f332c906d1d24dfce77e8758e3869d1f', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '092a55c60b3ca1aaa4cc0ddd782b3ffc7cbc03fa', class: "input-highlight" })), this.renderBottomContent()));
20786
20794
  }
20787
20795
  get el() { return getElement(this); }
20788
20796
  static get watchers() { return {
@@ -20804,6 +20812,7 @@ class Input {
20804
20812
  "autocorrect": [1],
20805
20813
  "autofocus": [4],
20806
20814
  "clearInput": [4, "clear-input"],
20815
+ "clearInputIcon": [1, "clear-input-icon"],
20807
20816
  "clearOnEdit": [4, "clear-on-edit"],
20808
20817
  "counter": [4],
20809
20818
  "counterFormatter": [16],
@@ -20903,16 +20912,16 @@ class InputPasswordToggle {
20903
20912
  const showPasswordIcon = (_a = this.showIcon) !== null && _a !== void 0 ? _a : eye;
20904
20913
  const hidePasswordIcon = (_b = this.hideIcon) !== null && _b !== void 0 ? _b : eyeOff;
20905
20914
  const isPasswordVisible = type === 'text';
20906
- return (hAsync(Host, { key: 'd9811e25bfeb2aa197352bb9be852e9e420739d5', class: createColorClasses$1(color, {
20915
+ return (hAsync(Host, { key: 'ed1c29726ce0c91548f0e2ada61e3f8b5c813d2d', class: createColorClasses$1(color, {
20907
20916
  [mode]: true,
20908
- }) }, hAsync("ion-button", { key: '1eaea1442b248fb2b8d61538b27274e647a07804', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": "show password", role: "switch", type: "button", onPointerDown: (ev) => {
20917
+ }) }, hAsync("ion-button", { key: '9698eccdaedb86cf12d20acc53660371b3af3c55', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": "show password", role: "switch", type: "button", onPointerDown: (ev) => {
20909
20918
  /**
20910
20919
  * This prevents mobile browsers from
20911
20920
  * blurring the input when the password toggle
20912
20921
  * button is activated.
20913
20922
  */
20914
20923
  ev.preventDefault();
20915
- }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '9c88de8f4631d9bde222ce2edf6950d639e04773', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
20924
+ }, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '1f2119c30b56c800d9af44e6499445a0ebb466cf', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
20916
20925
  }
20917
20926
  get el() { return getElement(this); }
20918
20927
  static get watchers() { return {
@@ -21208,11 +21217,11 @@ class ItemDivider {
21208
21217
  }
21209
21218
  render() {
21210
21219
  const mode = getIonMode$1(this);
21211
- return (hAsync(Host, { key: '6cff318230a9b2a9db529df154285d3dd9822efe', class: createColorClasses$1(this.color, {
21220
+ return (hAsync(Host, { key: '60fda1dab7dbc0038ec7ff68a661896430f7d5c5', class: createColorClasses$1(this.color, {
21212
21221
  [mode]: true,
21213
21222
  'item-divider-sticky': this.sticky,
21214
21223
  item: true,
21215
- }) }, hAsync("slot", { key: 'eb50dfab74ab0fd13697db17ecd60e8fa0bf1750', name: "start" }), hAsync("div", { key: '2806efd89d086f4fb844a479d9c095e1e0775713', class: "item-divider-inner" }, hAsync("div", { key: '77b7d5fa987e5f1c26d8023cd1f974a8a263a3de', class: "item-divider-wrapper" }, hAsync("slot", { key: 'dbafb0deb140a19a2a9748fd5b48760c39c6fd2e' })), hAsync("slot", { key: 'ef9a848fe21e84ef21cd273b8a4d9f95f558175b', name: "end" }))));
21224
+ }) }, hAsync("slot", { key: '6ce072dfc2adfa699a2c34ffe25ed221c74d9eea', name: "start" }), hAsync("div", { key: '9a441be204ee2f0b567432722407c75e3cbbe942', class: "item-divider-inner" }, hAsync("div", { key: 'fd6f2969b345dba51400a290473e594d2d019dc5', class: "item-divider-wrapper" }, hAsync("slot", { key: 'ebf5601b21c4cf199c01bf142865b8da0c1ba4a6' })), hAsync("slot", { key: '249af8f30113f2c986976d518126661f65531121', name: "end" }))));
21216
21225
  }
21217
21226
  get el() { return getElement(this); }
21218
21227
  static get style() { return {
@@ -21244,7 +21253,7 @@ class ItemGroup {
21244
21253
  }
21245
21254
  render() {
21246
21255
  const mode = getIonMode$1(this);
21247
- return (hAsync(Host, { key: 'f9ffe0290d3fa546494fe55f952d8554f2a8abf8', role: "group", class: {
21256
+ return (hAsync(Host, { key: '24ff047b7c45f963f0dad072c65d38a230c2bc97', role: "group", class: {
21248
21257
  [mode]: true,
21249
21258
  // Used internally for styling
21250
21259
  [`item-group-${mode}`]: true,
@@ -21312,12 +21321,12 @@ class ItemOption {
21312
21321
  href: this.href,
21313
21322
  target: this.target,
21314
21323
  };
21315
- return (hAsync(Host, { key: '89310624997821858c1abde60c0ffb142ca466e0', onClick: this.onClick, class: createColorClasses$1(this.color, {
21324
+ return (hAsync(Host, { key: '1900e015f593fefd710478a2088e052399c957eb', onClick: this.onClick, class: createColorClasses$1(this.color, {
21316
21325
  [mode]: true,
21317
21326
  'item-option-disabled': disabled,
21318
21327
  'item-option-expandable': expandable,
21319
21328
  'ion-activatable': true,
21320
- }) }, hAsync(TagType, Object.assign({ key: 'e4dfbb3048eed03a7f7e84c6f75545e0ca9b45fb' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'dffcf437fbdc15f2e7a19e60a015e90c73c8377d', class: "button-inner" }, hAsync("slot", { key: '48a23512e0601e062118d8b2c46c8bb96f25509f', name: "top" }), hAsync("div", { key: '952a9a9aa3a476aa1f4408d7e208bf9e916b8c30', class: "horizontal-wrapper" }, hAsync("slot", { key: 'f8d18a61c1ecec4a22a55443cf72bbc51383b64f', name: "start" }), hAsync("slot", { key: '1f9f219e6f879d2e0bf6d80cf0d3f518eb14ce0e', name: "icon-only" }), hAsync("slot", { key: 'a55adcdbe68131e5b1855c2dd45dd9454ab544fb' }), hAsync("slot", { key: '3c4c85a4fbb7efc797d8bc5adf6d238da022ff9f', name: "end" })), hAsync("slot", { key: '503c7e4b306745c523f57f24399ea06ba9b1e21d', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'b0e270b0c4f3ff9f9b6d74bad12a9278d7633226' }))));
21329
+ }) }, hAsync(TagType, Object.assign({ key: '5db2bb9bc72b7b00c324e4189cd1b5f862680ebb' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: '6927e812ad001c5e7bd17f440d82c3830c58957b', class: "button-inner" }, hAsync("slot", { key: '0fde4333def94c55d1318868c2bc71e780d5876a', name: "top" }), hAsync("div", { key: '7ecc9ae8ddf66d7ed5d9f30becc9faf820e1c62e', class: "horizontal-wrapper" }, hAsync("slot", { key: 'a15567fd4bd91080e9fbb6bb0c9b0e67d8a67051', name: "start" }), hAsync("slot", { key: '7f86cdd28063e23f9d78997623333c5037c4f364', name: "icon-only" }), hAsync("slot", { key: '4abb69ce3ad6c4917dd87b7b1eb0fa1c69917d73' }), hAsync("slot", { key: '8b35a29f48722040465f182679ac17209937578d', name: "end" })), hAsync("slot", { key: 'fa15a00891b41d66a4ccb51575dec54b72d0059e', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '0c071910c90fafca8026f59d78f4d9d5224d150a' }))));
21321
21330
  }
21322
21331
  get el() { return getElement(this); }
21323
21332
  static get style() { return {
@@ -21364,7 +21373,7 @@ class ItemOptions {
21364
21373
  render() {
21365
21374
  const mode = getIonMode$1(this);
21366
21375
  const isEnd = isEndSide(this.side);
21367
- return (hAsync(Host, { key: '6d91399d2aaaa81d514d0bbc8dffe53eeec25d36', class: {
21376
+ return (hAsync(Host, { key: 'e28cd6a236323b5cc203c9b96782aa81024da924', class: {
21368
21377
  [mode]: true,
21369
21378
  // Used internally for styling
21370
21379
  [`item-options-${mode}`]: true,
@@ -21826,7 +21835,7 @@ class ItemSliding {
21826
21835
  }
21827
21836
  render() {
21828
21837
  const mode = getIonMode$1(this);
21829
- return (hAsync(Host, { key: '47a3edd2ef2080ed9cfc2784277dea09785c7dc4', class: {
21838
+ return (hAsync(Host, { key: '99f87c8bd794ae69830b407ba55013ac44793c26', class: {
21830
21839
  [mode]: true,
21831
21840
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
21832
21841
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -21935,13 +21944,13 @@ class Label {
21935
21944
  render() {
21936
21945
  const position = this.position;
21937
21946
  const mode = getIonMode$1(this);
21938
- return (hAsync(Host, { key: '6353a70565ef6fbbbf4042b000e536c61bcf99a9', class: createColorClasses$1(this.color, {
21947
+ return (hAsync(Host, { key: 'c2c0f388dab910d294efb9fbb409ee4ef829c1ed', class: createColorClasses$1(this.color, {
21939
21948
  [mode]: true,
21940
21949
  'in-item-color': hostContext('ion-item.ion-color', this.el),
21941
21950
  [`label-${position}`]: position !== undefined,
21942
21951
  [`label-no-animate`]: this.noAnimate,
21943
21952
  'label-rtl': document.dir === 'rtl',
21944
- }) }, hAsync("slot", { key: '6ef9c2758c0168442aa84941af0a6cec1ef1ec21' })));
21953
+ }) }, hAsync("slot", { key: '4de6b69950f417873a13c851018ec31ea2686f0a' })));
21945
21954
  }
21946
21955
  get el() { return getElement(this); }
21947
21956
  static get watchers() { return {
@@ -21997,7 +22006,7 @@ class List {
21997
22006
  render() {
21998
22007
  const mode = getIonMode$1(this);
21999
22008
  const { lines, inset } = this;
22000
- return (hAsync(Host, { key: '5ff2b0b3989cc99ce17abb8bcd7ec1847940d1ec', role: "list", class: {
22009
+ return (hAsync(Host, { key: '8bde220025a7eeca6da075379c6487c4c9bdddc1', role: "list", class: {
22001
22010
  [mode]: true,
22002
22011
  // Used internally for styling
22003
22012
  [`list-${mode}`]: true,
@@ -22043,10 +22052,10 @@ class ListHeader {
22043
22052
  render() {
22044
22053
  const { lines } = this;
22045
22054
  const mode = getIonMode$1(this);
22046
- return (hAsync(Host, { key: 'fb78bd8601cbd7b90ec84a96e0c8325be1132b1e', class: createColorClasses$1(this.color, {
22055
+ return (hAsync(Host, { key: '7e2e050f13722f2b870a2415d99a9e631e9ca267', class: createColorClasses$1(this.color, {
22047
22056
  [mode]: true,
22048
22057
  [`list-header-lines-${lines}`]: lines !== undefined,
22049
- }) }, hAsync("div", { key: '2580ad49f3a54973e15f14d645a1e55a6fa066ac', class: "list-header-inner" }, hAsync("slot", { key: '677b2e2ec8eeb3ae6ad329e86c76451cf3ae6c2f' }))));
22058
+ }) }, hAsync("div", { key: '6117bebc45800d874e9b75355476fbced5cc8398', class: "list-header-inner" }, hAsync("slot", { key: '9165fb274cd2c45a5a65c271d8b1f30e8a00c890' }))));
22050
22059
  }
22051
22060
  static get style() { return {
22052
22061
  ios: IonListHeaderIosStyle0,
@@ -22312,9 +22321,9 @@ class Loading {
22312
22321
  * Otherwise, don't set aria-labelledby.
22313
22322
  */
22314
22323
  const ariaLabelledBy = message !== undefined ? msgId : null;
22315
- return (hAsync(Host, Object.assign({ key: 'f48fc35c38f3c200f39a44f3e741c1676057248e', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22324
+ return (hAsync(Host, Object.assign({ key: '4610b316b10a4df3416d0e83062935f3079baff2', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22316
22325
  zIndex: `${40000 + this.overlayIndex}`,
22317
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'e46058f693235c8ce5474df167595f6a80e4559d', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '2ecd77581a2f130616033b8a78fb9da9d508b588', tabindex: "0" }), hAsync("div", { key: '0243f93c41684f30c81623a8fbb533fd8f17b679', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '0643bc42b6e691580d29af27ea5a9fe395a6c5ce', class: "loading-spinner" }, hAsync("ion-spinner", { key: 'f0417802dfbcad6ab9903b84bad692eedd326c88', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '3d3a256fe1074bda91cd09212460aa6460c4c723', tabindex: "0" })));
22326
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'd07d0759ed13093c4c4fe06be442dde4bd9c2c31', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'ed3ec8b48f049b592fbea9767cc3d448dc037938', tabindex: "0" }), hAsync("div", { key: 'c515f3badf149d83c1d67374ef3507415fe51422', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '265d1673c2deb751aeca285f5a18863bb629ca5e', class: "loading-spinner" }, hAsync("ion-spinner", { key: '155bf7c92f6d7afd8edbb39f2b47ad05b7d503f1', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'b0e21df5cf54f9b48a218a03543d8c86f5406522', tabindex: "0" })));
22318
22327
  }
22319
22328
  get el() { return getElement(this); }
22320
22329
  static get watchers() { return {
@@ -23295,14 +23304,14 @@ class Menu {
23295
23304
  * the ionBackButton listener in the menu controller
23296
23305
  * will handle closing the menu when Escape is pressed.
23297
23306
  */
23298
- return (hAsync(Host, { key: '68ea0bdf902c1f6369db93d69cacc0f30e1df32b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23307
+ return (hAsync(Host, { key: '30c0c9bfb8973e4a6feb658f8c4ee8e362f464ed', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23299
23308
  [mode]: true,
23300
23309
  [`menu-type-${type}`]: true,
23301
23310
  'menu-enabled': !disabled,
23302
23311
  [`menu-side-${side}`]: true,
23303
23312
  'menu-pane-visible': isPaneVisible,
23304
23313
  'split-pane-side': hostContext('ion-split-pane', el),
23305
- } }, hAsync("div", { key: '7f32097faa4dcf64a568c7cf4b8397bbffc9f7a4', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '3d4fbc9142297708aa1b31eed875afe6ea79de04' })), hAsync("ion-backdrop", { key: 'f29f4615913da302212d54a43dce94ca5bfa86a5', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23314
+ } }, hAsync("div", { key: '34b0e5840906862cf1bc27207e089004b0402c56', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '2cd7e61a8c0987ca4b3f1f8b33cba7152f1275fe' })), hAsync("ion-backdrop", { key: 'd190b1f9b66c76e276f27bfe074d3aab796180fb', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23306
23315
  }
23307
23316
  get el() { return getElement(this); }
23308
23317
  static get watchers() { return {
@@ -23405,7 +23414,7 @@ class MenuButton {
23405
23414
  type: this.type,
23406
23415
  };
23407
23416
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
23408
- return (hAsync(Host, { key: '7ec29715ce7926b7c2b08f3d9cac8aaa16b3dc28', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
23417
+ return (hAsync(Host, { key: '95a8b9f09c7fae9713a8dc003ed277f6f31403da', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
23409
23418
  [mode]: true,
23410
23419
  button: true, // ion-buttons target .button
23411
23420
  'menu-button-hidden': hidden,
@@ -23414,7 +23423,7 @@ class MenuButton {
23414
23423
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
23415
23424
  'ion-activatable': true,
23416
23425
  'ion-focusable': true,
23417
- }) }, hAsync("button", Object.assign({ key: 'd4c5929264af3ba0328118bcc27d2ab7ef5d3809' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '7bfa6e9a93105486623d044861e879ec79ff64f1', class: "button-inner" }, hAsync("slot", { key: '071ab58e285832fc188706166f5547d45d501ac5' }, hAsync("ion-icon", { key: '918ec5d791921de9821c347af4f65f97dd94aabf', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: '00ffdd53f635e706c1dbd01b8e7944498650fe81', type: "unbounded" }))));
23426
+ }) }, hAsync("button", Object.assign({ key: '39f3ce20c400d2fac4890a042e8e44426709fca5' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '310978dc1cdef668de6720cde2a2304253679176', class: "button-inner" }, hAsync("slot", { key: '2a2b9de524c1fc3c526fe9559cb077b976852725' }, hAsync("ion-icon", { key: '9c22d7ea9fc3d76c32ec1c1b4b13d982c60b8c2d', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: 'c58c9e29c763070383472f65a9d322a684bcb564', type: "unbounded" }))));
23418
23427
  }
23419
23428
  get el() { return getElement(this); }
23420
23429
  static get style() { return {
@@ -23463,10 +23472,10 @@ class MenuToggle {
23463
23472
  render() {
23464
23473
  const mode = getIonMode$1(this);
23465
23474
  const hidden = this.autoHide && !this.visible;
23466
- return (hAsync(Host, { key: '7c27ea5b0795676bf5cb33e1f83aa142c197f64e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
23475
+ return (hAsync(Host, { key: '90e621f09792383f1badcc1b402b1ac7d08c5f98', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
23467
23476
  [mode]: true,
23468
23477
  'menu-toggle-hidden': hidden,
23469
- } }, hAsync("slot", { key: '69f187becedc0fe34603d41d279f043cf0fdf776' })));
23478
+ } }, hAsync("slot", { key: 'c0abdd1d91e9d80ee3704e3e374ebe1f29078460' })));
23470
23479
  }
23471
23480
  static get style() { return IonMenuToggleStyle0; }
23472
23481
  static get cmpMeta() { return {
@@ -24502,7 +24511,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
24502
24511
  * as inputs should not be focusable outside
24503
24512
  * the sheet.
24504
24513
  */
24505
- baseEl.classList.remove('ion-disable-focus-trap');
24514
+ baseEl.classList.remove(FOCUS_TRAP_DISABLE_CLASS);
24506
24515
  };
24507
24516
  const disableBackdrop = () => {
24508
24517
  baseEl.style.setProperty('pointer-events', 'none');
@@ -24514,7 +24523,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
24514
24523
  * Adding this class disables focus trapping
24515
24524
  * for the sheet temporarily.
24516
24525
  */
24517
- baseEl.classList.add('ion-disable-focus-trap');
24526
+ baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
24518
24527
  };
24519
24528
  /**
24520
24529
  * After the entering animation completes,
@@ -24889,6 +24898,7 @@ class Modal {
24889
24898
  this.isOpen = false;
24890
24899
  this.trigger = undefined;
24891
24900
  this.keepContentsMounted = false;
24901
+ this.focusTrap = true;
24892
24902
  this.canDismiss = true;
24893
24903
  }
24894
24904
  onIsOpenChange(newValue, oldValue) {
@@ -25345,23 +25355,23 @@ class Modal {
25345
25355
  return true;
25346
25356
  }
25347
25357
  render() {
25348
- const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes } = this;
25358
+ const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
25349
25359
  const showHandle = handle !== false && isSheetModal;
25350
25360
  const mode = getIonMode$1(this);
25351
25361
  const isCardModal = presentingElement !== undefined && mode === 'ios';
25352
25362
  const isHandleCycle = handleBehavior === 'cycle';
25353
- return (hAsync(Host, Object.assign({ key: 'bb00efb8cbbdb2d1bbcc5e9c638586e2904882a8', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25363
+ return (hAsync(Host, Object.assign({ key: 'fe6fd17cf857127f89d652b9aa3e9473d28c55db', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25354
25364
  zIndex: `${20000 + this.overlayIndex}`,
25355
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: 'd2d50f736fdc34b933c00309fe0b67e4aff7ee63', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '5d3523a04da9350ae435a4f3247198095b71f206', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '09b3c4b629155f8c32f5c896cf689ffbe7004de8',
25365
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), hAsync("ion-backdrop", { key: '0f3a31363c2717e5483bc0412c25804897d4aff8', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '0e5ed59162ff08fe0a9f757e06bdacc75f65c0ed', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '35cdbe2238765e5f346ad7be64f7eefa8c78f0c0',
25356
25366
  /*
25357
25367
  role and aria-modal must be used on the
25358
25368
  same element. They must also be set inside the
25359
25369
  shadow DOM otherwise ion-button will not be highlighted
25360
25370
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
25361
25371
  */
25362
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'e47d90068927f3a518e4144e17f18ac326126712', class: "modal-handle",
25372
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '7a4031eaebf9a098f4c4220a5fe9d1c25cc0ec92', class: "modal-handle",
25363
25373
  // Prevents the handle from receiving keyboard focus when it does not cycle
25364
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '5733e94b3ecc4ed9bfb6aec5cd254cd0e43ee8f7' }))));
25374
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), hAsync("slot", { key: '534adc8e5bd850199fe2e9e16f0e7c19217d8486' }))));
25365
25375
  }
25366
25376
  get el() { return getElement(this); }
25367
25377
  static get watchers() { return {
@@ -25398,6 +25408,7 @@ class Modal {
25398
25408
  "isOpen": [4, "is-open"],
25399
25409
  "trigger": [1],
25400
25410
  "keepContentsMounted": [4, "keep-contents-mounted"],
25411
+ "focusTrap": [4, "focus-trap"],
25401
25412
  "canDismiss": [4, "can-dismiss"],
25402
25413
  "presented": [32],
25403
25414
  "present": [64],
@@ -26309,7 +26320,7 @@ class Nav {
26309
26320
  }
26310
26321
  }
26311
26322
  render() {
26312
- return hAsync("slot", { key: 'dfe98cb6604a2015a49f41beffebdd2da957dfff' });
26323
+ return hAsync("slot", { key: 'e9d99a8a0b84f02f9964d8143cd5e647e43334f9' });
26313
26324
  }
26314
26325
  get el() { return getElement(this); }
26315
26326
  static get watchers() { return {
@@ -26382,7 +26393,7 @@ class NavLink {
26382
26393
  this.routerAnimation = undefined;
26383
26394
  }
26384
26395
  render() {
26385
- return hAsync(Host, { key: 'd2f8545b4fbd5aa25ef36eb01dffbc5d35ccfbb9', onClick: this.onClick });
26396
+ return hAsync(Host, { key: '42c23dcdec5fdb25defebaf6e8a9fa75754ff8eb', onClick: this.onClick });
26386
26397
  }
26387
26398
  get el() { return getElement(this); }
26388
26399
  static get cmpMeta() { return {
@@ -26416,9 +26427,9 @@ class Note {
26416
26427
  }
26417
26428
  render() {
26418
26429
  const mode = getIonMode$1(this);
26419
- return (hAsync(Host, { key: '10a3495bc21166176986441479f8f7539029d161', class: createColorClasses$1(this.color, {
26430
+ return (hAsync(Host, { key: '90ec2fe8c9487608ed8c0bdc32c2e80a6a0890b3', class: createColorClasses$1(this.color, {
26420
26431
  [mode]: true,
26421
- }) }, hAsync("slot", { key: 'b6a9459e1b85f608fafd060a4bfeb11637ebe873' })));
26432
+ }) }, hAsync("slot", { key: '115ee3f79e6c526b0644443aad468e99385d0eda' })));
26422
26433
  }
26423
26434
  static get style() { return {
26424
26435
  ios: IonNoteIosStyle0,
@@ -26915,7 +26926,7 @@ class Picker$1 {
26915
26926
  this.emitInputModeChange();
26916
26927
  }
26917
26928
  render() {
26918
- return (hAsync(Host, { key: 'f92214a09dc85b65873676f40fde2b802960e704', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: '6da37f75aca4ea1c9cb3bc733ebda2116279f313', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
26929
+ return (hAsync(Host, { key: '02b0687b1f80ba295a965dfba76dd59e2d1de5d3', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: 'f83ed84bcf9e02539c00d8a4e63e6a0d7fc4ac71', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
26919
26930
  var _a;
26920
26931
  /**
26921
26932
  * The "Enter" key represents
@@ -26930,7 +26941,7 @@ class Picker$1 {
26930
26941
  if (ev.key === 'Enter') {
26931
26942
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
26932
26943
  }
26933
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '298e99d83dd3f5bf2798150bab0bb4024af472fa', class: "picker-before" }), hAsync("div", { key: 'ea578f04eb562a4dc6d6cc92de133dcb9fb7f42a', class: "picker-after" }), hAsync("div", { key: '84567824956dfe967992a629904836ba8b75b3ec', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: 'df81f8fb90e1f649b608328034528f5c31c70c3b' })));
26944
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '45b07fb0617d8e006712776bf78302288edb3ff4', class: "picker-before" }), hAsync("div", { key: '73009229368e0d62b09c913aacade26f068a7aa9', class: "picker-after" }), hAsync("div", { key: 'b73da00e446cd1cfd511c39212e14a00d355752e', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: 'd969f5efc5ddb9eda6c4828702efd1ceeb69f767' })));
26934
26945
  }
26935
26946
  get el() { return getElement(this); }
26936
26947
  static get style() { return {
@@ -27180,11 +27191,11 @@ class Picker {
27180
27191
  render() {
27181
27192
  const { htmlAttributes } = this;
27182
27193
  const mode = getIonMode$1(this);
27183
- return (hAsync(Host, Object.assign({ key: 'cb1495acc8842c00e9f51ae792a01f769e36b0c6', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
27194
+ return (hAsync(Host, Object.assign({ key: '26e3144adcdf01605271d01e468bb4a75ce854b1', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
27184
27195
  zIndex: `${20000 + this.overlayIndex}`,
27185
27196
  }, class: Object.assign({ [mode]: true,
27186
27197
  // Used internally for styling
27187
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'eecbcdfd474f5ab2f9962a030b1dcbf7714fe938', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '262e1d3bc916b30068f7be1edbc73283a815fc0f', tabindex: "0" }), hAsync("div", { key: 'a036cf789ab768428aae26a19dbd0c5cb696188c', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '6be7a8986976ead39611ce398ed6ad71f3b7427e', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '66a1d99aebf48219cab4177d06d893fe1d458a1f', class: "picker-columns" }, hAsync("div", { key: 'ed7fd940c5f54453587e13ab52cbfd4122a397c6', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: '21c491c08bce126dde03196b21e28d903e157e1f', class: "picker-below-highlight" }))), hAsync("div", { key: 'bd892f74b886ae1bfd010d687a2b9741213b246c', tabindex: "0" })));
27198
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: 'fa212d21406606186cd95f8c7a4f119696ac8d4a', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '19ea889f65cb6a68a9db26cf9f83c6587cfcf07e', tabindex: "0" }), hAsync("div", { key: '5fc0f5d26915ba353b9f0335946f94b6fda95e1e', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '3fa5bff4ac0013ef31845482a27a14caebbdcd2f', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '2ff6376956d01dcd9ec01b8d6972dd4b37ffb1a1', class: "picker-columns" }, hAsync("div", { key: '4adcef77429f10a3faa50b41d1eaf3404387997c', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'e0f37d3e9896eb2bc0f0aef4762a897130851963', class: "picker-below-highlight" }))), hAsync("div", { key: '671bb7d0f487b0d7c7fa70388f8fa1de77448b9f', tabindex: "0" })));
27188
27199
  }
27189
27200
  get el() { return getElement(this); }
27190
27201
  static get watchers() { return {
@@ -27237,7 +27248,7 @@ const buttonClass$1 = (button) => {
27237
27248
  return Object.assign({ 'picker-button': true, 'ion-activatable': true }, getClassMap(button.cssClass));
27238
27249
  };
27239
27250
 
27240
- const pickerColumnCss = "/*!@:host*/.sc-ion-picker-column-h{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*/.picker-opts.sc-ion-picker-column{-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*/.picker-item-empty.sc-ion-picker-column{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*/.picker-opts.sc-ion-picker-column::-webkit-scrollbar{display:none}/*!@::slotted(ion-picker-column-option)*/.sc-ion-picker-column-s>ion-picker-column-option{display:block;scroll-snap-align:center}/*!@.picker-item-empty,\n:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled)*/.picker-item-empty.sc-ion-picker-column,.sc-ion-picker-column-h:not([disabled]).sc-ion-picker-column-s>ion-picker-column-option.option-disabled,.sc-ion-picker-column-h:not([disabled]) .sc-ion-picker-column-s>ion-picker-column-option.option-disabled{scroll-snap-align:none}/*!@::slotted([slot=prefix]), ::slotted([slot=suffix])*/.sc-ion-picker-column-s>[slot=prefix],.sc-ion-picker-column-s>[slot=suffix]{max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@::slotted([slot=prefix])*/.sc-ion-picker-column-s>[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])*/.sc-ion-picker-column-s>[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*/.picker-column-disabled.sc-ion-picker-column-h .picker-opts.sc-ion-picker-column{overflow-y:hidden}/*!@:host(.picker-column-disabled) ::slotted(ion-picker-column-option)*/.sc-ion-picker-column-h.picker-column-disabled .sc-ion-picker-column-s>ion-picker-column-option{cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){/*!@:host(:focus) .picker-opts*/.sc-ion-picker-column-h:focus .picker-opts.sc-ion-picker-column{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
27251
+ const pickerColumnCss = "/*!@:host*/.sc-ion-picker-column-h{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*/.assistive-focusable.sc-ion-picker-column{left:0;right:0;top:0;bottom:0;position:absolute;z-index:1;pointer-events:none}/*!@.assistive-focusable:focus*/.assistive-focusable.sc-ion-picker-column:focus{outline:none}/*!@.picker-opts*/.picker-opts.sc-ion-picker-column{-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*/.picker-item-empty.sc-ion-picker-column{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*/.picker-opts.sc-ion-picker-column::-webkit-scrollbar{display:none}/*!@::slotted(ion-picker-column-option)*/.sc-ion-picker-column-s>ion-picker-column-option{display:block;scroll-snap-align:center}/*!@.picker-item-empty,\n:host(:not([disabled])) ::slotted(ion-picker-column-option.option-disabled)*/.picker-item-empty.sc-ion-picker-column,.sc-ion-picker-column-h:not([disabled]).sc-ion-picker-column-s>ion-picker-column-option.option-disabled,.sc-ion-picker-column-h:not([disabled]) .sc-ion-picker-column-s>ion-picker-column-option.option-disabled{scroll-snap-align:none}/*!@::slotted([slot=prefix]), ::slotted([slot=suffix])*/.sc-ion-picker-column-s>[slot=prefix],.sc-ion-picker-column-s>[slot=suffix]{max-width:200px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@::slotted([slot=prefix])*/.sc-ion-picker-column-s>[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])*/.sc-ion-picker-column-s>[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*/.picker-column-disabled.sc-ion-picker-column-h .picker-opts.sc-ion-picker-column{overflow-y:hidden}/*!@:host(.picker-column-disabled) ::slotted(ion-picker-column-option)*/.sc-ion-picker-column-h.picker-column-disabled .sc-ion-picker-column-s>ion-picker-column-option{cursor:default;opacity:0.4;pointer-events:none}@media (any-hover: hover){/*!@:host(:focus) .picker-opts*/.sc-ion-picker-column-h:focus .picker-opts.sc-ion-picker-column{outline:none;background:rgba(var(--ion-color-base-rgb), 0.2)}}";
27241
27252
  var IonPickerColumnStyle0 = pickerColumnCss;
27242
27253
 
27243
27254
  /**
@@ -27253,6 +27264,7 @@ class PickerColumn {
27253
27264
  this.isScrolling = false;
27254
27265
  this.isColumnVisible = false;
27255
27266
  this.canExitInputMode = true;
27267
+ this.updateValueTextOnScroll = false;
27256
27268
  this.centerPickerItemInView = (target, smooth = true, canExitInputMode = true) => {
27257
27269
  const { isColumnVisible, scrollEl } = this;
27258
27270
  if (isColumnVisible && scrollEl) {
@@ -27267,6 +27279,7 @@ class PickerColumn {
27267
27279
  * of these can cause a scroll to occur.
27268
27280
  */
27269
27281
  this.canExitInputMode = canExitInputMode;
27282
+ this.updateValueTextOnScroll = false;
27270
27283
  scrollEl.scroll({
27271
27284
  top,
27272
27285
  left: 0,
@@ -27339,6 +27352,7 @@ class PickerColumn {
27339
27352
  let activeEl = this.activeItem;
27340
27353
  const scrollCallback = () => {
27341
27354
  raf(() => {
27355
+ var _a;
27342
27356
  if (!scrollEl)
27343
27357
  return;
27344
27358
  if (timeout) {
@@ -27419,8 +27433,23 @@ class PickerColumn {
27419
27433
  }
27420
27434
  activeEl = newActiveElement;
27421
27435
  this.setPickerItemActiveState(newActiveElement, true);
27436
+ /**
27437
+ * Set the aria-valuetext even though the value prop has not been updated yet.
27438
+ * This enables some screen readers to announce the value as the users drag
27439
+ * as opposed to when their release their pointer from the screen.
27440
+ *
27441
+ * When the value is programmatically updated, we will smoothly scroll
27442
+ * to the new option. However, we do not want to update aria-valuetext mid-scroll
27443
+ * as that can cause the old value to be briefly set before being set to the
27444
+ * correct option. This will cause some screen readers to announce the old value
27445
+ * again before announcing the new value. The correct valuetext will be set on render.
27446
+ */
27447
+ if (this.updateValueTextOnScroll) {
27448
+ (_a = this.assistiveFocusable) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
27449
+ }
27422
27450
  timeout = setTimeout(() => {
27423
27451
  this.isScrolling = false;
27452
+ this.updateValueTextOnScroll = true;
27424
27453
  enableHaptics && hapticSelectionEnd();
27425
27454
  /**
27426
27455
  * Certain tasks (such as those that
@@ -27479,12 +27508,139 @@ class PickerColumn {
27479
27508
  */
27480
27509
  this.el.classList.remove('picker-column-active');
27481
27510
  };
27511
+ /**
27512
+ * Find the next enabled option after the active option.
27513
+ * @param stride - How many options to "jump" over in order to select the next option.
27514
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
27515
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
27516
+ * the enabled option 5 options after the active one. Note that the actual option selected
27517
+ * may be past the stride if the option at the stride is disabled.
27518
+ */
27519
+ this.findNextOption = (stride = 1) => {
27520
+ const { activeItem } = this;
27521
+ if (!activeItem)
27522
+ return null;
27523
+ let prevNode = activeItem;
27524
+ let node = activeItem.nextElementSibling;
27525
+ while (node != null) {
27526
+ if (stride > 0) {
27527
+ stride--;
27528
+ }
27529
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
27530
+ return node;
27531
+ }
27532
+ prevNode = node;
27533
+ // Use nextElementSibling instead of nextSibling to avoid text/comment nodes
27534
+ node = node.nextElementSibling;
27535
+ }
27536
+ return prevNode;
27537
+ };
27538
+ /**
27539
+ * Find the next enabled option after the active option.
27540
+ * @param stride - How many options to "jump" over in order to select the next option.
27541
+ * This can be used to implement PageUp/PageDown behaviors where pressing these keys
27542
+ * scrolls the picker by more than 1 option. For example, a stride of 5 means select
27543
+ * the enabled option 5 options before the active one. Note that the actual option selected
27544
+ * may be past the stride if the option at the stride is disabled.
27545
+ */
27546
+ this.findPreviousOption = (stride = 1) => {
27547
+ const { activeItem } = this;
27548
+ if (!activeItem)
27549
+ return null;
27550
+ let nextNode = activeItem;
27551
+ let node = activeItem.previousElementSibling;
27552
+ while (node != null) {
27553
+ if (stride > 0) {
27554
+ stride--;
27555
+ }
27556
+ if (node.tagName === 'ION-PICKER-COLUMN-OPTION' && !node.disabled && stride === 0) {
27557
+ return node;
27558
+ }
27559
+ nextNode = node;
27560
+ // Use previousElementSibling instead of previousSibling to avoid text/comment nodes
27561
+ node = node.previousElementSibling;
27562
+ }
27563
+ return nextNode;
27564
+ };
27565
+ this.onKeyDown = (ev) => {
27566
+ /**
27567
+ * The below operations should be inverted when running on a mobile device.
27568
+ * For example, swiping up will dispatch an "ArrowUp" event. On desktop,
27569
+ * this should cause the previous option to be selected. On mobile, swiping
27570
+ * up causes a view to scroll down. As a result, swiping up on mobile should
27571
+ * cause the next option to be selected. The Home/End operations remain
27572
+ * unchanged because those always represent the first/last options, respectively.
27573
+ */
27574
+ const mobile = isPlatform('mobile');
27575
+ let newOption = null;
27576
+ switch (ev.key) {
27577
+ case 'ArrowDown':
27578
+ newOption = mobile ? this.findPreviousOption() : this.findNextOption();
27579
+ break;
27580
+ case 'ArrowUp':
27581
+ newOption = mobile ? this.findNextOption() : this.findPreviousOption();
27582
+ break;
27583
+ case 'PageUp':
27584
+ newOption = mobile ? this.findNextOption(5) : this.findPreviousOption(5);
27585
+ break;
27586
+ case 'PageDown':
27587
+ newOption = mobile ? this.findPreviousOption(5) : this.findNextOption(5);
27588
+ break;
27589
+ case 'Home':
27590
+ /**
27591
+ * There is no guarantee that the first child will be an ion-picker-column-option,
27592
+ * so we do not use firstElementChild.
27593
+ */
27594
+ newOption = this.el.querySelector('ion-picker-column-option:first-of-type');
27595
+ break;
27596
+ case 'End':
27597
+ /**
27598
+ * There is no guarantee that the last child will be an ion-picker-column-option,
27599
+ * so we do not use lastElementChild.
27600
+ */
27601
+ newOption = this.el.querySelector('ion-picker-column-option:last-of-type');
27602
+ break;
27603
+ }
27604
+ if (newOption !== null) {
27605
+ this.value = newOption.value;
27606
+ // This stops any default browser behavior such as scrolling
27607
+ ev.preventDefault();
27608
+ }
27609
+ };
27610
+ /**
27611
+ * Utility to generate the correct text for aria-valuetext.
27612
+ */
27613
+ this.getOptionValueText = (el) => {
27614
+ var _a;
27615
+ return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
27616
+ };
27617
+ /**
27618
+ * Render an element that overlays the column. This element is for assistive
27619
+ * tech to allow users to navigate the column up/down. This element should receive
27620
+ * focus as it listens for synthesized keyboard events as required by the
27621
+ * slider role: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/slider_role
27622
+ */
27623
+ this.renderAssistiveFocusable = () => {
27624
+ const { activeItem } = this;
27625
+ const valueText = this.getOptionValueText(activeItem);
27626
+ /**
27627
+ * When using the picker, the valuetext provides important context that valuenow
27628
+ * does not. Additionally, using non-zero valuemin/valuemax values can cause
27629
+ * WebKit to incorrectly announce numeric valuetext values (such as a year
27630
+ * like "2024") as percentages: https://bugs.webkit.org/show_bug.cgi?id=273126
27631
+ */
27632
+ return (hAsync("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) }));
27633
+ };
27634
+ this.ariaLabel = null;
27482
27635
  this.isActive = false;
27483
27636
  this.disabled = false;
27484
27637
  this.value = undefined;
27485
27638
  this.color = 'primary';
27486
27639
  this.numericInput = false;
27487
27640
  }
27641
+ ariaLabelChanged(newValue) {
27642
+ this.ariaLabel = newValue;
27643
+ }
27488
27644
  valueChange() {
27489
27645
  if (this.isColumnVisible) {
27490
27646
  /**
@@ -27600,6 +27756,10 @@ class PickerColumn {
27600
27756
  this.scrollEl.focus();
27601
27757
  }
27602
27758
  }
27759
+ connectedCallback() {
27760
+ var _a;
27761
+ this.ariaLabel = (_a = this.el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : 'Select a value';
27762
+ }
27603
27763
  get activeItem() {
27604
27764
  const { value } = this;
27605
27765
  const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
@@ -27617,17 +27777,18 @@ class PickerColumn {
27617
27777
  render() {
27618
27778
  const { color, disabled, isActive, numericInput } = this;
27619
27779
  const mode = getIonMode$1(this);
27620
- return (hAsync(Host, { key: '59648ef23cef1ab6d30955bb95bc23e670ec7256', class: createColorClasses$1(color, {
27780
+ return (hAsync(Host, { key: '5a6b90bacbfa016d937d1c7ae6c55fd1e19729b5', class: createColorClasses$1(color, {
27621
27781
  [mode]: true,
27622
27782
  ['picker-column-active']: isActive,
27623
27783
  ['picker-column-numeric-input']: numericInput,
27624
27784
  ['picker-column-disabled']: disabled,
27625
- }) }, hAsync("slot", { key: 'fd93192d4945b2c33e0fe93cc90b505f2cec12fc', name: "prefix" }), hAsync("div", { key: '99e49c6d58badd2fe5e75f0ebcd4bc00eb50aa58', class: "picker-opts", tabindex: disabled ? undefined : 0, ref: (el) => {
27785
+ }) }, this.renderAssistiveFocusable(), hAsync("slot", { key: '25785dd94823696945830461404d4127ebfbdb82', name: "prefix" }), hAsync("div", { key: '94cb28b3a212574400c84f8e086a1c82654549dc', "aria-hidden": "true", class: "picker-opts", ref: (el) => {
27626
27786
  this.scrollEl = el;
27627
- } }, hAsync("div", { key: 'bb44892ef179b25373e45e4b4bc4d1fa617b1ea1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '9ee7aeb8468bbb03f7192d56849dae089b7a0250', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '0baa4bda4bf02a8d06dbf3392b1516ca8ea8d26a', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: 'ff4cad20fd82ab66599473f60d10c18dc1dc76d8' }), hAsync("div", { key: '04dcb0390209081e6223b90e45b8f2ef0fdf94bd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '734e3b431a30ce93957e1452516efc86e29ff9c9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '1c68dcf9a029e607bb6bc9c19cd02214914eb6d7', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'd85210cc99c8c1bf83eb1cd51540ebe875d4adeb', name: "suffix" })));
27787
+ } }, hAsync("div", { key: '19b174ac090d4670323fc2bd8ed8da44bf1ea692', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '8c7ce6384e94acfb6154d5850f4dbabbd542edce', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'ea4f5026eff35400698e84f0c88c57ed443d82d0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '627cb80802653c8e047304d71d1b12865df316b0' }), hAsync("div", { key: '468a4fdb3ba93bc5df7e99d68b388f8b52d70945', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '88d0030269d256b4217e99e26e9a80af81120164', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'fb312153e4ad2bdcf1646751d78eeb9afd83e79c', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: '7fb8379b86f016f70546110e1abf05fb02eb98fb', name: "suffix" })));
27628
27788
  }
27629
27789
  get el() { return getElement(this); }
27630
27790
  static get watchers() { return {
27791
+ "aria-label": ["ariaLabelChanged"],
27631
27792
  "value": ["valueChange"]
27632
27793
  }; }
27633
27794
  static get style() { return IonPickerColumnStyle0; }
@@ -27639,6 +27800,7 @@ class PickerColumn {
27639
27800
  "value": [1032],
27640
27801
  "color": [513],
27641
27802
  "numericInput": [4, "numeric-input"],
27803
+ "ariaLabel": [32],
27642
27804
  "isActive": [32],
27643
27805
  "scrollActiveItemIntoView": [64],
27644
27806
  "setValue": [64],
@@ -27989,9 +28151,9 @@ class PickerColumnCmp {
27989
28151
  render() {
27990
28152
  const col = this.col;
27991
28153
  const mode = getIonMode$1(this);
27992
- return (hAsync(Host, { key: 'c015eb8bc01b3287cbd1d71af0aa311b6be89d36', 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: {
28154
+ return (hAsync(Host, { key: '56289a294e5c580f3e7fe5fc12777aa7f80ad19b', 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: {
27993
28155
  'max-width': this.col.columnWidth,
27994
- } }, col.prefix && (hAsync("div", { key: 'f9de3fe2f5c7ad3256d6e5f44b6d03a2b1f96ffb', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '10f9c12aa174f96c7cf9adc30efbb26695c0aa64', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '1d9c0892ce56e0da9044c79eb953827166f5190b', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
28156
+ } }, col.prefix && (hAsync("div", { key: 'd21f44667b5df567d6879723fe643ea7c2c60bef', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: 'bb427e5f24fd832703926e0e847ad05567597262', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '0413f7c074b6534b8967387ecb9957a79a267aff', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
27995
28157
  }
27996
28158
  get el() { return getElement(this); }
27997
28159
  static get watchers() { return {
@@ -28095,10 +28257,10 @@ class PickerColumnOption {
28095
28257
  render() {
28096
28258
  const { color, disabled, ariaLabel } = this;
28097
28259
  const mode = getIonMode$1(this);
28098
- return (hAsync(Host, { key: 'c743c6ef44bb9f765cc15b3b5d2864de6520203a', class: createColorClasses$1(color, {
28260
+ return (hAsync(Host, { key: 'cc4435a0ce0e55be1321bcabaf342ed68cf5ba1e', class: createColorClasses$1(color, {
28099
28261
  [mode]: true,
28100
28262
  ['option-disabled']: disabled,
28101
- }) }, hAsync("button", { key: '4c3d9eb245c52b2c007f727e145cfb55759bd7a9', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: '4c907d2187cbe9d5941e27f2b12578e2b7271461' }))));
28263
+ }) }, hAsync("button", { key: '0187fb967771e0787807a8538dce4e59f6a98565', tabindex: "-1", "aria-label": ariaLabel, disabled: disabled, onClick: () => this.onClick() }, hAsync("slot", { key: 'dbe52552f3f27332816748c12d929cc81060841d' }))));
28102
28264
  }
28103
28265
  get el() { return getElement(this); }
28104
28266
  static get watchers() { return {
@@ -29181,6 +29343,7 @@ class Popover {
29181
29343
  this.arrow = true;
29182
29344
  this.isOpen = false;
29183
29345
  this.keyboardEvents = false;
29346
+ this.focusTrap = true;
29184
29347
  this.keepContentsMounted = false;
29185
29348
  }
29186
29349
  onTriggerChange() {
@@ -29407,12 +29570,12 @@ class Popover {
29407
29570
  }
29408
29571
  render() {
29409
29572
  const mode = getIonMode$1(this);
29410
- const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
29573
+ const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
29411
29574
  const desktop = isPlatform('desktop');
29412
29575
  const enableArrow = arrow && !parentPopover;
29413
- return (hAsync(Host, Object.assign({ key: '4bccccf57df72e1196c6a28e803831c0520aef53', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
29576
+ return (hAsync(Host, Object.assign({ key: '17e5e8b3e7ba5e251665fb9d0ade10c781f82f0e', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
29414
29577
  zIndex: `${20000 + this.overlayIndex}`,
29415
- }, class: Object.assign(Object.assign({}, 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 && hAsync("ion-backdrop", { key: 'e42f4f61150b7b41093d37d187d1b7bb4187a00e', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '386ac3247b0f82566aae07b6dbf5e97d243ce367', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '28f0e5ea2fa099b808ffb77a9a0d78b8b46c1513', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '7ba2e3dee529015c4e07ce78ec10dc59985ec6a2', class: "popover-content", part: "content" }, hAsync("slot", { key: '915cdc8e389fda210f83aec8b7bbbfa6f830a884' })))));
29578
+ }, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'c12fb94b375d7e88a0c5d715440c0f66ad7ee817', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '478b388cc9a5a382003a2863e968e77a174914ab', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: 'f1c63a0079f197a8d4577e7c00a654871fb9d816', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '08b62a321c09ad4b0f90460468ecbc1d56320bf1', class: "popover-content", part: "content" }, hAsync("slot", { key: '55645ff597f64d434219caa28015cf2a4ceb0ee5' })))));
29416
29579
  }
29417
29580
  get el() { return getElement(this); }
29418
29581
  static get watchers() { return {
@@ -29453,6 +29616,7 @@ class Popover {
29453
29616
  "arrow": [4],
29454
29617
  "isOpen": [4, "is-open"],
29455
29618
  "keyboardEvents": [4, "keyboard-events"],
29619
+ "focusTrap": [4, "focus-trap"],
29456
29620
  "keepContentsMounted": [4, "keep-contents-mounted"],
29457
29621
  "presented": [32],
29458
29622
  "presentFromTrigger": [64],
@@ -29503,7 +29667,7 @@ class ProgressBar {
29503
29667
  const mode = getIonMode$1(this);
29504
29668
  // If the progress is displayed as a solid bar.
29505
29669
  const progressSolid = buffer === 1;
29506
- return (hAsync(Host, { key: '8d8ddf0b26fe33803d3a6168cbedd523d1a888e7', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
29670
+ return (hAsync(Host, { key: 'b293f4475bcdaa7851b41ebfda659037f0365120', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
29507
29671
  [mode]: true,
29508
29672
  [`progress-bar-${type}`]: true,
29509
29673
  'progress-paused': paused,
@@ -29660,7 +29824,7 @@ class Radio {
29660
29824
  const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
29661
29825
  const mode = getIonMode$1(this);
29662
29826
  const inItem = hostContext('ion-item', el);
29663
- return (hAsync(Host, { key: 'cb00934d052260e97462e97a1669045cbb0b963a', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
29827
+ return (hAsync(Host, { key: 'e44cade8aa8415bdc825f9d17fc8562487cf5d35', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
29664
29828
  [mode]: true,
29665
29829
  'in-item': inItem,
29666
29830
  'radio-checked': checked,
@@ -29671,10 +29835,10 @@ class Radio {
29671
29835
  // Focus and active styling should not apply when the radio is in an item
29672
29836
  'ion-activatable': !inItem,
29673
29837
  'ion-focusable': !inItem,
29674
- }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '05613f89400469692442bf3c02c27f9299c5d6ef', class: "radio-wrapper" }, hAsync("div", { key: '89b5d7668c3856f417c318629086cf46a072efbe', class: {
29838
+ }), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '48a99aa80a7d7b4085ef26faf3167903c975517c', class: "radio-wrapper" }, hAsync("div", { key: 'a8d74e0603b41215ea3e867356a9be0dcf3722d8', class: {
29675
29839
  'label-text-wrapper': true,
29676
29840
  'label-text-wrapper-hidden': !hasLabel,
29677
- }, part: "label" }, hAsync("slot", { key: 'd5e43a8d0fe5a7fc323887d310fd64d6f87deef7' })), hAsync("div", { key: '7fd221189adcfccca1ed18dcd0a60cde6261120b', class: "native-wrapper" }, this.renderRadioControl()))));
29841
+ }, part: "label" }, hAsync("slot", { key: '9e3cce6254e70b02d50381537438a70435b031cc' })), hAsync("div", { key: 'bfa3ee188d911e056a3e60178eac41362efb94b3', class: "native-wrapper" }, this.renderRadioControl()))));
29678
29842
  }
29679
29843
  get el() { return getElement(this); }
29680
29844
  static get watchers() { return {
@@ -29859,7 +30023,7 @@ class RadioGroup {
29859
30023
  const { label, labelId, el, name, value } = this;
29860
30024
  const mode = getIonMode$1(this);
29861
30025
  renderHiddenInput(true, el, name, value, false);
29862
- return hAsync(Host, { key: 'b6b439d6d53d17a5a4d9853a7cf6065b28213338', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
30026
+ return hAsync(Host, { key: '7801c5d6b3916efb15b4e479c6b90a8925e254a4', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
29863
30027
  }
29864
30028
  get el() { return getElement(this); }
29865
30029
  static get watchers() { return {
@@ -30488,7 +30652,7 @@ class Range {
30488
30652
  const needsEndAdjustment = inItem && !hasEndContent;
30489
30653
  const mode = getIonMode$1(this);
30490
30654
  renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
30491
- return (hAsync(Host, { key: 'cd70b5db9eae808a644643d7095a1b5264cbc5fe', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
30655
+ return (hAsync(Host, { key: '217323e45c3197c0ff9a5e0b12c1f860f9fe5152', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
30492
30656
  [mode]: true,
30493
30657
  'in-item': inItem,
30494
30658
  'range-disabled': disabled,
@@ -30497,10 +30661,10 @@ class Range {
30497
30661
  [`range-label-placement-${labelPlacement}`]: true,
30498
30662
  'range-item-start-adjustment': needsStartAdjustment,
30499
30663
  'range-item-end-adjustment': needsEndAdjustment,
30500
- }) }, hAsync("label", { key: '78ef0523f0064d6b268ae17ef72f90094511d897', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '6e4b2051e770dabe80dcb9f412e9aae1859e9f33', class: {
30664
+ }) }, hAsync("label", { key: '84357e85fc78954b9f598236e802c582dad8f69e', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '85c61c11453e417e27305cddd65d2044b6ffc451', class: {
30501
30665
  'label-text-wrapper': true,
30502
30666
  'label-text-wrapper-hidden': !hasLabel,
30503
- }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '72cdb8f6657a3b84f759743cedd600020c954c6a', class: "native-wrapper" }, hAsync("slot", { key: 'f7a38d6bd63df5dc8b4470f1f4acaaf3e5c80514', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'ae74ac8c1da691e3be1b2f00dfd3c8419b9566ec', name: "end" })))));
30667
+ }, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: 'f3504d2df23e8b4c7d657f21b8953defddd89e76', class: "native-wrapper" }, hAsync("slot", { key: '36e85481fb513462a5e71a3801c3349485e6a1ef', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: 'ed3eae7883e6a55c88b69b678e1de43cee4d1b40', name: "end" })))));
30504
30668
  }
30505
30669
  get el() { return getElement(this); }
30506
30670
  static get watchers() { return {
@@ -31374,7 +31538,7 @@ class Refresher {
31374
31538
  }
31375
31539
  render() {
31376
31540
  const mode = getIonMode$1(this);
31377
- return (hAsync(Host, { key: 'e7f4f2f96de7e80430bf54967ebc12e7216b2ca9', slot: "fixed", class: {
31541
+ return (hAsync(Host, { key: '1696f66f62d18c9075294f17cb24263325fcf35d', slot: "fixed", class: {
31378
31542
  [mode]: true,
31379
31543
  // Used internally for styling
31380
31544
  [`refresher-${mode}`]: true,
@@ -31602,7 +31766,7 @@ class RefresherContent {
31602
31766
  const pullingIcon = this.pullingIcon;
31603
31767
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
31604
31768
  const mode = getIonMode$1(this);
31605
- return (hAsync(Host, { key: '19633bbcf02e3dba885d6bdcdaf2269bf4c8e2f5', class: mode }, hAsync("div", { key: '28922e434a55a6cac0476fe2bee56941ce0d1c02', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'fe575bf996021884677e9b23a3215d63caf894f5', class: "refresher-pulling-icon" }, hAsync("div", { key: '59fe12297fd95bc33b8df8cd35316e2a1c084d91', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: 'af9cc013ae04945c140b2865610ca73edb52ab48', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: '34df66ad1b0f706a0532957251aa2c20bf4587d8', class: "arrow-container" }, hAsync("ion-icon", { key: 'ffdb5c123e606b823491c6c51cc2b497f62581bb', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: 'ac3a2032bb969264d20fa057e9123441005d7a9d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'd969d10915548e72aae289b52154366f3dd39b31', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'a8f854f81a94812d7bef8ce088331d94f49ff53d', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'a1f646945370e40c844d62bc0c647443ae9dfbe7', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: 'ab3ff4047769b6436e222b46d193c1e8b23e2fce', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
31769
+ return (hAsync(Host, { key: '1bec5b4da221c69d856f3f5ddf40f2e03ebf2a4c', class: mode }, hAsync("div", { key: '4fcc526c4f1881e9368d9cd16bd7030919bd3841', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: 'a4e9e2e12c2d7faefc8303ec8c021f999ddf308e', class: "refresher-pulling-icon" }, hAsync("div", { key: '5a2d215feb7fb4b64d540d3a65c0f24b415a2433', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: 'abef2621d671ac6ff0abac43a702cbd825b7f127', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: '30087d672c3780672a05874cd93cd099b2855462', class: "arrow-container" }, hAsync("ion-icon", { key: '5e30333dee469aec0d8efc8c4e6dabb619c6f363', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '48fe72b5ce8ded633c6ee799cebb520b9c8be528', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'd8dfd5d42056b1c0a436c5006affb255407816c0', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'c2cbfb94f157c82601ffe7bb815ff82ebc7c0a49', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: '17f3ebe6a31768d5e389f45a2c12f68600185db9', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: 'e8e61f8d7189c9939bba184201c9509d1d5b0fad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
31606
31770
  }
31607
31771
  get el() { return getElement(this); }
31608
31772
  static get cmpMeta() { return {
@@ -31645,7 +31809,7 @@ class Reorder {
31645
31809
  render() {
31646
31810
  const mode = getIonMode$1(this);
31647
31811
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
31648
- return (hAsync(Host, { key: '27266e30bcb7e10c57fb6d546399cfb1f1c93b23', class: mode }, hAsync("slot", { key: '8745cb9a31458e884c27eed1fb90d104fe9a79eb' }, hAsync("ion-icon", { key: '6c4b9631a2f5610f1e21b2db025b6702d0d593bf', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
31812
+ return (hAsync(Host, { key: '663d74e231e3af56b6298ee2539fdac9c8465839', class: mode }, hAsync("slot", { key: 'c7c384ab8c9ca8abdc89cd984a39dfde70e342ca' }, hAsync("ion-icon", { key: 'c8b6052db03d4b9e33a90e600c20861c73ee73ce', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
31649
31813
  }
31650
31814
  get el() { return getElement(this); }
31651
31815
  static get style() { return {
@@ -31899,7 +32063,7 @@ class ReorderGroup {
31899
32063
  }
31900
32064
  render() {
31901
32065
  const mode = getIonMode$1(this);
31902
- return (hAsync(Host, { key: 'a38c7fbceb677201330a602273d5b55abb32da19', class: {
32066
+ return (hAsync(Host, { key: '491f3e5843cf728ff4589e58bd86b8ce6709b293', class: {
31903
32067
  [mode]: true,
31904
32068
  'reorder-enabled': !this.disabled,
31905
32069
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -32007,7 +32171,7 @@ class RippleEffect {
32007
32171
  }
32008
32172
  render() {
32009
32173
  const mode = getIonMode$1(this);
32010
- return (hAsync(Host, { key: '7ae559bda5d2c1856a45bfa150c2cb4f83373f8e', role: "presentation", class: {
32174
+ return (hAsync(Host, { key: '2302f087ab1c6755355736e4ca77309c5fdcf185', role: "presentation", class: {
32011
32175
  [mode]: true,
32012
32176
  unbounded: this.unbounded,
32013
32177
  } }));
@@ -32949,10 +33113,10 @@ class RouterLink {
32949
33113
  rel: this.rel,
32950
33114
  target: this.target,
32951
33115
  };
32952
- return (hAsync(Host, { key: '529ceed5beaf92d7b4cc315c82f449eac18310e8', onClick: this.onClick, class: createColorClasses$1(this.color, {
33116
+ return (hAsync(Host, { key: 'f876442cab5b14b7e83c6d6ad2c2d878a9c57439', onClick: this.onClick, class: createColorClasses$1(this.color, {
32953
33117
  [mode]: true,
32954
33118
  'ion-activatable': true,
32955
- }) }, hAsync("a", Object.assign({ key: 'd5f1f8b256695d70bdafd20ff3d1b625963fa2da' }, attrs), hAsync("slot", { key: '613fcdb36a71e076f989551ea21f1d5c118b1cd2' }))));
33119
+ }) }, hAsync("a", Object.assign({ key: 'c44b78ec1fd10a40c23bfe548860ac2b346646a8' }, attrs), hAsync("slot", { key: 'd32180a567613f79f89885135bd0d776ffc1eb8e' }))));
32956
33120
  }
32957
33121
  static get style() { return IonRouterLinkStyle0; }
32958
33122
  static get cmpMeta() { return {
@@ -33147,7 +33311,7 @@ class RouterOutlet {
33147
33311
  return true;
33148
33312
  }
33149
33313
  render() {
33150
- return hAsync("slot", { key: 'a70341f58d19df55de1dad00e3464388e446aa2a' });
33314
+ return hAsync("slot", { key: '8279a453c66a766e6e383ff59842b4ae070c13a9' });
33151
33315
  }
33152
33316
  get el() { return getElement(this); }
33153
33317
  static get watchers() { return {
@@ -33181,7 +33345,7 @@ class Row {
33181
33345
  registerInstance(this, hostRef);
33182
33346
  }
33183
33347
  render() {
33184
- return (hAsync(Host, { key: 'aea072a5005e3f1f309f0d1ae5be5ee19869b035', class: getIonMode$1(this) }, hAsync("slot", { key: '2a481c2126ac6ca65f0a1bbd07c2d3365409cb78' })));
33348
+ return (hAsync(Host, { key: '813c9a7f6782d2cf8eb27f30d3ab28e6f3122868', class: getIonMode$1(this) }, hAsync("slot", { key: '356bec4d4d408ea63d6b431b06465d5b7bcbff71' })));
33185
33349
  }
33186
33350
  static get style() { return IonRowStyle0; }
33187
33351
  static get cmpMeta() { return {
@@ -33575,8 +33739,8 @@ class Searchbar {
33575
33739
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
33576
33740
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
33577
33741
  const shouldShowCancelButton = this.shouldShowCancelButton();
33578
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("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" }, hAsync("div", { key: 'e42fe29767fb06a5e4f9060c3f8a47b040528e4f', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
33579
- return (hAsync(Host, { key: 'da667148dc3300f4a8473315d04e6560194f51dc', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
33742
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("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" }, hAsync("div", { key: 'c0563d48fc25cc02ff45f4d708d1bdeb0cf7c7bc', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
33743
+ return (hAsync(Host, { key: '0842b78189eb10329d161294048aa26f380056b3', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
33580
33744
  [mode]: true,
33581
33745
  'searchbar-animated': animated,
33582
33746
  'searchbar-disabled': this.disabled,
@@ -33586,14 +33750,14 @@ class Searchbar {
33586
33750
  'searchbar-has-focus': this.focused,
33587
33751
  'searchbar-should-show-clear': this.shouldShowClearButton(),
33588
33752
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
33589
- }) }, hAsync("div", { key: 'b1a28467d41dd989e6aee10c7c9fb70a7c1534f1', class: "searchbar-input-container" }, hAsync("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, hAsync("ion-icon", { key: 'b6576522762a83a7d9977f312dce433c2aaa2490', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'c460a3be7ffed2ddf4b08f64ea4ec6843586a726', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
33753
+ }) }, hAsync("div", { key: '250fddf0a88c0608f2f797d671ce0d57e4a0983b', class: "searchbar-input-container" }, hAsync("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, hAsync("ion-icon", { key: '3c212122d0c8b1d4e0c38be8e0bd2365232d0f87', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '4450d17927983da489b051639c14f96f1a96d64a', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
33590
33754
  /**
33591
33755
  * This prevents mobile browsers from
33592
33756
  * blurring the input when the clear
33593
33757
  * button is activated.
33594
33758
  */
33595
33759
  ev.preventDefault();
33596
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'e2e5dcdeca46d2588642e7b9f05d396f6e0332a9', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
33760
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'f9e9060cbe0caf06763327a01d5f03b0a5d87404', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
33597
33761
  }
33598
33762
  get el() { return getElement(this); }
33599
33763
  static get watchers() { return {
@@ -34067,14 +34231,14 @@ class Segment {
34067
34231
  }
34068
34232
  render() {
34069
34233
  const mode = getIonMode$1(this);
34070
- return (hAsync(Host, { key: '22bd7bbecaa9f0c95971565e06ef3fa4ad44a946', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
34234
+ return (hAsync(Host, { key: '1f29e1c1f712a65ddce6c8aa1623fee85cb66ed9', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
34071
34235
  [mode]: true,
34072
34236
  'in-toolbar': hostContext('ion-toolbar', this.el),
34073
34237
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
34074
34238
  'segment-activated': this.activated,
34075
34239
  'segment-disabled': this.disabled,
34076
34240
  'segment-scrollable': this.scrollable,
34077
- }) }, hAsync("slot", { key: '6d6fe81026928662137b872206de55117fda30a2' })));
34241
+ }) }, hAsync("slot", { key: '86f5724565043a3d0983a14cc49c37df9a60c6b0' })));
34078
34242
  }
34079
34243
  get el() { return getElement(this); }
34080
34244
  static get watchers() { return {
@@ -34184,7 +34348,7 @@ class SegmentButton {
34184
34348
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
34185
34349
  const mode = getIonMode$1(this);
34186
34350
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
34187
- return (hAsync(Host, { key: '9b54e4841be5d0f4f2ee230a649bfbe01066c7c7', class: {
34351
+ return (hAsync(Host, { key: '70cf5c7a3ae2620222c5250c644faf3cfc3b3e4e', class: {
34188
34352
  [mode]: true,
34189
34353
  'in-toolbar': hostContext('ion-toolbar', this.el),
34190
34354
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -34200,10 +34364,10 @@ class SegmentButton {
34200
34364
  'ion-activatable': true,
34201
34365
  'ion-activatable-instant': true,
34202
34366
  'ion-focusable': true,
34203
- } }, hAsync("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), hAsync("span", { key: '0eeb2616f7c5a7a7fc1e2e3bd34ab461de6179f4', class: "button-inner" }, hAsync("slot", { key: '5ac8fafa2f23e30f8df63bfe236a9604cfb388ae' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '86032e9726e2b6437ffc34f59fcbe564616cc9ca' })), hAsync("div", { key: '536b1da58dd2521be290707d6b1726831340cf9f', part: "indicator", class: {
34367
+ } }, hAsync("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), hAsync("span", { key: '7d8feda840d389941cc693f500b5eba0b39b41da', class: "button-inner" }, hAsync("slot", { key: 'd9ae1eec45db253cbf573d29cd545658dd595d87' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '49e6a16968709dc9b3fc77bc9fb99acb42fda88c' })), hAsync("div", { key: '4e3ea0989ed5205dbb03586e4facb439b05a92de', part: "indicator", class: {
34204
34368
  'segment-button-indicator': true,
34205
34369
  'segment-button-indicator-animated': true,
34206
- } }, hAsync("div", { key: 'b43124415ebd77c87285791522c5afc26a137f96', part: "indicator-background", class: "segment-button-indicator-background" }))));
34370
+ } }, hAsync("div", { key: '65c72a151080998c1e548c87d4d4ebd5c7dda72f', part: "indicator-background", class: "segment-button-indicator-background" }))));
34207
34371
  }
34208
34372
  get el() { return getElement(this); }
34209
34373
  static get watchers() { return {
@@ -34802,7 +34966,7 @@ class Select {
34802
34966
  * TODO(FW-5592): Remove hasStartEndSlots condition
34803
34967
  */
34804
34968
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
34805
- return (hAsync(Host, { key: '5a1b82be3f737a2ce5b87c5cd716f898a902ab10', onClick: this.onClick, class: createColorClasses$1(this.color, {
34969
+ return (hAsync(Host, { key: '38647216725f05c3ea8e2c7b4125d7035e5bef31', onClick: this.onClick, class: createColorClasses$1(this.color, {
34806
34970
  [mode]: true,
34807
34971
  'in-item': inItem,
34808
34972
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -34818,7 +34982,7 @@ class Select {
34818
34982
  [`select-justify-${justify}`]: justifyEnabled,
34819
34983
  [`select-shape-${shape}`]: shape !== undefined,
34820
34984
  [`select-label-placement-${labelPlacement}`]: true,
34821
- }) }, hAsync("label", { key: '79a6e99e38fa3f72d876f4b8ac0077a9fbf4bd2d', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: 'e18ac0b4a35e2cdde858347a9b116218533cd532', class: "select-wrapper-inner" }, hAsync("slot", { key: 'cc194f718ef9363d3496531f0d9259e33b66f4d8', name: "start" }), hAsync("div", { key: '833c5544e453c0ac543f5d4898d0f492caac405a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'adaa4064c9ad01ef7a452308680eb09dc3ad60ff', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'd47a6ef0a6192c5f098973aa517aad2aa9ae8dfc', class: "select-highlight" }))));
34985
+ }) }, hAsync("label", { key: '80f465dda111b27548cba11fe734b4916f1da6d7', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), hAsync("div", { key: 'b6c22c7f2d42439d89397ffe7182bf0e07225dc1', class: "select-wrapper-inner" }, hAsync("slot", { key: '95cf6118d97f974debfe31e17938b6bb9b0bec63', name: "start" }), hAsync("div", { key: '647912e4208feaddc581d066007653c910065907', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: '3bbf5e126327ff21fed8f6ad3acd77d0df900c4a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'd790350694c310866c5bd3f8da0edc9f8c17ac0d', class: "select-highlight" }))));
34822
34986
  }
34823
34987
  get el() { return getElement(this); }
34824
34988
  static get watchers() { return {
@@ -34909,7 +35073,7 @@ class SelectOption {
34909
35073
  this.value = undefined;
34910
35074
  }
34911
35075
  render() {
34912
- return hAsync(Host, { key: '6fa504ac5597098086050c0f517a03be8b8032c9', role: "option", id: this.inputId, class: getIonMode$1(this) });
35076
+ return hAsync(Host, { key: 'ba5a9c695c53fe0802af11a49f4305a9b8f71773', role: "option", id: this.inputId, class: getIonMode$1(this) });
34913
35077
  }
34914
35078
  get el() { return getElement(this); }
34915
35079
  static get style() { return IonSelectOptionStyle0; }
@@ -35029,7 +35193,7 @@ class SelectPopover {
35029
35193
  render() {
35030
35194
  const { header, message, options, subHeader } = this;
35031
35195
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
35032
- return (hAsync(Host, { key: '2ed838c17d47198c697164a0a750aafb6ca61a95', class: getIonMode$1(this) }, hAsync("ion-list", { key: '24fe7a6e9e45458c201b178ca236645d0f49ea8a' }, header !== undefined && hAsync("ion-list-header", { key: 'ebe64853dcd59c14a8f4dc9c2dc9e66d1e9767f6' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: 'ed7c6f2d7e1282b3048df0af8f1e3fd3b08297c6' }, hAsync("ion-label", { key: 'a81f6c4011a0dce47b80c98a45d80b1368d84a1e', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: '4fd72c62da896092d535580917bb8a5ad6609c05' }, subHeader), message !== undefined && hAsync("p", { key: '88aead29b35d69743abe4015f96a6fa9f199a0ff' }, message)))), this.renderOptions(options))));
35196
+ return (hAsync(Host, { key: '302553a2eec4d1442751b8af28b7c9bd3487fd5d', class: getIonMode$1(this) }, hAsync("ion-list", { key: '39ae8579e6fe3bae2c7504147268ad5c82fd27e6' }, header !== undefined && hAsync("ion-list-header", { key: 'e0e6686380d188f46c593e1bb25287dcf08c75c2' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '8a2d8652db269593c0ba7d767277e12c2b06144d' }, hAsync("ion-label", { key: 'a30cc0ecf95d5bdd6421ee1683922c1b853e98ea', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'c298459ca450123808a08d65660825b2c26d00e5' }, subHeader), message !== undefined && hAsync("p", { key: 'ed895fbaec020e809021138401341b6fd7675035' }, message)))), this.renderOptions(options))));
35033
35197
  }
35034
35198
  get el() { return getElement(this); }
35035
35199
  static get style() { return {
@@ -35077,11 +35241,11 @@ class SkeletonText {
35077
35241
  const animated = this.animated && config.getBoolean('animated', true);
35078
35242
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
35079
35243
  const mode = getIonMode$1(this);
35080
- return (hAsync(Host, { key: '8a1b489e35564056b3babce548982e58fec74119', class: {
35244
+ return (hAsync(Host, { key: '1a3e78e9a6f740d609d1f0b7a16cb6eff4a2d617', class: {
35081
35245
  [mode]: true,
35082
35246
  'skeleton-text-animated': animated,
35083
35247
  'in-media': inMedia,
35084
- } }, hAsync("span", { key: '71df251a41967dc4dab241f6fa906fa4d568dd9e' }, "\u00A0")));
35248
+ } }, hAsync("span", { key: 'be3eabe196ec6e8ec19857375ba30f4c8aa58e7f' }, "\u00A0")));
35085
35249
  }
35086
35250
  get el() { return getElement(this); }
35087
35251
  static get style() { return IonSkeletonTextStyle0; }
@@ -35134,7 +35298,7 @@ class Spinner {
35134
35298
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
35135
35299
  }
35136
35300
  }
35137
- return (hAsync(Host, { key: '9422c25aadfdf08861e26bb1aa336c94391d10a3', class: createColorClasses$1(self.color, {
35301
+ return (hAsync(Host, { key: '50cbaed55eeab15292447d106a80b93db4cb40de', class: createColorClasses$1(self.color, {
35138
35302
  [mode]: true,
35139
35303
  [`spinner-${spinnerName}`]: true,
35140
35304
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -35234,12 +35398,12 @@ class SplitPane {
35234
35398
  }
35235
35399
  render() {
35236
35400
  const mode = getIonMode$1(this);
35237
- return (hAsync(Host, { key: 'd04ff97717268184725f25b39bb1416b2b423260', class: {
35401
+ return (hAsync(Host, { key: 'd54c356cd4bff7e55325160882dea8249f47f388', class: {
35238
35402
  [mode]: true,
35239
35403
  // Used internally for styling
35240
35404
  [`split-pane-${mode}`]: true,
35241
35405
  'split-pane-visible': this.visible,
35242
- } }, hAsync("slot", { key: '4d355509ab6fcdac415184068ffe1241a5078db3' })));
35406
+ } }, hAsync("slot", { key: 'af62690d0fd686cfbd29d888c79eda9001f13e2f' })));
35243
35407
  }
35244
35408
  get el() { return getElement(this); }
35245
35409
  static get watchers() { return {
@@ -35308,10 +35472,10 @@ class Tab {
35308
35472
  }
35309
35473
  render() {
35310
35474
  const { tab, active, component } = this;
35311
- return (hAsync(Host, { key: 'f341d086cc626834d2ac83a9b6366fcaf71a72d5', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
35475
+ return (hAsync(Host, { key: '46d5498418f5379861c3d7465e8021dec45f1200', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
35312
35476
  'ion-page': component === undefined,
35313
35477
  'tab-hidden': !active,
35314
- } }, hAsync("slot", { key: 'b665bb7a388f1a032685c9e7fe9b412ca742689e' })));
35478
+ } }, hAsync("slot", { key: 'b45045dccb87dfe75e3f5a5a474bb48b6c98e922' })));
35315
35479
  }
35316
35480
  get el() { return getElement(this); }
35317
35481
  static get watchers() { return {
@@ -35389,11 +35553,11 @@ class TabBar {
35389
35553
  const { color, translucent, keyboardVisible } = this;
35390
35554
  const mode = getIonMode$1(this);
35391
35555
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
35392
- return (hAsync(Host, { key: '77fe8ff42b083bfdb5e01a9873ef45b6f3ce3744', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
35556
+ return (hAsync(Host, { key: '3a8595dd83f89e8319471a7a7f9f64b2565b384c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
35393
35557
  [mode]: true,
35394
35558
  'tab-bar-translucent': translucent,
35395
35559
  'tab-bar-hidden': shouldHide,
35396
- }) }, hAsync("slot", { key: 'd479c80ff66f4cfc12ab4a583bd292ef8392895e' })));
35560
+ }) }, hAsync("slot", { key: '8b65eceb922f6abfa15f41046261586fb94b981f' })));
35397
35561
  }
35398
35562
  get el() { return getElement(this); }
35399
35563
  static get watchers() { return {
@@ -35491,7 +35655,7 @@ class TabButton {
35491
35655
  rel,
35492
35656
  target,
35493
35657
  };
35494
- return (hAsync(Host, { key: '092250aa4c247411c4717bf3871bdd7a47b7177f', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
35658
+ return (hAsync(Host, { key: '4b528ce31f67e10ad849e0c99bd034bba675c227', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
35495
35659
  [mode]: true,
35496
35660
  'tab-selected': selected,
35497
35661
  'tab-disabled': disabled,
@@ -35503,7 +35667,7 @@ class TabButton {
35503
35667
  'ion-activatable': true,
35504
35668
  'ion-selectable': true,
35505
35669
  'ion-focusable': true,
35506
- } }, hAsync("a", Object.assign({ key: '0414e9284005ce34ad69c4858f1b30aff00beb86' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'df97b6b56fb86507d40e68caa49f888ee29f8da4', class: "button-inner" }, hAsync("slot", { key: '715c209dd0cd61ac37b2813815014c685b7a92bc' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'e6894153a563f63f4f7d84f2703cef0f7522d435', type: "unbounded" }))));
35670
+ } }, hAsync("a", Object.assign({ key: '0da8784b1b243ffaaaf04dd7adb55d6881ed0c08' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: '2c628e8f1ebc129f84876c01530468cb97d8bf3a', class: "button-inner" }, hAsync("slot", { key: '8052a171d197a7de1a7eb12b091c35f73ae1ee21' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '4186bdb5ed045ec16f495a14fa30ac864c576227', type: "unbounded" }))));
35507
35671
  }
35508
35672
  get el() { return getElement(this); }
35509
35673
  static get style() { return {
@@ -35669,7 +35833,7 @@ class Tabs {
35669
35833
  return Array.from(this.el.querySelectorAll('ion-tab'));
35670
35834
  }
35671
35835
  render() {
35672
- return (hAsync(Host, { key: '13d9b30a83eb565b635ec7c547bd99da8c96aaa0', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: 'd885dbf0134cd5d256f7e3e9fc4844636c2c6cbf', name: "top" }), hAsync("div", { key: '2f48887902d47c0e29afb8da450da22b874b0e76', class: "tabs-inner" }, hAsync("slot", { key: 'bcdb41418edc7d176e570c37bb6a6ba1dc123f7d' })), hAsync("slot", { key: '85101e7c57cf8cda04bd3a125f1207faf85110d2', name: "bottom" })));
35836
+ return (hAsync(Host, { key: '239bdb2ff2ec5cfcc74c51812cf6240f48acc617', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '2b266d0f87c7c82e992fe0d9b5c8f25569b118e3', name: "top" }), hAsync("div", { key: '4cbbd010f0b0b1cd82714db7d098d28fab6d5218', class: "tabs-inner" }, hAsync("slot", { key: '72b2a02cd29d5b30e47758f3d6daaa1021916256' })), hAsync("slot", { key: '25494076dbbf7606d477b44f1b969719e7b4a805', name: "bottom" })));
35673
35837
  }
35674
35838
  get el() { return getElement(this); }
35675
35839
  static get style() { return IonTabsStyle0; }
@@ -35711,9 +35875,9 @@ class Text {
35711
35875
  }
35712
35876
  render() {
35713
35877
  const mode = getIonMode$1(this);
35714
- return (hAsync(Host, { key: '096d8ca01301500d61d9e92299e0cc78c2ad86e3', class: createColorClasses$1(this.color, {
35878
+ return (hAsync(Host, { key: '4b76333b1ea5cab134b9dc1f5670c0d5a253fc32', class: createColorClasses$1(this.color, {
35715
35879
  [mode]: true,
35716
- }) }, hAsync("slot", { key: '9399d939ec4f134c24c29bda8857cd348259c666' })));
35880
+ }) }, hAsync("slot", { key: '3dee5f16bc58b3d92547d910bd4f441a00ce2039' })));
35717
35881
  }
35718
35882
  static get style() { return IonTextStyle0; }
35719
35883
  static get cmpMeta() { return {
@@ -36080,7 +36244,7 @@ class Textarea {
36080
36244
  * TODO(FW-5592): Remove hasStartEndSlots condition
36081
36245
  */
36082
36246
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
36083
- return (hAsync(Host, { key: 'b4cf1f37cacdd1775fefb874b87b30ba753fdc3a', class: createColorClasses$1(this.color, {
36247
+ return (hAsync(Host, { key: 'd18525dd7b9b7953cc76a233c39a73e3dde611b4', class: createColorClasses$1(this.color, {
36084
36248
  [mode]: true,
36085
36249
  'has-value': hasValue,
36086
36250
  'has-focus': hasFocus,
@@ -36089,7 +36253,7 @@ class Textarea {
36089
36253
  [`textarea-shape-${shape}`]: shape !== undefined,
36090
36254
  [`textarea-label-placement-${labelPlacement}`]: true,
36091
36255
  'textarea-disabled': disabled,
36092
- }) }, hAsync("label", { key: '71673192cf9d61dd072d9c0c3caefad313ed7129', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '6ecfbc046cf6e14f0d58dca1bff7db2093620f01', class: "textarea-wrapper-inner" }, hAsync("div", { key: '7d2410de5dd971f74406ab8a321d87709873fa22', class: "start-slot-wrapper" }, hAsync("slot", { key: '061cc0dd516b2f3a4ad7199790028e5d525a3ab2', name: "start" })), hAsync("div", { key: 'f75309006f7c4e835f346cecf243f104e37bd477', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: 'ba47358352fcd30e659b7ac684ce2e5b83744150', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value)), hAsync("div", { key: 'bebb8b585bc4e7adb9192665679cd7073e23240c', class: "end-slot-wrapper" }, hAsync("slot", { key: '734f40dcc6a57771c00f7528fb19544bb68fc563', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'e5a1bbebc2e16cb1b3f2bce312494447a0b36957', class: "textarea-highlight" })), this.renderBottomContent()));
36256
+ }) }, hAsync("label", { key: '8e3ef5ae7a45266a5af2710ff309592d4685f9c0', class: "textarea-wrapper", htmlFor: inputId }, this.renderLabelContainer(), hAsync("div", { key: '7f0278d3112edea31be4a0b2b007469c99f70bf2', class: "textarea-wrapper-inner" }, hAsync("div", { key: '40488b751dc430d780b84242072deccbec616571', class: "start-slot-wrapper" }, hAsync("slot", { key: '7cb49e2be164b00c70c0e7dd66f825f65bd6d57b', name: "start" })), hAsync("div", { key: '86a5c143d048293a5ca09c7daa66b79e9670485a', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '473c0d7c44bfcc6cd1bcf47f2dbc2b39832308dc', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown }, this.inheritedAttributes), value)), hAsync("div", { key: 'cdd2f28e17dd5d2c0283756f985cb8cf71c52e70', class: "end-slot-wrapper" }, hAsync("slot", { key: '8401a277df850473f6e535449f332f830e30e68d', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'd29994278fda886d2d1c37a265397b141d6535d3', class: "textarea-highlight" })), this.renderBottomContent()));
36093
36257
  }
36094
36258
  get el() { return getElement(this); }
36095
36259
  static get watchers() { return {
@@ -36151,7 +36315,7 @@ class Thumbnail {
36151
36315
  registerInstance(this, hostRef);
36152
36316
  }
36153
36317
  render() {
36154
- return (hAsync(Host, { key: '29ed7678be93e55afad58bd37a61db3a289a5d76', class: getIonMode$1(this) }, hAsync("slot", { key: 'da1eb174d2544b9d452c98076f6e0abcda60099d' })));
36318
+ return (hAsync(Host, { key: 'ea55000055f941b0c79561e8934be6242ec8e114', class: getIonMode$1(this) }, hAsync("slot", { key: 'a4f934f442797f5c66a77e0ef8920fdd07c204f2' })));
36155
36319
  }
36156
36320
  static get style() { return IonThumbnailStyle0; }
36157
36321
  static get cmpMeta() { return {
@@ -36984,9 +37148,9 @@ class Toast {
36984
37148
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
36985
37149
  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);
36986
37150
  }
36987
- return (hAsync(Host, Object.assign({ key: 'f3555e5e093ce5dc5114df2e7ed298afa79eee02', tabindex: "-1" }, this.htmlAttributes, { style: {
37151
+ return (hAsync(Host, Object.assign({ key: 'da148788489146a20b42023fdc6401e53c044767', tabindex: "-1" }, this.htmlAttributes, { style: {
36988
37152
  zIndex: `${60000 + this.overlayIndex}`,
36989
- }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '3a98853e3b9c4c015a0e4035ad34f7fe02ec3b1c', class: wrapperClass }, hAsync("div", { key: '3c3447ce2a1fd4aecc3f7da1c1bb0c504fb6fcf7', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '40bb8c55ac8bf7ce283bf2cdeb5902e76ad911ca', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'bfe843cce24b0205cdce48a544b294dcb0946eb4', 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')))));
37153
+ }, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: 'ab0a4d783aa43ba961492b3eb8beb60a38153057', class: wrapperClass }, hAsync("div", { key: '83e49027fd1ca6553d6910ff91befeea43576f3c', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '025cb4b6b170a89548969a25bcce4ab7a3817898', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'b811b4e1cbc1528c2cfb57898f5615692120f840', 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')))));
36990
37154
  }
36991
37155
  get el() { return getElement(this); }
36992
37156
  static get watchers() { return {
@@ -37206,7 +37370,7 @@ class Toggle {
37206
37370
  const value = this.getValue();
37207
37371
  const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
37208
37372
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
37209
- return (hAsync(Host, { key: 'c945ab955306b2fcb7833f7ff771ac943d73d27d', onClick: this.onClick, class: createColorClasses$1(color, {
37373
+ return (hAsync(Host, { key: '00954bdb79a64221bad1a9a5e56f08a27cc664f3', onClick: this.onClick, class: createColorClasses$1(color, {
37210
37374
  [mode]: true,
37211
37375
  'in-item': hostContext('ion-item', el),
37212
37376
  'toggle-activated': activated,
@@ -37216,10 +37380,10 @@ class Toggle {
37216
37380
  [`toggle-alignment-${alignment}`]: true,
37217
37381
  [`toggle-label-placement-${labelPlacement}`]: true,
37218
37382
  [`toggle-${rtl}`]: true,
37219
- }) }, hAsync("label", { key: '71fb6976e877639ca9f28c2103f6290917cdb6ce', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: 'ed2495568197928ef1f17fc60470f4d9754a6244', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: '953ab9a29c432de4b869aeac296007e703bcdf27', class: {
37383
+ }) }, hAsync("label", { key: '9be8f5c69118f718f7633efb32132ac06f7f0c2b', class: "toggle-wrapper" }, hAsync("input", Object.assign({ key: '16af6e4f1c418b7aa17f5d1c34e237ab155c6036', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), hAsync("div", { key: 'b7fe0b66eba606f9163377b9c479af00c4231ee3', class: {
37220
37384
  'label-text-wrapper': true,
37221
37385
  'label-text-wrapper-hidden': !this.hasLabel,
37222
- }, part: "label" }, hAsync("slot", { key: '718b24b4d59b979c11edfb1d90fa0270ac248b2f' })), hAsync("div", { key: '293595f9dc291df38a54e23f81797b89428ff2c5', class: "native-wrapper" }, this.renderToggleControl()))));
37386
+ }, part: "label" }, hAsync("slot", { key: '7281efd2efaee1a91ec9e13209d7b895f15c8919' })), hAsync("div", { key: '2f32fe1f80eacab1fba77f90df45379662678327', class: "native-wrapper" }, this.renderToggleControl()))));
37223
37387
  }
37224
37388
  get el() { return getElement(this); }
37225
37389
  static get watchers() { return {
@@ -37323,10 +37487,10 @@ class Toolbar {
37323
37487
  this.childrenStyles.forEach((value) => {
37324
37488
  Object.assign(childStyles, value);
37325
37489
  });
37326
- return (hAsync(Host, { key: 'af016bf9981a2d6182783c6643e2d460245ecc2f', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
37490
+ return (hAsync(Host, { key: '4bb3a55001408a3bdf033af76b9196cb96c07c09', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
37327
37491
  [mode]: true,
37328
37492
  'in-toolbar': hostContext('ion-toolbar', this.el),
37329
- })) }, hAsync("div", { key: '437debb5b7c561b315d887ae8d47186cba5521ce', class: "toolbar-background" }), hAsync("div", { key: '4c2429fa3e8526fedf456e4658be92d5dce8ca34', class: "toolbar-container" }, hAsync("slot", { key: '4c07db12cfc48b4836b566449b854c24db308e3a', name: "start" }), hAsync("slot", { key: '12855ec04622c09cc404f9b4f07f57a73e5770a0', name: "secondary" }), hAsync("div", { key: '56f37d52c91de2b76910defbc9e5b7c1def3861c', class: "toolbar-content" }, hAsync("slot", { key: 'c10ec3fdbea10a6388f4f510d45188f7fda1a371' })), hAsync("slot", { key: 'c8ed49c6888faf35e71f2a8f4f6bf98fb0c34a25', name: "primary" }), hAsync("slot", { key: '0251f3980082a092304f95cbc002bc8c633c5739', name: "end" }))));
37493
+ })) }, hAsync("div", { key: '0891db157d6e028c6d03696f13fb510ea91b0296', class: "toolbar-background" }), hAsync("div", { key: '95fbc870d808f74af4bb18cd8f8ec8c7828a9e0b', class: "toolbar-container" }, hAsync("slot", { key: '84d4a9644660fe00ca085055ca8d12f3647531ad', name: "start" }), hAsync("slot", { key: 'fd361dc9c9979f59aed2fedcf94629506fae62b0', name: "secondary" }), hAsync("div", { key: '54d2b28616a4627c55766f66dc453707752758a6', class: "toolbar-content" }, hAsync("slot", { key: '8f65e0830cce7135640b90eb694e282cb7e5efd2' })), hAsync("slot", { key: 'c78be11a207c8674f222543646398636956087e6', name: "primary" }), hAsync("slot", { key: 'ab25e1601ccaa8cb0d81921b849bcb7402aa7826', name: "end" }))));
37330
37494
  }
37331
37495
  get el() { return getElement(this); }
37332
37496
  static get style() { return {
@@ -37376,11 +37540,11 @@ class ToolbarTitle {
37376
37540
  render() {
37377
37541
  const mode = getIonMode$1(this);
37378
37542
  const size = this.getSize();
37379
- return (hAsync(Host, { key: '5cb49f3642fb3c937cdba729ab7d561213d9bce5', class: createColorClasses$1(this.color, {
37543
+ return (hAsync(Host, { key: '5a58dc437a6f4257244bbdd7e9a682a17d8c9a6b', class: createColorClasses$1(this.color, {
37380
37544
  [mode]: true,
37381
37545
  [`title-${size}`]: true,
37382
37546
  'title-rtl': document.dir === 'rtl',
37383
- }) }, hAsync("div", { key: 'f089bf6cff17ab109fec7de8b1bf96bf33bede1f', class: "toolbar-title" }, hAsync("slot", { key: 'ed74c4e77126a309970ff719baa6ebaebb00d2e6' }))));
37547
+ }) }, hAsync("div", { key: '58682ea7b8f47a08adfad419b5c76b34784c6501', class: "toolbar-title" }, hAsync("slot", { key: '8a9248534e4c3076f5e2dfda38ef86069796851c' }))));
37384
37548
  }
37385
37549
  get el() { return getElement(this); }
37386
37550
  static get watchers() { return {