wcs-core 7.6.0 → 7.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (704) hide show
  1. package/bundle/index.js +1 -1
  2. package/{dist/wcs/p-dbf82cb9.js → bundle/p-035ad27f.js} +2 -2
  3. package/bundle/{p-5ef2bc63.js → p-16c7ed2e.js} +2 -2
  4. package/bundle/p-34ecd856.js +2 -0
  5. package/bundle/p-34ecd856.js.map +1 -0
  6. package/bundle/p-53550684.js +2 -0
  7. package/bundle/p-53550684.js.map +1 -0
  8. package/{composite-elements/p-2454bcae.js → bundle/p-5a997d17.js} +2 -2
  9. package/bundle/p-68ab4391.js +16 -0
  10. package/bundle/p-68ab4391.js.map +1 -0
  11. package/bundle/{p-60193ef5.js → p-791fce94.js} +2 -2
  12. package/bundle/{p-7a06295b.js → p-87b9556d.js} +2 -2
  13. package/bundle/{p-a0268a31.js → p-886109ed.js} +2 -2
  14. package/bundle/{p-d05140f5.js → p-9138985e.js} +2 -2
  15. package/bundle/p-95eb2e54.js +2 -0
  16. package/bundle/p-95eb2e54.js.map +1 -0
  17. package/bundle/{p-8b186fcf.js → p-a9a83300.js} +2 -2
  18. package/bundle/{p-ff261e50.js → p-c13e9bb6.js} +8 -8
  19. package/bundle/p-c13e9bb6.js.map +1 -0
  20. package/bundle/p-c70a403e.js +2 -0
  21. package/bundle/p-c70a403e.js.map +1 -0
  22. package/bundle/{p-bce8c93f.js → p-d7d1ea63.js} +2 -2
  23. package/bundle/p-f6d5c242.js +2 -0
  24. package/bundle/p-f6d5c242.js.map +1 -0
  25. package/bundle/wcs-accordion-panel.js +1 -1
  26. package/bundle/wcs-alert-drawer.js +1 -1
  27. package/bundle/wcs-alert-drawer.js.map +1 -1
  28. package/bundle/wcs-alert.js +1 -1
  29. package/bundle/wcs-app.js +1 -1
  30. package/bundle/wcs-badge.js +1 -1
  31. package/bundle/wcs-breadcrumb-item.js +1 -1
  32. package/bundle/wcs-breadcrumb.js +1 -1
  33. package/bundle/wcs-button.js +1 -1
  34. package/bundle/wcs-card-body.js +1 -1
  35. package/bundle/wcs-card-body.js.map +1 -1
  36. package/bundle/wcs-card-content.js +1 -1
  37. package/bundle/wcs-card-footer.js +1 -1
  38. package/bundle/wcs-card-header.js +1 -1
  39. package/bundle/wcs-card-media.js +1 -1
  40. package/bundle/wcs-card.js +1 -1
  41. package/bundle/wcs-checkbox.js +1 -1
  42. package/bundle/wcs-chip.js +1 -1
  43. package/bundle/wcs-chip.js.map +1 -1
  44. package/bundle/wcs-com-nav-category.js +1 -1
  45. package/bundle/wcs-com-nav-item.js +1 -1
  46. package/bundle/wcs-com-nav-submenu.js +1 -1
  47. package/bundle/wcs-com-nav.js +1 -1
  48. package/bundle/wcs-com-nav.js.map +1 -1
  49. package/bundle/wcs-counter.js +1 -1
  50. package/bundle/wcs-divider.js +1 -1
  51. package/bundle/wcs-dropdown-divider.js +1 -1
  52. package/bundle/wcs-dropdown-header.js +1 -1
  53. package/bundle/wcs-dropdown-item.js +1 -1
  54. package/bundle/wcs-dropdown.js +1 -1
  55. package/bundle/wcs-dropdown.js.map +1 -1
  56. package/bundle/wcs-editable-field.js +1 -1
  57. package/bundle/wcs-error.js +1 -1
  58. package/bundle/wcs-field-content.js +1 -1
  59. package/bundle/wcs-field-content.js.map +1 -1
  60. package/bundle/wcs-field-label.js +1 -1
  61. package/bundle/wcs-field.js +1 -1
  62. package/bundle/wcs-field.js.map +1 -1
  63. package/bundle/wcs-footer.js +1 -1
  64. package/bundle/wcs-form-field.js +1 -1
  65. package/bundle/wcs-galactic-menu.js +1 -1
  66. package/bundle/wcs-galactic.js +1 -1
  67. package/bundle/wcs-grid-column.js +1 -1
  68. package/bundle/wcs-grid-column.js.map +1 -1
  69. package/bundle/wcs-grid-custom-cell.js +1 -1
  70. package/bundle/wcs-grid-pagination.js +1 -1
  71. package/bundle/wcs-grid.js +1 -1
  72. package/bundle/wcs-grid.js.map +1 -1
  73. package/bundle/wcs-header.js +1 -1
  74. package/bundle/wcs-hint.js +1 -1
  75. package/bundle/wcs-horizontal-stepper.js +1 -1
  76. package/bundle/wcs-icon.js +1 -1
  77. package/bundle/wcs-input.js +1 -1
  78. package/bundle/wcs-label.js +1 -1
  79. package/bundle/wcs-list-item-properties.js +1 -1
  80. package/bundle/wcs-list-item-property.js +1 -1
  81. package/bundle/wcs-list-item.js +1 -1
  82. package/bundle/wcs-mat-icon.js +1 -1
  83. package/bundle/wcs-message.d.ts +11 -0
  84. package/bundle/wcs-message.js +2 -0
  85. package/bundle/wcs-message.js.map +1 -0
  86. package/bundle/wcs-modal.js +1 -1
  87. package/bundle/wcs-native-select.js +1 -1
  88. package/bundle/wcs-nav-item.js +1 -1
  89. package/bundle/wcs-nav.js +1 -1
  90. package/bundle/wcs-progress-bar.js +1 -1
  91. package/bundle/wcs-progress-radial.js +1 -1
  92. package/bundle/wcs-radio-group.js +1 -1
  93. package/bundle/wcs-radio.js +1 -1
  94. package/bundle/wcs-select-option.js +1 -1
  95. package/bundle/wcs-select.js +1 -1
  96. package/bundle/wcs-skeleton-circle.js +1 -1
  97. package/bundle/wcs-skeleton-rectangle.js +1 -1
  98. package/bundle/wcs-skeleton-text.js +1 -1
  99. package/bundle/wcs-spinner.js +1 -1
  100. package/bundle/wcs-switch.js +1 -1
  101. package/bundle/wcs-tab.js +1 -1
  102. package/bundle/wcs-tab.js.map +1 -1
  103. package/bundle/wcs-tabs.js +1 -1
  104. package/bundle/wcs-textarea.js +1 -1
  105. package/bundle/wcs-tooltip.js +2 -2
  106. package/composite-elements/{p-a90bb01e.js → p-061ccda5.js} +2 -2
  107. package/composite-elements/{p-ef26b4d8.js → p-2181568b.js} +2 -2
  108. package/composite-elements/{p-87e97a2e.js → p-61886571.js} +2 -2
  109. package/composite-elements/p-846e40e9.js +16 -0
  110. package/composite-elements/p-846e40e9.js.map +1 -0
  111. package/composite-elements/p-8a2107d4.js +2 -0
  112. package/composite-elements/p-8a2107d4.js.map +1 -0
  113. package/composite-elements/p-8cafb0b4.js +2 -0
  114. package/composite-elements/p-8cafb0b4.js.map +1 -0
  115. package/composite-elements/p-8f51f4cb.js +2 -0
  116. package/composite-elements/p-8f51f4cb.js.map +1 -0
  117. package/composite-elements/{p-6b91c7bd.js → p-b53ae1a8.js} +2 -2
  118. package/{dist/wcs/p-7af9a2f3.js → composite-elements/p-b6d0a6b4.js} +2 -2
  119. package/composite-elements/p-cb9faa9b.js +2 -0
  120. package/composite-elements/{p-5a3d7fec.js → p-cd6cca64.js} +2 -2
  121. package/composite-elements/{p-e4e3ed2c.js → p-d2d79425.js} +2 -2
  122. package/composite-elements/{p-a70a3379.js → p-f0b064a2.js} +2 -2
  123. package/composite-elements/{p-ec3ce4d4.js → p-f161f50b.js} +8 -8
  124. package/composite-elements/p-f161f50b.js.map +1 -0
  125. package/composite-elements/p-f6d5c242.js +2 -0
  126. package/composite-elements/p-f6d5c242.js.map +1 -0
  127. package/composite-elements/p-f85cc676.js +2 -0
  128. package/composite-elements/p-f85cc676.js.map +1 -0
  129. package/composite-elements/wcs-accordion-panel.js +1 -1
  130. package/composite-elements/wcs-alert-drawer.js +1 -1
  131. package/composite-elements/wcs-alert-drawer.js.map +1 -1
  132. package/composite-elements/wcs-alert.js +1 -1
  133. package/composite-elements/wcs-app.js +1 -1
  134. package/composite-elements/wcs-badge.js +1 -1
  135. package/composite-elements/wcs-breadcrumb-item.js +1 -1
  136. package/composite-elements/wcs-breadcrumb.js +1 -1
  137. package/composite-elements/wcs-button.js +1 -1
  138. package/composite-elements/wcs-card-body.js +1 -1
  139. package/composite-elements/wcs-card-body.js.map +1 -1
  140. package/composite-elements/wcs-card-content.js +1 -1
  141. package/composite-elements/wcs-card-footer.js +1 -1
  142. package/composite-elements/wcs-card-header.js +1 -1
  143. package/composite-elements/wcs-card-media.js +1 -1
  144. package/composite-elements/wcs-card.js +1 -1
  145. package/composite-elements/wcs-checkbox.js +1 -1
  146. package/composite-elements/wcs-chip.js +1 -1
  147. package/composite-elements/wcs-chip.js.map +1 -1
  148. package/composite-elements/wcs-com-nav-category.js +1 -1
  149. package/composite-elements/wcs-com-nav-item.js +1 -1
  150. package/composite-elements/wcs-com-nav-submenu.js +1 -1
  151. package/composite-elements/wcs-com-nav.js +1 -1
  152. package/composite-elements/wcs-com-nav.js.map +1 -1
  153. package/composite-elements/wcs-counter.js +1 -1
  154. package/composite-elements/wcs-divider.js +1 -1
  155. package/composite-elements/wcs-dropdown-divider.js +1 -1
  156. package/composite-elements/wcs-dropdown-header.js +1 -1
  157. package/composite-elements/wcs-dropdown-item.js +1 -1
  158. package/composite-elements/wcs-dropdown.js +1 -1
  159. package/composite-elements/wcs-dropdown.js.map +1 -1
  160. package/composite-elements/wcs-editable-field.js +1 -1
  161. package/composite-elements/wcs-error.js +1 -1
  162. package/composite-elements/wcs-field-content.js +1 -1
  163. package/composite-elements/wcs-field-content.js.map +1 -1
  164. package/composite-elements/wcs-field-label.js +1 -1
  165. package/composite-elements/wcs-field.js +1 -1
  166. package/composite-elements/wcs-field.js.map +1 -1
  167. package/composite-elements/wcs-footer.js +1 -1
  168. package/composite-elements/wcs-form-field.js +1 -1
  169. package/composite-elements/wcs-galactic-menu.js +1 -1
  170. package/composite-elements/wcs-galactic.js +1 -1
  171. package/composite-elements/wcs-grid-column.js +1 -1
  172. package/composite-elements/wcs-grid-column.js.map +1 -1
  173. package/composite-elements/wcs-grid-custom-cell.js +1 -1
  174. package/composite-elements/wcs-grid-pagination.js +1 -1
  175. package/composite-elements/wcs-grid.js +1 -1
  176. package/composite-elements/wcs-grid.js.map +1 -1
  177. package/composite-elements/wcs-header.js +1 -1
  178. package/composite-elements/wcs-hint.js +1 -1
  179. package/composite-elements/wcs-horizontal-stepper.js +1 -1
  180. package/composite-elements/wcs-icon.js +1 -1
  181. package/composite-elements/wcs-input.js +1 -1
  182. package/composite-elements/wcs-label.js +1 -1
  183. package/composite-elements/wcs-list-item-properties.js +1 -1
  184. package/composite-elements/wcs-list-item-property.js +1 -1
  185. package/composite-elements/wcs-list-item.js +1 -1
  186. package/composite-elements/wcs-mat-icon.js +1 -1
  187. package/composite-elements/wcs-message.d.ts +11 -0
  188. package/composite-elements/wcs-message.js +2 -0
  189. package/composite-elements/wcs-message.js.map +1 -0
  190. package/composite-elements/wcs-modal.js +1 -1
  191. package/composite-elements/wcs-native-select.js +1 -1
  192. package/composite-elements/wcs-nav-item.js +1 -1
  193. package/composite-elements/wcs-nav.js +1 -1
  194. package/composite-elements/wcs-progress-bar.js +1 -1
  195. package/composite-elements/wcs-progress-radial.js +1 -1
  196. package/composite-elements/wcs-radio-group.js +1 -1
  197. package/composite-elements/wcs-radio.js +1 -1
  198. package/composite-elements/wcs-select-option.js +1 -1
  199. package/composite-elements/wcs-select.js +1 -1
  200. package/composite-elements/wcs-skeleton-circle.js +1 -1
  201. package/composite-elements/wcs-skeleton-rectangle.js +1 -1
  202. package/composite-elements/wcs-skeleton-text.js +1 -1
  203. package/composite-elements/wcs-spinner.js +1 -1
  204. package/composite-elements/wcs-switch.js +1 -1
  205. package/composite-elements/wcs-tab.js +1 -1
  206. package/composite-elements/wcs-tab.js.map +1 -1
  207. package/composite-elements/wcs-tabs.js +1 -1
  208. package/composite-elements/wcs-textarea.js +1 -1
  209. package/composite-elements/wcs-tooltip.js +2 -2
  210. package/dist/cjs/alert-close-button-4435ed57.js +10 -0
  211. package/dist/cjs/alert-close-button-4435ed57.js.map +1 -0
  212. package/dist/cjs/{com-nav-utils-ff4f0bef.js → com-nav-utils-e081e998.js} +2 -2
  213. package/dist/cjs/{com-nav-utils-ff4f0bef.js.map → com-nav-utils-e081e998.js.map} +1 -1
  214. package/dist/cjs/{grid-pagination-ded127cc.js → grid-pagination-e92dca78.js} +4 -4
  215. package/dist/cjs/grid-pagination-e92dca78.js.map +1 -0
  216. package/dist/cjs/{helpers-2f1a8ddc.js → helpers-eaafd588.js} +1 -9
  217. package/dist/cjs/helpers-eaafd588.js.map +1 -0
  218. package/dist/cjs/{keyboard-event-40ecdc27.js → keyboard-event-4890c60e.js} +2 -2
  219. package/dist/cjs/{keyboard-event-40ecdc27.js.map → keyboard-event-4890c60e.js.map} +1 -1
  220. package/dist/cjs/loader.cjs.js +1 -1
  221. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +1 -1
  222. package/dist/cjs/wcs-alert-drawer.cjs.entry.js +14 -2
  223. package/dist/cjs/wcs-alert-drawer.cjs.entry.js.map +1 -1
  224. package/dist/cjs/wcs-alert.cjs.entry.js +3 -2
  225. package/dist/cjs/wcs-alert.cjs.entry.js.map +1 -1
  226. package/dist/cjs/wcs-app.cjs.entry.js +3 -3
  227. package/dist/cjs/wcs-badge.cjs.entry.js +1 -1
  228. package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js +1 -1
  229. package/dist/cjs/wcs-breadcrumb.cjs.entry.js +2 -2
  230. package/dist/cjs/{wcs-button_2.cjs.entry.js → wcs-button_3.cjs.entry.js} +40 -5
  231. package/dist/cjs/wcs-button_3.cjs.entry.js.map +1 -0
  232. package/dist/cjs/wcs-card-body.cjs.entry.js +1 -1
  233. package/dist/cjs/wcs-card-content.cjs.entry.js +1 -1
  234. package/dist/cjs/wcs-card-footer.cjs.entry.js +1 -1
  235. package/dist/cjs/wcs-card-header.cjs.entry.js +1 -1
  236. package/dist/cjs/wcs-card-media.cjs.entry.js +1 -1
  237. package/dist/cjs/wcs-card.cjs.entry.js +1 -1
  238. package/dist/cjs/wcs-checkbox.cjs.entry.js +2 -2
  239. package/dist/cjs/wcs-chip.cjs.entry.js +18 -6
  240. package/dist/cjs/wcs-chip.cjs.entry.js.map +1 -1
  241. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +4 -4
  242. package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
  243. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +4 -4
  244. package/dist/cjs/wcs-com-nav.cjs.entry.js +4 -4
  245. package/dist/cjs/wcs-counter.cjs.entry.js +2 -2
  246. package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
  247. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
  248. package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
  249. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +2 -2
  250. package/dist/cjs/wcs-dropdown.cjs.entry.js +4 -4
  251. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  252. package/dist/cjs/wcs-editable-field.cjs.entry.js +2 -2
  253. package/dist/cjs/wcs-error_3.cjs.entry.js +4 -4
  254. package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
  255. package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
  256. package/dist/cjs/wcs-field.cjs.entry.js +1 -1
  257. package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
  258. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +3 -3
  259. package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
  260. package/dist/cjs/wcs-grid-column.cjs.entry.js +2 -2
  261. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  262. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
  263. package/dist/cjs/wcs-grid.cjs.entry.js +13 -6
  264. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  265. package/dist/cjs/wcs-header.cjs.entry.js +2 -2
  266. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  267. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  268. package/dist/cjs/wcs-icon.cjs.entry.js +2 -2
  269. package/dist/cjs/wcs-input.cjs.entry.js +2 -2
  270. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  271. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  272. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  273. package/dist/cjs/wcs-message.cjs.entry.js +56 -0
  274. package/dist/cjs/wcs-message.cjs.entry.js.map +1 -0
  275. package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
  276. package/dist/cjs/wcs-native-select.cjs.entry.js +1 -1
  277. package/dist/cjs/wcs-nav-item.cjs.entry.js +2 -2
  278. package/dist/cjs/wcs-nav.cjs.entry.js +2 -2
  279. package/dist/cjs/wcs-progress-bar.cjs.entry.js +3 -3
  280. package/dist/cjs/wcs-progress-radial.cjs.entry.js +3 -3
  281. package/dist/cjs/wcs-radio-group.cjs.entry.js +2 -2
  282. package/dist/cjs/wcs-radio.cjs.entry.js +2 -2
  283. package/dist/cjs/wcs-select_2.cjs.entry.js +11 -19
  284. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  285. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  286. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  287. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  288. package/dist/cjs/wcs-switch.cjs.entry.js +2 -2
  289. package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
  290. package/dist/cjs/wcs-tabs.cjs.entry.js +2 -2
  291. package/dist/cjs/wcs-textarea.cjs.entry.js +2 -2
  292. package/dist/cjs/wcs-tooltip.cjs.entry.js +2 -2
  293. package/dist/cjs/wcs.cjs.js +1 -1
  294. package/dist/collection/collection-manifest.json +1 -0
  295. package/dist/collection/components/alert/alert-close-button.js +3 -0
  296. package/dist/collection/components/alert/alert-close-button.js.map +1 -0
  297. package/dist/collection/components/alert/alert.css +12 -11
  298. package/dist/collection/components/alert/alert.js +2 -1
  299. package/dist/collection/components/alert/alert.js.map +1 -1
  300. package/dist/collection/components/alert-drawer/alert-drawer.js +34 -2
  301. package/dist/collection/components/alert-drawer/alert-drawer.js.map +1 -1
  302. package/dist/collection/components/app/app.js +3 -3
  303. package/dist/collection/components/badge/badge.js +1 -1
  304. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  305. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js +1 -1
  306. package/dist/collection/components/button/button.css +26 -0
  307. package/dist/collection/components/button/button.js +47 -1
  308. package/dist/collection/components/button/button.js.map +1 -1
  309. package/dist/collection/components/card/card.js +1 -1
  310. package/dist/collection/components/card-body/card-body.js +1 -1
  311. package/dist/collection/components/card-content/card-content.js +1 -1
  312. package/dist/collection/components/card-footer/card-footer.js +1 -1
  313. package/dist/collection/components/card-header/card-header.js +1 -1
  314. package/dist/collection/components/card-media/card-media.js +1 -1
  315. package/dist/collection/components/checkbox/checkbox.js +1 -1
  316. package/dist/collection/components/chip/chip.e2e.playwright.js +33 -0
  317. package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -1
  318. package/dist/collection/components/chip/chip.js +19 -6
  319. package/dist/collection/components/chip/chip.js.map +1 -1
  320. package/dist/collection/components/com-nav/com-nav.js +2 -2
  321. package/dist/collection/components/com-nav-category/com-nav-category.js +2 -2
  322. package/dist/collection/components/com-nav-item/com-nav-item.js +1 -1
  323. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +2 -2
  324. package/dist/collection/components/counter/counter.js +1 -1
  325. package/dist/collection/components/divider/divider.js +1 -1
  326. package/dist/collection/components/dropdown/dropdown.css +1 -0
  327. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +23 -0
  328. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -1
  329. package/dist/collection/components/dropdown/dropdown.js +1 -1
  330. package/dist/collection/components/dropdown-divider/dropdown-divider.js +1 -1
  331. package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
  332. package/dist/collection/components/dropdown-item/dropdown-item.js +1 -1
  333. package/dist/collection/components/editable-field/editable-field.js +1 -1
  334. package/dist/collection/components/error/error.js +1 -1
  335. package/dist/collection/components/field/field.js +1 -1
  336. package/dist/collection/components/field-content/field-content.js +1 -1
  337. package/dist/collection/components/field-label/field-label.js +1 -1
  338. package/dist/collection/components/footer/footer.js +1 -1
  339. package/dist/collection/components/form-field/form-field.js +1 -1
  340. package/dist/collection/components/galactic/galactic.js +1 -1
  341. package/dist/collection/components/galactic-menu/galactic-menu.js +2 -2
  342. package/dist/collection/components/grid/grid.e2e.playwright.js +75 -0
  343. package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -1
  344. package/dist/collection/components/grid/grid.js +10 -3
  345. package/dist/collection/components/grid/grid.js.map +1 -1
  346. package/dist/collection/components/grid-column/grid-column.js +1 -1
  347. package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
  348. package/dist/collection/components/grid-pagination/grid-pagination.css +4 -0
  349. package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
  350. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  351. package/dist/collection/components/header/header.js +1 -1
  352. package/dist/collection/components/hint/hint.js +1 -1
  353. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +1 -1
  354. package/dist/collection/components/icon/icon.js +1 -1
  355. package/dist/collection/components/input/input.js +1 -1
  356. package/dist/collection/components/label/label.js +1 -1
  357. package/dist/collection/components/list-item/list-item.js +1 -1
  358. package/dist/collection/components/list-item-properties/list-item-properties.js +1 -1
  359. package/dist/collection/components/list-item-property/list-item-property.js +1 -1
  360. package/dist/collection/components/mat-icon/mat-icon.css +8 -4
  361. package/dist/collection/components/mat-icon/mat-icon.js +6 -1
  362. package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
  363. package/dist/collection/components/message/message-interface.js +2 -0
  364. package/dist/collection/components/message/message-interface.js.map +1 -0
  365. package/dist/collection/components/message/message.css +101 -0
  366. package/dist/collection/components/message/message.js +206 -0
  367. package/dist/collection/components/message/message.js.map +1 -0
  368. package/dist/collection/components/modal/modal.js +1 -1
  369. package/dist/collection/components/native-select/native-select.js +1 -1
  370. package/dist/collection/components/nav/nav.js +1 -1
  371. package/dist/collection/components/nav-item/nav-item.js +1 -1
  372. package/dist/collection/components/progress-bar/progress-bar.js +2 -2
  373. package/dist/collection/components/progress-radial/progress-radial.js +2 -2
  374. package/dist/collection/components/radio/radio.js +1 -1
  375. package/dist/collection/components/radio-group/radio-group.js +1 -1
  376. package/dist/collection/components/select/select-interface.js.map +1 -1
  377. package/dist/collection/components/select/select.e2e.playwright.js +158 -7
  378. package/dist/collection/components/select/select.e2e.playwright.js.map +1 -1
  379. package/dist/collection/components/select/select.js +8 -16
  380. package/dist/collection/components/select/select.js.map +1 -1
  381. package/dist/collection/components/select-option/select-option.js +2 -2
  382. package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
  383. package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
  384. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
  385. package/dist/collection/components/spinner/spinner.js +1 -1
  386. package/dist/collection/components/switch/switch.js +1 -1
  387. package/dist/collection/components/tab/tab.js +1 -1
  388. package/dist/collection/components/tabs/tabs.js +1 -1
  389. package/dist/collection/components/textarea/textarea.js +1 -1
  390. package/dist/collection/components/tooltip/tooltip.js +1 -1
  391. package/dist/esm/alert-close-button-2ce5ac95.js +8 -0
  392. package/dist/esm/alert-close-button-2ce5ac95.js.map +1 -0
  393. package/dist/esm/{com-nav-utils-27c1efdf.js → com-nav-utils-a5af32af.js} +2 -2
  394. package/dist/esm/{com-nav-utils-27c1efdf.js.map → com-nav-utils-a5af32af.js.map} +1 -1
  395. package/dist/esm/{grid-pagination-23102986.js → grid-pagination-c29173f6.js} +4 -4
  396. package/dist/esm/grid-pagination-c29173f6.js.map +1 -0
  397. package/dist/esm/{helpers-89faa1b1.js → helpers-2d73ee7c.js} +2 -9
  398. package/dist/esm/helpers-2d73ee7c.js.map +1 -0
  399. package/dist/esm/{keyboard-event-dd35bb6b.js → keyboard-event-3a0579d5.js} +2 -2
  400. package/dist/esm/{keyboard-event-dd35bb6b.js.map → keyboard-event-3a0579d5.js.map} +1 -1
  401. package/dist/esm/loader.js +1 -1
  402. package/dist/esm/wcs-accordion-panel.entry.js +1 -1
  403. package/dist/esm/wcs-alert-drawer.entry.js +14 -2
  404. package/dist/esm/wcs-alert-drawer.entry.js.map +1 -1
  405. package/dist/esm/wcs-alert.entry.js +3 -2
  406. package/dist/esm/wcs-alert.entry.js.map +1 -1
  407. package/dist/esm/wcs-app.entry.js +3 -3
  408. package/dist/esm/wcs-badge.entry.js +1 -1
  409. package/dist/esm/wcs-breadcrumb-item.entry.js +1 -1
  410. package/dist/esm/wcs-breadcrumb.entry.js +2 -2
  411. package/dist/esm/{wcs-button_2.entry.js → wcs-button_3.entry.js} +41 -7
  412. package/dist/esm/{wcs-button_2.entry.js.map → wcs-button_3.entry.js.map} +1 -1
  413. package/dist/esm/wcs-card-body.entry.js +1 -1
  414. package/dist/esm/wcs-card-content.entry.js +1 -1
  415. package/dist/esm/wcs-card-footer.entry.js +1 -1
  416. package/dist/esm/wcs-card-header.entry.js +1 -1
  417. package/dist/esm/wcs-card-media.entry.js +1 -1
  418. package/dist/esm/wcs-card.entry.js +1 -1
  419. package/dist/esm/wcs-checkbox.entry.js +2 -2
  420. package/dist/esm/wcs-chip.entry.js +18 -6
  421. package/dist/esm/wcs-chip.entry.js.map +1 -1
  422. package/dist/esm/wcs-com-nav-category.entry.js +4 -4
  423. package/dist/esm/wcs-com-nav-item.entry.js +1 -1
  424. package/dist/esm/wcs-com-nav-submenu.entry.js +4 -4
  425. package/dist/esm/wcs-com-nav.entry.js +4 -4
  426. package/dist/esm/wcs-counter.entry.js +2 -2
  427. package/dist/esm/wcs-divider.entry.js +1 -1
  428. package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
  429. package/dist/esm/wcs-dropdown-header.entry.js +1 -1
  430. package/dist/esm/wcs-dropdown-item.entry.js +2 -2
  431. package/dist/esm/wcs-dropdown.entry.js +4 -4
  432. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  433. package/dist/esm/wcs-editable-field.entry.js +2 -2
  434. package/dist/esm/wcs-error_3.entry.js +4 -4
  435. package/dist/esm/wcs-field-content.entry.js +1 -1
  436. package/dist/esm/wcs-field-label.entry.js +1 -1
  437. package/dist/esm/wcs-field.entry.js +1 -1
  438. package/dist/esm/wcs-footer.entry.js +1 -1
  439. package/dist/esm/wcs-galactic-menu.entry.js +3 -3
  440. package/dist/esm/wcs-galactic.entry.js +1 -1
  441. package/dist/esm/wcs-grid-column.entry.js +2 -2
  442. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  443. package/dist/esm/wcs-grid-pagination.entry.js +2 -2
  444. package/dist/esm/wcs-grid.entry.js +13 -6
  445. package/dist/esm/wcs-grid.entry.js.map +1 -1
  446. package/dist/esm/wcs-header.entry.js +2 -2
  447. package/dist/esm/wcs-hint.entry.js +1 -1
  448. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  449. package/dist/esm/wcs-icon.entry.js +2 -2
  450. package/dist/esm/wcs-input.entry.js +2 -2
  451. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  452. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  453. package/dist/esm/wcs-list-item.entry.js +1 -1
  454. package/dist/esm/wcs-message.entry.js +52 -0
  455. package/dist/esm/wcs-message.entry.js.map +1 -0
  456. package/dist/esm/wcs-modal.entry.js +2 -2
  457. package/dist/esm/wcs-native-select.entry.js +1 -1
  458. package/dist/esm/wcs-nav-item.entry.js +2 -2
  459. package/dist/esm/wcs-nav.entry.js +2 -2
  460. package/dist/esm/wcs-progress-bar.entry.js +3 -3
  461. package/dist/esm/wcs-progress-radial.entry.js +3 -3
  462. package/dist/esm/wcs-radio-group.entry.js +2 -2
  463. package/dist/esm/wcs-radio.entry.js +2 -2
  464. package/dist/esm/wcs-select_2.entry.js +11 -19
  465. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  466. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  467. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  468. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  469. package/dist/esm/wcs-switch.entry.js +2 -2
  470. package/dist/esm/wcs-tab.entry.js +1 -1
  471. package/dist/esm/wcs-tabs.entry.js +2 -2
  472. package/dist/esm/wcs-textarea.entry.js +2 -2
  473. package/dist/esm/wcs-tooltip.entry.js +2 -2
  474. package/dist/esm/wcs.js +1 -1
  475. package/dist/types/components/alert/alert-close-button.d.ts +4 -0
  476. package/dist/types/components/alert-drawer/alert-drawer.d.ts +10 -0
  477. package/dist/types/components/button/button.d.ts +18 -0
  478. package/dist/types/components/chip/chip.d.ts +1 -1
  479. package/dist/types/components/mat-icon/mat-icon.d.ts +5 -0
  480. package/dist/types/components/message/message-interface.d.ts +1 -0
  481. package/dist/types/components/message/message.d.ts +77 -0
  482. package/dist/types/components/select/select-interface.d.ts +1 -0
  483. package/dist/types/components/select/select.d.ts +0 -2
  484. package/dist/types/components.d.ts +264 -5
  485. package/dist/wcs/{p-41b946b2.entry.js → p-03ae13ec.entry.js} +2 -2
  486. package/dist/wcs/p-07c961b4.entry.js +2 -0
  487. package/dist/wcs/{p-9e091c53.entry.js → p-0a0bc006.entry.js} +2 -2
  488. package/dist/wcs/p-0a0bc006.entry.js.map +1 -0
  489. package/dist/wcs/{p-b42f441f.entry.js → p-167108aa.entry.js} +2 -2
  490. package/dist/wcs/{p-d89ad962.entry.js → p-17c8f012.entry.js} +2 -2
  491. package/dist/wcs/{p-14dfa087.entry.js → p-190a8883.entry.js} +3 -3
  492. package/dist/wcs/{p-0758d22e.entry.js → p-276070f3.entry.js} +2 -2
  493. package/dist/wcs/{p-f929b66f.entry.js → p-28941abc.entry.js} +2 -2
  494. package/dist/wcs/p-28b3e55a.entry.js +2 -0
  495. package/dist/wcs/p-28b3e55a.entry.js.map +1 -0
  496. package/dist/wcs/{p-c169d496.entry.js → p-28d52607.entry.js} +2 -2
  497. package/dist/wcs/p-2d4fd96a.entry.js +2 -0
  498. package/dist/wcs/{p-9c6db857.entry.js → p-2d5becbf.entry.js} +2 -2
  499. package/dist/wcs/p-2da579f2.entry.js +2 -0
  500. package/dist/wcs/{p-53a395a9.entry.js → p-2e0238b6.entry.js} +2 -2
  501. package/dist/wcs/{p-9388283a.entry.js → p-358a505f.entry.js} +2 -2
  502. package/dist/wcs/{p-e35b138e.entry.js → p-38d37878.entry.js} +2 -2
  503. package/dist/wcs/{p-b3b31d43.entry.js → p-3bc23ef1.entry.js} +2 -2
  504. package/dist/wcs/p-3da303d7.entry.js +16 -0
  505. package/dist/wcs/p-3da303d7.entry.js.map +1 -0
  506. package/dist/wcs/{p-912c2c9b.entry.js → p-407d9700.entry.js} +2 -2
  507. package/dist/wcs/{p-6f937b20.entry.js → p-41383e84.entry.js} +2 -2
  508. package/dist/wcs/{p-53bc2cae.entry.js → p-4506e5e4.entry.js} +2 -2
  509. package/dist/wcs/{p-b9368690.entry.js → p-48541bf7.entry.js} +2 -2
  510. package/dist/wcs/{p-8332a7e3.entry.js → p-4a28d7a3.entry.js} +2 -2
  511. package/dist/wcs/p-4c43d8fc.entry.js +2 -0
  512. package/dist/wcs/p-4c43d8fc.entry.js.map +1 -0
  513. package/dist/wcs/{p-0424e545.entry.js → p-4d7bc716.entry.js} +2 -2
  514. package/dist/wcs/{p-cceee683.entry.js → p-4ef24e07.entry.js} +2 -2
  515. package/dist/wcs/{p-cceee683.entry.js.map → p-4ef24e07.entry.js.map} +1 -1
  516. package/dist/wcs/{p-367946fe.entry.js → p-4f20cdba.entry.js} +2 -2
  517. package/dist/wcs/{p-03838b42.entry.js → p-4fad6675.entry.js} +2 -2
  518. package/dist/wcs/p-51c93d07.entry.js +2 -0
  519. package/dist/wcs/p-51c93d07.entry.js.map +1 -0
  520. package/dist/wcs/{p-f411974e.entry.js → p-575881cd.entry.js} +2 -2
  521. package/dist/wcs/p-5823cd22.entry.js +2 -0
  522. package/dist/wcs/p-5a276237.entry.js +2 -0
  523. package/dist/wcs/{p-f2c49d83.entry.js → p-5b61a775.entry.js} +2 -2
  524. package/dist/wcs/p-5bc7a732.js +2 -0
  525. package/dist/wcs/p-5bc7a732.js.map +1 -0
  526. package/dist/wcs/p-6033c91b.entry.js +2 -0
  527. package/dist/wcs/p-609115fc.js +2 -0
  528. package/dist/wcs/p-609115fc.js.map +1 -0
  529. package/dist/wcs/{p-25d7b2f8.entry.js → p-6b5db6be.entry.js} +2 -2
  530. package/dist/wcs/{p-b04471f5.entry.js → p-6b86d4fa.entry.js} +2 -2
  531. package/dist/wcs/p-6c6841ac.entry.js +2 -0
  532. package/dist/wcs/p-6c78d16e.js +2 -0
  533. package/dist/wcs/{p-6e7db56e.entry.js → p-714c3cd7.entry.js} +2 -2
  534. package/dist/wcs/p-71af107c.js +2 -0
  535. package/dist/wcs/p-71af107c.js.map +1 -0
  536. package/dist/wcs/{p-56d9554a.entry.js → p-7b67cec9.entry.js} +2 -2
  537. package/dist/wcs/{p-781a956e.entry.js → p-7cd88886.entry.js} +2 -2
  538. package/dist/wcs/{p-3e57c746.entry.js → p-7f5eea6a.entry.js} +2 -2
  539. package/dist/wcs/{p-beeec782.entry.js → p-882886ae.entry.js} +2 -2
  540. package/dist/wcs/p-8fd515a3.entry.js +2 -0
  541. package/dist/wcs/{p-ff48a8b2.entry.js → p-95f35254.entry.js} +2 -2
  542. package/dist/wcs/{p-0cbf08fb.entry.js → p-9d47a628.entry.js} +2 -2
  543. package/dist/wcs/p-9d683786.entry.js +2 -0
  544. package/dist/wcs/{p-c42a6c1c.entry.js → p-a45a1f25.entry.js} +2 -2
  545. package/dist/wcs/{p-f974210c.entry.js → p-a9fa5726.entry.js} +2 -2
  546. package/dist/wcs/{p-1c356201.entry.js → p-ae305b09.entry.js} +2 -2
  547. package/dist/wcs/p-afd3e923.entry.js +2 -0
  548. package/dist/wcs/{p-990698a7.entry.js → p-b1b0e2cb.entry.js} +2 -2
  549. package/dist/wcs/p-b1b0e2cb.entry.js.map +1 -0
  550. package/dist/wcs/{p-3a18535f.entry.js → p-b9744cf7.entry.js} +2 -2
  551. package/dist/wcs/p-b99daad4.entry.js +156 -0
  552. package/dist/wcs/p-b99daad4.entry.js.map +1 -0
  553. package/dist/wcs/{p-cbbca016.entry.js → p-cefd8219.entry.js} +2 -2
  554. package/dist/wcs/{p-ae299c3f.entry.js → p-d18051b2.entry.js} +2 -2
  555. package/dist/wcs/{p-9d4c8f84.entry.js → p-d42f5883.entry.js} +2 -2
  556. package/{bundle/p-475be4d2.js → dist/wcs/p-d6d273d2.js} +2 -2
  557. package/dist/wcs/{p-63a8e5cc.entry.js → p-e08febb4.entry.js} +2 -2
  558. package/dist/wcs/{p-8f95bbf3.entry.js → p-e91d33e0.entry.js} +2 -2
  559. package/dist/wcs/p-f37d7b07.entry.js +2 -0
  560. package/dist/wcs/{p-6d8f0040.entry.js → p-f7897fd4.entry.js} +2 -2
  561. package/dist/wcs/{p-a6d64e5b.entry.js → p-fcc43c82.entry.js} +2 -2
  562. package/dist/wcs/{p-cb9147b8.entry.js → p-fd18dce6.entry.js} +2 -2
  563. package/dist/wcs/p-fed6a8cd.entry.js +2 -0
  564. package/dist/wcs/{p-0d233c6a.entry.js.map → p-fed6a8cd.entry.js.map} +1 -1
  565. package/dist/wcs/{p-d8c4dbc3.entry.js → p-ff20d08b.entry.js} +2 -2
  566. package/dist/wcs/wcs.esm.js +1 -1
  567. package/dist/wcs/wcs.esm.js.map +1 -1
  568. package/package.json +1 -1
  569. package/bundle/p-1329a1af.js +0 -16
  570. package/bundle/p-1329a1af.js.map +0 -1
  571. package/bundle/p-2f7bca1e.js +0 -2
  572. package/bundle/p-2f7bca1e.js.map +0 -1
  573. package/bundle/p-bf326ae8.js +0 -2
  574. package/bundle/p-bf326ae8.js.map +0 -1
  575. package/bundle/p-d018450c.js +0 -2
  576. package/bundle/p-d018450c.js.map +0 -1
  577. package/bundle/p-d3fe6951.js +0 -2
  578. package/bundle/p-ee6ff5f8.js +0 -2
  579. package/bundle/p-ee6ff5f8.js.map +0 -1
  580. package/bundle/p-ff261e50.js.map +0 -1
  581. package/composite-elements/p-00dd13c3.js +0 -16
  582. package/composite-elements/p-00dd13c3.js.map +0 -1
  583. package/composite-elements/p-46f752d5.js +0 -2
  584. package/composite-elements/p-7feba658.js +0 -2
  585. package/composite-elements/p-7feba658.js.map +0 -1
  586. package/composite-elements/p-c028b8e6.js +0 -2
  587. package/composite-elements/p-c028b8e6.js.map +0 -1
  588. package/composite-elements/p-c6adb221.js +0 -2
  589. package/composite-elements/p-c6adb221.js.map +0 -1
  590. package/composite-elements/p-e803bb26.js +0 -2
  591. package/composite-elements/p-e803bb26.js.map +0 -1
  592. package/composite-elements/p-ec3ce4d4.js.map +0 -1
  593. package/dist/cjs/grid-pagination-ded127cc.js.map +0 -1
  594. package/dist/cjs/helpers-2f1a8ddc.js.map +0 -1
  595. package/dist/cjs/wcs-button_2.cjs.entry.js.map +0 -1
  596. package/dist/cjs/wcs-mat-icon.cjs.entry.js +0 -42
  597. package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +0 -1
  598. package/dist/esm/grid-pagination-23102986.js.map +0 -1
  599. package/dist/esm/helpers-89faa1b1.js.map +0 -1
  600. package/dist/esm/wcs-mat-icon.entry.js +0 -38
  601. package/dist/esm/wcs-mat-icon.entry.js.map +0 -1
  602. package/dist/wcs/p-0d233c6a.entry.js +0 -2
  603. package/dist/wcs/p-218b5f3d.entry.js +0 -2
  604. package/dist/wcs/p-218b5f3d.entry.js.map +0 -1
  605. package/dist/wcs/p-5314a64d.js +0 -2
  606. package/dist/wcs/p-5314a64d.js.map +0 -1
  607. package/dist/wcs/p-5443c9af.entry.js +0 -2
  608. package/dist/wcs/p-5443c9af.entry.js.map +0 -1
  609. package/dist/wcs/p-5607246c.entry.js +0 -2
  610. package/dist/wcs/p-59f96b21.entry.js +0 -2
  611. package/dist/wcs/p-6aededc6.entry.js +0 -2
  612. package/dist/wcs/p-7b60d4c7.js +0 -2
  613. package/dist/wcs/p-7b60d4c7.js.map +0 -1
  614. package/dist/wcs/p-7de847e0.entry.js +0 -2
  615. package/dist/wcs/p-8152d360.entry.js +0 -2
  616. package/dist/wcs/p-8152d360.entry.js.map +0 -1
  617. package/dist/wcs/p-82838611.entry.js +0 -16
  618. package/dist/wcs/p-82838611.entry.js.map +0 -1
  619. package/dist/wcs/p-9197e9b5.entry.js +0 -2
  620. package/dist/wcs/p-990698a7.entry.js.map +0 -1
  621. package/dist/wcs/p-9e091c53.entry.js.map +0 -1
  622. package/dist/wcs/p-a60ba874.entry.js +0 -156
  623. package/dist/wcs/p-a60ba874.entry.js.map +0 -1
  624. package/dist/wcs/p-c211a5d1.entry.js +0 -2
  625. package/dist/wcs/p-c3b733ff.entry.js +0 -2
  626. package/dist/wcs/p-c6808cab.entry.js +0 -2
  627. package/dist/wcs/p-c7812760.entry.js +0 -2
  628. package/dist/wcs/p-d3afc02f.entry.js +0 -2
  629. package/dist/wcs/p-e26c19e5.entry.js +0 -2
  630. /package/bundle/{p-d3fe6951.js.map → p-035ad27f.js.map} +0 -0
  631. /package/bundle/{p-5ef2bc63.js.map → p-16c7ed2e.js.map} +0 -0
  632. /package/bundle/{p-475be4d2.js.map → p-5a997d17.js.map} +0 -0
  633. /package/bundle/{p-60193ef5.js.map → p-791fce94.js.map} +0 -0
  634. /package/bundle/{p-7a06295b.js.map → p-87b9556d.js.map} +0 -0
  635. /package/bundle/{p-a0268a31.js.map → p-886109ed.js.map} +0 -0
  636. /package/bundle/{p-d05140f5.js.map → p-9138985e.js.map} +0 -0
  637. /package/bundle/{p-8b186fcf.js.map → p-a9a83300.js.map} +0 -0
  638. /package/bundle/{p-bce8c93f.js.map → p-d7d1ea63.js.map} +0 -0
  639. /package/composite-elements/{p-a90bb01e.js.map → p-061ccda5.js.map} +0 -0
  640. /package/composite-elements/{p-ef26b4d8.js.map → p-2181568b.js.map} +0 -0
  641. /package/composite-elements/{p-87e97a2e.js.map → p-61886571.js.map} +0 -0
  642. /package/composite-elements/{p-6b91c7bd.js.map → p-b53ae1a8.js.map} +0 -0
  643. /package/composite-elements/{p-2454bcae.js.map → p-b6d0a6b4.js.map} +0 -0
  644. /package/composite-elements/{p-46f752d5.js.map → p-cb9faa9b.js.map} +0 -0
  645. /package/composite-elements/{p-5a3d7fec.js.map → p-cd6cca64.js.map} +0 -0
  646. /package/composite-elements/{p-e4e3ed2c.js.map → p-d2d79425.js.map} +0 -0
  647. /package/composite-elements/{p-a70a3379.js.map → p-f0b064a2.js.map} +0 -0
  648. /package/dist/wcs/{p-41b946b2.entry.js.map → p-03ae13ec.entry.js.map} +0 -0
  649. /package/dist/wcs/{p-9197e9b5.entry.js.map → p-07c961b4.entry.js.map} +0 -0
  650. /package/dist/wcs/{p-b42f441f.entry.js.map → p-167108aa.entry.js.map} +0 -0
  651. /package/dist/wcs/{p-d89ad962.entry.js.map → p-17c8f012.entry.js.map} +0 -0
  652. /package/dist/wcs/{p-14dfa087.entry.js.map → p-190a8883.entry.js.map} +0 -0
  653. /package/dist/wcs/{p-0758d22e.entry.js.map → p-276070f3.entry.js.map} +0 -0
  654. /package/dist/wcs/{p-f929b66f.entry.js.map → p-28941abc.entry.js.map} +0 -0
  655. /package/dist/wcs/{p-c169d496.entry.js.map → p-28d52607.entry.js.map} +0 -0
  656. /package/dist/wcs/{p-c211a5d1.entry.js.map → p-2d4fd96a.entry.js.map} +0 -0
  657. /package/dist/wcs/{p-9c6db857.entry.js.map → p-2d5becbf.entry.js.map} +0 -0
  658. /package/dist/wcs/{p-7de847e0.entry.js.map → p-2da579f2.entry.js.map} +0 -0
  659. /package/dist/wcs/{p-53a395a9.entry.js.map → p-2e0238b6.entry.js.map} +0 -0
  660. /package/dist/wcs/{p-9388283a.entry.js.map → p-358a505f.entry.js.map} +0 -0
  661. /package/dist/wcs/{p-e35b138e.entry.js.map → p-38d37878.entry.js.map} +0 -0
  662. /package/dist/wcs/{p-b3b31d43.entry.js.map → p-3bc23ef1.entry.js.map} +0 -0
  663. /package/dist/wcs/{p-912c2c9b.entry.js.map → p-407d9700.entry.js.map} +0 -0
  664. /package/dist/wcs/{p-6f937b20.entry.js.map → p-41383e84.entry.js.map} +0 -0
  665. /package/dist/wcs/{p-53bc2cae.entry.js.map → p-4506e5e4.entry.js.map} +0 -0
  666. /package/dist/wcs/{p-b9368690.entry.js.map → p-48541bf7.entry.js.map} +0 -0
  667. /package/dist/wcs/{p-8332a7e3.entry.js.map → p-4a28d7a3.entry.js.map} +0 -0
  668. /package/dist/wcs/{p-0424e545.entry.js.map → p-4d7bc716.entry.js.map} +0 -0
  669. /package/dist/wcs/{p-367946fe.entry.js.map → p-4f20cdba.entry.js.map} +0 -0
  670. /package/dist/wcs/{p-03838b42.entry.js.map → p-4fad6675.entry.js.map} +0 -0
  671. /package/dist/wcs/{p-f411974e.entry.js.map → p-575881cd.entry.js.map} +0 -0
  672. /package/dist/wcs/{p-c3b733ff.entry.js.map → p-5823cd22.entry.js.map} +0 -0
  673. /package/dist/wcs/{p-c6808cab.entry.js.map → p-5a276237.entry.js.map} +0 -0
  674. /package/dist/wcs/{p-f2c49d83.entry.js.map → p-5b61a775.entry.js.map} +0 -0
  675. /package/dist/wcs/{p-e26c19e5.entry.js.map → p-6033c91b.entry.js.map} +0 -0
  676. /package/dist/wcs/{p-25d7b2f8.entry.js.map → p-6b5db6be.entry.js.map} +0 -0
  677. /package/dist/wcs/{p-b04471f5.entry.js.map → p-6b86d4fa.entry.js.map} +0 -0
  678. /package/dist/wcs/{p-6aededc6.entry.js.map → p-6c6841ac.entry.js.map} +0 -0
  679. /package/dist/wcs/{p-dbf82cb9.js.map → p-6c78d16e.js.map} +0 -0
  680. /package/dist/wcs/{p-6e7db56e.entry.js.map → p-714c3cd7.entry.js.map} +0 -0
  681. /package/dist/wcs/{p-56d9554a.entry.js.map → p-7b67cec9.entry.js.map} +0 -0
  682. /package/dist/wcs/{p-781a956e.entry.js.map → p-7cd88886.entry.js.map} +0 -0
  683. /package/dist/wcs/{p-3e57c746.entry.js.map → p-7f5eea6a.entry.js.map} +0 -0
  684. /package/dist/wcs/{p-beeec782.entry.js.map → p-882886ae.entry.js.map} +0 -0
  685. /package/dist/wcs/{p-5607246c.entry.js.map → p-8fd515a3.entry.js.map} +0 -0
  686. /package/dist/wcs/{p-ff48a8b2.entry.js.map → p-95f35254.entry.js.map} +0 -0
  687. /package/dist/wcs/{p-0cbf08fb.entry.js.map → p-9d47a628.entry.js.map} +0 -0
  688. /package/dist/wcs/{p-59f96b21.entry.js.map → p-9d683786.entry.js.map} +0 -0
  689. /package/dist/wcs/{p-c42a6c1c.entry.js.map → p-a45a1f25.entry.js.map} +0 -0
  690. /package/dist/wcs/{p-f974210c.entry.js.map → p-a9fa5726.entry.js.map} +0 -0
  691. /package/dist/wcs/{p-1c356201.entry.js.map → p-ae305b09.entry.js.map} +0 -0
  692. /package/dist/wcs/{p-d3afc02f.entry.js.map → p-afd3e923.entry.js.map} +0 -0
  693. /package/dist/wcs/{p-3a18535f.entry.js.map → p-b9744cf7.entry.js.map} +0 -0
  694. /package/dist/wcs/{p-cbbca016.entry.js.map → p-cefd8219.entry.js.map} +0 -0
  695. /package/dist/wcs/{p-ae299c3f.entry.js.map → p-d18051b2.entry.js.map} +0 -0
  696. /package/dist/wcs/{p-9d4c8f84.entry.js.map → p-d42f5883.entry.js.map} +0 -0
  697. /package/dist/wcs/{p-7af9a2f3.js.map → p-d6d273d2.js.map} +0 -0
  698. /package/dist/wcs/{p-63a8e5cc.entry.js.map → p-e08febb4.entry.js.map} +0 -0
  699. /package/dist/wcs/{p-8f95bbf3.entry.js.map → p-e91d33e0.entry.js.map} +0 -0
  700. /package/dist/wcs/{p-c7812760.entry.js.map → p-f37d7b07.entry.js.map} +0 -0
  701. /package/dist/wcs/{p-6d8f0040.entry.js.map → p-f7897fd4.entry.js.map} +0 -0
  702. /package/dist/wcs/{p-a6d64e5b.entry.js.map → p-fcc43c82.entry.js.map} +0 -0
  703. /package/dist/wcs/{p-cb9147b8.entry.js.map → p-fd18dce6.entry.js.map} +0 -0
  704. /package/dist/wcs/{p-d8c4dbc3.entry.js.map → p-ff20d08b.entry.js.map} +0 -0
