@ionic/core 8.4.4-dev.11741193800.14916f6f → 8.4.4-dev.11741198674.16b83b14

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 (475) hide show
  1. package/components/checkbox.js +40 -6
  2. package/components/helpers.js +29 -11
  3. package/components/index6.js +11 -3
  4. package/components/index9.js +1 -1
  5. package/components/ion-segment-button.js +9 -40
  6. package/components/ion-select.js +16 -41
  7. package/components/ion-toggle.js +6 -4
  8. package/components/ionic-global.js +12 -1
  9. package/components/modal.js +259 -35
  10. package/components/toolbar.js +2 -2
  11. package/css/core.css.map +1 -1
  12. package/css/ionic.bundle.css.map +1 -1
  13. package/dist/cjs/{app-globals-247c7281.js → app-globals-21afee77.js} +1 -1
  14. package/dist/cjs/{button-active-43e2b419.js → button-active-3f2f60b4.js} +1 -1
  15. package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
  16. package/dist/cjs/{framework-delegate-2a11ff27.js → framework-delegate-55f5683a.js} +1 -1
  17. package/dist/cjs/{hardware-back-button-25324112.js → hardware-back-button-9e8a2c4f.js} +2 -2
  18. package/dist/cjs/{helpers-06f744d7.js → helpers-afaa9001.js} +28 -11
  19. package/dist/cjs/{index-5235cd7a.js → index-0d762bba.js} +2 -2
  20. package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
  21. package/dist/cjs/{index-17772b90.js → index-3652c918.js} +4 -4
  22. package/dist/cjs/{index-2e236a04.js → index-73f75efb.js} +4 -0
  23. package/dist/cjs/{index-d36529a6.js → index-9509ecad.js} +1 -1
  24. package/dist/cjs/{index-a9253094.js → index-e975c92b.js} +6 -6
  25. package/dist/cjs/index.cjs.js +11 -11
  26. package/dist/cjs/{input-shims-a1181384.js → input-shims-cd05268a.js} +5 -3
  27. package/dist/cjs/{input.utils-693b953e.js → input.utils-ffb2f81b.js} +2 -2
  28. package/dist/cjs/ion-accordion_2.cjs.entry.js +4 -4
  29. package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
  30. package/dist/cjs/ion-alert.cjs.entry.js +8 -8
  31. package/dist/cjs/ion-app_8.cjs.entry.js +15 -15
  32. package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
  33. package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
  34. package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
  35. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
  36. package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
  37. package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
  38. package/dist/cjs/ion-checkbox.cjs.entry.js +40 -9
  39. package/dist/cjs/ion-chip.cjs.entry.js +2 -2
  40. package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
  41. package/dist/cjs/ion-datetime-button.cjs.entry.js +5 -5
  42. package/dist/cjs/ion-datetime_3.cjs.entry.js +8 -8
  43. package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
  44. package/dist/cjs/ion-img.cjs.entry.js +3 -3
  45. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
  46. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
  47. package/dist/cjs/ion-input.cjs.entry.js +6 -6
  48. package/dist/cjs/ion-item-option_3.cjs.entry.js +5 -5
  49. package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
  50. package/dist/cjs/ion-loading.cjs.entry.js +7 -7
  51. package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
  52. package/dist/cjs/ion-modal.cjs.entry.js +267 -44
  53. package/dist/cjs/ion-nav_2.cjs.entry.js +7 -7
  54. package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
  55. package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
  56. package/dist/cjs/ion-picker.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-popover.cjs.entry.js +8 -8
  58. package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
  59. package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
  60. package/dist/cjs/ion-range.cjs.entry.js +5 -5
  61. package/dist/cjs/ion-refresher_2.cjs.entry.js +5 -5
  62. package/dist/cjs/ion-reorder_2.cjs.entry.js +5 -5
  63. package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
  65. package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
  66. package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
  67. package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
  68. package/dist/cjs/ion-segment_2.cjs.entry.js +11 -42
  69. package/dist/cjs/ion-select-modal.cjs.entry.js +7 -7
  70. package/dist/cjs/ion-select_3.cjs.entry.js +22 -48
  71. package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
  72. package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
  73. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
  74. package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
  75. package/dist/cjs/ion-text.cjs.entry.js +2 -2
  76. package/dist/cjs/ion-textarea.cjs.entry.js +6 -6
  77. package/dist/cjs/ion-toast.cjs.entry.js +7 -7
  78. package/dist/cjs/ion-toggle.cjs.entry.js +8 -7
  79. package/dist/cjs/{ionic-global-20cee824.js → ionic-global-d9a8bb5b.js} +12 -1
  80. package/dist/cjs/ionic.cjs.js +4 -4
  81. package/dist/cjs/{ios.transition-c3e3b768.js → ios.transition-0e664e88.js} +5 -5
  82. package/dist/cjs/loader.cjs.js +4 -4
  83. package/dist/cjs/{md.transition-91d9b2db.js → md.transition-2e8aef2c.js} +5 -5
  84. package/dist/cjs/{notch-controller-57bae241.js → notch-controller-d69150f5.js} +1 -1
  85. package/dist/cjs/{overlays-93c1a579.js → overlays-65fdaff6.js} +5 -5
  86. package/dist/cjs/{status-tap-ede4c3df.js → status-tap-d74f1429.js} +5 -4
  87. package/dist/cjs/{swipe-back-2aee5ac9.js → swipe-back-0303a5e4.js} +1 -1
  88. package/dist/collection/components/checkbox/checkbox.ios.css +52 -15
  89. package/dist/collection/components/checkbox/checkbox.js +90 -4
  90. package/dist/collection/components/checkbox/checkbox.md.css +52 -15
  91. package/dist/collection/components/modal/animations/ios.enter.js +50 -4
  92. package/dist/collection/components/modal/animations/ios.leave.js +24 -2
  93. package/dist/collection/components/modal/animations/md.enter.js +52 -5
  94. package/dist/collection/components/modal/animations/md.leave.js +26 -3
  95. package/dist/collection/components/modal/animations/sheet.js +11 -2
  96. package/dist/collection/components/modal/gestures/sheet.js +79 -10
  97. package/dist/collection/components/modal/modal.ios.css +16 -0
  98. package/dist/collection/components/modal/modal.js +32 -7
  99. package/dist/collection/components/modal/modal.md.css +6 -0
  100. package/dist/collection/components/segment-button/segment-button.js +9 -40
  101. package/dist/collection/components/select/select.js +32 -40
  102. package/dist/collection/components/toggle/toggle.js +23 -4
  103. package/dist/collection/components/toolbar/toolbar.js +6 -2
  104. package/dist/collection/global/ionic-global.js +12 -1
  105. package/dist/collection/utils/helpers.js +28 -10
  106. package/dist/collection/utils/logging/index.js +10 -3
  107. package/dist/docs.json +187 -2
  108. package/dist/esm/{app-globals-0aadb3a9.js → app-globals-5dbb61a5.js} +1 -1
  109. package/dist/esm/{button-active-90f1dbc4.js → button-active-f6503382.js} +1 -1
  110. package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  111. package/dist/esm/{framework-delegate-3e745cc0.js → framework-delegate-63d1a679.js} +1 -1
  112. package/dist/esm/{hardware-back-button-d58e8ab6.js → hardware-back-button-06ef3c3e.js} +2 -2
  113. package/dist/esm/{helpers-16b36a2b.js → helpers-da915de8.js} +29 -11
  114. package/dist/esm/{index-527b9e34.js → index-28849c61.js} +4 -1
  115. package/dist/esm/{index-ae5421cc.js → index-2f7fde3d.js} +6 -6
  116. package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
  117. package/dist/esm/{index-299c3a24.js → index-79b30591.js} +1 -1
  118. package/dist/esm/{index-a94537d9.js → index-cb21eccb.js} +4 -4
  119. package/dist/esm/{index-d312d755.js → index-efb8ecdf.js} +2 -2
  120. package/dist/esm/index.js +11 -11
  121. package/dist/esm/{input-shims-7761bb89.js → input-shims-2fd7c6ef.js} +5 -3
  122. package/dist/esm/{input.utils-005c974b.js → input.utils-961c9f17.js} +2 -2
  123. package/dist/esm/ion-accordion_2.entry.js +4 -4
  124. package/dist/esm/ion-action-sheet.entry.js +8 -8
  125. package/dist/esm/ion-alert.entry.js +8 -8
  126. package/dist/esm/ion-app_8.entry.js +15 -15
  127. package/dist/esm/ion-avatar_3.entry.js +2 -2
  128. package/dist/esm/ion-back-button.entry.js +3 -3
  129. package/dist/esm/ion-backdrop.entry.js +2 -2
  130. package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
  131. package/dist/esm/ion-button_2.entry.js +4 -4
  132. package/dist/esm/ion-card_5.entry.js +3 -3
  133. package/dist/esm/ion-checkbox.entry.js +40 -9
  134. package/dist/esm/ion-chip.entry.js +2 -2
  135. package/dist/esm/ion-col_3.entry.js +2 -2
  136. package/dist/esm/ion-datetime-button.entry.js +5 -5
  137. package/dist/esm/ion-datetime_3.entry.js +8 -8
  138. package/dist/esm/ion-fab_3.entry.js +3 -3
  139. package/dist/esm/ion-img.entry.js +3 -3
  140. package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
  141. package/dist/esm/ion-input-password-toggle.entry.js +3 -3
  142. package/dist/esm/ion-input.entry.js +6 -6
  143. package/dist/esm/ion-item-option_3.entry.js +5 -5
  144. package/dist/esm/ion-item_8.entry.js +3 -3
  145. package/dist/esm/ion-loading.entry.js +7 -7
  146. package/dist/esm/ion-menu_3.entry.js +8 -8
  147. package/dist/esm/ion-modal.entry.js +267 -44
  148. package/dist/esm/ion-nav_2.entry.js +7 -7
  149. package/dist/esm/ion-picker-column-option.entry.js +3 -3
  150. package/dist/esm/ion-picker-column.entry.js +3 -3
  151. package/dist/esm/ion-picker.entry.js +2 -2
  152. package/dist/esm/ion-popover.entry.js +8 -8
  153. package/dist/esm/ion-progress-bar.entry.js +3 -3
  154. package/dist/esm/ion-radio_2.entry.js +3 -3
  155. package/dist/esm/ion-range.entry.js +5 -5
  156. package/dist/esm/ion-refresher_2.entry.js +5 -5
  157. package/dist/esm/ion-reorder_2.entry.js +5 -5
  158. package/dist/esm/ion-ripple-effect.entry.js +2 -2
  159. package/dist/esm/ion-route_4.entry.js +3 -3
  160. package/dist/esm/ion-searchbar.entry.js +3 -3
  161. package/dist/esm/ion-segment-content.entry.js +1 -1
  162. package/dist/esm/ion-segment-view.entry.js +1 -1
  163. package/dist/esm/ion-segment_2.entry.js +11 -42
  164. package/dist/esm/ion-select-modal.entry.js +7 -7
  165. package/dist/esm/ion-select_3.entry.js +22 -48
  166. package/dist/esm/ion-spinner.entry.js +2 -2
  167. package/dist/esm/ion-split-pane.entry.js +2 -2
  168. package/dist/esm/ion-tab-bar_2.entry.js +3 -3
  169. package/dist/esm/ion-tab_2.entry.js +3 -3
  170. package/dist/esm/ion-text.entry.js +2 -2
  171. package/dist/esm/ion-textarea.entry.js +6 -6
  172. package/dist/esm/ion-toast.entry.js +7 -7
  173. package/dist/esm/ion-toggle.entry.js +8 -7
  174. package/dist/esm/{ionic-global-33560a0a.js → ionic-global-c81d82ab.js} +12 -1
  175. package/dist/esm/ionic.js +5 -5
  176. package/dist/esm/{ios.transition-ee25fba4.js → ios.transition-b1da3753.js} +5 -5
  177. package/dist/esm/loader.js +5 -5
  178. package/dist/esm/{md.transition-76353fd3.js → md.transition-571b3859.js} +5 -5
  179. package/dist/esm/{notch-controller-b94a6b7b.js → notch-controller-55b09e11.js} +1 -1
  180. package/dist/esm/{overlays-87b6aa7c.js → overlays-5deab4de.js} +5 -5
  181. package/dist/esm/{status-tap-c5dd83b2.js → status-tap-79eac0ac.js} +5 -4
  182. package/dist/esm/{swipe-back-6e381b00.js → swipe-back-e5394307.js} +1 -1
  183. package/dist/esm-es5/app-globals-5dbb61a5.js +4 -0
  184. package/dist/esm-es5/{button-active-90f1dbc4.js → button-active-f6503382.js} +1 -1
  185. package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  186. package/dist/esm-es5/{framework-delegate-3e745cc0.js → framework-delegate-63d1a679.js} +1 -1
  187. package/dist/esm-es5/{hardware-back-button-d58e8ab6.js → hardware-back-button-06ef3c3e.js} +1 -1
  188. package/dist/esm-es5/helpers-da915de8.js +4 -0
  189. package/dist/esm-es5/index-28849c61.js +5 -0
  190. package/dist/esm-es5/{index-ae5421cc.js → index-2f7fde3d.js} +1 -1
  191. package/dist/esm-es5/index-6ad967f3.js +4 -0
  192. package/dist/esm-es5/{index-299c3a24.js → index-79b30591.js} +1 -1
  193. package/dist/esm-es5/{index-a94537d9.js → index-cb21eccb.js} +1 -1
  194. package/dist/esm-es5/{index-d312d755.js → index-efb8ecdf.js} +1 -1
  195. package/dist/esm-es5/index.js +1 -1
  196. package/dist/esm-es5/input-shims-2fd7c6ef.js +4 -0
  197. package/dist/esm-es5/{input.utils-005c974b.js → input.utils-961c9f17.js} +1 -1
  198. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  199. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  200. package/dist/esm-es5/ion-alert.entry.js +1 -1
  201. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  202. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  203. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  204. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  205. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  206. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  207. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  208. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  209. package/dist/esm-es5/ion-chip.entry.js +1 -1
  210. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  211. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  212. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  213. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  214. package/dist/esm-es5/ion-img.entry.js +1 -1
  215. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  216. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  217. package/dist/esm-es5/ion-input.entry.js +1 -1
  218. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  219. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  220. package/dist/esm-es5/ion-loading.entry.js +1 -1
  221. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  222. package/dist/esm-es5/ion-modal.entry.js +1 -1
  223. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  224. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  225. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  226. package/dist/esm-es5/ion-picker.entry.js +1 -1
  227. package/dist/esm-es5/ion-popover.entry.js +1 -1
  228. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  229. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  230. package/dist/esm-es5/ion-range.entry.js +1 -1
  231. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  232. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  233. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  234. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  235. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  236. package/dist/esm-es5/ion-segment-content.entry.js +1 -1
  237. package/dist/esm-es5/ion-segment-view.entry.js +1 -1
  238. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  239. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  240. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  241. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  242. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  243. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  244. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  245. package/dist/esm-es5/ion-text.entry.js +1 -1
  246. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  247. package/dist/esm-es5/ion-toast.entry.js +1 -1
  248. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  249. package/dist/esm-es5/ionic-global-c81d82ab.js +4 -0
  250. package/dist/esm-es5/ionic.js +1 -1
  251. package/dist/esm-es5/{ios.transition-ee25fba4.js → ios.transition-b1da3753.js} +1 -1
  252. package/dist/esm-es5/loader.js +1 -1
  253. package/dist/esm-es5/md.transition-571b3859.js +4 -0
  254. package/dist/esm-es5/{notch-controller-b94a6b7b.js → notch-controller-55b09e11.js} +1 -1
  255. package/dist/esm-es5/{overlays-87b6aa7c.js → overlays-5deab4de.js} +1 -1
  256. package/dist/esm-es5/status-tap-79eac0ac.js +4 -0
  257. package/dist/esm-es5/{swipe-back-6e381b00.js → swipe-back-e5394307.js} +1 -1
  258. package/dist/html.html-data.json +24 -0
  259. package/dist/ionic/index.esm.js +1 -1
  260. package/dist/ionic/ionic.esm.js +1 -1
  261. package/dist/ionic/ionic.js +1 -1
  262. package/dist/ionic/{p-50eb95ba.system.entry.js → p-01186920.system.entry.js} +1 -1
  263. package/dist/ionic/p-0430c2e0.entry.js +4 -0
  264. package/dist/ionic/p-0574e87e.js +4 -0
  265. package/dist/ionic/{p-4bcc2581.system.entry.js → p-05b74e45.system.entry.js} +1 -1
  266. package/dist/ionic/p-081a4ce4.entry.js +4 -0
  267. package/dist/ionic/p-0af823e1.js +4 -0
  268. package/dist/ionic/{p-07cf4028.system.js → p-0eb35a7f.system.js} +1 -1
  269. package/dist/ionic/p-1132ffee.entry.js +4 -0
  270. package/dist/ionic/p-120fb79a.entry.js +4 -0
  271. package/dist/ionic/p-14be4015.entry.js +4 -0
  272. package/dist/ionic/{p-dade2313.entry.js → p-15d18206.entry.js} +1 -1
  273. package/dist/ionic/{p-0e2aaf53.entry.js → p-15e76dd1.entry.js} +1 -1
  274. package/dist/ionic/p-16188af7.entry.js +4 -0
  275. package/dist/ionic/{p-dbac4f3e.system.entry.js → p-16799667.system.entry.js} +1 -1
  276. package/dist/ionic/p-16bfb979.system.entry.js +4 -0
  277. package/dist/ionic/{p-56358500.system.js → p-19ea7bff.system.js} +1 -1
  278. package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
  279. package/dist/ionic/{p-1828fde5.js → p-1ab13b2b.js} +1 -1
  280. package/dist/ionic/{p-ee7c3605.system.entry.js → p-1e67b266.system.entry.js} +1 -1
  281. package/dist/ionic/{p-1fa70a4d.system.entry.js → p-2172893e.system.entry.js} +1 -1
  282. package/dist/ionic/{p-08409995.system.entry.js → p-2346ab53.system.entry.js} +2 -2
  283. package/dist/ionic/{p-1a2a0488.system.entry.js → p-248318e0.system.entry.js} +1 -1
  284. package/dist/ionic/{p-e78844bd.system.entry.js → p-2507278c.system.entry.js} +1 -1
  285. package/dist/ionic/p-25180df3.system.js +5 -0
  286. package/dist/ionic/{p-e9336870.js → p-28706c6f.js} +1 -1
  287. package/dist/ionic/{p-d7811e30.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
  288. package/dist/ionic/{p-8615796d.system.entry.js → p-2b838f86.system.entry.js} +1 -1
  289. package/dist/ionic/{p-6724b6ce.entry.js → p-2da9c8a7.entry.js} +1 -1
  290. package/dist/ionic/{p-87570c71.system.entry.js → p-2e46590d.system.entry.js} +1 -1
  291. package/dist/ionic/{p-ad4cca47.system.entry.js → p-302b50bb.system.entry.js} +1 -1
  292. package/dist/ionic/p-322c5fb4.system.js +4 -0
  293. package/dist/ionic/{p-7341f38d.entry.js → p-33a8a71b.entry.js} +1 -1
  294. package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
  295. package/dist/ionic/{p-fb4ae485.js → p-34b11c24.js} +1 -1
  296. package/dist/ionic/{p-a4866e3e.system.js → p-372ae7f4.system.js} +1 -1
  297. package/dist/ionic/p-3ad285e3.system.js +4 -0
  298. package/dist/ionic/{p-f99425b1.system.js → p-3c8e5c23.system.js} +1 -1
  299. package/dist/ionic/{p-9f85d4b1.js → p-3cc276f4.js} +1 -1
  300. package/dist/ionic/{p-c8c27ae7.system.entry.js → p-424eb140.system.entry.js} +1 -1
  301. package/dist/ionic/p-49a0e74c.entry.js +4 -0
  302. package/dist/ionic/p-4c2d5b80.system.js +4 -0
  303. package/dist/ionic/p-4c98e2cf.system.js +4 -0
  304. package/dist/ionic/p-4ec778aa.entry.js +4 -0
  305. package/dist/ionic/{p-93ee5b02.entry.js → p-52d7a191.entry.js} +1 -1
  306. package/dist/ionic/{p-4b27d69d.system.entry.js → p-567de071.system.entry.js} +1 -1
  307. package/dist/ionic/p-577bc414.entry.js +4 -0
  308. package/dist/ionic/{p-06260d68.system.entry.js → p-585b455c.system.entry.js} +1 -1
  309. package/dist/ionic/{p-685e9613.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
  310. package/dist/ionic/{p-ecc26ede.entry.js → p-5b932840.entry.js} +1 -1
  311. package/dist/ionic/{p-09aa088e.system.js → p-5c08627a.system.js} +1 -1
  312. package/dist/ionic/p-5c9eb9af.entry.js +4 -0
  313. package/dist/ionic/{p-67d24f70.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
  314. package/dist/ionic/{p-fc295a7f.entry.js → p-61db139d.entry.js} +1 -1
  315. package/dist/ionic/{p-fa8b0bbd.entry.js → p-62af944c.entry.js} +1 -1
  316. package/dist/ionic/{p-c585a45f.system.entry.js → p-63b0abde.system.entry.js} +1 -1
  317. package/dist/ionic/p-67222c16.system.js +4 -0
  318. package/dist/ionic/{p-21891ead.js → p-69066a53.js} +1 -1
  319. package/dist/ionic/{p-741f94fe.system.entry.js → p-6933c482.system.entry.js} +1 -1
  320. package/dist/ionic/{p-644cfb0d.entry.js → p-6d32975a.entry.js} +1 -1
  321. package/dist/ionic/{p-b28ea018.entry.js → p-6d6cedc5.entry.js} +1 -1
  322. package/dist/ionic/{p-99e1fd04.system.entry.js → p-6dfb0f39.system.entry.js} +1 -1
  323. package/dist/ionic/{p-9dfcac21.js → p-72812e99.js} +1 -1
  324. package/dist/ionic/{p-5faf0879.js → p-72bc8a1c.js} +1 -1
  325. package/dist/ionic/{p-4cfb0dc8.entry.js → p-73dc4950.entry.js} +1 -1
  326. package/dist/ionic/{p-db8a02a0.system.entry.js → p-744c8672.system.entry.js} +1 -1
  327. package/dist/ionic/{p-2664778b.system.entry.js → p-7458862e.system.entry.js} +1 -1
  328. package/dist/ionic/{p-15ca0b12.system.entry.js → p-74e3f0af.system.entry.js} +2 -2
  329. package/dist/ionic/p-7513b0c4.js +4 -0
  330. package/dist/ionic/{p-82acef74.system.entry.js → p-797eeea8.system.entry.js} +1 -1
  331. package/dist/ionic/{p-b36d1e39.entry.js → p-7a02f476.entry.js} +1 -1
  332. package/dist/ionic/{p-fbddd225.entry.js → p-7a6eaf9e.entry.js} +1 -1
  333. package/dist/ionic/p-7b9a2b23.entry.js +4 -0
  334. package/dist/ionic/{p-71235698.system.entry.js → p-7ddc46c3.system.entry.js} +1 -1
  335. package/dist/ionic/{p-57de65cb.system.js → p-7de1e42c.system.js} +1 -1
  336. package/dist/ionic/{p-5216f047.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
  337. package/dist/ionic/{p-caafaec4.system.js → p-8635f5e6.system.js} +1 -1
  338. package/dist/ionic/{p-17088ca0.entry.js → p-8694928f.entry.js} +1 -1
  339. package/dist/ionic/{p-da231185.entry.js → p-89bf08c7.entry.js} +1 -1
  340. package/dist/ionic/{p-6b0cbcc3.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
  341. package/dist/ionic/p-92763d3d.entry.js +4 -0
  342. package/dist/ionic/{p-f4af839e.system.entry.js → p-933727f9.system.entry.js} +1 -1
  343. package/dist/ionic/p-9343a445.js +4 -0
  344. package/dist/ionic/{p-c9f32d38.entry.js → p-937a7e21.entry.js} +1 -1
  345. package/dist/ionic/{p-f0e14400.entry.js → p-948e6c6a.entry.js} +1 -1
  346. package/dist/ionic/{p-6752a057.entry.js → p-95775830.entry.js} +1 -1
  347. package/dist/ionic/{p-2be04f09.system.entry.js → p-98231c01.system.entry.js} +1 -1
  348. package/dist/ionic/{p-a0a5c0db.system.entry.js → p-985a7e17.system.entry.js} +1 -1
  349. package/dist/ionic/{p-4ea83104.entry.js → p-98ff6b32.entry.js} +1 -1
  350. package/dist/ionic/{p-faa24152.system.entry.js → p-9b122e3c.system.entry.js} +1 -1
  351. package/dist/ionic/{p-c172eb14.entry.js → p-9b428d25.entry.js} +1 -1
  352. package/dist/ionic/p-9df2c6fb.entry.js +4 -0
  353. package/dist/ionic/p-9f3008d4.system.js +4 -0
  354. package/dist/ionic/{p-2b595f52.system.entry.js → p-9f364443.system.entry.js} +1 -1
  355. package/dist/ionic/{p-68327266.system.entry.js → p-a090bce8.system.entry.js} +1 -1
  356. package/dist/ionic/{p-ed1a1717.system.entry.js → p-a0eb506c.system.entry.js} +1 -1
  357. package/dist/ionic/{p-1fed4470.system.js → p-a15ddedb.system.js} +1 -1
  358. package/dist/ionic/p-a3db8ee3.js +4 -0
  359. package/dist/ionic/{p-e4cc4565.system.entry.js → p-a4a2420e.system.entry.js} +1 -1
  360. package/dist/ionic/p-a69b9fc5.system.js +4 -0
  361. package/dist/ionic/{p-d1410529.system.js → p-a88dec0d.system.js} +2 -2
  362. package/dist/ionic/p-a8f2c254.entry.js +4 -0
  363. package/dist/ionic/{p-a9de8117.system.entry.js → p-ab674093.system.entry.js} +1 -1
  364. package/dist/ionic/{p-89d3401f.system.js → p-ada36597.system.js} +1 -1
  365. package/dist/ionic/{p-2fa83e88.entry.js → p-afecb188.entry.js} +1 -1
  366. package/dist/ionic/{p-fae7cdef.entry.js → p-b1eb86fd.entry.js} +1 -1
  367. package/dist/ionic/{p-3a993e5c.system.js → p-b3c60433.system.js} +1 -1
  368. package/dist/ionic/p-b51e4004.js +4 -0
  369. package/dist/ionic/{p-37c85d40.js → p-b6efeab8.js} +1 -1
  370. package/dist/ionic/p-b9d7015f.entry.js +4 -0
  371. package/dist/ionic/{p-b480d2b1.entry.js → p-bb0db172.entry.js} +1 -1
  372. package/dist/ionic/{p-841c4879.entry.js → p-bdad26e3.entry.js} +1 -1
  373. package/dist/ionic/{p-a8ad56a5.system.entry.js → p-bdf2cb2e.system.entry.js} +1 -1
  374. package/dist/ionic/{p-48e13c51.entry.js → p-c41ac815.entry.js} +1 -1
  375. package/dist/ionic/{p-7d2357da.system.js → p-c4238c12.system.js} +1 -1
  376. package/dist/ionic/p-c4b53b16.system.entry.js +4 -0
  377. package/dist/ionic/{p-d3bd54e1.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
  378. package/dist/ionic/p-cb13696c.js +4 -0
  379. package/dist/ionic/{p-86189afd.system.entry.js → p-cba1f9bc.system.entry.js} +1 -1
  380. package/dist/ionic/p-cdc83025.entry.js +4 -0
  381. package/dist/ionic/p-d1c5b60e.system.js +4 -0
  382. package/dist/ionic/{p-4ba8de87.system.js → p-d22e2a38.system.js} +1 -1
  383. package/dist/ionic/{p-e4c8444f.system.entry.js → p-d6eaffb1.system.entry.js} +1 -1
  384. package/dist/ionic/{p-ff861eb0.js → p-d743e981.js} +1 -1
  385. package/dist/ionic/{p-d7e6cd7e.entry.js → p-d7aa6b00.entry.js} +1 -1
  386. package/dist/ionic/p-d7dd8fb1.entry.js +4 -0
  387. package/dist/ionic/p-d836d43e.js +5 -0
  388. package/dist/ionic/p-de930745.entry.js +4 -0
  389. package/dist/ionic/{p-695c3921.entry.js → p-e06057c9.entry.js} +1 -1
  390. package/dist/ionic/{p-80a4f5a4.system.entry.js → p-e09d6392.system.entry.js} +1 -1
  391. package/dist/ionic/p-e3171ff3.entry.js +4 -0
  392. package/dist/ionic/{p-ced5d9b6.system.entry.js → p-e4ee80be.system.entry.js} +1 -1
  393. package/dist/ionic/p-e4fde4fb.system.entry.js +4 -0
  394. package/dist/ionic/p-e6376b93.system.entry.js +4 -0
  395. package/dist/ionic/p-e76dae93.entry.js +4 -0
  396. package/dist/ionic/p-e8d56122.js +4 -0
  397. package/dist/ionic/{p-8f6d68b7.js → p-ecceeb90.js} +1 -1
  398. package/dist/ionic/{p-fd01cb8a.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
  399. package/dist/ionic/p-eef505e8.entry.js +4 -0
  400. package/dist/ionic/{p-a9740e59.entry.js → p-f1060cd8.entry.js} +1 -1
  401. package/dist/ionic/{p-b17b56a9.system.entry.js → p-f1120724.system.entry.js} +1 -1
  402. package/dist/ionic/p-f1c4dcd4.js +4 -0
  403. package/dist/ionic/{p-f93eb347.system.entry.js → p-f3102647.system.entry.js} +1 -1
  404. package/dist/ionic/{p-5f8c7f64.entry.js → p-f63c2d12.entry.js} +1 -1
  405. package/dist/ionic/{p-734de30f.system.entry.js → p-fbd41a7e.system.entry.js} +1 -1
  406. package/dist/ionic/{p-81a4c94d.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
  407. package/dist/ionic/{p-c23b3d05.entry.js → p-fceec762.entry.js} +1 -1
  408. package/dist/types/components/checkbox/checkbox.d.ts +25 -0
  409. package/dist/types/components/modal/animations/sheet.d.ts +1 -0
  410. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  411. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  412. package/dist/types/components/modal/modal.d.ts +11 -0
  413. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  414. package/dist/types/components/select/select.d.ts +6 -0
  415. package/dist/types/components/toggle/toggle.d.ts +6 -0
  416. package/dist/types/components/toolbar/toolbar.d.ts +4 -0
  417. package/dist/types/components.d.ts +48 -0
  418. package/dist/types/utils/config.d.ts +12 -0
  419. package/dist/types/utils/helpers.d.ts +0 -1
  420. package/dist/types/utils/logging/index.d.ts +13 -1
  421. package/hydrate/index.js +374 -139
  422. package/hydrate/index.mjs +374 -139
  423. package/package.json +3 -3
  424. package/dist/esm-es5/app-globals-0aadb3a9.js +0 -4
  425. package/dist/esm-es5/helpers-16b36a2b.js +0 -4
  426. package/dist/esm-es5/index-527b9e34.js +0 -5
  427. package/dist/esm-es5/index-9b0d46f4.js +0 -4
  428. package/dist/esm-es5/input-shims-7761bb89.js +0 -4
  429. package/dist/esm-es5/ionic-global-33560a0a.js +0 -4
  430. package/dist/esm-es5/md.transition-76353fd3.js +0 -4
  431. package/dist/esm-es5/status-tap-c5dd83b2.js +0 -4
  432. package/dist/ionic/p-030bbd88.entry.js +0 -4
  433. package/dist/ionic/p-03417f7c.entry.js +0 -4
  434. package/dist/ionic/p-0612c7c3.entry.js +0 -4
  435. package/dist/ionic/p-06fee233.js +0 -4
  436. package/dist/ionic/p-0a47a1fb.entry.js +0 -4
  437. package/dist/ionic/p-1110d6ab.entry.js +0 -4
  438. package/dist/ionic/p-14e6a33e.entry.js +0 -4
  439. package/dist/ionic/p-1e0ee321.entry.js +0 -4
  440. package/dist/ionic/p-1fadb8b9.js +0 -4
  441. package/dist/ionic/p-235edda0.entry.js +0 -4
  442. package/dist/ionic/p-248ff024.system.js +0 -4
  443. package/dist/ionic/p-2bc0c8cf.entry.js +0 -4
  444. package/dist/ionic/p-32ab7c59.entry.js +0 -4
  445. package/dist/ionic/p-39f6077e.js +0 -4
  446. package/dist/ionic/p-41dc2b36.system.js +0 -4
  447. package/dist/ionic/p-4b4d1f73.entry.js +0 -4
  448. package/dist/ionic/p-5406a48a.system.entry.js +0 -4
  449. package/dist/ionic/p-5430a6da.entry.js +0 -4
  450. package/dist/ionic/p-5b73e74c.js +0 -4
  451. package/dist/ionic/p-60666514.entry.js +0 -4
  452. package/dist/ionic/p-61153ec9.entry.js +0 -4
  453. package/dist/ionic/p-66a5d6a8.js +0 -5
  454. package/dist/ionic/p-6d11152f.entry.js +0 -4
  455. package/dist/ionic/p-6d969696.system.js +0 -4
  456. package/dist/ionic/p-71062ade.system.js +0 -4
  457. package/dist/ionic/p-73d6a80d.entry.js +0 -4
  458. package/dist/ionic/p-75098ab5.system.js +0 -4
  459. package/dist/ionic/p-8fdfd686.system.entry.js +0 -4
  460. package/dist/ionic/p-93ce49e8.entry.js +0 -4
  461. package/dist/ionic/p-9bcc9444.entry.js +0 -4
  462. package/dist/ionic/p-a25c4e5d.js +0 -4
  463. package/dist/ionic/p-a8a9c283.system.js +0 -4
  464. package/dist/ionic/p-bd92a627.system.js +0 -4
  465. package/dist/ionic/p-be685cdb.entry.js +0 -4
  466. package/dist/ionic/p-c566c4ac.js +0 -4
  467. package/dist/ionic/p-c89f0db9.entry.js +0 -4
  468. package/dist/ionic/p-d6251c7e.system.entry.js +0 -4
  469. package/dist/ionic/p-e5a3b38b.system.entry.js +0 -4
  470. package/dist/ionic/p-e6e2ff13.entry.js +0 -4
  471. package/dist/ionic/p-ece761b3.js +0 -4
  472. package/dist/ionic/p-f11a9436.system.js +0 -5
  473. package/dist/ionic/p-f70935ed.js +0 -4
  474. package/dist/ionic/p-fd579866.js +0 -4
  475. package/dist/ionic/p-ff4b7e40.system.js +0 -4
@@ -6,10 +6,10 @@ import { i as inheritAriaAttributes, e as renderHiddenInput } from './helpers.js
6
6
  import { c as createColorClasses, h as hostContext } from './theme.js';
7
7
  import { b as getIonMode } from './ionic-global.js';
8
8
 
9
- 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{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-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(.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-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}: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}: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-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}";
9
+ 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{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-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}.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}";
10
10
  const IonCheckboxIosStyle0 = checkboxIosCss;
11
11
 
12
- const checkboxMdCss = ":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{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-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(.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-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}: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}: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-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:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
12
+ const checkboxMdCss = ":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{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.native-wrapper{display:-ms-flexbox;display:flex;-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}.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:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
13
13
  const IonCheckboxMdStyle0 = checkboxMdCss;
14
14
 
15
15
  const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLElement {
@@ -21,6 +21,8 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
21
21
  this.ionFocus = createEvent(this, "ionFocus", 7);
22
22
  this.ionBlur = createEvent(this, "ionBlur", 7);
23
23
  this.inputId = `ion-cb-${checkboxIds++}`;
24
+ this.helperTextId = `${this.inputId}-helper-text`;
25
+ this.errorTextId = `${this.inputId}-error-text`;
24
26
  this.inheritedAttributes = {};
25
27
  /**
26
28
  * Sets the checked property and emits
@@ -58,10 +60,13 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
58
60
  this.checked = false;
59
61
  this.indeterminate = false;
60
62
  this.disabled = false;
63
+ this.errorText = undefined;
64
+ this.helperText = undefined;
61
65
  this.value = 'on';
62
66
  this.labelPlacement = 'start';
63
67
  this.justify = undefined;
64
68
  this.alignment = undefined;
69
+ this.required = false;
65
70
  }
66
71
  componentWillLoad() {
67
72
  this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
@@ -72,12 +77,38 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
72
77
  this.focusEl.focus();
73
78
  }
74
79
  }
80
+ getHintTextID() {
81
+ const { el, helperText, errorText, helperTextId, errorTextId } = this;
82
+ if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
83
+ return errorTextId;
84
+ }
85
+ if (helperText) {
86
+ return helperTextId;
87
+ }
88
+ return undefined;
89
+ }
90
+ /**
91
+ * Responsible for rendering helper text and error text.
92
+ * This element should only be rendered if hint text is set.
93
+ */
94
+ renderHintText() {
95
+ const { helperText, errorText, helperTextId, errorTextId } = this;
96
+ /**
97
+ * undefined and empty string values should
98
+ * be treated as not having helper/error text.
99
+ */
100
+ const hasHintText = !!helperText || !!errorText;
101
+ if (!hasHintText) {
102
+ return;
103
+ }
104
+ return (h("div", { class: "checkbox-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)));
105
+ }
75
106
  render() {
76
- const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, } = this;
107
+ const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
77
108
  const mode = getIonMode(this);
78
109
  const path = getSVGPath(mode, indeterminate);
79
110
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
80
- return (h(Host, { key: '6dc787e1100521d08c4900104e1a3e2f594e919f', "aria-checked": indeterminate ? 'mixed' : `${checked}`, class: createColorClasses(color, {
111
+ return (h(Host, { key: '7ac31df89b07c781ddcd30a6a8c109494d0c500a', "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, class: createColorClasses(color, {
81
112
  [mode]: true,
82
113
  'in-item': hostContext('ion-item', el),
83
114
  'checkbox-checked': checked,
@@ -87,10 +118,10 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
87
118
  [`checkbox-justify-${justify}`]: justify !== undefined,
88
119
  [`checkbox-alignment-${alignment}`]: alignment !== undefined,
89
120
  [`checkbox-label-placement-${labelPlacement}`]: true,
90
- }), onClick: this.onClick }, h("label", { key: '68222fb736a5ec3f2e488649b0e2ce0417dcb224', class: "checkbox-wrapper" }, h("input", Object.assign({ key: 'f12962d7e9b19c744cfdbdeccc67ae7f5d080281', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, inheritedAttributes)), h("div", { key: 'c72df2699414b1e5a41a1bc267bc634f0c93dcff', class: {
121
+ }), onClick: this.onClick }, h("label", { key: '674e923fe1ec83a33c31d67b0d414d61ba8f9e4b', class: "checkbox-wrapper" }, h("input", Object.assign({ key: 'c4866e392fbdf3b76edcd1507cb67f40a213a4e7', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, inheritedAttributes)), h("div", { key: '79cb96e5963b9331a760438ec8cc9e456215de91', class: {
91
122
  'label-text-wrapper': true,
92
123
  'label-text-wrapper-hidden': el.textContent === '',
93
- }, part: "label" }, h("slot", { key: 'a2a80285178a7e0e3b536fc9ca26b8b444aa4307' })), h("div", { key: 'c2b05e0d1fe8df5dcd72858220b5ff51ecaee4cc', class: "native-wrapper" }, h("svg", { key: 'ee24913fded72258ebd9713654a6dba92a18fcf7', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
124
+ }, part: "label" }, h("slot", { key: '896cb26292c9a4a6c105afb39611472b93bf5e90' }), this.renderHintText()), h("div", { key: '52cd22e79fd5db30b45d7b092aa5af3944392336', class: "native-wrapper" }, h("svg", { key: '18d862ab7cc32055eaf200eea560ff1b2b6cbde0', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container" }, path)))));
94
125
  }
95
126
  getSVGPath(mode, indeterminate) {
96
127
  let path = indeterminate ? (h("path", { d: "M6 12L18 12", part: "mark" })) : (h("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
@@ -110,10 +141,13 @@ const Checkbox = /*@__PURE__*/ proxyCustomElement(class Checkbox extends HTMLEle
110
141
  "checked": [1028],
111
142
  "indeterminate": [1028],
112
143
  "disabled": [4],
144
+ "errorText": [1, "error-text"],
145
+ "helperText": [1, "helper-text"],
113
146
  "value": [8],
114
147
  "labelPlacement": [1, "label-placement"],
115
148
  "justify": [1],
116
149
  "alignment": [1],
150
+ "required": [4],
117
151
  "setFocus": [64]
118
152
  }]);
119
153
  let checkboxIds = 0;
@@ -169,9 +169,37 @@ const inheritAriaAttributes = (el, ignoreList) => {
169
169
  return inheritAttributes(el, attributesToInherit);
170
170
  };
171
171
  const addEventListener = (el, eventName, callback, opts) => {
172
+ var _a;
173
+ if (typeof window !== 'undefined') {
174
+ const win = window;
175
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
176
+ if (config) {
177
+ const ael = config.get('_ael');
178
+ if (ael) {
179
+ return ael(el, eventName, callback, opts);
180
+ }
181
+ else if (config._ael) {
182
+ return config._ael(el, eventName, callback, opts);
183
+ }
184
+ }
185
+ }
172
186
  return el.addEventListener(eventName, callback, opts);
173
187
  };
174
188
  const removeEventListener = (el, eventName, callback, opts) => {
189
+ var _a;
190
+ if (typeof window !== 'undefined') {
191
+ const win = window;
192
+ const config = (_a = win === null || win === void 0 ? void 0 : win.Ionic) === null || _a === void 0 ? void 0 : _a.config;
193
+ if (config) {
194
+ const rel = config.get('_rel');
195
+ if (rel) {
196
+ return rel(el, eventName, callback, opts);
197
+ }
198
+ else if (config._rel) {
199
+ return config._rel(el, eventName, callback, opts);
200
+ }
201
+ }
202
+ }
175
203
  return el.removeEventListener(eventName, callback, opts);
176
204
  };
177
205
  /**
@@ -330,15 +358,5 @@ const shallowEqualStringMap = (map1, map2) => {
330
358
  }
331
359
  return true;
332
360
  };
333
- const getNextSiblingOfType = (element) => {
334
- let sibling = element.nextSibling;
335
- while (sibling) {
336
- if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
337
- return sibling;
338
- }
339
- sibling = sibling.nextSibling;
340
- }
341
- return null;
342
- };
343
361
 
344
- export { addEventListener as a, removeEventListener as b, componentOnReady as c, inheritAttributes as d, renderHiddenInput as e, focusVisibleElement as f, getElementRoot as g, hasShadowDom as h, inheritAriaAttributes as i, hasLazyBuild as j, clamp as k, debounceEvent as l, isEndSide as m, assert as n, debounce as o, getNextSiblingOfType as p, pointerCoord as q, raf as r, shallowEqualStringMap as s, transitionEndAsync as t };
362
+ export { addEventListener as a, removeEventListener as b, componentOnReady as c, inheritAttributes as d, renderHiddenInput as e, focusVisibleElement as f, getElementRoot as g, hasShadowDom as h, inheritAriaAttributes as i, hasLazyBuild as j, clamp as k, debounceEvent as l, isEndSide as m, assert as n, debounce as o, pointerCoord as p, raf as r, shallowEqualStringMap as s, transitionEndAsync as t };
@@ -1,6 +1,8 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
+ import { c as config } from './ionic-global.js';
5
+
4
6
  /**
5
7
  * Logs a warning to the console with an Ionic prefix
6
8
  * to indicate the library that is warning the developer.
@@ -8,9 +10,12 @@
8
10
  * @param message - The string message to be logged to the console.
9
11
  */
10
12
  const printIonWarning = (message, ...params) => {
11
- return console.warn(`[Ionic Warning]: ${message}`, ...params);
13
+ const logLevel = config.get('logLevel', "WARN" /* LogLevel.WARN */);
14
+ if (["WARN" /* LogLevel.WARN */].includes(logLevel)) {
15
+ return console.warn(`[Ionic Warning]: ${message}`, ...params);
16
+ }
12
17
  };
13
- /*
18
+ /**
14
19
  * Logs an error to the console with an Ionic prefix
15
20
  * to indicate the library that is warning the developer.
16
21
  *
@@ -18,7 +23,10 @@ const printIonWarning = (message, ...params) => {
18
23
  * @param params - Additional arguments to supply to the console.error.
19
24
  */
20
25
  const printIonError = (message, ...params) => {
21
- return console.error(`[Ionic Error]: ${message}`, ...params);
26
+ const logLevel = config.get('logLevel', "ERROR" /* LogLevel.ERROR */);
27
+ if (["ERROR" /* LogLevel.ERROR */, "WARN" /* LogLevel.WARN */].includes(logLevel)) {
28
+ return console.error(`[Ionic Error]: ${message}`, ...params);
29
+ }
22
30
  };
23
31
  /**
24
32
  * Prints an error informing developers that an implementation requires an element to be used
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { d as doc } from './index5.js';
5
- import { q as pointerCoord } from './helpers.js';
5
+ import { p as pointerCoord } from './helpers.js';
6
6
 
7
7
  const startTapClick = (config) => {
8
8
  if (doc === undefined) {
@@ -2,7 +2,7 @@
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, forceUpdate, h, Host } from '@stencil/core/internal/client';
5
- import { a as addEventListener, b as removeEventListener, d as inheritAttributes, p as getNextSiblingOfType } from './helpers.js';
5
+ import { a as addEventListener, b as removeEventListener, d as inheritAttributes } from './helpers.js';
6
6
  import { h as hostContext } from './theme.js';
7
7
  import { b as getIonMode } from './ionic-global.js';
8
8
  import { d as defineCustomElement$2 } from './ripple-effect.js';
@@ -43,35 +43,7 @@ const SegmentButton = /*@__PURE__*/ proxyCustomElement(class SegmentButton exten
43
43
  valueChanged() {
44
44
  this.updateState();
45
45
  }
46
- waitForSegmentContent(ionSegment, contentId) {
47
- return new Promise((resolve, reject) => {
48
- let timeoutId = undefined;
49
- let animationFrameId;
50
- const check = () => {
51
- if (!ionSegment) {
52
- reject(new Error(`Segment not found when looking for Segment Content`));
53
- return;
54
- }
55
- const segmentView = getNextSiblingOfType(ionSegment); // Skip the text nodes
56
- const segmentContent = segmentView === null || segmentView === void 0 ? void 0 : segmentView.querySelector(`ion-segment-content[id="${contentId}"]`);
57
- if (segmentContent && timeoutId) {
58
- clearTimeout(timeoutId); // Clear the timeout if the segmentContent is found
59
- cancelAnimationFrame(animationFrameId);
60
- resolve(segmentContent);
61
- }
62
- else {
63
- animationFrameId = requestAnimationFrame(check); // Keep checking on the next animation frame
64
- }
65
- };
66
- check();
67
- // Set a timeout to reject the promise
68
- timeoutId = setTimeout(() => {
69
- cancelAnimationFrame(animationFrameId);
70
- reject(new Error(`Unable to find Segment Content with id="${contentId} within 1000 ms`));
71
- }, 1000);
72
- });
73
- }
74
- async connectedCallback() {
46
+ connectedCallback() {
75
47
  const segmentEl = (this.segmentEl = this.el.closest('ion-segment'));
76
48
  if (segmentEl) {
77
49
  this.updateState();
@@ -81,14 +53,11 @@ const SegmentButton = /*@__PURE__*/ proxyCustomElement(class SegmentButton exten
81
53
  // Return if there is no contentId defined
82
54
  if (!this.contentId)
83
55
  return;
84
- let segmentContent;
85
- try {
86
- // Attempt to find the Segment Content by its contentId
87
- segmentContent = await this.waitForSegmentContent(segmentEl, this.contentId);
88
- }
89
- catch (error) {
90
- // If no associated Segment Content exists, log an error and return
91
- console.error('Segment Button: ', error.message);
56
+ // Attempt to find the Segment Content by its contentId
57
+ const segmentContent = document.getElementById(this.contentId);
58
+ // If no associated Segment Content exists, log an error and return
59
+ if (!segmentContent) {
60
+ console.error(`Segment Button: Unable to find Segment Content with id="${this.contentId}".`);
92
61
  return;
93
62
  }
94
63
  // Ensure the found element is a valid ION-SEGMENT-CONTENT
@@ -134,7 +103,7 @@ const SegmentButton = /*@__PURE__*/ proxyCustomElement(class SegmentButton exten
134
103
  const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
135
104
  const mode = getIonMode(this);
136
105
  const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
137
- return (h(Host, { key: 'f9da656c8eccb80e4ef30e3fa977f2dbbefbc988', class: {
106
+ return (h(Host, { key: 'd50a5d5e2f6206e8523598f258d8217d2903f69b', class: {
138
107
  [mode]: true,
139
108
  'in-toolbar': hostContext('ion-toolbar', this.el),
140
109
  'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
@@ -150,7 +119,7 @@ const SegmentButton = /*@__PURE__*/ proxyCustomElement(class SegmentButton exten
150
119
  'ion-activatable': true,
151
120
  'ion-activatable-instant': true,
152
121
  'ion-focusable': true,
153
- } }, h("button", Object.assign({ key: '00dbcdbd81cd74abdd39803f6840a6e477cc7b0c', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '5200c082a9c4788010c4fc33fe75e2b2ad28364a', class: "button-inner" }, h("slot", { key: 'cf3fce2b5d22436b84cd4367a5885df7d6a2715f' })), mode === 'md' && h("ion-ripple-effect", { key: 'f1a2816465f4c2c06644be07315bff2da77e2342' })), h("div", { key: 'aaf31c0ed39641fca698ee98d0773131f4eea6bd', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: 'fc556651361b7ac305aaedd25ea4afe3173abd20', part: "indicator-background", class: "segment-button-indicator-background" }))));
122
+ } }, h("button", Object.assign({ key: 'b4f6f145286ba8ab79669e11035b906daa85ae7e', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '67965996c9ffe70553875e00d3da0ae5b2b1d814', class: "button-inner" }, h("slot", { key: '5087988fe45a8fdf388ec44c395d0b745b207806' })), mode === 'md' && h("ion-ripple-effect", { key: 'b24858de0750bbc769b3183fac0077dfe817ba27' })), h("div", { key: '97b4359432acd1c9da0816360cd1df9472e183f7', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, h("div", { key: '0561738ea15b0986f4ed3d8276d5e6f2d13f7e51', part: "indicator-background", class: "segment-button-indicator-background" }))));
154
123
  }
155
124
  get el() { return this; }
156
125
  static get watchers() { return {
@@ -4,7 +4,7 @@
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host, forceUpdate } from '@stencil/core/internal/client';
5
5
  import { c as createNotchController } from './notch-controller.js';
6
6
  import { i as isOptionSelected, c as compareOptions, d as defineCustomElement$8 } from './radio.js';
7
- import { d as inheritAttributes, e as renderHiddenInput, f as focusVisibleElement } from './helpers.js';
7
+ import { d as inheritAttributes, f as focusVisibleElement, e as renderHiddenInput } from './helpers.js';
8
8
  import { c as popoverController, b as actionSheetController, a as alertController, m as modalController } from './overlays.js';
9
9
  import { i as isRTL } from './dir.js';
10
10
  import { h as hostContext, c as createColorClasses } from './theme.js';
@@ -115,6 +115,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
115
115
  this.expandedIcon = undefined;
116
116
  this.shape = undefined;
117
117
  this.value = undefined;
118
+ this.required = false;
118
119
  }
119
120
  styleChanged() {
120
121
  this.emitStyle();
@@ -177,8 +178,15 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
177
178
  }
178
179
  this.isExpanded = true;
179
180
  const overlay = (this.overlay = await this.createOverlay(event));
180
- // Add logic to scroll selected item into view before presenting
181
- const scrollSelectedIntoView = () => {
181
+ overlay.onDidDismiss().then(() => {
182
+ this.overlay = undefined;
183
+ this.isExpanded = false;
184
+ this.ionDismiss.emit();
185
+ this.setFocus();
186
+ });
187
+ await overlay.present();
188
+ // focus selected option for popovers and modals
189
+ if (this.interface === 'popover' || this.interface === 'modal') {
182
190
  const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
183
191
  if (indexOfSelected > -1) {
184
192
  const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
@@ -196,7 +204,6 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
196
204
  */
197
205
  const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
198
206
  if (interactiveEl) {
199
- selectedItem.scrollIntoView({ block: 'nearest' });
200
207
  // Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
201
208
  // and removing `ion-focused` style
202
209
  interactiveEl.setFocus();
@@ -220,40 +227,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
220
227
  focusVisibleElement(firstEnabledOption.closest('ion-item'));
221
228
  }
222
229
  }
223
- };
224
- // For modals and popovers, we can scroll before they're visible
225
- if (this.interface === 'modal') {
226
- overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
227
- }
228
- else if (this.interface === 'popover') {
229
- overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
230
230
  }
231
- else {
232
- /**
233
- * For alerts and action sheets, we need to wait a frame after willPresent
234
- * because these overlays don't have their content in the DOM immediately
235
- * when willPresent fires. By waiting a frame, we ensure the content is
236
- * rendered and can be properly scrolled into view.
237
- */
238
- const scrollAfterRender = () => {
239
- requestAnimationFrame(() => {
240
- scrollSelectedIntoView();
241
- });
242
- };
243
- if (this.interface === 'alert') {
244
- overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
245
- }
246
- else if (this.interface === 'action-sheet') {
247
- overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
248
- }
249
- }
250
- overlay.onDidDismiss().then(() => {
251
- this.overlay = undefined;
252
- this.isExpanded = false;
253
- this.ionDismiss.emit();
254
- this.setFocus();
255
- });
256
- await overlay.present();
257
231
  return overlay;
258
232
  }
259
233
  createOverlay(ev) {
@@ -633,8 +607,8 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
633
607
  return renderedLabel;
634
608
  }
635
609
  renderListbox() {
636
- const { disabled, inputId, isExpanded } = this;
637
- return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
610
+ const { disabled, inputId, isExpanded, required } = this;
611
+ return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
638
612
  }
639
613
  render() {
640
614
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -665,7 +639,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
665
639
  * TODO(FW-5592): Remove hasStartEndSlots condition
666
640
  */
667
641
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
668
- return (h(Host, { key: 'b2dca9ae25d88e4d9fdb55003041a66be5668fcf', onClick: this.onClick, class: createColorClasses(this.color, {
642
+ return (h(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses(this.color, {
669
643
  [mode]: true,
670
644
  'in-item': inItem,
671
645
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -681,7 +655,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
681
655
  [`select-justify-${justify}`]: justifyEnabled,
682
656
  [`select-shape-${shape}`]: shape !== undefined,
683
657
  [`select-label-placement-${labelPlacement}`]: true,
684
- }) }, h("label", { key: 'c22fe9aee8cd448223497ef143e89529fcef8af6', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '601972df4579f4fa6a9c2c12865593e807decb72', class: "select-wrapper-inner" }, h("slot", { key: '5f7b1261862f74b978b26f026533e3fd1cc666ba', name: "start" }), h("div", { key: '39616da89f4b4b78432f6da85116a7de2ca589e7', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '1d7b3601b73af7c05b3627cfc8e5147ea379bb03', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'b0344f0ac15003e22fee66d3d7ed03a07da7e8b7', class: "select-highlight" }))));
658
+ }) }, h("label", { key: '07bf3cb57bd1121383d8c746e3ac49da38300082', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '884facd18342797576bbacc761d18d83c52762e3', class: "select-wrapper-inner" }, h("slot", { key: 'c4f2a2a7a76f52db15f9a0b806017caea443c47a', name: "start" }), h("div", { key: '235cf383f268cc74412722cd31e246cbd4c2abe5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '1481302e11c494d49dfd80a7aaf743f7e851558f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '8a45ea9280651695c8e5435f266c286f3e3f6a18', class: "select-highlight" }))));
685
659
  }
686
660
  get el() { return this; }
687
661
  static get watchers() { return {
@@ -714,6 +688,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
714
688
  "expandedIcon": [1, "expanded-icon"],
715
689
  "shape": [1],
716
690
  "value": [1032],
691
+ "required": [4],
717
692
  "isExpanded": [32],
718
693
  "open": [64]
719
694
  }, undefined, {
@@ -75,6 +75,7 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
75
75
  this.labelPlacement = 'start';
76
76
  this.justify = undefined;
77
77
  this.alignment = undefined;
78
+ this.required = false;
78
79
  }
79
80
  disabledChanged() {
80
81
  if (this.gesture) {
@@ -156,12 +157,12 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
156
157
  return this.el.textContent !== '';
157
158
  }
158
159
  render() {
159
- const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
160
+ const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
160
161
  const mode = getIonMode(this);
161
162
  const value = this.getValue();
162
163
  const rtl = isRTL(el) ? 'rtl' : 'ltr';
163
164
  renderHiddenInput(true, el, name, checked ? value : '', disabled);
164
- return (h(Host, { key: 'f52195ec3bc14c024647cb41319c32a4cd330e19', onClick: this.onClick, class: createColorClasses(color, {
165
+ return (h(Host, { key: 'ed75573caa6e37011f1453dd7f723fb9bd8a3656', onClick: this.onClick, class: createColorClasses(color, {
165
166
  [mode]: true,
166
167
  'in-item': hostContext('ion-item', el),
167
168
  'toggle-activated': activated,
@@ -171,10 +172,10 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
171
172
  [`toggle-alignment-${alignment}`]: alignment !== undefined,
172
173
  [`toggle-label-placement-${labelPlacement}`]: true,
173
174
  [`toggle-${rtl}`]: true,
174
- }) }, h("label", { key: 'f8b3a215ad85b2cee611ad63449b584e1640f27f', class: "toggle-wrapper" }, h("input", Object.assign({ key: 'f387b1ea840737a9737917e516834c887be99c09', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl) }, this.inheritedAttributes)), h("div", { key: '936af880db59fe377cd2de9101eb28a1c4fb8914', class: {
175
+ }) }, h("label", { key: '484860e2a33f4d123904edb96159f0e1972d3add', class: "toggle-wrapper" }, h("input", Object.assign({ key: '360b53080aacfd99a9ff60ffb5219816bd4163ee', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), h("div", { key: 'f7239fa668fe11257239ea30cf0198e4f3274f6b', class: {
175
176
  'label-text-wrapper': true,
176
177
  'label-text-wrapper-hidden': !this.hasLabel,
177
- }, part: "label" }, h("slot", { key: '80a6672e2e792c15011a9496dcd75363cdba31c6' })), h("div", { key: '2b2b318b38ab27b194c0dab4cecd77d9d780f2ca', class: "native-wrapper" }, this.renderToggleControl()))));
178
+ }, part: "label" }, h("slot", { key: '9495a4a39889822ee68e0d89dc5a2f863d1feb3c' })), h("div", { key: '55f1eb08c4b705e94fbcf02220bbe1d292f06155', class: "native-wrapper" }, this.renderToggleControl()))));
178
179
  }
179
180
  get el() { return this; }
180
181
  static get watchers() { return {
@@ -194,6 +195,7 @@ const Toggle = /*@__PURE__*/ proxyCustomElement(class Toggle extends HTMLElement
194
195
  "labelPlacement": [1, "label-placement"],
195
196
  "justify": [1],
196
197
  "alignment": [1],
198
+ "required": [4],
197
199
  "activated": [32]
198
200
  }, undefined, {
199
201
  "disabled": ["disabledChanged"]
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import { setMode, getMode } from '@stencil/core/internal/client';
4
+ import { setPlatformHelpers, setMode, getMode } from '@stencil/core/internal/client';
5
5
 
6
6
  // TODO(FW-2832): types
7
7
  class Config {
@@ -178,6 +178,17 @@ const initialize = (userConfig = {}) => {
178
178
  const doc = window.document;
179
179
  const win = window;
180
180
  const Ionic = (win.Ionic = win.Ionic || {});
181
+ const platformHelpers = {};
182
+ if (userConfig._ael) {
183
+ platformHelpers.ael = userConfig._ael;
184
+ }
185
+ if (userConfig._rel) {
186
+ platformHelpers.rel = userConfig._rel;
187
+ }
188
+ if (userConfig._ce) {
189
+ platformHelpers.ce = userConfig._ce;
190
+ }
191
+ setPlatformHelpers(platformHelpers);
181
192
  // create the Ionic.config from raw config object (if it exists)
182
193
  // and convert Ionic.config into a ConfigApi that has a get() fn
183
194
  const configObj = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, configFromSession(win)), { persistConfig: false }), Ionic.config), configFromURL(win)), userConfig);