wcs-core 7.0.0 → 7.2.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 (664) hide show
  1. package/README.md +1 -11
  2. package/design-tokens/dist/sncf-groupe-root-scoped.css +590 -0
  3. package/design-tokens/dist/sncf-groupe.css +590 -0
  4. package/design-tokens/dist/sncf-groupe.json +10693 -0
  5. package/design-tokens/dist/sncf-holding-root-scoped.css +590 -0
  6. package/design-tokens/dist/sncf-holding.css +437 -423
  7. package/design-tokens/dist/sncf-holding.json +80 -3
  8. package/design-tokens/dist/sncf-reseau-root-scoped.css +652 -0
  9. package/design-tokens/dist/sncf-reseau.css +473 -463
  10. package/design-tokens/dist/sncf-reseau.json +54 -0
  11. package/design-tokens/dist/sncf-voyageurs-root-scoped.css +550 -0
  12. package/design-tokens/dist/sncf-voyageurs.css +394 -381
  13. package/design-tokens/dist/sncf-voyageurs.json +54 -0
  14. package/dist/cjs/{com-nav-utils-9f6c99b8.js → com-nav-utils-ff4f0bef.js} +2 -2
  15. package/dist/cjs/{com-nav-utils-9f6c99b8.js.map → com-nav-utils-ff4f0bef.js.map} +1 -1
  16. package/dist/cjs/control-component-interface-d9b68f28.js +43 -0
  17. package/dist/cjs/control-component-interface-d9b68f28.js.map +1 -0
  18. package/dist/cjs/{grid-pagination-2c752b22.js → grid-pagination-4505d7b6.js} +26 -6
  19. package/dist/cjs/grid-pagination-4505d7b6.js.map +1 -0
  20. package/dist/cjs/{helpers-871f5a3d.js → helpers-2f1a8ddc.js} +44 -1
  21. package/dist/cjs/helpers-2f1a8ddc.js.map +1 -0
  22. package/dist/cjs/{keyboard-event-d2c81ce0.js → keyboard-event-40ecdc27.js} +2 -2
  23. package/dist/cjs/{keyboard-event-d2c81ce0.js.map → keyboard-event-40ecdc27.js.map} +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +2 -2
  26. package/dist/cjs/wcs-accordion-panel.cjs.entry.js.map +1 -1
  27. package/dist/cjs/wcs-action-bar.cjs.entry.js +1 -1
  28. package/dist/cjs/wcs-action-bar.cjs.entry.js.map +1 -1
  29. package/dist/cjs/wcs-alert-drawer.cjs.entry.js +99 -0
  30. package/dist/cjs/wcs-alert-drawer.cjs.entry.js.map +1 -0
  31. package/dist/cjs/wcs-alert.cjs.entry.js +121 -0
  32. package/dist/cjs/wcs-alert.cjs.entry.js.map +1 -0
  33. package/dist/cjs/wcs-app.cjs.entry.js +3 -3
  34. package/dist/cjs/wcs-badge.cjs.entry.js +2 -2
  35. package/dist/cjs/wcs-badge.cjs.entry.js.map +1 -1
  36. package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js +1 -1
  37. package/dist/cjs/wcs-breadcrumb-item.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wcs-breadcrumb.cjs.entry.js +2 -2
  39. package/dist/cjs/wcs-button_2.cjs.entry.js +4 -9
  40. package/dist/cjs/wcs-button_2.cjs.entry.js.map +1 -1
  41. package/dist/cjs/wcs-card-body.cjs.entry.js +9 -2
  42. package/dist/cjs/wcs-card-body.cjs.entry.js.map +1 -1
  43. package/dist/cjs/wcs-card-content.cjs.entry.js +22 -0
  44. package/dist/cjs/wcs-card-content.cjs.entry.js.map +1 -0
  45. package/dist/cjs/wcs-card-footer.cjs.entry.js +22 -0
  46. package/dist/cjs/wcs-card-footer.cjs.entry.js.map +1 -0
  47. package/dist/cjs/wcs-card-header.cjs.entry.js +22 -0
  48. package/dist/cjs/wcs-card-header.cjs.entry.js.map +1 -0
  49. package/dist/cjs/wcs-card-media.cjs.entry.js +29 -0
  50. package/dist/cjs/wcs-card-media.cjs.entry.js.map +1 -0
  51. package/dist/cjs/wcs-card.cjs.entry.js +30 -2
  52. package/dist/cjs/wcs-card.cjs.entry.js.map +1 -1
  53. package/dist/cjs/wcs-checkbox.cjs.entry.js +6 -2
  54. package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
  55. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +4 -4
  56. package/dist/cjs/wcs-com-nav-item.cjs.entry.js +2 -2
  57. package/dist/cjs/wcs-com-nav-item.cjs.entry.js.map +1 -1
  58. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +4 -4
  59. package/dist/cjs/wcs-com-nav.cjs.entry.js +4 -4
  60. package/dist/cjs/wcs-counter.cjs.entry.js +13 -15
  61. package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
  62. package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
  63. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
  64. package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
  65. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +2 -2
  66. package/dist/cjs/wcs-dropdown.cjs.entry.js +3 -8
  67. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  68. package/dist/cjs/wcs-editable-field.cjs.entry.js +81 -55
  69. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  70. package/dist/cjs/wcs-error_3.cjs.entry.js +209 -0
  71. package/dist/cjs/wcs-error_3.cjs.entry.js.map +1 -0
  72. package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
  73. package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
  74. package/dist/cjs/wcs-field.cjs.entry.js +1 -1
  75. package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
  76. package/dist/cjs/wcs-footer.cjs.entry.js.map +1 -1
  77. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +4 -4
  78. package/dist/cjs/wcs-galactic-menu.cjs.entry.js.map +1 -1
  79. package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
  80. package/dist/cjs/wcs-grid-column.cjs.entry.js +2 -2
  81. package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
  82. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  83. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
  84. package/dist/cjs/wcs-grid.cjs.entry.js +14 -6
  85. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  86. package/dist/cjs/wcs-header.cjs.entry.js +3 -3
  87. package/dist/cjs/wcs-header.cjs.entry.js.map +1 -1
  88. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  89. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  90. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
  91. package/dist/cjs/wcs-icon.cjs.entry.js +2 -2
  92. package/dist/cjs/wcs-input.cjs.entry.js +5 -13
  93. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  94. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  95. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  96. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  97. package/dist/cjs/wcs-list-item.cjs.entry.js.map +1 -1
  98. package/dist/cjs/wcs-mat-icon.cjs.entry.js +2 -2
  99. package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +1 -1
  100. package/dist/cjs/wcs-modal.cjs.entry.js +18 -4
  101. package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
  102. package/dist/cjs/wcs-native-select.cjs.entry.js +2 -2
  103. package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -1
  104. package/dist/cjs/wcs-nav-item.cjs.entry.js +3 -3
  105. package/dist/cjs/wcs-nav-item.cjs.entry.js.map +1 -1
  106. package/dist/cjs/wcs-nav.cjs.entry.js +3 -3
  107. package/dist/cjs/wcs-nav.cjs.entry.js.map +1 -1
  108. package/dist/cjs/wcs-progress-bar.cjs.entry.js +4 -4
  109. package/dist/cjs/wcs-progress-bar.cjs.entry.js.map +1 -1
  110. package/dist/cjs/wcs-progress-radial.cjs.entry.js +3 -3
  111. package/dist/cjs/wcs-progress-radial.cjs.entry.js.map +1 -1
  112. package/dist/cjs/wcs-radio-group.cjs.entry.js +5 -2
  113. package/dist/cjs/wcs-radio-group.cjs.entry.js.map +1 -1
  114. package/dist/cjs/wcs-radio.cjs.entry.js +2 -2
  115. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  116. package/dist/cjs/wcs-select_2.cjs.entry.js +21 -13
  117. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  118. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  119. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  120. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  121. package/dist/cjs/wcs-switch.cjs.entry.js +6 -2
  122. package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
  123. package/dist/cjs/wcs-tab.cjs.entry.js +1 -1
  124. package/dist/cjs/wcs-tabs.cjs.entry.js +150 -7
  125. package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
  126. package/dist/cjs/wcs-textarea.cjs.entry.js +2 -2
  127. package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
  128. package/dist/cjs/wcs-tooltip.cjs.entry.js +8 -4
  129. package/dist/cjs/wcs-tooltip.cjs.entry.js.map +1 -1
  130. package/dist/cjs/wcs.cjs.js +1 -1
  131. package/dist/collection/collection-manifest.json +6 -0
  132. package/dist/collection/components/accordion-panel/accordion-panel.js +1 -1
  133. package/dist/collection/components/accordion-panel/accordion-panel.js.map +1 -1
  134. package/dist/collection/components/action-bar/action-bar.js +2 -2
  135. package/dist/collection/components/action-bar/action-bar.js.map +1 -1
  136. package/dist/collection/components/alert/alert-interface.js +2 -0
  137. package/dist/collection/components/alert/alert-interface.js.map +1 -0
  138. package/dist/collection/components/alert/alert.css +115 -0
  139. package/dist/collection/components/alert/alert.e2e.js +142 -0
  140. package/dist/collection/components/alert/alert.e2e.js.map +1 -0
  141. package/dist/collection/components/alert/alert.js +257 -0
  142. package/dist/collection/components/alert/alert.js.map +1 -0
  143. package/dist/collection/components/alert-drawer/alert-drawer-interface.js +2 -0
  144. package/dist/collection/components/alert-drawer/alert-drawer-interface.js.map +1 -0
  145. package/dist/collection/components/alert-drawer/alert-drawer.css +103 -0
  146. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js +111 -0
  147. package/dist/collection/components/alert-drawer/alert-drawer.e2e.js.map +1 -0
  148. package/dist/collection/components/alert-drawer/alert-drawer.js +237 -0
  149. package/dist/collection/components/alert-drawer/alert-drawer.js.map +1 -0
  150. package/dist/collection/components/app/app.js +3 -3
  151. package/dist/collection/components/badge/badge.css +5 -1
  152. package/dist/collection/components/badge/badge.js +1 -1
  153. package/dist/collection/components/breadcrumb/breadcrumb.js +1 -1
  154. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js +1 -1
  155. package/dist/collection/components/breadcrumb-item/breadcrumb-item.js.map +1 -1
  156. package/dist/collection/components/button/button-interface.js +1 -5
  157. package/dist/collection/components/button/button-interface.js.map +1 -1
  158. package/dist/collection/components/button/button.css +2 -2
  159. package/dist/collection/components/button/button.js +2 -7
  160. package/dist/collection/components/button/button.js.map +1 -1
  161. package/dist/collection/components/card/card-interface.js.map +1 -1
  162. package/dist/collection/components/card/card.css +10 -0
  163. package/dist/collection/components/card/card.js +62 -1
  164. package/dist/collection/components/card/card.js.map +1 -1
  165. package/dist/collection/components/card-body/card-body.css +12 -1
  166. package/dist/collection/components/card-body/card-body.js +52 -2
  167. package/dist/collection/components/card-body/card-body.js.map +1 -1
  168. package/dist/collection/components/card-content/card-content.css +12 -0
  169. package/dist/collection/components/card-content/card-content.js +30 -0
  170. package/dist/collection/components/card-content/card-content.js.map +1 -0
  171. package/dist/collection/components/card-footer/card-footer.css +7 -0
  172. package/dist/collection/components/card-footer/card-footer.js +25 -0
  173. package/dist/collection/components/card-footer/card-footer.js.map +1 -0
  174. package/dist/collection/components/card-header/card-header.css +28 -0
  175. package/dist/collection/components/card-header/card-header.js +32 -0
  176. package/dist/collection/components/card-header/card-header.js.map +1 -0
  177. package/dist/collection/components/card-media/card-media.css +21 -0
  178. package/dist/collection/components/card-media/card-media.js +77 -0
  179. package/dist/collection/components/card-media/card-media.js.map +1 -0
  180. package/dist/collection/components/checkbox/checkbox.js +22 -1
  181. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  182. package/dist/collection/components/com-nav/com-nav.js +2 -2
  183. package/dist/collection/components/com-nav-category/com-nav-category.js +2 -2
  184. package/dist/collection/components/com-nav-item/com-nav-item.css +2 -1
  185. package/dist/collection/components/com-nav-item/com-nav-item.js +1 -1
  186. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js +2 -2
  187. package/dist/collection/components/counter/counter-interface.js +1 -5
  188. package/dist/collection/components/counter/counter-interface.js.map +1 -1
  189. package/dist/collection/components/counter/counter.css +7 -1
  190. package/dist/collection/components/counter/counter.js +13 -10
  191. package/dist/collection/components/counter/counter.js.map +1 -1
  192. package/dist/collection/components/divider/divider.js +1 -1
  193. package/dist/collection/components/dropdown/dropdown.js +3 -8
  194. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  195. package/dist/collection/components/dropdown-divider/dropdown-divider.js +1 -1
  196. package/dist/collection/components/dropdown-header/dropdown-header.js +1 -1
  197. package/dist/collection/components/dropdown-item/dropdown-item.js +1 -1
  198. package/dist/collection/components/editable-field/editable-field.css +34 -10
  199. package/dist/collection/components/editable-field/editable-field.e2e.js +176 -0
  200. package/dist/collection/components/editable-field/editable-field.e2e.js.map +1 -0
  201. package/dist/collection/components/editable-field/editable-field.js +83 -57
  202. package/dist/collection/components/editable-field/editable-field.js.map +1 -1
  203. package/dist/collection/components/error/error.js +1 -1
  204. package/dist/collection/components/error/error.js.map +1 -1
  205. package/dist/collection/components/field/field.js +1 -1
  206. package/dist/collection/components/field-content/field-content.js +1 -1
  207. package/dist/collection/components/field-label/field-label.js +1 -1
  208. package/dist/collection/components/footer/footer.js +1 -1
  209. package/dist/collection/components/footer/footer.js.map +1 -1
  210. package/dist/collection/components/form-field/form-field.css +39 -12
  211. package/dist/collection/components/form-field/form-field.e2e.js +122 -0
  212. package/dist/collection/components/form-field/form-field.e2e.js.map +1 -0
  213. package/dist/collection/components/form-field/form-field.js +29 -12
  214. package/dist/collection/components/form-field/form-field.js.map +1 -1
  215. package/dist/collection/components/galactic/galactic.js +1 -1
  216. package/dist/collection/components/galactic-menu/galactic-menu.css +1 -0
  217. package/dist/collection/components/galactic-menu/galactic-menu.js +2 -2
  218. package/dist/collection/components/grid/grid.js +30 -5
  219. package/dist/collection/components/grid/grid.js.map +1 -1
  220. package/dist/collection/components/grid-column/grid-column.js +4 -4
  221. package/dist/collection/components/grid-column/grid-column.js.map +1 -1
  222. package/dist/collection/components/grid-custom-cell/grid-custom-cell.js +1 -1
  223. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js +2 -2
  224. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js.map +1 -1
  225. package/dist/collection/components/grid-pagination/grid-pagination.js +22 -2
  226. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  227. package/dist/collection/components/header/header.css +9 -1
  228. package/dist/collection/components/header/header.js +2 -1
  229. package/dist/collection/components/header/header.js.map +1 -1
  230. package/dist/collection/components/hint/hint.js +1 -1
  231. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +2 -2
  232. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
  233. package/dist/collection/components/icon/icon.js +1 -1
  234. package/dist/collection/components/input/input-interface.js +1 -5
  235. package/dist/collection/components/input/input-interface.js.map +1 -1
  236. package/dist/collection/components/input/input.css +14 -1
  237. package/dist/collection/components/input/input.js +44 -10
  238. package/dist/collection/components/input/input.js.map +1 -1
  239. package/dist/collection/components/label/label.js +1 -1
  240. package/dist/collection/components/label/label.js.map +1 -1
  241. package/dist/collection/components/list-item/list-item.js +7 -2
  242. package/dist/collection/components/list-item/list-item.js.map +1 -1
  243. package/dist/collection/components/list-item-properties/list-item-properties.js +1 -1
  244. package/dist/collection/components/list-item-property/list-item-property.js +1 -1
  245. package/dist/collection/components/mat-icon/mat-icon.js +2 -2
  246. package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
  247. package/dist/collection/components/modal/modal-interface.js.map +1 -1
  248. package/dist/collection/components/modal/modal.css +1 -0
  249. package/dist/collection/components/modal/modal.js +58 -2
  250. package/dist/collection/components/modal/modal.js.map +1 -1
  251. package/dist/collection/components/native-select/native-select.css +2 -2
  252. package/dist/collection/components/native-select/native-select.js +2 -2
  253. package/dist/collection/components/native-select/native-select.js.map +1 -1
  254. package/dist/collection/components/nav/nav.css +2 -0
  255. package/dist/collection/components/nav/nav.js +1 -1
  256. package/dist/collection/components/nav-item/nav-item.css +24 -6
  257. package/dist/collection/components/nav-item/nav-item.js +1 -1
  258. package/dist/collection/components/progress-bar/progress-bar.css +2 -2
  259. package/dist/collection/components/progress-bar/progress-bar.js +3 -3
  260. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  261. package/dist/collection/components/progress-radial/progress-radial.js +3 -3
  262. package/dist/collection/components/progress-radial/progress-radial.js.map +1 -1
  263. package/dist/collection/components/radio/radio.js +2 -2
  264. package/dist/collection/components/radio/radio.js.map +1 -1
  265. package/dist/collection/components/radio-group/radio-group.js +39 -2
  266. package/dist/collection/components/radio-group/radio-group.js.map +1 -1
  267. package/dist/collection/components/select/select.css +1 -1
  268. package/dist/collection/components/select/select.js +35 -9
  269. package/dist/collection/components/select/select.js.map +1 -1
  270. package/dist/collection/components/select-option/select-option.js +2 -2
  271. package/dist/collection/components/select-option/select-option.js.map +1 -1
  272. package/dist/collection/components/skeleton-circle/skeleton-circle.js +1 -1
  273. package/dist/collection/components/skeleton-rectangle/skeleton-rectangle.js +1 -1
  274. package/dist/collection/components/skeleton-text/skeleton-text.js +1 -1
  275. package/dist/collection/components/spinner/spinner.js +1 -1
  276. package/dist/collection/components/switch/switch.js +23 -2
  277. package/dist/collection/components/switch/switch.js.map +1 -1
  278. package/dist/collection/components/tab/tab.js +1 -1
  279. package/dist/collection/components/tabs/tabs.css +104 -1
  280. package/dist/collection/components/tabs/tabs.js +181 -6
  281. package/dist/collection/components/tabs/tabs.js.map +1 -1
  282. package/dist/collection/components/textarea/textarea.js +5 -5
  283. package/dist/collection/components/textarea/textarea.js.map +1 -1
  284. package/dist/collection/components/tooltip/tooltip.js +11 -9
  285. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  286. package/dist/collection/utils/control-component-interface.js +37 -0
  287. package/dist/collection/utils/control-component-interface.js.map +1 -0
  288. package/dist/collection/utils/helpers.js +40 -0
  289. package/dist/collection/utils/helpers.js.map +1 -1
  290. package/dist/esm/{com-nav-utils-1366c701.js → com-nav-utils-ee7bf77c.js} +2 -2
  291. package/dist/esm/{com-nav-utils-1366c701.js.map → com-nav-utils-ee7bf77c.js.map} +1 -1
  292. package/dist/esm/control-component-interface-9f09e520.js +40 -0
  293. package/dist/esm/control-component-interface-9f09e520.js.map +1 -0
  294. package/dist/esm/{grid-pagination-421689be.js → grid-pagination-731726a6.js} +26 -6
  295. package/dist/esm/grid-pagination-731726a6.js.map +1 -0
  296. package/dist/esm/{helpers-f137ec8d.js → helpers-ece6a2d3.js} +42 -2
  297. package/dist/esm/helpers-ece6a2d3.js.map +1 -0
  298. package/dist/esm/{keyboard-event-bdea408a.js → keyboard-event-26b65ae5.js} +2 -2
  299. package/dist/esm/{keyboard-event-bdea408a.js.map → keyboard-event-26b65ae5.js.map} +1 -1
  300. package/dist/esm/loader.js +1 -1
  301. package/dist/esm/wcs-accordion-panel.entry.js +2 -2
  302. package/dist/esm/wcs-accordion-panel.entry.js.map +1 -1
  303. package/dist/esm/wcs-action-bar.entry.js +1 -1
  304. package/dist/esm/wcs-action-bar.entry.js.map +1 -1
  305. package/dist/esm/wcs-alert-drawer.entry.js +95 -0
  306. package/dist/esm/wcs-alert-drawer.entry.js.map +1 -0
  307. package/dist/esm/wcs-alert.entry.js +117 -0
  308. package/dist/esm/wcs-alert.entry.js.map +1 -0
  309. package/dist/esm/wcs-app.entry.js +3 -3
  310. package/dist/esm/wcs-badge.entry.js +2 -2
  311. package/dist/esm/wcs-badge.entry.js.map +1 -1
  312. package/dist/esm/wcs-breadcrumb-item.entry.js +1 -1
  313. package/dist/esm/wcs-breadcrumb-item.entry.js.map +1 -1
  314. package/dist/esm/wcs-breadcrumb.entry.js +2 -2
  315. package/dist/esm/wcs-button_2.entry.js +4 -9
  316. package/dist/esm/wcs-button_2.entry.js.map +1 -1
  317. package/dist/esm/wcs-card-body.entry.js +10 -3
  318. package/dist/esm/wcs-card-body.entry.js.map +1 -1
  319. package/dist/esm/wcs-card-content.entry.js +18 -0
  320. package/dist/esm/wcs-card-content.entry.js.map +1 -0
  321. package/dist/esm/wcs-card-footer.entry.js +18 -0
  322. package/dist/esm/wcs-card-footer.entry.js.map +1 -0
  323. package/dist/esm/wcs-card-header.entry.js +18 -0
  324. package/dist/esm/wcs-card-header.entry.js.map +1 -0
  325. package/dist/esm/wcs-card-media.entry.js +25 -0
  326. package/dist/esm/wcs-card-media.entry.js.map +1 -0
  327. package/dist/esm/wcs-card.entry.js +31 -3
  328. package/dist/esm/wcs-card.entry.js.map +1 -1
  329. package/dist/esm/wcs-checkbox.entry.js +6 -2
  330. package/dist/esm/wcs-checkbox.entry.js.map +1 -1
  331. package/dist/esm/wcs-com-nav-category.entry.js +4 -4
  332. package/dist/esm/wcs-com-nav-item.entry.js +2 -2
  333. package/dist/esm/wcs-com-nav-item.entry.js.map +1 -1
  334. package/dist/esm/wcs-com-nav-submenu.entry.js +4 -4
  335. package/dist/esm/wcs-com-nav.entry.js +4 -4
  336. package/dist/esm/wcs-counter.entry.js +13 -15
  337. package/dist/esm/wcs-counter.entry.js.map +1 -1
  338. package/dist/esm/wcs-divider.entry.js +1 -1
  339. package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
  340. package/dist/esm/wcs-dropdown-header.entry.js +1 -1
  341. package/dist/esm/wcs-dropdown-item.entry.js +2 -2
  342. package/dist/esm/wcs-dropdown.entry.js +3 -8
  343. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  344. package/dist/esm/wcs-editable-field.entry.js +81 -55
  345. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  346. package/dist/esm/wcs-error_3.entry.js +203 -0
  347. package/dist/esm/wcs-error_3.entry.js.map +1 -0
  348. package/dist/esm/wcs-field-content.entry.js +1 -1
  349. package/dist/esm/wcs-field-label.entry.js +1 -1
  350. package/dist/esm/wcs-field.entry.js +1 -1
  351. package/dist/esm/wcs-footer.entry.js +1 -1
  352. package/dist/esm/wcs-footer.entry.js.map +1 -1
  353. package/dist/esm/wcs-galactic-menu.entry.js +4 -4
  354. package/dist/esm/wcs-galactic-menu.entry.js.map +1 -1
  355. package/dist/esm/wcs-galactic.entry.js +1 -1
  356. package/dist/esm/wcs-grid-column.entry.js +2 -2
  357. package/dist/esm/wcs-grid-column.entry.js.map +1 -1
  358. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  359. package/dist/esm/wcs-grid-pagination.entry.js +2 -2
  360. package/dist/esm/wcs-grid.entry.js +14 -6
  361. package/dist/esm/wcs-grid.entry.js.map +1 -1
  362. package/dist/esm/wcs-header.entry.js +3 -3
  363. package/dist/esm/wcs-header.entry.js.map +1 -1
  364. package/dist/esm/wcs-hint.entry.js +1 -1
  365. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  366. package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
  367. package/dist/esm/wcs-icon.entry.js +2 -2
  368. package/dist/esm/wcs-input.entry.js +5 -13
  369. package/dist/esm/wcs-input.entry.js.map +1 -1
  370. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  371. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  372. package/dist/esm/wcs-list-item.entry.js +1 -1
  373. package/dist/esm/wcs-list-item.entry.js.map +1 -1
  374. package/dist/esm/wcs-mat-icon.entry.js +2 -2
  375. package/dist/esm/wcs-mat-icon.entry.js.map +1 -1
  376. package/dist/esm/wcs-modal.entry.js +18 -4
  377. package/dist/esm/wcs-modal.entry.js.map +1 -1
  378. package/dist/esm/wcs-native-select.entry.js +2 -2
  379. package/dist/esm/wcs-native-select.entry.js.map +1 -1
  380. package/dist/esm/wcs-nav-item.entry.js +3 -3
  381. package/dist/esm/wcs-nav-item.entry.js.map +1 -1
  382. package/dist/esm/wcs-nav.entry.js +3 -3
  383. package/dist/esm/wcs-nav.entry.js.map +1 -1
  384. package/dist/esm/wcs-progress-bar.entry.js +4 -4
  385. package/dist/esm/wcs-progress-bar.entry.js.map +1 -1
  386. package/dist/esm/wcs-progress-radial.entry.js +3 -3
  387. package/dist/esm/wcs-progress-radial.entry.js.map +1 -1
  388. package/dist/esm/wcs-radio-group.entry.js +5 -2
  389. package/dist/esm/wcs-radio-group.entry.js.map +1 -1
  390. package/dist/esm/wcs-radio.entry.js +2 -2
  391. package/dist/esm/wcs-radio.entry.js.map +1 -1
  392. package/dist/esm/wcs-select_2.entry.js +21 -13
  393. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  394. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  395. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  396. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  397. package/dist/esm/wcs-switch.entry.js +6 -2
  398. package/dist/esm/wcs-switch.entry.js.map +1 -1
  399. package/dist/esm/wcs-tab.entry.js +1 -1
  400. package/dist/esm/wcs-tabs.entry.js +150 -7
  401. package/dist/esm/wcs-tabs.entry.js.map +1 -1
  402. package/dist/esm/wcs-textarea.entry.js +2 -2
  403. package/dist/esm/wcs-textarea.entry.js.map +1 -1
  404. package/dist/esm/wcs-tooltip.entry.js +8 -4
  405. package/dist/esm/wcs-tooltip.entry.js.map +1 -1
  406. package/dist/esm/wcs.js +1 -1
  407. package/dist/types/components/alert/alert-interface.d.ts +11 -0
  408. package/dist/types/components/alert/alert.d.ts +79 -0
  409. package/dist/types/components/alert-drawer/alert-drawer-interface.d.ts +1 -0
  410. package/dist/types/components/alert-drawer/alert-drawer.d.ts +83 -0
  411. package/dist/types/components/button/button-interface.d.ts +1 -3
  412. package/dist/types/components/card/card-interface.d.ts +1 -0
  413. package/dist/types/components/card/card.d.ts +18 -1
  414. package/dist/types/components/card-body/card-body.d.ts +9 -0
  415. package/dist/types/components/card-content/card-content.d.ts +14 -0
  416. package/dist/types/components/card-footer/card-footer.d.ts +9 -0
  417. package/dist/types/components/card-header/card-header.d.ts +16 -0
  418. package/dist/types/components/card-media/card-media.d.ts +20 -0
  419. package/dist/types/components/checkbox/checkbox.d.ts +3 -1
  420. package/dist/types/components/counter/counter-interface.d.ts +1 -3
  421. package/dist/types/components/counter/counter.d.ts +6 -0
  422. package/dist/types/components/editable-field/editable-field.d.ts +23 -9
  423. package/dist/types/components/grid/grid.d.ts +4 -0
  424. package/dist/types/components/grid-pagination/grid-pagination.d.ts +6 -1
  425. package/dist/types/components/header/header.d.ts +1 -0
  426. package/dist/types/components/input/input-interface.d.ts +1 -3
  427. package/dist/types/components/input/input.d.ts +3 -0
  428. package/dist/types/components/list-item/list-item.d.ts +5 -0
  429. package/dist/types/components/mat-icon/mat-icon.d.ts +1 -1
  430. package/dist/types/components/modal/modal-interface.d.ts +2 -1
  431. package/dist/types/components/modal/modal.d.ts +23 -0
  432. package/dist/types/components/radio-group/radio-group.d.ts +3 -1
  433. package/dist/types/components/select/select.d.ts +11 -1
  434. package/dist/types/components/switch/switch.d.ts +3 -1
  435. package/dist/types/components/tabs/tabs.d.ts +55 -0
  436. package/dist/types/components/tooltip/tooltip.d.ts +3 -5
  437. package/dist/types/components.d.ts +658 -22
  438. package/dist/types/utils/control-component-interface.d.ts +22 -0
  439. package/dist/types/utils/helpers.d.ts +21 -0
  440. package/dist/wcs/p-0017d766.js +2 -0
  441. package/dist/wcs/{p-5ea2aba5.entry.js → p-0424e545.entry.js} +2 -2
  442. package/dist/wcs/{p-25b96cde.entry.js → p-0758d22e.entry.js} +2 -2
  443. package/dist/wcs/p-0758d22e.entry.js.map +1 -0
  444. package/dist/wcs/p-0b8157e7.entry.js +2 -0
  445. package/dist/wcs/p-0dd07842.entry.js +2 -0
  446. package/dist/wcs/p-0dd07842.entry.js.map +1 -0
  447. package/dist/wcs/{p-87b69cac.entry.js → p-1244daa0.entry.js} +2 -2
  448. package/dist/wcs/{p-80a23f9c.entry.js → p-18fa39f4.entry.js} +2 -2
  449. package/dist/wcs/{p-80a23f9c.entry.js.map → p-18fa39f4.entry.js.map} +1 -1
  450. package/dist/wcs/p-1ba616c2.entry.js +2 -0
  451. package/dist/wcs/p-1ba616c2.entry.js.map +1 -0
  452. package/dist/wcs/p-1e7ea63c.entry.js +2 -0
  453. package/dist/wcs/p-1e7ea63c.entry.js.map +1 -0
  454. package/dist/wcs/p-1f593d06.entry.js +2 -0
  455. package/dist/wcs/p-1f593d06.entry.js.map +1 -0
  456. package/dist/wcs/{p-d2a4f609.entry.js → p-1fbe0328.entry.js} +2 -2
  457. package/dist/wcs/p-1fbe0328.entry.js.map +1 -0
  458. package/dist/wcs/{p-276b8125.entry.js → p-204f2722.entry.js} +9 -9
  459. package/dist/wcs/p-204f2722.entry.js.map +1 -0
  460. package/dist/wcs/p-27b438c0.entry.js +2 -0
  461. package/dist/wcs/{p-45a6934d.entry.js → p-352e1f99.entry.js} +2 -2
  462. package/dist/wcs/{p-3cfa1c4b.entry.js → p-367946fe.entry.js} +2 -2
  463. package/dist/wcs/p-3823f54e.entry.js +2 -0
  464. package/dist/wcs/{p-4982f96c.entry.js → p-3a18535f.entry.js} +2 -2
  465. package/dist/wcs/p-41b946b2.entry.js +2 -0
  466. package/dist/wcs/p-41b946b2.entry.js.map +1 -0
  467. package/dist/wcs/{p-9553d60e.entry.js → p-496115a5.entry.js} +2 -2
  468. package/dist/wcs/{p-9553d60e.entry.js.map → p-496115a5.entry.js.map} +1 -1
  469. package/dist/wcs/p-4fb2d985.entry.js +2 -0
  470. package/dist/wcs/p-4fb2d985.entry.js.map +1 -0
  471. package/dist/wcs/{p-b0f8190f.entry.js → p-5202b323.entry.js} +2 -2
  472. package/dist/wcs/p-52d77e1f.js +2 -0
  473. package/dist/wcs/p-52d77e1f.js.map +1 -0
  474. package/dist/wcs/{p-ca8f3677.entry.js → p-53a395a9.entry.js} +2 -2
  475. package/dist/wcs/{p-ca8f3677.entry.js.map → p-53a395a9.entry.js.map} +1 -1
  476. package/dist/wcs/p-5607246c.entry.js +2 -0
  477. package/dist/wcs/p-5607246c.entry.js.map +1 -0
  478. package/dist/wcs/p-580b3142.entry.js +2 -0
  479. package/dist/wcs/{p-806315e6.entry.js.map → p-580b3142.entry.js.map} +1 -1
  480. package/dist/wcs/p-5da0534f.entry.js +2 -0
  481. package/dist/wcs/p-5da0534f.entry.js.map +1 -0
  482. package/dist/wcs/p-5e8fff73.entry.js +2 -0
  483. package/dist/wcs/p-5e8fff73.entry.js.map +1 -0
  484. package/dist/wcs/p-622f7403.entry.js +2 -0
  485. package/dist/wcs/p-622f7403.entry.js.map +1 -0
  486. package/dist/wcs/p-637ec45a.entry.js +2 -0
  487. package/dist/wcs/p-637ec45a.entry.js.map +1 -0
  488. package/dist/wcs/p-6aededc6.entry.js +2 -0
  489. package/dist/wcs/p-6aededc6.entry.js.map +1 -0
  490. package/dist/wcs/p-6c6079ee.entry.js +2 -0
  491. package/dist/wcs/{p-209145de.entry.js.map → p-6c6079ee.entry.js.map} +1 -1
  492. package/dist/wcs/{p-e5c057c4.entry.js → p-781a956e.entry.js} +2 -2
  493. package/dist/wcs/p-7de847e0.entry.js +2 -0
  494. package/dist/wcs/p-8152d360.entry.js +2 -0
  495. package/dist/wcs/p-8152d360.entry.js.map +1 -0
  496. package/dist/wcs/{p-2c9e20c1.entry.js → p-850fa9c9.entry.js} +2 -2
  497. package/dist/wcs/{p-f06aa79d.entry.js → p-86ec9ead.entry.js} +2 -2
  498. package/dist/wcs/{p-f06aa79d.entry.js.map → p-86ec9ead.entry.js.map} +1 -1
  499. package/dist/wcs/p-89b8c724.js +2 -0
  500. package/dist/wcs/p-8c2605fd.entry.js +2 -0
  501. package/dist/wcs/p-8c2605fd.entry.js.map +1 -0
  502. package/dist/wcs/{p-2305f257.entry.js → p-8e9bd0f1.entry.js} +2 -2
  503. package/dist/wcs/p-98a8b806.entry.js +2 -0
  504. package/dist/wcs/p-98a8b806.entry.js.map +1 -0
  505. package/dist/wcs/p-9c73744c.entry.js +2 -0
  506. package/dist/wcs/p-9c73744c.entry.js.map +1 -0
  507. package/dist/wcs/p-9fd3366c.entry.js +2 -0
  508. package/dist/wcs/p-9fd3366c.entry.js.map +1 -0
  509. package/dist/wcs/p-a0f6ef30.entry.js +2 -0
  510. package/dist/wcs/p-a0f6ef30.entry.js.map +1 -0
  511. package/dist/wcs/p-a7468a3a.js +2 -0
  512. package/dist/wcs/p-a7468a3a.js.map +1 -0
  513. package/dist/wcs/{p-0fa370d7.entry.js → p-a94e685c.entry.js} +3 -3
  514. package/dist/wcs/{p-0fa370d7.entry.js.map → p-a94e685c.entry.js.map} +1 -1
  515. package/dist/wcs/{p-97cbbcfc.entry.js → p-a956dc84.entry.js} +2 -2
  516. package/dist/wcs/p-a956dc84.entry.js.map +1 -0
  517. package/dist/wcs/{p-e19308cf.entry.js → p-aadf37e7.entry.js} +2 -2
  518. package/dist/wcs/{p-f8d2be83.entry.js → p-ad286030.entry.js} +2 -2
  519. package/dist/wcs/p-ad5192cd.entry.js +2 -0
  520. package/dist/wcs/p-b0a6eec6.entry.js +2 -0
  521. package/dist/wcs/p-b0a6eec6.entry.js.map +1 -0
  522. package/dist/wcs/{p-fa507e06.entry.js → p-b28b2fba.entry.js} +2 -2
  523. package/dist/wcs/p-b28b2fba.entry.js.map +1 -0
  524. package/dist/wcs/{p-15ff9f93.entry.js → p-bc009574.entry.js} +2 -2
  525. package/dist/wcs/{p-15ff9f93.entry.js.map → p-bc009574.entry.js.map} +1 -1
  526. package/dist/wcs/p-c211a5d1.entry.js +2 -0
  527. package/dist/wcs/{p-85a5bbb7.entry.js → p-c261eaf9.entry.js} +2 -2
  528. package/dist/wcs/p-c261eaf9.entry.js.map +1 -0
  529. package/dist/wcs/p-c5bad0b8.js +2 -0
  530. package/dist/wcs/p-c5bad0b8.js.map +1 -0
  531. package/dist/wcs/p-c7812760.entry.js +2 -0
  532. package/dist/wcs/{p-9e03b379.entry.js → p-c84ae00d.entry.js} +2 -2
  533. package/dist/wcs/p-cad10435.entry.js +2 -0
  534. package/dist/wcs/{p-8f0e093f.entry.js.map → p-cad10435.entry.js.map} +1 -1
  535. package/dist/wcs/p-cbbca016.entry.js +2 -0
  536. package/dist/wcs/p-cbbca016.entry.js.map +1 -0
  537. package/dist/wcs/{p-a788b5bd.entry.js → p-cbda74f6.entry.js} +2 -2
  538. package/dist/wcs/{p-09d0a296.entry.js → p-d27d4a53.entry.js} +3 -3
  539. package/dist/wcs/p-d27d4a53.entry.js.map +1 -0
  540. package/dist/wcs/p-dfb52a1c.entry.js +2 -0
  541. package/dist/wcs/p-dfb52a1c.entry.js.map +1 -0
  542. package/dist/wcs/p-dff8641e.entry.js +2 -0
  543. package/dist/wcs/p-dff8641e.entry.js.map +1 -0
  544. package/dist/wcs/p-e26c19e5.entry.js +2 -0
  545. package/dist/wcs/{p-1e5aa960.entry.js → p-e56b9ce2.entry.js} +2 -2
  546. package/dist/wcs/p-e56b9ce2.entry.js.map +1 -0
  547. package/dist/wcs/p-ec383729.entry.js +2 -0
  548. package/dist/wcs/p-ec383729.entry.js.map +1 -0
  549. package/dist/wcs/p-f929b66f.entry.js +2 -0
  550. package/dist/wcs/p-f929b66f.entry.js.map +1 -0
  551. package/dist/wcs/{p-db81b74f.entry.js → p-fd187bce.entry.js} +2 -2
  552. package/dist/wcs/p-fd187bce.entry.js.map +1 -0
  553. package/dist/wcs/p-fdeae83e.entry.js +2 -0
  554. package/dist/wcs/p-fdeae83e.entry.js.map +1 -0
  555. package/dist/wcs/wcs.esm.js +1 -1
  556. package/dist/wcs/wcs.esm.js.map +1 -1
  557. package/package.json +5 -2
  558. package/dist/cjs/button-interface-629f3563.js +0 -12
  559. package/dist/cjs/button-interface-629f3563.js.map +0 -1
  560. package/dist/cjs/grid-pagination-2c752b22.js.map +0 -1
  561. package/dist/cjs/helpers-871f5a3d.js.map +0 -1
  562. package/dist/cjs/wcs-error_2.cjs.entry.js +0 -168
  563. package/dist/cjs/wcs-error_2.cjs.entry.js.map +0 -1
  564. package/dist/cjs/wcs-label.cjs.entry.js +0 -33
  565. package/dist/cjs/wcs-label.cjs.entry.js.map +0 -1
  566. package/dist/esm/button-interface-dc5ddd51.js +0 -9
  567. package/dist/esm/button-interface-dc5ddd51.js.map +0 -1
  568. package/dist/esm/grid-pagination-421689be.js.map +0 -1
  569. package/dist/esm/helpers-f137ec8d.js.map +0 -1
  570. package/dist/esm/wcs-error_2.entry.js +0 -163
  571. package/dist/esm/wcs-error_2.entry.js.map +0 -1
  572. package/dist/esm/wcs-label.entry.js +0 -29
  573. package/dist/esm/wcs-label.entry.js.map +0 -1
  574. package/dist/wcs/p-08e86d69.entry.js +0 -2
  575. package/dist/wcs/p-08e86d69.entry.js.map +0 -1
  576. package/dist/wcs/p-09d0a296.entry.js.map +0 -1
  577. package/dist/wcs/p-0fdaec9e.entry.js +0 -2
  578. package/dist/wcs/p-0fdaec9e.entry.js.map +0 -1
  579. package/dist/wcs/p-19c77b5c.entry.js +0 -2
  580. package/dist/wcs/p-1ab0d13b.entry.js +0 -2
  581. package/dist/wcs/p-1ab0d13b.entry.js.map +0 -1
  582. package/dist/wcs/p-1e5aa960.entry.js.map +0 -1
  583. package/dist/wcs/p-209145de.entry.js +0 -2
  584. package/dist/wcs/p-25b96cde.entry.js.map +0 -1
  585. package/dist/wcs/p-276b8125.entry.js.map +0 -1
  586. package/dist/wcs/p-2add4d4d.entry.js +0 -2
  587. package/dist/wcs/p-2add4d4d.entry.js.map +0 -1
  588. package/dist/wcs/p-400a71d7.entry.js +0 -2
  589. package/dist/wcs/p-412b0021.js +0 -2
  590. package/dist/wcs/p-412b0021.js.map +0 -1
  591. package/dist/wcs/p-4ca7c59f.entry.js +0 -2
  592. package/dist/wcs/p-4ca7c59f.entry.js.map +0 -1
  593. package/dist/wcs/p-4d6d1d14.js +0 -2
  594. package/dist/wcs/p-52cd0abb.entry.js +0 -2
  595. package/dist/wcs/p-52cd0abb.entry.js.map +0 -1
  596. package/dist/wcs/p-550012c2.entry.js +0 -2
  597. package/dist/wcs/p-5f517eb5.entry.js +0 -2
  598. package/dist/wcs/p-76f07dbd.entry.js +0 -2
  599. package/dist/wcs/p-76f07dbd.entry.js.map +0 -1
  600. package/dist/wcs/p-806315e6.entry.js +0 -2
  601. package/dist/wcs/p-85a5bbb7.entry.js.map +0 -1
  602. package/dist/wcs/p-8780a429.entry.js +0 -2
  603. package/dist/wcs/p-8780a429.entry.js.map +0 -1
  604. package/dist/wcs/p-8bd1b9ce.entry.js +0 -2
  605. package/dist/wcs/p-8bd1b9ce.entry.js.map +0 -1
  606. package/dist/wcs/p-8f0e093f.entry.js +0 -2
  607. package/dist/wcs/p-94ff8939.entry.js +0 -2
  608. package/dist/wcs/p-94ff8939.entry.js.map +0 -1
  609. package/dist/wcs/p-96195d9a.entry.js +0 -2
  610. package/dist/wcs/p-96195d9a.entry.js.map +0 -1
  611. package/dist/wcs/p-97cbbcfc.entry.js.map +0 -1
  612. package/dist/wcs/p-985c4cf2.entry.js +0 -2
  613. package/dist/wcs/p-985c4cf2.entry.js.map +0 -1
  614. package/dist/wcs/p-9f23c49e.entry.js +0 -2
  615. package/dist/wcs/p-9f23c49e.entry.js.map +0 -1
  616. package/dist/wcs/p-a3aece7a.js +0 -2
  617. package/dist/wcs/p-a3aece7a.js.map +0 -1
  618. package/dist/wcs/p-a66a4289.entry.js +0 -2
  619. package/dist/wcs/p-ab49926d.entry.js +0 -2
  620. package/dist/wcs/p-ab49926d.entry.js.map +0 -1
  621. package/dist/wcs/p-bf31245c.entry.js +0 -2
  622. package/dist/wcs/p-bf31245c.entry.js.map +0 -1
  623. package/dist/wcs/p-c6a28b79.js +0 -2
  624. package/dist/wcs/p-c6a28b79.js.map +0 -1
  625. package/dist/wcs/p-cd592a00.entry.js +0 -2
  626. package/dist/wcs/p-cd592a00.entry.js.map +0 -1
  627. package/dist/wcs/p-d2a4f609.entry.js.map +0 -1
  628. package/dist/wcs/p-d42831b2.entry.js +0 -2
  629. package/dist/wcs/p-d42831b2.entry.js.map +0 -1
  630. package/dist/wcs/p-d443d419.entry.js +0 -2
  631. package/dist/wcs/p-d7acbf01.js +0 -2
  632. package/dist/wcs/p-db81b74f.entry.js.map +0 -1
  633. package/dist/wcs/p-dbbf0980.entry.js +0 -2
  634. package/dist/wcs/p-dbbf0980.entry.js.map +0 -1
  635. package/dist/wcs/p-e64d7437.entry.js +0 -2
  636. package/dist/wcs/p-e86575d3.entry.js +0 -2
  637. package/dist/wcs/p-e86575d3.entry.js.map +0 -1
  638. package/dist/wcs/p-f264d46f.entry.js +0 -2
  639. package/dist/wcs/p-fa507e06.entry.js.map +0 -1
  640. package/dist/wcs/p-fd9e731d.entry.js +0 -2
  641. package/dist/wcs/p-fd9e731d.entry.js.map +0 -1
  642. /package/dist/wcs/{p-d7acbf01.js.map → p-0017d766.js.map} +0 -0
  643. /package/dist/wcs/{p-5ea2aba5.entry.js.map → p-0424e545.entry.js.map} +0 -0
  644. /package/dist/wcs/{p-f264d46f.entry.js.map → p-0b8157e7.entry.js.map} +0 -0
  645. /package/dist/wcs/{p-87b69cac.entry.js.map → p-1244daa0.entry.js.map} +0 -0
  646. /package/dist/wcs/{p-e64d7437.entry.js.map → p-27b438c0.entry.js.map} +0 -0
  647. /package/dist/wcs/{p-45a6934d.entry.js.map → p-352e1f99.entry.js.map} +0 -0
  648. /package/dist/wcs/{p-3cfa1c4b.entry.js.map → p-367946fe.entry.js.map} +0 -0
  649. /package/dist/wcs/{p-400a71d7.entry.js.map → p-3823f54e.entry.js.map} +0 -0
  650. /package/dist/wcs/{p-4982f96c.entry.js.map → p-3a18535f.entry.js.map} +0 -0
  651. /package/dist/wcs/{p-b0f8190f.entry.js.map → p-5202b323.entry.js.map} +0 -0
  652. /package/dist/wcs/{p-e5c057c4.entry.js.map → p-781a956e.entry.js.map} +0 -0
  653. /package/dist/wcs/{p-550012c2.entry.js.map → p-7de847e0.entry.js.map} +0 -0
  654. /package/dist/wcs/{p-2c9e20c1.entry.js.map → p-850fa9c9.entry.js.map} +0 -0
  655. /package/dist/wcs/{p-4d6d1d14.js.map → p-89b8c724.js.map} +0 -0
  656. /package/dist/wcs/{p-2305f257.entry.js.map → p-8e9bd0f1.entry.js.map} +0 -0
  657. /package/dist/wcs/{p-e19308cf.entry.js.map → p-aadf37e7.entry.js.map} +0 -0
  658. /package/dist/wcs/{p-f8d2be83.entry.js.map → p-ad286030.entry.js.map} +0 -0
  659. /package/dist/wcs/{p-a66a4289.entry.js.map → p-ad5192cd.entry.js.map} +0 -0
  660. /package/dist/wcs/{p-19c77b5c.entry.js.map → p-c211a5d1.entry.js.map} +0 -0
  661. /package/dist/wcs/{p-d443d419.entry.js.map → p-c7812760.entry.js.map} +0 -0
  662. /package/dist/wcs/{p-9e03b379.entry.js.map → p-c84ae00d.entry.js.map} +0 -0
  663. /package/dist/wcs/{p-a788b5bd.entry.js.map → p-cbda74f6.entry.js.map} +0 -0
  664. /package/dist/wcs/{p-5f517eb5.entry.js.map → p-e26c19e5.entry.js.map} +0 -0
