@six-group/ui-library 0.0.0-insider.a9875a1 → 0.0.0-insider.ad9373a

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 (611) hide show
  1. package/dist/cjs/error-messages-6e8049a4.js +119 -0
  2. package/dist/cjs/error-messages-6e8049a4.js.map +1 -0
  3. package/dist/cjs/{form-control-f9bc25dd.js → form-control-72186fcc.js} +2 -2
  4. package/dist/cjs/{form-control-f9bc25dd.js.map → form-control-72186fcc.js.map} +1 -1
  5. package/dist/cjs/{index-3baddcdc.js → index-5dd19c4b.js} +63 -44
  6. package/dist/cjs/index-5dd19c4b.js.map +1 -0
  7. package/dist/cjs/index.cjs.js +6 -106
  8. package/dist/cjs/index.cjs.js.map +1 -1
  9. package/dist/cjs/loader.cjs.js +2 -2
  10. package/dist/cjs/set-attributes_2.cjs.entry.js +2 -2
  11. package/dist/cjs/set-attributes_2.cjs.entry.js.map +1 -1
  12. package/dist/cjs/six-alert.cjs.entry.js +2 -2
  13. package/dist/cjs/six-alert.cjs.entry.js.map +1 -1
  14. package/dist/cjs/six-avatar.cjs.entry.js +2 -2
  15. package/dist/cjs/six-avatar.cjs.entry.js.map +1 -1
  16. package/dist/cjs/six-badge.cjs.entry.js +2 -2
  17. package/dist/cjs/six-badge.cjs.entry.js.map +1 -1
  18. package/dist/cjs/six-button.cjs.entry.js +3 -3
  19. package/dist/cjs/six-button.cjs.entry.js.map +1 -1
  20. package/dist/cjs/six-card.cjs.entry.js +2 -2
  21. package/dist/cjs/six-card.cjs.entry.js.map +1 -1
  22. package/dist/cjs/six-checkbox_2.cjs.entry.js +190 -0
  23. package/dist/cjs/six-checkbox_2.cjs.entry.js.map +1 -0
  24. package/dist/cjs/six-datepicker.cjs.entry.js +4 -3
  25. package/dist/cjs/six-datepicker.cjs.entry.js.map +1 -1
  26. package/dist/cjs/six-details.cjs.entry.js +2 -2
  27. package/dist/cjs/six-details.cjs.entry.js.map +1 -1
  28. package/dist/cjs/six-dialog.cjs.entry.js +3 -3
  29. package/dist/cjs/six-dialog.cjs.entry.js.map +1 -1
  30. package/dist/cjs/six-drawer.cjs.entry.js +3 -3
  31. package/dist/cjs/six-drawer.cjs.entry.js.map +1 -1
  32. package/dist/cjs/six-dropdown_2.cjs.entry.js +195 -125
  33. package/dist/cjs/six-dropdown_2.cjs.entry.js.map +1 -1
  34. package/dist/cjs/six-error-page.cjs.entry.js +1 -1
  35. package/dist/cjs/six-error.cjs.entry.js +1 -1
  36. package/dist/cjs/six-file-list-item.cjs.entry.js +1 -1
  37. package/dist/cjs/six-file-list.cjs.entry.js +1 -1
  38. package/dist/cjs/six-file-upload.cjs.entry.js +2 -2
  39. package/dist/cjs/six-file-upload.cjs.entry.js.map +1 -1
  40. package/dist/cjs/six-footer.cjs.entry.js +2 -2
  41. package/dist/cjs/six-footer.cjs.entry.js.map +1 -1
  42. package/dist/cjs/six-group-label.cjs.entry.js +4 -4
  43. package/dist/cjs/six-group-label.cjs.entry.js.map +1 -1
  44. package/dist/cjs/six-header.cjs.entry.js +7 -5
  45. package/dist/cjs/six-header.cjs.entry.js.map +1 -1
  46. package/dist/cjs/six-icon-button.cjs.entry.js +2 -2
  47. package/dist/cjs/six-icon-button.cjs.entry.js.map +1 -1
  48. package/dist/cjs/six-icon.cjs.entry.js +2 -2
  49. package/dist/cjs/six-icon.cjs.entry.js.map +1 -1
  50. package/dist/cjs/six-input.cjs.entry.js +6 -4
  51. package/dist/cjs/six-input.cjs.entry.js.map +1 -1
  52. package/dist/cjs/six-item-picker.cjs.entry.js +2 -2
  53. package/dist/cjs/six-item-picker.cjs.entry.js.map +1 -1
  54. package/dist/cjs/six-language-switcher.cjs.entry.js +1 -1
  55. package/dist/cjs/six-layout-grid.cjs.entry.js +1 -1
  56. package/dist/cjs/six-main-container.cjs.entry.js +1 -1
  57. package/dist/cjs/six-main-container.cjs.entry.js.map +1 -1
  58. package/dist/cjs/six-menu-divider.cjs.entry.js +2 -2
  59. package/dist/cjs/six-menu-divider.cjs.entry.js.map +1 -1
  60. package/dist/cjs/six-menu-label.cjs.entry.js +2 -2
  61. package/dist/cjs/six-menu-label.cjs.entry.js.map +1 -1
  62. package/dist/cjs/six-picto.cjs.entry.js +1 -1
  63. package/dist/cjs/six-progress-bar.cjs.entry.js +2 -2
  64. package/dist/cjs/six-progress-bar.cjs.entry.js.map +1 -1
  65. package/dist/cjs/six-progress-ring.cjs.entry.js +2 -2
  66. package/dist/cjs/six-progress-ring.cjs.entry.js.map +1 -1
  67. package/dist/cjs/six-radio.cjs.entry.js +2 -2
  68. package/dist/cjs/six-radio.cjs.entry.js.map +1 -1
  69. package/dist/cjs/six-range.cjs.entry.js +4 -4
  70. package/dist/cjs/six-range.cjs.entry.js.map +1 -1
  71. package/dist/cjs/six-root.cjs.entry.js +1 -1
  72. package/dist/cjs/six-root.cjs.entry.js.map +1 -1
  73. package/dist/cjs/six-search-field.cjs.entry.js +2 -2
  74. package/dist/cjs/six-search-field.cjs.entry.js.map +1 -1
  75. package/dist/cjs/six-select.cjs.entry.js +300 -169
  76. package/dist/cjs/six-select.cjs.entry.js.map +1 -1
  77. package/dist/cjs/six-sidebar-item-group.cjs.entry.js +3 -3
  78. package/dist/cjs/six-sidebar-item-group.cjs.entry.js.map +1 -1
  79. package/dist/cjs/six-sidebar-item.cjs.entry.js +1 -1
  80. package/dist/cjs/six-sidebar.cjs.entry.js +2 -2
  81. package/dist/cjs/six-sidebar.cjs.entry.js.map +1 -1
  82. package/dist/cjs/six-spinner.cjs.entry.js +2 -2
  83. package/dist/cjs/six-spinner.cjs.entry.js.map +1 -1
  84. package/dist/cjs/six-switch.cjs.entry.js +4 -4
  85. package/dist/cjs/six-switch.cjs.entry.js.map +1 -1
  86. package/dist/cjs/six-tab-group.cjs.entry.js +2 -2
  87. package/dist/cjs/six-tab-group.cjs.entry.js.map +1 -1
  88. package/dist/cjs/six-tab-panel.cjs.entry.js +2 -2
  89. package/dist/cjs/six-tab-panel.cjs.entry.js.map +1 -1
  90. package/dist/cjs/six-tab.cjs.entry.js +2 -2
  91. package/dist/cjs/six-tab.cjs.entry.js.map +1 -1
  92. package/dist/cjs/six-tag.cjs.entry.js +3 -3
  93. package/dist/cjs/six-tag.cjs.entry.js.map +1 -1
  94. package/dist/cjs/six-textarea.cjs.entry.js +4 -4
  95. package/dist/cjs/six-textarea.cjs.entry.js.map +1 -1
  96. package/dist/cjs/six-tile.cjs.entry.js +3 -3
  97. package/dist/cjs/six-tile.cjs.entry.js.map +1 -1
  98. package/dist/cjs/six-timepicker.cjs.entry.js +4 -4
  99. package/dist/cjs/six-timepicker.cjs.entry.js.map +1 -1
  100. package/dist/cjs/six-tooltip.cjs.entry.js +2 -2
  101. package/dist/cjs/six-tooltip.cjs.entry.js.map +1 -1
  102. package/dist/cjs/{slot-9821749e.js → slot-1b1232a1.js} +1 -3
  103. package/dist/cjs/slot-1b1232a1.js.map +1 -0
  104. package/dist/cjs/{types-0a6d66f6.js → types-d3da200b.js} +3 -1
  105. package/dist/cjs/types-d3da200b.js.map +1 -0
  106. package/dist/cjs/ui-library.cjs.js +3 -3
  107. package/dist/cjs/ui-library.cjs.js.map +1 -1
  108. package/dist/collection/collection-manifest.json +1 -1
  109. package/dist/collection/components/six-alert/six-alert.css +1 -1
  110. package/dist/collection/components/six-avatar/six-avatar.css +2 -2
  111. package/dist/collection/components/six-badge/six-badge.css +1 -1
  112. package/dist/collection/components/six-button/six-button.css +1 -1
  113. package/dist/collection/components/six-button/six-button.js +3 -2
  114. package/dist/collection/components/six-button/six-button.js.map +1 -1
  115. package/dist/collection/components/six-card/six-card.css +4 -5
  116. package/dist/collection/components/six-checkbox/six-checkbox.css +1 -1
  117. package/dist/collection/components/six-checkbox/six-checkbox.js +3 -2
  118. package/dist/collection/components/six-checkbox/six-checkbox.js.map +1 -1
  119. package/dist/collection/components/six-datepicker/six-date-formats.js +1 -0
  120. package/dist/collection/components/six-datepicker/six-date-formats.js.map +1 -1
  121. package/dist/collection/components/six-datepicker/six-datepicker.css +1 -1
  122. package/dist/collection/components/six-datepicker/six-datepicker.js +6 -4
  123. package/dist/collection/components/six-datepicker/six-datepicker.js.map +1 -1
  124. package/dist/collection/components/six-details/six-details.css +1 -1
  125. package/dist/collection/components/six-details/six-details.js.map +1 -1
  126. package/dist/collection/components/six-dialog/six-dialog.css +2 -2
  127. package/dist/collection/components/six-drawer/six-drawer.css +2 -2
  128. package/dist/collection/components/six-dropdown/six-dropdown.css +22 -7
  129. package/dist/collection/components/six-dropdown/six-dropdown.js +213 -123
  130. package/dist/collection/components/six-dropdown/six-dropdown.js.map +1 -1
  131. package/dist/collection/components/six-dropdown/test/six-dropdown.spec.js +54 -29
  132. package/dist/collection/components/six-dropdown/test/six-dropdown.spec.js.map +1 -1
  133. package/dist/collection/components/six-file-upload/six-file-upload.css +1 -4
  134. package/dist/collection/components/six-footer/six-footer.css +2 -2
  135. package/dist/collection/components/six-group-label/six-group-label.css +1 -1
  136. package/dist/collection/components/six-header/six-header.css +6 -2
  137. package/dist/collection/components/six-header/six-header.js +25 -4
  138. package/dist/collection/components/six-header/six-header.js.map +1 -1
  139. package/dist/collection/components/six-header/test/six-header.spec.js +38 -2
  140. package/dist/collection/components/six-header/test/six-header.spec.js.map +1 -1
  141. package/dist/collection/components/six-icon/six-icon.css +1 -1
  142. package/dist/collection/components/six-icon-button/six-icon-button.css +1 -1
  143. package/dist/collection/components/six-input/six-input.css +10 -1
  144. package/dist/collection/components/six-input/six-input.js +44 -16
  145. package/dist/collection/components/six-input/six-input.js.map +1 -1
  146. package/dist/collection/components/six-item-picker/six-item-picker.js.map +1 -1
  147. package/dist/collection/components/six-item-picker/types.js +2 -0
  148. package/dist/collection/components/six-item-picker/types.js.map +1 -1
  149. package/dist/collection/components/six-main-container/six-main-container.js.map +1 -1
  150. package/dist/collection/components/six-menu/six-menu.css +8 -7
  151. package/dist/collection/components/six-menu/six-menu.js +28 -6
  152. package/dist/collection/components/six-menu/six-menu.js.map +1 -1
  153. package/dist/collection/components/six-menu/test/six-menu.spec.js +6 -6
  154. package/dist/collection/components/six-menu/test/six-menu.spec.js.map +1 -1
  155. package/dist/collection/components/six-menu-divider/six-menu-divider.css +3 -2
  156. package/dist/collection/components/six-menu-item/six-menu-item.css +13 -2
  157. package/dist/collection/components/six-menu-item/six-menu-item.js +36 -7
  158. package/dist/collection/components/six-menu-item/six-menu-item.js.map +1 -1
  159. package/dist/collection/components/six-menu-label/six-menu-label.css +1 -1
  160. package/dist/collection/components/six-progress-bar/six-progress-bar.css +1 -1
  161. package/dist/collection/components/six-progress-ring/six-progress-ring.css +1 -1
  162. package/dist/collection/components/six-radio/six-radio.css +1 -1
  163. package/dist/collection/components/six-radio/six-radio.js +3 -2
  164. package/dist/collection/components/six-radio/six-radio.js.map +1 -1
  165. package/dist/collection/components/six-range/six-range.css +1 -1
  166. package/dist/collection/components/six-range/six-range.js +3 -2
  167. package/dist/collection/components/six-range/six-range.js.map +1 -1
  168. package/dist/collection/components/six-root/six-root.js.map +1 -1
  169. package/dist/collection/components/six-search-field/six-search-field.css +1 -1
  170. package/dist/collection/components/six-select/six-select.css +54 -66
  171. package/dist/collection/components/six-select/six-select.js +343 -168
  172. package/dist/collection/components/six-select/six-select.js.map +1 -1
  173. package/dist/collection/components/six-select/test/six-select.spec.js +31 -15
  174. package/dist/collection/components/six-select/test/six-select.spec.js.map +1 -1
  175. package/dist/collection/components/six-sidebar/six-sidebar.css +2 -2
  176. package/dist/collection/components/six-sidebar/six-sidebar.js +6 -4
  177. package/dist/collection/components/six-sidebar/six-sidebar.js.map +1 -1
  178. package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.css +1 -1
  179. package/dist/collection/components/six-spinner/six-spinner.css +1 -1
  180. package/dist/collection/components/six-stage-indicator/six-stage-indicator.css +1 -1
  181. package/dist/collection/components/six-switch/six-switch.css +1 -1
  182. package/dist/collection/components/six-switch/six-switch.js +3 -2
  183. package/dist/collection/components/six-switch/six-switch.js.map +1 -1
  184. package/dist/collection/components/six-tab/six-tab.css +1 -1
  185. package/dist/collection/components/six-tab/six-tab.js +3 -2
  186. package/dist/collection/components/six-tab/six-tab.js.map +1 -1
  187. package/dist/collection/components/six-tab-group/six-tab-group.css +1 -1
  188. package/dist/collection/components/six-tab-group/six-tab-group.js +3 -2
  189. package/dist/collection/components/six-tab-group/six-tab-group.js.map +1 -1
  190. package/dist/collection/components/six-tab-panel/six-tab-panel.css +1 -1
  191. package/dist/collection/components/six-tag/six-tag.css +1 -1
  192. package/dist/collection/components/six-textarea/six-textarea.css +1 -1
  193. package/dist/collection/components/six-textarea/six-textarea.js +24 -16
  194. package/dist/collection/components/six-textarea/six-textarea.js.map +1 -1
  195. package/dist/collection/components/six-tile/six-tile.css +2 -2
  196. package/dist/collection/components/six-tile/six-tile.js.map +1 -1
  197. package/dist/collection/components/six-timepicker/six-timepicker.css +1 -1
  198. package/dist/collection/components/six-timepicker/six-timepicker.js +3 -2
  199. package/dist/collection/components/six-timepicker/six-timepicker.js.map +1 -1
  200. package/dist/collection/components/six-tooltip/six-tooltip.css +1 -1
  201. package/dist/collection/utils/error-messages.js +7 -0
  202. package/dist/collection/utils/error-messages.js.map +1 -1
  203. package/dist/collection/utils/slot.js +0 -1
  204. package/dist/collection/utils/slot.js.map +1 -1
  205. package/dist/components/index.js +2 -106
  206. package/dist/components/index.js.map +1 -1
  207. package/dist/components/six-alert.js +1 -1
  208. package/dist/components/six-alert.js.map +1 -1
  209. package/dist/components/six-avatar.js +1 -1
  210. package/dist/components/six-avatar.js.map +1 -1
  211. package/dist/components/six-badge.js +1 -1
  212. package/dist/components/six-badge.js.map +1 -1
  213. package/dist/components/six-button.js +1 -142
  214. package/dist/components/six-button.js.map +1 -1
  215. package/dist/components/six-button2.js +146 -0
  216. package/dist/components/six-button2.js.map +1 -0
  217. package/dist/components/six-card.js +1 -1
  218. package/dist/components/six-card.js.map +1 -1
  219. package/dist/components/six-checkbox.js +1 -161
  220. package/dist/components/six-checkbox.js.map +1 -1
  221. package/dist/components/six-checkbox2.js +165 -0
  222. package/dist/components/six-checkbox2.js.map +1 -0
  223. package/dist/components/six-datepicker.js +2 -1
  224. package/dist/components/six-datepicker.js.map +1 -1
  225. package/dist/components/six-details2.js +1 -1
  226. package/dist/components/six-details2.js.map +1 -1
  227. package/dist/components/six-dialog.js +1 -1
  228. package/dist/components/six-dialog.js.map +1 -1
  229. package/dist/components/six-drawer.js +1 -1
  230. package/dist/components/six-drawer.js.map +1 -1
  231. package/dist/components/six-dropdown2.js +199 -125
  232. package/dist/components/six-dropdown2.js.map +1 -1
  233. package/dist/components/six-file-upload.js +1 -1
  234. package/dist/components/six-file-upload.js.map +1 -1
  235. package/dist/components/six-footer.js +1 -1
  236. package/dist/components/six-footer.js.map +1 -1
  237. package/dist/components/six-group-label.js +1 -1
  238. package/dist/components/six-group-label.js.map +1 -1
  239. package/dist/components/six-header.js +13 -4
  240. package/dist/components/six-header.js.map +1 -1
  241. package/dist/components/six-icon-button2.js +1 -1
  242. package/dist/components/six-icon-button2.js.map +1 -1
  243. package/dist/components/six-icon2.js +1 -1
  244. package/dist/components/six-icon2.js.map +1 -1
  245. package/dist/components/six-input2.js +4 -1
  246. package/dist/components/six-input2.js.map +1 -1
  247. package/dist/components/six-item-picker2.js +2 -0
  248. package/dist/components/six-item-picker2.js.map +1 -1
  249. package/dist/components/six-main-container.js.map +1 -1
  250. package/dist/components/six-menu-divider.js +1 -1
  251. package/dist/components/six-menu-divider.js.map +1 -1
  252. package/dist/components/six-menu-item2.js +28 -5
  253. package/dist/components/six-menu-item2.js.map +1 -1
  254. package/dist/components/six-menu-label.js +1 -1
  255. package/dist/components/six-menu-label.js.map +1 -1
  256. package/dist/components/six-menu2.js +22 -6
  257. package/dist/components/six-menu2.js.map +1 -1
  258. package/dist/components/six-progress-bar.js +1 -1
  259. package/dist/components/six-progress-bar.js.map +1 -1
  260. package/dist/components/six-progress-ring.js +1 -1
  261. package/dist/components/six-progress-ring.js.map +1 -1
  262. package/dist/components/six-radio.js +1 -1
  263. package/dist/components/six-radio.js.map +1 -1
  264. package/dist/components/six-range.js +1 -1
  265. package/dist/components/six-range.js.map +1 -1
  266. package/dist/components/six-root.js.map +1 -1
  267. package/dist/components/six-search-field.js +1 -1
  268. package/dist/components/six-search-field.js.map +1 -1
  269. package/dist/components/six-select.js +435 -185
  270. package/dist/components/six-select.js.map +1 -1
  271. package/dist/components/six-sidebar-item-group.js +1 -1
  272. package/dist/components/six-sidebar-item-group.js.map +1 -1
  273. package/dist/components/six-sidebar.js +1 -1
  274. package/dist/components/six-sidebar.js.map +1 -1
  275. package/dist/components/six-spinner2.js +1 -1
  276. package/dist/components/six-spinner2.js.map +1 -1
  277. package/dist/components/six-stage-indicator2.js +1 -1
  278. package/dist/components/six-stage-indicator2.js.map +1 -1
  279. package/dist/components/six-switch.js +1 -1
  280. package/dist/components/six-switch.js.map +1 -1
  281. package/dist/components/six-tab-group.js +1 -1
  282. package/dist/components/six-tab-group.js.map +1 -1
  283. package/dist/components/six-tab-panel.js +1 -1
  284. package/dist/components/six-tab-panel.js.map +1 -1
  285. package/dist/components/six-tab.js +1 -1
  286. package/dist/components/six-tab.js.map +1 -1
  287. package/dist/components/six-tag.js +98 -1
  288. package/dist/components/six-tag.js.map +1 -1
  289. package/dist/components/six-textarea.js +1 -1
  290. package/dist/components/six-textarea.js.map +1 -1
  291. package/dist/components/six-tile.js +1 -1
  292. package/dist/components/six-tile.js.map +1 -1
  293. package/dist/components/six-timepicker2.js +1 -1
  294. package/dist/components/six-timepicker2.js.map +1 -1
  295. package/dist/components/six-tooltip2.js +1 -1
  296. package/dist/components/six-tooltip2.js.map +1 -1
  297. package/dist/components/slot.js +1 -2
  298. package/dist/components/slot.js.map +1 -1
  299. package/dist/components.d.ts +1 -21
  300. package/dist/components.json +545 -115
  301. package/dist/esm/error-messages-1eaaad23.js +115 -0
  302. package/dist/esm/error-messages-1eaaad23.js.map +1 -0
  303. package/dist/esm/{form-control-6b30894f.js → form-control-77fcccd0.js} +2 -2
  304. package/dist/esm/{form-control-6b30894f.js.map → form-control-77fcccd0.js.map} +1 -1
  305. package/dist/esm/{index-17d8173e.js → index-6c10d50b.js} +63 -44
  306. package/dist/esm/index-6c10d50b.js.map +1 -0
  307. package/dist/esm/index.js +1 -106
  308. package/dist/esm/index.js.map +1 -1
  309. package/dist/esm/loader.js +3 -3
  310. package/dist/esm/set-attributes_2.entry.js +2 -2
  311. package/dist/esm/set-attributes_2.entry.js.map +1 -1
  312. package/dist/esm/six-alert.entry.js +2 -2
  313. package/dist/esm/six-alert.entry.js.map +1 -1
  314. package/dist/esm/six-avatar.entry.js +2 -2
  315. package/dist/esm/six-avatar.entry.js.map +1 -1
  316. package/dist/esm/six-badge.entry.js +2 -2
  317. package/dist/esm/six-badge.entry.js.map +1 -1
  318. package/dist/esm/six-button.entry.js +3 -3
  319. package/dist/esm/six-button.entry.js.map +1 -1
  320. package/dist/esm/six-card.entry.js +2 -2
  321. package/dist/esm/six-card.entry.js.map +1 -1
  322. package/dist/esm/six-checkbox_2.entry.js +185 -0
  323. package/dist/esm/six-checkbox_2.entry.js.map +1 -0
  324. package/dist/esm/six-datepicker.entry.js +4 -3
  325. package/dist/esm/six-datepicker.entry.js.map +1 -1
  326. package/dist/esm/six-details.entry.js +2 -2
  327. package/dist/esm/six-details.entry.js.map +1 -1
  328. package/dist/esm/six-dialog.entry.js +3 -3
  329. package/dist/esm/six-dialog.entry.js.map +1 -1
  330. package/dist/esm/six-drawer.entry.js +3 -3
  331. package/dist/esm/six-drawer.entry.js.map +1 -1
  332. package/dist/esm/six-dropdown_2.entry.js +196 -126
  333. package/dist/esm/six-dropdown_2.entry.js.map +1 -1
  334. package/dist/esm/six-error-page.entry.js +1 -1
  335. package/dist/esm/six-error.entry.js +1 -1
  336. package/dist/esm/six-file-list-item.entry.js +1 -1
  337. package/dist/esm/six-file-list.entry.js +1 -1
  338. package/dist/esm/six-file-upload.entry.js +2 -2
  339. package/dist/esm/six-file-upload.entry.js.map +1 -1
  340. package/dist/esm/six-footer.entry.js +2 -2
  341. package/dist/esm/six-footer.entry.js.map +1 -1
  342. package/dist/esm/six-group-label.entry.js +4 -4
  343. package/dist/esm/six-group-label.entry.js.map +1 -1
  344. package/dist/esm/six-header.entry.js +7 -5
  345. package/dist/esm/six-header.entry.js.map +1 -1
  346. package/dist/esm/six-icon-button.entry.js +2 -2
  347. package/dist/esm/six-icon-button.entry.js.map +1 -1
  348. package/dist/esm/six-icon.entry.js +2 -2
  349. package/dist/esm/six-icon.entry.js.map +1 -1
  350. package/dist/esm/six-input.entry.js +6 -4
  351. package/dist/esm/six-input.entry.js.map +1 -1
  352. package/dist/esm/six-item-picker.entry.js +2 -2
  353. package/dist/esm/six-item-picker.entry.js.map +1 -1
  354. package/dist/esm/six-language-switcher.entry.js +1 -1
  355. package/dist/esm/six-layout-grid.entry.js +1 -1
  356. package/dist/esm/six-main-container.entry.js +1 -1
  357. package/dist/esm/six-main-container.entry.js.map +1 -1
  358. package/dist/esm/six-menu-divider.entry.js +2 -2
  359. package/dist/esm/six-menu-divider.entry.js.map +1 -1
  360. package/dist/esm/six-menu-label.entry.js +2 -2
  361. package/dist/esm/six-menu-label.entry.js.map +1 -1
  362. package/dist/esm/six-picto.entry.js +1 -1
  363. package/dist/esm/six-progress-bar.entry.js +2 -2
  364. package/dist/esm/six-progress-bar.entry.js.map +1 -1
  365. package/dist/esm/six-progress-ring.entry.js +2 -2
  366. package/dist/esm/six-progress-ring.entry.js.map +1 -1
  367. package/dist/esm/six-radio.entry.js +2 -2
  368. package/dist/esm/six-radio.entry.js.map +1 -1
  369. package/dist/esm/six-range.entry.js +4 -4
  370. package/dist/esm/six-range.entry.js.map +1 -1
  371. package/dist/esm/six-root.entry.js +1 -1
  372. package/dist/esm/six-root.entry.js.map +1 -1
  373. package/dist/esm/six-search-field.entry.js +2 -2
  374. package/dist/esm/six-search-field.entry.js.map +1 -1
  375. package/dist/esm/six-select.entry.js +300 -169
  376. package/dist/esm/six-select.entry.js.map +1 -1
  377. package/dist/esm/six-sidebar-item-group.entry.js +3 -3
  378. package/dist/esm/six-sidebar-item-group.entry.js.map +1 -1
  379. package/dist/esm/six-sidebar-item.entry.js +1 -1
  380. package/dist/esm/six-sidebar.entry.js +2 -2
  381. package/dist/esm/six-sidebar.entry.js.map +1 -1
  382. package/dist/esm/six-spinner.entry.js +2 -2
  383. package/dist/esm/six-spinner.entry.js.map +1 -1
  384. package/dist/esm/six-switch.entry.js +4 -4
  385. package/dist/esm/six-switch.entry.js.map +1 -1
  386. package/dist/esm/six-tab-group.entry.js +2 -2
  387. package/dist/esm/six-tab-group.entry.js.map +1 -1
  388. package/dist/esm/six-tab-panel.entry.js +2 -2
  389. package/dist/esm/six-tab-panel.entry.js.map +1 -1
  390. package/dist/esm/six-tab.entry.js +2 -2
  391. package/dist/esm/six-tab.entry.js.map +1 -1
  392. package/dist/esm/six-tag.entry.js +3 -3
  393. package/dist/esm/six-tag.entry.js.map +1 -1
  394. package/dist/esm/six-textarea.entry.js +4 -4
  395. package/dist/esm/six-textarea.entry.js.map +1 -1
  396. package/dist/esm/six-tile.entry.js +3 -3
  397. package/dist/esm/six-tile.entry.js.map +1 -1
  398. package/dist/esm/six-timepicker.entry.js +4 -4
  399. package/dist/esm/six-timepicker.entry.js.map +1 -1
  400. package/dist/esm/six-tooltip.entry.js +2 -2
  401. package/dist/esm/six-tooltip.entry.js.map +1 -1
  402. package/dist/esm/{slot-41bc439a.js → slot-56531341.js} +2 -3
  403. package/dist/esm/slot-56531341.js.map +1 -0
  404. package/dist/esm/{types-07748c42.js → types-a07bb999.js} +3 -1
  405. package/dist/esm/types-a07bb999.js.map +1 -0
  406. package/dist/esm/ui-library.js +4 -4
  407. package/dist/esm/ui-library.js.map +1 -1
  408. package/dist/types/components/six-dropdown/six-dropdown.d.ts +28 -9
  409. package/dist/types/components/six-header/six-header.d.ts +2 -0
  410. package/dist/types/components/six-input/six-input.d.ts +4 -0
  411. package/dist/types/components/six-menu/six-menu.d.ts +4 -0
  412. package/dist/types/components/six-menu-item/six-menu-item.d.ts +7 -1
  413. package/dist/types/components/six-select/six-select.d.ts +27 -12
  414. package/dist/types/components.d.ts +62 -3
  415. package/dist/types/utils/error-messages.d.ts +1 -0
  416. package/dist/types/utils/slot.d.ts +0 -1
  417. package/dist/ui-library/index.esm.js +1 -1
  418. package/dist/ui-library/index.esm.js.map +1 -1
  419. package/dist/ui-library/{p-c86aa5b3.entry.js → p-01ae4500.entry.js} +2 -2
  420. package/dist/ui-library/p-021f6da9.entry.js +2 -0
  421. package/dist/ui-library/{p-6aa2929a.entry.js.map → p-021f6da9.entry.js.map} +1 -1
  422. package/dist/ui-library/p-0274c52c.entry.js +2 -0
  423. package/dist/ui-library/{p-882fbf6f.entry.js.map → p-0274c52c.entry.js.map} +1 -1
  424. package/dist/ui-library/{p-f73a6bdc.entry.js → p-0cb135aa.entry.js} +2 -2
  425. package/dist/ui-library/p-0cebf1d2.js +2 -0
  426. package/dist/ui-library/p-0cebf1d2.js.map +1 -0
  427. package/dist/ui-library/p-1431a2a8.entry.js +2 -0
  428. package/dist/ui-library/p-1431a2a8.entry.js.map +1 -0
  429. package/dist/ui-library/p-1aa28025.entry.js +2 -0
  430. package/dist/ui-library/p-1aa28025.entry.js.map +1 -0
  431. package/dist/ui-library/p-1b135e1c.entry.js +2 -0
  432. package/dist/ui-library/{p-ce373da5.entry.js.map → p-1b135e1c.entry.js.map} +1 -1
  433. package/dist/ui-library/{p-1d0c5929.entry.js → p-1be990f9.entry.js} +2 -2
  434. package/dist/ui-library/{p-1d0c5929.entry.js.map → p-1be990f9.entry.js.map} +1 -1
  435. package/dist/ui-library/p-2008636b.entry.js +2 -0
  436. package/dist/ui-library/{p-19a61686.entry.js.map → p-2008636b.entry.js.map} +1 -1
  437. package/dist/ui-library/p-2132da0a.entry.js +2 -0
  438. package/dist/ui-library/{p-479d8087.entry.js.map → p-2132da0a.entry.js.map} +1 -1
  439. package/dist/ui-library/p-2cd674e0.entry.js +2 -0
  440. package/dist/ui-library/{p-ee71e3a3.entry.js.map → p-2cd674e0.entry.js.map} +1 -1
  441. package/dist/ui-library/p-2d86ba99.entry.js +2 -0
  442. package/dist/ui-library/p-2d86ba99.entry.js.map +1 -0
  443. package/dist/ui-library/p-31a4a74c.entry.js +2 -0
  444. package/dist/ui-library/p-31a4a74c.entry.js.map +1 -0
  445. package/dist/ui-library/p-3783aed0.entry.js +2 -0
  446. package/dist/ui-library/p-3783aed0.entry.js.map +1 -0
  447. package/dist/ui-library/p-391f10f1.entry.js +2 -0
  448. package/dist/ui-library/p-391f10f1.entry.js.map +1 -0
  449. package/dist/ui-library/p-3dd28dc0.entry.js +2 -0
  450. package/dist/ui-library/{p-23c02c98.entry.js.map → p-3dd28dc0.entry.js.map} +1 -1
  451. package/dist/ui-library/p-3f0f59b6.entry.js +2 -0
  452. package/dist/ui-library/{p-49aa8d1e.entry.js.map → p-3f0f59b6.entry.js.map} +1 -1
  453. package/dist/ui-library/p-46ee280d.entry.js +2 -0
  454. package/dist/ui-library/{p-c2df8c27.entry.js.map → p-46ee280d.entry.js.map} +1 -1
  455. package/dist/ui-library/p-4752a63c.entry.js +2 -0
  456. package/dist/ui-library/{p-7432d409.entry.js.map → p-4752a63c.entry.js.map} +1 -1
  457. package/dist/ui-library/p-4772a9d3.entry.js +2 -0
  458. package/dist/ui-library/{p-a4e4620c.entry.js.map → p-4772a9d3.entry.js.map} +1 -1
  459. package/dist/ui-library/p-48c453f1.entry.js +2 -0
  460. package/dist/ui-library/{p-0e7332db.entry.js.map → p-48c453f1.entry.js.map} +1 -1
  461. package/dist/ui-library/p-4a3ba956.entry.js +2 -0
  462. package/dist/ui-library/{p-fcd57e0a.entry.js.map → p-4a3ba956.entry.js.map} +1 -1
  463. package/dist/ui-library/p-4b154936.entry.js +2 -0
  464. package/dist/ui-library/p-4b154936.entry.js.map +1 -0
  465. package/dist/ui-library/p-5a5f6869.entry.js +2 -0
  466. package/dist/ui-library/{p-a0658b26.entry.js.map → p-5a5f6869.entry.js.map} +1 -1
  467. package/dist/ui-library/{p-c1675a45.entry.js → p-621c2742.entry.js} +2 -2
  468. package/dist/ui-library/p-65778e3d.entry.js +2 -0
  469. package/dist/ui-library/p-65778e3d.entry.js.map +1 -0
  470. package/dist/ui-library/{p-6907a7dc.js → p-67496e8c.js} +2 -2
  471. package/dist/ui-library/p-78529c8c.entry.js +2 -0
  472. package/dist/ui-library/{p-b5ac1219.entry.js.map → p-78529c8c.entry.js.map} +1 -1
  473. package/dist/ui-library/{p-74a714c0.entry.js → p-7eb4bbe7.entry.js} +2 -2
  474. package/dist/ui-library/{p-d310a6dd.entry.js → p-831517cd.entry.js} +2 -2
  475. package/dist/ui-library/{p-0861899a.js → p-862d474e.js} +1 -1
  476. package/dist/ui-library/p-862d474e.js.map +1 -0
  477. package/dist/ui-library/{p-816f857d.entry.js → p-87e197ee.entry.js} +2 -2
  478. package/dist/ui-library/p-88767c27.entry.js +2 -0
  479. package/dist/ui-library/{p-ada23fe3.entry.js.map → p-88767c27.entry.js.map} +1 -1
  480. package/dist/ui-library/p-8c38a7bd.entry.js +2 -0
  481. package/dist/ui-library/{p-c12a94ce.entry.js.map → p-8c38a7bd.entry.js.map} +1 -1
  482. package/dist/ui-library/p-943ce0f2.entry.js +2 -0
  483. package/dist/ui-library/p-943ce0f2.entry.js.map +1 -0
  484. package/dist/ui-library/{p-bee65dd9.entry.js → p-98ce9502.entry.js} +2 -2
  485. package/dist/ui-library/p-98ce9502.entry.js.map +1 -0
  486. package/dist/ui-library/p-a036cc6f.entry.js +2 -0
  487. package/dist/ui-library/{p-3d54ecf2.entry.js.map → p-a036cc6f.entry.js.map} +1 -1
  488. package/dist/ui-library/p-a29f6a0e.entry.js +2 -0
  489. package/dist/ui-library/p-a29f6a0e.entry.js.map +1 -0
  490. package/dist/ui-library/p-a3fd8c74.entry.js +2 -0
  491. package/dist/ui-library/p-a3fd8c74.entry.js.map +1 -0
  492. package/dist/ui-library/p-a919b557.entry.js +2 -0
  493. package/dist/ui-library/p-a919b557.entry.js.map +1 -0
  494. package/dist/ui-library/p-ace4ec84.entry.js +2 -0
  495. package/dist/ui-library/p-ace4ec84.entry.js.map +1 -0
  496. package/dist/ui-library/{p-cd35b3c6.entry.js → p-adf5a4da.entry.js} +2 -2
  497. package/dist/ui-library/{p-9b1ff147.entry.js → p-b5f844f7.entry.js} +2 -2
  498. package/dist/ui-library/p-b5f844f7.entry.js.map +1 -0
  499. package/dist/ui-library/p-b8ea574b.entry.js +2 -0
  500. package/dist/ui-library/p-b8ea574b.entry.js.map +1 -0
  501. package/dist/ui-library/p-ca63a6fa.js +3 -0
  502. package/dist/ui-library/p-ca63a6fa.js.map +1 -0
  503. package/dist/ui-library/{p-d2cf4280.entry.js → p-d221d86a.entry.js} +2 -2
  504. package/dist/ui-library/p-d702b6ec.entry.js +2 -0
  505. package/dist/ui-library/{p-58661675.entry.js.map → p-d702b6ec.entry.js.map} +1 -1
  506. package/dist/ui-library/p-db9d2fde.entry.js +2 -0
  507. package/dist/ui-library/{p-bdb79948.entry.js.map → p-db9d2fde.entry.js.map} +1 -1
  508. package/dist/ui-library/p-e080d5b6.js +2 -0
  509. package/dist/ui-library/p-e080d5b6.js.map +1 -0
  510. package/dist/ui-library/p-e0dd0307.entry.js +2 -0
  511. package/dist/ui-library/{p-3187bc23.entry.js.map → p-e0dd0307.entry.js.map} +1 -1
  512. package/dist/ui-library/p-e340a0ad.entry.js +2 -0
  513. package/dist/ui-library/{p-c07b1240.entry.js.map → p-e340a0ad.entry.js.map} +1 -1
  514. package/dist/ui-library/p-efa14ac2.entry.js +2 -0
  515. package/dist/ui-library/{p-5d43ea07.entry.js.map → p-efa14ac2.entry.js.map} +1 -1
  516. package/dist/ui-library/p-fce214eb.entry.js +2 -0
  517. package/dist/ui-library/{p-911eb578.entry.js.map → p-fce214eb.entry.js.map} +1 -1
  518. package/dist/ui-library/p-fe87f64b.entry.js +2 -0
  519. package/dist/ui-library/p-fe87f64b.entry.js.map +1 -0
  520. package/dist/ui-library/ui-library.css +1 -10
  521. package/dist/ui-library/ui-library.esm.js +1 -1
  522. package/dist/ui-library/ui-library.esm.js.map +1 -1
  523. package/package.json +5 -8
  524. package/dist/cjs/index-3baddcdc.js.map +0 -1
  525. package/dist/cjs/six-checkbox.cjs.entry.js +0 -127
  526. package/dist/cjs/six-checkbox.cjs.entry.js.map +0 -1
  527. package/dist/cjs/six-menu-item.cjs.entry.js +0 -63
  528. package/dist/cjs/six-menu-item.cjs.entry.js.map +0 -1
  529. package/dist/cjs/slot-9821749e.js.map +0 -1
  530. package/dist/cjs/types-0a6d66f6.js.map +0 -1
  531. package/dist/components/six-tag2.js +0 -102
  532. package/dist/components/six-tag2.js.map +0 -1
  533. package/dist/esm/index-17d8173e.js.map +0 -1
  534. package/dist/esm/six-checkbox.entry.js +0 -123
  535. package/dist/esm/six-checkbox.entry.js.map +0 -1
  536. package/dist/esm/six-menu-item.entry.js +0 -59
  537. package/dist/esm/six-menu-item.entry.js.map +0 -1
  538. package/dist/esm/slot-41bc439a.js.map +0 -1
  539. package/dist/esm/types-07748c42.js.map +0 -1
  540. package/dist/ui-library/p-0861899a.js.map +0 -1
  541. package/dist/ui-library/p-0a81b42c.entry.js +0 -2
  542. package/dist/ui-library/p-0a81b42c.entry.js.map +0 -1
  543. package/dist/ui-library/p-0beec94f.js +0 -3
  544. package/dist/ui-library/p-0beec94f.js.map +0 -1
  545. package/dist/ui-library/p-0e7332db.entry.js +0 -2
  546. package/dist/ui-library/p-178f5782.entry.js +0 -2
  547. package/dist/ui-library/p-178f5782.entry.js.map +0 -1
  548. package/dist/ui-library/p-19a61686.entry.js +0 -2
  549. package/dist/ui-library/p-23c02c98.entry.js +0 -2
  550. package/dist/ui-library/p-28221447.entry.js +0 -2
  551. package/dist/ui-library/p-28221447.entry.js.map +0 -1
  552. package/dist/ui-library/p-2eed9d8d.entry.js +0 -2
  553. package/dist/ui-library/p-2eed9d8d.entry.js.map +0 -1
  554. package/dist/ui-library/p-3187bc23.entry.js +0 -2
  555. package/dist/ui-library/p-32e1a5ab.entry.js +0 -2
  556. package/dist/ui-library/p-32e1a5ab.entry.js.map +0 -1
  557. package/dist/ui-library/p-32fed3c7.entry.js +0 -2
  558. package/dist/ui-library/p-32fed3c7.entry.js.map +0 -1
  559. package/dist/ui-library/p-3d54ecf2.entry.js +0 -2
  560. package/dist/ui-library/p-4229f7e8.entry.js +0 -2
  561. package/dist/ui-library/p-4229f7e8.entry.js.map +0 -1
  562. package/dist/ui-library/p-479d8087.entry.js +0 -2
  563. package/dist/ui-library/p-49aa8d1e.entry.js +0 -2
  564. package/dist/ui-library/p-58661675.entry.js +0 -2
  565. package/dist/ui-library/p-5d43ea07.entry.js +0 -2
  566. package/dist/ui-library/p-6aa2929a.entry.js +0 -2
  567. package/dist/ui-library/p-7432d409.entry.js +0 -2
  568. package/dist/ui-library/p-76825395.entry.js +0 -2
  569. package/dist/ui-library/p-76825395.entry.js.map +0 -1
  570. package/dist/ui-library/p-882fbf6f.entry.js +0 -2
  571. package/dist/ui-library/p-88fd4973.entry.js +0 -2
  572. package/dist/ui-library/p-88fd4973.entry.js.map +0 -1
  573. package/dist/ui-library/p-8b750c9e.entry.js +0 -2
  574. package/dist/ui-library/p-8b750c9e.entry.js.map +0 -1
  575. package/dist/ui-library/p-911eb578.entry.js +0 -2
  576. package/dist/ui-library/p-93fcda4a.entry.js +0 -2
  577. package/dist/ui-library/p-93fcda4a.entry.js.map +0 -1
  578. package/dist/ui-library/p-981b3228.entry.js +0 -2
  579. package/dist/ui-library/p-981b3228.entry.js.map +0 -1
  580. package/dist/ui-library/p-9b1ff147.entry.js.map +0 -1
  581. package/dist/ui-library/p-a0658b26.entry.js +0 -2
  582. package/dist/ui-library/p-a4e4620c.entry.js +0 -2
  583. package/dist/ui-library/p-ada23fe3.entry.js +0 -2
  584. package/dist/ui-library/p-b5ac1219.entry.js +0 -2
  585. package/dist/ui-library/p-ba247565.entry.js +0 -2
  586. package/dist/ui-library/p-ba247565.entry.js.map +0 -1
  587. package/dist/ui-library/p-bdb79948.entry.js +0 -2
  588. package/dist/ui-library/p-bee65dd9.entry.js.map +0 -1
  589. package/dist/ui-library/p-c07b1240.entry.js +0 -2
  590. package/dist/ui-library/p-c12a94ce.entry.js +0 -2
  591. package/dist/ui-library/p-c2df8c27.entry.js +0 -2
  592. package/dist/ui-library/p-ce373da5.entry.js +0 -2
  593. package/dist/ui-library/p-dfb6bff6.entry.js +0 -2
  594. package/dist/ui-library/p-dfb6bff6.entry.js.map +0 -1
  595. package/dist/ui-library/p-ee71e3a3.entry.js +0 -2
  596. package/dist/ui-library/p-ef317d69.entry.js +0 -2
  597. package/dist/ui-library/p-ef317d69.entry.js.map +0 -1
  598. package/dist/ui-library/p-f385f1c2.entry.js +0 -2
  599. package/dist/ui-library/p-f385f1c2.entry.js.map +0 -1
  600. package/dist/ui-library/p-faa04bb5.js +0 -2
  601. package/dist/ui-library/p-faa04bb5.js.map +0 -1
  602. package/dist/ui-library/p-fcd57e0a.entry.js +0 -2
  603. /package/dist/ui-library/{p-c86aa5b3.entry.js.map → p-01ae4500.entry.js.map} +0 -0
  604. /package/dist/ui-library/{p-f73a6bdc.entry.js.map → p-0cb135aa.entry.js.map} +0 -0
  605. /package/dist/ui-library/{p-c1675a45.entry.js.map → p-621c2742.entry.js.map} +0 -0
  606. /package/dist/ui-library/{p-6907a7dc.js.map → p-67496e8c.js.map} +0 -0
  607. /package/dist/ui-library/{p-74a714c0.entry.js.map → p-7eb4bbe7.entry.js.map} +0 -0
  608. /package/dist/ui-library/{p-d310a6dd.entry.js.map → p-831517cd.entry.js.map} +0 -0
  609. /package/dist/ui-library/{p-816f857d.entry.js.map → p-87e197ee.entry.js.map} +0 -0
  610. /package/dist/ui-library/{p-cd35b3c6.entry.js.map → p-adf5a4da.entry.js.map} +0 -0
  611. /package/dist/ui-library/{p-d2cf4280.entry.js.map → p-d221d86a.entry.js.map} +0 -0
