@ionic/core 8.7.10-dev.11762795745.187eb9d6 → 8.7.10-dev.11763406256.1a4bac8c

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 (271) hide show
  1. package/components/checkbox.js +63 -9
  2. package/components/ion-input.js +2 -1
  3. package/components/ion-select.js +7 -6
  4. package/components/ion-textarea.js +2 -1
  5. package/components/ion-toggle.js +62 -12
  6. package/components/notch-controller.js +153 -0
  7. package/components/radio-group.js +60 -7
  8. package/components/validity.js +1 -150
  9. package/dist/cjs/{animation-CMd5EiUJ.js → animation-Bt3H9L1C.js} +1 -1
  10. package/dist/cjs/{app-globals-YYg3oRxW.js → app-globals-Ciccnk9_.js} +1 -1
  11. package/dist/cjs/{button-active-C8-Bw602.js → button-active-CMc8cD90.js} +1 -1
  12. package/dist/cjs/{config-Bg0ubRZh.js → config-C5fsO43a.js} +1 -1
  13. package/dist/cjs/{data-r5j7Uerm.js → data-JwZKaIQB.js} +1 -1
  14. package/dist/cjs/{framework-delegate-N9XyoOZB.js → framework-delegate-DMJRBuDi.js} +1 -1
  15. package/dist/cjs/{hardware-back-button-B840zOI6.js → hardware-back-button-VCK4V3mG.js} +1 -1
  16. package/dist/cjs/{helpers-D77VXx-r.js → helpers-DrTqNghc.js} +1 -1
  17. package/dist/cjs/{index-DaKBTHFW.js → index-094mMFB-.js} +4 -4
  18. package/dist/cjs/{index-Dz0blAIb.js → index-C534ULug.js} +2 -2
  19. package/dist/cjs/{index-CeUl7ZfZ.js → index-CO6eryBo.js} +2 -2
  20. package/dist/cjs/{index-ChS3fOIY.js → index-D6Wc6v08.js} +3 -41
  21. package/dist/cjs/{index-DmOKAifs.js → index-DrMUZJj6.js} +5 -5
  22. package/dist/cjs/index.cjs.js +12 -12
  23. package/dist/cjs/{input-shims-DJpaPpDp.js → input-shims-CW0KUFTQ.js} +3 -3
  24. package/dist/cjs/{input.utils-D0-KClCg.js → input.utils-B_QROI2g.js} +2 -2
  25. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  26. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  27. package/dist/cjs/ion-alert.cjs.entry.js +9 -9
  28. package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
  29. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  30. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  31. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  33. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-checkbox.cjs.entry.js +63 -11
  36. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  37. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  38. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  39. package/dist/cjs/ion-datetime_3.cjs.entry.js +8 -8
  40. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  41. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  42. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  43. package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
  44. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-input.cjs.entry.js +7 -6
  46. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  47. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  48. package/dist/cjs/ion-loading.cjs.entry.js +8 -8
  49. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  50. package/dist/cjs/ion-modal.cjs.entry.js +9 -9
  51. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  52. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  53. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  54. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  55. package/dist/cjs/ion-popover.cjs.entry.js +8 -8
  56. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  57. package/dist/cjs/ion-radio_2.cjs.entry.js +60 -9
  58. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
  60. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  61. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  62. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  63. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  64. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  65. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  66. package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
  67. package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
  68. package/dist/cjs/ion-select_3.cjs.entry.js +13 -12
  69. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  72. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  73. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  74. package/dist/cjs/ion-textarea.cjs.entry.js +7 -6
  75. package/dist/cjs/ion-toast.cjs.entry.js +8 -8
  76. package/dist/cjs/ion-toggle.cjs.entry.js +61 -13
  77. package/dist/cjs/{ionic-global-BxKGYF6d.js → ionic-global-HMVqOFGO.js} +1 -1
  78. package/dist/cjs/ionic.cjs.js +5 -5
  79. package/dist/cjs/{ios.transition-C72U2BUB.js → ios.transition-BOt_uW73.js} +4 -4
  80. package/dist/cjs/loader.cjs.js +4 -4
  81. package/dist/cjs/{md.transition-BBB6PEeK.js → md.transition-Dt968VXB.js} +4 -4
  82. package/dist/cjs/{validity-DkTK5q5l.js → notch-controller-Bzqhjm4f.js} +1 -15
  83. package/dist/cjs/{overlays-C3__zPvW.js → overlays-DxIZwUXI.js} +5 -5
  84. package/dist/cjs/{status-tap-f2TiTSXm.js → status-tap-g0sWWkXk.js} +3 -3
  85. package/dist/cjs/{swipe-back-BpBykMef.js → swipe-back-BIayeNOD.js} +2 -2
  86. package/dist/cjs/validity-BpS37YFM.js +19 -0
  87. package/dist/collection/collection-manifest.json +2 -2
  88. package/dist/collection/components/checkbox/checkbox.js +67 -9
  89. package/dist/collection/components/radio-group/radio-group.js +64 -7
  90. package/dist/collection/components/select/select.js +5 -5
  91. package/dist/collection/components/toggle/toggle.js +62 -12
  92. package/dist/docs.json +3 -3
  93. package/dist/esm/{animation-_TZS1Hjd.js → animation-Dt8bGnA-.js} +1 -1
  94. package/dist/esm/{app-globals-DuiIATAi.js → app-globals-BDSf8fOA.js} +1 -1
  95. package/dist/esm/{button-active-B1HZAIwa.js → button-active-L570Swow.js} +1 -1
  96. package/dist/esm/{config-IKyiwMNW.js → config-mCdtaoPe.js} +1 -1
  97. package/dist/esm/{data-DjEV-rGl.js → data-DCORV9FH.js} +1 -1
  98. package/dist/esm/{framework-delegate-DXowJuYM.js → framework-delegate-BYawdMXj.js} +1 -1
  99. package/dist/esm/{hardware-back-button-D7JE2jw7.js → hardware-back-button-CPLxO-Ev.js} +1 -1
  100. package/dist/esm/{helpers-Cj5Iql8O.js → helpers-DEn3pfjm.js} +1 -1
  101. package/dist/esm/{index-jRE1CKuX.js → index-Bs3kT4bc.js} +2 -2
  102. package/dist/esm/{index-BVGHdIB3.js → index-C8IsBmNU.js} +3 -41
  103. package/dist/esm/{index-DTld9OWL.js → index-CvDIirVx.js} +5 -5
  104. package/dist/esm/{index-DhQ7IQpS.js → index-ceb5RaMT.js} +2 -2
  105. package/dist/esm/{index-6QoOUB2s.js → index-r2D9DEro.js} +4 -4
  106. package/dist/esm/index.js +12 -12
  107. package/dist/esm/{input-shims-Z7izSUeO.js → input-shims-DyOpfTg6.js} +3 -3
  108. package/dist/esm/{input.utils-8PktJRaO.js → input.utils-DrvTa8gz.js} +2 -2
  109. package/dist/esm/ion-accordion_2.entry.js +3 -3
  110. package/dist/esm/ion-action-sheet.entry.js +8 -8
  111. package/dist/esm/ion-alert.entry.js +9 -9
  112. package/dist/esm/ion-app_8.entry.js +12 -12
  113. package/dist/esm/ion-avatar_3.entry.js +2 -2
  114. package/dist/esm/ion-back-button.entry.js +3 -3
  115. package/dist/esm/ion-backdrop.entry.js +2 -2
  116. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  117. package/dist/esm/ion-button_2.entry.js +3 -3
  118. package/dist/esm/ion-card_5.entry.js +3 -3
  119. package/dist/esm/ion-checkbox.entry.js +63 -11
  120. package/dist/esm/ion-chip.entry.js +2 -2
  121. package/dist/esm/ion-col_3.entry.js +2 -2
  122. package/dist/esm/ion-datetime-button.entry.js +4 -4
  123. package/dist/esm/ion-datetime_3.entry.js +8 -8
  124. package/dist/esm/ion-fab_3.entry.js +3 -3
  125. package/dist/esm/ion-img.entry.js +3 -3
  126. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  127. package/dist/esm/ion-input-otp.entry.js +3 -3
  128. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  129. package/dist/esm/ion-input.entry.js +6 -5
  130. package/dist/esm/ion-item-option_3.entry.js +4 -4
  131. package/dist/esm/ion-item_8.entry.js +3 -3
  132. package/dist/esm/ion-loading.entry.js +8 -8
  133. package/dist/esm/ion-menu_3.entry.js +8 -8
  134. package/dist/esm/ion-modal.entry.js +9 -9
  135. package/dist/esm/ion-nav_2.entry.js +6 -6
  136. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  137. package/dist/esm/ion-picker-column.entry.js +3 -3
  138. package/dist/esm/ion-picker.entry.js +2 -2
  139. package/dist/esm/ion-popover.entry.js +8 -8
  140. package/dist/esm/ion-progress-bar.entry.js +3 -3
  141. package/dist/esm/ion-radio_2.entry.js +60 -9
  142. package/dist/esm/ion-range.entry.js +4 -4
  143. package/dist/esm/ion-refresher_2.entry.js +6 -6
  144. package/dist/esm/ion-reorder_2.entry.js +4 -4
  145. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  146. package/dist/esm/ion-route_4.entry.js +3 -3
  147. package/dist/esm/ion-searchbar.entry.js +3 -3
  148. package/dist/esm/ion-segment-content.entry.js +1 -1
  149. package/dist/esm/ion-segment-view.entry.js +1 -1
  150. package/dist/esm/ion-segment_2.entry.js +3 -3
  151. package/dist/esm/ion-select-modal.entry.js +6 -6
  152. package/dist/esm/ion-select_3.entry.js +12 -11
  153. package/dist/esm/ion-spinner.entry.js +2 -2
  154. package/dist/esm/ion-split-pane.entry.js +2 -2
  155. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  156. package/dist/esm/ion-tab_2.entry.js +3 -3
  157. package/dist/esm/ion-text.entry.js +2 -2
  158. package/dist/esm/ion-textarea.entry.js +6 -5
  159. package/dist/esm/ion-toast.entry.js +8 -8
  160. package/dist/esm/ion-toggle.entry.js +61 -13
  161. package/dist/esm/{ionic-global-BVrvc8zu.js → ionic-global-CDrldh-5.js} +1 -1
  162. package/dist/esm/ionic.js +6 -6
  163. package/dist/esm/{ios.transition-BQB6stOT.js → ios.transition-BDzw0_Hm.js} +4 -4
  164. package/dist/esm/loader.js +5 -5
  165. package/dist/esm/{md.transition-D8M5kwpN.js → md.transition-BzDYi3qq.js} +4 -4
  166. package/dist/esm/{validity-DvgV3rpm.js → notch-controller-BwelN_JM.js} +2 -15
  167. package/dist/esm/{overlays-v6rVwLBE.js → overlays-BymNv-BL.js} +5 -5
  168. package/dist/esm/{status-tap-CbONNX4z.js → status-tap-5DQ7Fc4V.js} +3 -3
  169. package/dist/esm/{swipe-back-CRKN2lCz.js → swipe-back-BKw2CAHc.js} +2 -2
  170. package/dist/esm/validity-DJztqcrH.js +17 -0
  171. package/dist/ionic/index.esm.js +1 -1
  172. package/dist/ionic/ionic.esm.js +1 -1
  173. package/dist/ionic/{p-6eb4a13c.entry.js → p-020af078.entry.js} +1 -1
  174. package/dist/ionic/{p-ef6678ac.entry.js → p-074839fc.entry.js} +1 -1
  175. package/dist/ionic/{p-63e1a446.entry.js → p-0b80d700.entry.js} +1 -1
  176. package/dist/ionic/{p-5421f63a.entry.js → p-0dfa5a37.entry.js} +1 -1
  177. package/dist/ionic/{p-8a558c61.entry.js → p-11518b31.entry.js} +1 -1
  178. package/dist/ionic/{p-efe6c074.entry.js → p-15193d01.entry.js} +1 -1
  179. package/dist/ionic/{p-284aa04d.entry.js → p-1647c46c.entry.js} +1 -1
  180. package/dist/ionic/{p-f9ebf94f.entry.js → p-2a939845.entry.js} +1 -1
  181. package/dist/ionic/{p-b2df2374.entry.js → p-316c0420.entry.js} +1 -1
  182. package/dist/ionic/{p-8fbd9efe.entry.js → p-31f7095f.entry.js} +1 -1
  183. package/dist/ionic/{p-a7443eb9.entry.js → p-370e4237.entry.js} +1 -1
  184. package/dist/ionic/{p-dfb12224.entry.js → p-3a6caca9.entry.js} +1 -1
  185. package/dist/ionic/p-40c261a3.entry.js +4 -0
  186. package/dist/ionic/{p-d91a475c.entry.js → p-43ed1ef5.entry.js} +1 -1
  187. package/dist/ionic/{p-e35a569d.entry.js → p-46d74291.entry.js} +1 -1
  188. package/dist/ionic/{p-c27187f3.entry.js → p-49d06882.entry.js} +1 -1
  189. package/dist/ionic/{p-41d22292.entry.js → p-4c85d268.entry.js} +1 -1
  190. package/dist/ionic/p-4e41ea20.entry.js +4 -0
  191. package/dist/ionic/{p-9c852a4f.entry.js → p-4efea47a.entry.js} +1 -1
  192. package/dist/ionic/{p-1dde6332.entry.js → p-510d86e1.entry.js} +1 -1
  193. package/dist/ionic/{p-fd52b45e.entry.js → p-51a60e0f.entry.js} +1 -1
  194. package/dist/ionic/{p-865010e8.entry.js → p-582824c5.entry.js} +1 -1
  195. package/dist/ionic/{p-d2736c92.entry.js → p-6241ce47.entry.js} +1 -1
  196. package/dist/ionic/{p-367bde12.entry.js → p-639dd543.entry.js} +1 -1
  197. package/dist/ionic/{p-d88abc12.entry.js → p-6444c606.entry.js} +1 -1
  198. package/dist/ionic/{p-d77243f7.entry.js → p-675b1a31.entry.js} +1 -1
  199. package/dist/ionic/{p-b93b18b5.entry.js → p-6d070558.entry.js} +1 -1
  200. package/dist/ionic/{p-b160f098.entry.js → p-7268efa5.entry.js} +1 -1
  201. package/dist/ionic/{p-7e9bb16e.entry.js → p-72c38b88.entry.js} +1 -1
  202. package/dist/ionic/p-7380261c.entry.js +4 -0
  203. package/dist/ionic/{p-82a34d91.entry.js → p-79bd78f9.entry.js} +1 -1
  204. package/dist/ionic/{p-6e853ec9.entry.js → p-7da39a4d.entry.js} +1 -1
  205. package/dist/ionic/{p-ef395f1a.entry.js → p-83be404e.entry.js} +1 -1
  206. package/dist/ionic/{p-8b38cf63.entry.js → p-86f53961.entry.js} +1 -1
  207. package/dist/ionic/{p-9fc36a95.entry.js → p-94de5cfa.entry.js} +1 -1
  208. package/dist/ionic/{p-73f59b82.entry.js → p-9575b654.entry.js} +1 -1
  209. package/dist/ionic/{p-5825fc6e.entry.js → p-98fc09eb.entry.js} +1 -1
  210. package/dist/ionic/{p-vq6cJ1-o.js → p-B0q1YL7N.js} +1 -1
  211. package/dist/ionic/{p-Cx-H2fLj.js → p-BFvmZNyx.js} +1 -1
  212. package/dist/ionic/p-BKc55Xev.js +4 -0
  213. package/dist/ionic/p-BOVrCkpJ.js +4 -0
  214. package/dist/ionic/{p-DQOaucNd.js → p-BYEqWnSg.js} +1 -1
  215. package/dist/ionic/p-Bmgaetn_.js +4 -0
  216. package/dist/ionic/{p-ATCRWepI.js → p-C7hRNDhM.js} +1 -1
  217. package/dist/ionic/p-C8IsBmNU.js +5 -0
  218. package/dist/ionic/{p-CXgzLQi6.js → p-CJxh_yLS.js} +1 -1
  219. package/dist/ionic/{p-Dbxeiy79.js → p-CTfR9YZG.js} +1 -1
  220. package/dist/ionic/{p-0FumIF4F.js → p-CwgG81ZD.js} +1 -1
  221. package/dist/ionic/{p-Byj9wS2m.js → p-D-eFFUkA.js} +1 -1
  222. package/dist/ionic/{p-fOeiRSuK.js → p-D0dMcSkw.js} +1 -1
  223. package/dist/ionic/{p-DHZ1O_Fh.js → p-D87hU-Ly.js} +1 -1
  224. package/dist/ionic/p-DCv9sLH2.js +4 -0
  225. package/dist/ionic/p-DDb5r57F.js +4 -0
  226. package/dist/ionic/p-DJztqcrH.js +4 -0
  227. package/dist/ionic/{p-FpOGHUu_.js → p-DNcfiJwE.js} +1 -1
  228. package/dist/ionic/p-DUt5fQmA.js +4 -0
  229. package/dist/ionic/{p-Dfqg5sCT.js → p-DZRJwG4S.js} +1 -1
  230. package/dist/ionic/{p-CK6yPWoW.js → p-DbQ5QkTP.js} +1 -1
  231. package/dist/ionic/{p-DXIJtcZ4.js → p-Dc45iWE4.js} +1 -1
  232. package/dist/ionic/{p-Bd8NARl2.js → p-QHYY4sjU.js} +1 -1
  233. package/dist/ionic/{p-0cad6731.entry.js → p-a127bee2.entry.js} +1 -1
  234. package/dist/ionic/{p-cc99017f.entry.js → p-a80f1b04.entry.js} +1 -1
  235. package/dist/ionic/{p-714a21b6.entry.js → p-ac4eb91d.entry.js} +1 -1
  236. package/dist/ionic/{p-ce6a8874.entry.js → p-b0a7585c.entry.js} +1 -1
  237. package/dist/ionic/{p-0d15cc40.entry.js → p-b57c6d3e.entry.js} +1 -1
  238. package/dist/ionic/p-c19f63d0.entry.js +4 -0
  239. package/dist/ionic/{p-2b85c833.entry.js → p-cc45bcbc.entry.js} +1 -1
  240. package/dist/ionic/{p-917776ab.entry.js → p-d0a2a1ab.entry.js} +1 -1
  241. package/dist/ionic/{p-8ecd2576.entry.js → p-d126e8d3.entry.js} +1 -1
  242. package/dist/ionic/p-d1f54e28.entry.js +4 -0
  243. package/dist/ionic/p-d3014190.entry.js +4 -0
  244. package/dist/ionic/{p-1bbee68b.entry.js → p-da7d04cc.entry.js} +1 -1
  245. package/dist/ionic/{p-eb019f08.entry.js → p-dbbe606a.entry.js} +1 -1
  246. package/dist/ionic/{p-27098889.entry.js → p-e16b69e1.entry.js} +1 -1
  247. package/dist/ionic/{p-1fec7f80.entry.js → p-f8f22cc0.entry.js} +1 -1
  248. package/dist/types/components/checkbox/checkbox.d.ts +9 -1
  249. package/dist/types/components/header/header.utils.d.ts +1 -2
  250. package/dist/types/components/radio-group/radio-group.d.ts +9 -1
  251. package/dist/types/components/select/select.d.ts +2 -2
  252. package/dist/types/components/toggle/toggle.d.ts +7 -1
  253. package/dist/types/stencil-public-runtime.d.ts +9 -19
  254. package/dist/types/utils/forms/validity.d.ts +1 -1
  255. package/dist/types/utils/gesture/listener.d.ts +1 -2
  256. package/hydrate/index.js +358 -345
  257. package/hydrate/index.mjs +358 -345
  258. package/package.json +3 -3
  259. package/dist/ionic/p-39d3888f.entry.js +0 -4
  260. package/dist/ionic/p-5ebd385a.entry.js +0 -4
  261. package/dist/ionic/p-6c6c38ac.entry.js +0 -4
  262. package/dist/ionic/p-9d248d04.entry.js +0 -4
  263. package/dist/ionic/p-BKzjBsgr.js +0 -4
  264. package/dist/ionic/p-BPCLHFIJ.js +0 -4
  265. package/dist/ionic/p-BVGHdIB3.js +0 -5
  266. package/dist/ionic/p-C-hkdhDX.js +0 -4
  267. package/dist/ionic/p-CEyzsf_w.js +0 -4
  268. package/dist/ionic/p-Dpv-T50-.js +0 -4
  269. package/dist/ionic/p-DxJKEmSr.js +0 -4
  270. package/dist/ionic/p-f0168275.entry.js +0 -4
  271. package/dist/ionic/p-f2d7c3a6.entry.js +0 -4