@@ -0,0 +1,203 @@
1
+ import { r as registerInstance, h, H as Host, g as getElement } from './index-d9de61ce.js';
2
+ import { i as isMutableAriaAttribute } from './mutable-aria-attribute-e225edc1.js';
3
+ import { z as normalizeWhitespace, i as inheritAriaAttributes, a as inheritAttributes, s as setOrRemoveAttribute } from './helpers-ece6a2d3.js';
4
+ import { i as isControlComponentWithLabel } from './control-component-interface-9f09e520.js';
5
+
6
+ const errorCss = ":host{--wcs-error-color:var(--wcs-semantic-color-text-critical);--wcs-error-font-size:var(--wcs-semantic-font-size-caption-2);--wcs-error-font-weight:var(--wcs-semantic-font-weight-book);color:var(--wcs-error-color);font-size:var(--wcs-error-font-size);font-weight:var(--wcs-error-font-weight)}";
7
+ const WcsErrorStyle0 = errorCss;
8
+
9
+ const Label$1 = class {
10
+ constructor(hostRef) {
11
+ registerInstance(this, hostRef);
12
+ }
13
+ render() {
14
+ return (h(Host, { key: '7dffcb3487f7210c5c9a45af709fc942a1410679', role: "alert", slot: "error" }, h("slot", { key: '251fbdc26fe58be4296328c4ebaed77329c6c507' })));
15
+ }
16
+ };
17
+ Label$1.style = WcsErrorStyle0;
18
+
19
+ const formFieldCss = ":host{--wcs-form-field-gap:var(--wcs-semantic-spacing-small);--wcs-form-field-prefix-suffix-border-radius:var(--wcs-semantic-border-radius-base);--wcs-form-field-prefix-icon-color:var(--wcs-semantic-color-foreground-primary);--wcs-form-field-prefix-value-color:var(--wcs-semantic-color-text-inverse);--wcs-form-field-prefix-placeholder-color:var(--wcs-semantic-color-text-inverse);display:flex;flex-direction:column;gap:var(--wcs-form-field-gap);}:host .input-container{display:flex}:host ::slotted([slot=prefix]){--wcs-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-select-control-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-select-control-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-select-control-border-width-default:0;--wcs-select-control-border-style-focus:dashed;--wcs-select-control-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-value-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-inverse);--wcs-native-select-arrow-color:var(--wcs-form-field-prefix-icon-color);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-default);--wcs-native-select-border-width:0;--wcs-native-select-border-color-focus:var(--wcs-semantic-color-border-focus-base);--wcs-native-select-border-style-focus:dashed;--wcs-native-select-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-native-select-option-color:var(--wcs-semantic-color-text-inverse);--wcs-button-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius)}:host ::slotted([slot=suffix]){--wcs-button-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-select-control-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-native-select-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0}::slotted([slot=prefix][disabled]),::slotted([slot=prefix]:disabled),::slotted([slot=prefix][aria-disabled=true]),::slotted([slot=prefix][data-disabled]){--wcs-semantic-color-background-control-disabled:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-semantic-color-text-disabled:var(--wcs-semantic-color-foreground-disabled);--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-select-value-color:var(--wcs-semantic-color-text-disabled);--wcs-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-disabled);--wcs-native-select-placeholder-color:var(--wcs-semantic-color-text-disabled);--wcs-native-select-value-color:var(--wcs-semantic-color-text-disabled)}::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-hover);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-hover)}::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])){--wcs-select-control-background-color:var(--wcs-semantic-color-background-action-primary-press);--wcs-native-select-background-color:var(--wcs-semantic-color-background-action-primary-press)}.input-container{display:flex}::slotted(wcs-select:not([slot=prefix])){width:100%}::slotted(wcs-native-select:not([slot=prefix])){width:100%}:host(.has-prefix) ::slotted(:not([slot=prefix])){--wcs-input-border-radius-left:0;--wcs-select-control-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;--wcs-native-select-border-radius:0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0}:host(.has-suffix) ::slotted(:not([slot=suffix])){--wcs-input-border-radius-right:0;--wcs-select-control-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);--wcs-native-select-border-radius:var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius)}:host(.has-prefix.has-suffix) ::slotted(:not([slot=prefix]):not([slot=suffix])){--wcs-input-border-radius-left:0;--wcs-input-border-radius-right:0;--wcs-select-control-border-radius:0;--wcs-native-select-border-radius:0}";
20
+ const WcsFormFieldStyle0 = formFieldCss;
21
+
22
+ const FormField = class {
23
+ constructor(hostRef) {
24
+ registerInstance(this, hostRef);
25
+ this.isError = false;
26
+ this.hasPrefix = false;
27
+ this.hasSuffix = false;
28
+ this.spiedElement = undefined;
29
+ }
30
+ componentWillLoad() {
31
+ this.hasSuffix = this.el.querySelector('[slot=suffix]') !== null;
32
+ this.hasPrefix = this.el.querySelector('[slot=prefix]') !== null;
33
+ }
34
+ componentDidLoad() {
35
+ this.initSpiedElement();
36
+ this.addRequiredMarkerToLabel();
37
+ this.updateErrorStateOnInput(this.isError);
38
+ }
39
+ isErrorChange(newValue) {
40
+ this.updateErrorStateOnInput(newValue);
41
+ this.updateAriaAttributes();
42
+ }
43
+ updateErrorStateOnInput(newValue) {
44
+ if (this.spiedElementIsOfType('wcs-input', 'wcs-textarea')) {
45
+ if (newValue) {
46
+ this.spiedElement.setAttribute('state', 'error');
47
+ }
48
+ else {
49
+ this.spiedElement.setAttribute('state', 'initial');
50
+ }
51
+ }
52
+ }
53
+ /**
54
+ * This function return true if the form field contains an element with tagName matches a value of the types param
55
+ * @param types
56
+ * @private
57
+ */
58
+ spiedElementIsOfType(...types) {
59
+ var _a;
60
+ for (const type of types) {
61
+ if (((_a = this.spiedElement) === null || _a === void 0 ? void 0 : _a.tagName) === type.toUpperCase())
62
+ return true;
63
+ }
64
+ return false;
65
+ }
66
+ addRequiredMarkerToLabel() {
67
+ var _a;
68
+ // TODO: deprecate this in favor of the 'required' component attribute
69
+ const label = this.el.querySelector('wcs-label');
70
+ this.observer = new MutationObserver(mutations => {
71
+ var _a;
72
+ const requiredAttMutation = mutations.filter(m => m.attributeName === 'required')[0];
73
+ if (requiredAttMutation) {
74
+ this.updateLabelRequiredFlag((_a = this.spiedElement) === null || _a === void 0 ? void 0 : _a.hasAttribute('required'), label);
75
+ }
76
+ });
77
+ if (this.spiedElement) {
78
+ this.observer.observe(this.spiedElement, { attributes: true });
79
+ }
80
+ const isRequired = (_a = this.spiedElement) === null || _a === void 0 ? void 0 : _a.hasAttribute('required');
81
+ this.updateLabelRequiredFlag(isRequired, label);
82
+ }
83
+ initSpiedElement() {
84
+ var _a, _b;
85
+ const SUPPORTED_COMPONENTS = ['wcs-input', 'wcs-select', 'wcs-native-select', 'wcs-textarea', 'wcs-radio-group', 'wcs-switch', 'wcs-checkbox', 'wcs-native-select', 'wcs-counter'];
86
+ this.spiedElement = (_a = this.el.shadowRoot.querySelector('slot:not([name])')) === null || _a === void 0 ? void 0 : _a.assignedElements().filter(n => [...SUPPORTED_COMPONENTS, 'SLOT'].map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0];
87
+ // If the component is used in another web component
88
+ if (((_b = this.spiedElement) === null || _b === void 0 ? void 0 : _b.tagName) === 'SLOT') {
89
+ this.spiedElement = (this.spiedElement
90
+ .assignedElements()
91
+ .filter(n => SUPPORTED_COMPONENTS.map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0]);
92
+ }
93
+ if (!this.spiedElement) {
94
+ // tslint:disable-next-line:no-console
95
+ console.warn('Form-field component support only ' + SUPPORTED_COMPONENTS.toString() + '. Some features may not work with the provided component.');
96
+ return;
97
+ }
98
+ }
99
+ async updateAriaAttributes() {
100
+ if (isMutableAriaAttribute(this.spiedElement)) {
101
+ const ariaLabelParts = [];
102
+ if (isControlComponentWithLabel(this.spiedElement)) {
103
+ const innerLabel = await this.spiedElement.getLabel();
104
+ const combinedLabel = `${this.label || ''} ${innerLabel || ''}`.trim();
105
+ if (combinedLabel) {
106
+ ariaLabelParts.push(normalizeWhitespace(combinedLabel));
107
+ }
108
+ }
109
+ else {
110
+ if (this.label) {
111
+ ariaLabelParts.push(normalizeWhitespace(this.label));
112
+ }
113
+ }
114
+ if (this.description) {
115
+ ariaLabelParts.push(normalizeWhitespace(this.description));
116
+ }
117
+ // Sur les autres DS, généralement seul l'erreur est affichée et pas avec la description
118
+ if (this.isError) {
119
+ this.spiedElement.setAriaAttribute('aria-invalid', 'true');
120
+ if (this.error) {
121
+ ariaLabelParts.push(normalizeWhitespace(this.error));
122
+ }
123
+ }
124
+ else {
125
+ this.spiedElement.setAriaAttribute('aria-invalid', 'false');
126
+ }
127
+ this.spiedElement.setAriaAttribute('aria-label', ariaLabelParts.length > 0 ? ariaLabelParts.join(' ') : null);
128
+ }
129
+ }
130
+ get label() {
131
+ var _a;
132
+ return ((_a = this.el.querySelector('wcs-label')) === null || _a === void 0 ? void 0 : _a.textContent) || null;
133
+ }
134
+ get description() {
135
+ var _a;
136
+ return ((_a = this.el.querySelector('wcs-hint')) === null || _a === void 0 ? void 0 : _a.textContent) || null;
137
+ }
138
+ get error() {
139
+ var _a;
140
+ return ((_a = this.el.querySelector('wcs-error')) === null || _a === void 0 ? void 0 : _a.textContent) || null;
141
+ }
142
+ updateLabelRequiredFlag(isRequired, label) {
143
+ if (isRequired && label) {
144
+ label.setAttribute('required', 'true');
145
+ }
146
+ else if (!isRequired && label) {
147
+ label.removeAttribute('required');
148
+ }
149
+ }
150
+ disconnectedCallback() {
151
+ var _a;
152
+ (_a = this.observer) === null || _a === void 0 ? void 0 : _a.disconnect();
153
+ }
154
+ render() {
155
+ let classes = '';
156
+ const isError = this.isError;
157
+ if (this.hasSuffix) {
158
+ classes += ' has-suffix';
159
+ }
160
+ if (this.hasPrefix) {
161
+ classes += ' has-prefix';
162
+ }
163
+ return (h(Host, { key: 'd8a5d2023add393b0a31173351a3d16d9fa0b1a6', class: classes }, h("slot", { key: '3f347f4dce239c0106fbbe52bdc217fa37c05d01', name: "label" }), h("div", { key: 'd6cb92104d72530059ecb9a383ff832afb0c2141', class: "input-container" }, h("slot", { key: '8be28f721ff351d41dced80c97c0e34337703d0e', name: "prefix" }), h("slot", { key: 'cc58d463877a1e8513736a987286e965870e096d', onSlotchange: () => this.onFormInputSlotChange() }), h("slot", { key: '898709cfcf0ae1cd43dabd55547d62199d6230c9', name: "suffix" })), isError ? (h("slot", { name: "error" })) : '', h("slot", { key: 'aaf2d35dfbdfda47b440f96d7f9aa22cb09f6a06', name: "messages" })));
164
+ }
165
+ onFormInputSlotChange() {
166
+ this.initSpiedElement();
167
+ this.updateAriaAttributes();
168
+ this.addRequiredMarkerToLabel();
169
+ this.updateErrorStateOnInput(this.isError);
170
+ }
171
+ get el() { return getElement(this); }
172
+ static get watchers() { return {
173
+ "isError": ["isErrorChange"]
174
+ }; }
175
+ };
176
+ FormField.style = WcsFormFieldStyle0;
177
+
178
+ const labelCss = ":host{--wcs-label-font-weight:var(--wcs-semantic-font-weight-book);--wcs-label-color:var(--wcs-semantic-color-text-primary);--wcs-label-required-marker-color:var(--wcs-semantic-color-text-critical);--wcs-label-gap:var(--wcs-semantic-spacing-small);font-weight:var(--wcs-label-font-weight)}:host([required])>label::after{font-weight:var(--wcs-label-font-weight);color:var(--wcs-label-required-marker-color);content:\" *\"}label{display:inline-block;color:var(--wcs-label-color);font-weight:var(--wcs-label-font-weight)}label ::slotted(wcs-mat-icon){display:inline;vertical-align:middle;margin-left:var(--wcs-label-gap)}";
179
+ const WcsLabelStyle0 = labelCss;
180
+
181
+ const LABEL_INHERITED_ATTRS = ['title'];
182
+ const Label = class {
183
+ constructor(hostRef) {
184
+ registerInstance(this, hostRef);
185
+ this.inheritedAttributes = {};
186
+ this.required = false;
187
+ }
188
+ componentWillLoad() {
189
+ this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes(this.el, LABEL_INHERITED_ATTRS));
190
+ }
191
+ async setAriaAttribute(attr, value) {
192
+ setOrRemoveAttribute(this.nativeLabel, attr, value);
193
+ }
194
+ render() {
195
+ return (h(Host, { key: '62f8ca37637cc792483f24476dbbd63ff3c077e5', slot: "label" }, h("label", Object.assign({ key: '3cef9a517d57652b75af3157d2c96a34693b258f', ref: (el) => this.nativeLabel = el }, this.inheritedAttributes), h("slot", { key: 'a614b379b45ac3d4cc1d58c45d39b64c0312c1d7' }))));
196
+ }
197
+ get el() { return getElement(this); }
198
+ };
199
+ Label.style = WcsLabelStyle0;
200
+
201
+ export { Label$1 as wcs_error, FormField as wcs_form_field, Label as wcs_label };
202
+
203
+ //# sourceMappingURL=wcs-error_3.entry.js.map
@@ -0,0 +1 @@
1
+ {"file":"wcs-error.wcs-form-field.wcs-label.entry.js","mappings":"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","names":["Label"],"sources":["src/components/error/error.scss?tag=wcs-error&encapsulation=shadow","src/components/error/error.tsx","src/components/form-field/form-field.scss?tag=wcs-form-field&encapsulation=shadow","src/components/form-field/form-field.tsx","src/components/label/label.scss?tag=wcs-label&encapsulation=shadow","src/components/label/label.tsx"],"sourcesContent":[":host {\n --wcs-error-color: var(--wcs-semantic-color-text-critical);\n --wcs-error-font-size: var(--wcs-semantic-font-size-caption-2);\n --wcs-error-font-weight: var(--wcs-semantic-font-weight-book);\n\n color: var(--wcs-error-color);\n font-size: var(--wcs-error-font-size);\n font-weight: var(--wcs-error-font-weight);\n}\n","import { Component, ComponentInterface, h, Host } from '@stencil/core';\n\n/**\n * The `wcs-error` should always be wrapped in a `wcs-form-field`.\n * It is used to display a red message under the field indicating an incorrect user input.\n * \n * ## Accessibility guidelines 💡\n * - Provide a relevant error message to inform the users what they should change to make the field valid\n * - Always add the error icon, to ensure the visual indication of the error state other than the color\n * - `aria-description` will be automatically added to the field for screen readers\n * - `aria-invalid=\"true\"` will be automatically added to the field for screen readers\n * \n * @cssprop --wcs-error-color - Color of the text\n * @cssprop --wcs-error-font-size - Font size\n * @cssprop --wcs-error-font-weight - Font weight\n */\n@Component({\n tag: 'wcs-error',\n styleUrl: 'error.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface {\n render() {\n return (\n <Host role=\"alert\" slot=\"error\">\n <slot />\n </Host>\n );\n }\n}\n",":host {\n --wcs-form-field-gap: var(--wcs-semantic-spacing-small);\n\n --wcs-form-field-prefix-suffix-border-radius: var(--wcs-semantic-border-radius-base);\n\n --wcs-form-field-prefix-icon-color: var(--wcs-semantic-color-foreground-primary);\n --wcs-form-field-prefix-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-form-field-prefix-placeholder-color: var(--wcs-semantic-color-text-inverse);\n\n display: flex;\n flex-direction: column;\n gap: var(--wcs-form-field-gap);\n\n .input-container {\n display: flex;\n }\n\n /* Components in the prefix slot */\n ::slotted([slot=prefix]) {\n /* Select */\n --wcs-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-select-control-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-select-control-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-select-control-border-width-default: 0;\n --wcs-select-control-border-style-focus: dashed;\n --wcs-select-control-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n\n /* Native select */\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-inverse);\n --wcs-native-select-arrow-color: var(--wcs-form-field-prefix-icon-color);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-default);\n --wcs-native-select-border-width: 0;\n --wcs-native-select-border-color-focus: var(--wcs-semantic-color-border-focus-base);\n --wcs-native-select-border-style-focus: dashed;\n --wcs-native-select-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-native-select-option-color: var(--wcs-semantic-color-text-inverse);\n\n /* Button */\n --wcs-button-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n }\n\n /* Components in the suffix slot */\n ::slotted([slot=suffix]) {\n --wcs-button-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-select-control-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-native-select-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n }\n}\n\n/* Disabled components in the prefix slot */\n::slotted([slot=prefix][disabled]),\n::slotted([slot=prefix]:disabled),\n::slotted([slot=prefix][aria-disabled=true]),\n::slotted([slot=prefix][data-disabled]) {\n --wcs-semantic-color-background-control-disabled: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-semantic-color-text-disabled: var(--wcs-semantic-color-foreground-disabled);\n\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-select-value-color: var(--wcs-semantic-color-text-disabled);\n --wcs-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-disabled);\n --wcs-native-select-placeholder-color: var(--wcs-semantic-color-text-disabled);\n --wcs-native-select-value-color: var(--wcs-semantic-color-text-disabled);\n}\n\n/* Hover and press states */\n::slotted([slot=prefix]:hover:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-hover);\n}\n\n::slotted([slot=prefix]:active:not([disabled]):not([data-disabled])) {\n --wcs-select-control-background-color: var(--wcs-semantic-color-background-action-primary-press);\n --wcs-native-select-background-color: var(--wcs-semantic-color-background-action-primary-press);\n}\n\n.input-container {\n display: flex;\n}\n\n::slotted(wcs-select:not([slot=prefix])) {\n width: 100%;\n}\n\n::slotted(wcs-native-select:not([slot=prefix])) {\n width: 100%;\n}\n\n/* Components in the center that are prefixed */\n:host(.has-prefix) {\n ::slotted(:not([slot=prefix])) {\n --wcs-input-border-radius-left: 0;\n --wcs-select-control-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n --wcs-native-select-border-radius: 0 var(--wcs-form-field-prefix-suffix-border-radius) var(--wcs-form-field-prefix-suffix-border-radius) 0;\n }\n}\n\n/* Components in the center that are suffixed */\n:host(.has-suffix) {\n ::slotted(:not([slot=suffix])) {\n --wcs-input-border-radius-right: 0;\n --wcs-select-control-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n --wcs-native-select-border-radius: var(--wcs-form-field-prefix-suffix-border-radius) 0 0 var(--wcs-form-field-prefix-suffix-border-radius);\n }\n\n}\n\n/* Components in the center that are prefixed AND suffixed */\n:host(.has-prefix.has-suffix) {\n ::slotted(:not([slot=prefix]):not([slot=suffix])) {\n --wcs-input-border-radius-left: 0;\n --wcs-input-border-radius-right: 0;\n --wcs-select-control-border-radius: 0;\n --wcs-native-select-border-radius: 0;\n }\n}\n","import { Component, ComponentInterface, Element, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { isMutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { normalizeWhitespace } from '../../utils/helpers';\nimport { isControlComponentWithLabel } from \"../../utils/control-component-interface\";\n\n/**\n * Form field component wraps the native input element and add some more functionality on top of it.\n *\n * You can use the `wcs-form-field` to wrap any of these components :\n * - `wcs-input`\n * - `wcs-textarea`\n * - `wcs-radio-group`\n * - `wcs-switch`\n * - `wcs-checkbox`\n * - `wcs-native-select`\n * - `wcs-select`\n * - `wcs-counter`\n *\n * For non-supported slotted component, you can use the `required` attribute on the wrapped component to tell the\n * form-field that it is required. It will add a red star after the label of the form field.\n * \n * ## Accessibility guidelines 💡\n * - Each form control should be identified with a unique `wcs-label`\n * - Don't forget to add form validation to make sure the data is correctly formatted\n * - If the `wcs-label` is required, the form control must have the `required` HTML attribute and vice-versa (this is normally automatically set)\n * - The form should not be submittable if at least one required form control is not filled\n * - Hints are optional and should only be used to add extra information\n * - Additional aria attributes put on `<wcs-form-field>` won't inherit onto the native component : you must use the `setAriaAttribute` method.\n * \n * @slot label - Automatically filled when a `wcs-label` is provided\n * @slot <no-name> - The main slot containing the wrapped component\n * @slot prefix - (Optional) Display a component as prefix. See \"Prefix Suffix Group\" story for more info.\n * @slot suffix - (Optional) Display a component as suffix. See \"Prefix Suffix Group\" story for more info.\n * @slot error - Automatically filled when a `wcs-error` is provided\n * @slot messages - Automatically filled when a `wcs-hint` is provided\n *\n * @cssprop --wcs-form-field-gap - Defines the spacing between the label, input control, and hint messages.\n * @cssprop --wcs-form-field-prefix-suffix-border-radius - Sets the border radius for both prefix and suffix elements.\n * \n * @cssprop --wcs-form-field-prefix-background-color-default - Background color default for prefix elements\n * @cssprop --wcs-form-field-prefix-background-color-disabled - Background color for prefix elements when disabled\n * @cssprop --wcs-form-field-prefix-background-color-hover - Background color for prefix elements when hovered\n * @cssprop --wcs-form-field-prefix-border-color-default - Defines the default border color for prefix\n * @cssprop --wcs-form-field-prefix-border-color-focus - Sets the border color for prefix elements when focused.\n * @cssprop --wcs-form-field-prefix-border-color-disabled - Determines the border color for prefix elements when disabled.\n * \n * @cssprop --wcs-form-field-prefix-icon-color - Specifies the color of icons within prefix elements.\n * @cssprop --wcs-form-field-prefix-value-color - Sets the color of values within prefix elements.\n * @cssprop --wcs-form-field-prefix-placeholder-color - Defines the placeholder text color within prefix elements.\n * @cssprop --wcs-form-field-prefix-color-disabled - Determines the text color for prefix elements when disabled.\n */\n@Component({\n tag: 'wcs-form-field',\n styleUrl: 'form-field.scss',\n shadow: true,\n})\nexport class FormField implements ComponentInterface {\n @Element() private el!: HTMLWcsFormFieldElement;\n\n /**\n * Specifies whether the form field is in an error state. Displays the field border in red and the message contained in the wcs-error component\n */\n @Prop({mutable: true, reflect: true}) isError: boolean = false;\n\n @State() private hasPrefix: boolean = false;\n @State() private hasSuffix: boolean = false;\n @State() private spiedElement: Element;\n\n private observer: MutationObserver;\n\n componentWillLoad() {\n this.hasSuffix = this.el.querySelector('[slot=suffix]') !== null;\n this.hasPrefix = this.el.querySelector('[slot=prefix]') !== null;\n }\n\n componentDidLoad() {\n this.initSpiedElement();\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n\n @Watch('isError')\n // @ts-ignore\n private isErrorChange(newValue: boolean) {\n this.updateErrorStateOnInput(newValue);\n this.updateAriaAttributes();\n }\n\n private updateErrorStateOnInput(newValue: boolean) {\n if (this.spiedElementIsOfType('wcs-input', 'wcs-textarea')) {\n if (newValue) {\n this.spiedElement.setAttribute('state', 'error');\n } else {\n this.spiedElement.setAttribute('state', 'initial');\n }\n }\n }\n\n /**\n * This function return true if the form field contains an element with tagName matches a value of the types param\n * @param types\n * @private\n */\n private spiedElementIsOfType(...types: string[]): boolean {\n for (const type of types) {\n if (this.spiedElement?.tagName === type.toUpperCase()) return true;\n }\n return false\n }\n\n\n private addRequiredMarkerToLabel() {\n // TODO: deprecate this in favor of the 'required' component attribute\n const label = this.el.querySelector('wcs-label');\n this.observer = new MutationObserver(mutations => {\n const requiredAttMutation = mutations.filter(m => m.attributeName === 'required')[0];\n if (requiredAttMutation) {\n this.updateLabelRequiredFlag(this.spiedElement?.hasAttribute('required'), label);\n }\n });\n if (this.spiedElement) {\n this.observer.observe(this.spiedElement, {attributes: true});\n }\n\n const isRequired = this.spiedElement?.hasAttribute('required');\n this.updateLabelRequiredFlag(isRequired, label);\n }\n\n\n private initSpiedElement() {\n const SUPPORTED_COMPONENTS = ['wcs-input', 'wcs-select', 'wcs-native-select', 'wcs-textarea', 'wcs-radio-group', 'wcs-switch', 'wcs-checkbox', 'wcs-native-select', 'wcs-counter'];\n\n this.spiedElement = (this.el.shadowRoot.querySelector('slot:not([name])') as HTMLSlotElement)\n ?.assignedElements()\n .filter(n => [...SUPPORTED_COMPONENTS, 'SLOT'].map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0];\n\n // If the component is used in another web component\n if (this.spiedElement?.tagName === 'SLOT') {\n this.spiedElement = ((this.spiedElement as HTMLSlotElement)\n .assignedElements()\n .filter(n => SUPPORTED_COMPONENTS.map(x => x.toUpperCase()).indexOf(n.nodeName) !== -1)[0]) as HTMLElement;\n }\n\n if (!this.spiedElement) {\n // tslint:disable-next-line:no-console\n console.warn('Form-field component support only ' + SUPPORTED_COMPONENTS.toString() + '. Some features may not work with the provided component.');\n return;\n }\n }\n \n private async updateAriaAttributes(): Promise<void> {\n if (isMutableAriaAttribute(this.spiedElement)) {\n const ariaLabelParts: string[] = [];\n if (isControlComponentWithLabel(this.spiedElement)) {\n const innerLabel = await this.spiedElement.getLabel();\n const combinedLabel = `${this.label || ''} ${innerLabel || ''}`.trim();\n if(combinedLabel) {\n ariaLabelParts.push(normalizeWhitespace(combinedLabel));\n }\n } else {\n if(this.label) {\n ariaLabelParts.push(normalizeWhitespace(this.label));\n }\n }\n\n if(this.description) {\n ariaLabelParts.push(normalizeWhitespace(this.description));\n }\n \n // Sur les autres DS, généralement seul l'erreur est affichée et pas avec la description\n if(this.isError) {\n this.spiedElement.setAriaAttribute('aria-invalid', 'true');\n if(this.error) {\n ariaLabelParts.push(normalizeWhitespace(this.error));\n }\n } else {\n this.spiedElement.setAriaAttribute('aria-invalid', 'false');\n }\n\n this.spiedElement.setAriaAttribute('aria-label', ariaLabelParts.length > 0 ? ariaLabelParts.join(' ') : null);\n }\n }\n \n private get label(): string | null {\n return this.el.querySelector('wcs-label')?.textContent || null;\n }\n \n private get description(): string | null {\n return this.el.querySelector('wcs-hint')?.textContent || null;\n }\n \n private get error(): string | null {\n return this.el.querySelector('wcs-error')?.textContent || null;\n }\n\n private updateLabelRequiredFlag(isRequired: boolean, label: Element) {\n if (isRequired && label) {\n label.setAttribute('required', 'true');\n } else if (!isRequired && label) {\n label.removeAttribute('required');\n }\n }\n\n disconnectedCallback() {\n this.observer?.disconnect();\n }\n\n render() {\n let classes = '';\n const isError = this.isError;\n\n if (this.hasSuffix) {\n classes += ' has-suffix';\n }\n if (this.hasPrefix) {\n classes += ' has-prefix';\n }\n return (\n <Host class={classes}>\n <slot name=\"label\"/>\n <div class=\"input-container\">\n <slot name=\"prefix\"/>\n <slot onSlotchange={() => this.onFormInputSlotChange()}/>\n <slot name=\"suffix\"/>\n </div>\n {\n isError ? (<slot name=\"error\"/>) : ''\n }\n <slot name=\"messages\"/>\n </Host>\n );\n }\n\n private onFormInputSlotChange() {\n this.initSpiedElement();\n this.updateAriaAttributes()\n this.addRequiredMarkerToLabel();\n this.updateErrorStateOnInput(this.isError);\n }\n}\n",":host {\n --wcs-label-font-weight: var(--wcs-semantic-font-weight-book);\n --wcs-label-color: var(--wcs-semantic-color-text-primary);\n --wcs-label-required-marker-color: var(--wcs-semantic-color-text-critical);\n\n --wcs-label-gap: var(--wcs-semantic-spacing-small);\n\n font-weight: var(--wcs-label-font-weight);\n}\n\n:host([required]) > label::after {\n font-weight: var(--wcs-label-font-weight);\n color: var(--wcs-label-required-marker-color);\n content: ' *';\n}\n\nlabel {\n display: inline-block;\n color: var(--wcs-label-color);\n font-weight: var(--wcs-label-font-weight);\n\n // Add margin before tooltip icon\n ::slotted(wcs-mat-icon) {\n display: inline;\n vertical-align: middle;\n margin-left: var(--wcs-label-gap);\n }\n}\n","import { Component, ComponentInterface, h, Host, Method, Prop, Element } from '@stencil/core';\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\nimport { inheritAriaAttributes, inheritAttributes, setOrRemoveAttribute } from \"../../utils/helpers\";\n\nconst LABEL_INHERITED_ATTRS = ['title'];\n\n/**\n * The `wcs-label` should always be wrapped in a `wcs-form-field`.\n * It is used to caption a form control component.\n *\n * ## Accessibility guidelines 💡\n * - Use concise name for the label. If you want to describe more your form control, add a `wcs-hint`\n * - Use the required flag only as an indication to inform users that the form control is required\n * \n * @cssprop --wcs-label-color - Color of the text\n * @cssprop --wcs-label-font-weight - Font weight of the text\n * \n * @cssprop --wcs-label-required-marker-color - Color of the required marker\n * \n * @cssprop --wcs-label-gap - Gap between text and required marker\n */\n@Component({\n tag: 'wcs-label',\n styleUrl: 'label.scss',\n shadow: true,\n})\nexport class Label implements ComponentInterface, MutableAriaAttribute {\n @Element() private el!: HTMLElement;\n private nativeLabel?: HTMLLabelElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n /**\n * If `true`, marks the label with a red star.\n * Automatically added if the wrapped component inside the `wcs-form-field` already has the `required` attribute. \n */\n @Prop({ reflect: true }) required: boolean = false;\n\n componentWillLoad() {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, LABEL_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeLabel, attr, value);\n }\n\n render() {\n return (\n <Host slot=\"label\">\n <label ref={(el) => this.nativeLabel = el} {...this.inheritedAttributes}>\n <slot />\n </label>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -5,7 +5,7 @@ const FieldContent = class {
5
5
  registerInstance(this, hostRef);
6
6
  }
7
7
  render() {
8
- return (h(Host, { key: 'c99148e0b9a6b127e4fa731b2305545adb5687ad', slot: "content" }, h("slot", { key: 'f17d981a7e903f20e5cffe17edbde0e75c0a0abc' })));
8
+ return (h(Host, { key: '251b9ccc1b13766b287f356dfc51d6a953ad0a5e', slot: "content" }, h("slot", { key: 'ee7d55bf47c0f468829e99a26a0fe340fbafcc9f' })));
9
9
  }
10
10
  };
