wcs-core 7.2.2 → 7.4.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 (302) hide show
  1. package/README.md +11 -9
  2. package/design-tokens/dist/sncf-groupe-root-scoped.css +227 -227
  3. package/design-tokens/dist/sncf-groupe.css +227 -227
  4. package/design-tokens/dist/sncf-holding-root-scoped.css +227 -227
  5. package/design-tokens/dist/sncf-holding.css +227 -227
  6. package/design-tokens/dist/sncf-reseau-root-scoped.css +227 -227
  7. package/design-tokens/dist/sncf-reseau.css +227 -227
  8. package/design-tokens/dist/sncf-voyageurs-root-scoped.css +242 -242
  9. package/design-tokens/dist/sncf-voyageurs.css +242 -242
  10. package/dist/cjs/accessibility-5f681a74.js.map +1 -1
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/cjs/{popper-8d6e7fca.js → popper-1b61df21.js} +10 -17
  13. package/dist/cjs/popper-1b61df21.js.map +1 -0
  14. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +1 -1
  15. package/dist/cjs/wcs-accordion-panel.cjs.entry.js.map +1 -1
  16. package/dist/cjs/wcs-accordion.cjs.entry.js +2 -1
  17. package/dist/cjs/wcs-accordion.cjs.entry.js.map +1 -1
  18. package/dist/cjs/wcs-breadcrumb.cjs.entry.js +1 -1
  19. package/dist/cjs/wcs-breadcrumb.cjs.entry.js.map +1 -1
  20. package/dist/cjs/wcs-checkbox.cjs.entry.js +3 -2
  21. package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
  22. package/dist/cjs/wcs-chip.cjs.entry.js +102 -0
  23. package/dist/cjs/wcs-chip.cjs.entry.js.map +1 -0
  24. package/dist/cjs/wcs-com-nav-item.cjs.entry.js +1 -1
  25. package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +1 -1
  26. package/dist/cjs/wcs-com-nav.cjs.entry.js +3 -3
  27. package/dist/cjs/wcs-com-nav.cjs.entry.js.map +1 -1
  28. package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
  29. package/dist/cjs/wcs-error_3.cjs.entry.js +1 -1
  30. package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -1
  31. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +1 -1
  32. package/dist/cjs/wcs-grid.cjs.entry.js +5 -4
  33. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  34. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +3 -2
  35. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
  36. package/dist/cjs/wcs-modal.cjs.entry.js +2 -2
  37. package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wcs-select_2.cjs.entry.js +59 -24
  39. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  40. package/dist/cjs/wcs-tabs.cjs.entry.js +1 -1
  41. package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
  42. package/dist/cjs/wcs.cjs.js +1 -1
  43. package/dist/collection/collection-manifest.json +1 -0
  44. package/dist/collection/components/accordion/accordion.e2e.playwright.js +183 -0
  45. package/dist/collection/components/accordion/accordion.e2e.playwright.js.map +1 -0
  46. package/dist/collection/components/accordion/accordion.js +2 -1
  47. package/dist/collection/components/accordion/accordion.js.map +1 -1
  48. package/dist/collection/components/accordion-panel/accordion-panel.js +3 -3
  49. package/dist/collection/components/accordion-panel/accordion-panel.js.map +1 -1
  50. package/dist/collection/components/alert/alert.e2e.playwright.js +125 -0
  51. package/dist/collection/components/alert/alert.e2e.playwright.js.map +1 -0
  52. package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js +107 -0
  53. package/dist/collection/components/alert-drawer/alert-drawer.e2e.playwright.js.map +1 -0
  54. package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js +188 -0
  55. package/dist/collection/components/breadcrumb/breadcrumb.e2e.playwright.js.map +1 -0
  56. package/dist/collection/components/breadcrumb/breadcrumb.js +2 -2
  57. package/dist/collection/components/breadcrumb/breadcrumb.js.map +1 -1
  58. package/dist/collection/components/button/button.e2e.playwright.js +26 -0
  59. package/dist/collection/components/button/button.e2e.playwright.js.map +1 -0
  60. package/dist/collection/components/button/button.js +1 -1
  61. package/dist/collection/components/checkbox/checkbox.css +3 -0
  62. package/dist/collection/components/checkbox/checkbox.e2e.playwright.js +39 -0
  63. package/dist/collection/components/checkbox/checkbox.e2e.playwright.js.map +1 -0
  64. package/dist/collection/components/checkbox/checkbox.js +21 -2
  65. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  66. package/dist/collection/components/chip/chip-interface.js +2 -0
  67. package/dist/collection/components/chip/chip-interface.js.map +1 -0
  68. package/dist/collection/components/chip/chip.css +220 -0
  69. package/dist/collection/components/chip/chip.e2e.playwright.js +190 -0
  70. package/dist/collection/components/chip/chip.e2e.playwright.js.map +1 -0
  71. package/dist/collection/components/chip/chip.js +341 -0
  72. package/dist/collection/components/chip/chip.js.map +1 -0
  73. package/dist/collection/components/com-nav/com-nav.css +15 -0
  74. package/dist/collection/components/com-nav/{com-nav.e2e.js → com-nav.e2e.playwright.js} +60 -44
  75. package/dist/collection/components/com-nav/com-nav.e2e.playwright.js.map +1 -0
  76. package/dist/collection/components/com-nav/com-nav.js +3 -3
  77. package/dist/collection/components/com-nav/com-nav.js.map +1 -1
  78. package/dist/collection/components/com-nav-category/com-nav-category.js +1 -1
  79. package/dist/collection/components/com-nav-item/com-nav-item.css +2 -2
  80. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +1 -1
  81. package/dist/collection/components/counter/counter.e2e.playwright.js +187 -0
  82. package/dist/collection/components/counter/counter.e2e.playwright.js.map +1 -0
  83. package/dist/collection/components/counter/counter.js +1 -1
  84. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js +320 -0
  85. package/dist/collection/components/dropdown/dropdown.e2e.playwright.js.map +1 -0
  86. package/dist/collection/components/dropdown/dropdown.js +1 -1
  87. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js +156 -0
  88. package/dist/collection/components/editable-field/editable-field.e2e.playwright.js.map +1 -0
  89. package/dist/collection/components/form-field/form-field.e2e.playwright.js +104 -0
  90. package/dist/collection/components/form-field/form-field.e2e.playwright.js.map +1 -0
  91. package/dist/collection/components/galactic-menu/galactic-menu.js +1 -1
  92. package/dist/collection/components/grid/grid.e2e.playwright.js +153 -0
  93. package/dist/collection/components/grid/grid.e2e.playwright.js.map +1 -0
  94. package/dist/collection/components/grid/grid.js +6 -5
  95. package/dist/collection/components/grid/grid.js.map +1 -1
  96. package/dist/collection/components/grid-column/grid-column.js +1 -1
  97. package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
  98. package/dist/collection/components/header/header.js +1 -1
  99. package/dist/collection/components/horizontal-stepper/horizontal-step.js +2 -1
  100. package/dist/collection/components/horizontal-stepper/horizontal-step.js.map +1 -1
  101. package/dist/collection/components/horizontal-stepper/horizontal-stepper-interface.js.map +1 -1
  102. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +5 -1
  103. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
  104. package/dist/collection/components/icon/icon.js +1 -1
  105. package/dist/collection/components/input/input.e2e.playwright.js +157 -0
  106. package/dist/collection/components/input/input.e2e.playwright.js.map +1 -0
  107. package/dist/collection/components/input/input.js +2 -2
  108. package/dist/collection/components/label/label.css +4 -6
  109. package/dist/collection/components/label/label.js +1 -1
  110. package/dist/collection/components/mat-icon/mat-icon.js +1 -1
  111. package/dist/collection/components/modal/modal.css +4 -0
  112. package/dist/collection/components/modal/modal.e2e.playwright.js +35 -0
  113. package/dist/collection/components/modal/modal.e2e.playwright.js.map +1 -0
  114. package/dist/collection/components/modal/modal.js +2 -2
  115. package/dist/collection/components/modal/modal.js.map +1 -1
  116. package/dist/collection/components/native-select/native-select.js +1 -1
  117. package/dist/collection/components/nav/nav.js +1 -1
  118. package/dist/collection/components/progress-bar/progress-bar.js +1 -1
  119. package/dist/collection/components/progress-radial/progress-radial.js +1 -1
  120. package/dist/collection/components/radio/radio.js +1 -1
  121. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js +231 -0
  122. package/dist/collection/components/radio-group/radio-group.e2e.playwright.js.map +1 -0
  123. package/dist/collection/components/radio-group/radio-group.js +1 -1
  124. package/dist/collection/components/select/select.e2e.playwright.js +1702 -0
  125. package/dist/collection/components/select/select.e2e.playwright.js.map +1 -0
  126. package/dist/collection/components/select/select.js +49 -20
  127. package/dist/collection/components/select/select.js.map +1 -1
  128. package/dist/collection/components/select-option/select-option.js +3 -3
  129. package/dist/collection/components/select-option/select-option.js.map +1 -1
  130. package/dist/collection/components/switch/switch.e2e.playwright.js +40 -0
  131. package/dist/collection/components/switch/switch.e2e.playwright.js.map +1 -0
  132. package/dist/collection/components/switch/switch.js +1 -1
  133. package/dist/collection/components/tabs/tabs.e2e.playwright.js +205 -0
  134. package/dist/collection/components/tabs/tabs.e2e.playwright.js.map +1 -0
  135. package/dist/collection/components/tabs/tabs.js +1 -1
  136. package/dist/collection/components/textarea/textarea.e2e.playwright.js +133 -0
  137. package/dist/collection/components/textarea/textarea.e2e.playwright.js.map +1 -0
  138. package/dist/collection/components/textarea/textarea.js +1 -1
  139. package/dist/collection/utils/accessibility.js +16 -0
  140. package/dist/collection/utils/accessibility.js.map +1 -1
  141. package/dist/collection/utils/playwright/test-expect.js +2 -0
  142. package/dist/collection/utils/playwright/test-expect.js.map +1 -0
  143. package/dist/collection/utils/playwright/test.js +16 -0
  144. package/dist/collection/utils/playwright/test.js.map +1 -0
  145. package/dist/esm/accessibility-069640cf.js.map +1 -1
  146. package/dist/esm/loader.js +1 -1
  147. package/dist/esm/{popper-e491c314.js → popper-ac238961.js} +10 -17
  148. package/dist/esm/popper-ac238961.js.map +1 -0
  149. package/dist/esm/wcs-accordion-panel.entry.js +1 -1
  150. package/dist/esm/wcs-accordion-panel.entry.js.map +1 -1
  151. package/dist/esm/wcs-accordion.entry.js +2 -1
  152. package/dist/esm/wcs-accordion.entry.js.map +1 -1
  153. package/dist/esm/wcs-breadcrumb.entry.js +1 -1
  154. package/dist/esm/wcs-breadcrumb.entry.js.map +1 -1
  155. package/dist/esm/wcs-checkbox.entry.js +3 -2
  156. package/dist/esm/wcs-checkbox.entry.js.map +1 -1
  157. package/dist/esm/wcs-chip.entry.js +98 -0
  158. package/dist/esm/wcs-chip.entry.js.map +1 -0
  159. package/dist/esm/wcs-com-nav-item.entry.js +1 -1
  160. package/dist/esm/wcs-com-nav-item.entry.js.map +1 -1
  161. package/dist/esm/wcs-com-nav.entry.js +3 -3
  162. package/dist/esm/wcs-com-nav.entry.js.map +1 -1
  163. package/dist/esm/wcs-dropdown.entry.js +1 -1
  164. package/dist/esm/wcs-error_3.entry.js +1 -1
  165. package/dist/esm/wcs-error_3.entry.js.map +1 -1
  166. package/dist/esm/wcs-galactic-menu.entry.js +1 -1
  167. package/dist/esm/wcs-grid.entry.js +5 -4
  168. package/dist/esm/wcs-grid.entry.js.map +1 -1
  169. package/dist/esm/wcs-horizontal-stepper.entry.js +3 -2
  170. package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
  171. package/dist/esm/wcs-modal.entry.js +2 -2
  172. package/dist/esm/wcs-modal.entry.js.map +1 -1
  173. package/dist/esm/wcs-select_2.entry.js +59 -24
  174. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  175. package/dist/esm/wcs-tabs.entry.js +1 -1
  176. package/dist/esm/wcs-tooltip.entry.js +1 -1
  177. package/dist/esm/wcs.js +1 -1
  178. package/dist/types/components/accordion/accordion.e2e.playwright.d.ts +1 -0
  179. package/dist/types/components/accordion-panel/accordion-panel.d.ts +5 -0
  180. package/dist/types/components/alert/alert.e2e.playwright.d.ts +1 -0
  181. package/dist/types/components/alert-drawer/alert-drawer.e2e.playwright.d.ts +1 -0
  182. package/dist/types/components/breadcrumb/breadcrumb.e2e.playwright.d.ts +1 -0
  183. package/dist/types/components/button/button.e2e.playwright.d.ts +1 -0
  184. package/dist/types/components/checkbox/checkbox.d.ts +4 -0
  185. package/dist/types/components/checkbox/checkbox.e2e.playwright.d.ts +1 -0
  186. package/dist/types/components/chip/chip-interface.d.ts +4 -0
  187. package/dist/types/components/chip/chip.d.ts +132 -0
  188. package/dist/types/components/chip/chip.e2e.playwright.d.ts +1 -0
  189. package/dist/types/components/com-nav/com-nav.e2e.playwright.d.ts +1 -0
  190. package/dist/types/components/counter/counter.e2e.playwright.d.ts +1 -0
  191. package/dist/types/components/dropdown/dropdown.e2e.playwright.d.ts +1 -0
  192. package/dist/types/components/editable-field/editable-field.e2e.playwright.d.ts +1 -0
  193. package/dist/types/components/form-field/form-field.e2e.playwright.d.ts +1 -0
  194. package/dist/types/components/grid/grid.e2e.playwright.d.ts +1 -0
  195. package/dist/types/components/horizontal-stepper/horizontal-stepper-interface.d.ts +2 -0
  196. package/dist/types/components/horizontal-stepper/horizontal-stepper.d.ts +4 -0
  197. package/dist/types/components/input/input.e2e.playwright.d.ts +1 -0
  198. package/dist/types/components/modal/modal.e2e.playwright.d.ts +1 -0
  199. package/dist/types/components/radio-group/radio-group.e2e.playwright.d.ts +1 -0
  200. package/dist/types/components/select/select.d.ts +7 -1
  201. package/dist/types/components/select/select.e2e.playwright.d.ts +1 -0
  202. package/dist/types/components/switch/switch.e2e.playwright.d.ts +1 -0
  203. package/dist/types/components/tabs/tabs.e2e.playwright.d.ts +1 -0
  204. package/dist/types/components/textarea/textarea.e2e.playwright.d.ts +1 -0
  205. package/dist/types/components.d.ts +354 -0
  206. package/dist/types/utils/accessibility.d.ts +7 -0
  207. package/dist/types/utils/playwright/test-expect.d.ts +33 -0
  208. package/dist/types/utils/playwright/test.d.ts +7 -0
  209. package/dist/wcs/{p-8e9bd0f1.entry.js → p-0326f834.entry.js} +2 -2
  210. package/dist/wcs/{p-8e9bd0f1.entry.js.map → p-0326f834.entry.js.map} +1 -1
  211. package/dist/wcs/p-2221bf0c.entry.js +16 -0
  212. package/dist/wcs/p-2221bf0c.entry.js.map +1 -0
  213. package/dist/wcs/p-4ae08567.entry.js +2 -0
  214. package/dist/wcs/p-4ae08567.entry.js.map +1 -0
  215. package/dist/wcs/p-4e2d6227.entry.js +2 -0
  216. package/dist/wcs/p-4e2d6227.entry.js.map +1 -0
  217. package/dist/wcs/p-828b45b4.entry.js +2 -0
  218. package/dist/wcs/p-828b45b4.entry.js.map +1 -0
  219. package/dist/wcs/p-8332a7e3.entry.js +2 -0
  220. package/dist/wcs/p-8332a7e3.entry.js.map +1 -0
  221. package/dist/wcs/p-990698a7.entry.js +2 -0
  222. package/dist/wcs/p-990698a7.entry.js.map +1 -0
  223. package/dist/wcs/{p-ec383729.entry.js → p-9b76b8e6.entry.js} +2 -2
  224. package/dist/wcs/{p-ec383729.entry.js.map → p-9b76b8e6.entry.js.map} +1 -1
  225. package/dist/wcs/{p-1f593d06.entry.js → p-abd8d5a0.entry.js} +2 -2
  226. package/dist/wcs/{p-622f7403.entry.js → p-c6f8c45c.entry.js} +2 -2
  227. package/dist/wcs/{p-a94e685c.entry.js → p-db7ba599.entry.js} +2 -2
  228. package/dist/wcs/p-e1fb3625.js +2 -0
  229. package/dist/wcs/p-e1fb3625.js.map +1 -0
  230. package/dist/wcs/p-ed3b0709.entry.js +2 -0
  231. package/dist/wcs/p-ed3b0709.entry.js.map +1 -0
  232. package/dist/wcs/{p-6c6079ee.entry.js → p-f2eeb249.entry.js} +2 -2
  233. package/dist/wcs/{p-6c6079ee.entry.js.map → p-f2eeb249.entry.js.map} +1 -1
  234. package/dist/wcs/{p-a956dc84.entry.js → p-f2f7595e.entry.js} +2 -2
  235. package/dist/wcs/{p-a956dc84.entry.js.map → p-f2f7595e.entry.js.map} +1 -1
  236. package/dist/wcs/p-fb2751c2.js.map +1 -1
  237. package/dist/wcs/p-fbd68522.entry.js +2 -0
  238. package/dist/wcs/p-fbd68522.entry.js.map +1 -0
  239. package/dist/wcs/{p-8c2605fd.entry.js → p-fe303f58.entry.js} +2 -2
  240. package/dist/wcs/wcs.esm.js +1 -1
  241. package/dist/wcs/wcs.esm.js.map +1 -1
  242. package/package.json +18 -24
  243. package/dist/cjs/popper-8d6e7fca.js.map +0 -1
  244. package/dist/collection/components/alert/alert.e2e.js +0 -142
  245. package/dist/collection/components/alert/alert.e2e.js.map +0 -1
  246. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +0 -111
  247. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +0 -1
  248. package/dist/collection/components/breadcrumb/breadcrumb.e2e.js +0 -223
  249. package/dist/collection/components/breadcrumb/breadcrumb.e2e.js.map +0 -1
  250. package/dist/collection/components/button/button.e2e.js +0 -25
  251. package/dist/collection/components/button/button.e2e.js.map +0 -1
  252. package/dist/collection/components/checkbox/checkbox.e2e.js +0 -45
  253. package/dist/collection/components/checkbox/checkbox.e2e.js.map +0 -1
  254. package/dist/collection/components/com-nav/com-nav.e2e.js.map +0 -1
  255. package/dist/collection/components/counter/counter.e2e.js +0 -206
  256. package/dist/collection/components/counter/counter.e2e.js.map +0 -1
  257. package/dist/collection/components/dropdown/dropdown.e2e.js +0 -156
  258. package/dist/collection/components/dropdown/dropdown.e2e.js.map +0 -1
  259. package/dist/collection/components/editable-field/editable-field.e2e.js +0 -176
  260. package/dist/collection/components/editable-field/editable-field.e2e.js.map +0 -1
  261. package/dist/collection/components/form-field/form-field.e2e.js +0 -122
  262. package/dist/collection/components/form-field/form-field.e2e.js.map +0 -1
  263. package/dist/collection/components/grid/grid.e2e.js +0 -147
  264. package/dist/collection/components/grid/grid.e2e.js.map +0 -1
  265. package/dist/collection/components/input/input.e2e.js +0 -152
  266. package/dist/collection/components/input/input.e2e.js.map +0 -1
  267. package/dist/collection/components/modal/modal.e2e.js +0 -36
  268. package/dist/collection/components/modal/modal.e2e.js.map +0 -1
  269. package/dist/collection/components/radio-group/radio-group.e2e.js +0 -239
  270. package/dist/collection/components/radio-group/radio-group.e2e.js.map +0 -1
  271. package/dist/collection/components/select/select.e2e.js +0 -1081
  272. package/dist/collection/components/select/select.e2e.js.map +0 -1
  273. package/dist/collection/components/switch/switch.e2e.js +0 -45
  274. package/dist/collection/components/switch/switch.e2e.js.map +0 -1
  275. package/dist/collection/components/tabs/tabs.e2e.js +0 -207
  276. package/dist/collection/components/tabs/tabs.e2e.js.map +0 -1
  277. package/dist/collection/components/textarea/textarea.e2e.js +0 -132
  278. package/dist/collection/components/textarea/textarea.e2e.js.map +0 -1
  279. package/dist/collection/utils/tests.js +0 -23
  280. package/dist/collection/utils/tests.js.map +0 -1
  281. package/dist/esm/popper-e491c314.js.map +0 -1
  282. package/dist/types/utils/tests.d.ts +0 -4
  283. package/dist/wcs/p-02f31010.entry.js +0 -2
  284. package/dist/wcs/p-02f31010.entry.js.map +0 -1
  285. package/dist/wcs/p-0dd07842.entry.js +0 -2
  286. package/dist/wcs/p-0dd07842.entry.js.map +0 -1
  287. package/dist/wcs/p-0f864e86.js +0 -2
  288. package/dist/wcs/p-0f864e86.js.map +0 -1
  289. package/dist/wcs/p-1244daa0.entry.js +0 -2
  290. package/dist/wcs/p-1244daa0.entry.js.map +0 -1
  291. package/dist/wcs/p-1fbe0328.entry.js +0 -2
  292. package/dist/wcs/p-1fbe0328.entry.js.map +0 -1
  293. package/dist/wcs/p-4fb2d985.entry.js +0 -2
  294. package/dist/wcs/p-4fb2d985.entry.js.map +0 -1
  295. package/dist/wcs/p-b94a09b6.entry.js +0 -16
  296. package/dist/wcs/p-b94a09b6.entry.js.map +0 -1
  297. package/dist/wcs/p-fd187bce.entry.js +0 -2
  298. package/dist/wcs/p-fd187bce.entry.js.map +0 -1
  299. /package/dist/wcs/{p-1f593d06.entry.js.map → p-abd8d5a0.entry.js.map} +0 -0
  300. /package/dist/wcs/{p-622f7403.entry.js.map → p-c6f8c45c.entry.js.map} +0 -0
  301. /package/dist/wcs/{p-a94e685c.entry.js.map → p-db7ba599.entry.js.map} +0 -0
  302. /package/dist/wcs/{p-8c2605fd.entry.js.map → p-fe303f58.entry.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"com-nav.js","sourceRoot":"","sources":["../../../src/components/com-nav/com-nav.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n forceUpdate,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport { comNavDidLoadWithResizeObserver, registerCloseHandlerForFocusOutEventOn } from \"./com-nav-utils\";\nimport { inheritAriaAttributes, inheritAttributes, isEscapeKey } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { ComNavSize } from \"./com-nav-size\";\n\n\nconst COM_NAV_INHERITED_ATTRS = ['title'];\n\nconst WCS_COM_NAV_SUBMENU_TAG_NAME = 'WCS-COM-NAV-SUBMENU';\n\n/**\n * *Part of communication design system*\n *\n * The com-nav component is a container for navigation links to external or internal pages of the website.\n *\n * @slot <no-name> - Default slot containing all the menu declarations\n * @slot app-name - (Optional) Extra slot for the application name\n * @slot actions - Slot for actions placed on the right part of the container\n * \n * @cssprop --wcs-com-nav-menu-bar-height - Height of the menu bar\n * @cssprop --wcs-com-nav-border-color - Border color of the bottom border of the com-nav\n * @cssprop --wcs-com-nav-border-width - Border width of the border below com-nav\n * @cssprop --wcs-com-nav-background-color - Background color of the com-nav;\n * @cssprop --wcs-com-nav-app-name-color - App name color\n * @cssprop --wcs-com-nav-app-name-font-weight - App name font-weight\n * @cssprop --wcs-com-nav-app-name-font-size - Font size of the App name text\n * @cssprop --wcs-com-nav-app-name-line-height - Line height of the App name text\n * @cssprop --wcs-com-nav-item-color - Color of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-item-font-weight - Font weight of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-focus-outline-color - Focus outline color of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-horizontal-padding - Horizontal padding of wcs-com-nav\n * @cssprop --wcs-com-nav-vertical-padding - Vertical padding of wcs-com-nav\n * @cssprop --wcs-com-nav-mobile-overlay-gap - Gap between each items section in mobile overlay\n * @cssprop --wcs-com-nav-mobile-overlay-padding - Padding inside mobile overlay\n * @cssprop --wcs-com-nav-mobile-menu-icon-border-color - Bar border color on the left of icon mobile menu\n * @cssprop --wcs-com-nav-mobile-menu-icon-gap- Gap between icon mobile menu and separator on the left\n * @cssprop --wcs-com-nav-mobile-menu-icon-margin-left - Margin left of icon mobile menu\n * @cssprop --wcs-com-nav-menu-bar-gap - Gap between each item inside menu-bar\n * @cssprop --wcs-com-nav-menu-bar-margin-left - Margin left between menu bar and the app-name section\n */\n@Component({\n tag: 'wcs-com-nav',\n styleUrl: 'com-nav.scss',\n shadow: true,\n})\nexport class ComNav implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLWcsComNavElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /** Name of the application to be displayed in the menu bar */\n @Prop() appName: string;\n\n @State() private mobileMenuOpen: boolean = false;\n @State() public currentActiveSizing: ComNavSize;\n private resizeObserver: ResizeObserver;\n\n private mobileMenuIconClick() {\n this.mobileMenuOpen = !this.mobileMenuOpen;\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, COM_NAV_INHERITED_ATTRS)\n };\n\n const slottedNavigableItems = this.el.querySelectorAll(':scope > wcs-com-nav-submenu:not([slot]), :scope > a:not([slot])');\n registerCloseHandlerForFocusOutEventOn<HTMLWcsComNavSubmenuElement>(slottedNavigableItems, WCS_COM_NAV_SUBMENU_TAG_NAME);\n }\n\n componentDidLoad(): void {\n if(!this.resizeObserver) {\n this.resizeObserver = comNavDidLoadWithResizeObserver(this);\n this.resizeObserver.observe(document.body);\n }\n }\n \n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n // XXX: Special case on this component because of the desktop / mobile mode that re-renders the <nav> element,\n // making it lose all its attribute\n this.inheritedAttributes[attr] = value;\n forceUpdate(this);\n }\n\n private closeMobileMenu() {\n this.mobileMenuOpen = false;\n }\n\n // In mobile mode, we have only one global drawer to display the menu, that why we have to listen the clicks events\n // in the root component (this component). In desktop mode, all submenus and categories manage their drawer its\n // opening state.\n //\n // We listen to the click events fired by the submenu component and we close the mobile menu.\n // In desktop mode, the submenu itself manages the closing of the menu.\n @Listen('wcsClickOnFinalAction')\n onClickOnFinalAction() {\n this.closeMobileMenu();\n }\n \n render() {\n const menuAriaLabel = this.inheritedAttributes['aria-label'] || undefined;\n \n return (\n <Host>\n <div class=\"container\">\n <div class=\"container-left\">\n <div class=\"app-name\">{this.appName}\n <slot name=\"app-name\"/>\n </div>\n {this.currentActiveSizing === 'desktop' ?\n <nav role=\"navigation\" {...this.inheritedAttributes}>\n <div class=\"menu-bar\" role=\"list\">\n {this.currentActiveSizing === 'desktop' \n ? <slot/> \n : null}\n </div>\n </nav>\n : null}\n </div>\n <div class=\"container-right\">\n <slot name=\"actions\"/>\n {this.currentActiveSizing === 'mobile' ?\n <nav id=\"wcs-com-nav-mobile-menu\" role=\"navigation\" {...this.inheritedAttributes}>\n <button id=\"mobile-menu-icon\"\n aria-label={menuAriaLabel}\n aria-expanded={this.mobileMenuOpen ? \"true\" : \"false\"}\n aria-controls=\"wcs-com-nav-mobile-menu\"\n onClick={() => this.mobileMenuIconClick()}></button>\n {this.currentActiveSizing === 'mobile'\n ? <div class=\"mobile-overlay\" data-mobile-open={this.mobileMenuOpen} role=\"list\"><slot /></div>\n : null}\n </nav>\n : null}\n </div>\n </div>\n </Host>\n );\n }\n\n /**\n * Close the mobile menu if the user press escape.\n * @param evt keydown event on window target.\n */\n @Listen('keydown', {target: 'window'})\n exitMobileMenuOnKeyDown(evt: KeyboardEvent) {\n if (isEscapeKey(evt)) {\n this.closeMobileMenu();\n }\n }\n}\n"]}
