wcs-core 3.0.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/README.md +7 -0
  2. package/dist/cjs/{grid-pagination-ff65e0ff.js → grid-pagination-4b55c908.js} +1 -2
  3. package/dist/cjs/grid-pagination-4b55c908.js.map +1 -0
  4. package/dist/cjs/{helpers-11518d4f.js → helpers-4a14051a.js} +41 -1
  5. package/dist/cjs/helpers-4a14051a.js.map +1 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/wcs-action-bar.cjs.entry.js.map +1 -1
  8. package/dist/cjs/wcs-app.cjs.entry.js +0 -1
  9. package/dist/cjs/wcs-app.cjs.entry.js.map +1 -1
  10. package/dist/cjs/wcs-button.cjs.entry.js +17 -3
  11. package/dist/cjs/wcs-button.cjs.entry.js.map +1 -1
  12. package/dist/cjs/wcs-checkbox.cjs.entry.js +0 -1
  13. package/dist/cjs/wcs-checkbox.cjs.entry.js.map +1 -1
  14. package/dist/cjs/wcs-com-nav-category.cjs.entry.js +1 -1
  15. package/dist/cjs/wcs-com-nav-category.cjs.entry.js.map +1 -1
  16. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js +1 -1
  17. package/dist/cjs/wcs-com-nav-submenu.cjs.entry.js.map +1 -1
  18. package/dist/cjs/wcs-com-nav.cjs.entry.js.map +1 -1
  19. package/dist/cjs/wcs-counter.cjs.entry.js +130 -0
  20. package/dist/cjs/wcs-counter.cjs.entry.js.map +1 -0
  21. package/dist/cjs/wcs-dropdown-item.cjs.entry.js +1 -1
  22. package/dist/cjs/wcs-dropdown.cjs.entry.js +1 -1
  23. package/dist/cjs/wcs-dropdown.cjs.entry.js.map +1 -1
  24. package/dist/cjs/wcs-editable-field.cjs.entry.js +16 -3
  25. package/dist/cjs/wcs-editable-field.cjs.entry.js.map +1 -1
  26. package/dist/cjs/wcs-error_2.cjs.entry.js +1 -1
  27. package/dist/cjs/wcs-error_2.cjs.entry.js.map +1 -1
  28. package/dist/cjs/wcs-field.cjs.entry.js.map +1 -1
  29. package/dist/cjs/wcs-footer.cjs.entry.js.map +1 -1
  30. package/dist/cjs/wcs-galactic-menu.cjs.entry.js +1 -1
  31. package/dist/cjs/wcs-galactic-menu.cjs.entry.js.map +1 -1
  32. package/dist/cjs/wcs-galactic.cjs.entry.js +0 -1
  33. package/dist/cjs/wcs-galactic.cjs.entry.js.map +1 -1
  34. package/dist/cjs/wcs-grid-column.cjs.entry.js.map +1 -1
  35. package/dist/cjs/wcs-grid-pagination.cjs.entry.js +1 -1
  36. package/dist/cjs/wcs-grid.cjs.entry.js +1 -1
  37. package/dist/cjs/wcs-grid.cjs.entry.js.map +1 -1
  38. package/dist/cjs/wcs-header.cjs.entry.js.map +1 -1
  39. package/dist/cjs/wcs-hint.cjs.entry.js +3 -3
  40. package/dist/cjs/wcs-hint.cjs.entry.js.map +1 -1
  41. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js +0 -1
  42. package/dist/cjs/wcs-horizontal-stepper.cjs.entry.js.map +1 -1
  43. package/dist/cjs/wcs-input.cjs.entry.js +14 -4
  44. package/dist/cjs/wcs-input.cjs.entry.js.map +1 -1
  45. package/dist/cjs/wcs-native-select.cjs.entry.js +102 -0
  46. package/dist/cjs/wcs-native-select.cjs.entry.js.map +1 -0
  47. package/dist/cjs/wcs-nav-item.cjs.entry.js +1 -1
  48. package/dist/cjs/wcs-radio-group.cjs.entry.js.map +1 -1
  49. package/dist/cjs/wcs-radio.cjs.entry.js +3 -3
  50. package/dist/cjs/wcs-radio.cjs.entry.js.map +1 -1
  51. package/dist/cjs/wcs-select_2.cjs.entry.js +229 -72
  52. package/dist/cjs/wcs-select_2.cjs.entry.js.map +1 -1
  53. package/dist/cjs/wcs-switch.cjs.entry.js +0 -1
  54. package/dist/cjs/wcs-switch.cjs.entry.js.map +1 -1
  55. package/dist/cjs/wcs-tab.cjs.entry.js.map +1 -1
  56. package/dist/cjs/wcs-tabs.cjs.entry.js.map +1 -1
  57. package/dist/cjs/wcs-textarea.cjs.entry.js +5 -3
  58. package/dist/cjs/wcs-textarea.cjs.entry.js.map +1 -1
  59. package/dist/cjs/wcs-tooltip.cjs.entry.js.map +1 -1
  60. package/dist/cjs/wcs.cjs.js +1 -1
  61. package/dist/collection/collection-manifest.json +2 -0
  62. package/dist/collection/components/action-bar/action-bar.js.map +1 -1
  63. package/dist/collection/components/app/app.js +0 -1
  64. package/dist/collection/components/app/app.js.map +1 -1
  65. package/dist/collection/components/button/button-interface.js +5 -1
  66. package/dist/collection/components/button/button-interface.js.map +1 -1
  67. package/dist/collection/components/button/button.css +28 -20
  68. package/dist/collection/components/button/button.js +54 -5
  69. package/dist/collection/components/button/button.js.map +1 -1
  70. package/dist/collection/components/checkbox/checkbox.js +0 -1
  71. package/dist/collection/components/checkbox/checkbox.js.map +1 -1
  72. package/dist/collection/components/com-nav/com-nav.js.map +1 -1
  73. package/dist/collection/components/com-nav-category/com-nav-category.js.map +1 -1
  74. package/dist/collection/components/com-nav-submenu/com-nav-submenu.js.map +1 -1
  75. package/dist/collection/components/counter/counter-interface.js +6 -0
  76. package/dist/collection/components/counter/counter-interface.js.map +1 -0
  77. package/dist/collection/components/counter/counter.css +93 -0
  78. package/dist/collection/components/counter/counter.js +293 -0
  79. package/dist/collection/components/counter/counter.js.map +1 -0
  80. package/dist/collection/components/dropdown/dropdown.js +1 -1
  81. package/dist/collection/components/dropdown/dropdown.js.map +1 -1
  82. package/dist/collection/components/editable-field/editable-field-interface.js +5 -1
  83. package/dist/collection/components/editable-field/editable-field-interface.js.map +1 -1
  84. package/dist/collection/components/editable-field/editable-field.css +21 -6
  85. package/dist/collection/components/editable-field/editable-field.js +33 -2
  86. package/dist/collection/components/editable-field/editable-field.js.map +1 -1
  87. package/dist/collection/components/field/field.js +4 -0
  88. package/dist/collection/components/field/field.js.map +1 -1
  89. package/dist/collection/components/footer/footer.js +5 -0
  90. package/dist/collection/components/footer/footer.js.map +1 -1
  91. package/dist/collection/components/form-field/form-field.js +1 -1
  92. package/dist/collection/components/form-field/form-field.js.map +1 -1
  93. package/dist/collection/components/galactic/galactic.js +0 -1
  94. package/dist/collection/components/galactic/galactic.js.map +1 -1
  95. package/dist/collection/components/galactic-menu/galactic-menu.js.map +1 -1
  96. package/dist/collection/components/grid/grid.js.map +1 -1
  97. package/dist/collection/components/grid-column/grid-column.js.map +1 -1
  98. package/dist/collection/components/grid-pagination/grid-pagination.js +0 -1
  99. package/dist/collection/components/grid-pagination/grid-pagination.js.map +1 -1
  100. package/dist/collection/components/header/header.js +5 -0
  101. package/dist/collection/components/header/header.js.map +1 -1
  102. package/dist/collection/components/hint/hint.js +2 -2
  103. package/dist/collection/components/hint/hint.js.map +1 -1
  104. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js +0 -2
  105. package/dist/collection/components/horizontal-stepper/horizontal-stepper.js.map +1 -1
  106. package/dist/collection/components/input/input-interface.js +5 -1
  107. package/dist/collection/components/input/input-interface.js.map +1 -1
  108. package/dist/collection/components/input/input.css +21 -4
  109. package/dist/collection/components/input/input.js +30 -19
  110. package/dist/collection/components/input/input.js.map +1 -1
  111. package/dist/collection/components/native-select/native-select.component.js +153 -0
  112. package/dist/collection/components/native-select/native-select.component.js.map +1 -0
  113. package/dist/collection/components/native-select/native-select.css +78 -0
  114. package/dist/collection/components/radio/radio.component.js +1 -1
  115. package/dist/collection/components/radio/radio.component.js.map +1 -1
  116. package/dist/collection/components/radio/radio.css +15 -4
  117. package/dist/collection/components/radio-group/radio-group.js.map +1 -1
  118. package/dist/collection/components/select/select-interface.js +5 -1
  119. package/dist/collection/components/select/select-interface.js.map +1 -1
  120. package/dist/collection/components/select/select.css +41 -37
  121. package/dist/collection/components/select/select.js +233 -68
  122. package/dist/collection/components/select/select.js.map +1 -1
  123. package/dist/collection/components/select-option/select-option.css +3 -0
  124. package/dist/collection/components/select-option/select-option.js +25 -3
  125. package/dist/collection/components/select-option/select-option.js.map +1 -1
  126. package/dist/collection/components/switch/switch.js +0 -1
  127. package/dist/collection/components/switch/switch.js.map +1 -1
  128. package/dist/collection/components/tab/tab.js.map +1 -1
  129. package/dist/collection/components/tabs/tabs.js.map +1 -1
  130. package/dist/collection/components/textarea/textarea.css +3 -1
  131. package/dist/collection/components/textarea/textarea.js +23 -1
  132. package/dist/collection/components/textarea/textarea.js.map +1 -1
  133. package/dist/collection/components/tooltip/tooltip.js.map +1 -1
  134. package/dist/collection/index.js +3 -0
  135. package/dist/collection/index.js.map +1 -0
  136. package/dist/collection/shared-types.js +2 -0
  137. package/dist/collection/shared-types.js.map +1 -0
  138. package/dist/collection/utils/helpers.js +30 -0
  139. package/dist/collection/utils/helpers.js.map +1 -1
  140. package/dist/esm/{grid-pagination-62f9fbbc.js → grid-pagination-41354861.js} +2 -3
  141. package/dist/esm/grid-pagination-41354861.js.map +1 -0
  142. package/dist/esm/{helpers-e9b73aad.js → helpers-1f7170dd.js} +32 -2
  143. package/dist/esm/helpers-1f7170dd.js.map +1 -0
  144. package/dist/esm/loader.js +1 -1
  145. package/dist/esm/wcs-action-bar.entry.js.map +1 -1
  146. package/dist/esm/wcs-app.entry.js +1 -2
  147. package/dist/esm/wcs-app.entry.js.map +1 -1
  148. package/dist/esm/wcs-button.entry.js +17 -3
  149. package/dist/esm/wcs-button.entry.js.map +1 -1
  150. package/dist/esm/wcs-checkbox.entry.js +1 -2
  151. package/dist/esm/wcs-checkbox.entry.js.map +1 -1
  152. package/dist/esm/wcs-com-nav-category.entry.js +1 -1
  153. package/dist/esm/wcs-com-nav-category.entry.js.map +1 -1
  154. package/dist/esm/wcs-com-nav-submenu.entry.js +1 -1
  155. package/dist/esm/wcs-com-nav-submenu.entry.js.map +1 -1
  156. package/dist/esm/wcs-com-nav.entry.js.map +1 -1
  157. package/dist/esm/wcs-counter.entry.js +126 -0
  158. package/dist/esm/wcs-counter.entry.js.map +1 -0
  159. package/dist/esm/wcs-dropdown-item.entry.js +1 -1
  160. package/dist/esm/wcs-dropdown.entry.js +1 -1
  161. package/dist/esm/wcs-dropdown.entry.js.map +1 -1
  162. package/dist/esm/wcs-editable-field.entry.js +16 -3
  163. package/dist/esm/wcs-editable-field.entry.js.map +1 -1
  164. package/dist/esm/wcs-error_2.entry.js +1 -1
  165. package/dist/esm/wcs-error_2.entry.js.map +1 -1
  166. package/dist/esm/wcs-field.entry.js.map +1 -1
  167. package/dist/esm/wcs-footer.entry.js.map +1 -1
  168. package/dist/esm/wcs-galactic-menu.entry.js +1 -1
  169. package/dist/esm/wcs-galactic-menu.entry.js.map +1 -1
  170. package/dist/esm/wcs-galactic.entry.js +1 -2
  171. package/dist/esm/wcs-galactic.entry.js.map +1 -1
  172. package/dist/esm/wcs-grid-column.entry.js.map +1 -1
  173. package/dist/esm/wcs-grid-pagination.entry.js +1 -1
  174. package/dist/esm/wcs-grid.entry.js +1 -1
  175. package/dist/esm/wcs-grid.entry.js.map +1 -1
  176. package/dist/esm/wcs-header.entry.js.map +1 -1
  177. package/dist/esm/wcs-hint.entry.js +3 -3
  178. package/dist/esm/wcs-hint.entry.js.map +1 -1
  179. package/dist/esm/wcs-horizontal-stepper.entry.js +0 -1
  180. package/dist/esm/wcs-horizontal-stepper.entry.js.map +1 -1
  181. package/dist/esm/wcs-input.entry.js +14 -4
  182. package/dist/esm/wcs-input.entry.js.map +1 -1
  183. package/dist/esm/wcs-native-select.entry.js +98 -0
  184. package/dist/esm/wcs-native-select.entry.js.map +1 -0
  185. package/dist/esm/wcs-nav-item.entry.js +1 -1
  186. package/dist/esm/wcs-radio-group.entry.js.map +1 -1
  187. package/dist/esm/wcs-radio.entry.js +3 -3
  188. package/dist/esm/wcs-radio.entry.js.map +1 -1
  189. package/dist/esm/wcs-select_2.entry.js +229 -72
  190. package/dist/esm/wcs-select_2.entry.js.map +1 -1
  191. package/dist/esm/wcs-switch.entry.js +1 -2
  192. package/dist/esm/wcs-switch.entry.js.map +1 -1
  193. package/dist/esm/wcs-tab.entry.js.map +1 -1
  194. package/dist/esm/wcs-tabs.entry.js.map +1 -1
  195. package/dist/esm/wcs-textarea.entry.js +5 -3
  196. package/dist/esm/wcs-textarea.entry.js.map +1 -1
  197. package/dist/esm/wcs-tooltip.entry.js.map +1 -1
  198. package/dist/esm/wcs.js +1 -1
  199. package/dist/types/components/action-bar/action-bar.d.ts +2 -2
  200. package/dist/types/components/app/app.d.ts +0 -1
  201. package/dist/types/components/button/button-interface.d.ts +5 -1
  202. package/dist/types/components/button/button.d.ts +16 -7
  203. package/dist/types/components/checkbox/checkbox.d.ts +0 -1
  204. package/dist/types/components/com-nav/com-nav.d.ts +4 -4
  205. package/dist/types/components/com-nav-category/com-nav-category.d.ts +2 -2
  206. package/dist/types/components/com-nav-submenu/com-nav-submenu.d.ts +2 -2
  207. package/dist/types/components/counter/counter-interface.d.ts +7 -0
  208. package/dist/types/components/counter/counter.d.ts +67 -0
  209. package/dist/types/components/dropdown/dropdown.d.ts +2 -2
  210. package/dist/types/components/editable-field/editable-field-interface.d.ts +4 -0
  211. package/dist/types/components/editable-field/editable-field.d.ts +10 -13
  212. package/dist/types/components/field/field.d.ts +4 -0
  213. package/dist/types/components/footer/footer.d.ts +5 -0
  214. package/dist/types/components/form-field/form-field.d.ts +4 -4
  215. package/dist/types/components/galactic/galactic.d.ts +0 -1
  216. package/dist/types/components/galactic-menu/galactic-menu.d.ts +2 -2
  217. package/dist/types/components/grid/grid.d.ts +4 -4
  218. package/dist/types/components/grid-column/grid-column.d.ts +1 -1
  219. package/dist/types/components/grid-pagination/grid-pagination.d.ts +0 -1
  220. package/dist/types/components/header/header.d.ts +5 -0
  221. package/dist/types/components/hint/hint.d.ts +4 -1
  222. package/dist/types/components/horizontal-stepper/horizontal-stepper.d.ts +2 -4
  223. package/dist/types/components/input/input-interface.d.ts +4 -0
  224. package/dist/types/components/input/input.d.ts +8 -8
  225. package/dist/types/components/native-select/native-select.component.d.ts +56 -0
  226. package/dist/types/components/radio/radio.component.d.ts +1 -1
  227. package/dist/types/components/radio-group/radio-group.d.ts +1 -1
  228. package/dist/types/components/select/select-interface.d.ts +4 -0
  229. package/dist/types/components/select/select.d.ts +32 -20
  230. package/dist/types/components/select-option/select-option.d.ts +9 -3
  231. package/dist/types/components/switch/switch.d.ts +0 -1
  232. package/dist/types/components/tabs/tabs.d.ts +3 -3
  233. package/dist/types/components/textarea/textarea.d.ts +10 -2
  234. package/dist/types/components/tooltip/tooltip.d.ts +1 -2
  235. package/dist/types/components.d.ts +242 -22
  236. package/dist/types/index.d.ts +2 -0
  237. package/dist/types/shared-types.d.ts +10 -0
  238. package/dist/types/utils/helpers.d.ts +10 -0
  239. package/dist/wcs/p-029eb12a.entry.js +2 -0
  240. package/dist/wcs/p-029eb12a.entry.js.map +1 -0
  241. package/dist/wcs/p-069555a1.entry.js.map +1 -1
  242. package/dist/wcs/p-07b8cd36.entry.js.map +1 -1
  243. package/dist/wcs/p-12ac2547.js +2 -0
  244. package/dist/wcs/p-12ac2547.js.map +1 -0
  245. package/dist/wcs/p-1e43122f.entry.js.map +1 -1
  246. package/dist/wcs/p-26c4c983.entry.js +2 -0
  247. package/dist/wcs/p-26c4c983.entry.js.map +1 -0
  248. package/dist/wcs/p-26e7de5c.entry.js +16 -0
  249. package/dist/wcs/p-26e7de5c.entry.js.map +1 -0
  250. package/dist/wcs/p-31a8d23f.entry.js +2 -0
  251. package/dist/wcs/{p-d11c66d4.entry.js.map → p-31a8d23f.entry.js.map} +1 -1
  252. package/dist/wcs/p-463667c9.entry.js +2 -0
  253. package/dist/wcs/p-475ac7c5.js +2 -0
  254. package/dist/wcs/p-475ac7c5.js.map +1 -0
  255. package/dist/wcs/p-47d8ece5.entry.js.map +1 -1
  256. package/dist/wcs/p-4a9f8e94.entry.js.map +1 -1
  257. package/dist/wcs/p-4b2d8a6d.entry.js +2 -0
  258. package/dist/wcs/p-4b2d8a6d.entry.js.map +1 -0
  259. package/dist/wcs/{p-c7b42bae.entry.js → p-4b4d53e2.entry.js} +2 -2
  260. package/dist/wcs/p-50dce764.entry.js.map +1 -1
  261. package/dist/wcs/{p-8762cf93.entry.js → p-554ca93c.entry.js} +2 -2
  262. package/dist/wcs/p-627bbb6a.entry.js.map +1 -1
  263. package/dist/wcs/p-64dd7356.entry.js.map +1 -1
  264. package/dist/wcs/p-6acbf38a.entry.js +2 -0
  265. package/dist/wcs/{p-7d7472e2.entry.js.map → p-6acbf38a.entry.js.map} +1 -1
  266. package/dist/wcs/{p-6f921d57.entry.js → p-732b2faa.entry.js} +2 -2
  267. package/dist/wcs/p-732b2faa.entry.js.map +1 -0
  268. package/dist/wcs/{p-587fea23.entry.js → p-966a241e.entry.js} +2 -2
  269. package/dist/wcs/p-966a241e.entry.js.map +1 -0
  270. package/dist/wcs/p-9ecdeaf9.entry.js +2 -0
  271. package/dist/wcs/p-9ecdeaf9.entry.js.map +1 -0
  272. package/dist/wcs/p-a24fa4f4.entry.js +2 -0
  273. package/dist/wcs/p-a24fa4f4.entry.js.map +1 -0
  274. package/dist/wcs/p-a5cd4c07.entry.js +2 -0
  275. package/dist/wcs/{p-8bb19e58.entry.js.map → p-a5cd4c07.entry.js.map} +1 -1
  276. package/dist/wcs/p-b229a91c.entry.js +2 -0
  277. package/dist/wcs/p-b229a91c.entry.js.map +1 -0
  278. package/dist/wcs/{p-d998e112.entry.js → p-b6cd196d.entry.js} +2 -2
  279. package/dist/wcs/{p-d998e112.entry.js.map → p-b6cd196d.entry.js.map} +1 -1
  280. package/dist/wcs/p-b856f2f6.entry.js +2 -0
  281. package/dist/wcs/p-b856f2f6.entry.js.map +1 -0
  282. package/dist/wcs/{p-274232e6.entry.js → p-bcb8b731.entry.js} +2 -2
  283. package/dist/wcs/p-bcb8b731.entry.js.map +1 -0
  284. package/dist/wcs/p-d2da0c9f.entry.js +2 -0
  285. package/dist/wcs/p-d2da0c9f.entry.js.map +1 -0
  286. package/dist/wcs/p-d3f1cafe.entry.js.map +1 -1
  287. package/dist/wcs/p-d6b3f742.entry.js +2 -0
  288. package/dist/wcs/p-d6b3f742.entry.js.map +1 -0
  289. package/dist/wcs/p-ee453b6e.entry.js +2 -0
  290. package/dist/wcs/p-ee453b6e.entry.js.map +1 -0
  291. package/dist/wcs/p-f386bb8b.entry.js.map +1 -1
  292. package/dist/wcs/{p-e4dcd310.entry.js → p-f82e7a61.entry.js} +2 -2
  293. package/dist/wcs/{p-e4dcd310.entry.js.map → p-f82e7a61.entry.js.map} +1 -1
  294. package/dist/wcs/p-fc3f5b53.entry.js.map +1 -1
  295. package/dist/wcs/wcs.css +1 -1
  296. package/dist/wcs/wcs.esm.js +1 -1
  297. package/dist/wcs/wcs.esm.js.map +1 -1
  298. package/package.json +17 -12
  299. package/dist/cjs/grid-pagination-ff65e0ff.js.map +0 -1
  300. package/dist/cjs/helpers-11518d4f.js.map +0 -1
  301. package/dist/esm/grid-pagination-62f9fbbc.js.map +0 -1
  302. package/dist/esm/helpers-e9b73aad.js.map +0 -1
  303. package/dist/wcs/p-111ae1af.entry.js +0 -2
  304. package/dist/wcs/p-111ae1af.entry.js.map +0 -1
  305. package/dist/wcs/p-14e04d5e.entry.js +0 -2
  306. package/dist/wcs/p-14e04d5e.entry.js.map +0 -1
  307. package/dist/wcs/p-274232e6.entry.js.map +0 -1
  308. package/dist/wcs/p-2920b759.entry.js +0 -16
  309. package/dist/wcs/p-2920b759.entry.js.map +0 -1
  310. package/dist/wcs/p-3e370f48.entry.js +0 -2
  311. package/dist/wcs/p-49e66081.entry.js +0 -2
  312. package/dist/wcs/p-49e66081.entry.js.map +0 -1
  313. package/dist/wcs/p-504fb24e.entry.js +0 -2
  314. package/dist/wcs/p-504fb24e.entry.js.map +0 -1
  315. package/dist/wcs/p-5140269d.entry.js +0 -2
  316. package/dist/wcs/p-5140269d.entry.js.map +0 -1
  317. package/dist/wcs/p-587fea23.entry.js.map +0 -1
  318. package/dist/wcs/p-62db1219.js +0 -2
  319. package/dist/wcs/p-62db1219.js.map +0 -1
  320. package/dist/wcs/p-6f921d57.entry.js.map +0 -1
  321. package/dist/wcs/p-7d7472e2.entry.js +0 -2
  322. package/dist/wcs/p-89b3550b.entry.js +0 -2
  323. package/dist/wcs/p-89b3550b.entry.js.map +0 -1
  324. package/dist/wcs/p-8bb19e58.entry.js +0 -2
  325. package/dist/wcs/p-9157466f.entry.js +0 -2
  326. package/dist/wcs/p-9157466f.entry.js.map +0 -1
  327. package/dist/wcs/p-d11c66d4.entry.js +0 -2
  328. package/dist/wcs/p-d218509e.entry.js +0 -2
  329. package/dist/wcs/p-d218509e.entry.js.map +0 -1
  330. package/dist/wcs/p-dc57a5f7.js +0 -2
  331. package/dist/wcs/p-dc57a5f7.js.map +0 -1
  332. /package/dist/wcs/{p-3e370f48.entry.js.map → p-463667c9.entry.js.map} +0 -0
  333. /package/dist/wcs/{p-c7b42bae.entry.js.map → p-4b4d53e2.entry.js.map} +0 -0
  334. /package/dist/wcs/{p-8762cf93.entry.js.map → p-554ca93c.entry.js.map} +0 -0
