@scania/tegel 1.25.0-fix-a11y-checkbox-testing-previous-version-beta.0 → 1.25.0-fix-a11y-chip-more-improvements-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-badge.cjs.entry.js +5 -9
  3. package/dist/cjs/tds-block.cjs.entry.js +3 -1
  4. package/dist/cjs/tds-body-cell.cjs.entry.js +2 -2
  5. package/dist/cjs/tds-breadcrumb.cjs.entry.js +2 -2
  6. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +7 -1
  7. package/dist/cjs/tds-button.cjs.entry.js +9 -3
  8. package/dist/cjs/tds-card.cjs.entry.js +1 -1
  9. package/dist/cjs/tds-checkbox.cjs.entry.js +3 -11
  10. package/dist/cjs/tds-chip.cjs.entry.js +12 -2
  11. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +40 -3
  12. package/dist/cjs/tds-datetime.cjs.entry.js +20 -13
  13. package/dist/cjs/tds-divider.cjs.entry.js +1 -1
  14. package/dist/cjs/tds-dropdown_2.cjs.entry.js +186 -199
  15. package/dist/cjs/tds-folder-tab.cjs.entry.js +2 -2
  16. package/dist/cjs/tds-folder-tabs.cjs.entry.js +2 -2
  17. package/dist/cjs/tds-footer-group.cjs.entry.js +3 -3
  18. package/dist/cjs/tds-footer-item.cjs.entry.js +1 -1
  19. package/dist/cjs/tds-footer.cjs.entry.js +2 -2
  20. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +1 -1
  21. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  22. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  23. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +1 -1
  24. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +1 -1
  25. package/dist/cjs/tds-header-dropdown.cjs.entry.js +3 -3
  26. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  27. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  28. package/dist/cjs/tds-header-launcher-grid-item.cjs.entry.js +1 -1
  29. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  32. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +1 -1
  33. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +1 -1
  34. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  35. package/dist/cjs/tds-header-title.cjs.entry.js +1 -1
  36. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  37. package/dist/cjs/tds-icon.cjs.entry.js +1 -1
  38. package/dist/cjs/tds-inline-tab.cjs.entry.js +2 -2
  39. package/dist/cjs/tds-inline-tabs.cjs.entry.js +2 -2
  40. package/dist/cjs/tds-link.cjs.entry.js +2 -2
  41. package/dist/cjs/tds-message.cjs.entry.js +2 -2
  42. package/dist/cjs/tds-modal.cjs.entry.js +2 -2
  43. package/dist/cjs/tds-navigation-tab.cjs.entry.js +2 -2
  44. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +4 -4
  45. package/dist/cjs/tds-popover-canvas.cjs.entry.js +2 -2
  46. package/dist/cjs/tds-popover-core.cjs.entry.js +1 -1
  47. package/dist/cjs/tds-popover-menu-item.cjs.entry.js +2 -2
  48. package/dist/cjs/tds-popover-menu.cjs.entry.js +2 -2
  49. package/dist/cjs/tds-radio-button.cjs.entry.js +1 -1
  50. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  51. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -4
  52. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +2 -2
  53. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +2 -2
  54. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +3 -3
  55. package/dist/cjs/tds-side-menu-item.cjs.entry.js +2 -2
  56. package/dist/cjs/tds-side-menu-overlay.cjs.entry.js +1 -1
  57. package/dist/cjs/tds-side-menu-user-image_2.cjs.entry.js +2 -2
  58. package/dist/cjs/tds-side-menu-user.cjs.entry.js +1 -1
  59. package/dist/cjs/tds-slider.cjs.entry.js +7 -7
  60. package/dist/cjs/tds-spinner.cjs.entry.js +1 -1
  61. package/dist/cjs/tds-step.cjs.entry.js +1 -1
  62. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  63. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +7 -7
  64. package/dist/cjs/tds-table-body-row.cjs.entry.js +2 -2
  65. package/dist/cjs/tds-table-body.cjs.entry.js +2 -2
  66. package/dist/cjs/tds-table-footer.cjs.entry.js +3 -3
  67. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  68. package/dist/cjs/tds-table-header.cjs.entry.js +2 -2
  69. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  70. package/dist/cjs/tds-text-field.cjs.entry.js +6 -6
  71. package/dist/cjs/tds-textarea.cjs.entry.js +3 -3
  72. package/dist/cjs/tds-toast.cjs.entry.js +3 -3
  73. package/dist/cjs/tds-toggle.cjs.entry.js +11 -2
  74. package/dist/cjs/tds-tooltip.cjs.entry.js +2 -2
  75. package/dist/cjs/tegel.cjs.js +1 -1
  76. package/dist/collection/components/badge/badge.js +24 -9
  77. package/dist/collection/components/block/block.js +27 -2
  78. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.css +9 -10
  79. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +2 -2
  80. package/dist/collection/components/breadcrumbs/breadcrumbs.js +30 -1
  81. package/dist/collection/components/button/button.js +26 -3
  82. package/dist/collection/components/card/card.js +1 -1
  83. package/dist/collection/components/checkbox/checkbox.js +3 -28
  84. package/dist/collection/components/chip/chip.js +30 -3
  85. package/dist/collection/components/datetime/datetime.css +20 -0
  86. package/dist/collection/components/datetime/datetime.js +22 -15
  87. package/dist/collection/components/divider/divider.js +1 -1
  88. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +16 -6
  89. package/dist/collection/components/dropdown/dropdown.js +236 -242
  90. package/dist/collection/components/footer/footer-group/footer-group.js +3 -3
  91. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  92. package/dist/collection/components/footer/footer.js +2 -2
  93. package/dist/collection/components/header/core-header-item/core-header-item.js +1 -1
  94. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +1 -1
  95. package/dist/collection/components/header/header-dropdown/header-dropdown.js +3 -3
  96. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +1 -1
  97. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +2 -2
  98. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +1 -1
  99. package/dist/collection/components/header/header-hamburger/header-hamburger.js +1 -1
  100. package/dist/collection/components/header/header-item/header-item.js +39 -2
  101. package/dist/collection/components/header/header-launcher/header-launcher.js +2 -2
  102. package/dist/collection/components/header/header-launcher-button/header-launcher-button.js +1 -1
  103. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +1 -1
  104. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +1 -1
  105. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +1 -1
  106. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +1 -1
  107. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +1 -1
  108. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +1 -1
  109. package/dist/collection/components/header/header-title/header-title.js +1 -1
  110. package/dist/collection/components/header/header.js +1 -1
  111. package/dist/collection/components/icon/icon.js +1 -1
  112. package/dist/collection/components/link/link.js +2 -2
  113. package/dist/collection/components/message/message.js +2 -2
  114. package/dist/collection/components/modal/modal.js +2 -2
  115. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  116. package/dist/collection/components/popover-core/popover-core.js +1 -1
  117. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  118. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  119. package/dist/collection/components/radio-button/radio-button.js +1 -1
  120. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  121. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  122. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  123. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  124. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  125. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  126. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  127. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  128. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  129. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  130. package/dist/collection/components/slider/slider.js +7 -7
  131. package/dist/collection/components/spinner/spinner.js +1 -1
  132. package/dist/collection/components/stepper/step/step.js +1 -1
  133. package/dist/collection/components/table/table-body/table-body.js +2 -2
  134. package/dist/collection/components/table/table-body-cell/table-body-cell.js +2 -2
  135. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  136. package/dist/collection/components/table/table-body-row/table-body-row.js +2 -2
  137. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  138. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  139. package/dist/collection/components/table/table-header/table-header.js +2 -2
  140. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  141. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  142. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  143. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +2 -2
  144. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +2 -2
  145. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +2 -2
  146. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +2 -2
  147. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +2 -2
  148. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +4 -4
  149. package/dist/collection/components/text-field/text-field.js +6 -6
  150. package/dist/collection/components/textarea/textarea.js +3 -3
  151. package/dist/collection/components/toast/toast.js +3 -3
  152. package/dist/collection/components/toggle/toggle.js +28 -2
  153. package/dist/collection/components/tooltip/tooltip.js +2 -2
  154. package/dist/collection/utils/axeHelpers.js +1 -1
  155. package/dist/components/{p-2ef329f1.js → p-0e6efec9.js} +2 -2
  156. package/dist/components/{p-4bdaf254.js → p-265c3467.js} +1 -1
  157. package/dist/components/{p-f0a50868.js → p-29d19dc8.js} +3 -3
  158. package/dist/components/{p-2fe6672d.js → p-2a43e410.js} +18 -8
  159. package/dist/components/{p-75437dea.js → p-34737ed9.js} +1 -1
  160. package/dist/components/{p-d1ace0be.js → p-3e93886d.js} +1 -1
  161. package/dist/components/{p-3351035f.js → p-4764a1d5.js} +1 -1
  162. package/dist/components/{p-f1980746.js → p-4c1e3344.js} +4 -4
  163. package/dist/components/{p-9d7232d0.js → p-8c849aa2.js} +2 -2
  164. package/dist/components/{p-ad77fb02.js → p-a2b7bdef.js} +1 -1
  165. package/dist/components/{p-467fe701.js → p-a64dc22e.js} +179 -199
  166. package/dist/components/{p-3ff2a23b.js → p-c65351ab.js} +3 -12
  167. package/dist/components/{p-3a7f88ff.js → p-d61bd22e.js} +40 -3
  168. package/dist/components/{p-707a562e.js → p-e49a0ceb.js} +1 -1
  169. package/dist/components/{p-8f8b0827.js → p-e8d2dbbf.js} +1 -1
  170. package/dist/components/tds-accordion-item.js +1 -1
  171. package/dist/components/tds-badge.js +7 -9
  172. package/dist/components/tds-banner.js +1 -1
  173. package/dist/components/tds-block.js +5 -2
  174. package/dist/components/tds-body-cell.js +2 -2
  175. package/dist/components/tds-breadcrumb.js +3 -3
  176. package/dist/components/tds-breadcrumbs.js +10 -2
  177. package/dist/components/tds-button.js +10 -3
  178. package/dist/components/tds-card.js +2 -2
  179. package/dist/components/tds-checkbox.js +1 -1
  180. package/dist/components/tds-chip.js +14 -3
  181. package/dist/components/tds-core-header-item.js +1 -1
  182. package/dist/components/tds-datetime.js +21 -14
  183. package/dist/components/tds-divider.js +1 -1
  184. package/dist/components/tds-dropdown-option.js +1 -1
  185. package/dist/components/tds-dropdown.js +1 -1
  186. package/dist/components/tds-folder-tab.js +2 -2
  187. package/dist/components/tds-folder-tabs.js +3 -3
  188. package/dist/components/tds-footer-group.js +4 -4
  189. package/dist/components/tds-footer-item.js +1 -1
  190. package/dist/components/tds-footer.js +2 -2
  191. package/dist/components/tds-header-brand-symbol.js +3 -3
  192. package/dist/components/tds-header-cell.js +2 -2
  193. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  194. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  195. package/dist/components/tds-header-dropdown-list.js +1 -1
  196. package/dist/components/tds-header-dropdown.js +8 -8
  197. package/dist/components/tds-header-hamburger.js +4 -4
  198. package/dist/components/tds-header-item.js +1 -1
  199. package/dist/components/tds-header-launcher-button.js +1 -1
  200. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  201. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  202. package/dist/components/tds-header-launcher-grid.js +1 -1
  203. package/dist/components/tds-header-launcher-list-item.js +2 -2
  204. package/dist/components/tds-header-launcher-list-title.js +1 -1
  205. package/dist/components/tds-header-launcher-list.js +2 -2
  206. package/dist/components/tds-header-launcher.js +8 -8
  207. package/dist/components/tds-header-title.js +1 -1
  208. package/dist/components/tds-header.js +1 -1
  209. package/dist/components/tds-icon.js +1 -1
  210. package/dist/components/tds-inline-tab.js +2 -2
  211. package/dist/components/tds-inline-tabs.js +3 -3
  212. package/dist/components/tds-link.js +2 -2
  213. package/dist/components/tds-message.js +3 -3
  214. package/dist/components/tds-modal.js +3 -3
  215. package/dist/components/tds-navigation-tab.js +2 -2
  216. package/dist/components/tds-navigation-tabs.js +5 -5
  217. package/dist/components/tds-popover-canvas.js +1 -1
  218. package/dist/components/tds-popover-core.js +1 -1
  219. package/dist/components/tds-popover-menu-item.js +2 -2
  220. package/dist/components/tds-popover-menu.js +3 -3
  221. package/dist/components/tds-radio-button.js +1 -1
  222. package/dist/components/tds-side-menu-close-button.js +2 -2
  223. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  224. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  225. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  226. package/dist/components/tds-side-menu-dropdown.js +5 -5
  227. package/dist/components/tds-side-menu-item.js +1 -1
  228. package/dist/components/tds-side-menu-overlay.js +1 -1
  229. package/dist/components/tds-side-menu-user-image.js +1 -1
  230. package/dist/components/tds-side-menu-user-label.js +1 -1
  231. package/dist/components/tds-side-menu-user.js +3 -3
  232. package/dist/components/tds-slider.js +8 -8
  233. package/dist/components/tds-spinner.js +1 -1
  234. package/dist/components/tds-step.js +2 -2
  235. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  236. package/dist/components/tds-table-body-row-expandable.js +7 -7
  237. package/dist/components/tds-table-body-row.js +3 -3
  238. package/dist/components/tds-table-body.js +2 -2
  239. package/dist/components/tds-table-footer.js +7 -7
  240. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  241. package/dist/components/tds-table-header.js +3 -3
  242. package/dist/components/tds-table-toolbar.js +3 -3
  243. package/dist/components/tds-text-field.js +7 -7
  244. package/dist/components/tds-textarea.js +4 -4
  245. package/dist/components/tds-toast.js +4 -4
  246. package/dist/components/tds-toggle.js +12 -2
  247. package/dist/components/tds-tooltip.js +3 -3
  248. package/dist/esm/loader.js +1 -1
  249. package/dist/esm/tds-badge.entry.js +5 -9
  250. package/dist/esm/tds-block.entry.js +3 -1
  251. package/dist/esm/tds-body-cell.entry.js +2 -2
  252. package/dist/esm/tds-breadcrumb.entry.js +3 -3
  253. package/dist/esm/tds-breadcrumbs.entry.js +7 -1
  254. package/dist/esm/tds-button.entry.js +9 -3
  255. package/dist/esm/tds-card.entry.js +1 -1
  256. package/dist/esm/tds-checkbox.entry.js +3 -11
  257. package/dist/esm/tds-chip.entry.js +12 -2
  258. package/dist/esm/tds-core-header-item_2.entry.js +40 -3
  259. package/dist/esm/tds-datetime.entry.js +20 -13
  260. package/dist/esm/tds-divider.entry.js +1 -1
  261. package/dist/esm/tds-dropdown_2.entry.js +186 -199
  262. package/dist/esm/tds-folder-tab.entry.js +2 -2
  263. package/dist/esm/tds-folder-tabs.entry.js +2 -2
  264. package/dist/esm/tds-footer-group.entry.js +3 -3
  265. package/dist/esm/tds-footer-item.entry.js +1 -1
  266. package/dist/esm/tds-footer.entry.js +2 -2
  267. package/dist/esm/tds-header-brand-symbol.entry.js +1 -1
  268. package/dist/esm/tds-header-cell.entry.js +1 -1
  269. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  270. package/dist/esm/tds-header-dropdown-list-user.entry.js +1 -1
  271. package/dist/esm/tds-header-dropdown-list.entry.js +1 -1
  272. package/dist/esm/tds-header-dropdown.entry.js +3 -3
  273. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  274. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  275. package/dist/esm/tds-header-launcher-grid-item.entry.js +1 -1
  276. package/dist/esm/tds-header-launcher-grid-title.entry.js +1 -1
  277. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  278. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  279. package/dist/esm/tds-header-launcher-list-title.entry.js +1 -1
  280. package/dist/esm/tds-header-launcher-list.entry.js +1 -1
  281. package/dist/esm/tds-header-launcher.entry.js +2 -2
  282. package/dist/esm/tds-header-title.entry.js +1 -1
  283. package/dist/esm/tds-header.entry.js +1 -1
  284. package/dist/esm/tds-icon.entry.js +1 -1
  285. package/dist/esm/tds-inline-tab.entry.js +2 -2
  286. package/dist/esm/tds-inline-tabs.entry.js +2 -2
  287. package/dist/esm/tds-link.entry.js +2 -2
  288. package/dist/esm/tds-message.entry.js +2 -2
  289. package/dist/esm/tds-modal.entry.js +2 -2
  290. package/dist/esm/tds-navigation-tab.entry.js +2 -2
  291. package/dist/esm/tds-navigation-tabs.entry.js +4 -4
  292. package/dist/esm/tds-popover-canvas.entry.js +2 -2
  293. package/dist/esm/tds-popover-core.entry.js +1 -1
  294. package/dist/esm/tds-popover-menu-item.entry.js +2 -2
  295. package/dist/esm/tds-popover-menu.entry.js +2 -2
  296. package/dist/esm/tds-radio-button.entry.js +1 -1
  297. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  298. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -4
  299. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +2 -2
  300. package/dist/esm/tds-side-menu-dropdown-list.entry.js +2 -2
  301. package/dist/esm/tds-side-menu-dropdown.entry.js +3 -3
  302. package/dist/esm/tds-side-menu-item.entry.js +2 -2
  303. package/dist/esm/tds-side-menu-overlay.entry.js +1 -1
  304. package/dist/esm/tds-side-menu-user-image_2.entry.js +2 -2
  305. package/dist/esm/tds-side-menu-user.entry.js +1 -1
  306. package/dist/esm/tds-slider.entry.js +7 -7
  307. package/dist/esm/tds-spinner.entry.js +1 -1
  308. package/dist/esm/tds-step.entry.js +1 -1
  309. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  310. package/dist/esm/tds-table-body-row-expandable.entry.js +7 -7
  311. package/dist/esm/tds-table-body-row.entry.js +2 -2
  312. package/dist/esm/tds-table-body.entry.js +2 -2
  313. package/dist/esm/tds-table-footer.entry.js +3 -3
  314. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  315. package/dist/esm/tds-table-header.entry.js +2 -2
  316. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  317. package/dist/esm/tds-text-field.entry.js +6 -6
  318. package/dist/esm/tds-textarea.entry.js +3 -3
  319. package/dist/esm/tds-toast.entry.js +3 -3
  320. package/dist/esm/tds-toggle.entry.js +11 -2
  321. package/dist/esm/tds-tooltip.entry.js +2 -2
  322. package/dist/esm/tegel.js +1 -1
  323. package/dist/tegel/{p-d027f6b9.entry.js → p-01edebef.entry.js} +1 -1
  324. package/dist/tegel/{p-3e144a83.entry.js → p-035e58e6.entry.js} +1 -1
  325. package/dist/tegel/{p-170ab61b.entry.js → p-065d6f83.entry.js} +1 -1
  326. package/dist/tegel/{p-72106a5c.entry.js → p-168122a7.entry.js} +1 -1
  327. package/dist/tegel/{p-6eeded00.entry.js → p-19eb4ae1.entry.js} +1 -1
  328. package/dist/tegel/{p-b0a5eba7.entry.js → p-1b390acb.entry.js} +1 -1
  329. package/dist/tegel/{p-059a9499.entry.js → p-288a09ef.entry.js} +1 -1
  330. package/dist/tegel/{p-b2018a5b.entry.js → p-3204ae8f.entry.js} +1 -1
  331. package/dist/tegel/p-32be63ea.entry.js +1 -0
  332. package/dist/tegel/{p-cc2730d8.entry.js → p-34b793c9.entry.js} +1 -1
  333. package/dist/tegel/p-3c2f7033.entry.js +1 -0
  334. package/dist/tegel/p-46205cfb.entry.js +1 -0
  335. package/dist/tegel/p-4d5963d0.entry.js +1 -0
  336. package/dist/tegel/{p-68859ddc.entry.js → p-4e298888.entry.js} +1 -1
  337. package/dist/tegel/{p-9c3f2c12.entry.js → p-4e33cbda.entry.js} +1 -1
  338. package/dist/tegel/{p-b425b2f4.entry.js → p-4ee344e5.entry.js} +1 -1
  339. package/dist/tegel/p-4f5f152a.entry.js +1 -0
  340. package/dist/tegel/p-4fe6512b.entry.js +1 -0
  341. package/dist/tegel/p-5242a1f6.entry.js +1 -0
  342. package/dist/tegel/{p-038c22ff.entry.js → p-542d7b3e.entry.js} +1 -1
  343. package/dist/tegel/{p-5eaa23dc.entry.js → p-5a7110b8.entry.js} +1 -1
  344. package/dist/tegel/{p-93930c03.entry.js → p-5ba254ee.entry.js} +1 -1
  345. package/dist/tegel/{p-06968bd7.entry.js → p-60b38806.entry.js} +1 -1
  346. package/dist/tegel/p-64c80f14.entry.js +1 -0
  347. package/dist/tegel/{p-7929d22f.entry.js → p-654785d2.entry.js} +1 -1
  348. package/dist/tegel/p-6f17d37f.entry.js +1 -0
  349. package/dist/tegel/p-70795d6e.entry.js +1 -0
  350. package/dist/tegel/{p-4a282c25.entry.js → p-72fd0083.entry.js} +1 -1
  351. package/dist/tegel/{p-3d3ee51f.entry.js → p-74fc9c92.entry.js} +1 -1
  352. package/dist/tegel/p-77c79b91.entry.js +1 -0
  353. package/dist/tegel/{p-54154f09.entry.js → p-77d457b8.entry.js} +1 -1
  354. package/dist/tegel/{p-4b7c53a6.entry.js → p-78d5acd7.entry.js} +1 -1
  355. package/dist/tegel/{p-44c33b20.entry.js → p-7c4c65c9.entry.js} +1 -1
  356. package/dist/tegel/{p-3a32fe40.entry.js → p-848c2732.entry.js} +1 -1
  357. package/dist/tegel/p-868757d9.entry.js +1 -0
  358. package/dist/tegel/p-8c8b9908.entry.js +1 -0
  359. package/dist/tegel/{p-59293f88.entry.js → p-93a4bd11.entry.js} +1 -1
  360. package/dist/tegel/{p-2f32991e.entry.js → p-96635c10.entry.js} +1 -1
  361. package/dist/tegel/p-9e0b31a1.entry.js +1 -0
  362. package/dist/tegel/{p-c289dfb9.entry.js → p-a0fc0cc2.entry.js} +1 -1
  363. package/dist/tegel/p-a5e0f030.entry.js +1 -0
  364. package/dist/tegel/{p-96bdf035.entry.js → p-aa9d281b.entry.js} +1 -1
  365. package/dist/tegel/p-ae46766a.entry.js +1 -0
  366. package/dist/tegel/{p-86b30f71.entry.js → p-aef6b130.entry.js} +1 -1
  367. package/dist/tegel/p-b08886e3.entry.js +1 -0
  368. package/dist/tegel/{p-f67b4047.entry.js → p-b35e7208.entry.js} +1 -1
  369. package/dist/tegel/{p-a86fe122.entry.js → p-b39ffad4.entry.js} +1 -1
  370. package/dist/tegel/p-b5ced8e5.entry.js +1 -0
  371. package/dist/tegel/{p-fd3d56aa.entry.js → p-b6526302.entry.js} +1 -1
  372. package/dist/tegel/{p-e7300cca.entry.js → p-b686f1ad.entry.js} +1 -1
  373. package/dist/tegel/{p-b96cd80d.entry.js → p-b9576881.entry.js} +1 -1
  374. package/dist/tegel/p-b9f81e53.entry.js +1 -0
  375. package/dist/tegel/{p-708a8bab.entry.js → p-bee533b5.entry.js} +1 -1
  376. package/dist/tegel/{p-99da056d.entry.js → p-c56be8d1.entry.js} +1 -1
  377. package/dist/tegel/{p-2a38b053.entry.js → p-c8404432.entry.js} +1 -1
  378. package/dist/tegel/{p-24ff5903.entry.js → p-ca93de01.entry.js} +1 -1
  379. package/dist/tegel/p-cc6c06e3.entry.js +1 -0
  380. package/dist/tegel/{p-b19ce79c.entry.js → p-cca85da0.entry.js} +1 -1
  381. package/dist/tegel/{p-ab0528bf.entry.js → p-cde32bc6.entry.js} +1 -1
  382. package/dist/tegel/p-d0abf078.entry.js +1 -0
  383. package/dist/tegel/{p-6d022f47.entry.js → p-d267665e.entry.js} +1 -1
  384. package/dist/tegel/{p-e9ac7a1a.entry.js → p-d33cb2d1.entry.js} +1 -1
  385. package/dist/tegel/{p-5fea857b.entry.js → p-d47c744f.entry.js} +1 -1
  386. package/dist/tegel/p-d65dfe04.entry.js +1 -0
  387. package/dist/tegel/{p-2a96bd05.entry.js → p-d853f8c2.entry.js} +1 -1
  388. package/dist/tegel/p-d9511720.entry.js +1 -0
  389. package/dist/tegel/{p-0b773208.entry.js → p-dcbc35af.entry.js} +1 -1
  390. package/dist/tegel/{p-fd432c54.entry.js → p-dfbbaefd.entry.js} +1 -1
  391. package/dist/tegel/{p-88204e0a.entry.js → p-ea3e071f.entry.js} +1 -1
  392. package/dist/tegel/{p-2795009a.entry.js → p-ed17283a.entry.js} +1 -1
  393. package/dist/tegel/{p-e478953c.entry.js → p-ee7f07ae.entry.js} +1 -1
  394. package/dist/tegel/{p-b9b63210.entry.js → p-f1b0211a.entry.js} +1 -1
  395. package/dist/tegel/{p-a392e6e7.entry.js → p-fa07db58.entry.js} +1 -1
  396. package/dist/tegel/tegel.esm.js +1 -1
  397. package/dist/types/components/badge/badge.d.ts +3 -0
  398. package/dist/types/components/block/block.d.ts +8 -1
  399. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  400. package/dist/types/components/button/button.d.ts +3 -0
  401. package/dist/types/components/checkbox/checkbox.d.ts +0 -2
  402. package/dist/types/components/chip/chip.d.ts +3 -0
  403. package/dist/types/components/datetime/datetime.d.ts +2 -2
  404. package/dist/types/components/dropdown/dropdown.d.ts +24 -23
  405. package/dist/types/components/header/header-item/header-item.d.ts +7 -0
  406. package/dist/types/components/toggle/toggle.d.ts +5 -0
  407. package/dist/types/components.d.ts +98 -25
  408. package/package.json +1 -1
  409. package/dist/tegel/p-0939b9fb.entry.js +0 -1
  410. package/dist/tegel/p-1703f73a.entry.js +0 -1
  411. package/dist/tegel/p-1aecae56.entry.js +0 -1
  412. package/dist/tegel/p-32b7f431.entry.js +0 -1
  413. package/dist/tegel/p-3c22aef7.entry.js +0 -1
  414. package/dist/tegel/p-3e1b1399.entry.js +0 -1
  415. package/dist/tegel/p-48bbc11f.entry.js +0 -1
  416. package/dist/tegel/p-4b231bf9.entry.js +0 -1
  417. package/dist/tegel/p-4c2f313d.entry.js +0 -1
  418. package/dist/tegel/p-5e0fc86c.entry.js +0 -1
  419. package/dist/tegel/p-7090a95c.entry.js +0 -1
  420. package/dist/tegel/p-85a9032e.entry.js +0 -1
  421. package/dist/tegel/p-92f81cda.entry.js +0 -1
  422. package/dist/tegel/p-9f06c6fa.entry.js +0 -1
  423. package/dist/tegel/p-a38dda58.entry.js +0 -1
  424. package/dist/tegel/p-b647d20e.entry.js +0 -1
  425. package/dist/tegel/p-be88c5ab.entry.js +0 -1
  426. package/dist/tegel/p-d7f48112.entry.js +0 -1
  427. package/dist/tegel/p-d926d075.entry.js +0 -1
  428. package/dist/tegel/p-ddd33cce.entry.js +0 -1
  429. package/dist/tegel/p-ea4a9a4f.entry.js +0 -1
  430. package/dist/tegel/p-f4db0231.entry.js +0 -1
  431. package/dist/tegel/p-ffd827ef.entry.js +0 -1
