wcs-core 7.5.1 → 7.7.0

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 (768) hide show
  1. package/bundle/index.js +1 -1
  2. package/bundle/p-035ad27f.js +2 -0
  3. package/bundle/{p-010cf905.js → p-16c7ed2e.js} +2 -2
  4. package/bundle/p-34ecd856.js +2 -0
  5. package/bundle/p-34ecd856.js.map +1 -0
  6. package/bundle/p-53550684.js +2 -0
  7. package/bundle/p-53550684.js.map +1 -0
  8. package/bundle/{p-97e70e10.js → p-5a997d17.js} +2 -2
  9. package/bundle/p-68ab4391.js +16 -0
  10. package/bundle/p-68ab4391.js.map +1 -0
  11. package/bundle/{p-60193ef5.js → p-791fce94.js} +2 -2
  12. package/bundle/{p-44a3b0b9.js → p-87b9556d.js} +2 -2
  13. package/bundle/{p-d23d7658.js → p-886109ed.js} +2 -2
  14. package/bundle/p-9138985e.js +2 -0
  15. package/bundle/p-9138985e.js.map +1 -0
  16. package/bundle/p-95eb2e54.js +2 -0
  17. package/bundle/p-95eb2e54.js.map +1 -0
  18. package/bundle/{p-2751ddc1.js → p-a9a83300.js} +2 -2
  19. package/bundle/{p-cdc6f6c2.js → p-c13e9bb6.js} +8 -8
  20. package/bundle/p-c13e9bb6.js.map +1 -0
  21. package/bundle/p-c70a403e.js +2 -0
  22. package/bundle/p-c70a403e.js.map +1 -0
  23. package/bundle/{p-c8b73e93.js → p-d7d1ea63.js} +2 -2
  24. package/bundle/p-f6d5c242.js +2 -0
  25. package/bundle/p-f6d5c242.js.map +1 -0
  26. package/bundle/wcs-accordion-panel.js +1 -1
  27. package/bundle/wcs-alert-drawer.js +1 -1
  28. package/bundle/wcs-alert-drawer.js.map +1 -1
  29. package/bundle/wcs-alert.js +1 -1
  30. package/bundle/wcs-app.js +1 -1
  31. package/bundle/wcs-badge.js +1 -1
  32. package/bundle/wcs-breadcrumb-item.js +1 -1
  33. package/bundle/wcs-breadcrumb.js +1 -1
  34. package/bundle/wcs-button.js +1 -1
  35. package/bundle/wcs-card-body.js +1 -1
  36. package/bundle/wcs-card-body.js.map +1 -1
  37. package/bundle/wcs-card-content.js +1 -1
  38. package/bundle/wcs-card-content.js.map +1 -1
  39. package/bundle/wcs-card-footer.js +1 -1
  40. package/bundle/wcs-card-header.js +1 -1
  41. package/bundle/wcs-card-media.js +1 -1
  42. package/bundle/wcs-card.js +1 -1
  43. package/bundle/wcs-card.js.map +1 -1
  44. package/bundle/wcs-checkbox.js +1 -1
  45. package/bundle/wcs-chip.js +1 -1
  46. package/bundle/wcs-chip.js.map +1 -1
  47. package/bundle/wcs-com-nav-category.js +1 -1
  48. package/bundle/wcs-com-nav-item.js +1 -1
  49. package/bundle/wcs-com-nav-submenu.js +1 -1
  50. package/bundle/wcs-com-nav.js +1 -1
  51. package/bundle/wcs-com-nav.js.map +1 -1
  52. package/bundle/wcs-counter.js +1 -1
  53. package/bundle/wcs-divider.js +1 -1
  54. package/bundle/wcs-dropdown-divider.js +1 -1
  55. package/bundle/wcs-dropdown-header.js +1 -1
  56. package/bundle/wcs-dropdown-item.js +1 -1
  57. package/bundle/wcs-dropdown.js +1 -1
  58. package/bundle/wcs-dropdown.js.map +1 -1
  59. package/bundle/wcs-editable-field.js +1 -1
  60. package/bundle/wcs-editable-field.js.map +1 -1
  61. package/bundle/wcs-error.js +1 -1
  62. package/bundle/wcs-field-content.js +1 -1
  63. package/bundle/wcs-field-content.js.map +1 -1
  64. package/bundle/wcs-field-label.js +1 -1
  65. package/bundle/wcs-field.js +1 -1
  66. package/bundle/wcs-field.js.map +1 -1
  67. package/bundle/wcs-footer.js +1 -1
  68. package/bundle/wcs-form-field.js +1 -1
  69. package/bundle/wcs-galactic-menu.js +1 -1
  70. package/bundle/wcs-galactic.js +1 -1
  71. package/bundle/wcs-grid-column.js +1 -1
  72. package/bundle/wcs-grid-custom-cell.js +1 -1
  73. package/bundle/wcs-grid-custom-cell.js.map +1 -1
  74. package/bundle/wcs-grid-pagination.js +1 -1
  75. package/bundle/wcs-grid.js +1 -1
  76. package/bundle/wcs-grid.js.map +1 -1
  77. package/bundle/wcs-header.js +1 -1
  78. package/bundle/wcs-hint.js +1 -1
  79. package/bundle/wcs-horizontal-stepper.js +1 -1
  80. package/bundle/wcs-icon.js +1 -1
  81. package/bundle/wcs-input.js +1 -1
  82. package/bundle/wcs-input.js.map +1 -1
  83. package/bundle/wcs-label.js +1 -1
  84. package/bundle/wcs-list-item-properties.js +1 -1
  85. package/bundle/wcs-list-item-property.js +1 -1
  86. package/bundle/wcs-list-item.js +1 -1
  87. package/bundle/wcs-mat-icon.js +1 -1
  88. package/bundle/wcs-message.d.ts +11 -0
  89. package/bundle/wcs-message.js +2 -0
  90. package/bundle/wcs-message.js.map +1 -0
  91. package/bundle/wcs-modal.js +1 -1
  92. package/bundle/wcs-native-select.js +1 -1
  93. package/bundle/wcs-nav-item.js +1 -1
  94. package/bundle/wcs-nav.js +1 -1
  95. package/bundle/wcs-progress-bar.js +1 -1
  96. package/bundle/wcs-progress-radial.js +1 -1
  97. package/bundle/wcs-radio-group.js +1 -1
  98. package/bundle/wcs-radio-group.js.map +1 -1
  99. package/bundle/wcs-radio.js +1 -1
  100. package/bundle/wcs-radio.js.map +1 -1
  101. package/bundle/wcs-select-option.js +1 -1
  102. package/bundle/wcs-select.js +1 -1
  103. package/bundle/wcs-skeleton-circle.js +1 -1
  104. package/bundle/wcs-skeleton-rectangle.js +1 -1
  105. package/bundle/wcs-skeleton-text.js +1 -1
  106. package/bundle/wcs-spinner.js +1 -1
  107. package/bundle/wcs-switch.js +1 -1
  108. package/bundle/wcs-tab.js +1 -1
  109. package/bundle/wcs-tab.js.map +1 -1
  110. package/bundle/wcs-tabs.js +1 -1
  111. package/bundle/wcs-textarea.js +1 -1
  112. package/bundle/wcs-tooltip.js +2 -2
  113. package/composite-elements/{p-a90bb01e.js → p-061ccda5.js} +2 -2
  114. package/composite-elements/{p-ef26b4d8.js → p-2181568b.js} +2 -2
  115. package/composite-elements/{p-b83afff9.js → p-61886571.js} +2 -2
  116. package/composite-elements/p-846e40e9.js +16 -0
  117. package/composite-elements/p-846e40e9.js.map +1 -0
  118. package/composite-elements/p-8a2107d4.js +2 -0
  119. package/composite-elements/p-8a2107d4.js.map +1 -0
  120. package/composite-elements/p-8cafb0b4.js +2 -0
  121. package/composite-elements/p-8cafb0b4.js.map +1 -0
  122. package/composite-elements/p-8f51f4cb.js +2 -0
  123. package/composite-elements/p-8f51f4cb.js.map +1 -0
  124. package/composite-elements/p-b53ae1a8.js +2 -0
  125. package/composite-elements/p-b53ae1a8.js.map +1 -0
  126. package/composite-elements/p-b6d0a6b4.js +2 -0
  127. package/composite-elements/p-cb9faa9b.js +2 -0
  128. package/composite-elements/{p-5a3d7fec.js → p-cd6cca64.js} +2 -2
  129. package/composite-elements/{p-04663560.js → p-d2d79425.js} +2 -2
  130. package/composite-elements/{p-b92e818b.js → p-f0b064a2.js} +2 -2
  131. package/composite-elements/{p-51517fda.js → p-f161f50b.js} +8 -8
  132. package/composite-elements/p-f161f50b.js.map +1 -0
  133. package/composite-elements/p-f6d5c242.js +2 -0
  134. package/composite-elements/p-f6d5c242.js.map +1 -0
  135. package/composite-elements/p-f85cc676.js +2 -0
  136. package/composite-elements/p-f85cc676.js.map +1 -0
  137. package/composite-elements/wcs-accordion-panel.js +1 -1
  138. package/composite-elements/wcs-alert-drawer.js +1 -1
  139. package/composite-elements/wcs-alert-drawer.js.map +1 -1
  140. package/composite-elements/wcs-alert.js +1 -1
  141. package/composite-elements/wcs-app.js +1 -1
  142. package/composite-elements/wcs-badge.js +1 -1
  143. package/composite-elements/wcs-breadcrumb-item.js +1 -1
  144. package/composite-elements/wcs-breadcrumb.js +1 -1
  145. package/composite-elements/wcs-button.js +1 -1
  146. package/composite-elements/wcs-card-body.js +1 -1
  147. package/composite-elements/wcs-card-body.js.map +1 -1
  148. package/composite-elements/wcs-card-content.js +1 -1
  149. package/composite-elements/wcs-card-content.js.map +1 -1
  150. package/composite-elements/wcs-card-footer.js +1 -1
  151. package/composite-elements/wcs-card-header.js +1 -1
  152. package/composite-elements/wcs-card-media.js +1 -1
  153. package/composite-elements/wcs-card.js +1 -1
  154. package/composite-elements/wcs-card.js.map +1 -1
  155. package/composite-elements/wcs-checkbox.js +1 -1
  156. package/composite-elements/wcs-chip.js +1 -1
  157. package/composite-elements/wcs-chip.js.map +1 -1
  158. package/composite-elements/wcs-com-nav-category.js +1 -1
  159. package/composite-elements/wcs-com-nav-item.js +1 -1
  160. package/composite-elements/wcs-com-nav-submenu.js +1 -1
  161. package/composite-elements/wcs-com-nav.js +1 -1
  162. package/composite-elements/wcs-com-nav.js.map +1 -1
  163. package/composite-elements/wcs-counter.js +1 -1
  164. package/composite-elements/wcs-divider.js +1 -1
  165. package/composite-elements/wcs-dropdown-divider.js +1 -1
  166. package/composite-elements/wcs-dropdown-header.js +1 -1
  167. package/composite-elements/wcs-dropdown-item.js +1 -1
  168. package/composite-elements/wcs-dropdown.js +1 -1
  169. package/composite-elements/wcs-dropdown.js.map +1 -1
  170. package/composite-elements/wcs-editable-field.js +1 -1
  171. package/composite-elements/wcs-editable-field.js.map +1 -1
  172. package/composite-elements/wcs-error.js +1 -1
  173. package/composite-elements/wcs-field-content.js +1 -1
  174. package/composite-elements/wcs-field-content.js.map +1 -1
  175. package/composite-elements/wcs-field-label.js +1 -1
  176. package/composite-elements/wcs-field.js +1 -1
  177. package/composite-elements/wcs-field.js.map +1 -1
  178. package/composite-elements/wcs-footer.js +1 -1
  179. package/composite-elements/wcs-form-field.js +1 -1
  180. package/composite-elements/wcs-galactic-menu.js +1 -1
  181. package/composite-elements/wcs-galactic.js +1 -1
  182. package/composite-elements/wcs-grid-column.js +1 -1
  183. package/composite-elements/wcs-grid-custom-cell.js +1 -1
  184. package/composite-elements/wcs-grid-custom-cell.js.map +1 -1
  185. package/composite-elements/wcs-grid-pagination.js +1 -1
  186. package/composite-elements/wcs-grid.js +1 -1
  187. package/composite-elements/wcs-grid.js.map +1 -1
  188. package/composite-elements/wcs-header.js +1 -1
  189. package/composite-elements/wcs-hint.js +1 -1
  190. package/composite-elements/wcs-horizontal-stepper.js +1 -1
  191. package/composite-elements/wcs-icon.js +1 -1
  192. package/composite-elements/wcs-input.js +1 -1
  193. package/composite-elements/wcs-input.js.map +1 -1
  194. package/composite-elements/wcs-label.js +1 -1
  195. package/composite-elements/wcs-list-item-properties.js +1 -1
  196. package/composite-elements/wcs-list-item-property.js +1 -1
  197. package/composite-elements/wcs-list-item.js +1 -1
  198. package/composite-elements/wcs-mat-icon.js +1 -1
  199. package/composite-elements/wcs-message.d.ts +11 -0
  200. package/composite-elements/wcs-message.js +2 -0
  201. package/composite-elements/wcs-message.js.map +1 -0
  202. package/composite-elements/wcs-modal.js +1 -1
  203. package/composite-elements/wcs-native-select.js +1 -1
  204. package/composite-elements/wcs-nav-item.js +1 -1
  205. package/composite-elements/wcs-nav.js +1 -1
  206. package/composite-elements/wcs-progress-bar.js +1 -1
  207. package/composite-elements/wcs-progress-radial.js +1 -1
  208. package/composite-elements/wcs-radio-group.js +1 -1
  209. package/composite-elements/wcs-radio.js +1 -1
  210. package/composite-elements/wcs-radio.js.map +1 -1
  211. package/composite-elements/wcs-select-option.js +1 -1
  212. package/composite-elements/wcs-select.js +1 -1
  213. package/composite-elements/wcs-skeleton-circle.js +1 -1
  214. package/composite-elements/wcs-skeleton-rectangle.js +1 -1
  215. package/composite-elements/wcs-skeleton-text.js +1 -1
  216. package/composite-elements/wcs-spinner.js +1 -1
  217. package/composite-elements/wcs-switch.js +1 -1
  218. package/composite-elements/wcs-tab.js +1 -1
  219. package/composite-elements/wcs-tab.js.map +1 -1
  220. package/composite-elements/wcs-tabs.js +1 -1
  221. package/composite-elements/wcs-textarea.js +1 -1
  222. package/composite-elements/wcs-tooltip.js +2 -2
  223. package/dist/cjs/alert-close-button-4435ed57.js +10 -0
  224. package/dist/cjs/alert-close-button-4435ed57.js.map +1 -0
  225. package/dist/cjs/{com-nav-utils-ff4f0bef.js → com-nav-utils-e081e998.js} +2 -2
  226. package/dist/cjs/{com-nav-utils-ff4f0bef.js.map → com-nav-utils-e081e998.js.map} +1 -1
  227. package/dist/cjs/{grid-pagination-4505d7b6.js → grid-pagination-e92dca78.js} +4 -4
  228. package/dist/cjs/grid-pagination-e92dca78.js.map +1 -0
  229. package/dist/cjs/{helpers-2f1a8ddc.js → helpers-eaafd588.js} +1 -9
  230. package/dist/cjs/helpers-eaafd588.js.map +1 -0
  231. package/dist/cjs/{isEqual-8a0a6936.js → isEqual-be8e5a57.js} +2 -2
  232. package/dist/cjs/{isEqual-8a0a6936.js.map → isEqual-be8e5a57.js.map} +1 -1
  233. package/dist/cjs/{keyboard-event-40ecdc27.js → keyboard-event-4890c60e.js} +2 -2
  234. package/dist/cjs/{keyboard-event-40ecdc27.js.map → keyboard-event-4890c60e.js.map} +1 -1
  235. package/dist/cjs/loader.cjs.js +1 -1
  236. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +1 -1
  237. package/dist/cjs/wcs-alert-drawer.cjs.entry.js +14 -2
  238. package/dist/cjs/wcs-alert-drawer.cjs.entry.js.map +1 -1
  239. package/dist/cjs/wcs-alert.cjs.entry.js +3 -2
  240. package/dist/cjs/wcs-alert.cjs.entry.js.map +1 -1
  241. package/dist/cjs/wcs-app.cjs.entry.js +3 -3
  242. package/dist/cjs/wcs-badge.cjs.entry.js +1 -1
  243. package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js +1 -1
  244. package/dist/cjs/wcs-breadcrumb.cjs.entry.js +2 -2
  245. package/dist/cjs/{wcs-button_2.cjs.entry.js → wcs-button_3.cjs.entry.js} +40 -5
  246. package/dist/cjs/wcs-button_3.cjs.entry.js.map +1 -0
  247. package/dist/cjs/wcs-card-body.cjs.entry.js +1 -1
  248. package/dist/cjs/wcs-card-content.cjs.entry.js +1 -1
  249. package/dist/cjs/wcs-card-content.cjs.entry.js.map +1 -1
  250. package/dist/cjs/wcs-card-footer.cjs.entry.js +1 -1
  251. package/dist/cjs/wcs-card-header.cjs.entry.js +1 -1
  252. package/dist/cjs/wcs-card-media.cjs.entry.js +1 -1
  253. package/dist/cjs/wcs-card.cjs.entry.js +1 -1
  254. package/dist/cjs/wcs-card.cjs.entry.js.map +1 -1
  255. package/dist/cjs/wcs-checkbox.cjs.entry.js +2 -2
  256. package/dist/cjs/wcs-chip.cjs.entry.js +18 -6
  257. package/dist/cjs/wcs-chip.cjs.entry.js.map +1 -1
  258. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +4 -4
  259. package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
  260. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +4 -4
  261. package/dist/cjs/wcs-com-nav.cjs.entry.js +4 -4
  262. package/dist/cjs/wcs-counter.cjs.entry.js +2 -2
  263. package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
  264. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
  265. package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
  266. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +2 -2
  267. package/dist/cjs/wcs-dropdown.cjs.entry.js +4 -4
  268. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  269. package/dist/cjs/wcs-editable-field.cjs.entry.js +35 -11
  270. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  271. package/dist/cjs/wcs-error_3.cjs.entry.js +5 -5
  272. package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
  273. package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
  274. package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
  275. package/dist/cjs/wcs-field.cjs.entry.js +1 -1
  276. package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
  277. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +3 -3
  278. package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
  279. package/dist/cjs/wcs-grid-column.cjs.entry.js +2 -2
  280. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  281. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
  282. package/dist/cjs/wcs-grid.cjs.entry.js +15 -8
  283. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  284. package/dist/cjs/wcs-header.cjs.entry.js +2 -2
  285. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  286. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  287. package/dist/cjs/wcs-icon.cjs.entry.js +2 -2
  288. package/dist/cjs/wcs-input.cjs.entry.js +2 -7
  289. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  290. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  291. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  292. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  293. package/dist/cjs/wcs-message.cjs.entry.js +56 -0
  294. package/dist/cjs/wcs-message.cjs.entry.js.map +1 -0
  295. package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
  296. package/dist/cjs/wcs-native-select.cjs.entry.js +1 -1
  297. package/dist/cjs/wcs-nav-item.cjs.entry.js +2 -2
  298. package/dist/cjs/wcs-nav.cjs.entry.js +2 -2
  299. package/dist/cjs/wcs-progress-bar.cjs.entry.js +3 -3
  300. package/dist/cjs/wcs-progress-radial.cjs.entry.js +3 -3
  301. package/dist/cjs/wcs-radio-group.cjs.entry.js +2 -2
  302. package/dist/cjs/wcs-radio.cjs.entry.js +25 -21
  303. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  304. package/dist/cjs/wcs-select_2.cjs.entry.js +25 -23
  305. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  306. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  307. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  308. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  309. package/dist/cjs/wcs-switch.cjs.entry.js +2 -2
  310. package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
  311. package/dist/cjs/wcs-tabs.cjs.entry.js +2 -2
  312. package/dist/cjs/wcs-textarea.cjs.entry.js +2 -2
  313. package/dist/cjs/wcs-tooltip.cjs.entry.js +2 -2
  314. package/dist/cjs/wcs.cjs.js +1 -1
  315. package/dist/collection/collection-manifest.json +1 -0
  316. package/dist/collection/components/alert/alert-close-button.js +3 -0
  317. package/dist/collection/components/alert/alert-close-button.js.map +1 -0
  318. package/dist/collection/components/alert/alert.css +12 -11
  319. package/dist/collection/components/alert/alert.js +2 -1
  320. package/dist/collection/components/alert/alert.js.map +1 -1
  321. package/dist/collection/components/alert-drawer/alert-drawer.js +34 -2
  322. package/dist/collection/components/alert-drawer/alert-drawer.js.map +1 -1
  323. package/dist/collection/components/app/app.js +3 -3
  324. package/dist/collection/components/badge/badge.js +1 -1
  325. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  326. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js +1 -1
  327. package/dist/collection/components/button/button.css +26 -0
  328. package/dist/collection/components/button/button.js +47 -1
  329. package/dist/collection/components/button/button.js.map +1 -1
  330. package/dist/collection/components/card/card.js +11 -4
  331. package/dist/collection/components/card/card.js.map +1 -1
  332. package/dist/collection/components/card-body/card-body.js +1 -1
  333. package/dist/collection/components/card-content/card-content.js +8 -3
  334. package/dist/collection/components/card-content/card-content.js.map +1 -1
  335. package/dist/collection/components/card-footer/card-footer.js +1 -1
  336. package/dist/collection/components/card-header/card-header.js +1 -1
  337. package/dist/collection/components/card-media/card-media.js +1 -1
  338. package/dist/collection/components/checkbox/checkbox.js +1 -1
  339. package/dist/collection/components/chip/chip.e2e.playwright.js +33 -0
  340. package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -1
  341. package/dist/collection/components/chip/chip.js +19 -6
  342. package/dist/collection/components/chip/chip.js.map +1 -1
  343. package/dist/collection/components/com-nav/com-nav.js +2 -2
  344. package/dist/collection/components/com-nav-category/com-nav-category.js +2 -2
  345. package/dist/collection/components/com-nav-item/com-nav-item.js +1 -1
  346. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +2 -2
  347. package/dist/collection/components/counter/counter.js +1 -1
  348. package/dist/collection/components/divider/divider.js +1 -1
  349. package/dist/collection/components/dropdown/dropdown.css +9 -0
  350. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +76 -0
  351. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -1
  352. package/dist/collection/components/dropdown/dropdown.js +1 -1
  353. package/dist/collection/components/dropdown-divider/dropdown-divider.js +1 -1
  354. package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
  355. package/dist/collection/components/dropdown-item/dropdown-item.js +1 -1
  356. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +214 -0
  357. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -1
  358. package/dist/collection/components/editable-field/editable-field.js +34 -10
  359. package/dist/collection/components/editable-field/editable-field.js.map +1 -1
  360. package/dist/collection/components/error/error.js +1 -1
  361. package/dist/collection/components/field/field.js +1 -1
  362. package/dist/collection/components/field-content/field-content.js +1 -1
  363. package/dist/collection/components/field-label/field-label.js +1 -1
  364. package/dist/collection/components/footer/footer.js +1 -1
  365. package/dist/collection/components/form-field/form-field.js +1 -1
  366. package/dist/collection/components/galactic/galactic.js +1 -1
  367. package/dist/collection/components/galactic-menu/galactic-menu.js +2 -2
  368. package/dist/collection/components/grid/grid-radio.css +8 -0
  369. package/dist/collection/components/grid/grid.e2e.playwright.js +130 -0
  370. package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -1
  371. package/dist/collection/components/grid/grid.js +10 -3
  372. package/dist/collection/components/grid/grid.js.map +1 -1
  373. package/dist/collection/components/grid-column/grid-column.js +1 -1
  374. package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
  375. package/dist/collection/components/grid-pagination/grid-pagination.css +4 -0
  376. package/dist/collection/components/grid-pagination/grid-pagination.js +4 -1
  377. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  378. package/dist/collection/components/header/header.js +1 -1
  379. package/dist/collection/components/hint/hint.js +1 -1
  380. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +1 -1
  381. package/dist/collection/components/icon/icon.js +1 -1
  382. package/dist/collection/components/input/input.js +2 -7
  383. package/dist/collection/components/input/input.js.map +1 -1
  384. package/dist/collection/components/label/label.css +12 -8
  385. package/dist/collection/components/label/label.e2e.playwright.js +62 -0
  386. package/dist/collection/components/label/label.e2e.playwright.js.map +1 -1
  387. package/dist/collection/components/label/label.js +1 -1
  388. package/dist/collection/components/label/label.js.map +1 -1
  389. package/dist/collection/components/list-item/list-item.js +1 -1
  390. package/dist/collection/components/list-item-properties/list-item-properties.js +1 -1
  391. package/dist/collection/components/list-item-property/list-item-property.js +1 -1
  392. package/dist/collection/components/mat-icon/mat-icon.css +8 -4
  393. package/dist/collection/components/mat-icon/mat-icon.js +6 -1
  394. package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
  395. package/dist/collection/components/message/message-interface.js +2 -0
  396. package/dist/collection/components/message/message-interface.js.map +1 -0
  397. package/dist/collection/components/message/message.css +101 -0
  398. package/dist/collection/components/message/message.js +206 -0
  399. package/dist/collection/components/message/message.js.map +1 -0
  400. package/dist/collection/components/modal/modal.js +1 -1
  401. package/dist/collection/components/native-select/native-select.js +1 -1
  402. package/dist/collection/components/nav/nav.js +1 -1
  403. package/dist/collection/components/nav-item/nav-item.js +1 -1
  404. package/dist/collection/components/progress-bar/progress-bar.js +2 -2
  405. package/dist/collection/components/progress-radial/progress-radial.js +2 -2
  406. package/dist/collection/components/radio/radio.css +48 -37
  407. package/dist/collection/components/radio/radio.js +24 -20
  408. package/dist/collection/components/radio/radio.js.map +1 -1
  409. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +92 -7
  410. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -1
  411. package/dist/collection/components/radio-group/radio-group.js +1 -1
  412. package/dist/collection/components/select/select-interface.js.map +1 -1
  413. package/dist/collection/components/select/select.e2e.playwright.js +167 -16
  414. package/dist/collection/components/select/select.e2e.playwright.js.map +1 -1
  415. package/dist/collection/components/select/select.js +21 -19
  416. package/dist/collection/components/select/select.js.map +1 -1
  417. package/dist/collection/components/select-option/select-option.js +2 -2
  418. package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
  419. package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
  420. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
  421. package/dist/collection/components/spinner/spinner.js +1 -1
  422. package/dist/collection/components/switch/switch.js +1 -1
  423. package/dist/collection/components/tab/tab.js +1 -1
  424. package/dist/collection/components/tabs/tabs.js +1 -1
  425. package/dist/collection/components/textarea/textarea.js +1 -1
  426. package/dist/collection/components/tooltip/tooltip.js +1 -1
  427. package/dist/esm/alert-close-button-2ce5ac95.js +8 -0
  428. package/dist/esm/alert-close-button-2ce5ac95.js.map +1 -0
  429. package/dist/esm/{com-nav-utils-ee7bf77c.js → com-nav-utils-a5af32af.js} +2 -2
  430. package/dist/esm/{com-nav-utils-ee7bf77c.js.map → com-nav-utils-a5af32af.js.map} +1 -1
  431. package/dist/esm/{grid-pagination-731726a6.js → grid-pagination-c29173f6.js} +4 -4
  432. package/dist/esm/grid-pagination-c29173f6.js.map +1 -0
  433. package/dist/esm/{helpers-ece6a2d3.js → helpers-2d73ee7c.js} +2 -9
  434. package/dist/esm/helpers-2d73ee7c.js.map +1 -0
  435. package/dist/esm/{isEqual-f2a07f4c.js → isEqual-89e74e17.js} +2 -2
  436. package/dist/esm/{isEqual-f2a07f4c.js.map → isEqual-89e74e17.js.map} +1 -1
  437. package/dist/esm/{keyboard-event-26b65ae5.js → keyboard-event-3a0579d5.js} +2 -2
  438. package/dist/esm/{keyboard-event-26b65ae5.js.map → keyboard-event-3a0579d5.js.map} +1 -1
  439. package/dist/esm/loader.js +1 -1
  440. package/dist/esm/wcs-accordion-panel.entry.js +1 -1
  441. package/dist/esm/wcs-alert-drawer.entry.js +14 -2
  442. package/dist/esm/wcs-alert-drawer.entry.js.map +1 -1
  443. package/dist/esm/wcs-alert.entry.js +3 -2
  444. package/dist/esm/wcs-alert.entry.js.map +1 -1
  445. package/dist/esm/wcs-app.entry.js +3 -3
  446. package/dist/esm/wcs-badge.entry.js +1 -1
  447. package/dist/esm/wcs-breadcrumb-item.entry.js +1 -1
  448. package/dist/esm/wcs-breadcrumb.entry.js +2 -2
  449. package/dist/esm/{wcs-button_2.entry.js → wcs-button_3.entry.js} +41 -7
  450. package/dist/esm/{wcs-button_2.entry.js.map → wcs-button_3.entry.js.map} +1 -1
  451. package/dist/esm/wcs-card-body.entry.js +1 -1
  452. package/dist/esm/wcs-card-content.entry.js +1 -1
  453. package/dist/esm/wcs-card-content.entry.js.map +1 -1
  454. package/dist/esm/wcs-card-footer.entry.js +1 -1
  455. package/dist/esm/wcs-card-header.entry.js +1 -1
  456. package/dist/esm/wcs-card-media.entry.js +1 -1
  457. package/dist/esm/wcs-card.entry.js +1 -1
  458. package/dist/esm/wcs-card.entry.js.map +1 -1
  459. package/dist/esm/wcs-checkbox.entry.js +2 -2
  460. package/dist/esm/wcs-chip.entry.js +18 -6
  461. package/dist/esm/wcs-chip.entry.js.map +1 -1
  462. package/dist/esm/wcs-com-nav-category.entry.js +4 -4
  463. package/dist/esm/wcs-com-nav-item.entry.js +1 -1
  464. package/dist/esm/wcs-com-nav-submenu.entry.js +4 -4
  465. package/dist/esm/wcs-com-nav.entry.js +4 -4
  466. package/dist/esm/wcs-counter.entry.js +2 -2
  467. package/dist/esm/wcs-divider.entry.js +1 -1
  468. package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
  469. package/dist/esm/wcs-dropdown-header.entry.js +1 -1
  470. package/dist/esm/wcs-dropdown-item.entry.js +2 -2
  471. package/dist/esm/wcs-dropdown.entry.js +4 -4
  472. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  473. package/dist/esm/wcs-editable-field.entry.js +35 -11
  474. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  475. package/dist/esm/wcs-error_3.entry.js +5 -5
  476. package/dist/esm/wcs-error_3.entry.js.map +1 -1
  477. package/dist/esm/wcs-field-content.entry.js +1 -1
  478. package/dist/esm/wcs-field-label.entry.js +1 -1
  479. package/dist/esm/wcs-field.entry.js +1 -1
  480. package/dist/esm/wcs-footer.entry.js +1 -1
  481. package/dist/esm/wcs-galactic-menu.entry.js +3 -3
  482. package/dist/esm/wcs-galactic.entry.js +1 -1
  483. package/dist/esm/wcs-grid-column.entry.js +2 -2
  484. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  485. package/dist/esm/wcs-grid-pagination.entry.js +2 -2
  486. package/dist/esm/wcs-grid.entry.js +15 -8
  487. package/dist/esm/wcs-grid.entry.js.map +1 -1
  488. package/dist/esm/wcs-header.entry.js +2 -2
  489. package/dist/esm/wcs-hint.entry.js +1 -1
  490. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  491. package/dist/esm/wcs-icon.entry.js +2 -2
  492. package/dist/esm/wcs-input.entry.js +2 -7
  493. package/dist/esm/wcs-input.entry.js.map +1 -1
  494. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  495. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  496. package/dist/esm/wcs-list-item.entry.js +1 -1
  497. package/dist/esm/wcs-message.entry.js +52 -0
  498. package/dist/esm/wcs-message.entry.js.map +1 -0
  499. package/dist/esm/wcs-modal.entry.js +2 -2
  500. package/dist/esm/wcs-native-select.entry.js +1 -1
  501. package/dist/esm/wcs-nav-item.entry.js +2 -2
  502. package/dist/esm/wcs-nav.entry.js +2 -2
  503. package/dist/esm/wcs-progress-bar.entry.js +3 -3
  504. package/dist/esm/wcs-progress-radial.entry.js +3 -3
  505. package/dist/esm/wcs-radio-group.entry.js +2 -2
  506. package/dist/esm/wcs-radio.entry.js +25 -21
  507. package/dist/esm/wcs-radio.entry.js.map +1 -1
  508. package/dist/esm/wcs-select_2.entry.js +25 -23
  509. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  510. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  511. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  512. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  513. package/dist/esm/wcs-switch.entry.js +2 -2
  514. package/dist/esm/wcs-tab.entry.js +1 -1
  515. package/dist/esm/wcs-tabs.entry.js +2 -2
  516. package/dist/esm/wcs-textarea.entry.js +2 -2
  517. package/dist/esm/wcs-tooltip.entry.js +2 -2
  518. package/dist/esm/wcs.js +1 -1
  519. package/dist/types/components/alert/alert-close-button.d.ts +4 -0
  520. package/dist/types/components/alert-drawer/alert-drawer.d.ts +10 -0
  521. package/dist/types/components/button/button.d.ts +18 -0
  522. package/dist/types/components/card/card.d.ts +10 -3
  523. package/dist/types/components/card-content/card-content.d.ts +7 -2
  524. package/dist/types/components/chip/chip.d.ts +1 -1
  525. package/dist/types/components/editable-field/editable-field.d.ts +3 -0
  526. package/dist/types/components/grid-pagination/grid-pagination.d.ts +3 -0
  527. package/dist/types/components/mat-icon/mat-icon.d.ts +5 -0
  528. package/dist/types/components/message/message-interface.d.ts +1 -0
  529. package/dist/types/components/message/message.d.ts +77 -0
  530. package/dist/types/components/radio/radio.d.ts +4 -5
  531. package/dist/types/components/select/select-interface.d.ts +5 -0
  532. package/dist/types/components/select/select.d.ts +0 -2
  533. package/dist/types/components.d.ts +316 -21
  534. package/dist/wcs/{p-41b946b2.entry.js → p-03ae13ec.entry.js} +2 -2
  535. package/dist/wcs/p-07c961b4.entry.js +2 -0
  536. package/dist/wcs/p-07c961b4.entry.js.map +1 -0
  537. package/dist/wcs/{p-dfb52a1c.entry.js → p-0a0bc006.entry.js} +2 -2
  538. package/dist/wcs/p-0a0bc006.entry.js.map +1 -0
  539. package/dist/wcs/{p-abd8d5a0.entry.js → p-167108aa.entry.js} +2 -2
  540. package/dist/wcs/{p-5e8fff73.entry.js → p-17c8f012.entry.js} +2 -2
  541. package/dist/wcs/{p-db7ba599.entry.js → p-190a8883.entry.js} +3 -3
  542. package/dist/wcs/{p-0758d22e.entry.js → p-276070f3.entry.js} +2 -2
  543. package/dist/wcs/{p-f929b66f.entry.js → p-28941abc.entry.js} +2 -2
  544. package/dist/wcs/p-28b3e55a.entry.js +2 -0
  545. package/dist/wcs/p-28b3e55a.entry.js.map +1 -0
  546. package/dist/wcs/{p-c261eaf9.entry.js → p-28d52607.entry.js} +2 -2
  547. package/dist/wcs/p-2d4fd96a.entry.js +2 -0
  548. package/dist/wcs/{p-18fa39f4.entry.js → p-2d5becbf.entry.js} +2 -2
  549. package/dist/wcs/p-2da579f2.entry.js +2 -0
  550. package/dist/wcs/{p-53a395a9.entry.js → p-2e0238b6.entry.js} +2 -2
  551. package/dist/wcs/{p-1e7ea63c.entry.js → p-358a505f.entry.js} +2 -2
  552. package/dist/wcs/{p-dff8641e.entry.js → p-38d37878.entry.js} +2 -2
  553. package/dist/wcs/{p-4ae08567.entry.js → p-3bc23ef1.entry.js} +2 -2
  554. package/dist/wcs/p-3da303d7.entry.js +16 -0
  555. package/dist/wcs/p-3da303d7.entry.js.map +1 -0
  556. package/dist/wcs/{p-9fd3366c.entry.js → p-407d9700.entry.js} +2 -2
  557. package/dist/wcs/{p-c84ae00d.entry.js → p-41383e84.entry.js} +2 -2
  558. package/dist/wcs/{p-27b438c0.entry.js → p-4506e5e4.entry.js} +2 -2
  559. package/dist/wcs/{p-5202b323.entry.js → p-48541bf7.entry.js} +2 -2
  560. package/dist/wcs/{p-8332a7e3.entry.js → p-4a28d7a3.entry.js} +2 -2
  561. package/dist/wcs/p-4c43d8fc.entry.js +2 -0
  562. package/dist/wcs/p-4c43d8fc.entry.js.map +1 -0
  563. package/dist/wcs/{p-0424e545.entry.js → p-4d7bc716.entry.js} +2 -2
  564. package/dist/wcs/{p-f2f7595e.entry.js → p-4ef24e07.entry.js} +2 -2
  565. package/dist/wcs/{p-f2f7595e.entry.js.map → p-4ef24e07.entry.js.map} +1 -1
  566. package/dist/wcs/{p-367946fe.entry.js → p-4f20cdba.entry.js} +2 -2
  567. package/dist/wcs/{p-1ba616c2.entry.js → p-4fad6675.entry.js} +2 -2
  568. package/dist/wcs/p-51c93d07.entry.js +2 -0
  569. package/dist/wcs/p-51c93d07.entry.js.map +1 -0
  570. package/dist/wcs/{p-cbda74f6.entry.js → p-575881cd.entry.js} +2 -2
  571. package/dist/wcs/p-5823cd22.entry.js +2 -0
  572. package/dist/wcs/p-5a276237.entry.js +2 -0
  573. package/dist/wcs/{p-fdeae83e.entry.js → p-5b61a775.entry.js} +2 -2
  574. package/dist/wcs/p-5bc7a732.js +2 -0
  575. package/dist/wcs/p-5bc7a732.js.map +1 -0
  576. package/dist/wcs/{p-ff826ebe.js → p-5cea30cb.js} +1 -1
  577. package/dist/wcs/{p-ff826ebe.js.map → p-5cea30cb.js.map} +1 -1
  578. package/dist/wcs/p-6033c91b.entry.js +2 -0
  579. package/dist/wcs/p-609115fc.js +2 -0
  580. package/dist/wcs/p-609115fc.js.map +1 -0
  581. package/dist/wcs/{p-aadf37e7.entry.js → p-6b5db6be.entry.js} +2 -2
  582. package/dist/wcs/{p-a0f6ef30.entry.js → p-6b86d4fa.entry.js} +2 -2
  583. package/dist/wcs/p-6b86d4fa.entry.js.map +1 -0
  584. package/dist/wcs/p-6c6841ac.entry.js +2 -0
  585. package/dist/wcs/p-6c78d16e.js +2 -0
  586. package/dist/wcs/p-714c3cd7.entry.js +2 -0
  587. package/dist/wcs/p-714c3cd7.entry.js.map +1 -0
  588. package/dist/wcs/p-71af107c.js +2 -0
  589. package/dist/wcs/p-71af107c.js.map +1 -0
  590. package/dist/wcs/{p-ad286030.entry.js → p-7b67cec9.entry.js} +2 -2
  591. package/dist/wcs/{p-781a956e.entry.js → p-7cd88886.entry.js} +2 -2
  592. package/dist/wcs/{p-850fa9c9.entry.js → p-7f5eea6a.entry.js} +2 -2
  593. package/dist/wcs/{p-e56b9ce2.entry.js → p-882886ae.entry.js} +2 -2
  594. package/dist/wcs/p-8fd515a3.entry.js +2 -0
  595. package/dist/wcs/{p-352e1f99.entry.js → p-95f35254.entry.js} +2 -2
  596. package/dist/wcs/{p-b0a6eec6.entry.js → p-9d47a628.entry.js} +2 -2
  597. package/dist/wcs/p-9d683786.entry.js +2 -0
  598. package/dist/wcs/{p-22620c69.entry.js → p-a45a1f25.entry.js} +2 -2
  599. package/dist/wcs/p-a45a1f25.entry.js.map +1 -0
  600. package/dist/wcs/{p-0326f834.entry.js → p-a9fa5726.entry.js} +2 -2
  601. package/dist/wcs/p-ae305b09.entry.js +2 -0
  602. package/dist/wcs/p-ae305b09.entry.js.map +1 -0
  603. package/dist/wcs/p-afd3e923.entry.js +2 -0
  604. package/dist/wcs/{p-990698a7.entry.js → p-b1b0e2cb.entry.js} +2 -2
  605. package/dist/wcs/p-b1b0e2cb.entry.js.map +1 -0
  606. package/dist/wcs/{p-3a18535f.entry.js → p-b9744cf7.entry.js} +2 -2
  607. package/dist/wcs/p-b99daad4.entry.js +156 -0
  608. package/dist/wcs/p-b99daad4.entry.js.map +1 -0
  609. package/dist/wcs/{p-cbbca016.entry.js → p-cefd8219.entry.js} +2 -2
  610. package/dist/wcs/{p-9c73744c.entry.js → p-d18051b2.entry.js} +2 -2
  611. package/dist/wcs/{p-637ec45a.entry.js → p-d42f5883.entry.js} +2 -2
  612. package/dist/wcs/p-d42f5883.entry.js.map +1 -0
  613. package/dist/wcs/p-d6d273d2.js +2 -0
  614. package/dist/wcs/{p-2329af04.entry.js → p-e08febb4.entry.js} +2 -2
  615. package/dist/wcs/{p-bc009574.entry.js → p-e91d33e0.entry.js} +2 -2
  616. package/dist/wcs/p-f37d7b07.entry.js +2 -0
  617. package/dist/wcs/{p-fbd68522.entry.js → p-f7897fd4.entry.js} +2 -2
  618. package/dist/wcs/{p-c6f8c45c.entry.js → p-fcc43c82.entry.js} +2 -2
  619. package/dist/wcs/{p-ed3b0709.entry.js → p-fd18dce6.entry.js} +2 -2
  620. package/dist/wcs/p-fed6a8cd.entry.js +2 -0
  621. package/dist/wcs/{p-cad10435.entry.js.map → p-fed6a8cd.entry.js.map} +1 -1
  622. package/dist/wcs/{p-4e2d6227.entry.js → p-ff20d08b.entry.js} +2 -2
  623. package/dist/wcs/wcs.esm.js +1 -1
  624. package/dist/wcs/wcs.esm.js.map +1 -1
  625. package/package.json +2 -2
  626. package/bundle/p-2e9b9605.js +0 -2
  627. package/bundle/p-2e9b9605.js.map +0 -1
  628. package/bundle/p-30d83d3d.js +0 -2
  629. package/bundle/p-30d83d3d.js.map +0 -1
  630. package/bundle/p-581fc0fc.js +0 -2
  631. package/bundle/p-581fc0fc.js.map +0 -1
  632. package/bundle/p-763371a0.js +0 -16
  633. package/bundle/p-763371a0.js.map +0 -1
  634. package/bundle/p-98bd8a96.js +0 -2
  635. package/bundle/p-98bd8a96.js.map +0 -1
  636. package/bundle/p-9c2aa87a.js +0 -2
  637. package/bundle/p-9c2aa87a.js.map +0 -1
  638. package/bundle/p-cdc6f6c2.js.map +0 -1
  639. package/bundle/p-f0dda0b8.js +0 -2
  640. package/composite-elements/p-2454bcae.js +0 -2
  641. package/composite-elements/p-2a51c239.js +0 -2
  642. package/composite-elements/p-2a51c239.js.map +0 -1
  643. package/composite-elements/p-46f752d5.js +0 -2
  644. package/composite-elements/p-51517fda.js.map +0 -1
  645. package/composite-elements/p-55668982.js +0 -2
  646. package/composite-elements/p-55668982.js.map +0 -1
  647. package/composite-elements/p-79ad61e4.js +0 -2
  648. package/composite-elements/p-79ad61e4.js.map +0 -1
  649. package/composite-elements/p-af24fb0d.js +0 -16
  650. package/composite-elements/p-af24fb0d.js.map +0 -1
  651. package/composite-elements/p-bc4c736d.js +0 -2
  652. package/composite-elements/p-bc4c736d.js.map +0 -1
  653. package/composite-elements/p-e803bb26.js +0 -2
  654. package/composite-elements/p-e803bb26.js.map +0 -1
  655. package/dist/cjs/grid-pagination-4505d7b6.js.map +0 -1
  656. package/dist/cjs/helpers-2f1a8ddc.js.map +0 -1
  657. package/dist/cjs/wcs-button_2.cjs.entry.js.map +0 -1
  658. package/dist/cjs/wcs-mat-icon.cjs.entry.js +0 -42
  659. package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +0 -1
  660. package/dist/esm/grid-pagination-731726a6.js.map +0 -1
  661. package/dist/esm/helpers-ece6a2d3.js.map +0 -1
  662. package/dist/esm/wcs-mat-icon.entry.js +0 -38
  663. package/dist/esm/wcs-mat-icon.entry.js.map +0 -1
  664. package/dist/wcs/p-0017d766.js +0 -2
  665. package/dist/wcs/p-0b8157e7.entry.js +0 -2
  666. package/dist/wcs/p-2221bf0c.entry.js +0 -16
  667. package/dist/wcs/p-2221bf0c.entry.js.map +0 -1
  668. package/dist/wcs/p-22620c69.entry.js.map +0 -1
  669. package/dist/wcs/p-3823f54e.entry.js +0 -2
  670. package/dist/wcs/p-450942b1.entry.js +0 -156
  671. package/dist/wcs/p-450942b1.entry.js.map +0 -1
  672. package/dist/wcs/p-52d77e1f.js +0 -2
  673. package/dist/wcs/p-52d77e1f.js.map +0 -1
  674. package/dist/wcs/p-5607246c.entry.js +0 -2
  675. package/dist/wcs/p-580b3142.entry.js +0 -2
  676. package/dist/wcs/p-5da0534f.entry.js +0 -2
  677. package/dist/wcs/p-5da0534f.entry.js.map +0 -1
  678. package/dist/wcs/p-637ec45a.entry.js.map +0 -1
  679. package/dist/wcs/p-6aededc6.entry.js +0 -2
  680. package/dist/wcs/p-7de847e0.entry.js +0 -2
  681. package/dist/wcs/p-8152d360.entry.js +0 -2
  682. package/dist/wcs/p-8152d360.entry.js.map +0 -1
  683. package/dist/wcs/p-86ec9ead.entry.js +0 -2
  684. package/dist/wcs/p-86ec9ead.entry.js.map +0 -1
  685. package/dist/wcs/p-89b8c724.js +0 -2
  686. package/dist/wcs/p-98a8b806.entry.js +0 -2
  687. package/dist/wcs/p-98a8b806.entry.js.map +0 -1
  688. package/dist/wcs/p-990698a7.entry.js.map +0 -1
  689. package/dist/wcs/p-a0f6ef30.entry.js.map +0 -1
  690. package/dist/wcs/p-ad5192cd.entry.js +0 -2
  691. package/dist/wcs/p-b28b2fba.entry.js +0 -2
  692. package/dist/wcs/p-b28b2fba.entry.js.map +0 -1
  693. package/dist/wcs/p-c211a5d1.entry.js +0 -2
  694. package/dist/wcs/p-c5bad0b8.js +0 -2
  695. package/dist/wcs/p-c5bad0b8.js.map +0 -1
  696. package/dist/wcs/p-c7812760.entry.js +0 -2
  697. package/dist/wcs/p-cad10435.entry.js +0 -2
  698. package/dist/wcs/p-dfb52a1c.entry.js.map +0 -1
  699. package/dist/wcs/p-e26c19e5.entry.js +0 -2
  700. package/dist/wcs/p-fe303f58.entry.js +0 -2
  701. package/dist/wcs/p-fe303f58.entry.js.map +0 -1
  702. /package/bundle/{p-f0dda0b8.js.map → p-035ad27f.js.map} +0 -0
  703. /package/bundle/{p-010cf905.js.map → p-16c7ed2e.js.map} +0 -0
  704. /package/bundle/{p-97e70e10.js.map → p-5a997d17.js.map} +0 -0
  705. /package/bundle/{p-60193ef5.js.map → p-791fce94.js.map} +0 -0
  706. /package/bundle/{p-44a3b0b9.js.map → p-87b9556d.js.map} +0 -0
  707. /package/bundle/{p-d23d7658.js.map → p-886109ed.js.map} +0 -0
  708. /package/bundle/{p-2751ddc1.js.map → p-a9a83300.js.map} +0 -0
  709. /package/bundle/{p-c8b73e93.js.map → p-d7d1ea63.js.map} +0 -0
  710. /package/composite-elements/{p-a90bb01e.js.map → p-061ccda5.js.map} +0 -0
  711. /package/composite-elements/{p-ef26b4d8.js.map → p-2181568b.js.map} +0 -0
  712. /package/composite-elements/{p-b83afff9.js.map → p-61886571.js.map} +0 -0
  713. /package/composite-elements/{p-2454bcae.js.map → p-b6d0a6b4.js.map} +0 -0
  714. /package/composite-elements/{p-46f752d5.js.map → p-cb9faa9b.js.map} +0 -0
  715. /package/composite-elements/{p-5a3d7fec.js.map → p-cd6cca64.js.map} +0 -0
  716. /package/composite-elements/{p-04663560.js.map → p-d2d79425.js.map} +0 -0
  717. /package/composite-elements/{p-b92e818b.js.map → p-f0b064a2.js.map} +0 -0
  718. /package/dist/wcs/{p-41b946b2.entry.js.map → p-03ae13ec.entry.js.map} +0 -0
  719. /package/dist/wcs/{p-abd8d5a0.entry.js.map → p-167108aa.entry.js.map} +0 -0
  720. /package/dist/wcs/{p-5e8fff73.entry.js.map → p-17c8f012.entry.js.map} +0 -0
  721. /package/dist/wcs/{p-db7ba599.entry.js.map → p-190a8883.entry.js.map} +0 -0
  722. /package/dist/wcs/{p-0758d22e.entry.js.map → p-276070f3.entry.js.map} +0 -0
  723. /package/dist/wcs/{p-f929b66f.entry.js.map → p-28941abc.entry.js.map} +0 -0
  724. /package/dist/wcs/{p-c261eaf9.entry.js.map → p-28d52607.entry.js.map} +0 -0
  725. /package/dist/wcs/{p-c211a5d1.entry.js.map → p-2d4fd96a.entry.js.map} +0 -0
  726. /package/dist/wcs/{p-18fa39f4.entry.js.map → p-2d5becbf.entry.js.map} +0 -0
  727. /package/dist/wcs/{p-7de847e0.entry.js.map → p-2da579f2.entry.js.map} +0 -0
  728. /package/dist/wcs/{p-53a395a9.entry.js.map → p-2e0238b6.entry.js.map} +0 -0
  729. /package/dist/wcs/{p-1e7ea63c.entry.js.map → p-358a505f.entry.js.map} +0 -0
  730. /package/dist/wcs/{p-dff8641e.entry.js.map → p-38d37878.entry.js.map} +0 -0
  731. /package/dist/wcs/{p-4ae08567.entry.js.map → p-3bc23ef1.entry.js.map} +0 -0
  732. /package/dist/wcs/{p-9fd3366c.entry.js.map → p-407d9700.entry.js.map} +0 -0
  733. /package/dist/wcs/{p-c84ae00d.entry.js.map → p-41383e84.entry.js.map} +0 -0
  734. /package/dist/wcs/{p-27b438c0.entry.js.map → p-4506e5e4.entry.js.map} +0 -0
  735. /package/dist/wcs/{p-5202b323.entry.js.map → p-48541bf7.entry.js.map} +0 -0
  736. /package/dist/wcs/{p-8332a7e3.entry.js.map → p-4a28d7a3.entry.js.map} +0 -0
  737. /package/dist/wcs/{p-0424e545.entry.js.map → p-4d7bc716.entry.js.map} +0 -0
  738. /package/dist/wcs/{p-367946fe.entry.js.map → p-4f20cdba.entry.js.map} +0 -0
  739. /package/dist/wcs/{p-1ba616c2.entry.js.map → p-4fad6675.entry.js.map} +0 -0
  740. /package/dist/wcs/{p-cbda74f6.entry.js.map → p-575881cd.entry.js.map} +0 -0
  741. /package/dist/wcs/{p-0b8157e7.entry.js.map → p-5823cd22.entry.js.map} +0 -0
  742. /package/dist/wcs/{p-580b3142.entry.js.map → p-5a276237.entry.js.map} +0 -0
  743. /package/dist/wcs/{p-fdeae83e.entry.js.map → p-5b61a775.entry.js.map} +0 -0
  744. /package/dist/wcs/{p-e26c19e5.entry.js.map → p-6033c91b.entry.js.map} +0 -0
  745. /package/dist/wcs/{p-aadf37e7.entry.js.map → p-6b5db6be.entry.js.map} +0 -0
  746. /package/dist/wcs/{p-6aededc6.entry.js.map → p-6c6841ac.entry.js.map} +0 -0
  747. /package/dist/wcs/{p-0017d766.js.map → p-6c78d16e.js.map} +0 -0
  748. /package/dist/wcs/{p-ad286030.entry.js.map → p-7b67cec9.entry.js.map} +0 -0
  749. /package/dist/wcs/{p-781a956e.entry.js.map → p-7cd88886.entry.js.map} +0 -0
  750. /package/dist/wcs/{p-850fa9c9.entry.js.map → p-7f5eea6a.entry.js.map} +0 -0
  751. /package/dist/wcs/{p-e56b9ce2.entry.js.map → p-882886ae.entry.js.map} +0 -0
  752. /package/dist/wcs/{p-5607246c.entry.js.map → p-8fd515a3.entry.js.map} +0 -0
  753. /package/dist/wcs/{p-352e1f99.entry.js.map → p-95f35254.entry.js.map} +0 -0
  754. /package/dist/wcs/{p-b0a6eec6.entry.js.map → p-9d47a628.entry.js.map} +0 -0
  755. /package/dist/wcs/{p-3823f54e.entry.js.map → p-9d683786.entry.js.map} +0 -0
  756. /package/dist/wcs/{p-0326f834.entry.js.map → p-a9fa5726.entry.js.map} +0 -0
  757. /package/dist/wcs/{p-ad5192cd.entry.js.map → p-afd3e923.entry.js.map} +0 -0
  758. /package/dist/wcs/{p-3a18535f.entry.js.map → p-b9744cf7.entry.js.map} +0 -0
  759. /package/dist/wcs/{p-cbbca016.entry.js.map → p-cefd8219.entry.js.map} +0 -0
  760. /package/dist/wcs/{p-9c73744c.entry.js.map → p-d18051b2.entry.js.map} +0 -0
  761. /package/dist/wcs/{p-89b8c724.js.map → p-d6d273d2.js.map} +0 -0
  762. /package/dist/wcs/{p-2329af04.entry.js.map → p-e08febb4.entry.js.map} +0 -0
  763. /package/dist/wcs/{p-bc009574.entry.js.map → p-e91d33e0.entry.js.map} +0 -0
  764. /package/dist/wcs/{p-c7812760.entry.js.map → p-f37d7b07.entry.js.map} +0 -0
  765. /package/dist/wcs/{p-fbd68522.entry.js.map → p-f7897fd4.entry.js.map} +0 -0
  766. /package/dist/wcs/{p-c6f8c45c.entry.js.map → p-fcc43c82.entry.js.map} +0 -0
  767. /package/dist/wcs/{p-ed3b0709.entry.js.map → p-fd18dce6.entry.js.map} +0 -0
  768. /package/dist/wcs/{p-4e2d6227.entry.js.map → p-ff20d08b.entry.js.map} +0 -0
