wcs-core 7.1.0 → 7.2.1

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 (570) hide show
  1. package/README.md +1 -11
  2. package/design-tokens/dist/sncf-groupe-root-scoped.css +590 -0
  3. package/design-tokens/dist/sncf-groupe.css +590 -0
  4. package/design-tokens/dist/sncf-groupe.json +10693 -0
  5. package/design-tokens/dist/sncf-holding-root-scoped.css +426 -425
  6. package/design-tokens/dist/sncf-holding.css +426 -425
  7. package/design-tokens/dist/sncf-holding.json +26 -3
  8. package/design-tokens/dist/sncf-reseau-root-scoped.css +465 -465
  9. package/design-tokens/dist/sncf-reseau.css +465 -465
  10. package/design-tokens/dist/sncf-voyageurs-root-scoped.css +383 -383
  11. package/design-tokens/dist/sncf-voyageurs.css +383 -383
  12. package/dist/cjs/{grid-pagination-e4f29c78.js → grid-pagination-4505d7b6.js} +25 -5
  13. package/dist/cjs/grid-pagination-4505d7b6.js.map +1 -0
  14. package/dist/cjs/loader.cjs.js +1 -1
  15. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +1 -1
  16. package/dist/cjs/wcs-accordion-panel.cjs.entry.js.map +1 -1
  17. package/dist/cjs/wcs-action-bar.cjs.entry.js +1 -1
  18. package/dist/cjs/wcs-action-bar.cjs.entry.js.map +1 -1
  19. package/dist/cjs/wcs-alert-drawer.cjs.entry.js +99 -0
  20. package/dist/cjs/wcs-alert-drawer.cjs.entry.js.map +1 -0
  21. package/dist/cjs/wcs-alert.cjs.entry.js +121 -0
  22. package/dist/cjs/wcs-alert.cjs.entry.js.map +1 -0
  23. package/dist/cjs/wcs-app.cjs.entry.js +3 -3
  24. package/dist/cjs/wcs-badge.cjs.entry.js +2 -2
  25. package/dist/cjs/wcs-badge.cjs.entry.js.map +1 -1
  26. package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js +1 -1
  27. package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js.map +1 -1
  28. package/dist/cjs/wcs-breadcrumb.cjs.entry.js +1 -1
  29. package/dist/cjs/wcs-button_2.cjs.entry.js +3 -8
  30. package/dist/cjs/wcs-button_2.cjs.entry.js.map +1 -1
  31. package/dist/cjs/wcs-card-body.cjs.entry.js +9 -2
  32. package/dist/cjs/wcs-card-body.cjs.entry.js.map +1 -1
  33. package/dist/cjs/wcs-card-content.cjs.entry.js +22 -0
  34. package/dist/cjs/wcs-card-content.cjs.entry.js.map +1 -0
  35. package/dist/cjs/wcs-card-footer.cjs.entry.js +22 -0
  36. package/dist/cjs/wcs-card-footer.cjs.entry.js.map +1 -0
  37. package/dist/cjs/wcs-card-header.cjs.entry.js +22 -0
  38. package/dist/cjs/wcs-card-header.cjs.entry.js.map +1 -0
  39. package/dist/cjs/wcs-card-media.cjs.entry.js +29 -0
  40. package/dist/cjs/wcs-card-media.cjs.entry.js.map +1 -0
  41. package/dist/cjs/wcs-card.cjs.entry.js +30 -2
  42. package/dist/cjs/wcs-card.cjs.entry.js.map +1 -1
  43. package/dist/cjs/wcs-checkbox.cjs.entry.js +1 -1
  44. package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
  45. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +2 -2
  46. package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
  47. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +2 -2
  48. package/dist/cjs/wcs-com-nav.cjs.entry.js +2 -2
  49. package/dist/cjs/wcs-counter.cjs.entry.js +2 -12
  50. package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
  51. package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
  52. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
  53. package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
  54. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +1 -1
  55. package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -6
  56. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  57. package/dist/cjs/wcs-editable-field.cjs.entry.js +2 -2
  58. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  59. package/dist/cjs/wcs-error_3.cjs.entry.js +3 -3
  60. package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
  61. package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
  62. package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
  63. package/dist/cjs/wcs-field.cjs.entry.js +1 -1
  64. package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
  65. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +2 -2
  66. package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
  67. package/dist/cjs/wcs-grid-column.cjs.entry.js +1 -1
  68. package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
  69. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  70. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +1 -1
  71. package/dist/cjs/wcs-grid.cjs.entry.js +12 -4
  72. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  73. package/dist/cjs/wcs-header.cjs.entry.js +2 -2
  74. package/dist/cjs/wcs-header.cjs.entry.js.map +1 -1
  75. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  76. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  77. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
  78. package/dist/cjs/wcs-icon.cjs.entry.js +1 -1
  79. package/dist/cjs/wcs-input.cjs.entry.js +2 -12
  80. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  81. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  82. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  83. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  84. package/dist/cjs/wcs-mat-icon.cjs.entry.js +1 -1
  85. package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +1 -1
  86. package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
  87. package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
  88. package/dist/cjs/wcs-native-select.cjs.entry.js +2 -2
  89. package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -1
  90. package/dist/cjs/wcs-nav-item.cjs.entry.js +1 -1
  91. package/dist/cjs/wcs-nav.cjs.entry.js +2 -2
  92. package/dist/cjs/wcs-nav.cjs.entry.js.map +1 -1
  93. package/dist/cjs/wcs-progress-bar.cjs.entry.js +3 -3
  94. package/dist/cjs/wcs-progress-bar.cjs.entry.js.map +1 -1
  95. package/dist/cjs/wcs-progress-radial.cjs.entry.js +2 -2
  96. package/dist/cjs/wcs-progress-radial.cjs.entry.js.map +1 -1
  97. package/dist/cjs/wcs-radio-group.cjs.entry.js +1 -1
  98. package/dist/cjs/wcs-radio.cjs.entry.js +1 -1
  99. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  100. package/dist/cjs/wcs-select_2.cjs.entry.js +18 -11
  101. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  102. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  103. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  104. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  105. package/dist/cjs/wcs-switch.cjs.entry.js +1 -1
  106. package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
  107. package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
  108. package/dist/cjs/wcs-tabs.cjs.entry.js +149 -6
  109. package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
  110. package/dist/cjs/wcs-textarea.cjs.entry.js +1 -1
  111. package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
  112. package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
  113. package/dist/cjs/wcs-tooltip.cjs.entry.js.map +1 -1
  114. package/dist/cjs/wcs.cjs.js +1 -1
  115. package/dist/collection/collection-manifest.json +6 -0
  116. package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
  117. package/dist/collection/components/accordion-panel/accordion-panel.js.map +1 -1
  118. package/dist/collection/components/action-bar/action-bar.js +1 -1
  119. package/dist/collection/components/action-bar/action-bar.js.map +1 -1
  120. package/dist/collection/components/alert/alert-interface.js +2 -0
  121. package/dist/collection/components/alert/alert-interface.js.map +1 -0
  122. package/dist/collection/components/alert/alert.css +115 -0
  123. package/dist/collection/components/alert/alert.e2e.js +142 -0
  124. package/dist/collection/components/alert/alert.e2e.js.map +1 -0
  125. package/dist/collection/components/alert/alert.js +257 -0
  126. package/dist/collection/components/alert/alert.js.map +1 -0
  127. package/dist/collection/components/alert-drawer/alert-drawer-interface.js +2 -0
  128. package/dist/collection/components/alert-drawer/alert-drawer-interface.js.map +1 -0
  129. package/dist/collection/components/alert-drawer/alert-drawer.css +103 -0
  130. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +111 -0
  131. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +1 -0
  132. package/dist/collection/components/alert-drawer/alert-drawer.js +237 -0
  133. package/dist/collection/components/alert-drawer/alert-drawer.js.map +1 -0
  134. package/dist/collection/components/app/app.js +3 -3
  135. package/dist/collection/components/badge/badge.css +4 -1
  136. package/dist/collection/components/badge/badge.js +1 -1
  137. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  138. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js +1 -1
  139. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js.map +1 -1
  140. package/dist/collection/components/button/button-interface.js +1 -5
  141. package/dist/collection/components/button/button-interface.js.map +1 -1
  142. package/dist/collection/components/button/button.css +2 -2
  143. package/dist/collection/components/button/button.js +1 -6
  144. package/dist/collection/components/button/button.js.map +1 -1
  145. package/dist/collection/components/card/card-interface.js.map +1 -1
  146. package/dist/collection/components/card/card.css +10 -0
  147. package/dist/collection/components/card/card.js +62 -1
  148. package/dist/collection/components/card/card.js.map +1 -1
  149. package/dist/collection/components/card-body/card-body.css +12 -1
  150. package/dist/collection/components/card-body/card-body.js +52 -2
  151. package/dist/collection/components/card-body/card-body.js.map +1 -1
  152. package/dist/collection/components/card-content/card-content.css +12 -0
  153. package/dist/collection/components/card-content/card-content.js +30 -0
  154. package/dist/collection/components/card-content/card-content.js.map +1 -0
  155. package/dist/collection/components/card-footer/card-footer.css +7 -0
  156. package/dist/collection/components/card-footer/card-footer.js +25 -0
  157. package/dist/collection/components/card-footer/card-footer.js.map +1 -0
  158. package/dist/collection/components/card-header/card-header.css +28 -0
  159. package/dist/collection/components/card-header/card-header.js +32 -0
  160. package/dist/collection/components/card-header/card-header.js.map +1 -0
  161. package/dist/collection/components/card-media/card-media.css +21 -0
  162. package/dist/collection/components/card-media/card-media.js +77 -0
  163. package/dist/collection/components/card-media/card-media.js.map +1 -0
  164. package/dist/collection/components/checkbox/checkbox.js +1 -1
  165. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  166. package/dist/collection/components/com-nav/com-nav.js +2 -2
  167. package/dist/collection/components/com-nav-category/com-nav-category.js +2 -2
  168. package/dist/collection/components/com-nav-item/com-nav-item.js +1 -1
  169. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +2 -2
  170. package/dist/collection/components/counter/counter-interface.js +1 -5
  171. package/dist/collection/components/counter/counter-interface.js.map +1 -1
  172. package/dist/collection/components/counter/counter.css +4 -1
  173. package/dist/collection/components/counter/counter.js +1 -6
  174. package/dist/collection/components/counter/counter.js.map +1 -1
  175. package/dist/collection/components/divider/divider.js +1 -1
  176. package/dist/collection/components/dropdown/dropdown.js +2 -7
  177. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  178. package/dist/collection/components/dropdown-divider/dropdown-divider.js +1 -1
  179. package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
  180. package/dist/collection/components/dropdown-item/dropdown-item.js +1 -1
  181. package/dist/collection/components/editable-field/editable-field.css +3 -0
  182. package/dist/collection/components/editable-field/editable-field.js +1 -1
  183. package/dist/collection/components/error/error.js +1 -1
  184. package/dist/collection/components/error/error.js.map +1 -1
  185. package/dist/collection/components/field/field.js +1 -1
  186. package/dist/collection/components/field-content/field-content.js +1 -1
  187. package/dist/collection/components/field-label/field-label.js +1 -1
  188. package/dist/collection/components/footer/footer.js +1 -1
  189. package/dist/collection/components/form-field/form-field.js +1 -1
  190. package/dist/collection/components/form-field/form-field.js.map +1 -1
  191. package/dist/collection/components/galactic/galactic.js +1 -1
  192. package/dist/collection/components/galactic-menu/galactic-menu.js +2 -2
  193. package/dist/collection/components/grid/grid.js +30 -5
  194. package/dist/collection/components/grid/grid.js.map +1 -1
  195. package/dist/collection/components/grid-column/grid-column.js +3 -3
  196. package/dist/collection/components/grid-column/grid-column.js.map +1 -1
  197. package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
  198. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js +2 -2
  199. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js.map +1 -1
  200. package/dist/collection/components/grid-pagination/grid-pagination.js +22 -2
  201. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  202. package/dist/collection/components/header/header.css +9 -1
  203. package/dist/collection/components/header/header.js +2 -1
  204. package/dist/collection/components/header/header.js.map +1 -1
  205. package/dist/collection/components/hint/hint.js +1 -1
  206. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +2 -2
  207. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
  208. package/dist/collection/components/icon/icon.js +1 -1
  209. package/dist/collection/components/input/input-interface.js +1 -5
  210. package/dist/collection/components/input/input-interface.js.map +1 -1
  211. package/dist/collection/components/input/input.css +4 -0
  212. package/dist/collection/components/input/input.js +3 -8
  213. package/dist/collection/components/input/input.js.map +1 -1
  214. package/dist/collection/components/label/label.js +1 -1
  215. package/dist/collection/components/label/label.js.map +1 -1
  216. package/dist/collection/components/list-item/list-item.js +1 -1
  217. package/dist/collection/components/list-item-properties/list-item-properties.js +1 -1
  218. package/dist/collection/components/list-item-property/list-item-property.js +1 -1
  219. package/dist/collection/components/mat-icon/mat-icon.js +2 -2
  220. package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
  221. package/dist/collection/components/modal/modal-interface.js.map +1 -1
  222. package/dist/collection/components/modal/modal.css +1 -0
  223. package/dist/collection/components/modal/modal.js +2 -2
  224. package/dist/collection/components/modal/modal.js.map +1 -1
  225. package/dist/collection/components/native-select/native-select.css +2 -2
  226. package/dist/collection/components/native-select/native-select.js +2 -2
  227. package/dist/collection/components/native-select/native-select.js.map +1 -1
  228. package/dist/collection/components/nav/nav.css +2 -0
  229. package/dist/collection/components/nav/nav.js +1 -1
  230. package/dist/collection/components/nav-item/nav-item.js +1 -1
  231. package/dist/collection/components/progress-bar/progress-bar.css +2 -2
  232. package/dist/collection/components/progress-bar/progress-bar.js +3 -3
  233. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  234. package/dist/collection/components/progress-radial/progress-radial.js +3 -3
  235. package/dist/collection/components/progress-radial/progress-radial.js.map +1 -1
  236. package/dist/collection/components/radio/radio.js +1 -1
  237. package/dist/collection/components/radio/radio.js.map +1 -1
  238. package/dist/collection/components/radio-group/radio-group.js +1 -1
  239. package/dist/collection/components/select/select.css +1 -1
  240. package/dist/collection/components/select/select.js +16 -9
  241. package/dist/collection/components/select/select.js.map +1 -1
  242. package/dist/collection/components/select-option/select-option.js +2 -2
  243. package/dist/collection/components/select-option/select-option.js.map +1 -1
  244. package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
  245. package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
  246. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
  247. package/dist/collection/components/spinner/spinner.js +1 -1
  248. package/dist/collection/components/switch/switch.js +1 -1
  249. package/dist/collection/components/switch/switch.js.map +1 -1
  250. package/dist/collection/components/tab/tab.js +1 -1
  251. package/dist/collection/components/tabs/tabs.css +104 -1
  252. package/dist/collection/components/tabs/tabs.js +180 -5
  253. package/dist/collection/components/tabs/tabs.js.map +1 -1
  254. package/dist/collection/components/textarea/textarea.js +3 -3
  255. package/dist/collection/components/textarea/textarea.js.map +1 -1
  256. package/dist/collection/components/tooltip/tooltip.js +2 -2
  257. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  258. package/dist/esm/{grid-pagination-976a86e9.js → grid-pagination-731726a6.js} +25 -5
  259. package/dist/esm/grid-pagination-731726a6.js.map +1 -0
  260. package/dist/esm/loader.js +1 -1
  261. package/dist/esm/wcs-accordion-panel.entry.js +1 -1
  262. package/dist/esm/wcs-accordion-panel.entry.js.map +1 -1
  263. package/dist/esm/wcs-action-bar.entry.js +1 -1
  264. package/dist/esm/wcs-action-bar.entry.js.map +1 -1
  265. package/dist/esm/wcs-alert-drawer.entry.js +95 -0
  266. package/dist/esm/wcs-alert-drawer.entry.js.map +1 -0
  267. package/dist/esm/wcs-alert.entry.js +117 -0
  268. package/dist/esm/wcs-alert.entry.js.map +1 -0
  269. package/dist/esm/wcs-app.entry.js +3 -3
  270. package/dist/esm/wcs-badge.entry.js +2 -2
  271. package/dist/esm/wcs-badge.entry.js.map +1 -1
  272. package/dist/esm/wcs-breadcrumb-item.entry.js +1 -1
  273. package/dist/esm/wcs-breadcrumb-item.entry.js.map +1 -1
  274. package/dist/esm/wcs-breadcrumb.entry.js +1 -1
  275. package/dist/esm/wcs-button_2.entry.js +3 -8
  276. package/dist/esm/wcs-button_2.entry.js.map +1 -1
  277. package/dist/esm/wcs-card-body.entry.js +10 -3
  278. package/dist/esm/wcs-card-body.entry.js.map +1 -1
  279. package/dist/esm/wcs-card-content.entry.js +18 -0
  280. package/dist/esm/wcs-card-content.entry.js.map +1 -0
  281. package/dist/esm/wcs-card-footer.entry.js +18 -0
  282. package/dist/esm/wcs-card-footer.entry.js.map +1 -0
  283. package/dist/esm/wcs-card-header.entry.js +18 -0
  284. package/dist/esm/wcs-card-header.entry.js.map +1 -0
  285. package/dist/esm/wcs-card-media.entry.js +25 -0
  286. package/dist/esm/wcs-card-media.entry.js.map +1 -0
  287. package/dist/esm/wcs-card.entry.js +31 -3
  288. package/dist/esm/wcs-card.entry.js.map +1 -1
  289. package/dist/esm/wcs-checkbox.entry.js +1 -1
  290. package/dist/esm/wcs-checkbox.entry.js.map +1 -1
  291. package/dist/esm/wcs-com-nav-category.entry.js +2 -2
  292. package/dist/esm/wcs-com-nav-item.entry.js +1 -1
  293. package/dist/esm/wcs-com-nav-submenu.entry.js +2 -2
  294. package/dist/esm/wcs-com-nav.entry.js +2 -2
  295. package/dist/esm/wcs-counter.entry.js +2 -12
  296. package/dist/esm/wcs-counter.entry.js.map +1 -1
  297. package/dist/esm/wcs-divider.entry.js +1 -1
  298. package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
  299. package/dist/esm/wcs-dropdown-header.entry.js +1 -1
  300. package/dist/esm/wcs-dropdown-item.entry.js +1 -1
  301. package/dist/esm/wcs-dropdown.entry.js +1 -6
  302. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  303. package/dist/esm/wcs-editable-field.entry.js +2 -2
  304. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  305. package/dist/esm/wcs-error_3.entry.js +3 -3
  306. package/dist/esm/wcs-error_3.entry.js.map +1 -1
  307. package/dist/esm/wcs-field-content.entry.js +1 -1
  308. package/dist/esm/wcs-field-label.entry.js +1 -1
  309. package/dist/esm/wcs-field.entry.js +1 -1
  310. package/dist/esm/wcs-footer.entry.js +1 -1
  311. package/dist/esm/wcs-galactic-menu.entry.js +2 -2
  312. package/dist/esm/wcs-galactic.entry.js +1 -1
  313. package/dist/esm/wcs-grid-column.entry.js +1 -1
  314. package/dist/esm/wcs-grid-column.entry.js.map +1 -1
  315. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  316. package/dist/esm/wcs-grid-pagination.entry.js +1 -1
  317. package/dist/esm/wcs-grid.entry.js +12 -4
  318. package/dist/esm/wcs-grid.entry.js.map +1 -1
  319. package/dist/esm/wcs-header.entry.js +2 -2
  320. package/dist/esm/wcs-header.entry.js.map +1 -1
  321. package/dist/esm/wcs-hint.entry.js +1 -1
  322. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  323. package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
  324. package/dist/esm/wcs-icon.entry.js +1 -1
  325. package/dist/esm/wcs-input.entry.js +2 -12
  326. package/dist/esm/wcs-input.entry.js.map +1 -1
  327. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  328. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  329. package/dist/esm/wcs-list-item.entry.js +1 -1
  330. package/dist/esm/wcs-mat-icon.entry.js +1 -1
  331. package/dist/esm/wcs-mat-icon.entry.js.map +1 -1
  332. package/dist/esm/wcs-modal.entry.js +2 -2
  333. package/dist/esm/wcs-modal.entry.js.map +1 -1
  334. package/dist/esm/wcs-native-select.entry.js +2 -2
  335. package/dist/esm/wcs-native-select.entry.js.map +1 -1
  336. package/dist/esm/wcs-nav-item.entry.js +1 -1
  337. package/dist/esm/wcs-nav.entry.js +2 -2
  338. package/dist/esm/wcs-nav.entry.js.map +1 -1
  339. package/dist/esm/wcs-progress-bar.entry.js +3 -3
  340. package/dist/esm/wcs-progress-bar.entry.js.map +1 -1
  341. package/dist/esm/wcs-progress-radial.entry.js +2 -2
  342. package/dist/esm/wcs-progress-radial.entry.js.map +1 -1
  343. package/dist/esm/wcs-radio-group.entry.js +1 -1
  344. package/dist/esm/wcs-radio.entry.js +1 -1
  345. package/dist/esm/wcs-radio.entry.js.map +1 -1
  346. package/dist/esm/wcs-select_2.entry.js +18 -11
  347. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  348. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  349. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  350. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  351. package/dist/esm/wcs-switch.entry.js +1 -1
  352. package/dist/esm/wcs-switch.entry.js.map +1 -1
  353. package/dist/esm/wcs-tab.entry.js +1 -1
  354. package/dist/esm/wcs-tabs.entry.js +149 -6
  355. package/dist/esm/wcs-tabs.entry.js.map +1 -1
  356. package/dist/esm/wcs-textarea.entry.js +1 -1
  357. package/dist/esm/wcs-textarea.entry.js.map +1 -1
  358. package/dist/esm/wcs-tooltip.entry.js +1 -1
  359. package/dist/esm/wcs-tooltip.entry.js.map +1 -1
  360. package/dist/esm/wcs.js +1 -1
  361. package/dist/types/components/alert/alert-interface.d.ts +11 -0
  362. package/dist/types/components/alert/alert.d.ts +79 -0
  363. package/dist/types/components/alert-drawer/alert-drawer-interface.d.ts +1 -0
  364. package/dist/types/components/alert-drawer/alert-drawer.d.ts +83 -0
  365. package/dist/types/components/button/button-interface.d.ts +1 -3
  366. package/dist/types/components/card/card-interface.d.ts +1 -0
  367. package/dist/types/components/card/card.d.ts +18 -1
  368. package/dist/types/components/card-body/card-body.d.ts +9 -0
  369. package/dist/types/components/card-content/card-content.d.ts +14 -0
  370. package/dist/types/components/card-footer/card-footer.d.ts +9 -0
  371. package/dist/types/components/card-header/card-header.d.ts +16 -0
  372. package/dist/types/components/card-media/card-media.d.ts +20 -0
  373. package/dist/types/components/counter/counter-interface.d.ts +1 -3
  374. package/dist/types/components/grid/grid.d.ts +4 -0
  375. package/dist/types/components/grid-pagination/grid-pagination.d.ts +6 -1
  376. package/dist/types/components/header/header.d.ts +1 -0
  377. package/dist/types/components/input/input-interface.d.ts +1 -3
  378. package/dist/types/components/mat-icon/mat-icon.d.ts +1 -1
  379. package/dist/types/components/modal/modal-interface.d.ts +2 -1
  380. package/dist/types/components/select/select.d.ts +7 -1
  381. package/dist/types/components/tabs/tabs.d.ts +55 -0
  382. package/dist/types/components.d.ts +571 -6
  383. package/dist/wcs/{p-9c012aae.entry.js → p-0424e545.entry.js} +2 -2
  384. package/dist/wcs/{p-50523b53.entry.js → p-0758d22e.entry.js} +2 -2
  385. package/dist/wcs/p-0b8157e7.entry.js +2 -0
  386. package/dist/wcs/p-0dd07842.entry.js +2 -0
  387. package/dist/wcs/p-0dd07842.entry.js.map +1 -0
  388. package/dist/wcs/{p-9554196c.entry.js → p-1244daa0.entry.js} +2 -2
  389. package/dist/wcs/{p-96bff8fe.entry.js → p-18fa39f4.entry.js} +2 -2
  390. package/dist/wcs/{p-96bff8fe.entry.js.map → p-18fa39f4.entry.js.map} +1 -1
  391. package/dist/wcs/p-1ba616c2.entry.js +2 -0
  392. package/dist/wcs/p-1ba616c2.entry.js.map +1 -0
  393. package/dist/wcs/p-1e7ea63c.entry.js +2 -0
  394. package/dist/wcs/p-1e7ea63c.entry.js.map +1 -0
  395. package/dist/wcs/p-1f593d06.entry.js +2 -0
  396. package/dist/wcs/p-1f593d06.entry.js.map +1 -0
  397. package/dist/wcs/{p-4dc52a25.entry.js → p-1fbe0328.entry.js} +2 -2
  398. package/dist/wcs/p-1fbe0328.entry.js.map +1 -0
  399. package/dist/wcs/{p-c2d35aa6.entry.js → p-204f2722.entry.js} +9 -9
  400. package/dist/wcs/p-204f2722.entry.js.map +1 -0
  401. package/dist/wcs/{p-37800935.entry.js → p-27b438c0.entry.js} +2 -2
  402. package/dist/wcs/{p-0ffdfc10.entry.js → p-352e1f99.entry.js} +2 -2
  403. package/dist/wcs/{p-3cfa1c4b.entry.js → p-367946fe.entry.js} +2 -2
  404. package/dist/wcs/p-3823f54e.entry.js +2 -0
  405. package/dist/wcs/{p-a7891233.entry.js → p-3a18535f.entry.js} +2 -2
  406. package/dist/wcs/p-41b946b2.entry.js +2 -0
  407. package/dist/wcs/p-41b946b2.entry.js.map +1 -0
  408. package/dist/wcs/{p-4661290b.entry.js → p-496115a5.entry.js} +2 -2
  409. package/dist/wcs/{p-4661290b.entry.js.map → p-496115a5.entry.js.map} +1 -1
  410. package/dist/wcs/p-4fb2d985.entry.js +2 -0
  411. package/dist/wcs/{p-9243a323.entry.js.map → p-4fb2d985.entry.js.map} +1 -1
  412. package/dist/wcs/{p-d895ffb4.entry.js → p-5202b323.entry.js} +2 -2
  413. package/dist/wcs/{p-ca8f3677.entry.js → p-53a395a9.entry.js} +2 -2
  414. package/dist/wcs/{p-ca8f3677.entry.js.map → p-53a395a9.entry.js.map} +1 -1
  415. package/dist/wcs/p-5607246c.entry.js +2 -0
  416. package/dist/wcs/p-5607246c.entry.js.map +1 -0
  417. package/dist/wcs/p-580b3142.entry.js +2 -0
  418. package/dist/wcs/p-5da0534f.entry.js +2 -0
  419. package/dist/wcs/p-5da0534f.entry.js.map +1 -0
  420. package/dist/wcs/p-5e8fff73.entry.js +2 -0
  421. package/dist/wcs/p-5e8fff73.entry.js.map +1 -0
  422. package/dist/wcs/{p-dddcd685.entry.js → p-622f7403.entry.js} +2 -2
  423. package/dist/wcs/p-637ec45a.entry.js +2 -0
  424. package/dist/wcs/p-637ec45a.entry.js.map +1 -0
  425. package/dist/wcs/p-6aededc6.entry.js +2 -0
  426. package/dist/wcs/p-6aededc6.entry.js.map +1 -0
  427. package/dist/wcs/p-6c6079ee.entry.js +2 -0
  428. package/dist/wcs/{p-76c92e22.entry.js.map → p-6c6079ee.entry.js.map} +1 -1
  429. package/dist/wcs/{p-e5c057c4.entry.js → p-781a956e.entry.js} +2 -2
  430. package/dist/wcs/p-7de847e0.entry.js +2 -0
  431. package/dist/wcs/p-8152d360.entry.js +2 -0
  432. package/dist/wcs/p-8152d360.entry.js.map +1 -0
  433. package/dist/wcs/{p-294732f7.entry.js → p-850fa9c9.entry.js} +2 -2
  434. package/dist/wcs/{p-796e690d.entry.js → p-86ec9ead.entry.js} +2 -2
  435. package/dist/wcs/{p-796e690d.entry.js.map → p-86ec9ead.entry.js.map} +1 -1
  436. package/dist/wcs/p-8c2605fd.entry.js +2 -0
  437. package/dist/wcs/p-8c2605fd.entry.js.map +1 -0
  438. package/dist/wcs/{p-16dd21cf.entry.js → p-8e9bd0f1.entry.js} +2 -2
  439. package/dist/wcs/p-98a8b806.entry.js +2 -0
  440. package/dist/wcs/p-98a8b806.entry.js.map +1 -0
  441. package/dist/wcs/p-9c73744c.entry.js +2 -0
  442. package/dist/wcs/p-9c73744c.entry.js.map +1 -0
  443. package/dist/wcs/p-9fd3366c.entry.js +2 -0
  444. package/dist/wcs/p-9fd3366c.entry.js.map +1 -0
  445. package/dist/wcs/p-a0f6ef30.entry.js +2 -0
  446. package/dist/wcs/p-a0f6ef30.entry.js.map +1 -0
  447. package/dist/wcs/{p-5bf73e05.entry.js → p-a94e685c.entry.js} +2 -2
  448. package/dist/wcs/{p-5bf73e05.entry.js.map → p-a94e685c.entry.js.map} +1 -1
  449. package/dist/wcs/{p-7d665a7e.entry.js → p-a956dc84.entry.js} +2 -2
  450. package/dist/wcs/p-a956dc84.entry.js.map +1 -0
  451. package/dist/wcs/{p-5d5f50ed.entry.js → p-aadf37e7.entry.js} +2 -2
  452. package/dist/wcs/{p-6b06d2e7.entry.js → p-ad286030.entry.js} +2 -2
  453. package/dist/wcs/p-ad5192cd.entry.js +2 -0
  454. package/dist/wcs/{p-dd60a6db.entry.js → p-b0a6eec6.entry.js} +2 -2
  455. package/dist/wcs/{p-dd60a6db.entry.js.map → p-b0a6eec6.entry.js.map} +1 -1
  456. package/dist/wcs/{p-9ad23e83.entry.js → p-b28b2fba.entry.js} +2 -2
  457. package/dist/wcs/p-b28b2fba.entry.js.map +1 -0
  458. package/dist/wcs/{p-29f5b974.entry.js → p-bc009574.entry.js} +2 -2
  459. package/dist/wcs/{p-29f5b974.entry.js.map → p-bc009574.entry.js.map} +1 -1
  460. package/dist/wcs/p-c211a5d1.entry.js +2 -0
  461. package/dist/wcs/{p-206c01d5.entry.js → p-c261eaf9.entry.js} +2 -2
  462. package/dist/wcs/p-c261eaf9.entry.js.map +1 -0
  463. package/dist/wcs/p-c5bad0b8.js +2 -0
  464. package/dist/wcs/p-c5bad0b8.js.map +1 -0
  465. package/dist/wcs/p-c7812760.entry.js +2 -0
  466. package/dist/wcs/{p-694724a2.entry.js → p-c84ae00d.entry.js} +2 -2
  467. package/dist/wcs/p-cad10435.entry.js +2 -0
  468. package/dist/wcs/{p-13e50077.entry.js.map → p-cad10435.entry.js.map} +1 -1
  469. package/dist/wcs/p-cbbca016.entry.js +2 -0
  470. package/dist/wcs/p-cbbca016.entry.js.map +1 -0
  471. package/dist/wcs/{p-619e1110.entry.js → p-cbda74f6.entry.js} +2 -2
  472. package/dist/wcs/{p-21b964cd.entry.js → p-d27d4a53.entry.js} +2 -2
  473. package/dist/wcs/p-d27d4a53.entry.js.map +1 -0
  474. package/dist/wcs/p-dfb52a1c.entry.js +2 -0
  475. package/dist/wcs/p-dfb52a1c.entry.js.map +1 -0
  476. package/dist/wcs/{p-6f5d570a.entry.js → p-dff8641e.entry.js} +2 -2
  477. package/dist/wcs/p-e26c19e5.entry.js +2 -0
  478. package/dist/wcs/{p-d9525519.entry.js → p-e56b9ce2.entry.js} +2 -2
  479. package/dist/wcs/p-ec383729.entry.js +2 -0
  480. package/dist/wcs/p-ec383729.entry.js.map +1 -0
  481. package/dist/wcs/p-f929b66f.entry.js +2 -0
  482. package/dist/wcs/p-f929b66f.entry.js.map +1 -0
  483. package/dist/wcs/{p-da4636fa.entry.js → p-fd187bce.entry.js} +2 -2
  484. package/dist/wcs/{p-b96f4921.entry.js → p-fdeae83e.entry.js} +2 -2
  485. package/dist/wcs/wcs.esm.js +1 -1
  486. package/dist/wcs/wcs.esm.js.map +1 -1
  487. package/package.json +5 -2
  488. package/dist/cjs/button-interface-629f3563.js +0 -12
  489. package/dist/cjs/button-interface-629f3563.js.map +0 -1
  490. package/dist/cjs/grid-pagination-e4f29c78.js.map +0 -1
  491. package/dist/esm/button-interface-dc5ddd51.js +0 -9
  492. package/dist/esm/button-interface-dc5ddd51.js.map +0 -1
  493. package/dist/esm/grid-pagination-976a86e9.js.map +0 -1
  494. package/dist/wcs/p-13090618.entry.js +0 -2
  495. package/dist/wcs/p-13090618.entry.js.map +0 -1
  496. package/dist/wcs/p-13e50077.entry.js +0 -2
  497. package/dist/wcs/p-1438530e.entry.js +0 -2
  498. package/dist/wcs/p-1438530e.entry.js.map +0 -1
  499. package/dist/wcs/p-206c01d5.entry.js.map +0 -1
  500. package/dist/wcs/p-21b964cd.entry.js.map +0 -1
  501. package/dist/wcs/p-21d2f06f.entry.js +0 -2
  502. package/dist/wcs/p-21d2f06f.entry.js.map +0 -1
  503. package/dist/wcs/p-258855a1.entry.js +0 -2
  504. package/dist/wcs/p-258855a1.entry.js.map +0 -1
  505. package/dist/wcs/p-2adf00be.entry.js +0 -2
  506. package/dist/wcs/p-2adf00be.entry.js.map +0 -1
  507. package/dist/wcs/p-388e6d75.entry.js +0 -2
  508. package/dist/wcs/p-388e6d75.entry.js.map +0 -1
  509. package/dist/wcs/p-43d70995.entry.js +0 -2
  510. package/dist/wcs/p-43d70995.entry.js.map +0 -1
  511. package/dist/wcs/p-4dc52a25.entry.js.map +0 -1
  512. package/dist/wcs/p-550012c2.entry.js +0 -2
  513. package/dist/wcs/p-5974be61.entry.js +0 -2
  514. package/dist/wcs/p-5974be61.entry.js.map +0 -1
  515. package/dist/wcs/p-5de993d7.entry.js +0 -2
  516. package/dist/wcs/p-5de993d7.entry.js.map +0 -1
  517. package/dist/wcs/p-71db0ed5.entry.js +0 -2
  518. package/dist/wcs/p-76c92e22.entry.js +0 -2
  519. package/dist/wcs/p-7d665a7e.entry.js.map +0 -1
  520. package/dist/wcs/p-8fcceaf1.js +0 -2
  521. package/dist/wcs/p-8fcceaf1.js.map +0 -1
  522. package/dist/wcs/p-9243a323.entry.js +0 -2
  523. package/dist/wcs/p-94aa269f.entry.js +0 -2
  524. package/dist/wcs/p-94aa269f.entry.js.map +0 -1
  525. package/dist/wcs/p-96195d9a.entry.js +0 -2
  526. package/dist/wcs/p-96195d9a.entry.js.map +0 -1
  527. package/dist/wcs/p-9ad23e83.entry.js.map +0 -1
  528. package/dist/wcs/p-9dc3f9a5.entry.js +0 -2
  529. package/dist/wcs/p-9dc3f9a5.entry.js.map +0 -1
  530. package/dist/wcs/p-9eb66fa9.entry.js +0 -2
  531. package/dist/wcs/p-ab49926d.entry.js +0 -2
  532. package/dist/wcs/p-ab49926d.entry.js.map +0 -1
  533. package/dist/wcs/p-b2080509.entry.js +0 -2
  534. package/dist/wcs/p-c2d35aa6.entry.js.map +0 -1
  535. package/dist/wcs/p-c6a28b79.js +0 -2
  536. package/dist/wcs/p-c6a28b79.js.map +0 -1
  537. package/dist/wcs/p-c752b85a.entry.js +0 -2
  538. package/dist/wcs/p-d443d419.entry.js +0 -2
  539. package/dist/wcs/p-e36b2ad1.entry.js +0 -2
  540. package/dist/wcs/p-f87636f6.entry.js +0 -2
  541. package/dist/wcs/p-f87636f6.entry.js.map +0 -1
  542. package/dist/wcs/p-fc115de4.entry.js +0 -2
  543. /package/dist/wcs/{p-9c012aae.entry.js.map → p-0424e545.entry.js.map} +0 -0
  544. /package/dist/wcs/{p-50523b53.entry.js.map → p-0758d22e.entry.js.map} +0 -0
  545. /package/dist/wcs/{p-e36b2ad1.entry.js.map → p-0b8157e7.entry.js.map} +0 -0
  546. /package/dist/wcs/{p-9554196c.entry.js.map → p-1244daa0.entry.js.map} +0 -0
  547. /package/dist/wcs/{p-37800935.entry.js.map → p-27b438c0.entry.js.map} +0 -0
  548. /package/dist/wcs/{p-0ffdfc10.entry.js.map → p-352e1f99.entry.js.map} +0 -0
  549. /package/dist/wcs/{p-3cfa1c4b.entry.js.map → p-367946fe.entry.js.map} +0 -0
  550. /package/dist/wcs/{p-c752b85a.entry.js.map → p-3823f54e.entry.js.map} +0 -0
  551. /package/dist/wcs/{p-a7891233.entry.js.map → p-3a18535f.entry.js.map} +0 -0
  552. /package/dist/wcs/{p-d895ffb4.entry.js.map → p-5202b323.entry.js.map} +0 -0
  553. /package/dist/wcs/{p-b2080509.entry.js.map → p-580b3142.entry.js.map} +0 -0
  554. /package/dist/wcs/{p-dddcd685.entry.js.map → p-622f7403.entry.js.map} +0 -0
  555. /package/dist/wcs/{p-e5c057c4.entry.js.map → p-781a956e.entry.js.map} +0 -0
  556. /package/dist/wcs/{p-550012c2.entry.js.map → p-7de847e0.entry.js.map} +0 -0
  557. /package/dist/wcs/{p-294732f7.entry.js.map → p-850fa9c9.entry.js.map} +0 -0
  558. /package/dist/wcs/{p-16dd21cf.entry.js.map → p-8e9bd0f1.entry.js.map} +0 -0
  559. /package/dist/wcs/{p-5d5f50ed.entry.js.map → p-aadf37e7.entry.js.map} +0 -0
  560. /package/dist/wcs/{p-6b06d2e7.entry.js.map → p-ad286030.entry.js.map} +0 -0
  561. /package/dist/wcs/{p-fc115de4.entry.js.map → p-ad5192cd.entry.js.map} +0 -0
  562. /package/dist/wcs/{p-9eb66fa9.entry.js.map → p-c211a5d1.entry.js.map} +0 -0
  563. /package/dist/wcs/{p-d443d419.entry.js.map → p-c7812760.entry.js.map} +0 -0
  564. /package/dist/wcs/{p-694724a2.entry.js.map → p-c84ae00d.entry.js.map} +0 -0
  565. /package/dist/wcs/{p-619e1110.entry.js.map → p-cbda74f6.entry.js.map} +0 -0
  566. /package/dist/wcs/{p-6f5d570a.entry.js.map → p-dff8641e.entry.js.map} +0 -0
  567. /package/dist/wcs/{p-71db0ed5.entry.js.map → p-e26c19e5.entry.js.map} +0 -0
  568. /package/dist/wcs/{p-d9525519.entry.js.map → p-e56b9ce2.entry.js.map} +0 -0
  569. /package/dist/wcs/{p-da4636fa.entry.js.map → p-fd187bce.entry.js.map} +0 -0
  570. /package/dist/wcs/{p-b96f4921.entry.js.map → p-fdeae83e.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"native-select.js","sourceRoot":"","sources":["../../../src/components/native-select/native-select.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, ComponentInterface, State, Prop, Host, Element, Method, Watch } from '@stencil/core';\n\nimport { SelectArrow } from '../select/select-arrow';\nimport { WcsNativeSelectSize } from './native-select-interface';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n/**\n * The `wcs-native-select` component is designed to accept a native `<select>` element as a slotted child. This choice\n * allows developers to bind the `<select>` element using the framework of their choice, without the need to re-expose all the\n * properties of the `<select>` and `<option>` elements in this component.\n *\n * The component wraps the native `<select>` element and provides custom styles and behavior, while preserving the native\n * functionality and accessibility.\n *\n * ### ✅ Guidance\n *\n * - To have a placeholder, you must have an option as child which has `selected` attribute and `disabled`\n * attribute. You can add the `hidden` attribute to don't show the placeholder option in the options overlay.\n *\n * ### Example usage\n *\n * ```html\n * <wcs-native-select>\n * <select>\n * <option value=\"option1\">Option 1</option>\n * <option value=\"option2\">Option 2</option>\n * <option value=\"option3\">Option 3</option>\n * </select>\n * </wcs-native-select>\n * ```\n *\n * ### Note\n * - We did not find a way to detect when the select is reset, if you want to apply the placeholder style when the\n * select is reset, you have to call the `updateStyles()` method manually.\n * - It is strongly recommended to use native-select when you don't have to support the multi-selection feature\n * - Use a native-select instead of a wcs-select if your application is mainly on mobile / tablet. The native behavior of the device will be used.\n *\n * @cssprop --wcs-native-select-line-height - Line height of the select\n * \n * @cssprop --wcs-native-select-size-m - Height of the select when size is 'm'\n * @cssprop --wcs-native-select-font-size-m - Font size of the select when size is 'm'\n * @cssprop --wcs-native-select-size-l - Height of the select when size is 'l'\n * @cssprop --wcs-native-select-font-size-l - Font size of the select when size is 'l'\n * \n * @cssprop --wcs-native-select-border-radius - Border radius of the select\n * \n * @cssprop --wcs-native-select-background-color - Background color of the select\n * \n * @cssprop --wcs-native-select-border-color-default - Border color of the select when not focused\n * @cssprop --wcs-native-select-border-color-disabled - Border color of the select when disabled\n * @cssprop --wcs-native-select-border-color-focus - Border color of the select when focused\n * @cssprop --wcs-native-select-border-color-error - Border color of the select when in error state\n * \n * @cssprop --wcs-native-select-border-style-default - Border style of the select when not focused\n * @cssprop --wcs-native-select-border-style-focus - Border style of the select when focused\n * \n * @cssprop --wcs-native-select-border-width - Border width of the select when not focused\n * @cssprop --wcs-native-select-border-width-focus - Border width of the select when focused\n * \n * @cssprop --wcs-native-select-value-color - Color of the selected value\n * @cssprop --wcs-native-select-value-font-weight - Font weight of the selected value\n * @cssprop --wcs-native-select-value-font-style - Font style of the selected value\n * \n * @cssprop --wcs-native-select-padding-horizontal-m - Padding horizontal of the select when size is 'm'\n * @cssprop --wcs-native-select-padding-horizontal-l - Padding horizontal of the select when size is 'l'\n * \n * @cssprop --wcs-native-select-arrow-color - Color of the select arrow\n * @cssprop --wcs-native-select-arrow-color-disabled - Color of the select arrow when the select is disabled\n * \n * @cssprop --wcs-native-select-text-color-disabled - Color of the text when the select is disabled\n *\n * @cssprop --wcs-native-select-placeholder-color - Color of the placeholder\n * @cssprop --wcs-native-select-placeholder-font-weight - Font weight of the placeholder\n * @cssprop --wcs-native-select-placeholder-font-style - Font style of the placeholder\n *\n * @cssprop --wcs-native-select-option-color - Text color of the options\n * @cssprop --wcs-native-select-option-font-style - Font style of the options\n * @cssprop --wcs-native-select-option-selected-color - Text color of the selected option\n *\n * \n */\n@Component({\n tag: 'wcs-native-select',\n styleUrl: 'native-select.scss',\n shadow: true\n})\nexport class NativeSelect implements ComponentInterface, MutableAriaAttribute {\n /**\n * The `size` property controls the size of the slotted `select` element by adjusting its padding.\n * There are two possible size options:\n * - 'm': medium size\n * - 'l': large size\n *\n * The default value is 'm'.\n */\n @Prop({reflect: true}) size: WcsNativeSelectSize = 'm';\n /**\n * If `true`, the user must fill in a value before submitting a form.\n * It is propagated to the slotted select element\n */\n @Prop() required = false;\n \n @Element() private el!: HTMLWcsNativeSelectElement;\n\n @State() private expanded: boolean = false;\n\n @State() private disabled: boolean;\n private selectElement: HTMLSelectElement;\n\n private observer: MutationObserver;\n private readonly SLOTTED_SELECT_TRACKED_ATTRIBUTES_LIST = ['disabled'];\n\n @Watch('required')\n requiredChanged(newValue: boolean, oldValue: boolean) {\n if(newValue !== oldValue) {\n if(!this.selectElement) return;\n this.selectElement.required = this.required;\n }\n }\n \n componentWillLoad() {\n this.selectElement = this.el.querySelector('select');\n if (!this.selectElement) throw new Error(\"wcs-native-select must be used with a native slotted select, please refer to the documentation.\");\n\n this.onSelectedOptionChange();\n\n /**\n * We use an event listener to apply the default style to the select when user chose an active option\n */\n this.selectElement.addEventListener('change', () => {\n this.onSelectedOptionChange();\n });\n\n this.observer = new MutationObserver(mutations => {\n const hasSpiedAttrMutation = mutations.filter(m => this.SLOTTED_SELECT_TRACKED_ATTRIBUTES_LIST.includes(m.attributeName)).length > 0;\n if (hasSpiedAttrMutation) {\n this.updateHostAttributeWithSlottedSelect();\n }\n\n // A workaround to detect when the select is reset by using a class change on the select element. For example\n // angular add/remove ng-pristine and ng-dirty classes on the form controls when the form is reset.\n // Not the best solution but it works since we cannot detect the reset event on the native select element.\n if (mutations.filter(m => m.attributeName === 'class').length > 0) {\n this._updateStyles();\n }\n });\n this.updateHostAttributeWithSlottedSelect();\n this.observer.observe(this.selectElement, {attributes: true});\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n if(!this.selectElement) return;\n this.selectElement.setAttribute(attr, value);\n }\n\n private onSelectedOptionChange(): void {\n this._updateStyles();\n }\n\n private _updateStyles() {\n if (this.isPlaceholderOptionSelected()) {\n this.applyPlaceholderStylesOnNativeSlottedSelectElement();\n } else {\n this.applySelectedOptionStylesOnNativeSlottedSelectElement();\n }\n }\n\n private isPlaceholderOptionSelected() {\n return Array.from(this.selectElement.options).filter(o => o.selected)[0]?.disabled == true;\n }\n\n /**\n * This method should always unset all styles modified by the `applyPlaceholderStylesOnNativeSlottedSelectElement()`\n * @private\n */\n private applySelectedOptionStylesOnNativeSlottedSelectElement() {\n this.selectElement.style.color = \"var(--wcs-native-select-value-color)\";\n this.selectElement.style.fontStyle = \"var(--wcs-native-select-value-font-style)\";\n this.selectElement.style.fontWeight = \"var(--wcs-native-select-value-font-weight)\";\n Array.from(this.selectElement.options).forEach(option => {\n option.style.fontStyle = \"var(--wcs-native-select-option-font-style)\";\n if (!option.disabled) {\n option.style.color = \"var(--wcs-native-select-option-color)\";\n }\n });\n }\n\n /**\n * This method apply styles when the placeholder is shown.\n *\n * We use javascript because we cannot achieve that behaviour in pure css when the native select is not required\n * @private\n */\n private applyPlaceholderStylesOnNativeSlottedSelectElement() {\n this.selectElement.style.color = \"var(--wcs-native-select-placeholder-color)\";\n this.selectElement.style.fontWeight = \"var(--wcs-native-select-placeholder-font-weight)\";\n this.selectElement.style.fontStyle = \"var(--wcs-native-select-placeholder-font-style)\";\n Array.from(this.selectElement.options).forEach(option => {\n option.style.fontStyle = \"var(--wcs-native-select-option-font-style)\";\n if (!option.disabled) {\n option.style.color = \"var(--wcs-native-select-option-color)\";\n }\n });\n }\n\n private updateHostAttributeWithSlottedSelect() {\n this.disabled = this.selectElement?.hasAttribute('disabled');\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n this.selectElement?.removeEventListener(\"change\", () => {\n this.onSelectedOptionChange();\n });\n }\n\n /**\n * Use this method to force the component to update its styles. It can be useful when the select is reset (with a placeholder).\n */\n @Method()\n async updateStyles() {\n // Note : we try to automatically detect if the select is reset with the onreset event and with a mutation\n // observer on the select element. But it seems that the onreset event is not fired when the select is reset.\n // and the mutation observer is not fired when the select is reset with the reset() method on the form.\n // So we have to let the user call this method manually when he reset the select.\n this._updateStyles();\n }\n\n render() {\n return (\n <Host class={`${this.expanded ? 'expanded' : ''}`} data-disabled={this.disabled} data-size={this.size}>\n <div class=\"select-wrapper\">\n <slot></slot>\n <div class=\"arrow-container\">\n <SelectArrow up={this.expanded}></SelectArrow>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"native-select.js","sourceRoot":"","sources":["../../../src/components/native-select/native-select.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAsB,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAE5G,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIrD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AAMH,MAAM,OAAO,YAAY;;QAwBJ,2CAAsC,GAAG,CAAC,UAAU,CAAC,CAAC;oBAfpB,GAAG;wBAKT,KAAK;wBAIb,KAAK;;;IAS1C,eAAe,CAAC,QAAiB,EAAE,QAAiB;QAChD,IAAG,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACvB,IAAG,CAAC,IAAI,CAAC,aAAa;gBAAE,OAAO;YAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAChD,CAAC;IACL,CAAC;IAED,iBAAiB;QACb,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAC;QAE5I,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAE9B;;WAEG;QACH,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE;YAC/C,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,GAAG,IAAI,gBAAgB,CAAC,SAAS,CAAC,EAAE;YAC7C,MAAM,oBAAoB,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,sCAAsC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;YACrI,IAAI,oBAAoB,EAAE,CAAC;gBACvB,IAAI,CAAC,oCAAoC,EAAE,CAAC;YAChD,CAAC;YAED,6GAA6G;YAC7G,mGAAmG;YACnG,0GAA0G;YAC1G,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAChE,IAAI,CAAC,aAAa,EAAE,CAAC;YACzB,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,oCAAoC,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,EAAC,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;IAClE,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,IAAG,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO;QAC/B,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,CAAC;IAEO,sBAAsB;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAEO,aAAa;QACjB,IAAI,IAAI,CAAC,2BAA2B,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,kDAAkD,EAAE,CAAC;QAC9D,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,qDAAqD,EAAE,CAAC;QACjE,CAAC;IACL,CAAC;IAEO,2BAA2B;;QAC/B,OAAO,CAAA,MAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,0CAAE,QAAQ,KAAI,IAAI,CAAC;IAC/F,CAAC;IAED;;;OAGG;IACK,qDAAqD;QACzD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,sCAAsC,CAAC;QACxE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,2CAA2C,CAAC;QACjF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,4CAA4C,CAAC;QACnF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,4CAA4C,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,uCAAuC,CAAC;YACjE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACK,kDAAkD;QACtD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,GAAG,4CAA4C,CAAC;QAC9E,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,GAAG,kDAAkD,CAAC;QACzF,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,iDAAiD,CAAC;QACvF,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACpD,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,4CAA4C,CAAC;YACtE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,uCAAuC,CAAC;YACjE,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,oCAAoC;;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAA,IAAI,CAAC,aAAa,0CAAE,YAAY,CAAC,UAAU,CAAC,CAAC;IACjE,CAAC;IAED,oBAAoB;;QAChB,MAAA,IAAI,CAAC,QAAQ,0CAAE,UAAU,EAAE,CAAC;QAC5B,MAAA,IAAI,CAAC,aAAa,0CAAE,mBAAmB,CAAC,QAAQ,EAAE,GAAG,EAAE;YACnD,IAAI,CAAC,sBAAsB,EAAE,CAAC;QAClC,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IAEH,KAAK,CAAC,YAAY;QACd,0GAA0G;QAC1G,6GAA6G;QAC7G,uGAAuG;QACvG,iFAAiF;QACjF,IAAI,CAAC,aAAa,EAAE,CAAC;IACzB,CAAC;IAED,MAAM;QACF,OAAO,CACH,EAAC,IAAI,qDAAC,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,mBAAiB,IAAI,CAAC,QAAQ,eAAa,IAAI,CAAC,IAAI;YACjG,4DAAK,KAAK,EAAC,gBAAgB;gBACvB,8DAAa;gBACb,4DAAK,KAAK,EAAC,iBAAiB;oBACxB,EAAC,WAAW,qDAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,GAAgB,CAC5C,CACJ,CACH,CACV,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, h, ComponentInterface, State, Prop, Host, Element, Method, Watch } from '@stencil/core';\n\nimport { SelectArrow } from '../select/select-arrow';\nimport { WcsNativeSelectSize } from './native-select-interface';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n/**\n * The `wcs-native-select` component is designed to accept a native `<select>` element as a slotted child. This choice\n * allows developers to bind the `<select>` element using the framework of their choice, without the need to re-expose all the\n * properties of the `<select>` and `<option>` elements in this component.\n *\n * The component wraps the native `<select>` element and provides custom styles and behavior, while preserving the native\n * functionality and accessibility.\n *\n * ### ✅ Guidance\n *\n * - To have a placeholder, you must have an option as child which has `selected` attribute and `disabled`\n * attribute. You can add the `hidden` attribute to don't show the placeholder option in the options overlay.\n *\n * ### Example usage\n *\n * ```html\n * <wcs-native-select>\n * <select>\n * <option value=\"option1\">Option 1</option>\n * <option value=\"option2\">Option 2</option>\n * <option value=\"option3\">Option 3</option>\n * </select>\n * </wcs-native-select>\n * ```\n *\n * ### Note\n * - We did not find a way to detect when the select is reset, if you want to apply the placeholder style when the\n * select is reset, you have to call the `updateStyles()` method manually.\n * - It is strongly recommended to use native-select when you don't have to support the multi-selection feature\n * - Use a native-select instead of a wcs-select if your application is mainly on mobile / tablet. The native behavior of the device will be used.\n *\n * @cssprop --wcs-native-select-line-height - Line height of the select\n * \n * @cssprop --wcs-native-select-size-m - Height of the select when size is 'm'\n * @cssprop --wcs-native-select-font-size-m - Font size of the select when size is 'm'\n * @cssprop --wcs-native-select-size-l - Height of the select when size is 'l'\n * @cssprop --wcs-native-select-font-size-l - Font size of the select when size is 'l'\n * \n * @cssprop --wcs-native-select-border-radius - Border radius of the select\n * \n * @cssprop --wcs-native-select-background-color - Background color of the select\n * \n * @cssprop --wcs-native-select-border-color-default - Border color of the select when not focused\n * @cssprop --wcs-native-select-border-color-disabled - Border color of the select when disabled\n * @cssprop --wcs-native-select-border-color-focus - Border color of the select when focused\n * @cssprop --wcs-native-select-border-color-error - Border color of the select when in error state\n * \n * @cssprop --wcs-native-select-border-style-default - Border style of the select when not focused\n * @cssprop --wcs-native-select-border-style-focus - Border style of the select when focused\n * \n * @cssprop --wcs-native-select-border-width - Border width of the select when not focused\n * @cssprop --wcs-native-select-border-width-focus - Border width of the select when focused\n * \n * @cssprop --wcs-native-select-value-color - Color of the selected value\n * @cssprop --wcs-native-select-value-font-weight - Font weight of the selected value\n * @cssprop --wcs-native-select-value-font-style - Font style of the selected value\n * \n * @cssprop --wcs-native-select-padding-horizontal-m - Padding horizontal of the select when size is 'm'\n * @cssprop --wcs-native-select-padding-horizontal-l - Padding horizontal of the select when size is 'l'\n * \n * @cssprop --wcs-native-select-arrow-color - Color of the select arrow\n * @cssprop --wcs-native-select-arrow-color-disabled - Color of the select arrow when the select is disabled\n * \n * @cssprop --wcs-native-select-text-color-disabled - Color of the text when the select is disabled\n *\n * @cssprop --wcs-native-select-placeholder-color - Color of the placeholder\n * @cssprop --wcs-native-select-placeholder-font-weight - Font weight of the placeholder\n * @cssprop --wcs-native-select-placeholder-font-style - Font style of the placeholder\n *\n * @cssprop --wcs-native-select-option-color - Text color of the options\n * @cssprop --wcs-native-select-option-font-style - Font style of the options\n * @cssprop --wcs-native-select-option-selected-color - Text color of the selected option\n *\n * \n */\n@Component({\n tag: 'wcs-native-select',\n styleUrl: 'native-select.scss',\n shadow: true\n})\nexport class NativeSelect implements ComponentInterface, MutableAriaAttribute {\n /**\n * The `size` property controls the size of the slotted `select` element by adjusting its padding.\n * There are two possible size options:\n * - 'm': medium size\n * - 'l': large size\n *\n * The default value is 'm'.\n */\n @Prop({reflect: true}) size: WcsNativeSelectSize = 'm';\n /**\n * If `true`, the user must fill in a value before submitting a form.\n * It is propagated to the slotted select element\n */\n @Prop({ reflect: true }) required: boolean = false;\n \n @Element() private el!: HTMLWcsNativeSelectElement;\n\n @State() private expanded: boolean = false;\n\n @State() private disabled: boolean;\n private selectElement: HTMLSelectElement;\n\n private observer: MutationObserver;\n private readonly SLOTTED_SELECT_TRACKED_ATTRIBUTES_LIST = ['disabled'];\n\n @Watch('required')\n requiredChanged(newValue: boolean, oldValue: boolean) {\n if(newValue !== oldValue) {\n if(!this.selectElement) return;\n this.selectElement.required = this.required;\n }\n }\n \n componentWillLoad() {\n this.selectElement = this.el.querySelector('select');\n if (!this.selectElement) throw new Error(\"wcs-native-select must be used with a native slotted select, please refer to the documentation.\");\n\n this.onSelectedOptionChange();\n\n /**\n * We use an event listener to apply the default style to the select when user chose an active option\n */\n this.selectElement.addEventListener('change', () => {\n this.onSelectedOptionChange();\n });\n\n this.observer = new MutationObserver(mutations => {\n const hasSpiedAttrMutation = mutations.filter(m => this.SLOTTED_SELECT_TRACKED_ATTRIBUTES_LIST.includes(m.attributeName)).length > 0;\n if (hasSpiedAttrMutation) {\n this.updateHostAttributeWithSlottedSelect();\n }\n\n // A workaround to detect when the select is reset by using a class change on the select element. For example\n // angular add/remove ng-pristine and ng-dirty classes on the form controls when the form is reset.\n // Not the best solution but it works since we cannot detect the reset event on the native select element.\n if (mutations.filter(m => m.attributeName === 'class').length > 0) {\n this._updateStyles();\n }\n });\n this.updateHostAttributeWithSlottedSelect();\n this.observer.observe(this.selectElement, {attributes: true});\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n if(!this.selectElement) return;\n this.selectElement.setAttribute(attr, value);\n }\n\n private onSelectedOptionChange(): void {\n this._updateStyles();\n }\n\n private _updateStyles() {\n if (this.isPlaceholderOptionSelected()) {\n this.applyPlaceholderStylesOnNativeSlottedSelectElement();\n } else {\n this.applySelectedOptionStylesOnNativeSlottedSelectElement();\n }\n }\n\n private isPlaceholderOptionSelected() {\n return Array.from(this.selectElement.options).filter(o => o.selected)[0]?.disabled == true;\n }\n\n /**\n * This method should always unset all styles modified by the `applyPlaceholderStylesOnNativeSlottedSelectElement()`\n * @private\n */\n private applySelectedOptionStylesOnNativeSlottedSelectElement() {\n this.selectElement.style.color = \"var(--wcs-native-select-value-color)\";\n this.selectElement.style.fontStyle = \"var(--wcs-native-select-value-font-style)\";\n this.selectElement.style.fontWeight = \"var(--wcs-native-select-value-font-weight)\";\n Array.from(this.selectElement.options).forEach(option => {\n option.style.fontStyle = \"var(--wcs-native-select-option-font-style)\";\n if (!option.disabled) {\n option.style.color = \"var(--wcs-native-select-option-color)\";\n }\n });\n }\n\n /**\n * This method apply styles when the placeholder is shown.\n *\n * We use javascript because we cannot achieve that behaviour in pure css when the native select is not required\n * @private\n */\n private applyPlaceholderStylesOnNativeSlottedSelectElement() {\n this.selectElement.style.color = \"var(--wcs-native-select-placeholder-color)\";\n this.selectElement.style.fontWeight = \"var(--wcs-native-select-placeholder-font-weight)\";\n this.selectElement.style.fontStyle = \"var(--wcs-native-select-placeholder-font-style)\";\n Array.from(this.selectElement.options).forEach(option => {\n option.style.fontStyle = \"var(--wcs-native-select-option-font-style)\";\n if (!option.disabled) {\n option.style.color = \"var(--wcs-native-select-option-color)\";\n }\n });\n }\n\n private updateHostAttributeWithSlottedSelect() {\n this.disabled = this.selectElement?.hasAttribute('disabled');\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n this.selectElement?.removeEventListener(\"change\", () => {\n this.onSelectedOptionChange();\n });\n }\n\n /**\n * Use this method to force the component to update its styles. It can be useful when the select is reset (with a placeholder).\n */\n @Method()\n async updateStyles() {\n // Note : we try to automatically detect if the select is reset with the onreset event and with a mutation\n // observer on the select element. But it seems that the onreset event is not fired when the select is reset.\n // and the mutation observer is not fired when the select is reset with the reset() method on the form.\n // So we have to let the user call this method manually when he reset the select.\n this._updateStyles();\n }\n\n render() {\n return (\n <Host class={`${this.expanded ? 'expanded' : ''}`} data-disabled={this.disabled} data-size={this.size}>\n <div class=\"select-wrapper\">\n <slot></slot>\n <div class=\"arrow-container\">\n <SelectArrow up={this.expanded}></SelectArrow>\n </div>\n </div>\n </Host>\n );\n }\n}\n"]}
@@ -11,6 +11,8 @@ nav {
11
11
  flex-direction: column;
12
12
  width: var(--wcs-nav-width-desktop);
13
13
  height: 100%;
14
+ overflow: auto;
15
+ scrollbar-width: thin;
14
16
  }
15
17
  nav div[role=list] {
16
18
  list-style-type: none;
@@ -21,7 +21,7 @@ export class Nav {
21
21
  setOrRemoveAttribute(this.nativeNav, attr, value);
22
22
  }
23
23
  render() {
24
- return (h("nav", Object.assign({ key: '010b8847c02ed7e6c9f3112f486279709f75fbb0', role: "navigation", class: "wcs-nav-container", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), h("div", { key: '35117f4736ebeedc66db2c883eeb6a9b570fcc25', role: "list" }, h("slot", { key: 'a08aa2b168519ce86b6bfbabe501f38bfc55c62b' }), h("slot", { key: '0f2f00d3bf339128d64cb2b61eb7029d3a0ce035', name: "bottom" }))));
24
+ return (h("nav", Object.assign({ key: '3461a64de9b036b1a970e58a26a70f70772491c8', role: "navigation", class: "wcs-nav-container", ref: (el) => (this.nativeNav = el) }, this.inheritedAttributes), h("div", { key: 'aa68166f70a54e44e78c0fe8a61c224bed4bcb3e', role: "list" }, h("slot", { key: '9e6315dafb2038e8577b2402dae1a646587dbb5f' }), h("slot", { key: '8dcddd80f189c8ade3ceb24cd5e36b8d03083a80', name: "bottom" }))));
25
25
  }
26
26
  static get is() { return "wcs-nav"; }
27
27
  static get encapsulation() { return "shadow"; }
@@ -45,7 +45,7 @@ export class NavItem {
45
45
  }
46
46
  }
47
47
  render() {
48
- return (h(Host, { key: '8a21ba03aacff1aa94ae552a0f76f0e551df6e67', role: "listitem" }, h("slot", { key: '75d250a220a1eaba9cb8dd68adbe267379afb915' })));
48
+ return (h(Host, { key: '79abea50c0964fd39358ecf7ed23030f9096b1fd', role: "listitem" }, h("slot", { key: 'dad7099b9fb08309052b2c35f2bc3a97c40b3ecb' })));
49
49
  }
50
50
  static get is() { return "wcs-nav-item"; }
51
51
  static get originalStyleUrls() {
@@ -1,7 +1,7 @@
1
1
  :host {
2
2
  --wcs-progress-bar-border-radius: var(--wcs-semantic-border-radius-full);
3
3
  --wcs-progress-bar-border-radius-small: var(--wcs-semantic-border-radius-small);
4
- --wcs-progress-bar-animation-duration: var(--wcs-semantic-motion-duration-feedback-slower);
4
+ --wcs-internal-progress-bar-animation-duration: var(--wcs-progress-bar-animation-duration, var(--wcs-semantic-motion-duration-feedback-slower)); /* internal used by horizontal-stepper */
5
5
  --wcs-progress-bar-height-m: calc(var(--wcs-semantic-size-m) / 4);
6
6
  --wcs-progress-bar-height-s: calc(var(--wcs-semantic-size-s) / 6);
7
7
  --wcs-progress-bar-background-color: transparent;
@@ -59,7 +59,7 @@
59
59
  text-align: center;
60
60
  background-color: var(--wcs-progress-bar-indicator-color);
61
61
  border-radius: var(--wcs-progress-bar-border-radius);
62
- transition: width var(--wcs-progress-bar-animation-duration) ease-out;
62
+ transition: width var(--wcs-internal-progress-bar-animation-duration) ease-out;
63
63
  }
64
64
 
65
65
  .progress-label {
@@ -54,8 +54,8 @@ export class ProgressBar {
54
54
  const style = {
55
55
  width: this.value + '%'
56
56
  };
57
- return (h("div", Object.assign({ key: '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), h("div", { key: '8b54ef388bcd4e2bff826a18374c4732f7d0e384', class: "progress-bar", style: style }, this.showLabel &&
58
- h("span", { key: 'f50f5879441f22db9552f6bbaaca3ede6f23a678', class: "progress-label" }, this.value, h("sup", { key: 'b10471901b5d3efc0ae95d3a1de822ead1720b87' }, "%")))));
57
+ return (h("div", Object.assign({ key: '5fe4671aeaaf799d336e38c4bd49f021b4fbb27b', class: this.rootClasses(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("div", { key: '9278d7110c3fed850ddcf1a06ff29a60fb4ebbd8', class: "progress-bar", style: style }, this.showLabel &&
58
+ h("span", { key: 'ac5758b7b685fc08ecf4592b7194666d751c4b87', class: "progress-label" }, this.value, h("sup", { key: '313cec9fb8df686b3affb9a9002e1c6055249f0b' }, "%")))));
59
59
  }
60
60
  rootClasses() {
61
61
  let classes = 'progress';
@@ -123,7 +123,7 @@ export class ProgressBar {
123
123
  "text": "Whether it displays a label indicating the percentage of progress above the bar."
124
124
  },
125
125
  "attribute": "show-label",
126
- "reflect": false,
126
+ "reflect": true,
127
127
  "defaultValue": "false"
128
128
  },
129
129
  "value": {
@@ -1 +1 @@
1
- {"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../../src/components/progress-bar/progress-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIrG,MAAM,iCAAiC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,MAAM,OAAO,WAAW;;QAIZ,wBAAmB,GAAyB,EAAE,CAAC;oBAOX,GAAG;yBAKlB,KAAK;qBAMV,CAAC;;IAEzB,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAiC,CAAC,CACnE,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACF,MAAM,KAAK,GAAG;YACV,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG;SAC1B,CAAC;QAEF,OAAO,CACH,0EAAK,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EACzB,IAAI,EAAC,aAAa,mBACJ,GAAG,mBACH,KAAK,mBACJ,IAAI,CAAC,KAAK,oBACT,IAAI,CAAC,KAAK,GAAG,GAAG,EAChC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,IACnC,IAAI,CAAC,mBAAmB;YAC7B,4DAAK,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,KAAK,IACjC,IAAI,CAAC,SAAS;gBACX,6DAAM,KAAK,EAAC,gBAAgB;oBACrC,IAAI,CAAC,KAAK;oBAAC,kEAAY,CACnB,CAEG,CACJ,CACT,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,YAAY,CAAC;QAC5C,mEAAmE;QACnE,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,aAAa,CAAC;QAC/C,OAAO,OAAO,CAAC;IACnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, ComponentInterface, Element, h, Method, Prop } from '@stencil/core';\nimport { WcsSize } from \"../../shared-types\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n\nconst PROGRESS_BAR_ARIA_INHERITED_ATTRS = ['title'];\n\n/**\n * The progress-bar component is a horizontal bar that indicates the current completion of a task.\n *\n * ## Accessibility guidelines 💡\n * > Aria attributes and how to display the progress-bar depend on the use case in your application :\n * >\n * > - **Case 1 : decorative**\n * > If the progress-bar is used as a decoration _(if removed, the user doesn't lose any relevant information)_ or in the\n * > context of another component _(such as progress-bar in a card, stepper, ...)_ => **you don't need to show the label nor add an aria-label**.\n * >\n * > - **Case 2 : informative**\n * > If the progress-bar is used to convey important information _(e.g., form completion status, dashboard KPI)_, you need to :\n * > - **Provide a visible label** that describes the purpose of the progress-bar.\n * > - **Set the `showLabel` property to `true`** to show the percentage above the progress-bar.\n * > - Optionally, use aria-label to provide an accessible name if a visible label is not present.\n *\n * @cssprop --wcs-progress-bar-border-radius - Border radius\n * @cssprop --wcs-progress-bar-border-radius-small - Border radius for size small\n * @cssprop --wcs-progress-bar-animation-duration - Animation duration\n * \n * @cssprop --wcs-progress-bar-height-m - Height for size medium\n * @cssprop --wcs-progress-bar-height-s - Height for size small\n * @cssprop --wcs-progress-bar-background-color - Background color of the progress bar\n * @cssprop --wcs-progress-bar-rail-color - Rail color (dashed line)\n * @cssprop --wcs-progress-bar-rail-spacing - Space between the rail dashes\n * @cssprop --wcs-progress-bar-gap-s - Gap between the progress bar and the label for size small\n * @cssprop --wcs-progress-bar-gap-m - Gap between the progress bar and the label for size medium\n * @cssprop --wcs-progress-bar-indicator-color - Color of the progress bar indicator (bar on top of the rail)\n * @cssprop --wcs-progress-bar-label-color - Color of the label\n * @cssprop --wcs-progress-bar-label-font-size-s - Font size of the label for size small\n * @cssprop --wcs-progress-bar-label-font-size-m - Font size of the label for size medium\n * @cssprop --wcs-progress-bar-label-font-weight - Font weight of the label\n * @cssprop --wcs-progress-bar-label-percentage-font-size-s - Font size of the percentage for size small\n * @cssprop --wcs-progress-bar-label-percentage-font-size-m - Font size of the percentage for size medium\n * @cssprop --wcs-progress-bar-label-top-space - Space on top of the progress bar when label is displayed\n */\n@Component({\n tag: 'wcs-progress-bar',\n styleUrl: 'progress-bar.scss',\n shadow: true\n})\nexport class ProgressBar implements ComponentInterface, MutableAriaAttribute {\n\n @Element() private el!: HTMLWcsProgressBarElement;\n private nativeProgress!: HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n\n /**\n * Specify the size of the progress bar.\n * m = default, s = smaller\n */\n @Prop() size: Extract<WcsSize, 'm' | 's'> = 'm';\n\n /**\n * Whether it displays a label indicating the percentage of progress above the bar.\n */\n @Prop() showLabel: boolean = false;\n\n /**\n * The actual value of the progress.\n * Ranging from 0 to 100.\n */\n @Prop() value: number = 0;\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, PROGRESS_BAR_ARIA_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeProgress, attr, value);\n }\n\n render() {\n const style = {\n width: this.value + '%'\n };\n\n return (\n <div class={this.rootClasses()}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={this.value}\n aria-valuetext={this.value + '%'}\n ref={(el) => (this.nativeProgress = el)}\n {...this.inheritedAttributes}>\n <div class=\"progress-bar\" style={style}>\n {this.showLabel &&\n <span class=\"progress-label\">\n {this.value}<sup>%</sup>\n </span>\n }\n </div>\n </div>\n );\n }\n\n rootClasses(): string {\n let classes = 'progress';\n if (this.showLabel) classes += ' has-label';\n // FIXME: Temporary fix so the label doesn't appear before the bar.\n if (this.value === 0) classes += ' value-zero';\n return classes;\n }\n}\n"]}
1
+ {"version":3,"file":"progress-bar.js","sourceRoot":"","sources":["../../../src/components/progress-bar/progress-bar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAExF,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAIrG,MAAM,iCAAiC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAMH,MAAM,OAAO,WAAW;;QAIZ,wBAAmB,GAAyB,EAAE,CAAC;oBAOX,GAAG;yBAKD,KAAK;qBAM3B,CAAC;;IAEzB,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,iCAAiC,CAAC,CACnE,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACF,MAAM,KAAK,GAAG;YACV,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,GAAG;SAC1B,CAAC;QAEF,OAAO,CACH,0EAAK,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE,EACzB,IAAI,EAAC,aAAa,mBACJ,GAAG,mBACH,KAAK,mBACJ,IAAI,CAAC,KAAK,oBACT,IAAI,CAAC,KAAK,GAAG,GAAG,EAChC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,IACnC,IAAI,CAAC,mBAAmB;YAC7B,4DAAK,KAAK,EAAC,cAAc,EAAC,KAAK,EAAE,KAAK,IACjC,IAAI,CAAC,SAAS;gBACX,6DAAM,KAAK,EAAC,gBAAgB;oBACrC,IAAI,CAAC,KAAK;oBAAC,kEAAY,CACnB,CAEG,CACJ,CACT,CAAC;IACN,CAAC;IAED,WAAW;QACP,IAAI,OAAO,GAAG,UAAU,CAAC;QACzB,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,YAAY,CAAC;QAC5C,mEAAmE;QACnE,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC;YAAE,OAAO,IAAI,aAAa,CAAC;QAC/C,OAAO,OAAO,CAAC;IACnB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, ComponentInterface, Element, h, Method, Prop } from '@stencil/core';\nimport { WcsSize } from \"../../shared-types\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\n\nconst PROGRESS_BAR_ARIA_INHERITED_ATTRS = ['title'];\n\n/**\n * The progress-bar component is a horizontal bar that indicates the current completion of a task.\n *\n * ## Accessibility guidelines 💡\n * > Aria attributes and how to display the progress-bar depend on the use case in your application :\n * >\n * > - **Case 1 : decorative**\n * > If the progress-bar is used as a decoration _(if removed, the user doesn't lose any relevant information)_ or in the\n * > context of another component _(such as progress-bar in a card, stepper, ...)_ => **you don't need to show the label nor add an aria-label**.\n * >\n * > - **Case 2 : informative**\n * > If the progress-bar is used to convey important information _(e.g., form completion status, dashboard KPI)_, you need to :\n * > - **Provide a visible label** that describes the purpose of the progress-bar.\n * > - **Set the `showLabel` property to `true`** to show the percentage above the progress-bar.\n * > - Optionally, use aria-label to provide an accessible name if a visible label is not present.\n *\n * @cssprop --wcs-progress-bar-border-radius - Border radius\n * @cssprop --wcs-progress-bar-border-radius-small - Border radius for size small\n * @cssprop --wcs-progress-bar-animation-duration - Animation duration\n * \n * @cssprop --wcs-progress-bar-height-m - Height for size medium\n * @cssprop --wcs-progress-bar-height-s - Height for size small\n * @cssprop --wcs-progress-bar-background-color - Background color of the progress bar\n * @cssprop --wcs-progress-bar-rail-color - Rail color (dashed line)\n * @cssprop --wcs-progress-bar-rail-spacing - Space between the rail dashes\n * @cssprop --wcs-progress-bar-gap-s - Gap between the progress bar and the label for size small\n * @cssprop --wcs-progress-bar-gap-m - Gap between the progress bar and the label for size medium\n * @cssprop --wcs-progress-bar-indicator-color - Color of the progress bar indicator (bar on top of the rail)\n * @cssprop --wcs-progress-bar-label-color - Color of the label\n * @cssprop --wcs-progress-bar-label-font-size-s - Font size of the label for size small\n * @cssprop --wcs-progress-bar-label-font-size-m - Font size of the label for size medium\n * @cssprop --wcs-progress-bar-label-font-weight - Font weight of the label\n * @cssprop --wcs-progress-bar-label-percentage-font-size-s - Font size of the percentage for size small\n * @cssprop --wcs-progress-bar-label-percentage-font-size-m - Font size of the percentage for size medium\n * @cssprop --wcs-progress-bar-label-top-space - Space on top of the progress bar when label is displayed\n */\n@Component({\n tag: 'wcs-progress-bar',\n styleUrl: 'progress-bar.scss',\n shadow: true\n})\nexport class ProgressBar implements ComponentInterface, MutableAriaAttribute {\n\n @Element() private el!: HTMLWcsProgressBarElement;\n private nativeProgress!: HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n\n /**\n * Specify the size of the progress bar.\n * m = default, s = smaller\n */\n @Prop() size: Extract<WcsSize, 'm' | 's'> = 'm';\n\n /**\n * Whether it displays a label indicating the percentage of progress above the bar.\n */\n @Prop({ reflect: true }) showLabel: boolean = false;\n\n /**\n * The actual value of the progress.\n * Ranging from 0 to 100.\n */\n @Prop() value: number = 0;\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, PROGRESS_BAR_ARIA_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeProgress, attr, value);\n }\n\n render() {\n const style = {\n width: this.value + '%'\n };\n\n return (\n <div class={this.rootClasses()}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={this.value}\n aria-valuetext={this.value + '%'}\n ref={(el) => (this.nativeProgress = el)}\n {...this.inheritedAttributes}>\n <div class=\"progress-bar\" style={style}>\n {this.showLabel &&\n <span class=\"progress-label\">\n {this.value}<sup>%</sup>\n </span>\n }\n </div>\n </div>\n );\n }\n\n rootClasses(): string {\n let classes = 'progress';\n if (this.showLabel) classes += ' has-label';\n // FIXME: Temporary fix so the label doesn't appear before the bar.\n if (this.value === 0) classes += ' value-zero';\n return classes;\n }\n}\n"]}
@@ -45,8 +45,8 @@ export class ProgressRadial {
45
45
  }
46
46
  render() {
47
47
  const { backgroundImageSize, halfSize } = { backgroundImageSize: this.backgroundImageSize, halfSize: this.backgroundImageSize / 2 };
48
- return (h("div", Object.assign({ key: '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), h("svg", { key: 'd8f0282d2b7332c29ed10936ca2cfc5c00c03e3d', "data-role": "figure", class: "circle-rail", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}` }, h("circle", { key: '4534f4ac6749d59a8a1bd4189f3f998bc0aae416', cx: halfSize, cy: halfSize, r: 54, "stroke-width": 12 })), h("svg", { key: 'daf5358b0148443292ce3ac84d55d849e48033bc', class: "progress-circle-figure", "data-role": "figure", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}`, style: this.getSvgStyle() }, h("circle", { key: '3df0779e14354a9084b5f9132660ac2e1d446028', class: "progress-circle-value", cx: halfSize, cy: halfSize, r: "54", "stroke-width": "12" })), this.showLabel &&
49
- h("div", { key: '28212403f92e2a2f1b7515847e8e7cab95851413', class: "progress-circle-label", "data-role": "label" }, h("span", { key: '93b4d94b47b8289f113d717392824d3bca9f9ec9' }, h("span", { key: 'e7093e3a2d3accdbc81ced41d8a02afa167483f6', "data-role": "labelvalue" }, this.value), h("sup", { key: 'f9e66ca420de366cab09cc835d39e849030c4c8b' }, "%")))));
48
+ return (h("div", Object.assign({ key: '7da6ed9d04399e5ff473d112d6a111696c9b14bc', class: "progress-circle", "data-component": "radial-progress", style: this.getSize(), role: "progressbar", "aria-valuemin": "0", "aria-valuemax": "100", "aria-valuenow": this.value, "aria-valuetext": this.value + '%', ref: (el) => (this.nativeProgress = el) }, this.inheritedAttributes), h("svg", { key: '226ed7d14005563adc1e55e7ba28c3bb49ed1d95', "data-role": "figure", class: "circle-rail", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}` }, h("circle", { key: 'a50b905a8c36416ce3ede895affbda05a30b1c1b', cx: halfSize, cy: halfSize, r: 54, "stroke-width": 12 })), h("svg", { key: '7d58cf8a614acdff769c769ecca919b86792cd0d', class: "progress-circle-figure", "data-role": "figure", viewBox: `0 0 ${backgroundImageSize} ${backgroundImageSize}`, style: this.getSvgStyle() }, h("circle", { key: '11f22fd6a506b226a0e8a450163ac5c3a0fcbe44', class: "progress-circle-value", cx: halfSize, cy: halfSize, r: "54", "stroke-width": "12" })), this.showLabel &&
49
+ h("div", { key: 'a87680ab5a59f4e34072dde8a2f7d15ef4b671e9', class: "progress-circle-label", "data-role": "label" }, h("span", { key: 'fe65c818b10f58562d65f7f330a21a794f8b876f' }, h("span", { key: '337459684703272ec7817fe64226e2df10341e9c', "data-role": "labelvalue" }, this.value), h("sup", { key: '45f173f53dcfa8e85ea0986f28e8848f75d24434' }, "%")))));
50
50
  }
51
51
  getSvgStyle() {
52
52
  return {
@@ -107,7 +107,7 @@ export class ProgressRadial {
107
107
  "text": "Whether the component should display the % label inside"
108
108
  },
109
109
  "attribute": "show-label",
110
- "reflect": false,
110
+ "reflect": true,
111
111
  "defaultValue": "false"
112
112
  },
113
113
  "value": {
@@ -1 +1 @@
1
- {"version":3,"file":"progress-radial.js","sourceRoot":"","sources":["../../../src/components/progress-radial/progress-radial.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGrG,MAAM,oCAAoC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,MAAM,OAAO,cAAc;;QAIf,wBAAmB,GAAyB,EAAE,CAAC;QAEvD,wHAAwH;QAChH,wBAAmB,GAAW,GAAG,CAAC;oBAGnB,GAAG;yBAEG,KAAK;qBAEV,CAAC;;IAEzB,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,oCAAoC,CAAC,CACtE,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACF,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACpI,OAAO,CACH,0EAAK,KAAK,EAAC,iBAAiB,oBACR,iBAAiB,EAChC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EACrB,IAAI,EAAC,aAAa,mBACJ,GAAG,mBACH,KAAK,mBACJ,IAAI,CAAC,KAAK,oBACT,IAAI,CAAC,KAAK,GAAG,GAAG,EAChC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,IACnC,IAAI,CAAC,mBAAmB;YAC7B,yEAAe,QAAQ,EAAC,KAAK,EAAC,aAAa,EACtC,OAAO,EAAE,OAAO,mBAAmB,IAAI,mBAAmB,EAAE;gBAC7D,+DAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,kBAAgB,EAAE,GAAG,CAC5D;YACN,4DAAK,KAAK,EAAC,wBAAwB,eACrB,QAAQ,EAClB,OAAO,EAAE,OAAO,mBAAmB,IAAI,mBAAmB,EAAE,EAC5D,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;gBACrB,+DAAQ,KAAK,EAAC,uBAAuB,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAC,IAAI,kBAAc,IAAI,GAAG,CAC/F;YACL,IAAI,CAAC,SAAS;gBACX,4DAAK,KAAK,EAAC,uBAAuB,eAAW,OAAO;oBAChD;wBACI,0EAAgB,YAAY,IAAE,IAAI,CAAC,KAAK,CAAQ;wBAAA,kEAAY,CACzD,CACL,CAER,CACT,CAAC;IACN,CAAC;IAED,WAAW;QACP,OAAO;YACH,kBAAkB,EAAE,SAAS;YAC7B,mBAAmB,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE;SACnE,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO;YACH,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC3B,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, Prop, ComponentInterface, h, Element, Method } from '@stencil/core';\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst PROGRESS_RADIAL_ARIA_INHERITED_ATTRS = ['title'];\n\n/**\n * The progress-radial component is a circular progress bar that indicates the current completion of a task. \n *\n * ## Accessibility guidelines 💡\n * > Aria attributes and how to display the progress-radial depend on the use case in your application :\n * >\n * > - **Case 1 : decorative**\n * > If the progress-radial is used as a decoration _(if removed, the user doesn't lose any relevant information)_ or in the\n * > context of another component _(such as progress-radial in a card)_ => **you don't need to show the label nor add an aria-label**.\n * >\n * > - **Case 2 : informative**\n * > If the progress-radial is used to convey important information _(e.g., form completion status, dashboard KPI)_, you need to :\n * > - **Provide a visible label** that describes the purpose of the progress-radial.\n * > - **Set the `showLabel` property to `true`** to show the percentage inside the progress-radial.\n * > - Optionally, use aria-label to provide an accessible name if a visible label is not present.\n *\n * \n * @cssprop --wcs-progress-radial-rail-width - The width of the line that represents the rail of the progress radial\n * @cssprop --wcs-progress-radial-rail-spacing - The space between each rail of the progress radial\n * @cssprop --wcs-progress-radial-rail-color - The color of the rail of the progress radial\n * @cssprop --wcs-progress-radial-value-background-color - The background color of the bar on top of the rail \n * @cssprop --wcs-progress-radial-label-color - The color of the label inside the progress radial\n * @cssprop --wcs-progress-radial-label-font-size - The font size of the label inside the progress radial\n * @cssprop --wcs-progress-radial-label-font-weight - The font weight of the label inside the progress radial\n * @cssprop --wcs-progress-radial-label-percentage-font-size - The font size of the percentage inside the progress radial\n * @cssprop --wcs-progress-radial-animation-duration - The duration of the animation of the progress radial\n */\n@Component({\n tag: 'wcs-progress-radial',\n styleUrl: 'progress-radial.scss',\n shadow: true\n})\nexport class ProgressRadial implements ComponentInterface, MutableAriaAttribute {\n \n @Element() private el!: HTMLWcsProgressRadialElement;\n private nativeProgress!: HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /** The initial background image size (120x120) as specified in the background-image css property of .progress-circle */\n private backgroundImageSize: number = 120;\n \n /** The size of the progress radial (in px) */\n @Prop() size: number = 120;\n /** Whether the component should display the % label inside */\n @Prop() showLabel: boolean = false;\n /** The value of the progress radial. Prefer values between 0 and 100. */\n @Prop() value: number = 0;\n \n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, PROGRESS_RADIAL_ARIA_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeProgress, attr, value);\n }\n\n render() {\n const { backgroundImageSize, halfSize } = { backgroundImageSize: this.backgroundImageSize, halfSize: this.backgroundImageSize / 2 };\n return (\n <div class=\"progress-circle\"\n data-component=\"radial-progress\"\n style={this.getSize()}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={this.value}\n aria-valuetext={this.value + '%'}\n ref={(el) => (this.nativeProgress = el)}\n {...this.inheritedAttributes}>\n <svg data-role=\"figure\" class=\"circle-rail\"\n viewBox={`0 0 ${backgroundImageSize} ${backgroundImageSize}`}>\n <circle cx={halfSize} cy={halfSize} r={54} stroke-width={12}/>\n </svg>\n <svg class=\"progress-circle-figure\"\n data-role=\"figure\"\n viewBox={`0 0 ${backgroundImageSize} ${backgroundImageSize}`}\n style={this.getSvgStyle()}>\n <circle class=\"progress-circle-value\" cx={halfSize} cy={halfSize} r=\"54\" stroke-width=\"12\" />\n </svg>\n {this.showLabel &&\n <div class=\"progress-circle-label\" data-role=\"label\">\n <span>\n <span data-role=\"labelvalue\">{this.value}</span><sup>%</sup>\n </span>\n </div>\n }\n </div>\n );\n }\n\n getSvgStyle() {\n return {\n 'stroke-dasharray': '339.292',\n 'stroke-dashoffset': `${339.292 - (this.value / 100) * 339.292}`,\n };\n }\n \n getSize() {\n return {\n 'width': `${(this.size)}px`,\n 'height': `${(this.size)}px`,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"progress-radial.js","sourceRoot":"","sources":["../../../src/components/progress-radial/progress-radial.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGrG,MAAM,oCAAoC,GAAG,CAAC,OAAO,CAAC,CAAC;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAMH,MAAM,OAAO,cAAc;;QAIf,wBAAmB,GAAyB,EAAE,CAAC;QAEvD,wHAAwH;QAChH,wBAAmB,GAAW,GAAG,CAAC;oBAGnB,GAAG;yBAEoB,KAAK;qBAE3B,CAAC;;IAEzB,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,oCAAoC,CAAC,CACtE,CAAC;IACN,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM;QACF,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,EAAE,mBAAmB,EAAE,IAAI,CAAC,mBAAmB,EAAE,QAAQ,EAAE,IAAI,CAAC,mBAAmB,GAAG,CAAC,EAAE,CAAC;QACpI,OAAO,CACH,0EAAK,KAAK,EAAC,iBAAiB,oBACR,iBAAiB,EAChC,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,EACrB,IAAI,EAAC,aAAa,mBACJ,GAAG,mBACH,KAAK,mBACJ,IAAI,CAAC,KAAK,oBACT,IAAI,CAAC,KAAK,GAAG,GAAG,EAChC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC,IACnC,IAAI,CAAC,mBAAmB;YAC7B,yEAAe,QAAQ,EAAC,KAAK,EAAC,aAAa,EACtC,OAAO,EAAE,OAAO,mBAAmB,IAAI,mBAAmB,EAAE;gBAC7D,+DAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,kBAAgB,EAAE,GAAG,CAC5D;YACN,4DAAK,KAAK,EAAC,wBAAwB,eACrB,QAAQ,EAClB,OAAO,EAAE,OAAO,mBAAmB,IAAI,mBAAmB,EAAE,EAC5D,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;gBACrB,+DAAQ,KAAK,EAAC,uBAAuB,EAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAC,IAAI,kBAAc,IAAI,GAAG,CAC/F;YACL,IAAI,CAAC,SAAS;gBACX,4DAAK,KAAK,EAAC,uBAAuB,eAAW,OAAO;oBAChD;wBACI,0EAAgB,YAAY,IAAE,IAAI,CAAC,KAAK,CAAQ;wBAAA,kEAAY,CACzD,CACL,CAER,CACT,CAAC;IACN,CAAC;IAED,WAAW;QACP,OAAO;YACH,kBAAkB,EAAE,SAAS;YAC7B,mBAAmB,EAAE,GAAG,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,OAAO,EAAE;SACnE,CAAC;IACN,CAAC;IAED,OAAO;QACH,OAAO;YACH,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YAC3B,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;SAC/B,CAAC;IACN,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACJ","sourcesContent":["import { Component, Prop, ComponentInterface, h, Element, Method } from '@stencil/core';\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst PROGRESS_RADIAL_ARIA_INHERITED_ATTRS = ['title'];\n\n/**\n * The progress-radial component is a circular progress bar that indicates the current completion of a task. \n *\n * ## Accessibility guidelines 💡\n * > Aria attributes and how to display the progress-radial depend on the use case in your application :\n * >\n * > - **Case 1 : decorative**\n * > If the progress-radial is used as a decoration _(if removed, the user doesn't lose any relevant information)_ or in the\n * > context of another component _(such as progress-radial in a card)_ => **you don't need to show the label nor add an aria-label**.\n * >\n * > - **Case 2 : informative**\n * > If the progress-radial is used to convey important information _(e.g., form completion status, dashboard KPI)_, you need to :\n * > - **Provide a visible label** that describes the purpose of the progress-radial.\n * > - **Set the `showLabel` property to `true`** to show the percentage inside the progress-radial.\n * > - Optionally, use aria-label to provide an accessible name if a visible label is not present.\n *\n * \n * @cssprop --wcs-progress-radial-rail-width - The width of the line that represents the rail of the progress radial\n * @cssprop --wcs-progress-radial-rail-spacing - The space between each rail of the progress radial\n * @cssprop --wcs-progress-radial-rail-color - The color of the rail of the progress radial\n * @cssprop --wcs-progress-radial-value-background-color - The background color of the bar on top of the rail \n * @cssprop --wcs-progress-radial-label-color - The color of the label inside the progress radial\n * @cssprop --wcs-progress-radial-label-font-size - The font size of the label inside the progress radial\n * @cssprop --wcs-progress-radial-label-font-weight - The font weight of the label inside the progress radial\n * @cssprop --wcs-progress-radial-label-percentage-font-size - The font size of the percentage inside the progress radial\n * @cssprop --wcs-progress-radial-animation-duration - The duration of the animation of the progress radial\n */\n@Component({\n tag: 'wcs-progress-radial',\n styleUrl: 'progress-radial.scss',\n shadow: true\n})\nexport class ProgressRadial implements ComponentInterface, MutableAriaAttribute {\n \n @Element() private el!: HTMLWcsProgressRadialElement;\n private nativeProgress!: HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /** The initial background image size (120x120) as specified in the background-image css property of .progress-circle */\n private backgroundImageSize: number = 120;\n \n /** The size of the progress radial (in px) */\n @Prop() size: number = 120;\n /** Whether the component should display the % label inside */\n @Prop({ reflect: true }) showLabel: boolean = false;\n /** The value of the progress radial. Prefer values between 0 and 100. */\n @Prop() value: number = 0;\n \n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, PROGRESS_RADIAL_ARIA_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeProgress, attr, value);\n }\n\n render() {\n const { backgroundImageSize, halfSize } = { backgroundImageSize: this.backgroundImageSize, halfSize: this.backgroundImageSize / 2 };\n return (\n <div class=\"progress-circle\"\n data-component=\"radial-progress\"\n style={this.getSize()}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={this.value}\n aria-valuetext={this.value + '%'}\n ref={(el) => (this.nativeProgress = el)}\n {...this.inheritedAttributes}>\n <svg data-role=\"figure\" class=\"circle-rail\"\n viewBox={`0 0 ${backgroundImageSize} ${backgroundImageSize}`}>\n <circle cx={halfSize} cy={halfSize} r={54} stroke-width={12}/>\n </svg>\n <svg class=\"progress-circle-figure\"\n data-role=\"figure\"\n viewBox={`0 0 ${backgroundImageSize} ${backgroundImageSize}`}\n style={this.getSvgStyle()}>\n <circle class=\"progress-circle-value\" cx={halfSize} cy={halfSize} r=\"54\" stroke-width=\"12\" />\n </svg>\n {this.showLabel &&\n <div class=\"progress-circle-label\" data-role=\"label\">\n <span>\n <span data-role=\"labelvalue\">{this.value}</span><sup>%</sup>\n </span>\n </div>\n }\n </div>\n );\n }\n\n getSvgStyle() {\n return {\n 'stroke-dasharray': '339.292',\n 'stroke-dashoffset': `${339.292 - (this.value / 100) * 339.292}`,\n };\n }\n \n getSize() {\n return {\n 'width': `${(this.size)}px`,\n 'height': `${(this.size)}px`,\n };\n }\n}\n"]}
@@ -131,7 +131,7 @@ export class Radio {
131
131
  });
132
132
  }
133
133
  render() {
134
- return (h(Host, { key: '07ab36a8de3f5503b21792d29fd384a9412f9c35', slot: "option", tabIndex: this.disabled ? -1 : this.radioTabIndex, class: this.checked ? 'checked' : '' }, 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)), h("label", { key: '709e74930fd42435b6ad2ad12e1ab0b3653572d4', htmlFor: `${this.inputId}` }, this.label)));
134
+ return (h(Host, { key: 'b753f4673fccbd2f0d7e1636be135da90e1850ef', slot: "option", tabIndex: this.disabled ? -1 : this.radioTabIndex, class: this.checked ? 'checked' : '' }, h("input", Object.assign({ key: '25ac2afe93bdde452db9226feb11587f76a4fd69', id: this.inputId, type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this), "aria-disabled": this.disabled ? 'true' : null, "aria-checked": `${this.checked}`, ref: (el) => (this.nativeRadio = el) }, this.inheritedAttributes)), h("label", { key: '13b771ac257bcf81734cee12a85ffdf143e3c329', htmlFor: `${this.inputId}` }, this.label)));
135
135
  }
136
136
  static get is() { return "wcs-radio"; }
137
137
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State\n} from '@stencil/core';\nimport { RadioChosedEvent } from './radio-interface';\nimport { RadioGroupMode } from '../radio-group/radio-group-interface';\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst RADIO_INHERITED_ATTRS = ['title'];\n\n/**\n * The radio component should always be wrapped in a `wcs-radio-group`.\n * \n * @cssprop --wcs-radio-transition-duration - Duration of the transition\n * \n * @cssprop --wcs-radio-text-color-default - Color of the text when the radio is not selected\n * @cssprop --wcs-radio-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-text-color-selected - Color of the text when the radio is selected\n * @cssprop --wcs-radio-text-font-weight-selected - Font weight of the text when the radio is selected\n * @cssprop --wcs-radio-text-color-disabled - Color of the text when the radio is disabled\n * @cssprop --wcs-radio-text-color-hover - Color of the text when the radio is hovered\n * \n * @cssprop --wcs-radio-outline-color-focus - Color of the outline when the radio is focused\n * \n * @cssprop --wcs-radio-checkmark-size - Size of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-width - Width of the border of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-color-default - Color of the border of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-border-color-selected - Color of the border of the checkmark circle when the radio is selected\n * @cssprop --wcs-radio-checkmark-border-color-hover - Color of the border of the checkmark circle when the radio is hovered\n * @cssprop --wcs-radio-checkmark-border-color-disabled - Color of the border of the checkmark circle when the radio is disabled\n * @cssprop --wcs-radio-checkmark-background-color-default - Background color of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-background-color-selected - Background color of the checkmark circle when the radio's is selected\n * @cssprop --wcs-radio-checkmark-background-color-selected-disabled - Background color of the checkmark circle when the radio is selected and disabled\n * @cssprop --wcs-radio-checkmark-background-color-selected-hover - Background color of the checkmark circle when the radio is selected and hovered\n *\n * @cssprop --wcs-radio-checkmark-outline-distance-with-checkmark-circle - Distance between the checkmark circle and the outline (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-width - Width of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-color - Color of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-border-radius - Border radius of the checkmark circle\n * \n * @cssprop --wcs-radio-gap - Gap between the radio checkmark circle and the label\n * \n * @cssprop --wcs-radio-border-radius - Border radius of the radio (default mode)\n *\n * @cssprop --wcs-radio-option-background-color-default - Background color of the radio option when not selected\n * @cssprop --wcs-radio-option-background-color-hover - Background color of the radio option not selected when hovered\n * @cssprop --wcs-radio-option-background-color-press - Background color of the radio option when pressed\n * @cssprop --wcs-radio-option-background-color-disabled - Background color of the radio option when disabled\n * \n * @cssprop --wcs-radio-option-background-color-selected-default - Background color of the radio option when selected\n * @cssprop --wcs-radio-option-background-color-selected-hover - Background color of the radio option when selected and hovered\n * @cssprop --wcs-radio-option-background-color-selected-press - Background color of the radio option when selected and pressed\n * @cssprop --wcs-radio-option-background-color-selected-disabled - Background color of the radio option when selected and disabled\n * \n * @cssprop --wcs-radio-option-text-color-default - Color of the text when the radio option is not selected\n * @cssprop --wcs-radio-option-text-color-hover - Color of the text when the radio option not selected is hovered\n * @cssprop --wcs-radio-option-text-color-press - Color of the text when the radio option is pressed\n * \n * @cssprop --wcs-radio-option-text-color-selected-default - Color of the text when the radio option is selected\n * @cssprop --wcs-radio-option-text-color-selected-hover - Color of the text when the radio option is selected and hovered\n * @cssprop --wcs-radio-option-text-color-selected-press - Color of the text when the radio option is selected and pressed\n * @cssprop --wcs-radio-option-text-color-disabled - Color of the text when the radio option's is disabled\n * \n * @cssprop --wcs-radio-option-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-option-text-font-weight-selected - Font weight of the text when the radio option is selected\n *\n * @cssprop --wcs-radio-option-border-radius - Border radius of the radio option\n * @cssprop --wcs-radio-option-border-width - Width of the border of the radio option\n * @cssprop --wcs-radio-option-border-color-hover - Color of the border of the radio option when not selected and hovered\n * @cssprop --wcs-radio-option-border-color-press - Color of the border of the radio option when not selected and pressed\n * \n * @cssprop --wcs-radio-option-padding-top - Padding top of the radio option\n * @cssprop --wcs-radio-option-padding-right - Padding right of the radio option\n * @cssprop --wcs-radio-option-padding-bottom - Padding bottom of the radio option\n * @cssprop --wcs-radio-option-padding-left - Padding left of the radio option\n */\n@Component({\n tag: 'wcs-radio',\n styleUrl: 'radio.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class Radio implements ComponentInterface, MutableAriaAttribute {\n private inputId = `wcs-rb-${radioButtonIds++}`;\n @Element() private el!: HTMLWcsRadioElement;\n private nativeRadio!: HTMLInputElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, the radio is selected. \n * @private\n */\n @State() private checked = 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"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../../src/components/radio/radio.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State\n} from '@stencil/core';\nimport { RadioChosedEvent } from './radio-interface';\nimport { RadioGroupMode } from '../radio-group/radio-group-interface';\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst RADIO_INHERITED_ATTRS = ['title'];\n\n/**\n * The radio component should always be wrapped in a `wcs-radio-group`.\n * \n * @cssprop --wcs-radio-transition-duration - Duration of the transition\n * \n * @cssprop --wcs-radio-text-color-default - Color of the text when the radio is not selected\n * @cssprop --wcs-radio-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-text-color-selected - Color of the text when the radio is selected\n * @cssprop --wcs-radio-text-font-weight-selected - Font weight of the text when the radio is selected\n * @cssprop --wcs-radio-text-color-disabled - Color of the text when the radio is disabled\n * @cssprop --wcs-radio-text-color-hover - Color of the text when the radio is hovered\n * \n * @cssprop --wcs-radio-outline-color-focus - Color of the outline when the radio is focused\n * \n * @cssprop --wcs-radio-checkmark-size - Size of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-width - Width of the border of the checkmark circle\n * @cssprop --wcs-radio-checkmark-border-color-default - Color of the border of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-border-color-selected - Color of the border of the checkmark circle when the radio is selected\n * @cssprop --wcs-radio-checkmark-border-color-hover - Color of the border of the checkmark circle when the radio is hovered\n * @cssprop --wcs-radio-checkmark-border-color-disabled - Color of the border of the checkmark circle when the radio is disabled\n * @cssprop --wcs-radio-checkmark-background-color-default - Background color of the checkmark circle when the radio's is not selected\n * @cssprop --wcs-radio-checkmark-background-color-selected - Background color of the checkmark circle when the radio's is selected\n * @cssprop --wcs-radio-checkmark-background-color-selected-disabled - Background color of the checkmark circle when the radio is selected and disabled\n * @cssprop --wcs-radio-checkmark-background-color-selected-hover - Background color of the checkmark circle when the radio is selected and hovered\n *\n * @cssprop --wcs-radio-checkmark-outline-distance-with-checkmark-circle - Distance between the checkmark circle and the outline (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-width - Width of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-outline-color - Color of the outline of the checkmark circle (inside the background)\n * @cssprop --wcs-radio-checkmark-border-radius - Border radius of the checkmark circle\n * \n * @cssprop --wcs-radio-gap - Gap between the radio checkmark circle and the label\n * \n * @cssprop --wcs-radio-border-radius - Border radius of the radio (default mode)\n *\n * @cssprop --wcs-radio-option-background-color-default - Background color of the radio option when not selected\n * @cssprop --wcs-radio-option-background-color-hover - Background color of the radio option not selected when hovered\n * @cssprop --wcs-radio-option-background-color-press - Background color of the radio option when pressed\n * @cssprop --wcs-radio-option-background-color-disabled - Background color of the radio option when disabled\n * \n * @cssprop --wcs-radio-option-background-color-selected-default - Background color of the radio option when selected\n * @cssprop --wcs-radio-option-background-color-selected-hover - Background color of the radio option when selected and hovered\n * @cssprop --wcs-radio-option-background-color-selected-press - Background color of the radio option when selected and pressed\n * @cssprop --wcs-radio-option-background-color-selected-disabled - Background color of the radio option when selected and disabled\n * \n * @cssprop --wcs-radio-option-text-color-default - Color of the text when the radio option is not selected\n * @cssprop --wcs-radio-option-text-color-hover - Color of the text when the radio option not selected is hovered\n * @cssprop --wcs-radio-option-text-color-press - Color of the text when the radio option is pressed\n * \n * @cssprop --wcs-radio-option-text-color-selected-default - Color of the text when the radio option is selected\n * @cssprop --wcs-radio-option-text-color-selected-hover - Color of the text when the radio option is selected and hovered\n * @cssprop --wcs-radio-option-text-color-selected-press - Color of the text when the radio option is selected and pressed\n * @cssprop --wcs-radio-option-text-color-disabled - Color of the text when the radio option's is disabled\n * \n * @cssprop --wcs-radio-option-text-font-weight-default - Default font weight of the text\n * @cssprop --wcs-radio-option-text-font-weight-selected - Font weight of the text when the radio option is selected\n *\n * @cssprop --wcs-radio-option-border-radius - Border radius of the radio option\n * @cssprop --wcs-radio-option-border-width - Width of the border of the radio option\n * @cssprop --wcs-radio-option-border-color-hover - Color of the border of the radio option when not selected and hovered\n * @cssprop --wcs-radio-option-border-color-press - Color of the border of the radio option when not selected and pressed\n * \n * @cssprop --wcs-radio-option-padding-top - Padding top of the radio option\n * @cssprop --wcs-radio-option-padding-right - Padding right of the radio option\n * @cssprop --wcs-radio-option-padding-bottom - Padding bottom of the radio option\n * @cssprop --wcs-radio-option-padding-left - Padding left of the radio option\n */\n@Component({\n tag: 'wcs-radio',\n styleUrl: 'radio.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class Radio implements ComponentInterface, MutableAriaAttribute {\n private inputId = `wcs-rb-${radioButtonIds++}`;\n @Element() private el!: HTMLWcsRadioElement;\n private nativeRadio!: HTMLInputElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, the radio is selected. \n * @private\n */\n @State() private checked: boolean = false;\n\n /**\n * The tabindex of the radio button\n * @private\n */\n @State() private radioTabIndex = -1;\n\n /**\n * Sets a unique value for each radio, used to identify which radio button in a group is selected\n */\n @Prop({ mutable: true, reflect: true }) value: any | any[] | undefined | null;\n\n /**\n * The label text displayed for the user\n */\n @Prop({ mutable: true, reflect: true }) label: string;\n \n /**\n * If `true`, the user cannot interact with the radio.\n */\n @Prop({ reflect: true, mutable: true }) disabled: boolean = false;\n\n /**\n * Emitted when the radio is clicked or Space/Enter is pressed above an unchecked radio\n */\n @Event({ eventName: 'wcsRadioClick' }) wcsRadioClick: EventEmitter<RadioChosedEvent>\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() wcsBlur!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio has focus.\n */\n @Event() wcsFocus!: EventEmitter<FocusEvent>;\n\n /**\n * The name of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ mutable: true }) name: string;\n\n\n /**\n * The display mode of the control, automatically set by the radio group. \n * (You shouldn't set this prop by yourself)\n * @internal\n */\n @Prop({ reflect: true, mutable: false }) mode: RadioGroupMode = 'radio';\n\n /**\n * @internal\n * Checks of unchecks the radio according to it's radio-group value\n */\n @Method()\n async updateState() {\n const radioGroup = this.getClosestRadioGroup();\n if (radioGroup) {\n this.checked = radioGroup.name === this.name && radioGroup.value === this.value\n }\n }\n\n /** @internal */\n @Method()\n async setTabIndex(value: number) {\n this.radioTabIndex = value;\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeRadio, attr, value);\n }\n\n onFocus(ev: FocusEvent) {\n this.wcsFocus.emit(ev);\n }\n\n onBlur(ev: FocusEvent) {\n this.wcsBlur.emit(ev);\n }\n \n private getClosestRadioGroup(): HTMLWcsRadioGroupElement | null {\n return this.el.closest('wcs-radio-group');\n }\n\n componentWillLoad(): Promise<void> | void {\n if (this.value === undefined) {\n // If no value was given we use the text content instead.\n this.value = this.el.innerText || '';\n }\n \n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, RADIO_INHERITED_ATTRS),\n };\n }\n \n private onChange(_: Event) {\n if (this.disabled) return;\n\n // If the radio is unchecked, then the change represents its transition to the check state.\n // Only emit the change event when going from unchecked to checked, like the native behavior.\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event\n if (!this.checked) {\n this.checked = true;\n this.emitRadioChangeEvent();\n }\n }\n\n emitRadioChangeEvent() {\n this.wcsRadioClick.emit({\n label: this.label,\n source: this.el,\n value: this.value\n });\n }\n\n render() {\n \n return (\n <Host slot=\"option\"\n tabIndex={this.disabled ? -1 : this.radioTabIndex}\n class={this.checked ? 'checked' : ''}>\n <input\n id={this.inputId}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked} // Initial checked state of native input\n disabled={this.disabled}\n onChange={this.onChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n aria-disabled={this.disabled ? 'true' : null}\n aria-checked={`${this.checked}`}\n ref={(el) => (this.nativeRadio = el)}\n {...this.inheritedAttributes}\n />\n <label htmlFor={`${this.inputId}`}>{this.label}</label>\n </Host>\n );\n }\n}\n\nlet radioButtonIds = 0;\n"]}
@@ -104,7 +104,7 @@ export class RadioGroup {
104
104
  }
105
105
  }
106
106
  render() {
107
- return (h(Host, { key: '7e9a6c9412d6ababef068d5766d79a790c3e531f', role: "radiogroup" }, h("slot", { key: '6163831fbd131047a6f3556c76b1628f41453b6b', name: "option", onSlotchange: this.onSlotChange.bind(this) })));
107
+ return (h(Host, { key: '3179704d2f1ed56f940941c1777b90a49ecd0ffa', role: "radiogroup" }, h("slot", { key: 'f01213b0c89bc04622601447005e24df07fea376', name: "option", onSlotchange: this.onSlotChange.bind(this) })));
108
108
  }
109
109
  static get is() { return "wcs-radio-group"; }
110
110
  static get encapsulation() { return "shadow"; }
@@ -158,7 +158,7 @@ label::after {
158
158
  display: block;
159
159
  }
160
160
 
161
- :host([aria-invalid=true]) .wcs-select-control {
161
+ :host([aria-invalid=true]) .wcs-select-control, :host([autocomplete]):has(input[aria-invalid=true]) .wcs-select-control {
162
162
  outline-style: var(--wcs-select-control-border-style-error);
163
163
  outline-color: var(--wcs-select-control-border-color-error);
164
164
  }
@@ -215,7 +215,7 @@ export class Select {
215
215
  this.displayText = opt.innerText;
216
216
  this.lastModifiedOptionElement = opt;
217
217
  if (this.autocomplete) {
218
- this.autocompleteValue = opt.innerText;
218
+ this.setAutocompleteValue(opt.innerText);
219
219
  }
220
220
  }
221
221
  opt.selected = isSelected;
@@ -232,7 +232,7 @@ export class Select {
232
232
  if (this.autocomplete) {
233
233
  // When need to reset the internal filter state of the component as the mutation of
234
234
  // autocompleteValue from the code doesn't call onAutocompleteInputEvent method.
235
- this.handleAutocompleteValueChange('', true);
235
+ this.setAutocompleteValue('', true);
236
236
  }
237
237
  this.options.forEach((opt) => {
238
238
  opt.selected = false;
@@ -357,7 +357,7 @@ export class Select {
357
357
  // Indeed, we have to tell the component to take the current filter state manually at the
358
358
  // opening (because the input event of the autocomplete field is not fired at this point).
359
359
  if (this.autocompleteValue && this.autocompleteValue !== '') {
360
- this.handleAutocompleteValueChange(this.autocompleteValue);
360
+ this.setAutocompleteValue(this.autocompleteValue);
361
361
  }
362
362
  }
363
363
  this.clearHighlightOnLastHighlightedOption();
@@ -752,11 +752,17 @@ export class Select {
752
752
  onAutocompleteInputEvent(e) {
753
753
  var _a;
754
754
  const filter = (_a = this.autocompleteInput.value) !== null && _a !== void 0 ? _a : '';
755
- this.handleAutocompleteValueChange(filter);
755
+ this.setAutocompleteValue(filter);
756
756
  // Avoid the inputEvent event to bubble and be emitted, we rather use wcsFilterChange in this case :
757
757
  e.stopPropagation();
758
758
  }
759
- handleAutocompleteValueChange(filter, isReset = false) {
759
+ /**
760
+ * Set the autocomplete value and open the select if needed.
761
+ * @param filter - The new filter value
762
+ * @param isReset - If true, the filter is reset and the select is closed
763
+ * @private
764
+ */
765
+ setAutocompleteValue(filter, isReset = false) {
760
766
  var _a, _b;
761
767
  this.clearHighlightOnLastHighlightedOption();
762
768
  const newValueIsDifferentFromLastModifiedOption = this.lastModifiedOptionElement == null || ((_a = this.lastModifiedOptionElement) === null || _a === void 0 ? void 0 : _a.textContent) !== this.autocompleteValue;
@@ -828,14 +834,15 @@ export class Select {
828
834
  render() {
829
835
  var _a;
830
836
  const ariaLabelValue = `${this.labelElement ? this.labelElement.innerText : ''} ${this.hasValue ? this.displayText : ''}`.trimEnd();
831
- return (h(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 }), h("div", { key: '1ffb794dad6a5047bda91a8d8a192542be53807e', class: "wcs-select-control" }, h("div", { key: '4a6eb4aee396013cb385c0747a64f5b734cdb671', class: "wcs-select-value-container" }, this.hasValue
837
+ const noResultContainerId = 'no-result-container';
838
+ return (h(Host, Object.assign({ key: '6a973d4f68de6f668fda8b17de1da78b94076dc0', 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 }), h("div", { key: '190343789a5d2b4227b4a9822348aa087b4bbbad', class: "wcs-select-control" }, h("div", { key: '2f61ddd11d08bd25d8acf00ecfdced4a97a33320', class: "wcs-select-value-container" }, this.hasValue
832
839
  ?
833
840
  (this.chips ?
834
841
  this.values.map((option) => h(SelectChips, { disabled: this.disabled, option: option, onRemove: this.removeChip.bind(this) }))
835
842
  : (!this.autocomplete || this.autocomplete && this.multiple) &&
836
843
  h("label", { class: "wcs-select-value" }, this.displayText))
837
- : !this.autocomplete && h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && 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))), h(SelectArrow, { key: 'a7465cde16a44865b879d4c69de0fbdba0ab5279', up: this.expanded })), h("div", { key: 'dcd17dd6ca295aa4d3cc0e0e4e081cae36d2390e', class: "wcs-select-options", id: this.optionsId, role: "listbox" }, h("slot", { key: '2d6ff245cdf496a3b8335fd3896a226209117717', name: "options", onSlotchange: this.onSlotchange.bind(this) }), (this.autocomplete && this.showNoResultFoundLabel) &&
838
- h("div", { key: '26b9e2afd3db161f4c8be2d974825c8be68362d8', class: "noresult-container" }, h("slot", { key: '80558760b864f00666398afd6c413cd5e85e660f', name: "filter-no-result" }, h("span", { key: 'ba460bf80f8cc3127774bf19db6742766169727a' }, "Aucun r\u00E9sultat"))))));
844
+ : !this.autocomplete && h("label", { class: "wcs-select-placeholder" }, this.placeholder), this.autocomplete && h("input", Object.assign({ key: '7f2fc76276628b45ebcbcb40f64a82acafa5e192', class: "autocomplete-field", value: this.autocompleteValue, role: "combobox", "aria-haspopup": "listbox", "aria-label": ariaLabelValue, "aria-describedby": noResultContainerId, "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))), h(SelectArrow, { key: 'a6075fc5a325bc1e19cc3d62ddbffb8a3409d454', up: this.expanded })), h("div", { key: '36a6ea6029659db97f174c12a4a5ff3c4c0bfd69', class: "wcs-select-options", id: this.optionsId, role: "listbox" }, h("slot", { key: '3a02c19f0b77c98807a684ae77f2612c422cb096', name: "options", onSlotchange: this.onSlotchange.bind(this) }), (this.autocomplete && this.showNoResultFoundLabel) &&
845
+ h("div", { key: '82ecd4b70ed11d8497e9d5d3aea0c3c95f20ec36', role: "alert", id: noResultContainerId, class: "noresult-container" }, h("slot", { key: '607e7d9c3c112e64218d2170ca4e07aaf5cbd25c', name: "filter-no-result" }, h("span", { key: 'da3800fefd8f57c0d7b62e261933e3293bea2161' }, "Aucun r\u00E9sultat"))))));
839
846
  }
840
847
  static get is() { return "wcs-select"; }
841
848
  static get encapsulation() { return "shadow"; }
@@ -942,7 +949,7 @@ export class Select {
942
949
  "text": "If `true`, the user must fill in a value before submitting a form."
943
950
  },
944
951
  "attribute": "required",
945
- "reflect": false,
952
+ "reflect": true,
946
953
  "defaultValue": "false"
947
954
  },
948
955
  "multiple": {