@@ -3,7 +3,7 @@ import { getTextContent, hasSlot } from "../../utils/slot";
3
3
  import FormControl from "../../functional-components/form-control/form-control";
4
4
  import { EventListeners } from "../../utils/event-listeners";
5
5
  import { debounce, DEFAULT_DEBOUNCE_FAST } from "../../utils/execution-control";
6
- import { isValueEmpty } from "./util";
6
+ import { getLanguage } from "../../utils/error-messages";
7
7
  let id = 0;
8
8
  /**
9
9
  * @since 1.0
@@ -32,8 +32,9 @@ export class SixSelect {
32
32
  this.labelId = `select-label-${id}`;
33
33
  this.helpTextId = `select-help-text-${id}`;
34
34
  this.errorTextId = `select-error-text-${id}`;
35
- this.touched = false;
36
35
  this.eventListeners = new EventListeners();
36
+ this.activeItemIndex = -1;
37
+ this.resizeObserver = new ResizeObserver(() => this.updateDisplayedValues());
37
38
  this.handleBlur = () => {
38
39
  this.hasFocus = false;
39
40
  this.sixBlur.emit();
@@ -42,37 +43,26 @@ export class SixSelect {
42
43
  this.hasFocus = true;
43
44
  this.sixFocus.emit();
44
45
  };
45
- this.handleClearClick = (event) => {
46
+ this.handleClearClick = async (event) => {
47
+ var _a;
46
48
  event.stopPropagation();
47
- this.clearValues();
49
+ await this.clearValues();
50
+ await ((_a = this.dropdown) === null || _a === void 0 ? void 0 : _a.hide());
48
51
  this.sixChange.emit({ value: this.value, isSelected: true });
49
52
  };
50
- this.handleSelectAll = (event) => {
51
- const nonFilteredItems = this.getItems().filter((item) => item.style.display !== 'none');
52
- const keyName = event.key;
53
- const keyCode = event.code;
54
- if (keyName === 'Control') {
53
+ this.handleKeyDown = (event) => {
54
+ var _a, _b, _c, _d;
55
+ if (this.virtualScroll || this.autocomplete) {
55
56
  return;
56
57
  }
57
- if (this.isOpen && this.multiple && keyCode === 'KeyA' && event.ctrlKey) {
58
- event.preventDefault();
59
- const hasDeselectedOptions = nonFilteredItems.some((opt) => !opt.disabled && !opt.checked);
60
- nonFilteredItems
61
- .filter((option) => !option.disabled)
62
- .forEach((option) => (option.checked = hasDeselectedOptions));
63
- const checkedItems = nonFilteredItems.filter((option) => option.checked).map((option) => option.value);
64
- this.value = hasDeselectedOptions ? checkedItems : [];
65
- this.sixChange.emit({ value: this.value, isSelected: true });
58
+ if (['Control', 'Escape'].includes(event.key)) {
59
+ return;
66
60
  }
67
- };
68
- this.handleKeyDown = (event) => {
69
- var _a, _b, _c, _d;
70
- const target = event.target;
71
- const items = this.getItems();
72
- const firstItem = items[0];
73
- const lastItem = items[items.length - 1];
74
- // Ignore key presses on tags
75
- if (target.tagName.toLowerCase() === 'six-tag') {
61
+ const items = this.getVisibleItems();
62
+ // Ctrl-A selects all items
63
+ if (this.isOpen && this.multiple && event.code === 'KeyA' && event.ctrlKey) {
64
+ event.preventDefault();
65
+ this.selectAll();
76
66
  return;
77
67
  }
78
68
  // Tabbing out of the control closes it
@@ -82,29 +72,48 @@ export class SixSelect {
82
72
  }
83
73
  return;
84
74
  }
85
- // Up/down opens the menu
86
- if (['ArrowDown', 'ArrowUp'].includes(event.key)) {
75
+ if (event.key === ' ' && !this.multiple) {
76
+ return;
77
+ }
78
+ // Enter and Space selects the active item
79
+ if (this.activeItemIndex >= 0 && ['Enter', ' '].includes(event.key)) {
80
+ const activeItem = items.at(this.activeItemIndex);
87
81
  event.preventDefault();
82
+ activeItem === null || activeItem === void 0 ? void 0 : activeItem.click();
83
+ return;
84
+ }
85
+ // Move the selection when pressing up or down
86
+ if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
88
87
  // Show the menu if it's not already open
89
88
  if (!this.isOpen) {
90
89
  (_b = this.dropdown) === null || _b === void 0 ? void 0 : _b.show();
91
90
  }
92
- // Focus on a menu item
93
- if (event.key === 'ArrowDown' && firstItem) {
94
- firstItem.setFocus();
95
- return;
96
- }
97
- if (event.key === 'ArrowUp' && lastItem) {
98
- lastItem.setFocus();
99
- return;
91
+ if (items.length > 0) {
92
+ event.preventDefault();
93
+ if (event.key === 'ArrowDown') {
94
+ this.activeItemIndex++;
95
+ }
96
+ else if (event.key === 'ArrowUp') {
97
+ this.activeItemIndex--;
98
+ }
99
+ else if (event.key === 'Home') {
100
+ this.activeItemIndex = 0;
101
+ }
102
+ else if (event.key === 'End') {
103
+ this.activeItemIndex = items.length - 1;
104
+ }
105
+ if (this.activeItemIndex < 0)
106
+ this.activeItemIndex = 0;
107
+ if (this.activeItemIndex > items.length - 1)
108
+ this.activeItemIndex = items.length - 1;
109
+ (_c = items.at(this.activeItemIndex)) === null || _c === void 0 ? void 0 : _c.setFocus();
100
110
  }
101
111
  }
102
- // All other keys open the menu and initiate type to select
112
+ // All other keys open the menu
103
113
  if (!this.isOpen) {
104
114
  event.stopPropagation();
105
115
  event.preventDefault();
106
- (_c = this.dropdown) === null || _c === void 0 ? void 0 : _c.show();
107
- (_d = this.menu) === null || _d === void 0 ? void 0 : _d.typeToSelect(event.key);
116
+ (_d = this.dropdown) === null || _d === void 0 ? void 0 : _d.show();
108
117
  }
109
118
  };
110
119
  this.handleLabelClick = () => {
@@ -112,34 +121,47 @@ export class SixSelect {
112
121
  (_a = this.box) === null || _a === void 0 ? void 0 : _a.focus();
113
122
  };
114
123
  this.handleMenuSelect = (event) => {
115
- const item = event.detail.item;
116
- const getValue = () => {
117
- if (this.multiple) {
118
- return this.value.includes(item.value)
119
- ? this.value.filter((v) => v !== item.value)
120
- : [...this.value, item.value];
121
- }
122
- else {
123
- return item.value;
124
- }
125
- };
126
- this.value = getValue();
127
- this.syncItemsFromValue();
124
+ const currentItem = event.detail.item;
125
+ if (this.multiple) {
126
+ currentItem.checked = !currentItem.checked;
127
+ }
128
+ else {
129
+ this.getItems().forEach((i) => (i.checked = false));
130
+ currentItem.checked = true;
131
+ }
132
+ this.syncValueFromItems();
128
133
  this.sixChange.emit({ value: this.value, isSelected: true });
129
134
  };
130
135
  this.handleMenuShow = (event) => {
131
- var _a;
132
136
  if (this.disabled) {
133
137
  event.preventDefault();
134
138
  return;
135
139
  }
136
- this.resizeMenu();
137
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.observe(this.host);
140
+ this.activeItemIndex = -1;
141
+ // reset display style of main items
142
+ const mainItems = this.getItems();
143
+ mainItems.forEach((item) => (item.style.display = 'unset'));
144
+ // show selected menu items in the selection container and hide them in the main container
145
+ const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);
146
+ if (!this.virtualScroll && this.multiple) {
147
+ checkedItems.forEach((i) => (i.style.display = 'none'));
148
+ this.selectionContainerItems = checkedItems.map((item) => {
149
+ return (h("six-menu-item", { key: item.value, checked: true, value: item.value, checkType: this.multiple ? 'checkbox' : 'check', onClick: (event) => {
150
+ event.stopPropagation();
151
+ if (!this.disabled) {
152
+ const menuItem = event.target;
153
+ const isChecked = menuItem.checked;
154
+ menuItem.checked = !isChecked;
155
+ item.checked = !isChecked;
156
+ this.syncValueFromItems();
157
+ this.sixChange.emit({ value: this.value, isSelected: true });
158
+ }
159
+ } }, this.getItemLabel(item)));
160
+ });
161
+ }
138
162
  this.isOpen = true;
139
163
  };
140
164
  this.handleMenuHide = () => {
141
- var _a;
142
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(this.host);
143
165
  this.isOpen = false;
144
166
  };
145
167
  this.handleSlotChange = () => {
@@ -148,34 +170,22 @@ export class SixSelect {
148
170
  this.hasErrorTextSlot = hasSlot(this.host, 'error-text');
149
171
  this.syncItemsFromValue();
150
172
  };
151
- this.handleTagInteraction = (event) => {
152
- // Don't toggle the menu when a tag's clear button is activated
153
- const path = event.composedPath();
154
- const clearButton = path.find((el) => {
155
- if (el instanceof HTMLElement) {
156
- const element = el;
157
- return element.classList.contains('tag__clear');
158
- }
159
- });
160
- if (clearButton) {
161
- event.stopPropagation();
162
- this.sixChange.emit({ value: this.value, isSelected: true });
163
- }
164
- };
165
173
  this.hasFocus = false;
166
174
  this.hasHelpTextSlot = false;
167
175
  this.hasLabelSlot = false;
168
176
  this.hasErrorTextSlot = false;
169
177
  this.isOpen = false;
170
- this.displayLabel = '';
171
- this.displayTags = [];
178
+ this.displayedValues = [];
179
+ this.selectionContainerItems = [];
172
180
  this.multiple = false;
181
+ this.selectAllButton = false;
182
+ this.selectAllText = undefined;
173
183
  this.maxTagsVisible = 3;
174
184
  this.disabled = false;
175
185
  this.name = '';
176
186
  this.placeholder = '';
177
187
  this.filterPlaceholder = undefined;
178
- this.filterDebounce = DEFAULT_DEBOUNCE_FAST;
188
+ this.filterDebounce = undefined;
179
189
  this.size = 'medium';
180
190
  this.hoist = false;
181
191
  this.value = '';
@@ -220,14 +230,10 @@ export class SixSelect {
220
230
  await this.syncItemsFromValue();
221
231
  }
222
232
  connectedCallback() {
223
- var _a;
224
233
  if (this.virtualScroll && this.options === null) {
225
234
  console.error('Options must be defined when using virtual scrolling');
226
235
  }
227
- (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
228
- this.eventListeners.forward('six-select-change', 'change', this.host);
229
- this.eventListeners.forward('six-select-blur', 'blur', this.host);
230
- this.eventListeners.forward('six-select-focus', 'focus', this.host);
236
+ this.init();
231
237
  }
232
238
  componentWillLoad() {
233
239
  this.handleSlotChange();
@@ -236,22 +242,22 @@ export class SixSelect {
236
242
  }
237
243
  }
238
244
  componentDidLoad() {
239
- if (this.input == null)
240
- return;
241
- const input = this.input;
242
- this.resizeObserver = new ResizeObserver(() => this.resizeMenu());
245
+ this.init();
243
246
  // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning
244
247
  requestAnimationFrame(() => this.syncItemsFromValue());
245
- this.eventListeners.add(input, 'six-input-input', debounce((event) => {
246
- const enteredValue = input.value;
247
- this.clearValues();
248
- this.sixChange.emit({ value: enteredValue, isSelected: false });
249
- event.stopPropagation();
250
- }, this.inputDebounce));
251
- input.value = this.hasSelection() ? this.displayLabel : '';
248
+ if (this.autocomplete && this.autocompleteInput != null) {
249
+ const autocompleteInput = this.autocompleteInput;
250
+ this.eventListeners.add(autocompleteInput, 'six-input-input', debounce((event) => {
251
+ this.value = autocompleteInput.value;
252
+ this.sixChange.emit({ value: this.value, isSelected: false });
253
+ event.stopPropagation();
254
+ }, this.inputDebounce));
255
+ autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;
256
+ }
252
257
  }
253
258
  disconnectedCallback() {
254
259
  var _a;
260
+ this.resizeObserver.disconnect();
255
261
  (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeEventListener('slotchange', this.handleSlotChange);
256
262
  this.eventListeners.removeAll();
257
263
  }
@@ -261,6 +267,16 @@ export class SixSelect {
261
267
  this.hasFocus = true;
262
268
  (_a = this.box) === null || _a === void 0 ? void 0 : _a.focus(options);
263
269
  }
270
+ init() {
271
+ var _a;
272
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
273
+ this.eventListeners.forward('six-select-change', 'change', this.host);
274
+ this.eventListeners.forward('six-select-blur', 'blur', this.host);
275
+ this.eventListeners.forward('six-select-focus', 'focus', this.host);
276
+ if (this.displayValuesContainer) {
277
+ this.resizeObserver.observe(this.displayValuesContainer);
278
+ }
279
+ }
264
280
  getItemLabel(item) {
265
281
  var _a, _b;
266
282
  const slot = (_a = item.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
@@ -273,92 +289,123 @@ export class SixSelect {
273
289
  }
274
290
  }
275
291
  getItems() {
276
- if (this.options !== null) {
277
- return this.options.map((option) => h("six-menu-item", { value: option.value }, option.label));
292
+ if (this.options !== null && this.menu != null && this.menu.shadowRoot != null) {
293
+ return [...this.menu.shadowRoot.querySelectorAll('six-menu-item')];
278
294
  }
279
295
  return [...this.host.querySelectorAll('six-menu-item')];
280
296
  }
281
- hasMenuItems() {
282
- return this.getItems().length > 0;
297
+ getVisibleItems() {
298
+ const selectionContainerItems = this.getSelectionContainerItems();
299
+ const mainItems = this.getItems();
300
+ return [...selectionContainerItems, ...mainItems].filter((i) => i.style.display !== 'none');
301
+ }
302
+ getSelectionContainerItems() {
303
+ var _a;
304
+ return [...(((_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('six-menu-item')) || [])];
283
305
  }
284
306
  getValueAsArray() {
285
307
  const values = Array.isArray(this.value) ? this.value : this.value === '' ? [] : [this.value];
286
308
  // enforce that the values are converted to 'string' before the value is compared
287
309
  return values.map(String);
288
310
  }
289
- clearValues() {
311
+ async clearValues() {
290
312
  this.value = this.multiple ? [] : '';
291
- this.syncItemsFromValue();
313
+ this.selectionContainerItems = [];
314
+ await this.syncItemsFromValue();
292
315
  }
293
- resizeMenu() {
294
- if (this.menu == null || this.box == null)
295
- return;
296
- this.menu.style.minWidth = `${this.box.clientWidth}px`;
297
- if (this.dropdown) {
298
- this.dropdown.reposition();
299
- }
316
+ selectAll() {
317
+ const visibleItems = this.getVisibleItems();
318
+ const hasDeselectedOptions = this.hasDeselectedOptions();
319
+ visibleItems.filter((option) => !option.disabled).forEach((option) => (option.checked = hasDeselectedOptions));
320
+ const checkedItems = visibleItems.filter((option) => option.checked).map((option) => option.value);
321
+ this.value = hasDeselectedOptions ? checkedItems : [];
322
+ this.sixChange.emit({ value: this.value, isSelected: true });
300
323
  }
324
+ /**
325
+ * Sets the checked state of menu items and renders the displayed values.
326
+ */
301
327
  async syncItemsFromValue() {
302
- const items = this.getItems();
328
+ const selectionContainerItems = this.getSelectionContainerItems();
329
+ const mainItems = this.getItems();
303
330
  const value = this.getValueAsArray();
304
- // Sync checked states
305
- items.forEach((item) => (item.checked = value.includes(item.value)));
306
- // Sync display label
331
+ selectionContainerItems.forEach((item) => {
332
+ item.checkType = this.multiple ? 'checkbox' : 'check';
333
+ item.checked = value.includes(item.value);
334
+ });
335
+ mainItems.forEach((item) => {
336
+ item.checkType = this.multiple ? 'checkbox' : 'check';
337
+ item.checked = value.includes(item.value);
338
+ });
339
+ const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);
340
+ this.displayedValues = checkedItems.map((i) => this.getItemLabel(i));
341
+ if (this.autocomplete && this.autocompleteInput != null) {
342
+ this.autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;
343
+ }
344
+ requestAnimationFrame(() => {
345
+ this.updateDisplayedValues();
346
+ });
347
+ }
348
+ syncValueFromItems() {
349
+ const items = this.getItems();
350
+ const checkedValues = items.filter((item) => item.checked).map((item) => item.value);
307
351
  if (this.multiple) {
308
- const checkedItems = [];
309
- value.forEach((val) => items.map((item) => (item.value === val ? checkedItems.push(item) : null)));
310
- this.displayTags = checkedItems.map((item) => {
311
- return (h("six-tag", { exportparts: "base:tag", type: "primary", size: this.size, pill: this.pill, clearable: true, onClick: this.handleTagInteraction, onKeyDown: this.handleTagInteraction, "onSix-tag-clear": (event) => {
312
- event.stopPropagation();
313
- if (!this.disabled) {
314
- item.checked = false;
315
- this.syncValueFromItems();
316
- }
317
- } }, this.getItemLabel(item)));
318
- });
319
- if (this.maxTagsVisible > 0 && this.displayTags.length > this.maxTagsVisible) {
320
- const total = this.displayTags.length;
321
- this.displayLabel = '';
322
- this.displayTags = this.displayTags.slice(0, this.maxTagsVisible);
323
- this.displayTags.push(h("six-tag", { exportparts: "base:tag", type: "info", size: this.size }, "+", total - this.maxTagsVisible));
324
- }
352
+ this.value = checkedValues;
325
353
  }
326
354
  else {
327
- this.displayLabel = this.extractLabelForSelectedItem(value, items);
328
- this.displayTags = [];
329
- }
330
- if (!isValueEmpty(this.value)) {
331
- this.touched = true;
332
- }
333
- if (this.touched && this.input != null) {
334
- this.input.value = Array.isArray(this.value) ? this.value.join(',') : this.value;
355
+ this.value = checkedValues.length > 0 ? checkedValues[0] : '';
335
356
  }
336
357
  }