@@ -196,6 +196,7 @@
196
196
  --wcs-button-stroked-border-width: var(--wcs-semantic-border-width-default);
197
197
  --wcs-button-stroked-border-color-default: var(--wcs-semantic-color-border-action-secondary-default);
198
198
  --wcs-button-stroked-border-color-disabled: var(--wcs-semantic-color-border-action-secondary-disabled);
199
+ --wcs-button-gap: var(--wcs-semantic-spacing-base);
199
200
  --wcs-button-height-s: var(--wcs-semantic-size-s);
200
201
  --wcs-button-font-size-s: var(--wcs-semantic-font-size-label-2);
201
202
  --wcs-button-padding-size-s: calc(1.5 * var(--wcs-semantic-spacing-base));
@@ -206,6 +207,12 @@
206
207
  --wcs-button-font-size-l: var(--wcs-semantic-font-size-label-1);
207
208
  --wcs-button-padding-size-l: calc(3 * var(--wcs-semantic-spacing-base));
208
209
  --wcs-button-font-weight: var(--wcs-semantic-font-weight-medium);
210
+ --wcs-button-start-icon-size-l: calc(var(--wcs-button-font-size-l) * 1.5);
211
+ --wcs-button-start-icon-size-m: calc(var(--wcs-button-font-size-m) * 1.5);
212
+ --wcs-button-start-icon-size-s: calc(var(--wcs-button-font-size-s) * 1.5);
213
+ --wcs-button-end-icon-size-l: calc(var(--wcs-button-font-size-l) * 1.5);
214
+ --wcs-button-end-icon-size-m: calc(var(--wcs-button-font-size-m) * 1.5);
215
+ --wcs-button-end-icon-size-s: calc(var(--wcs-button-font-size-s) * 1.5);
209
216
  }
