@ionic/core 8.4.4-dev.11741032668.18899f9b → 8.4.4-dev.11741046329.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 (436) hide show
  1. package/components/checkbox.js +40 -6
  2. package/components/helpers.js +1 -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 +6 -4
  7. package/components/ion-toggle.js +6 -4
  8. package/components/ionic-global.js +1 -2
  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-4283fe37.js → app-globals-21afee77.js} +1 -1
  14. package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
  15. package/dist/cjs/{framework-delegate-05579976.js → framework-delegate-55f5683a.js} +1 -1
  16. package/dist/cjs/{hardware-back-button-f2cbbdce.js → hardware-back-button-9e8a2c4f.js} +1 -1
  17. package/dist/cjs/{helpers-4be3f90d.js → helpers-afaa9001.js} +0 -11
  18. package/dist/cjs/{index-c441c903.js → index-0d762bba.js} +2 -2
  19. package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
  20. package/dist/cjs/{index-9c6c9e9c.js → index-3652c918.js} +4 -4
  21. package/dist/cjs/{index-ad7a712e.js → index-9509ecad.js} +1 -1
  22. package/dist/cjs/{index-90ec3b6c.js → index-e975c92b.js} +5 -5
  23. package/dist/cjs/index.cjs.js +10 -10
  24. package/dist/cjs/{input-shims-e748a364.js → input-shims-cd05268a.js} +5 -3
  25. package/dist/cjs/{input.utils-74e4ec28.js → input.utils-ffb2f81b.js} +2 -2
  26. package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
  27. package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
  28. package/dist/cjs/ion-alert.cjs.entry.js +6 -6
  29. package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
  30. package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
  31. package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
  32. package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
  33. package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
  34. package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
  35. package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
  36. package/dist/cjs/ion-checkbox.cjs.entry.js +39 -8
  37. package/dist/cjs/ion-chip.cjs.entry.js +1 -1
  38. package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
  39. package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
  40. package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
  41. package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
  42. package/dist/cjs/ion-img.cjs.entry.js +2 -2
  43. package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
  44. package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
  45. package/dist/cjs/ion-input.cjs.entry.js +5 -5
  46. package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
  47. package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
  48. package/dist/cjs/ion-loading.cjs.entry.js +6 -6
  49. package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
  50. package/dist/cjs/ion-modal.cjs.entry.js +266 -43
  51. package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
  52. package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
  53. package/dist/cjs/ion-picker-column.cjs.entry.js +2 -2
  54. package/dist/cjs/ion-picker.cjs.entry.js +1 -1
  55. package/dist/cjs/ion-popover.cjs.entry.js +7 -7
  56. package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
  57. package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
  58. package/dist/cjs/ion-range.cjs.entry.js +4 -4
  59. package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
  60. package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
  61. package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
  62. package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
  63. package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
  64. package/dist/cjs/ion-segment_2.cjs.entry.js +10 -41
  65. package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
  66. package/dist/cjs/ion-select_3.cjs.entry.js +12 -11
  67. package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
  68. package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
  69. package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
  70. package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
  71. package/dist/cjs/ion-text.cjs.entry.js +1 -1
  72. package/dist/cjs/ion-textarea.cjs.entry.js +5 -5
  73. package/dist/cjs/ion-toast.cjs.entry.js +6 -6
  74. package/dist/cjs/ion-toggle.cjs.entry.js +7 -6
  75. package/dist/cjs/{ionic-global-96da1b2e.js → ionic-global-d9a8bb5b.js} +1 -2
  76. package/dist/cjs/ionic.cjs.js +3 -3
  77. package/dist/cjs/{ios.transition-2dae3b92.js → ios.transition-0e664e88.js} +4 -4
  78. package/dist/cjs/loader.cjs.js +3 -3
  79. package/dist/cjs/{md.transition-ea3260a7.js → md.transition-2e8aef2c.js} +4 -4
  80. package/dist/cjs/{notch-controller-a0c464d1.js → notch-controller-d69150f5.js} +1 -1
  81. package/dist/cjs/{overlays-3880b5b5.js → overlays-65fdaff6.js} +5 -5
  82. package/dist/cjs/{status-tap-fb807fad.js → status-tap-d74f1429.js} +4 -3
  83. package/dist/cjs/{swipe-back-47a52b83.js → swipe-back-0303a5e4.js} +1 -1
  84. package/dist/collection/components/checkbox/checkbox.ios.css +52 -15
  85. package/dist/collection/components/checkbox/checkbox.js +90 -4
  86. package/dist/collection/components/checkbox/checkbox.md.css +52 -15
  87. package/dist/collection/components/modal/animations/ios.enter.js +50 -4
  88. package/dist/collection/components/modal/animations/ios.leave.js +24 -2
  89. package/dist/collection/components/modal/animations/md.enter.js +52 -5
  90. package/dist/collection/components/modal/animations/md.leave.js +26 -3
  91. package/dist/collection/components/modal/animations/sheet.js +11 -2
  92. package/dist/collection/components/modal/gestures/sheet.js +79 -10
  93. package/dist/collection/components/modal/modal.ios.css +16 -0
  94. package/dist/collection/components/modal/modal.js +32 -7
  95. package/dist/collection/components/modal/modal.md.css +6 -0
  96. package/dist/collection/components/segment-button/segment-button.js +9 -40
  97. package/dist/collection/components/select/select.js +23 -4
  98. package/dist/collection/components/toggle/toggle.js +23 -4
  99. package/dist/collection/components/toolbar/toolbar.js +6 -2
  100. package/dist/collection/utils/helpers.js +0 -10
  101. package/dist/collection/utils/logging/index.js +10 -3
  102. package/dist/collection/utils/platform.js +1 -2
  103. package/dist/collection/utils/test/platform.utils.js +1 -1
  104. package/dist/docs.json +187 -2
  105. package/dist/esm/{app-globals-c10a1137.js → app-globals-5dbb61a5.js} +1 -1
  106. package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  107. package/dist/esm/{framework-delegate-f683816e.js → framework-delegate-63d1a679.js} +1 -1
  108. package/dist/esm/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
  109. package/dist/esm/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -11
  110. package/dist/esm/{index-b019fc18.js → index-2f7fde3d.js} +5 -5
  111. package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
  112. package/dist/esm/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
  113. package/dist/esm/{index-e1e9a0d3.js → index-cb21eccb.js} +4 -4
  114. package/dist/esm/{index-33f7e3ff.js → index-efb8ecdf.js} +2 -2
  115. package/dist/esm/index.js +10 -10
  116. package/dist/esm/{input-shims-0e65111b.js → input-shims-2fd7c6ef.js} +5 -3
  117. package/dist/esm/{input.utils-1ad8dafc.js → input.utils-961c9f17.js} +2 -2
  118. package/dist/esm/ion-accordion_2.entry.js +3 -3
  119. package/dist/esm/ion-action-sheet.entry.js +6 -6
  120. package/dist/esm/ion-alert.entry.js +6 -6
  121. package/dist/esm/ion-app_8.entry.js +14 -14
  122. package/dist/esm/ion-avatar_3.entry.js +1 -1
  123. package/dist/esm/ion-back-button.entry.js +2 -2
  124. package/dist/esm/ion-backdrop.entry.js +1 -1
  125. package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
  126. package/dist/esm/ion-button_2.entry.js +3 -3
  127. package/dist/esm/ion-card_5.entry.js +2 -2
  128. package/dist/esm/ion-checkbox.entry.js +39 -8
  129. package/dist/esm/ion-chip.entry.js +1 -1
  130. package/dist/esm/ion-col_3.entry.js +1 -1
  131. package/dist/esm/ion-datetime-button.entry.js +4 -4
  132. package/dist/esm/ion-datetime_3.entry.js +7 -7
  133. package/dist/esm/ion-fab_3.entry.js +2 -2
  134. package/dist/esm/ion-img.entry.js +2 -2
  135. package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
  136. package/dist/esm/ion-input-password-toggle.entry.js +2 -2
  137. package/dist/esm/ion-input.entry.js +5 -5
  138. package/dist/esm/ion-item-option_3.entry.js +4 -4
  139. package/dist/esm/ion-item_8.entry.js +2 -2
  140. package/dist/esm/ion-loading.entry.js +6 -6
  141. package/dist/esm/ion-menu_3.entry.js +7 -7
  142. package/dist/esm/ion-modal.entry.js +266 -43
  143. package/dist/esm/ion-nav_2.entry.js +6 -6
  144. package/dist/esm/ion-picker-column-option.entry.js +2 -2
  145. package/dist/esm/ion-picker-column.entry.js +2 -2
  146. package/dist/esm/ion-picker.entry.js +1 -1
  147. package/dist/esm/ion-popover.entry.js +7 -7
  148. package/dist/esm/ion-progress-bar.entry.js +2 -2
  149. package/dist/esm/ion-radio_2.entry.js +2 -2
  150. package/dist/esm/ion-range.entry.js +4 -4
  151. package/dist/esm/ion-refresher_2.entry.js +4 -4
  152. package/dist/esm/ion-reorder_2.entry.js +4 -4
  153. package/dist/esm/ion-ripple-effect.entry.js +1 -1
  154. package/dist/esm/ion-route_4.entry.js +2 -2
  155. package/dist/esm/ion-searchbar.entry.js +2 -2
  156. package/dist/esm/ion-segment_2.entry.js +10 -41
  157. package/dist/esm/ion-select-modal.entry.js +6 -6
  158. package/dist/esm/ion-select_3.entry.js +12 -11
  159. package/dist/esm/ion-spinner.entry.js +1 -1
  160. package/dist/esm/ion-split-pane.entry.js +1 -1
  161. package/dist/esm/ion-tab-bar_2.entry.js +2 -2
  162. package/dist/esm/ion-tab_2.entry.js +2 -2
  163. package/dist/esm/ion-text.entry.js +1 -1
  164. package/dist/esm/ion-textarea.entry.js +5 -5
  165. package/dist/esm/ion-toast.entry.js +6 -6
  166. package/dist/esm/ion-toggle.entry.js +7 -6
  167. package/dist/esm/{ionic-global-bf78a847.js → ionic-global-c81d82ab.js} +1 -2
  168. package/dist/esm/ionic.js +3 -3
  169. package/dist/esm/{ios.transition-b7103952.js → ios.transition-b1da3753.js} +4 -4
  170. package/dist/esm/loader.js +3 -3
  171. package/dist/esm/{md.transition-e4034e0a.js → md.transition-571b3859.js} +4 -4
  172. package/dist/esm/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
  173. package/dist/esm/{overlays-aea27b63.js → overlays-5deab4de.js} +5 -5
  174. package/dist/esm/{status-tap-163e8128.js → status-tap-79eac0ac.js} +4 -3
  175. package/dist/esm/{swipe-back-23ee7ab1.js → swipe-back-e5394307.js} +1 -1
  176. package/dist/esm-es5/app-globals-5dbb61a5.js +4 -0
  177. package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
  178. package/dist/esm-es5/{framework-delegate-f683816e.js → framework-delegate-63d1a679.js} +1 -1
  179. package/dist/esm-es5/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
  180. package/dist/esm-es5/{helpers-9b49d7d2.js → helpers-da915de8.js} +1 -1
  181. package/dist/esm-es5/{index-b019fc18.js → index-2f7fde3d.js} +1 -1
  182. package/dist/esm-es5/index-6ad967f3.js +4 -0
  183. package/dist/esm-es5/{index-5a0f5fd0.js → index-79b30591.js} +1 -1
  184. package/dist/esm-es5/{index-e1e9a0d3.js → index-cb21eccb.js} +1 -1
  185. package/dist/esm-es5/{index-33f7e3ff.js → index-efb8ecdf.js} +1 -1
  186. package/dist/esm-es5/index.js +1 -1
  187. package/dist/esm-es5/input-shims-2fd7c6ef.js +4 -0
  188. package/dist/esm-es5/{input.utils-1ad8dafc.js → input.utils-961c9f17.js} +1 -1
  189. package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
  190. package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
  191. package/dist/esm-es5/ion-alert.entry.js +1 -1
  192. package/dist/esm-es5/ion-app_8.entry.js +1 -1
  193. package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
  194. package/dist/esm-es5/ion-back-button.entry.js +1 -1
  195. package/dist/esm-es5/ion-backdrop.entry.js +1 -1
  196. package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
  197. package/dist/esm-es5/ion-button_2.entry.js +1 -1
  198. package/dist/esm-es5/ion-card_5.entry.js +1 -1
  199. package/dist/esm-es5/ion-checkbox.entry.js +1 -1
  200. package/dist/esm-es5/ion-chip.entry.js +1 -1
  201. package/dist/esm-es5/ion-col_3.entry.js +1 -1
  202. package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
  203. package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
  204. package/dist/esm-es5/ion-fab_3.entry.js +1 -1
  205. package/dist/esm-es5/ion-img.entry.js +1 -1
  206. package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
  207. package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
  208. package/dist/esm-es5/ion-input.entry.js +1 -1
  209. package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
  210. package/dist/esm-es5/ion-item_8.entry.js +1 -1
  211. package/dist/esm-es5/ion-loading.entry.js +1 -1
  212. package/dist/esm-es5/ion-menu_3.entry.js +1 -1
  213. package/dist/esm-es5/ion-modal.entry.js +1 -1
  214. package/dist/esm-es5/ion-nav_2.entry.js +1 -1
  215. package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
  216. package/dist/esm-es5/ion-picker-column.entry.js +1 -1
  217. package/dist/esm-es5/ion-picker.entry.js +1 -1
  218. package/dist/esm-es5/ion-popover.entry.js +1 -1
  219. package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
  220. package/dist/esm-es5/ion-radio_2.entry.js +1 -1
  221. package/dist/esm-es5/ion-range.entry.js +1 -1
  222. package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
  223. package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
  224. package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
  225. package/dist/esm-es5/ion-route_4.entry.js +1 -1
  226. package/dist/esm-es5/ion-searchbar.entry.js +1 -1
  227. package/dist/esm-es5/ion-segment_2.entry.js +1 -1
  228. package/dist/esm-es5/ion-select-modal.entry.js +1 -1
  229. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  230. package/dist/esm-es5/ion-spinner.entry.js +1 -1
  231. package/dist/esm-es5/ion-split-pane.entry.js +1 -1
  232. package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
  233. package/dist/esm-es5/ion-tab_2.entry.js +1 -1
  234. package/dist/esm-es5/ion-text.entry.js +1 -1
  235. package/dist/esm-es5/ion-textarea.entry.js +1 -1
  236. package/dist/esm-es5/ion-toast.entry.js +1 -1
  237. package/dist/esm-es5/ion-toggle.entry.js +1 -1
  238. package/dist/esm-es5/{ionic-global-bf78a847.js → ionic-global-c81d82ab.js} +1 -1
  239. package/dist/esm-es5/ionic.js +1 -1
  240. package/dist/esm-es5/{ios.transition-b7103952.js → ios.transition-b1da3753.js} +1 -1
  241. package/dist/esm-es5/loader.js +1 -1
  242. package/dist/esm-es5/md.transition-571b3859.js +4 -0
  243. package/dist/esm-es5/{notch-controller-3dc61260.js → notch-controller-55b09e11.js} +1 -1
  244. package/dist/esm-es5/{overlays-aea27b63.js → overlays-5deab4de.js} +1 -1
  245. package/dist/esm-es5/status-tap-79eac0ac.js +4 -0
  246. package/dist/esm-es5/{swipe-back-23ee7ab1.js → swipe-back-e5394307.js} +1 -1
  247. package/dist/html.html-data.json +24 -0
  248. package/dist/ionic/index.esm.js +1 -1
  249. package/dist/ionic/ionic.esm.js +1 -1
  250. package/dist/ionic/ionic.js +1 -1
  251. package/dist/ionic/{p-3c6d2c1e.system.entry.js → p-01186920.system.entry.js} +1 -1
  252. package/dist/ionic/p-0430c2e0.entry.js +4 -0
  253. package/dist/ionic/p-0574e87e.js +4 -0
  254. package/dist/ionic/{p-77b1bb00.system.entry.js → p-05b74e45.system.entry.js} +1 -1
  255. package/dist/ionic/{p-b7d2ba68.entry.js → p-081a4ce4.entry.js} +1 -1
  256. package/dist/ionic/p-0af823e1.js +4 -0
  257. package/dist/ionic/{p-aa63b365.system.js → p-0eb35a7f.system.js} +1 -1
  258. package/dist/ionic/p-1132ffee.entry.js +4 -0
  259. package/dist/ionic/{p-60f1b2fa.entry.js → p-120fb79a.entry.js} +1 -1
  260. package/dist/ionic/{p-98c08d09.entry.js → p-15d18206.entry.js} +1 -1
  261. package/dist/ionic/{p-035c0885.entry.js → p-15e76dd1.entry.js} +1 -1
  262. package/dist/ionic/{p-6b1f082e.entry.js → p-16188af7.entry.js} +1 -1
  263. package/dist/ionic/p-16bfb979.system.entry.js +4 -0
  264. package/dist/ionic/{p-5126cf1e.system.js → p-19ea7bff.system.js} +1 -1
  265. package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
  266. package/dist/ionic/{p-42808996.js → p-1ab13b2b.js} +1 -1
  267. package/dist/ionic/{p-13892787.system.entry.js → p-1e67b266.system.entry.js} +1 -1
  268. package/dist/ionic/{p-e2e19375.system.entry.js → p-2172893e.system.entry.js} +1 -1
  269. package/dist/ionic/{p-ea7c658c.system.entry.js → p-2346ab53.system.entry.js} +2 -2
  270. package/dist/ionic/{p-944d66b5.system.entry.js → p-248318e0.system.entry.js} +1 -1
  271. package/dist/ionic/{p-a873feda.system.entry.js → p-2507278c.system.entry.js} +1 -1
  272. package/dist/ionic/{p-eb599bcb.js → p-28706c6f.js} +1 -1
  273. package/dist/ionic/{p-4eed0eb2.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
  274. package/dist/ionic/{p-a197ff3b.system.entry.js → p-2b838f86.system.entry.js} +1 -1
  275. package/dist/ionic/{p-a3705e10.entry.js → p-2da9c8a7.entry.js} +1 -1
  276. package/dist/ionic/{p-92e4df0c.system.entry.js → p-2e46590d.system.entry.js} +1 -1
  277. package/dist/ionic/{p-e78bff37.system.entry.js → p-302b50bb.system.entry.js} +1 -1
  278. package/dist/ionic/p-322c5fb4.system.js +4 -0
  279. package/dist/ionic/{p-c66604e4.entry.js → p-33a8a71b.entry.js} +1 -1
  280. package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
  281. package/dist/ionic/{p-2bc73fb5.js → p-34b11c24.js} +1 -1
  282. package/dist/ionic/{p-b3680e2f.system.js → p-3ad285e3.system.js} +1 -1
  283. package/dist/ionic/{p-8911101b.system.js → p-3c8e5c23.system.js} +1 -1
  284. package/dist/ionic/{p-d4ca0475.js → p-3cc276f4.js} +1 -1
  285. package/dist/ionic/p-49a0e74c.entry.js +4 -0
  286. package/dist/ionic/p-4c2d5b80.system.js +4 -0
  287. package/dist/ionic/p-4c98e2cf.system.js +4 -0
  288. package/dist/ionic/p-4ec778aa.entry.js +4 -0
  289. package/dist/ionic/{p-4ad78edc.entry.js → p-52d7a191.entry.js} +1 -1
  290. package/dist/ionic/{p-1543d6b2.system.entry.js → p-567de071.system.entry.js} +1 -1
  291. package/dist/ionic/p-577bc414.entry.js +4 -0
  292. package/dist/ionic/{p-22e4210e.system.entry.js → p-585b455c.system.entry.js} +1 -1
  293. package/dist/ionic/{p-42585688.system.entry.js → p-58d5df0c.system.entry.js} +1 -1
  294. package/dist/ionic/{p-026517fb.entry.js → p-5b932840.entry.js} +1 -1
  295. package/dist/ionic/{p-97acff20.system.js → p-5c08627a.system.js} +1 -1
  296. package/dist/ionic/{p-eb6f173b.entry.js → p-5c9eb9af.entry.js} +1 -1
  297. package/dist/ionic/{p-9c7efe25.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
  298. package/dist/ionic/{p-f00ba947.entry.js → p-61db139d.entry.js} +1 -1
  299. package/dist/ionic/{p-85b1ffae.entry.js → p-62af944c.entry.js} +1 -1
  300. package/dist/ionic/{p-4c9ccc7f.system.entry.js → p-63b0abde.system.entry.js} +1 -1
  301. package/dist/ionic/p-67222c16.system.js +4 -0
  302. package/dist/ionic/{p-ca908a50.system.entry.js → p-6933c482.system.entry.js} +1 -1
  303. package/dist/ionic/{p-c2583512.entry.js → p-6d32975a.entry.js} +1 -1
  304. package/dist/ionic/{p-dd0cad9c.entry.js → p-6d6cedc5.entry.js} +1 -1
  305. package/dist/ionic/{p-9c82a07c.system.entry.js → p-6dfb0f39.system.entry.js} +1 -1
  306. package/dist/ionic/{p-7a1766d6.js → p-72812e99.js} +1 -1
  307. package/dist/ionic/p-72bc8a1c.js +4 -0
  308. package/dist/ionic/{p-c3f4ea6c.system.entry.js → p-744c8672.system.entry.js} +1 -1
  309. package/dist/ionic/{p-d4896d36.system.entry.js → p-7458862e.system.entry.js} +1 -1
  310. package/dist/ionic/{p-d0a7f584.system.entry.js → p-74e3f0af.system.entry.js} +2 -2
  311. package/dist/ionic/p-7513b0c4.js +4 -0
  312. package/dist/ionic/{p-5a8efe64.system.entry.js → p-797eeea8.system.entry.js} +1 -1
  313. package/dist/ionic/{p-fd988d29.entry.js → p-7a02f476.entry.js} +1 -1
  314. package/dist/ionic/{p-0dc23518.entry.js → p-7a6eaf9e.entry.js} +1 -1
  315. package/dist/ionic/{p-288a2cff.entry.js → p-7b9a2b23.entry.js} +1 -1
  316. package/dist/ionic/{p-b637aa3f.system.entry.js → p-7ddc46c3.system.entry.js} +1 -1
  317. package/dist/ionic/p-7de1e42c.system.js +4 -0
  318. package/dist/ionic/{p-0eb2553a.system.entry.js → p-7ed1657c.system.entry.js} +1 -1
  319. package/dist/ionic/{p-95da3ae2.system.js → p-8635f5e6.system.js} +1 -1
  320. package/dist/ionic/{p-5bc12439.entry.js → p-8694928f.entry.js} +1 -1
  321. package/dist/ionic/{p-ebd0a280.entry.js → p-89bf08c7.entry.js} +1 -1
  322. package/dist/ionic/{p-830f1a37.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
  323. package/dist/ionic/{p-4f2f4e3b.entry.js → p-92763d3d.entry.js} +1 -1
  324. package/dist/ionic/{p-0d0a6fb9.system.entry.js → p-933727f9.system.entry.js} +1 -1
  325. package/dist/ionic/p-9343a445.js +4 -0
  326. package/dist/ionic/{p-656516a2.entry.js → p-937a7e21.entry.js} +1 -1
  327. package/dist/ionic/{p-2c9abc61.entry.js → p-948e6c6a.entry.js} +1 -1
  328. package/dist/ionic/{p-56a8aa85.entry.js → p-95775830.entry.js} +1 -1
  329. package/dist/ionic/{p-9065e1ed.system.entry.js → p-98231c01.system.entry.js} +1 -1
  330. package/dist/ionic/{p-808c9efc.system.entry.js → p-985a7e17.system.entry.js} +1 -1
  331. package/dist/ionic/{p-703d60a2.entry.js → p-98ff6b32.entry.js} +1 -1
  332. package/dist/ionic/{p-28cb707b.system.entry.js → p-9b122e3c.system.entry.js} +1 -1
  333. package/dist/ionic/{p-b609d03b.entry.js → p-9b428d25.entry.js} +1 -1
  334. package/dist/ionic/{p-85632b54.entry.js → p-9df2c6fb.entry.js} +1 -1
  335. package/dist/ionic/{p-eb4ac14d.system.js → p-9f3008d4.system.js} +1 -1
  336. package/dist/ionic/{p-d17f0dca.system.entry.js → p-9f364443.system.entry.js} +1 -1
  337. package/dist/ionic/{p-50c24ade.system.entry.js → p-a090bce8.system.entry.js} +1 -1
  338. package/dist/ionic/{p-5b03d498.system.entry.js → p-a0eb506c.system.entry.js} +1 -1
  339. package/dist/ionic/{p-4452a8ac.system.js → p-a15ddedb.system.js} +1 -1
  340. package/dist/ionic/p-a3db8ee3.js +4 -0
  341. package/dist/ionic/{p-9393bfbe.system.entry.js → p-a4a2420e.system.entry.js} +1 -1
  342. package/dist/ionic/{p-d86d7845.system.js → p-a69b9fc5.system.js} +1 -1
  343. package/dist/ionic/{p-1a790eef.system.js → p-a88dec0d.system.js} +2 -2
  344. package/dist/ionic/{p-c15a77e2.entry.js → p-a8f2c254.entry.js} +1 -1
  345. package/dist/ionic/{p-1c2f74e4.system.entry.js → p-ab674093.system.entry.js} +1 -1
  346. package/dist/ionic/{p-647b0625.system.js → p-ada36597.system.js} +1 -1
  347. package/dist/ionic/{p-42a9bb35.entry.js → p-afecb188.entry.js} +1 -1
  348. package/dist/ionic/{p-5b867a40.entry.js → p-b1eb86fd.entry.js} +1 -1
  349. package/dist/ionic/{p-c6ff3239.system.js → p-b3c60433.system.js} +1 -1
  350. package/dist/ionic/{p-bb11d9fb.js → p-b51e4004.js} +1 -1
  351. package/dist/ionic/{p-8db44ad3.js → p-b6efeab8.js} +1 -1
  352. package/dist/ionic/{p-406f9aa1.entry.js → p-b9d7015f.entry.js} +1 -1
  353. package/dist/ionic/{p-200dfb8f.entry.js → p-bb0db172.entry.js} +1 -1
  354. package/dist/ionic/{p-9d4a8059.entry.js → p-bdad26e3.entry.js} +1 -1
  355. package/dist/ionic/{p-842bb3c8.system.entry.js → p-bdf2cb2e.system.entry.js} +1 -1
  356. package/dist/ionic/{p-b5639a4f.entry.js → p-c41ac815.entry.js} +1 -1
  357. package/dist/ionic/{p-f1d1c614.system.js → p-c4238c12.system.js} +1 -1
  358. package/dist/ionic/p-c4b53b16.system.entry.js +4 -0
  359. package/dist/ionic/{p-dcc9aaf1.system.entry.js → p-cac0e0b3.system.entry.js} +1 -1
  360. package/dist/ionic/p-cb13696c.js +4 -0
  361. package/dist/ionic/{p-ef144104.system.entry.js → p-cba1f9bc.system.entry.js} +1 -1
  362. package/dist/ionic/p-cdc83025.entry.js +4 -0
  363. package/dist/ionic/p-d1c5b60e.system.js +4 -0
  364. package/dist/ionic/{p-881d9e52.system.js → p-d22e2a38.system.js} +1 -1
  365. package/dist/ionic/{p-8154947f.system.entry.js → p-d6eaffb1.system.entry.js} +2 -2
  366. package/dist/ionic/{p-e25cd3c7.js → p-d743e981.js} +1 -1
  367. package/dist/ionic/{p-72b65035.entry.js → p-d7aa6b00.entry.js} +1 -1
  368. package/dist/ionic/p-d7dd8fb1.entry.js +4 -0
  369. package/dist/ionic/{p-c3f5dcf9.entry.js → p-de930745.entry.js} +1 -1
  370. package/dist/ionic/{p-9fe2050a.entry.js → p-e06057c9.entry.js} +1 -1
  371. package/dist/ionic/{p-4a465405.system.entry.js → p-e09d6392.system.entry.js} +2 -2
  372. package/dist/ionic/p-e3171ff3.entry.js +4 -0
  373. package/dist/ionic/{p-16f1ba65.system.entry.js → p-e4ee80be.system.entry.js} +1 -1
  374. package/dist/ionic/p-e4fde4fb.system.entry.js +4 -0
  375. package/dist/ionic/p-e6376b93.system.entry.js +4 -0
  376. package/dist/ionic/{p-faa5e2b9.entry.js → p-e76dae93.entry.js} +1 -1
  377. package/dist/ionic/p-e8d56122.js +4 -0
  378. package/dist/ionic/{p-6f3d8334.js → p-ecceeb90.js} +1 -1
  379. package/dist/ionic/{p-d7fef52e.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
  380. package/dist/ionic/{p-acc78e36.entry.js → p-eef505e8.entry.js} +1 -1
  381. package/dist/ionic/{p-a33837c9.entry.js → p-f1060cd8.entry.js} +1 -1
  382. package/dist/ionic/{p-9ce56f65.system.entry.js → p-f1120724.system.entry.js} +1 -1
  383. package/dist/ionic/{p-0a499487.js → p-f1c4dcd4.js} +1 -1
  384. package/dist/ionic/{p-478dfa8c.system.entry.js → p-f3102647.system.entry.js} +1 -1
  385. package/dist/ionic/{p-13052792.entry.js → p-f63c2d12.entry.js} +1 -1
  386. package/dist/ionic/{p-5976e3b7.system.entry.js → p-fbd41a7e.system.entry.js} +1 -1
  387. package/dist/ionic/{p-712b57f9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
  388. package/dist/ionic/{p-bed40aa8.entry.js → p-fceec762.entry.js} +1 -1
  389. package/dist/types/components/checkbox/checkbox.d.ts +25 -0
  390. package/dist/types/components/modal/animations/sheet.d.ts +1 -0
  391. package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
  392. package/dist/types/components/modal/modal-interface.d.ts +1 -0
  393. package/dist/types/components/modal/modal.d.ts +11 -0
  394. package/dist/types/components/segment-button/segment-button.d.ts +1 -2
  395. package/dist/types/components/select/select.d.ts +6 -0
  396. package/dist/types/components/toggle/toggle.d.ts +6 -0
  397. package/dist/types/components/toolbar/toolbar.d.ts +4 -0
  398. package/dist/types/components.d.ts +48 -0
  399. package/dist/types/utils/config.d.ts +9 -0
  400. package/dist/types/utils/helpers.d.ts +0 -1
  401. package/dist/types/utils/logging/index.d.ts +13 -1
  402. package/dist/types/utils/test/platform.utils.d.ts +1 -1
  403. package/hydrate/index.js +338 -105
  404. package/hydrate/index.mjs +338 -105
  405. package/package.json +1 -1
  406. package/dist/esm-es5/app-globals-c10a1137.js +0 -4
  407. package/dist/esm-es5/index-9b0d46f4.js +0 -4
  408. package/dist/esm-es5/input-shims-0e65111b.js +0 -4
  409. package/dist/esm-es5/md.transition-e4034e0a.js +0 -4
  410. package/dist/esm-es5/status-tap-163e8128.js +0 -4
  411. package/dist/ionic/p-0440660b.js +0 -4
  412. package/dist/ionic/p-06fee233.js +0 -4
  413. package/dist/ionic/p-075a94bd.js +0 -4
  414. package/dist/ionic/p-0ee3b5a2.system.js +0 -4
  415. package/dist/ionic/p-135e5731.js +0 -4
  416. package/dist/ionic/p-1f405274.js +0 -4
  417. package/dist/ionic/p-2c9eb774.system.js +0 -4
  418. package/dist/ionic/p-30ec5574.entry.js +0 -4
  419. package/dist/ionic/p-3667bc71.system.js +0 -4
  420. package/dist/ionic/p-3c7371c4.system.entry.js +0 -4
  421. package/dist/ionic/p-47e6c342.js +0 -4
  422. package/dist/ionic/p-4e8946f7.js +0 -4
  423. package/dist/ionic/p-51f13ac7.entry.js +0 -4
  424. package/dist/ionic/p-6167f80e.entry.js +0 -4
  425. package/dist/ionic/p-627c1f42.entry.js +0 -4
  426. package/dist/ionic/p-68dc53a5.js +0 -4
  427. package/dist/ionic/p-699c97a3.entry.js +0 -4
  428. package/dist/ionic/p-6bc9998f.entry.js +0 -4
  429. package/dist/ionic/p-75a0fffe.system.entry.js +0 -4
  430. package/dist/ionic/p-af09741c.entry.js +0 -4
  431. package/dist/ionic/p-c42a4dad.system.entry.js +0 -4
  432. package/dist/ionic/p-cc964e4f.system.js +0 -4
  433. package/dist/ionic/p-ddc058a7.system.entry.js +0 -4
  434. package/dist/ionic/p-e3357909.entry.js +0 -4
  435. package/dist/ionic/p-f4f255cb.system.js +0 -4
  436. 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;
@@ -358,15 +358,5 @@ const shallowEqualStringMap = (map1, map2) => {
358
358
  }
359
359
  return true;
360
360
  };
361
- const getNextSiblingOfType = (element) => {
362
- let sibling = element.nextSibling;
363
- while (sibling) {
364
- if (sibling.nodeType === Node.ELEMENT_NODE && sibling !== null) {
365
- return sibling;
366
- }
367
- sibling = sibling.nextSibling;
368
- }
369
- return null;
370
- };
371
361
 
372
- 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 {
@@ -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();
@@ -606,8 +607,8 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
606
607
  return renderedLabel;
607
608
  }
608
609
  renderListbox() {
609
- const { disabled, inputId, isExpanded } = this;
610
- 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) }));
611
612
  }