11
11
 
@@ -5,7 +5,7 @@ const FieldLabel = class {
5
5
  registerInstance(this, hostRef);
6
6
  }
7
7
  render() {
8
- return (h(Host, { key: 'e1234c4af917630a9be2805a3910be32ad35760a', slot: "label" }, h("slot", { key: '878a7b15927cdde4bfb345024445821abfab2ea6' })));
8
+ return (h(Host, { key: 'a051b09993d67bf56b087d86ba433caf1bdbb7a6', slot: "label" }, h("slot", { key: '6044b728151fd48878f555d3db3e0754f31b7e51' })));
9
9
  }
10
10
  };
11
11
 
@@ -8,7 +8,7 @@ const Field = class {
8
8
  registerInstance(this, hostRef);
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: '594ea7dcef60755cb38610a30dc9da90f29b98f1' }, h("slot", { key: '19bc8252f4bc95e250597d9df02f726d10399cd8', name: "label" }), h("slot", { key: '6ae426ffb70fc275568f4dc90c3482494403cf30', name: "content" })));
11
+ return (h(Host, { key: 'ae0a6c7224dc199cd6cd342d77878bfff17aa49b' }, h("slot", { key: '408c146f3e6bfa1868964a29934494215627fb59', name: "label" }), h("slot", { key: '9c2151491f6acc4a5a6da36676e21e8dee6f156a', name: "content" })));
12
12
  }