210
217
 
211
218
  .wcs-inner-button:focus-visible {
@@ -246,6 +253,12 @@
246
253
  :host([size=l]):host([shape=round]) ::slotted(wcs-mat-icon), :host([size=l]):host([shape=square]) ::slotted(wcs-mat-icon) {
247
254
  margin: calc(-1 * var(--wcs-button-padding-size-l));
248
255
  }
256
+ :host([size=l]) :host([start-icon]) wcs-mat-icon#start-icon {
257
+ --wcs-mat-icon-font-size-m: var(--wcs-button-start-icon-size-l);
258
+ }
259
+ :host([size=l]) :host([end-icon]) wcs-mat-icon#end-icon {
260
+ --wcs-mat-icon-font-size-m: var(--wcs-button-end-icon-size-l);
261
+ }
249
262
 
250
263
  :host, :host([size=m]) {
251
264
  --wcs-button-padding: 0 var(--wcs-button-padding-size-m);
@@ -256,6 +269,12 @@
256
269
  :host:host([shape=round]) ::slotted(wcs-mat-icon), :host:host([shape=square]) ::slotted(wcs-mat-icon), :host([size=m]):host([shape=round]) ::slotted(wcs-mat-icon), :host([size=m]):host([shape=square]) ::slotted(wcs-mat-icon) {
257
270
  margin: calc(-1 * var(--wcs-button-padding-size-m));
258
271
  }
272
+ :host:host([start-icon]) wcs-mat-icon#start-icon, :host([size=m]):host([start-icon]) wcs-mat-icon#start-icon {
273
+ --wcs-mat-icon-font-size-m: var(--wcs-button-start-icon-size-m);
274
+ }
275
+ :host:host([end-icon]) wcs-mat-icon#end-icon, :host([size=m]):host([end-icon]) wcs-mat-icon#end-icon {
276
+ --wcs-mat-icon-font-size-m: var(--wcs-button-end-icon-size-m);
277
+ }
259
278
 