612
613
  render() {
613
614
  const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
@@ -638,7 +639,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
638
639
  * TODO(FW-5592): Remove hasStartEndSlots condition
639
640
  */
640
641
  const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
641
- return (h(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses(this.color, {
642
+ return (h(Host, { key: '491cf1b0e3aa31e7c9cfad3e87d83eb54272312a', onClick: this.onClick, class: createColorClasses(this.color, {
642
643
  [mode]: true,
643
644
  'in-item': inItem,
644
645
  'in-item-color': hostContext('ion-item.ion-color', el),
@@ -654,7 +655,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
654
655
  [`select-justify-${justify}`]: justifyEnabled,
655
656
  [`select-shape-${shape}`]: shape !== undefined,
656
657
  [`select-label-placement-${labelPlacement}`]: true,
657
- }) }, h("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, h("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), h("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', 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" }))));
658
659
  }
659
660
  get el() { return this; }
660
661
  static get watchers() { return {
@@ -687,6 +688,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
687
688
  "expandedIcon": [1, "expanded-icon"],
688
689
  "shape": [1],
689
690
  "value": [1032],
691
+ "required": [4],
690
692
  "isExpanded": [32],
691
693
  "open": [64]
692
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"]
@@ -143,8 +143,7 @@ const isHybrid = (win) => isCordova(win) || isCapacitorNative(win);
143
143
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
144
144
  const isCapacitorNative = (win) => {
145
145
  const capacitor = win['Capacitor'];
146
- // TODO(ROU-11693): Remove when we no longer support Capacitor 2, which does not have isNativePlatform
147
- return !!((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative) || ((capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNativePlatform) && !!capacitor.isNativePlatform()));
146
+ return !!(capacitor === null || capacitor === void 0 ? void 0 : capacitor.isNative);
148
147
  };
149
148
  const isElectron = (win) => testUserAgent(win, /electron/i);
150
149
  const isPWA = (win) => { var _a; return !!(((_a = win.matchMedia) === null || _a === void 0 ? void 0 : _a.call(win, '(display-mode: standalone)').matches) || win.navigator.standalone); };