@ionic/core 7.7.5 → 7.8.1-dev.11710449785.14ebd5a0

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 (326) hide show
  1. package/components/data.js +23 -38
  2. package/components/ion-datetime-button.js +11 -10
  3. package/components/ion-datetime.js +75 -12
  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-item-divider.js +2 -2
  14. package/components/ion-item-group.js +1 -1
  15. package/components/ion-item-option.js +2 -2
  16. package/components/ion-item-options.js +1 -1
  17. package/components/ion-item-sliding.js +1 -1
  18. package/components/ion-loading.js +2 -2
  19. package/components/ion-menu-button.js +2 -2
  20. package/components/ion-menu-toggle.js +2 -2
  21. package/components/ion-menu.js +2 -2
  22. package/components/ion-modal.js +3 -3
  23. package/components/ion-nav-link.js +1 -1
  24. package/components/ion-nav.js +1 -1
  25. package/components/ion-picker.js +2 -2
  26. package/components/ion-progress-bar.js +1 -1
  27. package/components/ion-refresher-content.js +1 -1
  28. package/components/ion-refresher.js +1 -1
  29. package/components/ion-reorder-group.js +1 -1
  30. package/components/ion-reorder.js +1 -1
  31. package/components/ion-router-link.js +2 -2
  32. package/components/ion-router-outlet.js +1 -1
  33. package/components/ion-row.js +1 -1
  34. package/components/ion-searchbar.js +34 -5
  35. package/components/ion-segment-button.js +3 -3
  36. package/components/ion-segment.js +2 -2
  37. package/components/ion-select-option.js +1 -1
  38. package/components/ion-skeleton-text.js +2 -2
  39. package/components/ion-split-pane.js +2 -2
  40. package/components/ion-tab-bar.js +2 -2
  41. package/components/ion-tab-button.js +2 -2
  42. package/components/ion-tab.js +2 -2
  43. package/components/ion-tabs.js +1 -1
  44. package/components/ion-text.js +2 -2
  45. package/components/ion-thumbnail.js +1 -1
  46. package/components/ion-title.js +2 -2
  47. package/components/ion-toast.js +2 -2
  48. package/components/ion-toolbar.js +2 -2
  49. package/components/label.js +1 -1
  50. package/components/list-header.js +2 -2
  51. package/components/list.js +1 -1
  52. package/components/note.js +2 -2
  53. package/components/picker-column-internal.js +8 -4
  54. package/components/picker-column.js +2 -2
  55. package/components/picker-internal.js +2 -2
  56. package/components/popover.js +2 -2
  57. package/components/radio-group.js +1 -1
  58. package/components/ripple-effect.js +1 -1
  59. package/components/select-popover.js +1 -1
  60. package/components/spinner.js +1 -1
  61. package/dist/cjs/{data-a5109f09.js → data-4487a815.js} +22 -39
  62. package/dist/cjs/ion-app_8.cjs.entry.js +9 -9
  63. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  64. package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-datetime-button.cjs.entry.js +11 -10
  66. package/dist/cjs/ion-datetime_3.cjs.entry.js +76 -16
  67. package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
  68. package/dist/cjs/ion-img.cjs.entry.js +1 -1
  69. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
  70. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  71. package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
  72. package/dist/cjs/ion-loading.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
  74. package/dist/cjs/ion-modal.cjs.entry.js +3 -3
  75. package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-picker-column-internal.cjs.entry.js +8 -4
  77. package/dist/cjs/ion-picker-internal.cjs.entry.js +2 -2
  78. package/dist/cjs/ion-popover.cjs.entry.js +2 -2
  79. package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
  80. package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
  81. package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
  82. package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
  83. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  84. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  85. package/dist/cjs/ion-searchbar.cjs.entry.js +28 -4
  86. package/dist/cjs/ion-segment_2.cjs.entry.js +5 -5
  87. package/dist/cjs/ion-select_3.cjs.entry.js +2 -2
  88. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  89. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  90. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
  91. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  92. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  93. package/dist/cjs/ion-toast.cjs.entry.js +2 -2
  94. package/dist/cjs/ionic.cjs.js +1 -1
  95. package/dist/cjs/loader.cjs.js +1 -1
  96. package/dist/collection/components/alert/test/a11y/alert.e2e.js +4 -0
  97. package/dist/collection/components/datetime/datetime.js +56 -12
  98. package/dist/collection/components/datetime/test/basic/datetime.e2e.js +77 -0
  99. package/dist/collection/components/datetime/test/format.spec.js +65 -15
  100. package/dist/collection/components/datetime/utils/format.js +24 -37
  101. package/dist/collection/components/datetime/utils/validate.js +45 -0
  102. package/dist/collection/components/datetime-button/datetime-button.js +11 -10
  103. package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
  104. package/dist/collection/components/fab/fab.js +2 -2
  105. package/dist/collection/components/fab-button/fab-button.js +2 -2
  106. package/dist/collection/components/fab-list/fab-list.js +2 -2
  107. package/dist/collection/components/footer/footer.js +2 -2
  108. package/dist/collection/components/grid/grid.js +2 -2
  109. package/dist/collection/components/header/header.js +2 -2
  110. package/dist/collection/components/img/img.js +1 -1
  111. package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
  112. package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
  113. package/dist/collection/components/item-divider/item-divider.js +2 -2
  114. package/dist/collection/components/item-group/item-group.js +1 -1
  115. package/dist/collection/components/item-option/item-option.js +2 -2
  116. package/dist/collection/components/item-options/item-options.js +1 -1
  117. package/dist/collection/components/item-sliding/item-sliding.js +1 -1
  118. package/dist/collection/components/label/label.js +1 -1
  119. package/dist/collection/components/list/list.js +1 -1
  120. package/dist/collection/components/list-header/list-header.js +2 -2
  121. package/dist/collection/components/loading/loading.js +2 -2
  122. package/dist/collection/components/menu/menu.js +2 -2
  123. package/dist/collection/components/menu-button/menu-button.js +2 -2
  124. package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
  125. package/dist/collection/components/modal/modal.js +3 -3
  126. package/dist/collection/components/nav/nav.js +1 -1
  127. package/dist/collection/components/nav-link/nav-link.js +1 -1
  128. package/dist/collection/components/note/note.js +2 -2
  129. package/dist/collection/components/picker/picker.js +2 -2
  130. package/dist/collection/components/picker-column/picker-column.js +2 -2
  131. package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
  132. package/dist/collection/components/picker-internal/picker-internal.js +2 -2
  133. package/dist/collection/components/popover/popover.js +2 -2
  134. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  135. package/dist/collection/components/radio-group/radio-group.js +1 -1
  136. package/dist/collection/components/refresher/refresher.js +1 -1
  137. package/dist/collection/components/refresher-content/refresher-content.js +1 -1
  138. package/dist/collection/components/reorder/reorder.js +1 -1
  139. package/dist/collection/components/reorder-group/reorder-group.js +1 -1
  140. package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
  141. package/dist/collection/components/router-link/router-link.js +2 -2
  142. package/dist/collection/components/router-outlet/router-outlet.js +1 -1
  143. package/dist/collection/components/row/row.js +1 -1
  144. package/dist/collection/components/searchbar/searchbar.js +84 -5
  145. package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
  146. package/dist/collection/components/segment/segment.js +2 -2
  147. package/dist/collection/components/segment-button/segment-button.js +3 -3
  148. package/dist/collection/components/select-option/select-option.js +1 -1
  149. package/dist/collection/components/select-popover/select-popover.js +1 -1
  150. package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
  151. package/dist/collection/components/spinner/spinner.js +1 -1
  152. package/dist/collection/components/split-pane/split-pane.js +2 -2
  153. package/dist/collection/components/tab/tab.js +2 -2
  154. package/dist/collection/components/tab-bar/tab-bar.js +2 -2
  155. package/dist/collection/components/tab-button/tab-button.js +2 -2
  156. package/dist/collection/components/tabs/tabs.js +1 -1
  157. package/dist/collection/components/text/text.js +2 -2
  158. package/dist/collection/components/thumbnail/thumbnail.js +1 -1
  159. package/dist/collection/components/title/title.js +2 -2
  160. package/dist/collection/components/toast/toast.js +2 -2
  161. package/dist/collection/components/toggle/toggle.js +1 -1
  162. package/dist/collection/components/toolbar/toolbar.js +2 -2
  163. package/dist/docs.json +114 -2
  164. package/dist/esm/{data-0f3ab200.js → data-bb424ba8.js} +23 -38
  165. package/dist/esm/ion-app_8.entry.js +9 -9
  166. package/dist/esm/ion-avatar_3.entry.js +1 -1
  167. package/dist/esm/ion-col_3.entry.js +3 -3
  168. package/dist/esm/ion-datetime-button.entry.js +11 -10
  169. package/dist/esm/ion-datetime_3.entry.js +76 -16
  170. package/dist/esm/ion-fab_3.entry.js +6 -6
  171. package/dist/esm/ion-img.entry.js +1 -1
  172. package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
  173. package/dist/esm/ion-item-option_3.entry.js +4 -4
  174. package/dist/esm/ion-item_8.entry.js +11 -11
  175. package/dist/esm/ion-loading.entry.js +2 -2
  176. package/dist/esm/ion-menu_3.entry.js +6 -6
  177. package/dist/esm/ion-modal.entry.js +3 -3
  178. package/dist/esm/ion-nav_2.entry.js +2 -2
  179. package/dist/esm/ion-picker-column-internal.entry.js +8 -4
  180. package/dist/esm/ion-picker-internal.entry.js +2 -2
  181. package/dist/esm/ion-popover.entry.js +2 -2
  182. package/dist/esm/ion-progress-bar.entry.js +1 -1
  183. package/dist/esm/ion-radio_2.entry.js +1 -1
  184. package/dist/esm/ion-refresher_2.entry.js +2 -2
  185. package/dist/esm/ion-reorder_2.entry.js +2 -2
  186. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  187. package/dist/esm/ion-route_4.entry.js +2 -2
  188. package/dist/esm/ion-searchbar.entry.js +29 -5
  189. package/dist/esm/ion-segment_2.entry.js +5 -5
  190. package/dist/esm/ion-select_3.entry.js +2 -2
  191. package/dist/esm/ion-spinner.entry.js +1 -1
  192. package/dist/esm/ion-split-pane.entry.js +2 -2
  193. package/dist/esm/ion-tab-bar_2.entry.js +4 -4
  194. package/dist/esm/ion-tab_2.entry.js +3 -3
  195. package/dist/esm/ion-text.entry.js +2 -2
  196. package/dist/esm/ion-toast.entry.js +2 -2
  197. package/dist/esm/ionic.js +1 -1
  198. package/dist/esm/loader.js +1 -1
  199. package/dist/esm-es5/data-bb424ba8.js +4 -0
  200. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  201. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  202. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  203. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  204. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  205. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  206. package/dist/esm-es5/ion-img.entry.js +1 -1
  207. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  208. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  209. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  210. package/dist/esm-es5/ion-loading.entry.js +1 -1
  211. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  212. package/dist/esm-es5/ion-modal.entry.js +1 -1
  213. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  214. package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
  215. package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
  216. package/dist/esm-es5/ion-popover.entry.js +1 -1
  217. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  218. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  219. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  220. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  221. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  222. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  223. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  224. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  225. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  226. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  227. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  228. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  229. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-text.entry.js +1 -1
  231. package/dist/esm-es5/ion-toast.entry.js +1 -1
  232. package/dist/esm-es5/ionic.js +1 -1
  233. package/dist/esm-es5/loader.js +1 -1
  234. package/dist/html.html-data.json +13 -1
  235. package/dist/ionic/ionic.esm.js +1 -1
  236. package/dist/ionic/{p-08a5d8eb.entry.js → p-0188824c.entry.js} +1 -1
  237. package/dist/ionic/{p-ba385465.system.entry.js → p-079817f9.system.entry.js} +1 -1
  238. package/dist/ionic/{p-b13b7128.system.entry.js → p-0971ee6d.system.entry.js} +1 -1
  239. package/dist/ionic/{p-db6a5af3.system.entry.js → p-0dbbf52a.system.entry.js} +1 -1
  240. package/dist/ionic/{p-f5bc27d6.system.entry.js → p-0eb111e7.system.entry.js} +1 -1
  241. package/dist/ionic/{p-996922b4.system.entry.js → p-0ef05e5d.system.entry.js} +1 -1
  242. package/dist/ionic/{p-86438241.system.entry.js → p-0fa9c8f7.system.entry.js} +1 -1
  243. package/dist/ionic/{p-8f466a2c.system.entry.js → p-11d480a7.system.entry.js} +1 -1
  244. package/dist/ionic/{p-f9f7b24a.system.entry.js → p-1561982b.system.entry.js} +1 -1
  245. package/dist/ionic/{p-45ea497f.entry.js → p-15ced5aa.entry.js} +1 -1
  246. package/dist/ionic/p-2055bdba.entry.js +4 -0
  247. package/dist/ionic/{p-cf88a096.system.entry.js → p-25f56cd7.system.entry.js} +1 -1
  248. package/dist/ionic/{p-6a0a3e18.system.entry.js → p-2791b018.system.entry.js} +1 -1
  249. package/dist/ionic/{p-e59803ca.entry.js → p-2b78245e.entry.js} +1 -1
  250. package/dist/ionic/{p-72c8ca65.system.entry.js → p-2bc25d50.system.entry.js} +2 -2
  251. package/dist/ionic/{p-479402e1.entry.js → p-2c94053b.entry.js} +1 -1
  252. package/dist/ionic/{p-9074a84e.system.entry.js → p-2d88f64e.system.entry.js} +1 -1
  253. package/dist/ionic/p-2fec06f2.entry.js +4 -0
  254. package/dist/ionic/p-327f8d66.entry.js +4 -0
  255. package/dist/ionic/p-3789920e.js +4 -0
  256. package/dist/ionic/{p-c7d8cec2.entry.js → p-3b85bb44.entry.js} +1 -1
  257. package/dist/ionic/{p-059fcb53.system.entry.js → p-43438ce1.system.entry.js} +2 -2
  258. package/dist/ionic/p-45362829.system.entry.js +4 -0
  259. package/dist/ionic/p-46ca8bb1.entry.js +4 -0
  260. package/dist/ionic/{p-08410e29.system.entry.js → p-4e74f845.system.entry.js} +1 -1
  261. package/dist/ionic/{p-7b809cc0.system.entry.js → p-4f73a163.system.entry.js} +1 -1
  262. package/dist/ionic/{p-345e2dac.system.entry.js → p-51dd4f12.system.entry.js} +1 -1
  263. package/dist/ionic/{p-5d8fca58.entry.js → p-51ebe7c6.entry.js} +1 -1
  264. package/dist/ionic/{p-cfe767f1.entry.js → p-526258be.entry.js} +1 -1
  265. package/dist/ionic/{p-fef4907e.system.entry.js → p-58b335fd.system.entry.js} +1 -1
  266. package/dist/ionic/{p-3377236e.entry.js → p-5e3e64b5.entry.js} +1 -1
  267. package/dist/ionic/{p-b9b8e462.system.entry.js → p-5f3fc112.system.entry.js} +1 -1
  268. package/dist/ionic/p-60c9fd9e.system.js +1 -1
  269. package/dist/ionic/{p-3ca0c7f2.entry.js → p-62f36e54.entry.js} +1 -1
  270. package/dist/ionic/{p-e8d46a2e.entry.js → p-65409f36.entry.js} +1 -1
  271. package/dist/ionic/p-6a110cb2.entry.js +4 -0
  272. package/dist/ionic/p-6ec0c1ee.system.entry.js +4 -0
  273. package/dist/ionic/{p-4830fae8.system.entry.js → p-7126abb8.system.entry.js} +1 -1
  274. package/dist/ionic/{p-b0ccd173.system.entry.js → p-7186eb03.system.entry.js} +1 -1
  275. package/dist/ionic/{p-6b5630b9.system.entry.js → p-7c91266e.system.entry.js} +1 -1
  276. package/dist/ionic/{p-f5dce0c6.entry.js → p-80808af6.entry.js} +1 -1
  277. package/dist/ionic/p-8a1b0abb.system.js +4 -0
  278. package/dist/ionic/{p-33dd4d0b.system.entry.js → p-8a21c7b4.system.entry.js} +1 -1
  279. package/dist/ionic/{p-09fc100a.entry.js → p-8be61e52.entry.js} +1 -1
  280. package/dist/ionic/{p-e4bf5d87.system.entry.js → p-8e127a08.system.entry.js} +1 -1
  281. package/dist/ionic/{p-0e7c8334.system.entry.js → p-966a5ae4.system.entry.js} +1 -1
  282. package/dist/ionic/{p-ae3aeb39.entry.js → p-98bac954.entry.js} +1 -1
  283. package/dist/ionic/{p-231a3636.system.entry.js → p-a53d569a.system.entry.js} +1 -1
  284. package/dist/ionic/{p-3270e211.entry.js → p-a7959307.entry.js} +1 -1
  285. package/dist/ionic/{p-7f865669.entry.js → p-ab7c79d9.entry.js} +1 -1
  286. package/dist/ionic/p-b7aec03b.entry.js +4 -0
  287. package/dist/ionic/p-bbb655e2.system.entry.js +4 -0
  288. package/dist/ionic/{p-ca935c03.entry.js → p-bc68a14a.entry.js} +1 -1
  289. package/dist/ionic/{p-36a80e5c.entry.js → p-c0d7aace.entry.js} +1 -1
  290. package/dist/ionic/{p-04721936.system.entry.js → p-c1a58ab3.system.entry.js} +1 -1
  291. package/dist/ionic/{p-84283745.entry.js → p-c63a69cd.entry.js} +1 -1
  292. package/dist/ionic/{p-8ce6d551.entry.js → p-c99bfffe.entry.js} +1 -1
  293. package/dist/ionic/{p-c6f9f608.entry.js → p-d637b857.entry.js} +1 -1
  294. package/dist/ionic/{p-09b047e0.entry.js → p-dd5a925f.entry.js} +1 -1
  295. package/dist/ionic/{p-c711b464.entry.js → p-deb09b58.entry.js} +1 -1
  296. package/dist/ionic/{p-95c2fa04.entry.js → p-e2236935.entry.js} +1 -1
  297. package/dist/ionic/{p-abcc9680.entry.js → p-e631799d.entry.js} +1 -1
  298. package/dist/ionic/{p-e155f315.system.entry.js → p-e6c115f6.system.entry.js} +1 -1
  299. package/dist/ionic/{p-8c74bd0e.system.entry.js → p-e7bdaac8.system.entry.js} +2 -2
  300. package/dist/ionic/p-f520f6a5.entry.js +4 -0
  301. package/dist/ionic/p-f89380a5.system.entry.js +4 -0
  302. package/dist/ionic/p-f98bd898.entry.js +4 -0
  303. package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
  304. package/dist/types/components/datetime/datetime.d.ts +10 -1
  305. package/dist/types/components/datetime/utils/format.d.ts +7 -13
  306. package/dist/types/components/datetime/utils/validate.d.ts +8 -0
  307. package/dist/types/components/searchbar/searchbar.d.ts +38 -0
  308. package/dist/types/components/toggle/toggle.d.ts +1 -1
  309. package/dist/types/components.d.ts +36 -4
  310. package/hydrate/index.js +230 -154
  311. package/package.json +1 -1
  312. package/dist/esm-es5/data-0f3ab200.js +0 -4
  313. package/dist/ionic/p-1522bf28.entry.js +0 -4
  314. package/dist/ionic/p-6f5b32c7.system.entry.js +0 -4
  315. package/dist/ionic/p-7330c044.system.js +0 -4
  316. package/dist/ionic/p-76afa95f.entry.js +0 -4
  317. package/dist/ionic/p-81f18ed1.system.entry.js +0 -4
  318. package/dist/ionic/p-addb7662.entry.js +0 -4
  319. package/dist/ionic/p-b80ef521.entry.js +0 -4
  320. package/dist/ionic/p-c05202a7.entry.js +0 -4
  321. package/dist/ionic/p-c67c9644.entry.js +0 -4
  322. package/dist/ionic/p-d070ab1e.system.entry.js +0 -4
  323. package/dist/ionic/p-de0392f4.entry.js +0 -4
  324. package/dist/ionic/p-e447e552.entry.js +0 -4
  325. package/dist/ionic/p-ef269a56.system.entry.js +0 -4
  326. package/dist/ionic/p-f7dce541.js +0 -4
