voyager-ionic-core 9.0.1 → 9.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (530) hide show
  1. package/components/index.js +1 -1
  2. package/components/ion-accordion-group.js +1 -1
  3. package/components/ion-accordion.js +1 -1
  4. package/components/ion-action-sheet.js +1 -1
  5. package/components/ion-alert.js +1 -1
  6. package/components/ion-app.js +1 -1
  7. package/components/ion-avatar.js +1 -1
  8. package/components/ion-back-button.js +1 -1
  9. package/components/ion-backdrop.js +1 -1
  10. package/components/ion-badge.js +1 -1
  11. package/components/ion-breadcrumb.js +1 -1
  12. package/components/ion-breadcrumbs.js +1 -1
  13. package/components/ion-button.js +1 -1
  14. package/components/ion-buttons.js +1 -1
  15. package/components/ion-card-content.js +1 -1
  16. package/components/ion-card-header.js +1 -1
  17. package/components/ion-card-subtitle.js +1 -1
  18. package/components/ion-card-title.js +1 -1
  19. package/components/ion-card.js +1 -1
  20. package/components/ion-checkbox.js +1 -1
  21. package/components/ion-chip.js +1 -1
  22. package/components/ion-col.js +1 -1
  23. package/components/ion-content.js +1 -1
  24. package/components/ion-datetime-button.js +1 -1
  25. package/components/ion-datetime.js +1 -1
  26. package/components/ion-fab-button.js +1 -1
  27. package/components/ion-fab-list.js +1 -1
  28. package/components/ion-fab.js +1 -1
  29. package/components/ion-footer.js +1 -1
  30. package/components/ion-grid.js +1 -1
  31. package/components/ion-header.js +1 -1
  32. package/components/ion-icon.js +1 -1
  33. package/components/ion-img.js +1 -1
  34. package/components/ion-infinite-scroll-content.js +1 -1
  35. package/components/ion-infinite-scroll.js +1 -1
  36. package/components/ion-input-otp.js +1 -1
  37. package/components/ion-input-password-toggle.js +1 -1
  38. package/components/ion-input.js +1 -1
  39. package/components/ion-item-divider.js +1 -1
  40. package/components/ion-item-group.js +1 -1
  41. package/components/ion-item-option.js +1 -1
  42. package/components/ion-item-options.js +1 -1
  43. package/components/ion-item-sliding.js +1 -1
  44. package/components/ion-item.js +1 -1
  45. package/components/ion-label.js +1 -1
  46. package/components/ion-list-header.js +1 -1
  47. package/components/ion-list.js +1 -1
  48. package/components/ion-loading.js +1 -1
  49. package/components/ion-menu-button.js +1 -1
  50. package/components/ion-menu-toggle.js +1 -1
  51. package/components/ion-menu.js +1 -1
  52. package/components/ion-modal.js +1 -1
  53. package/components/ion-nav-link.js +1 -1
  54. package/components/ion-nav.js +1 -1
  55. package/components/ion-note.js +1 -1
  56. package/components/ion-picker-column-option.js +1 -1
  57. package/components/ion-picker-column.js +1 -1
  58. package/components/ion-picker.js +1 -1
  59. package/components/ion-popover.js +1 -1
  60. package/components/ion-progress-bar.js +1 -1
  61. package/components/ion-radio-group.js +1 -1
  62. package/components/ion-radio.js +1 -1
  63. package/components/ion-range.js +1 -1
  64. package/components/ion-refresher-content.js +1 -1
  65. package/components/ion-refresher.js +1 -1
  66. package/components/ion-reorder-group.js +1 -1
  67. package/components/ion-reorder.js +1 -1
  68. package/components/ion-ripple-effect.js +1 -1
  69. package/components/ion-route-redirect.js +1 -1
  70. package/components/ion-route.js +1 -1
  71. package/components/ion-router-link.js +1 -1
  72. package/components/ion-router-outlet.js +1 -1
  73. package/components/ion-router.js +1 -1
  74. package/components/ion-row.js +1 -1
  75. package/components/ion-searchbar.js +1 -1
  76. package/components/ion-segment-button.js +1 -1
  77. package/components/ion-segment-content.js +1 -1
  78. package/components/ion-segment-view.js +1 -1
  79. package/components/ion-segment.js +1 -1
  80. package/components/ion-select-modal.js +1 -1
  81. package/components/ion-select-option.js +1 -1
  82. package/components/ion-select-popover.js +1 -1
  83. package/components/ion-select.js +1 -1
  84. package/components/ion-skeleton-text.js +1 -1
  85. package/components/ion-spinner.js +1 -1
  86. package/components/ion-split-pane.js +1 -1
  87. package/components/ion-tab-bar.js +1 -1
  88. package/components/ion-tab-button.js +1 -1
  89. package/components/ion-tab.js +1 -1
  90. package/components/ion-tabs.js +1 -1
  91. package/components/ion-text.js +1 -1
  92. package/components/ion-textarea.js +1 -1
  93. package/components/ion-thumbnail.js +1 -1
  94. package/components/ion-title.js +1 -1
  95. package/components/ion-toast.js +1 -1
  96. package/components/ion-toggle.js +1 -1
  97. package/components/ion-toolbar.js +1 -1
  98. package/components/{p-Hp8t4RMX.js → p-6sKRBFnK.js} +1 -1
  99. package/components/{p-qAXsfUff.js → p-B8HBLiYi.js} +1 -1
  100. package/{dist/ionic/p-Do3zTvCA.js → components/p-BEiYs-sz.js} +1 -1
  101. package/components/p-BKeulLTJ.js +4 -0
  102. package/components/{p-5ldEpNdG.js → p-BKxLivx4.js} +1 -1
  103. package/components/{p-BYJRZKHa.js → p-BLjEwM6v.js} +1 -1
  104. package/components/{p-Cd1WaN-0.js → p-BNnmwjuy.js} +1 -1
  105. package/components/{p-COO0eJOA.js → p-BSJriPuC.js} +1 -1
  106. package/components/p-BUVGbkSc.js +4 -0
  107. package/components/{p-DL13ieTa.js → p-B_tZQKpS.js} +1 -1
  108. package/components/p-BexLz2XV.js +4 -0
  109. package/components/p-BinR4_P7.js +4 -0
  110. package/components/{p-DxhHlJln.js → p-BrOSQhkA.js} +1 -1
  111. package/components/p-BriaEJK8.js +4 -0
  112. package/components/p-BsLM9eQu.js +4 -0
  113. package/components/{p-DhNuxvJH.js → p-Bu6O-veK.js} +1 -1
  114. package/components/{p-DJR0R0e1.js → p-C7rB-0-1.js} +1 -1
  115. package/components/{p-6ZLn6K5e.js → p-C9ioHZq-.js} +1 -1
  116. package/components/p-CAQG0btC.js +4 -0
  117. package/components/{p-DMBiAyOR.js → p-CHHkdXfP.js} +1 -1
  118. package/components/p-CJgshb3W.js +4 -0
  119. package/components/p-CQjNc-Pz.js +4 -0
  120. package/components/{p-CJgnoKcN.js → p-CTUMJM0R.js} +1 -1
  121. package/components/{p-C4VpVfrJ.js → p-CVVUo4J1.js} +1 -1
  122. package/components/{p-B4lxwJ8N.js → p-CXy2v7GI.js} +1 -1
  123. package/components/{p-BQyuFxYc.js → p-C_NQIzjP.js} +1 -1
  124. package/components/{p-D7wDJdFn.js → p-Canp1qah.js} +1 -1
  125. package/components/p-CcQQ8oRo.js +4 -0
  126. package/components/{p-GGbIHyEF.js → p-CiFFeRH9.js} +1 -1
  127. package/components/p-CiXOsJF2.js +4 -0
  128. package/components/p-Ctw69DyZ.js +4 -0
  129. package/components/{p-DngGb-NV.js → p-CvzE7FFp.js} +1 -1
  130. package/components/{p-TWw4e4sO.js → p-CzykzqAO.js} +1 -1
  131. package/components/p-D0jSx7rE.js +4 -0
  132. package/components/{p-C-NbvXu4.js → p-D4NOsSCE.js} +1 -1
  133. package/components/{p-cEN43Ahr.js → p-DGUed0uX.js} +1 -1
  134. package/components/p-DM2jMsSO.js +4 -0
  135. package/components/p-DPyjiKOq.js +4 -0
  136. package/components/{p-BF48Oc0v.js → p-DSmHJ2DH.js} +1 -1
  137. package/components/p-DWGgvN5e.js +4 -0
  138. package/components/p-DlUdjUlf.js +4 -0
  139. package/components/{p-DM1gJSMP.js → p-Dlr7b3_2.js} +1 -1
  140. package/components/p-F1rV0pyK.js +4 -0
  141. package/components/{p-DFLJvuRK.js → p-LH1I_Zhd.js} +1 -1
  142. package/components/p-PPagT42x.js +4 -0
  143. package/components/{p-CqbGBmqb.js → p-RJT5zTbD.js} +1 -1
  144. package/components/p-T2dnrBya.js +4 -0
  145. package/components/p-WMQuK_Tj.js +4 -0
  146. package/components/p-eJpG4UbM.js +4 -0
  147. package/components/p-fFx6WCTj.js +4 -0
  148. package/{dist/ionic/p-BgOvhHy_.js → components/p-q2WJ5Igc.js} +1 -1
  149. package/components/{p-D5w_FlVa.js → p-y7Nhe3de.js} +1 -1
  150. package/css/core.css +1 -1
  151. package/css/core.css.map +1 -1
  152. package/css/ionic.bundle.css +1 -1
  153. package/css/ionic.bundle.css.map +1 -1
  154. package/dist/cjs/{animation-Kd1N7WTN.js → animation-BFKyYY11.js} +3 -3
  155. package/dist/cjs/{app-globals-b1G4t26O.js → app-globals-BLTzqkrC.js} +1 -1
  156. package/dist/cjs/attribute-controller-CXIeB0Mn.js +131 -0
  157. package/dist/cjs/{button-active-CQCFubJJ.js → button-active-CEQaiV9N.js} +2 -2
  158. package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-BMzmHhwe.js} +3 -3
  159. package/dist/cjs/{format-bHU8N1g5.js → format-CdRlDqPs.js} +1 -1
  160. package/dist/cjs/{framework-delegate-d-fWfeI6.js → framework-delegate-DTLbqaaO.js} +1 -1
  161. package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-CJVUv_GB.js} +1 -1
  162. package/dist/cjs/{helpers-7wzdhdeg.js → helpers-Crluoxqu.js} +50 -3
  163. package/dist/cjs/{index-DtvKGwdh.js → index-BAM4223M.js} +2 -2
  164. package/dist/cjs/{index-C74Q3t6a.js → index-BKpybYNI.js} +7 -8
  165. package/dist/cjs/{index-BbqUBe2T.js → index-BSD7toMO.js} +10 -8
  166. package/dist/cjs/{index-DFNrCX7M.js → index-CElfU-dK.js} +8 -9
  167. package/dist/cjs/{index-CQfEIyLK.js → index-CgXTRA_-.js} +4 -4
  168. package/dist/cjs/{index-DXoo08JC.js → index-SAR1xwtW.js} +25 -12
  169. package/dist/cjs/index.cjs.js +19 -19
  170. package/dist/cjs/{input-shims-VJIiKBKv.js → input-shims-CHghGZe-.js} +16 -17
  171. package/dist/cjs/{input.utils-EHVE2RK_.js → input.utils-BBZr0wjw.js} +1 -1
  172. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  173. package/dist/cjs/ion-action-sheet.cjs.entry.js +26 -28
  174. package/dist/cjs/ion-alert.cjs.entry.js +27 -29
  175. package/dist/cjs/ion-app_8.cjs.entry.js +72 -24
  176. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  177. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  178. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  179. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  180. package/dist/cjs/ion-button_2.cjs.entry.js +23 -34
  181. package/dist/cjs/ion-card_5.cjs.entry.js +19 -7
  182. package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
  183. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  184. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  185. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  186. package/dist/cjs/ion-datetime.cjs.entry.js +34 -29
  187. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  188. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  189. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  190. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  191. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  192. package/dist/cjs/ion-input.cjs.entry.js +12 -16
  193. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  194. package/dist/cjs/ion-item_8.cjs.entry.js +17 -8
  195. package/dist/cjs/ion-loading.cjs.entry.js +18 -20
  196. package/dist/cjs/ion-menu_3.cjs.entry.js +15 -17
  197. package/dist/cjs/ion-modal.cjs.entry.js +177 -172
  198. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  199. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  200. package/dist/cjs/ion-picker-column.cjs.entry.js +8 -9
  201. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  202. package/dist/cjs/ion-popover.cjs.entry.js +119 -42
  203. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  204. package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
  205. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  206. package/dist/cjs/ion-refresher_2.cjs.entry.js +8 -9
  207. package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -7
  208. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  209. package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
  210. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  211. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  212. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  213. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  214. package/dist/cjs/ion-select-modal.cjs.entry.js +8 -10
  215. package/dist/cjs/ion-select_3.cjs.entry.js +71 -53
  216. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  217. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  218. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +6 -7
  219. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  220. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  221. package/dist/cjs/ion-textarea.cjs.entry.js +11 -15
  222. package/dist/cjs/ion-toast.cjs.entry.js +49 -51
  223. package/dist/cjs/ion-toggle.cjs.entry.js +6 -7
  224. package/dist/cjs/{ionic-global-CYJNT-2P.js → ionic-global-C1h8Yi_K.js} +1 -1
  225. package/dist/cjs/ionic.cjs.js +5 -5
  226. package/dist/cjs/{ios.transition-DYGiD6gM.js → ios.transition-YFSxiyP_.js} +4 -5
  227. package/dist/cjs/{item-multiple-inputs-Dv6qrMhm.js → item-multiple-inputs-h2PyAFzG.js} +1 -1
  228. package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-C-C7xMKk.js} +1 -1
  229. package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-Cv-LNReK.js} +5 -3
  230. package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-CLcFxSnb.js} +9 -9
  231. package/dist/cjs/loader.cjs.js +4 -4
  232. package/dist/cjs/{md.transition-CrSkaoz6.js → md.transition-Cm8yg0UK.js} +4 -5
  233. package/dist/cjs/{overlays-BR21NUIG.js → overlays-C68wNDWY.js} +162 -9
  234. package/dist/cjs/{select-option-render-CrbLc-1j.js → select-option-render-C-Yh9yZG.js} +2 -2
  235. package/dist/cjs/{slot-mutation-controller-D6IjSEIh.js → slot-mutation-controller-zixZ5LyH.js} +73 -5
  236. package/dist/cjs/{status-tap-CNP5eD1R.js → status-tap-C3frTJ4c.js} +3 -3
  237. package/dist/cjs/{swipe-back-CSIJQfu5.js → swipe-back-ChrfFzIe.js} +2 -2
  238. package/dist/collection/collection-manifest.json +1 -1
  239. package/dist/collection/components/button/button.js +21 -32
  240. package/dist/collection/components/card/card.js +17 -6
  241. package/dist/collection/components/content/content.js +62 -8
  242. package/dist/collection/components/datetime/datetime.js +27 -20
  243. package/dist/collection/components/input/input.ios.css +6 -0
  244. package/dist/collection/components/input/input.js +6 -9
  245. package/dist/collection/components/input/input.md.css +6 -0
  246. package/dist/collection/components/item/item.js +15 -6
  247. package/dist/collection/components/modal/modal.ios.css +12 -1
  248. package/dist/collection/components/modal/modal.js +31 -8
  249. package/dist/collection/components/modal/modal.md.css +12 -1
  250. package/dist/collection/components/modal/safe-area-utils.js +69 -90
  251. package/dist/collection/components/modal/utils.js +7 -0
  252. package/dist/collection/components/popover/animations/ios.enter.js +20 -6
  253. package/dist/collection/components/popover/animations/md.enter.js +19 -5
  254. package/dist/collection/components/popover/utils.js +64 -13
  255. package/dist/collection/components/select/select.ios.css +1 -1
  256. package/dist/collection/components/select/select.js +67 -38
  257. package/dist/collection/components/select/select.md.css +1 -1
  258. package/dist/collection/components/textarea/textarea.ios.css +15 -1
  259. package/dist/collection/components/textarea/textarea.js +5 -8
  260. package/dist/collection/components/textarea/textarea.md.css +15 -1
  261. package/dist/collection/index.js +1 -1
  262. package/dist/collection/utils/attribute-controller.js +126 -0
  263. package/dist/collection/utils/forms/click-controller.js +70 -0
  264. package/dist/collection/utils/forms/index.js +1 -0
  265. package/dist/collection/utils/helpers.js +44 -3
  266. package/dist/collection/utils/logging/index.js +4 -0
  267. package/dist/collection/utils/overlays.js +34 -0
  268. package/dist/collection/utils/sanitization/index.js +10 -8
  269. package/dist/docs.json +9 -3
  270. package/dist/esm/{animation-BFNVlYum.js → animation-CFd8Olt3.js} +2 -2
  271. package/dist/esm/{app-globals-BgX0BGL1.js → app-globals-7GHLBkwd.js} +1 -1
  272. package/dist/esm/attribute-controller-Cn665x42.js +128 -0
  273. package/dist/esm/{button-active-BfOvDr3b.js → button-active-DMuYeDQN.js} +2 -2
  274. package/dist/esm/{capacitor-CFERIeaU.js → capacitor-CoEgIpR9.js} +1 -1
  275. package/dist/esm/{format-DDFE9jM5.js → format-C9zPmwKU.js} +1 -1
  276. package/dist/esm/{framework-delegate-BwNhx9NR.js → framework-delegate-DeT5pmPB.js} +1 -1
  277. package/dist/esm/{haptic-Cq4UAeka.js → haptic-Dxm7ZmT5.js} +1 -1
  278. package/dist/esm/{helpers-BSmc0nst.js → helpers-B54ynME_.js} +47 -4
  279. package/dist/esm/{index-C1b9CLFg.js → index--21qeSt0.js} +2 -2
  280. package/dist/esm/{index-DnA_7Bnx.js → index-B8iieOdw.js} +4 -4
  281. package/dist/esm/{index-BuPaALjU.js → index-B9jhwvmO.js} +5 -6
  282. package/dist/esm/{index-CqoUoxgG.js → index-D4ZMZz_3.js} +10 -8
  283. package/dist/esm/{index-C23AVPx9.js → index-D9OR05yj.js} +26 -13
  284. package/dist/esm/{index-CJln0gS3.js → index-D_xZtbw6.js} +2 -3
  285. package/dist/esm/index.js +11 -13
  286. package/dist/esm/{input-shims-Dqk-Ou25.js → input-shims-MCrhq67U.js} +5 -6
  287. package/dist/esm/{input.utils-rqoH22pW.js → input.utils-B-IIWrwT.js} +1 -1
  288. package/dist/esm/ion-accordion_2.entry.js +3 -3
  289. package/dist/esm/ion-action-sheet.entry.js +11 -13
  290. package/dist/esm/ion-alert.entry.js +11 -13
  291. package/dist/esm/ion-app_8.entry.js +72 -24
  292. package/dist/esm/ion-avatar_3.entry.js +2 -2
  293. package/dist/esm/ion-back-button.entry.js +3 -3
  294. package/dist/esm/ion-backdrop.entry.js +2 -2
  295. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  296. package/dist/esm/ion-button_2.entry.js +23 -34
  297. package/dist/esm/ion-card_5.entry.js +19 -7
  298. package/dist/esm/ion-checkbox.entry.js +4 -4
  299. package/dist/esm/ion-chip.entry.js +2 -2
  300. package/dist/esm/ion-col_3.entry.js +2 -2
  301. package/dist/esm/ion-datetime-button.entry.js +4 -4
  302. package/dist/esm/ion-datetime.entry.js +33 -28
  303. package/dist/esm/ion-fab_3.entry.js +3 -3
  304. package/dist/esm/ion-img.entry.js +3 -3
  305. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  306. package/dist/esm/ion-input-otp.entry.js +3 -3
  307. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  308. package/dist/esm/ion-input.entry.js +12 -16
  309. package/dist/esm/ion-item-option_3.entry.js +4 -4
  310. package/dist/esm/ion-item_8.entry.js +17 -8
  311. package/dist/esm/ion-loading.entry.js +7 -9
  312. package/dist/esm/ion-menu_3.entry.js +7 -9
  313. package/dist/esm/ion-modal.entry.js +115 -110
  314. package/dist/esm/ion-nav_2.entry.js +6 -6
  315. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  316. package/dist/esm/ion-picker-column.entry.js +5 -6
  317. package/dist/esm/ion-picker.entry.js +2 -2
  318. package/dist/esm/ion-popover.entry.js +108 -31
  319. package/dist/esm/ion-progress-bar.entry.js +3 -3
  320. package/dist/esm/ion-radio_2.entry.js +4 -4
  321. package/dist/esm/ion-range.entry.js +4 -4
  322. package/dist/esm/ion-refresher_2.entry.js +8 -9
  323. package/dist/esm/ion-reorder_2.entry.js +6 -7
  324. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  325. package/dist/esm/ion-route_4.entry.js +4 -4
  326. package/dist/esm/ion-searchbar.entry.js +3 -3
  327. package/dist/esm/ion-segment-content.entry.js +1 -1
  328. package/dist/esm/ion-segment-view.entry.js +1 -1
  329. package/dist/esm/ion-segment_2.entry.js +3 -3
  330. package/dist/esm/ion-select-modal.entry.js +7 -9
  331. package/dist/esm/ion-select_3.entry.js +66 -48
  332. package/dist/esm/ion-spinner.entry.js +2 -2
  333. package/dist/esm/ion-split-pane.entry.js +2 -2
  334. package/dist/esm/ion-tab-bar_2.entry.js +6 -7
  335. package/dist/esm/ion-tab_2.entry.js +3 -3
  336. package/dist/esm/ion-text.entry.js +2 -2
  337. package/dist/esm/ion-textarea.entry.js +11 -15
  338. package/dist/esm/ion-toast.entry.js +7 -9
  339. package/dist/esm/ion-toggle.entry.js +6 -7
  340. package/dist/esm/{ionic-global-ZXjCXKH0.js → ionic-global-B-G43ddm.js} +1 -1
  341. package/dist/esm/ionic.js +6 -6
  342. package/dist/esm/{ios.transition-CWAgfQ1r.js → ios.transition-CRfGj4Mo.js} +4 -5
  343. package/dist/esm/{item-multiple-inputs-DZnIiOO_.js → item-multiple-inputs-BSD9wGHO.js} +1 -1
  344. package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-DDw62P0D.js} +5 -3
  345. package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-Dzjet5wD.js} +2 -2
  346. package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-ly3M0GO7.js} +1 -1
  347. package/dist/esm/loader.js +5 -5
  348. package/dist/esm/{md.transition-ZuqDDdDW.js → md.transition-wqThNy_C.js} +4 -5
  349. package/dist/esm/{overlays-DKE0DgvE.js → overlays-BQnV0HAU.js} +156 -7
  350. package/dist/esm/{select-option-render-1W6W9pbC.js → select-option-render-CGxPejmz.js} +2 -2
  351. package/dist/esm/{slot-mutation-controller-B5NpUZ-N.js → slot-mutation-controller-C3s4-_YN.js} +69 -3
  352. package/dist/esm/{status-tap-Cv9gb3ja.js → status-tap-DRx9wSD_.js} +3 -3
  353. package/dist/esm/{swipe-back-De5HlmeM.js → swipe-back-CXmdi75W.js} +2 -2
  354. package/dist/ionic/index.esm.js +1 -1
  355. package/dist/ionic/ionic.esm.js +1 -1
  356. package/dist/ionic/{p-8b80d9f9.entry.js → p-0517aec4.entry.js} +1 -1
  357. package/dist/ionic/{p-ee09ac9d.entry.js → p-083b1119.entry.js} +1 -1
  358. package/dist/ionic/p-0ab133d6.entry.js +4 -0
  359. package/dist/ionic/{p-271c3640.entry.js → p-1110da0d.entry.js} +1 -1
  360. package/dist/ionic/p-1213b719.entry.js +4 -0
  361. package/dist/ionic/p-150f350e.entry.js +4 -0
  362. package/dist/ionic/{p-38b9375b.entry.js → p-20d1ac29.entry.js} +1 -1
  363. package/dist/ionic/p-24b0a961.entry.js +4 -0
  364. package/dist/ionic/{p-f0fb23c1.entry.js → p-2e6e933d.entry.js} +1 -1
  365. package/dist/ionic/p-30dcf43b.entry.js +4 -0
  366. package/dist/ionic/p-336ea4b8.entry.js +4 -0
  367. package/dist/ionic/{p-b9b4e85d.entry.js → p-378341d1.entry.js} +1 -1
  368. package/dist/ionic/{p-191a651e.entry.js → p-37f46670.entry.js} +1 -1
  369. package/dist/ionic/p-3a5faaa8.entry.js +4 -0
  370. package/dist/ionic/{p-efc0cf82.entry.js → p-3c4b0ba7.entry.js} +1 -1
  371. package/dist/ionic/p-42b2a992.entry.js +4 -0
  372. package/dist/ionic/p-49a16200.entry.js +4 -0
  373. package/dist/ionic/{p-837db1b9.entry.js → p-4dbb2f4f.entry.js} +1 -1
  374. package/dist/ionic/p-52dc3309.entry.js +4 -0
  375. package/dist/ionic/{p-85599fe3.entry.js → p-58f914ee.entry.js} +1 -1
  376. package/dist/ionic/{p-561af487.entry.js → p-5b9666be.entry.js} +1 -1
  377. package/dist/ionic/p-5c19330c.entry.js +4 -0
  378. package/dist/ionic/{p-3bba83ee.entry.js → p-61b304c8.entry.js} +1 -1
  379. package/dist/ionic/p-624f2fa8.entry.js +4 -0
  380. package/dist/ionic/p-636349e2.entry.js +4 -0
  381. package/dist/ionic/{p-d8c138d9.entry.js → p-6865f0e1.entry.js} +1 -1
  382. package/dist/ionic/p-7441ed2b.entry.js +4 -0
  383. package/dist/ionic/p-76309bab.entry.js +4 -0
  384. package/dist/ionic/p-83448626.entry.js +4 -0
  385. package/dist/ionic/{p-5d9094ac.entry.js → p-834afcf7.entry.js} +1 -1
  386. package/dist/ionic/{p-099b7f9f.entry.js → p-93cd738b.entry.js} +1 -1
  387. package/dist/ionic/{p-d6755739.entry.js → p-9b78fedf.entry.js} +1 -1
  388. package/dist/ionic/p-9dd9788c.entry.js +4 -0
  389. package/dist/ionic/{p-DYUjHcuH.js → p-B4ELlbJE.js} +1 -1
  390. package/dist/ionic/p-B4wzg4z4.js +4 -0
  391. package/dist/ionic/p-B4xjg_Qu.js +4 -0
  392. package/dist/ionic/{p-T71k3C35.js → p-BCgqWm-V.js} +1 -1
  393. package/dist/ionic/p-BChRVdVv.js +4 -0
  394. package/dist/ionic/{p-DTxBioUO.js → p-BUB5OrpU.js} +1 -1
  395. package/dist/ionic/p-BVEsh7-M.js +4 -0
  396. package/dist/ionic/p-Ba6ZV-qU.js +4 -0
  397. package/dist/ionic/p-BhMQahM6.js +4 -0
  398. package/dist/ionic/p-BtHAx8im.js +4 -0
  399. package/dist/ionic/{p-DZ6Hmc-8.js → p-Bv-6401R.js} +1 -1
  400. package/dist/ionic/{p-C8XilMh0.js → p-CCik51Nv.js} +1 -1
  401. package/dist/ionic/p-CTmJSZcs.js +4 -0
  402. package/dist/ionic/{p-BaeKWZ-a.js → p-CVwXN07G.js} +1 -1
  403. package/dist/ionic/p-CgQdInM0.js +4 -0
  404. package/{components/p-BJr2B5hZ.js → dist/ionic/p-CrAPHbJ3.js} +1 -1
  405. package/dist/ionic/p-CsWrz1c2.js +4 -0
  406. package/dist/ionic/p-D5akOqD0.js +4 -0
  407. package/dist/ionic/{p-C23AVPx9.js → p-D9OR05yj.js} +2 -2
  408. package/dist/ionic/{p-D4OrdtJf.js → p-DHf9V6zI.js} +1 -1
  409. package/dist/ionic/{p-Bd72UYI2.js → p-DNxEB9-T.js} +1 -1
  410. package/dist/ionic/p-DZUqAr_6.js +4 -0
  411. package/dist/ionic/{p-CM5OBjTW.js → p-DffXRKHu.js} +1 -1
  412. package/dist/ionic/{p-BMPN55of.js → p-DxvRP6ld.js} +1 -1
  413. package/dist/ionic/p-Dzew6Qv7.js +4 -0
  414. package/dist/ionic/p-PkaVMJga.js +4 -0
  415. package/dist/ionic/{p-4712a8a9.entry.js → p-b0a3dd1a.entry.js} +1 -1
  416. package/dist/ionic/p-b1164028.entry.js +4 -0
  417. package/dist/ionic/{p-ca1b8865.entry.js → p-b710b4b8.entry.js} +1 -1
  418. package/dist/ionic/{p-6e386853.entry.js → p-b9659d21.entry.js} +1 -1
  419. package/dist/ionic/{p-68cc89a6.entry.js → p-ba7bd621.entry.js} +1 -1
  420. package/dist/ionic/{p-db449915.entry.js → p-c2a23101.entry.js} +1 -1
  421. package/dist/ionic/p-daaecea3.entry.js +4 -0
  422. package/dist/ionic/p-e05073f6.entry.js +4 -0
  423. package/dist/ionic/{p-90f50a65.entry.js → p-e137f724.entry.js} +1 -1
  424. package/dist/ionic/p-e1969fd1.entry.js +4 -0
  425. package/dist/ionic/{p-7fbb3319.entry.js → p-e338693a.entry.js} +1 -1
  426. package/dist/ionic/p-e4c3f17f.entry.js +4 -0
  427. package/dist/ionic/p-e7414c33.entry.js +4 -0
  428. package/dist/ionic/{p-dd01be0a.entry.js → p-eb762f80.entry.js} +1 -1
  429. package/dist/ionic/{p-ec00fd0d.entry.js → p-edcb63e5.entry.js} +1 -1
  430. package/dist/ionic/p-f19e50f8.entry.js +4 -0
  431. package/dist/ionic/p-f9057f70.entry.js +4 -0
  432. package/dist/ionic/{p-9c5f2691.entry.js → p-f99cf5aa.entry.js} +1 -1
  433. package/dist/ionic/{p-54cbb0a7.entry.js → p-fee863dc.entry.js} +1 -1
  434. package/dist/ionic/p-kKvGoaEe.js +4 -0
  435. package/dist/ionic/p-tXpzvta8.js +4 -0
  436. package/dist/ionic/p-vPo3vRFc.js +4 -0
  437. package/dist/types/components/button/button.d.ts +3 -12
  438. package/dist/types/components/card/card.d.ts +3 -1
  439. package/dist/types/components/content/content.d.ts +28 -3
  440. package/dist/types/components/datetime/datetime.d.ts +5 -10
  441. package/dist/types/components/input/input.d.ts +1 -0
  442. package/dist/types/components/item/item.d.ts +1 -1
  443. package/dist/types/components/modal/modal.d.ts +9 -1
  444. package/dist/types/components/modal/safe-area-utils.d.ts +28 -14
  445. package/dist/types/components/modal/utils.d.ts +4 -0
  446. package/dist/types/components/popover/utils.d.ts +16 -3
  447. package/dist/types/components/select/select.d.ts +11 -0
  448. package/dist/types/components/textarea/textarea.d.ts +1 -0
  449. package/dist/types/components.d.ts +1 -1
  450. package/dist/types/index.d.ts +1 -1
  451. package/dist/types/stencil-public-runtime.d.ts +61 -55
  452. package/dist/types/utils/attribute-controller.d.ts +56 -0
  453. package/dist/types/utils/forms/click-controller.d.ts +36 -0
  454. package/dist/types/utils/forms/index.d.ts +1 -0
  455. package/dist/types/utils/helpers.d.ts +27 -2
  456. package/dist/types/utils/logging/index.d.ts +4 -0
  457. package/dist/types/utils/overlays.d.ts +15 -0
  458. package/dist/types/utils/sanitization/index.d.ts +2 -2
  459. package/hydrate/index.js +817 -299
  460. package/hydrate/index.mjs +817 -299
  461. package/package.json +4 -4
  462. package/components/p-1sJ0ZDPe.js +0 -4
  463. package/components/p-BNBnVi_1.js +0 -4
  464. package/components/p-BT9-hMMz.js +0 -4
  465. package/components/p-BWoa-cki.js +0 -4
  466. package/components/p-BgkOsq-d.js +0 -4
  467. package/components/p-Bi-it1EH.js +0 -4
  468. package/components/p-C0493tbX.js +0 -4
  469. package/components/p-C09TXohi.js +0 -4
  470. package/components/p-CG_zZq_I.js +0 -4
  471. package/components/p-CMRYD_yR.js +0 -4
  472. package/components/p-CNLioZ3B.js +0 -4
  473. package/components/p-CWAks_S_.js +0 -4
  474. package/components/p-CrAKlX71.js +0 -4
  475. package/components/p-Cw6WocLJ.js +0 -4
  476. package/components/p-DGPjJNOU.js +0 -4
  477. package/components/p-DZRZic9C.js +0 -4
  478. package/components/p-DiuOa1vw.js +0 -4
  479. package/components/p-Dj40C8gm.js +0 -4
  480. package/components/p-Djmz-ssp.js +0 -4
  481. package/components/p-DnBNYc7u.js +0 -4
  482. package/components/p-DwSXbQSz.js +0 -4
  483. package/components/p-M34T2gyX.js +0 -4
  484. package/components/p-YjMkHuvH.js +0 -4
  485. package/dist/cjs/hardware-back-button-Bu4Dzw8l.js +0 -121
  486. package/dist/cjs/index-DkNv4J_i.js +0 -10
  487. package/dist/esm/hardware-back-button-DmkiRgOT.js +0 -115
  488. package/dist/esm/index-ZjP4CjeZ.js +0 -7
  489. package/dist/ionic/p-06c6b540.entry.js +0 -4
  490. package/dist/ionic/p-0dcb7bb6.entry.js +0 -4
  491. package/dist/ionic/p-1347880c.entry.js +0 -4
  492. package/dist/ionic/p-1f24cb24.entry.js +0 -4
  493. package/dist/ionic/p-2c52fe3e.entry.js +0 -4
  494. package/dist/ionic/p-2ea4bb36.entry.js +0 -4
  495. package/dist/ionic/p-338a02e0.entry.js +0 -4
  496. package/dist/ionic/p-4c3e50f8.entry.js +0 -4
  497. package/dist/ionic/p-4e2fef42.entry.js +0 -4
  498. package/dist/ionic/p-5906ea6f.entry.js +0 -4
  499. package/dist/ionic/p-5cc09b40.entry.js +0 -4
  500. package/dist/ionic/p-612ea3b1.entry.js +0 -4
  501. package/dist/ionic/p-66f150ec.entry.js +0 -4
  502. package/dist/ionic/p-77c96e08.entry.js +0 -4
  503. package/dist/ionic/p-7bfeccb3.entry.js +0 -4
  504. package/dist/ionic/p-7e394cc3.entry.js +0 -4
  505. package/dist/ionic/p-9595e305.entry.js +0 -4
  506. package/dist/ionic/p-BY6BzzPF.js +0 -4
  507. package/dist/ionic/p-BhamHSw3.js +0 -4
  508. package/dist/ionic/p-BijjLYjT.js +0 -4
  509. package/dist/ionic/p-CER8qW8Y.js +0 -4
  510. package/dist/ionic/p-CFuOr1Tu.js +0 -4
  511. package/dist/ionic/p-CIGNaXM1.js +0 -4
  512. package/dist/ionic/p-CMZYmFb4.js +0 -4
  513. package/dist/ionic/p-CkxVYPtX.js +0 -4
  514. package/dist/ionic/p-CmXuiRT6.js +0 -4
  515. package/dist/ionic/p-D5t_-oMk.js +0 -4
  516. package/dist/ionic/p-D6rHcCvc.js +0 -4
  517. package/dist/ionic/p-DLM95R4x.js +0 -4
  518. package/dist/ionic/p-D_gb-kdd.js +0 -4
  519. package/dist/ionic/p-DajLgJ4d.js +0 -4
  520. package/dist/ionic/p-ZjP4CjeZ.js +0 -4
  521. package/dist/ionic/p-a1cc2861.entry.js +0 -4
  522. package/dist/ionic/p-a20a2ebe.entry.js +0 -4
  523. package/dist/ionic/p-a8ff2489.entry.js +0 -4
  524. package/dist/ionic/p-b3532b8d.entry.js +0 -4
  525. package/dist/ionic/p-b80c86c4.entry.js +0 -4
  526. package/dist/ionic/p-c57fc396.entry.js +0 -4
  527. package/dist/ionic/p-cc4320d3.entry.js +0 -4
  528. package/dist/ionic/p-f83b3e0c.entry.js +0 -4
  529. package/dist/ionic/p-fU3rOYad.js +0 -4
  530. package/dist/ionic/p-zWf7R2xV.js +0 -4