260
279
  :host([size=s]) {
261
280
  --wcs-button-padding: 0 var(--wcs-button-padding-size-s);
@@ -266,6 +285,12 @@
266
285
  :host([size=s]):host([shape=round]) ::slotted(wcs-mat-icon), :host([size=s]):host([shape=square]) ::slotted(wcs-mat-icon) {
267
286
  margin: calc(-1 * var(--wcs-button-padding-size-s));
268
287
  }
288
+ :host([size=s]):host([start-icon]) wcs-mat-icon#start-icon {
289
+ --wcs-mat-icon-font-size-m: var(--wcs-button-start-icon-size-s);
290
+ }
291
+ :host([size=s]):host([end-icon]) wcs-mat-icon#end-icon {
292
+ --wcs-mat-icon-font-size-m: var(--wcs-button-end-icon-size-s);
293
+ }
269
294
 
270
295
  :host([shape=round]) {
271
296
  --wcs-button-border-radius: var(--wcs-button-border-radius-rounded);
@@ -361,6 +386,7 @@
361
386
  line-height: 1.5;
362
387
  height: var(--wcs-button-height);
363
388
  min-width: var(--wcs-button-min-width);
389
+ gap: var(--wcs-button-gap);
364
390
  transition: color 175ms ease-in-out, background-color 175ms ease-in-out;
365
391
  }