1
+ {"version":3,"file":"com-nav.js","sourceRoot":"","sources":["../../../src/components/com-nav/com-nav.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n ComponentInterface,\n Element,\n forceUpdate,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n} from '@stencil/core';\nimport { comNavDidLoadWithResizeObserver, registerCloseHandlerForFocusOutEventOn } from \"./com-nav-utils\";\nimport { inheritAriaAttributes, inheritAttributes, isEscapeKey } from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { ComNavSize } from \"./com-nav-size\";\n\n\nconst COM_NAV_INHERITED_ATTRS = ['title'];\n\nconst WCS_COM_NAV_SUBMENU_TAG_NAME = 'WCS-COM-NAV-SUBMENU';\n\n/**\n * *Part of communication design system*\n *\n * The com-nav component is a container for navigation links to external or internal pages of the website.\n *\n * @slot <no-name> - Default slot containing all the menu declarations\n * @slot app-name - (Optional) Extra slot for the application name\n * @slot actions - Slot for actions placed on the right part of the container\n * \n * @cssprop --wcs-com-nav-menu-bar-height - Height of the menu bar\n * @cssprop --wcs-com-nav-border-color - Border color of the bottom border of the com-nav\n * @cssprop --wcs-com-nav-border-width - Border width of the border below com-nav\n * @cssprop --wcs-com-nav-background-color - Background color of the com-nav;\n * @cssprop --wcs-com-nav-app-name-color - App name color\n * @cssprop --wcs-com-nav-app-name-font-weight - App name font-weight\n * @cssprop --wcs-com-nav-app-name-font-size - Font size of the App name text\n * @cssprop --wcs-com-nav-app-name-line-height - Line height of the App name text\n * @cssprop --wcs-com-nav-item-color - Color of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-item-font-weight - Font weight of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-focus-outline-color - Focus outline color of the wcs-nav-item inside menu-bar\n * @cssprop --wcs-com-nav-horizontal-padding - Horizontal padding of wcs-com-nav\n * @cssprop --wcs-com-nav-vertical-padding - Vertical padding of wcs-com-nav\n * @cssprop --wcs-com-nav-mobile-overlay-gap - Gap between each items section in mobile overlay\n * @cssprop --wcs-com-nav-mobile-overlay-padding - Padding inside mobile overlay\n * @cssprop --wcs-com-nav-mobile-menu-icon-border-color - Bar border color on the left of icon mobile menu\n * @cssprop --wcs-com-nav-mobile-menu-icon-gap- Gap between icon mobile menu and separator on the left\n * @cssprop --wcs-com-nav-mobile-menu-icon-margin-left - Margin left of icon mobile menu\n * @cssprop --wcs-com-nav-menu-bar-gap - Gap between each item inside menu-bar\n * @cssprop --wcs-com-nav-menu-bar-margin-left - Margin left between menu bar and the app-name section\n */\n@Component({\n tag: 'wcs-com-nav',\n styleUrl: 'com-nav.scss',\n shadow: true,\n})\nexport class ComNav implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLWcsComNavElement;\n private inheritedAttributes: { [k: string]: any } = {};\n\n /** Name of the application to be displayed in the menu bar */\n @Prop() appName: string;\n\n @State() private mobileMenuOpen: boolean = false;\n @State() public currentActiveSizing: ComNavSize;\n private resizeObserver: ResizeObserver;\n\n private mobileMenuIconClick() {\n this.mobileMenuOpen = !this.mobileMenuOpen;\n }\n\n disconnectedCallback() {\n this.resizeObserver?.disconnect();\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, COM_NAV_INHERITED_ATTRS)\n };\n\n const slottedNavigableItems = this.el.querySelectorAll(':scope > wcs-com-nav-submenu:not([slot]), :scope > a:not([slot])');\n registerCloseHandlerForFocusOutEventOn<HTMLWcsComNavSubmenuElement>(slottedNavigableItems, WCS_COM_NAV_SUBMENU_TAG_NAME);\n }\n\n componentDidLoad(): void {\n if(!this.resizeObserver) {\n this.resizeObserver = comNavDidLoadWithResizeObserver(this);\n this.resizeObserver.observe(document.body);\n }\n }\n \n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n // XXX: Special case on this component because of the desktop / mobile mode that re-renders the <nav> element,\n // making it lose all its attribute\n this.inheritedAttributes[attr] = value;\n forceUpdate(this);\n }\n\n private closeMobileMenu() {\n this.mobileMenuOpen = false;\n }\n\n // In mobile mode, we have only one global drawer to display the menu, that why we have to listen the clicks events\n // in the root component (this component). In desktop mode, all submenus and categories manage their drawer its\n // opening state.\n //\n // We listen to the click events fired by the submenu component and we close the mobile menu.\n // In desktop mode, the submenu itself manages the closing of the menu.\n @Listen('wcsClickOnFinalAction')\n onClickOnFinalAction() {\n this.closeMobileMenu();\n }\n \n render() {\n const menuAriaLabel = this.inheritedAttributes['aria-label'] || undefined;\n \n return (\n <Host>\n <div class=\"container\">\n <div class=\"container-left\">\n <div class=\"app-name\">\n {this.appName}\n <slot name=\"app-name\"/>\n </div>\n {this.currentActiveSizing === 'desktop' ?\n <nav role=\"navigation\" {...this.inheritedAttributes}>\n <div class=\"menu-bar\" role=\"list\">\n {this.currentActiveSizing === 'desktop' \n ? <slot/> \n : null}\n </div>\n </nav>\n : null}\n </div>\n <div class=\"container-right\">\n <slot name=\"actions\"/>\n {this.currentActiveSizing === 'mobile' ?\n <nav id=\"wcs-com-nav-mobile-menu\" role=\"navigation\" {...this.inheritedAttributes}>\n <button id=\"mobile-menu-icon\"\n aria-label={menuAriaLabel}\n aria-expanded={this.mobileMenuOpen ? \"true\" : \"false\"}\n aria-controls=\"wcs-com-nav-mobile-menu\"\n onClick={() => this.mobileMenuIconClick()}></button>\n {this.currentActiveSizing === 'mobile'\n ? <div class=\"mobile-overlay\" data-mobile-open={this.mobileMenuOpen} role=\"list\"><slot /></div>\n : null}\n </nav>\n : null}\n </div>\n </div>\n </Host>\n );\n }\n\n /**\n * Close the mobile menu if the user press escape.\n * @param evt keydown event on window target.\n */\n @Listen('keydown', {target: 'window'})\n exitMobileMenuOnKeyDown(evt: KeyboardEvent) {\n if (isEscapeKey(evt)) {\n this.closeMobileMenu();\n }\n }\n}\n"]}
@@ -177,7 +177,7 @@ export class ComNavCategory {
177
177
  "signature": "(attr: AriaAttributeName, value: string | null | undefined) => Promise<void>",
178
178
  "parameters": [{
179
179
  "name": "attr",
180
- "type": "\"role\" | `aria-${string}`",
180
+ "type": "`aria-${string}` | \"role\"",
181
181
  "docs": ""
182
182
  }, {
183
183
  "name": "value",
@@ -5,7 +5,8 @@
5
5
  /**
6
6
  Applies all the outline properties useful to show a dashed-focus ring around a component.
7
7
  TODO: replace `$border-radius: 0.1rem` with semantic border-radius but keep in mind some components that must stay at 2px border-radius: checkbox, radio, links, ...
8
- */ /* Default style and mobile behaviour */
8
+ */
9
+ /* Default style and mobile behaviour */
9
10
  :host {
10
11
  --wcs-com-nav-item-gap: var(--wcs-semantic-spacing-base);
11
12
  --wcs-com-nav-item-font-size: var(--wcs-semantic-font-size-label-1);
@@ -29,7 +30,6 @@
29
30
  user-select: none;
30
31
  cursor: pointer;
31
32
  text-decoration: none;
32
- font-size: var(--wcs-com-nav-item-font-size);
33
33
  color: inherit;
34
34
  font-weight: inherit;
35
35
  display: flex;
@@ -229,7 +229,7 @@ export class ComNavSubmenu {
229
229
  "signature": "(attr: AriaAttributeName, value: string | null | undefined) => Promise<void>",
230
230
  "parameters": [{
231
231
  "name": "attr",
232
- "type": "\"role\" | `aria-${string}`",
232
+ "type": "`aria-${string}` | \"role\"",
233
233
  "docs": ""
234
234
  }, {
235
235
  "name": "value",
@@ -0,0 +1,187 @@
1
+ import { setWcsContent } from "../../utils/playwright/test";
2
+ import { test } from "@stencil/playwright";
3
+ import { expect } from "@playwright/test";
4
+ test.describe('counter', () => {
5
+ test('should increment the counter when click on plus button', async ({ page }) => {
6
+ // Given
7
+ await setWcsContent(page, `
8
+ <wcs-counter></wcs-counter>
9
+ `);
10
+ const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');
11
+ const incrementButton = page.locator('wcs-counter wcs-button').last();
12
+ // When
13
+ await incrementButton.click();
14
+ await page.waitForChanges();
15
+ // Then
16
+ expect(changeSpy).toHaveReceivedEventTimes(1);
17
+ expect(changeSpy).toHaveReceivedEventDetail({ value: 1 });
18
+ });
19
+ test('should decrement the counter when click on minus button', async ({ page }) => {
20
+ // Given
21
+ await setWcsContent(page, `
22
+ <wcs-counter></wcs-counter>
23
+ `);
24
+ const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');
25
+ const decrementButton = page.locator('wcs-counter wcs-button').first();
26
+ // When
27
+ await decrementButton.click();
28
+ await page.waitForChanges();
29
+ // Then
30
+ expect(changeSpy).toHaveReceivedEventTimes(1);
31
+ expect(changeSpy).toHaveReceivedEventDetail({ value: -1 });
32
+ });
33
+ test('should have 0 as default value', async ({ page }) => {
34
+ // Given
35
+ await setWcsContent(page, `
36
+ <wcs-counter></wcs-counter>
37
+ `);
38
+ const currentDisplayedValue = page.locator('wcs-counter .current-value');
39
+ // Then
40
+ await expect(currentDisplayedValue).toHaveText('0');
41
+ });
42
+ test('should respect the step attribute', async ({ page }) => {
43
+ // Given
44
+ await setWcsContent(page, `
45
+ <wcs-counter step="5"></wcs-counter>
46
+ `);
47
+ const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');
48
+ const incrementButton = page.locator('wcs-counter wcs-button').last();
49
+ // When
50
+ await incrementButton.click();
51
+ await page.waitForChanges();
52
+ // Then
53
+ expect(changeSpy).toHaveReceivedEventTimes(1);
54
+ expect(changeSpy).toHaveReceivedEventDetail({ value: 5 });
55
+ });
56
+ test('should respect the min attribute', async ({ page }) => {
57
+ // Given
58
+ await setWcsContent(page, `
59
+ <wcs-counter min="-1" value="0"></wcs-counter>
60
+ `);
61
+ const changeSpy = await page.spyOnEvent('wcsChange');
62
+ const decrementButton = page.locator('wcs-counter wcs-button').first();
63
+ // When
64
+ await decrementButton.click();
65
+ await decrementButton.click();
66
+ await page.waitForChanges();
67
+ // Then - Should only emit once since second click would go below min
68
+ expect(changeSpy).toHaveReceivedEventTimes(1);
69
+ expect(changeSpy).toHaveReceivedEventDetail({ value: -1 });
70
+ });
71
+ test('should use the min attribute as default value when value is not set', async ({ page }) => {
72
+ // Given
73
+ await setWcsContent(page, `
74
+ <wcs-counter min="5"></wcs-counter>
75
+ `);
76
+ const currentDisplayedValue = page.locator('wcs-counter .current-value');
77
+ // Then
78
+ await expect(currentDisplayedValue).toHaveText('5');
79
+ });
80
+ test('should respect the max attribute', async ({ page }) => {
81
+ // Given
82
+ await setWcsContent(page, `
83
+ <wcs-counter max="1"></wcs-counter>
84
+ `);
85
+ const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');
86
+ const incrementButton = page.locator('wcs-counter wcs-button').last();
87
+ // When
88
+ await incrementButton.click();
89
+ await incrementButton.click();
90
+ await page.waitForChanges();
91
+ // Then - Should only emit once since second click would go above max
92
+ expect(changeSpy).toHaveReceivedEventTimes(1);
93
+ expect(changeSpy).toHaveReceivedEventDetail({ value: 1 });
94
+ });
95
+ test('should respect the value attribute', async ({ page }) => {
96
+ // Given
97
+ await setWcsContent(page, `
98
+ <wcs-counter value="5"></wcs-counter>
99
+ `);
100
+ const currentDisplayedValue = page.locator('wcs-counter .current-value');
101
+ // Then
102
+ await expect(currentDisplayedValue).toHaveText('5');
103
+ });
104
+ test('should use the min value as default when min is greater than 0', async ({ page }) => {
105
+ // Given
106
+ await setWcsContent(page, `
107
+ <wcs-counter min="5"></wcs-counter>
108
+ `);
109
+ const currentDisplayedValue = page.locator('wcs-counter .current-value');
110
+ // Then
111
+ await expect(currentDisplayedValue).toHaveText('5');
112
+ });
113
+ test('should use the min value as default when min is greater than value', async ({ page }) => {
114
+ // Given
115
+ await setWcsContent(page, `
116
+ <wcs-counter min="5" value="3"></wcs-counter>
117
+ `);
118
+ const currentDisplayedValue = page.locator('wcs-counter .current-value');
119
+ // Then
120
+ await expect(currentDisplayedValue).toHaveText('5');
121
+ });
122
+ test('should fire wcsBlur event when the counter loose focus', async ({ page }) => {
123
+ // Given
124
+ await setWcsContent(page, `
125
+ <button id="first">first</button>
126
+ <wcs-counter></wcs-counter>
127
+ <button id="last">last</button>
128
+ `);
129
+ const blurSpy = await page.locator('wcs-counter').spyOnEvent('wcsBlur');
130
+ const firstButton = page.locator('#first');
131
+ // When
132
+ await firstButton.click();
133
+ await page.keyboard.press('Tab');
134
+ await page.keyboard.press('Tab');
135
+ await page.waitForChanges();
136
+ // Then
137
+ expect(blurSpy).toHaveReceivedEventTimes(1);
138
+ });
139
+ test('should fire wcsBlur event when the user click on decrement button and leave', async ({ page }) => {
140
+ // Given
141
+ await setWcsContent(page, `
142
+ <wcs-counter></wcs-counter>
143
+ <button>last</button>
144
+ `);
145
+ const blurSpy = await page.locator('wcs-counter').spyOnEvent('wcsBlur');
146
+ const decrementButton = page.locator('wcs-counter wcs-button').first();
147
+ const button = page.getByRole('button', { name: 'last' });
148
+ // When
149
+ await decrementButton.click();
150
+ await button.click();
151
+ await page.waitForChanges();
152
+ // Then
153
+ expect(blurSpy).toHaveReceivedEventTimes(1);
154
+ });
155
+ test('should fire wcsBlur event when the user click on increment button and leave', async ({ page }) => {
156
+ // Given
157
+ await setWcsContent(page, `
158
+ <wcs-counter></wcs-counter>
159
+ <button>last</button>
160
+ `);
161
+ const blurSpy = await page.locator('wcs-counter').spyOnEvent('wcsBlur');
162
+ const incrementButton = page.locator('wcs-counter wcs-button').last();
163
+ const button = page.getByRole('button', { name: 'last' });
164
+ // When
165
+ await incrementButton.click();
166
+ await button.click();
167
+ await page.waitForChanges();
168
+ // Then
169
+ expect(blurSpy).toHaveReceivedEventTimes(1);
170
+ });
171
+ test('should not be interactive when disabled', async ({ page }) => {
172
+ // Given
173
+ await setWcsContent(page, `
174
+ <wcs-counter disabled="true"></wcs-counter>
175
+ `);
176
+ const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');
177
+ const incrementButton = page.locator('wcs-counter wcs-button').last();
178
+ // When
179
+ await incrementButton.click({ force: true });
180
+ await page.waitForChanges();
181
+ // Then
182
+ expect(changeSpy).toHaveReceivedEventTimes(0);
183
+ await expect(page.locator('wcs-counter')).toHaveJSProperty('value', 0);
184
+ await expect(incrementButton).toHaveJSProperty('disabled', true);
185
+ });
186
+ });
187
+ //# sourceMappingURL=counter.e2e.playwright.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"counter.e2e.playwright.js","sourceRoot":"","sources":["../../../src/components/counter/counter.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('counter', () => {\n test('should increment the counter when click on plus button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n `);\n\n const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');\n\n const incrementButton = page.locator('wcs-counter wcs-button').last();\n\n // When\n await incrementButton.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: 1 });\n });\n\n test('should decrement the counter when click on minus button', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n `);\n\n const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');\n\n const decrementButton = page.locator('wcs-counter wcs-button').first();\n\n // When\n await decrementButton.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: -1 });\n });\n\n test('should have 0 as default value', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n `);\n\n const currentDisplayedValue = page.locator('wcs-counter .current-value');\n\n // Then\n await expect(currentDisplayedValue).toHaveText('0');\n });\n\n test('should respect the step attribute', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter step=\"5\"></wcs-counter>\n `);\n\n const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');\n\n const incrementButton = page.locator('wcs-counter wcs-button').last();\n\n // When\n await incrementButton.click();\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: 5 });\n });\n\n test('should respect the min attribute', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter min=\"-1\" value=\"0\"></wcs-counter>\n `);\n\n const changeSpy = await page.spyOnEvent('wcsChange');\n\n const decrementButton = page.locator('wcs-counter wcs-button').first();\n\n // When\n await decrementButton.click();\n await decrementButton.click();\n await page.waitForChanges();\n\n // Then - Should only emit once since second click would go below min\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: -1 });\n });\n\n test('should use the min attribute as default value when value is not set', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter min=\"5\"></wcs-counter>\n `);\n\n const currentDisplayedValue = page.locator('wcs-counter .current-value');\n\n // Then\n await expect(currentDisplayedValue).toHaveText('5');\n });\n\n test('should respect the max attribute', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter max=\"1\"></wcs-counter>\n `);\n\n const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');\n\n const incrementButton = page.locator('wcs-counter wcs-button').last();\n\n // When\n await incrementButton.click();\n await incrementButton.click();\n await page.waitForChanges();\n\n // Then - Should only emit once since second click would go above max\n expect(changeSpy).toHaveReceivedEventTimes(1);\n expect(changeSpy).toHaveReceivedEventDetail({ value: 1 });\n });\n\n test('should respect the value attribute', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter value=\"5\"></wcs-counter>\n `);\n\n const currentDisplayedValue = page.locator('wcs-counter .current-value');\n\n // Then\n await expect(currentDisplayedValue).toHaveText('5');\n });\n\n test('should use the min value as default when min is greater than 0', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter min=\"5\"></wcs-counter>\n `);\n\n const currentDisplayedValue = page.locator('wcs-counter .current-value');\n\n // Then\n await expect(currentDisplayedValue).toHaveText('5');\n });\n\n test('should use the min value as default when min is greater than value', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter min=\"5\" value=\"3\"></wcs-counter>\n `);\n\n const currentDisplayedValue = page.locator('wcs-counter .current-value');\n\n // Then\n await expect(currentDisplayedValue).toHaveText('5');\n });\n\n test('should fire wcsBlur event when the counter loose focus', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <button id=\"first\">first</button>\n <wcs-counter></wcs-counter>\n <button id=\"last\">last</button>\n `);\n\n const blurSpy = await page.locator('wcs-counter').spyOnEvent('wcsBlur');\n\n const firstButton = page.locator('#first');\n\n // When\n await firstButton.click();\n await page.keyboard.press('Tab');\n await page.keyboard.press('Tab');\n await page.waitForChanges();\n\n // Then\n expect(blurSpy).toHaveReceivedEventTimes(1);\n });\n\n test('should fire wcsBlur event when the user click on decrement button and leave', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n <button>last</button>\n `);\n\n const blurSpy = await page.locator('wcs-counter').spyOnEvent('wcsBlur');\n\n const decrementButton = page.locator('wcs-counter wcs-button').first();\n const button = page.getByRole('button', { name: 'last' });\n\n // When\n await decrementButton.click();\n await button.click();\n await page.waitForChanges();\n\n // Then\n expect(blurSpy).toHaveReceivedEventTimes(1);\n });\n\n test('should fire wcsBlur event when the user click on increment button and leave', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter></wcs-counter>\n <button>last</button>\n `);\n\n const blurSpy = await page.locator('wcs-counter').spyOnEvent('wcsBlur');\n\n const incrementButton = page.locator('wcs-counter wcs-button').last();\n const button = page.getByRole('button', { name: 'last' });\n\n // When\n await incrementButton.click();\n await button.click();\n await page.waitForChanges();\n\n // Then\n expect(blurSpy).toHaveReceivedEventTimes(1);\n });\n\n test('should not be interactive when disabled', async ({ page }: { page: E2EPage }) => {\n // Given\n await setWcsContent(page, `\n <wcs-counter disabled=\"true\"></wcs-counter>\n `);\n\n const changeSpy = await page.locator('wcs-counter').spyOnEvent('wcsChange');\n\n const incrementButton = page.locator('wcs-counter wcs-button').last();\n\n // When\n await incrementButton.click({ force: true });\n await page.waitForChanges();\n\n // Then\n expect(changeSpy).toHaveReceivedEventTimes(0);\n await expect(page.locator('wcs-counter')).toHaveJSProperty('value', 0);\n await expect(incrementButton).toHaveJSProperty('disabled', true);\n });\n});\n"]}
@@ -368,7 +368,7 @@ export class Counter {
368
368
  "signature": "(attr: AriaAttributeName, value: string | null | undefined) => Promise<void>",
369
369
  "parameters": [{
370
370
  "name": "attr",
371
- "type": "\"role\" | `aria-${string}`",
371
+ "type": "`aria-${string}` | \"role\"",
372
372
  "docs": ""
373
373
  }, {
374
374
  "name": "value",