@@ -3,10 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var helpers = require('./helpers-7wzdhdeg.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var attributeController = require('./attribute-controller-CXIeB0Mn.js');
8
+ var helpers = require('./helpers-Crluoxqu.js');
8
9
  var theme = require('./theme-Bw0rpaNN.js');
9
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
10
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
10
11
  require('./dir-zwDPRE5K.js');
11
12
 
12
13
  const buttonIosCss = () => `:host{--overflow:hidden;--ripple-color:currentColor;--border-width:initial;--border-color:initial;--border-style:initial;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--box-shadow:none;display:inline-block;width:auto;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:center;text-decoration:none;white-space:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:top;vertical-align:-webkit-baseline-middle;-webkit-font-kerning:none;font-kerning:none}:host(.button-disabled){cursor:default;opacity:0.5;pointer-events:none}:host(.button-solid){--background:var(--ion-color-primary, #0054e9);--color:var(--ion-color-primary-contrast, #fff)}:host(.button-outline){--border-color:var(--ion-color-primary, #0054e9);--background:transparent;--color:var(--ion-color-primary, #0054e9)}:host(.button-clear){--border-width:0;--background:transparent;--color:var(--ion-color-primary, #0054e9)}:host(.button-block){display:block}:host(.button-block) .button-native{margin-left:0;margin-right:0;width:100%;clear:both;contain:content}:host(.button-block) .button-native::after{clear:both}:host(.button-full){display:block}:host(.button-full) .button-native{margin-left:0;margin-right:0;width:100%;contain:content}:host(.button-full:not(.button-round)) .button-native{border-radius:0;border-right-width:0;border-left-width:0}.button-native{border-radius:var(--border-radius);-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;width:100%;height:100%;min-height:inherit;-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);line-height:1;-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);contain:layout style;cursor:pointer;opacity:var(--opacity);overflow:var(--overflow);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none}.button-native::-moz-focus-inner{border:0}.button-inner{display:-ms-flexbox;display:flex;position:relative;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:100%;height:100%;z-index:1}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted(ion-icon){font-size:1.35em;pointer-events:none}::slotted(ion-icon[slot=start]){-webkit-margin-start:-0.3em;margin-inline-start:-0.3em;-webkit-margin-end:0.3em;margin-inline-end:0.3em;margin-top:0;margin-bottom:0}::slotted(ion-icon[slot=end]){-webkit-margin-start:0.3em;margin-inline-start:0.3em;-webkit-margin-end:-0.2em;margin-inline-end:-0.2em;margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}.button-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:"";opacity:0}:host(.ion-focused){color:var(--color-focused)}:host(.ion-focused) .button-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}@media (any-hover: hover){:host(:hover){color:var(--color-hover)}:host(:hover) .button-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}}:host(.ion-activated){color:var(--color-activated)}:host(.ion-activated) .button-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.button-solid.ion-color) .button-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.button-outline.ion-color) .button-native{border-color:var(--ion-color-base);background:transparent;color:var(--ion-color-base)}:host(.button-clear.ion-color) .button-native{background:transparent;color:var(--ion-color-base)}:host(.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{color:var(--ion-toolbar-color, var(--color))}:host(.button-outline.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{border-color:var(--ion-toolbar-color, var(--color, var(--border-color)))}:host(.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--background));color:var(--ion-toolbar-background, var(--color))}:host{--border-radius:14px;--padding-top:13px;--padding-bottom:13px;--padding-start:1em;--padding-end:1em;--transition:background-color, opacity 100ms linear;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:4px;margin-bottom:4px;min-height:3.1em;font-size:min(1rem, 48px);font-weight:500;letter-spacing:0}:host(.button-solid){--background-activated:var(--ion-color-primary-shade, #004acd);--background-focused:var(--ion-color-primary-shade, #004acd);--background-hover:var(--ion-color-primary-tint, #1a65eb);--background-activated-opacity:1;--background-focused-opacity:1;--background-hover-opacity:1}:host(.button-outline){--border-radius:14px;--border-width:1px;--border-style:solid;--background-activated:var(--ion-color-primary, #0054e9);--background-focused:var(--ion-color-primary, #0054e9);--background-hover:transparent;--background-focused-opacity:.1;--color-activated:var(--ion-color-primary-contrast, #fff)}:host(.button-clear){--background-activated:transparent;--background-activated-opacity:0;--background-focused:var(--ion-color-primary, #0054e9);--background-hover:transparent;--background-focused-opacity:.1;font-size:min(1.0625rem, 51px);font-weight:normal}:host(.in-buttons){font-size:clamp(17px, 1.0625rem, 21.08px);font-weight:400}:host(.button-large){--border-radius:16px;--padding-top:17px;--padding-start:1em;--padding-end:1em;--padding-bottom:17px;min-height:3.1em;font-size:min(1.25rem, 60px)}:host(.button-small){--border-radius:6px;--padding-top:4px;--padding-start:0.9em;--padding-end:0.9em;--padding-bottom:4px;min-height:2.1em;font-size:min(0.8125rem, 39px)}:host(.button-round){--border-radius:999px;--padding-top:0;--padding-start:26px;--padding-end:26px;--padding-bottom:0}:host(.button-strong){font-weight:600}:host(.button-has-icon-only){--padding-top:0;--padding-bottom:var(--padding-top);--padding-end:var(--padding-top);--padding-start:var(--padding-end);min-width:clamp(30px, 2.125em, 60px);min-height:clamp(30px, 2.125em, 60px)}::slotted(ion-icon[slot=icon-only]){font-size:clamp(15.12px, 1.125em, 43.02px)}:host(.button-small.button-has-icon-only){min-width:clamp(23px, 2.16em, 54px);min-height:clamp(23px, 2.16em, 54px)}:host(.button-small) ::slotted(ion-icon[slot=icon-only]){font-size:clamp(12.1394px, 1.308125em, 40.1856px)}:host(.button-large.button-has-icon-only){min-width:clamp(46px, 2.5em, 78px);min-height:clamp(46px, 2.5em, 78px)}:host(.button-large) ::slotted(ion-icon[slot=icon-only]){font-size:clamp(15.12px, 0.9em, 43.056px)}:host(.button-outline.ion-focused.ion-color) .button-native,:host(.button-clear.ion-focused.ion-color) .button-native{color:var(--ion-color-base)}:host(.button-outline.ion-focused.ion-color) .button-native::after,:host(.button-clear.ion-focused.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-focused) .button-native::after{background:var(--ion-color-shade)}@media (any-hover: hover){:host(.button-clear:not(.ion-activated):hover),:host(.button-outline:not(.ion-activated):hover){opacity:0.6}:host(.button-clear.ion-color:hover) .button-native,:host(.button-outline.ion-color:hover) .button-native{color:var(--ion-color-base)}:host(.button-clear.ion-color:hover) .button-native::after,:host(.button-outline.ion-color:hover) .button-native::after{background:transparent}:host(.button-solid.ion-color:hover) .button-native::after{background:var(--ion-color-tint)}:host(:hover.button-solid.in-toolbar:not(.ion-color):not(.in-toolbar-color):not(.ion-activated)) .button-native::after{background:#fff;opacity:0.1}}:host(.button-clear.ion-activated){opacity:0.4}:host(.button-outline.ion-activated.ion-color) .button-native{color:var(--ion-color-contrast)}:host(.button-outline.ion-activated.ion-color) .button-native::after{background:var(--ion-color-base)}:host(.button-solid.ion-color.ion-activated) .button-native::after{background:var(--ion-color-shade)}:host(.button-outline.ion-activated.in-toolbar:not(.ion-color):not(.in-toolbar-color)) .button-native{background:var(--ion-toolbar-color, var(--color));color:var(--ion-toolbar-background, var(--background), var(--ion-color-primary-contrast, #fff))}`;
@@ -23,7 +24,6 @@ const Button = class {
23
24
  this.inToolbar = false;
24
25
  this.formButtonEl = null;
25
26
  this.formEl = null;
26
- this.inheritedAttributes = {};
27
27
  /**
28
28
  * If `true`, the button only has an icon.
29
29
  */
@@ -82,23 +82,6 @@ const Button = class {
82
82
  this.formButtonEl.disabled = disabled;
83
83
  }
84
84
  }
85
- /**
86
- * This component is used within the `ion-input-password-toggle` component
87
- * to toggle the visibility of the password input.
88
- * These attributes need to update based on the state of the password input.
89
- * Otherwise, the values will be stale.
90
- *
91
- * @param newValue
92
- * @param _oldValue
93
- * @param propName
94
- */
95
- onAriaChanged(newValue, _oldValue, propName) {
96
- this.inheritedAttributes = {
97
- ...this.inheritedAttributes,
98
- [propName]: newValue,
99
- };
100
- index.forceUpdate(this);
101
- }
102
85
  /**
103
86
  * This is responsible for rendering a hidden native
104
87
  * button element inside the associated form. This allows
@@ -136,7 +119,21 @@ const Button = class {
136
119
  this.inToolbar = !!this.el.closest('ion-buttons');
137
120
  this.inListHeader = !!this.el.closest('ion-list-header');
138
121
  this.inItem = !!this.el.closest('ion-item') || !!this.el.closest('ion-item-divider');
139
- this.inheritedAttributes = helpers.inheritAriaAttributes(this.el);
122
+ /**
123
+ * The ARIA state has to stay live, since `ion-input-password-toggle` rewrites
124
+ * `aria-label` and `aria-pressed` on its `ion-button` on every toggle. We keep
125
+ * `aria-disabled` out of the watch because the `<Host>` below renders it from the
126
+ * `disabled` prop and those writes would clobber a developer's value, and `role` out
127
+ * because a post-load write stays on the host too, which would put the same role on
128
+ * two elements in the accessibility tree.
129
+ */
130
+ this.ariaController = attributeController.createAriaAttributeController(this.el, () => index.forceUpdate(this), ['aria-disabled', 'role']);
131
+ }
132
+ connectedCallback() {
133
+ this.ariaController?.init();
134
+ }
135
+ disconnectedCallback() {
136
+ this.ariaController?.destroy();
140
137
  }