@@ -1,7 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { Host, h } from "@stencil/core";
4
+ import { Build, Host, h } from "@stencil/core";
5
+ import { checkInvalidState } from "../../utils/forms/index";
5
6
  import { renderHiddenInput, inheritAriaAttributes } from "../../utils/helpers";
6
7
  import { hapticSelection } from "../../utils/native/haptic";
7
8
  import { isPlatform } from "../../utils/platform";
@@ -32,6 +33,10 @@ export class Toggle {
32
33
  this.inheritedAttributes = {};
33
34
  this.didLoad = false;
34
35
  this.activated = false;
36
+ /**
37
+ * Track validation state for proper aria-live announcements.
38
+ */
39
+ this.isInvalid = false;
35
40
  /**
36
41
  * The name of the control, which is submitted with the form data.
37
42
  */
@@ -145,15 +150,52 @@ export class Toggle {
145
150
  });
146
151
  }
147
152
  async connectedCallback() {
153
+ const { didLoad, el } = this;
148
154
  /**
149
155
  * If we have not yet rendered
150
156
  * ion-toggle, then toggleTrack is not defined.
151
157
  * But if we are moving ion-toggle via appendChild,
152
158
  * then toggleTrack will be defined.
153
159
  */
154
- if (this.didLoad) {
160
+ if (didLoad) {
155
161
  this.setupGesture();
156
162
  }
163
+ // Watch for class changes to update validation state.
164
+ if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
165
+ this.validationObserver = new MutationObserver(() => {
166
+ const newIsInvalid = checkInvalidState(el);
167
+ if (this.isInvalid !== newIsInvalid) {
168
+ this.isInvalid = newIsInvalid;
169
+ /**
170
+ * Screen readers tend to announce changes
171
+ * to `aria-describedby` when the attribute
172
+ * is changed during a blur event for a
173
+ * native form control.
174
+ * However, the announcement can be spotty
175
+ * when using a non-native form control
176
+ * and `forceUpdate()`.
177
+ * This is due to `forceUpdate()` internally
178
+ * rescheduling the DOM update to a lower
179
+ * priority queue regardless if it's called
180
+ * inside a Promise or not, thus causing
181
+ * the screen reader to potentially miss the
182
+ * change.
183
+ * By using a State variable inside a Promise,
184
+ * it guarantees a re-render immediately at
185
+ * a higher priority.
186
+ */
187
+ Promise.resolve().then(() => {
188
+ this.hintTextId = this.getHintTextId();
189
+ });
190
+ }
191
+ });
192
+ this.validationObserver.observe(el, {
193
+ attributes: true,
194
+ attributeFilter: ['class'],
195
+ });
196
+ }
197
+ // Always set initial state
198
+ this.isInvalid = checkInvalidState(el);
157
199
  }