366
392
  .wcs-inner-button::before, .wcs-inner-button::after {
@@ -52,12 +52,24 @@ const BUTTON_INHERITED_ATTRS = ['tabindex', 'title'];
52
52
  * @cssprop --wcs-button-padding-size-l - padding for a size l button
53
53
  *
54
54
  * @cssprop --wcs-button-font-weight - font weight of a plain,stroked,clear button
55
+ *
56
+ * @cssprop --wcs-button-gap - gap between button content (text and icons)
57
+ *
58
+ * @cssprop --wcs-button-start-icon-size-s - size of the start icon for a size s button
59
+ * @cssprop --wcs-button-start-icon-size-m - size of the start icon for a size m button
60
+ * @cssprop --wcs-button-start-icon-size-l - size of the start icon for a size l button
61
+ *
62
+ * @cssprop --wcs-button-end-icon-size-s - size of the end icon for a size s button
63
+ * @cssprop --wcs-button-end-icon-size-m - size of the end icon for a size m button
64
+ * @cssprop --wcs-button-end-icon-size-l - size of the end icon for a size l button
55
65
  */
56
66
  export class Button {
57
67
  constructor() {
58
68
  this.inheritedAttributes = {};
59
69
  this.type = 'button';
60
70
  this.href = undefined;
71
+ this.startIcon = undefined;
72
+ this.endIcon = undefined;
61
73
  this.target = undefined;
62
74
  this.disabled = false;
63
75
  this.ripple = true;
@@ -114,7 +126,7 @@ export class Button {
114
126
  const attrs = this.href !== undefined
115
127
  ? { href: this.href, role: 'button', target: this.target }
116
128
  : { type: this.type };
117
- return (h(TagType, Object.assign({ key: '14f58b90f3d1b05b2709cbdb941621c827d462ec' }, attrs, { class: "wcs-inner-button", disabled: this.disabled || this.loading, ref: (el) => this.nativeButton = el }, this.inheritedAttributes), this.loading && h("wcs-spinner", { key: '58dbb8b462b5023c59e8bf728ba1d93aa0575cb4' }), h("slot", { key: 'b6c394ac1c6a4ee5a9fd6bf10a268420843409d2' })));
129
+ return (h(TagType, Object.assign({ key: '354b94e4b7b5a8666da9eb9b9c3dde2eb7defa82' }, attrs, { class: "wcs-inner-button", disabled: this.disabled || this.loading, ref: (el) => this.nativeButton = el }, this.inheritedAttributes), this.loading && h("wcs-spinner", { key: 'e9712fbc68976f2b2982e1875c70e3dd60027f67' }), this.startIcon && h("wcs-mat-icon", { key: '983131bbd0d2160cb4f167e28ca54775cabda25a', id: "start-icon", size: 'm', icon: this.startIcon }), h("slot", { key: 'd9fd23e642eb9260c7b777a04f68920d5c02774c' }), this.endIcon && h("wcs-mat-icon", { key: 'd16c804a91b7fccc2025229e22e096abe0ccd586', id: "end-icon", size: 'm', icon: this.endIcon })));
118
130
  }
119
131
  static get is() { return "wcs-button"; }
120
132
  static get encapsulation() { return "shadow"; }
@@ -172,6 +184,40 @@ export class Button {
172
184
  "attribute": "href",
173
185
  "reflect": false
174
186
  },
187
+ "startIcon": {
188
+ "type": "string",
189
+ "mutable": false,
190
+ "complexType": {
191
+ "original": "string",
192
+ "resolved": "string",
193
+ "references": {}
194
+ },
195
+ "required": false,
196
+ "optional": true,
197
+ "docs": {
198
+ "tags": [],
199
+ "text": "Name of a wcs-mat-icon to display at the start (left) of the button."
200
+ },
201
+ "attribute": "start-icon",
202
+ "reflect": false
203
+ },
204
+ "endIcon": {
205
+ "type": "string",
206
+ "mutable": false,
207
+ "complexType": {
208
+ "original": "string",
209
+ "resolved": "string",
210
+ "references": {}
211
+ },
212
+ "required": false,
213
+ "optional": true,
214
+ "docs": {
215
+ "tags": [],
216
+ "text": "Name of a wcs-mat-icon to display at the end (right) of the button."
217
+ },
218
+ "attribute": "end-icon",
219
+ "reflect": false
220
+ },
175
221
  "target": {
176
222
  "type": "string",
177
223
  "mutable": false,
@@ -1 +1 @@
1
- {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Element, h, Listen, Method, Prop, Watch } from '@stencil/core';\n\nimport { MDCRipple } from '@material/ripple';\n\nimport {\n WcsButtonMode,\n WcsButtonShape,\n WcsButtonSize,\n WcsButtonType\n} from './button-interface';\nimport { hasShadowDom, inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from '../../utils/helpers';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst BUTTON_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The button component is used to trigger an action. It can also be a link when specifying href.\n * \n * ## Accessibility guidelines 💡\n * > If your button doesn't contain text but only an image, you must set a relevant aria-label on the icon 👉 [see \"Square\" story below](#square)\n * \n * ## Click event\n *\n * The WCS button relies on the native click event to pass a user click to your app.\n * For now, it's not possible for us to prevent the click event to be fired when the button's disabled attribute is true.\n * This means you'll receive click events on a disabled wcs button.\n * If you're using the button with a library like Angular or React, they have internal mechanisms to prevent this behavior. Your callbacks will therefore not be called.\n * To fix this problem, we plan to provide a wcsClick event in addition to the native click for applications developed without frameworks.\n *\n * @cssprop --wcs-button-plain-color-default - Text/icon color of a plain button\n * @cssprop --wcs-button-stroked-color-default - text/icon color of a stroked button\n * @cssprop --wcs-button-clear-color-default - text/icon color of a clear button\n * \n * @cssprop --wcs-button-color-disabled - text/icon color disabled for mode plain, stroked, clear\n *\n * @cssprop --wcs-button-plain-background-color-default background color of a plain button\n * @cssprop --wcs-button-plain-background-color-disabled - disabled background color of a plain button\n * @cssprop --wcs-button-stroked-background-color-default background color of a stroked button\n * @cssprop --wcs-button-stroked-background-color-disabled - disabled background color of a stroked button\n * @cssprop --wcs-button-clear-background-color-default background color of a clear button\n * @cssprop --wcs-button-clear-background-color-disabled - disabled background color of a clear button\n * \n * @cssprop --wcs-button-plain-ripple-color-default - ripple background color of a plain button\n * @cssprop --wcs-button-stroked-ripple-color-default - ripple background color of a stroked button\n * @cssprop --wcs-button-clear-ripple-color-default - ripple background color of a clear button\n * @cssprop --wcs-button-border-radius-default - border radius for a default button\n * @cssprop --wcs-button-border-radius-rounded - border radius for a rounded button\n *\n * @cssprop --wcs-button-stroked-border-width - border width of a stroked button\n * @cssprop --wcs-button-stroked-border-color-default - default border color of a stroked button\n * @cssprop --wcs-button-stroked-border-color-disabled - disabled border color of a stroked button\n *\n * @cssprop --wcs-button-height-s - height for a size s button\n * @cssprop --wcs-button-font-size-s - font-size for a size s button\n * @cssprop --wcs-button-padding-size-s - padding for a size s button\n *\n * @cssprop --wcs-button-height-m - height for a size m button\n * @cssprop --wcs-button-font-size-m - font-size for a size m button\n * @cssprop --wcs-button-padding-size-m - padding for a size m button\n *\n * @cssprop --wcs-button-height-l - height for a size l button\n * @cssprop --wcs-button-font-size-l - font-size for a size l button\n * @cssprop --wcs-button-padding-size-l - padding for a size l button\n *\n * @cssprop --wcs-button-font-weight - font weight of a plain,stroked,clear button\n */\n@Component({\n tag: 'wcs-button',\n styleUrl: 'button.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class Button implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement | HTMLAnchorElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /**\n * Specify the button type.\n */\n @Prop({ mutable: true }) type: WcsButtonType = 'button';\n\n /**\n * Set a URL to point to.<br/>\n * If specified use a `a` tag instead of `btn`.\n */\n @Prop() href?: string;\n\n /**\n * Specifies where to open the linked document when using href (see prop above)<br/>\n * Default '_self' will open the linked document in the same frame as it was clicked\n */\n @Prop() target?: '_blank' | '_self';\n\n /**\n * Specify whether the button is disabled or not.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Specify whether the button should have a ripple effect or not.\n */\n @Prop() ripple = true;\n private mdcRipple: MDCRipple;\n\n /**\n * Specify the size of the button.\n */\n @Prop({ reflect: true }) size: WcsButtonSize = 'm';\n\n /**\n * Specify the shape of the button.\n */\n @Prop({ reflect: true }) shape: WcsButtonShape = 'normal';\n\n /**\n * This attribute specify the appearance of the button.\n */\n @Prop({ reflect: true }) mode: WcsButtonMode = 'plain';\n\n /**\n * Flag to display spinner until the end of action\n */\n @Prop({ reflect: true, mutable: true }) loading: boolean = false;\n\n /**\n * Native event click is emit event if we decide to stop propagation of it\n * @param ev\n */\n @Listen('click') // TODO: define custom event click to be able to stop it's propagation when the custom button is disabled or is in loading state\n onClick(ev: Event) {\n if (this.disabled || this.loading) {\n ev.stopImmediatePropagation();\n }\n if (this.type !== 'button' && hasShadowDom(this.el)) {\n // this button wants to specifically submit a form\n // climb up the dom to see if we're in a <form>\n // and if so, then use JS to submit it\n const form = this.el.closest('form');\n if (form) {\n ev.preventDefault();\n\n const fakeButton = window.document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n form.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, BUTTON_INHERITED_ATTRS),\n };\n }\n\n componentDidLoad() {\n this.mdcRipple = new MDCRipple(this.el.shadowRoot.querySelector('.wcs-inner-button'));\n this.updateRippleState();\n }\n \n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n private updateRippleState() {\n this.mdcRipple.disabled = !this.ripple;\n }\n\n private getTagName() {\n return this.href !== undefined ? 'a' : 'button';\n }\n\n @Watch('ripple')\n onRippleChange() {\n this.updateRippleState();\n }\n\n render() {\n const TagType = this.getTagName();\n const attrs = this.href !== undefined\n ? { href: this.href, role: 'button', target: this.target }\n : { type: this.type };\n return (\n <TagType\n {...attrs}\n class=\"wcs-inner-button\"\n disabled = {this.disabled || this.loading}\n ref={(el: HTMLButtonElement | HTMLAnchorElement) => this.nativeButton = el}\n {...this.inheritedAttributes}\n >\n {\n this.loading && <wcs-spinner></wcs-spinner>\n }\n <slot/>\n </TagType>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"button.js","sourceRoot":"","sources":["../../../src/components/button/button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, Element, h, Listen, Method, Prop, Watch } from '@stencil/core';\n\nimport { MDCRipple } from '@material/ripple';\n\nimport {\n WcsButtonMode,\n WcsButtonShape,\n WcsButtonSize,\n WcsButtonType\n} from './button-interface';\nimport { hasShadowDom, inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from '../../utils/helpers';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst BUTTON_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The button component is used to trigger an action. It can also be a link when specifying href.\n *\n * ## Accessibility guidelines 💡\n * > If your button doesn't contain text but only an image, you must set a relevant aria-label on the icon 👉 [see \"Square\" story below](#square)\n *\n * ## Click event\n *\n * The WCS button relies on the native click event to pass a user click to your app.\n * For now, it's not possible for us to prevent the click event to be fired when the button's disabled attribute is true.\n * This means you'll receive click events on a disabled wcs button.\n * If you're using the button with a library like Angular or React, they have internal mechanisms to prevent this behavior. Your callbacks will therefore not be called.\n * To fix this problem, we plan to provide a wcsClick event in addition to the native click for applications developed without frameworks.\n *\n * @cssprop --wcs-button-plain-color-default - Text/icon color of a plain button\n * @cssprop --wcs-button-stroked-color-default - text/icon color of a stroked button\n * @cssprop --wcs-button-clear-color-default - text/icon color of a clear button\n *\n * @cssprop --wcs-button-color-disabled - text/icon color disabled for mode plain, stroked, clear\n *\n * @cssprop --wcs-button-plain-background-color-default background color of a plain button\n * @cssprop --wcs-button-plain-background-color-disabled - disabled background color of a plain button\n * @cssprop --wcs-button-stroked-background-color-default background color of a stroked button\n * @cssprop --wcs-button-stroked-background-color-disabled - disabled background color of a stroked button\n * @cssprop --wcs-button-clear-background-color-default background color of a clear button\n * @cssprop --wcs-button-clear-background-color-disabled - disabled background color of a clear button\n *\n * @cssprop --wcs-button-plain-ripple-color-default - ripple background color of a plain button\n * @cssprop --wcs-button-stroked-ripple-color-default - ripple background color of a stroked button\n * @cssprop --wcs-button-clear-ripple-color-default - ripple background color of a clear button\n * @cssprop --wcs-button-border-radius-default - border radius for a default button\n * @cssprop --wcs-button-border-radius-rounded - border radius for a rounded button\n *\n * @cssprop --wcs-button-stroked-border-width - border width of a stroked button\n * @cssprop --wcs-button-stroked-border-color-default - default border color of a stroked button\n * @cssprop --wcs-button-stroked-border-color-disabled - disabled border color of a stroked button\n *\n * @cssprop --wcs-button-height-s - height for a size s button\n * @cssprop --wcs-button-font-size-s - font-size for a size s button\n * @cssprop --wcs-button-padding-size-s - padding for a size s button\n *\n * @cssprop --wcs-button-height-m - height for a size m button\n * @cssprop --wcs-button-font-size-m - font-size for a size m button\n * @cssprop --wcs-button-padding-size-m - padding for a size m button\n *\n * @cssprop --wcs-button-height-l - height for a size l button\n * @cssprop --wcs-button-font-size-l - font-size for a size l button\n * @cssprop --wcs-button-padding-size-l - padding for a size l button\n *\n * @cssprop --wcs-button-font-weight - font weight of a plain,stroked,clear button\n * \n * @cssprop --wcs-button-gap - gap between button content (text and icons)\n * \n * @cssprop --wcs-button-start-icon-size-s - size of the start icon for a size s button\n * @cssprop --wcs-button-start-icon-size-m - size of the start icon for a size m button\n * @cssprop --wcs-button-start-icon-size-l - size of the start icon for a size l button\n * \n * @cssprop --wcs-button-end-icon-size-s - size of the end icon for a size s button\n * @cssprop --wcs-button-end-icon-size-m - size of the end icon for a size m button\n * @cssprop --wcs-button-end-icon-size-l - size of the end icon for a size l button\n */\n@Component({\n tag: 'wcs-button',\n styleUrl: 'button.scss',\n shadow: {\n delegatesFocus: true\n }\n})\nexport class Button implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeButton?: HTMLButtonElement | HTMLAnchorElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /**\n * Specify the button type.\n */\n @Prop({ mutable: true }) type: WcsButtonType = 'button';\n\n /**\n * Set a URL to point to.<br/>\n * If specified use a `a` tag instead of `btn`.\n */\n @Prop() href?: string;\n\n /**\n * Name of a wcs-mat-icon to display at the start (left) of the button.\n */\n @Prop() startIcon?: string;\n\n /**\n * Name of a wcs-mat-icon to display at the end (right) of the button.\n */\n @Prop() endIcon?: string;\n\n /**\n * Specifies where to open the linked document when using href (see prop above)<br/>\n * Default '_self' will open the linked document in the same frame as it was clicked\n */\n @Prop() target?: '_blank' | '_self';\n\n /**\n * Specify whether the button is disabled or not.\n */\n @Prop({ reflect: true }) disabled: boolean = false;\n\n /**\n * Specify whether the button should have a ripple effect or not.\n */\n @Prop() ripple = true;\n private mdcRipple: MDCRipple;\n\n /**\n * Specify the size of the button.\n */\n @Prop({ reflect: true }) size: WcsButtonSize = 'm';\n\n /**\n * Specify the shape of the button.\n */\n @Prop({ reflect: true }) shape: WcsButtonShape = 'normal';\n\n /**\n * This attribute specify the appearance of the button.\n */\n @Prop({ reflect: true }) mode: WcsButtonMode = 'plain';\n\n /**\n * Flag to display spinner until the end of action\n */\n @Prop({ reflect: true, mutable: true }) loading: boolean = false;\n\n /**\n * Native event click is emit event if we decide to stop propagation of it\n * @param ev\n */\n @Listen('click') // TODO: define custom event click to be able to stop it's propagation when the custom button is disabled or is in loading state\n onClick(ev: Event) {\n if (this.disabled || this.loading) {\n ev.stopImmediatePropagation();\n }\n if (this.type !== 'button' && hasShadowDom(this.el)) {\n // this button wants to specifically submit a form\n // climb up the dom to see if we're in a <form>\n // and if so, then use JS to submit it\n const form = this.el.closest('form');\n if (form) {\n ev.preventDefault();\n\n const fakeButton = window.document.createElement('button');\n fakeButton.type = this.type;\n fakeButton.style.display = 'none';\n form.appendChild(fakeButton);\n fakeButton.click();\n fakeButton.remove();\n }\n }\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, BUTTON_INHERITED_ATTRS),\n };\n }\n\n componentDidLoad() {\n this.mdcRipple = new MDCRipple(this.el.shadowRoot.querySelector('.wcs-inner-button'));\n this.updateRippleState();\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeButton, attr, value);\n }\n\n private updateRippleState() {\n this.mdcRipple.disabled = !this.ripple;\n }\n\n private getTagName() {\n return this.href !== undefined ? 'a' : 'button';\n }\n\n @Watch('ripple')\n onRippleChange() {\n this.updateRippleState();\n }\n\n render() {\n const TagType = this.getTagName();\n const attrs = this.href !== undefined\n ? { href: this.href, role: 'button', target: this.target }\n : { type: this.type };\n return (\n <TagType\n {...attrs}\n class=\"wcs-inner-button\"\n disabled = {this.disabled || this.loading}\n ref={(el: HTMLButtonElement | HTMLAnchorElement) => this.nativeButton = el}\n {...this.inheritedAttributes}\n >\n {this.loading && <wcs-spinner></wcs-spinner>}\n {/* We decide to keep icon to size m, because we want to manually handle the font size based on the button one's */}\n {this.startIcon && <wcs-mat-icon id=\"start-icon\" size='m' icon={this.startIcon}></wcs-mat-icon>}\n <slot/>\n {this.endIcon && <wcs-mat-icon id=\"end-icon\" size='m' icon={this.endIcon}></wcs-mat-icon>}\n </TagType>\n );\n }\n}\n"]}
@@ -51,7 +51,7 @@ export class Card {
51
51
  return this.el.querySelector('wcs-card-body');
52
52
  }
53
53
  render() {
54
- return (h("slot", { key: '58153235717a53e0b2fc02a22a8656985059d292', onSlotchange: () => this.onSlotChange() }));
54
+ return (h("slot", { key: 'ad099801956318833081d25c13d014bfea7d6482', onSlotchange: () => this.onSlotChange() }));
55
55
  }
56
56
  static get is() { return "wcs-card"; }
57
57
  static get encapsulation() { return "shadow"; }
@@ -18,7 +18,7 @@ export class CardBody {
18
18
  this.orientation = orientation;
19
19
  }
20
20
  render() {
21
- return (h(Host, { key: '27547ebfbab0737a4947baf9ff4086d37b494155', class: this.orientation }, h("slot", { key: 'f9444717438f9981b479b39575c03297b04a5847' })));
21
+ return (h(Host, { key: 'cae1b8af34a96e747e3e8b281d7bff90d2e55f40', class: this.orientation }, h("slot", { key: 'd62727e6291f2e0913ac3dd29b44bda542101687' })));
22
22
  }
23
23
  static get is() { return "wcs-card-body"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -17,7 +17,7 @@ import { Host, h } from "@stencil/core";
17
17
  */
18
18
  export class CardContent {
19
19
  render() {
20
- return (h(Host, { key: 'c270d71ea05c98a0bb8acc01809d3d0e66b13152' }, h("slot", { key: 'caa336108533b717cf8ae3620382ffae05aabd9b' })));
20
+ return (h(Host, { key: '1ec73be8ca667468b90bdba53ba3e7db263198ad' }, h("slot", { key: '3bc5b7bcb24c01974b1de78864d50a2ded6822d3' })));
21
21
  }
22
22
  static get is() { return "wcs-card-content"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -7,7 +7,7 @@ import { Host, h } from "@stencil/core";
7
7
  */
8
8
  export class CardFooter {
9
9
  render() {
10
- return (h(Host, { key: '8b600e63a3178bbf9c3d577053b927ff6ea9a48f' }, h("slot", { key: '1ce0728f66cd296c44dcc4d85c9e9d9dcbae853a' })));
10
+ return (h(Host, { key: 'b4cb7626b89fd1b2a8a63bf86cdcd7be94f52490' }, h("slot", { key: '33ad1bca3da4f4626cd95b023e34ebd0d2769cab' })));
11
11
  }
12
12
  static get is() { return "wcs-card-footer"; }
13
13
  static get encapsulation() { return "shadow"; }
@@ -14,7 +14,7 @@ import { Host, h } from "@stencil/core";
14
14
  */
15
15
  export class CardHeader {
16
16
  render() {
17
- return (h(Host, { key: '6a79563b6c56b7c7262e447ea5946d094590afb6' }, h("slot", { key: '74b2f0d43ee991ebee97c0d9d7f6620e30dc9881', name: "badges" }), h("div", { key: '71f110c0e5360352a059d84235c1a1d513c83c0a', class: "header-content" }, h("h3", { key: '4b4763ae375f4b96e0018772df7f9af0a4fd20fe' }, h("slot", { key: 'c2925912655cbca5e351067e42f6a9c67de07083' })), h("slot", { key: '37b2f523adaf2685de1d76dde3942dba5c2379c1', name: "actions" }))));
17
+ return (h(Host, { key: '076bbf30337bf078dcbe0440f331770f6f972d75' }, h("slot", { key: '968eb49e82378adf277049329678de5321c6eaa5', name: "badges" }), h("div", { key: '31905f8b42b83ce332a15eaf10a9c30f622eef43', class: "header-content" }, h("h3", { key: 'f392a4c7cd130e6aec82d70b9f2ebca6c9efa27f' }, h("slot", { key: '3b940462fd222749e9dfa2654bf42b61419443cd' })), h("slot", { key: '41751b8ca5ed6e0b5b73940e1103452842ba092c', name: "actions" }))));
18
18
  }
19
19
  static get is() { return "wcs-card-header"; }
20
20
  static get encapsulation() { return "shadow"; }
@@ -21,7 +21,7 @@ export class CardMedia {
21
21
  this.orientation = orientation;
22
22
  }
23
23
  render() {
24
- return (h(Host, { key: '8b54a791a4d1c8bfdc772cb5cd16f3a3dfec0682', class: this.orientation }, h("slot", { key: 'a7f5751e8e1f3ef3b1b18af34384cb598a80b690' }), this.orientation === 'vertical' ? h("slot", { name: "vertical" }) : h("slot", { name: "horizontal" })));
24
+ return (h(Host, { key: '5fa4c3caf607dd3d9159615fc040bb0876d7f196', class: this.orientation }, h("slot", { key: '71e36b2b56ef12bc0d7910b24e04c204a3ec8de2' }), this.orientation === 'vertical' ? h("slot", { name: "vertical" }) : h("slot", { name: "horizontal" })));
25
25
  }
26
26
  static get is() { return "wcs-card-media"; }
27
27
  static get encapsulation() { return "shadow"; }
@@ -118,7 +118,7 @@ export class Checkbox {
118
118
  }
119
119
  }
120
120
  render() {
121
- return (h(Host, { key: '84af94b1e903c4a7a44d7c216b122faa1d67c125' }, h("label", { key: 'df9cd51e804a3d07dcd9698b98492f868747a5ef', htmlFor: this.name, class: "wcs-container", "aria-disabled": this.disabled }, h("input", Object.assign({ key: '68d52bb45b20bd37dfab4845e7a664b0a5e65e49', onBlur: this.handleBlur.bind(this), onChange: this.handleChange.bind(this), onFocus: this.handleFocus.bind(this), onClick: this.handleInputClick.bind(this), checked: this.checked, class: "wcs-checkbox", type: "checkbox", ref: (el) => (this.nativeInput = el), name: this.name, disabled: this.disabled, id: this.name }, this.inheritedAttributes)), h("span", { key: '506c869a0bcbf742422e7b2029e8862687cbf286', class: "wcs-checkmark" }), h("span", { key: '81e8130a3f3eed1d02d0bf075f5793b0e12a64ae', class: "text" }, h("slot", { key: '97387419d47b55af6c4911df5aeaa2bcd89f750c', onSlotchange: (_) => this.onSlotChange() })))));
121
+ return (h(Host, { key: '5fd6c24e65737d519d2c1bc2542c388102045a68' }, h("label", { key: 'b8d19ab82557533773c9c8b212ff0252207ac297', htmlFor: this.name, class: "wcs-container", "aria-disabled": this.disabled }, h("input", Object.assign({ key: '5fb8bd0f083d35478445dca15abf4a3ab9203a5f', onBlur: this.handleBlur.bind(this), onChange: this.handleChange.bind(this), onFocus: this.handleFocus.bind(this), onClick: this.handleInputClick.bind(this), checked: this.checked, class: "wcs-checkbox", type: "checkbox", ref: (el) => (this.nativeInput = el), name: this.name, disabled: this.disabled, id: this.name }, this.inheritedAttributes)), h("span", { key: '8392d4a4959edb657d18ad72b0cab722ee0f5ab5', class: "wcs-checkmark" }), h("span", { key: '442f8a695ce2eb54171dd222113dfb5c654b4510', class: "text" }, h("slot", { key: 'b67d13f75fef7c21b9152c431310e88a3a6e905d', onSlotchange: (_) => this.onSlotChange() })))));
122
122
  }
123
123
  static get is() { return "wcs-checkbox"; }
124
124
  static get encapsulation() { return "shadow"; }
@@ -185,6 +185,39 @@ test.describe('Chip component', () => {
185
185
  const c3 = page.locator('#c3');
186
186
  await expect(c3).toBeFocused();
187
187
  });
188
+ test('after dismissing the last chip, focus moves to previous actionable chip', async ({ page }) => {
189
+ // Given
190
+ await setWcsContent(page, `
191
+ <div>
192
+ <wcs-chip id="c1" value="c1" label="One"></wcs-chip>
193
+ <wcs-chip id="c2" mode="dismissible" value="c2" label="Two"></wcs-chip>
194
+ </div>
195
+ `);
196
+ const c2 = page.locator('#c2 button');
197
+ // When
198
+ await c2.click();
199
+ await page.waitForChanges();
200
+ // Then
201
+ const c1 = page.locator('#c1');
202
+ await expect(c1).toBeFocused();
203
+ });
204
+ test('skips disabled previous chips when moving focus after dismissing the last chip', async ({ page }) => {
205
+ // Given
206
+ await setWcsContent(page, `
207
+ <div>
208
+ <wcs-chip id="c1" value="c1" label="One"></wcs-chip>
209
+ <wcs-chip id="c2" disabled value="c2" label="Two"></wcs-chip>
210
+ <wcs-chip id="c3" mode="dismissible" value="c3" label="Three"></wcs-chip>
211
+ </div>
212
+ `);
213
+ const c3 = page.locator('#c3 button');
214
+ // When
215
+ await c3.click();
216
+ await page.waitForChanges();
217
+ // Then
218
+ const c1 = page.locator('#c1');
219
+ await expect(c1).toBeFocused();
220
+ });
188
221
  });
189
222
  });
190
223
  //# sourceMappingURL=chip.e2e.playwright.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chip.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/chip/chip.e2e.playwright.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAW,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IACjC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACzB,IAAI,CAAC,qFAAqF,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAC9H,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;YAEjF,OAAO;YACP,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,CAAC,2BAA2B,CAAC,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QACxG,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,8DAA8D,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YACvG,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;YAEjF,uBAAuB;YACvB,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,4BAA4B;YAC5B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,CAAC,2BAA2B,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,CAAC,2BAA2B,CAAC,CAAC,4BAA4B,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uEAAuE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAChH,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAEnD,OAAO;YACP,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,CAAC,sBAAsB,CAAC,CAAC,yBAAyB,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAC/E,iDAAiD;YACjD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QAC3B,IAAI,CAAC,uDAAuD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAChG,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAEnD,OAAO;YACP,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAChC,IAAI,CAAC,qGAAqG,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAC9I,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEtC,eAAe;YACf,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACvD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YAC5D,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;YAEpD,OAAO;YACP,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,eAAe;YACf,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sFAAsF,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAC/H,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAE5C,OAAO;YACP,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,eAAe,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAElE,gBAAgB;YAChB,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;YACrD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QACjC,IAAI,CAAC,4DAA4D,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YACrG,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,2BAA2B,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;YAEjF,OAAO;YACP,MAAM,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1B,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,CAAC,2BAA2B,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACrD,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YACpF,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;aAEzB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtC,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YACvE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YAE5C,OAAO;YACP,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACjC,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,CAAC,sBAAsB,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC;YAC3D,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACnC,IAAI,CAAC,sEAAsE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAC/G,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;aAKzB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEvC,OAAO;YACP,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uEAAuE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAChH,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;aAKzB,CAAC,CAAC;YAEH,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEtC,OAAO;YACP,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sDAAsD,EAAE,KAAK,EAAE,EAAE,IAAI,EAAqB,EAAE,EAAE;YAC/F,QAAQ;YACR,MAAM,aAAa,CAAC,IAAI,EAAE;;;;;;aAMzB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAEvC,OAAO;YACP,MAAM,GAAG,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE5B,OAAO;YACP,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Chip component', () => {\n test.describe('Events', () => {\n test('should emit wcsChipSelectChange with selected=true on click (selectable by default)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipSelectChangeEventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When\n await chip.click();\n await page.waitForChanges();\n\n // Then\n expect(wcsChipSelectChangeEventSpy).toHaveReceivedEventDetail({ value: 'chip-id', selected: true });\n });\n\n test('should toggle selection and emit on Space/Enter (selectable)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipSelectChangeEventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When - Space selects\n await chip.focus();\n await chip.press('Space');\n // When - Enter toggles back\n await chip.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsChipSelectChangeEventSpy).toHaveReceivedEventTimes(2);\n expect(wcsChipSelectChangeEventSpy).toHaveNthReceivedEventDetail(1, { value: 'chip-id', selected: false });\n });\n\n test('should emit wcsChipDismiss when clicking dismiss button (dismissible)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipDismissEventSpy = await chip.spyOnEvent('wcsChipDismiss');\n const dismissBtn = page.locator('wcs-chip button');\n\n // When\n await dismissBtn.click();\n await page.waitForChanges();\n\n // Then\n expect(wcsChipDismissEventSpy).toHaveReceivedEventDetail({ value: 'chip-id' });\n // open prop should be false -> attribute removed\n await expect(chip).not.toHaveAttribute('open');\n });\n });\n\n test.describe('Keyboard', () => {\n test('Delete/Backspace on dismiss button dismisses the chip', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipDismissEventSpy = await chip.spyOnEvent('wcsChipDismiss');\n const dismissBtn = page.locator('wcs-chip button');\n\n // When\n await dismissBtn.focus();\n await page.keyboard.press('Delete');\n await page.waitForChanges();\n\n // Then\n await expect(wcsChipDismissEventSpy).toHaveReceivedEventTimes(1);\n await expect(chip).not.toHaveAttribute('open');\n });\n });\n\n test.describe('Accessibility', () => {\n test('exposes proper ARIA for selectable: role=checkbox, aria-checked toggles, tabindex respects disabled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n\n // Then default\n await expect(chip).toHaveAttribute('role', 'checkbox');\n await expect(chip).toHaveAttribute('aria-checked', 'false');\n await expect(chip).toHaveAttribute('tabindex', '0');\n\n // When\n await chip.click();\n await page.waitForChanges();\n\n // Then toggled\n await expect(chip).toHaveAttribute('aria-checked', 'true');\n });\n\n test('exposes proper ARIA/disabled for dismissible: button has label and respects disabled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const btn = page.locator('wcs-chip button');\n\n // Then\n await expect(btn).toHaveAttribute('aria-label', 'Supprimer Chip');\n\n // When disabled\n await chip.evaluate((el: any) => el.disabled = true);\n await page.waitForChanges();\n\n // Then\n await expect(chip).toHaveAttribute('aria-disabled', 'true');\n await expect(btn).toBeDisabled();\n });\n });\n\n test.describe('Disabled state', () => {\n test('does not emit select event when disabled (click and Space)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip disabled value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipSelectChangeEventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When\n await chip.click({ force: true });\n await chip.press('Space');\n await page.waitForChanges();\n\n // Then\n expect(wcsChipSelectChangeEventSpy).toHaveReceivedEventTimes(0);\n await expect(chip).toHaveAttribute('tabindex', '-1');\n await expect(chip).toHaveAttribute('aria-checked', 'false');\n });\n\n test('does not emit dismiss event when disabled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip disabled mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipDismissEventSpy = await chip.spyOnEvent('wcsChipDismiss');\n const btn = page.locator('wcs-chip button');\n\n // When\n await btn.click({ force: true });\n await page.waitForChanges();\n\n // Then\n expect(wcsChipDismissEventSpy).toHaveReceivedEventTimes(0);\n await expect(chip).toHaveAttribute('open', '');\n });\n });\n\n test.describe('Focus management', () => {\n test('after dismiss, focus moves to next actionable chip (selectable host)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" value=\"c2\" label=\"Two\"></wcs-chip>\n </div>\n `);\n\n const btn = page.locator('#c1 button');\n\n // When\n await btn.click();\n await page.waitForChanges();\n\n // Then\n const c2 = page.locator('#c2');\n await expect(c2).toBeFocused();\n });\n\n test('after dismiss, focus moves to next actionable chip (dismissable host)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" mode=\"dismissible\" value=\"c2\" label=\"Two\"></wcs-chip>\n </div>\n `);\n\n const c1 = page.locator('#c1 button');\n\n // When\n await c1.click();\n await page.waitForChanges();\n\n // Then\n const c2 = page.locator('#c2');\n await expect(c2).toBeFocused();\n });\n\n test('skips disabled chips when moving focus after dismiss', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" disabled value=\"c2\" label=\"Two\"></wcs-chip>\n <wcs-chip id=\"c3\" value=\"c3\" label=\"Three\"></wcs-chip>\n </div>\n `);\n\n const btn = page.locator('#c1 button');\n\n // When\n await btn.click();\n await page.waitForChanges();\n\n // Then\n const c3 = page.locator('#c3');\n await expect(c3).toBeFocused();\n });\n });\n});\n"]}
1
+ {"version":3,"file":"chip.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/chip/chip.e2e.playwright.ts"],"names":[],"mappings":"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","sourcesContent":["import { setWcsContent } from '../../utils/playwright/test';\nimport { test, E2EPage } from \"@stencil/playwright\";\n\nimport { expect } from \"@playwright/test\";\n\ntest.describe('Chip component', () => {\n test.describe('Events', () => {\n test('should emit wcsChipSelectChange with selected=true on click (selectable by default)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipSelectChangeEventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When\n await chip.click();\n await page.waitForChanges();\n\n // Then\n expect(wcsChipSelectChangeEventSpy).toHaveReceivedEventDetail({ value: 'chip-id', selected: true });\n });\n\n test('should toggle selection and emit on Space/Enter (selectable)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipSelectChangeEventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When - Space selects\n await chip.focus();\n await chip.press('Space');\n // When - Enter toggles back\n await chip.press('Enter');\n await page.waitForChanges();\n\n // Then\n expect(wcsChipSelectChangeEventSpy).toHaveReceivedEventTimes(2);\n expect(wcsChipSelectChangeEventSpy).toHaveNthReceivedEventDetail(1, { value: 'chip-id', selected: false });\n });\n\n test('should emit wcsChipDismiss when clicking dismiss button (dismissible)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipDismissEventSpy = await chip.spyOnEvent('wcsChipDismiss');\n const dismissBtn = page.locator('wcs-chip button');\n\n // When\n await dismissBtn.click();\n await page.waitForChanges();\n\n // Then\n expect(wcsChipDismissEventSpy).toHaveReceivedEventDetail({ value: 'chip-id' });\n // open prop should be false -> attribute removed\n await expect(chip).not.toHaveAttribute('open');\n });\n });\n\n test.describe('Keyboard', () => {\n test('Delete/Backspace on dismiss button dismisses the chip', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipDismissEventSpy = await chip.spyOnEvent('wcsChipDismiss');\n const dismissBtn = page.locator('wcs-chip button');\n\n // When\n await dismissBtn.focus();\n await page.keyboard.press('Delete');\n await page.waitForChanges();\n\n // Then\n await expect(wcsChipDismissEventSpy).toHaveReceivedEventTimes(1);\n await expect(chip).not.toHaveAttribute('open');\n });\n });\n\n test.describe('Accessibility', () => {\n test('exposes proper ARIA for selectable: role=checkbox, aria-checked toggles, tabindex respects disabled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n\n // Then default\n await expect(chip).toHaveAttribute('role', 'checkbox');\n await expect(chip).toHaveAttribute('aria-checked', 'false');\n await expect(chip).toHaveAttribute('tabindex', '0');\n\n // When\n await chip.click();\n await page.waitForChanges();\n\n // Then toggled\n await expect(chip).toHaveAttribute('aria-checked', 'true');\n });\n\n test('exposes proper ARIA/disabled for dismissible: button has label and respects disabled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const btn = page.locator('wcs-chip button');\n\n // Then\n await expect(btn).toHaveAttribute('aria-label', 'Supprimer Chip');\n\n // When disabled\n await chip.evaluate((el: any) => el.disabled = true);\n await page.waitForChanges();\n\n // Then\n await expect(chip).toHaveAttribute('aria-disabled', 'true');\n await expect(btn).toBeDisabled();\n });\n });\n\n test.describe('Disabled state', () => {\n test('does not emit select event when disabled (click and Space)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip disabled value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipSelectChangeEventSpy = await chip.spyOnEvent('wcsChipSelectChange');\n\n // When\n await chip.click({ force: true });\n await chip.press('Space');\n await page.waitForChanges();\n\n // Then\n expect(wcsChipSelectChangeEventSpy).toHaveReceivedEventTimes(0);\n await expect(chip).toHaveAttribute('tabindex', '-1');\n await expect(chip).toHaveAttribute('aria-checked', 'false');\n });\n\n test('does not emit dismiss event when disabled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-chip disabled mode=\"dismissible\" value=\"chip-id\" label=\"Chip\"></wcs-chip>\n `);\n\n const chip = page.locator('wcs-chip');\n const wcsChipDismissEventSpy = await chip.spyOnEvent('wcsChipDismiss');\n const btn = page.locator('wcs-chip button');\n\n // When\n await btn.click({ force: true });\n await page.waitForChanges();\n\n // Then\n expect(wcsChipDismissEventSpy).toHaveReceivedEventTimes(0);\n await expect(chip).toHaveAttribute('open', '');\n });\n });\n\n test.describe('Focus management', () => {\n test('after dismiss, focus moves to next actionable chip (selectable host)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" value=\"c2\" label=\"Two\"></wcs-chip>\n </div>\n `);\n\n const btn = page.locator('#c1 button');\n\n // When\n await btn.click();\n await page.waitForChanges();\n\n // Then\n const c2 = page.locator('#c2');\n await expect(c2).toBeFocused();\n });\n\n test('after dismiss, focus moves to next actionable chip (dismissable host)', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" mode=\"dismissible\" value=\"c2\" label=\"Two\"></wcs-chip>\n </div>\n `);\n\n const c1 = page.locator('#c1 button');\n\n // When\n await c1.click();\n await page.waitForChanges();\n\n // Then\n const c2 = page.locator('#c2');\n await expect(c2).toBeFocused();\n });\n\n test('skips disabled chips when moving focus after dismiss', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" mode=\"dismissible\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" disabled value=\"c2\" label=\"Two\"></wcs-chip>\n <wcs-chip id=\"c3\" value=\"c3\" label=\"Three\"></wcs-chip>\n </div>\n `);\n\n const btn = page.locator('#c1 button');\n\n // When\n await btn.click();\n await page.waitForChanges();\n\n // Then\n const c3 = page.locator('#c3');\n await expect(c3).toBeFocused();\n });\n\n test('after dismissing the last chip, focus moves to previous actionable chip', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" mode=\"dismissible\" value=\"c2\" label=\"Two\"></wcs-chip>\n </div>\n `);\n\n const c2 = page.locator('#c2 button');\n\n // When\n await c2.click();\n await page.waitForChanges();\n\n // Then\n const c1 = page.locator('#c1');\n await expect(c1).toBeFocused();\n });\n\n test('skips disabled previous chips when moving focus after dismissing the last chip', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <div>\n <wcs-chip id=\"c1\" value=\"c1\" label=\"One\"></wcs-chip>\n <wcs-chip id=\"c2\" disabled value=\"c2\" label=\"Two\"></wcs-chip>\n <wcs-chip id=\"c3\" mode=\"dismissible\" value=\"c3\" label=\"Three\"></wcs-chip>\n </div>\n `);\n\n const c3 = page.locator('#c3 button');\n\n // When\n await c3.click();\n await page.waitForChanges();\n\n // Then\n const c1 = page.locator('#c1');\n await expect(c1).toBeFocused();\n });\n });\n});\n"]}
@@ -92,17 +92,30 @@ export class Chip {
92
92
  dismiss() {
93
93
  this.open = false;
94
94
  this.wcsChipDismiss.emit({ value: this.value });
95
- this.focusNextChip();
95
+ const nextChip = this.findAdjacentActionableChip('next');
96
+ if (nextChip) {
97
+ this.focusChip(nextChip);
98
+ }
99
+ else {
100
+ const previousChip = this.findAdjacentActionableChip('previous');
101
+ if (previousChip) {
102
+ this.focusChip(previousChip);
103
+ }
104
+ ;
105
+ }
96
106
  }
97
- focusNextChip() {
98
- let currentElement = this.el.nextElementSibling;
107
+ findAdjacentActionableChip(direction) {
108
+ const getSibling = (el) => direction === 'next'
109
+ ? el.nextElementSibling
110
+ : el.previousElementSibling;
111
+ let currentElement = getSibling(this.el);
99
112
  while (currentElement) {
100
113
  if (this.isActionableChip(currentElement)) {
101
- this.focusChip(currentElement);
102
- return;
114
+ return currentElement;
103
115
  }
104
- currentElement = currentElement.nextElementSibling;
116
+ currentElement = getSibling(currentElement);
105
117
  }
118
+ return null;
106
119
  }
107
120
  isActionableChip(element) {
108
121
  return element instanceof HTMLElement
@@ -1 +1 @@
1
- {"version":3,"file":"chip.js","sourceRoot":"","sources":["../../../src/components/chip/chip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, EventEmitter, Prop, Event, Element, Host, h } from '@stencil/core';\nimport { WcsChipMode, WcsChipVariant } from './chip-interface';\n\n/**\n * The chip component is a small, interactive element that can be used to represent an input, filter, or tag.\n * It can be in one of two modes: 'selectable' or 'dismissible'.\n * - In 'selectable' mode, the chip can be selected or deselected, and emits an event when clicked.\n * - In 'dismissible' mode, the chip can be dismissed (removed) by clicking a dismiss icon, and emits an event when the dismiss icon is clicked.\n *\n * @cssprop --wcs-chip-height - Height of the chip\n * @cssprop --wcs-chip-font-size - Font size of the chip text\n * @cssprop --wcs-chip-font-weight - Font weight of the chip text\n *\n * @cssprop --wcs-chip-focus-outline-border-width - Border width of the chip focus outline\n *\n * @cssprop --wcs-chip-padding-vertical - Vertical padding (top - bottom) of the chip\n * @cssprop --wcs-chip-padding-horizontal - Horizontal padding (left - right) of the chip\n * @cssprop --wcs-chip-padding-horizontal-dismissible - Horizontal padding (left - right) of the chip with 'dismissible' mode\n *\n * @cssprop --wcs-chip-selectable-background-color - Background color of the chip with 'selectable' mode in default state\n * @cssprop --wcs-chip-selectable-background-color-pressed - Background color of the chip with 'selectable' mode when pressed\n * @cssprop --wcs-chip-selectable-background-color-hover - Background color of the chip with 'selectable' mode when hovered\n * @cssprop --wcs-chip-selectable-background-color-selected - Background color of the chip with 'selectable' mode when selected\n * @cssprop --wcs-chip-selectable-background-color-selected-hover - Background color of the chip with 'selectable' mode when selected and hovered\n * @cssprop --wcs-chip-selectable-background-color-selected-pressed - Background color of the chip with 'selectable' mode when selected and pressed\n * @cssprop --wcs-chip-selectable-background-color-selected-disabled - Background color of the chip with 'selectable' mode when selected and disabled\n *\n * @cssprop --wcs-chip-selectable-color - Text color of the chip with 'selectable' mode in default state\n * @cssprop --wcs-chip-selectable-color-hover - Text color of the chip with 'selectable' mode when hovered\n * @cssprop --wcs-chip-selectable-color-pressed - Text color of the chip with 'selectable' mode when pressed\n * @cssprop --wcs-chip-selectable-color-disabled - Text color of the chip with 'selectable' mode when disabled\n * @cssprop --wcs-chip-selectable-color-selected - Text color of the chip with 'selectable' mode when selected\n * @cssprop --wcs-chip-selectable-color-selected-hover - Text color of the chip with 'selectable' mode when selected and hovered\n * @cssprop --wcs-chip-selectable-color-selected-pressed - Text color of the chip with 'selectable' mode when selected and pressed\n *\n * @cssprop --wcs-chip-border-radius - Border radius of the chip\n * @cssprop --wcs-chip-border-line-width - Border line width of the chip\n * @cssprop --wcs-chip-selectable-border-color - Border color of the chip with 'selectable' mode in default state\n * @cssprop --wcs-chip-selectable-border-color-hover - Border color of the chip with 'selectable' mode when hovered\n * @cssprop --wcs-chip-selectable-border-color-pressed - Border color of the chip with 'selectable' mode when pressed\n * @cssprop --wcs-chip-selectable-border-color-disabled - Border color of the chip with 'selectable' mode when disabled\n *\n * @cssprop --wcs-chip-selectable-content-gap - Gap between content elements in chip with 'selectable' mode\n * @cssprop --wcs-chip-selectable-focus-outline-color - Focus outline color of the chip with 'selectable' mode\n *\n * @cssprop --wcs-chip-dismissible-content-gap - Gap between content elements in chip with 'dismissible' mode\n * @cssprop --wcs-chip-dismissible-padding-right - Right padding of the chip with 'dismissible' mode\n * @cssprop --wcs-chip-dismissible-button-outline-radius - Outline radius of the button for the chip with 'dismissible' mode\n *\n * @cssprop --wcs-chip-dismissible-primary-focus-outline-color - Focus outline color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-border-color - Border color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-border-color-disabled - Border color of the chip with 'dismissible' mode and 'primary' variant when disabled\n * @cssprop --wcs-chip-dismissible-primary-color - Text color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-color-hover - Text color of the chip with 'dismissible' mode and 'primary' variant when hovered\n * @cssprop --wcs-chip-dismissible-primary-color-pressed - Text color of the chip with 'dismissible' mode and 'primary' variant when pressed\n * @cssprop --wcs-chip-dismissible-primary-color-disabled - Text color of the chip with 'dismissible' mode and 'primary' variant when disabled\n * @cssprop --wcs-chip-dismissible-primary-background-color - Background color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-background-color-hover - Background color of the chip with 'dismissible' mode and 'primary' variant when hovered\n * @cssprop --wcs-chip-dismissible-primary-background-color-pressed - Background color of the chip with 'dismissible' mode and 'primary' variant when pressed\n * @cssprop --wcs-chip-dismissible-primary-background-color-disabled - Background color of the chip with 'dismissible' mode and 'primary' variant when disabled\n *\n * @cssprop --wcs-chip-dismissible-secondary-button-focus-outline-color - Button focus outline color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-border-color - Border color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-border-color-disabled - Border color of the chip with 'dismissible' mode and 'secondary' variant when disabled\n * @cssprop --wcs-chip-dismissible-secondary-color - Text color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-color-disabled - Text color of the chip with 'dismissible' mode and 'secondary' variant when disabled\n * @cssprop --wcs-chip-dismissible-secondary-background-color - Background color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color - Button background color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color-hover - Button background color of the chip with 'dismissible' mode and 'secondary' variant when hovered\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color-pressed - Button background color of the chip with 'dismissible' mode and 'secondary' variant when pressed\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color-disabled - Button background color of the chip with 'dismissible' mode and 'secondary' variant when disabled\n */\n@Component({\n tag: 'wcs-chip',\n styleUrl: 'chip.scss',\n shadow: true\n})\nexport class Chip implements ComponentInterface {\n @Element() el!: HTMLWcsChipElement;\n /**\n * Unique value representing the chip identifier in events.\n */\n @Prop() value: string;\n\n /**\n * Text label displayed on the chip.\n */\n @Prop() label: string;\n\n /**\n * If `true`, the chip is selected.\n * This property is only used in 'selectable' mode.\n */\n @Prop({ reflect: true }) selected = false;\n\n /**\n * If `true`, the chip is open.\n * This property is used to control the visibility of the chip in the dismissible mode.\n * When the user clicks the dismiss icon, this property automatically becomes `false`, hiding the chip.\n */\n @Prop({ reflect: true }) open = true;\n\n /**\n * If `true`, the chip is disabled.\n * The chip will not respond to click events and will not emit any events.\n * This property is used in both 'selectable' and 'dismissible' modes.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * Defines the visual style of the chip for the dismissible mode.\n */\n @Prop({ reflect: true }) variant: WcsChipVariant = 'primary';\n\n /**\n * Defines the mode of the chip.\n * Can be 'selectable' or 'dismissible'.\n * - 'selectable': The chip can be selected and emits an event when clicked.\n * - 'dismissible': The chip can be dismissed (removed) and emits an event when the dismiss icon is clicked.\n */\n @Prop({ reflect: true }) mode: WcsChipMode = 'selectable';\n\n /**\n * Emitted when the chip is clicked in 'selectable' mode.\n */\n @Event() wcsChipSelectChange: EventEmitter<{ value: string; selected: boolean }>;\n\n /**\n * Emitted when the dismiss icon is clicked in 'dismissible' mode.\n */\n @Event() wcsChipDismiss: EventEmitter<{ value: string }>;\n\n\n private select() {\n this.selected = !this.selected; // Toggle the selected state\n this.wcsChipSelectChange.emit({ value: this.value, selected: this.selected });\n }\n\n private dismiss() {\n this.open = false;\n this.wcsChipDismiss.emit({ value: this.value });\n this.focusNextChip();\n }\n\n private focusNextChip(): void {\n let currentElement = this.el.nextElementSibling;\n\n while (currentElement) {\n if (this.isActionableChip(currentElement)) {\n this.focusChip(currentElement as HTMLWcsChipElement);\n return;\n }\n currentElement = currentElement.nextElementSibling;\n }\n }\n\n private isActionableChip(element: Element | null): element is HTMLWcsChipElement {\n return element instanceof HTMLElement\n && element.tagName === 'WCS-CHIP'\n && !(element as HTMLWcsChipElement).disabled;\n }\n\n private focusChip(chip: HTMLWcsChipElement): void {\n if (chip.mode === 'selectable') {\n chip.focus();\n } else if (chip.mode === 'dismissible') {\n chip.shadowRoot?.querySelector('button')?.focus();\n }\n }\n\n private handleClick() {\n if (this.disabled || this.mode !== 'selectable') {\n return;\n }\n this.select();\n };\n\n private handleDismiss = (event: Event) => {\n if (this.disabled || this.mode !== 'dismissible') {\n return;\n }\n event.stopPropagation(); // Prevent the click event from bubbling up to the chip click handler\n this.dismiss();\n };\n\n private handleKeydown(ev) {\n if (this.disabled) {\n return;\n }\n if (this.mode === 'selectable') {\n if (ev.key === 'Enter' || ev.key === ' ') {\n this.select();\n }\n } else if (this.mode === 'dismissible') {\n if (ev.key === 'Delete' || ev.key === 'Backspace') {\n this.dismiss();\n }\n }\n }\n\n render() {\n const commonProps = {\n 'aria-disabled': this.disabled ? 'true' : null\n };\n\n if (this.mode === 'selectable') {\n return (\n <Host\n {...commonProps}\n role=\"checkbox\"\n aria-checked={this.selected ? 'true' : 'false'}\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleClick.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n >\n {this.selected && (\n <svg class=\"check-icon\" aria-hidden=\"true\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M23.712 8.3011L8.0292 23.7157C7.6356 24.095 6.9984 24.095 6.6264 23.7157L0.288 17.4955C-0.096 17.1226 -0.096 16.496 0.288 16.1192L2.1552 14.2739C2.5536 13.9036 3.1776 13.9036 3.5532 14.2739L6.6264 17.2764C6.9984 17.6583 7.6356 17.6583 8.0292 17.2764L20.4384 5.08081C20.8236 4.70662 21.4536 4.70662 21.8364 5.08081L23.712 6.91841C24.096 7.29516 24.096 7.91923 23.712 8.3011Z\"\n fill=\"white\" />\n </svg>\n )}\n <span>{this.label}</span>\n </Host>\n );\n } else {\n return (\n <Host\n {...commonProps}\n >\n <span>{this.label}</span>\n <button\n aria-label={`Supprimer ${this.label}`}\n disabled={this.disabled}\n onClick={this.handleDismiss.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n >\n <svg class=\"dismiss-icon\" aria-hidden=\"true\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.2656 12.0298L19.588 6.72176C20.1908 6.12119 20.1061 5.05213 19.5034 4.45043C18.9006 3.84986 17.914 3.84986 17.3112 4.45043L11.9887 9.7596L6.66743 4.45043C6.06351 3.84986 5.07691 3.84986 4.47412 4.45043C3.87132 5.05213 3.82843 6.07942 4.43122 6.68112L9.75365 11.9892L4.43122 17.2983C3.82843 17.8989 3.87132 18.9262 4.47412 19.5279C5.07691 20.1296 6.10527 20.1702 6.70807 19.5685L12.0305 14.2605L17.3112 19.5279C17.914 20.1296 18.9006 20.1296 19.5034 19.5279C20.1061 18.9262 20.149 17.8989 19.5462 17.2983L14.2656 12.0298Z\"\n fill=\"currentColor\" />\n </svg>\n </button>\n </Host>\n );\n }\n }\n}\n\n"]}
1
+ {"version":3,"file":"chip.js","sourceRoot":"","sources":["../../../src/components/chip/chip.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, EventEmitter, Prop, Event, Element, Host, h } from '@stencil/core';\nimport { WcsChipMode, WcsChipVariant } from './chip-interface';\n\ntype ChipFocusDirection = 'previous' | 'next';\n\n/**\n * The chip component is a small, interactive element that can be used to represent an input, filter, or tag.\n * It can be in one of two modes: 'selectable' or 'dismissible'.\n * - In 'selectable' mode, the chip can be selected or deselected, and emits an event when clicked.\n * - In 'dismissible' mode, the chip can be dismissed (removed) by clicking a dismiss icon, and emits an event when the dismiss icon is clicked.\n *\n * @cssprop --wcs-chip-height - Height of the chip\n * @cssprop --wcs-chip-font-size - Font size of the chip text\n * @cssprop --wcs-chip-font-weight - Font weight of the chip text\n *\n * @cssprop --wcs-chip-focus-outline-border-width - Border width of the chip focus outline\n *\n * @cssprop --wcs-chip-padding-vertical - Vertical padding (top - bottom) of the chip\n * @cssprop --wcs-chip-padding-horizontal - Horizontal padding (left - right) of the chip\n * @cssprop --wcs-chip-padding-horizontal-dismissible - Horizontal padding (left - right) of the chip with 'dismissible' mode\n *\n * @cssprop --wcs-chip-selectable-background-color - Background color of the chip with 'selectable' mode in default state\n * @cssprop --wcs-chip-selectable-background-color-pressed - Background color of the chip with 'selectable' mode when pressed\n * @cssprop --wcs-chip-selectable-background-color-hover - Background color of the chip with 'selectable' mode when hovered\n * @cssprop --wcs-chip-selectable-background-color-selected - Background color of the chip with 'selectable' mode when selected\n * @cssprop --wcs-chip-selectable-background-color-selected-hover - Background color of the chip with 'selectable' mode when selected and hovered\n * @cssprop --wcs-chip-selectable-background-color-selected-pressed - Background color of the chip with 'selectable' mode when selected and pressed\n * @cssprop --wcs-chip-selectable-background-color-selected-disabled - Background color of the chip with 'selectable' mode when selected and disabled\n *\n * @cssprop --wcs-chip-selectable-color - Text color of the chip with 'selectable' mode in default state\n * @cssprop --wcs-chip-selectable-color-hover - Text color of the chip with 'selectable' mode when hovered\n * @cssprop --wcs-chip-selectable-color-pressed - Text color of the chip with 'selectable' mode when pressed\n * @cssprop --wcs-chip-selectable-color-disabled - Text color of the chip with 'selectable' mode when disabled\n * @cssprop --wcs-chip-selectable-color-selected - Text color of the chip with 'selectable' mode when selected\n * @cssprop --wcs-chip-selectable-color-selected-hover - Text color of the chip with 'selectable' mode when selected and hovered\n * @cssprop --wcs-chip-selectable-color-selected-pressed - Text color of the chip with 'selectable' mode when selected and pressed\n *\n * @cssprop --wcs-chip-border-radius - Border radius of the chip\n * @cssprop --wcs-chip-border-line-width - Border line width of the chip\n * @cssprop --wcs-chip-selectable-border-color - Border color of the chip with 'selectable' mode in default state\n * @cssprop --wcs-chip-selectable-border-color-hover - Border color of the chip with 'selectable' mode when hovered\n * @cssprop --wcs-chip-selectable-border-color-pressed - Border color of the chip with 'selectable' mode when pressed\n * @cssprop --wcs-chip-selectable-border-color-disabled - Border color of the chip with 'selectable' mode when disabled\n *\n * @cssprop --wcs-chip-selectable-content-gap - Gap between content elements in chip with 'selectable' mode\n * @cssprop --wcs-chip-selectable-focus-outline-color - Focus outline color of the chip with 'selectable' mode\n *\n * @cssprop --wcs-chip-dismissible-content-gap - Gap between content elements in chip with 'dismissible' mode\n * @cssprop --wcs-chip-dismissible-padding-right - Right padding of the chip with 'dismissible' mode\n * @cssprop --wcs-chip-dismissible-button-outline-radius - Outline radius of the button for the chip with 'dismissible' mode\n *\n * @cssprop --wcs-chip-dismissible-primary-focus-outline-color - Focus outline color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-border-color - Border color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-border-color-disabled - Border color of the chip with 'dismissible' mode and 'primary' variant when disabled\n * @cssprop --wcs-chip-dismissible-primary-color - Text color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-color-hover - Text color of the chip with 'dismissible' mode and 'primary' variant when hovered\n * @cssprop --wcs-chip-dismissible-primary-color-pressed - Text color of the chip with 'dismissible' mode and 'primary' variant when pressed\n * @cssprop --wcs-chip-dismissible-primary-color-disabled - Text color of the chip with 'dismissible' mode and 'primary' variant when disabled\n * @cssprop --wcs-chip-dismissible-primary-background-color - Background color of the chip with 'dismissible' mode and 'primary' variant\n * @cssprop --wcs-chip-dismissible-primary-background-color-hover - Background color of the chip with 'dismissible' mode and 'primary' variant when hovered\n * @cssprop --wcs-chip-dismissible-primary-background-color-pressed - Background color of the chip with 'dismissible' mode and 'primary' variant when pressed\n * @cssprop --wcs-chip-dismissible-primary-background-color-disabled - Background color of the chip with 'dismissible' mode and 'primary' variant when disabled\n *\n * @cssprop --wcs-chip-dismissible-secondary-button-focus-outline-color - Button focus outline color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-border-color - Border color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-border-color-disabled - Border color of the chip with 'dismissible' mode and 'secondary' variant when disabled\n * @cssprop --wcs-chip-dismissible-secondary-color - Text color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-color-disabled - Text color of the chip with 'dismissible' mode and 'secondary' variant when disabled\n * @cssprop --wcs-chip-dismissible-secondary-background-color - Background color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color - Button background color of the chip with 'dismissible' mode and 'secondary' variant\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color-hover - Button background color of the chip with 'dismissible' mode and 'secondary' variant when hovered\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color-pressed - Button background color of the chip with 'dismissible' mode and 'secondary' variant when pressed\n * @cssprop --wcs-chip-dismissible-secondary-button-background-color-disabled - Button background color of the chip with 'dismissible' mode and 'secondary' variant when disabled\n */\n@Component({\n tag: 'wcs-chip',\n styleUrl: 'chip.scss',\n shadow: true\n})\nexport class Chip implements ComponentInterface {\n @Element() el!: HTMLWcsChipElement;\n /**\n * Unique value representing the chip identifier in events.\n */\n @Prop() value: string;\n\n /**\n * Text label displayed on the chip.\n */\n @Prop() label: string;\n\n /**\n * If `true`, the chip is selected.\n * This property is only used in 'selectable' mode.\n */\n @Prop({ reflect: true }) selected = false;\n\n /**\n * If `true`, the chip is open.\n * This property is used to control the visibility of the chip in the dismissible mode.\n * When the user clicks the dismiss icon, this property automatically becomes `false`, hiding the chip.\n */\n @Prop({ reflect: true }) open = true;\n\n /**\n * If `true`, the chip is disabled.\n * The chip will not respond to click events and will not emit any events.\n * This property is used in both 'selectable' and 'dismissible' modes.\n */\n @Prop({ reflect: true }) disabled = false;\n\n /**\n * Defines the visual style of the chip for the dismissible mode.\n */\n @Prop({ reflect: true }) variant: WcsChipVariant = 'primary';\n\n /**\n * Defines the mode of the chip.\n * Can be 'selectable' or 'dismissible'.\n * - 'selectable': The chip can be selected and emits an event when clicked.\n * - 'dismissible': The chip can be dismissed (removed) and emits an event when the dismiss icon is clicked.\n */\n @Prop({ reflect: true }) mode: WcsChipMode = 'selectable';\n\n /**\n * Emitted when the chip is clicked in 'selectable' mode.\n */\n @Event() wcsChipSelectChange: EventEmitter<{ value: string; selected: boolean }>;\n\n /**\n * Emitted when the dismiss icon is clicked in 'dismissible' mode.\n */\n @Event() wcsChipDismiss: EventEmitter<{ value: string }>;\n\n\n private select() {\n this.selected = !this.selected; // Toggle the selected state\n this.wcsChipSelectChange.emit({ value: this.value, selected: this.selected });\n }\n\n private dismiss() {\n this.open = false;\n this.wcsChipDismiss.emit({ value: this.value });\n\n const nextChip = this.findAdjacentActionableChip('next');\n if (nextChip) {\n this.focusChip(nextChip);\n } else {\n const previousChip = this.findAdjacentActionableChip('previous');\n if (previousChip) {\n this.focusChip(previousChip)\n };\n }\n }\n\n private findAdjacentActionableChip(direction: ChipFocusDirection): HTMLWcsChipElement | null {\n const getSibling = (el: Element) => direction === 'next' \n ? el.nextElementSibling \n : el.previousElementSibling;\n\n let currentElement = getSibling(this.el);\n\n while (currentElement) {\n if (this.isActionableChip(currentElement)) {\n return currentElement;\n }\n currentElement = getSibling(currentElement);\n }\n\n return null;\n }\n\n private isActionableChip(element: Element | null): element is HTMLWcsChipElement {\n return element instanceof HTMLElement\n && element.tagName === 'WCS-CHIP'\n && !(element as HTMLWcsChipElement).disabled;\n }\n\n private focusChip(chip: HTMLWcsChipElement): void {\n if (chip.mode === 'selectable') {\n chip.focus();\n } else if (chip.mode === 'dismissible') {\n chip.shadowRoot?.querySelector('button')?.focus();\n }\n }\n\n private handleClick() {\n if (this.disabled || this.mode !== 'selectable') {\n return;\n }\n this.select();\n };\n\n private handleDismiss = (event: Event) => {\n if (this.disabled || this.mode !== 'dismissible') {\n return;\n }\n event.stopPropagation(); // Prevent the click event from bubbling up to the chip click handler\n this.dismiss();\n };\n\n private handleKeydown(ev) {\n if (this.disabled) {\n return;\n }\n if (this.mode === 'selectable') {\n if (ev.key === 'Enter' || ev.key === ' ') {\n this.select();\n }\n } else if (this.mode === 'dismissible') {\n if (ev.key === 'Delete' || ev.key === 'Backspace') {\n this.dismiss();\n }\n }\n }\n\n render() {\n const commonProps = {\n 'aria-disabled': this.disabled ? 'true' : null\n };\n\n if (this.mode === 'selectable') {\n return (\n <Host\n {...commonProps}\n role=\"checkbox\"\n aria-checked={this.selected ? 'true' : 'false'}\n tabindex={this.disabled ? -1 : 0}\n onClick={this.handleClick.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n >\n {this.selected && (\n <svg class=\"check-icon\" aria-hidden=\"true\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M23.712 8.3011L8.0292 23.7157C7.6356 24.095 6.9984 24.095 6.6264 23.7157L0.288 17.4955C-0.096 17.1226 -0.096 16.496 0.288 16.1192L2.1552 14.2739C2.5536 13.9036 3.1776 13.9036 3.5532 14.2739L6.6264 17.2764C6.9984 17.6583 7.6356 17.6583 8.0292 17.2764L20.4384 5.08081C20.8236 4.70662 21.4536 4.70662 21.8364 5.08081L23.712 6.91841C24.096 7.29516 24.096 7.91923 23.712 8.3011Z\"\n fill=\"white\" />\n </svg>\n )}\n <span>{this.label}</span>\n </Host>\n );\n } else {\n return (\n <Host\n {...commonProps}\n >\n <span>{this.label}</span>\n <button\n aria-label={`Supprimer ${this.label}`}\n disabled={this.disabled}\n onClick={this.handleDismiss.bind(this)}\n onKeyDown={this.handleKeydown.bind(this)}\n >\n <svg class=\"dismiss-icon\" aria-hidden=\"true\" width=\"12\" height=\"12\" viewBox=\"0 0 24 24\"\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M14.2656 12.0298L19.588 6.72176C20.1908 6.12119 20.1061 5.05213 19.5034 4.45043C18.9006 3.84986 17.914 3.84986 17.3112 4.45043L11.9887 9.7596L6.66743 4.45043C6.06351 3.84986 5.07691 3.84986 4.47412 4.45043C3.87132 5.05213 3.82843 6.07942 4.43122 6.68112L9.75365 11.9892L4.43122 17.2983C3.82843 17.8989 3.87132 18.9262 4.47412 19.5279C5.07691 20.1296 6.10527 20.1702 6.70807 19.5685L12.0305 14.2605L17.3112 19.5279C17.914 20.1296 18.9006 20.1296 19.5034 19.5279C20.1061 18.9262 20.149 17.8989 19.5462 17.2983L14.2656 12.0298Z\"\n fill=\"currentColor\" />\n </svg>\n </button>\n </Host>\n );\n }\n }\n}\n\n"]}
@@ -78,11 +78,11 @@ export class ComNav {
78
78
  }
79
79
  render() {
80
80
  const menuAriaLabel = this.inheritedAttributes['aria-label'] || undefined;
81
- return (h(Host, { key: 'b39ff3dbd6d304ad0252e0fcfd2e0c5716b666db' }, h("div", { key: 'f84b73c9cee6295a7776576afeb61b65b71ea34e', class: "container" }, h("div", { key: 'a39b867e9d102abb4e4c13503a544681cd9b7fd8', class: "container-left" }, h("div", { key: '49db5dd80f097a9b2ccaf39fc64be9f6100108be', class: "app-name" }, this.appName, h("slot", { key: '3cfe05e6e510826ffd2168e6edc3380bc92ad459', name: "app-name" })), this.currentActiveSizing === 'desktop' ?
81
+ return (h(Host, { key: '0ad6128d41f1a09da5bfc1668a9c5ca88e0a10dc' }, h("div", { key: '3c6fc5016fe04299461271e9d7ee5d52198e0e94', class: "container" }, h("div", { key: '229cb6d60903fd5d7998db5079589a67af95f87c', class: "container-left" }, h("div", { key: '59d5ece9de29819279b2601646e5a95e48f5113d', class: "app-name" }, this.appName, h("slot", { key: '4b205236b381eb02b8aeaf7149f00c2ccf24f1a0', name: "app-name" })), this.currentActiveSizing === 'desktop' ?
82
82
  h("nav", Object.assign({ role: "navigation" }, this.inheritedAttributes), h("div", { class: "menu-bar", role: "list" }, this.currentActiveSizing === 'desktop'
83
83
  ? h("slot", null)
84
84
  : null))
85
- : null), h("div", { key: '83496cccd32eec07f5a508dbf36b591442e668e2', class: "container-right" }, h("slot", { key: 'cf68946afcefa0b77fb57019f9734e5ff1e763aa', name: "actions" }), this.currentActiveSizing === 'mobile' ?
85
+ : null), h("div", { key: '49ee0dd4b30bab8e83707380daee66220dd74117', class: "container-right" }, h("slot", { key: '3cf89cb129b2a59221578f5da6410965fb3f4da2', name: "actions" }), this.currentActiveSizing === 'mobile' ?
86
86
  h("nav", Object.assign({ id: "wcs-com-nav-mobile-menu", role: "navigation" }, this.inheritedAttributes), h("button", { id: "mobile-menu-icon", "aria-label": menuAriaLabel, "aria-expanded": this.mobileMenuOpen ? "true" : "false", "aria-controls": "wcs-com-nav-mobile-menu", onClick: () => this.mobileMenuIconClick() }), this.currentActiveSizing === 'mobile'
87
87
  ? h("div", { class: "mobile-overlay", "data-mobile-open": this.mobileMenuOpen, role: "list" }, h("slot", null))
88
88
  : null)
@@ -103,9 +103,9 @@ export class ComNavCategory {
103
103
  (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
104
104
  }
105
105
  render() {
106
- return (h(Host, { key: '0b5d69d30228c1585c17d74bf8183f6fe91c1696', role: "listitem", onClick: evt => this.onClick(evt) }, this.currentActiveSizing === 'mobile' ?
106
+ return (h(Host, { key: 'cab005c22a1390a75127cc8ee4691a90fb06443c', role: "listitem", onClick: evt => this.onClick(evt) }, this.currentActiveSizing === 'mobile' ?
107
107
  h("h3", { role: "presentation", class: "label-container" }, h("span", { class: "label" }, this.label))
108
- : h("button", Object.assign({ class: "label-container", "aria-controls": this.categoryItemsId, "aria-expanded": this.categoryOpen ? 'true' : 'false', ref: (el) => (this.nativeButton = el), onClick: _ => this.categoryOpen = !this.categoryOpen }, this.inheritedAttributes), h("span", { class: "label" }, this.label), h("span", { class: "arrow-container" }, h("span", { "aria-hidden": "true", class: "arrow-icon" }, "\uF107"))), h("div", { key: '8269a3a8eb304343e6beef3cfde1e20976e02bbb', class: "item-container", role: "list", "aria-label": this.label, id: this.categoryItemsId, tabIndex: -1, "data-open": this.categoryOpen, onKeyDown: evt => this.handleCategoryItemsKeyDown(evt), onClick: (evt) => this.handleItemClick(evt) }, h("slot", { key: '0cd3f5916499f4e14d554e7fe963a2a384c4b39d' }))));
108
+ : h("button", Object.assign({ class: "label-container", "aria-controls": this.categoryItemsId, "aria-expanded": this.categoryOpen ? 'true' : 'false', ref: (el) => (this.nativeButton = el), onClick: _ => this.categoryOpen = !this.categoryOpen }, this.inheritedAttributes), h("span", { class: "label" }, this.label), h("span", { class: "arrow-container" }, h("span", { "aria-hidden": "true", class: "arrow-icon" }, "\uF107"))), h("div", { key: '2e6b6e969a0fff4bc6e9ce70ffeb0dc0cb599865', class: "item-container", role: "list", "aria-label": this.label, id: this.categoryItemsId, tabIndex: -1, "data-open": this.categoryOpen, onKeyDown: evt => this.handleCategoryItemsKeyDown(evt), onClick: (evt) => this.handleItemClick(evt) }, h("slot", { key: 'ee841a45fa5d9ec6a80c8015246551c4eb793dcf' }))));
109
109
  }
110
110
  static get is() { return "wcs-com-nav-category"; }
111
111
  static get encapsulation() { return "shadow"; }
@@ -12,7 +12,7 @@ export class ComNavItem {
12
12
  this.wcsClickOnFinalAction.emit();
13
13
  }
14
14
  render() {
15
- return (h(Host, { key: '25690c3eecac76d2b29b0aeda90f5e1bf5fd0b22', role: "listitem" }, h("slot", { key: '236d67ffd9fefb7650d2b67cee685852030adb4b' }), h("span", { key: '2ef478d77dc28d169817500145c8d9df525bd439', class: "arrow-container" }, h("span", { key: '0fafbba11e817663ad7e18ff6947cdbd07494f69', "aria-hidden": "true", class: "arrow-icon" }, "\uF107"))));
15
+ return (h(Host, { key: 'f99424e8faebbae16b206f49c003a34bd6824b6a', role: "listitem" }, h("slot", { key: 'f6b8dc69ba05d1c9ca8785b2905218612e9e6b8e' }), h("span", { key: 'b24f65c8fd58dcccca47d55ed18ab74f6572b122', class: "arrow-container" }, h("span", { key: '7f7e3cabd2006d703474969edfca277d0fc6ce0c', "aria-hidden": "true", class: "arrow-icon" }, "\uF107"))));
16
16
  }
17
17
  static get is() { return "wcs-com-nav-item"; }
18
18
  static get encapsulation() { return "shadow"; }