@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,24 +3,130 @@ import { h as hasSlot, a as getTextContent } from './slot.js';
3
3
  import { F as FormControl } from './form-control.js';
4
4
  import { E as EventListeners } from './event-listeners.js';
5
5
  import { D as DEFAULT_DEBOUNCE_FAST, a as debounce } from './execution-control.js';
6
- import { d as defineCustomElement$a } from './six-dropdown2.js';
7
- import { d as defineCustomElement$9 } from './six-error2.js';
8
- import { d as defineCustomElement$8 } from './six-icon2.js';
9
- import { d as defineCustomElement$7 } from './six-icon-button2.js';
10
- import { d as defineCustomElement$6 } from './six-input2.js';
11
- import { d as defineCustomElement$5 } from './six-menu2.js';
12
- import { d as defineCustomElement$4 } from './six-menu-item2.js';
13
- import { d as defineCustomElement$3 } from './six-tag2.js';
14
- import { d as defineCustomElement$2 } from './six-tooltip2.js';
6
+ import { d as defineCustomElement$b } from './six-button2.js';
7
+ import { d as defineCustomElement$a } from './six-checkbox2.js';
8
+ import { d as defineCustomElement$9 } from './six-dropdown2.js';
9
+ import { d as defineCustomElement$8 } from './six-error2.js';
10
+ import { d as defineCustomElement$7 } from './six-icon2.js';
11
+ import { d as defineCustomElement$6 } from './six-icon-button2.js';
12
+ import { d as defineCustomElement$5 } from './six-input2.js';
13
+ import { d as defineCustomElement$4 } from './six-menu2.js';
14
+ import { d as defineCustomElement$3 } from './six-menu-item2.js';
15
+ import { d as defineCustomElement$2 } from './six-spinner2.js';
15
16
 