158
200
  componentDidLoad() {
159
201
  this.setupGesture();
@@ -164,9 +206,15 @@ export class Toggle {
164
206
  this.gesture.destroy();
165
207
  this.gesture = undefined;
166
208
  }
209
+ // Clean up validation observer to prevent memory leaks.
210
+ if (this.validationObserver) {
211
+ this.validationObserver.disconnect();
212
+ this.validationObserver = undefined;
213
+ }
167
214
  }
168
215
  componentWillLoad() {
169
216
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
217
+ this.hintTextId = this.getHintTextId();
170
218
  }
171
219
  onStart() {
172
220
  this.activated = true;
@@ -207,9 +255,9 @@ export class Toggle {
207
255
  get hasLabel() {
208
256
  return this.el.textContent !== '';
209
257
  }
210
- getHintTextID() {
211
- const { el, helperText, errorText, helperTextId, errorTextId } = this;
212
- if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
258
+ getHintTextId() {
259
+ const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
260
+ if (isInvalid && errorText) {
213
261
  return errorTextId;
214
262
  }
215
263
  if (helperText) {
@@ -222,7 +270,7 @@ export class Toggle {
222
270
  * This element should only be rendered if hint text is set.
223
271
  */
224
272
  renderHintText() {
225
- const { helperText, errorText, helperTextId, errorTextId } = this;
273
+ const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
226
274
  /**
227
275
  * undefined and empty string values should
228
276
  * be treated as not having helper/error text.
@@ -231,15 +279,15 @@ export class Toggle {
231
279
  if (!hasHintText) {
232
280
  return;
233
281
  }
234
- return (h("div", { class: "toggle-bottom" }, h("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), h("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
282
+ return (h("div", { class: "toggle-bottom" }, h("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text", "aria-live": "polite" }, !isInvalid ? helperText : null), h("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text", role: "alert" }, isInvalid ? errorText : null)));
235
283
  }
236
284
  render() {
237
- const { activated, alignment, checked, color, disabled, el, errorTextId, hasLabel, inheritedAttributes, inputId, inputLabelId, justify, labelPlacement, name, required, } = this;
285
+ const { activated, alignment, checked, color, disabled, el, hasLabel, inheritedAttributes, inputId, inputLabelId, justify, labelPlacement, name, required, } = this;
238
286
  const mode = getIonMode(this);
239
287
  const value = this.getValue();
240
288
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
241
289
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
242
- return (h(Host, { key: '17bbbc8d229868e5c872b2bc5a3faf579780c5e0', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === errorTextId, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
290
+ return (h(Host, { key: 'f569148edd89ee041a4719ffc4733c16b05229bd', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses(color, {
243
291
  [mode]: true,
244
292
  'in-item': hostContext('ion-item', el),
245
293
  'toggle-activated': activated,
@@ -249,10 +297,10 @@ export class Toggle {
249
297
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
250
298
  [`toggle-label-placement-${labelPlacement}`]: true,
251
299
  [`toggle-${rtl}`]: true,
252
- }) }, h("label", { key: '673625b62a2c909e95dccb642c91312967a6cd1c', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '7dc3f357b4708116663970047765da9f8f845bf0', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: '8f1c6a182031e8cbc6727e5f4ac0e00ad4247447', class: {
300
+ }) }, h("label", { key: '3027f2ac4be6de422a14486d847fbee77f615db1', class: "toggle-wrapper", htmlFor: inputId }, h("input", Object.assign({ key: '4b0304c9e879e432b80184b4e5de37d55c11b436', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), h("div", { key: '8ef265ec942e7f01ff31cbb202ed146c6bf94e02', class: {
253
301
  'label-text-wrapper': true,
254
302
  'label-text-wrapper-hidden': !hasLabel,
255
- }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '8322b9d54dc7edeb4e16fefcde9f7ebca8d5c3e1' }), this.renderHintText()), h("div", { key: 'fe6984143db817a7b3020a3f57cf5418fc3dcc0e', class: "native-wrapper" }, this.renderToggleControl()))));
303
+ }, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, h("slot", { key: '7b162b7dd27199cca2a4c995276a18b9f8e44aaf' }), this.renderHintText()), h("div", { key: 'd13c34bd42fca01cc73ddb4ea7e471b33a282a3e', class: "native-wrapper" }, this.renderToggleControl()))));
256
304
  }
257
305
  static get is() { return "ion-toggle"; }
258
306
  static get encapsulation() { return "shadow"; }
@@ -515,7 +563,9 @@ export class Toggle {
515
563
  }
516
564
  static get states() {
517
565
  return {
518
- "activated": {}
566
+ "activated": {},
567
+ "isInvalid": {},
568
+ "hintTextId": {}
519
569
  };
520
570
  }
521
571
  static get events() {
package/dist/docs.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
- "timestamp": "2025-11-10T17:31:05",
2
+ "timestamp": "2025-11-17T19:06:03",
3
3
  "compiler": {
4
4
  "name": "@stencil/core",
5
- "version": "4.38.3-dev.1762539475.838524a",
6
- "typescriptVersion": "5.8.2"
5
+ "version": "4.38.0",
6
+ "typescriptVersion": "5.5.4"
7
7
  },
8
8
  "components": [
9
9
  {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { j as printIonError } from './index-BVGHdIB3.js';
4
+ import { j as printIonError } from './index-C8IsBmNU.js';
5
5
  import { w as win } from './index-ZjP4CjeZ.js';
6
6
 
7
7
  let animationPrefix;
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { i as initialize } from './ionic-global-BVrvc8zu.js';
4
+ import { i as initialize } from './ionic-global-CDrldh-5.js';
5
5
 
6
6
  const globalScripts = initialize;
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { w as writeTask } from './index-BVGHdIB3.js';
4
+ import { w as writeTask } from './index-C8IsBmNU.js';
5
5
  import { h as hapticSelectionEnd, a as hapticSelectionChanged, b as hapticSelectionStart } from './haptic-DzAMWJuk.js';
6
6
  import { createGesture } from './index-CfgBF1SE.js';
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { j as printIonError } from './index-BVGHdIB3.js';
4
+ import { j as printIonError } from './index-C8IsBmNU.js';
5
5
 
6
6
  /**
7
7
  * Does a simple sanitization of all elements
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { f as printIonWarning } from './index-BVGHdIB3.js';
4
+ import { f as printIonWarning } from './index-C8IsBmNU.js';
5
5
 
6
6
  /**
7
7
  * Returns true if the selected day is equal to the reference day
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-Cj5Iql8O.js';
4
+ import { c as componentOnReady } from './helpers-DEn3pfjm.js';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  const attachComponent = async (delegate, container, component, cssClasses, componentProps, inline) => {
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as win } from './index-ZjP4CjeZ.js';
5
- import { e as config, j as printIonError } from './index-BVGHdIB3.js';
5
+ import { e as config, j as printIonError } from './index-C8IsBmNU.js';
6
6
 
7
7
  /**
8
8
  * CloseWatcher is a newer API that lets
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { j as printIonError } from './index-BVGHdIB3.js';
4
+ import { j as printIonError } from './index-C8IsBmNU.js';
5
5
 
6
6
  const transitionEndAsync = (el, expectedDuration = 0) => {
7
7
  return new Promise((resolve) => {
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { c as componentOnReady } from './helpers-Cj5Iql8O.js';
5
- import { t as printRequiredElementError } from './index-BVGHdIB3.js';
4
+ import { c as componentOnReady } from './helpers-DEn3pfjm.js';
5
+ import { t as printRequiredElementError } from './index-C8IsBmNU.js';
6
6
 
7
7
  const ION_CONTENT_TAG_NAME = 'ION-CONTENT';
8
8
  const ION_CONTENT_ELEMENT_SELECTOR = 'ion-content';
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  const NAMESPACE = 'ionic';
5
- const BUILD = /* ionic */ { experimentalSlotFixes: true, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, shadowDom: true, slotRelocation: true, state: true, updatable: true};
5
+ const BUILD = /* ionic */ { experimentalSlotFixes: true, hydratedSelectorName: "hydrated", lazyLoad: true, propChangeCallback: true, shadowDom: true, slotRelocation: true, updatable: true};
6
6
 
7
7
  // TODO(FW-2832): types
8
8
  class Config {
@@ -122,7 +122,7 @@ const printRequiredElementError = (el, ...targetSelectors) => {
122
122
  };
123
123
 
124
124
  /*
125
- Stencil Client Platform v4.38.3-dev.1762539475.838524a | MIT Licensed | https://stenciljs.com
125
+ Stencil Client Platform v4.38.0 | MIT Licensed | https://stenciljs.com
126
126
  */
127
127
  var __defProp = Object.defineProperty;
128
128
  var __export = (target, all) => {
@@ -159,38 +159,6 @@ var NonPrimitiveType = /* @__PURE__ */ ((NonPrimitiveType2) => {
159
159
  var TYPE_CONSTANT = "type";
160
160
  var VALUE_CONSTANT = "value";
161
161
  var SERIALIZED_PREFIX = "serialized:";
162
- var reWireGetterSetter = (instance, hostRef) => {
163
- var _a;
164
- const cmpMeta = hostRef.$cmpMeta$;
165
- const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
166
- members.map(([memberName, [memberFlags]]) => {
167
- if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
168
- const ogValue = instance[memberName];
169
- const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);
170
- if (ogDescriptor) {
171
- Object.defineProperty(instance, memberName, {
172
- get() {
173
- return ogDescriptor.get.call(this);
174
- },
175
- set(newValue) {
176
- ogDescriptor.set.call(this, newValue);
177
- },
178
- configurable: true,
179
- enumerable: true
180
- });
181
- }
182
- instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;
183
- }
184
- });
185
- };
186
- function getPropertyDescriptor(obj, memberName) {
187
- while (obj) {
188
- const desc = Object.getOwnPropertyDescriptor(obj, memberName);
189
- if (desc == null ? void 0 : desc.get) return desc;
190
- obj = Object.getPrototypeOf(obj);
191
- }
192
- return void 0;
193
- }
194
162
 
195
163
  // src/client/client-host-ref.ts
196
164
  var getHostRef = (ref) => {
@@ -203,9 +171,6 @@ var registerInstance = (lazyInstance, hostRef) => {
203
171
  if (!hostRef) return;
204
172
  lazyInstance.__stencil__getHostRef = () => hostRef;
205
173
  hostRef.$lazyInstance$ = lazyInstance;
206
- if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.state)) {
207
- reWireGetterSetter(lazyInstance, hostRef);
208
- }
209
174
  };
210
175
  var registerHost = (hostElement, cmpMeta) => {
211
176
  const hostRef = {
@@ -2877,11 +2842,8 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
2877
2842
  }
2878
2843
  return;
2879
2844
  }
2880
- const propFlags = members.find(([m]) => m === propName);
2881
- if (propFlags && propFlags[1][0] & 4 /* Boolean */) {
2882
- newValue = newValue === null || newValue === "false" ? false : true;
2883
- }
2884
2845
  const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);
2846
+ newValue = newValue === null && typeof this[propName] === "boolean" ? false : newValue;
2885
2847
  if (newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {
2886
2848
  this[propName] = newValue;
2887
2849
  }
@@ -2,11 +2,11 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index-ZjP4CjeZ.js';
5
- import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-D7JE2jw7.js';
6
- import { f as printIonWarning } from './index-BVGHdIB3.js';
7
- import { c as componentOnReady } from './helpers-Cj5Iql8O.js';
8
- import { b as getIonMode } from './ionic-global-BVrvc8zu.js';
9
- import { c as createAnimation } from './animation-_TZS1Hjd.js';
5
+ import { MENU_BACK_BUTTON_PRIORITY } from './hardware-back-button-CPLxO-Ev.js';
6
+ import { f as printIonWarning } from './index-C8IsBmNU.js';
7
+ import { c as componentOnReady } from './helpers-DEn3pfjm.js';
8
+ import { b as getIonMode } from './ionic-global-CDrldh-5.js';
9
+ import { c as createAnimation } from './animation-Dt8bGnA-.js';
10
10
 
11
11
  /**
12
12
  * baseAnimation
@@ -2,8 +2,8 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index-ZjP4CjeZ.js';
5
- import { q as pointerCoord } from './helpers-Cj5Iql8O.js';
6
- import './index-BVGHdIB3.js';
5
+ import { q as pointerCoord } from './helpers-DEn3pfjm.js';
6
+ import './index-C8IsBmNU.js';
7
7
 
8
8
  const startTapClick = (config) => {
9
9
  if (doc === undefined) {
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { e as config, f as printIonWarning, w as writeTask, B as Build } from './index-BVGHdIB3.js';
5
- import { r as raf } from './helpers-Cj5Iql8O.js';
4
+ import { e as config, f as printIonWarning, w as writeTask, B as Build } from './index-C8IsBmNU.js';
5
+ import { r as raf } from './helpers-DEn3pfjm.js';
6
6
 
7
7
  const LIFECYCLE_WILL_ENTER = 'ionViewWillEnter';
8
8
  const LIFECYCLE_DID_ENTER = 'ionViewDidEnter';
@@ -118,8 +118,8 @@ const createFocusController = () => {
118
118
  };
119
119
  const LAST_FOCUS = 'ion-last-focus';
120
120
 
121
- const iosTransitionAnimation = () => import('./ios.transition-BQB6stOT.js');
122
- const mdTransitionAnimation = () => import('./md.transition-D8M5kwpN.js');
121
+ const iosTransitionAnimation = () => import('./ios.transition-BDzw0_Hm.js');
122
+ const mdTransitionAnimation = () => import('./md.transition-BzDYi3qq.js');
123
123
  const focusController = createFocusController();
124
124
  // TODO(FW-2832): types
125
125
  /**
package/dist/esm/index.js CHANGED
@@ -1,23 +1,23 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- export { c as createAnimation } from './animation-_TZS1Hjd.js';
5
- export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-6QoOUB2s.js';
6
- export { iosTransitionAnimation } from './ios.transition-BQB6stOT.js';
7
- export { mdTransitionAnimation } from './md.transition-D8M5kwpN.js';
4
+ export { c as createAnimation } from './animation-Dt8bGnA-.js';
5
+ export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD, g as getIonPageElement } from './index-r2D9DEro.js';
6
+ export { iosTransitionAnimation } from './ios.transition-BDzw0_Hm.js';
7
+ export { mdTransitionAnimation } from './md.transition-BzDYi3qq.js';
8
8
  export { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
9
9
  export { createGesture } from './index-CfgBF1SE.js';
10
- export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-BVrvc8zu.js';
11
- export { c as componentOnReady } from './helpers-Cj5Iql8O.js';
12
- export { L as LogLevel } from './index-BVGHdIB3.js';
13
- export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-IKyiwMNW.js';
10
+ export { g as getPlatforms, i as initialize, a as isPlatform } from './ionic-global-CDrldh-5.js';
11
+ export { c as componentOnReady } from './helpers-DEn3pfjm.js';
12
+ export { L as LogLevel } from './index-C8IsBmNU.js';
13
+ export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-mCdtaoPe.js';
14
14
  export { o as openURL } from './theme-DiVJyqlX.js';
15
- export { m as menuController } from './index-DTld9OWL.js';
16
- export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-v6rVwLBE.js';
15
+ export { m as menuController } from './index-CvDIirVx.js';
16
+ export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-BymNv-BL.js';
17
17
  import './index-ZjP4CjeZ.js';
18
18
  import './gesture-controller-BTEOs1at.js';
19
- import './hardware-back-button-D7JE2jw7.js';
20
- import './framework-delegate-DXowJuYM.js';
19
+ import './hardware-back-button-CPLxO-Ev.js';
20
+ import './framework-delegate-BYawdMXj.js';
21
21
 
22
22
  const IonicSlides = (opts) => {
23
23
  const { swiper, extendParams } = opts;
@@ -2,10 +2,10 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as win, d as doc } from './index-ZjP4CjeZ.js';
5
- import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index-jRE1CKuX.js';
6
- import { f as addEventListener, m as removeEventListener, r as raf, c as componentOnReady } from './helpers-Cj5Iql8O.js';
5
+ import { g as getScrollElement, c as scrollByPoint, f as findClosestIonContent } from './index-Bs3kT4bc.js';
6
+ import { f as addEventListener, m as removeEventListener, r as raf, c as componentOnReady } from './helpers-DEn3pfjm.js';
7
7
  import { a as KeyboardResize, K as Keyboard } from './keyboard-CUw4ekVy.js';
8
- import './index-BVGHdIB3.js';
8
+ import './index-C8IsBmNU.js';
9
9
  import './capacitor-CFERIeaU.js';
10
10
 
11
11
  const cloneMap = new WeakMap();
@@ -2,8 +2,8 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { w as win } from './index-ZjP4CjeZ.js';
5
- import { r as raf } from './helpers-Cj5Iql8O.js';
6
- import { j as printIonError } from './index-BVGHdIB3.js';
5
+ import { r as raf } from './helpers-DEn3pfjm.js';
6
+ import { j as printIonError } from './index-C8IsBmNU.js';
7
7
 
8
8
  /**
9
9
  * Used to update a scoped component that uses emulated slots. This fires when
@@ -1,10 +1,10 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, e as config, h, d as Host, g as getElement, c as createEvent, f as printIonWarning } from './index-BVGHdIB3.js';
5
- import { g as getElementRoot, r as raf, f as addEventListener, m as removeEventListener, t as transitionEndAsync } from './helpers-Cj5Iql8O.js';
4
+ import { r as registerInstance, e as config, h, d as Host, g as getElement, c as createEvent, f as printIonWarning } from './index-C8IsBmNU.js';
5
+ import { g as getElementRoot, r as raf, f as addEventListener, m as removeEventListener, t as transitionEndAsync } from './helpers-DEn3pfjm.js';
6
6
  import { l as chevronDown } from './index-DV3sJJW8.js';
7
- import { b as getIonMode } from './ionic-global-BVrvc8zu.js';
7
+ import { b as getIonMode } from './ionic-global-CDrldh-5.js';
8
8
 
9
9
  const accordionIosCss = ":host{display:block;position:relative;width:100%;background-color:var(--ion-background-color, #ffffff);overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}";
10
10
 
@@ -1,21 +1,21 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, a as readTask, h, d as Host, g as getElement } from './index-BVGHdIB3.js';
5
- import { c as createButtonActiveGesture } from './button-active-B1HZAIwa.js';
6
- import { r as raf } from './helpers-Cj5Iql8O.js';
4
+ import { r as registerInstance, c as createEvent, a as readTask, h, d as Host, g as getElement } from './index-C8IsBmNU.js';
5
+ import { c as createButtonActiveGesture } from './button-active-L570Swow.js';
6
+ import { r as raf } from './helpers-DEn3pfjm.js';
7
7
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
8
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-v6rVwLBE.js';
8
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-BymNv-BL.js';
9
9
  import { g as getClassMap } from './theme-DiVJyqlX.js';
10
- import { b as getIonMode } from './ionic-global-BVrvc8zu.js';
11
- import { c as createAnimation } from './animation-_TZS1Hjd.js';
10
+ import { b as getIonMode } from './ionic-global-CDrldh-5.js';
11
+ import { c as createAnimation } from './animation-Dt8bGnA-.js';
12
12
  import './haptic-DzAMWJuk.js';
13
13
  import './capacitor-CFERIeaU.js';
14
14
  import './index-ZjP4CjeZ.js';
15
15
  import './index-CfgBF1SE.js';
16
16
  import './gesture-controller-BTEOs1at.js';
17
- import './hardware-back-button-D7JE2jw7.js';
18
- import './framework-delegate-DXowJuYM.js';
17
+ import './hardware-back-button-CPLxO-Ev.js';
18
+ import './framework-delegate-BYawdMXj.js';
19
19
 
20
20
  /**
21
21
  * iOS Action Sheet Enter Animation
@@ -1,22 +1,22 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, c as createEvent, e as config, f as printIonWarning, i as forceUpdate, h, d as Host, g as getElement } from './index-BVGHdIB3.js';
5
- import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-IKyiwMNW.js';
6
- import { c as createButtonActiveGesture } from './button-active-B1HZAIwa.js';
7
- import { r as raf } from './helpers-Cj5Iql8O.js';
4
+ import { r as registerInstance, c as createEvent, e as config, f as printIonWarning, i as forceUpdate, h, d as Host, g as getElement } from './index-C8IsBmNU.js';
5
+ import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-mCdtaoPe.js';
6
+ import { c as createButtonActiveGesture } from './button-active-L570Swow.js';
7
+ import { r as raf } from './helpers-DEn3pfjm.js';
8
8
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
9
- import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-v6rVwLBE.js';
9
+ import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-BymNv-BL.js';
10
10
  import { g as getClassMap } from './theme-DiVJyqlX.js';
11
- import { b as getIonMode } from './ionic-global-BVrvc8zu.js';
12
- import { c as createAnimation } from './animation-_TZS1Hjd.js';
11
+ import { b as getIonMode } from './ionic-global-CDrldh-5.js';
12
+ import { c as createAnimation } from './animation-Dt8bGnA-.js';
13
13
  import './haptic-DzAMWJuk.js';
14
14
  import './capacitor-CFERIeaU.js';
15
15
  import './index-ZjP4CjeZ.js';
16
16
  import './index-CfgBF1SE.js';
17
17
  import './gesture-controller-BTEOs1at.js';
18
- import './hardware-back-button-D7JE2jw7.js';
19
- import './framework-delegate-DXowJuYM.js';
18
+ import './hardware-back-button-CPLxO-Ev.js';
19
+ import './framework-delegate-BYawdMXj.js';
20
20
 
21
21
  /**
22
22
  * iOS Alert Enter Animation
@@ -1,18 +1,18 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, e as config, d as Host, g as getElement, f as printIonWarning, c as createEvent, a as readTask, i as forceUpdate, w as writeTask, j as printIonError } from './index-BVGHdIB3.js';
5
- import { shouldUseCloseWatcher } from './hardware-back-button-D7JE2jw7.js';
6
- import { b as getIonMode, a as isPlatform } from './ionic-global-BVrvc8zu.js';
7
- import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, s as shallowEqualStringMap } from './helpers-Cj5Iql8O.js';
4
+ import { r as registerInstance, h, e as config, d as Host, g as getElement, f as printIonWarning, c as createEvent, a as readTask, i as forceUpdate, w as writeTask, j as printIonError } from './index-C8IsBmNU.js';
5
+ import { shouldUseCloseWatcher } from './hardware-back-button-CPLxO-Ev.js';
6
+ import { b as getIonMode, a as isPlatform } from './ionic-global-CDrldh-5.js';
7
+ import { i as inheritAriaAttributes, h as hasLazyBuild, c as componentOnReady, e as clamp, s as shallowEqualStringMap } from './helpers-DEn3pfjm.js';
8
8
  import { i as isRTL } from './dir-C53feagD.js';
9
9
  import { c as createColorClasses, h as hostContext } from './theme-DiVJyqlX.js';
10
- import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-jRE1CKuX.js';
10
+ import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-Bs3kT4bc.js';
11
11
  import { c as createKeyboardController } from './keyboard-controller-BaaVITYt.js';
12
12
  import { g as getTimeGivenProgression } from './cubic-bezier-hHmYLOfE.js';
13
- import { a as attachComponent, d as detachComponent } from './framework-delegate-DXowJuYM.js';
13
+ import { a as attachComponent, d as detachComponent } from './framework-delegate-BYawdMXj.js';
14
14
  import { c as createLockController } from './lock-controller-B-hirT0v.js';
15
- import { t as transition } from './index-6QoOUB2s.js';
15
+ import { t as transition } from './index-r2D9DEro.js';
16
16
  import './index-ZjP4CjeZ.js';
17
17
  import './keyboard-CUw4ekVy.js';
18
18
  import './capacitor-CFERIeaU.js';
@@ -28,10 +28,10 @@ const App = class {
28
28
  rIC(async () => {
29
29
  const isHybrid = isPlatform(window, 'hybrid');
30
30
  if (!config.getBoolean('_testing')) {
31
- import('./index-DhQ7IQpS.js').then((module) => module.startTapClick(config));
31
+ import('./index-ceb5RaMT.js').then((module) => module.startTapClick(config));
32
32
  }
33
33
  if (config.getBoolean('statusTap', isHybrid)) {
34
- import('./status-tap-CbONNX4z.js').then((module) => module.startStatusTap());
34
+ import('./status-tap-5DQ7Fc4V.js').then((module) => module.startStatusTap());
35
35
  }
36
36
  if (config.getBoolean('inputShims', needInputShims())) {
37
37
  /**
@@ -39,9 +39,9 @@ const App = class {
39
39
  * platforms proceed into this block.
40
40
  */
41
41
  const platform = isPlatform(window, 'ios') ? 'ios' : 'android';
42
- import('./input-shims-Z7izSUeO.js').then((module) => module.startInputShims(config, platform));
42
+ import('./input-shims-DyOpfTg6.js').then((module) => module.startInputShims(config, platform));
43
43
  }
44
- const hardwareBackButtonModule = await import('./hardware-back-button-D7JE2jw7.js');
44
+ const hardwareBackButtonModule = await import('./hardware-back-button-CPLxO-Ev.js');
45
45
  const supportsHardwareBackButtonEvents = isHybrid || shouldUseCloseWatcher();
46
46
  if (config.getBoolean('hardwareBackButton', supportsHardwareBackButtonEvents)) {
47
47
  hardwareBackButtonModule.startHardwareBackButton();
@@ -1129,7 +1129,7 @@ const RouterOutlet = class {
1129
1129
  this.swipeHandler.onStart();
1130
1130
  }
1131
1131
  };
1132
- this.gesture = (await import('./swipe-back-CRKN2lCz.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1132
+ this.gesture = (await import('./swipe-back-BKw2CAHc.js')).createSwipeBackGesture(this.el, () => !this.gestureOrAnimationInProgress && !!this.swipeHandler && this.swipeHandler.canStart(), () => onStart(), (step) => { var _a; return (_a = this.ani) === null || _a === void 0 ? void 0 : _a.progressStep(step); }, (shouldComplete, step, dur) => {
1133
1133
  if (this.ani) {
1134
1134
  this.ani.onFinish(() => {
1135
1135
  this.gestureOrAnimationInProgress = false;
@@ -1,8 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { r as registerInstance, h, d as Host } from './index-BVGHdIB3.js';
5
- import { b as getIonMode } from './ionic-global-BVrvc8zu.js';
4
+ import { r as registerInstance, h, d as Host } from './index-C8IsBmNU.js';
5
+ import { b as getIonMode } from './ionic-global-CDrldh-5.js';
6
6
  import { c as createColorClasses } from './theme-DiVJyqlX.js';
7
7
 
8
8
  const avatarIosCss = ":host{border-radius:var(--border-radius);display:block}::slotted(ion-img),::slotted(img){border-radius:var(--border-radius);width:100%;height:100%;-o-object-fit:cover;object-fit:cover;overflow:hidden}:host{--border-radius:50%;width:48px;height:48px}";