wcs-core 4.2.0 → 5.0.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 (541) hide show
  1. package/dist/cjs/{accessibility-e99b032d.js → accessibility-c0c4e648.js} +8 -2
  2. package/dist/cjs/accessibility-c0c4e648.js.map +1 -0
  3. package/dist/cjs/button-interface-044a8a8a.js +12 -0
  4. package/dist/cjs/button-interface-044a8a8a.js.map +1 -0
  5. package/dist/cjs/grid-pagination-3511fdfa.js +111 -0
  6. package/dist/cjs/grid-pagination-3511fdfa.js.map +1 -0
  7. package/dist/cjs/{helpers-4a14051a.js → helpers-6280db6e.js} +75 -2
  8. package/dist/cjs/helpers-6280db6e.js.map +1 -0
  9. package/dist/cjs/{index-ca67a6dc.js → index-749d999e.js} +4 -1
  10. package/dist/cjs/index-749d999e.js.map +1 -0
  11. package/dist/cjs/{isEqual-9ea7ee49.js → keyboard-event-1cad4036.js} +77 -1
  12. package/dist/cjs/keyboard-event-1cad4036.js.map +1 -0
  13. package/dist/cjs/loader.cjs.js +2 -2
  14. package/dist/cjs/{select-arrow-c9583ea9.js → select-arrow-8169c0cb.js} +2 -2
  15. package/dist/cjs/{select-arrow-c9583ea9.js.map → select-arrow-8169c0cb.js.map} +1 -1
  16. package/dist/cjs/wcs-accordion-content.cjs.entry.js +1 -1
  17. package/dist/cjs/wcs-accordion-header.cjs.entry.js +1 -1
  18. package/dist/cjs/wcs-accordion-panel.cjs.entry.js +2 -2
  19. package/dist/cjs/wcs-accordion.cjs.entry.js +1 -1
  20. package/dist/cjs/wcs-action-bar.cjs.entry.js +1 -1
  21. package/dist/cjs/wcs-app.cjs.entry.js +1 -1
  22. package/dist/cjs/wcs-badge.cjs.entry.js +3 -2
  23. package/dist/cjs/wcs-badge.cjs.entry.js.map +1 -1
  24. package/dist/cjs/{wcs-button.cjs.entry.js → wcs-button_2.cjs.entry.js} +21 -12
  25. package/dist/cjs/wcs-button_2.cjs.entry.js.map +1 -0
  26. package/dist/cjs/wcs-card-body.cjs.entry.js +1 -1
  27. package/dist/cjs/wcs-card.cjs.entry.js +1 -1
  28. package/dist/cjs/wcs-checkbox.cjs.entry.js +5 -2
  29. package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
  30. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +2 -2
  31. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +2 -2
  32. package/dist/cjs/wcs-com-nav.cjs.entry.js +2 -2
  33. package/dist/cjs/wcs-counter.cjs.entry.js +16 -6
  34. package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -1
  35. package/dist/cjs/wcs-divider.cjs.entry.js +1 -1
  36. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js +1 -1
  37. package/dist/cjs/wcs-dropdown-divider.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wcs-dropdown-header.cjs.entry.js +1 -1
  39. package/dist/cjs/wcs-dropdown-header.cjs.entry.js.map +1 -1
  40. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +2 -2
  41. package/dist/cjs/wcs-dropdown-item.cjs.entry.js.map +1 -1
  42. package/dist/cjs/wcs-dropdown.cjs.entry.js +12 -6
  43. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  44. package/dist/cjs/wcs-editable-field.cjs.entry.js +18 -3
  45. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  46. package/dist/cjs/wcs-error_2.cjs.entry.js +36 -2
  47. package/dist/cjs/wcs-error_2.cjs.entry.js.map +1 -1
  48. package/dist/cjs/wcs-field-content.cjs.entry.js +1 -1
  49. package/dist/cjs/wcs-field-label.cjs.entry.js +1 -1
  50. package/dist/cjs/wcs-field.cjs.entry.js +1 -1
  51. package/dist/cjs/wcs-footer.cjs.entry.js +1 -1
  52. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +2 -2
  53. package/dist/cjs/wcs-galactic.cjs.entry.js +1 -1
  54. package/dist/cjs/wcs-grid-column.cjs.entry.js +25 -4
  55. package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
  56. package/dist/cjs/wcs-grid-custom-cell.cjs.entry.js +1 -1
  57. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +2 -2
  58. package/dist/cjs/wcs-grid.cjs.entry.js +320 -65
  59. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  60. package/dist/cjs/wcs-header.cjs.entry.js +1 -1
  61. package/dist/cjs/wcs-hint.cjs.entry.js +1 -1
  62. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +1 -1
  63. package/dist/cjs/wcs-icon.cjs.entry.js +1 -1
  64. package/dist/cjs/wcs-input.cjs.entry.js +15 -15
  65. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  66. package/dist/cjs/wcs-label.cjs.entry.js +1 -1
  67. package/dist/cjs/wcs-label.cjs.entry.js.map +1 -1
  68. package/dist/cjs/wcs-list-item-properties.cjs.entry.js +1 -1
  69. package/dist/cjs/wcs-list-item-property.cjs.entry.js +1 -1
  70. package/dist/cjs/wcs-list-item.cjs.entry.js +1 -1
  71. package/dist/cjs/wcs-mat-icon.cjs.entry.js +2 -2
  72. package/dist/cjs/wcs-mat-icon.cjs.entry.js.map +1 -1
  73. package/dist/cjs/wcs-modal.cjs.entry.js +35 -5
  74. package/dist/cjs/wcs-modal.cjs.entry.js.map +1 -1
  75. package/dist/cjs/wcs-native-select.cjs.entry.js +6 -3
  76. package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -1
  77. package/dist/cjs/wcs-nav-item.cjs.entry.js +2 -2
  78. package/dist/cjs/wcs-nav.cjs.entry.js +1 -1
  79. package/dist/cjs/wcs-progress-bar.cjs.entry.js +4 -6
  80. package/dist/cjs/wcs-progress-bar.cjs.entry.js.map +1 -1
  81. package/dist/cjs/wcs-progress-radial.cjs.entry.js +14 -6
  82. package/dist/cjs/wcs-progress-radial.cjs.entry.js.map +1 -1
  83. package/dist/cjs/wcs-radio-group.cjs.entry.js +22 -15
  84. package/dist/cjs/wcs-radio-group.cjs.entry.js.map +1 -1
  85. package/dist/cjs/wcs-radio.cjs.entry.js +14 -7
  86. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  87. package/dist/cjs/wcs-select_2.cjs.entry.js +603 -111
  88. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  89. package/dist/cjs/wcs-skeleton-circle.cjs.entry.js +1 -1
  90. package/dist/cjs/wcs-skeleton-rectangle.cjs.entry.js +1 -1
  91. package/dist/cjs/wcs-skeleton-text.cjs.entry.js +1 -1
  92. package/dist/cjs/wcs-switch.cjs.entry.js +5 -2
  93. package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
  94. package/dist/cjs/wcs-tab.cjs.entry.js +4 -1
  95. package/dist/cjs/wcs-tab.cjs.entry.js.map +1 -1
  96. package/dist/cjs/wcs-tabs.cjs.entry.js +4 -4
  97. package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
  98. package/dist/cjs/wcs-textarea.cjs.entry.js +13 -11
  99. package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
  100. package/dist/cjs/wcs-tooltip.cjs.entry.js +1 -1
  101. package/dist/cjs/wcs.cjs.js +2 -2
  102. package/dist/collection/components/badge/badge-interface.js.map +1 -1
  103. package/dist/collection/components/badge/badge.css +19 -1
  104. package/dist/collection/components/badge/badge.js +24 -0
  105. package/dist/collection/components/badge/badge.js.map +1 -1
  106. package/dist/collection/components/button/button.css +1 -1
  107. package/dist/collection/components/checkbox/checkbox.js +34 -1
  108. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  109. package/dist/collection/components/counter/counter.css +6 -1
  110. package/dist/collection/components/counter/counter.js +61 -3
  111. package/dist/collection/components/counter/counter.js.map +1 -1
  112. package/dist/collection/components/dropdown/dropdown.css +15 -4
  113. package/dist/collection/components/dropdown/dropdown.js +37 -1
  114. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  115. package/dist/collection/components/dropdown-divider/dropdown-divider.js +3 -0
  116. package/dist/collection/components/dropdown-divider/dropdown-divider.js.map +1 -1
  117. package/dist/collection/components/dropdown-header/dropdown-header.js +4 -0
  118. package/dist/collection/components/dropdown-header/dropdown-header.js.map +1 -1
  119. package/dist/collection/components/dropdown-item/dropdown-item.js +5 -1
  120. package/dist/collection/components/dropdown-item/dropdown-item.js.map +1 -1
  121. package/dist/collection/components/editable-field/editable-field.js +17 -2
  122. package/dist/collection/components/editable-field/editable-field.js.map +1 -1
  123. package/dist/collection/components/error/error.js +1 -1
  124. package/dist/collection/components/error/error.js.map +1 -1
  125. package/dist/collection/components/form-field/form-field.js +31 -0
  126. package/dist/collection/components/form-field/form-field.js.map +1 -1
  127. package/dist/collection/components/grid/grid-interface.js.map +1 -1
  128. package/dist/collection/components/grid/grid-keyboard-event.js +52 -0
  129. package/dist/collection/components/grid/grid-keyboard-event.js.map +1 -0
  130. package/dist/collection/components/grid/grid.css +5 -0
  131. package/dist/collection/components/grid/grid.js +265 -29
  132. package/dist/collection/components/grid/grid.js.map +1 -1
  133. package/dist/collection/components/grid-column/grid-column.css +5 -0
  134. package/dist/collection/components/grid-column/grid-column.js +60 -1
  135. package/dist/collection/components/grid-column/grid-column.js.map +1 -1
  136. package/dist/collection/components/grid-column/grid-sort-arrow.js +1 -1
  137. package/dist/collection/components/grid-column/grid-sort-arrow.js.map +1 -1
  138. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js +32 -23
  139. package/dist/collection/components/grid-pagination/grid-pagination-arrow.js.map +1 -1
  140. package/dist/collection/components/grid-pagination/grid-pagination.css +17 -0
  141. package/dist/collection/components/grid-pagination/grid-pagination.js +1 -1
  142. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  143. package/dist/collection/components/input/input.js +64 -28
  144. package/dist/collection/components/input/input.js.map +1 -1
  145. package/dist/collection/components/label/label.js.map +1 -1
  146. package/dist/collection/components/mat-icon/mat-icon.js +1 -1
  147. package/dist/collection/components/mat-icon/mat-icon.js.map +1 -1
  148. package/dist/collection/components/modal/modal.css +2 -2
  149. package/dist/collection/components/modal/modal.js +73 -2
  150. package/dist/collection/components/modal/modal.js.map +1 -1
  151. package/dist/collection/components/native-select/native-select.css +6 -5
  152. package/dist/collection/components/native-select/native-select.js +29 -0
  153. package/dist/collection/components/native-select/native-select.js.map +1 -1
  154. package/dist/collection/components/progress-bar/progress-bar.css +12 -11
  155. package/dist/collection/components/progress-bar/progress-bar.js +22 -13
  156. package/dist/collection/components/progress-bar/progress-bar.js.map +1 -1
  157. package/dist/collection/components/progress-radial/progress-radial.css +5 -0
  158. package/dist/collection/components/progress-radial/progress-radial.js +18 -7
  159. package/dist/collection/components/progress-radial/progress-radial.js.map +1 -1
  160. package/dist/collection/components/radio/radio.css +8 -16
  161. package/dist/collection/components/radio/radio.js +12 -5
  162. package/dist/collection/components/radio/radio.js.map +1 -1
  163. package/dist/collection/components/radio-group/radio-group.js +50 -13
  164. package/dist/collection/components/radio-group/radio-group.js.map +1 -1
  165. package/dist/collection/components/select/select-interface.js +10 -0
  166. package/dist/collection/components/select/select-interface.js.map +1 -1
  167. package/dist/collection/components/select/select-keyboard-event.js +306 -0
  168. package/dist/collection/components/select/select-keyboard-event.js.map +1 -0
  169. package/dist/collection/components/select/select.css +59 -6
  170. package/dist/collection/components/select/select.js +435 -111
  171. package/dist/collection/components/select/select.js.map +1 -1
  172. package/dist/collection/components/select-option/select-option.css +15 -0
  173. package/dist/collection/components/select-option/select-option.js +30 -5
  174. package/dist/collection/components/select-option/select-option.js.map +1 -1
  175. package/dist/collection/components/switch/switch.js +34 -1
  176. package/dist/collection/components/switch/switch.js.map +1 -1
  177. package/dist/collection/components/tab/tab.css +7 -0
  178. package/dist/collection/components/tab/tab.js +11 -1
  179. package/dist/collection/components/tab/tab.js.map +1 -1
  180. package/dist/collection/components/tabs/tabs.js +7 -3
  181. package/dist/collection/components/tabs/tabs.js.map +1 -1
  182. package/dist/collection/components/textarea/textarea.css +8 -3
  183. package/dist/collection/components/textarea/textarea.js +41 -12
  184. package/dist/collection/components/textarea/textarea.js.map +1 -1
  185. package/dist/collection/utils/accessibility.js +7 -1
  186. package/dist/collection/utils/accessibility.js.map +1 -1
  187. package/dist/collection/utils/helpers.js +76 -1
  188. package/dist/collection/utils/helpers.js.map +1 -1
  189. package/dist/collection/utils/keyboard-event.js +74 -0
  190. package/dist/collection/utils/keyboard-event.js.map +1 -0
  191. package/dist/collection/utils/mutable-aria-attribute.js +4 -0
  192. package/dist/collection/utils/mutable-aria-attribute.js.map +1 -0
  193. package/dist/esm/{accessibility-ffa12842.js → accessibility-64feea8a.js} +8 -2
  194. package/dist/esm/accessibility-64feea8a.js.map +1 -0
  195. package/dist/esm/button-interface-c21c265f.js +9 -0
  196. package/dist/esm/button-interface-c21c265f.js.map +1 -0
  197. package/dist/esm/grid-pagination-f7b01e2e.js +109 -0
  198. package/dist/esm/grid-pagination-f7b01e2e.js.map +1 -0
  199. package/dist/esm/{helpers-1d55b67f.js → helpers-a21ae7d0.js} +75 -3
  200. package/dist/esm/helpers-a21ae7d0.js.map +1 -0
  201. package/dist/esm/{index-dc4d96d4.js → index-4f282598.js} +4 -1
  202. package/dist/esm/index-4f282598.js.map +1 -0
  203. package/dist/esm/{isEqual-20881bca.js → keyboard-event-ba3d20e7.js} +77 -2
  204. package/dist/esm/keyboard-event-ba3d20e7.js.map +1 -0
  205. package/dist/esm/loader.js +3 -3
  206. package/dist/esm/{select-arrow-81d069f7.js → select-arrow-28e8687b.js} +2 -2
  207. package/dist/esm/{select-arrow-81d069f7.js.map → select-arrow-28e8687b.js.map} +1 -1
  208. package/dist/esm/wcs-accordion-content.entry.js +1 -1
  209. package/dist/esm/wcs-accordion-header.entry.js +1 -1
  210. package/dist/esm/wcs-accordion-panel.entry.js +2 -2
  211. package/dist/esm/wcs-accordion.entry.js +1 -1
  212. package/dist/esm/wcs-action-bar.entry.js +1 -1
  213. package/dist/esm/wcs-app.entry.js +1 -1
  214. package/dist/esm/wcs-badge.entry.js +3 -2
  215. package/dist/esm/wcs-badge.entry.js.map +1 -1
  216. package/dist/esm/{wcs-button.entry.js → wcs-button_2.entry.js} +19 -11
  217. package/dist/esm/wcs-button_2.entry.js.map +1 -0
  218. package/dist/esm/wcs-card-body.entry.js +1 -1
  219. package/dist/esm/wcs-card.entry.js +1 -1
  220. package/dist/esm/wcs-checkbox.entry.js +5 -2
  221. package/dist/esm/wcs-checkbox.entry.js.map +1 -1
  222. package/dist/esm/wcs-com-nav-category.entry.js +2 -2
  223. package/dist/esm/wcs-com-nav-submenu.entry.js +2 -2
  224. package/dist/esm/wcs-com-nav.entry.js +2 -2
  225. package/dist/esm/wcs-counter.entry.js +16 -6
  226. package/dist/esm/wcs-counter.entry.js.map +1 -1
  227. package/dist/esm/wcs-divider.entry.js +1 -1
  228. package/dist/esm/wcs-dropdown-divider.entry.js +1 -1
  229. package/dist/esm/wcs-dropdown-divider.entry.js.map +1 -1
  230. package/dist/esm/wcs-dropdown-header.entry.js +1 -1
  231. package/dist/esm/wcs-dropdown-header.entry.js.map +1 -1
  232. package/dist/esm/wcs-dropdown-item.entry.js +2 -2
  233. package/dist/esm/wcs-dropdown-item.entry.js.map +1 -1
  234. package/dist/esm/wcs-dropdown.entry.js +12 -6
  235. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  236. package/dist/esm/wcs-editable-field.entry.js +18 -3
  237. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  238. package/dist/esm/wcs-error_2.entry.js +36 -2
  239. package/dist/esm/wcs-error_2.entry.js.map +1 -1
  240. package/dist/esm/wcs-field-content.entry.js +1 -1
  241. package/dist/esm/wcs-field-label.entry.js +1 -1
  242. package/dist/esm/wcs-field.entry.js +1 -1
  243. package/dist/esm/wcs-footer.entry.js +1 -1
  244. package/dist/esm/wcs-galactic-menu.entry.js +2 -2
  245. package/dist/esm/wcs-galactic.entry.js +1 -1
  246. package/dist/esm/wcs-grid-column.entry.js +25 -4
  247. package/dist/esm/wcs-grid-column.entry.js.map +1 -1
  248. package/dist/esm/wcs-grid-custom-cell.entry.js +1 -1
  249. package/dist/esm/wcs-grid-pagination.entry.js +2 -2
  250. package/dist/esm/wcs-grid.entry.js +282 -27
  251. package/dist/esm/wcs-grid.entry.js.map +1 -1
  252. package/dist/esm/wcs-header.entry.js +1 -1
  253. package/dist/esm/wcs-hint.entry.js +1 -1
  254. package/dist/esm/wcs-horizontal-stepper.entry.js +1 -1
  255. package/dist/esm/wcs-icon.entry.js +1 -1
  256. package/dist/esm/wcs-input.entry.js +15 -15
  257. package/dist/esm/wcs-input.entry.js.map +1 -1
  258. package/dist/esm/wcs-label.entry.js +1 -1
  259. package/dist/esm/wcs-label.entry.js.map +1 -1
  260. package/dist/esm/wcs-list-item-properties.entry.js +1 -1
  261. package/dist/esm/wcs-list-item-property.entry.js +1 -1
  262. package/dist/esm/wcs-list-item.entry.js +1 -1
  263. package/dist/esm/wcs-mat-icon.entry.js +2 -2
  264. package/dist/esm/wcs-mat-icon.entry.js.map +1 -1
  265. package/dist/esm/wcs-modal.entry.js +35 -5
  266. package/dist/esm/wcs-modal.entry.js.map +1 -1
  267. package/dist/esm/wcs-native-select.entry.js +6 -3
  268. package/dist/esm/wcs-native-select.entry.js.map +1 -1
  269. package/dist/esm/wcs-nav-item.entry.js +2 -2
  270. package/dist/esm/wcs-nav.entry.js +1 -1
  271. package/dist/esm/wcs-progress-bar.entry.js +4 -6
  272. package/dist/esm/wcs-progress-bar.entry.js.map +1 -1
  273. package/dist/esm/wcs-progress-radial.entry.js +14 -6
  274. package/dist/esm/wcs-progress-radial.entry.js.map +1 -1
  275. package/dist/esm/wcs-radio-group.entry.js +22 -15
  276. package/dist/esm/wcs-radio-group.entry.js.map +1 -1
  277. package/dist/esm/wcs-radio.entry.js +14 -7
  278. package/dist/esm/wcs-radio.entry.js.map +1 -1
  279. package/dist/esm/wcs-select_2.entry.js +602 -110
  280. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  281. package/dist/esm/wcs-skeleton-circle.entry.js +1 -1
  282. package/dist/esm/wcs-skeleton-rectangle.entry.js +1 -1
  283. package/dist/esm/wcs-skeleton-text.entry.js +1 -1
  284. package/dist/esm/wcs-switch.entry.js +5 -2
  285. package/dist/esm/wcs-switch.entry.js.map +1 -1
  286. package/dist/esm/wcs-tab.entry.js +4 -1
  287. package/dist/esm/wcs-tab.entry.js.map +1 -1
  288. package/dist/esm/wcs-tabs.entry.js +4 -4
  289. package/dist/esm/wcs-tabs.entry.js.map +1 -1
  290. package/dist/esm/wcs-textarea.entry.js +13 -11
  291. package/dist/esm/wcs-textarea.entry.js.map +1 -1
  292. package/dist/esm/wcs-tooltip.entry.js +1 -1
  293. package/dist/esm/wcs.js +3 -3
  294. package/dist/types/components/badge/badge-interface.d.ts +2 -0
  295. package/dist/types/components/badge/badge.d.ts +5 -1
  296. package/dist/types/components/checkbox/checkbox.d.ts +4 -1
  297. package/dist/types/components/counter/counter.d.ts +8 -1
  298. package/dist/types/components/dropdown/dropdown.d.ts +10 -1
  299. package/dist/types/components/dropdown-divider/dropdown-divider.d.ts +3 -0
  300. package/dist/types/components/dropdown-header/dropdown-header.d.ts +4 -0
  301. package/dist/types/components/dropdown-item/dropdown-item.d.ts +7 -0
  302. package/dist/types/components/editable-field/editable-field.d.ts +7 -0
  303. package/dist/types/components/form-field/form-field.d.ts +4 -0
  304. package/dist/types/components/grid/grid-interface.d.ts +14 -2
  305. package/dist/types/components/grid/grid-keyboard-event.d.ts +16 -0
  306. package/dist/types/components/grid/grid.d.ts +59 -4
  307. package/dist/types/components/grid-column/grid-column.d.ts +17 -0
  308. package/dist/types/components/input/input.d.ts +40 -17
  309. package/dist/types/components/modal/modal.d.ts +37 -1
  310. package/dist/types/components/native-select/native-select.d.ts +3 -1
  311. package/dist/types/components/progress-bar/progress-bar.d.ts +8 -3
  312. package/dist/types/components/progress-radial/progress-radial.d.ts +12 -0
  313. package/dist/types/components/radio/radio.d.ts +3 -0
  314. package/dist/types/components/radio-group/radio-group.d.ts +3 -1
  315. package/dist/types/components/select/select-interface.d.ts +12 -0
  316. package/dist/types/components/select/select-keyboard-event.d.ts +38 -0
  317. package/dist/types/components/select/select.d.ts +76 -15
  318. package/dist/types/components/select-option/select-option.d.ts +10 -4
  319. package/dist/types/components/switch/switch.d.ts +4 -1
  320. package/dist/types/components/tab/tab.d.ts +3 -0
  321. package/dist/types/components/tabs/tabs.d.ts +4 -0
  322. package/dist/types/components/textarea/textarea.d.ts +8 -4
  323. package/dist/types/components.d.ts +357 -55
  324. package/dist/types/utils/accessibility.d.ts +4 -0
  325. package/dist/types/utils/helpers.d.ts +12 -1
  326. package/dist/types/utils/keyboard-event.d.ts +13 -0
  327. package/dist/types/utils/mutable-aria-attribute.d.ts +5 -0
  328. package/dist/wcs/{p-7a3f70da.entry.js → p-00f6a79a.entry.js} +2 -2
  329. package/dist/wcs/{p-ee453b6e.entry.js → p-016e4dd9.entry.js} +2 -2
  330. package/dist/wcs/p-0ae177cf.js +2 -0
  331. package/dist/wcs/p-0ae177cf.js.map +1 -0
  332. package/dist/wcs/{p-f06f48f3.entry.js → p-0d02d9e4.entry.js} +2 -2
  333. package/dist/wcs/p-0d02d9e4.entry.js.map +1 -0
  334. package/dist/wcs/{p-30d8f9c3.entry.js → p-11ab4ffc.entry.js} +2 -2
  335. package/dist/wcs/p-13548191.entry.js +2 -0
  336. package/dist/wcs/p-13548191.entry.js.map +1 -0
  337. package/dist/wcs/p-13ffe5f3.entry.js +2 -0
  338. package/dist/wcs/p-13ffe5f3.entry.js.map +1 -0
  339. package/dist/wcs/{p-dfddec76.entry.js → p-17442a2f.entry.js} +2 -2
  340. package/dist/wcs/p-1d49a02e.entry.js +2 -0
  341. package/dist/wcs/p-1d49a02e.entry.js.map +1 -0
  342. package/dist/wcs/{p-d6c3e615.js → p-24611014.js} +2 -2
  343. package/dist/wcs/p-250b3794.entry.js +2 -0
  344. package/dist/wcs/{p-91b3e4b5.entry.js.map → p-250b3794.entry.js.map} +1 -1
  345. package/dist/wcs/{p-292ca644.entry.js → p-2d62b3dd.entry.js} +2 -2
  346. package/dist/wcs/{p-d6b3f742.entry.js → p-33a5594d.entry.js} +2 -2
  347. package/dist/wcs/p-33a570ee.js +2 -0
  348. package/dist/wcs/p-33a570ee.js.map +1 -0
  349. package/dist/wcs/{p-e86c6cbb.entry.js → p-34079054.entry.js} +2 -2
  350. package/dist/wcs/{p-e86c6cbb.entry.js.map → p-34079054.entry.js.map} +1 -1
  351. package/dist/wcs/{p-257b15b9.entry.js → p-36e83879.entry.js} +2 -2
  352. package/dist/wcs/p-44410e32.entry.js +2 -0
  353. package/dist/wcs/p-44410e32.entry.js.map +1 -0
  354. package/dist/wcs/{p-7269272f.entry.js → p-46184d47.entry.js} +2 -2
  355. package/dist/wcs/p-46975b1e.entry.js +2 -0
  356. package/dist/wcs/p-46975b1e.entry.js.map +1 -0
  357. package/dist/wcs/{p-4a9f8e94.entry.js → p-46d56c4e.entry.js} +3 -3
  358. package/dist/wcs/{p-fc3f5b53.entry.js → p-4820154c.entry.js} +2 -2
  359. package/dist/wcs/p-49b0de03.entry.js +2 -0
  360. package/dist/wcs/p-49b0de03.entry.js.map +1 -0
  361. package/dist/wcs/{p-ff9967eb.entry.js → p-4af68f13.entry.js} +2 -2
  362. package/dist/wcs/{p-1f8c73eb.entry.js → p-5f0ab1dc.entry.js} +2 -2
  363. package/dist/wcs/p-5f0ab1dc.entry.js.map +1 -0
  364. package/dist/wcs/p-5f3e6b0c.entry.js +2 -0
  365. package/dist/wcs/p-5f3e6b0c.entry.js.map +1 -0
  366. package/dist/wcs/{p-50dce764.entry.js → p-61b934a7.entry.js} +2 -2
  367. package/dist/wcs/p-64855188.js +2 -0
  368. package/dist/wcs/p-64855188.js.map +1 -0
  369. package/dist/wcs/p-680b107c.entry.js +2 -0
  370. package/dist/wcs/p-68d654da.js +2 -0
  371. package/dist/wcs/p-68d654da.js.map +1 -0
  372. package/dist/wcs/p-69d1223c.js +3 -0
  373. package/dist/wcs/p-69d1223c.js.map +1 -0
  374. package/dist/wcs/p-6f538b67.entry.js +2 -0
  375. package/dist/wcs/p-6f538b67.entry.js.map +1 -0
  376. package/dist/wcs/p-7c145ed0.entry.js +2 -0
  377. package/dist/wcs/p-7c145ed0.entry.js.map +1 -0
  378. package/dist/wcs/p-8724a296.entry.js +2 -0
  379. package/dist/wcs/p-8724a296.entry.js.map +1 -0
  380. package/dist/wcs/{p-d084dd61.entry.js → p-88b1cdfe.entry.js} +2 -2
  381. package/dist/wcs/{p-c7494651.entry.js → p-8ff7e463.entry.js} +2 -2
  382. package/dist/wcs/p-90a7fd68.entry.js +2 -0
  383. package/dist/wcs/p-90a7fd68.entry.js.map +1 -0
  384. package/dist/wcs/{p-cfcacc44.entry.js → p-914aa964.entry.js} +2 -2
  385. package/dist/wcs/p-93fcef08.entry.js +2 -0
  386. package/dist/wcs/p-93fcef08.entry.js.map +1 -0
  387. package/dist/wcs/{p-429bd9fb.entry.js → p-9b1c73b3.entry.js} +2 -2
  388. package/dist/wcs/p-9cc48d75.js +2 -0
  389. package/dist/wcs/p-9cc48d75.js.map +1 -0
  390. package/dist/wcs/p-a3518f66.entry.js +2 -0
  391. package/dist/wcs/p-a361d9f1.entry.js +2 -0
  392. package/dist/wcs/{p-31a8d23f.entry.js → p-a85208ca.entry.js} +2 -2
  393. package/dist/wcs/{p-d3f1cafe.entry.js → p-b91323fc.entry.js} +2 -2
  394. package/dist/wcs/{p-47d8ece5.entry.js → p-bd4029f8.entry.js} +2 -2
  395. package/dist/wcs/{p-e348058b.entry.js → p-bed4e3ce.entry.js} +2 -2
  396. package/dist/wcs/{p-f489793d.entry.js → p-c261353f.entry.js} +2 -2
  397. package/dist/wcs/p-c261353f.entry.js.map +1 -0
  398. package/dist/wcs/p-c3227f01.entry.js +2 -0
  399. package/dist/wcs/p-c3227f01.entry.js.map +1 -0
  400. package/dist/wcs/{p-810aff71.entry.js → p-c38adf4b.entry.js} +2 -2
  401. package/dist/wcs/{p-2185bf8b.entry.js → p-c6a8c6f9.entry.js} +2 -2
  402. package/dist/wcs/p-c9478849.entry.js +2 -0
  403. package/dist/wcs/p-c9478849.entry.js.map +1 -0
  404. package/dist/wcs/p-ce3ef5d0.entry.js +2 -0
  405. package/dist/wcs/p-ce3ef5d0.entry.js.map +1 -0
  406. package/dist/wcs/{p-54e29233.entry.js → p-ce40b012.entry.js} +2 -2
  407. package/dist/wcs/{p-54e29233.entry.js.map → p-ce40b012.entry.js.map} +1 -1
  408. package/dist/wcs/p-d6c482fc.entry.js +2 -0
  409. package/dist/wcs/p-d6c482fc.entry.js.map +1 -0
  410. package/dist/wcs/{p-1e43122f.entry.js → p-d84cee70.entry.js} +2 -2
  411. package/dist/wcs/p-d895b92c.entry.js +16 -0
  412. package/dist/wcs/p-d895b92c.entry.js.map +1 -0
  413. package/dist/wcs/p-dca2f42c.entry.js +2 -0
  414. package/dist/wcs/{p-7519a270.entry.js → p-e0d5908a.entry.js} +2 -2
  415. package/dist/wcs/{p-a5cd4c07.entry.js → p-e487ff2c.entry.js} +2 -2
  416. package/dist/wcs/p-e487ff2c.entry.js.map +1 -0
  417. package/dist/wcs/{p-3b1fc676.entry.js → p-e52c11e4.entry.js} +2 -2
  418. package/dist/wcs/{p-0ede0c37.entry.js → p-e7661047.entry.js} +2 -2
  419. package/dist/wcs/p-ea6e33ee.entry.js +2 -0
  420. package/dist/wcs/{p-cc03627c.entry.js → p-f7ce4e0d.entry.js} +2 -2
  421. package/dist/wcs/{p-b6160b7c.entry.js → p-faf04401.entry.js} +2 -2
  422. package/dist/wcs/p-fc1767ae.entry.js +2 -0
  423. package/dist/wcs/p-fc1767ae.entry.js.map +1 -0
  424. package/dist/wcs/p-feebc469.entry.js +2 -0
  425. package/dist/wcs/p-feebc469.entry.js.map +1 -0
  426. package/dist/wcs/wcs.css +1 -1
  427. package/dist/wcs/wcs.esm.js +1 -1
  428. package/dist/wcs/wcs.esm.js.map +1 -1
  429. package/package.json +1 -1
  430. package/dist/cjs/accessibility-e99b032d.js.map +0 -1
  431. package/dist/cjs/grid-pagination-4b55c908.js +0 -101
  432. package/dist/cjs/grid-pagination-4b55c908.js.map +0 -1
  433. package/dist/cjs/helpers-4a14051a.js.map +0 -1
  434. package/dist/cjs/index-ca67a6dc.js.map +0 -1
  435. package/dist/cjs/isEqual-9ea7ee49.js.map +0 -1
  436. package/dist/cjs/wcs-button.cjs.entry.js.map +0 -1
  437. package/dist/cjs/wcs-spinner.cjs.entry.js +0 -22
  438. package/dist/cjs/wcs-spinner.cjs.entry.js.map +0 -1
  439. package/dist/esm/accessibility-ffa12842.js.map +0 -1
  440. package/dist/esm/grid-pagination-41354861.js +0 -99
  441. package/dist/esm/grid-pagination-41354861.js.map +0 -1
  442. package/dist/esm/helpers-1d55b67f.js.map +0 -1
  443. package/dist/esm/index-dc4d96d4.js.map +0 -1
  444. package/dist/esm/isEqual-20881bca.js.map +0 -1
  445. package/dist/esm/wcs-button.entry.js.map +0 -1
  446. package/dist/esm/wcs-spinner.entry.js +0 -18
  447. package/dist/esm/wcs-spinner.entry.js.map +0 -1
  448. package/dist/wcs/p-02b95dbf.entry.js +0 -2
  449. package/dist/wcs/p-02b95dbf.entry.js.map +0 -1
  450. package/dist/wcs/p-0f8db386.js +0 -2
  451. package/dist/wcs/p-0f8db386.js.map +0 -1
  452. package/dist/wcs/p-17630eea.entry.js +0 -2
  453. package/dist/wcs/p-1f8c73eb.entry.js.map +0 -1
  454. package/dist/wcs/p-269d244c.entry.js +0 -2
  455. package/dist/wcs/p-269d244c.entry.js.map +0 -1
  456. package/dist/wcs/p-2f63d6c5.entry.js +0 -2
  457. package/dist/wcs/p-2f63d6c5.entry.js.map +0 -1
  458. package/dist/wcs/p-39821dd2.entry.js +0 -2
  459. package/dist/wcs/p-39821dd2.entry.js.map +0 -1
  460. package/dist/wcs/p-3dc6b507.js +0 -2
  461. package/dist/wcs/p-3dc6b507.js.map +0 -1
  462. package/dist/wcs/p-463667c9.entry.js +0 -2
  463. package/dist/wcs/p-475ac7c5.js +0 -2
  464. package/dist/wcs/p-475ac7c5.js.map +0 -1
  465. package/dist/wcs/p-4ffe4539.entry.js +0 -2
  466. package/dist/wcs/p-4ffe4539.entry.js.map +0 -1
  467. package/dist/wcs/p-57560d7d.entry.js +0 -2
  468. package/dist/wcs/p-57560d7d.entry.js.map +0 -1
  469. package/dist/wcs/p-61cab06f.entry.js +0 -2
  470. package/dist/wcs/p-61cab06f.entry.js.map +0 -1
  471. package/dist/wcs/p-627bbb6a.entry.js +0 -2
  472. package/dist/wcs/p-627bbb6a.entry.js.map +0 -1
  473. package/dist/wcs/p-6de70331.entry.js +0 -2
  474. package/dist/wcs/p-6de70331.entry.js.map +0 -1
  475. package/dist/wcs/p-747a5962.entry.js +0 -2
  476. package/dist/wcs/p-8181f8cd.js +0 -2
  477. package/dist/wcs/p-8181f8cd.js.map +0 -1
  478. package/dist/wcs/p-8c4ed883.entry.js +0 -2
  479. package/dist/wcs/p-8c4ed883.entry.js.map +0 -1
  480. package/dist/wcs/p-8d57835f.entry.js +0 -2
  481. package/dist/wcs/p-8fed8b1c.entry.js +0 -2
  482. package/dist/wcs/p-8fed8b1c.entry.js.map +0 -1
  483. package/dist/wcs/p-91b3e4b5.entry.js +0 -2
  484. package/dist/wcs/p-9910fedd.entry.js +0 -2
  485. package/dist/wcs/p-9910fedd.entry.js.map +0 -1
  486. package/dist/wcs/p-9d798de4.entry.js +0 -2
  487. package/dist/wcs/p-9d798de4.entry.js.map +0 -1
  488. package/dist/wcs/p-9ecdeaf9.entry.js +0 -2
  489. package/dist/wcs/p-9ecdeaf9.entry.js.map +0 -1
  490. package/dist/wcs/p-a2df3a49.js +0 -3
  491. package/dist/wcs/p-a2df3a49.js.map +0 -1
  492. package/dist/wcs/p-a5cd4c07.entry.js.map +0 -1
  493. package/dist/wcs/p-ac106663.entry.js +0 -2
  494. package/dist/wcs/p-ac106663.entry.js.map +0 -1
  495. package/dist/wcs/p-cb90bc3a.entry.js +0 -2
  496. package/dist/wcs/p-cb90bc3a.entry.js.map +0 -1
  497. package/dist/wcs/p-cdd172b4.entry.js +0 -2
  498. package/dist/wcs/p-d5a0e271.entry.js +0 -2
  499. package/dist/wcs/p-d5a0e271.entry.js.map +0 -1
  500. package/dist/wcs/p-ec84d6fd.entry.js +0 -16
  501. package/dist/wcs/p-ec84d6fd.entry.js.map +0 -1
  502. package/dist/wcs/p-ed3132be.entry.js +0 -2
  503. package/dist/wcs/p-ed3132be.entry.js.map +0 -1
  504. package/dist/wcs/p-f06f48f3.entry.js.map +0 -1
  505. package/dist/wcs/p-f20b9024.entry.js +0 -2
  506. package/dist/wcs/p-f20b9024.entry.js.map +0 -1
  507. package/dist/wcs/p-f489793d.entry.js.map +0 -1
  508. /package/dist/wcs/{p-7a3f70da.entry.js.map → p-00f6a79a.entry.js.map} +0 -0
  509. /package/dist/wcs/{p-ee453b6e.entry.js.map → p-016e4dd9.entry.js.map} +0 -0
  510. /package/dist/wcs/{p-30d8f9c3.entry.js.map → p-11ab4ffc.entry.js.map} +0 -0
  511. /package/dist/wcs/{p-dfddec76.entry.js.map → p-17442a2f.entry.js.map} +0 -0
  512. /package/dist/wcs/{p-d6c3e615.js.map → p-24611014.js.map} +0 -0
  513. /package/dist/wcs/{p-292ca644.entry.js.map → p-2d62b3dd.entry.js.map} +0 -0
  514. /package/dist/wcs/{p-d6b3f742.entry.js.map → p-33a5594d.entry.js.map} +0 -0
  515. /package/dist/wcs/{p-257b15b9.entry.js.map → p-36e83879.entry.js.map} +0 -0
  516. /package/dist/wcs/{p-7269272f.entry.js.map → p-46184d47.entry.js.map} +0 -0
  517. /package/dist/wcs/{p-4a9f8e94.entry.js.map → p-46d56c4e.entry.js.map} +0 -0
  518. /package/dist/wcs/{p-fc3f5b53.entry.js.map → p-4820154c.entry.js.map} +0 -0
  519. /package/dist/wcs/{p-ff9967eb.entry.js.map → p-4af68f13.entry.js.map} +0 -0
  520. /package/dist/wcs/{p-50dce764.entry.js.map → p-61b934a7.entry.js.map} +0 -0
  521. /package/dist/wcs/{p-17630eea.entry.js.map → p-680b107c.entry.js.map} +0 -0
  522. /package/dist/wcs/{p-d084dd61.entry.js.map → p-88b1cdfe.entry.js.map} +0 -0
  523. /package/dist/wcs/{p-c7494651.entry.js.map → p-8ff7e463.entry.js.map} +0 -0
  524. /package/dist/wcs/{p-cfcacc44.entry.js.map → p-914aa964.entry.js.map} +0 -0
  525. /package/dist/wcs/{p-429bd9fb.entry.js.map → p-9b1c73b3.entry.js.map} +0 -0
  526. /package/dist/wcs/{p-8d57835f.entry.js.map → p-a3518f66.entry.js.map} +0 -0
  527. /package/dist/wcs/{p-463667c9.entry.js.map → p-a361d9f1.entry.js.map} +0 -0
  528. /package/dist/wcs/{p-31a8d23f.entry.js.map → p-a85208ca.entry.js.map} +0 -0
  529. /package/dist/wcs/{p-d3f1cafe.entry.js.map → p-b91323fc.entry.js.map} +0 -0
  530. /package/dist/wcs/{p-47d8ece5.entry.js.map → p-bd4029f8.entry.js.map} +0 -0
  531. /package/dist/wcs/{p-e348058b.entry.js.map → p-bed4e3ce.entry.js.map} +0 -0
  532. /package/dist/wcs/{p-810aff71.entry.js.map → p-c38adf4b.entry.js.map} +0 -0
  533. /package/dist/wcs/{p-2185bf8b.entry.js.map → p-c6a8c6f9.entry.js.map} +0 -0
  534. /package/dist/wcs/{p-1e43122f.entry.js.map → p-d84cee70.entry.js.map} +0 -0
  535. /package/dist/wcs/{p-747a5962.entry.js.map → p-dca2f42c.entry.js.map} +0 -0
  536. /package/dist/wcs/{p-7519a270.entry.js.map → p-e0d5908a.entry.js.map} +0 -0
  537. /package/dist/wcs/{p-3b1fc676.entry.js.map → p-e52c11e4.entry.js.map} +0 -0
  538. /package/dist/wcs/{p-0ede0c37.entry.js.map → p-e7661047.entry.js.map} +0 -0
  539. /package/dist/wcs/{p-cdd172b4.entry.js.map → p-ea6e33ee.entry.js.map} +0 -0
  540. /package/dist/wcs/{p-cc03627c.entry.js.map → p-f7ce4e0d.entry.js.map} +0 -0
  541. /package/dist/wcs/{p-b6160b7c.entry.js.map → p-faf04401.entry.js.map} +0 -0