13
13
  };
14
14
  Field.style = WcsFieldStyle0;
@@ -8,7 +8,7 @@ const Footer = class {
8
8
  registerInstance(this, hostRef);
9
9
  }
10
10
  render() {
11
- return (h(Host, { key: '8dc3c7853a401e2254d5dc706ee0168608e423ed' }, h("div", { key: 'a55ca8287f245b86252801c6a4426533d6fa5663', class: "container" }, h("div", { key: '97ea23df4cbc2698a390a0af601587a84da5e1dd' }, h("slot", { key: '4ed79ab9b2a96716dd9698635c0668a707b871f0' })), h("div", { key: 'c8ed43a578d3e77c279d62b724d9b4460c6856cc', class: "end" }, h("div", { key: 'a53cfe34fc4c257c4aece95a23ab3d88e28fc446', class: "end-left" }, h("slot", { key: '97453846523298ecb25c259414a3b4b0d279da6d', name: "end-left" })), h("div", { key: 'adf5130e60bb3514635f5a6808873067e947bfcf', class: "end-right" }, h("slot", { key: '5295d63977c1515fdda45160a964969738f6273c', name: "end-right" }))))));
11
+ return (h(Host, { key: '6fe975235d6de2793e55e8d10860649b5684c093' }, h("footer", { key: '80b0ff721eedab3e4cc00fd2484a638718fc8b13', role: "contentinfo" }, h("div", { key: 'f7d676d79f4d8780736e3a28e3e4b2aa1f0786e1', class: "container" }, h("div", { key: 'e1f9ea823133d972d3eb2bc8e7eaa18558448a73' }, h("slot", { key: 'd7177b9e98ac24ad39008669de01899e71c27079' })), h("div", { key: '849ceafdd459f24b672e1f68edf86ffd4fcce733', class: "end" }, h("div", { key: '7077861e872bbb50e7e5de0c968fe2222e9bf7d7', class: "end-left" }, h("slot", { key: 'dded653e62bf683e0514c51b06e55ccb44f70c54', name: "end-left" })), h("div", { key: 'ec25d2a5f84cb477eaa6a63de4df6ce6e9db07c5', class: "end-right" }, h("slot", { key: '4201096294b44a29f74112c2acaa2163f9ecfcb9', name: "end-right" })))))));
12
12
  }