@@ -178,11 +178,13 @@
178
178
  --wcs-select-value-color: var(--wcs-primary);
179
179
  --wcs-select-border-color: transparent;
180
180
  --wcs-select-overlay-max-height: 360px;
181
- --wcs-select-option-height: 42px;
181
+ --wcs-select-option-height: var(--wcs-size-m);
182
+ --wcs-select-border-width: 1px;
182
183
  display: block;
183
184
  position: relative;
184
185
  outline: none;
185
186
  user-select: none;
187
+ box-sizing: border-box;
186
188
  }
187
189
  :host svg {
188
190
  flex-shrink: 0;
@@ -198,18 +200,6 @@
198
200
  opacity: 100;
199
201
  }
200
202
 
201
- :host([class~=expanded][overlaydirection=top]) .wcs-select-control {
202
- border: var(--wcs-select-border-color) solid 1px;
203
- border-top-left-radius: 0;
204
- border-top-right-radius: 0;
205
- }
206
-
207
- :host([class~=expanded][overlaydirection=bottom]) .wcs-select-control {
208
- border: var(--wcs-select-border-color) solid 1px;
209
- border-bottom-left-radius: 0;
210
- border-bottom-right-radius: 0;
211
- }
212
-
213
203
  :host(.expanded) {
214
204
  --wcs-select-border-color: var(--wcs-text-light);
215
205
  }