16
- function isValueEmpty(value) {
17
- if (Array.isArray(value)) {
18
- return value.length === 0;
17
+ const languages = ['de', 'fr', 'it', 'en', 'es'];
18
+ const dateFormat = new Intl.DateTimeFormat('de-CH');
19
+ /**
20
+ * Returns an error message for the given language and error.
21
+ */
22
+ function getErrorMessage(language, error) {
23
+ try {
24
+ const message = translation[language][error.key];
25
+ switch (error.key) {
26
+ case 'required':
27
+ case 'requiredtrue':
28
+ case 'email':
29
+ return message;
30
+ case 'minlength':
31
+ case 'maxlength':
32
+ return message.replace('{requiredLength}', String(error.requiredLength));
33
+ case 'pattern':
34
+ return message.replace('{pattern}', String(error.requiredPattern));
35
+ case 'min':
36
+ return message.replace('{min}', String(error.min));
37
+ case 'max':
38
+ return message.replace('{max}', String(error.max));
39
+ case 'mindate':
40
+ return message.replace('{mindate}', dateFormat.format(error.mindate));
41
+ case 'maxdate':
42
+ return message.replace('{maxdate}', dateFormat.format(error.maxdate));
43
+ case 'invaliddate':
44
+ return message;
45
+ case 'custom':
46
+ return error.text;
47
+ }
48
+ }
49
+ catch (e) {
50
+ console.warn(`no error message in '${language}' for error:`, error);
51
+ return undefined;
52
+ }
53
+ }
54
+ function getLanguage() {
55
+ const documentLang = document.documentElement.lang;
56
+ if (languages.includes(documentLang)) {
57
+ return documentLang;
19
58
  }
20
- return value === '';
59
+ return 'de';
21
60
  }
61
+ const translation = {
62
+ en: {
63
+ required: 'Please fill out this field.',
64
+ minlength: 'Please enter at least {requiredLength} characters.',
65
+ maxlength: 'Please enter no more than {requiredLength} characters.',
66
+ pattern: 'Please enter a value that matches the pattern: {pattern}.',
67
+ email: 'Please enter a valid email address.',
68
+ min: 'Please enter a value greater than or equal to {min}.',
69
+ max: 'Please enter a value less than or equal to {max}.',
70
+ requiredtrue: 'Please check this field.',
71
+ mindate: 'Please enter a date on or after {mindate}.',
72
+ maxdate: 'Please enter a date on or before {maxdate}.',
73
+ invaliddate: 'Please enter a valid date.',
74
+ },
75
+ fr: {
76
+ required: "Veuillez remplir ce champ s'il vous plaît.",
77
+ minlength: 'Veuillez entrer au moins {requiredLength} caractères.',
78
+ maxlength: 'Veuillez entrer au maximum {requiredLength} caractères.',
79
+ pattern: 'Veuillez entrer une valeur qui correspond au format : {pattern}.',
80
+ email: 'Veuillez entrer une adresse email valide.',
81
+ min: 'Veuillez entrer une valeur supérieure ou égale à {min}.',
82
+ max: 'Veuillez entrer une valeur inférieure ou égale à {max}.',
83
+ requiredtrue: "Veuillez cocher cette case s'il vous plaît.",
84
+ mindate: 'Veuillez entrer une date le {mindate} ou après.',
85
+ maxdate: 'Veuillez entrer une date le {maxdate} ou avant.',
86
+ invaliddate: 'Veuillez entrer une date valide.',
87
+ },
88
+ de: {
89
+ required: 'Bitte füllen Sie dieses Feld aus.',
90
+ minlength: 'Bitte geben Sie mindestens {requiredLength} Zeichen ein.',
91
+ maxlength: 'Bitte geben Sie höchstens {requiredLength} Zeichen ein.',
92
+ pattern: 'Bitte geben Sie einen Wert ein, der dem Muster entspricht: {pattern}.',
93
+ email: 'Bitte geben Sie eine gültige E-Mail-Adresse ein.',
94
+ min: 'Bitte geben Sie einen Wert größer oder gleich {min} ein.',
95
+ max: 'Bitte geben Sie einen Wert kleiner oder gleich {max} ein.',
96
+ requiredtrue: 'Bitte aktivieren Sie dieses Feld.',
97
+ mindate: 'Bitte geben Sie ein Datum am oder nach dem {mindate} ein.',
98
+ maxdate: 'Bitte geben Sie ein Datum am oder vor dem {maxdate} ein.',
99
+ invaliddate: 'Bitte geben Sie ein gültiges Datum ein.',
100
+ },
101
+ it: {
102
+ required: 'Si prega di compilare questo campo.',
103
+ minlength: 'Si prega di inserire almeno {requiredLength} caratteri.',
104
+ maxlength: 'Si prega di inserire al massimo {requiredLength} caratteri.',
105
+ pattern: 'Si prega di inserire un valore che corrisponde al formato: {pattern}.',
106
+ email: 'Si prega di inserire un indirizzo email valido.',
107
+ min: 'Si prega di inserire un valore maggiore o uguale a {min}.',
108
+ max: 'Si prega di inserire un valore minore o uguale a {max}.',
109
+ requiredtrue: 'Si prega di spuntare questo campo.',
110
+ mindate: 'Si prega di inserire una data il {mindate} o successiva.',
111
+ maxdate: 'Si prega di inserire una data il {maxdate} o precedente.',
112
+ invaliddate: 'Inserisci una data valida.',
113
+ },
114
+ es: {
115
+ required: 'Por favor, rellene este campo.',
116
+ minlength: 'Por favor, introduzca al menos {requiredLength} caracteres.',
117
+ maxlength: 'Por favor, introduzca no más de {requiredLength} caracteres.',
118
+ pattern: 'Por favor, introduzca un valor que coincida con el patrón: {pattern}.',
119
+ email: 'Por favor, introduzca una dirección de correo electrónico válida.',
120
+ min: 'Por favor, introduzca un valor mayor o igual a {min}.',
121
+ max: 'Por favor, introduzca un valor menor o igual a {max}.',
122
+ requiredtrue: 'Por favor, marque este campo.',
123
+ mindate: 'Por favor, introduzca una fecha igual o posterior a {mindate}.',
124
+ maxdate: 'Por favor, introduzca una fecha igual o anterior a {maxdate}.',
125
+ invaliddate: 'Por favor, introduzca una fecha válida.',
126
+ },
127
+ };
22
128
 
23
- const sixSelectCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:inherit}.form-control .form-control__label{display:none}.form-control .form-control__help-text{display:none}.form-control .form-control__error-text{display:none;text-align:left}.form-control--has-label .form-control__label{display:inline-block;color:var(--six-input-label-color);font-weight:var(--six-font-weight-bold);margin-bottom:var(--six-spacing-x-small)}.form-control--has-label .form-control__label__required::after{color:var(--six-color-danger-800);content:\"*\";transform:scale(1.1);margin-left:var(--six-spacing-xxx-small);position:absolute}.form-control--has-label.form-control--small .form-control__label{font-size:var(--six-input-label-font-size-small)}.form-control--has-label.form-control--medium .form-control__label{font-size:var(--six-input-label-font-size-medium)}.form-control--has-label.form-control--large .form-control_label{font-size:var(--six-input-label-font-size-large)}.form-control--has-help-text .form-control__help-text{display:block;color:var(--six-input-help-text-color);margin-top:var(--six-spacing-x-small)}.form-control--has-help-text .form-control__help-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-help-text.form-control--small .form-control__help-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-help-text.form-control--medium .form-control__help-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-help-text.form-control--large .form-control__help-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--has-error-text .form-control__error-text{display:block;margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text .form-control__error-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text.form-control--small .form-control__error-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-error-text.form-control--medium .form-control__error-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-error-text.form-control--large .form-control__error-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--disabled .form-control__help-text{color:var(--six-input-help-text-color-disabled)}.form-control--disabled .form-control__label{color:var(--six-input-label-color-disabled)}.form-control--invalid:not(.form-control--disabled) .form-control__label{color:var(--six-input-label-color)}:host{display:block}.select{display:block}.select__box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--six-font-family);font-weight:var(--six-input-font-weight);font-size:var(--six-input-font-size-medium);letter-spacing:var(--six-input-letter-spacing);background-color:var(--six-input-background-color);border:solid var(--six-border-width) var(--six-input-border-color);vertical-align:middle;transition:var(--six-transition-fast) color, var(--six-transition-fast) border, var(--six-transition-fast) box-shadow;cursor:pointer}.select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select__box--autocomplete{border:none;overflow:initial}.select:not(.select--disabled) .select__box:hover{background-color:var(--six-input-background-color-hover);color:var(--six-input-color-hover);border-bottom-color:var(--six-input-border-color-hover)}.select:not(.select--disabled) .select__box:hover:not(.select__box--line){border-color:var(--six-input-border-color-hover)}.select:not(.select--disabled) .select__box:focus{background-color:var(--six-input-background-color-focus);outline:none;color:var(--six-input-color-focus);border-bottom-color:var(--six-input-border-color-focus);box-shadow:0 1px 0 0 var(--six-input-border-color-focus)}.select:not(.select--disabled) .select__box:focus:not(.select__box--line){border-color:var(--six-input-border-color-focus);box-shadow:var(--six-input-focus-shadow)}.select--disabled .select__box{background-color:var(--six-input-background-color-disabled);color:var(--six-input-color-disabled);cursor:not-allowed;outline:none}.select--disabled .select__box:not(.select__box--line){border-color:var(--six-input-border-color-disabled)}.select--disabled .select__tags,.select--disabled .select__clear{pointer-events:none}.select--invalid:not(.select--disabled):not(.select--focused) .select__box{border-bottom-color:var(--six-input-border-color-danger)}.select--invalid:not(.select--disabled):not(.select--focused) .select__box:not(.input--line){border-color:var(--six-input-border-color-danger)}.select__label{flex-shrink:1;flex-grow:1;align-items:center;user-select:none;width:0;scrollbar-width:none;-ms-overflow-style:none;overflow-x:auto;overflow-y:hidden;text-overflow:ellipsis}.select__label::-webkit-scrollbar{width:0;height:0}.select__label--single{white-space:nowrap}.select__clear{flex-shrink:0;flex-grow:0;display:inline}.select__icon{flex-shrink:0;flex-grow:0;display:inline;transition:var(--six-transition-medium) transform ease}.select--open .select__icon{transform:rotate(-180deg)}.select--placeholder-visible .select__label{color:var(--six-input-placeholder-color)}.select--disabled.select--placeholder-visible .select__label{color:var(--six-input-placeholder-color-disabled)}.select__tags{display:flex;align-items:center;flex-wrap:wrap;justify-content:left;margin-left:var(--six-spacing-xx-small)}.select__hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.select__input{position:absolute;top:0;left:0;width:100%;height:100%}.select--small .select__box{border-radius:var(--six-input-border-radius-small);font-size:var(--six-input-font-size-small);min-height:var(--six-height-small)}.select--small .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--small .select__label{margin:0 var(--six-input-spacing-small)}.select--small .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--small .select__icon{margin-right:var(--six-spacing-x-small)}.select--small .select__tags{padding-bottom:2px}.select--small .select__tags six-tag{padding-top:2px;margin-right:var(--six-spacing-xx-small)}.select--small.select--has-tags .select__label{margin-left:0}.select--medium .select__box{border-radius:var(--six-input-border-radius-medium);font-size:var(--six-input-font-size-medium);min-height:var(--six-height-medium)}.select--medium .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--medium .select__label{margin:0 var(--six-input-spacing-medium)}.select--medium .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--medium .select__icon{margin-right:var(--six-spacing-x-small)}.select--medium .select__tags{padding-bottom:3px}.select--medium .select__tags six-tag{padding-top:3px;margin-right:var(--six-spacing-xx-small)}.select--medium.select--has-tags .select__label{margin-left:0}.select--large .select__box{border-radius:var(--six-input-border-radius-large);font-size:var(--six-input-font-size-large);min-height:var(--six-height-large)}.select--large .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--large .select__label{margin:0 var(--six-input-spacing-large)}.select--large .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--large .select__icon{margin-right:var(--six-spacing-x-small)}.select--large .select__tags{padding-bottom:4px}.select--large .select__tags six-tag{padding-top:4px;margin-right:var(--six-spacing-xx-small)}.select--large.select--has-tags .select__label{margin-left:0}.select--pill.select--small .select__box{border-radius:var(--six-height-small)}.select--pill.select--medium .select__box{border-radius:var(--six-height-medium)}.select--pill.select--large .select__box{border-radius:var(--six-height-large)}.select__menu{max-width:50vw;width:fit-content}.select__menu--filtered{width:100% !important}.select__menu--hidden{display:none}six-icon-button::part(base){padding-top:0;padding-bottom:0}";
129
+ const sixSelectCss = ":host{position:relative;box-sizing:border-box}:host *,:host *:before,:host *:after{box-sizing:border-box}.form-control .form-control__label{display:none}.form-control .form-control__help-text{display:none}.form-control .form-control__error-text{display:none;text-align:left}.form-control--has-label .form-control__label{display:inline-block;color:var(--six-input-label-color);font-weight:var(--six-font-weight-bold);margin-bottom:var(--six-spacing-x-small)}.form-control--has-label .form-control__label__required::after{color:var(--six-color-danger-800);content:\"*\";transform:scale(1.1);margin-left:var(--six-spacing-xxx-small);position:absolute}.form-control--has-label.form-control--small .form-control__label{font-size:var(--six-input-label-font-size-small)}.form-control--has-label.form-control--medium .form-control__label{font-size:var(--six-input-label-font-size-medium)}.form-control--has-label.form-control--large .form-control_label{font-size:var(--six-input-label-font-size-large)}.form-control--has-help-text .form-control__help-text{display:block;color:var(--six-input-help-text-color);margin-top:var(--six-spacing-x-small)}.form-control--has-help-text .form-control__help-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-help-text.form-control--small .form-control__help-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-help-text.form-control--medium .form-control__help-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-help-text.form-control--large .form-control__help-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--has-error-text .form-control__error-text{display:block;margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text .form-control__error-text ::slotted(*){margin-top:var(--six-spacing-xxx-small)}.form-control--has-error-text.form-control--small .form-control__error-text{font-size:var(--six-input-help-text-font-size-small)}.form-control--has-error-text.form-control--medium .form-control__error-text{font-size:var(--six-input-help-text-font-size-medium)}.form-control--has-error-text.form-control--large .form-control__error-text{font-size:var(--six-input-help-text-font-size-large)}.form-control--disabled .form-control__help-text{color:var(--six-input-help-text-color-disabled)}.form-control--disabled .form-control__label{color:var(--six-input-label-color-disabled)}.form-control--invalid:not(.form-control--disabled) .form-control__label{color:var(--six-input-label-color)}:host,.select{display:block}.select__box{display:inline-flex;align-items:center;justify-content:start;position:relative;width:100%;font-family:var(--six-font-family);font-weight:var(--six-input-font-weight);font-size:var(--six-input-font-size-medium);letter-spacing:var(--six-input-letter-spacing);background-color:var(--six-input-background-color);border:solid var(--six-border-width) var(--six-input-border-color);vertical-align:middle;transition:var(--six-transition-fast) color, var(--six-transition-fast) border, var(--six-transition-fast) box-shadow;cursor:pointer}.select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select__box--autocomplete{border:none;overflow:initial}.select:not(.select--disabled) .select__box:hover{background-color:var(--six-input-background-color-hover);color:var(--six-input-color-hover);border-bottom-color:var(--six-input-border-color-hover)}.select:not(.select--disabled) .select__box:hover:not(.select__box--line){border-color:var(--six-input-border-color-hover)}.select:not(.select--disabled) .select__box:focus{background-color:var(--six-input-background-color-focus);outline:none;color:var(--six-input-color-focus);border-bottom-color:var(--six-input-border-color-focus);box-shadow:0 1px 0 0 var(--six-input-border-color-focus)}.select:not(.select--disabled) .select__box:focus:not(.select__box--line){border-color:var(--six-input-border-color-focus);box-shadow:var(--six-input-focus-shadow)}.select--disabled .select__box{background-color:var(--six-input-background-color-disabled);color:var(--six-input-color-disabled);cursor:not-allowed;outline:none}.select--disabled .select__box:not(.select__box--line){border-color:var(--six-input-border-color-disabled)}.select--disabled .select__clear{pointer-events:none}.select--invalid:not(.select--disabled):not(.select--focused) .select__box{border-bottom-color:var(--six-input-border-color-danger)}.select--invalid:not(.select--disabled):not(.select--focused) .select__box:not(.input--line){border-color:var(--six-input-border-color-danger)}.display__values{display:flex;flex:1 1 auto;align-items:center;user-select:none;overflow:hidden;scrollbar-width:none;-ms-overflow-style:none}.display__values::-webkit-scrollbar{width:0;height:0}.display__values-values{flex:0 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.display__values-and-counter{display:flex;overflow:hidden}.select__clear{flex-shrink:0;flex-grow:0;display:inline}.select__icon{flex-shrink:0;flex-grow:0;display:inline;transition:var(--six-transition-medium) transform ease}.select--open .select__icon{transform:rotate(-180deg)}.placeholder{color:var(--six-input-placeholder-color)}.select--disabled .placeholder{color:var(--six-input-placeholder-color-disabled)}.select__hidden-select{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.select__input{position:absolute;top:0;left:0;width:100%;height:100%}.select--small .select__box{border-radius:var(--six-input-border-radius-small);font-size:var(--six-input-font-size-small);min-height:var(--six-height-small)}.select--small .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--small .display__values{margin:0 0 0 var(--six-input-spacing-small)}.select--small .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--small .select__icon{margin-right:var(--six-spacing-x-small)}.select--medium .select__box{border-radius:var(--six-input-border-radius-medium);font-size:var(--six-input-font-size-medium);min-height:var(--six-height-medium)}.select--medium .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--medium .display__values{margin:0 0 0 var(--six-input-spacing-medium)}.select--medium .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--medium .select__icon{margin-right:var(--six-spacing-x-small)}.select--large .select__box{border-radius:var(--six-input-border-radius-large);font-size:var(--six-input-font-size-large);min-height:var(--six-height-large)}.select--large .select__box--line{border:none;border-bottom:solid var(--six-border-width) var(--six-input-border-color)}.select--large .display__values{margin:0 0 0 var(--six-input-spacing-large)}.select--large .select__clear{margin-right:var(--six-spacing-xxx-small)}.select--large .select__icon{margin-right:var(--six-spacing-x-small)}.select--pill.select--small .select__box{border-radius:var(--six-height-small)}.select--pill.select--medium .select__box{border-radius:var(--six-height-medium)}.select--pill.select--large .select__box{border-radius:var(--six-height-large)}.select__menu{width:100%}.select__menu--hidden{display:none}six-icon-button::part(base){padding-top:0;padding-bottom:0}.selection-container--border{border-bottom:solid var(--six-border-width) var(--six-menu-divider-color);padding-top:var(--six-spacing-xx-small);padding-bottom:var(--six-spacing-xx-small)}.display-value--hidden{display:none}.overflow-count{color:var(--six-color-web-rock-600);padding-left:var(--six-spacing-x-small)}.overflow-count-hidden{display:none}.separator--hidden{display:none}.select-all{border-top:1px solid var(--six-color-web-rock-300);display:flex;justify-content:end}";
24
130
 
25
131
  let id = 0;
26
132
  const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTMLElement {
@@ -35,8 +141,9 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
35
141
  this.labelId = `select-label-${id}`;
36
142
  this.helpTextId = `select-help-text-${id}`;
37
143
  this.errorTextId = `select-error-text-${id}`;
38
- this.touched = false;
39
144
  this.eventListeners = new EventListeners();
145
+ this.activeItemIndex = -1;
146
+ this.resizeObserver = new ResizeObserver(() => this.updateDisplayedValues());
40
147
  this.handleBlur = () => {
41
148
  this.hasFocus = false;
42
149
  this.sixBlur.emit();
@@ -45,37 +152,26 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
45
152
  this.hasFocus = true;
46
153
  this.sixFocus.emit();
47
154
  };
48
- this.handleClearClick = (event) => {
155
+ this.handleClearClick = async (event) => {
156
+ var _a;
49
157
  event.stopPropagation();
50
- this.clearValues();
158
+ await this.clearValues();
159
+ await ((_a = this.dropdown) === null || _a === void 0 ? void 0 : _a.hide());
51
160
  this.sixChange.emit({ value: this.value, isSelected: true });
52
161
  };
53
- this.handleSelectAll = (event) => {
54
- const nonFilteredItems = this.getItems().filter((item) => item.style.display !== 'none');
55
- const keyName = event.key;
56
- const keyCode = event.code;
57
- if (keyName === 'Control') {
162
+ this.handleKeyDown = (event) => {
163
+ var _a, _b, _c, _d;
164
+ if (this.virtualScroll || this.autocomplete) {
58
165
  return;
59
166
  }
60
- if (this.isOpen && this.multiple && keyCode === 'KeyA' && event.ctrlKey) {
61
- event.preventDefault();
62
- const hasDeselectedOptions = nonFilteredItems.some((opt) => !opt.disabled && !opt.checked);
63
- nonFilteredItems
64
- .filter((option) => !option.disabled)
65
- .forEach((option) => (option.checked = hasDeselectedOptions));
66
- const checkedItems = nonFilteredItems.filter((option) => option.checked).map((option) => option.value);
67
- this.value = hasDeselectedOptions ? checkedItems : [];
68
- this.sixChange.emit({ value: this.value, isSelected: true });
167
+ if (['Control', 'Escape'].includes(event.key)) {
168
+ return;
69
169
  }
70
- };
71
- this.handleKeyDown = (event) => {
72
- var _a, _b, _c, _d;
73
- const target = event.target;
74
- const items = this.getItems();
75
- const firstItem = items[0];
76
- const lastItem = items[items.length - 1];
77
- // Ignore key presses on tags
78
- if (target.tagName.toLowerCase() === 'six-tag') {
170
+ const items = this.getVisibleItems();
171
+ // Ctrl-A selects all items
172
+ if (this.isOpen && this.multiple && event.code === 'KeyA' && event.ctrlKey) {
173
+ event.preventDefault();
174
+ this.selectAll();
79
175
  return;
80
176
  }
81
177
  // Tabbing out of the control closes it
@@ -85,29 +181,48 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
85
181
  }
86
182
  return;
87
183
  }
88
- // Up/down opens the menu
89
- if (['ArrowDown', 'ArrowUp'].includes(event.key)) {
184
+ if (event.key === ' ' && !this.multiple) {
185
+ return;
186
+ }
187
+ // Enter and Space selects the active item
188
+ if (this.activeItemIndex >= 0 && ['Enter', ' '].includes(event.key)) {
189
+ const activeItem = items.at(this.activeItemIndex);
90
190
  event.preventDefault();
191
+ activeItem === null || activeItem === void 0 ? void 0 : activeItem.click();
192
+ return;
193
+ }
194
+ // Move the selection when pressing up or down
195
+ if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {
91
196
  // Show the menu if it's not already open
92
197
  if (!this.isOpen) {
93
198
  (_b = this.dropdown) === null || _b === void 0 ? void 0 : _b.show();
94
199
  }
95
- // Focus on a menu item
96
- if (event.key === 'ArrowDown' && firstItem) {
97
- firstItem.setFocus();
98
- return;
99
- }
100
- if (event.key === 'ArrowUp' && lastItem) {
101
- lastItem.setFocus();
102
- return;
200
+ if (items.length > 0) {
201
+ event.preventDefault();
202
+ if (event.key === 'ArrowDown') {
203
+ this.activeItemIndex++;
204
+ }
205
+ else if (event.key === 'ArrowUp') {
206
+ this.activeItemIndex--;
207
+ }
208
+ else if (event.key === 'Home') {
209
+ this.activeItemIndex = 0;
210
+ }
211
+ else if (event.key === 'End') {
212
+ this.activeItemIndex = items.length - 1;
213
+ }
214
+ if (this.activeItemIndex < 0)
215
+ this.activeItemIndex = 0;
216
+ if (this.activeItemIndex > items.length - 1)
217
+ this.activeItemIndex = items.length - 1;
218
+ (_c = items.at(this.activeItemIndex)) === null || _c === void 0 ? void 0 : _c.setFocus();
103
219
  }
104
220
  }
105
- // All other keys open the menu and initiate type to select
221
+ // All other keys open the menu
106
222
  if (!this.isOpen) {
107
223
  event.stopPropagation();
108
224
  event.preventDefault();
109
- (_c = this.dropdown) === null || _c === void 0 ? void 0 : _c.show();
110
- (_d = this.menu) === null || _d === void 0 ? void 0 : _d.typeToSelect(event.key);
225
+ (_d = this.dropdown) === null || _d === void 0 ? void 0 : _d.show();
111
226
  }
112
227
  };
113
228
  this.handleLabelClick = () => {
@@ -115,34 +230,47 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
115
230
  (_a = this.box) === null || _a === void 0 ? void 0 : _a.focus();
116
231
  };
117
232
  this.handleMenuSelect = (event) => {
118
- const item = event.detail.item;
119
- const getValue = () => {
120
- if (this.multiple) {
121
- return this.value.includes(item.value)
122
- ? this.value.filter((v) => v !== item.value)
123
- : [...this.value, item.value];
124
- }
125
- else {
126
- return item.value;
127
- }
128
- };
129
- this.value = getValue();
130
- this.syncItemsFromValue();
233
+ const currentItem = event.detail.item;
234
+ if (this.multiple) {
235
+ currentItem.checked = !currentItem.checked;
236
+ }
237
+ else {
238
+ this.getItems().forEach((i) => (i.checked = false));
239
+ currentItem.checked = true;
240
+ }
241
+ this.syncValueFromItems();
131
242
  this.sixChange.emit({ value: this.value, isSelected: true });
132
243
  };
133
244
  this.handleMenuShow = (event) => {
134
- var _a;
135
245
  if (this.disabled) {
136
246
  event.preventDefault();
137
247
  return;
138
248
  }
139
- this.resizeMenu();
140
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.observe(this.host);
249
+ this.activeItemIndex = -1;
250
+ // reset display style of main items
251
+ const mainItems = this.getItems();
252
+ mainItems.forEach((item) => (item.style.display = 'unset'));
253
+ // show selected menu items in the selection container and hide them in the main container
254
+ const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);
255
+ if (!this.virtualScroll && this.multiple) {
256
+ checkedItems.forEach((i) => (i.style.display = 'none'));
257
+ this.selectionContainerItems = checkedItems.map((item) => {
258
+ return (h("six-menu-item", { key: item.value, checked: true, value: item.value, checkType: this.multiple ? 'checkbox' : 'check', onClick: (event) => {
259
+ event.stopPropagation();
260
+ if (!this.disabled) {
261
+ const menuItem = event.target;
262
+ const isChecked = menuItem.checked;
263
+ menuItem.checked = !isChecked;
264
+ item.checked = !isChecked;
265
+ this.syncValueFromItems();
266
+ this.sixChange.emit({ value: this.value, isSelected: true });
267
+ }
268
+ } }, this.getItemLabel(item)));
269
+ });
270
+ }
141
271
  this.isOpen = true;
142
272
  };
143
273
  this.handleMenuHide = () => {
144
- var _a;
145
- (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.unobserve(this.host);
146
274
  this.isOpen = false;
147
275
  };
148
276
  this.handleSlotChange = () => {
@@ -151,34 +279,22 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
151
279
  this.hasErrorTextSlot = hasSlot(this.host, 'error-text');
152
280
  this.syncItemsFromValue();
153
281
  };
154
- this.handleTagInteraction = (event) => {
155
- // Don't toggle the menu when a tag's clear button is activated
156
- const path = event.composedPath();
157
- const clearButton = path.find((el) => {
158
- if (el instanceof HTMLElement) {
159
- const element = el;
160
- return element.classList.contains('tag__clear');
161
- }
162
- });
163
- if (clearButton) {
164
- event.stopPropagation();
165
- this.sixChange.emit({ value: this.value, isSelected: true });
166
- }
167
- };
168
282
  this.hasFocus = false;
169
283
  this.hasHelpTextSlot = false;
170
284
  this.hasLabelSlot = false;
171
285
  this.hasErrorTextSlot = false;
172
286
  this.isOpen = false;
173
- this.displayLabel = '';
174
- this.displayTags = [];
287
+ this.displayedValues = [];
288
+ this.selectionContainerItems = [];
175
289
  this.multiple = false;
290
+ this.selectAllButton = false;
291
+ this.selectAllText = undefined;
176
292
  this.maxTagsVisible = 3;
177
293
  this.disabled = false;
178
294
  this.name = '';
179
295
  this.placeholder = '';
180
296
  this.filterPlaceholder = undefined;
181
- this.filterDebounce = DEFAULT_DEBOUNCE_FAST;
297
+ this.filterDebounce = undefined;
182
298
  this.size = 'medium';
183
299
  this.hoist = false;
184
300
  this.value = '';
@@ -223,14 +339,10 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
223
339
  await this.syncItemsFromValue();
224
340
  }
225
341
  connectedCallback() {
226
- var _a;
227
342
  if (this.virtualScroll && this.options === null) {
228
343
  console.error('Options must be defined when using virtual scrolling');
229
344
  }
230
- (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
231
- this.eventListeners.forward('six-select-change', 'change', this.host);
232
- this.eventListeners.forward('six-select-blur', 'blur', this.host);
233
- this.eventListeners.forward('six-select-focus', 'focus', this.host);
345
+ this.init();
234
346
  }
235
347
  componentWillLoad() {
236
348
  this.handleSlotChange();
@@ -239,22 +351,22 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
239
351
  }
240
352
  }
241
353
  componentDidLoad() {
242
- if (this.input == null)
243
- return;
244
- const input = this.input;
245
- this.resizeObserver = new ResizeObserver(() => this.resizeMenu());
354
+ this.init();
246
355
  // We need to do an initial sync after the component has rendered, so this will suppress the re-render warning
247
356
  requestAnimationFrame(() => this.syncItemsFromValue());
248
- this.eventListeners.add(input, 'six-input-input', debounce((event) => {
249
- const enteredValue = input.value;
250
- this.clearValues();
251
- this.sixChange.emit({ value: enteredValue, isSelected: false });
252
- event.stopPropagation();
253
- }, this.inputDebounce));
254
- input.value = this.hasSelection() ? this.displayLabel : '';
357
+ if (this.autocomplete && this.autocompleteInput != null) {
358
+ const autocompleteInput = this.autocompleteInput;
359
+ this.eventListeners.add(autocompleteInput, 'six-input-input', debounce((event) => {
360
+ this.value = autocompleteInput.value;
361
+ this.sixChange.emit({ value: this.value, isSelected: false });
362
+ event.stopPropagation();
363
+ }, this.inputDebounce));
364
+ autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;
365
+ }
255
366
  }
256
367
  disconnectedCallback() {
257
368
  var _a;
369
+ this.resizeObserver.disconnect();
258
370
  (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.removeEventListener('slotchange', this.handleSlotChange);
259
371
  this.eventListeners.removeAll();
260
372
  }
@@ -264,6 +376,16 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
264
376
  this.hasFocus = true;
265
377
  (_a = this.box) === null || _a === void 0 ? void 0 : _a.focus(options);
266
378
  }
379
+ init() {
380
+ var _a;
381
+ (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.addEventListener('slotchange', this.handleSlotChange);
382
+ this.eventListeners.forward('six-select-change', 'change', this.host);
383
+ this.eventListeners.forward('six-select-blur', 'blur', this.host);
384
+ this.eventListeners.forward('six-select-focus', 'focus', this.host);
385
+ if (this.displayValuesContainer) {
386
+ this.resizeObserver.observe(this.displayValuesContainer);
387
+ }
388
+ }
267
389
  getItemLabel(item) {
268
390
  var _a, _b;
269
391
  const slot = (_a = item.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('slot:not([name])');
@@ -276,92 +398,123 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
276
398
  }
277
399
  }
278
400
  getItems() {
279
- if (this.options !== null) {
280
- return this.options.map((option) => h("six-menu-item", { value: option.value }, option.label));
401
+ if (this.options !== null && this.menu != null && this.menu.shadowRoot != null) {
402
+ return [...this.menu.shadowRoot.querySelectorAll('six-menu-item')];
281
403
  }
282
404
  return [...this.host.querySelectorAll('six-menu-item')];
283
405
  }
284
- hasMenuItems() {
285
- return this.getItems().length > 0;
406
+ getVisibleItems() {
407
+ const selectionContainerItems = this.getSelectionContainerItems();
408
+ const mainItems = this.getItems();
409
+ return [...selectionContainerItems, ...mainItems].filter((i) => i.style.display !== 'none');
410
+ }
411
+ getSelectionContainerItems() {
412
+ var _a;
413
+ return [...(((_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelectorAll('six-menu-item')) || [])];
286
414
  }
287
415
  getValueAsArray() {
288
416
  const values = Array.isArray(this.value) ? this.value : this.value === '' ? [] : [this.value];
289
417
  // enforce that the values are converted to 'string' before the value is compared
290
418
  return values.map(String);
291
419
  }
292
- clearValues() {
420
+ async clearValues() {
293
421
  this.value = this.multiple ? [] : '';
294
- this.syncItemsFromValue();
422
+ this.selectionContainerItems = [];
423
+ await this.syncItemsFromValue();
295
424
  }
296
- resizeMenu() {
297
- if (this.menu == null || this.box == null)
298
- return;
299
- this.menu.style.minWidth = `${this.box.clientWidth}px`;
300
- if (this.dropdown) {
301
- this.dropdown.reposition();
302
- }
425
+ selectAll() {
426
+ const visibleItems = this.getVisibleItems();
427
+ const hasDeselectedOptions = this.hasDeselectedOptions();
428
+ visibleItems.filter((option) => !option.disabled).forEach((option) => (option.checked = hasDeselectedOptions));
429
+ const checkedItems = visibleItems.filter((option) => option.checked).map((option) => option.value);
430
+ this.value = hasDeselectedOptions ? checkedItems : [];
431
+ this.sixChange.emit({ value: this.value, isSelected: true });
303
432
  }
433
+ /**
434
+ * Sets the checked state of menu items and renders the displayed values.
435
+ */
304
436
  async syncItemsFromValue() {
305
- const items = this.getItems();
437
+ const selectionContainerItems = this.getSelectionContainerItems();
438
+ const mainItems = this.getItems();
306
439
  const value = this.getValueAsArray();
307
- // Sync checked states
308
- items.forEach((item) => (item.checked = value.includes(item.value)));
309
- // Sync display label
440
+ selectionContainerItems.forEach((item) => {
441
+ item.checkType = this.multiple ? 'checkbox' : 'check';
442
+ item.checked = value.includes(item.value);
443
+ });
444
+ mainItems.forEach((item) => {
445
+ item.checkType = this.multiple ? 'checkbox' : 'check';
446
+ item.checked = value.includes(item.value);
447
+ });
448
+ const checkedItems = getCheckedItems(this.getValueAsArray(), mainItems);
449
+ this.displayedValues = checkedItems.map((i) => this.getItemLabel(i));
450
+ if (this.autocomplete && this.autocompleteInput != null) {
451
+ this.autocompleteInput.value = Array.isArray(this.value) ? this.value.join(',') : this.value;
452
+ }
453
+ requestAnimationFrame(() => {
454
+ this.updateDisplayedValues();
455
+ });
456
+ }
457
+ syncValueFromItems() {
458
+ const items = this.getItems();
459
+ const checkedValues = items.filter((item) => item.checked).map((item) => item.value);
310
460
  if (this.multiple) {
311
- const checkedItems = [];
312
- value.forEach((val) => items.map((item) => (item.value === val ? checkedItems.push(item) : null)));
313
- this.displayTags = checkedItems.map((item) => {
314
- 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) => {
315
- event.stopPropagation();
316
- if (!this.disabled) {
317
- item.checked = false;
318
- this.syncValueFromItems();
319
- }
320
- } }, this.getItemLabel(item)));
321
- });
322
- if (this.maxTagsVisible > 0 && this.displayTags.length > this.maxTagsVisible) {
323
- const total = this.displayTags.length;
324
- this.displayLabel = '';
325
- this.displayTags = this.displayTags.slice(0, this.maxTagsVisible);
326
- this.displayTags.push(h("six-tag", { exportparts: "base:tag", type: "info", size: this.size }, "+", total - this.maxTagsVisible));
327
- }
461
+ this.value = checkedValues;
328
462
  }
329
463
  else {
330
- this.displayLabel = this.extractLabelForSelectedItem(value, items);
331
- this.displayTags = [];
332
- }
333
- if (!isValueEmpty(this.value)) {
334
- this.touched = true;
335
- }
336
- if (this.touched && this.input != null) {
337
- this.input.value = Array.isArray(this.value) ? this.value.join(',') : this.value;
464
+ this.value = checkedValues.length > 0 ? checkedValues[0] : '';
338
465
  }
339
466
  }
340
- extractLabelForSelectedItem(value, items) {
341
- if (value.length === 0 || (value.length === 1 && value[0] === '')) {
342
- return '';
467
+ updateDisplayedValues() {
468
+ var _a, _b;
469
+ const displayValueOptions = [...((_b = (_a = this.displayValuesContainer) === null || _a === void 0 ? void 0 : _a.querySelectorAll('.display-value')) !== null && _b !== void 0 ? _b : [])];
470
+ if (this.displayValuesContainer == null || displayValueOptions.length === 0 || this.overflowCount == null) {
471
+ return;
472
+ }
473
+ // Show all options and separators to properly measure all widths.
474
+ displayValueOptions.forEach((d) => {
475
+ showDisplayValue(d);
476
+ showSeparator(d);
477
+ });
478
+ // Measure available width. The last separator is added to the available width, because it will be hidden later on.
479
+ const separator = displayValueOptions[displayValueOptions.length - 1].querySelector('.separator');
480
+ if (separator == null)
481
+ return;
482
+ let availableWidth = getWidth(this.displayValuesContainer) + getWidth(separator);
483
+ // Compute how many display value elements fit in the available width
484
+ let { fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth);
485
+ if (overflowCount === 0) {
486
+ // All items fit, hide overflow count and show all values.
487
+ hideOverflowCount(this.overflowCount);
488
+ showFittingValues(displayValueOptions, fitCount);
343
489
  }
344
- if (this.options !== null) {
345
- const selectedOption = this.options.find((item) => item.value === value[0]);
346
- return (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value) || '';
490
+ else {
491
+ // Not all items fit in the available width. Recompute the available width with the overflow-count visible.
492
+ // Increment overflow count by one to make sure the elements fit, even if the overflow count increases to the
493
+ // next higher power of ten, e.g. from 9 to 10 or 99 to 100.
494
+ setOverflowCount(this.overflowCount, overflowCount + 1);
495
+ showOverflowCount(this.overflowCount);
496
+ // Subtract the overflow count from the available width
497
+ availableWidth = availableWidth - getWidth(this.overflowCount);
498
+ // Compute how many display value elements fit in the new available width
499
+ ({ fitCount, overflowCount } = computeFitCount(displayValueOptions, availableWidth));
500
+ // Show overflow count and items that fit.
501
+ setOverflowCount(this.overflowCount, overflowCount);
502
+ showFittingValues(displayValueOptions, fitCount);
347
503
  }
348
- const checkedItem = items.find((item) => item.value === value[0]);
349
- return checkedItem ? this.getItemLabel(checkedItem) : '';
350
- }
351
- syncValueFromItems() {
352
- const items = this.getItems();
353
- const checkedItems = items.filter((item) => item.checked);
354
- const checkedValues = checkedItems.map((item) => item.value);
355
- this.value = this.multiple
356
- ? this.getValueAsArray().filter((val) => checkedValues.includes(val))
357
- : checkedValues.length > 0
358
- ? checkedValues[0]
359
- : '';
360
504
  }
361
505
  render() {
362
506
  var _a;
363
507
  const hasSelection = this.hasSelection();
364
- 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: {
508
+ const items = this.getItems();
509
+ const hasMenuItems = items.length > 0;
510
+ const hasDeselectedOptions = this.hasDeselectedOptions();
511
+ let showClear = false;
512
+ let showExpand = hasMenuItems;
513
+ if (this.clearable && hasSelection) {
514
+ showClear = true;
515
+ showExpand = false;
516
+ }
517
+ 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: {
365
518
  select: true,
366
519
  'select--open': this.isOpen,
367
520
  'select--empty': ((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) === 0,
@@ -370,28 +523,33 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
370
523
  'select--disabled': this.disabled,
371
524
  'select--multiple': this.multiple,
372
525
  'select--has-tags': this.multiple && hasSelection,
373
- 'select--placeholder-visible': this.displayLabel === '',
526
+ 'select--placeholder-visible': this.displayedValues.length === 0,
374
527
  'select--small': this.size === 'small',
375
528
  'select--medium': this.size === 'medium',
376
529
  'select--large': this.size === 'large',
377
530
  'select--pill': this.pill,
378
531
  'select--invalid': this.invalid,
379
- }, 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: {
532
+ }, 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: {
380
533
  select__box: true,
381
534
  'select__box--line': this.line,
382
535
  'select__box--autocomplete': this.autocomplete,
383
- }, 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: {
536
+ }, 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: {
384
537
  select__input: true,
385
538
  'select__hidden-select': !this.autocomplete,
386
- }, "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: {
539
+ }, "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: {
540
+ 'selection-container': true,
541
+ 'selection-container--border': this.selectionContainerItems.length > 0 && items.length !== this.selectionContainerItems.length,
542
+ } }, this.selectionContainerItems), h("six-menu", { ref: (el) => (this.menu = el), part: "menu", class: {
387
543
  select__menu: true,
388
- 'select__menu--filtered': this.filter || this.asyncFilter,
389
- 'select__menu--hidden': !this.hasMenuItems(),
390
- }, "onSix-menu-item-selected": this.handleMenuSelect, items: this.options, virtualScroll: this.virtualScroll, "remove-box-shadow": true }, h("slot", { onSlotchange: this.handleSlotChange })))));
544
+ 'select__menu--hidden': !hasMenuItems,
545
+ }, "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))))));
391
546
  }
392
547
  hasSelection() {
393
548
  return this.multiple ? this.value.length > 0 : this.value !== '';
394
549
  }
550
+ hasDeselectedOptions() {
551
+ return this.getVisibleItems().some((opt) => !opt.disabled && !opt.checked);
552
+ }
395
553
  get host() { return this; }
396
554
  static get watchers() { return {
397
555
  "disabled": ["handleDisabledChange"],
@@ -404,6 +562,8 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
404
562
  static get style() { return sixSelectCss; }
405
563
  }, [1, "six-select", {
406
564
  "multiple": [4],
565
+ "selectAllButton": [4, "select-all-button"],
566
+ "selectAllText": [1, "select-all-text"],
407
567
  "maxTagsVisible": [2, "max-tags-visible"],
408
568
  "disabled": [4],
409
569
  "name": [1],
@@ -433,8 +593,8 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
433
593
  "hasLabelSlot": [32],
434
594
  "hasErrorTextSlot": [32],
435
595
  "isOpen": [32],
436
- "displayLabel": [32],
437
- "displayTags": [32],
596
+ "displayedValues": [32],
597
+ "selectionContainerItems": [32],
438
598
  "setFocus": [64]
439
599
  }, undefined, {
440
600
  "disabled": ["handleDisabledChange"],
@@ -444,58 +604,148 @@ const SixSelect$1 = /*@__PURE__*/ proxyCustomElement(class SixSelect extends HTM
444
604
  "multiple": ["handleMultipleChange"],
445
605
  "value": ["handleValueChange"]
446
606
  }]);
607
+ function getCheckedItems(value, items) {
608
+ return items.filter((item) => value.includes(item.value));
609
+ }
610
+ function getWidth(element) {
611
+ return element.getBoundingClientRect().width;
612
+ }
613
+ function computeFitCount(options, availableWidth) {
614
+ let accumulatedWidth = 0;
615
+ let fitCount = 0;
616
+ for (let i = 0; i < options.length; i++) {
617
+ const displayOption = options[i];
618
+ const width = getWidth(displayOption);
619
+ if (i === 0 && width > availableWidth) {
620
+ fitCount = 1;
621
+ break;
622
+ }
623
+ accumulatedWidth += width;
624
+ if (accumulatedWidth > availableWidth) {
625
+ break;
626
+ }
627
+ else {
628
+ fitCount += 1;
629
+ }
630
+ }
631
+ const overflowCount = options.length - fitCount;
632
+ return { fitCount, overflowCount };
633
+ }
634
+ function showFittingValues(displayValueOptions, fitCount) {
635
+ if (displayValueOptions.length > 0) {
636
+ // show items that fit
637
+ displayValueOptions.slice(0, fitCount).forEach((displayValue, index, list) => {
638
+ showDisplayValue(displayValue);
639
+ const isLast = index === list.length - 1;
640
+ if (isLast) {
641
+ hideSeparator(displayValue);
642
+ }
643
+ else {
644
+ showSeparator(displayValue);
645
+ }
646
+ });
647
+ // hide the rest
648
+ displayValueOptions.slice(fitCount).forEach((displayValue) => {
649
+ hideDisplayValue(displayValue);
650
+ showSeparator(displayValue);
651
+ });
652
+ }
653
+ }
654
+ function hideSeparator(displayValueOption) {
655
+ var _a;
656
+ (_a = displayValueOption.querySelector('.separator')) === null || _a === void 0 ? void 0 : _a.classList.add('separator--hidden');
657
+ }
658
+ function showSeparator(displayValueOption) {
659
+ var _a;
660
+ (_a = displayValueOption.querySelector('.separator')) === null || _a === void 0 ? void 0 : _a.classList.remove('separator--hidden');
661
+ }
662
+ function showDisplayValue(displayValueOption) {
663
+ displayValueOption.classList.remove('display-value--hidden');
664
+ }
665
+ function hideDisplayValue(displayValueOption) {
666
+ displayValueOption.classList.add('display-value--hidden');
667
+ }
668
+ function setOverflowCount(overflowCount, count) {
669
+ overflowCount.textContent = `+${count}`;
670
+ }
671
+ function showOverflowCount(overflowCount) {
672
+ overflowCount.classList.remove('overflow-count-hidden');
673
+ }
674
+ function hideOverflowCount(overflowCount) {
675
+ overflowCount.classList.add('overflow-count-hidden');
676
+ }
677
+ function selectAllDefaultText(hasDeselectedOptions) {
678
+ const lang = getLanguage();
679
+ switch (lang) {
680
+ case 'de':
681
+ return hasDeselectedOptions ? 'Alle auswählen' : 'Alle abwählen';
682
+ case 'fr':
683
+ return hasDeselectedOptions ? 'Tout sélectionner' : 'Tout désélectionner';
684
+ case 'it':
685
+ return hasDeselectedOptions ? 'Seleziona tutto' : 'Deseleziona tutto';
686
+ case 'en':
687
+ return hasDeselectedOptions ? 'Select all' : 'Deselect all';
688
+ case 'es':
689
+ return hasDeselectedOptions ? 'Seleccionar todo' : 'Deseleccionar todo';
690
+ }
691
+ }
447
692
  function defineCustomElement$1() {
448
693
  if (typeof customElements === "undefined") {
449
694
  return;
450
695
  }
451
- const components = ["six-select", "six-dropdown", "six-error", "six-icon", "six-icon-button", "six-input", "six-menu", "six-menu-item", "six-tag", "six-tooltip"];
696
+ const components = ["six-select", "six-button", "six-checkbox", "six-dropdown", "six-error", "six-icon", "six-icon-button", "six-input", "six-menu", "six-menu-item", "six-spinner"];
452
697
  components.forEach(tagName => { switch (tagName) {
453
698
  case "six-select":
454
699
  if (!customElements.get(tagName)) {
455
700
  customElements.define(tagName, SixSelect$1);
456
701
  }
457
702
  break;
458
- case "six-dropdown":
703
+ case "six-button":
704
+ if (!customElements.get(tagName)) {
705
+ defineCustomElement$b();
706
+ }
707
+ break;
708
+ case "six-checkbox":
459
709
  if (!customElements.get(tagName)) {
460
710
  defineCustomElement$a();
461
711
  }
462
712
  break;
463
- case "six-error":
713
+ case "six-dropdown":
464
714
  if (!customElements.get(tagName)) {
465
715
  defineCustomElement$9();
466
716
  }
467
717
  break;
468
- case "six-icon":
718
+ case "six-error":
469
719
  if (!customElements.get(tagName)) {
470
720
  defineCustomElement$8();
471
721
  }
472
722
  break;
473
- case "six-icon-button":
723
+ case "six-icon":
474
724
  if (!customElements.get(tagName)) {
475
725
  defineCustomElement$7();
476
726
  }
477
727
  break;
478
- case "six-input":
728
+ case "six-icon-button":
479
729
  if (!customElements.get(tagName)) {
480
730
  defineCustomElement$6();
481
731
  }
482
732
  break;
483
- case "six-menu":
733
+ case "six-input":
484
734
  if (!customElements.get(tagName)) {
485
735
  defineCustomElement$5();
486
736
  }
487
737
  break;
488
- case "six-menu-item":
738
+ case "six-menu":
489
739
  if (!customElements.get(tagName)) {
490
740
  defineCustomElement$4();
491
741
  }
492
742
  break;
493
- case "six-tag":
743
+ case "six-menu-item":
494
744
  if (!customElements.get(tagName)) {
495
745
  defineCustomElement$3();
496
746
  }
497
747
  break;
498
- case "six-tooltip":
748
+ case "six-spinner":
499
749
  if (!customElements.get(tagName)) {
500
750
  defineCustomElement$2();
501
751
  }
@@ -506,6 +756,6 @@ function defineCustomElement$1() {
506
756
  const SixSelect = SixSelect$1;
507
757
  const defineCustomElement = defineCustomElement$1;
508
758
 
509
- export { SixSelect, defineCustomElement };
759
+ export { SixSelect, getLanguage as a, defineCustomElement, getErrorMessage as g, languages as l };
510
760
 
511
761
  //# sourceMappingURL=six-select.js.map