13
13
  };
14
14
  Footer.style = WcsFooterStyle0;
@@ -1 +1 @@
1
- {"file":"wcs-footer.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,snDAAsnD,CAAC;AACzoD,wBAAe,SAAS;;MCyBX,MAAM;;;;IACf,MAAM;QACF,QACI,EAAC,IAAI,uDACD,4DAAK,KAAK,EAAC,WAAW,IAClB,8DACI,8DAAQ,CACN,EACN,4DAAK,KAAK,EAAC,KAAK,IACZ,4DAAK,KAAK,EAAC,UAAU,IACjB,6DAAM,IAAI,EAAC,UAAU,GAAE,CACrB,EACN,4DAAK,KAAK,EAAC,WAAW,IAClB,6DAAM,IAAI,EAAC,WAAW,GAAE,CACtB,CACJ,CACJ,CACH,EACV;KACJ;;;;;;","names":[],"sources":["src/components/footer/footer.scss?tag=wcs-footer&encapsulation=shadow","src/components/footer/footer.tsx"],"sourcesContent":[":host {\n --wcs-footer-background-color: var(--wcs-semantic-color-background-surface-inverse);\n --wcs-footer-text-color: var(--wcs-semantic-color-text-inverse);\n --wcs-footer-link-text-color: var(--wcs-semantic-color-text-inverse);\n --wcs-footer-link-text-color-hover: var(--wcs-semantic-color-text-inverse);\n --wcs-footer-link-font-size: var(--wcs-semantic-font-size-label-2);\n --wcs-footer-link-font-weight: var(--wcs-semantic-font-weight-medium);\n --wcs-footer-link-gap: calc(4 * var(--wcs-semantic-spacing-base));\n\n --wcs-footer-gap: var(--wcs-semantic-spacing-large);\n --wcs-footer-end-gap: var(--wcs-semantic-spacing-large);\n --wcs-footer-max-width: var(--wcs-semantic-breakpoint-desktop, var(--wcs-com-content-max-width));\n --wcs-footer-padding: calc(3 * var(--wcs-semantic-spacing-base));\n\n display: block;\n width: 100%;\n background-color: var(--wcs-footer-background-color);\n color: var(--wcs-footer-text-color);\n\n .end {\n margin-top: var(--wcs-footer-gap);\n gap: var(--wcs-footer-end-gap);\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n\n .end-left, .end-right {\n display: flex;\n flex-wrap: wrap;\n column-gap: var(--wcs-footer-link-gap);\n }\n\n @media only screen and (max-width:1024px) {\n .end-left, .end-right {\n flex-direction: column;\n }\n }\n\n slot[name=end-left]::slotted(a) {\n color: var(--wcs-footer-link-text-color, var(--wcs-footer-text-color));\n font-size: 14px;\n font-weight: 500;\n text-decoration: none;\n }\n\n slot[name=end-left]::slotted(a:hover) {\n color: var(--wcs-footer-link-text-color-hover);\n }\n\n }\n\n .container {\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n max-width: var(--wcs-footer-max-width);\n padding: var(--wcs-footer-padding);\n }\n\n}\n","import { Component, ComponentInterface, h, Host } from '@stencil/core';\n\n/**\n * The footer component has been designed to leave as much customization as possible to the developer. The footers are often specific to the application developed.\n * \n * @cssprop --wcs-footer-background-color - Background color of the footer\n * @cssprop --wcs-footer-text-color - Text color of the footer\n * @cssprop --wcs-footer-link-text-color - Text color of the links in the footer\n * @cssprop --wcs-footer-link-text-color-hover - Text color of the links in the footer when hovered\n * @cssprop --wcs-footer-link-font-size - Font size of the links in the footer\n * @cssprop --wcs-footer-link-font-weight - Font weight of the links in the footer\n * @cssprop --wcs-footer-link-gap - Gap between the links in the footer\n * @cssprop --wcs-footer-gap - Vertical gap between the content and the two end slots\n * @cssprop --wcs-footer-end-gap - Horizontal gap between the right and left end slots\n * @cssprop --wcs-footer-max-width - Max width of the footer for responsive purposes \n * @cssprop --wcs-footer-padding - Padding all around the content of the footer\n * \n * @slot <no-name> Main container slot\n * @slot end-left Bottom-left part of the footer\n * @slot end-right Bottom-right part of the footer\n */\n@Component({\n tag: 'wcs-footer',\n styleUrl: 'footer.scss',\n shadow: true,\n})\nexport class Footer implements ComponentInterface {\n render(): any {\n return (\n <Host>\n <div class=\"container\">\n <div>\n <slot />\n </div>\n <div class=\"end\">\n <div class=\"end-left\">\n <slot name=\"end-left\"/>\n </div>\n <div class=\"end-right\">\n <slot name=\"end-right\"/>\n </div>\n </div>\n </div>\n </Host>\n )\n }\n}\n"],"version":3}
1
+ {"file":"wcs-footer.entry.js","mappings":";;AAAA,MAAM,SAAS,GAAG,snDAAsnD,CAAC;AACzoD,wBAAe,SAAS;;MCyBX,MAAM;;;;IACf,MAAM;QACF,QACI,EAAC,IAAI,uDACD,+DAAQ,IAAI,EAAC,aAAa,IACtB,4DAAK,KAAK,EAAC,WAAW,IAClB,8DACI,8DAAO,CACL,EACN,4DAAK,KAAK,EAAC,KAAK,IACZ,4DAAK,KAAK,EAAC,UAAU,IACjB,6DAAM,IAAI,EAAC,UAAU,GAAE,CACrB,EACN,4DAAK,KAAK,EAAC,WAAW,IAClB,6DAAM,IAAI,EAAC,WAAW,GAAE,CACtB,CACJ,CACJ,CACD,CACN,EACV;KACJ;;;;;;","names":[],"sources":["src/components/footer/footer.scss?tag=wcs-footer&encapsulation=shadow","src/components/footer/footer.tsx"],"sourcesContent":[":host {\n --wcs-footer-background-color: var(--wcs-semantic-color-background-surface-inverse);\n --wcs-footer-text-color: var(--wcs-semantic-color-text-inverse);\n --wcs-footer-link-text-color: var(--wcs-semantic-color-text-inverse);\n --wcs-footer-link-text-color-hover: var(--wcs-semantic-color-text-inverse);\n --wcs-footer-link-font-size: var(--wcs-semantic-font-size-label-2);\n --wcs-footer-link-font-weight: var(--wcs-semantic-font-weight-medium);\n --wcs-footer-link-gap: calc(4 * var(--wcs-semantic-spacing-base));\n\n --wcs-footer-gap: var(--wcs-semantic-spacing-large);\n --wcs-footer-end-gap: var(--wcs-semantic-spacing-large);\n --wcs-footer-max-width: var(--wcs-semantic-breakpoint-desktop, var(--wcs-com-content-max-width));\n --wcs-footer-padding: calc(3 * var(--wcs-semantic-spacing-base));\n\n display: block;\n width: 100%;\n background-color: var(--wcs-footer-background-color);\n color: var(--wcs-footer-text-color);\n\n .end {\n margin-top: var(--wcs-footer-gap);\n gap: var(--wcs-footer-end-gap);\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n\n .end-left, .end-right {\n display: flex;\n flex-wrap: wrap;\n column-gap: var(--wcs-footer-link-gap);\n }\n\n @media only screen and (max-width:1024px) {\n .end-left, .end-right {\n flex-direction: column;\n }\n }\n\n slot[name=end-left]::slotted(a) {\n color: var(--wcs-footer-link-text-color, var(--wcs-footer-text-color));\n font-size: 14px;\n font-weight: 500;\n text-decoration: none;\n }\n\n slot[name=end-left]::slotted(a:hover) {\n color: var(--wcs-footer-link-text-color-hover);\n }\n\n }\n\n .container {\n margin: 0 auto;\n display: flex;\n flex-direction: column;\n max-width: var(--wcs-footer-max-width);\n padding: var(--wcs-footer-padding);\n }\n\n}\n","import { Component, ComponentInterface, h, Host } from '@stencil/core';\n\n/**\n * The footer component has been designed to leave as much customization as possible to the developer. The footers are often specific to the application developed.\n * \n * @cssprop --wcs-footer-background-color - Background color of the footer\n * @cssprop --wcs-footer-text-color - Text color of the footer\n * @cssprop --wcs-footer-link-text-color - Text color of the links in the footer\n * @cssprop --wcs-footer-link-text-color-hover - Text color of the links in the footer when hovered\n * @cssprop --wcs-footer-link-font-size - Font size of the links in the footer\n * @cssprop --wcs-footer-link-font-weight - Font weight of the links in the footer\n * @cssprop --wcs-footer-link-gap - Gap between the links in the footer\n * @cssprop --wcs-footer-gap - Vertical gap between the content and the two end slots\n * @cssprop --wcs-footer-end-gap - Horizontal gap between the right and left end slots\n * @cssprop --wcs-footer-max-width - Max width of the footer for responsive purposes \n * @cssprop --wcs-footer-padding - Padding all around the content of the footer\n * \n * @slot <no-name> Main container slot\n * @slot end-left Bottom-left part of the footer\n * @slot end-right Bottom-right part of the footer\n */\n@Component({\n tag: 'wcs-footer',\n styleUrl: 'footer.scss',\n shadow: true,\n})\nexport class Footer implements ComponentInterface {\n render(): any {\n return (\n <Host>\n <footer role=\"contentinfo\">\n <div class=\"container\">\n <div>\n <slot/>\n </div>\n <div class=\"end\">\n <div class=\"end-left\">\n <slot name=\"end-left\"/>\n </div>\n <div class=\"end-right\">\n <slot name=\"end-right\"/>\n </div>\n </div>\n </div>\n </footer>\n </Host>\n )\n }\n}\n"],"version":3}
@@ -1,8 +1,8 @@
1
1
  import { r as registerInstance, h, H as Host, g as getElement } from './index-d9de61ce.js';
2
- import { i as inheritAriaAttributes, a as inheritAttributes, s as setOrRemoveAttribute, o as clickInsideElement, b as isEscapeKey } from './helpers-f137ec8d.js';
2
+ import { i as inheritAriaAttributes, a as inheritAttributes, s as setOrRemoveAttribute, q as clickInsideElement, b as isEscapeKey } from './helpers-ece6a2d3.js';
3
3
  import { c as createPopper } from './popper-e491c314.js';
4
4
 
5
- const galacticMenuCss = ":host{--wcs-galactic-menu-background-color:var(--wcs-semantic-color-background-surface-brand);--wcs-galactic-menu-padding-horizontal:var(--wcs-semantic-spacing-large);--wcs-galactic-menu-gap:var(--wcs-semantic-spacing-large);--wcs-galactic-menu-height:var(--wcs-semantic-size-s);--wcs-galactic-menu-icon-focus-outline-color:var(--wcs-galactic-text-color, white);--wcs-galactic-menu-overlay-color:var(--wcs-semantic-color-text-inverse);--wcs-galactic-menu-overlay-background-color:var(--wcs-semantic-color-background-surface-inverse);--wcs-galactic-menu-overlay-padding:var(--wcs-semantic-spacing-large);display:flex;align-items:center;box-sizing:border-box;height:var(--wcs-galactic-menu-height);gap:var(--wcs-galactic-menu-gap);padding:0 var(--wcs-galactic-menu-padding-horizontal);background-color:var(--wcs-galactic-menu-background-color)}#menu{display:none;background-color:var(--wcs-galactic-menu-overlay-background-color);color:var(--wcs-galactic-menu-overlay-color);padding:var(--wcs-galactic-menu-overlay-padding)}#menu[data-show]{display:block;z-index:9999}#menu[data-popper-placement^=top]>#arrow{bottom:-4px}#menu[data-popper-placement^=bottom]>#arrow{top:-4px}#menu[data-popper-placement^=left]>#arrow{right:-4px}#menu[data-popper-placement^=right]>#arrow{left:-4px}#arrow,#arrow::before{position:absolute;width:8px;height:8px;background:inherit}#arrow{visibility:hidden}#arrow::before{visibility:visible;content:\"\";transform:rotate(45deg)}button{background:transparent;border:none;color:inherit;cursor:pointer;user-select:none}button:focus-visible{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-galactic-menu-icon-focus-outline-color);outline-offset:0;border-radius:0.1rem}";
5
+ const galacticMenuCss = ":host{--wcs-galactic-menu-background-color:var(--wcs-semantic-color-background-surface-brand);--wcs-galactic-menu-padding-horizontal:var(--wcs-semantic-spacing-large);--wcs-galactic-menu-gap:var(--wcs-semantic-spacing-large);--wcs-galactic-menu-height:var(--wcs-semantic-size-s);--wcs-galactic-menu-icon-focus-outline-color:var(--wcs-galactic-text-color, white);--wcs-galactic-menu-overlay-color:var(--wcs-semantic-color-text-inverse);--wcs-galactic-menu-overlay-background-color:var(--wcs-semantic-color-background-surface-inverse);--wcs-galactic-menu-overlay-padding:var(--wcs-semantic-spacing-large);display:flex;align-items:center;box-sizing:border-box;height:var(--wcs-galactic-menu-height);gap:var(--wcs-galactic-menu-gap);padding:0 var(--wcs-galactic-menu-padding-horizontal);background-color:var(--wcs-galactic-menu-background-color)}#menu{display:none;background-color:var(--wcs-galactic-menu-overlay-background-color);color:var(--wcs-galactic-menu-overlay-color);padding:var(--wcs-galactic-menu-overlay-padding);--wcs-semantic-color-border-focus-base:var(--wcs-semantic-color-text-inverse, white)}#menu[data-show]{display:block;z-index:9999}#menu[data-popper-placement^=top]>#arrow{bottom:-4px}#menu[data-popper-placement^=bottom]>#arrow{top:-4px}#menu[data-popper-placement^=left]>#arrow{right:-4px}#menu[data-popper-placement^=right]>#arrow{left:-4px}#arrow,#arrow::before{position:absolute;width:8px;height:8px;background:inherit}#arrow{visibility:hidden}#arrow::before{visibility:visible;content:\"\";transform:rotate(45deg)}button{background:transparent;border:none;color:inherit;cursor:pointer;user-select:none}button:focus-visible{outline:var(--wcs-semantic-border-width-large) dashed var(--wcs-galactic-menu-icon-focus-outline-color);outline-offset:0;border-radius:0.1rem}";
6
6
  const WcsGalacticMenuStyle0 = galacticMenuCss;