337
- extractLabelForSelectedItem(value, items) {
338
- if (value.length === 0 || (value.length === 1 && value[0] === '')) {
339
- return '';
358
+ updateDisplayedValues() {
359
+ var _a, _b;
360
+ const displayValueOptions = [...((_b = (_a = this.displayValuesContainer) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.display-value')) !== null && _b !== void 0 ? _b : [])];
361
+ if (this.displayValuesContainer == null || displayValueOptions.length === 0 || this.overflowCount == null) {
362
+ return;
340
363
  }
341
- if (this.options !== null) {
342
- const selectedOption = this.options.find((item) => item.value === value[0]);
343
- return (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value) || '';
364
+ // Show all options and separators to properly measure all widths.
365
+ displayValueOptions.forEach((d) => {
366
+ showDisplayValue(d);
367
+ showSeparator(d);
368
+ });
369
+ // Measure available width. The last separator is added to the available width, because it will be hidden later on.
370
+ const separator = displayValueOptions[displayValueOptions.length - 1].querySelector('.separator');
371
+ if (separator == null)
372
+ return;
373
+ let availableWidth = getWidth(this.displayValuesContainer) + getWidth(separator);
374
+ // Compute how many display value elements fit in the available width
375
+ let { fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth);
376
+ if (overflowCount === 0) {
377
+ // All items fit, hide overflow count and show all values.
378
+ hideOverflowCount(this.overflowCount);
379
+ showFittingValues(displayValueOptions, fitCount);
380
+ }
381
+ else {
382
+ // Not all items fit in the available width. Recompute the available width with the overflow-count visible.
383
+ // Increment overflow count by one to make sure the elements fit, even if the overflow count increases to the
384
+ // next higher power of ten, e.g. from 9 to 10 or 99 to 100.
385
+ setOverflowCount(this.overflowCount, overflowCount + 1);
386
+ showOverflowCount(this.overflowCount);
387
+ // Subtract the overflow count from the available width
388
+ availableWidth = availableWidth - getWidth(this.overflowCount);
389
+ // Compute how many display value elements fit in the new available width
390
+ ({ fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth));
391
+ // Show overflow count and items that fit.
392
+ setOverflowCount(this.overflowCount, overflowCount);
393
+ showFittingValues(displayValueOptions, fitCount);
344
394
  }
345
- const checkedItem = items.find((item) => item.value === value[0]);
346
- return checkedItem ? this.getItemLabel(checkedItem) : '';
347
- }
348
- syncValueFromItems() {
349
- const items = this.getItems();
350
- const checkedItems = items.filter((item) => item.checked);
351
- const checkedValues = checkedItems.map((item) => item.value);
352
- this.value = this.multiple
353
- ? this.getValueAsArray().filter((val) => checkedValues.includes(val))
354
- : checkedValues.length > 0
355
- ? checkedValues[0]
356
- : '';
357
395
  }
358
396
  render() {
359
397
  var _a;
360
398
  const hasSelection = this.hasSelection();
361
- return (h(FormControl, { inputId: this.inputId, label: this.label, labelId: this.labelId, hasLabelSlot: this.hasLabelSlot, helpTextId: this.helpTextId, helpText: this.helpText, hasHelpTextSlot: this.hasHelpTextSlot, errorTextId: this.errorTextId, errorText: this.errorText, errorTextCount: this.errorTextCount, hasErrorTextSlot: this.hasErrorTextSlot, size: this.size, onLabelClick: this.handleLabelClick, disabled: this.disabled, required: this.required, displayError: this.invalid }, h("six-dropdown", { part: "base", ref: (el) => (this.dropdown = el), hoist: this.hoist, closeOnSelect: !this.multiple, containingElement: this.host, disableHideOnEnterAndSpace: this.autocomplete, class: {
399
+ const items = this.getItems();
400
+ const hasMenuItems = items.length > 0;
401
+ const hasDeselectedOptions = this.hasDeselectedOptions();
402
+ let showClear = false;
403
+ let showExpand = hasMenuItems;
404
+ if (this.clearable && hasSelection) {
405
+ showClear = true;
406
+ showExpand = false;
407
+ }
408
+ return (h(FormControl, { inputId: this.inputId, label: this.label, labelId: this.labelId, hasLabelSlot: this.hasLabelSlot, helpTextId: this.helpTextId, helpText: this.helpText, hasHelpTextSlot: this.hasHelpTextSlot, errorTextId: this.errorTextId, errorText: this.errorText, errorTextCount: this.errorTextCount, hasErrorTextSlot: this.hasErrorTextSlot, size: this.size, onLabelClick: this.handleLabelClick, disabled: this.disabled, required: this.required, displayError: this.invalid }, h("six-dropdown", { part: "base", ref: (el) => (this.dropdown = el), hoist: this.hoist, matchTriggerWidth: true, closeOnSelect: !this.multiple, containingElement: this.host, disableHideOnEnterAndSpace: this.autocomplete, class: {
362
409
  select: true,
363
410
  'select--open': this.isOpen,
364
411
  'select--empty': ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) === 0,
@@ -367,28 +414,33 @@ export class SixSelect {
367
414
  'select--disabled': this.disabled,
368
415
  'select--multiple': this.multiple,
369
416
  'select--has-tags': this.multiple && hasSelection,
370
- 'select--placeholder-visible': this.displayLabel === '',
417
+ 'select--placeholder-visible': this.displayedValues.length === 0,
371
418
  'select--small': this.size === 'small',
372
419
  'select--medium': this.size === 'medium',
373
420
  'select--large': this.size === 'large',
374
421
  'select--pill': this.pill,
375
422
  'select--invalid': this.invalid,
376
- }, onKeyDown: this.handleSelectAll, "onSix-dropdown-show": this.handleMenuShow, "onSix-dropdown-hide": this.handleMenuHide, filterPlaceholder: this.filterPlaceholder, filterDebounce: this.filterDebounce, filter: this.filter, asyncFilter: this.asyncFilter }, h("div", { slot: "trigger", ref: (el) => (this.box = el), id: this.inputId, class: {
423
+ }, onKeyDown: this.handleKeyDown, "onSix-dropdown-show": this.handleMenuShow, "onSix-dropdown-hide": this.handleMenuHide, filterPlaceholder: this.filterPlaceholder, filterDebounce: this.filterDebounce, filter: this.filter, asyncFilter: this.asyncFilter, virtualScroll: this.virtualScroll }, h("div", { slot: "trigger", ref: (el) => (this.box = el), id: this.inputId, class: {
377
424
  select__box: true,
378
425
  'select__box--line': this.line,
379
426
  'select__box--autocomplete': this.autocomplete,
380
- }, role: "combobox", "aria-labelledby": this.labelId, "aria-describedby": this.helpTextId, "aria-haspopup": "true", "aria-expanded": this.isOpen ? 'true' : 'false', tabIndex: this.disabled ? -1 : 0, onBlur: this.handleBlur, onFocus: this.handleFocus, onKeyDown: this.handleKeyDown }, h("span", { class: { select__label: true, 'select__label--single': !this.displayTags.length } }, this.displayTags.length > 0 ? (h("span", { part: "tags", class: "select__tags" }, this.displayTags)) : (this.displayLabel || this.placeholder)), this.clearable && hasSelection && (h("six-icon-button", { exportparts: "base:clear-button", class: "select__clear", name: "clear", size: "small", onClick: this.handleClearClick, tabindex: "-1" })), this.hasMenuItems() && (h("span", { part: "icon", class: "select__icon" }, h("six-icon", { size: "medium" }, "expand_more"))), h("six-input", { ref: (el) => (this.input = el), class: {
427
+ }, role: "combobox", "aria-labelledby": this.labelId, "aria-describedby": this.helpTextId, "aria-haspopup": "true", "aria-expanded": this.isOpen ? 'true' : 'false', tabIndex: this.disabled ? -1 : 0, onBlur: this.handleBlur, onFocus: this.handleFocus }, h("div", { class: "display__values", ref: (el) => (this.displayValuesContainer = el) }, this.displayedValues.length > 0 ? (h("span", { class: "display__values-and-counter" }, h("span", { class: "display__values-values" }, this.displayedValues.map((value) => (h("span", { key: value, class: "display-value" }, value, h("span", { class: { separator: true } }, ", "))))), h("span", { ref: (el) => (this.overflowCount = el), class: "overflow-count" }, "+10"))) : (h("span", { class: "placeholder" }, this.placeholder))), showClear && (h("six-icon-button", { exportparts: "base:clear-button", class: "select__clear", name: "clear", size: "small", onClick: this.handleClearClick, tabindex: "-1" })), showExpand && (h("span", { part: "icon", class: "select__icon" }, h("six-icon", { size: "medium" }, "expand_more"))), h("six-input", { ref: (el) => (this.autocompleteInput = el), class: {
381
428
  select__input: true,
382
429
  'select__hidden-select': !this.autocomplete,
383
- }, "aria-hidden": "true", required: this.required, onFocus: this.handleFocus, clearable: this.clearable, placeholder: this.placeholder, pill: this.pill, disabled: this.disabled, size: this.size, tabIndex: -1 })), h("six-menu", { ref: (el) => (this.menu = el), part: "menu", class: {
430
+ }, "aria-hidden": "true", required: this.required, onFocus: this.handleFocus, clearable: this.clearable, placeholder: this.placeholder, pill: this.pill, disabled: this.disabled, size: this.size, tabIndex: -1 })), h("div", { class: {
431
+ 'selection-container': true,
432
+ 'selection-container--border': this.selectionContainerItems.length > 0 && items.length !== this.selectionContainerItems.length,
433
+ } }, this.selectionContainerItems), h("six-menu", { ref: (el) => (this.menu = el), part: "menu", class: {
384
434
  select__menu: true,
385
- 'select__menu--filtered': this.filter || this.asyncFilter,
386
- 'select__menu--hidden': !this.hasMenuItems(),
387
- }, "onSix-menu-item-selected": this.handleMenuSelect, items: this.options, virtualScroll: this.virtualScroll, "remove-box-shadow": true }, h("slot", { onSlotchange: this.handleSlotChange })))));
435
+ 'select__menu--hidden': !hasMenuItems,
436
+ }, "onSix-menu-item-selected": this.handleMenuSelect, items: this.options, virtualScroll: this.virtualScroll, "remove-box-shadow": true, "disable-keyboard-handling": true }, h("slot", { onSlotchange: this.handleSlotChange })), this.multiple && this.selectAllButton && (h("div", { class: "select-all", slot: "dropdown-footer" }, h("six-button", { type: "link", onClick: () => this.selectAll() }, this.selectAllText == null ? selectAllDefaultText(hasDeselectedOptions) : this.selectAllText))))));
388
437
  }
389
438
  hasSelection() {
390
439
  return this.multiple ? this.value.length > 0 : this.value !== '';
391
440
  }
441
+ hasDeselectedOptions() {
442
+ return this.getVisibleItems().some((opt) => !opt.disabled && !opt.checked);
443
+ }
392
444
  static get is() { return "six-select"; }
393
445
  static get encapsulation() { return "shadow"; }
394
446
  static get originalStyleUrls() {
@@ -421,6 +473,41 @@ export class SixSelect {
421
473
  "reflect": false,
422
474
  "defaultValue": "false"
423
475
  },
476
+ "selectAllButton": {
477
+ "type": "boolean",
478
+ "mutable": false,
479
+ "complexType": {
480
+ "original": "boolean",
481
+ "resolved": "boolean",
482
+ "references": {}
483
+ },
484
+ "required": false,
485
+ "optional": false,
486
+ "docs": {
487
+ "tags": [],
488
+ "text": "Enables the select all button."
489
+ },
490
+ "attribute": "select-all-button",
491
+ "reflect": false,
492
+ "defaultValue": "false"
493
+ },
494
+ "selectAllText": {
495
+ "type": "string",
496
+ "mutable": false,
497
+ "complexType": {
498
+ "original": "string",
499
+ "resolved": "string | undefined",
500
+ "references": {}
501
+ },
502
+ "required": false,
503
+ "optional": true,
504
+ "docs": {
505
+ "tags": [],
506
+ "text": "Custom text for the \"select all\" button. Defaults to \"Select all\" and equivalents in supported languages."
507
+ },
508
+ "attribute": "select-all-text",
509
+ "reflect": false
510
+ },
424
511
  "maxTagsVisible": {
425
512
  "type": "number",
426
513
  "mutable": false,
@@ -432,7 +519,10 @@ export class SixSelect {
432
519
  "required": false,
433
520
  "optional": false,
434
521
  "docs": {
435
- "tags": [],
522
+ "tags": [{
523
+ "name": "deprecated",
524
+ "text": ": This property is ignored. The component now displays as many items as possible and computes the \"+n\" dynamically."
525
+ }],
436
526
  "text": "The maximum number of tags to show when `multiple` is true. After the maximum, \"+n\" will be shown to indicate the\nnumber of additional items that are selected. Set to -1 to remove the limit."
437
527
  },
438
528
  "attribute": "max-tags-visible",
@@ -515,18 +605,17 @@ export class SixSelect {
515
605
  "mutable": false,
516
606
  "complexType": {
517
607
  "original": "number",
518
- "resolved": "number",
608
+ "resolved": "number | undefined",
519
609
  "references": {}
520
610
  },
521
611
  "required": false,
522
- "optional": false,
612
+ "optional": true,
523
613
  "docs": {
524
614
  "tags": [],
525
615
  "text": "The debounce for the filter callbacks."
526
616
  },
527
617
  "attribute": "filter-debounce",
528
- "reflect": false,
529
- "defaultValue": "DEFAULT_DEBOUNCE_FAST"
618
+ "reflect": false
530
619
  },
531
620
  "size": {
532
621
  "type": "string",
@@ -864,8 +953,8 @@ export class SixSelect {
864
953
  "hasLabelSlot": {},
865
954
  "hasErrorTextSlot": {},
866
955
  "isOpen": {},
867
- "displayLabel": {},
868
- "displayTags": {}
956
+ "displayedValues": {},
957
+ "selectionContainerItems": {}
869
958
  };
870
959
  }
871
960
  static get events() {
@@ -940,8 +1029,9 @@ export class SixSelect {
940
1029
  "complexType": {
941
1030
  "signature": "(options?: FocusOptions) => Promise<void>",
942
1031
  "parameters": [{
943
- "tags": [],
944
- "text": ""
1032
+ "name": "options",
1033
+ "type": "FocusOptions | undefined",
1034
+ "docs": ""
945
1035
  }],
946
1036
  "references": {
947
1037
  "Promise": {
@@ -985,4 +1075,89 @@ export class SixSelect {
985
1075
  }];
986
1076
  }
987
1077
  }
1078
+ function getCheckedItems(value, items) {
1079
+ return items.filter((item) => value.includes(item.value));
1080
+ }
1081
+ function getWidth(element) {
1082
+ return element.getBoundingClientRect().width;
1083
+ }
1084
+ function computeFitCount(options, availableWidth) {
1085
+ let accumulatedWidth = 0;
1086
+ let fitCount = 0;
1087
+ for (let i = 0; i < options.length; i++) {
1088
+ const displayOption = options[i];
1089
+ const width = getWidth(displayOption);
1090
+ if (i === 0 && width > availableWidth) {
1091
+ fitCount = 1;
1092
+ break;
1093
+ }
1094
+ accumulatedWidth += width;
1095
+ if (accumulatedWidth > availableWidth) {
1096
+ break;
1097
+ }
1098
+ else {
1099
+ fitCount += 1;
1100
+ }
1101
+ }
1102
+ const overflowCount = options.length - fitCount;
1103
+ return { fitCount, overflowCount };
1104
+ }
1105
+ function showFittingValues(displayValueOptions, fitCount) {
1106
+ if (displayValueOptions.length > 0) {
1107
+ // show items that fit
1108
+ displayValueOptions.slice(0, fitCount).forEach((displayValue, index, list) => {
1109
+ showDisplayValue(displayValue);
1110
+ const isLast = index === list.length - 1;
1111
+ if (isLast) {
1112
+ hideSeparator(displayValue);
1113
+ }
1114
+ else {
1115
+ showSeparator(displayValue);
1116
+ }
1117
+ });
1118
+ // hide the rest
1119
+ displayValueOptions.slice(fitCount).forEach((displayValue) => {
1120
+ hideDisplayValue(displayValue);
1121
+ showSeparator(displayValue);
1122
+ });
1123
+ }
1124
+ }
1125
+ function hideSeparator(displayValueOption) {
1126
+ var _a;
1127
+ (_a = displayValueOption.querySelector('.separator')) === null || _a === void 0 ? void 0 : _a.classList.add('separator--hidden');
1128
+ }
1129
+ function showSeparator(displayValueOption) {
1130
+ var _a;
1131
+ (_a = displayValueOption.querySelector('.separator')) === null || _a === void 0 ? void 0 : _a.classList.remove('separator--hidden');
1132
+ }
1133
+ function showDisplayValue(displayValueOption) {
1134
+ displayValueOption.classList.remove('display-value--hidden');
1135
+ }
1136
+ function hideDisplayValue(displayValueOption) {
1137
+ displayValueOption.classList.add('display-value--hidden');
1138
+ }
1139
+ function setOverflowCount(overflowCount, count) {
1140
+ overflowCount.textContent = `+${count}`;
1141
+ }
1142
+ function showOverflowCount(overflowCount) {
1143
+ overflowCount.classList.remove('overflow-count-hidden');
1144
+ }
1145
+ function hideOverflowCount(overflowCount) {
1146
+ overflowCount.classList.add('overflow-count-hidden');
1147
+ }
1148
+ function selectAllDefaultText(hasDeselectedOptions) {
1149
+ const lang = getLanguage();
1150
+ switch (lang) {
1151
+ case 'de':
1152
+ return hasDeselectedOptions ? 'Alle auswählen' : 'Alle abwählen';
1153
+ case 'fr':
1154
+ return hasDeselectedOptions ? 'Tout sélectionner' : 'Tout désélectionner';
1155
+ case 'it':
1156
+ return hasDeselectedOptions ? 'Seleziona tutto' : 'Deseleziona tutto';
1157
+ case 'en':
1158
+ return hasDeselectedOptions ? 'Select all' : 'Deselect all';
1159
+ case 'es':
1160
+ return hasDeselectedOptions ? 'Seleccionar todo' : 'Deseleccionar todo';
1161
+ }
1162
+ }
988
1163
  //# sourceMappingURL=six-select.js.map