wcs-core 7.0.0 → 7.1.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 (442) hide show
  1. package/design-tokens/dist/sncf-holding-root-scoped.css +589 -0
  2. package/design-tokens/dist/sncf-holding.css +13 -0
  3. package/design-tokens/dist/sncf-holding.json +54 -0
  4. package/design-tokens/dist/sncf-reseau-root-scoped.css +652 -0
  5. package/design-tokens/dist/sncf-reseau.css +10 -0
  6. package/design-tokens/dist/sncf-reseau.json +54 -0
  7. package/design-tokens/dist/sncf-voyageurs-root-scoped.css +550 -0
  8. package/design-tokens/dist/sncf-voyageurs.css +13 -0
  9. package/design-tokens/dist/sncf-voyageurs.json +54 -0
  10. package/dist/cjs/{com-nav-utils-9f6c99b8.js → com-nav-utils-ff4f0bef.js} +2 -2
  11. package/dist/cjs/{com-nav-utils-9f6c99b8.js.map → com-nav-utils-ff4f0bef.js.map} +1 -1
  12. package/dist/cjs/control-component-interface-d9b68f28.js +43 -0
  13. package/dist/cjs/control-component-interface-d9b68f28.js.map +1 -0
  14. package/dist/cjs/{grid-pagination-2c752b22.js → grid-pagination-e4f29c78.js} +3 -3
  15. package/dist/cjs/{grid-pagination-2c752b22.js.map → grid-pagination-e4f29c78.js.map} +1 -1
  16. package/dist/cjs/{helpers-871f5a3d.js → helpers-2f1a8ddc.js} +44 -1
  17. package/dist/cjs/helpers-2f1a8ddc.js.map +1 -0
  18. package/dist/cjs/{keyboard-event-d2c81ce0.js → keyboard-event-40ecdc27.js} +2 -2
  19. package/dist/cjs/{keyboard-event-d2c81ce0.js.map → keyboard-event-40ecdc27.js.map} +1 -1
  20. package/dist/cjs/loader.cjs.js +1 -1
  21. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +1 -1
  22. package/dist/cjs/wcs-action-bar.cjs.entry.js +1 -1
  23. package/dist/cjs/wcs-action-bar.cjs.entry.js.map +1 -1
  24. package/dist/cjs/wcs-badge.cjs.entry.js +1 -1
  25. package/dist/cjs/wcs-badge.cjs.entry.js.map +1 -1
  26. package/dist/cjs/wcs-breadcrumb.cjs.entry.js +1 -1
  27. package/dist/cjs/wcs-button_2.cjs.entry.js +3 -3
  28. package/dist/cjs/wcs-button_2.cjs.entry.js.map +1 -1
  29. package/dist/cjs/wcs-checkbox.cjs.entry.js +6 -2
  30. package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
  31. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +2 -2
  32. package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
  33. package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +1 -1
  34. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +2 -2
  35. package/dist/cjs/wcs-com-nav.cjs.entry.js +2 -2
  36. package/dist/cjs/wcs-counter.cjs.entry.js +13 -5
  37. package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +1 -1
  39. package/dist/cjs/wcs-dropdown.cjs.entry.js +3 -3
  40. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  41. package/dist/cjs/wcs-editable-field.cjs.entry.js +81 -55
  42. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  43. package/dist/cjs/wcs-error_3.cjs.entry.js +209 -0
  44. package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -0
  45. package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
  46. package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
  47. package/dist/cjs/wcs-field.cjs.entry.js +1 -1
  48. package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
  49. package/dist/cjs/wcs-footer.cjs.entry.js.map +1 -1
  50. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +4 -4
  51. package/dist/cjs/wcs-galactic-menu.cjs.entry.js.map +1 -1
  52. package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
  53. package/dist/cjs/wcs-grid-column.cjs.entry.js +2 -2
  54. package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
  55. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  56. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
  57. package/dist/cjs/wcs-grid.cjs.entry.js +6 -6
  58. package/dist/cjs/wcs-header.cjs.entry.js +2 -2
  59. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  60. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  61. package/dist/cjs/wcs-icon.cjs.entry.js +2 -2
  62. package/dist/cjs/wcs-input.cjs.entry.js +5 -3
  63. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  64. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  65. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  66. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  67. package/dist/cjs/wcs-list-item.cjs.entry.js.map +1 -1
  68. package/dist/cjs/wcs-mat-icon.cjs.entry.js +2 -2
  69. package/dist/cjs/wcs-modal.cjs.entry.js +17 -3
  70. package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
  71. package/dist/cjs/wcs-native-select.cjs.entry.js +1 -1
  72. package/dist/cjs/wcs-nav-item.cjs.entry.js +3 -3
  73. package/dist/cjs/wcs-nav-item.cjs.entry.js.map +1 -1
  74. package/dist/cjs/wcs-nav.cjs.entry.js +2 -2
  75. package/dist/cjs/wcs-progress-bar.cjs.entry.js +3 -3
  76. package/dist/cjs/wcs-progress-radial.cjs.entry.js +3 -3
  77. package/dist/cjs/wcs-radio-group.cjs.entry.js +5 -2
  78. package/dist/cjs/wcs-radio-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/wcs-radio.cjs.entry.js +2 -2
  80. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  81. package/dist/cjs/wcs-select_2.cjs.entry.js +8 -7
  82. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  83. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  84. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  85. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  86. package/dist/cjs/wcs-switch.cjs.entry.js +6 -2
  87. package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
  88. package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
  89. package/dist/cjs/wcs-tabs.cjs.entry.js +2 -2
  90. package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
  91. package/dist/cjs/wcs-textarea.cjs.entry.js +2 -2
  92. package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
  93. package/dist/cjs/wcs-tooltip.cjs.entry.js +8 -4
  94. package/dist/cjs/wcs-tooltip.cjs.entry.js.map +1 -1
  95. package/dist/cjs/wcs.cjs.js +1 -1
  96. package/dist/collection/components/action-bar/action-bar.js +2 -2
  97. package/dist/collection/components/action-bar/action-bar.js.map +1 -1
  98. package/dist/collection/components/badge/badge.css +1 -0
  99. package/dist/collection/components/button/button.js +2 -2
  100. package/dist/collection/components/button/button.js.map +1 -1
  101. package/dist/collection/components/checkbox/checkbox.js +22 -1
  102. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  103. package/dist/collection/components/com-nav-item/com-nav-item.css +2 -1
  104. package/dist/collection/components/counter/counter.css +3 -0
  105. package/dist/collection/components/counter/counter.js +13 -5
  106. package/dist/collection/components/counter/counter.js.map +1 -1
  107. package/dist/collection/components/dropdown/dropdown.js +2 -2
  108. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  109. package/dist/collection/components/editable-field/editable-field.css +31 -10
  110. package/dist/collection/components/editable-field/editable-field.e2e.js +176 -0
  111. package/dist/collection/components/editable-field/editable-field.e2e.js.map +1 -0
  112. package/dist/collection/components/editable-field/editable-field.js +83 -57
  113. package/dist/collection/components/editable-field/editable-field.js.map +1 -1
  114. package/dist/collection/components/error/error.js +1 -1
  115. package/dist/collection/components/field/field.js +1 -1
  116. package/dist/collection/components/field-content/field-content.js +1 -1
  117. package/dist/collection/components/field-label/field-label.js +1 -1
  118. package/dist/collection/components/footer/footer.js +1 -1
  119. package/dist/collection/components/footer/footer.js.map +1 -1
  120. package/dist/collection/components/form-field/form-field.css +39 -12
  121. package/dist/collection/components/form-field/form-field.e2e.js +122 -0
  122. package/dist/collection/components/form-field/form-field.e2e.js.map +1 -0
  123. package/dist/collection/components/form-field/form-field.js +29 -12
  124. package/dist/collection/components/form-field/form-field.js.map +1 -1
  125. package/dist/collection/components/galactic/galactic.js +1 -1
  126. package/dist/collection/components/galactic-menu/galactic-menu.css +1 -0
  127. package/dist/collection/components/galactic-menu/galactic-menu.js +2 -2
  128. package/dist/collection/components/grid/grid.js +3 -3
  129. package/dist/collection/components/grid-column/grid-column.js +2 -2
  130. package/dist/collection/components/grid-column/grid-column.js.map +1 -1
  131. package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
  132. package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
  133. package/dist/collection/components/header/header.js +1 -1
  134. package/dist/collection/components/hint/hint.js +1 -1
  135. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +1 -1
  136. package/dist/collection/components/icon/icon.js +1 -1
  137. package/dist/collection/components/input/input.css +10 -1
  138. package/dist/collection/components/input/input.js +42 -3
  139. package/dist/collection/components/input/input.js.map +1 -1
  140. package/dist/collection/components/label/label.js +1 -1
  141. package/dist/collection/components/list-item/list-item.js +7 -2
  142. package/dist/collection/components/list-item/list-item.js.map +1 -1
  143. package/dist/collection/components/list-item-properties/list-item-properties.js +1 -1
  144. package/dist/collection/components/list-item-property/list-item-property.js +1 -1
  145. package/dist/collection/components/mat-icon/mat-icon.js +1 -1
  146. package/dist/collection/components/modal/modal.js +58 -2
  147. package/dist/collection/components/modal/modal.js.map +1 -1
  148. package/dist/collection/components/native-select/native-select.js +1 -1
  149. package/dist/collection/components/nav/nav.js +1 -1
  150. package/dist/collection/components/nav-item/nav-item.css +24 -6
  151. package/dist/collection/components/nav-item/nav-item.js +1 -1
  152. package/dist/collection/components/progress-bar/progress-bar.js +2 -2
  153. package/dist/collection/components/progress-radial/progress-radial.js +2 -2
  154. package/dist/collection/components/radio/radio.js +2 -2
  155. package/dist/collection/components/radio/radio.js.map +1 -1
  156. package/dist/collection/components/radio-group/radio-group.js +39 -2
  157. package/dist/collection/components/radio-group/radio-group.js.map +1 -1
  158. package/dist/collection/components/select/select.js +22 -3
  159. package/dist/collection/components/select/select.js.map +1 -1
  160. package/dist/collection/components/select-option/select-option.js +2 -2
  161. package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
  162. package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
  163. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
  164. package/dist/collection/components/spinner/spinner.js +1 -1
  165. package/dist/collection/components/switch/switch.js +23 -2
  166. package/dist/collection/components/switch/switch.js.map +1 -1
  167. package/dist/collection/components/tab/tab.js +1 -1
  168. package/dist/collection/components/tabs/tabs.js +2 -2
  169. package/dist/collection/components/tabs/tabs.js.map +1 -1
  170. package/dist/collection/components/textarea/textarea.js +3 -3
  171. package/dist/collection/components/textarea/textarea.js.map +1 -1
  172. package/dist/collection/components/tooltip/tooltip.js +10 -8
  173. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  174. package/dist/collection/utils/control-component-interface.js +37 -0
  175. package/dist/collection/utils/control-component-interface.js.map +1 -0
  176. package/dist/collection/utils/helpers.js +40 -0
  177. package/dist/collection/utils/helpers.js.map +1 -1
  178. package/dist/esm/{com-nav-utils-1366c701.js → com-nav-utils-ee7bf77c.js} +2 -2
  179. package/dist/esm/{com-nav-utils-1366c701.js.map → com-nav-utils-ee7bf77c.js.map} +1 -1
  180. package/dist/esm/control-component-interface-9f09e520.js +40 -0
  181. package/dist/esm/control-component-interface-9f09e520.js.map +1 -0
  182. package/dist/esm/{grid-pagination-421689be.js → grid-pagination-976a86e9.js} +3 -3
  183. package/dist/esm/{grid-pagination-421689be.js.map → grid-pagination-976a86e9.js.map} +1 -1
  184. package/dist/esm/{helpers-f137ec8d.js → helpers-ece6a2d3.js} +42 -2
  185. package/dist/esm/helpers-ece6a2d3.js.map +1 -0
  186. package/dist/esm/{keyboard-event-bdea408a.js → keyboard-event-26b65ae5.js} +2 -2
  187. package/dist/esm/{keyboard-event-bdea408a.js.map → keyboard-event-26b65ae5.js.map} +1 -1
  188. package/dist/esm/loader.js +1 -1
  189. package/dist/esm/wcs-accordion-panel.entry.js +1 -1
  190. package/dist/esm/wcs-action-bar.entry.js +1 -1
  191. package/dist/esm/wcs-action-bar.entry.js.map +1 -1
  192. package/dist/esm/wcs-badge.entry.js +1 -1
  193. package/dist/esm/wcs-badge.entry.js.map +1 -1
  194. package/dist/esm/wcs-breadcrumb.entry.js +1 -1
  195. package/dist/esm/wcs-button_2.entry.js +3 -3
  196. package/dist/esm/wcs-button_2.entry.js.map +1 -1
  197. package/dist/esm/wcs-checkbox.entry.js +6 -2
  198. package/dist/esm/wcs-checkbox.entry.js.map +1 -1
  199. package/dist/esm/wcs-com-nav-category.entry.js +2 -2
  200. package/dist/esm/wcs-com-nav-item.entry.js +1 -1
  201. package/dist/esm/wcs-com-nav-item.entry.js.map +1 -1
  202. package/dist/esm/wcs-com-nav-submenu.entry.js +2 -2
  203. package/dist/esm/wcs-com-nav.entry.js +2 -2
  204. package/dist/esm/wcs-counter.entry.js +13 -5
  205. package/dist/esm/wcs-counter.entry.js.map +1 -1
  206. package/dist/esm/wcs-dropdown-item.entry.js +1 -1
  207. package/dist/esm/wcs-dropdown.entry.js +3 -3
  208. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  209. package/dist/esm/wcs-editable-field.entry.js +81 -55
  210. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  211. package/dist/esm/wcs-error_3.entry.js +203 -0
  212. package/dist/esm/wcs-error_3.entry.js.map +1 -0
  213. package/dist/esm/wcs-field-content.entry.js +1 -1
  214. package/dist/esm/wcs-field-label.entry.js +1 -1
  215. package/dist/esm/wcs-field.entry.js +1 -1
  216. package/dist/esm/wcs-footer.entry.js +1 -1
  217. package/dist/esm/wcs-footer.entry.js.map +1 -1
  218. package/dist/esm/wcs-galactic-menu.entry.js +4 -4
  219. package/dist/esm/wcs-galactic-menu.entry.js.map +1 -1
  220. package/dist/esm/wcs-galactic.entry.js +1 -1
  221. package/dist/esm/wcs-grid-column.entry.js +2 -2
  222. package/dist/esm/wcs-grid-column.entry.js.map +1 -1
  223. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  224. package/dist/esm/wcs-grid-pagination.entry.js +2 -2
  225. package/dist/esm/wcs-grid.entry.js +6 -6
  226. package/dist/esm/wcs-header.entry.js +2 -2
  227. package/dist/esm/wcs-hint.entry.js +1 -1
  228. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  229. package/dist/esm/wcs-icon.entry.js +2 -2
  230. package/dist/esm/wcs-input.entry.js +5 -3
  231. package/dist/esm/wcs-input.entry.js.map +1 -1
  232. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  233. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  234. package/dist/esm/wcs-list-item.entry.js +1 -1
  235. package/dist/esm/wcs-list-item.entry.js.map +1 -1
  236. package/dist/esm/wcs-mat-icon.entry.js +2 -2
  237. package/dist/esm/wcs-modal.entry.js +17 -3
  238. package/dist/esm/wcs-modal.entry.js.map +1 -1
  239. package/dist/esm/wcs-native-select.entry.js +1 -1
  240. package/dist/esm/wcs-nav-item.entry.js +3 -3
  241. package/dist/esm/wcs-nav-item.entry.js.map +1 -1
  242. package/dist/esm/wcs-nav.entry.js +2 -2
  243. package/dist/esm/wcs-progress-bar.entry.js +3 -3
  244. package/dist/esm/wcs-progress-radial.entry.js +3 -3
  245. package/dist/esm/wcs-radio-group.entry.js +5 -2
  246. package/dist/esm/wcs-radio-group.entry.js.map +1 -1
  247. package/dist/esm/wcs-radio.entry.js +2 -2
  248. package/dist/esm/wcs-radio.entry.js.map +1 -1
  249. package/dist/esm/wcs-select_2.entry.js +8 -7
  250. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  251. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  252. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  253. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  254. package/dist/esm/wcs-switch.entry.js +6 -2
  255. package/dist/esm/wcs-switch.entry.js.map +1 -1
  256. package/dist/esm/wcs-tab.entry.js +1 -1
  257. package/dist/esm/wcs-tabs.entry.js +2 -2
  258. package/dist/esm/wcs-tabs.entry.js.map +1 -1
  259. package/dist/esm/wcs-textarea.entry.js +2 -2
  260. package/dist/esm/wcs-textarea.entry.js.map +1 -1
  261. package/dist/esm/wcs-tooltip.entry.js +8 -4
  262. package/dist/esm/wcs-tooltip.entry.js.map +1 -1
  263. package/dist/esm/wcs.js +1 -1
  264. package/dist/types/components/checkbox/checkbox.d.ts +3 -1
  265. package/dist/types/components/counter/counter.d.ts +6 -0
  266. package/dist/types/components/editable-field/editable-field.d.ts +23 -9
  267. package/dist/types/components/input/input.d.ts +3 -0
  268. package/dist/types/components/list-item/list-item.d.ts +5 -0
  269. package/dist/types/components/modal/modal.d.ts +23 -0
  270. package/dist/types/components/radio-group/radio-group.d.ts +3 -1
  271. package/dist/types/components/select/select.d.ts +4 -0
  272. package/dist/types/components/switch/switch.d.ts +3 -1
  273. package/dist/types/components/tooltip/tooltip.d.ts +3 -5
  274. package/dist/types/components.d.ts +87 -16
  275. package/dist/types/utils/control-component-interface.d.ts +22 -0
  276. package/dist/types/utils/helpers.d.ts +21 -0
  277. package/dist/wcs/p-0017d766.js +2 -0
  278. package/dist/wcs/{p-45a6934d.entry.js → p-0ffdfc10.entry.js} +2 -2
  279. package/dist/wcs/{p-9f23c49e.entry.js → p-13090618.entry.js} +2 -2
  280. package/dist/wcs/{p-8f0e093f.entry.js → p-13e50077.entry.js} +2 -2
  281. package/dist/wcs/p-1438530e.entry.js +2 -0
  282. package/dist/wcs/p-1438530e.entry.js.map +1 -0
  283. package/dist/wcs/{p-2305f257.entry.js → p-16dd21cf.entry.js} +2 -2
  284. package/dist/wcs/{p-85a5bbb7.entry.js → p-206c01d5.entry.js} +2 -2
  285. package/dist/wcs/{p-85a5bbb7.entry.js.map → p-206c01d5.entry.js.map} +1 -1
  286. package/dist/wcs/{p-09d0a296.entry.js → p-21b964cd.entry.js} +3 -3
  287. package/dist/wcs/p-21b964cd.entry.js.map +1 -0
  288. package/dist/wcs/p-21d2f06f.entry.js +2 -0
  289. package/dist/wcs/p-21d2f06f.entry.js.map +1 -0
  290. package/dist/wcs/{p-2add4d4d.entry.js → p-258855a1.entry.js} +2 -2
  291. package/dist/wcs/{p-2c9e20c1.entry.js → p-294732f7.entry.js} +2 -2
  292. package/dist/wcs/{p-15ff9f93.entry.js → p-29f5b974.entry.js} +2 -2
  293. package/dist/wcs/{p-1ab0d13b.entry.js → p-2adf00be.entry.js} +2 -2
  294. package/dist/wcs/p-2adf00be.entry.js.map +1 -0
  295. package/dist/wcs/p-37800935.entry.js +2 -0
  296. package/dist/wcs/{p-76f07dbd.entry.js → p-388e6d75.entry.js} +2 -2
  297. package/dist/wcs/{p-8bd1b9ce.entry.js → p-43d70995.entry.js} +2 -2
  298. package/dist/wcs/{p-9553d60e.entry.js → p-4661290b.entry.js} +2 -2
  299. package/dist/wcs/{p-9553d60e.entry.js.map → p-4661290b.entry.js.map} +1 -1
  300. package/dist/wcs/{p-d2a4f609.entry.js → p-4dc52a25.entry.js} +2 -2
  301. package/dist/wcs/{p-25b96cde.entry.js → p-50523b53.entry.js} +2 -2
  302. package/dist/wcs/p-50523b53.entry.js.map +1 -0
  303. package/dist/wcs/p-52d77e1f.js +2 -0
  304. package/dist/wcs/p-52d77e1f.js.map +1 -0
  305. package/dist/wcs/p-5974be61.entry.js +2 -0
  306. package/dist/wcs/p-5974be61.entry.js.map +1 -0
  307. package/dist/wcs/{p-0fa370d7.entry.js → p-5bf73e05.entry.js} +3 -3
  308. package/dist/wcs/{p-0fa370d7.entry.js.map → p-5bf73e05.entry.js.map} +1 -1
  309. package/dist/wcs/{p-e19308cf.entry.js → p-5d5f50ed.entry.js} +2 -2
  310. package/dist/wcs/{p-94ff8939.entry.js → p-5de993d7.entry.js} +2 -2
  311. package/dist/wcs/p-5de993d7.entry.js.map +1 -0
  312. package/dist/wcs/{p-a788b5bd.entry.js → p-619e1110.entry.js} +2 -2
  313. package/dist/wcs/{p-9e03b379.entry.js → p-694724a2.entry.js} +2 -2
  314. package/dist/wcs/{p-f8d2be83.entry.js → p-6b06d2e7.entry.js} +2 -2
  315. package/dist/wcs/p-6f5d570a.entry.js +2 -0
  316. package/dist/wcs/p-6f5d570a.entry.js.map +1 -0
  317. package/dist/wcs/p-71db0ed5.entry.js +2 -0
  318. package/dist/wcs/{p-209145de.entry.js → p-76c92e22.entry.js} +2 -2
  319. package/dist/wcs/{p-f06aa79d.entry.js → p-796e690d.entry.js} +2 -2
  320. package/dist/wcs/{p-f06aa79d.entry.js.map → p-796e690d.entry.js.map} +1 -1
  321. package/dist/wcs/{p-97cbbcfc.entry.js → p-7d665a7e.entry.js} +2 -2
  322. package/dist/wcs/p-89b8c724.js +2 -0
  323. package/dist/wcs/{p-412b0021.js → p-8fcceaf1.js} +2 -2
  324. package/dist/wcs/p-9243a323.entry.js +2 -0
  325. package/dist/wcs/p-9243a323.entry.js.map +1 -0
  326. package/dist/wcs/p-94aa269f.entry.js +2 -0
  327. package/dist/wcs/p-94aa269f.entry.js.map +1 -0
  328. package/dist/wcs/{p-87b69cac.entry.js → p-9554196c.entry.js} +2 -2
  329. package/dist/wcs/{p-80a23f9c.entry.js → p-96bff8fe.entry.js} +2 -2
  330. package/dist/wcs/{p-80a23f9c.entry.js.map → p-96bff8fe.entry.js.map} +1 -1
  331. package/dist/wcs/{p-fa507e06.entry.js → p-9ad23e83.entry.js} +2 -2
  332. package/dist/wcs/{p-5ea2aba5.entry.js → p-9c012aae.entry.js} +2 -2
  333. package/dist/wcs/p-9dc3f9a5.entry.js +2 -0
  334. package/dist/wcs/p-9dc3f9a5.entry.js.map +1 -0
  335. package/dist/wcs/p-9eb66fa9.entry.js +2 -0
  336. package/dist/wcs/p-a7468a3a.js +2 -0
  337. package/dist/wcs/p-a7468a3a.js.map +1 -0
  338. package/dist/wcs/{p-4982f96c.entry.js → p-a7891233.entry.js} +2 -2
  339. package/dist/wcs/p-b2080509.entry.js +2 -0
  340. package/dist/wcs/{p-806315e6.entry.js.map → p-b2080509.entry.js.map} +1 -1
  341. package/dist/wcs/p-b96f4921.entry.js +2 -0
  342. package/dist/wcs/p-b96f4921.entry.js.map +1 -0
  343. package/dist/wcs/{p-276b8125.entry.js → p-c2d35aa6.entry.js} +3 -3
  344. package/dist/wcs/{p-276b8125.entry.js.map → p-c2d35aa6.entry.js.map} +1 -1
  345. package/dist/wcs/p-c752b85a.entry.js +2 -0
  346. package/dist/wcs/{p-b0f8190f.entry.js → p-d895ffb4.entry.js} +2 -2
  347. package/dist/wcs/{p-1e5aa960.entry.js → p-d9525519.entry.js} +2 -2
  348. package/dist/wcs/p-d9525519.entry.js.map +1 -0
  349. package/dist/wcs/{p-db81b74f.entry.js → p-da4636fa.entry.js} +2 -2
  350. package/dist/wcs/p-da4636fa.entry.js.map +1 -0
  351. package/dist/wcs/p-dd60a6db.entry.js +2 -0
  352. package/dist/wcs/p-dd60a6db.entry.js.map +1 -0
  353. package/dist/wcs/p-dddcd685.entry.js +2 -0
  354. package/dist/wcs/p-dddcd685.entry.js.map +1 -0
  355. package/dist/wcs/p-e36b2ad1.entry.js +2 -0
  356. package/dist/wcs/p-f87636f6.entry.js +2 -0
  357. package/dist/wcs/p-f87636f6.entry.js.map +1 -0
  358. package/dist/wcs/p-fc115de4.entry.js +2 -0
  359. package/dist/wcs/wcs.esm.js +1 -1
  360. package/dist/wcs/wcs.esm.js.map +1 -1
  361. package/package.json +1 -1
  362. package/dist/cjs/helpers-871f5a3d.js.map +0 -1
  363. package/dist/cjs/wcs-error_2.cjs.entry.js +0 -168
  364. package/dist/cjs/wcs-error_2.cjs.entry.js.map +0 -1
  365. package/dist/cjs/wcs-label.cjs.entry.js +0 -33
  366. package/dist/cjs/wcs-label.cjs.entry.js.map +0 -1
  367. package/dist/esm/helpers-f137ec8d.js.map +0 -1
  368. package/dist/esm/wcs-error_2.entry.js +0 -163
  369. package/dist/esm/wcs-error_2.entry.js.map +0 -1
  370. package/dist/esm/wcs-label.entry.js +0 -29
  371. package/dist/esm/wcs-label.entry.js.map +0 -1
  372. package/dist/wcs/p-08e86d69.entry.js +0 -2
  373. package/dist/wcs/p-08e86d69.entry.js.map +0 -1
  374. package/dist/wcs/p-09d0a296.entry.js.map +0 -1
  375. package/dist/wcs/p-0fdaec9e.entry.js +0 -2
  376. package/dist/wcs/p-0fdaec9e.entry.js.map +0 -1
  377. package/dist/wcs/p-19c77b5c.entry.js +0 -2
  378. package/dist/wcs/p-1ab0d13b.entry.js.map +0 -1
  379. package/dist/wcs/p-1e5aa960.entry.js.map +0 -1
  380. package/dist/wcs/p-25b96cde.entry.js.map +0 -1
  381. package/dist/wcs/p-400a71d7.entry.js +0 -2
  382. package/dist/wcs/p-4ca7c59f.entry.js +0 -2
  383. package/dist/wcs/p-4ca7c59f.entry.js.map +0 -1
  384. package/dist/wcs/p-4d6d1d14.js +0 -2
  385. package/dist/wcs/p-52cd0abb.entry.js +0 -2
  386. package/dist/wcs/p-52cd0abb.entry.js.map +0 -1
  387. package/dist/wcs/p-5f517eb5.entry.js +0 -2
  388. package/dist/wcs/p-806315e6.entry.js +0 -2
  389. package/dist/wcs/p-8780a429.entry.js +0 -2
  390. package/dist/wcs/p-8780a429.entry.js.map +0 -1
  391. package/dist/wcs/p-94ff8939.entry.js.map +0 -1
  392. package/dist/wcs/p-985c4cf2.entry.js +0 -2
  393. package/dist/wcs/p-985c4cf2.entry.js.map +0 -1
  394. package/dist/wcs/p-a3aece7a.js +0 -2
  395. package/dist/wcs/p-a3aece7a.js.map +0 -1
  396. package/dist/wcs/p-a66a4289.entry.js +0 -2
  397. package/dist/wcs/p-bf31245c.entry.js +0 -2
  398. package/dist/wcs/p-bf31245c.entry.js.map +0 -1
  399. package/dist/wcs/p-cd592a00.entry.js +0 -2
  400. package/dist/wcs/p-cd592a00.entry.js.map +0 -1
  401. package/dist/wcs/p-d42831b2.entry.js +0 -2
  402. package/dist/wcs/p-d42831b2.entry.js.map +0 -1
  403. package/dist/wcs/p-d7acbf01.js +0 -2
  404. package/dist/wcs/p-db81b74f.entry.js.map +0 -1
  405. package/dist/wcs/p-dbbf0980.entry.js +0 -2
  406. package/dist/wcs/p-dbbf0980.entry.js.map +0 -1
  407. package/dist/wcs/p-e64d7437.entry.js +0 -2
  408. package/dist/wcs/p-e86575d3.entry.js +0 -2
  409. package/dist/wcs/p-e86575d3.entry.js.map +0 -1
  410. package/dist/wcs/p-f264d46f.entry.js +0 -2
  411. package/dist/wcs/p-fd9e731d.entry.js +0 -2
  412. package/dist/wcs/p-fd9e731d.entry.js.map +0 -1
  413. /package/dist/wcs/{p-d7acbf01.js.map → p-0017d766.js.map} +0 -0
  414. /package/dist/wcs/{p-45a6934d.entry.js.map → p-0ffdfc10.entry.js.map} +0 -0
  415. /package/dist/wcs/{p-9f23c49e.entry.js.map → p-13090618.entry.js.map} +0 -0
  416. /package/dist/wcs/{p-8f0e093f.entry.js.map → p-13e50077.entry.js.map} +0 -0
  417. /package/dist/wcs/{p-2305f257.entry.js.map → p-16dd21cf.entry.js.map} +0 -0
  418. /package/dist/wcs/{p-2add4d4d.entry.js.map → p-258855a1.entry.js.map} +0 -0
  419. /package/dist/wcs/{p-2c9e20c1.entry.js.map → p-294732f7.entry.js.map} +0 -0
  420. /package/dist/wcs/{p-15ff9f93.entry.js.map → p-29f5b974.entry.js.map} +0 -0
  421. /package/dist/wcs/{p-e64d7437.entry.js.map → p-37800935.entry.js.map} +0 -0
  422. /package/dist/wcs/{p-76f07dbd.entry.js.map → p-388e6d75.entry.js.map} +0 -0
  423. /package/dist/wcs/{p-8bd1b9ce.entry.js.map → p-43d70995.entry.js.map} +0 -0
  424. /package/dist/wcs/{p-d2a4f609.entry.js.map → p-4dc52a25.entry.js.map} +0 -0
  425. /package/dist/wcs/{p-e19308cf.entry.js.map → p-5d5f50ed.entry.js.map} +0 -0
  426. /package/dist/wcs/{p-a788b5bd.entry.js.map → p-619e1110.entry.js.map} +0 -0
  427. /package/dist/wcs/{p-9e03b379.entry.js.map → p-694724a2.entry.js.map} +0 -0
  428. /package/dist/wcs/{p-f8d2be83.entry.js.map → p-6b06d2e7.entry.js.map} +0 -0
  429. /package/dist/wcs/{p-5f517eb5.entry.js.map → p-71db0ed5.entry.js.map} +0 -0
  430. /package/dist/wcs/{p-209145de.entry.js.map → p-76c92e22.entry.js.map} +0 -0
  431. /package/dist/wcs/{p-97cbbcfc.entry.js.map → p-7d665a7e.entry.js.map} +0 -0
  432. /package/dist/wcs/{p-4d6d1d14.js.map → p-89b8c724.js.map} +0 -0
  433. /package/dist/wcs/{p-412b0021.js.map → p-8fcceaf1.js.map} +0 -0
  434. /package/dist/wcs/{p-87b69cac.entry.js.map → p-9554196c.entry.js.map} +0 -0
  435. /package/dist/wcs/{p-fa507e06.entry.js.map → p-9ad23e83.entry.js.map} +0 -0
  436. /package/dist/wcs/{p-5ea2aba5.entry.js.map → p-9c012aae.entry.js.map} +0 -0
  437. /package/dist/wcs/{p-19c77b5c.entry.js.map → p-9eb66fa9.entry.js.map} +0 -0
  438. /package/dist/wcs/{p-4982f96c.entry.js.map → p-a7891233.entry.js.map} +0 -0
  439. /package/dist/wcs/{p-400a71d7.entry.js.map → p-c752b85a.entry.js.map} +0 -0
  440. /package/dist/wcs/{p-b0f8190f.entry.js.map → p-d895ffb4.entry.js.map} +0 -0
  441. /package/dist/wcs/{p-f264d46f.entry.js.map → p-e36b2ad1.entry.js.map} +0 -0
  442. /package/dist/wcs/{p-a66a4289.entry.js.map → p-fc115de4.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"file":"wcs-nav-item.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,UAAU,GAAG,oxKAAoxK,CAAC;AACxyK,yBAAe,UAAU;;MC4CZ,OAAO;;;;IAIhB,SAAS,CAAC,MAAqB;QAC3B,IAAIA,kBAAU,CAAC,MAAM,CAAC,EAAE;YACpB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;SACnB;KACJ;IAED,MAAM;QACF,QACIC,QAACC,UAAI,qDAAC,IAAI,EAAC,UAAU,IACjBD,oEAAO,CACJ,EACT;KACL;;;;;;;","names":["isEnterKey","h","Host"],"sources":["src/components/nav-item/nav-item.scss?tag=wcs-nav-item","src/components/nav-item/nav-item.tsx"],"sourcesContent":["@import '../../style/breakpoints';\n@import '../../style/focus-outline.scss';\n\nwcs-nav-item {\n --wcs-nav-item-font-weight: var(--wcs-semantic-font-weight-medium);\n\n --wcs-nav-item-height-desktop: calc(10 * var(--wcs-semantic-size-base));\n --wcs-nav-item-height-mobile: calc(6 * var(--wcs-semantic-size-base));\n --wcs-nav-item-gap-desktop: var(--wcs-semantic-spacing-base);\n --wcs-nav-item-gap-mobile: 0;\n\n --wcs-nav-item-font-size-desktop: var(--wcs-semantic-font-size-label-3);\n --wcs-nav-item-font-size-mobile: calc(var(--wcs-semantic-font-size-body-1) / 2);\n\n --wcs-nav-item-background-color-default: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-nav-item-background-color-hover: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-nav-item-background-color-press: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-nav-item-background-color-active: var(--wcs-semantic-color-background-action-primary-selected-default);\n\n --wcs-nav-item-color-default: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-nav-item-color-active: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-nav-item-color-hover: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-nav-item-color-press: var(--wcs-semantic-color-foreground-action-primary-default);\n\n --wcs-nav-item-border-color-focus: var(--wcs-semantic-color-foreground-action-primary-default); // TODO : censé être --wcs-semantic-color-border-focus-base-on-secondary -> pas encore implémenté le \"on-secondary\"\n --wcs-nav-item-border-width-focus: var(--wcs-semantic-border-width-large);\n\n --wcs-nav-item-indicator-background-color: var(--wcs-semantic-color-background-surface-accent-light);\n --wcs-nav-item-indicator-width-desktop: calc(0.5 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-width-mobile: calc(3 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-height-desktop: calc(3 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-height-mobile: calc(0.5 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-border-radius-desktop: var(--wcs-semantic-border-radius-base) 0 0 var(--wcs-semantic-border-radius-base);\n --wcs-nav-item-indicator-border-radius-mobile: var(--wcs-semantic-border-radius-base) var(--wcs-semantic-border-radius-base) 0 0;\n\n --wcs-nav-item-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n display: block;\n cursor: pointer;\n font-weight: var(--wcs-nav-item-font-weight);\n\n transition-property: color, background-color, border-color, box-shadow, backdrop-filter;\n transition-duration: var(--wcs-nav-item-transition-duration);\n transition-timing-function: ease-in-out;\n background-color: var(--wcs-nav-item-background-color-default);\n\n a {\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n background-color: transparent;\n border: none;\n text-decoration: none;\n height: var(--wcs-nav-item-height-desktop);\n gap: var(--wcs-nav-item-gap-desktop);\n font-size: var(--wcs-nav-item-font-size-desktop);\n color: var(--wcs-nav-item-color-default);\n\n @include for-tablet-landscape-down {\n display: flex;\n flex: 1;\n height: var(--wcs-nav-item-height-mobile);\n gap: var(--wcs-nav-item-gap-mobile);\n font-size: var(--wcs-nav-item-font-size-mobile);\n }\n }\n\n a:focus {\n outline: none;\n }\n\n @include for-tablet-landscape-down {\n &:has(a:focus-visible) {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n\n @supports not selector(&:has(a:focus-visible)){\n &:focus-within {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n }\n }\n\n @include for-desktop-up {\n &:has(a:focus-visible) {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n\n @supports not selector(&:has(a:focus-visible)){\n &:focus-within {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n }\n }\n\n i {\n margin-bottom: 0.5rem;\n display: inline-block;\n @include for-tablet-landscape-down {\n margin-bottom: 0.25rem;\n display: inline-block;\n }\n }\n}\n\nwcs-nav-item[slot=bottom] {\n a {\n @include for-desktop-up {\n border-top: var(--wcs-nav-item-border-horizontal-width) solid var(--wcs-nav-item-border-horizontal-color);\n border-bottom: none !important;\n }\n }\n}\n\nwcs-nav-item:hover {\n a {\n color: var(--wcs-nav-item-color-hover);\n }\n\n background-color: var(--wcs-nav-item-background-color-hover);\n}\n\n/* This selector is for the press state, not to be confused with the active state (.active) */\nwcs-nav-item:active {\n a {\n color: var(--wcs-nav-item-color-press);\n }\n\n background-color: var(--wcs-nav-item-background-color-press);\n}\n\n\nwcs-nav-item.active,\nwcs-nav-item:has(> .active) {\n //background-blend-mode: multiply;\n background-color: var(--wcs-nav-item-background-color-active);\n\n a {\n color: var(--wcs-nav-item-color-active);\n }\n}\n\n// For the indicator on the active nav-item :\nwcs-nav-item.active, wcs-nav-item:has(> .active) {\n a::after {\n position: absolute;\n right: 0;\n width: var(--wcs-nav-item-indicator-width-desktop);\n height: var(--wcs-nav-item-indicator-height-desktop);\n content: \"\";\n background-color: var(--wcs-nav-item-indicator-background-color);\n border-radius: var(--wcs-nav-item-indicator-border-radius-desktop);\n }\n\n @include for-tablet-landscape-down {\n a::after {\n right: auto;\n bottom: 0;\n width: var(--wcs-nav-item-indicator-width-mobile);\n height: var(--wcs-nav-item-indicator-height-mobile);\n border-radius: var(--wcs-nav-item-indicator-border-radius-mobile);\n }\n }\n}\n","import { Element, Component, ComponentInterface, h, Listen, Host } from '@stencil/core';\nimport { isEnterKey } from \"../../utils/helpers\";\n\n/**\n * The nav-item component is a subcomponent of `wcs-nav` and should always be used inside it. \n * They contain links to navigate to other pages of the website.\n * \n * @cssprop --wcs-nav-item-font-weight - Font weight of the nav item\n * \n * @cssprop --wcs-nav-item-height-desktop - Height of the nav item on desktop\n * @cssprop --wcs-nav-item-height-mobile - Height of the nav item on mobile\n * @cssprop --wcs-nav-item-gap-desktop - Gap between items in nav-item on desktop (e.g. icon and label)\n * @cssprop --wcs-nav-item-gap-mobile - Gap between items in nav-item on mobile (e.g. icon and label)\n * \n * \n * @cssprop --wcs-nav-item-font-size-desktop - Font size of the nav item on desktop\n * @cssprop --wcs-nav-item-font-size-mobile - Font size of the nav item on mobile\n * \n * @cssprop --wcs-nav-item-background-color-default - Default background color of the nav item\n * @cssprop --wcs-nav-item-background-color-hover - Background color of the nav item when hovered\n * @cssprop --wcs-nav-item-background-color-press - Background color of the nav item when pressed\n * @cssprop --wcs-nav-item-background-color-active - Background color of the nav item when active\n * \n * @cssprop --wcs-nav-item-color-default - Color of the nav item when default\n * @cssprop --wcs-nav-item-color-active - Color of the nav item when active\n * @cssprop --wcs-nav-item-color-hover - Color of the nav item when hovered\n * @cssprop --wcs-nav-item-color-press - Color of the nav item when pressed\n * \n * @cssprop --wcs-nav-item-border-color-focus - Border color of the nav item when focused\n * @cssprop --wcs-nav-item-border-width-focus - Border width of the nav item when focused\n * \n * @cssprop --wcs-nav-item-indicator-background-color - Background color of the nav item indicator\n * @cssprop --wcs-nav-item-indicator-width-desktop - Width of the nav item indicator on desktop\n * @cssprop --wcs-nav-item-indicator-width-mobile - Width of the nav item indicator on mobile\n * @cssprop --wcs-nav-item-indicator-height-desktop - Height of the nav item indicator on desktop\n * @cssprop --wcs-nav-item-indicator-height-mobile - Height of the nav item indicator on mobile\n * @cssprop --wcs-nav-item-indicator-border-radius-desktop - Border radius of the nav item indicator on desktop\n * @cssprop --wcs-nav-item-indicator-border-radius-mobile - Border radius of the nav item indicator on mobile\n * \n * @cssprop --wcs-nav-item-transition-duration - Transition duration of the nav item\n */\n@Component({\n tag: 'wcs-nav-item',\n styleUrl: 'nav-item.scss'\n})\nexport class NavItem implements ComponentInterface {\n @Element() private el: HTMLElement;\n \n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n if (isEnterKey(_event)) {\n this.el.click();\n }\n }\n\n render() {\n return (\n <Host role=\"listitem\">\n <slot/>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"wcs-nav-item.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,UAAU,GAAG,y7LAAy7L,CAAC;AAC78L,yBAAe,UAAU;;MC4CZ,OAAO;;;;IAIhB,SAAS,CAAC,MAAqB;QAC3B,IAAIA,kBAAU,CAAC,MAAM,CAAC,EAAE;YACpB,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;SACnB;KACJ;IAED,MAAM;QACF,QACIC,QAACC,UAAI,qDAAC,IAAI,EAAC,UAAU,IACjBD,oEAAO,CACJ,EACT;KACL;;;;;;;","names":["isEnterKey","h","Host"],"sources":["src/components/nav-item/nav-item.scss?tag=wcs-nav-item","src/components/nav-item/nav-item.tsx"],"sourcesContent":["@import '../../style/breakpoints';\n@import '../../style/focus-outline.scss';\n\nwcs-nav-item {\n --wcs-nav-item-font-weight: var(--wcs-semantic-font-weight-medium);\n\n --wcs-nav-item-height-desktop: calc(10 * var(--wcs-semantic-size-base));\n --wcs-nav-item-height-mobile: calc(6 * var(--wcs-semantic-size-base));\n --wcs-nav-item-gap-desktop: var(--wcs-semantic-spacing-base);\n --wcs-nav-item-gap-mobile: 0;\n\n --wcs-nav-item-font-size-desktop: var(--wcs-semantic-font-size-label-3);\n --wcs-nav-item-font-size-mobile: calc(var(--wcs-semantic-font-size-body-1) / 2);\n\n --wcs-nav-item-background-color-default: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-nav-item-background-color-hover: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-nav-item-background-color-press: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-nav-item-background-color-active: var(--wcs-semantic-color-background-action-primary-selected-default);\n\n --wcs-nav-item-color-default: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-nav-item-color-active: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-nav-item-color-hover: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-nav-item-color-press: var(--wcs-semantic-color-foreground-action-primary-default);\n\n --wcs-nav-item-border-color-focus: var(--wcs-semantic-color-border-focus-base-on-secondary);\n --wcs-nav-item-border-width-focus: var(--wcs-semantic-border-width-large);\n\n --wcs-nav-item-indicator-background-color: var(--wcs-semantic-color-background-surface-accent-light);\n --wcs-nav-item-indicator-width-desktop: calc(0.5 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-width-mobile: calc(3 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-height-desktop: calc(3 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-height-mobile: calc(0.5 * var(--wcs-semantic-size-base));\n --wcs-nav-item-indicator-border-radius-desktop: var(--wcs-semantic-border-radius-base) 0 0 var(--wcs-semantic-border-radius-base);\n --wcs-nav-item-indicator-border-radius-mobile: var(--wcs-semantic-border-radius-base) var(--wcs-semantic-border-radius-base) 0 0;\n\n --wcs-nav-item-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n display: block;\n cursor: pointer;\n font-weight: var(--wcs-nav-item-font-weight);\n\n transition-property: color, background-color, border-color, box-shadow, backdrop-filter;\n transition-duration: var(--wcs-nav-item-transition-duration);\n transition-timing-function: ease-in-out;\n background-color: var(--wcs-nav-item-background-color-default);\n\n a, button {\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n background-color: transparent;\n border: none;\n text-decoration: none;\n height: var(--wcs-nav-item-height-desktop);\n gap: var(--wcs-nav-item-gap-desktop);\n font-size: var(--wcs-nav-item-font-size-desktop);\n color: var(--wcs-nav-item-color-default);\n\n @include for-tablet-landscape-down {\n display: flex;\n flex: 1;\n height: var(--wcs-nav-item-height-mobile);\n gap: var(--wcs-nav-item-gap-mobile);\n font-size: var(--wcs-nav-item-font-size-mobile);\n }\n }\n\n button {\n width: 100%;\n cursor: inherit;\n }\n\n a:focus, button:focus {\n outline: none;\n }\n\n @include for-tablet-landscape-down {\n &:has(a:focus-visible), &:has(button:focus-visible) {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n\n @supports not selector(&:has(a:focus-visible)) {\n &:focus-within {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n }\n\n @supports not selector(&:has(button:focus-visible)) {\n &:focus-within {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n }\n }\n\n @include for-desktop-up {\n &:has(a:focus-visible), &:has(button:focus-visible) {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n\n @supports not selector(&:has(a:focus-visible)) {\n &:focus-within {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n }\n\n @supports not selector(&:has(button:focus-visible)) {\n &:focus-within {\n @include focus-outline(var(--wcs-nav-item-border-color-focus), var(--wcs-nav-item-border-width-focus), -2px);\n }\n }\n }\n\n i {\n margin-bottom: 0.5rem;\n display: inline-block;\n @include for-tablet-landscape-down {\n margin-bottom: 0.25rem;\n display: inline-block;\n }\n }\n}\n\nwcs-nav-item[slot=bottom] {\n a {\n @include for-desktop-up {\n border-top: var(--wcs-nav-item-border-horizontal-width) solid var(--wcs-nav-item-border-horizontal-color);\n border-bottom: none !important;\n }\n }\n}\n\nwcs-nav-item:hover {\n a {\n color: var(--wcs-nav-item-color-hover);\n }\n\n background-color: var(--wcs-nav-item-background-color-hover);\n}\n\n/* This selector is for the press state, not to be confused with the active state (.active) */\nwcs-nav-item:active {\n a {\n color: var(--wcs-nav-item-color-press);\n }\n\n background-color: var(--wcs-nav-item-background-color-press);\n}\n\n\nwcs-nav-item.active,\nwcs-nav-item:has(> .active) {\n //background-blend-mode: multiply;\n background-color: var(--wcs-nav-item-background-color-active);\n\n a {\n color: var(--wcs-nav-item-color-active);\n }\n}\n\n// For the indicator on the active nav-item :\nwcs-nav-item.active, wcs-nav-item:has(> .active) {\n a::after {\n position: absolute;\n right: 0;\n width: var(--wcs-nav-item-indicator-width-desktop);\n height: var(--wcs-nav-item-indicator-height-desktop);\n content: \"\";\n background-color: var(--wcs-nav-item-indicator-background-color);\n border-radius: var(--wcs-nav-item-indicator-border-radius-desktop);\n }\n\n @include for-tablet-landscape-down {\n a::after {\n right: auto;\n bottom: 0;\n width: var(--wcs-nav-item-indicator-width-mobile);\n height: var(--wcs-nav-item-indicator-height-mobile);\n border-radius: var(--wcs-nav-item-indicator-border-radius-mobile);\n }\n }\n}\n","import { Element, Component, ComponentInterface, h, Listen, Host } from '@stencil/core';\nimport { isEnterKey } from \"../../utils/helpers\";\n\n/**\n * The nav-item component is a subcomponent of `wcs-nav` and should always be used inside it. \n * They contain links to navigate to other pages of the website.\n * \n * @cssprop --wcs-nav-item-font-weight - Font weight of the nav item\n * \n * @cssprop --wcs-nav-item-height-desktop - Height of the nav item on desktop\n * @cssprop --wcs-nav-item-height-mobile - Height of the nav item on mobile\n * @cssprop --wcs-nav-item-gap-desktop - Gap between items in nav-item on desktop (e.g. icon and label)\n * @cssprop --wcs-nav-item-gap-mobile - Gap between items in nav-item on mobile (e.g. icon and label)\n * \n * \n * @cssprop --wcs-nav-item-font-size-desktop - Font size of the nav item on desktop\n * @cssprop --wcs-nav-item-font-size-mobile - Font size of the nav item on mobile\n * \n * @cssprop --wcs-nav-item-background-color-default - Default background color of the nav item\n * @cssprop --wcs-nav-item-background-color-hover - Background color of the nav item when hovered\n * @cssprop --wcs-nav-item-background-color-press - Background color of the nav item when pressed\n * @cssprop --wcs-nav-item-background-color-active - Background color of the nav item when active\n * \n * @cssprop --wcs-nav-item-color-default - Color of the nav item when default\n * @cssprop --wcs-nav-item-color-active - Color of the nav item when active\n * @cssprop --wcs-nav-item-color-hover - Color of the nav item when hovered\n * @cssprop --wcs-nav-item-color-press - Color of the nav item when pressed\n * \n * @cssprop --wcs-nav-item-border-color-focus - Border color of the nav item when focused\n * @cssprop --wcs-nav-item-border-width-focus - Border width of the nav item when focused\n * \n * @cssprop --wcs-nav-item-indicator-background-color - Background color of the nav item indicator\n * @cssprop --wcs-nav-item-indicator-width-desktop - Width of the nav item indicator on desktop\n * @cssprop --wcs-nav-item-indicator-width-mobile - Width of the nav item indicator on mobile\n * @cssprop --wcs-nav-item-indicator-height-desktop - Height of the nav item indicator on desktop\n * @cssprop --wcs-nav-item-indicator-height-mobile - Height of the nav item indicator on mobile\n * @cssprop --wcs-nav-item-indicator-border-radius-desktop - Border radius of the nav item indicator on desktop\n * @cssprop --wcs-nav-item-indicator-border-radius-mobile - Border radius of the nav item indicator on mobile\n * \n * @cssprop --wcs-nav-item-transition-duration - Transition duration of the nav item\n */\n@Component({\n tag: 'wcs-nav-item',\n styleUrl: 'nav-item.scss'\n})\nexport class NavItem implements ComponentInterface {\n @Element() private el: HTMLElement;\n \n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n if (isEnterKey(_event)) {\n this.el.click();\n }\n }\n\n render() {\n return (\n <Host role=\"listitem\">\n <slot/>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-6f0140d8.js');
6
- const helpers = require('./helpers-871f5a3d.js');
6
+ const helpers = require('./helpers-2f1a8ddc.js');
7
7
 
8
8
  const navCss = ":host{--wcs-nav-background-color:var(--wcs-semantic-color-background-surface-brand);--wcs-nav-width-desktop:calc(12 * var(--wcs-semantic-size-base));--wcs-nav-height-mobile:calc(6 * var(--wcs-semantic-size-base))}nav{background-color:var(--wcs-nav-background-color);display:flex;z-index:1055;flex-direction:column;width:var(--wcs-nav-width-desktop);height:100%}nav div[role=list]{list-style-type:none;display:flex;flex-direction:column;flex-grow:1}@media (max-width: 1199px){nav div[role=list]{flex-direction:row}}@media (max-width: 1199px){nav{flex-direction:row;width:100%;height:var(--wcs-nav-height-mobile)}}@media (max-width: 1199px){::slotted(wcs-nav-item){flex:1}}@media (min-width: 1200px){slot[name=bottom],wcs-nav-item:not([slot=bottom])+wcs-nav-item[slot=bottom]{display:block;margin-top:auto}}";
9
9
  const WcsNavStyle0 = navCss;
@@ -21,7 +21,7 @@ const Nav = class {
21
21
  helpers.setOrRemoveAttribute(this.nativeNav, attr, value);
22
22
  }
23
23
  render() {
24
- return (index.h("nav", Object.assign({ key: 'b21daddbeba58cc9f1a7488a50641062244e698b', role: "navigation", class: "wcs-nav-container", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), index.h("div", { key: '9a6aa465e017b462a444127e1a18dfe8814bb95f', role: "list" }, index.h("slot", { key: 'ef653234e05f5dd2bf1428562fcf8ee1dc695b72' }), index.h("slot", { key: '2e41b049ef0d82c5fecb8ef13b1cd59eec77e009', name: "bottom" }))));
24
+ return (index.h("nav", Object.assign({ key: '010b8847c02ed7e6c9f3112f486279709f75fbb0', role: "navigation", class: "wcs-nav-container", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), index.h("div", { key: '35117f4736ebeedc66db2c883eeb6a9b570fcc25', role: "list" }, index.h("slot", { key: 'a08aa2b168519ce86b6bfbabe501f38bfc55c62b' }), index.h("slot", { key: '0f2f00d3bf339128d64cb2b61eb7029d3a0ce035', name: "bottom" }))));
25
25
  }
26
26
  get el() { return index.getElement(this); }
27
27
  };
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-6f0140d8.js');
6
- const helpers = require('./helpers-871f5a3d.js');
6
+ const helpers = require('./helpers-2f1a8ddc.js');
7
7
 
8
8
  const progressBarCss = ":host{--wcs-progress-bar-border-radius:var(--wcs-semantic-border-radius-full);--wcs-progress-bar-border-radius-small:var(--wcs-semantic-border-radius-small);--wcs-progress-bar-animation-duration:var(--wcs-semantic-motion-duration-feedback-slower);--wcs-progress-bar-height-m:calc(var(--wcs-semantic-size-m) / 4);--wcs-progress-bar-height-s:calc(var(--wcs-semantic-size-s) / 6);--wcs-progress-bar-background-color:transparent;--wcs-progress-bar-rail-color:var(--wcs-semantic-color-background-surface-tertiary);--wcs-progress-bar-rail-spacing:var(--wcs-semantic-spacing-small);--wcs-progress-bar-gap-s:var(--wcs-semantic-spacing-small);--wcs-progress-bar-gap-m:var(--wcs-semantic-spacing-base);--wcs-progress-bar-indicator-color:var(--wcs-semantic-color-background-surface-brand);--wcs-progress-bar-label-color:var(--wcs-semantic-color-text-primary);--wcs-progress-bar-label-font-size-s:var(--wcs-semantic-font-size-s);--wcs-progress-bar-label-font-size-m:calc(1.5 * var(--wcs-semantic-font-size-m));--wcs-progress-bar-label-font-weight:var(--wcs-semantic-font-weight-medium);--wcs-progress-bar-label-percentage-font-size-s:calc(var(--wcs-semantic-font-size-s) * 0.7);--wcs-progress-bar-label-percentage-font-size-m:calc(var(--wcs-semantic-font-size-m) * 0.7);--wcs-progress-bar-label-top-space:var(--wcs-semantic-spacing-large)}:host([size=s]) .progress{height:var(--wcs-progress-bar-height-s);background-color:var(--wcs-progress-bar-background-color);background-image:none;background-size:auto;border-radius:var(--wcs-progress-bar-border-radius-small)}:host([size=s]) .progress .progress-label{font-size:var(--wcs-progress-bar-label-font-size-s);bottom:calc(100% + var(--wcs-progress-bar-gap-s))}:host([size=s]) .progress .progress-label sup{font-size:var(--wcs-progress-bar-label-percentage-font-size-s)}.progress{display:flex;height:var(--wcs-progress-bar-height-m);color:var(--wcs-progress-bar-label-color);background-color:var(--wcs-progress-bar-background-color);background-image:linear-gradient(90deg, var(--wcs-progress-bar-rail-color), 50%, transparent 50%);background-size:var(--wcs-progress-bar-rail-spacing) var(--wcs-progress-bar-height-m);border-radius:var(--wcs-progress-bar-border-radius)}.progress.has-label{margin-top:var(--wcs-progress-bar-label-top-space)}.progress.value-zero>.progress-bar>.progress-label{right:unset}.progress-bar{position:relative;display:flex;flex-direction:column;justify-content:center;color:var(--wcs-progress-bar-label-color);text-align:center;background-color:var(--wcs-progress-bar-indicator-color);border-radius:var(--wcs-progress-bar-border-radius);transition:width var(--wcs-progress-bar-animation-duration) ease-out}.progress-label{line-height:1;position:absolute;right:0;bottom:calc(100% + var(--wcs-progress-bar-gap-m));display:flex;flex-direction:row;align-items:flex-start;font-size:var(--wcs-progress-bar-label-font-size-m);font-weight:var(--wcs-progress-bar-label-font-weight)}.progress-label sup{font-size:var(--wcs-progress-bar-label-percentage-font-size-m)}";
9
9
  const WcsProgressBarStyle0 = progressBarCss;
@@ -27,8 +27,8 @@ const ProgressBar = class {
27
27
  const style = {
28
28
  width: this.value + '%'
29
29
  };
30
- return (index.h("div", Object.assign({ key: '5eafbef962694edca0d5df1ba278305024b62c52', 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), index.h("div", { key: '247b91b7898ef6c1c2ee16100bc344ec633beb9b', class: "progress-bar", style: style }, this.showLabel &&
31
- index.h("span", { key: '24da06a23d7c1bae748872823defd844302d6d64', class: "progress-label" }, this.value, index.h("sup", { key: '0deaf0870a815c32d8c45767f12c41b4ee8b493b' }, "%")))));
30
+ return (index.h("div", Object.assign({ key: '9339cb3c4ef89618cb45119495d3601ce2110d3d', 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), index.h("div", { key: '8b54ef388bcd4e2bff826a18374c4732f7d0e384', class: "progress-bar", style: style }, this.showLabel &&
31
+ index.h("span", { key: 'f50f5879441f22db9552f6bbaaca3ede6f23a678', class: "progress-label" }, this.value, index.h("sup", { key: 'b10471901b5d3efc0ae95d3a1de822ead1720b87' }, "%")))));
32
32
  }
33
33
  rootClasses() {
34
34
  let classes = 'progress';
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-6f0140d8.js');
6
- const helpers = require('./helpers-871f5a3d.js');
6
+ const helpers = require('./helpers-2f1a8ddc.js');
7
7
 
8
8
  const progressRadialCss = ":host{display:inline-flex;--wcs-progress-radial-rail-width:calc(var(--wcs-semantic-spacing-base) / 4);--wcs-progress-radial-rail-spacing:calc(var(--wcs-semantic-spacing-base) / 4);--wcs-progress-radial-rail-color:var(--wcs-semantic-color-background-surface-tertiary);--wcs-progress-radial-value-background-color:var(--wcs-semantic-color-background-surface-brand);--wcs-progress-radial-label-color:var(--wcs-semantic-color-text-primary);--wcs-progress-radial-label-font-size:calc(1.5 * var(--wcs-semantic-font-size-m));--wcs-progress-radial-label-font-weight:var(--wcs-semantic-font-weight-medium);--wcs-progress-radial-label-percentage-font-size:calc(var(--wcs-semantic-font-size-m) * 0.7);--wcs-progress-radial-animation-duration:var(--wcs-semantic-motion-duration-feedback-slower)}.progress-circle{position:relative;display:inline-block}.circle-rail{position:absolute;z-index:0;stroke:var(--wcs-progress-radial-rail-color);stroke-dasharray:var(--wcs-progress-radial-rail-width) var(--wcs-progress-radial-rail-spacing);fill:none}.progress-circle-figure{position:absolute;top:0;z-index:1;transform:rotate(-90deg);transition:stroke-dashoffset var(--wcs-progress-radial-animation-duration) ease-out}.progress-circle-label{top:0;left:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:var(--wcs-progress-radial-label-font-size);font-weight:var(--wcs-progress-radial-label-font-weight);color:var(--wcs-progress-radial-label-color)}.progress-circle-label sup{font-size:var(--wcs-progress-radial-label-percentage-font-size);top:-0.85em;position:relative;line-height:0;vertical-align:baseline}.progress-circle-value{stroke:var(--wcs-progress-radial-value-background-color);stroke-linecap:round}.progress-circle-value,.progress-circle-meter{fill:none}";
9
9
  const WcsProgressRadialStyle0 = progressRadialCss;
@@ -27,8 +27,8 @@ const ProgressRadial = class {
27
27
  }
28
28
  render() {
29
29
  const { backgroundImageSize, halfSize } = { backgroundImageSize: this.backgroundImageSize, halfSize: this.backgroundImageSize / 2 };
30
- return (index.h("div", Object.assign({ key: '20a1b2ec2f830712df1314092685217a949fb29d', 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), index.h("svg", { key: '92572a6d6d5be7eca3a89285f77a8a5e0b6a2afa', "data-role": "figure", class: "circle-rail", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}` }, index.h("circle", { key: 'c1b1ced5b7d6e618ef5b99b917505c1fdf26bed3', cx: halfSize, cy: halfSize, r: 54, "stroke-width": 12 })), index.h("svg", { key: 'f5d3484a174d41b7d30c74f86c804f4580de3adf', class: "progress-circle-figure", "data-role": "figure", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}`, style: this.getSvgStyle() }, index.h("circle", { key: 'c050adc6249e7e02a93a4c1ae5a3964e30693a6b', class: "progress-circle-value", cx: halfSize, cy: halfSize, r: "54", "stroke-width": "12" })), this.showLabel &&
31
- index.h("div", { key: '7f1c735090e8bffeef031273988df3bb6d5ef3cb', class: "progress-circle-label", "data-role": "label" }, index.h("span", { key: 'b7bb1c1413f747b1fa69d4c604290a7c5b4474a2' }, index.h("span", { key: 'ce9dba9d9e9772486ba6ffee33f3333d48686805', "data-role": "labelvalue" }, this.value), index.h("sup", { key: 'ac7fb3d250f950bc87d1fbde2fcc6e6d6d6e3d4b' }, "%")))));
30
+ return (index.h("div", Object.assign({ key: 'c98910d8a132eacbf780f3d9e5a23553c14297a6', 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), index.h("svg", { key: 'd8f0282d2b7332c29ed10936ca2cfc5c00c03e3d', "data-role": "figure", class: "circle-rail", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}` }, index.h("circle", { key: '4534f4ac6749d59a8a1bd4189f3f998bc0aae416', cx: halfSize, cy: halfSize, r: 54, "stroke-width": 12 })), index.h("svg", { key: 'daf5358b0148443292ce3ac84d55d849e48033bc', class: "progress-circle-figure", "data-role": "figure", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}`, style: this.getSvgStyle() }, index.h("circle", { key: '3df0779e14354a9084b5f9132660ac2e1d446028', class: "progress-circle-value", cx: halfSize, cy: halfSize, r: "54", "stroke-width": "12" })), this.showLabel &&
31
+ index.h("div", { key: '28212403f92e2a2f1b7515847e8e7cab95851413', class: "progress-circle-label", "data-role": "label" }, index.h("span", { key: '93b4d94b47b8289f113d717392824d3bca9f9ec9' }, index.h("span", { key: 'e7093e3a2d3accdbc81ced41d8a02afa167483f6', "data-role": "labelvalue" }, this.value), index.h("sup", { key: 'f9e66ca420de366cab09cc835d39e849030c4c8b' }, "%")))));
32
32
  }
33
33
  getSvgStyle() {
34
34
  return {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-6f0140d8.js');
6
- const helpers = require('./helpers-871f5a3d.js');
6
+ const helpers = require('./helpers-2f1a8ddc.js');
7
7
 
8
8
  const radioGroupCss = ":host{display:flex;--wcs-radio-group-gap:var(--wcs-semantic-spacing-base);--wcs-radio-group-option-height:var(--wcs-semantic-size-m);--wcs-radio-group-option-gap:var(--wcs-semantic-spacing-small);--wcs-radio-group-option-padding:var(--wcs-semantic-spacing-small) var(--wcs-semantic-spacing-small);--wcs-radio-group-option-border-radius:var(--wcs-semantic-border-radius-base);--wcs-radio-group-option-background-color:var(--wcs-semantic-color-background-surface-accent-lightest)}:host([mode=radio]){flex-direction:column;gap:var(--wcs-radio-group-gap)}:host([mode=option]){box-sizing:border-box;height:var(--wcs-radio-group-option-height);display:inline-flex;flex-direction:row;align-items:center;gap:var(--wcs-radio-group-option-gap);padding:var(--wcs-radio-group-option-padding);background-color:var(--wcs-radio-group-option-background-color);border-radius:var(--wcs-radio-group-option-border-radius)}:host([mode=horizontal]){justify-content:space-between}";
9
9
  const WcsRadioGroupStyle0 = radioGroupCss;
@@ -20,6 +20,9 @@ const RadioGroup = class {
20
20
  this.updateRadioTabIndex(value);
21
21
  this.updateAllRadioState();
22
22
  }
23
+ async setAriaAttribute(attr, value) {
24
+ helpers.setOrRemoveAttribute(this.el, attr, value);
25
+ }
23
26
  componentDidLoad() {
24
27
  this.onValueChangeHandler(this.value);
25
28
  this.updateAllRadioModeAndName();
@@ -98,7 +101,7 @@ const RadioGroup = class {
98
101
  }
99
102
  }
100
103
  render() {
101
- return (index.h(index.Host, { key: '3bdbfd7aa67f709fed97c60c7226a25058bc6092', role: "radiogroup" }, index.h("slot", { key: '5b64203983551a6504ae675442c36e904bb5dec8', name: "option", onSlotchange: this.onSlotChange.bind(this) })));
104
+ return (index.h(index.Host, { key: '7e9a6c9412d6ababef068d5766d79a790c3e531f', role: "radiogroup" }, index.h("slot", { key: '6163831fbd131047a6f3556c76b1628f41453b6b', name: "option", onSlotchange: this.onSlotChange.bind(this) })));
102
105
  }
103
106
  get el() { return index.getElement(this); }
104
107
  static get watchers() { return {
@@ -1 +1 @@
1
- {"file":"wcs-radio-group.entry.cjs.js","mappings":"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","names":["isSpaceKey","isEnterKey","isDownArrowKey","isRightArrowKey","isUpArrowKey","isLeftArrowKey","isTabKey","h","Host"],"sources":["src/components/radio-group/radio-group.scss?tag=wcs-radio-group&encapsulation=shadow","src/components/radio-group/radio-group.tsx"],"sourcesContent":[":host {\n display: flex;\n\n // region Radio\n --wcs-radio-group-gap: var(--wcs-semantic-spacing-base);\n // endregion\n\n // region Option\n --wcs-radio-group-option-height: var(--wcs-semantic-size-m);\n --wcs-radio-group-option-gap: var(--wcs-semantic-spacing-small);\n --wcs-radio-group-option-padding: var(--wcs-semantic-spacing-small) var(--wcs-semantic-spacing-small);\n --wcs-radio-group-option-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-radio-group-option-background-color: var(--wcs-semantic-color-background-surface-accent-lightest);\n // endregion\n}\n\n:host([mode=radio]) {\n flex-direction: column;\n gap: var(--wcs-radio-group-gap);\n}\n\n:host([mode=option]) {\n box-sizing: border-box;\n height: var(--wcs-radio-group-option-height);\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: var(--wcs-radio-group-option-gap);\n padding: var(--wcs-radio-group-option-padding);\n background-color: var(--wcs-radio-group-option-background-color);\n border-radius: var(--wcs-radio-group-option-border-radius);\n}\n\n:host([mode=horizontal]) {\n justify-content: space-between;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Prop,\n Watch\n} from '@stencil/core';\nimport { RadioGroupChangeEventDetail, RadioGroupMode } from './radio-group-interface';\nimport { RadioChosedEvent } from '../radio/radio-interface';\nimport {\n isDownArrowKey, isEnterKey,\n isLeftArrowKey,\n isRightArrowKey,\n isSpaceKey,\n isTabKey,\n isUpArrowKey\n} from \"../../utils/helpers\";\n\n/**\n * @cssprop --wcs-radio-group-gap - Gap between each radio (checkmark + label) in horizontal mode\n * \n *\n * @cssprop --wcs-radio-group-option-background-color - Background color of the radio group option\n * \n * @cssprop --wcs-radio-group-option-height - Height of the radio group option\n * @cssprop --wcs-radio-group-option-padding - Padding of the radio group option\n * \n * @cssprop --wcs-radio-group-option-border-radius - Border radius of the radio group option\n * \n * @cssprop --wcs-radio-group-option-gap - Gap between each radio option\n */\n@Component({\n tag: 'wcs-radio-group',\n styleUrl: 'radio-group.scss',\n shadow: true\n})\nexport class RadioGroup implements ComponentInterface {\n @Element() private el!: HTMLWcsRadioGroupElement;\n \n /**\n * The value of the radio-group. Automatically reflects which radio button is selected.\n */\n @Prop({ mutable: true }) value: any | any[] | undefined | null;\n\n /**\n * The name of the control to be set on all radio button children\n */\n @Prop({ reflect: true }) name;\n\n /**\n * The display mode of the control to be set on all radio button children\n */\n @Prop({ reflect: true }) mode: RadioGroupMode = 'radio';\n\n /** Emitted when the value has changed. */\n @Event() wcsChange!: EventEmitter<RadioGroupChangeEventDetail>;\n\n @Watch('value')\n onValueChangeHandler(value: any | undefined) {\n this.updateRadioTabIndex(value);\n this.updateAllRadioState();\n }\n\n componentDidLoad() {\n this.onValueChangeHandler(this.value);\n this.updateAllRadioModeAndName();\n }\n \n onSlotChange() {\n this.updateRadioTabIndex(this.value);\n this.updateAllRadioModeAndName();\n }\n \n updateAllRadioState() {\n this.getSlottedRadios().forEach(r => r.updateState());\n }\n \n @Watch('name')\n @Watch('mode')\n updateAllRadioModeAndName() {\n this.getSlottedRadios().forEach(r => {\n r.mode = this.mode;\n r.name = this.name;\n });\n }\n \n updateRadioTabIndex(value: any | undefined) {\n const radios = this.getSlottedRadios();\n\n // Get the first radio that is not disabled and the checked one\n const first = radios.find((radio) => !radio.disabled);\n const checked = radios.find((radio) => radio.value === value && !radio.disabled);\n\n if (!first && !checked) {\n return;\n }\n\n // If an enabled checked radio exists, set it to be the focusable radio\n // otherwise we default to focus the first radio\n const focusable = checked || first;\n\n for (const radio of radios) {\n const tabindex = radio === focusable ? 0 : -1;\n radio.setTabIndex(tabindex);\n }\n }\n\n private getSlottedRadios(): HTMLWcsRadioElement[] {\n return Array.from(this.el.querySelectorAll('wcs-radio'));\n }\n\n private getSlottedRadiosNotDisabled(): HTMLWcsRadioElement[] {\n return Array.from(this.getSlottedRadios().filter(radio => !radio.disabled));\n }\n\n @Listen('wcsRadioClick')\n handleRadioClick(event: CustomEvent<RadioChosedEvent>) {\n this.value = event.detail.value;\n this.wcsChange.emit({\n value: event.detail.value\n });\n }\n\n @Listen('keydown')\n async handleKeyDown(ev: KeyboardEvent) {\n const radiosNotDisabled = this.getSlottedRadiosNotDisabled();\n const previousSelected = radiosNotDisabled.findIndex(r => r === ev.target);\n let indexToSelect: number;\n\n if ((isSpaceKey(ev) || isEnterKey(ev))) {\n ev.preventDefault();\n indexToSelect = previousSelected;\n } else if (isDownArrowKey(ev) || isRightArrowKey(ev)) {\n ev.preventDefault();\n // Check the next wcs-radio from the previous selected\n indexToSelect = (previousSelected + 1) % radiosNotDisabled.length; // to return at the beginning on the list when we are on the last index\n } else if (isUpArrowKey(ev) || isLeftArrowKey(ev)) {\n ev.preventDefault();\n // Check the previous wcs-radio from the previous selected\n indexToSelect = (previousSelected - 1 + radiosNotDisabled.length) % radiosNotDisabled.length; // To return at the end of the list when we are on index=0\n } else if (isTabKey(ev)) {\n return;\n }\n \n const radioToSelect = radiosNotDisabled[indexToSelect]\n if (radioToSelect) {\n radioToSelect.focus();\n \n if (this.value !== radioToSelect.value) {\n this.wcsChange.emit({\n value: radioToSelect.value\n })\n }\n \n this.value = radioToSelect.value;\n }\n }\n\n render() {\n return (\n <Host role=\"radiogroup\">\n <slot name=\"option\" onSlotchange={this.onSlotChange.bind(this)}/>\n </Host>\n );\n }\n\n}\n"],"version":3}
1
+ {"file":"wcs-radio-group.entry.cjs.js","mappings":"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","names":["setOrRemoveAttribute","isSpaceKey","isEnterKey","isDownArrowKey","isRightArrowKey","isUpArrowKey","isLeftArrowKey","isTabKey","h","Host"],"sources":["src/components/radio-group/radio-group.scss?tag=wcs-radio-group&encapsulation=shadow","src/components/radio-group/radio-group.tsx"],"sourcesContent":[":host {\n display: flex;\n\n // region Radio\n --wcs-radio-group-gap: var(--wcs-semantic-spacing-base);\n // endregion\n\n // region Option\n --wcs-radio-group-option-height: var(--wcs-semantic-size-m);\n --wcs-radio-group-option-gap: var(--wcs-semantic-spacing-small);\n --wcs-radio-group-option-padding: var(--wcs-semantic-spacing-small) var(--wcs-semantic-spacing-small);\n --wcs-radio-group-option-border-radius: var(--wcs-semantic-border-radius-base);\n --wcs-radio-group-option-background-color: var(--wcs-semantic-color-background-surface-accent-lightest);\n // endregion\n}\n\n:host([mode=radio]) {\n flex-direction: column;\n gap: var(--wcs-radio-group-gap);\n}\n\n:host([mode=option]) {\n box-sizing: border-box;\n height: var(--wcs-radio-group-option-height);\n display: inline-flex;\n flex-direction: row;\n align-items: center;\n gap: var(--wcs-radio-group-option-gap);\n padding: var(--wcs-radio-group-option-padding);\n background-color: var(--wcs-radio-group-option-background-color);\n border-radius: var(--wcs-radio-group-option-border-radius);\n}\n\n:host([mode=horizontal]) {\n justify-content: space-between;\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport { RadioGroupChangeEventDetail, RadioGroupMode } from './radio-group-interface';\nimport { RadioChosedEvent } from '../radio/radio-interface';\nimport {\n isDownArrowKey, isEnterKey,\n isLeftArrowKey,\n isRightArrowKey,\n isSpaceKey,\n isTabKey,\n isUpArrowKey,\n setOrRemoveAttribute\n} from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from '../../utils/mutable-aria-attribute';\n\n/**\n * @cssprop --wcs-radio-group-gap - Gap between each radio (checkmark + label) in horizontal mode\n * \n *\n * @cssprop --wcs-radio-group-option-background-color - Background color of the radio group option\n * \n * @cssprop --wcs-radio-group-option-height - Height of the radio group option\n * @cssprop --wcs-radio-group-option-padding - Padding of the radio group option\n * \n * @cssprop --wcs-radio-group-option-border-radius - Border radius of the radio group option\n * \n * @cssprop --wcs-radio-group-option-gap - Gap between each radio option\n */\n@Component({\n tag: 'wcs-radio-group',\n styleUrl: 'radio-group.scss',\n shadow: true\n})\nexport class RadioGroup implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLWcsRadioGroupElement;\n \n /**\n * The value of the radio-group. Automatically reflects which radio button is selected.\n */\n @Prop({ mutable: true }) value: any | any[] | undefined | null;\n\n /**\n * The name of the control to be set on all radio button children\n */\n @Prop({ reflect: true }) name;\n\n /**\n * The display mode of the control to be set on all radio button children\n */\n @Prop({ reflect: true }) mode: RadioGroupMode = 'radio';\n\n /** Emitted when the value has changed. */\n @Event() wcsChange!: EventEmitter<RadioGroupChangeEventDetail>;\n\n @Watch('value')\n onValueChangeHandler(value: any | undefined) {\n this.updateRadioTabIndex(value);\n this.updateAllRadioState();\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.el, attr, value);\n }\n\n componentDidLoad() {\n this.onValueChangeHandler(this.value);\n this.updateAllRadioModeAndName();\n }\n \n onSlotChange() {\n this.updateRadioTabIndex(this.value);\n this.updateAllRadioModeAndName();\n }\n \n updateAllRadioState() {\n this.getSlottedRadios().forEach(r => r.updateState());\n }\n \n @Watch('name')\n @Watch('mode')\n updateAllRadioModeAndName() {\n this.getSlottedRadios().forEach(r => {\n r.mode = this.mode;\n r.name = this.name;\n });\n }\n \n updateRadioTabIndex(value: any | undefined) {\n const radios = this.getSlottedRadios();\n\n // Get the first radio that is not disabled and the checked one\n const first = radios.find((radio) => !radio.disabled);\n const checked = radios.find((radio) => radio.value === value && !radio.disabled);\n\n if (!first && !checked) {\n return;\n }\n\n // If an enabled checked radio exists, set it to be the focusable radio\n // otherwise we default to focus the first radio\n const focusable = checked || first;\n\n for (const radio of radios) {\n const tabindex = radio === focusable ? 0 : -1;\n radio.setTabIndex(tabindex);\n }\n }\n\n private getSlottedRadios(): HTMLWcsRadioElement[] {\n return Array.from(this.el.querySelectorAll('wcs-radio'));\n }\n\n private getSlottedRadiosNotDisabled(): HTMLWcsRadioElement[] {\n return Array.from(this.getSlottedRadios().filter(radio => !radio.disabled));\n }\n\n @Listen('wcsRadioClick')\n handleRadioClick(event: CustomEvent<RadioChosedEvent>) {\n this.value = event.detail.value;\n this.wcsChange.emit({\n value: event.detail.value\n });\n }\n\n @Listen('keydown')\n async handleKeyDown(ev: KeyboardEvent) {\n const radiosNotDisabled = this.getSlottedRadiosNotDisabled();\n const previousSelected = radiosNotDisabled.findIndex(r => r === ev.target);\n let indexToSelect: number;\n\n if ((isSpaceKey(ev) || isEnterKey(ev))) {\n ev.preventDefault();\n indexToSelect = previousSelected;\n } else if (isDownArrowKey(ev) || isRightArrowKey(ev)) {\n ev.preventDefault();\n // Check the next wcs-radio from the previous selected\n indexToSelect = (previousSelected + 1) % radiosNotDisabled.length; // to return at the beginning on the list when we are on the last index\n } else if (isUpArrowKey(ev) || isLeftArrowKey(ev)) {\n ev.preventDefault();\n // Check the previous wcs-radio from the previous selected\n indexToSelect = (previousSelected - 1 + radiosNotDisabled.length) % radiosNotDisabled.length; // To return at the end of the list when we are on index=0\n } else if (isTabKey(ev)) {\n return;\n }\n \n const radioToSelect = radiosNotDisabled[indexToSelect]\n if (radioToSelect) {\n radioToSelect.focus();\n \n if (this.value !== radioToSelect.value) {\n this.wcsChange.emit({\n value: radioToSelect.value\n })\n }\n \n this.value = radioToSelect.value;\n }\n }\n\n render() {\n return (\n <Host role=\"radiogroup\">\n <slot name=\"option\" onSlotchange={this.onSlotChange.bind(this)}/>\n </Host>\n );\n }\n\n}\n"],"version":3}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-6f0140d8.js');
6
- const helpers = require('./helpers-871f5a3d.js');
6
+ const helpers = require('./helpers-2f1a8ddc.js');
7
7
 
8
8
  const radioCss = ":host{width:fit-content;--wcs-radio-transition-duration:var(--wcs-semantic-motion-duration-feedback-base);--wcs-radio-text-color-default:var(--wcs-semantic-color-text-secondary);--wcs-radio-text-font-weight-default:var(--wcs-semantic-font-weight-medium);--wcs-radio-text-color-selected:var(--wcs-semantic-color-text-primary);--wcs-radio-text-font-weight-selected:var(--wcs-semantic-font-weight-medium);--wcs-radio-text-color-disabled:var(--wcs-semantic-color-text-disabled);--wcs-radio-text-color-hover:var(--wcs-semantic-color-text-primary);--wcs-radio-checkmark-size:1rem;--wcs-radio-gap:var(--wcs-semantic-spacing-base);--wcs-radio-outline-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-radio-checkmark-border-width:var(--wcs-semantic-border-width-large);--wcs-radio-checkmark-border-color-default:var(--wcs-semantic-color-border-control-indicator-default);--wcs-radio-checkmark-border-color-selected:var(--wcs-semantic-color-border-control-indicator-selected);--wcs-radio-checkmark-border-color-hover:var(--wcs-semantic-color-border-control-indicator-hover);--wcs-radio-checkmark-border-color-disabled:var(--wcs-semantic-color-border-control-indicator-disabled);--wcs-radio-checkmark-background-color-default:transparent;--wcs-radio-checkmark-background-color-selected:var(--wcs-semantic-color-background-control-indicator-selected);--wcs-radio-checkmark-background-color-selected-disabled:var(--wcs-semantic-color-background-control-indicator-disabled);--wcs-radio-checkmark-background-color-selected-hover:var(--wcs-semantic-color-background-control-indicator-hover);--wcs-radio-checkmark-outline-distance-with-checkmark-circle:var(--wcs-semantic-spacing-small);--wcs-radio-checkmark-outline-width:var(--wcs-semantic-border-width-large);--wcs-radio-checkmark-outline-color:var(--wcs-semantic-color-foreground-control-indicator-selected);--wcs-radio-checkmark-border-radius:var(--wcs-semantic-border-radius-full);--wcs-radio-border-radius:var(--wcs-semantic-border-radius-base);--wcs-radio-option-background-color-default:var(--wcs-semantic-color-background-action-secondary-default);--wcs-radio-option-background-color-hover:var(--wcs-semantic-color-background-action-secondary-default);--wcs-radio-option-background-color-press:var(--wcs-semantic-color-background-action-secondary-default);--wcs-radio-option-background-color-disabled:var(--wcs-semantic-color-background-action-secondary-default);--wcs-radio-option-background-color-selected-default:var(--wcs-semantic-color-background-action-primary-default);--wcs-radio-option-background-color-selected-hover:var(--wcs-semantic-color-background-action-primary-hover);--wcs-radio-option-background-color-selected-press:var(--wcs-semantic-color-background-action-primary-press);--wcs-radio-option-background-color-selected-disabled:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-radio-option-text-color-default:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-radio-option-text-color-hover:var(--wcs-semantic-color-foreground-action-secondary-default);--wcs-radio-option-text-color-press:var(--wcs-semantic-color-foreground-action-secondary-press);--wcs-radio-option-text-color-selected-default:var(--wcs-semantic-color-foreground-action-primary-default);--wcs-radio-option-text-color-selected-hover:var(--wcs-semantic-color-foreground-action-primary-hover);--wcs-radio-option-text-color-selected-press:var(--wcs-semantic-color-foreground-action-primary-press);--wcs-radio-option-text-color-disabled:var(--wcs-semantic-color-text-disabled);--wcs-radio-option-text-font-weight-default:var(--wcs-semantic-font-weight-roman);--wcs-radio-option-text-font-weight-selected:var(--wcs-semantic-font-weight-roman);--wcs-radio-option-border-radius:var(--wcs-semantic-border-radius-base);--wcs-radio-option-border-width:var(--wcs-semantic-border-width-default);--wcs-radio-option-border-color-hover:var(--wcs-semantic-color-border-action-secondary-hover);--wcs-radio-option-border-color-press:var(--wcs-semantic-color-border-action-secondary-press);--wcs-radio-option-padding-top:var(--wcs-semantic-spacing-base);--wcs-radio-option-padding-right:var(--wcs-semantic-spacing-large);--wcs-radio-option-padding-bottom:var(--wcs-semantic-spacing-base);--wcs-radio-option-padding-left:var(--wcs-semantic-spacing-large)}:host([mode=radio]) input,:host([mode=horizontal]) input{position:absolute;opacity:0;height:1px;width:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}:host([mode=radio]) label,:host([mode=horizontal]) label{margin-bottom:0;color:var(--wcs-radio-text-color-default);font-weight:var(--wcs-radio-text-font-weight-default) !important;display:inline-block}:host([mode=radio]) label:before,:host([mode=horizontal]) label:before{border-radius:var(--wcs-radio-checkmark-border-radius);border:var(--wcs-radio-checkmark-border-width) solid var(--wcs-radio-checkmark-border-color-default);position:relative;width:var(--wcs-radio-checkmark-size);height:var(--wcs-radio-checkmark-size);pointer-events:none;content:\"\";background-color:var(--wcs-radio-checkmark-background-color-default)}:host([mode=radio]) input:focus-visible+label,:host([mode=horizontal]) input:focus-visible+label{transition:none;outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-radio-outline-color-focus);outline-offset:var(--wcs-semantic-spacing-small);border-radius:var(--wcs-radio-border-radius)}:host([disabled]) label{color:var(--wcs-radio-text-color-disabled);cursor:not-allowed}:host([disabled]) label:before{border-color:var(--wcs-radio-checkmark-border-color-disabled)}:host(:not([disabled])) label{cursor:pointer}:host([mode=radio].checked) label,:host([mode=horizontal].checked) label{color:var(--wcs-radio-text-color-selected);font-weight:var(--wcs-radio-text-font-weight-selected) !important}:host([mode=radio].checked) label:before,:host([mode=horizontal].checked) label:before{border-color:var(--wcs-radio-checkmark-border-color-selected);background-color:var(--wcs-radio-checkmark-background-color-selected);outline:solid var(--wcs-radio-checkmark-outline-width) var(--wcs-radio-checkmark-outline-color);outline-offset:calc(-1 * var(--wcs-radio-checkmark-outline-distance-with-checkmark-circle))}:host([mode=radio][disabled].checked) label,:host([mode=horizontal][disabled].checked) label{color:var(--wcs-radio-text-color-disabled)}:host([mode=radio][disabled].checked) label:before,:host([mode=horizontal][disabled].checked) label:before{border-color:var(--wcs-radio-checkmark-border-color-disabled);background-color:var(--wcs-radio-checkmark-background-color-selected-disabled)}:host([mode=radio]:hover:not([disabled])) label,:host([mode=horizontal]:hover:not([disabled])) label{color:var(--wcs-radio-text-color-hover)}:host([mode=radio]:hover:not([disabled])) label:before,:host([mode=horizontal]:hover:not([disabled])) label:before{border-color:var(--wcs-radio-checkmark-border-color-hover);background-color:var(--wcs-radio-checkmark-background-color-selected-hover)}:host([mode=radio]:hover:not([disabled]):not(.checked)) label:before,:host([mode=horizontal]:hover:not([disabled]):not(.checked)) label:before{background-color:var(--wcs-radio-checkmark-background-color-default)}:host([mode=radio]) label{border:none}:host([mode=radio]) label:before{transition:background-color var(--wcs-radio-transition-duration) ease-in-out;margin-right:var(--wcs-radio-gap);display:inline-block;top:3px;box-sizing:border-box}:host([mode=radio]) label:empty::before{margin-right:0}:host([mode=horizontal]){height:fit-content}:host([mode=horizontal]) label:before{transition:background-color var(--wcs-radio-transition-duration) ease-in-out;margin:auto auto var(--wcs-radio-gap);display:block}:host([mode=horizontal]) label:empty::before{margin-bottom:0}:host([mode=option]){font-weight:var(--wcs-radio-option-text-font-weight-default) !important}:host([mode=option]) input{position:absolute;z-index:-1;opacity:0;box-sizing:border-box;padding:0}:host([mode=option]) label{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);margin-bottom:0;color:var(--wcs-radio-option-text-color-default);white-space:nowrap;border-radius:var(--wcs-radio-option-border-radius);transition:background-color var(--wcs-radio-transition-duration) ease-in-out;background-color:var(--wcs-radio-option-background-color-default)}:host([mode=option]) input:focus-visible+label{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-radio-outline-color-focus);outline-offset:0;border-radius:var(--wcs-radio-border-radius)}:host([mode=option][disabled]) label{color:var(--wcs-radio-option-text-color-disabled);background-color:var(--wcs-radio-option-background-color-disabled)}:host([mode=option][disabled].checked) label{color:var(--wcs-radio-option-text-color-disabled);background-color:var(--wcs-radio-option-background-color-selected-disabled)}:host([mode=option].checked) label{font-weight:var(--wcs-radio-option-text-font-weight-selected) !important;color:var(--wcs-radio-option-text-color-selected-default);background-color:var(--wcs-radio-option-background-color-selected-default)}:host([mode=option]:hover.checked:not([disabled])) label{color:var(--wcs-radio-option-text-color-selected-hover);background-color:var(--wcs-radio-option-background-color-selected-hover)}:host([mode=option]:active.checked:not([disabled])) label{color:var(--wcs-radio-option-text-color-selected-press);background-color:var(--wcs-radio-option-background-color-selected-press)}:host([mode=option]:hover:not(.checked):not([disabled])) label{color:var(--wcs-radio-option-text-color-hover);background-color:var(--wcs-radio-option-background-color-hover);outline:var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-hover)}:host([mode=option]:active:not(.checked):not([disabled])) label{color:var(--wcs-radio-option-text-color-press);background-color:var(--wcs-radio-option-background-color-press);outline:var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-press)}";
9
9
  const WcsRadioStyle0 = radioCss;
@@ -77,7 +77,7 @@ const Radio = class {
77
77
  });
78
78
  }
79
79
  render() {
80
- return (index.h(index.Host, { key: 'ebbb03e1c723a28798544b5f75bf305b74db2fe4', slot: "option", tabIndex: this.disabled ? -1 : this.radioTabIndex, class: this.checked ? 'checked' : '' }, index.h("input", Object.assign({ key: '6deafa14c6a33bb215ce629d2065cbc118692912', 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)), index.h("label", { key: 'a1bc3da98121c65a7589218fc57ca7c3baad1b67', htmlFor: `${this.inputId}` }, this.label)));
80
+ return (index.h(index.Host, { key: '07ab36a8de3f5503b21792d29fd384a9412f9c35', slot: "option", tabIndex: this.disabled ? -1 : this.radioTabIndex, class: this.checked ? 'checked' : '' }, index.h("input", Object.assign({ key: 'a977994ac12b09f5dac114b923cbeea2de437757', 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)), index.h("label", { key: '709e74930fd42435b6ad2ad12e1ab0b3653572d4', htmlFor: `${this.inputId}` }, this.label)));
81
81
  }
82
82
  static get delegatesFocus() { return true; }
83
83
  get el() { return index.getElement(this); }
@@ -1 +1 @@
1
- {"file":"wcs-radio.entry.cjs.js","mappings":"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","names":["setOrRemoveAttribute","inheritAriaAttributes","inheritAttributes","h","Host"],"sources":["src/components/radio/radio.scss?tag=wcs-radio&encapsulation=shadow","src/components/radio/radio.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n\n:host {\n width: fit-content;\n\n --wcs-radio-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n // region mode Radio\n --wcs-radio-text-color-default: var(--wcs-semantic-color-text-secondary);\n --wcs-radio-text-font-weight-default: var(--wcs-semantic-font-weight-medium);\n\n --wcs-radio-text-color-selected: var(--wcs-semantic-color-text-primary);\n --wcs-radio-text-font-weight-selected: var(--wcs-semantic-font-weight-medium);\n\n --wcs-radio-text-color-disabled: var(--wcs-semantic-color-text-disabled);\n --wcs-radio-text-color-hover: var(--wcs-semantic-color-text-primary);\n\n --wcs-radio-checkmark-size: 1rem; // for now, we let raw value to let adjust the size based on base font size\n\n --wcs-radio-gap: var(--wcs-semantic-spacing-base);\n\n --wcs-radio-outline-color-focus: var(--wcs-semantic-color-border-focus-base); // outline color for focus ring\n\n --wcs-radio-checkmark-border-width: var(--wcs-semantic-border-width-large);\n --wcs-radio-checkmark-border-color-default: var(--wcs-semantic-color-border-control-indicator-default);\n --wcs-radio-checkmark-border-color-selected: var(--wcs-semantic-color-border-control-indicator-selected);\n --wcs-radio-checkmark-border-color-hover: var(--wcs-semantic-color-border-control-indicator-hover);\n --wcs-radio-checkmark-border-color-disabled: var(--wcs-semantic-color-border-control-indicator-disabled);\n\n --wcs-radio-checkmark-background-color-default: transparent;\n --wcs-radio-checkmark-background-color-selected: var(--wcs-semantic-color-background-control-indicator-selected);\n --wcs-radio-checkmark-background-color-selected-disabled: var(--wcs-semantic-color-background-control-indicator-disabled);\n --wcs-radio-checkmark-background-color-selected-hover: var(--wcs-semantic-color-background-control-indicator-hover);\n\n --wcs-radio-checkmark-outline-distance-with-checkmark-circle: var(--wcs-semantic-spacing-small);\n --wcs-radio-checkmark-outline-width: var(--wcs-semantic-border-width-large);\n --wcs-radio-checkmark-outline-color: var(--wcs-semantic-color-foreground-control-indicator-selected);\n --wcs-radio-checkmark-border-radius: var(--wcs-semantic-border-radius-full);\n\n --wcs-radio-border-radius: var(--wcs-semantic-border-radius-base);\n // endregion\n\n // region mode Option\n --wcs-radio-option-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-radio-option-background-color-hover: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-radio-option-background-color-press: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-radio-option-background-color-disabled: var(--wcs-semantic-color-background-action-secondary-default);\n\n --wcs-radio-option-background-color-selected-default: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-radio-option-background-color-selected-hover: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-radio-option-background-color-selected-press: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-radio-option-background-color-selected-disabled: var(--wcs-semantic-color-background-action-primary-disabled);\n\n --wcs-radio-option-text-color-default: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-radio-option-text-color-hover: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-radio-option-text-color-press: var(--wcs-semantic-color-foreground-action-secondary-press);\n\n --wcs-radio-option-text-color-selected-default: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-radio-option-text-color-selected-hover: var(--wcs-semantic-color-foreground-action-primary-hover);\n --wcs-radio-option-text-color-selected-press: var(--wcs-semantic-color-foreground-action-primary-press);\n --wcs-radio-option-text-color-disabled: var(--wcs-semantic-color-text-disabled);\n\n --wcs-radio-option-text-font-weight-default: var(--wcs-semantic-font-weight-roman);\n --wcs-radio-option-text-font-weight-selected: var(--wcs-semantic-font-weight-roman);\n\n --wcs-radio-option-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-radio-option-border-width: var(--wcs-semantic-border-width-default);\n\n --wcs-radio-option-border-color-hover: var(--wcs-semantic-color-border-action-secondary-hover);\n --wcs-radio-option-border-color-press: var(--wcs-semantic-color-border-action-secondary-press);\n\n --wcs-radio-option-padding-top: var(--wcs-semantic-spacing-base);\n --wcs-radio-option-padding-right: var(--wcs-semantic-spacing-large);\n --wcs-radio-option-padding-bottom: var(--wcs-semantic-spacing-base);\n --wcs-radio-option-padding-left: var(--wcs-semantic-spacing-large);\n // endregion\n}\n\n:host([mode=radio]),\n:host([mode=horizontal]) {\n input {\n position: absolute;\n opacity: 0;\n height: 1px;\n width: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n }\n\n label {\n margin-bottom: 0;\n color: var(--wcs-radio-text-color-default);\n font-weight: var(--wcs-radio-text-font-weight-default) !important;\n display: inline-block;\n\n &:before {\n border-radius: var(--wcs-radio-checkmark-border-radius);\n border: var(--wcs-radio-checkmark-border-width) solid var(--wcs-radio-checkmark-border-color-default);\n position: relative;\n width: var(--wcs-radio-checkmark-size);\n height: var(--wcs-radio-checkmark-size);\n pointer-events: none;\n content: \"\";\n background-color: var(--wcs-radio-checkmark-background-color-default);\n }\n }\n\n input:focus-visible + label {\n transition: none;\n @include focus-outline($outline-color: var(--wcs-radio-outline-color-focus), $border-radius: var(--wcs-radio-border-radius));\n }\n}\n\n:host([disabled]) {\n label {\n color: var(--wcs-radio-text-color-disabled);\n cursor: not-allowed;\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-disabled);\n }\n }\n}\n\n:host(:not([disabled])) {\n label {\n cursor: pointer;\n }\n}\n\n:host([mode=radio].checked),\n:host([mode=horizontal].checked) {\n label {\n color: var(--wcs-radio-text-color-selected);\n font-weight: var(--wcs-radio-text-font-weight-selected) !important;\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-selected);\n background-color: var(--wcs-radio-checkmark-background-color-selected);\n outline: solid var(--wcs-radio-checkmark-outline-width) var(--wcs-radio-checkmark-outline-color);\n outline-offset: calc(-1 * var(--wcs-radio-checkmark-outline-distance-with-checkmark-circle));\n }\n }\n}\n\n:host([mode=radio][disabled].checked),\n:host([mode=horizontal][disabled].checked) {\n label {\n color: var(--wcs-radio-text-color-disabled);\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-disabled);\n background-color: var(--wcs-radio-checkmark-background-color-selected-disabled);\n }\n }\n}\n\n:host([mode=radio]:hover:not([disabled])),\n:host([mode=horizontal]:hover:not([disabled])) {\n label {\n color: var(--wcs-radio-text-color-hover);\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-hover);\n background-color: var(--wcs-radio-checkmark-background-color-selected-hover);\n }\n }\n}\n\n:host([mode=radio]:hover:not([disabled]):not(.checked)),\n:host([mode=horizontal]:hover:not([disabled]):not(.checked)) {\n label:before {\n background-color: var(--wcs-radio-checkmark-background-color-default);\n }\n}\n\n:host([mode=radio]) {\n label {\n border: none;\n\n &:before {\n transition: background-color var(--wcs-radio-transition-duration) ease-in-out;\n margin-right: var(--wcs-radio-gap);\n display: inline-block;\n top: 3px;\n box-sizing: border-box;\n }\n\n &:empty::before {\n margin-right: 0;\n }\n }\n}\n\n:host([mode=horizontal]) {\n height: fit-content;\n\n label {\n &:before {\n transition: background-color var(--wcs-radio-transition-duration) ease-in-out;\n margin: auto auto var(--wcs-radio-gap);\n display: block;\n }\n\n &:empty::before {\n margin-bottom: 0;\n }\n }\n}\n\n:host([mode=option]) {\n font-weight: var(--wcs-radio-option-text-font-weight-default) !important;\n\n input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n box-sizing: border-box;\n padding: 0;\n }\n\n label {\n 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);\n margin-bottom: 0;\n color: var(--wcs-radio-option-text-color-default);\n white-space: nowrap;\n border-radius: var(--wcs-radio-option-border-radius);\n transition: background-color var(--wcs-radio-transition-duration) ease-in-out;\n background-color: var(--wcs-radio-option-background-color-default);\n }\n\n input:focus-visible + label {\n @include focus-outline($outline-color: var(--wcs-radio-outline-color-focus), $border-radius: var(--wcs-radio-border-radius), $outline-offset: 0);\n }\n}\n\n:host([mode=option][disabled]) {\n label {\n color: var(--wcs-radio-option-text-color-disabled);\n background-color: var(--wcs-radio-option-background-color-disabled);\n }\n}\n\n:host([mode=option][disabled].checked) {\n label {\n color: var(--wcs-radio-option-text-color-disabled);\n background-color: var(--wcs-radio-option-background-color-selected-disabled);\n }\n}\n\n:host([mode=option].checked) {\n label {\n font-weight: var(--wcs-radio-option-text-font-weight-selected) !important;\n color: var(--wcs-radio-option-text-color-selected-default);\n background-color: var(--wcs-radio-option-background-color-selected-default);\n }\n}\n\n:host([mode=option]:hover.checked:not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-selected-hover);\n background-color: var(--wcs-radio-option-background-color-selected-hover);\n }\n}\n\n:host([mode=option]:active.checked:not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-selected-press);\n background-color: var(--wcs-radio-option-background-color-selected-press);\n }\n}\n\n:host([mode=option]:hover:not(.checked):not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-hover);\n background-color: var(--wcs-radio-option-background-color-hover);\n outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-hover);\n }\n}\n\n:host([mode=option]:active:not(.checked):not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-press);\n background-color: var(--wcs-radio-option-background-color-press);\n outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-press);\n\n\n\n }\n}\n","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 = 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({ mutable: true }) disabled = 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"],"version":3}
1
+ {"file":"wcs-radio.entry.cjs.js","mappings":"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","names":["setOrRemoveAttribute","inheritAriaAttributes","inheritAttributes","h","Host"],"sources":["src/components/radio/radio.scss?tag=wcs-radio&encapsulation=shadow","src/components/radio/radio.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n\n:host {\n width: fit-content;\n\n --wcs-radio-transition-duration: var(--wcs-semantic-motion-duration-feedback-base);\n\n // region mode Radio\n --wcs-radio-text-color-default: var(--wcs-semantic-color-text-secondary);\n --wcs-radio-text-font-weight-default: var(--wcs-semantic-font-weight-medium);\n\n --wcs-radio-text-color-selected: var(--wcs-semantic-color-text-primary);\n --wcs-radio-text-font-weight-selected: var(--wcs-semantic-font-weight-medium);\n\n --wcs-radio-text-color-disabled: var(--wcs-semantic-color-text-disabled);\n --wcs-radio-text-color-hover: var(--wcs-semantic-color-text-primary);\n\n --wcs-radio-checkmark-size: 1rem; // for now, we let raw value to let adjust the size based on base font size\n\n --wcs-radio-gap: var(--wcs-semantic-spacing-base);\n\n --wcs-radio-outline-color-focus: var(--wcs-semantic-color-border-focus-base); // outline color for focus ring\n\n --wcs-radio-checkmark-border-width: var(--wcs-semantic-border-width-large);\n --wcs-radio-checkmark-border-color-default: var(--wcs-semantic-color-border-control-indicator-default);\n --wcs-radio-checkmark-border-color-selected: var(--wcs-semantic-color-border-control-indicator-selected);\n --wcs-radio-checkmark-border-color-hover: var(--wcs-semantic-color-border-control-indicator-hover);\n --wcs-radio-checkmark-border-color-disabled: var(--wcs-semantic-color-border-control-indicator-disabled);\n\n --wcs-radio-checkmark-background-color-default: transparent;\n --wcs-radio-checkmark-background-color-selected: var(--wcs-semantic-color-background-control-indicator-selected);\n --wcs-radio-checkmark-background-color-selected-disabled: var(--wcs-semantic-color-background-control-indicator-disabled);\n --wcs-radio-checkmark-background-color-selected-hover: var(--wcs-semantic-color-background-control-indicator-hover);\n\n --wcs-radio-checkmark-outline-distance-with-checkmark-circle: var(--wcs-semantic-spacing-small);\n --wcs-radio-checkmark-outline-width: var(--wcs-semantic-border-width-large);\n --wcs-radio-checkmark-outline-color: var(--wcs-semantic-color-foreground-control-indicator-selected);\n --wcs-radio-checkmark-border-radius: var(--wcs-semantic-border-radius-full);\n\n --wcs-radio-border-radius: var(--wcs-semantic-border-radius-base);\n // endregion\n\n // region mode Option\n --wcs-radio-option-background-color-default: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-radio-option-background-color-hover: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-radio-option-background-color-press: var(--wcs-semantic-color-background-action-secondary-default);\n --wcs-radio-option-background-color-disabled: var(--wcs-semantic-color-background-action-secondary-default);\n\n --wcs-radio-option-background-color-selected-default: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-radio-option-background-color-selected-hover: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-radio-option-background-color-selected-press: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-radio-option-background-color-selected-disabled: var(--wcs-semantic-color-background-action-primary-disabled);\n\n --wcs-radio-option-text-color-default: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-radio-option-text-color-hover: var(--wcs-semantic-color-foreground-action-secondary-default);\n --wcs-radio-option-text-color-press: var(--wcs-semantic-color-foreground-action-secondary-press);\n\n --wcs-radio-option-text-color-selected-default: var(--wcs-semantic-color-foreground-action-primary-default);\n --wcs-radio-option-text-color-selected-hover: var(--wcs-semantic-color-foreground-action-primary-hover);\n --wcs-radio-option-text-color-selected-press: var(--wcs-semantic-color-foreground-action-primary-press);\n --wcs-radio-option-text-color-disabled: var(--wcs-semantic-color-text-disabled);\n\n --wcs-radio-option-text-font-weight-default: var(--wcs-semantic-font-weight-roman);\n --wcs-radio-option-text-font-weight-selected: var(--wcs-semantic-font-weight-roman);\n\n --wcs-radio-option-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-radio-option-border-width: var(--wcs-semantic-border-width-default);\n\n --wcs-radio-option-border-color-hover: var(--wcs-semantic-color-border-action-secondary-hover);\n --wcs-radio-option-border-color-press: var(--wcs-semantic-color-border-action-secondary-press);\n\n --wcs-radio-option-padding-top: var(--wcs-semantic-spacing-base);\n --wcs-radio-option-padding-right: var(--wcs-semantic-spacing-large);\n --wcs-radio-option-padding-bottom: var(--wcs-semantic-spacing-base);\n --wcs-radio-option-padding-left: var(--wcs-semantic-spacing-large);\n // endregion\n}\n\n:host([mode=radio]),\n:host([mode=horizontal]) {\n input {\n position: absolute;\n opacity: 0;\n height: 1px;\n width: 1px;\n overflow: hidden;\n clip-path: inset(50%);\n white-space: nowrap;\n }\n\n label {\n margin-bottom: 0;\n color: var(--wcs-radio-text-color-default);\n font-weight: var(--wcs-radio-text-font-weight-default) !important;\n display: inline-block;\n\n &:before {\n border-radius: var(--wcs-radio-checkmark-border-radius);\n border: var(--wcs-radio-checkmark-border-width) solid var(--wcs-radio-checkmark-border-color-default);\n position: relative;\n width: var(--wcs-radio-checkmark-size);\n height: var(--wcs-radio-checkmark-size);\n pointer-events: none;\n content: \"\";\n background-color: var(--wcs-radio-checkmark-background-color-default);\n }\n }\n\n input:focus-visible + label {\n transition: none;\n @include focus-outline($outline-color: var(--wcs-radio-outline-color-focus), $border-radius: var(--wcs-radio-border-radius));\n }\n}\n\n:host([disabled]) {\n label {\n color: var(--wcs-radio-text-color-disabled);\n cursor: not-allowed;\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-disabled);\n }\n }\n}\n\n:host(:not([disabled])) {\n label {\n cursor: pointer;\n }\n}\n\n:host([mode=radio].checked),\n:host([mode=horizontal].checked) {\n label {\n color: var(--wcs-radio-text-color-selected);\n font-weight: var(--wcs-radio-text-font-weight-selected) !important;\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-selected);\n background-color: var(--wcs-radio-checkmark-background-color-selected);\n outline: solid var(--wcs-radio-checkmark-outline-width) var(--wcs-radio-checkmark-outline-color);\n outline-offset: calc(-1 * var(--wcs-radio-checkmark-outline-distance-with-checkmark-circle));\n }\n }\n}\n\n:host([mode=radio][disabled].checked),\n:host([mode=horizontal][disabled].checked) {\n label {\n color: var(--wcs-radio-text-color-disabled);\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-disabled);\n background-color: var(--wcs-radio-checkmark-background-color-selected-disabled);\n }\n }\n}\n\n:host([mode=radio]:hover:not([disabled])),\n:host([mode=horizontal]:hover:not([disabled])) {\n label {\n color: var(--wcs-radio-text-color-hover);\n\n &:before {\n border-color: var(--wcs-radio-checkmark-border-color-hover);\n background-color: var(--wcs-radio-checkmark-background-color-selected-hover);\n }\n }\n}\n\n:host([mode=radio]:hover:not([disabled]):not(.checked)),\n:host([mode=horizontal]:hover:not([disabled]):not(.checked)) {\n label:before {\n background-color: var(--wcs-radio-checkmark-background-color-default);\n }\n}\n\n:host([mode=radio]) {\n label {\n border: none;\n\n &:before {\n transition: background-color var(--wcs-radio-transition-duration) ease-in-out;\n margin-right: var(--wcs-radio-gap);\n display: inline-block;\n top: 3px;\n box-sizing: border-box;\n }\n\n &:empty::before {\n margin-right: 0;\n }\n }\n}\n\n:host([mode=horizontal]) {\n height: fit-content;\n\n label {\n &:before {\n transition: background-color var(--wcs-radio-transition-duration) ease-in-out;\n margin: auto auto var(--wcs-radio-gap);\n display: block;\n }\n\n &:empty::before {\n margin-bottom: 0;\n }\n }\n}\n\n:host([mode=option]) {\n font-weight: var(--wcs-radio-option-text-font-weight-default) !important;\n\n input {\n position: absolute;\n z-index: -1;\n opacity: 0;\n box-sizing: border-box;\n padding: 0;\n }\n\n label {\n 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);\n margin-bottom: 0;\n color: var(--wcs-radio-option-text-color-default);\n white-space: nowrap;\n border-radius: var(--wcs-radio-option-border-radius);\n transition: background-color var(--wcs-radio-transition-duration) ease-in-out;\n background-color: var(--wcs-radio-option-background-color-default);\n }\n\n input:focus-visible + label {\n @include focus-outline($outline-color: var(--wcs-radio-outline-color-focus), $border-radius: var(--wcs-radio-border-radius), $outline-offset: 0);\n }\n}\n\n:host([mode=option][disabled]) {\n label {\n color: var(--wcs-radio-option-text-color-disabled);\n background-color: var(--wcs-radio-option-background-color-disabled);\n }\n}\n\n:host([mode=option][disabled].checked) {\n label {\n color: var(--wcs-radio-option-text-color-disabled);\n background-color: var(--wcs-radio-option-background-color-selected-disabled);\n }\n}\n\n:host([mode=option].checked) {\n label {\n font-weight: var(--wcs-radio-option-text-font-weight-selected) !important;\n color: var(--wcs-radio-option-text-color-selected-default);\n background-color: var(--wcs-radio-option-background-color-selected-default);\n }\n}\n\n:host([mode=option]:hover.checked:not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-selected-hover);\n background-color: var(--wcs-radio-option-background-color-selected-hover);\n }\n}\n\n:host([mode=option]:active.checked:not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-selected-press);\n background-color: var(--wcs-radio-option-background-color-selected-press);\n }\n}\n\n:host([mode=option]:hover:not(.checked):not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-hover);\n background-color: var(--wcs-radio-option-background-color-hover);\n outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-hover);\n }\n}\n\n:host([mode=option]:active:not(.checked):not([disabled])) {\n label {\n color: var(--wcs-radio-option-text-color-press);\n background-color: var(--wcs-radio-option-background-color-press);\n outline: var(--wcs-radio-option-border-width) solid var(--wcs-radio-option-border-color-press);\n\n\n\n }\n}\n","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 = 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({ mutable: true, reflect: true }) disabled = 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"],"version":3}
@@ -4,8 +4,8 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  const index = require('./index-6f0140d8.js');
6
6
  const selectArrow = require('./select-arrow-a8a47fe4.js');
7
- const helpers = require('./helpers-871f5a3d.js');
8
- const keyboardEvent = require('./keyboard-event-d2c81ce0.js');
7
+ const helpers = require('./helpers-2f1a8ddc.js');
8
+ const keyboardEvent = require('./keyboard-event-40ecdc27.js');
9
9
  const accessibility = require('./accessibility-5f681a74.js');
10
10
  const isEqual = require('./isEqual-8a0a6936.js');
11
11
  const popper = require('./popper-8d6e7fca.js');
@@ -5324,6 +5324,7 @@ const Select = class {
5324
5324
  this.value = undefined;
5325
5325
  this.placeholder = undefined;
5326
5326
  this.disabled = false;
5327
+ this.required = false;
5327
5328
  this.multiple = false;
5328
5329
  this.autocomplete = false;
5329
5330
  this.serverMode = false;
@@ -6035,14 +6036,14 @@ const Select = class {
6035
6036
  render() {
6036
6037
  var _a;
6037
6038
  const ariaLabelValue = `${this.labelElement ? this.labelElement.innerText : ''} ${this.hasValue ? this.displayText : ''}`.trimEnd();
6038
- return (index.h(index.Host, Object.assign({ key: '201fc0413dca958b717f8e68a3180475a6d29cc6', class: this.expanded ? 'expanded ' : '', overlayDirection: this.overlayDirection }, this.focusedAttributes(), { role: !this.autocomplete ? "combobox" : null, "aria-haspopup": !this.autocomplete ? "listbox" : null, "aria-owns": !this.autocomplete ? this.optionsId : null, "aria-controls": !this.autocomplete ? this.optionsId : null, "aria-disabled": this.disabled ? 'true' : null, "aria-expanded": this.expanded ? 'true' : 'false', "aria-multiselectable": this.multiple ? 'true' : 'false', "aria-label": ariaLabelValue }), index.h("div", { key: 'ed3644949eb6b936640af99c24992b041efd3377', class: "wcs-select-control" }, index.h("div", { key: '3760064787fb454b33e4d957110fddc981aa4f30', class: "wcs-select-value-container" }, this.hasValue
6039
+ return (index.h(index.Host, Object.assign({ key: '1fb232b49c0c6982f0fdb25f40b9cbc0b5a4feba', class: this.expanded ? 'expanded ' : '', overlayDirection: this.overlayDirection }, this.focusedAttributes(), { role: !this.autocomplete ? "combobox" : null, "aria-haspopup": !this.autocomplete ? "listbox" : null, "aria-owns": !this.autocomplete ? this.optionsId : null, "aria-controls": !this.autocomplete ? this.optionsId : null, "aria-disabled": !this.autocomplete ? (this.disabled ? 'true' : null) : null, "aria-required": !this.autocomplete ? (this.required ? 'true' : 'false') : null, "aria-expanded": !this.autocomplete ? (this.expanded ? 'true' : 'false') : null, "aria-multiselectable": !this.autocomplete ? (this.multiple ? 'true' : 'false') : null, "aria-label": !this.autocomplete ? ariaLabelValue : null }), index.h("div", { key: '1ffb794dad6a5047bda91a8d8a192542be53807e', class: "wcs-select-control" }, index.h("div", { key: '4a6eb4aee396013cb385c0747a64f5b734cdb671', class: "wcs-select-value-container" }, this.hasValue
6039
6040
  ?
6040
6041
  (this.chips ?
6041
6042
  this.values.map((option) => index.h(SelectChips, { disabled: this.disabled, option: option, onRemove: this.removeChip.bind(this) }))
6042
6043
  : (!this.autocomplete || this.autocomplete && this.multiple) &&
6043
6044
  index.h("label", { class: "wcs-select-value" }, this.displayText))
6044
- : !this.autocomplete && index.h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && index.h("input", Object.assign({ key: '5cc152dd3815f8852493876baa56ab513eb1b424', class: "autocomplete-field", value: this.autocompleteValue, role: "combobox", "aria-haspopup": "listbox", "aria-label": ariaLabelValue, "aria-disabled": this.disabled ? 'true' : null, "aria-expanded": this.expanded ? 'true' : 'false', "aria-controls": this.optionsId, "aria-owns": this.optionsId, "aria-multiselectable": this.multiple ? 'true' : 'false', "aria-autocomplete": "list", autocomplete: "off", disabled: this.disabled, onBlur: (e) => this.onAutocompleteFieldBlur(e), placeholder: ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) ? null : this.placeholder, onInput: (e) => this.onAutocompleteInputEvent(e), ref: el => this.autocompleteInput = el }, this.inheritedAttributes))), index.h(selectArrow.SelectArrow, { key: '5c555ddc2049519b25316a4c0428e6cd02a02ea8', up: this.expanded })), index.h("div", { key: 'ffed16dd522116e992fba80451a242a34d6efa0d', class: "wcs-select-options", id: this.optionsId, role: "listbox" }, index.h("slot", { key: '296e306aad573f1c71bb23439c501127a5c1b298', name: "options", onSlotchange: this.onSlotchange.bind(this) }), (this.autocomplete && this.showNoResultFoundLabel) &&
6045
- index.h("div", { key: '8f49959dccc48542d89d8425d4659201627b27a8', class: "noresult-container" }, index.h("slot", { key: '16be57220be51e5417b9b1e92f929c678a0f6f02', name: "filter-no-result" }, index.h("span", { key: 'c45dd71a0243a08dd77cafc40577d39c8f7e6d5d' }, "Aucun r\u00E9sultat"))))));
6045
+ : !this.autocomplete && index.h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && index.h("input", Object.assign({ key: '347b45243c453e7c7b9295091107a86953a045e5', class: "autocomplete-field", value: this.autocompleteValue, role: "combobox", "aria-haspopup": "listbox", "aria-label": ariaLabelValue, "aria-disabled": this.disabled ? 'true' : null, "aria-expanded": this.expanded ? 'true' : 'false', "aria-controls": this.optionsId, "aria-owns": this.optionsId, "aria-multiselectable": this.multiple ? 'true' : 'false', "aria-autocomplete": "list", autocomplete: "off", disabled: this.disabled, required: this.required, onBlur: (e) => this.onAutocompleteFieldBlur(e), placeholder: ((_a = this.values) === null || _a === void 0 ? void 0 : _a.length) ? null : this.placeholder, onInput: (e) => this.onAutocompleteInputEvent(e), ref: el => this.autocompleteInput = el }, this.inheritedAttributes))), index.h(selectArrow.SelectArrow, { key: 'a7465cde16a44865b879d4c69de0fbdba0ab5279', up: this.expanded })), index.h("div", { key: 'dcd17dd6ca295aa4d3cc0e0e4e081cae36d2390e', class: "wcs-select-options", id: this.optionsId, role: "listbox" }, index.h("slot", { key: '2d6ff245cdf496a3b8335fd3896a226209117717', name: "options", onSlotchange: this.onSlotchange.bind(this) }), (this.autocomplete && this.showNoResultFoundLabel) &&
6046
+ index.h("div", { key: '26b9e2afd3db161f4c8be2d974825c8be68362d8', class: "noresult-container" }, index.h("slot", { key: '80558760b864f00666398afd6c413cd5e85e660f', name: "filter-no-result" }, index.h("span", { key: 'ba460bf80f8cc3127774bf19db6742766169727a' }, "Aucun r\u00E9sultat"))))));
6046
6047
  }
6047
6048
  get el() { return index.getElement(this); }
6048
6049
  static get watchers() { return {
@@ -6101,8 +6102,8 @@ const SelectOption = class {
6101
6102
  }
6102
6103
  }
6103
6104
  render() {
6104
- return (index.h(index.Host, { key: '5fb9e1a2133b04b3c1e791acec0d923c29e695bc', id: this.selectOptionId, "aria-selected": this.selected || this.highlighted ? 'true' : 'false', slot: "options", role: "option", tabindex: "-1" }, this.multiple &&
6105
- index.h("wcs-checkbox", { key: '9dc934a047192b7bad75e740c5f9889e909a0e35', tabindex: "-1", checked: this.selected, disabled: this.disabled }), index.h("slot", { key: '07f513c6798cce83ab4aa5f553074db71e5b05e2' })));
6105
+ return (index.h(index.Host, { key: 'f23b48f3dbf1219b02651cf96687762cd04670fd', id: this.selectOptionId, "aria-selected": this.selected || this.highlighted ? 'true' : 'false', slot: "options", role: "option", tabindex: "-1" }, this.multiple &&
6106
+ index.h("wcs-checkbox", { key: '78a67e83750518e01bab218efc605b7414224cc6', tabindex: "-1", checked: this.selected, disabled: this.disabled }), index.h("slot", { key: 'db2f9f6ef1a341070dac82b570308e08b852460d' })));
6106
6107
  }
6107
6108
  get el() { return index.getElement(this); }
6108
6109
  };