package/hydrate/index.js CHANGED
@@ -16029,7 +16029,25 @@ const getFormattedDayPeriod = (dayPeriod) => {
16029
16029
  }
16030
16030
  return dayPeriod.toUpperCase();
16031
16031
  };
16032
- const getLocalizedTime = (locale, refParts, hourCycle) => {
16032
+ /**
16033
+ * Including time zone options may lead to the rendered text showing a
16034
+ * different time from what was selected in the Datetime, which could cause
16035
+ * confusion.
16036
+ */
16037
+ const stripTimeZone = (formatOptions) => {
16038
+ return Object.assign(Object.assign({}, formatOptions), {
16039
+ /**
16040
+ * Setting the time zone to UTC ensures that the value shown is always the
16041
+ * same as what was selected and safeguards against older Safari bugs with
16042
+ * Intl.DateTimeFormat.
16043
+ */
16044
+ timeZone: 'UTC',
16045
+ /**
16046
+ * We do not want to display the time zone name
16047
+ */
16048
+ timeZoneName: undefined });
16049
+ };
16050
+ const getLocalizedTime = (locale, refParts, hourCycle, formatOptions = { hour: 'numeric', minute: 'numeric' }) => {
16033
16051
  const timeParts = {
16034
16052
  hour: refParts.hour,
16035
16053
  minute: refParts.minute,
@@ -16037,28 +16055,12 @@ const getLocalizedTime = (locale, refParts, hourCycle) => {
16037
16055
  if (timeParts.hour === undefined || timeParts.minute === undefined) {
16038
16056
  return 'Invalid Time';
16039
16057
  }
16040
- return new Intl.DateTimeFormat(locale, {
16041
- hour: 'numeric',
16042
- minute: 'numeric',
16043
- /**
16044
- * Setting the timeZone to UTC prevents
16045
- * new Intl.DatetimeFormat from subtracting
16046
- * the user's current timezone offset
16047
- * when formatting the time.
16048
- */
16049
- timeZone: 'UTC',
16058
+ return new Intl.DateTimeFormat(locale, Object.assign(Object.assign({}, stripTimeZone(formatOptions)), {
16050
16059
  /**
16051
16060
  * We use hourCycle here instead of hour12 due to:
16052
16061
  * https://bugs.chromium.org/p/chromium/issues/detail?id=1347316&q=hour12&can=2
16053
16062
  */
16054
- hourCycle,
16055
- /**
16056
- * Setting Z at the end indicates that this
16057
- * date string is in the UTC time zone. This
16058
- * prevents new Date from adding the time zone
16059
- * offset when getting the ISO string.
16060
- */
16061
- }).format(new Date(convertDataToISO(Object.assign({
16063
+ hourCycle })).format(new Date(convertDataToISO(Object.assign({
16062
16064
  /**
16063
16065
  * JS uses a simplified ISO 8601 format which allows for
16064
16066
  * date-only formats and date-time formats, but not
@@ -16144,14 +16146,6 @@ const generateDayAriaLabel = (locale, today, refParts) => {
16144
16146
  */
16145
16147
  return today ? `Today, ${labelString}` : labelString;
16146
16148
  };
16147
- /**
16148
- * Gets the day of the week, month, and day
16149
- * Used for the header in MD mode.
16150
- */
16151
- const getMonthAndDay = (locale, refParts) => {
16152
- const date = getNormalizedDate(refParts);
16153
- return new Intl.DateTimeFormat(locale, { weekday: 'short', month: 'short', day: 'numeric', timeZone: 'UTC' }).format(date);
16154
- };
16155
16149
  /**
16156
16150
  * Given a locale and a date object,
16157
16151
  * return a formatted string that includes
@@ -16162,15 +16156,6 @@ const getMonthAndYear = (locale, refParts) => {
16162
16156
  const date = getNormalizedDate(refParts);
16163
16157
  return new Intl.DateTimeFormat(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }).format(date);
16164
16158
  };
16165
- /**
16166
- * Given a locale and a date object,
16167
- * return a formatted string that includes
16168
- * the short month, numeric day, and full year.
16169
- * Example: Apr 22, 2021
16170
- */
16171
- const getMonthDayAndYear = (locale, refParts) => {
16172
- return getLocalizedDateTime(locale, refParts, { month: 'short', day: 'numeric', year: 'numeric' });
16173
- };
16174
16159
  /**
16175
16160
  * Given a locale and a date object,
16176
16161
  * return a formatted string that includes
@@ -16220,7 +16205,7 @@ const getNormalizedDate = (refParts) => {
16220
16205
  */
16221
16206
  const getLocalizedDateTime = (locale, refParts, options) => {
16222
16207
  const date = getNormalizedDate(refParts);
16223
- return getDateTimeFormat(locale, options).format(date);
16208
+ return getDateTimeFormat(locale, stripTimeZone(options)).format(date);
16224
16209
  };
16225
16210
  /**
16226
16211
  * Given a locale, DatetimeParts, and options
@@ -16986,6 +16971,48 @@ const getHighlightStyles = (highlightedDates, dateIsoString, el) => {
16986
16971
  return undefined;
16987
16972
  };
16988
16973
 
16974
+ /**
16975
+ * If a time zone is provided in the format options, the rendered text could
16976
+ * differ from what was selected in the Datetime, which could cause
16977
+ * confusion.
16978
+ */
16979
+ const warnIfTimeZoneProvided = (el, formatOptions) => {
16980
+ var _a, _b, _c, _d;
16981
+ if (((_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _a === void 0 ? void 0 : _a.timeZone) ||
16982
+ ((_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) === null || _b === void 0 ? void 0 : _b.timeZoneName) ||
16983
+ ((_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _c === void 0 ? void 0 : _c.timeZone) ||
16984
+ ((_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) === null || _d === void 0 ? void 0 : _d.timeZoneName)) {
16985
+ printIonWarning('Datetime: "timeZone" and "timeZoneName" are not supported in "formatOptions".', el);
16986
+ }
16987
+ };
16988
+ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) => {
16989
+ // formatOptions is not required
16990
+ if (!formatOptions)
16991
+ return;
16992
+ // If formatOptions is provided, the date and/or time objects are required, depending on the presentation
16993
+ switch (presentation) {
16994
+ case 'date':
16995
+ case 'month-year':
16996
+ case 'month':
16997
+ case 'year':
16998
+ if (formatOptions.date === undefined) {
16999
+ printIonWarning(`Datetime: The '${presentation}' presentation requires a date object in formatOptions.`, el);
17000
+ }
17001
+ break;
17002
+ case 'time':
17003
+ if (formatOptions.time === undefined) {
17004
+ printIonWarning(`Datetime: The 'time' presentation requires a time object in formatOptions.`, el);
17005
+ }
17006
+ break;
17007
+ case 'date-time':
17008
+ case 'time-date':
17009
+ if (formatOptions.date === undefined && formatOptions.time === undefined) {
17010
+ printIonWarning(`Datetime: The '${presentation}' presentation requires either a date or time object (or both) in formatOptions.`, el);
17011
+ }
17012
+ break;
17013
+ }
17014
+ };
17015
+
16989
17016
  const datetimeIosCss = "/*!@:host*/.sc-ion-datetime-ios-h{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}/*!@ion-picker-column-internal*/ion-picker-column-internal.sc-ion-datetime-ios{min-width:26px}/*!@:host(.datetime-size-fixed)*/.datetime-size-fixed.sc-ion-datetime-ios-h{width:auto;height:auto}/*!@:host(.datetime-size-fixed:not(.datetime-prefer-wheel))*/.datetime-size-fixed.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){max-width:350px}/*!@:host(.datetime-size-fixed.datetime-prefer-wheel)*/.datetime-size-fixed.datetime-prefer-wheel.sc-ion-datetime-ios-h{min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}/*!@:host(.datetime-size-cover)*/.datetime-size-cover.sc-ion-datetime-ios-h{width:100%}/*!@:host .calendar-body,\n:host .datetime-year*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{opacity:0}/*!@:host(:not(.datetime-ready)) .datetime-year*/.sc-ion-datetime-ios-h:not(.datetime-ready) .datetime-year.sc-ion-datetime-ios{position:absolute;pointer-events:none}/*!@:host(.datetime-ready) .calendar-body*/.datetime-ready.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{opacity:1}/*!@:host(.datetime-ready) .datetime-year*/.datetime-ready.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:none;opacity:1}/*!@:host .wheel-order-year-first .day-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .day-column.sc-ion-datetime-ios{-ms-flex-order:3;order:3;text-align:end}/*!@:host .wheel-order-year-first .month-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .month-column.sc-ion-datetime-ios{-ms-flex-order:2;order:2;text-align:end}/*!@:host .wheel-order-year-first .year-column*/.sc-ion-datetime-ios-h .wheel-order-year-first.sc-ion-datetime-ios .year-column.sc-ion-datetime-ios{-ms-flex-order:1;order:1;text-align:start}/*!@:host .datetime-calendar,\n:host .datetime-year*/.sc-ion-datetime-ios-h .datetime-calendar.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}/*!@:host(.show-month-and-year) .datetime-year*/.show-month-and-year.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}@supports (background: -webkit-named-image(apple-pay-logo-black)) and (not (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{position:absolute;visibility:hidden;pointer-events:none}/*!@@supports (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{inset-inline-start:-99999px}}/*!@@supports not (inset-inline-start: 0)*/@supports .sc-ion-datetime-ios not.sc-ion-datetime-ios (inset-inline-start.sc-ion-datetime-ios: 0).sc-ion-datetime-ios{.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:-99999px}.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-next-prev,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-next-prev,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-days-of-week,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-days-of-week,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .calendar-body,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .calendar-body,.sc-ion-datetime-ios-h[dir=rtl].sc-ion-datetime-ios-h.show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.sc-ion-datetime-ios-h.show-month-and-year .datetime-time,.sc-ion-datetime-ios-h[dir=rtl].show-month-and-year .datetime-time,[dir=rtl] .sc-ion-datetime-ios-h.show-month-and-year .datetime-time{left:unset;right:unset;right:-99999px}@supports selector(:dir(rtl)){.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-next-prev,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-days-of-week,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .calendar-body,.sc-ion-datetime-ios-h.show-month-and-year:dir(rtl) .datetime-time{left:unset;right:unset;right:-99999px}}}}@supports (not (background: -webkit-named-image(apple-pay-logo-black))) or ((background: -webkit-named-image(apple-pay-logo-black)) and (aspect-ratio: 1/1)){/*!@:host(.show-month-and-year) .calendar-next-prev,\n :host(.show-month-and-year) .calendar-days-of-week,\n :host(.show-month-and-year) .calendar-body,\n :host(.show-month-and-year) .datetime-time*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-next-prev.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.show-month-and-year.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:none}}/*!@:host(.month-year-picker-open) .datetime-footer*/.month-year-picker-open.sc-ion-datetime-ios-h .datetime-footer.sc-ion-datetime-ios{display:none}/*!@:host(.datetime-disabled)*/.datetime-disabled.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-disabled) .calendar-days-of-week,\n:host(.datetime-disabled) .datetime-time*/.datetime-disabled.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios,.datetime-disabled.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{opacity:0.4}/*!@:host(.datetime-readonly)*/.datetime-readonly.sc-ion-datetime-ios-h{pointer-events:none}/*!@:host(.datetime-readonly) .calendar-action-buttons,\n:host(.datetime-readonly) .calendar-body,\n:host(.datetime-readonly) .datetime-year*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios,.datetime-readonly.sc-ion-datetime-ios-h .datetime-year.sc-ion-datetime-ios{pointer-events:initial}/*!@:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),\n:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]*/.datetime-readonly.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios:not(.calendar-day-constrained),.datetime-readonly.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-button[disabled].sc-ion-datetime-ios{opacity:1}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}/*!@:host .datetime-action-buttons.has-clear-button*/.sc-ion-datetime-ios-h .datetime-action-buttons.has-clear-button.sc-ion-datetime-ios{width:100%}/*!@:host .datetime-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@.datetime-action-buttons .datetime-action-buttons-container*/.datetime-action-buttons.sc-ion-datetime-ios .datetime-action-buttons-container.sc-ion-datetime-ios{display:-ms-flexbox;display:flex}/*!@:host .calendar-action-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .calendar-action-buttons ion-item,\n:host .calendar-action-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{--background:translucent}/*!@:host .calendar-action-buttons ion-item ion-label*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-label.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;width:auto}/*!@:host .calendar-action-buttons ion-item ion-icon*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}/*!@:host .calendar-body*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}/*!@:host .calendar-body .calendar-month*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}/*!@:host .calendar-body .calendar-month-disabled*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-disabled.sc-ion-datetime-ios{scroll-snap-align:none}/*!@:host .calendar-body::-webkit-scrollbar*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios::-webkit-scrollbar{display:none}/*!@:host .calendar-body .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{display:grid;grid-template-columns:repeat(7, 1fr)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}/*!@:host .calendar-day[disabled]*/.sc-ion-datetime-ios-h .calendar-day[disabled].sc-ion-datetime-ios{pointer-events:none;opacity:0.4}/*!@.calendar-day:focus*/.calendar-day.sc-ion-datetime-ios:focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}/*!@:host(.datetime-presentation-time) .datetime-time*/.datetime-presentation-time.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}/*!@:host ion-popover*/.sc-ion-datetime-ios-h ion-popover.sc-ion-datetime-ios{--height:200px}/*!@:host .time-header*/.sc-ion-datetime-ios-h .time-header.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}/*!@:host .time-body*/.sc-ion-datetime-ios-h .time-body.sc-ion-datetime-ios{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}/*!@:host .time-body-active*/.sc-ion-datetime-ios-h .time-body-active.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host(.in-item)*/.in-item.sc-ion-datetime-ios-h{position:static}/*!@:host(.show-month-and-year) .calendar-action-buttons ion-item*/.show-month-and-year.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios{--color:var(--ion-color-base)}/*!@:host*/.sc-ion-datetime-ios-h{--background:var(--ion-color-light, #ffffff);--background-rgb:var(--ion-color-light-rgb);--title-color:var(--ion-color-step-600, #666666)}/*!@:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),\n:host(.datetime-presentation-date:not(.datetime-prefer-wheel))*/.datetime-presentation-date-time.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-time-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel),.datetime-presentation-date.sc-ion-datetime-ios-h:not(.datetime-prefer-wheel){min-height:350px}/*!@:host .datetime-header*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, #cccccc);font-size:min(0.875rem, 22.4px)}/*!@:host .datetime-header .datetime-title*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-title.sc-ion-datetime-ios{color:var(--title-color)}/*!@:host .datetime-header .datetime-selected-date*/.sc-ion-datetime-ios-h .datetime-header.sc-ion-datetime-ios .datetime-selected-date.sc-ion-datetime-ios{margin-top:10px}/*!@:host .calendar-action-buttons ion-item*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios{--padding-start:16px;--background-hover:transparent;--background-activated:transparent;font-size:min(1rem, 25.6px);font-weight:600}/*!@:host .calendar-action-buttons ion-item ion-icon,\n:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-item.sc-ion-datetime-ios ion-icon.sc-ion-datetime-ios,.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-action-buttons ion-buttons*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}/*!@:host .calendar-action-buttons ion-buttons ion-button*/.sc-ion-datetime-ios-h .calendar-action-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios ion-button.sc-ion-datetime-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}/*!@:host .calendar-days-of-week*/.sc-ion-datetime-ios-h .calendar-days-of-week.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, #b3b3b3);font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){/*!@.calendar-days-of-week .day-of-week*/.calendar-days-of-week.sc-ion-datetime-ios .day-of-week.sc-ion-datetime-ios{width:auto;height:auto;overflow:initial}/*!@.calendar-day*/.calendar-day.sc-ion-datetime-ios{border-radius:32px}}/*!@:host .calendar-body .calendar-month .calendar-month-grid*/.sc-ion-datetime-ios-h .calendar-body.sc-ion-datetime-ios .calendar-month.sc-ion-datetime-ios .calendar-month-grid.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}/*!@:host .calendar-day-wrapper*/.sc-ion-datetime-ios-h .calendar-day-wrapper.sc-ion-datetime-ios{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}/*!@:host .calendar-day*/.sc-ion-datetime-ios-h .calendar-day.sc-ion-datetime-ios{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}/*!@.calendar-day.calendar-day-active*/.calendar-day.calendar-day-active.sc-ion-datetime-ios{background:rgba(var(--ion-color-base-rgb), 0.2)}/*!@:host .calendar-day.calendar-day-today*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.sc-ion-datetime-ios{color:var(--ion-color-base)}/*!@:host .calendar-day.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-active.sc-ion-datetime-ios{color:var(--ion-color-base);font-weight:600}/*!@:host .calendar-day.calendar-day-today.calendar-day-active*/.sc-ion-datetime-ios-h .calendar-day.calendar-day-today.calendar-day-active.sc-ion-datetime-ios{background:var(--ion-color-base);color:var(--ion-color-contrast)}/*!@:host .datetime-time*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}/*!@:host .datetime-time .time-header*/.sc-ion-datetime-ios-h .datetime-time.sc-ion-datetime-ios .time-header.sc-ion-datetime-ios{font-weight:600}/*!@:host .datetime-buttons*/.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, #cccccc)}/*!@:host .datetime-buttons ::slotted(ion-buttons),\n:host .datetime-buttons ion-buttons*/.sc-ion-datetime-ios-h .datetime-buttons .sc-ion-datetime-ios-s>ion-buttons,.sc-ion-datetime-ios-h .datetime-buttons.sc-ion-datetime-ios ion-buttons.sc-ion-datetime-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}/*!@:host .datetime-action-buttons*/.sc-ion-datetime-ios-h .datetime-action-buttons.sc-ion-datetime-ios{width:100%}";
16990
17017
  var IonDatetimeIosStyle0 = datetimeIosCss;
16991
17018
 
@@ -17634,6 +17661,7 @@ class Datetime {
17634
17661
  this.color = 'primary';
17635
17662
  this.name = this.inputId;
17636
17663
  this.disabled = false;
17664
+ this.formatOptions = undefined;
17637
17665
  this.readonly = false;
17638
17666
  this.isDateEnabled = undefined;
17639
17667
  this.min = undefined;
@@ -17661,6 +17689,11 @@ class Datetime {
17661
17689
  this.size = 'fixed';
17662
17690
  this.preferWheel = false;
17663
17691
  }
17692
+ formatOptionsChanged() {
17693
+ const { el, formatOptions, presentation } = this;
17694
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
17695
+ warnIfTimeZoneProvided(el, formatOptions);
17696
+ }
17664
17697
  disabledChanged() {
17665
17698
  this.emitStyle();
17666
17699
  }
@@ -17670,6 +17703,10 @@ class Datetime {
17670
17703
  maxChanged() {
17671
17704
  this.processMaxParts();
17672
17705
  }
17706
+ presentationChanged() {
17707
+ const { el, formatOptions, presentation } = this;
17708
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
17709
+ }
17673
17710
  get isGridStyle() {
17674
17711
  const { presentation, preferWheel } = this;
17675
17712
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
@@ -17772,6 +17809,7 @@ class Datetime {
17772
17809
  this.initializeKeyboardListeners();
17773
17810
  }
17774
17811
  componentDidLoad() {
17812
+ const { el, intersectionTrackerRef } = this;
17775
17813
  /**
17776
17814
  * If a scrollable element is hidden using `display: none`,
17777
17815
  * it will not have a scroll height meaning we cannot scroll elements
@@ -17797,14 +17835,14 @@ class Datetime {
17797
17835
  this.el.classList.add('datetime-ready');
17798
17836
  });
17799
17837
  };
17800
- const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01 });
17838
+ const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
17801
17839
  /**
17802
17840
  * Use raf to avoid a race condition between the component loading and
17803
17841
  * its display animation starting (such as when shown in a modal). This
17804
17842
  * could cause the datetime to start at a visibility of 0, erroneously
17805
17843
  * triggering the `hiddenIO` observer below.
17806
17844
  */
17807
- raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(this.el));
17845
+ raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(intersectionTrackerRef));
17808
17846
  /**
17809
17847
  * We need to clean up listeners when the datetime is hidden
17810
17848
  * in a popover/modal so that we can properly scroll containers
@@ -17830,8 +17868,8 @@ class Datetime {
17830
17868
  this.el.classList.remove('datetime-ready');
17831
17869
  });
17832
17870
  };
17833
- const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0 });
17834
- raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(this.el));
17871
+ const hiddenIO = new IntersectionObserver(hiddenCallback, { threshold: 0, root: el });
17872
+ raf(() => hiddenIO === null || hiddenIO === void 0 ? void 0 : hiddenIO.observe(intersectionTrackerRef));
17835
17873
  /**
17836
17874
  * Datetime uses Ionic components that emit
17837
17875
  * ionFocus and ionBlur. These events are
@@ -17905,7 +17943,7 @@ class Datetime {
17905
17943
  });
17906
17944
  }
17907
17945
  componentWillLoad() {
17908
- const { el, highlightedDates, multiple, presentation, preferWheel } = this;
17946
+ const { el, formatOptions, highlightedDates, multiple, presentation, preferWheel } = this;
17909
17947
  if (multiple) {
17910
17948
  if (presentation !== 'date') {
17911
17949
  printIonWarning('Multiple date selection is only supported for presentation="date".', el);
@@ -17922,6 +17960,10 @@ class Datetime {
17922
17960
  printIonWarning('The highlightedDates property is not supported with preferWheel="true".', el);
17923
17961
  }
17924
17962
  }
17963
+ if (formatOptions) {
17964
+ checkForPresentationFormatMismatch(el, presentation, formatOptions);
17965
+ warnIfTimeZoneProvided(el, formatOptions);
17966
+ }
17925
17967
  const hourValues = (this.parsedHourValues = convertToArrayOfNumbers(this.hourValues));
17926
17968
  const minuteValues = (this.parsedMinuteValues = convertToArrayOfNumbers(this.minuteValues));
17927
17969
  const monthValues = (this.parsedMonthValues = convertToArrayOfNumbers(this.monthValues));
@@ -18429,7 +18471,7 @@ class Datetime {
18429
18471
  return hAsync("slot", { name: "time-label" }, "Time");
18430
18472
  }
18431
18473
  renderTimeOverlay() {
18432
- const { disabled, hourCycle, isTimePopoverOpen, locale } = this;
18474
+ const { disabled, hourCycle, isTimePopoverOpen, locale, formatOptions } = this;
18433
18475
  const computedHourCycle = getHourCycle(locale, hourCycle);
18434
18476
  const activePart = this.getActivePartsWithFallback();
18435
18477
  return [
@@ -18449,7 +18491,7 @@ class Datetime {
18449
18491
  await popoverRef.onWillDismiss();
18450
18492
  this.isTimePopoverOpen = false;
18451
18493
  }
18452
- } }, getLocalizedTime(locale, activePart, computedHourCycle)),
18494
+ } }, getLocalizedTime(locale, activePart, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time)),
18453
18495
  hAsync("ion-popover", { alignment: "center", translucent: true, overlayIndex: 1, arrow: false, onWillPresent: (ev) => {
18454
18496
  /**
18455
18497
  * Intersection Observers do not consistently fire between Blink and Webkit
@@ -18472,7 +18514,8 @@ class Datetime {
18472
18514
  ];
18473
18515
  }
18474
18516
  getHeaderSelectedDateText() {
18475
- const { activeParts, multiple, titleSelectedDatesFormatter } = this;
18517
+ var _a;
18518
+ const { activeParts, formatOptions, multiple, titleSelectedDatesFormatter } = this;
18476
18519
  const isArray = Array.isArray(activeParts);
18477
18520
  let headerText;
18478
18521
  if (multiple && isArray && activeParts.length !== 1) {
@@ -18488,7 +18531,7 @@ class Datetime {
18488
18531
  }
18489
18532
  else {
18490
18533
  // for exactly 1 day selected (multiple set or not), show a formatted version of that
18491
- headerText = getMonthAndDay(this.locale, this.getActivePartsWithFallback());
18534
+ headerText = getLocalizedDateTime(this.locale, this.getActivePartsWithFallback(), (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { weekday: 'short', month: 'short', day: 'numeric' });
18492
18535
  }
18493
18536
  return headerText;
18494
18537
  }
@@ -18577,7 +18620,7 @@ class Datetime {
18577
18620
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
18578
18621
  const hasWheelVariant = hasDatePresentation && preferWheel;
18579
18622
  renderHiddenInput(true, el, name, formatValue(value), disabled);
18580
- return (hAsync(Host, { key: 'b00545b7bbba3ccf35d53c1eec4f1614fb830c11', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
18623
+ return (hAsync(Host, { key: '064dc72b5494a687e93e7605f7e1ec2d00f523ad', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
18581
18624
  [mode]: true,
18582
18625
  ['datetime-readonly']: readonly,
18583
18626
  ['datetime-disabled']: disabled,
@@ -18587,13 +18630,15 @@ class Datetime {
18587
18630
  [`datetime-size-${size}`]: true,
18588
18631
  [`datetime-prefer-wheel`]: hasWheelVariant,
18589
18632
  [`datetime-grid`]: isGridStyle,
18590
- })) }, this.renderDatetime(mode)));
18633
+ })) }, hAsync("div", { key: '258b34ca5d9bacfaa886a7de278f41a30be48c44', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
18591
18634
  }
18592
18635
  get el() { return getElement(this); }
18593
18636
  static get watchers() { return {
18637
+ "formatOptions": ["formatOptionsChanged"],
18594
18638
  "disabled": ["disabledChanged"],
18595
18639
  "min": ["minChanged"],
18596
18640
  "max": ["maxChanged"],
18641
+ "presentation": ["presentationChanged"],
18597
18642
  "yearValues": ["yearValuesChanged"],
18598
18643
  "monthValues": ["monthValuesChanged"],
18599
18644
  "dayValues": ["dayValuesChanged"],
@@ -18612,6 +18657,7 @@ class Datetime {
18612
18657
  "color": [1],
18613
18658
  "name": [1],
18614
18659
  "disabled": [4],
18660
+ "formatOptions": [16],
18615
18661
  "readonly": [4],
18616
18662
  "isDateEnabled": [16],
18617
18663
  "min": [1025],
@@ -18694,11 +18740,12 @@ class DatetimeButton {
18694
18740
  * to the locale specified on ion-datetime.
18695
18741
  */
18696
18742
  this.setDateTimeText = () => {
18743
+ var _a, _b, _c, _d, _e;
18697
18744
  const { datetimeEl, datetimePresentation } = this;
18698
18745
  if (!datetimeEl) {
18699
18746
  return;
18700
18747
  }
18701
- const { value, locale, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
18748
+ const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
18702
18749
  const parsedValues = this.getParsedDateValues(value);
18703
18750
  /**
18704
18751
  * Both ion-datetime and ion-datetime-button default
@@ -18721,8 +18768,8 @@ class DatetimeButton {
18721
18768
  switch (datetimePresentation) {
18722
18769
  case 'date-time':
18723
18770
  case 'time-date':
18724
- const dateText = getMonthDayAndYear(locale, firstParsedDatetime);
18725
- const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
18771
+ const dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_a = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _a !== void 0 ? _a : { month: 'short', day: 'numeric', year: 'numeric' });
18772
+ const timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time);
18726
18773
  if (preferWheel) {
18727
18774
  this.dateText = `${dateText} ${timeText}`;
18728
18775
  }
@@ -18745,20 +18792,20 @@ class DatetimeButton {
18745
18792
  this.dateText = headerText;
18746
18793
  }
18747
18794
  else {
18748
- this.dateText = getMonthDayAndYear(locale, firstParsedDatetime);
18795
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_b = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _b !== void 0 ? _b : { month: 'short', day: 'numeric', year: 'numeric' });
18749
18796
  }
18750
18797
  break;
18751
18798
  case 'time':
18752
- this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle);
18799
+ this.timeText = getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time);
18753
18800
  break;
18754
18801
  case 'month-year':
18755
- this.dateText = getMonthAndYear(locale, firstParsedDatetime);
18802
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_c = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.date) !== null && _c !== void 0 ? _c : { month: 'long', year: 'numeric' });
18756
18803
  break;
18757
18804
  case 'month':
18758
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, { month: 'long' });
18805
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_d = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) !== null && _d !== void 0 ? _d : { month: 'long' });
18759
18806
  break;
18760
18807
  case 'year':
18761
- this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, { year: 'numeric' });
18808
+ this.dateText = getLocalizedDateTime(locale, firstParsedDatetime, (_e = formatOptions === null || formatOptions === void 0 ? void 0 : formatOptions.time) !== null && _e !== void 0 ? _e : { year: 'numeric' });
18762
18809
  break;
18763
18810
  }
18764
18811
  };
@@ -18987,7 +19034,7 @@ class DatetimeButton {
18987
19034
  render() {
18988
19035
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
18989
19036
  const mode = getIonMode$1(this);
18990
- return (hAsync(Host, { key: '36fe34d4225940611d74bdef5b954d54749d2dca', class: createColorClasses$1(color, {
19037
+ return (hAsync(Host, { key: 'a38773e24ea0a28315be89baf0ef97f564b5d74b', class: createColorClasses$1(color, {
18991
19038
  [mode]: true,
18992
19039
  [`${selectedButton}-active`]: datetimeActive,
18993
19040
  ['datetime-button-disabled']: disabled,
@@ -19065,12 +19112,12 @@ class Fab {
19065
19112
  render() {
19066
19113
  const { horizontal, vertical, edge } = this;
19067
19114
  const mode = getIonMode$1(this);
19068
- return (hAsync(Host, { key: 'eb7470763cfaadd229036fe4e04913cb4a0551c7', class: {
19115
+ return (hAsync(Host, { key: '2960656845d8ab1d643e56870cfeefbceb44fb20', class: {
19069
19116
  [mode]: true,
19070
19117
  [`fab-horizontal-${horizontal}`]: horizontal !== undefined,
19071
19118
  [`fab-vertical-${vertical}`]: vertical !== undefined,
19072
19119
  'fab-edge': edge,
19073
- } }, hAsync("slot", { key: 'daf53f8c644db866f69d41401dba7a2791c37ac3' })));
19120
+ } }, hAsync("slot", { key: 'eed164a50594167959905a90d678d417bc99098d' })));
19074
19121
  }
19075
19122
  get el() { return getElement(this); }
19076
19123
  static get watchers() { return {
@@ -19160,7 +19207,7 @@ class FabButton {
19160
19207
  rel: this.rel,
19161
19208
  target: this.target,
19162
19209
  };
19163
- return (hAsync(Host, { key: '78f11aaac39bf0fcb25b64885ee61619223e4241', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
19210
+ return (hAsync(Host, { key: 'c6d1a3ea95ee1fb6c86447881ff8ed7d885b9fb5', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
19164
19211
  [mode]: true,
19165
19212
  'fab-button-in-list': inList,
19166
19213
  'fab-button-translucent-in-list': inList && translucent,
@@ -19171,7 +19218,7 @@ class FabButton {
19171
19218
  'ion-activatable': true,
19172
19219
  'ion-focusable': true,
19173
19220
  [`fab-button-${size}`]: size !== undefined,
19174
- }) }, hAsync(TagType, Object.assign({ key: 'a29b5eff122006d463ef3e10e1abe8378de07dc5' }, 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: 'e554c978fd9825eec9ca958f5b481f662ed6daa4', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: 'd7dd93e93343767d223800899f0fd4c405845023', class: "button-inner" }, hAsync("slot", { key: 'dd5df0945385480e7551e24117d136cd6b231638' })), mode === 'md' && hAsync("ion-ripple-effect", null))));
19221
+ }) }, hAsync(TagType, Object.assign({ key: 'd57e55e43e3e1fa7a255e25bfb9eb81a20200aa4' }, 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: '561252585dc5f5ed260987fc8fef2558700b2700', "aria-hidden": "true", icon: this.closeIcon, part: "close-icon", class: "close-icon", lazy: false }), hAsync("span", { key: 'd156660a55d4d849c24368ee79217e66c6423b37', class: "button-inner" }, hAsync("slot", { key: '35d4507eec7e4f646e1ef9206b8d6c9fd5a43c37' })), mode === 'md' && hAsync("ion-ripple-effect", null))));
19175
19222
  }
19176
19223
  get el() { return getElement(this); }
19177
19224
  static get style() { return {
@@ -19222,11 +19269,11 @@ class FabList {
19222
19269
  }
19223
19270
  render() {
19224
19271
  const mode = getIonMode$1(this);
19225
- return (hAsync(Host, { key: 'c786680f9868700913a182f908f25a612ec08498', class: {
19272
+ return (hAsync(Host, { key: 'edbed7730aa2f177a6fb39a89af805b9699bc9ae', class: {
19226
19273
  [mode]: true,
19227
19274
  'fab-list-active': this.activated,
19228
19275
  [`fab-list-side-${this.side}`]: true,
19229
- } }, hAsync("slot", { key: '547f8cb69ab2371095e3deeef1dc13fc1053bdf6' })));
19276
+ } }, hAsync("slot", { key: '3ecb467b6d09dc02a1ab3cb76403f7c56e8ec6b2' })));
19230
19277
  }
19231
19278
  get el() { return getElement(this); }
19232
19279
  static get watchers() { return {
@@ -19678,7 +19725,7 @@ class Footer {
19678
19725
  const mode = getIonMode$1(this);
19679
19726
  const tabs = this.el.closest('ion-tabs');
19680
19727
  const tabBar = tabs === null || tabs === void 0 ? void 0 : tabs.querySelector(':scope > ion-tab-bar');
19681
- return (hAsync(Host, { key: '550b8b8fb614e541e1d369fc1ac5ba1f083913b4', role: "contentinfo", class: {
19728
+ return (hAsync(Host, { key: '6f2827ba2e64d1a889c0631bc2a6d5df97b338ce', role: "contentinfo", class: {
19682
19729
  [mode]: true,
19683
19730
  // Used internally for styling
19684
19731
  [`footer-${mode}`]: true,
@@ -19686,7 +19733,7 @@ class Footer {
19686
19733
  [`footer-translucent-${mode}`]: translucent,
19687
19734
  ['footer-toolbar-padding']: !this.keyboardVisible && (!tabBar || tabBar.slot !== 'bottom'),
19688
19735
  [`footer-collapse-${collapse}`]: collapse !== undefined,
19689
- } }, mode === 'ios' && translucent && hAsync("div", { class: "footer-background" }), hAsync("slot", { key: 'd25187ecc2ce7848ba882af078cb634e9d5e8814' })));
19736
+ } }, mode === 'ios' && translucent && hAsync("div", { class: "footer-background" }), hAsync("slot", { key: 'b07574feb587a1089b001e7d158fd8d05e32304b' })));
19690
19737
  }
19691
19738
  get el() { return getElement(this); }
19692
19739
  static get style() { return {
@@ -19717,10 +19764,10 @@ class Grid {
19717
19764
  }
19718
19765
  render() {
19719
19766
  const mode = getIonMode$1(this);
19720
- return (hAsync(Host, { key: '03a8975bb9320192033219fc9e06fe7afa4fae4a', class: {
19767
+ return (hAsync(Host, { key: '265ab989098511c0b7e7d99edc792081f3ac7dfe', class: {
19721
19768
  [mode]: true,
19722
19769
  'grid-fixed': this.fixed,
19723
- } }, hAsync("slot", { key: '8d95abb4614e73a46a274668c13fe7c7f011c537' })));
19770
+ } }, hAsync("slot", { key: '83e3ea4d1a60d1a6dab6b592e70a98924c0cfd7c' })));
19724
19771
  }
19725
19772
  static get style() { return IonGridStyle0; }
19726
19773
  static get cmpMeta() { return {
@@ -20051,14 +20098,14 @@ class Header {
20051
20098
  const collapse = this.collapse || 'none';
20052
20099
  // banner role must be at top level, so remove role if inside a menu
20053
20100
  const roleType = hostContext('ion-menu', this.el) ? 'none' : 'banner';
20054
- return (hAsync(Host, Object.assign({ key: 'a33e7e1818cb4718ae36b8bcfa811c4138b85fac', role: roleType, class: {
20101
+ return (hAsync(Host, Object.assign({ key: 'be4386a218c20dc4c18320dbbcfb25574d13d27e', role: roleType, class: {
20055
20102
  [mode]: true,
20056
20103
  // Used internally for styling
20057
20104
  [`header-${mode}`]: true,
20058
20105
  [`header-translucent`]: this.translucent,
20059
20106
  [`header-collapse-${collapse}`]: true,
20060
20107
  [`header-translucent-${mode}`]: this.translucent,
20061
- } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { class: "header-background" }), hAsync("slot", { key: '7e2fa75034f7422a3dc5691e9b3c25393e16c0ca' })));
20108
+ } }, inheritedAttributes), mode === 'ios' && translucent && hAsync("div", { class: "header-background" }), hAsync("slot", { key: '74c401fb331aeb40c733605fd580949ad53989b8' })));
20062
20109
  }
20063
20110
  get el() { return getElement(this); }
20064
20111
  static get style() { return {
@@ -20337,7 +20384,7 @@ class Img {
20337
20384
  render() {
20338
20385
  const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
20339
20386
  const { draggable } = inheritedAttributes;
20340
- return (hAsync(Host, { key: '1983ddd575d8f870f249d37a3897dbcc110bf4d7', class: getIonMode$1(this) }, hAsync("img", { key: 'f2ba013804f6ed9e5dadb08c75e47c0f844e67f3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20387
+ return (hAsync(Host, { key: '212cb19b83defa47a677e44659eccc5e7e1bc5a2', class: getIonMode$1(this) }, hAsync("img", { key: '975230d5ef5f262c8e5f040eb59cd1033241f3c8', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
20341
20388
  }
20342
20389
  get el() { return getElement(this); }
20343
20390
  static get watchers() { return {
@@ -20544,7 +20591,7 @@ class InfiniteScroll {
20544
20591
  render() {
20545
20592
  const mode = getIonMode$1(this);
20546
20593
  const disabled = this.disabled;
20547
- return (hAsync(Host, { key: '8b5da92c7a1c118cd6c6a6be8f21b11b79f166bd', class: {
20594
+ return (hAsync(Host, { key: 'cf712b0f22fe89b41377402da44f5575118ed34f', class: {
20548
20595
  [mode]: true,
20549
20596
  'infinite-scroll-loading': this.isLoading,
20550
20597
  'infinite-scroll-enabled': !disabled,
@@ -20600,11 +20647,11 @@ class InfiniteScrollContent {
20600
20647
  }
20601
20648
  render() {
20602
20649
  const mode = getIonMode$1(this);
20603
- return (hAsync(Host, { key: '8ffd8ff4c951be0c2b1f48fd4be3a2d7765a989f', class: {
20650
+ return (hAsync(Host, { key: '38c67d2c7ea4c304e71dacea64add0bffab69906', class: {
20604
20651
  [mode]: true,
20605
20652
  // Used internally for styling
20606
20653
  [`infinite-scroll-content-${mode}`]: true,
20607
- } }, hAsync("div", { key: 'd7d03485501b5e2fde7c132309bb6358818eb0cd', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { class: "infinite-loading-spinner" }, hAsync("ion-spinner", { name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20654
+ } }, hAsync("div", { key: 'a23484ccbaf65e0e3ecb59befea425cfdbc782fd', class: "infinite-loading" }, this.loadingSpinner && (hAsync("div", { class: "infinite-loading-spinner" }, hAsync("ion-spinner", { name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
20608
20655
  }
20609
20656
  static get style() { return {
20610
20657
  ios: IonInfiniteScrollContentIosStyle0,
@@ -21611,11 +21658,11 @@ class ItemDivider {
21611
21658
  }
21612
21659
  render() {
21613
21660
  const mode = getIonMode$1(this);
21614
- return (hAsync(Host, { key: '8422b960dfcce4ff1370d9c185e285bb4a3688d5', class: createColorClasses$1(this.color, {
21661
+ return (hAsync(Host, { key: 'd9d5993694639e8f1ed589f0e8c3f4920ce30e02', class: createColorClasses$1(this.color, {
21615
21662
  [mode]: true,
21616
21663
  'item-divider-sticky': this.sticky,
21617
21664
  item: true,
21618
- }) }, hAsync("slot", { key: '240514b96ec48262040460775c8eb0a58d6acfa8', name: "start" }), hAsync("div", { key: 'ec18c092c81cb96f8c49ed7d4dede96c9a3e3f97', class: "item-divider-inner" }, hAsync("div", { key: '9c3f3dcb9b14fd1d37fb1104b3ba953dc9a3e894', class: "item-divider-wrapper" }, hAsync("slot", { key: '6b8e51eb86a5567b80a91034b26228105796a82d' })), hAsync("slot", { key: '7ccb661e1309c1ecca09a823f8e08b1cf90d95dd', name: "end" }))));
21665
+ }) }, hAsync("slot", { key: '1da8c38cbf07ef591ceae94b0d70bf620990e568', name: "start" }), hAsync("div", { key: '349a581fd1688b01ce7c67da99ae22cb4a5a85f7', class: "item-divider-inner" }, hAsync("div", { key: '80e22ba4f5da2af40bb32a445b840baa59edfbcc', class: "item-divider-wrapper" }, hAsync("slot", { key: '6d3fb95c8eba128e56defccbcc5d4b1fa3ec4c4a' })), hAsync("slot", { key: '83a97c131348c8cf840c30ccbf83c78edc125c14', name: "end" }))));
21619
21666
  }
21620
21667
  get el() { return getElement(this); }
21621
21668
  static get style() { return {
@@ -21647,7 +21694,7 @@ class ItemGroup {
21647
21694
  }
21648
21695
  render() {
21649
21696
  const mode = getIonMode$1(this);
21650
- return (hAsync(Host, { key: 'b33f23544ddeeeb61847b146b1dcb7a9ba30af18', role: "group", class: {
21697
+ return (hAsync(Host, { key: '1d7de42c40d5f37324342fa7be2420bf6499705e', role: "group", class: {
21651
21698
  [mode]: true,
21652
21699
  // Used internally for styling
21653
21700
  [`item-group-${mode}`]: true,
@@ -21715,12 +21762,12 @@ class ItemOption {
21715
21762
  href: this.href,
21716
21763
  target: this.target,
21717
21764
  };
21718
- return (hAsync(Host, { key: '8d8ef0455e0e46d31a84b6f9e83e377e0579f04b', onClick: this.onClick, class: createColorClasses$1(this.color, {
21765
+ return (hAsync(Host, { key: '7e208b463b2d36984791a7c9c1d24af88b468a03', onClick: this.onClick, class: createColorClasses$1(this.color, {
21719
21766
  [mode]: true,
21720
21767
  'item-option-disabled': disabled,
21721
21768
  'item-option-expandable': expandable,
21722
21769
  'ion-activatable': true,
21723
- }) }, hAsync(TagType, Object.assign({ key: '0d4833cefd206862a75fdef8744e659cff24a39f' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: 'bfbdab3ee6cfc884eb2bd60c92cf919f4b671c27', class: "button-inner" }, hAsync("slot", { key: '968ebecbd9e8ca5015106d79e5d29b4a1999d39b', name: "top" }), hAsync("div", { key: '38677cd72df6447a4e934695ab08857460be800d', class: "horizontal-wrapper" }, hAsync("slot", { key: 'e65131d2e3f12c3743c7229b0a7f381824a45281', name: "start" }), hAsync("slot", { key: 'c3a9bd83c455a79395574ff4d862299fd9340cd2', name: "icon-only" }), hAsync("slot", { key: '161ca1daed265e8990d28f74744476a37d555d85' }), hAsync("slot", { key: 'd5ecafceada1f8c3c16a2cb6511368828009081f', name: "end" })), hAsync("slot", { key: '39e6a9dffc2cb9e2e9a200f6c669ed47f9a485aa', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", null))));
21770
+ }) }, hAsync(TagType, Object.assign({ key: '9f48210793e88f25b675add863453432e6d8be51' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: '3ebb5d9b7369f77ca49c8d700a95e4e2335a7f24', class: "button-inner" }, hAsync("slot", { key: '7df01a2c40554effe0e36e7fe29ac469a89ad395', name: "top" }), hAsync("div", { key: '1bdc411990a89a0523dd170bf4d61c2f28af3018', class: "horizontal-wrapper" }, hAsync("slot", { key: '967a0cc8ff611439fddf28c20c3f197be1a314a5', name: "start" }), hAsync("slot", { key: '7848ded44ce1b0e303f1c1a423fc1ae51e5997d4', name: "icon-only" }), hAsync("slot", { key: '6076bb1a50cebe374ecd8507133eaccd2ee2d08b' }), hAsync("slot", { key: '71505008df081744492fb22b41229ada64506834', name: "end" })), hAsync("slot", { key: 'c213321eafe801c1ace8573b4736c2f0ab585703', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", null))));
21724
21771
  }
21725
21772
  get el() { return getElement(this); }
21726
21773
  static get style() { return {
@@ -21767,7 +21814,7 @@ class ItemOptions {
21767
21814
  render() {
21768
21815
  const mode = getIonMode$1(this);
21769
21816
  const isEnd = isEndSide(this.side);
21770
- return (hAsync(Host, { key: '04d6baf62154da6ab9db5e679f982fe3fe276f89', class: {
21817
+ return (hAsync(Host, { key: '42ec58a1a2a6a886309595103468d2c39e81f58b', class: {
21771
21818
  [mode]: true,
21772
21819
  // Used internally for styling
21773
21820
  [`item-options-${mode}`]: true,
@@ -22229,7 +22276,7 @@ class ItemSliding {
22229
22276
  }
22230
22277
  render() {
22231
22278
  const mode = getIonMode$1(this);
22232
- return (hAsync(Host, { key: 'f666dd119a72247feac11dcd704059fce7677325', class: {
22279
+ return (hAsync(Host, { key: '83e1673fc5af892612deb9b49d5e792b8b0b6473', class: {
22233
22280
  [mode]: true,
22234
22281
  'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
22235
22282
  'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
@@ -22338,7 +22385,7 @@ class Label {
22338
22385
  render() {
22339
22386
  const position = this.position;
22340
22387
  const mode = getIonMode$1(this);
22341
- return (hAsync(Host, { key: '813192a6460057c6d1e42f50f3f257bee2f550d8', class: createColorClasses$1(this.color, {
22388
+ return (hAsync(Host, { key: 'c80cc1b4dcd56f614efc1e63ca80bca2f20a7151', class: createColorClasses$1(this.color, {
22342
22389
  [mode]: true,
22343
22390
  'in-item-color': hostContext('ion-item.ion-color', this.el),
22344
22391
  [`label-${position}`]: position !== undefined,
@@ -22400,7 +22447,7 @@ class List {
22400
22447
  render() {
22401
22448
  const mode = getIonMode$1(this);
22402
22449
  const { lines, inset } = this;
22403
- return (hAsync(Host, { key: '2cb1b689d9460d9576b471bb8b13d14fe34d1c2c', role: "list", class: {
22450
+ return (hAsync(Host, { key: '7f259d2a107807065a440cca848ececa0da60458', role: "list", class: {
22404
22451
  [mode]: true,
22405
22452
  // Used internally for styling
22406
22453
  [`list-${mode}`]: true,
@@ -22446,10 +22493,10 @@ class ListHeader {
22446
22493
  render() {
22447
22494
  const { lines } = this;
22448
22495
  const mode = getIonMode$1(this);
22449
- return (hAsync(Host, { key: '1b832a6882307d40fe4afc9a95a5db4fbdff60a3', class: createColorClasses$1(this.color, {
22496
+ return (hAsync(Host, { key: '27a08e9dc880db9377608ea262e254b0856b0d5c', class: createColorClasses$1(this.color, {
22450
22497
  [mode]: true,
22451
22498
  [`list-header-lines-${lines}`]: lines !== undefined,
22452
- }) }, hAsync("div", { key: 'a53a3f05727b510d1b912c10c92a4aa58f4fe860', class: "list-header-inner" }, hAsync("slot", { key: '9377dee83f050b2cb2c5b7c5d106668cc81d8f90' }))));
22499
+ }) }, hAsync("div", { key: 'edd68f126ee5d815e6ae13e9662e8cedbd2d46e5', class: "list-header-inner" }, hAsync("slot", { key: 'dae94a382ef09bb90d3ff3fbb2306515acfc2014' }))));
22453
22500
  }
22454
22501
  static get style() { return {
22455
22502
  ios: IonListHeaderIosStyle0,
@@ -22715,9 +22762,9 @@ class Loading {
22715
22762
  * Otherwise, don't set aria-labelledby.
22716
22763
  */
22717
22764
  const ariaLabelledBy = message !== undefined ? msgId : null;
22718
- return (hAsync(Host, Object.assign({ key: '95123f54ba1db5e59563d79db075315b43ed20f7', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22765
+ return (hAsync(Host, Object.assign({ key: '7d4f3df4a869e66b59ce237b50b374cac4a296d3', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
22719
22766
  zIndex: `${40000 + this.overlayIndex}`,
22720
- }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'e113bf123eaad38f2dafce8ea5d2ebef409d0c0f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '1268c9480854383c7883a79d597350540ade93c2', tabindex: "0" }), hAsync("div", { key: 'e86fc71504ebd578117dea2232d9740a087d1249', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { class: "loading-spinner" }, hAsync("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '3b91e2492e06aa65ebe77ed2b6ffb9d2f84bdd9c', tabindex: "0" })));
22767
+ }, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '9d72026f73b56bc38a5317992caa17068f8402b5', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '67848b3058d4875b55cef88ccc0b5160cc9f5d9d', tabindex: "0" }), hAsync("div", { key: 'c275700b6cd77d7a0404b59e89ea97a75a4a22e9', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { class: "loading-spinner" }, hAsync("ion-spinner", { name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: '2333ff2f0d76bebe58cba85da0e5a38262ce33e7', tabindex: "0" })));
22721
22768
  }
22722
22769
  get el() { return getElement(this); }
22723
22770
  static get watchers() { return {
@@ -23715,13 +23762,13 @@ class Menu {
23715
23762
  * the ionBackButton listener in the menu controller
23716
23763
  * will handle closing the menu when Escape is pressed.
23717
23764
  */
23718
- return (hAsync(Host, { key: 'c6bf01fd87e31cda09c0c35900cb01ea19d61781', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23765
+ return (hAsync(Host, { key: '6c63bd340b8e2fc19b638189af44eae3627f8c0a', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
23719
23766
  [mode]: true,
23720
23767
  [`menu-type-${type}`]: true,
23721
23768
  'menu-enabled': !disabled,
23722
23769
  [`menu-side-${side}`]: true,
23723
23770
  'menu-pane-visible': isPaneVisible,
23724
- } }, hAsync("div", { key: '6d818a470a74c11c10554d45d8586436a51f961e', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '3512e444ec6c6bf2a719b1dd713be9a7652f77c9' })), hAsync("ion-backdrop", { key: '618a5316462406fa47929e4dcd5a8e8c9057a418', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23771
+ } }, hAsync("div", { key: '8cad9e601c8ca1d1dca32681937362a55311e015', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'ce8ab737360c3a71ac6408d21fcb71485a189827' })), hAsync("ion-backdrop", { key: 'a7e5f9ebe98996c7f5ab0ef27223a2f24bf63646', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
23725
23772
  }
23726
23773
  get el() { return getElement(this); }
23727
23774
  static get watchers() { return {
@@ -23824,7 +23871,7 @@ class MenuButton {
23824
23871
  type: this.type,
23825
23872
  };
23826
23873
  const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
23827
- return (hAsync(Host, { key: '2fd7130b8d28695162f7efebbd2131e5e9e4f330', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
23874
+ return (hAsync(Host, { key: '23364bf8eae83c3a422bacb0f43bf957551a7b7a', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
23828
23875
  [mode]: true,
23829
23876
  button: true, // ion-buttons target .button
23830
23877
  'menu-button-hidden': hidden,
@@ -23833,7 +23880,7 @@ class MenuButton {
23833
23880
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
23834
23881
  'ion-activatable': true,
23835
23882
  'ion-focusable': true,
23836
- }) }, hAsync("button", Object.assign({ key: 'fa6b1fb9291df812b04065b4b0ebdfd28e5217eb' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '88106a08070ebff7457c581301efe649829aded2', class: "button-inner" }, hAsync("slot", { key: 'e3edfb89e5705b2c08c66f3d3452457667de3657' }, hAsync("ion-icon", { key: '24678e9c3bb2f1f3db113a2ae0ec93e407a7de0c', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { type: "unbounded" }))));
23883
+ }) }, hAsync("button", Object.assign({ key: 'dacfa6f0881366385f3c3305fb656e5e8d4eaab8' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '2a11edcf830bde847cca810af461f4bcffd6aa30', class: "button-inner" }, hAsync("slot", { key: 'f6b1299cf096abe6f25e1f60ce6be2bbdfddcc73' }, hAsync("ion-icon", { key: '32c900a4b75ab90b149227075df4598539d09b5f', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { type: "unbounded" }))));
23837
23884
  }
23838
23885
  get el() { return getElement(this); }
23839
23886
  static get style() { return {
@@ -23882,10 +23929,10 @@ class MenuToggle {
23882
23929
  render() {
23883
23930
  const mode = getIonMode$1(this);
23884
23931
  const hidden = this.autoHide && !this.visible;
23885
- return (hAsync(Host, { key: '5b75baade530bf9e7ed9165a5db3e513975e22f2', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
23932
+ return (hAsync(Host, { key: '981008b9e03870363f2eba75d9d22823ed79753e', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
23886
23933
  [mode]: true,
23887
23934
  'menu-toggle-hidden': hidden,
23888
- } }, hAsync("slot", { key: '65dea458274b685125c22af54aa153cf4977113c' })));
23935
+ } }, hAsync("slot", { key: '1c88aec9c2ee7c67ee37be71814fed35144bbea7' })));
23889
23936
  }
23890
23937
  static get style() { return IonMenuToggleStyle0; }
23891
23938
  static get cmpMeta() { return {
@@ -25762,9 +25809,9 @@ class Modal {
25762
25809
  const mode = getIonMode$1(this);
25763
25810
  const isCardModal = presentingElement !== undefined && mode === 'ios';
25764
25811
  const isHandleCycle = handleBehavior === 'cycle';
25765
- return (hAsync(Host, Object.assign({ key: '856aa156d687382cbd4a7ee47f553b96105fcf7d', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25812
+ return (hAsync(Host, Object.assign({ key: '67ef0269a5e9b542d0c2acaa03a2f7f46b8cf0b5', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
25766
25813
  zIndex: `${20000 + this.overlayIndex}`,
25767
- }, 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: '98205df704505f77c4878cd0b92598c1525b1a85', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { class: "modal-shadow" }), hAsync("div", Object.assign({ key: '412e76909a459f80bdd3c311d88407890c9aed4f',
25814
+ }, 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: 'edd98375e98d887dbea232adb81b74f164fa058b', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { class: "modal-shadow" }), hAsync("div", Object.assign({ key: '40437670391544b57b8a9943ef3b49de7acbd873',
25768
25815
  /*
25769
25816
  role and aria-modal must be used on the
25770
25817
  same element. They must also be set inside the
@@ -25773,7 +25820,7 @@ class Modal {
25773
25820
  */
25774
25821
  role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { class: "modal-handle",
25775
25822
  // Prevents the handle from receiving keyboard focus when it does not cycle
25776
- 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: '3e532328bc1eeb1d1213f9b3c098e89b77590620' }))));
25823
+ 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: 'dfe2095d9e1adb075dc09d1927ef24ea09ea5435' }))));
25777
25824
  }
25778
25825
  get el() { return getElement(this); }
25779
25826
  static get watchers() { return {
@@ -26718,7 +26765,7 @@ class Nav {
26718
26765
  }
26719
26766
  }
26720
26767
  render() {
26721
- return hAsync("slot", { key: '654286a8a7ef03d4a22497eb51e781a9a8979774' });
26768
+ return hAsync("slot", { key: '8254ea10bef0575c13f8b0ddbe4643bec19f2366' });
26722
26769
  }
26723
26770
  get el() { return getElement(this); }
26724
26771
  static get watchers() { return {
@@ -26790,7 +26837,7 @@ class NavLink {
26790
26837
  this.routerAnimation = undefined;
26791
26838
  }
26792
26839
  render() {
26793
- return hAsync(Host, { key: 'a781794425ad0866705bc6691256184b93477a74', onClick: this.onClick });
26840
+ return hAsync(Host, { key: 'dfbfc1a69c48248a8861463ed31c693be6543f32', onClick: this.onClick });
26794
26841
  }
26795
26842
  get el() { return getElement(this); }
26796
26843
  static get cmpMeta() { return {
@@ -26824,9 +26871,9 @@ class Note {
26824
26871
  }
26825
26872
  render() {
26826
26873
  const mode = getIonMode$1(this);
26827
- return (hAsync(Host, { key: 'eebc0ea94483a248192408a1546739700281d2ae', class: createColorClasses$1(this.color, {
26874
+ return (hAsync(Host, { key: 'de9f59a3e1700776780e61def3044901e1d1bef5', class: createColorClasses$1(this.color, {
26828
26875
  [mode]: true,
26829
- }) }, hAsync("slot", { key: '33018e11967398327a0e7c20522547a4d9e8f55b' })));
26876
+ }) }, hAsync("slot", { key: '30f98649d4d31a297ab71d23ed38fa021540a8f2' })));
26830
26877
  }
26831
26878
  static get style() { return {
26832
26879
  ios: IonNoteIosStyle0,
@@ -27078,11 +27125,11 @@ class Picker {
27078
27125
  render() {
27079
27126
  const { htmlAttributes } = this;
27080
27127
  const mode = getIonMode$1(this);
27081
- return (hAsync(Host, Object.assign({ key: 'c266cc072afaba2da22f70d8b62dc4bc6756d188', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
27128
+ return (hAsync(Host, Object.assign({ key: 'd2a0406625c8de0604a926a807f63c7f25bf4bab', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
27082
27129
  zIndex: `${20000 + this.overlayIndex}`,
27083
27130
  }, class: Object.assign({ [mode]: true,
27084
27131
  // Used internally for styling
27085
- [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '35ee3e5028028835580e28ac2c8db65a924d5d6a', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '8b454e6edbcfc45c57d3d8baf7c14b7905921a6e', tabindex: "0" }), hAsync("div", { key: 'e0fee78ec6d097bf0963190f748e5daad602e0f7', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'ce66bca18fc3e982ad7d6660f27cb1a03fb8247b', 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: 'a58b9523fe16f109dd6de0610717c5077fed964b', class: "picker-columns" }, hAsync("div", { key: 'acd54c0314cff51e8513a08dd9755c4b847c0617', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-column", { col: c })), hAsync("div", { key: '604730bd87582d048d850c6e0a0f29ba33258918', class: "picker-below-highlight" }))), hAsync("div", { key: '93baf5e6e57aec5f084d7d5b24af14e7d8126b5a', tabindex: "0" })));
27132
+ [`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '776a45c3df93ab4683727bb5c8ba0085f4336586', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'fc34d3838cfc5c38097dac9e749dbf7433e1a10a', tabindex: "0" }), hAsync("div", { key: '49bf9e92e301cbe12e2e683df110cccd6c9b8042', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: 'f2810a07ea067be31c169f36cbb44ca8a5dc219b', 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: 'f2d2a4652a8e368e40d4462d2b5e4c8095001b64', class: "picker-columns" }, hAsync("div", { key: '143ee78c8e0543f3a2f897097ff09e18f5b68016', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-column", { col: c })), hAsync("div", { key: '47716d2e923ca096a0bd48a07fee2deae1b1a567', class: "picker-below-highlight" }))), hAsync("div", { key: 'ecd3b459cae6492330c7c5847c2b4cd214c9c615', tabindex: "0" })));
27086
27133
  }
27087
27134
  get el() { return getElement(this); }
27088
27135
  static get watchers() { return {
@@ -27473,9 +27520,9 @@ class PickerColumnCmp {
27473
27520
  render() {
27474
27521
  const col = this.col;
27475
27522
  const mode = getIonMode$1(this);
27476
- return (hAsync(Host, { key: '06e2ae483a3bcf4fe721ad0c48cded6a1efdc6c0', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
27523
+ return (hAsync(Host, { key: 'b0d3c8b8315f130f1bcddcbc53ee9949676423bf', 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: {
27477
27524
  'max-width': this.col.columnWidth,
27478
- } }, col.prefix && (hAsync("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '14bea013788d899edf7155eb3cc10f79fe8e4690', 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", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
27525
+ } }, col.prefix && (hAsync("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '2c0471c265bc3dfa2d415da77b8a70850e74458e', 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", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
27479
27526
  }
27480
27527
  get el() { return getElement(this); }
27481
27528
  static get watchers() { return {
@@ -27746,7 +27793,11 @@ class PickerColumnInternal {
27746
27793
  */
27747
27794
  componentWillLoad() {
27748
27795
  const visibleCallback = (entries) => {
27749
- const ev = entries[0];
27796
+ /**
27797
+ * Browsers will sometimes group multiple IO events into a single callback.
27798
+ * As a result, we want to grab the last/most recent event in case there are multiple events.
27799
+ */
27800
+ const ev = entries[entries.length - 1];
27750
27801
  if (ev.isIntersecting) {
27751
27802
  const { activeItem, el } = this;
27752
27803
  this.isColumnVisible = true;
@@ -27835,18 +27886,18 @@ class PickerColumnInternal {
27835
27886
  * the attribute can be moved to datetime.tsx and set on every
27836
27887
  * instance of ion-picker-column-internal there instead.
27837
27888
  */
27838
- return (hAsync(Host, { key: 'd0e3818aa4ab06aefd988d1b42ae754244727b8f', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses$1(color, {
27889
+ return (hAsync(Host, { key: 'eeb70e31fca7bff943a2fc29a3da0383520fdd84', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses$1(color, {
27839
27890
  [mode]: true,
27840
27891
  ['picker-column-active']: isActive,
27841
27892
  ['picker-column-numeric-input']: numericInput,
27842
- }) }, hAsync("div", { key: 'ec3b16415db5f64e3fab37fda023560ebcdc9423', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '40c78c9a1277807572d73e23048c2730cab88f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'c51fa817f6999356cf3568a46098e954936b45d5', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
27893
+ }) }, hAsync("div", { key: '08cffb51ab2ce1a4b83e35b25afd2880d6949d8e', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '88389ba5287ee5e251fa36a0e13a888c8dfbf8e8', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '2dc958f37a939a0fbbc35d92482e9c64741d8f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
27843
27894
  const isItemDisabled = pickerDisabled || item.disabled || false;
27844
27895
  return (hAsync("button", { tabindex: "-1", class: {
27845
27896
  'picker-item': true,
27846
27897
  }, "data-value": item.value, "data-index": index, onClick: (ev) => {
27847
27898
  this.centerPickerItemInView(ev.target, true);
27848
27899
  }, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
27849
- }), hAsync("div", { key: '80a7461dfe571f46466219b05007b021711aed32', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'fed82263295f58c51e2b753d0c06c7d71872b8a7', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'e805dff4122cc4e5fb4d7dcb96054fee8ad3bd07', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
27900
+ }), hAsync("div", { key: 'd31f134aa67a10ad1b796a4e1ffbea439b2b3723', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '3015f7f774b44d349f445e585b73295814c76326', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'df165c76253e51bd6968bdcd8071ad69467bda4c', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
27850
27901
  }
27851
27902
  get el() { return getElement(this); }
27852
27903
  static get watchers() { return {
@@ -28351,7 +28402,7 @@ class PickerInternal {
28351
28402
  this.emitInputModeChange();
28352
28403
  }
28353
28404
  render() {
28354
- return (hAsync(Host, { key: 'f6b301345583f5ccfc31cce536176af7aeefd193', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: 'e57fd191d49cc500b719d5b9ad35054d55e96c43', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
28405
+ return (hAsync(Host, { key: '49581a3c11cd7808555c576c46b833ac9d60f71a', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, hAsync("input", { key: '92628e29f76914b955aa11d4e45797a941821159', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
28355
28406
  var _a;
28356
28407
  /**
28357
28408
  * The "Enter" key represents
@@ -28366,7 +28417,7 @@ class PickerInternal {
28366
28417
  if (ev.key === 'Enter') {
28367
28418
  (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
28368
28419
  }
28369
- }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '3360e7d913f87293844928e430acde69d399f68e', class: "picker-before" }), hAsync("div", { key: '4db89e681458d4eec5d60ff47d3e0ba9fd116682', class: "picker-after" }), hAsync("div", { key: 'a21b20d77dac8141623995b5a53f416d3d9fc1ef', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: '86c7d926523b615b4769bd1a4e9713b351089369' })));
28420
+ }, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), hAsync("div", { key: '455d7ef6dd1425e882d86f49e0d817883fe222b2', class: "picker-before" }), hAsync("div", { key: '0351296cf171d22840542eb178ec3fae1e90f5d5', class: "picker-after" }), hAsync("div", { key: 'b4ecaa88d0bbbd69e72b3d4f27ad3bd91f3da84d', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), hAsync("slot", { key: 'fac29c179707002861f39d2ba1ea53479d0d9b74' })));
28370
28421
  }
28371
28422
  get el() { return getElement(this); }
28372
28423
  static get style() { return {
@@ -29672,9 +29723,9 @@ class Popover {
29672
29723
  const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
29673
29724
  const desktop = isPlatform('desktop');
29674
29725
  const enableArrow = arrow && !parentPopover;
29675
- return (hAsync(Host, Object.assign({ key: '104a5bf92a9bbd2efc71d499a8500e5d55f81711', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
29726
+ return (hAsync(Host, Object.assign({ key: 'b35e04a59d2feff922709efc5045e4e9f65db80d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
29676
29727
  zIndex: `${20000 + this.overlayIndex}`,
29677
- }, 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", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'ef0baa04c22444d4bc705220235a892308d67586', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '5cc5f5c353de614e484e9cfeacecfca9fbfde0e0', class: "popover-content", part: "content" }, hAsync("slot", { key: '2d85c591cdc85efa98afbf40f676525f1402efcf' })))));
29728
+ }, 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", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: '99d26b7ebd403061f4fe75c10b8106d5795cbbc0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '6179601846f042b7b3be20c93845464ec8bef98a', class: "popover-content", part: "content" }, hAsync("slot", { key: '2ba4f3ba26adfd3d42fa78ca6b6561d4088be8a8' })))));
29678
29729
  }
29679
29730
  get el() { return getElement(this); }
29680
29731
  static get watchers() { return {
@@ -29763,7 +29814,7 @@ class ProgressBar {
29763
29814
  const { color, type, reversed, value, buffer } = this;
29764
29815
  const paused = config.getBoolean('_testing');
29765
29816
  const mode = getIonMode$1(this);
29766
- return (hAsync(Host, { key: '384d09558f91dc8119e689c3a8923e67c54c7eb2', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
29817
+ return (hAsync(Host, { key: '4dbdfe17c039ed9b2e0badec30655cb9e7dac768', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
29767
29818
  [mode]: true,
29768
29819
  [`progress-bar-${type}`]: true,
29769
29820
  'progress-paused': paused,
@@ -30186,7 +30237,7 @@ class RadioGroup {
30186
30237
  const { label, labelId, el, name, value } = this;
30187
30238
  const mode = getIonMode$1(this);
30188
30239
  renderHiddenInput(true, el, name, value, false);
30189
- return hAsync(Host, { key: 'd8e84feca8f4dbe7605bc4ad096b6e68b482ba68', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
30240
+ return hAsync(Host, { key: 'c0784903ad0b3914f448cca4b91172ad3af3ed70', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
30190
30241
  }
30191
30242
  get el() { return getElement(this); }
30192
30243
  static get watchers() { return {
@@ -31767,7 +31818,7 @@ class Refresher {
31767
31818
  }
31768
31819
  render() {
31769
31820
  const mode = getIonMode$1(this);
31770
- return (hAsync(Host, { key: '9cf8e306e367e0ffd99f8a242dce0c9d78f96317', slot: "fixed", class: {
31821
+ return (hAsync(Host, { key: 'af60b9453ee4bbf61ed9651d509700fddd91f2c2', slot: "fixed", class: {
31771
31822
  [mode]: true,
31772
31823
  // Used internally for styling
31773
31824
  [`refresher-${mode}`]: true,
@@ -31995,7 +32046,7 @@ class RefresherContent {
31995
32046
  const pullingIcon = this.pullingIcon;
31996
32047
  const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
31997
32048
  const mode = getIonMode$1(this);
31998
- return (hAsync(Host, { key: '537e4d601fd09804d072e9fed9b2c6ba8d890548', class: mode }, hAsync("div", { key: '67f46df746f7da2fc60c47da9216a2920c25166f', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { class: "refresher-pulling-icon" }, hAsync("div", { class: "spinner-arrow-container" }, hAsync("ion-spinner", { name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { class: "arrow-container" }, hAsync("ion-icon", { icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { class: "refresher-pulling-icon" }, hAsync("ion-icon", { icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '216f96af452e1567df7906c4d9e6fbf8c397ad21', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
32049
+ return (hAsync(Host, { key: '85e47044192d174d82e0a8cc6171e862c395f385', class: mode }, hAsync("div", { key: 'e8ce4fc1cad510da18988cb8c1e095c62a7af418', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { class: "refresher-pulling-icon" }, hAsync("div", { class: "spinner-arrow-container" }, hAsync("ion-spinner", { name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { class: "arrow-container" }, hAsync("ion-icon", { icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { class: "refresher-pulling-icon" }, hAsync("ion-icon", { icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: 'a55e3bd94ae381d1502da2799472b6bd1402487c', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
31999
32050
  }
32000
32051
  get el() { return getElement(this); }
32001
32052
  static get cmpMeta() { return {
@@ -32038,7 +32089,7 @@ class Reorder {
32038
32089
  render() {
32039
32090
  const mode = getIonMode$1(this);
32040
32091
  const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
32041
- return (hAsync(Host, { key: 'e625707b1810f93f5c667e38b8e2904988a3cff0', class: mode }, hAsync("slot", { key: 'fd0c3167e8a7955a6f841b338345de0528535ff5' }, hAsync("ion-icon", { key: '3fc7bb1adb0dde839ec4898361e359c640e81067', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
32092
+ return (hAsync(Host, { key: '811f71aa6f4b45ee8a597f504af6c43d34cc8c53', class: mode }, hAsync("slot", { key: '78e1898b412b322053fe924db7934d5840184bfc' }, hAsync("ion-icon", { key: '171f86c625d64ce3c5b5ebc54372a6573fc437ef', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
32042
32093
  }
32043
32094
  get el() { return getElement(this); }
32044
32095
  static get style() { return {
@@ -32292,7 +32343,7 @@ class ReorderGroup {
32292
32343
  }
32293
32344
  render() {
32294
32345
  const mode = getIonMode$1(this);
32295
- return (hAsync(Host, { key: '067b8ff26887c4e458163f70f7308723c90a53f8', class: {
32346
+ return (hAsync(Host, { key: '5a8c5c11fa48ff2cec319a1a07ba74427c2a42e5', class: {
32296
32347
  [mode]: true,
32297
32348
  'reorder-enabled': !this.disabled,
32298
32349
  'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
@@ -32400,7 +32451,7 @@ class RippleEffect {
32400
32451
  }
32401
32452
  render() {
32402
32453
  const mode = getIonMode$1(this);
32403
- return (hAsync(Host, { key: 'a9ff1956627908ee4071002ca018eaa80f87cd59', role: "presentation", class: {
32454
+ return (hAsync(Host, { key: '9f2578664e5ff8a0a7e27cd90b2339bd430e72b8', role: "presentation", class: {
32404
32455
  [mode]: true,
32405
32456
  unbounded: this.unbounded,
32406
32457
  } }));
@@ -33342,10 +33393,10 @@ class RouterLink {
33342
33393
  rel: this.rel,
33343
33394
  target: this.target,
33344
33395
  };
33345
- return (hAsync(Host, { key: '9944573e56abecc47afd2df03b386e38fc7ed2f3', onClick: this.onClick, class: createColorClasses$1(this.color, {
33396
+ return (hAsync(Host, { key: 'ca8b357234ae511a20f6a47487bb86cbaaa5f5ef', onClick: this.onClick, class: createColorClasses$1(this.color, {
33346
33397
  [mode]: true,
33347
33398
  'ion-activatable': true,
33348
- }) }, hAsync("a", Object.assign({ key: '383de10c02eb9ab87e27890548ef681dccf2a765' }, attrs), hAsync("slot", { key: '584a5a52e2b116f3827596cc5869a3557d6bcb6b' }))));
33399
+ }) }, hAsync("a", Object.assign({ key: 'f590738389776d480014f18f599d753c68840e49' }, attrs), hAsync("slot", { key: '525ff073d71ede310e9f790b49f7414bf5a0919b' }))));
33349
33400
  }
33350
33401
  static get style() { return IonRouterLinkStyle0; }
33351
33402
  static get cmpMeta() { return {
@@ -33540,7 +33591,7 @@ class RouterOutlet {
33540
33591
  return true;
33541
33592
  }
33542
33593
  render() {
33543
- return hAsync("slot", { key: '69b452a0dc0c10440bdd8700cf4843c43154c707' });
33594
+ return hAsync("slot", { key: 'e4eaa40478f70742d0ff7602ed5f83879da9f1b4' });
33544
33595
  }
33545
33596
  get el() { return getElement(this); }
33546
33597
  static get watchers() { return {
@@ -33574,7 +33625,7 @@ class Row {
33574
33625
  registerInstance(this, hostRef);
33575
33626
  }
33576
33627
  render() {
33577
- return (hAsync(Host, { key: 'de94b93c001a93b2a88bcb8e959f421fd5ad4a65', class: getIonMode$1(this) }, hAsync("slot", { key: '41fa951758d3644bb77d80002caf6e25a79393ce' })));
33628
+ return (hAsync(Host, { key: '36d12784e6f8339a1d03ff6f03af5c7b3f437293', class: getIonMode$1(this) }, hAsync("slot", { key: '54cc627f95bb091d31a550aca00b14ab73d2f1bf' })));
33578
33629
  }
33579
33630
  static get style() { return IonRowStyle0; }
33580
33631
  static get cmpMeta() { return {
@@ -33609,6 +33660,7 @@ class Searchbar {
33609
33660
  this.isCancelVisible = false;
33610
33661
  this.shouldAlignLeft = true;
33611
33662
  this.inputId = `ion-searchbar-${searchbarIds++}`;
33663
+ this.inheritedAttributes = {};
33612
33664
  /**
33613
33665
  * Clears the input field and triggers the control change.
33614
33666
  */
@@ -33709,6 +33761,7 @@ class Searchbar {
33709
33761
  this.noAnimate = true;
33710
33762
  this.color = undefined;
33711
33763
  this.animated = false;
33764
+ this.autocapitalize = undefined;
33712
33765
  this.autocomplete = 'off';
33713
33766
  this.autocorrect = 'off';
33714
33767
  this.cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);
@@ -33718,6 +33771,8 @@ class Searchbar {
33718
33771
  this.disabled = false;
33719
33772
  this.inputmode = undefined;
33720
33773
  this.enterkeyhint = undefined;
33774
+ this.maxlength = undefined;
33775
+ this.minlength = undefined;
33721
33776
  this.name = this.inputId;
33722
33777
  this.placeholder = 'Search';
33723
33778
  this.searchIcon = undefined;
@@ -33727,6 +33782,19 @@ class Searchbar {
33727
33782
  this.type = 'search';
33728
33783
  this.value = '';
33729
33784
  }
33785
+ /**
33786
+ * lang and dir are globally enumerated attributes.
33787
+ * As a result, creating these as properties
33788
+ * can have unintended side effects. Instead, we
33789
+ * listen for attribute changes and inherit them
33790
+ * to the inner `<input>` element.
33791
+ */
33792
+ onLangChanged(newValue) {
33793
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { lang: newValue });
33794
+ }
33795
+ onDirChanged(newValue) {
33796
+ this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { dir: newValue });
33797
+ }
33730
33798
  debounceChanged() {
33731
33799
  const { ionInput, debounce, originalIonInput } = this;
33732
33800
  /**
@@ -33750,6 +33818,9 @@ class Searchbar {
33750
33818
  connectedCallback() {
33751
33819
  this.emitStyle();
33752
33820
  }
33821
+ componentWillLoad() {
33822
+ this.inheritedAttributes = Object.assign({}, inheritAttributes$1(this.el, ['lang', 'dir']));
33823
+ }
33753
33824
  componentDidLoad() {
33754
33825
  this.originalIonInput = this.ionInput;
33755
33826
  this.positionElements();
@@ -33948,8 +34019,8 @@ class Searchbar {
33948
34019
  const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
33949
34020
  const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
33950
34021
  const shouldShowCancelButton = this.shouldShowCancelButton();
33951
- const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '1de9b9bc6bad708bafcf4d31fa82838355120486', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: 'e5178016e17104a80732edbae73c0dfc264bfe52', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
33952
- return (hAsync(Host, { key: '2c88a7b6ec7f33ada7dae560881210d7a8800f76', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
34022
+ const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '31e1551828be00d292dbccc68acd43a0df27839e', "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: '925d1e54980c00c7e268d4bb1fb591d7c473f1e7', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
34023
+ return (hAsync(Host, { key: 'c677626a8d9395063dd41dc4b1df8eeefde0fb4c', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
33953
34024
  [mode]: true,
33954
34025
  'searchbar-animated': animated,
33955
34026
  'searchbar-disabled': this.disabled,
@@ -33959,17 +34030,19 @@ class Searchbar {
33959
34030
  'searchbar-has-focus': this.focused,
33960
34031
  'searchbar-should-show-clear': this.shouldShowClearButton(),
33961
34032
  'searchbar-should-show-cancel': this.shouldShowCancelButton(),
33962
- }) }, hAsync("div", { key: '8e914264a99453748a2bf370943e4047a0a587fb', class: "searchbar-input-container" }, hAsync("input", { key: 'd772f3e8d42301e50fbd6c9deb332fbdf3c435ac', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '8d9b461c2c34729b1bb562c227868cf817a353bc', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'bcc39be721f4b825af31aae4dfb3058722d889a8', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
34033
+ }) }, hAsync("div", { key: '6752074931e6ce320a7f05844d471627bd896cf2', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'f74ba66f1eb9ec26ec3e8a0d149d11eadf106a67', "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: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '7817d383dab14abf89638ffdde796cf4412fde9e', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'edd2093966b8250cb158a053ebb8a2cd5525b589', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
33963
34034
  /**
33964
34035
  * This prevents mobile browsers from
33965
34036
  * blurring the input when the clear
33966
34037
  * button is activated.
33967
34038
  */
33968
34039
  ev.preventDefault();
33969
- }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '9a6478e1f1482aa6e62c88bd96cd19cacbfb8d60', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
34040
+ }, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'a1deef96cfdeb19f28fc77fda63c04c7424348c7', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
33970
34041
  }
33971
34042
  get el() { return getElement(this); }
33972
34043
  static get watchers() { return {
34044
+ "lang": ["onLangChanged"],
34045
+ "dir": ["onDirChanged"],
33973
34046
  "debounce": ["debounceChanged"],
33974
34047
  "value": ["valueChanged"],
33975
34048
  "showCancelButton": ["showCancelButtonChanged"]
@@ -33984,6 +34057,7 @@ class Searchbar {
33984
34057
  "$members$": {
33985
34058
  "color": [513],
33986
34059
  "animated": [4],
34060
+ "autocapitalize": [1],
33987
34061
  "autocomplete": [1],
33988
34062
  "autocorrect": [1],
33989
34063
  "cancelButtonIcon": [1, "cancel-button-icon"],
@@ -33993,6 +34067,8 @@ class Searchbar {
33993
34067
  "disabled": [4],
33994
34068
  "inputmode": [1],
33995
34069
  "enterkeyhint": [1],
34070
+ "maxlength": [2],
34071
+ "minlength": [2],
33996
34072
  "name": [1],
33997
34073
  "placeholder": [1],
33998
34074
  "searchIcon": [1, "search-icon"],
@@ -34435,14 +34511,14 @@ class Segment {
34435
34511
  }
34436
34512
  render() {
34437
34513
  const mode = getIonMode$1(this);
34438
- return (hAsync(Host, { key: '971e62fdaef3b6380aa1bf214605a5bfde662abf', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
34514
+ return (hAsync(Host, { key: '0cf2e11e5599a0de2b0c7dc2a46917f4894ceb05', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
34439
34515
  [mode]: true,
34440
34516
  'in-toolbar': hostContext('ion-toolbar', this.el),
34441
34517
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
34442
34518
  'segment-activated': this.activated,
34443
34519
  'segment-disabled': this.disabled,
34444
34520
  'segment-scrollable': this.scrollable,
34445
- }) }, hAsync("slot", { key: 'eaa7a8a3d5237c8bbc03f57690fd0aa7e4c124e3' })));
34521
+ }) }, hAsync("slot", { key: '913f2e4a823d3a58ea074dfb95314651c46739db' })));
34446
34522
  }
34447
34523
  get el() { return getElement(this); }
34448
34524
  static get watchers() { return {
@@ -34552,7 +34628,7 @@ class SegmentButton {
34552
34628
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
34553
34629
  const mode = getIonMode$1(this);
34554
34630
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
34555
- return (hAsync(Host, { key: 'b50b375ed817b47720b743078202f38c737a4034', class: {
34631
+ return (hAsync(Host, { key: '5fda697569eb875991bb948be553ee0716ac9aa2', class: {
34556
34632
  [mode]: true,
34557
34633
  'in-toolbar': hostContext('ion-toolbar', this.el),
34558
34634
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -34568,10 +34644,10 @@ class SegmentButton {
34568
34644
  'ion-activatable': true,
34569
34645
  'ion-activatable-instant': true,
34570
34646
  'ion-focusable': true,
34571
- } }, hAsync("button", Object.assign({ key: '402f6467ec9ce97aa1df2c72382d07242b51c114', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '4f5a1988296c4e59e64255feff264bbbe2ccc312', class: "button-inner" }, hAsync("slot", { key: '35b2a26cca8c76a111e447fa8cae464c504fcb97' })), mode === 'md' && hAsync("ion-ripple-effect", null)), hAsync("div", { key: 'adca0f1e0efcf18b575013d4fb2f22814c81c147', part: "indicator", class: {
34647
+ } }, hAsync("button", Object.assign({ key: '86686e25d3bb8f487869a4d34c1e99a5d04105ec', "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: '5c22e853fd385e2b7825335113346537ecefed31', class: "button-inner" }, hAsync("slot", { key: 'cef944331f246a820747f98dff55e844281cb822' })), mode === 'md' && hAsync("ion-ripple-effect", null)), hAsync("div", { key: '737b4b08c122a7738d5a5ed7a44f544da4c67649', part: "indicator", class: {
34572
34648
  'segment-button-indicator': true,
34573
34649
  'segment-button-indicator-animated': true,
34574
- } }, hAsync("div", { key: '8a23ffe49dc115ee0603e298bb6a39834b910b67', part: "indicator-background", class: "segment-button-indicator-background" }))));
34650
+ } }, hAsync("div", { key: 'e78696ff315d7e8ba76b97b82ea341379e9be7e5', part: "indicator-background", class: "segment-button-indicator-background" }))));
34575
34651
  }
34576
34652
  get el() { return getElement(this); }
34577
34653
  static get watchers() { return {
@@ -35369,7 +35445,7 @@ class SelectOption {
35369
35445
  this.value = undefined;
35370
35446
  }
35371
35447
  render() {
35372
- return hAsync(Host, { key: 'fe62f2d62ede6866e20969a2e7ae25453648fcef', role: "option", id: this.inputId, class: getIonMode$1(this) });
35448
+ return hAsync(Host, { key: '69bd6a2dbbc0ab32cc607a74df10f3fb3d6e3295', role: "option", id: this.inputId, class: getIonMode$1(this) });
35373
35449
  }
35374
35450
  get el() { return getElement(this); }
35375
35451
  static get style() { return IonSelectOptionStyle0; }
@@ -35489,7 +35565,7 @@ class SelectPopover {
35489
35565
  render() {
35490
35566
  const { header, message, options, subHeader } = this;
35491
35567
  const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
35492
- return (hAsync(Host, { key: '9d3995131364d4f1d282e0a1fc34e778e94c9f98', class: getIonMode$1(this) }, hAsync("ion-list", { key: '14244dcd6375eb61d65f3a9450d42a5d7b2d6541' }, header !== undefined && hAsync("ion-list-header", null, header), hasSubHeaderOrMessage && (hAsync("ion-item", null, hAsync("ion-label", { class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", null, subHeader), message !== undefined && hAsync("p", null, message)))), this.renderOptions(options))));
35568
+ return (hAsync(Host, { key: '46e495ce7001131eb8b54073018de89401a99b81', class: getIonMode$1(this) }, hAsync("ion-list", { key: 'afdb72359c3751c6b372af1a778398463d1da397' }, header !== undefined && hAsync("ion-list-header", null, header), hasSubHeaderOrMessage && (hAsync("ion-item", null, hAsync("ion-label", { class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", null, subHeader), message !== undefined && hAsync("p", null, message)))), this.renderOptions(options))));
35493
35569
  }
35494
35570
  get el() { return getElement(this); }
35495
35571
  static get style() { return {
@@ -35537,11 +35613,11 @@ class SkeletonText {
35537
35613
  const animated = this.animated && config.getBoolean('animated', true);
35538
35614
  const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
35539
35615
  const mode = getIonMode$1(this);
35540
- return (hAsync(Host, { key: 'ee3cd9a5448fb69c8ddfc88a993f9968e1a381ff', class: {
35616
+ return (hAsync(Host, { key: '2d9e785d3026faf76d0e970e3bfe33258f29046b', class: {
35541
35617
  [mode]: true,
35542
35618
  'skeleton-text-animated': animated,
35543
35619
  'in-media': inMedia,
35544
- } }, hAsync("span", { key: '8aa792724a3b77877062e9aae838d9e1572b576f' }, "\u00A0")));
35620
+ } }, hAsync("span", { key: 'd1800f5fd176a8daa216e8b889e427770bf64a05' }, "\u00A0")));
35545
35621
  }
35546
35622
  get el() { return getElement(this); }
35547
35623
  static get style() { return IonSkeletonTextStyle0; }
@@ -35594,7 +35670,7 @@ class Spinner {
35594
35670
  svgs.push(buildLine(spinner, duration, i, spinner.lines));
35595
35671
  }
35596
35672
  }
35597
- return (hAsync(Host, { key: '47cd6cd98e36e5b99fbe263a6a102610cae240c3', class: createColorClasses$1(self.color, {
35673
+ return (hAsync(Host, { key: 'cfd0e19ebf41412300d1ba80721c12b4b8d32263', class: createColorClasses$1(self.color, {
35598
35674
  [mode]: true,
35599
35675
  [`spinner-${spinnerName}`]: true,
35600
35676
  'spinner-paused': self.paused || config.getBoolean('_testing'),
@@ -35687,12 +35763,12 @@ class SplitPane {
35687
35763
  }
35688
35764
  render() {
35689
35765
  const mode = getIonMode$1(this);
35690
- return (hAsync(Host, { key: '3efe241375d23ae12c47927aa1fc1f3f4b4e5807', class: {
35766
+ return (hAsync(Host, { key: '220208ab603f4f307672a73c4e9e8218aa5196dc', class: {
35691
35767
  [mode]: true,
35692
35768
  // Used internally for styling
35693
35769
  [`split-pane-${mode}`]: true,
35694
35770
  'split-pane-visible': this.visible,
35695
- } }, hAsync("slot", { key: 'd5c94319658e2291dcc356e6ed7a9abc1a48a8b9' })));
35771
+ } }, hAsync("slot", { key: 'bbf9321d4728265a04bb969a74ffa574206b9060' })));
35696
35772
  }
35697
35773
  get el() { return getElement(this); }
35698
35774
  static get watchers() { return {
@@ -35760,10 +35836,10 @@ class Tab {
35760
35836
  }
35761
35837
  render() {
35762
35838
  const { tab, active, component } = this;
35763
- return (hAsync(Host, { key: '0f4b90f0b1027e89bd447ace17af31c8e155a827', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
35839
+ return (hAsync(Host, { key: 'fa5c567bf59eb8bd46a7d2b85a560e43c43563fe', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
35764
35840
  'ion-page': component === undefined,
35765
35841
  'tab-hidden': !active,
35766
- } }, hAsync("slot", { key: 'ec3eaacf8b7085510e89273aa8373805ee98a381' })));
35842
+ } }, hAsync("slot", { key: '133871ad0bafa16539dfec4a6bd640367c998039' })));
35767
35843
  }
35768
35844
  get el() { return getElement(this); }
35769
35845
  static get watchers() { return {
@@ -35841,11 +35917,11 @@ class TabBar {
35841
35917
  const { color, translucent, keyboardVisible } = this;
35842
35918
  const mode = getIonMode$1(this);
35843
35919
  const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
35844
- return (hAsync(Host, { key: 'e2b4b50270f171ed251359df6c65c5e7e4d526a4', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
35920
+ return (hAsync(Host, { key: '51e4bdbce8c7107c1114a39618b4a9a941876bb1', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
35845
35921
  [mode]: true,
35846
35922
  'tab-bar-translucent': translucent,
35847
35923
  'tab-bar-hidden': shouldHide,
35848
- }) }, hAsync("slot", { key: '37495b2eddd01a758ceaeb36426abc9bd20bcca3' })));
35924
+ }) }, hAsync("slot", { key: 'c11618f97e93deb0a56f33c904481b4811c685ec' })));
35849
35925
  }
35850
35926
  get el() { return getElement(this); }
35851
35927
  static get watchers() { return {
@@ -35943,7 +36019,7 @@ class TabButton {
35943
36019
  rel,
35944
36020
  target,
35945
36021
  };
35946
- return (hAsync(Host, { key: '9926f9392e7910ff3159397e4f907e0d7d2cf5a0', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
36022
+ return (hAsync(Host, { key: '32ec1fb183523dadaaed6689add4a042d0fdd69a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
35947
36023
  [mode]: true,
35948
36024
  'tab-selected': selected,
35949
36025
  'tab-disabled': disabled,
@@ -35955,7 +36031,7 @@ class TabButton {
35955
36031
  'ion-activatable': true,
35956
36032
  'ion-selectable': true,
35957
36033
  'ion-focusable': true,
35958
- } }, hAsync("a", Object.assign({ key: '4b3ace749583a5502e94462f9a70c5158fe0194a' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'a2a30c02fbd5052da12586a5ab00a45f3bf53b88', class: "button-inner" }, hAsync("slot", { key: '3fb22ffbb09000d99537b531220c029330ae6940' })), mode === 'md' && hAsync("ion-ripple-effect", { type: "unbounded" }))));
36034
+ } }, hAsync("a", Object.assign({ key: '9e56304c52e30ae3a3dca434fa0b41eccc873faa' }, 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: '34eae18c23584742a25d20b4038aa1742d9ab0d8', class: "button-inner" }, hAsync("slot", { key: '4bc9629861f5ce3f1ef87ac77bc027ba0dea694c' })), mode === 'md' && hAsync("ion-ripple-effect", { type: "unbounded" }))));
35959
36035
  }
35960
36036
  get el() { return getElement(this); }
35961
36037
  static get style() { return {
@@ -36121,7 +36197,7 @@ class Tabs {
36121
36197
  return Array.from(this.el.querySelectorAll('ion-tab'));
36122
36198
  }
36123
36199
  render() {
36124
- return (hAsync(Host, { key: '9044f05f4716fd9c158864175290dfb044e63539', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '178492f52f15a042e47531007a3564a935847818', name: "top" }), hAsync("div", { key: 'b3affaaeb7752194acde36d9de74dbe2b3280cd1', class: "tabs-inner" }, hAsync("slot", { key: '98f0f4e2903f1a6cec041e06b75073c57960a912' })), hAsync("slot", { key: '0899482561bdaf35e97e5a40860c40978daca03a', name: "bottom" })));
36200
+ return (hAsync(Host, { key: '5c76b077d508b1379a985503618dade63a9db514', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '357ba85e01de10d3c0e52adcb1977bbc0dbbf587', name: "top" }), hAsync("div", { key: 'c8c59aac4e1394a1a7505f201cbf609b9b0c6ea9', class: "tabs-inner" }, hAsync("slot", { key: '00951068088580ab408f9c24ede39144b212b0d6' })), hAsync("slot", { key: 'a1118402fbd5995b07f7676f216b2efbc6052f12', name: "bottom" })));
36125
36201
  }
36126
36202
  get el() { return getElement(this); }
36127
36203
  static get style() { return IonTabsStyle0; }
@@ -36163,9 +36239,9 @@ class Text {
36163
36239
  }
36164
36240
  render() {
36165
36241
  const mode = getIonMode$1(this);
36166
- return (hAsync(Host, { key: '8922ebdd7486c9cb9f9b547a49e5be2261df4ba1', class: createColorClasses$1(this.color, {
36242
+ return (hAsync(Host, { key: '66ed5ea3af47d2a4bdaee79914a2f5ae2cb54a9d', class: createColorClasses$1(this.color, {
36167
36243
  [mode]: true,
36168
- }) }, hAsync("slot", { key: '164cbd0f81a00adfac04f544524e905f721c121c' })));
36244
+ }) }, hAsync("slot", { key: '61239138ae5e25c2cceb839f70c50069fc42338e' })));
36169
36245
  }
36170
36246
  static get style() { return IonTextStyle0; }
36171
36247
  static get cmpMeta() { return {
@@ -36664,7 +36740,7 @@ class Thumbnail {
36664
36740
  registerInstance(this, hostRef);
36665
36741
  }
36666
36742
  render() {
36667
- return (hAsync(Host, { key: '2b3d5139161f4b9075dce537c14b4087986b37c4', class: getIonMode$1(this) }, hAsync("slot", { key: '3c4838c43e1230f9413a3cb66584417fd11382b2' })));
36743
+ return (hAsync(Host, { key: 'a12bfff6f372b19f6890a81f93ca6137701ee360', class: getIonMode$1(this) }, hAsync("slot", { key: 'f546320896fee05677cc30f13aa7fa7c0360d69d' })));
36668
36744
  }
36669
36745
  static get style() { return IonThumbnailStyle0; }
36670
36746
  static get cmpMeta() { return {
@@ -37497,9 +37573,9 @@ class Toast {
37497
37573
  if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
37498
37574
  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);
37499
37575
  }
37500
- return (hAsync(Host, Object.assign({ key: 'c8d7e7d2baa01d3ed5d65a845bc61acf087c0b18', tabindex: "-1" }, this.htmlAttributes, { style: {
37576
+ return (hAsync(Host, Object.assign({ key: 'f01e1dd2f7cc0680a24f6aa4ee3f677f86d255f4', tabindex: "-1" }, this.htmlAttributes, { style: {
37501
37577
  zIndex: `${60000 + this.overlayIndex}`,
37502
- }, 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: '27c0feeb89c4efb47c42623a4b036ed84338ed10', class: wrapperClass }, hAsync("div", { key: '41d5a3069f92e4a6acef2793fa4e236cdbdaae88', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '176f497bc990ef2ecc14c7fa90dd3a54a912030a', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
37578
+ }, 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: '603468c5e6abfb284df3fcdfa33c4f45d899fb2a', class: wrapperClass }, hAsync("div", { key: '0eebff71a0caf3bece4d042199cbf9226251a1a0', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: 'a84a9b0c0b719f588aa1ace4ef822bb105578c29', 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')))));
37503
37579
  }
37504
37580
  get el() { return getElement(this); }
37505
37581
  static get watchers() { return {
@@ -37885,10 +37961,10 @@ class Toolbar {
37885
37961
  this.childrenStyles.forEach((value) => {
37886
37962
  Object.assign(childStyles, value);
37887
37963
  });
37888
- return (hAsync(Host, { key: 'afac0f08f3981483c072984ce047df5dc9cc1e99', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
37964
+ return (hAsync(Host, { key: 'fdd8621b4f69ce650b5aaf4fb6bffde29aa5ad65', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
37889
37965
  [mode]: true,
37890
37966
  'in-toolbar': hostContext('ion-toolbar', this.el),
37891
- })) }, hAsync("div", { key: '30d4f1d0ec01cc646398301b5f7d469391eb35d2', class: "toolbar-background" }), hAsync("div", { key: '175d1f283e670b57a9bf8fd2a8c5e7d0da749aa8', class: "toolbar-container" }, hAsync("slot", { key: '4853b18092737b32b5995457536fa5a7fc2816ef', name: "start" }), hAsync("slot", { key: '6eb4921200aad02d7977d134edad6cff2aad91ad', name: "secondary" }), hAsync("div", { key: '024e0339c74c4b9a886d49e96723243719643dc2', class: "toolbar-content" }, hAsync("slot", { key: 'b6452c84692fedd6efe33ac67907d01253b76f8f' })), hAsync("slot", { key: '636e56eeaa318ce45a9c3854a30b8eb2819a33e0', name: "primary" }), hAsync("slot", { key: 'a45c19b93dca3719d75bd4d99acc49de87137a7d', name: "end" }))));
37967
+ })) }, hAsync("div", { key: 'c6ad5434546e2046a83574ea92a03a3f77d0a9e3', class: "toolbar-background" }), hAsync("div", { key: '3b79dd20c3e8252cacfd46a82428df9ba0b8b86e', class: "toolbar-container" }, hAsync("slot", { key: '514259a8b76db9f3a587a7667b5e37fd8ade9481', name: "start" }), hAsync("slot", { key: 'd9ab68f0626f4ac8b83d21663eb67a47b76d809b', name: "secondary" }), hAsync("div", { key: '2c21da88b67a7d7eef280e517bda9982264c7be4', class: "toolbar-content" }, hAsync("slot", { key: 'ac2b7c8f20c5ac755df9032809c73eab9e767e36' })), hAsync("slot", { key: '2ddd3b7e3803f2d56c32743dcfc114ddcb8684a2', name: "primary" }), hAsync("slot", { key: '27483847d4333b4492506da33185c9ba1aa824a7', name: "end" }))));
37892
37968
  }
37893
37969
  get el() { return getElement(this); }
37894
37970
  static get style() { return {
@@ -37938,11 +38014,11 @@ class ToolbarTitle {
37938
38014
  render() {
37939
38015
  const mode = getIonMode$1(this);
37940
38016
  const size = this.getSize();
37941
- return (hAsync(Host, { key: 'b68a272a33ec81d282629a569676f64d3215a0c7', class: createColorClasses$1(this.color, {
38017
+ return (hAsync(Host, { key: '2642d433ba678b67503b7f1e9d0ae0390250bec8', class: createColorClasses$1(this.color, {
37942
38018
  [mode]: true,
37943
38019
  [`title-${size}`]: true,
37944
38020
  'title-rtl': document.dir === 'rtl',
37945
- }) }, hAsync("div", { key: '9069816a14e6e358695c5bd465787cf297c761bc', class: "toolbar-title" }, hAsync("slot", { key: '8894bd04f2292b54050ee864abb5396deadf9874' }))));
38021
+ }) }, hAsync("div", { key: '355184542e26b53296f7143d099cfebc3de7b569', class: "toolbar-title" }, hAsync("slot", { key: 'aed07a34c22e4b1f34cdf40fea35481674d8941f' }))));
37946
38022
  }
37947
38023
  get el() { return getElement(this); }
37948
38024
  static get watchers() { return {