7
7
 
8
8
  const GALACTIC_MENU_INHERITED_ATTRS = ['tabindex', 'title'];
@@ -61,9 +61,9 @@ const Galactic = class {
61
61
  }
62
62
  }
63
63
  render() {
64
- return (h(Host, { key: '99bff08532f4d0bdd20c44781ab7f1e10bd4fad8' }, h("span", { key: 'c4827722002c9d558a9a412556be08ff36718a53' }, this.text), h("button", Object.assign({ key: 'fb4eb7c33068169949918b6bd6cc9c96cdde8608', "aria-haspopup": "true", "aria-controls": "menu", ref: el => {
64
+ return (h(Host, { key: 'bc460c17b222723b8cc037042cc758f8ca0e50ec' }, h("span", { key: 'd324ff624a9e5c9f6984134d4091986cac11f18b' }, this.text), h("button", Object.assign({ key: '7b0160174a249b30e082b9b2a77aca334ee6256a', "aria-haspopup": "true", "aria-controls": "menu", ref: el => {
65
65
  this.menuButton = el;
66
- }, "aria-expanded": this.showPopoverMenu ? "true" : "false" }, this.inheritedAttributes, { onClick: _ => this.toggleMenu() }), h("wcs-mat-icon", { key: '72b08ab8670569c8911ef041a71782cb14427e84', id: "toggle-menu-icon", icon: "more_horiz", size: "m" })), h("span", { key: 'd0491419b48c7fbe0d773f14c541bb5af7912684', id: "menu", role: "menu", "data-show": this.showPopoverMenu }, h("div", { key: '7f2ba9b81f9041c421f21b9da6c83f0096155161', id: "arrow", "data-popper-arrow": true }), h("slot", { key: 'c5acecba63143c61982bceca50eea5656130f908' }))));
66
+ }, "aria-expanded": this.showPopoverMenu ? "true" : "false" }, this.inheritedAttributes, { onClick: _ => this.toggleMenu() }), h("wcs-mat-icon", { key: '96b20053845f5490791ea278c2444392ba630600', id: "toggle-menu-icon", icon: "more_horiz", size: "m" })), h("span", { key: '6f959f220edbf293fe6922f7aaeaab0f213bf736', id: "menu", role: "menu", "data-show": this.showPopoverMenu }, h("div", { key: '6a05e468d65252ecbb57b421a53be0a0a1974f98', id: "arrow", "data-popper-arrow": true }), h("slot", { key: 'c9398cbb856d836820ac1cddf3113710eeaff5fb' }))));
67
67
  }
68
68
  get el() { return getElement(this); }
69
69
  };
@@ -1 +1 @@
1
- {"file":"wcs-galactic-menu.entry.js","mappings":";;;;AAAA,MAAM,eAAe,GAAG,2qDAA2qD,CAAC;AACpsD,8BAAe,eAAe;;ACW9B,MAAM,6BAA6B,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;MAsB/C,QAAQ;;;QAGT,wBAAmB,GAAyB,EAAE,CAAC;+BAEX,KAAK;;;IASjD,gBAAgB;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;YAChD,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACL,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;qBACjB;iBACJ;aACJ;SACJ,CAAC,CAAC;KACN;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,6BAA6B,CAAC,CAC/D,CAAC;KACL;IAGD,MAAM,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACtD;IAID,kBAAkB,CAAC,KAAiB;QAChC,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACjF,OAAO;SACV;aAAM;YACH,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;SACJ;KACJ;IAGD,SAAS,CAAC,MAAqB;;QAC3B,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;YACrB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;SAC5B;KACJ;IAEO,UAAU;QACd,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;KAChD;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACxB;KACJ;IAED,MAAM;QACF,QACI,EAAC,IAAI,uDACD,+DAAO,IAAI,CAAC,IAAI,CAAQ,EACxB,8FAAsB,MAAM,mBACN,MAAM,EACpB,GAAG,EAAE,EAAE;gBACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;aACvB,mBACc,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,OAAO,IAClD,IAAI,CAAC,mBAAmB,IAC5B,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,KACnC,qEAAc,EAAE,EAAC,kBAAkB,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,GAAG,GAAgB,CACzE,EACT,6DAAM,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,eAAY,IAAI,CAAC,eAAe,IACvD,4DAAK,EAAE,EAAC,OAAO,8BAAqB,EACpC,8DAAO,CACJ,CACJ,EACT;KACL;;;;;;;","names":[],"sources":["src/components/galactic-menu/galactic-menu.scss?tag=wcs-galactic-menu&encapsulation=shadow","src/components/galactic-menu/galactic-menu.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n\n:host {\n --wcs-galactic-menu-background-color: var(--wcs-semantic-color-background-surface-brand);\n --wcs-galactic-menu-padding-horizontal: var(--wcs-semantic-spacing-large);\n --wcs-galactic-menu-gap: var(--wcs-semantic-spacing-large);\n --wcs-galactic-menu-height: var(--wcs-semantic-size-s);\n\n --wcs-galactic-menu-icon-focus-outline-color: var(--wcs-galactic-text-color, white); /* Inherit from galactic */\n --wcs-galactic-menu-overlay-color: var(--wcs-semantic-color-text-inverse);\n --wcs-galactic-menu-overlay-background-color: var(--wcs-semantic-color-background-surface-inverse);\n --wcs-galactic-menu-overlay-padding: var(--wcs-semantic-spacing-large);\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: var(--wcs-galactic-menu-height);\n gap: var(--wcs-galactic-menu-gap);\n padding: 0 var(--wcs-galactic-menu-padding-horizontal);\n background-color: var(--wcs-galactic-menu-background-color);\n\n}\n#menu {\n display: none;\n background-color: var(--wcs-galactic-menu-overlay-background-color);\n color: var(--wcs-galactic-menu-overlay-color);\n padding: var(--wcs-galactic-menu-overlay-padding);\n}\n#menu[data-show] {\n display: block;\n z-index: 9999;\n}\n#menu[data-popper-placement^='top'] > #arrow {\n bottom: -4px;\n}\n\n#menu[data-popper-placement^='bottom'] > #arrow {\n top: -4px;\n}\n\n#menu[data-popper-placement^='left'] > #arrow {\n right: -4px;\n}\n\n#menu[data-popper-placement^='right'] > #arrow {\n left: -4px;\n}\n\n#arrow,\n#arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n}\n\n#arrow {\n visibility: hidden;\n}\n\n#arrow::before {\n visibility: visible;\n content: '';\n transform: rotate(45deg);\n}\n\nbutton {\n background: transparent;\n border: none;\n color: inherit;\n\n cursor: pointer;\n user-select: none;\n\n &:focus-visible {\n @include focus-outline(var(--wcs-galactic-menu-icon-focus-outline-color), $outline-offset: 0);\n }\n}\n","import { Component, ComponentInterface, Element, h, Host, Listen, Method, Prop, State } from '@stencil/core';\nimport { Instance, createPopper } from '@popperjs/core';\nimport {\n clickInsideElement,\n inheritAriaAttributes,\n inheritAttributes,\n isEscapeKey,\n setOrRemoveAttribute\n} from '../../utils/helpers';\nimport { AriaAttributeName } from \"../../utils/mutable-aria-attribute\";\n\n\nconst GALACTIC_MENU_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * *Part of communication design system*\n * You can put a wcs-galactic-menu inside a wcs-galactic component to add an extra menu\n * \n * @slot <no-name> - Main container slot\n * \n * @cssprop --wcs-galactic-menu-background-color - Background color of the menu\n * @cssprop --wcs-galactic-menu-padding-horizontal - Horizontal padding of the menu\n * @cssprop --wcs-galactic-menu-gap - Gap between items in the menu\n * @cssprop --wcs-galactic-menu-height - Height of the menu\n * @cssprop --wcs-galactic-menu-icon-focus-outline-color - Color of the focus outline on the icon\n * @cssprop --wcs-galactic-menu-overlay-background-color - Background color of the overlay\n * @cssprop --wcs-galactic-menu-overlay-padding - Padding of the overlay\n * @cssprop --wcs-galactic-menu-overlay-color - Color of the overlay\n */\n@Component({\n tag: 'wcs-galactic-menu',\n styleUrl: 'galactic-menu.scss',\n shadow: true\n})\nexport class Galactic implements ComponentInterface {\n @Element() private el: HTMLWcsGalacticMenuElement;\n private menuButton!: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @State() private showPopoverMenu: boolean = false;\n private popper: Instance;\n /**\n * Text to be displayed in the galactic bar\n */\n @Prop() text: string;\n private menu;\n private tooltip;\n\n componentDidLoad() {\n this.menu = this.el.shadowRoot.getElementById('toggle-menu-icon');\n this.tooltip = this.el.shadowRoot.getElementById('menu');\n this.popper = createPopper(this.menu, this.tooltip, {\n placement: 'bottom-end',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8]\n }\n }\n ]\n });\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GALACTIC_MENU_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.menuButton, attr, value);\n }\n\n\n @Listen('click', {target: 'window'})\n onWindowClickEvent(event: MouseEvent) {\n if (clickInsideElement(event, this.tooltip) || clickInsideElement(event, this.menu)) {\n return;\n } else {\n if (this.showPopoverMenu) {\n this.toggleMenu();\n }\n }\n }\n\n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n if (isEscapeKey(_event)) {\n _event.preventDefault();\n this.showPopoverMenu = false;\n this.menuButton?.focus();\n }\n }\n \n private toggleMenu() {\n this.showPopoverMenu = !this.showPopoverMenu;\n }\n\n componentDidRender() {\n if (this.popper) {\n this.popper.update();\n }\n }\n\n render(): any {\n return (\n <Host>\n <span>{this.text}</span>\n <button aria-haspopup=\"true\"\n aria-controls=\"menu\"\n ref={el => {\n this.menuButton = el\n }}\n aria-expanded={this.showPopoverMenu ? \"true\" : \"false\"}\n {...this.inheritedAttributes}\n onClick={_ => this.toggleMenu()}>\n <wcs-mat-icon id=\"toggle-menu-icon\" icon=\"more_horiz\" size=\"m\"></wcs-mat-icon>\n </button>\n <span id=\"menu\" role=\"menu\" data-show={this.showPopoverMenu}>\n <div id=\"arrow\" data-popper-arrow />\n <slot/>\n </span>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"wcs-galactic-menu.entry.js","mappings":";;;;AAAA,MAAM,eAAe,GAAG,gwDAAgwD,CAAC;AACzxD,8BAAe,eAAe;;ACW9B,MAAM,6BAA6B,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;MAsB/C,QAAQ;;;QAGT,wBAAmB,GAAyB,EAAE,CAAC;+BAEX,KAAK;;;IASjD,gBAAgB;QACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC;QAClE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE;YAChD,SAAS,EAAE,YAAY;YACvB,SAAS,EAAE;gBACP;oBACI,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE;wBACL,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;qBACjB;iBACJ;aACJ;SACJ,CAAC,CAAC;KACN;IAED,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,6BAA6B,CAAC,CAC/D,CAAC;KACL;IAGD,MAAM,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACtD;IAID,kBAAkB,CAAC,KAAiB;QAChC,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;YACjF,OAAO;SACV;aAAM;YACH,IAAI,IAAI,CAAC,eAAe,EAAE;gBACtB,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;SACJ;KACJ;IAGD,SAAS,CAAC,MAAqB;;QAC3B,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;YACrB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,MAAA,IAAI,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;SAC5B;KACJ;IAEO,UAAU;QACd,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC;KAChD;IAED,kBAAkB;QACd,IAAI,IAAI,CAAC,MAAM,EAAE;YACb,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACxB;KACJ;IAED,MAAM;QACF,QACI,EAAC,IAAI,uDACD,+DAAO,IAAI,CAAC,IAAI,CAAQ,EACxB,8FAAsB,MAAM,mBACN,MAAM,EACpB,GAAG,EAAE,EAAE;gBACH,IAAI,CAAC,UAAU,GAAG,EAAE,CAAA;aACvB,mBACc,IAAI,CAAC,eAAe,GAAG,MAAM,GAAG,OAAO,IAClD,IAAI,CAAC,mBAAmB,IAC5B,OAAO,EAAE,CAAC,IAAI,IAAI,CAAC,UAAU,EAAE,KACnC,qEAAc,EAAE,EAAC,kBAAkB,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAC,GAAG,GAAgB,CACzE,EACT,6DAAM,EAAE,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,eAAY,IAAI,CAAC,eAAe,IACvD,4DAAK,EAAE,EAAC,OAAO,8BAAqB,EACpC,8DAAO,CACJ,CACJ,EACT;KACL;;;;;;;","names":[],"sources":["src/components/galactic-menu/galactic-menu.scss?tag=wcs-galactic-menu&encapsulation=shadow","src/components/galactic-menu/galactic-menu.tsx"],"sourcesContent":["@import '../../style/focus-outline.scss';\n\n:host {\n --wcs-galactic-menu-background-color: var(--wcs-semantic-color-background-surface-brand);\n --wcs-galactic-menu-padding-horizontal: var(--wcs-semantic-spacing-large);\n --wcs-galactic-menu-gap: var(--wcs-semantic-spacing-large);\n --wcs-galactic-menu-height: var(--wcs-semantic-size-s);\n\n --wcs-galactic-menu-icon-focus-outline-color: var(--wcs-galactic-text-color, white); /* Inherit from galactic */\n --wcs-galactic-menu-overlay-color: var(--wcs-semantic-color-text-inverse);\n --wcs-galactic-menu-overlay-background-color: var(--wcs-semantic-color-background-surface-inverse);\n --wcs-galactic-menu-overlay-padding: var(--wcs-semantic-spacing-large);\n\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: var(--wcs-galactic-menu-height);\n gap: var(--wcs-galactic-menu-gap);\n padding: 0 var(--wcs-galactic-menu-padding-horizontal);\n background-color: var(--wcs-galactic-menu-background-color);\n\n}\n#menu {\n display: none;\n background-color: var(--wcs-galactic-menu-overlay-background-color);\n color: var(--wcs-galactic-menu-overlay-color);\n padding: var(--wcs-galactic-menu-overlay-padding);\n --wcs-semantic-color-border-focus-base: var(--wcs-semantic-color-text-inverse, white); // resolve bad contrast issue with focus outline of wcs-button\n}\n#menu[data-show] {\n display: block;\n z-index: 9999;\n}\n#menu[data-popper-placement^='top'] > #arrow {\n bottom: -4px;\n}\n\n#menu[data-popper-placement^='bottom'] > #arrow {\n top: -4px;\n}\n\n#menu[data-popper-placement^='left'] > #arrow {\n right: -4px;\n}\n\n#menu[data-popper-placement^='right'] > #arrow {\n left: -4px;\n}\n\n#arrow,\n#arrow::before {\n position: absolute;\n width: 8px;\n height: 8px;\n background: inherit;\n}\n\n#arrow {\n visibility: hidden;\n}\n\n#arrow::before {\n visibility: visible;\n content: '';\n transform: rotate(45deg);\n}\n\nbutton {\n background: transparent;\n border: none;\n color: inherit;\n\n cursor: pointer;\n user-select: none;\n\n &:focus-visible {\n @include focus-outline(var(--wcs-galactic-menu-icon-focus-outline-color), $outline-offset: 0);\n }\n}\n","import { Component, ComponentInterface, Element, h, Host, Listen, Method, Prop, State } from '@stencil/core';\nimport { Instance, createPopper } from '@popperjs/core';\nimport {\n clickInsideElement,\n inheritAriaAttributes,\n inheritAttributes,\n isEscapeKey,\n setOrRemoveAttribute\n} from '../../utils/helpers';\nimport { AriaAttributeName } from \"../../utils/mutable-aria-attribute\";\n\n\nconst GALACTIC_MENU_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * *Part of communication design system*\n * You can put a wcs-galactic-menu inside a wcs-galactic component to add an extra menu\n * \n * @slot <no-name> - Main container slot\n * \n * @cssprop --wcs-galactic-menu-background-color - Background color of the menu\n * @cssprop --wcs-galactic-menu-padding-horizontal - Horizontal padding of the menu\n * @cssprop --wcs-galactic-menu-gap - Gap between items in the menu\n * @cssprop --wcs-galactic-menu-height - Height of the menu\n * @cssprop --wcs-galactic-menu-icon-focus-outline-color - Color of the focus outline on the icon\n * @cssprop --wcs-galactic-menu-overlay-background-color - Background color of the overlay\n * @cssprop --wcs-galactic-menu-overlay-padding - Padding of the overlay\n * @cssprop --wcs-galactic-menu-overlay-color - Color of the overlay\n */\n@Component({\n tag: 'wcs-galactic-menu',\n styleUrl: 'galactic-menu.scss',\n shadow: true\n})\nexport class Galactic implements ComponentInterface {\n @Element() private el: HTMLWcsGalacticMenuElement;\n private menuButton!: HTMLButtonElement;\n private inheritedAttributes: { [k: string]: any } = {};\n \n @State() private showPopoverMenu: boolean = false;\n private popper: Instance;\n /**\n * Text to be displayed in the galactic bar\n */\n @Prop() text: string;\n private menu;\n private tooltip;\n\n componentDidLoad() {\n this.menu = this.el.shadowRoot.getElementById('toggle-menu-icon');\n this.tooltip = this.el.shadowRoot.getElementById('menu');\n this.popper = createPopper(this.menu, this.tooltip, {\n placement: 'bottom-end',\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 8]\n }\n }\n ]\n });\n }\n\n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GALACTIC_MENU_INHERITED_ATTRS),\n };\n }\n\n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.menuButton, attr, value);\n }\n\n\n @Listen('click', {target: 'window'})\n onWindowClickEvent(event: MouseEvent) {\n if (clickInsideElement(event, this.tooltip) || clickInsideElement(event, this.menu)) {\n return;\n } else {\n if (this.showPopoverMenu) {\n this.toggleMenu();\n }\n }\n }\n\n @Listen('keydown')\n onKeyDown(_event: KeyboardEvent) {\n if (isEscapeKey(_event)) {\n _event.preventDefault();\n this.showPopoverMenu = false;\n this.menuButton?.focus();\n }\n }\n \n private toggleMenu() {\n this.showPopoverMenu = !this.showPopoverMenu;\n }\n\n componentDidRender() {\n if (this.popper) {\n this.popper.update();\n }\n }\n\n render(): any {\n return (\n <Host>\n <span>{this.text}</span>\n <button aria-haspopup=\"true\"\n aria-controls=\"menu\"\n ref={el => {\n this.menuButton = el\n }}\n aria-expanded={this.showPopoverMenu ? \"true\" : \"false\"}\n {...this.inheritedAttributes}\n onClick={_ => this.toggleMenu()}>\n <wcs-mat-icon id=\"toggle-menu-icon\" icon=\"more_horiz\" size=\"m\"></wcs-mat-icon>\n </button>\n <span id=\"menu\" role=\"menu\" data-show={this.showPopoverMenu}>\n <div id=\"arrow\" data-popper-arrow />\n <slot/>\n </span>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -10,7 +10,7 @@ const Galactic = class {
10
10
  this.show = false;
11
11
  }
12
12
  render() {
13
- return (h(Host, { key: 'ccf6b6d2122201e49058bbda7d5c374b47f9b3db' }, h("div", { key: 'b4bb7ecd4e2bb70b845492370724bee2de253838', class: "container" }, h("div", { key: 'c2d2cfcc98d545536e53bf3e734f79fc9509f155', class: "logo-container" }, h("img", { key: '861c9ae4c2ab344d3c20f4a8fd86580d08b6fa11', src: SNCF_BASE64_SVG_LOGO, id: "sncf-logo", alt: "SNCF" }), h("span", { key: 'a56d1f48689b7a45262fa1941d7aa0b3c9ab5013' }, this.text)), h("div", { key: 'b007ba5ae702d1932413564ba690207ecad8f09b', class: "actions-container" }, h("slot", { key: 'f05d6a51edb4013fcc26a4102da99ab0dc72688f' })))));
13
+ return (h(Host, { key: 'bcede9aa03d2014887eeaa4d5728d57c32a69de2' }, h("div", { key: '2d031655b20b592b77e2227a195f15535071c069', class: "container" }, h("div", { key: '1d3a345c56925946f5b39ad9edaad7ee927343cc', class: "logo-container" }, h("img", { key: '3f7e9a0a7df3a954d21e328da562189771baf8a8', src: SNCF_BASE64_SVG_LOGO, id: "sncf-logo", alt: "SNCF" }), h("span", { key: '68c00801e7f2564930d6a5f77fc6f45511a321cf' }, this.text)), h("div", { key: '3724b08dca457a9be21ecb84925ed3fea4e49f95', class: "actions-container" }, h("slot", { key: '572f4ca9036c737a579f2c58ec113cada4dd421c' })))));
14
14
  }
15
15
  };