@@ -0,0 +1,306 @@
1
+ import { keyboardShortcutFromKeyboardEvent } from "../../utils/keyboard-event";
2
+ /**
3
+ * We follow this https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/
4
+ * @param event
5
+ * @param currentState
6
+ * @param type
7
+ */
8
+ export function getActionForKeyboardEvent(event, currentState, type) {
9
+ const keyboardShortcut = keyboardShortcutFromKeyboardEvent(event);
10
+ if (keyboardShortcut === 'UNKNOWN') {
11
+ return [];
12
+ }
13
+ switch (currentState) {
14
+ case "closed":
15
+ // We handle every available shortcut for the closed state
16
+ switch (keyboardShortcut) {
17
+ case "MAJ+TAB":
18
+ switch (type) {
19
+ case "unique":
20
+ case "multiple":
21
+ return [];
22
+ case "autocomplete_unique":
23
+ case "autocomplete_multiple":
24
+ // We need to move focus to previous focusable element in order to ignore the wcs-select component
25
+ return [{ kind: 'MoveFocus', target: 'previous' }];
26
+ default:
27
+ break;
28
+ }
29
+ break;
30
+ case 'DOWN_ARROW':
31
+ switch (type) {
32
+ case "unique":
33
+ return [{ kind: 'SelectOption', target: 'next' }];
34
+ case "autocomplete_multiple":
35
+ case "autocomplete_unique":
36
+ return [{ kind: 'OpenSelect' }, { kind: 'HighlightOption', target: 'first' }];
37
+ case "multiple":
38
+ return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'first' }];
39
+ default:
40
+ break;
41
+ }
42
+ break;
43
+ case 'RIGHT_ARROW':
44
+ switch (type) {
45
+ case "autocomplete_unique":
46
+ case "autocomplete_multiple":
47
+ // Do nothing, we navigate between characters inside input field
48
+ return [];
49
+ case "unique":
50
+ return [{ kind: 'SelectOption', target: 'next' }];
51
+ case "multiple":
52
+ return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'first' }];
53
+ default:
54
+ break;
55
+ }
56
+ break;
57
+ case 'UP_ARROW':
58
+ switch (type) {
59
+ case "autocomplete_unique":
60
+ case "autocomplete_multiple":
61
+ return [{ kind: 'OpenSelect' }, { kind: 'HighlightOption', target: 'last' }];
62
+ case "multiple":
63
+ break;
64
+ case "unique":
65
+ return [{ kind: 'SelectOption', target: 'previous' }];
66
+ default:
67
+ break;
68
+ }
69
+ break;
70
+ case 'LEFT_ARROW':
71
+ switch (type) {
72
+ case "autocomplete_unique":
73
+ case "autocomplete_multiple":
74
+ // Do nothing, we navigate between characters inside input field
75
+ return [];
76
+ case "unique":
77
+ return [{ kind: 'SelectOption', target: 'previous' }];
78
+ case "multiple":
79
+ break;
80
+ default:
81
+ break;
82
+ }
83
+ break;
84
+ case 'ALT+DOWN_ARROW':
85
+ case 'ALT+UP_ARROW':
86
+ switch (type) {
87
+ case "unique":
88
+ return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'first' }];
89
+ case "autocomplete_unique":
90
+ case "autocomplete_multiple":
91
+ case "multiple":
92
+ return [{ kind: 'OpenSelect' }];
93
+ default:
94
+ break;
95
+ }
96
+ break;
97
+ case 'SPACE':
98
+ case 'ENTER':
99
+ switch (type) {
100
+ case "autocomplete_unique":
101
+ case "autocomplete_multiple":
102
+ return [];
103
+ case "unique":
104
+ case "multiple":
105
+ return [{ kind: 'OpenSelect' }, { kind: 'FocusOption', target: 'lastFocused' }];
106
+ default:
107
+ break;
108
+ }
109
+ break;
110
+ case 'ESCAPE':
111
+ switch (type) {
112
+ case "autocomplete_unique":
113
+ case "autocomplete_multiple":
114
+ return [{ kind: 'ClearAutocompleteInput' }];
115
+ case 'unique':
116
+ case 'multiple':
117
+ return [];
118
+ default:
119
+ break;
120
+ }
121
+ break;
122
+ case 'PAGE_UP':
123
+ switch (type) {
124
+ case "autocomplete_unique":
125
+ return [];
126
+ case "autocomplete_multiple":
127
+ return [];
128
+ case "unique":
129
+ return [{ kind: 'SelectOption', target: 'first' }];
130
+ case "multiple":
131
+ return [];
132
+ default:
133
+ break;
134
+ }
135
+ break;
136
+ case 'PAGE_DOWN':
137
+ switch (type) {
138
+ case "autocomplete_unique":
139
+ return [];
140
+ case "autocomplete_multiple":
141
+ return [];
142
+ case "unique":
143
+ return [{ kind: 'SelectOption', target: 'last' }];
144
+ case "multiple":
145
+ return [];
146
+ default:
147
+ break;
148
+ }
149
+ break;
150
+ default:
151
+ break;
152
+ }
153
+ break;
154
+ case 'opened':
155
+ // We handle every available shortcut for the opened state
156
+ switch (keyboardShortcut) {
157
+ case 'ESCAPE':
158
+ switch (type) {
159
+ case 'unique':
160
+ case 'multiple':
161
+ case 'autocomplete_unique':
162
+ case 'autocomplete_multiple':
163
+ return [{ kind: 'CloseSelect', shouldBlur: false }];
164
+ default:
165
+ break;
166
+ }
167
+ break;
168
+ case 'ALT+UP_ARROW':
169
+ switch (type) {
170
+ case 'unique':
171
+ case 'multiple':
172
+ return [{ kind: 'CloseSelect', shouldBlur: false }];
173
+ case 'autocomplete_unique':
174
+ case 'autocomplete_multiple':
175
+ // We must keep select autocomplete opened
176
+ return [];
177
+ default:
178
+ break;
179
+ }
180
+ break;
181
+ case 'TAB':
182
+ switch (type) {
183
+ case "autocomplete_unique":
184
+ return [{ kind: 'SelectOption', target: 'lastHighlighted' }, { kind: 'CloseSelect', shouldBlur: false }];
185
+ case "autocomplete_multiple":
186
+ return [{ kind: 'CloseSelect', shouldBlur: false }];
187
+ case "unique":
188
+ case "multiple":
189
+ return [{ kind: 'CloseSelect', shouldBlur: true }];
190
+ default:
191
+ break;
192
+ }
193
+ break;
194
+ case 'MAJ+TAB':
195
+ switch (type) {
196
+ case "autocomplete_unique":
197
+ // We don't blur the select when we close it because we move the focus manually just after closing it.
198
+ return [{ kind: 'SelectOption', target: 'lastHighlighted' }, { kind: 'CloseSelect', shouldBlur: false }, { kind: 'MoveFocus', target: 'previous' }];
199
+ case "autocomplete_multiple":
200
+ // We don't blur the select when we close it because we move the focus manually just after closing it.
201
+ return [{ kind: 'CloseSelect', shouldBlur: false }, { kind: 'MoveFocus', target: 'previous' }];
202
+ case "unique":
203
+ case "multiple":
204
+ return [{ kind: 'CloseSelect', shouldBlur: true }];
205
+ default:
206
+ break;
207
+ }
208
+ break;
209
+ case 'UP_ARROW':
210
+ switch (type) {
211
+ case "autocomplete_unique":
212
+ case "autocomplete_multiple":
213
+ return [{ kind: 'HighlightOption', target: 'previous' }];
214
+ case "unique":
215
+ case "multiple":
216
+ return [{ kind: 'FocusOption', target: 'previous' }];
217
+ default:
218
+ break;
219
+ }
220
+ break;
221
+ case 'LEFT_ARROW':
222
+ switch (type) {
223
+ case "autocomplete_unique":
224
+ case "autocomplete_multiple":
225
+ // We do nothing (navigate between characters in input field)
226
+ return [];
227
+ case "unique":
228
+ case "multiple":
229
+ return [{ kind: 'FocusOption', target: 'previous' }];
230
+ default:
231
+ break;
232
+ }
233
+ break;
234
+ case 'DOWN_ARROW':
235
+ switch (type) {
236
+ case "autocomplete_unique":
237
+ case "autocomplete_multiple":
238
+ return [{ kind: 'HighlightOption', target: 'next' }];
239
+ case "unique":
240
+ case "multiple":
241
+ return [{ kind: 'FocusOption', target: 'next' }];
242
+ default:
243
+ break;
244
+ }
245
+ break;
246
+ case 'RIGHT_ARROW':
247
+ switch (type) {
248
+ case "autocomplete_unique":
249
+ case "autocomplete_multiple":
250
+ // We do nothing (navigate between characters in input field)
251
+ return [];
252
+ case "unique":
253
+ case "multiple":
254
+ return [{ kind: 'FocusOption', target: 'next' }];
255
+ default:
256
+ break;
257
+ }
258
+ break;
259
+ case "PAGE_UP":
260
+ switch (type) {
261
+ case "autocomplete_unique":
262
+ case "autocomplete_multiple":
263
+ return [{ kind: 'HighlightOption', target: 'first' }];
264
+ case "unique":
265
+ case "multiple":
266
+ return [{ kind: 'FocusOption', target: 'first' }];
267
+ default:
268
+ break;
269
+ }
270
+ break;
271
+ case "PAGE_DOWN":
272
+ switch (type) {
273
+ case "autocomplete_unique":
274
+ case "autocomplete_multiple":
275
+ return [{ kind: 'HighlightOption', target: 'last' }];
276
+ case "unique":
277
+ case "multiple":
278
+ return [{ kind: 'FocusOption', target: 'last' }];
279
+ default:
280
+ break;
281
+ }
282
+ break;
283
+ case "ENTER":
284
+ switch (type) {
285
+ case "autocomplete_unique":
286
+ return [{ kind: 'SelectOption', target: 'lastHighlighted' }];
287
+ case "autocomplete_multiple":
288
+ return [{ kind: 'SelectOption', target: 'lastHighlighted' }];
289
+ case "unique":
290
+ case "multiple":
291
+ // Do nothing, let's select option emit an event
292
+ break;
293
+ default:
294
+ break;
295
+ }
296
+ break;
297
+ default:
298
+ break;
299
+ }
300
+ break;
301
+ default:
302
+ throw Error('Unknown error');
303
+ }
304
+ return [];
305
+ }
306
+ //# sourceMappingURL=select-keyboard-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select-keyboard-event.js","sourceRoot":"","sources":["../../../src/components/select/select-keyboard-event.ts"],"names":[],"mappings":"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","sourcesContent":["import { keyboardShortcutFromKeyboardEvent } from \"../../utils/keyboard-event\";\n\n// Possibles Shortcut\n// ALT+DOWN_ARROW : open the listbox\n// ALT+UP_ARROW : open the listbox\n\n// MAJ+TAB : close the listbox, blur\n\n// UP_ARROW : focus / highlight the previous option\n// DOWN_ARROW : focus / highlight the next option\n// LEFT_ARROW : (unique) focus / highlight the previous option\n// RIGHT_ARROW : (unique) focus / highlight the previous option\n\n// HOME : select first option\n// END : select last option\n\n// PAGE_UP : select first option\n// PAGE_DOWN : select last option\n\n// ENTER : select currently focused / highlighted option\n// SPACE : select currently focused / highlighted option\n\n// TAB : close the listbox, blur\n// ESCAPE : close the listbox, if autocomplete mode also clears the textbox\n\nexport type KeyboardEventAssociatedAction = OpenSelect\n | CloseSelect\n | ClearAutocompleteInput\n | ClearHighlight\n | HighlightOption\n | FocusOption\n | MoveFocus\n | SelectOption;\n\ntype OpenSelect = {kind: 'OpenSelect'};\ntype CloseSelect = {kind: 'CloseSelect', shouldBlur: boolean};\n\ntype ClearAutocompleteInput = {kind: 'ClearAutocompleteInput'};\n\ntype ClearHighlight = {kind: 'ClearHighlight'};\ntype HighlightOption = {kind: 'HighlightOption', target: 'next' | 'previous' | 'first' | 'last'};\n\ntype SelectOption = {kind: 'SelectOption', target: 'next' | 'previous' | 'first' | 'last' | 'lastHighlighted'};\n\ntype MoveFocus = {kind: 'MoveFocus', target: 'previous'};\n\ntype FocusOption = {kind: 'FocusOption', target: 'next' | 'previous' | 'first' | 'last' | 'lastFocused'};\n\n/**\n * We follow this https://www.w3.org/WAI/ARIA/apg/patterns/combobox/examples/combobox-select-only/\n * @param event\n * @param currentState\n * @param type\n */\nexport function getActionForKeyboardEvent(event: KeyboardEvent, currentState: 'closed' | 'opened', type: 'autocomplete_unique' | 'autocomplete_multiple' | 'unique' | 'multiple'): KeyboardEventAssociatedAction[] {\n const keyboardShortcut = keyboardShortcutFromKeyboardEvent(event);\n\n if(keyboardShortcut === 'UNKNOWN') {\n return [];\n }\n\n switch (currentState) {\n case \"closed\":\n // We handle every available shortcut for the closed state\n switch (keyboardShortcut) {\n case \"MAJ+TAB\":\n switch (type) {\n case \"unique\":\n case \"multiple\":\n return [];\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // We need to move focus to previous focusable element in order to ignore the wcs-select component\n return [{kind: 'MoveFocus', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'DOWN_ARROW':\n switch (type) {\n case \"unique\":\n return [{kind: 'SelectOption', target: 'next'}];\n case \"autocomplete_multiple\":\n case \"autocomplete_unique\":\n return [{kind: 'OpenSelect'}, {kind: 'HighlightOption', target: 'first'}];\n case \"multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'first'}];\n default:\n break;\n }\n break;\n case 'RIGHT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // Do nothing, we navigate between characters inside input field\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'next'}];\n case \"multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'first'}];\n default:\n break;\n }\n break;\n case 'UP_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'HighlightOption', target: 'last'}];\n case \"multiple\":\n break;\n case \"unique\":\n return [{kind: 'SelectOption', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'LEFT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // Do nothing, we navigate between characters inside input field\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'previous'}];\n case \"multiple\":\n break;\n default:\n break;\n }\n break;\n case 'ALT+DOWN_ARROW':\n case 'ALT+UP_ARROW':\n switch (type) {\n case \"unique\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'first'}]\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n case \"multiple\":\n return [{kind: 'OpenSelect'}];\n default:\n break;\n }\n break;\n case 'SPACE':\n case 'ENTER':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'OpenSelect'}, {kind: 'FocusOption', target: 'lastFocused'}];\n default:\n break;\n }\n break;\n case 'ESCAPE':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'ClearAutocompleteInput'}];\n case 'unique':\n case 'multiple':\n return [];\n default:\n break;\n }\n break;\n case 'PAGE_UP':\n switch (type) {\n case \"autocomplete_unique\":\n return [];\n case \"autocomplete_multiple\":\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'first'}];\n case \"multiple\":\n return [];\n default:\n break;\n }\n break;\n case 'PAGE_DOWN':\n switch (type) {\n case \"autocomplete_unique\":\n return [];\n case \"autocomplete_multiple\":\n return [];\n case \"unique\":\n return [{kind: 'SelectOption', target: 'last'}];\n case \"multiple\":\n return [];\n default:\n break;\n }\n break;\n default:\n break;\n }\n break;\n case 'opened':\n // We handle every available shortcut for the opened state\n switch (keyboardShortcut) {\n case 'ESCAPE':\n switch (type) {\n case 'unique':\n case 'multiple':\n case 'autocomplete_unique':\n case 'autocomplete_multiple':\n return [{kind: 'CloseSelect', shouldBlur: false}];\n default:\n break;\n }\n break;\n case 'ALT+UP_ARROW':\n switch (type) {\n case 'unique':\n case 'multiple':\n return [{kind: 'CloseSelect', shouldBlur: false}];\n case 'autocomplete_unique':\n case 'autocomplete_multiple':\n // We must keep select autocomplete opened\n return [];\n default:\n break;\n }\n break;\n case 'TAB':\n switch (type) {\n case \"autocomplete_unique\":\n return [{kind: 'SelectOption', target: 'lastHighlighted'}, {kind: 'CloseSelect', shouldBlur: false}];\n case \"autocomplete_multiple\":\n return [{kind: 'CloseSelect', shouldBlur: false}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'CloseSelect', shouldBlur: true}];\n default:\n break;\n }\n break;\n case 'MAJ+TAB':\n switch (type) {\n case \"autocomplete_unique\":\n // We don't blur the select when we close it because we move the focus manually just after closing it.\n return [{kind: 'SelectOption', target: 'lastHighlighted'}, {kind: 'CloseSelect', shouldBlur: false}, {kind: 'MoveFocus', target: 'previous'}];\n case \"autocomplete_multiple\":\n // We don't blur the select when we close it because we move the focus manually just after closing it.\n return [{kind: 'CloseSelect', shouldBlur: false}, {kind: 'MoveFocus', target: 'previous'}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'CloseSelect', shouldBlur: true}];\n default:\n break;\n }\n break;\n case 'UP_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'previous'}]\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'LEFT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // We do nothing (navigate between characters in input field)\n return [];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'previous'}];\n default:\n break;\n }\n break;\n case 'DOWN_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'next'}]\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'next'}];\n default:\n break;\n }\n break;\n case 'RIGHT_ARROW':\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n // We do nothing (navigate between characters in input field)\n return [];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'next'}];\n default:\n break;\n }\n break;\n case \"PAGE_UP\":\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'first'}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'first'}];\n default:\n break;\n }\n break;\n case \"PAGE_DOWN\":\n switch (type) {\n case \"autocomplete_unique\":\n case \"autocomplete_multiple\":\n return [{kind: 'HighlightOption', target: 'last'}];\n case \"unique\":\n case \"multiple\":\n return [{kind: 'FocusOption', target: 'last'}];\n default:\n break;\n }\n break;\n case \"ENTER\":\n switch (type) {\n case \"autocomplete_unique\":\n return [{kind: 'SelectOption', target: 'lastHighlighted'}];\n case \"autocomplete_multiple\":\n return [{kind: 'SelectOption', target: 'lastHighlighted'}];\n case \"unique\":\n case \"multiple\":\n // Do nothing, let's select option emit an event\n break;\n default:\n break;\n }\n break;\n default:\n break;\n }\n break;\n default:\n throw Error('Unknown error');\n }\n return [];\n}\n"]}
@@ -207,13 +207,9 @@
207
207
  display: block;