@@ -10,33 +10,13 @@ export class TdsDropdown {
10
10
  constructor() {
11
11
  this.setDefaultOption = () => {
12
12
  if (this.internalDefaultValue) {
13
- const children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
14
- if (children.length === 0) {
15
- console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
16
- return;
17
- }
13
+ // Convert the internal default value to an array if it's not already
18
14
  const defaultValues = this.multiselect
19
- ? new Set(this.internalDefaultValue.split(','))
15
+ ? this.internalDefaultValue.split(',')
20
16
  : [this.internalDefaultValue];
21
- const childrenMap = new Map(children.map((element) => [element.value, element]));
22
- const matchedValues = Array.from(defaultValues).filter((value) => {
23
- const element = childrenMap.get(value);
24
- if (element) {
25
- element.setSelected(true);
26
- return true;
27
- }
28
- return false;
29
- });
30
- if (matchedValues.length > 0) {
31
- this.value = [...new Set(this.value ? [...this.value, ...matchedValues] : matchedValues)];
32
- this.setValueAttribute();
33
- }
34
- else {
35
- console.warn(`TDS DROPDOWN: No matching option found for defaultValue "${this.internalDefaultValue}"`);
36
- }
17
+ this.updateDropdownState(defaultValues);
37
18
  }
38
19
  };
39
- /* Returns a list of all children that are tds-dropdown-option elements */
40
20
  this.getChildren = () => {
41
21
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
42
22
  if (tdsDropdownOptions.length === 0) {
@@ -45,6 +25,36 @@ export class TdsDropdown {
45
25
  else
46
26
  return tdsDropdownOptions;
47
27
  };
28
+ this.getSelectedChildren = () => {
29
+ if (this.selectedOptions.length === 0)
30
+ return [];
31
+ return this.selectedOptions
32
+ .map((stringValue) => {
33
+ var _a;
34
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
35
+ return matchingElement;
36
+ })
37
+ .filter(Boolean);
38
+ };
39
+ this.getSelectedChildrenLabels = () => {
40
+ var _a;
41
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
42
+ };
43
+ this.getValue = () => {
44
+ const labels = this.getSelectedChildrenLabels();
45
+ if (!labels) {
46
+ return '';
47
+ }
48
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
49
+ };
50
+ this.setValueAttribute = () => {
51
+ if (this.selectedOptions.length === 0) {
52
+ this.host.removeAttribute('value');
53
+ }
54
+ else {
55
+ this.host.setAttribute('value', this.selectedOptions.join(','));
56
+ }
57
+ };
48
58
  this.getOpenDirection = () => {
49
59
  var _a, _b, _c, _d, _e;
50
60
  if (this.openDirection === 'auto' || !this.openDirection) {
@@ -58,7 +68,6 @@ export class TdsDropdown {
58
68
  }
59
69
  return this.openDirection;
60
70
  };
61
- /* Toggles the open state of the Dropdown and sets focus to the input element */
62
71
  this.handleToggleOpen = () => {
63
72
  if (!this.disabled) {
64
73
  this.open = !this.open;
@@ -67,38 +76,10 @@ export class TdsDropdown {
67
76
  }
68
77
  }
69
78
  };
70
- /* Focuses the input element in the Dropdown, if the reference is present. */
71
79
  this.focusInputElement = () => {
72
80
  if (this.inputElement)
73
81
  this.inputElement.focus();
74
82
  };
75
- this.getSelectedChildren = () => {
76
- var _a;
77
- return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((stringValue) => {
78
- const matchingElement = this.getChildren().find((element) => element.value === stringValue);
79
- return matchingElement;
80
- }).filter(Boolean);
81
- };
82
- this.getSelectedChildrenLabels = () => {
83
- var _a;
84
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
85
- };
86
- this.getValue = () => {
87
- const labels = this.getSelectedChildrenLabels();
88
- if (!labels) {
89
- return '';
90
- }
91
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
92
- };
93
- this.setValueAttribute = () => {
94
- var _a;
95
- if (!this.value || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) === '') {
96
- this.host.removeAttribute('value');
97
- }
98
- else {
99
- this.host.setAttribute('value', convertArrayToStrings(this.value).join(','));
100
- }
101
- };
102
83
  this.handleFilter = (event) => {
103
84
  this.tdsInput.emit(event);
104
85
  const query = event.target.value.toLowerCase();
@@ -129,8 +110,10 @@ export class TdsDropdown {
129
110
  this.handleFilterReset = () => {
130
111
  this.reset();
131
112
  this.inputElement.value = '';
132
- this.handleFilter({ target: { value: this.inputElement.value } });
113
+ this.handleFilter({ target: { value: '' } });
133
114
  this.inputElement.focus();
115
+ // Add this line to ensure internal value is cleared
116
+ this.internalValue = '';
134
117
  };
135
118
  this.handleFocus = (event) => {
136
119
  this.open = true;
@@ -144,12 +127,6 @@ export class TdsDropdown {
144
127
  this.handleBlur = (event) => {
145
128
  this.tdsBlur.emit(event);
146
129
  };
147
- this.handleChange = () => {
148
- this.tdsChange.emit({
149
- name: this.name,
150
- value: this.value ? convertArrayToStrings(this.value).join(',') : null,
151
- });
152
- };
153
130
  this.resetInput = () => {
154
131
  const inputEl = this.host.querySelector('input');
155
132
  if (inputEl) {
@@ -172,17 +149,111 @@ export class TdsDropdown {
172
149
  this.normalizeText = true;
173
150
  this.noResultText = 'No result';
174
151
  this.defaultValue = undefined;
152
+ this.value = null;
175
153
  this.open = false;
176
- this.value = undefined;
154
+ this.internalValue = undefined;
177
155
  this.filterResult = undefined;
178
156
  this.filterFocus = undefined;
179
157
  this.internalDefaultValue = undefined;
158
+ this.selectedOptions = [];
159
+ }
160
+ handleValueChange(newValue) {
161
+ // Normalize to array
162
+ const normalizedValue = this.normalizeValue(newValue);
163
+ // Only update if actually changed
164
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
165
+ this.updateDropdownState(normalizedValue);
166
+ }
167
+ }
168
+ normalizeValue(value) {
169
+ if (!value || value === '')
170
+ return []; // Handle both null and empty string
171
+ // For multiselect, keep array. For single select, wrap in array
172
+ if (this.multiselect) {
173
+ if (Array.isArray(value)) {
174
+ return convertArrayToStrings(value);
175
+ }
176
+ return value
177
+ .toString()
178
+ .split(',')
179
+ .filter((v) => v !== '');
180
+ }
181
+ // Single select - convert to string array
182
+ return Array.isArray(value) ? convertArrayToStrings(value) : [convertToString(value)];
183
+ }
184
+ hasValueChanged(newValue, currentValue) {
185
+ if (newValue.length !== currentValue.length)
186
+ return true;
187
+ return newValue.some((val) => !currentValue.includes(val));
188
+ }
189
+ updateDropdownState(values) {
190
+ // Update internal state
191
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
192
+ // Then update the value prop to match
193
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
194
+ // Force update of internal value
195
+ this.internalValue = this.getValue();
196
+ // Update DOM
197
+ this.updateOptionElements();
198
+ // Update display value
199
+ this.updateDisplayValue();
200
+ // Emit change event
201
+ this.emitChange();
202
+ // Update value attribute
203
+ this.setValueAttribute();
204
+ }
205
+ validateValues(values) {
206
+ return values.filter((val) => {
207
+ var _a;
208
+ const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
209
+ if (!isValid) {
210
+ console.warn(`Option with value "${val}" does not exist`);
211
+ }
212
+ return isValid;
213
+ });
214
+ }
215
+ updateOptionElements() {
216
+ var _a;
217
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
218
+ // Convert element.value to string for comparison
219
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
220
+ });
221
+ }
222
+ updateDisplayValue() {
223
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
224
+ if (this.filter && this.inputElement) {
225
+ this.inputElement.value = this.internalValue;
226
+ }
227
+ }
228
+ emitChange() {
229
+ const value = this.multiselect
230
+ ? this.selectedOptions.join(',')
231
+ : this.selectedOptions[0] || null;
232
+ this.tdsChange.emit({
233
+ name: this.name,
234
+ value: value !== null && value !== void 0 ? value : null,
235
+ });
236
+ }
237
+ async setValue(value) {
238
+ let normalizedValue;
239
+ if (Array.isArray(value)) {
240
+ normalizedValue = convertArrayToStrings(value);
241
+ }
242
+ else {
243
+ normalizedValue = [convertToString(value)];
244
+ }
245
+ this.updateDropdownState(normalizedValue);
246
+ return this.getSelectedChildren().map((element) => ({
247
+ value: element.value,
248
+ label: element.textContent.trim(),
249
+ }));
180
250
  }
181
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
182
251
  async reset() {
183
- this.dropdownList.scrollTop = 0;
184
- this.internalReset();
185
- this.handleChange();
252
+ this.updateDropdownState([]);
253
+ }
254
+ async removeValue(oldValue) {
255
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
256
+ this.updateDropdownState(newValues);
186
257
  }
187
258
  /** Method that forces focus on the input element. */
188
259
  async focusElement() {
@@ -203,81 +274,6 @@ export class TdsDropdown {
203
274
  * dropdown.setValue(['option-1', 'option-2']);
204
275
  * </code>
205
276
  */
206
- // The label is optional here ONLY to not break the API. Should be removed for 2.0.
207
- // @ts-ignore
208
- // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
209
- async setValue(value) {
210
- let nextValue;
211
- if (Array.isArray(value)) {
212
- nextValue = convertArrayToStrings(value);
213
- }
214
- else {
215
- nextValue = [convertToString(value)];
216
- }
217
- if (!this.multiselect && nextValue.length > 1) {
218
- console.warn('Tried to select multiple items, but multiselect is not enabled.');
219
- nextValue = [nextValue[0]];
220
- }
221
- nextValue = [...new Set(nextValue)];
222
- this.internalReset();
223
- for (let i = 0; i < nextValue.length; i++) {
224
- const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
225
- if (!optionExist) {
226
- nextValue.splice(i, 1);
227
- }
228
- }
229
- this.value = nextValue;
230
- this.setValueAttribute();
231
- this.selectChildrenAsSelectedBasedOnSelectionProp();
232
- this.handleChange();
233
- /* This returns an array of object with a value and label pair. This is ONLY to not break the API. Should be removed for 2.0. */
234
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
235
- const selection = this.getSelectedChildren().map((element) => ({
236
- value: element.value,
237
- label: element.textContent.trim(),
238
- }));
239
- // Update inputElement value and placeholder text
240
- if (this.filter) {
241
- this.inputElement.value = this.getValue();
242
- }
243
- return selection;
244
- }
245
- /**
246
- * @internal
247
- */
248
- async appendValue(value) {
249
- if (this.multiselect && this.value) {
250
- this.setValue([...this.value, value]);
251
- }
252
- else {
253
- this.setValue(value);
254
- }
255
- }
256
- /** Method for removing a selected value in the Dropdown. */
257
- async removeValue(oldValue) {
258
- var _a, _b;
259
- let label;
260
- if (this.multiselect) {
261
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
262
- var _a;
263
- if (element.value === oldValue) {
264
- this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
265
- label = element.textContent.trim();
266
- element.setSelected(false);
267
- }
268
- return element;
269
- });
270
- }
271
- else {
272
- this.reset();
273
- }
274
- this.handleChange();
275
- this.setValueAttribute();
276
- /* This returns an array of object with a value and label pair. This is ONLY to not break the API. Should be removed for 2.0. */
277
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
278
- return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
279
- }
280
- /** Method for closing the Dropdown. */
281
277
  async close() {
282
278
  this.open = false;
283
279
  }
@@ -324,7 +320,7 @@ export class TdsDropdown {
324
320
  handleOpenState() {
325
321
  if (this.filter && this.multiselect) {
326
322
  if (!this.open) {
327
- this.inputElement.value = this.getValue();
323
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
328
324
  }
329
325
  }
330
326
  }
@@ -335,10 +331,14 @@ export class TdsDropdown {
335
331
  }
336
332
  }
337
333
  componentWillLoad() {
338
- if (this.defaultValue !== undefined && this.defaultValue !== null) {
339
- this.internalDefaultValue = convertToString(this.defaultValue);
334
+ if (this.defaultValue && !this.value) {
335
+ // Convert defaultValue to string before splitting
336
+ const defaultValueStr = convertToString(this.defaultValue);
337
+ const initialValue = this.multiselect
338
+ ? defaultValueStr.split(',').map(convertToString)
339
+ : [convertToString(this.defaultValue)];
340
+ this.updateDropdownState(initialValue);
340
341
  }
341
- this.setDefaultOption();
342
342
  }
343
343
  /** Method to handle slot changes */
344
344
  handleSlotChange() {
@@ -348,29 +348,16 @@ export class TdsDropdown {
348
348
  normalizeString(text) {
349
349
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
350
350
  }
351
- /** Method that resets the dropdown without emitting an event. */
352
- internalReset() {
353
- this.getChildren().forEach((element) => {
354
- element.setSelected(false);
355
- return element;
356
- });
357
- this.value = null;
358
- this.setValueAttribute();
359
- }
360
- selectChildrenAsSelectedBasedOnSelectionProp() {
361
- this.getChildren().forEach((element) => {
362
- this.value.forEach((selection) => {
363
- if (element.value !== selection) {
364
- // If not multiselect, we need to unselect all other options.
365
- if (!this.multiselect) {
366
- element.setSelected(false);
367
- }
368
- }
369
- else {
370
- element.setSelected(true);
371
- }
372
- });
373
- });
351
+ /**
352
+ * @internal
353
+ */
354
+ async appendValue(value) {
355
+ if (this.multiselect) {
356
+ this.updateDropdownState([...this.selectedOptions, value]);
357
+ }
358
+ else {
359
+ this.updateDropdownState([value]);
360
+ }
374
361
  }
375
362
  componentDidRender() {
376
363
  const form = this.host.closest('form');
@@ -385,11 +372,10 @@ export class TdsDropdown {
385
372
  }
386
373
  }
387
374
  render() {
388
- var _a, _b, _c;
389
- appendHiddenInput(this.host, this.name, this.value ? convertArrayToStrings(this.value).join(',') : null, this.disabled);
390
- return (h(Host, { key: '0bb6532a6a87ba128f556022792fe5afb3e3e482', role: "select", class: {
375
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
376
+ return (h(Host, { key: '490d34545b3a09c3b4342fa09d38f6bf9c782498', role: "select", class: {
391
377
  [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
392
- } }, this.label && this.labelPosition === 'outside' && (h("div", { key: 'c65377474abaae962436d53b42e19eeda2bcdda6', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '80d21a17eef6a3d8ff7f73e5a52a744ae4aa08b6', class: {
378
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: '7eb96c0134032654df98a3b68ffb692a2cd91d2b', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '439fddb188ad65239e9d5451a82ab3bbe8f47fb7', class: {
393
379
  'dropdown-select': true,
394
380
  [this.size]: true,
395
381
  'disabled': this.disabled,
@@ -401,7 +387,7 @@ export class TdsDropdown {
401
387
  } }, h("div", { class: "value-wrapper" }, this.label && this.labelPosition === 'inside' && this.placeholder && (h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (h("div", { class: `
402
388
  label-inside-as-placeholder
403
389
  ${this.size}
404
- ${((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) ? 'selected' : ''}
390
+ ${this.selectedOptions.length ? 'selected' : ''}
405
391
  ` }, this.label)), h("input", {
406
392
  // eslint-disable-next-line no-return-assign
407
393
  ref: (inputEl) => (this.inputElement = inputEl), class: {
@@ -412,15 +398,7 @@ export class TdsDropdown {
412
398
  this.inputElement.value = this.getValue();
413
399
  }
414
400
  this.handleBlur(event);
415
- }, onFocus: (event) => {
416
- this.open = true;
417
- this.filterFocus = true;
418
- if (this.multiselect) {
419
- this.inputElement.value = '';
420
- }
421
- this.handleFocus(event);
422
- this.handleFilter({ target: { value: '' } });
423
- }, onKeyDown: (event) => {
401
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
424
402
  if (event.key === 'Escape') {
425
403
  this.open = false;
426
404
  }
@@ -440,17 +418,15 @@ export class TdsDropdown {
440
418
  if (event.key === 'Escape') {
441
419
  this.open = false;
442
420
  }
443
- }, class: {
444
- value: Boolean(this.value),
445
- placeholder: Boolean(!this.value),
446
- open: this.open,
447
- closed: !this.open,
448
- error: this.error,
449
- }, disabled: this.disabled }, h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (h("div", { class: {
450
- 'label-inside-as-placeholder': true,
451
- [this.size]: true,
452
- 'selected': Boolean((_b = this.value) === null || _b === void 0 ? void 0 : _b.length),
453
- } }, this.label)), h("div", { class: `placeholder ${this.size}` }, ((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: '1f1c87b17a78c2a65add834208f487c6e9a4f77e', ref: (element) => {
421
+ }, class: `
422
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
423
+ ${this.open ? 'open' : 'closed'}
424
+ ${this.error ? 'error' : ''}
425
+ `, disabled: this.disabled }, h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (h("div", { class: `
426
+ label-inside-as-placeholder
427
+ ${this.size}
428
+ ${this.selectedOptions.length ? 'selected' : ''}
429
+ ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, this.selectedOptions.length ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: 'd6381f78466994f05415cf8981b3cedaaf4df6a9', ref: (element) => {
454
430
  this.dropdownList = element;
455
431
  }, class: {
456
432
  'dropdown-list': true,
@@ -461,11 +437,11 @@ export class TdsDropdown {
461
437
  'closed': !this.open,
462
438
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
463
439
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
464
- } }, h("slot", { key: '6eb6b21f865702aa56af12b9e54bdb2c6c7c8cc2', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '58c15bd69f38c001e0d6c74466ddfe97d6d77a79', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'cc7e1a7f988e6bc61f3bacb7dd9a564b6c1f738d', class: {
440
+ } }, h("slot", { key: 'c36a9cb5398a7d290f11576431982e869986e4a0', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '5ec07552d105f8a4addc46da0172f67cf9233817', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'b3e240c31060f2d2bce6e3647f903f9ff1250ed5', class: {
465
441
  helper: true,
466
442
  error: this.error,
467
443
  disabled: this.disabled,
468
- } }, this.error && h("tds-icon", { key: 'ffd574d493f3bbaa37ddc7b14a8372ba4b23bd70', name: "error", size: "16px" }), this.helper))));
444
+ } }, this.error && h("tds-icon", { key: 'c0eb10dfeaa5236f5ac02dabf44329e85d52dcda', name: "error", size: "16px" }), this.helper))));
469
445
  }
470
446
  static get is() { return "tds-dropdown"; }
471
447
  static get encapsulation() { return "shadow"; }
@@ -762,16 +738,35 @@ export class TdsDropdown {
762
738
  },
763
739
  "attribute": "default-value",
764
740
  "reflect": false
741
+ },
742
+ "value": {
743
+ "type": "any",
744
+ "mutable": true,
745
+ "complexType": {
746
+ "original": "string | number | (string | number)[]",
747
+ "resolved": "(string | number)[] | number | string",
748
+ "references": {}
749
+ },
750
+ "required": false,
751
+ "optional": false,
752
+ "docs": {
753
+ "tags": [],
754
+ "text": "Value of the dropdown. For multiselect, provide array of strings/numbers. For single select, provide a string/number."
755
+ },
756
+ "attribute": "value",
757
+ "reflect": false,
758
+ "defaultValue": "null"
765
759
  }
766
760
  };
767
761
  }
768
762
  static get states() {
769
763
  return {
770
764
  "open": {},
771
- "value": {},
765
+ "internalValue": {},
772
766
  "filterResult": {},
773
767
  "filterFocus": {},
774
- "internalDefaultValue": {}
768
+ "internalDefaultValue": {},
769
+ "selectedOptions": {}
775
770
  };
776
771
  }
777
772
  static get events() {
@@ -854,24 +849,32 @@ export class TdsDropdown {
854
849
  }
855
850
  static get methods() {
856
851
  return {
857
- "reset": {
852
+ "setValue": {
858
853
  "complexType": {
859
- "signature": "() => Promise<void>",
860
- "parameters": [],
854
+ "signature": "(value: string | number | string[] | number[]) => Promise<{ value: string | number; label: string; }[]>",
855
+ "parameters": [{
856
+ "name": "value",
857
+ "type": "string | number | string[] | number[]",
858
+ "docs": ""
859
+ }],
861
860
  "references": {
862
861
  "Promise": {
863
862
  "location": "global",
864
863
  "id": "global::Promise"
864
+ },
865
+ "HTMLTdsDropdownOptionElement": {
866
+ "location": "global",
867
+ "id": "global::HTMLTdsDropdownOptionElement"
865
868
  }
866
869
  },
867
- "return": "Promise<void>"
870
+ "return": "Promise<{ value: string | number; label: string; }[]>"
868
871
  },
869
872
  "docs": {
870
- "text": "Method that resets the Dropdown, marks all children as non-selected and resets the value to null.",
873
+ "text": "",
871
874
  "tags": []
872
875
  }
873
876
  },
874
- "focusElement": {
877
+ "reset": {
875
878
  "complexType": {
876
879
  "signature": "() => Promise<void>",
877
880
  "parameters": [],
@@ -884,43 +887,35 @@ export class TdsDropdown {
884
887
  "return": "Promise<void>"
885
888
  },
886
889
  "docs": {
887
- "text": "Method that forces focus on the input element.",
890
+ "text": "",
888
891
  "tags": []
889
892
  }
890
893
  },
891
- "setValue": {
894
+ "removeValue": {
892
895
  "complexType": {
893
- "signature": "(value: string | string[] | number | number[]) => Promise<{ value: string | number; label: string; }[]>",
896
+ "signature": "(oldValue: string) => Promise<void>",
894
897
  "parameters": [{
895
- "name": "value",
896
- "type": "string | number | string[] | number[]",
898
+ "name": "oldValue",
899
+ "type": "string",
897
900
  "docs": ""
898
901
  }],
899
902
  "references": {
900
903
  "Promise": {
901
904
  "location": "global",
902
905
  "id": "global::Promise"
903
- },
904
- "HTMLTdsDropdownOptionElement": {
905
- "location": "global",
906
- "id": "global::HTMLTdsDropdownOptionElement"
907
906
  }
908
907
  },
909
- "return": "Promise<{ value: string | number; label: string; }[]>"
908
+ "return": "Promise<void>"
910
909
  },
911
910
  "docs": {
912
- "text": "Method for setting the value of the Dropdown.\n\nSingle selection example:\n\n<code>\ndropdown.setValue('option-1', 'Option 1');\n</code>\n\nMultiselect example:\n\n<code>\ndropdown.setValue(['option-1', 'option-2']);\n</code>",
911
+ "text": "",
913
912
  "tags": []
914
913
  }
915
914
  },
916
- "appendValue": {
915
+ "focusElement": {
917
916
  "complexType": {
918
- "signature": "(value: string) => Promise<void>",
919
- "parameters": [{
920
- "name": "value",
921
- "type": "string",
922
- "docs": ""
923
- }],
917
+ "signature": "() => Promise<void>",
918
+ "parameters": [],
924
919
  "references": {
925
920
  "Promise": {
926
921
  "location": "global",
@@ -930,42 +925,35 @@ export class TdsDropdown {
930
925
  "return": "Promise<void>"
931
926
  },
932
927
  "docs": {
933
- "text": "",
934
- "tags": [{
935
- "name": "internal",
936
- "text": undefined
937
- }]
928
+ "text": "Method that forces focus on the input element.",
929
+ "tags": []
938
930
  }
939
931
  },
940
- "removeValue": {
932
+ "close": {
941
933
  "complexType": {
942
- "signature": "(oldValue: string) => Promise<{ value: string; label: string; }[]>",
943
- "parameters": [{
944
- "name": "oldValue",
945
- "type": "string",
946
- "docs": ""
947
- }],
934
+ "signature": "() => Promise<void>",
935
+ "parameters": [],
948
936
  "references": {
949
937
  "Promise": {
950
938
  "location": "global",
951
939
  "id": "global::Promise"
952
- },
953
- "HTMLTdsDropdownOptionElement": {
954
- "location": "global",
955
- "id": "global::HTMLTdsDropdownOptionElement"
956
940
  }
957
941
  },
958
- "return": "Promise<{ value: string; label: string; }[]>"
942
+ "return": "Promise<void>"
959
943
  },
960
944
  "docs": {
961
- "text": "Method for removing a selected value in the Dropdown.",
945
+ "text": "Method for setting the value of the Dropdown.\n\nSingle selection example:\n\n<code>\ndropdown.setValue('option-1', 'Option 1');\n</code>\n\nMultiselect example:\n\n<code>\ndropdown.setValue(['option-1', 'option-2']);\n</code>",
962
946
  "tags": []
963
947
  }
964
948
  },
965
- "close": {
949
+ "appendValue": {
966
950
  "complexType": {
967
- "signature": "() => Promise<void>",
968
- "parameters": [],
951
+ "signature": "(value: string) => Promise<void>",
952
+ "parameters": [{
953
+ "name": "value",
954
+ "type": "string",
955
+ "docs": ""
956
+ }],
969
957
  "references": {
970
958
  "Promise": {
971
959
  "location": "global",
@@ -975,8 +963,11 @@ export class TdsDropdown {
975
963
  "return": "Promise<void>"
976
964
  },
977
965
  "docs": {
978
- "text": "Method for closing the Dropdown.",
979
- "tags": []
966
+ "text": "",
967
+ "tags": [{
968
+ "name": "internal",
969
+ "text": undefined
970
+ }]
980
971
  }
981
972
  }
982
973
  };
@@ -984,6 +975,9 @@ export class TdsDropdown {
984
975
  static get elementRef() { return "host"; }
985
976
  static get watchers() {
986
977
  return [{
978
+ "propName": "value",
979
+ "methodName": "handleValueChange"
980
+ }, {
987
981
  "propName": "open",
988
982
  "methodName": "handleOpenState"
989
983
  }, {