141
138
  get hasIconOnly() {
142
139
  return !!this.el.querySelector('[slot="icon-only"]');
@@ -211,7 +208,8 @@ const Button = class {
211
208
  }
212
209
  render() {
213
210
  const mode = ionicGlobal.getIonMode(this);
214
- const { buttonType, type, disabled, rel, target, size, href, color, expand, hasIconOnly, shape, strong, inheritedAttributes, } = this;
211
+ const { buttonType, type, disabled, rel, target, size, href, color, expand, hasIconOnly, shape, strong } = this;
212
+ const inheritedAttributes = this.ariaController?.attributes ?? {};
215
213
  const finalSize = size === undefined && this.inItem ? 'small' : size;
216
214
  const TagType = href === undefined ? 'button' : 'a';
217
215
  const attrs = TagType === 'button'
@@ -236,7 +234,7 @@ const Button = class {
236
234
  {
237
235
  type !== 'button' && this.renderHiddenButton();
238
236
  }
239
- return (index.h(index.Host, { key: '82c71b8cbf3bb51e443f4aa99c375bf5be6b8dc7', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: theme.createColorClasses(color, {
237
+ return (index.h(index.Host, { key: 'fd42d1a5836c148cddd6c474c130ce4bb36286ea', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: theme.createColorClasses(color, {
240
238
  [mode]: true,
241
239
  [buttonType]: true,
242
240
  [`${buttonType}-${expand}`]: expand !== undefined,
@@ -251,21 +249,12 @@ const Button = class {
251
249
  'button-disabled': disabled,
252
250
  'ion-activatable': true,
253
251
  'ion-focusable': true,
254
- }) }, index.h(TagType, { key: '53f4cb366bac796ab38f609e858bc1a55fce7641', ...attrs, class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, ...inheritedAttributes }, index.h("span", { key: '40e127fc11c889e77b8bf02e8714f0dea83bfce7', class: "button-inner" }, index.h("slot", { key: 'e11c8c86d3f0894658a8999129425c9c111f5540', name: "icon-only", onSlotchange: this.slotChanged }), index.h("slot", { key: '105ea9259ea17036359e6fe7eced8b267ab8e0f6', name: "start" }), index.h("slot", { key: '0d7b0966e328a5b10b0562dacbd638dfd08d92af' }), index.h("slot", { key: 'c542b40685802464d69f57ecc0a7c3465d24a417', name: "end" })), mode === 'md' && index.h("ion-ripple-effect", { key: '46df4cbeb057b0a8daab92226121d8bbb8c0ee07', type: this.rippleType }))));
252
+ }) }, index.h(TagType, { key: '97dbf689ea912aed38182dbe0097a2bf5b768816', ...attrs, class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur, ...inheritedAttributes }, index.h("span", { key: '0f1ff4c667e95a8e3dc787fee43fe529b95477b7', class: "button-inner" }, index.h("slot", { key: 'fc1e8b8080d02828c392e9edd6a70e0255435f82', name: "icon-only", onSlotchange: this.slotChanged }), index.h("slot", { key: 'c1ece4c0d935f4d023d38fee4cf529dd4123d487', name: "start" }), index.h("slot", { key: '970db0ee1e3633bc9cbff52eca446e4891ff6851' }), index.h("slot", { key: 'ef8d7d894f01dbe881f381b985620c2a482e55fe', name: "end" })), mode === 'md' && index.h("ion-ripple-effect", { key: 'fea5e49a54b0efd07b1bd35d9fd5d2d862a2bac1', type: this.rippleType }))));
255
253
  }
256
254
  get el() { return index.getElement(this); }
257
255
  static get watchers() { return {
258
256
  "disabled": [{
259
257
  "disabledChanged": 0
260
- }],
261
- "aria-checked": [{
262
- "onAriaChanged": 0
263
- }],
264
- "aria-label": [{
265
- "onAriaChanged": 0
266
- }],
267
- "aria-pressed": [{
268
- "onAriaChanged": 0
269
258
  }]
270
259
  }; }
271
260
  };
@@ -3,10 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var helpers = require('./helpers-7wzdhdeg.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var attributeController = require('./attribute-controller-CXIeB0Mn.js');
8
8
  var theme = require('./theme-Bw0rpaNN.js');
9
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
9
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
10
+ require('./helpers-Crluoxqu.js');
10
11
  require('./dir-zwDPRE5K.js');
11
12
 
12
13
  const cardIosCss = () => `:host{--ion-safe-area-left:0px;--ion-safe-area-right:0px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;overflow:hidden}:host(.ion-color){background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.card-disabled){cursor:default;opacity:0.3;pointer-events:none}.card-native{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;display:block;width:100%;min-height:var(--min-height);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:inherit}.card-native::-moz-focus-inner{border:0}button,a{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-user-drag:none}ion-ripple-effect{color:var(--ripple-color)}:host{--background:var(--ion-card-background, var(--ion-item-background, var(--ion-background-color, #fff)));--color:var(--ion-card-color, var(--ion-item-color, var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))));-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:24px;margin-bottom:24px;border-radius:8px;-webkit-transition:-webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:-webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);transition:transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1), -webkit-transform 500ms cubic-bezier(0.12, 0.72, 0.29, 1);font-size:0.875rem;-webkit-box-shadow:0 4px 16px rgba(0, 0, 0, 0.12);box-shadow:0 4px 16px rgba(0, 0, 0, 0.12)}:host(.ion-activated){-webkit-transform:scale3d(0.97, 0.97, 1);transform:scale3d(0.97, 0.97, 1)}`;
@@ -16,7 +17,6 @@ const cardMdCss = () => `:host{--ion-safe-area-left:0px;--ion-safe-area-right:0p
16
17
  const Card = class {
17
18
  constructor(hostRef) {
18
19
  index.registerInstance(this, hostRef);
19
- this.inheritedAriaAttributes = {};
20
20
  /**
21
21
  * If `true`, a button tag will be rendered and the card will be tappable.
22
22
  */
@@ -36,7 +36,18 @@ const Card = class {
36
36
  this.routerDirection = 'forward';
37
37
  }
38
38
  componentWillLoad() {
39
- this.inheritedAriaAttributes = helpers.inheritAttributes(this.el, ['aria-label']);
39
+ /**
40
+ * Only the initial copy takes the attribute off the host, so an `aria-label` written
41
+ * after load stays on the host too. That's harmless here, because unlike `ion-item`
42
+ * the card host renders no role of its own, so nothing reads the leftover copy.
43
+ */
44
+ this.ariaController = attributeController.createAttributeController(this.el, ['aria-label'], () => index.forceUpdate(this));
45
+ }
46
+ connectedCallback() {
47
+ this.ariaController?.init();
48
+ }
49
+ disconnectedCallback() {
50
+ this.ariaController?.destroy();
40
51
  }
41
52
  isClickable() {
42
53
  return this.href !== undefined || this.button;
@@ -46,7 +57,8 @@ const Card = class {
46
57
  if (!clickable) {
47
58
  return [index.h("slot", null)];
48
59
  }
49
- const { href, routerAnimation, routerDirection, inheritedAriaAttributes } = this;
60
+ const { href, routerAnimation, routerDirection } = this;
61
+ const inheritedAriaAttributes = this.ariaController?.attributes ?? {};
50
62
  const TagType = clickable ? (href === undefined ? 'button' : 'a') : 'div';
51
63
  const attrs = TagType === 'button'
52
64
  ? { type: this.type }
@@ -60,7 +72,7 @@ const Card = class {
60
72
  }
61
73
  render() {
62
74
  const mode = ionicGlobal.getIonMode(this);
63
- return (index.h(index.Host, { key: '85e9b30bd81e79a0c7ac75cb3664bdcf9e4afc4d', class: theme.createColorClasses(this.color, {
75
+ return (index.h(index.Host, { key: '104412c26f53cce36432c3bb4d9e38bbe00c5816', class: theme.createColorClasses(this.color, {
64
76
  [mode]: true,
65
77
  'card-disabled': this.disabled,
66
78
  'ion-activatable': this.isClickable(),
@@ -3,12 +3,12 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var helpers = require('./helpers-7wzdhdeg.js');
8
- var itemMultipleInputs = require('./item-multiple-inputs-Dv6qrMhm.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var helpers = require('./helpers-Crluoxqu.js');
8
+ var itemMultipleInputs = require('./item-multiple-inputs-h2PyAFzG.js');
9
9
  var validity = require('./validity-BpS37YFM.js');
10
10
  var theme = require('./theme-Bw0rpaNN.js');
11
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
11
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
12
12
  require('./dir-zwDPRE5K.js');
13
13
 
14
14
  const checkboxIosCss = () => `:host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{display:none}:host(:focus){outline:none}.native-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}:host(.ion-focused) .native-wrapper::after{border-radius:50%;display:block;position:absolute;width:36px;height:36px;background:var(--ion-color-primary-tint, #1a65eb);content:"";opacity:0.2;inset-block-start:calc(50% - 36px / 2);inset-inline-start:calc(50% - 36px / 2)}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:0.125rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.375rem, 55.836px);--checkmark-width:1.5px}:host(.checkbox-disabled){opacity:0.3}`;
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
7
  var theme = require('./theme-Bw0rpaNN.js');
8
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
8
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
9
9
 
10
10
  const chipIosCss = () => `:host{--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.12);--color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.87);border-radius:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:4px;margin-inline-end:4px;margin-top:4px;margin-bottom:4px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-inline-flexbox;display:inline-flex;position:relative;-ms-flex-align:center;align-items:center;min-height:32px;background:var(--background);color:var(--color);font-family:var(--ion-font-family, inherit);cursor:pointer;overflow:hidden;vertical-align:middle;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.chip-disabled){cursor:default;opacity:0.4;pointer-events:none}:host(.ion-color){background:rgba(var(--ion-color-base-rgb), 0.08);color:var(--ion-color-shade)}:host(.ion-color:focus){background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.ion-color.ion-activated){background:rgba(var(--ion-color-base-rgb), 0.16)}:host(.chip-outline){border-width:1px;border-style:solid}:host(.chip-outline){border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.32);background:transparent}:host(.chip-outline.ion-color){border-color:rgba(var(--ion-color-base-rgb), 0.32)}:host(.chip-outline:not(.ion-color):focus){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.04)}:host(.chip-outline.ion-activated:not(.ion-color)){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.08)}::slotted(ion-icon){font-size:1.4285714286em}:host(:not(.ion-color)) ::slotted(ion-icon){color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54)}::slotted(ion-icon:first-child){-webkit-margin-start:-4px;margin-inline-start:-4px;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:-4px;margin-bottom:-4px}::slotted(ion-icon:last-child){-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:-4px;margin-inline-end:-4px;margin-top:-4px;margin-bottom:-4px}::slotted(ion-avatar){-ms-flex-negative:0;flex-shrink:0;width:1.7142857143em;height:1.7142857143em}::slotted(ion-avatar:first-child){-webkit-margin-start:-8px;margin-inline-start:-8px;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:-4px;margin-bottom:-4px}::slotted(ion-avatar:last-child){-webkit-margin-start:8px;margin-inline-start:8px;-webkit-margin-end:-8px;margin-inline-end:-8px;margin-top:-4px;margin-bottom:-4px}:host(:focus){outline:none}:host(:focus){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.16)}:host(.ion-activated){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.2)}@media (any-hover: hover){:host(:hover){--background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.16)}:host(.ion-color:hover){background:rgba(var(--ion-color-base-rgb), 0.12)}:host(.chip-outline:not(.ion-color):hover){background:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.04)}}:host{font-size:clamp(13px, 0.875rem, 22px)}`;
11
11
 
@@ -3,8 +3,8 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
8
8
 
9
9
  const SIZE_TO_MEDIA = {
10
10
  xs: '(min-width: 0px)',
@@ -3,11 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var helpers = require('./helpers-7wzdhdeg.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var helpers = require('./helpers-Crluoxqu.js');
8
8
  var theme = require('./theme-Bw0rpaNN.js');
9
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
10
- var format = require('./format-bHU8N1g5.js');
9
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
10
+ var format = require('./format-CdRlDqPs.js');
11
11
  require('./dir-zwDPRE5K.js');
12
12
 
13
13
  const datetimeButtonIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}`;
@@ -3,18 +3,16 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
7
  var focusVisible = require('./focus-visible-CCvKiLh3.js');
8
- var helpers = require('./helpers-7wzdhdeg.js');
9
- var overlays = require('./overlays-BR21NUIG.js');
8
+ var helpers = require('./helpers-Crluoxqu.js');
9
+ var hardwareBackButton = require('./overlays-C68wNDWY.js');
10
10
  var dir = require('./dir-zwDPRE5K.js');
11
11
  var theme = require('./theme-Bw0rpaNN.js');
12
12
  var index$1 = require('./index-wOmugbdg.js');
13
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
14
- var format = require('./format-bHU8N1g5.js');
15
- require('./index-DkNv4J_i.js');
16
- require('./hardware-back-button-Bu4Dzw8l.js');
17
- require('./framework-delegate-d-fWfeI6.js');
13
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
14
+ var format = require('./format-CdRlDqPs.js');
15
+ require('./framework-delegate-DTLbqaaO.js');
18
16
  require('./gesture-controller-CeJslptU.js');
19
17
 
20
18
  /**
@@ -769,16 +767,6 @@ const Datetime = class {
769
767
  this.ionStyle = index.createEvent(this, "ionStyle", 7);
770
768
  this.ionRender = index.createEvent(this, "ionRender", 7);
771
769
  this.inputId = `ion-dt-${datetimeIds++}`;
772
- /**
773
- * Set true only by `visibleCallback`. Lets `hiddenCallback` ignore the
774
- * synthetic "not intersecting" entry IntersectionObserver fires on
775
- * `observe()` when the host mounts offscreen.
776
- *
777
- * Don't reset this in `disconnectedCallback`. Overlays disconnect and
778
- * reconnect the host without re-creating the observers, so a reset there
779
- * makes `hiddenCallback` miss the dismissal.
780
- */
781
- this.hasBeenIntersecting = false;
782
770
  this.prevPresentation = null;
783
771
  this.showMonthAndYear = false;
784
772
  this.activeParts = [];
@@ -1340,12 +1328,19 @@ const Datetime = class {
1340
1328
  if (this.el.classList.contains('datetime-ready')) {
1341
1329
  return;
1342
1330
  }
1343
- const rect = this.el.getBoundingClientRect();
1344
- if (rect.width === 0 || rect.height === 0) {
1331
+ if (!this.hasLayoutBox()) {
1345
1332
  return;
1346
1333
  }
1347
1334
  this.markReady();
1348
1335
  };
1336
+ /**
1337
+ * Whether the datetime is on screen. A modal or popover hides its contents
1338
+ * with `display: none`, which leaves the host without a layout box.
1339
+ */
1340
+ this.hasLayoutBox = () => {
1341
+ const { width, height } = this.el.getBoundingClientRect();
1342
+ return width > 0 && height > 0;
1343
+ };
1349
1344
  this.markReady = () => {
1350
1345
  if (this.el.classList.contains('datetime-ready')) {
1351
1346
  return;
@@ -1678,11 +1673,14 @@ const Datetime = class {
1678
1673
  * areas will not have the correct values snapped into place.
1679
1674
  */
1680
1675
  const visibleCallback = (entries) => {
1681
- const ev = entries[0];
1676
+ /**
1677
+ * The browser can batch several observations into one callback, so
1678
+ * only the last entry describes the datetime now.
1679
+ */
1680
+ const ev = entries[entries.length - 1];
1682
1681
  if (!ev.isIntersecting) {
1683
1682
  return;
1684
1683
  }
1685
- this.hasBeenIntersecting = true;
1686
1684
  this.markReady();
1687
1685
  };
1688
1686
  const visibleIO = new IntersectionObserver(visibleCallback, { threshold: 0.01, root: el });
@@ -1715,15 +1713,22 @@ const Datetime = class {
1715
1713
  * we did originally has been lost.
1716
1714
  */
1717
1715
  const hiddenCallback = (entries) => {
1718
- const ev = entries[0];
1716
+ const ev = entries[entries.length - 1];
1719
1717
  if (ev.isIntersecting) {
1720
1718
  return;
1721
1719
  }
1722
- // Ignore the initial "not intersecting" entry IntersectionObserver fires on observe().
1723
- if (!this.hasBeenIntersecting) {
1720
+ /**
1721
+ * WebKit reports a datetime that is still on screen as not
1722
+ * intersecting, and it doesn't deliver that entry to every observer on
1723
+ * the same root and target, so `visibleCallback` may never hear about
1724
+ * it and add `datetime-ready` back. That is what left the calendar
1725
+ * blank in #30933. Checking the host instead of trusting the entry
1726
+ * also covers the synthetic "not intersecting" entry `observe()` fires
1727
+ * when the datetime mounts offscreen.
1728
+ */
1729
+ if (this.hasLayoutBox()) {
1724
1730
  return;
1725
1731
  }
1726
- this.hasBeenIntersecting = false;
1727
1732
  this.destroyInteractionListeners();
1728
1733
  /**
1729
1734
  * When datetime is hidden, we need to make sure that
@@ -1910,7 +1915,7 @@ const Datetime = class {
1910
1915
  const renderArray = forcePresentation === 'time-date'
1911
1916
  ? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
1912
1917
  : [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
1913
- return index.h("ion-picker", { class: overlays.FOCUS_TRAP_DISABLE_CLASS }, renderArray);
1918
+ return index.h("ion-picker", { class: hardwareBackButton.FOCUS_TRAP_DISABLE_CLASS }, renderArray);
1914
1919
  }
1915
1920
  renderDatePickerColumns(forcePresentation) {
1916
1921
  return forcePresentation === 'date-time' || forcePresentation === 'time-date'
@@ -2535,7 +2540,7 @@ const Datetime = class {
2535
2540
  const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
2536
2541
  const hasWheelVariant = hasDatePresentation && preferWheel;
2537
2542
  helpers.renderHiddenInput(true, el, name, format.formatValue(value), disabled);
2538
- return (index.h(index.Host, { key: '4e0b529a70924b065bcc6191e08550428b5a52a0', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
2543
+ return (index.h(index.Host, { key: 'a9128b5c55464e30a269daf9d725bf430c8c655c', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
2539
2544
  ...theme.createColorClasses(color, {
2540
2545
  [mode]: true,
2541
2546
  ['datetime-readonly']: readonly,
@@ -2547,7 +2552,7 @@ const Datetime = class {
2547
2552
  [`datetime-prefer-wheel`]: hasWheelVariant,
2548
2553
  [`datetime-grid`]: isGridStyle,
2549
2554
  }),
2550
- } }, index.h("div", { key: 'cc9d1b92f960984cb0466d0003a240ace67da243', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
2555
+ } }, index.h("div", { key: 'b49f3a98db2b7cf535d7ea894d518f75f8a1fefb', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
2551
2556
  }
2552
2557
  get el() { return index.getElement(this); }
2553
2558
  static get watchers() { return {
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
8
- var helpers = require('./helpers-7wzdhdeg.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
8
+ var helpers = require('./helpers-Crluoxqu.js');
9
9
  var theme = require('./theme-Bw0rpaNN.js');
10
10
  var index$1 = require('./index-wOmugbdg.js');
11
11
  require('./dir-zwDPRE5K.js');
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var helpers = require('./helpers-7wzdhdeg.js');
8
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var helpers = require('./helpers-Crluoxqu.js');
8
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
9
9
  require('./dir-zwDPRE5K.js');
10
10
 
11
11
  const imgCss = () => `:host{display:block;-o-object-fit:contain;object-fit:contain}img{display:block;width:100%;height:100%;-o-object-fit:inherit;object-fit:inherit;-o-object-position:inherit;object-position:inherit}`;
@@ -3,12 +3,12 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var index$1 = require('./index-DtvKGwdh.js');
8
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var index$1 = require('./index-BAM4223M.js');
8
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
9
9
  var config = require('./config-CjUbvdPW.js');
10
- var index$2 = require('./index-BbqUBe2T.js');
11
- require('./helpers-7wzdhdeg.js');
10
+ var index$2 = require('./index-BSD7toMO.js');
11
+ require('./helpers-Crluoxqu.js');
12
12
  require('./dir-zwDPRE5K.js');
13
13
 
14
14
  const infiniteScrollCss = () => `ion-infinite-scroll{display:none;width:100%}.infinite-scroll-enabled{display:block}`;
@@ -3,11 +3,11 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
7
- var helpers = require('./helpers-7wzdhdeg.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
+ var helpers = require('./helpers-Crluoxqu.js');
8
8
  var dir = require('./dir-zwDPRE5K.js');
9
9
  var theme = require('./theme-Bw0rpaNN.js');
10
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
10
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
11
11
 
12
12
  const inputOtpIosCss = () => `.sc-ion-input-otp-ios-h{--margin-top:0;--margin-end:0;--margin-bottom:0;--margin-start:0;--padding-top:16px;--padding-end:0;--padding-bottom:16px;--padding-start:0;--color:initial;--min-width:40px;--separator-width:8px;--separator-height:var(--separator-width);--separator-border-radius:999px;--separator-color:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-size:0.875rem}.input-otp-group.sc-ion-input-otp-ios{-webkit-margin-start:var(--margin-start);margin-inline-start:var(--margin-start);-webkit-margin-end:var(--margin-end);margin-inline-end:var(--margin-end);margin-top:var(--margin-top);margin-bottom:var(--margin-bottom);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.native-wrapper.sc-ion-input-otp-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:var(--min-width)}.native-input.sc-ion-input-otp-ios{border-radius:var(--border-radius);width:var(--width);min-width:inherit;height:var(--height);border-width:var(--border-width);border-style:solid;border-color:var(--border-color);background:var(--background);color:var(--color);font-size:inherit;text-align:center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{caret-color:var(--highlight-color)}.input-otp-description.sc-ion-input-otp-ios{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem;line-height:1.25rem;text-align:center}.input-otp-description-hidden.sc-ion-input-otp-ios{display:none}.input-otp-separator.sc-ion-input-otp-ios{border-radius:var(--separator-border-radius);-ms-flex-negative:0;flex-shrink:0;width:var(--separator-width);height:var(--separator-height);background:var(--separator-color)}.input-otp-size-small.sc-ion-input-otp-ios-h{--width:40px;--height:40px}.input-otp-size-small.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios{gap:8px}.input-otp-size-medium.sc-ion-input-otp-ios-h{--width:48px;--height:48px}.input-otp-size-large.sc-ion-input-otp-ios-h{--width:56px;--height:56px}.input-otp-size-medium.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios,.input-otp-size-large.sc-ion-input-otp-ios-h .input-otp-group.sc-ion-input-otp-ios{gap:12px}.input-otp-shape-round.sc-ion-input-otp-ios-h{--border-radius:16px}.input-otp-shape-soft.sc-ion-input-otp-ios-h{--border-radius:8px}.input-otp-shape-rectangular.sc-ion-input-otp-ios-h{--border-radius:0}.input-otp-fill-outline.sc-ion-input-otp-ios-h{--background:none}.input-otp-fill-solid.sc-ion-input-otp-ios-h{--border-color:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-disabled.sc-ion-input-otp-ios-h{--color:var(--ion-color-step-350, var(--ion-text-color-step-650, #a6a6a6))}.input-otp-fill-outline.input-otp-disabled.sc-ion-input-otp-ios-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.input-otp-disabled.sc-ion-input-otp-ios-h,.input-otp-disabled.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:disabled{cursor:not-allowed}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{--border-color:var(--highlight-color);outline:none}.input-otp-fill-outline.input-otp-readonly.sc-ion-input-otp-ios-h{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2))}.input-otp-fill-solid.input-otp-disabled.sc-ion-input-otp-ios-h,.input-otp-fill-solid.input-otp-readonly.sc-ion-input-otp-ios-h{--border-color:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.ion-touched.ion-invalid.sc-ion-input-otp-ios-h{--highlight-color:var(--highlight-color-invalid)}.ion-valid.sc-ion-input-otp-ios-h{--highlight-color:var(--highlight-color-valid)}.has-focus.ion-valid.sc-ion-input-otp-ios-h,.ion-touched.ion-invalid.sc-ion-input-otp-ios-h{--border-color:var(--highlight-color)}.ion-color.sc-ion-input-otp-ios-h{--highlight-color-focused:var(--ion-color-base)}.input-otp-fill-outline.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{border-color:rgba(var(--ion-color-base-rgb), 0.6)}.input-otp-fill-outline.ion-color.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-outline.ion-color.has-focus.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.has-focus.ion-invalid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:var(--ion-color-danger, #c5000f)}.input-otp-fill-outline.ion-color.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-outline.ion-color.has-focus.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios,.input-otp-fill-solid.ion-color.has-focus.ion-valid.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:var(--ion-color-success, #2dd55b)}.input-otp-fill-outline.input-otp-disabled.ion-color.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios{border-color:rgba(var(--ion-color-base-rgb), 0.3)}.sc-ion-input-otp-ios-h{--border-width:0.55px}.has-focus.sc-ion-input-otp-ios-h .native-input.sc-ion-input-otp-ios:focus{--border-width:1px}.input-otp-fill-outline.sc-ion-input-otp-ios-h{--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))))}`;
13
13
 
@@ -3,10 +3,10 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DXoo08JC.js');
6
+ var index = require('./index-SAR1xwtW.js');
7
7
  var theme = require('./theme-Bw0rpaNN.js');
8
8
  var index$1 = require('./index-wOmugbdg.js');
9
- var ionicGlobal = require('./ionic-global-CYJNT-2P.js');
9
+ var ionicGlobal = require('./ionic-global-C1h8Yi_K.js');
10
10
 
11
11
  const iosInputPasswordToggleCss = () => ``;
12
12