@@ -243,7 +233,8 @@
243
233
  }
244
234
 
245
235
  label {
246
- padding: calc(var(--wcs-padding) / 2) var(--wcs-padding);
236
+ padding-left: calc(var(--wcs-padding) - var(--wcs-select-border-width));
237
+ padding-right: calc(var(--wcs-padding) - var(--wcs-select-border-width));
247
238
  font-weight: 500;
248
239
  cursor: pointer;
249
240
  color: var(--wcs-select-color);
@@ -253,11 +244,28 @@ label {
253
244
  text-overflow: ellipsis;
254
245
  }
255
246
 
247
+ :host([size=m]) {
248
+ min-height: var(--wcs-size-m);
249
+ --wcs-select-font-size: 1rem;
250
+ }
251
+ :host([size=m]) .wcs-select-control {
252
+ min-height: var(--wcs-size-m);
253
+ }
254
+
255
+ :host([size=l]) {
256
+ min-height: var(--wcs-size-l);
257
+ --wcs-select-font-size: 1.0625rem;
258
+ }
259
+ :host([size=l]) .wcs-select-control {
260
+ min-height: var(--wcs-size-l);
261
+ }
262
+
256
263
  :host([chips]) .wcs-select-control {
257
264
  flex-wrap: wrap;
258
265
  }
259
266
 
260
267
  .wcs-select-control {
268
+ box-sizing: border-box;
261
269
  --mdc-ripple-fg-size: 0;
262
270
  --mdc-ripple-left: 0;
263
271
  --mdc-ripple-top: 0;
@@ -272,8 +280,8 @@ label {
272
280
  padding-right: var(--wcs-text-padding);
273
281
  background-color: var(--wcs-select-background-color);
274
282
  border-radius: var(--wcs-select-border-radius);
275
- border: var(--wcs-select-border-color) solid 1px;
276
- font-size: 1rem;
283
+ border: var(--wcs-select-border-color) solid var(--wcs-select-border-width);
284
+ font-size: var(--wcs-select-font-size, 1rem);
277
285
  line-height: 1.5;
278
286
  cursor: pointer;
279
287
  }
@@ -371,42 +379,38 @@ label {
371
379
  font-weight: var(--wcs-font-weight-form-value);
372
380
  }
373
381
 
382
+ .wcs-select-value-container {
383
+ margin-top: 4px;
384
+ margin-bottom: 4px;
385
+ margin-left: calc(var(--wcs-margin) / 2);
386
+ max-width: calc(100% - (24px + var(--wcs-base-margin)));
387
+ display: flex;
388
+ flex-direction: row;
389
+ gap: 4px;
390
+ align-items: center;
391
+ flex-wrap: wrap;
392
+ }
393
+
374
394
  .wcs-select-chip {
395
+ line-height: 1.375;
375
396
  color: var(--wcs-contrast);
376
397
  background-color: var(--wcs-base);
377
398
  border-radius: 0.75rem;
378
399
  display: flex;
379
400
  align-items: center;
380
- margin: calc(var(--wcs-base-margin) / 2);
381
401
  padding: calc((var(--wcs-padding) - 8px) / 2) var(--wcs-padding);
382
402
  overflow: initial;
383
403
  }
384
404
 
385
- :host([overlaydirection=top]) .wcs-select-options {
386
- -webkit-transform: translateY(-100%);
387
- transform: translateY(-100%);
388
- border-left: var(--wcs-select-border-color) solid 1px;
389
- border-right: var(--wcs-select-border-color) solid 1px;
390
- border-top: var(--wcs-select-border-color) solid 1px;
391
- border-top-right-radius: var(--wcs-border-radius);
392
- border-top-left-radius: var(--wcs-border-radius);
393
- }
394
-
395
- :host([overlaydirection=bottom]) .wcs-select-options {
396
- border-left: var(--wcs-select-border-color) solid 1px;
397
- border-right: var(--wcs-select-border-color) solid 1px;
398
- border-bottom: var(--wcs-select-border-color) solid 1px;
399
- border-bottom-right-radius: var(--wcs-border-radius);
400
- border-bottom-left-radius: var(--wcs-border-radius);
401
- }
402
-
403
405
  .wcs-select-options {
404
406
  display: none;
405
407
  position: absolute;
406
- z-index: 1;
407
- margin: 0;
408
+ z-index: 999999999;
409
+ border: solid var(--wcs-select-border-width) var(--wcs-select-border-color);
410
+ border-radius: var(--wcs-select-border-radius);
408
411
  max-height: var(--wcs-select-overlay-max-height);
409
412
  overflow-y: auto;
413
+ width: calc(100% - 2 * var(--wcs-select-border-width));
410
414
  background-color: var(--wcs-white);
411
415
  color: var(--wcs-text-medium);
412
416
  }
@@ -1,10 +1,12 @@
1
1
  import { h, Host } from '@stencil/core';
2
2
  import _ from 'lodash';
3
3
  import { interpret, Machine } from 'xstate';
4
+ import { isWcsSelectSize, WcsSelectSizeValue } from './select-interface';
4
5
  import { SelectArrow } from './select-arrow';
5
- import { isElement } from '../../utils/helpers';
6
+ import { isDownArrowKey, isElement, isEnterKey, isEscapeKey, isHomeKey, isLeftArrowKey, isPageDownKey, isPageUpKey, isRightArrowKey, isTabKey, isUpArrowKey, generateUniqueId, findItemLabel, isSpaceKey, } from '../../utils/helpers';
6
7
  import { SelectChips } from './select-chips';
7
8
  import { MDCRipple } from '@material/ripple';
9
+ import { createPopper } from '@popperjs/core';
8
10
  const SELECT_MACHINE_CONFIG = {
9
11
  key: 'select',
10
12
  initial: 'closed',
@@ -14,7 +16,7 @@ const SELECT_MACHINE_CONFIG = {
14
16
  on: {
15
17
  CLICK: 'opened',
16
18
  OPEN: 'opened',
17
- OPTION_CLICKED: { actions: ['selectOption'] }
19
+ OPTION_SELECTED: { actions: ['selectOption'] }
18
20
  },
19
21
  },
20
22
  opened: {
@@ -22,7 +24,7 @@ const SELECT_MACHINE_CONFIG = {
22
24
  on: {
23
25
  CLICK: 'closed',
24
26
  CLOSE: 'closed',
25
- OPTION_CLICKED: { actions: ['selectOption'] }
27
+ OPTION_SELECTED: { actions: ['selectOption'] }
26
28
  },
27
29
  },
28
30
  }
@@ -34,11 +36,13 @@ const SELECT_MACHINE_CONFIG = {
34
36
  * <wcs-select>
35
37
  * <wcs-select-option value="1">One</wcs-select-option>
36
38
  * </wcs-select>```
37
- * @todo Complete keyboard navigation.
38
39
  */
39
40
  export class Select {
40
41
  constructor() {
42
+ this.selectId = `wcs-select-${selectIds++}`;
43
+ this.optionsId = generateUniqueId("OPTIONS");
41
44
  this.expanded = false;
45
+ this.size = 'm';
42
46
  this.hasLoaded = false;
43
47
  this.displayText = undefined;
44
48
  this.focused = undefined;
@@ -133,9 +137,29 @@ export class Select {
133
137
  if (this.value !== undefined) {
134
138
  this.updateSelectedValue(this.value);
135
139
  }
140
+ this.popper = this.createPopperInstance();
141
+ // if the select is inside a wcs-form-field, we set an id to the wcs-label if present
142
+ // the wcs-label element reference is kept to compute aria-label value during the rendering
143
+ this.labelElement = findItemLabel(this.el);
144
+ if (this.labelElement) {
145
+ this.labelElement.id = this.selectId + "-lbl";
146
+ }
136
147
  // TODO: is this still usefull for anything ?
137
148
  this.hasLoaded = true;
138
149
  }
150
+ createPopperInstance() {
151
+ return createPopper(this.controlEl, this.optionsEl, {
152
+ placement: "bottom",
153
+ modifiers: [
154
+ {
155
+ name: 'offset',
156
+ options: {
157
+ offset: [0, 4] // we want 4px between select control and select options
158
+ }
159
+ }
160
+ ]
161
+ });
162
+ }
139
163
  emitChange(newValue) {
140
164
  this.wcsChange.emit({
141
165
  value: newValue
@@ -160,6 +184,12 @@ export class Select {
160
184
  });
161
185
  observer.observe(this.el, { childList: true });
162
186
  }
187
+ componentWillLoad() {
188
+ if (!isWcsSelectSize(this.size)) {
189
+ console.error(`Invalid size value for wcs-select : "${this.size}". Must be one of "${WcsSelectSizeValue.join(', ')}"`);
190
+ this.size = "m"; // Default fallback value
191
+ }
192
+ }
163
193
  componentWillUpdate() {
164
194
  if (this.multiple) {
165
195
  this.options
@@ -174,22 +204,47 @@ export class Select {
174
204
  }
175
205
  return [];
176
206
  }
207
+ get notDisabledOptions() {
208
+ var _a;
209
+ const opts = (_a = this.el) === null || _a === void 0 ? void 0 : _a.querySelectorAll('wcs-select-option:not([disabled])');
210
+ if (opts && opts.length !== 0) {
211
+ return opts;
212
+ }
213
+ return [];
214
+ }
177
215
  initMachineOptions() {
178
216
  return {
179
217
  actions: {
180
218
  open: () => {
219
+ var _a;
181
220
  if (!this.disabled) {
182
- this.updateOverlayDirection();
183
221
  this.expanded = true;
184
- this.focused = true;
222
+ this.focused = false;
223
+ if (this.notDisabledOptions.length > 0) {
224
+ this.lastFocusedOptionElement = (_a = this.lastSelectedOptionElement) !== null && _a !== void 0 ? _a : this.notDisabledOptions[0];
225
+ requestAnimationFrame(() => {
226
+ var _a;
227
+ (_a = this.lastFocusedOptionElement) === null || _a === void 0 ? void 0 : _a.focus();
228
+ });
229
+ }
185
230
  }
186
231
  },
187
- close: () => {
188
- this.focused = true;
232
+ close: (_, event) => {
233
+ var _a, _b;
234
+ if (event.type === 'CLOSE') {
235
+ if ((_a = event.value) === null || _a === void 0 ? void 0 : _a.shouldBlur) {
236
+ (_b = this.el.closest("wcs-select")) === null || _b === void 0 ? void 0 : _b.focus();
237
+ this.focused = false;
238
+ }
239
+ else {
240
+ this.el.focus();
241
+ this.focused = true;
242
+ }
243
+ }
189
244
  this.expanded = false;
190
245
  },
191
246
  selectOption: (_, event) => {
192
- if (event.type === 'OPTION_CLICKED') {
247
+ if (event.type === 'OPTION_SELECTED') {
193
248
  this.handleClickEvent(event.value);
194
249
  }
195
250
  }
@@ -199,41 +254,6 @@ export class Select {
199
254
  }
200
255
  };
201
256
  }
202
- /**
203
- * This method controls whether or not the overlay has enough space to be displayed
204
- * at the bottom of the select component.
205
- *
206
- * It compute the size of the expended select by adding the theoretical dimensions of the
207
- * overlay calculated from the number of options plus the initial select size.
208
- * @private
209
- */
210
- updateOverlayDirection() {
211
- // We retrieve values from CSS variables
212
- const overlayMaxHeight = +getComputedStyle(this.el).getPropertyValue('--wcs-select-overlay-max-height').replace(/\D/g, '');
213
- const optionSize = +getComputedStyle(this.el).getPropertyValue('--wcs-select-option-height').replace(/\D/g, '');
214
- const selectBounding = this.el.getBoundingClientRect();
215
- const maxOptionsCount = Math.floor(overlayMaxHeight / optionSize);
216
- // Maximum size of the overlay is 360px, otherwise the size is calculated from the number of options
217
- const optionsOverlaySize = this.options.length > maxOptionsCount ? overlayMaxHeight + 1 : this.options.length * optionSize + 1;
218
- const remainingHeightAfterOpen = window.innerHeight - (selectBounding.y + selectBounding.height + optionsOverlaySize);
219
- // There are not enough pixels to open the overlay below the component
220
- if (remainingHeightAfterOpen < 0) {
221
- this.overlayDirection = 'top';
222
- }
223
- else {
224
- this.overlayDirection = 'bottom';
225
- }
226
- }
227
- updateOverlayMargin() {
228
- if (this.controlEl && this.optionsEl) {
229
- if (this.overlayDirection === 'top') {
230
- this.optionsEl.style.marginTop = '-' + this.controlEl.getBoundingClientRect().height + 'px';
231
- }
232
- else {
233
- this.optionsEl.style.marginTop = '0';
234
- }
235
- }
236
- }
237
257
  handleClickEvent(event) {
238
258
  if (this.multiple) {
239
259
  this.handleClickOnMultiple(event);
@@ -248,10 +268,13 @@ export class Select {
248
268
  const { value, displayText, chipColor, chipBackgroundColor } = event;
249
269
  this.values.push({ value, displayText, chipColor, chipBackgroundColor });
250
270
  event.source.selected = true;
271
+ this.lastSelectedOptionElement = event.source;
251
272
  }
252
273
  else {
253
274
  event.source.selected = false;
254
275
  this.values.splice(index, 1);
276
+ if (this.lastSelectedOptionElement === event.source)
277
+ this.lastSelectedOptionElement = null;
255
278
  }
256
279
  this.updateValueWithValues();
257
280
  }
@@ -271,6 +294,7 @@ export class Select {
271
294
  event.source.selected = true;
272
295
  this.value = event.value;
273
296
  this.displayText = event.displayText;
297
+ this.lastSelectedOptionElement = event.source;
274
298
  this.stateService.send('CLOSE');
275
299
  }
276
300
  disconnectedCallback() {
@@ -302,20 +326,136 @@ export class Select {
302
326
  }
303
327
  }
304
328
  onWindowClickEvent(event) {
305
- // We search in the full path of the event, because if a select is used in another web component,
306
- // the event captured by the windows will target the parent web component and not the select.
307
- const clickedOnSelectOrChildren = event.composedPath().map(x => x.nodeName).indexOf('WCS-SELECT') !== -1;
329
+ const firstSelectInEventPath = event.composedPath().filter(x => x.nodeName === 'WCS-SELECT')[0];
330
+ const clickOnCurrentSelect = firstSelectInEventPath === this.el;
308
331
  // TODO: Move this logic in the state machine
309
332
  // FIXME: Doesnt work with single + disabled option
310
- if (this.expanded && !clickedOnSelectOrChildren) {
333
+ if (this.expanded && !clickOnCurrentSelect) {
311
334
  this.stateService.send('CLOSE');
312
335
  }
313
336
  }
337
+ onKeyDown(_event) {
338
+ // close
339
+ if (this.stateService.getSnapshot().matches("closed")) {
340
+ if (isEnterKey(_event) || (_event.altKey && isDownArrowKey(_event)) || isSpaceKey(_event)) {
341
+ _event.preventDefault();
342
+ _event.stopPropagation();
343
+ this.stateService.send('OPEN');
344
+ return;
345
+ }
346
+ if (this.multiple) {
347
+ if (isDownArrowKey(_event)) {
348
+ this.stateService.send('OPEN');
349
+ }
350
+ }
351
+ else {
352
+ if (isDownArrowKey(_event) || isRightArrowKey(_event)) {
353
+ _event.preventDefault();
354
+ this.selectClosestOption("next");
355
+ }
356
+ if (isUpArrowKey(_event) || isLeftArrowKey(_event)) {
357
+ _event.preventDefault();
358
+ this.selectClosestOption("previous");
359
+ }
360
+ else if (isPageDownKey(_event)) {
361
+ _event.preventDefault();
362
+ this.selectLastOption();
363
+ }
364
+ else if (isPageUpKey(_event) || isHomeKey(_event)) {
365
+ _event.preventDefault();
366
+ this.selectFirstOption();
367
+ }
368
+ }
369
+ }
370
+ // open
371
+ else if (this.stateService.getSnapshot().matches("opened")) {
372
+ if (isEscapeKey(_event) || (_event.altKey && isUpArrowKey(_event))) {
373
+ this.stateService.send({ type: "CLOSE", value: { shouldBlur: false } });
374
+ }
375
+ else if (isTabKey(_event) || (_event.shiftKey && isTabKey(_event))) {
376
+ this.stateService.send({ type: "CLOSE", value: { shouldBlur: true } });
377
+ }
378
+ else if (isDownArrowKey(_event)) {
379
+ _event.preventDefault();
380
+ this.focusClosestOption("next");
381
+ }
382
+ else if (isUpArrowKey(_event)) {
383
+ _event.preventDefault();
384
+ this.focusClosestOption("previous");
385
+ }
386
+ else if (isPageUpKey(_event) || isHomeKey(_event)) {
387
+ _event.preventDefault();
388
+ this.focusFirstOption();
389
+ }
390
+ else if (isPageDownKey(_event)) {
391
+ _event.preventDefault();
392
+ this.focusLastOption();
393
+ }
394
+ }
395
+ }
396
+ getClosestActiveOptionIndexForState(direction, state) {
397
+ let currentIndex = Array.from(this.notDisabledOptions).indexOf(state === 'focused' ? this.lastFocusedOptionElement : this.lastSelectedOptionElement);
398
+ if (direction === 'next' && currentIndex < this.notDisabledOptions.length - 1) {
399
+ currentIndex++;
400
+ }
401
+ else if (direction === 'previous' && currentIndex > 0) {
402
+ currentIndex--;
403
+ }
404
+ else {
405
+ return 'nothing';
406
+ }
407
+ return currentIndex;
408
+ }
409
+ selectOption(indexToSelect) {
410
+ this.lastSelectedOptionElement = this.notDisabledOptions[indexToSelect];
411
+ this.lastSelectedOptionElement.selected = true;
412
+ this.sendOptionSelectedToStateMachine({
413
+ source: this.lastSelectedOptionElement,
414
+ value: this.value,
415
+ displayText: this.lastSelectedOptionElement.innerText
416
+ });
417
+ }
418
+ selectClosestOption(direction) {
419
+ const indexToSelect = this.getClosestActiveOptionIndexForState(direction, 'selected');
420
+ if (indexToSelect === 'nothing')
421
+ return;
422
+ this.selectOption(indexToSelect);
423
+ }
424
+ selectFirstOption() {
425
+ if (this.notDisabledOptions.length < 1) {
426
+ return;
427
+ }
428
+ this.selectOption(0);
429
+ }
430
+ selectLastOption() {
431
+ if (this.notDisabledOptions.length < 1) {
432
+ return;
433
+ }
434
+ this.selectOption(this.notDisabledOptions.length - 1);
435
+ }
436
+ focusOption(indexToFocus) {
437
+ var _a;
438
+ this.lastFocusedOptionElement = this.notDisabledOptions[indexToFocus];
439
+ (_a = this.lastFocusedOptionElement) === null || _a === void 0 ? void 0 : _a.focus();
440
+ this.el.setAttribute("aria-activedescendant", this.lastFocusedOptionElement.id);
441
+ }
442
+ focusClosestOption(direction) {
443
+ const indexToFocus = this.getClosestActiveOptionIndexForState(direction, 'focused');
444
+ if (indexToFocus === 'nothing')
445
+ return;
446
+ this.focusOption(indexToFocus);
447
+ }
448
+ focusFirstOption() {
449
+ this.focusOption(0);
450
+ }
451
+ focusLastOption() {
452
+ this.focusOption(this.notDisabledOptions.length - 1);
453
+ }
314
454
  selectedOptionChanged(event) {
315
- this.sendOptionClickedToStateMachine(event.detail);
455
+ this.sendOptionSelectedToStateMachine(event.detail);
316
456
  }
317
- sendOptionClickedToStateMachine(event) {
318
- this.stateService.send({ type: 'OPTION_CLICKED', value: event });
457
+ sendOptionSelectedToStateMachine(event) {
458
+ this.stateService.send({ type: 'OPTION_SELECTED', value: event });
319
459
  }
320
460
  onSlotchange() {
321
461
  this.updateSelectedValue(this.value);
@@ -324,27 +464,22 @@ export class Select {
324
464
  this.options
325
465
  .forEach(opt => {
326
466
  if (opt.value === v.value) {
327
- this.sendOptionClickedToStateMachine(Object.assign(Object.assign({}, v), { source: opt }));
467
+ this.sendOptionSelectedToStateMachine(Object.assign(Object.assign({}, v), { source: opt }));
328
468
  }
329
469
  });
330
470
  }
471
+ componentDidRender() {
472
+ var _a;
473
+ (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update();
474
+ }
331
475
  render() {
332
- if (this.hasLoaded) {
333
- this.updateStyles();
334
- }
335
- this.updateOverlayMargin();
336
- return (h(Host, Object.assign({ class: this.expanded ? 'expanded ' : '', overlayDirection: this.overlayDirection }, this.focusedAttributes()), h("div", { class: "wcs-select-control" }, this.hasValue
337
- ? (this.chips ?
338
- this.values.map((option) => h(SelectChips, { disabled: this.disabled, option: option, onRemove: this.removeChip.bind(this) }))
339
- : h("label", { class: "wcs-select-value" }, this.displayText))
340
- : h("label", { class: "wcs-select-placeholder" }, this.placeholder), h(SelectArrow, { up: this.expanded })), h("div", { class: "wcs-select-options" }, h("slot", { name: "wcs-select-option", onSlotchange: this.onSlotchange.bind(this) }))));
341
- }
342
- updateStyles() {
343
- // Make the options container width the same width as everything.
344
- const borderSize = 1;
345
- // TODO: Consider using a mutation observer to rerender the size each time ?
346
- // Be cautious as it may cause infinite loop with render ?
347
- this.optionsEl.setAttribute('style', `width: ${Math.ceil(this.el.offsetWidth - 2 * borderSize)}px;`);
476
+ const ariaLabelValue = `${this.labelElement ? this.labelElement.innerText : ''} ${this.hasValue ? this.displayText : ''}`.trimEnd();
477
+ return (h(Host, Object.assign({ class: this.expanded ? 'expanded ' : '', overlayDirection: this.overlayDirection }, this.focusedAttributes(), { role: "combobox", "aria-haspopup": "listbox", "aria-disabled": this.disabled ? 'true' : null, "aria-expanded": this.expanded ? 'true' : 'false', "aria-controls": this.optionsId, "aria-owns": this.optionsId, "aria-multiselectable": this.multiple ? 'true' : 'false', "aria-label": ariaLabelValue }), h("div", { class: "wcs-select-control" }, h("div", { class: "wcs-select-value-container" }, this.hasValue
478
+ ?
479
+ (this.chips ?
480
+ this.values.map((option) => h(SelectChips, { disabled: this.disabled, option: option, onRemove: this.removeChip.bind(this) }))
481
+ : h("label", { class: "wcs-select-value" }, this.displayText))
482
+ : h("label", { class: "wcs-select-placeholder" }, this.placeholder)), h(SelectArrow, { up: this.expanded })), h("div", { class: "wcs-select-options", id: this.optionsId, role: "listbox" }, h("slot", { name: "wcs-select-option", onSlotchange: this.onSlotchange.bind(this) }))));
348
483
  }
349
484
  focusedAttributes() {
350
485
  return !this.disabled ? { tabIndex: 0 } : {};
@@ -363,6 +498,29 @@ export class Select {
363
498
  }
364
499
  static get properties() {
365
500
  return {
501
+ "size": {
502
+ "type": "string",
503
+ "mutable": false,
504
+ "complexType": {
505
+ "original": "WcsSelectSize",
506
+ "resolved": "\"l\" | \"m\"",
507
+ "references": {
508
+ "WcsSelectSize": {
509
+ "location": "import",
510
+ "path": "./select-interface"
511
+ }
512
+ }
513
+ },
514
+ "required": false,
515
+ "optional": false,
516
+ "docs": {
517
+ "tags": [],
518
+ "text": "Specify the size (height) of the select."
519
+ },
520
+ "attribute": "size",
521
+ "reflect": true,
522
+ "defaultValue": "'m'"
523
+ },
366
524
  "value": {
367
525
  "type": "any",
368
526
  "mutable": true,
@@ -604,6 +762,12 @@ export class Select {
604
762
  "target": "window",
605
763
  "capture": false,
606
764
  "passive": false
765
+ }, {
766
+ "name": "keydown",
767
+ "method": "onKeyDown",
768
+ "target": undefined,
769
+ "capture": false,
770
+ "passive": false
607
771
  }, {
608
772
  "name": "wcsSelectOptionClick",
609
773
  "method": "selectedOptionChanged",
@@ -613,4 +777,5 @@ export class Select {
613
777
  }];
614
778
  }
615
779
  }
780
+ let selectIds = 0;
616
781
  //# sourceMappingURL=select.js.map