208
208
  }
209
209
 
210
- :host(:not(.expanded):focus) .wcs-select-control {
211
- border: var(--wcs-primary) solid 1px;
212
- }
213
-
214
210
  :host(:not(.expanded):focus-visible) .wcs-select-control {
215
211
  outline: 2px dashed var(--wcs-primary);
216
- outline-offset: 4px;
212
+ outline-offset: 0;
217
213
  border-radius: var(--wcs-select-border-radius);
218
214
  }
219
215
 
@@ -233,7 +229,7 @@
233
229
  }
234
230
 
235
231
  label {
236
- padding-left: calc(var(--wcs-padding) - var(--wcs-select-border-width));
232
+ padding-left: calc(var(--wcs-padding) / 2 - var(--wcs-select-border-width));
237
233
  padding-right: calc(var(--wcs-padding) - var(--wcs-select-border-width));
238
234
  font-weight: 500;
239
235
  cursor: pointer;
@@ -247,18 +243,34 @@ label {
247
243
  :host([size=m]) {
248
244
  min-height: var(--wcs-size-m);
249
245
  --wcs-select-font-size: 1rem;
246
+ --wcs-internal-select-chip-size: calc(var(--wcs-size-s) - 2px);
250
247
  }
251
248
  :host([size=m]) .wcs-select-control {
252
249
  min-height: var(--wcs-size-m);
253
250
  }
251
+ :host([size=m]):host([autocomplete]) .autocomplete-field {
252
+ height: calc(var(--wcs-size-s) - 2px);
253
+ }
254
+ :host([size=m]):host([autocomplete]) .wcs-select-value-container {
255
+ padding-top: calc((var(--wcs-size-m) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
256
+ padding-bottom: calc((var(--wcs-size-m) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
257
+ }
254
258
 
255
259
  :host([size=l]) {
256
260
  min-height: var(--wcs-size-l);
257
261
  --wcs-select-font-size: 1.0625rem;
262
+ --wcs-internal-select-chip-size: var(--wcs-size-s);
258
263
  }
259
264
  :host([size=l]) .wcs-select-control {
260
265
  min-height: var(--wcs-size-l);
261
266
  }
267
+ :host([size=l]):host([autocomplete]) .autocomplete-field {
268
+ height: var(--wcs-size-s);
269
+ }
270
+ :host([size=l]):host([autocomplete]) .wcs-select-value-container {
271
+ padding-top: calc((var(--wcs-size-l) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
272
+ padding-bottom: calc((var(--wcs-size-l) - var(--wcs-internal-select-chip-size)) / 2 - var(--wcs-select-border-width));
273
+ }
262
274
 
263
275
  :host([chips]) .wcs-select-control {
264
276
  flex-wrap: wrap;
@@ -392,6 +404,8 @@ label {
392
404
  }
393
405
 
394
406
  .wcs-select-chip {
407
+ box-sizing: border-box;
408
+ height: var(--wcs-internal-select-chip-size);
395
409
  line-height: 1.375;
396
410
  color: var(--wcs-contrast);
397
411
  background-color: var(--wcs-base);
@@ -400,6 +414,7 @@ label {
400
414
  align-items: center;
401
415
  padding: calc((var(--wcs-padding) - 8px) / 2) var(--wcs-padding);
402
416
  overflow: initial;
417
+ z-index: 1;
403
418
  }
404
419
 
405
420
  .wcs-select-options {
@@ -413,4 +428,42 @@ label {
413
428
  width: calc(100% - 2 * var(--wcs-select-border-width));
414
429
  background-color: var(--wcs-white);
415
430
  color: var(--wcs-text-medium);
431
+ }
432
+
433
+ :host([autocomplete]) .wcs-select-value-container {
434
+ margin: 0;
435
+ width: 100%;
436
+ padding-left: var(--wcs-padding-m);
437
+ }
438
+ :host([autocomplete]) input {
439
+ border-radius: var(--wcs-border-radius);
440
+ font: unset;
441
+ background-color: transparent;
442
+ outline: none;
443
+ border: none;
444
+ padding: 0 var(--wcs-margin);
445
+ color: var(--wcs-primary);
446
+ font-weight: var(--wcs-font-weight-form-value) !important;
447
+ font-size: var(--wcs-select-font-size);
448
+ line-height: 1.5;
449
+ }
450
+ :host([autocomplete]) input:focus-within {
451
+ outline: 2px dashed var(--wcs-primary);
452
+ outline-offset: 0;
453
+ border-radius: var(--wcs-border-radius);
454
+ }
455
+ :host([autocomplete]) input::placeholder {
456
+ font-style: italic;
457
+ font-weight: 400;
458
+ }
459
+
460
+ .autocomplete-field {
461
+ width: 0;
462
+ min-width: 50px;
463
+ border-radius: var(--wcs-border-radius);
464
+ flex-grow: 1;
465
+ }
466
+
467
+ .noresult-container {
468
+ margin: var(--wcs-margin);
416
469
  }