@@ -21,7 +21,7 @@ export class Nav {
21
21
  setOrRemoveAttribute(this.nativeNav, attr, value);
22
22
  }
23
23
  render() {
24
- return (h("nav", Object.assign({ key: '3461a64de9b036b1a970e58a26a70f70772491c8', role: "navigation", class: "wcs-nav-container", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), h("div", { key: 'aa68166f70a54e44e78c0fe8a61c224bed4bcb3e', role: "list" }, h("slot", { key: '9e6315dafb2038e8577b2402dae1a646587dbb5f' }), h("slot", { key: '8dcddd80f189c8ade3ceb24cd5e36b8d03083a80', name: "bottom" }))));
24
+ return (h("nav", Object.assign({ key: '8b3a10c56fd18186c5b2c008eaf89622dd4c5fb3', role: "navigation", class: "wcs-nav-container", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), h("div", { key: 'b9da00e54fb3036e9895f5d5c7e643086c829b41', role: "list" }, h("slot", { key: '5e19bf73400b92757e9a33257649213ae7c4b0f9' }), h("slot", { key: '6870ba04c2a975acbbc2782c96aa27a8a20d013d', name: "bottom" }))));
25
25
  }
26
26
  static get is() { return "wcs-nav"; }
27
27
  static get encapsulation() { return "shadow"; }
@@ -45,7 +45,7 @@ export class NavItem {
45
45
  }
46
46
  }
47
47
  render() {
48
- return (h(Host, { key: '79abea50c0964fd39358ecf7ed23030f9096b1fd', role: "listitem" }, h("slot", { key: 'dad7099b9fb08309052b2c35f2bc3a97c40b3ecb' })));
48
+ return (h(Host, { key: '3e5ca93ea18059c67d5570ee407192c70b9a5af1', role: "listitem" }, h("slot", { key: '4ce442473084b0e18fe3cc19248c349f026715f1' })));
49
49
  }
50
50
  static get is() { return "wcs-nav-item"; }
51
51
  static get originalStyleUrls() {
@@ -54,8 +54,8 @@ export class ProgressBar {
54
54
  const style = {
55
55
  width: this.value + '%'
56
56
  };
57
- return (h("div", Object.assign({ key: '5fe4671aeaaf799d336e38c4bd49f021b4fbb27b', class: this.rootClasses(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("div", { key: '9278d7110c3fed850ddcf1a06ff29a60fb4ebbd8', class: "progress-bar", style: style }, this.showLabel &&
58
- h("span", { key: 'ac5758b7b685fc08ecf4592b7194666d751c4b87', class: "progress-label" }, this.value, h("sup", { key: '313cec9fb8df686b3affb9a9002e1c6055249f0b' }, "%")))));
57
+ return (h("div", Object.assign({ key: 'cd24dba649fb46f84967e857ef6e29a0eb521794', class: this.rootClasses(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("div", { key: 'd0e92be2503030a665daf0ee4be4022845a63355', class: "progress-bar", style: style }, this.showLabel &&
58
+ h("span", { key: '06b7517e88d8ebafd6a28fc4dfabe38b93d3f0c3', class: "progress-label" }, this.value, h("sup", { key: '0e53ebfa29c4ee42831e9432bede449a9f71b313' }, "%")))));
59
59
  }
60
60
  rootClasses() {
61
61
  let classes = 'progress';
@@ -45,8 +45,8 @@ export class ProgressRadial {
45
45
  }
46
46
  render() {
47
47
  const { backgroundImageSize, halfSize } = { backgroundImageSize: this.backgroundImageSize, halfSize: this.backgroundImageSize / 2 };
48
- return (h("div", Object.assign({ key: '7da6ed9d04399e5ff473d112d6a111696c9b14bc', class: "progress-circle", "data-component": "radial-progress", style: this.getSize(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("svg", { key: '226ed7d14005563adc1e55e7ba28c3bb49ed1d95', "data-role": "figure", class: "circle-rail", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}` }, h("circle", { key: 'a50b905a8c36416ce3ede895affbda05a30b1c1b', cx: halfSize, cy: halfSize, r: 54, "stroke-width": 12 })), h("svg", { key: '7d58cf8a614acdff769c769ecca919b86792cd0d', class: "progress-circle-figure", "data-role": "figure", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}`, style: this.getSvgStyle() }, h("circle", { key: '11f22fd6a506b226a0e8a450163ac5c3a0fcbe44', class: "progress-circle-value", cx: halfSize, cy: halfSize, r: "54", "stroke-width": "12" })), this.showLabel &&
49
- h("div", { key: 'a87680ab5a59f4e34072dde8a2f7d15ef4b671e9', class: "progress-circle-label", "data-role": "label" }, h("span", { key: 'fe65c818b10f58562d65f7f330a21a794f8b876f' }, h("span", { key: '337459684703272ec7817fe64226e2df10341e9c', "data-role": "labelvalue" }, this.value), h("sup", { key: '45f173f53dcfa8e85ea0986f28e8848f75d24434' }, "%")))));
48
+ return (h("div", Object.assign({ key: '41c91ae3fadd538ad2b7c201f8def9c32fba54fa', class: "progress-circle", "data-component": "radial-progress", style: this.getSize(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("svg", { key: 'b3487735133ac25fd54d315aae3c59d55a35be5c', "data-role": "figure", class: "circle-rail", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}` }, h("circle", { key: 'a10400986a13c10f05ecf809f596d9064bfca7e4', cx: halfSize, cy: halfSize, r: 54, "stroke-width": 12 })), h("svg", { key: '5ea4655662fe08b668fb5508243bd1fb955c4484', class: "progress-circle-figure", "data-role": "figure", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}`, style: this.getSvgStyle() }, h("circle", { key: 'e84165f37b549e4f30ad9242fa65e871f615f550', class: "progress-circle-value", cx: halfSize, cy: halfSize, r: "54", "stroke-width": "12" })), this.showLabel &&
49
+ h("div", { key: '2f982e974db32f833d5227e79641cc400a845b70', class: "progress-circle-label", "data-role": "label" }, h("span", { key: 'ec3f7ab4833a1b5f9f061dd17374e89f9040f00f' }, h("span", { key: '8707ff80a7160a681c3fb056adba8c65a6c5bd22', "data-role": "labelvalue" }, this.value), h("sup", { key: '5119ede23174dba5a0b13187b5abb37a6c1d785b' }, "%")))));
50
50
  }
51
51
  getSvgStyle() {
52
52
  return {
@@ -53,6 +53,14 @@
53
53
  --wcs-radio-option-padding-right: var(--wcs-semantic-spacing-large);
54
54
  --wcs-radio-option-padding-bottom: var(--wcs-semantic-spacing-base);
55
55
  --wcs-radio-option-padding-left: var(--wcs-semantic-spacing-large);
56
+ /*
57
+ * DO NOT REMOVE:
58
+ * The native input is absolutely positioned.
59
+ * This `position: relative` makes `wcs-radio` its containing block.
60
+ * Without it, the input can be laid out relative to another ancestor higher in the DOM,
61
+ * so when the browser focuses the native control it may scroll the window unexpectedly.
62
+ */
63
+ position: relative;
56
64
  }
57
65
 
58
66
  :host([mode=radio]) input,
@@ -65,15 +73,15 @@
65
73
  clip-path: inset(50%);
66
74
  white-space: nowrap;
67
75
  }
68
- :host([mode=radio]) label,
69
- :host([mode=horizontal]) label {
76
+ :host([mode=radio]) .label,
77
+ :host([mode=horizontal]) .label {
70
78
  margin-bottom: 0;
71
79
  color: var(--wcs-radio-text-color-default);
72
80
  font-weight: var(--wcs-radio-text-font-weight-default) !important;
73
81
  display: inline-block;
74
82
  }
75
- :host([mode=radio]) label:before,
76
- :host([mode=horizontal]) label:before {
83
+ :host([mode=radio]) .label:before,
84
+ :host([mode=horizontal]) .label:before {
77
85
  border-radius: var(--wcs-radio-checkmark-border-radius);
78
86
  border: var(--wcs-radio-checkmark-border-width) solid var(--wcs-radio-checkmark-border-color-default);
79
87
  position: relative;
@@ -83,87 +91,90 @@
83
91
  content: "";
84
92
  background-color: var(--wcs-radio-checkmark-background-color-default);
85
93
  }
86
- :host([mode=radio]) input:focus-visible + label,
87
- :host([mode=horizontal]) input:focus-visible + label {
94
+
95
+ :host(:focus-visible) {
96
+ outline: none;
97
+ }
98
+ :host(:focus-visible) .label {
88
99
  transition: none;
89
100
  outline: var(--wcs-semantic-border-width-large) dashed var(--wcs-radio-outline-color-focus);
90
101
  outline-offset: var(--wcs-semantic-spacing-small);
91
102
  border-radius: var(--wcs-radio-border-radius);
92
103
  }
93
104
 
94
- :host([disabled]) label {
105
+ :host([disabled]) .label {
95
106
  color: var(--wcs-radio-text-color-disabled);
96
107
  cursor: not-allowed;
97
108
  }
98
- :host([disabled]) label:before {
109
+ :host([disabled]) .label:before {
99
110
  border-color: var(--wcs-radio-checkmark-border-color-disabled);
100
111
  }
101
112
 
102
- :host(:not([disabled])) label {
113
+ :host(:not([disabled])) .label {
103
114
  cursor: pointer;
104
115
  }
105
116
 
106
- :host([mode=radio].checked) label,
107
- :host([mode=horizontal].checked) label {
117
+ :host([mode=radio].checked) .label,
118
+ :host([mode=horizontal].checked) .label {
108
119
  color: var(--wcs-radio-text-color-selected);
109
120
  font-weight: var(--wcs-radio-text-font-weight-selected) !important;
110
121
  }
111
- :host([mode=radio].checked) label:before,
112
- :host([mode=horizontal].checked) label:before {
122
+ :host([mode=radio].checked) .label:before,
123
+ :host([mode=horizontal].checked) .label:before {
113
124
  border-color: var(--wcs-radio-checkmark-border-color-selected);
114
125
  background-color: var(--wcs-radio-checkmark-background-color-selected);
115
126
  outline: solid var(--wcs-radio-checkmark-outline-width) var(--wcs-radio-checkmark-outline-color);
116
127
  outline-offset: calc(-1 * var(--wcs-radio-checkmark-outline-distance-with-checkmark-circle));
117
128
  }
118
129
 
119
- :host([mode=radio][disabled].checked) label,
120
- :host([mode=horizontal][disabled].checked) label {
130
+ :host([mode=radio][disabled].checked) .label,
131
+ :host([mode=horizontal][disabled].checked) .label {
121
132
  color: var(--wcs-radio-text-color-disabled);
122
133
  }
123
- :host([mode=radio][disabled].checked) label:before,
124
- :host([mode=horizontal][disabled].checked) label:before {
134
+ :host([mode=radio][disabled].checked) .label:before,
135
+ :host([mode=horizontal][disabled].checked) .label:before {
125
136
  border-color: var(--wcs-radio-checkmark-border-color-disabled);
126
137
  background-color: var(--wcs-radio-checkmark-background-color-selected-disabled);
127
138
  }
128
139
 
129
- :host([mode=radio]:hover:not([disabled])) label,
130
- :host([mode=horizontal]:hover:not([disabled])) label {
140
+ :host([mode=radio]:hover:not([disabled])) .label,
141
+ :host([mode=horizontal]:hover:not([disabled])) .label {
131
142
  color: var(--wcs-radio-text-color-hover);
132
143
  }
133
- :host([mode=radio]:hover:not([disabled])) label:before,
134
- :host([mode=horizontal]:hover:not([disabled])) label:before {
144
+ :host([mode=radio]:hover:not([disabled])) .label:before,
145
+ :host([mode=horizontal]:hover:not([disabled])) .label:before {
135
146
  border-color: var(--wcs-radio-checkmark-border-color-hover);
136
147
  background-color: var(--wcs-radio-checkmark-background-color-selected-hover);
137
148
  }
138
149
 
139
- :host([mode=radio]:hover:not([disabled]):not(.checked)) label:before,
140
- :host([mode=horizontal]:hover:not([disabled]):not(.checked)) label:before {
150
+ :host([mode=radio]:hover:not([disabled]):not(.checked)) .label:before,
151
+ :host([mode=horizontal]:hover:not([disabled]):not(.checked)) .label:before {
141
152
  background-color: var(--wcs-radio-checkmark-background-color-default);
142
153
  }
143
154
 
144
- :host([mode=radio]) label {
155
+ :host([mode=radio]) .label {
145
156
  border: none;
146
157
  }
147
- :host([mode=radio]) label:before {
158
+ :host([mode=radio]) .label:before {
148
159
  transition: background-color var(--wcs-radio-transition-duration) ease-in-out;
149
160
  margin-right: var(--wcs-radio-gap);
150
161
  display: inline-block;
151
162
  top: 3px;
152
163
  box-sizing: border-box;
153
164
  }
154
- :host([mode=radio]) label:empty::before {
165
+ :host([mode=radio]) .label:empty::before {
155
166
  margin-right: 0;
156
167
  }
157
168
 
158
169
  :host([mode=horizontal]) {
159
170
  height: fit-content;
160
171
  }
161
- :host([mode=horizontal]) label:before {
172
+ :host([mode=horizontal]) .label:before {
162
173
  transition: background-color var(--wcs-radio-transition-duration) ease-in-out;
163
174
  margin: auto auto var(--wcs-radio-gap);
164
175
  display: block;
165
176
  }
166
- :host([mode=horizontal]) label:empty::before {
177
+ :host([mode=horizontal]) .label:empty::before {
167
178
  margin-bottom: 0;
168
179
  }
169
180
 
@@ -177,7 +188,7 @@
177
188
  box-sizing: border-box;
178
189
  padding: 0;
179
190
  }
180
- :host([mode=option]) label {
191
+ :host([mode=option]) .label {
181
192
  padding: var(--wcs-radio-option-padding-top) var(--wcs-radio-option-padding-right) var(--wcs-radio-option-padding-bottom) var(--wcs-radio-option-padding-left);
182
193
  margin-bottom: 0;
183
194
  color: var(--wcs-radio-option-text-color-default);
@@ -186,45 +197,45 @@
186
197
  transition: background-color var(--wcs-radio-transition-duration) ease-in-out;
187
198
  background-color: var(--wcs-radio-option-background-color-default);
188
199
  }
189
- :host([mode=option]) input:focus-visible + label {
200
+ :host([mode=option]) input:focus-visible + .label {
190
201
  outline: var(--wcs-semantic-border-width-large) dashed var(--wcs-radio-outline-color-focus);
191
202
  outline-offset: 0;
192
203
  border-radius: var(--wcs-radio-border-radius);
193
204
  }
194
205
 
195
- :host([mode=option][disabled]) label {
206
+ :host([mode=option][disabled]) .label {
196
207
  color: var(--wcs-radio-option-text-color-disabled);
197
208
  background-color: var(--wcs-radio-option-background-color-disabled);
198
209
  }
199
210
 
200
- :host([mode=option][disabled].checked) label {
211
+ :host([mode=option][disabled].checked) .label {
201
212
  color: var(--wcs-radio-option-text-color-disabled);
202
213
  background-color: var(--wcs-radio-option-background-color-selected-disabled);
203
214
  }
204
215
 
205
- :host([mode=option].checked) label {
216
+ :host([mode=option].checked) .label {
206
217
  font-weight: var(--wcs-radio-option-text-font-weight-selected) !important;
207
218
  color: var(--wcs-radio-option-text-color-selected-default);
208
219
  background-color: var(--wcs-radio-option-background-color-selected-default);
209
220
  }
210
221
 
211
- :host([mode=option]:hover.checked:not([disabled])) label {
222
+ :host([mode=option]:hover.checked:not([disabled])) .label {
212
223
  color: var(--wcs-radio-option-text-color-selected-hover);
213
224
  background-color: var(--wcs-radio-option-background-color-selected-hover);
214
225
  }
215
226
 
216
- :host([mode=option]:active.checked:not([disabled])) label {
227
+ :host([mode=option]:active.checked:not([disabled])) .label {
217
228
  color: var(--wcs-radio-option-text-color-selected-press);
218
229
  background-color: var(--wcs-radio-option-background-color-selected-press);
219
230
  }
220
231
 
221
- :host([mode=option]:hover:not(.checked):not([disabled])) label {
232
+ :host([mode=option]:hover:not(.checked):not([disabled])) .label {
222
233
  color: var(--wcs-radio-option-text-color-hover);
223
234
  background-color: var(--wcs-radio-option-background-color-hover);
224
235
  outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-hover);
225
236
  }
226
237
 
227
- :host([mode=option]:active:not(.checked):not([disabled])) label {
238
+ :host([mode=option]:active:not(.checked):not([disabled])) .label {
228
239
  color: var(--wcs-radio-option-text-color-press);
229
240
  background-color: var(--wcs-radio-option-background-color-press);
230
241
  outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-press);
@@ -1,6 +1,5 @@
1
1
  import { h, Host } from "@stencil/core";
2
- import { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from "../../utils/helpers";
3
- const RADIO_INHERITED_ATTRS = ['title'];
2
+ import { setOrRemoveAttribute } from "../../utils/helpers";
4
3
  /**
5
4
  * The radio component should always be wrapped in a `wcs-radio-group`.
6
5
  *
@@ -69,8 +68,18 @@ const RADIO_INHERITED_ATTRS = ['title'];
69
68
  */
70
69
  export class Radio {
71
70
  constructor() {
72
- this.inputId = `wcs-rb-${radioButtonIds++}`;
73
- this.inheritedAttributes = {};
71
+ this.handleClick = () => {
72
+ this.selectRadio();
73
+ };
74
+ this.handleKeyDown = (event) => {
75
+ if (this.disabled)
76
+ return;
77
+ if (event.key === ' ' || event.key === 'Enter') {
78
+ event.preventDefault();
79
+ event.stopPropagation();
80
+ this.selectRadio();
81
+ }
82
+ };
74
83
  this.checked = false;
75
84
  this.radioTabIndex = -1;
76
85
  this.value = undefined;
@@ -94,7 +103,7 @@ export class Radio {
94
103
  this.radioTabIndex = value;
95
104
  }
96
105
  async setAriaAttribute(attr, value) {
97
- setOrRemoveAttribute(this.nativeRadio, attr, value);
106
+ setOrRemoveAttribute(this.el, attr, value);
98
107
  }
99
108
  onFocus(ev) {
100
109
  this.wcsFocus.emit(ev);
@@ -110,18 +119,6 @@ export class Radio {
110
119
  // If no value was given we use the text content instead.
111
120
  this.value = this.el.innerText || '';
112
121
  }
113
- this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, RADIO_INHERITED_ATTRS));
114
- }
115
- onChange(_) {
116
- if (this.disabled)
117
- return;
118
- // If the radio is unchecked, then the change represents its transition to the check state.
119
- // Only emit the change event when going from unchecked to checked, like the native behavior.
120
- // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
121
- if (!this.checked) {
122
- this.checked = true;
123
- this.emitRadioChangeEvent();
124
- }
125
122
  }
126
123
  emitRadioChangeEvent() {
127
124
  this.wcsRadioClick.emit({
@@ -130,12 +127,20 @@ export class Radio {
130
127
  value: this.value
131
128
  });
132
129
  }
130
+ selectRadio() {
131
+ if (this.disabled || this.checked) {
132
+ return;
133
+ }
134
+ this.checked = true;
135
+ // Only emit the change event when going from unchecked to checked, like the native behavior.
136
+ // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
137
+ this.emitRadioChangeEvent();
138
+ }
133
139
  render() {
134
- return (h(Host, { key: 'b753f4673fccbd2f0d7e1636be135da90e1850ef', slot: "option", tabIndex: this.disabled ? -1 : this.radioTabIndex, class: this.checked ? 'checked' : '' }, h("input", Object.assign({ key: '25ac2afe93bdde452db9226feb11587f76a4fd69', id: this.inputId, type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-disabled": this.disabled ? 'true' : null, "aria-checked": `${this.checked}`, ref: (el) => (this.nativeRadio = el) }, this.inheritedAttributes)), h("label", { key: '13b771ac257bcf81734cee12a85ffdf143e3c329', htmlFor: `${this.inputId}` }, this.label)));
140
+ return (h(Host, { key: '19c87ecc30754b5534fe6fd0c10540d1701d9742', slot: "option", role: "radio", "aria-checked": this.checked ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : 'false', tabIndex: this.disabled ? -1 : this.radioTabIndex, class: this.checked ? 'checked' : '', onClick: this.handleClick.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), onKeyDown: this.handleKeyDown.bind(this) }, h("span", { key: '4dcb066b114426a822fb46f225d96c499b24e628', class: "label" }, this.label)));
135
141
  }
136
142
  static get is() { return "wcs-radio"; }
137
143
  static get encapsulation() { return "shadow"; }
138
- static get delegatesFocus() { return true; }
139
144
  static get originalStyleUrls() {
140
145
  return {
141
146
  "$": ["radio.scss"]
@@ -399,5 +404,4 @@ export class Radio {
399
404
  }
400
405
  static get elementRef() { return "el"; }
401
406
  }
402
- let radioButtonIds = 0;
403
407
  //# sourceMappingURL=radio.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State\n} from '@stencil/core';\nimport { RadioChosedEvent } from './radio-interface';\nimport { RadioGroupMode } from '../radio-group/radio-group-interface';\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst RADIO_INHERITED_ATTRS = ['title'];\n\n/**\n * The radio component should always be wrapped in a `wcs-radio-group`.\n * \n * @cssprop --wcs-radio-transition-duration - Duration of the transition\n * \n * @cssprop --wcs-radio-text-color-default - Color of the text when the radio is not selected\n * @cssprop --wcs-radio-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-text-color-selected - Color of the text when the radio is selected\n * @cssprop --wcs-radio-text-font-weight-selected - Font weight of the text when the radio is selected\n * @cssprop --wcs-radio-text-color-disabled - Color of the text when the radio is disabled\n * @cssprop --wcs-radio-text-color-hover - Color of the text when the radio is hovered\n * \n * @cssprop --wcs-radio-outline-color-focus - Color of the outline when the radio is focused\n * \n * @cssprop --wcs-radio-checkmark-size - Size of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-width - Width of the border of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-color-default - Color of the border of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-border-color-selected - Color of the border of the checkmark circle when the radio is selected\n * @cssprop --wcs-radio-checkmark-border-color-hover - Color of the border of the checkmark circle when the radio is hovered\n * @cssprop --wcs-radio-checkmark-border-color-disabled - Color of the border of the checkmark circle when the radio is disabled\n * @cssprop --wcs-radio-checkmark-background-color-default - Background color of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-background-color-selected - Background color of the checkmark circle when the radio's is selected\n * @cssprop --wcs-radio-checkmark-background-color-selected-disabled - Background color of the checkmark circle when the radio is selected and disabled\n * @cssprop --wcs-radio-checkmark-background-color-selected-hover - Background color of the checkmark circle when the radio is selected and hovered\n *\n * @cssprop --wcs-radio-checkmark-outline-distance-with-checkmark-circle - Distance between the checkmark circle and the outline (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-width - Width of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-color - Color of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-border-radius - Border radius of the checkmark circle\n * \n * @cssprop --wcs-radio-gap - Gap between the radio checkmark circle and the label\n * \n * @cssprop --wcs-radio-border-radius - Border radius of the radio (default mode)\n *\n * @cssprop --wcs-radio-option-background-color-default - Background color of the radio option when not selected\n * @cssprop --wcs-radio-option-background-color-hover - Background color of the radio option not selected when hovered\n * @cssprop --wcs-radio-option-background-color-press - Background color of the radio option when pressed\n * @cssprop --wcs-radio-option-background-color-disabled - Background color of the radio option when disabled\n * \n * @cssprop --wcs-radio-option-background-color-selected-default - Background color of the radio option when selected\n * @cssprop --wcs-radio-option-background-color-selected-hover - Background color of the radio option when selected and hovered\n * @cssprop --wcs-radio-option-background-color-selected-press - Background color of the radio option when selected and pressed\n * @cssprop --wcs-radio-option-background-color-selected-disabled - Background color of the radio option when selected and disabled\n * \n * @cssprop --wcs-radio-option-text-color-default - Color of the text when the radio option is not selected\n * @cssprop --wcs-radio-option-text-color-hover - Color of the text when the radio option not selected is hovered\n * @cssprop --wcs-radio-option-text-color-press - Color of the text when the radio option is pressed\n * \n * @cssprop --wcs-radio-option-text-color-selected-default - Color of the text when the radio option is selected\n * @cssprop --wcs-radio-option-text-color-selected-hover - Color of the text when the radio option is selected and hovered\n * @cssprop --wcs-radio-option-text-color-selected-press - Color of the text when the radio option is selected and pressed\n * @cssprop --wcs-radio-option-text-color-disabled - Color of the text when the radio option's is disabled\n * \n * @cssprop --wcs-radio-option-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-option-text-font-weight-selected - Font weight of the text when the radio option is selected\n *\n * @cssprop --wcs-radio-option-border-radius - Border radius of the radio option\n * @cssprop --wcs-radio-option-border-width - Width of the border of the radio option\n * @cssprop --wcs-radio-option-border-color-hover - Color of the border of the radio option when not selected and hovered\n * @cssprop --wcs-radio-option-border-color-press - Color of the border of the radio option when not selected and pressed\n * \n * @cssprop --wcs-radio-option-padding-top - Padding top of the radio option\n * @cssprop --wcs-radio-option-padding-right - Padding right of the radio option\n * @cssprop --wcs-radio-option-padding-bottom - Padding bottom of the radio option\n * @cssprop --wcs-radio-option-padding-left - Padding left of the radio option\n */\n@Component({\n tag: 'wcs-radio',\n styleUrl: 'radio.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class Radio implements ComponentInterface, MutableAriaAttribute {\n private inputId = `wcs-rb-${radioButtonIds++}`;\n @Element() private el!: HTMLWcsRadioElement;\n private nativeRadio!: HTMLInputElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, the radio is selected. \n * @private\n */\n @State() private checked: boolean = false;\n\n /**\n * The tabindex of the radio button\n * @private\n */\n @State() private radioTabIndex = -1;\n\n /**\n * Sets a unique value for each radio, used to identify which radio button in a group is selected\n */\n @Prop({ mutable: true, reflect: true }) value: any | any[] | undefined | null;\n\n /**\n * The label text displayed for the user\n */\n @Prop({ mutable: true, reflect: true }) label: string;\n \n /**\n * If `true`, the user cannot interact with the radio.\n */\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n\n /**\n * Emitted when the radio is clicked or Space/Enter is pressed above an unchecked radio\n */\n @Event({ eventName: 'wcsRadioClick' }) wcsRadioClick: EventEmitter<RadioChosedEvent>\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * The name of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ mutable: true }) name: string;\n\n\n /**\n * The display mode of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ reflect: true, mutable: false }) mode: RadioGroupMode = 'radio';\n\n /**\n * @internal\n * Checks of unchecks the radio according to it's radio-group value\n */\n @Method()\n async updateState() {\n const radioGroup = this.getClosestRadioGroup();\n if (radioGroup) {\n this.checked = radioGroup.name === this.name && radioGroup.value === this.value\n }\n }\n\n /** @internal */\n @Method()\n async setTabIndex(value: number) {\n this.radioTabIndex = value;\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeRadio, attr, value);\n }\n\n onFocus(ev: FocusEvent) {\n this.wcsFocus.emit(ev);\n }\n\n onBlur(ev: FocusEvent) {\n this.wcsBlur.emit(ev);\n }\n \n private getClosestRadioGroup(): HTMLWcsRadioGroupElement | null {\n return this.el.closest('wcs-radio-group');\n }\n\n componentWillLoad(): Promise<void> | void {\n if (this.value === undefined) {\n // If no value was given we use the text content instead.\n this.value = this.el.innerText || '';\n }\n \n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, RADIO_INHERITED_ATTRS),\n };\n }\n \n private onChange(_: Event) {\n if (this.disabled) return;\n\n // If the radio is unchecked, then the change represents its transition to the check state.\n // Only emit the change event when going from unchecked to checked, like the native behavior.\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n if (!this.checked) {\n this.checked = true;\n this.emitRadioChangeEvent();\n }\n }\n\n emitRadioChangeEvent() {\n this.wcsRadioClick.emit({\n label: this.label,\n source: this.el,\n value: this.value\n });\n }\n\n render() {\n \n return (\n <Host slot=\"option\"\n tabIndex={this.disabled ? -1 : this.radioTabIndex}\n class={this.checked ? 'checked' : ''}>\n <input\n id={this.inputId}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked} // Initial checked state of native input\n disabled={this.disabled}\n onChange={this.onChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n aria-disabled={this.disabled ? 'true' : null}\n aria-checked={`${this.checked}`}\n ref={(el) => (this.nativeRadio = el)}\n {...this.inheritedAttributes}\n />\n <label htmlFor={`${this.inputId}`}>{this.label}</label>\n </Host>\n );\n }\n}\n\nlet radioButtonIds = 0;\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State\n} from '@stencil/core';\nimport { RadioChosedEvent } from './radio-interface';\nimport { RadioGroupMode } from '../radio-group/radio-group-interface';\nimport { setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n/**\n * The radio component should always be wrapped in a `wcs-radio-group`.\n * \n * @cssprop --wcs-radio-transition-duration - Duration of the transition\n * \n * @cssprop --wcs-radio-text-color-default - Color of the text when the radio is not selected\n * @cssprop --wcs-radio-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-text-color-selected - Color of the text when the radio is selected\n * @cssprop --wcs-radio-text-font-weight-selected - Font weight of the text when the radio is selected\n * @cssprop --wcs-radio-text-color-disabled - Color of the text when the radio is disabled\n * @cssprop --wcs-radio-text-color-hover - Color of the text when the radio is hovered\n * \n * @cssprop --wcs-radio-outline-color-focus - Color of the outline when the radio is focused\n * \n * @cssprop --wcs-radio-checkmark-size - Size of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-width - Width of the border of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-color-default - Color of the border of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-border-color-selected - Color of the border of the checkmark circle when the radio is selected\n * @cssprop --wcs-radio-checkmark-border-color-hover - Color of the border of the checkmark circle when the radio is hovered\n * @cssprop --wcs-radio-checkmark-border-color-disabled - Color of the border of the checkmark circle when the radio is disabled\n * @cssprop --wcs-radio-checkmark-background-color-default - Background color of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-background-color-selected - Background color of the checkmark circle when the radio's is selected\n * @cssprop --wcs-radio-checkmark-background-color-selected-disabled - Background color of the checkmark circle when the radio is selected and disabled\n * @cssprop --wcs-radio-checkmark-background-color-selected-hover - Background color of the checkmark circle when the radio is selected and hovered\n *\n * @cssprop --wcs-radio-checkmark-outline-distance-with-checkmark-circle - Distance between the checkmark circle and the outline (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-width - Width of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-color - Color of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-border-radius - Border radius of the checkmark circle\n * \n * @cssprop --wcs-radio-gap - Gap between the radio checkmark circle and the label\n * \n * @cssprop --wcs-radio-border-radius - Border radius of the radio (default mode)\n *\n * @cssprop --wcs-radio-option-background-color-default - Background color of the radio option when not selected\n * @cssprop --wcs-radio-option-background-color-hover - Background color of the radio option not selected when hovered\n * @cssprop --wcs-radio-option-background-color-press - Background color of the radio option when pressed\n * @cssprop --wcs-radio-option-background-color-disabled - Background color of the radio option when disabled\n * \n * @cssprop --wcs-radio-option-background-color-selected-default - Background color of the radio option when selected\n * @cssprop --wcs-radio-option-background-color-selected-hover - Background color of the radio option when selected and hovered\n * @cssprop --wcs-radio-option-background-color-selected-press - Background color of the radio option when selected and pressed\n * @cssprop --wcs-radio-option-background-color-selected-disabled - Background color of the radio option when selected and disabled\n * \n * @cssprop --wcs-radio-option-text-color-default - Color of the text when the radio option is not selected\n * @cssprop --wcs-radio-option-text-color-hover - Color of the text when the radio option not selected is hovered\n * @cssprop --wcs-radio-option-text-color-press - Color of the text when the radio option is pressed\n * \n * @cssprop --wcs-radio-option-text-color-selected-default - Color of the text when the radio option is selected\n * @cssprop --wcs-radio-option-text-color-selected-hover - Color of the text when the radio option is selected and hovered\n * @cssprop --wcs-radio-option-text-color-selected-press - Color of the text when the radio option is selected and pressed\n * @cssprop --wcs-radio-option-text-color-disabled - Color of the text when the radio option's is disabled\n * \n * @cssprop --wcs-radio-option-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-option-text-font-weight-selected - Font weight of the text when the radio option is selected\n *\n * @cssprop --wcs-radio-option-border-radius - Border radius of the radio option\n * @cssprop --wcs-radio-option-border-width - Width of the border of the radio option\n * @cssprop --wcs-radio-option-border-color-hover - Color of the border of the radio option when not selected and hovered\n * @cssprop --wcs-radio-option-border-color-press - Color of the border of the radio option when not selected and pressed\n * \n * @cssprop --wcs-radio-option-padding-top - Padding top of the radio option\n * @cssprop --wcs-radio-option-padding-right - Padding right of the radio option\n * @cssprop --wcs-radio-option-padding-bottom - Padding bottom of the radio option\n * @cssprop --wcs-radio-option-padding-left - Padding left of the radio option\n */\n@Component({\n tag: 'wcs-radio',\n styleUrl: 'radio.scss',\n shadow: true\n})\nexport class Radio implements ComponentInterface, MutableAriaAttribute {\n @Element() private readonly el!: HTMLWcsRadioElement;\n \n /**\n * If `true`, the radio is selected. \n * @private\n */\n @State() private checked: boolean = false;\n\n /**\n * The tabindex of the radio button\n * @private\n */\n @State() private radioTabIndex = -1;\n\n /**\n * Sets a unique value for each radio, used to identify which radio button in a group is selected\n */\n @Prop({ mutable: true, reflect: true }) value: any | any[] | undefined | null;\n\n /**\n * The label text displayed for the user\n */\n @Prop({ mutable: true, reflect: true }) label: string;\n \n /**\n * If `true`, the user cannot interact with the radio.\n */\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n\n /**\n * Emitted when the radio is clicked or Space/Enter is pressed above an unchecked radio\n */\n @Event({ eventName: 'wcsRadioClick' }) wcsRadioClick: EventEmitter<RadioChosedEvent>\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * The name of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ mutable: true }) name: string;\n\n\n /**\n * The display mode of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ reflect: true, mutable: false }) mode: RadioGroupMode = 'radio';\n\n /**\n * @internal\n * Checks of unchecks the radio according to it's radio-group value\n */\n @Method()\n async updateState() {\n const radioGroup = this.getClosestRadioGroup();\n if (radioGroup) {\n this.checked = radioGroup.name === this.name && radioGroup.value === this.value\n }\n }\n\n /** @internal */\n @Method()\n async setTabIndex(value: number) {\n this.radioTabIndex = value;\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.el, attr, value);\n }\n\n onFocus(ev: FocusEvent) {\n this.wcsFocus.emit(ev);\n }\n\n onBlur(ev: FocusEvent) {\n this.wcsBlur.emit(ev);\n }\n \n private getClosestRadioGroup(): HTMLWcsRadioGroupElement | null {\n return this.el.closest('wcs-radio-group');\n }\n\n componentWillLoad(): Promise<void> | void {\n if (this.value === undefined) {\n // If no value was given we use the text content instead.\n this.value = this.el.innerText || '';\n }\n }\n\n emitRadioChangeEvent() {\n this.wcsRadioClick.emit({\n label: this.label,\n source: this.el,\n value: this.value\n });\n }\n\n private selectRadio() {\n if (this.disabled || this.checked) {\n return;\n }\n\n this.checked = true;\n // Only emit the change event when going from unchecked to checked, like the native behavior.\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n this.emitRadioChangeEvent();\n }\n\n private readonly handleClick = () => {\n this.selectRadio();\n };\n\n private readonly handleKeyDown = (event: KeyboardEvent) => {\n if (this.disabled) return;\n\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.selectRadio();\n }\n };\n\n render() {\n \n return (\n <Host slot=\"option\"\n role=\"radio\"\n aria-checked={this.checked ? 'true' : 'false'}\n aria-disabled={this.disabled ? 'true' : 'false'}\n tabIndex={this.disabled ? -1 : this.radioTabIndex}\n class={this.checked ? 'checked' : ''}\n onClick={this.handleClick.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n onKeyDown={this.handleKeyDown.bind(this)}>\n <span class=\"label\">{this.label}</span>\n </Host>\n );\n }\n}\n"]}
@@ -2,6 +2,18 @@ import { setWcsContent } from "../../utils/playwright/test";
2
2
  import { test } from "@stencil/playwright";
3
3
  import { expect } from "@playwright/test";
4
4
  test.describe('Radio Group', () => {
5
+ test('should not render an interactive radio descendant inside wcs-radio', async ({ page }) => {
6
+ // Given
7
+ await setWcsContent(page, `
8
+ <wcs-radio-group>
9
+ <wcs-radio id="radio-1" label="SNCF" value="1"></wcs-radio>
10
+ </wcs-radio-group>
11
+ `);
12
+ const radio = page.locator('#radio-1');
13
+ // Then
14
+ await expect(radio).toHaveAttribute('role', 'radio');
15
+ await expect(radio.locator('input[type="radio"]')).toHaveCount(0);
16
+ });
5
17
  test('should navigate to the first not disabled radio when pressing tab key', async ({ page }) => {
6
18
  // Given
7
19
  await setWcsContent(page, `
@@ -57,8 +69,7 @@ test.describe('Radio Group', () => {
57
69
  await page.keyboard.press('Space');
58
70
  // Then
59
71
  await expect(firstRadio).toBeFocused(); // Ensure focus is on the first radio
60
- const firstRadioNativeInput = page.locator('#radio-1 input');
61
- await expect(firstRadioNativeInput).toHaveAttribute('aria-checked', 'true');
72
+ await expect(firstRadio).toHaveAttribute('aria-checked', 'true');
62
73
  });
63
74
  test('should navigate to the checked radio when pressing tab key', async ({ page }) => {
64
75
  // Given
@@ -90,13 +101,12 @@ test.describe('Radio Group', () => {
90
101
  `);
91
102
  const firstRadio = page.locator('#radio-1');
92
103
  await firstRadio.focus();
93
- const thirdRadioNativeInput = page.locator('#radio-3 input');
94
104
  const thirdRadio = page.locator('#radio-3');
95
105
  // When
96
106
  await page.keyboard.press('ArrowDown');
97
107
  // Then
98
108
  await expect(thirdRadio).toBeFocused(); // Ensure focus is on the third radio
99
- await expect(thirdRadioNativeInput).toHaveAttribute('aria-checked', 'true');
109
+ await expect(thirdRadio).toHaveAttribute('aria-checked', 'true');
100
110
  });
101
111
  test('should checked the first not disabled radio when we are on the last radio', async ({ page }) => {
102
112
  // Given
@@ -113,7 +123,7 @@ test.describe('Radio Group', () => {
113
123
  await lastRadio.focus();
114
124
  await expect(lastRadio).toBeFocused();
115
125
  const secondRadio = page.locator('#radio-2');
116
- const secondRadioNativeInputInput = page.locator('#radio-2 input');
126
+ const secondRadioNativeInputInput = page.locator('#radio-2');
117
127
  // When
118
128
  await page.keyboard.press('ArrowDown');
119
129
  // Then
@@ -139,6 +149,26 @@ test.describe('Radio Group', () => {
139
149
  // Then
140
150
  expect(radioClickSpy).toHaveReceivedEventTimes(1);
141
151
  });
152
+ test('should keep only the last clicked radio checked in the same group', async ({ page }) => {
153
+ // Given
154
+ await setWcsContent(page, `
155
+ <wcs-radio-group>
156
+ <wcs-radio id="radio-1" value="1"></wcs-radio>
157
+ <wcs-radio id="radio-2" value="2"></wcs-radio>
158
+ <wcs-radio id="radio-3" value="3"></wcs-radio>
159
+ </wcs-radio-group>
160
+ `);
161
+ const radio1 = page.locator('#radio-1');
162
+ const radio2 = page.locator('#radio-2');
163
+ // When
164
+ await radio1.click();
165
+ await page.waitForChanges();
166
+ await radio2.click();
167
+ await page.waitForChanges();
168
+ // Then
169
+ await expect(radio1).toHaveAttribute('aria-checked', 'false');
170
+ await expect(radio2).toHaveAttribute('aria-checked', 'true');
171
+ });
142
172
  test('should fire wcsChange when we click or move to an unchecked radio', async ({ page }) => {
143
173
  // Given
144
174
  await setWcsContent(page, `
@@ -164,6 +194,30 @@ test.describe('Radio Group', () => {
164
194
  await expect(radio3).toBeFocused(); // Ensure focus is on the third radio (next radio after radio2)
165
195
  expect(changeSpy).toHaveReceivedEventTimes(2);
166
196
  });
197
+ test('should keep only the last keyboard-selected radio checked in the same group', async ({ page }) => {
198
+ // Given
199
+ await setWcsContent(page, `
200
+ <wcs-radio-group>
201
+ <wcs-radio id="radio-1" value="1"></wcs-radio>
202
+ <wcs-radio id="radio-2" value="2"></wcs-radio>
203
+ <wcs-radio id="radio-3" value="3"></wcs-radio>
204
+ </wcs-radio-group>
205
+ `);
206
+ const radio1 = page.locator('#radio-1');
207
+ const radio2 = page.locator('#radio-2');
208
+ const radio3 = page.locator('#radio-3');
209
+ // When
210
+ await radio1.focus();
211
+ await page.keyboard.press('Space');
212
+ await page.waitForChanges();
213
+ await page.keyboard.press('ArrowDown');
214
+ await page.waitForChanges();
215
+ // Then
216
+ await expect(radio2).toBeFocused();
217
+ await expect(radio1).toHaveAttribute('aria-checked', 'false');
218
+ await expect(radio2).toHaveAttribute('aria-checked', 'true');
219
+ await expect(radio3).toHaveAttribute('aria-checked', 'false');
220
+ });
167
221
  test('should fire wcsBlur and wcsFocus from the radios', async ({ page }) => {
168
222
  // Given
169
223
  await setWcsContent(page, `
@@ -206,7 +260,7 @@ test.describe('Radio Group', () => {
206
260
  // When
207
261
  await page.keyboard.press('ArrowUp');
208
262
  // Then
209
- const secondRadioInput = page.locator('#radio-2 input');
263
+ const secondRadioInput = page.locator('#radio-2');
210
264
  await expect(secondRadioInput).toHaveAttribute('aria-checked', 'true');
211
265
  });
212
266
  test('should checked the last radio when we are on the first radio', async ({ page }) => {
@@ -223,9 +277,40 @@ test.describe('Radio Group', () => {
223
277
  // When
224
278
  await page.keyboard.press('ArrowUp');
225
279
  // Then
226
- const lastRadioInput = page.locator('#radio-3 input');
280
+ const lastRadioInput = page.locator('#radio-3');
227
281
  await expect(lastRadioInput).toHaveAttribute('aria-checked', 'true');
228
282
  });
229
283
  });
284
+ test.describe('Behavior in window with scroll', () => {
285
+ [
286
+ { mode: 'radio' },
287
+ { mode: 'horizontal' },
288
+ { mode: 'option' }
289
+ ].forEach(({ mode }) => {
290
+ test(`should preserve the window scroll position when clicking a radio inside a scrollable container - mode: ${mode}`, async ({ page }) => {
291
+ // Given
292
+ await setWcsContent(page, `
293
+ <div id="scroll-container" style="height: 100vh; overflow-y: auto;">
294
+ <div style="margin-top: 150vh;">
295
+ <wcs-radio-group mode="${mode}">
296
+ <wcs-radio id="radio-1" value="1">Radio 1</wcs-radio>
297
+ <wcs-radio id="radio-2" value="2">Radio 2</wcs-radio>
298
+ <wcs-radio id="radio-3" value="3">Radio 3</wcs-radio>
299
+ </wcs-radio-group>
300
+ </div>
301
+ <div style="margin-top: 200vh;">Other content</div>
302
+ </div>
303
+ `);
304
+ const body = page.locator('body');
305
+ const radio2 = page.locator('#radio-2');
306
+ await radio2.scrollIntoViewIfNeeded();
307
+ // When
308
+ await radio2.click();
309
+ // Then
310
+ const scrollY = await body.evaluate(() => window.scrollY);
311
+ expect(scrollY).toBe(0);
312
+ });
313
+ });
314
+ });
230
315
  });
231
316
  //# sourceMappingURL=radio-group.e2e.playwright.js.map