16
16
  const SNCF_BASE64_SVG_LOGO = 'data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxzdmcgdmVy' +
@@ -1,5 +1,5 @@
1
1
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-d9de61ce.js';
2
- import { i as inheritAriaAttributes, a as inheritAttributes, s as setOrRemoveAttribute, c as isSpaceKey, d as isEnterKey } from './helpers-f137ec8d.js';
2
+ import { i as inheritAriaAttributes, a as inheritAttributes, s as setOrRemoveAttribute, c as isSpaceKey, d as isEnterKey } from './helpers-ece6a2d3.js';
3
3
 
4
4
  const GridSortArrow = ({ state }) => (h("svg", { "aria-hidden": "true", xmlns: "http://www.w3.org/2000/svg", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none" },
5
5
  h("g", { class: (state === 'none' ? '' : state) + ' arrow-group' },
@@ -77,7 +77,7 @@ const GridColumn = class {
77
77
  }
78
78
  render() {
79
79
  const ButtonOrDiv = this.getTagName();
80
- return (h(Host, { key: '05815f3b9f03f3248347108555a3fea6495d9193', slot: "grid-column" }, h("th", Object.assign({ key: 'e25a02d656e7f4cbf9c6bb8ada58b0300f41ce12', style: { width: this.width }, class: this.sort ? 'pointer' : '', tabIndex: this.sort ? -1 : this.getTabIndex(), scope: "col", onClick: this.onSortClick.bind(this), onKeyDown: this.handleSortKeyDown.bind(this), onFocus: this.delegateFocusToButton.bind(this), "aria-sort": this.sort ? this.getSortOrderForAriaSort(this.sortOrder) : null, ref: (el) => (this.nativeTh = el) }, this.inheritedAttributes), h(ButtonOrDiv, { key: '8954f92f00869d26c0bcea419ff0173e02ecbb94', class: "grid-column-th-content", ref: (el) => this.buttonOrDiv = el, tabIndex: this.sort ? this.getTabIndex() : -1 }, h("span", { key: '84006eeb0d8f91817aab26af7ba89e47ceedf850' }, this.name), this.sort ? h(GridSortArrow, { state: this.sortOrder }) : ''))));
80
+ return (h(Host, { key: 'e2c93e817abc5a61d6285f32779d915ff7368710', slot: "grid-column" }, h("th", Object.assign({ key: 'c23695b8680146e66e75ea958dc9dd9cac6056ac', style: { width: this.width }, class: this.sort ? 'pointer' : '', tabIndex: this.sort ? -1 : this.getTabIndex(), scope: "col", onClick: this.onSortClick.bind(this), onKeyDown: this.handleSortKeyDown.bind(this), onFocus: this.delegateFocusToButton.bind(this), "aria-sort": this.sort ? this.getSortOrderForAriaSort(this.sortOrder) : null, ref: (el) => (this.nativeTh = el) }, this.inheritedAttributes), h(ButtonOrDiv, { key: 'e936f0bd861b2d243071d45ccb4fa6bf8448f7a6', class: "grid-column-th-content", ref: (el) => this.buttonOrDiv = el, tabIndex: this.sort ? this.getTabIndex() : -1 }, h("span", { key: '33e9e0238aa5cea93bff5f0522e30b7cfa787283' }, this.name), this.sort ? h("div", { class: "sort-arrow-container" }, h(GridSortArrow, { state: this.sortOrder })) : ''))));
81
81
  }
82
82
  onSortClick() {
83
83
  if (!this.sort)
@@ -1 +1 @@
1
- {"file":"wcs-grid-column.entry.js","mappings":"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","names":[],"sources":["src/components/grid-column/grid-sort-arrow.tsx","src/components/grid-column/grid-column.scss?tag=wcs-grid-column&encapsulation=shadow","src/components/grid-column/grid-sort-arrow.scss?tag=wcs-grid-column&encapsulation=shadow","src/components/grid-column/grid-column.tsx"],"sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { WcsSortOrder } from '../grid/grid-interface';\n\ninterface GridSortArrowProps {\n state: WcsSortOrder;\n}\n\nexport const GridSortArrow: FunctionalComponent<GridSortArrowProps> = ({state}) => (\n <svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <g class={(state === 'none' ? '' : state) + ' arrow-group'}>\n <path class=\"arrow\"\n fill=\"#333333\"\n d=\"M10.0973 5.34619C9.79269 5.67941 9.29832 5.67941 8.99348 5.34619L6.78316 2.92128L6.78316 11.144C6.78316 11.6168 6.43368 12 6.00289 12C5.57187 12 5.22261 11.6168 5.22261 11.144L5.22261 2.92128L3.01219 5.34619C2.70802 5.67941 2.21341 5.67941 1.90881 5.34619C1.75655 5.17859 1.68005 4.95932 1.68005 4.73997C1.68005 4.52061 1.75655 4.30192 1.90881 4.13433L5.45122 0.250846C5.75597 -0.0836145 6.24977 -0.0836145 6.55454 0.250846L10.0973 4.13433C10.4017 4.46883 10.4017 5.01168 10.0973 5.34619Z\"\n />\n </g>\n </svg>\n\n);\n","@import '../../style/focus-outline.scss';\n\n:host {\n\n /* All css variables are in grid.scss.\n Any variable can be overridden here for a single grid-column by using the correct selector in CSS */\n\n display: contents;\n\n th {\n color: var(--wcs-grid-header-text-color);\n background-color: var(--wcs-grid-header-background-color-default);\n border-bottom: var(--wcs-grid-header-border-bottom);\n border-left: var(--wcs-grid-header-border-left);\n border-radius: var(--wcs-grid-header-border-radius);\n padding: var(--wcs-grid-header-padding-vertical) var(--wcs-grid-header-padding-horizontal);\n text-align: left;\n align-content: center;\n transition: background-color var(--wcs-grid-header-transition-duration) ease-in-out;\n\n .grid-column-th-content {\n // The following lines aim to avoid displaying the native button style of the agent\n -webkit-appearance: none;\n appearance: none;\n background: none;\n border: none;\n outline: none;\n margin: 0;\n padding: 0;\n font-size: var(--wcs-grid-header-font-size);\n line-height: var(--wcs-grid-header-line-height);\n color: var(--wcs-grid-header-text-color);\n cursor: inherit;\n display: inline-flex;\n border-collapse: separate;\n font-family: inherit;\n text-align: left;\n align-items: center;\n gap: var(--wcs-semantic-spacing-base);\n\n span {\n font-weight: var(--wcs-grid-header-font-weight);\n }\n }\n\n /* Hovered grid header */\n &[aria-sort]:hover {\n background-color: var(--wcs-grid-header-background-color-hover);\n }\n\n /* Pressed grid header */\n &[aria-sort]:active {\n background-color: var(--wcs-grid-header-background-color-press);\n }\n\n /* Grid header with asc or desc sort-config */\n &[aria-sort=ascending],\n &[aria-sort=descending] {\n --wcs-grid-header-sort-arrow-color: var(--wcs-grid-header-sort-arrow-color-default);\n }\n\n /* Hovered grid header, not sorted yet */\n &[aria-sort=none]:hover {\n --wcs-grid-header-sort-arrow-color: var(--wcs-grid-header-sort-arrow-color-hover);\n }\n\n // XXX: This code works in Firefox as well, but there is a browser-side rendering bug that prevents it from displaying correctly.\n // We decided to wait for Firefox to fix the bug instead adding a dirty fix here\n &:focus-visible, &:has(:focus-visible) {\n @include focus-outline($outline-color: var(--wcs-grid-outline-color), $outline-offset: 0);\n }\n\n @supports not selector(&:has(:focus-visible)) {\n &:focus-within {\n @include focus-outline($outline-color: var(--wcs-grid-outline-color), $outline-offset: 0);\n }\n }\n }\n .pointer {\n cursor: pointer;\n }\n}\n\n:host([hidden]) {\n display: none !important;\n}\n",".arrow-group {\n transform-origin: 50% 50%;\n transition: transform var(--wcs-semantic-motion-duration-feedback-base, 150ms) ease-in-out;\n}\n\n.arrow {\n fill: var(--wcs-grid-header-sort-arrow-color, transparent);\n}\n\n.desc {\n transform: rotate(180deg);\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host, Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport {\n WcsCellFormatter,\n WcsGridColumnSortChangeEventDetails,\n WcsSortFn,\n WcsSortOrder\n} from '../grid/grid-interface';\nimport { GridSortArrow } from './grid-sort-arrow';\nimport {\n inheritAriaAttributes,\n inheritAttributes,\n isEnterKey,\n isSpaceKey,\n setOrRemoveAttribute\n} from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst GRID_COLUMN_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The grid column is a subcomponent of `wcs-grid` that represents a column of the table.\n * \n * @csspart [path]-column - CSS part for each column for styling. e.g: first_name-column, email-column\n */\n@Component({\n tag: 'wcs-grid-column',\n styleUrls: ['grid-column.scss', 'grid-sort-arrow.scss'],\n shadow: true\n})\nexport class GridColumn implements ComponentInterface, MutableAriaAttribute {\n @Element() private el: HTMLWcsGridColumnElement;\n private nativeTh!: HTMLTableHeaderCellElement;\n private buttonOrDiv: HTMLButtonElement | HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n /**\n * Represents the name of the field from the `data` object (e.g: first_name, last_name, email, ...)\n */\n @Prop() path: string;\n /**\n * The name of the column displayed on the table (e.g: First Name, Last Name, Email, ...)\n */\n @Prop() name: string;\n /**\n * Make the column sortable.\n */\n @Prop() sort: boolean = false;\n /**\n * Customizable sort function to change the comparison of values.\n */\n @Prop() sortFn: WcsSortFn;\n /**\n * Customizable formatter function to render the cell differently.\n */\n @Prop() formatter: WcsCellFormatter;\n /**\n * Defines if the column sort is ascending or descending. \n * `none` = the column is not sorted.\n */\n @Prop({mutable: true}) sortOrder: WcsSortOrder = 'none';\n /**\n * Set the column `<th>` element width.\n */\n @Prop() width: string;\n /**\n * Set to true if using a `wcs-custom-cell` linked to it.\n */\n @Prop() customCells: boolean = false;\n /**\n * Flag to hide the column.\n */\n @Prop() hidden: boolean = false;\n /**\n * Event emitted when the sort of the column is changed.\n */\n @Event() wcsSortChange!: EventEmitter<WcsGridColumnSortChangeEventDetails>;\n /**\n * Event emitted if the column is dynamically switching visibility.\n */\n @Event() wcsHiddenChange!: EventEmitter<boolean>;\n\n /**\n * This property mustn't be set by hand, it is set by the wcs-grid component to move the focus between grid columns\n * using keyboard.\n * @internal\n */\n @Prop() public cursorPosition: {col: number, row: number};\n\n /**\n * This property mustn't be set by hand, it is set by the wcs-grid component to register the column index in a\n * grid in order to move the focus between the grid columns.\n * @internal\n */\n @Prop() public columnPosition: number;\n \n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GRID_COLUMN_INHERITED_ATTRS),\n };\n }\n \n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeTh, attr, value);\n }\n\n @Watch('hidden')\n parseMyObjectProp(newValue: boolean) {\n this.wcsHiddenChange.emit(newValue);\n }\n\n @Watch('sortOrder')\n sortOrderChange(_: WcsSortOrder) {\n this.emitSortConfig();\n }\n\n emitSortConfig() {\n if (!this.sort) return;\n this.wcsSortChange.emit({\n column: this.el,\n order: this.sortOrder,\n sortFn: this.sortFn\n });\n }\n\n getSortOrderForAriaSort(sortOrder: WcsSortOrder) {\n switch (sortOrder) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n case 'none':\n default:\n return 'none';\n }\n }\n \n private getTabIndex() {\n return this.cursorPosition?.col === this.columnPosition\n && this.cursorPosition?.row === 0 ? 0 : -1;\n }\n\n private getTagName() {\n return this.sort ? 'button' : 'div';\n }\n \n private delegateFocusToButton() {\n if (this.sort) {\n this.buttonOrDiv.focus();\n }\n }\n\n render(): any {\n const ButtonOrDiv = this.getTagName();\n return (<Host slot=\"grid-column\">\n <th style={{width: this.width}}\n class={this.sort ? 'pointer' : ''}\n tabIndex={this.sort ? -1 : this.getTabIndex()}\n scope=\"col\"\n onClick={this.onSortClick.bind(this)}\n onKeyDown={this.handleSortKeyDown.bind(this)}\n onFocus={this.delegateFocusToButton.bind(this)}\n aria-sort={this.sort ? this.getSortOrderForAriaSort(this.sortOrder) : null}\n ref={(el) => (this.nativeTh = el)}\n {...this.inheritedAttributes}\n >\n <ButtonOrDiv class=\"grid-column-th-content\"\n ref={(el: HTMLButtonElement | HTMLDivElement) => this.buttonOrDiv = el}\n tabIndex={this.sort ? this.getTabIndex() : -1}>\n <span>{this.name}</span>\n {\n this.sort ? <GridSortArrow state={this.sortOrder}/> : ''\n }\n </ButtonOrDiv>\n </th>\n </Host>)\n }\n\n private onSortClick() {\n if (!this.sort) return;\n \n // @Watch on sortOrder property will trigger wcsSortChange event\n this.sortOrder = this.sortOrder === 'none' || this.sortOrder === 'desc' ? 'asc' : 'desc';\n }\n \n private handleSortKeyDown(_event: KeyboardEvent) {\n if (isSpaceKey(_event) || isEnterKey(_event)) {\n _event.preventDefault();\n this.onSortClick();\n }\n }\n}\n"],"version":3}
1
+ {"file":"wcs-grid-column.entry.js","mappings":";;;AAOO,MAAM,aAAa,GAA4C,CAAC,EAAC,KAAK,EAAC,MAC1E,0BAAiB,MAAM,EAAC,KAAK,EAAC,4BAA4B,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM;IAC7G,SAAG,KAAK,EAAE,CAAC,KAAK,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK,IAAI,cAAc;QACtD,YAAM,KAAK,EAAC,OAAO,EACb,IAAI,EAAC,SAAS,EACd,CAAC,EAAC,0eAA0e,GAChf,CACF,CACF,CAET;;ACjBD,MAAM,aAAa,GAAG,60DAA60D,CAAC;AACp2D,4BAAe,aAAa;;ACD5B,MAAM,gBAAgB,GAAG,kOAAkO,CAAC;AAC5P,4BAAe,gBAAgB;;AC0B/B,MAAM,2BAA2B,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;MAY7C,UAAU;;;;;QAIX,wBAAmB,GAAyB,EAAE,CAAC;;;oBAYd,KAAK;;;yBAaG,MAAM;;2BAQP,KAAK;sBAIV,KAAK;;;;IAwBhD,iBAAiB;QACb,IAAI,CAAC,mBAAmB,mCACjB,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC,GAC9B,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,2BAA2B,CAAC,CAC7D,CAAC;KACL;IAGD,MAAM,gBAAgB,CAAC,IAAuB,EAAE,KAAgC;QAC5E,oBAAoB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;KACpD;IAGD,iBAAiB,CAAC,QAAiB;QAC/B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACvC;IAGD,eAAe,CAAC,CAAe;QAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;KACzB;IAED,cAAc;QACV,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;QACvB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,IAAI,CAAC,EAAE;YACf,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAC;KACN;IAED,uBAAuB,CAAC,SAAuB;QAC3C,QAAQ,SAAS;YACb,KAAK,KAAK;gBACN,OAAO,WAAW,CAAC;YACvB,KAAK,MAAM;gBACP,OAAO,YAAY,CAAC;YACxB,KAAK,MAAM,CAAC;YACZ;gBACI,OAAO,MAAM,CAAC;SACrB;KACJ;IAEO,WAAW;;QACf,OAAO,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,MAAK,IAAI,CAAC,cAAc;eACpD,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,GAAG,MAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KAC9C;IAEO,UAAU;QACd,OAAO,IAAI,CAAC,IAAI,GAAG,QAAQ,GAAG,KAAK,CAAC;KACvC;IAEO,qBAAqB;QACzB,IAAI,IAAI,CAAC,IAAI,EAAE;YACX,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;SAC5B;KACJ;IAED,MAAM;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,QAAQ,EAAC,IAAI,qDAAC,IAAI,EAAC,aAAa,IAC5B,yEAAI,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAC,EAC1B,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,SAAS,GAAG,EAAE,EACjC,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,EAC7C,KAAK,EAAC,KAAK,EACX,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EACpC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5C,OAAO,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,eACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAC1E,GAAG,EAAE,CAAC,EAAE,MAAM,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,IAC7B,IAAI,CAAC,mBAAmB,GAE5B,EAAC,WAAW,qDAAC,KAAK,EAAC,wBAAwB,EACnC,GAAG,EAAE,CAAC,EAAsC,KAAK,IAAI,CAAC,WAAW,GAAG,EAAE,EACtE,QAAQ,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IACjD,+DAAO,IAAI,CAAC,IAAI,CAAQ,EAEpB,IAAI,CAAC,IAAI,GAAG,WAAK,KAAK,EAAC,sBAAsB,IAAC,EAAC,aAAa,IAAC,KAAK,EAAE,IAAI,CAAC,SAAS,GAAG,CAAM,GAAG,EAAE,CAE1F,CACb,CACF,EAAC;KACX;IAEO,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,IAAI;YAAE,OAAO;;QAGvB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,GAAG,MAAM,CAAC;KAC5F;IAEO,iBAAiB,CAAC,MAAqB;QAC3C,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;YAC1C,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;KACJ;;;;;;;;;;;","names":[],"sources":["src/components/grid-column/grid-sort-arrow.tsx","src/components/grid-column/grid-column.scss?tag=wcs-grid-column&encapsulation=shadow","src/components/grid-column/grid-sort-arrow.scss?tag=wcs-grid-column&encapsulation=shadow","src/components/grid-column/grid-column.tsx"],"sourcesContent":["import { FunctionalComponent, h } from '@stencil/core';\nimport { WcsSortOrder } from '../grid/grid-interface';\n\ninterface GridSortArrowProps {\n state: WcsSortOrder;\n}\n\nexport const GridSortArrow: FunctionalComponent<GridSortArrowProps> = ({state}) => (\n <svg aria-hidden=\"true\" xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\n <g class={(state === 'none' ? '' : state) + ' arrow-group'}>\n <path class=\"arrow\"\n fill=\"#333333\"\n d=\"M10.0973 5.34619C9.79269 5.67941 9.29832 5.67941 8.99348 5.34619L6.78316 2.92128L6.78316 11.144C6.78316 11.6168 6.43368 12 6.00289 12C5.57187 12 5.22261 11.6168 5.22261 11.144L5.22261 2.92128L3.01219 5.34619C2.70802 5.67941 2.21341 5.67941 1.90881 5.34619C1.75655 5.17859 1.68005 4.95932 1.68005 4.73997C1.68005 4.52061 1.75655 4.30192 1.90881 4.13433L5.45122 0.250846C5.75597 -0.0836145 6.24977 -0.0836145 6.55454 0.250846L10.0973 4.13433C10.4017 4.46883 10.4017 5.01168 10.0973 5.34619Z\"\n />\n </g>\n </svg>\n\n);\n","@import '../../style/focus-outline.scss';\n\n:host {\n\n /* All css variables are in grid.scss.\n Any variable can be overridden here for a single grid-column by using the correct selector in CSS */\n\n display: contents;\n\n th {\n color: var(--wcs-grid-header-text-color);\n background-color: var(--wcs-grid-header-background-color-default);\n border-bottom: var(--wcs-grid-header-border-bottom);\n border-left: var(--wcs-grid-header-border-left);\n border-radius: var(--wcs-grid-header-border-radius);\n padding: var(--wcs-grid-header-padding-vertical) var(--wcs-grid-header-padding-horizontal);\n text-align: left;\n align-content: center;\n transition: background-color var(--wcs-grid-header-transition-duration) ease-in-out;\n\n .grid-column-th-content {\n // The following lines aim to avoid displaying the native button style of the agent\n -webkit-appearance: none;\n appearance: none;\n background: none;\n border: none;\n outline: none;\n margin: 0;\n padding: 0;\n font-size: var(--wcs-grid-header-font-size);\n line-height: var(--wcs-grid-header-line-height);\n color: var(--wcs-grid-header-text-color);\n cursor: inherit;\n display: inline-flex;\n border-collapse: separate;\n font-family: inherit;\n text-align: left;\n align-items: center;\n gap: var(--wcs-semantic-spacing-base);\n\n span {\n font-weight: var(--wcs-grid-header-font-weight);\n }\n }\n\n /* Hovered grid header */\n &[aria-sort]:hover {\n background-color: var(--wcs-grid-header-background-color-hover);\n }\n\n /* Pressed grid header */\n &[aria-sort]:active {\n background-color: var(--wcs-grid-header-background-color-press);\n }\n\n /* Grid header with asc or desc sort-config */\n &[aria-sort=ascending],\n &[aria-sort=descending] {\n --wcs-grid-header-sort-arrow-color: var(--wcs-grid-header-sort-arrow-color-default);\n }\n\n /* Hovered grid header, not sorted yet */\n &[aria-sort=none]:hover {\n --wcs-grid-header-sort-arrow-color: var(--wcs-grid-header-sort-arrow-color-hover);\n }\n\n // XXX: This code works in Firefox as well, but there is a browser-side rendering bug that prevents it from displaying correctly.\n // We decided to wait for Firefox to fix the bug instead adding a dirty fix here\n &:focus-visible, &:has(:focus-visible) {\n @include focus-outline($outline-color: var(--wcs-grid-outline-color), $outline-offset: 0);\n }\n\n @supports not selector(&:has(:focus-visible)) {\n &:focus-within {\n @include focus-outline($outline-color: var(--wcs-grid-outline-color), $outline-offset: 0);\n }\n }\n }\n .pointer {\n cursor: pointer;\n }\n}\n\n:host([hidden]) {\n display: none !important;\n}\n",".arrow-group {\n transform-origin: 50% 50%;\n transition: transform var(--wcs-semantic-motion-duration-feedback-base, 150ms) ease-in-out;\n}\n\n.arrow {\n fill: var(--wcs-grid-header-sort-arrow-color, transparent);\n}\n\n.desc {\n transform: rotate(180deg);\n}\n","import {\n Component,\n ComponentInterface,\n Element,\n Event,\n EventEmitter,\n h,\n Host, Method,\n Prop,\n Watch\n} from '@stencil/core';\nimport {\n WcsCellFormatter,\n WcsGridColumnSortChangeEventDetails,\n WcsSortFn,\n WcsSortOrder\n} from '../grid/grid-interface';\nimport { GridSortArrow } from './grid-sort-arrow';\nimport {\n inheritAriaAttributes,\n inheritAttributes,\n isEnterKey,\n isSpaceKey,\n setOrRemoveAttribute\n} from \"../../utils/helpers\";\nimport { AriaAttributeName, MutableAriaAttribute } from \"../../utils/mutable-aria-attribute\";\n\nconst GRID_COLUMN_INHERITED_ATTRS = ['tabindex', 'title'];\n\n/**\n * The grid column is a subcomponent of `wcs-grid` that represents a column of the table.\n * \n * @csspart [path]-column - CSS part for each column for styling. e.g: first_name-column, email-column\n */\n@Component({\n tag: 'wcs-grid-column',\n styleUrls: ['grid-column.scss', 'grid-sort-arrow.scss'],\n shadow: true\n})\nexport class GridColumn implements ComponentInterface, MutableAriaAttribute {\n @Element() private el: HTMLWcsGridColumnElement;\n private nativeTh!: HTMLTableHeaderCellElement;\n private buttonOrDiv: HTMLButtonElement | HTMLDivElement;\n private inheritedAttributes: { [k: string]: any } = {};\n /**\n * Represents the name of the field from the `data` object (e.g: first_name, last_name, email, ...)\n */\n @Prop() path: string;\n /**\n * The name of the column displayed on the table (e.g: First Name, Last Name, Email, ...)\n */\n @Prop() name: string;\n /**\n * Make the column sortable.\n */\n @Prop({ reflect: true }) sort: boolean = false;\n /**\n * Customizable sort function to change the comparison of values.\n */\n @Prop() sortFn: WcsSortFn;\n /**\n * Customizable formatter function to render the cell differently.\n */\n @Prop() formatter: WcsCellFormatter;\n /**\n * Defines if the column sort is ascending or descending. \n * `none` = the column is not sorted.\n */\n @Prop({mutable: true}) sortOrder: WcsSortOrder = 'none';\n /**\n * Set the column `<th>` element width.\n */\n @Prop() width: string;\n /**\n * Set to true if using a `wcs-custom-cell` linked to it.\n */\n @Prop({ reflect: true }) customCells: boolean = false;\n /**\n * Flag to hide the column.\n */\n @Prop({ reflect: true }) hidden: boolean = false;\n /**\n * Event emitted when the sort of the column is changed.\n */\n @Event() wcsSortChange!: EventEmitter<WcsGridColumnSortChangeEventDetails>;\n /**\n * Event emitted if the column is dynamically switching visibility.\n */\n @Event() wcsHiddenChange!: EventEmitter<boolean>;\n\n /**\n * This property mustn't be set by hand, it is set by the wcs-grid component to move the focus between grid columns\n * using keyboard.\n * @internal\n */\n @Prop() public cursorPosition: {col: number, row: number};\n\n /**\n * This property mustn't be set by hand, it is set by the wcs-grid component to register the column index in a\n * grid in order to move the focus between the grid columns.\n * @internal\n */\n @Prop() public columnPosition: number;\n \n componentWillLoad(): Promise<void> | void {\n this.inheritedAttributes = {\n ...inheritAriaAttributes(this.el),\n ...inheritAttributes(this.el, GRID_COLUMN_INHERITED_ATTRS),\n };\n }\n \n @Method()\n async setAriaAttribute(attr: AriaAttributeName, value: string | null | undefined) {\n setOrRemoveAttribute(this.nativeTh, attr, value);\n }\n\n @Watch('hidden')\n parseMyObjectProp(newValue: boolean) {\n this.wcsHiddenChange.emit(newValue);\n }\n\n @Watch('sortOrder')\n sortOrderChange(_: WcsSortOrder) {\n this.emitSortConfig();\n }\n\n emitSortConfig() {\n if (!this.sort) return;\n this.wcsSortChange.emit({\n column: this.el,\n order: this.sortOrder,\n sortFn: this.sortFn\n });\n }\n\n getSortOrderForAriaSort(sortOrder: WcsSortOrder) {\n switch (sortOrder) {\n case 'asc':\n return 'ascending';\n case 'desc':\n return 'descending';\n case 'none':\n default:\n return 'none';\n }\n }\n \n private getTabIndex() {\n return this.cursorPosition?.col === this.columnPosition\n && this.cursorPosition?.row === 0 ? 0 : -1;\n }\n\n private getTagName() {\n return this.sort ? 'button' : 'div';\n }\n \n private delegateFocusToButton() {\n if (this.sort) {\n this.buttonOrDiv.focus();\n }\n }\n\n render(): any {\n const ButtonOrDiv = this.getTagName();\n return (<Host slot=\"grid-column\">\n <th style={{width: this.width}}\n class={this.sort ? 'pointer' : ''}\n tabIndex={this.sort ? -1 : this.getTabIndex()}\n scope=\"col\"\n onClick={this.onSortClick.bind(this)}\n onKeyDown={this.handleSortKeyDown.bind(this)}\n onFocus={this.delegateFocusToButton.bind(this)}\n aria-sort={this.sort ? this.getSortOrderForAriaSort(this.sortOrder) : null}\n ref={(el) => (this.nativeTh = el)}\n {...this.inheritedAttributes}\n >\n <ButtonOrDiv class=\"grid-column-th-content\"\n ref={(el: HTMLButtonElement | HTMLDivElement) => this.buttonOrDiv = el}\n tabIndex={this.sort ? this.getTabIndex() : -1}>\n <span>{this.name}</span>\n {\n this.sort ? <div class=\"sort-arrow-container\"><GridSortArrow state={this.sortOrder}/></div> : ''\n }\n </ButtonOrDiv>\n </th>\n </Host>)\n }\n\n private onSortClick() {\n if (!this.sort) return;\n \n // @Watch on sortOrder property will trigger wcsSortChange event\n this.sortOrder = this.sortOrder === 'none' || this.sortOrder === 'desc' ? 'asc' : 'desc';\n }\n \n private handleSortKeyDown(_event: KeyboardEvent) {\n if (isSpaceKey(_event) || isEnterKey(_event)) {\n _event.preventDefault();\n this.onSortClick();\n }\n }\n}\n"],"version":3}
@@ -7,7 +7,7 @@ const GridCustomCell = class {
7
7
  this.rowId = undefined;
8
8
  }
9
9
  render() {
10
- return (h(Host, { key: '441a2f06db44cb423da04b165b8fde063d276d67', slot: this.columnId + '-' + this.rowId }, h("slot", { key: '6b3e9007560c8b2fef3df9c968fb8659b99bc9e6' })));
10
+ return (h(Host, { key: '3353e4de7a3eeb4d903a63d5adf257ed3427beb8', slot: this.columnId + '-' + this.rowId }, h("slot", { key: 'cc3297d327379b74a385c4909964b8371da68a97' })));
11
11
  }
12
12
  };
13
13
 
@@ -1,5 +1,5 @@
1
- export { G as wcs_grid_pagination } from './grid-pagination-421689be.js';
1
+ export { G as wcs_grid_pagination } from './grid-pagination-731726a6.js';
2
2
  import './index-d9de61ce.js';
3
- import './helpers-f137ec8d.js';
3
+ import './helpers-ece6a2d3.js';
4
4
 
5
5
  //# sourceMappingURL=wcs-grid-pagination.entry.js.map
@@ -1,7 +1,7 @@
1
1
  import { h, r as registerInstance, c as createEvent, f as forceUpdate, H as Host, g as getElement } from './index-d9de61ce.js';
2
- import { G as GridPagination } from './grid-pagination-421689be.js';
3
- import { k as keyboardShortcutFromKeyboardEvent } from './keyboard-event-bdea408a.js';
4
- import { i as inheritAriaAttributes, a as inheritAttributes, s as setOrRemoveAttribute } from './helpers-f137ec8d.js';
2
+ import { G as GridPagination } from './grid-pagination-731726a6.js';
3
+ import { k as keyboardShortcutFromKeyboardEvent } from './keyboard-event-26b65ae5.js';
4
+ import { i as inheritAriaAttributes, a as inheritAttributes, s as setOrRemoveAttribute } from './helpers-ece6a2d3.js';
5
5
  import { i as isObjectLike, b as baseGetTag, a as isArray, S as Symbol, c as isObject, g as getNative, e as eq, d as isPrototype, f as isArrayLike, h as arrayLikeKeys, M as MapCache, o as overArg, k as keys, r as root, j as getSymbols, s as stubArray, l as arrayPush, m as baseGetAllKeys, U as Uint8Array$1, n as getTag, p as baseUnary, q as nodeUtil, t as isBuffer, u as Stack, v as getAllKeys, w as isEqual } from './isEqual-f2a07f4c.js';
6
6
 
7
7
  function getSortOrderInteger(sortOrder) {
@@ -1289,6 +1289,14 @@ const Grid = class {
1289
1289
  onBlur(event) {
1290
1290
  this.wcsBlur.emit(event);
1291
1291
  }
1292
+ /**
1293
+ * Set focus on the first cell of the grid
1294
+ */
1295
+ async focusFirstCell() {
1296
+ var _a;
1297
+ this.cursorPosition = { col: this.selectionConfig === 'none' ? 0 : 1, row: 1 };
1298
+ (_a = this.getElementToFocusAtCursorPosition()) === null || _a === void 0 ? void 0 : _a.focus();
1299
+ }
1292
1300
  /**
1293
1301
  * If selectionConfig is different from `none`, that means that an extra column for radio or checkbox is rendered
1294
1302
  * in the table.
@@ -1693,12 +1701,12 @@ const Grid = class {
1693
1701
  }
1694
1702
  render() {
1695
1703
  var _a, _b, _c, _d;
1696
- return (h(Host, { key: '2012464f20c249873192549e34ff7ac4c82e8526' }, h("table", Object.assign({ key: 'a0a4a42e52bf623b34db145571045437ac6f4a60', role: "grid", ref: (el) => (this.nativeTable = el), "aria-rowcount": !this.loading && ((_a = this.rows) === null || _a === void 0 ? void 0 : _a.length), "aria-colcount": !this.loading && this.totalDisplayedColumnCount() }, this.inheritedAttributes), h("thead", { key: '3bf24c0462be2bd52754d44a3d9c5f84a7662bd6' }, h("tr", { key: '4169baa4ce95078d40e328d0c76577b8a58e3489', "aria-rowindex": "1" }, this.selectionConfig === 'none' ? ''
1704
+ return (h(Host, { key: '98d13e7497ec9d9ecd3e149b3f6986e16bc5cc2a' }, h("table", Object.assign({ key: 'a44825cf71ff284a5204e9d922c0eba2c2ca23f4', role: "grid", ref: (el) => (this.nativeTable = el), "aria-rowcount": !this.loading && ((_a = this.rows) === null || _a === void 0 ? void 0 : _a.length), "aria-colcount": !this.loading && this.totalDisplayedColumnCount() }, this.inheritedAttributes), h("thead", { key: '336578d350ae8082a19fa6798af35f2fdd015ff9' }, h("tr", { key: 'fdb38402ea5c58dd77dad7df2ef97d54c521123c', "aria-rowindex": "1" }, this.selectionConfig === 'none' ? ''
1697
1705
  : h("th", { class: "wcs-grid-selection-column" }, this.selectionConfig === 'single' ? '' :
1698
1706
  h("wcs-checkbox", { tabIndex: ((_b = this.cursorPosition) === null || _b === void 0 ? void 0 : _b.col) === 0
1699
- && ((_c = this.cursorPosition) === null || _c === void 0 ? void 0 : _c.row) === 0 ? 0 : -1, part: "all-rows-checkbox", checked: this.allRowsAreSelected(), onWcsChange: this.selectAllRows.bind(this) })), h("slot", { key: '743ee6266300d4ad05f70b7e2a42a159be7a1700', name: "grid-column" }))), h("tbody", { key: 'c20964de1625e8fef9d98f9b7aa6f5c8cf2b186c' }, this.loading
1707
+ && ((_c = this.cursorPosition) === null || _c === void 0 ? void 0 : _c.row) === 0 ? 0 : -1, part: "all-rows-checkbox", checked: this.allRowsAreSelected(), onWcsChange: this.selectAllRows.bind(this) })), h("slot", { key: '2d68b72fac0251dab9f519cf84c25c96262c193b', name: "grid-column" }))), h("tbody", { key: '4156e796ac5a81170b5dba011159f8e6bb7a7e60' }, this.loading
1700
1708
  ? h("tr", { "aria-busy": "true" }, h("td", { colSpan: this.totalColumnCount(), class: "loading" }, h("wcs-spinner", null)))
1701
- : (_d = this.rows) === null || _d === void 0 ? void 0 : _d.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map((row, index) => this.renderRow(row, index)))), h("slot", { key: '1cac800a642d68c9ae7e6f958c74d6b3069e75a1', name: "grid-pagination" })));
1709
+ : (_d = this.rows) === null || _d === void 0 ? void 0 : _d.filter(row => this.serverMode || !this.paginationEl || row.page === this.paginationEl.currentPage).map((row, index) => this.renderRow(row, index)))), h("slot", { key: 'c683eb883707ffbd1fed22d86ececb595f70c2c0', name: "grid-pagination" })));
1702
1710
  }
1703
1711
  /**
1704
1712
  * Returns the row with all mapped cells inside.