@scania/tegel 1.23.0-value-prop.beta.5 → 1.24.0-dropdown-numer-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 (440) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-accordion-item.cjs.entry.js +7 -4
  3. package/dist/cjs/tds-badge.cjs.entry.js +6 -1
  4. package/dist/cjs/tds-banner.cjs.entry.js +6 -2
  5. package/dist/cjs/tds-block.cjs.entry.js +10 -6
  6. package/dist/cjs/tds-body-cell.cjs.entry.js +2 -2
  7. package/dist/cjs/tds-breadcrumb.cjs.entry.js +1 -1
  8. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +1 -1
  9. package/dist/cjs/tds-button.cjs.entry.js +4 -2
  10. package/dist/cjs/tds-card.cjs.entry.js +9 -5
  11. package/dist/cjs/tds-checkbox.cjs.entry.js +2 -2
  12. package/dist/cjs/tds-chip.cjs.entry.js +1 -1
  13. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +3 -3
  14. package/dist/cjs/tds-datetime.cjs.entry.js +2 -2
  15. package/dist/cjs/tds-divider.cjs.entry.js +1 -1
  16. package/dist/cjs/tds-dropdown_2.cjs.entry.js +220 -146
  17. package/dist/cjs/tds-folder-tab.cjs.entry.js +4 -2
  18. package/dist/cjs/tds-folder-tabs.cjs.entry.js +2 -2
  19. package/dist/cjs/tds-footer-group.cjs.entry.js +3 -3
  20. package/dist/cjs/tds-footer-item.cjs.entry.js +1 -1
  21. package/dist/cjs/tds-footer.cjs.entry.js +3 -1
  22. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +1 -1
  23. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  24. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  25. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +1 -1
  26. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +1 -1
  27. package/dist/cjs/tds-header-dropdown.cjs.entry.js +3 -3
  28. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  29. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-grid-item.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +1 -1
  32. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  33. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  34. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +1 -1
  35. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +1 -1
  36. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  37. package/dist/cjs/tds-header-title.cjs.entry.js +1 -1
  38. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  39. package/dist/cjs/tds-icon.cjs.entry.js +1 -1
  40. package/dist/cjs/tds-inline-tab.cjs.entry.js +5 -2
  41. package/dist/cjs/tds-inline-tabs.cjs.entry.js +2 -2
  42. package/dist/cjs/tds-link.cjs.entry.js +5 -5
  43. package/dist/cjs/tds-message.cjs.entry.js +6 -4
  44. package/dist/cjs/tds-modal.cjs.entry.js +4 -1
  45. package/dist/cjs/tds-navigation-tab.cjs.entry.js +2 -2
  46. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +8 -2
  47. package/dist/cjs/tds-popover-canvas.cjs.entry.js +2 -2
  48. package/dist/cjs/tds-popover-core.cjs.entry.js +1 -1
  49. package/dist/cjs/tds-popover-menu-item.cjs.entry.js +3 -3
  50. package/dist/cjs/tds-popover-menu.cjs.entry.js +2 -2
  51. package/dist/cjs/tds-radio-button.cjs.entry.js +1 -1
  52. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  53. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -4
  54. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +2 -2
  55. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +2 -2
  56. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +3 -3
  57. package/dist/cjs/tds-side-menu-item.cjs.entry.js +2 -2
  58. package/dist/cjs/tds-side-menu-overlay.cjs.entry.js +1 -1
  59. package/dist/cjs/tds-side-menu-user-image_2.cjs.entry.js +2 -2
  60. package/dist/cjs/tds-side-menu-user.cjs.entry.js +1 -1
  61. package/dist/cjs/tds-slider.cjs.entry.js +8 -8
  62. package/dist/cjs/tds-spinner.cjs.entry.js +1 -1
  63. package/dist/cjs/tds-step.cjs.entry.js +1 -1
  64. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  65. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +7 -7
  66. package/dist/cjs/tds-table-body-row.cjs.entry.js +2 -2
  67. package/dist/cjs/tds-table-body.cjs.entry.js +2 -2
  68. package/dist/cjs/tds-table-footer.cjs.entry.js +3 -3
  69. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  70. package/dist/cjs/tds-table-header.cjs.entry.js +2 -2
  71. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  72. package/dist/cjs/tds-text-field.cjs.entry.js +8 -6
  73. package/dist/cjs/tds-textarea.cjs.entry.js +14 -12
  74. package/dist/cjs/tds-toast.cjs.entry.js +3 -3
  75. package/dist/cjs/tds-toggle.cjs.entry.js +4 -1
  76. package/dist/cjs/tds-tooltip.cjs.entry.js +2 -2
  77. package/dist/cjs/tegel.cjs.js +1 -1
  78. package/dist/collection/components/accordion/accordion-item/accordion-item.js +25 -4
  79. package/dist/collection/components/badge/badge.js +6 -1
  80. package/dist/collection/components/banner/banner.js +6 -2
  81. package/dist/collection/components/block/block.js +10 -6
  82. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +1 -1
  83. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  84. package/dist/collection/components/button/button.js +4 -2
  85. package/dist/collection/components/card/card.js +9 -5
  86. package/dist/collection/components/checkbox/checkbox.js +2 -2
  87. package/dist/collection/components/chip/chip.js +1 -1
  88. package/dist/collection/components/datetime/datetime.js +2 -2
  89. package/dist/collection/components/divider/divider.js +1 -1
  90. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +26 -11
  91. package/dist/collection/components/dropdown/dropdown.js +257 -215
  92. package/dist/collection/components/footer/footer-group/footer-group.js +3 -3
  93. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  94. package/dist/collection/components/footer/footer.js +3 -1
  95. package/dist/collection/components/header/core-header-item/core-header-item.js +1 -1
  96. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +1 -1
  97. package/dist/collection/components/header/header-dropdown/header-dropdown.js +3 -3
  98. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +1 -1
  99. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +2 -2
  100. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +1 -1
  101. package/dist/collection/components/header/header-hamburger/header-hamburger.js +1 -1
  102. package/dist/collection/components/header/header-item/header-item.js +2 -2
  103. package/dist/collection/components/header/header-launcher/header-launcher.js +2 -2
  104. package/dist/collection/components/header/header-launcher-button/header-launcher-button.js +1 -1
  105. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +1 -1
  106. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +1 -1
  107. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +1 -1
  108. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +1 -1
  109. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +1 -1
  110. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +1 -1
  111. package/dist/collection/components/header/header-title/header-title.js +1 -1
  112. package/dist/collection/components/header/header.js +1 -1
  113. package/dist/collection/components/icon/icon.js +1 -1
  114. package/dist/collection/components/link/link.js +5 -5
  115. package/dist/collection/components/message/message.js +6 -4
  116. package/dist/collection/components/modal/modal.js +4 -1
  117. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  118. package/dist/collection/components/popover-core/popover-core.js +1 -1
  119. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.css +7 -1
  120. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  121. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  122. package/dist/collection/components/radio-button/radio-button.js +1 -1
  123. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  124. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  125. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  126. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  127. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  128. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  129. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  130. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  131. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  132. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  133. package/dist/collection/components/slider/slider.css +13 -0
  134. package/dist/collection/components/slider/slider.js +7 -7
  135. package/dist/collection/components/spinner/spinner.js +1 -1
  136. package/dist/collection/components/stepper/step/step.js +1 -1
  137. package/dist/collection/components/table/table-body/table-body.js +2 -2
  138. package/dist/collection/components/table/table-body-cell/table-body-cell.js +2 -2
  139. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  140. package/dist/collection/components/table/table-body-row/table-body-row.js +2 -2
  141. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  142. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  143. package/dist/collection/components/table/table-header/table-header.js +2 -2
  144. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  145. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  146. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  147. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +4 -2
  148. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +2 -2
  149. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +5 -2
  150. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +2 -2
  151. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +2 -2
  152. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +8 -2
  153. package/dist/collection/components/text-field/text-field.js +9 -7
  154. package/dist/collection/components/textarea/textarea.js +14 -12
  155. package/dist/collection/components/toast/toast.js +3 -3
  156. package/dist/collection/components/toggle/toggle.js +4 -1
  157. package/dist/collection/components/tooltip/tooltip.js +2 -2
  158. package/dist/collection/utils/axeHelpers.js +3 -0
  159. package/dist/components/{p-0c3cab16.js → p-2ef329f1.js} +2 -2
  160. package/dist/components/{p-5e1a9abc.js → p-3351035f.js} +1 -1
  161. package/dist/components/{p-0676aa23.js → p-3a7f88ff.js} +3 -3
  162. package/dist/components/{p-09d36119.js → p-4bdaf254.js} +1 -1
  163. package/dist/components/{p-30de8ac4.js → p-707a562e.js} +1 -1
  164. package/dist/components/{p-98a2c82d.js → p-70f3d385.js} +212 -150
  165. package/dist/components/{p-fcec766c.js → p-75437dea.js} +1 -1
  166. package/dist/components/{p-e46088d9.js → p-8f8b0827.js} +1 -1
  167. package/dist/components/{p-cfb1b588.js → p-9d7232d0.js} +2 -2
  168. package/dist/components/{p-e323cd2a.js → p-ad77fb02.js} +1 -1
  169. package/dist/components/{p-dddaa520.js → p-d1ace0be.js} +1 -1
  170. package/dist/components/{p-d921fe75.js → p-eac79032.js} +2 -2
  171. package/dist/components/{p-aea7fa6b.js → p-f0a50868.js} +3 -3
  172. package/dist/components/{p-8a2d7b2f.js → p-f1980746.js} +4 -4
  173. package/dist/components/{p-4030e9bc.js → p-fcf87b68.js} +24 -10
  174. package/dist/components/tds-accordion-item.js +9 -5
  175. package/dist/components/tds-badge.js +6 -1
  176. package/dist/components/tds-banner.js +7 -3
  177. package/dist/components/tds-block.js +10 -6
  178. package/dist/components/tds-body-cell.js +2 -2
  179. package/dist/components/tds-breadcrumb.js +1 -1
  180. package/dist/components/tds-breadcrumbs.js +1 -1
  181. package/dist/components/tds-button.js +4 -2
  182. package/dist/components/tds-card.js +10 -6
  183. package/dist/components/tds-checkbox.js +1 -1
  184. package/dist/components/tds-chip.js +1 -1
  185. package/dist/components/tds-core-header-item.js +1 -1
  186. package/dist/components/tds-datetime.js +3 -3
  187. package/dist/components/tds-divider.js +1 -1
  188. package/dist/components/tds-dropdown-option.js +1 -1
  189. package/dist/components/tds-dropdown.js +1 -1
  190. package/dist/components/tds-folder-tab.js +4 -2
  191. package/dist/components/tds-folder-tabs.js +3 -3
  192. package/dist/components/tds-footer-group.js +4 -4
  193. package/dist/components/tds-footer-item.js +1 -1
  194. package/dist/components/tds-footer.js +3 -1
  195. package/dist/components/tds-header-brand-symbol.js +3 -3
  196. package/dist/components/tds-header-cell.js +2 -2
  197. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  198. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  199. package/dist/components/tds-header-dropdown-list.js +1 -1
  200. package/dist/components/tds-header-dropdown.js +8 -8
  201. package/dist/components/tds-header-hamburger.js +4 -4
  202. package/dist/components/tds-header-item.js +1 -1
  203. package/dist/components/tds-header-launcher-button.js +1 -1
  204. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  205. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  206. package/dist/components/tds-header-launcher-grid.js +1 -1
  207. package/dist/components/tds-header-launcher-list-item.js +2 -2
  208. package/dist/components/tds-header-launcher-list-title.js +1 -1
  209. package/dist/components/tds-header-launcher-list.js +2 -2
  210. package/dist/components/tds-header-launcher.js +8 -8
  211. package/dist/components/tds-header-title.js +1 -1
  212. package/dist/components/tds-header.js +1 -1
  213. package/dist/components/tds-icon.js +1 -1
  214. package/dist/components/tds-inline-tab.js +5 -2
  215. package/dist/components/tds-inline-tabs.js +3 -3
  216. package/dist/components/tds-link.js +5 -5
  217. package/dist/components/tds-message.js +7 -5
  218. package/dist/components/tds-modal.js +5 -2
  219. package/dist/components/tds-navigation-tab.js +2 -2
  220. package/dist/components/tds-navigation-tabs.js +9 -3
  221. package/dist/components/tds-popover-canvas.js +1 -1
  222. package/dist/components/tds-popover-core.js +1 -1
  223. package/dist/components/tds-popover-menu-item.js +3 -3
  224. package/dist/components/tds-popover-menu.js +3 -3
  225. package/dist/components/tds-radio-button.js +1 -1
  226. package/dist/components/tds-side-menu-close-button.js +2 -2
  227. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  228. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  229. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  230. package/dist/components/tds-side-menu-dropdown.js +5 -5
  231. package/dist/components/tds-side-menu-item.js +1 -1
  232. package/dist/components/tds-side-menu-overlay.js +1 -1
  233. package/dist/components/tds-side-menu-user-image.js +1 -1
  234. package/dist/components/tds-side-menu-user-label.js +1 -1
  235. package/dist/components/tds-side-menu-user.js +3 -3
  236. package/dist/components/tds-slider.js +9 -9
  237. package/dist/components/tds-spinner.js +1 -1
  238. package/dist/components/tds-step.js +2 -2
  239. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  240. package/dist/components/tds-table-body-row-expandable.js +7 -7
  241. package/dist/components/tds-table-body-row.js +3 -3
  242. package/dist/components/tds-table-body.js +2 -2
  243. package/dist/components/tds-table-footer.js +7 -7
  244. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  245. package/dist/components/tds-table-header.js +3 -3
  246. package/dist/components/tds-table-toolbar.js +3 -3
  247. package/dist/components/tds-text-field.js +9 -7
  248. package/dist/components/tds-textarea.js +15 -13
  249. package/dist/components/tds-toast.js +4 -4
  250. package/dist/components/tds-toggle.js +4 -1
  251. package/dist/components/tds-tooltip.js +3 -3
  252. package/dist/esm/loader.js +1 -1
  253. package/dist/esm/tds-accordion-item.entry.js +7 -4
  254. package/dist/esm/tds-badge.entry.js +6 -1
  255. package/dist/esm/tds-banner.entry.js +6 -2
  256. package/dist/esm/tds-block.entry.js +10 -6
  257. package/dist/esm/tds-body-cell.entry.js +2 -2
  258. package/dist/esm/tds-breadcrumb.entry.js +1 -1
  259. package/dist/esm/tds-breadcrumbs.entry.js +1 -1
  260. package/dist/esm/tds-button.entry.js +4 -2
  261. package/dist/esm/tds-card.entry.js +9 -5
  262. package/dist/esm/tds-checkbox.entry.js +2 -2
  263. package/dist/esm/tds-chip.entry.js +1 -1
  264. package/dist/esm/tds-core-header-item_2.entry.js +3 -3
  265. package/dist/esm/tds-datetime.entry.js +2 -2
  266. package/dist/esm/tds-divider.entry.js +1 -1
  267. package/dist/esm/tds-dropdown_2.entry.js +220 -146
  268. package/dist/esm/tds-folder-tab.entry.js +4 -2
  269. package/dist/esm/tds-folder-tabs.entry.js +2 -2
  270. package/dist/esm/tds-footer-group.entry.js +3 -3
  271. package/dist/esm/tds-footer-item.entry.js +1 -1
  272. package/dist/esm/tds-footer.entry.js +3 -1
  273. package/dist/esm/tds-header-brand-symbol.entry.js +1 -1
  274. package/dist/esm/tds-header-cell.entry.js +1 -1
  275. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  276. package/dist/esm/tds-header-dropdown-list-user.entry.js +1 -1
  277. package/dist/esm/tds-header-dropdown-list.entry.js +1 -1
  278. package/dist/esm/tds-header-dropdown.entry.js +3 -3
  279. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  280. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  281. package/dist/esm/tds-header-launcher-grid-item.entry.js +1 -1
  282. package/dist/esm/tds-header-launcher-grid-title.entry.js +1 -1
  283. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  284. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  285. package/dist/esm/tds-header-launcher-list-title.entry.js +1 -1
  286. package/dist/esm/tds-header-launcher-list.entry.js +1 -1
  287. package/dist/esm/tds-header-launcher.entry.js +2 -2
  288. package/dist/esm/tds-header-title.entry.js +1 -1
  289. package/dist/esm/tds-header.entry.js +1 -1
  290. package/dist/esm/tds-icon.entry.js +1 -1
  291. package/dist/esm/tds-inline-tab.entry.js +5 -2
  292. package/dist/esm/tds-inline-tabs.entry.js +2 -2
  293. package/dist/esm/tds-link.entry.js +5 -5
  294. package/dist/esm/tds-message.entry.js +6 -4
  295. package/dist/esm/tds-modal.entry.js +4 -1
  296. package/dist/esm/tds-navigation-tab.entry.js +2 -2
  297. package/dist/esm/tds-navigation-tabs.entry.js +8 -2
  298. package/dist/esm/tds-popover-canvas.entry.js +2 -2
  299. package/dist/esm/tds-popover-core.entry.js +1 -1
  300. package/dist/esm/tds-popover-menu-item.entry.js +3 -3
  301. package/dist/esm/tds-popover-menu.entry.js +2 -2
  302. package/dist/esm/tds-radio-button.entry.js +1 -1
  303. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  304. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -4
  305. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +2 -2
  306. package/dist/esm/tds-side-menu-dropdown-list.entry.js +2 -2
  307. package/dist/esm/tds-side-menu-dropdown.entry.js +3 -3
  308. package/dist/esm/tds-side-menu-item.entry.js +2 -2
  309. package/dist/esm/tds-side-menu-overlay.entry.js +1 -1
  310. package/dist/esm/tds-side-menu-user-image_2.entry.js +2 -2
  311. package/dist/esm/tds-side-menu-user.entry.js +1 -1
  312. package/dist/esm/tds-slider.entry.js +8 -8
  313. package/dist/esm/tds-spinner.entry.js +1 -1
  314. package/dist/esm/tds-step.entry.js +1 -1
  315. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  316. package/dist/esm/tds-table-body-row-expandable.entry.js +7 -7
  317. package/dist/esm/tds-table-body-row.entry.js +2 -2
  318. package/dist/esm/tds-table-body.entry.js +2 -2
  319. package/dist/esm/tds-table-footer.entry.js +3 -3
  320. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  321. package/dist/esm/tds-table-header.entry.js +2 -2
  322. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  323. package/dist/esm/tds-text-field.entry.js +8 -6
  324. package/dist/esm/tds-textarea.entry.js +14 -12
  325. package/dist/esm/tds-toast.entry.js +3 -3
  326. package/dist/esm/tds-toggle.entry.js +4 -1
  327. package/dist/esm/tds-tooltip.entry.js +2 -2
  328. package/dist/esm/tegel.js +1 -1
  329. package/dist/tegel/p-0286a074.entry.js +1 -0
  330. package/dist/tegel/{p-b4c7099f.entry.js → p-038c22ff.entry.js} +1 -1
  331. package/dist/tegel/{p-57f95a1b.entry.js → p-059a9499.entry.js} +1 -1
  332. package/dist/tegel/{p-9de400f4.entry.js → p-06968bd7.entry.js} +1 -1
  333. package/dist/tegel/{p-ede11de8.entry.js → p-0939b9fb.entry.js} +1 -1
  334. package/dist/tegel/p-0b773208.entry.js +1 -0
  335. package/dist/tegel/{p-7a83cf55.entry.js → p-0cb6c898.entry.js} +1 -1
  336. package/dist/tegel/{p-b9e37cf2.entry.js → p-1703f73a.entry.js} +1 -1
  337. package/dist/tegel/p-170ab61b.entry.js +1 -0
  338. package/dist/tegel/{p-ac46b0a4.entry.js → p-24ff5903.entry.js} +1 -1
  339. package/dist/tegel/{p-9bf7f5cd.entry.js → p-2795009a.entry.js} +1 -1
  340. package/dist/tegel/{p-4ab7461e.entry.js → p-2a38b053.entry.js} +1 -1
  341. package/dist/tegel/{p-6b405a0f.entry.js → p-2a96bd05.entry.js} +1 -1
  342. package/dist/tegel/{p-50fcdc56.entry.js → p-2f32991e.entry.js} +1 -1
  343. package/dist/tegel/p-32b7f431.entry.js +1 -0
  344. package/dist/tegel/p-39373227.entry.js +1 -0
  345. package/dist/tegel/{p-2557b79b.entry.js → p-3a32fe40.entry.js} +1 -1
  346. package/dist/tegel/p-3c22aef7.entry.js +1 -0
  347. package/dist/tegel/{p-bcae4d3a.entry.js → p-3d3ee51f.entry.js} +1 -1
  348. package/dist/tegel/p-3e144a83.entry.js +1 -0
  349. package/dist/tegel/p-3e1b1399.entry.js +1 -0
  350. package/dist/tegel/{p-2e44b4e9.entry.js → p-44c33b20.entry.js} +1 -1
  351. package/dist/tegel/p-48bbc11f.entry.js +1 -0
  352. package/dist/tegel/p-4a282c25.entry.js +1 -0
  353. package/dist/tegel/p-4b231bf9.entry.js +1 -0
  354. package/dist/tegel/{p-1634247e.entry.js → p-4b7c53a6.entry.js} +1 -1
  355. package/dist/tegel/{p-0df92ce7.entry.js → p-4c2f313d.entry.js} +1 -1
  356. package/dist/tegel/{p-ff5cd75f.entry.js → p-54154f09.entry.js} +1 -1
  357. package/dist/tegel/{p-ff7ae8a3.entry.js → p-59293f88.entry.js} +1 -1
  358. package/dist/tegel/p-5eaa23dc.entry.js +1 -0
  359. package/dist/tegel/{p-bb129d43.entry.js → p-5fea857b.entry.js} +1 -1
  360. package/dist/tegel/{p-088bfcd4.entry.js → p-68859ddc.entry.js} +1 -1
  361. package/dist/tegel/p-69b38504.entry.js +1 -0
  362. package/dist/tegel/{p-a5a67770.entry.js → p-6d022f47.entry.js} +1 -1
  363. package/dist/tegel/{p-868435cd.entry.js → p-6eeded00.entry.js} +1 -1
  364. package/dist/tegel/{p-0f38bea7.entry.js → p-708a8bab.entry.js} +1 -1
  365. package/dist/tegel/p-7090a95c.entry.js +1 -0
  366. package/dist/tegel/{p-4e3e2601.entry.js → p-72106a5c.entry.js} +1 -1
  367. package/dist/tegel/{p-ed02ad2b.entry.js → p-7929d22f.entry.js} +1 -1
  368. package/dist/tegel/p-85a9032e.entry.js +1 -0
  369. package/dist/tegel/{p-f9325536.entry.js → p-86b30f71.entry.js} +1 -1
  370. package/dist/tegel/p-88204e0a.entry.js +1 -0
  371. package/dist/tegel/{p-6a52ed63.entry.js → p-9016758e.entry.js} +1 -1
  372. package/dist/tegel/p-92f81cda.entry.js +1 -0
  373. package/dist/tegel/p-93930c03.entry.js +1 -0
  374. package/dist/tegel/{p-aed1c5cf.entry.js → p-96bdf035.entry.js} +1 -1
  375. package/dist/tegel/{p-7097a39a.entry.js → p-99da056d.entry.js} +1 -1
  376. package/dist/tegel/p-9c3f2c12.entry.js +1 -0
  377. package/dist/tegel/{p-9c2dfecc.entry.js → p-9eaaa2c0.entry.js} +1 -1
  378. package/dist/tegel/p-a38dda58.entry.js +1 -0
  379. package/dist/tegel/{p-de540cc0.entry.js → p-a392e6e7.entry.js} +1 -1
  380. package/dist/tegel/p-a86fe122.entry.js +1 -0
  381. package/dist/tegel/{p-220affa9.entry.js → p-b19ce79c.entry.js} +1 -1
  382. package/dist/tegel/{p-987084a5.entry.js → p-b2018a5b.entry.js} +1 -1
  383. package/dist/tegel/{p-c790ef93.entry.js → p-b425b2f4.entry.js} +1 -1
  384. package/dist/tegel/p-b647d20e.entry.js +1 -0
  385. package/dist/tegel/{p-c18b2746.entry.js → p-b96cd80d.entry.js} +1 -1
  386. package/dist/tegel/{p-f1c172a4.entry.js → p-b9b63210.entry.js} +1 -1
  387. package/dist/tegel/p-be88c5ab.entry.js +1 -0
  388. package/dist/tegel/{p-91dcddd5.entry.js → p-c289dfb9.entry.js} +1 -1
  389. package/dist/tegel/p-cc2730d8.entry.js +1 -0
  390. package/dist/tegel/p-d1112915.entry.js +1 -0
  391. package/dist/tegel/{p-e65dba91.entry.js → p-d7f48112.entry.js} +1 -1
  392. package/dist/tegel/p-d926d075.entry.js +1 -0
  393. package/dist/tegel/{p-26ae4a93.entry.js → p-ddd33cce.entry.js} +1 -1
  394. package/dist/tegel/{p-c917d8be.entry.js → p-e478953c.entry.js} +1 -1
  395. package/dist/tegel/p-e7300cca.entry.js +1 -0
  396. package/dist/tegel/{p-6c26e66f.entry.js → p-e9ac7a1a.entry.js} +1 -1
  397. package/dist/tegel/{p-dd060c11.entry.js → p-ea4a9a4f.entry.js} +1 -1
  398. package/dist/tegel/p-f050aad8.entry.js +1 -0
  399. package/dist/tegel/{p-e7108828.entry.js → p-f4db0231.entry.js} +1 -1
  400. package/dist/tegel/p-f67b4047.entry.js +1 -0
  401. package/dist/tegel/{p-a642c800.entry.js → p-fd3d56aa.entry.js} +1 -1
  402. package/dist/tegel/{p-06d2fa56.entry.js → p-fd432c54.entry.js} +1 -1
  403. package/dist/tegel/{p-ad434031.entry.js → p-ffd827ef.entry.js} +1 -1
  404. package/dist/tegel/tegel.esm.js +1 -1
  405. package/dist/types/components/accordion/accordion-item/accordion-item.d.ts +2 -0
  406. package/dist/types/components/checkbox/checkbox.d.ts +1 -1
  407. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +6 -2
  408. package/dist/types/components/dropdown/dropdown.d.ts +39 -27
  409. package/dist/types/components.d.ts +25 -27
  410. package/dist/types/utils/axeHelpers.d.ts +2 -0
  411. package/package.json +5 -5
  412. package/dist/tegel/p-062adc6d.entry.js +0 -1
  413. package/dist/tegel/p-12303135.entry.js +0 -1
  414. package/dist/tegel/p-1a2f3852.entry.js +0 -1
  415. package/dist/tegel/p-1bc2c73c.entry.js +0 -1
  416. package/dist/tegel/p-2dd309cb.entry.js +0 -1
  417. package/dist/tegel/p-54a105a4.entry.js +0 -1
  418. package/dist/tegel/p-5a891dd2.entry.js +0 -1
  419. package/dist/tegel/p-5d0e8f1e.entry.js +0 -1
  420. package/dist/tegel/p-6938329a.entry.js +0 -1
  421. package/dist/tegel/p-6aabf7e1.entry.js +0 -1
  422. package/dist/tegel/p-7d39487c.entry.js +0 -1
  423. package/dist/tegel/p-7d83ba98.entry.js +0 -1
  424. package/dist/tegel/p-845e1fca.entry.js +0 -1
  425. package/dist/tegel/p-930e767e.entry.js +0 -1
  426. package/dist/tegel/p-959a6780.entry.js +0 -1
  427. package/dist/tegel/p-9aefb942.entry.js +0 -1
  428. package/dist/tegel/p-a9654cd4.entry.js +0 -1
  429. package/dist/tegel/p-b00bcf39.entry.js +0 -1
  430. package/dist/tegel/p-b9ac3122.entry.js +0 -1
  431. package/dist/tegel/p-bda3d846.entry.js +0 -1
  432. package/dist/tegel/p-cd5219ac.entry.js +0 -1
  433. package/dist/tegel/p-d1cbe5be.entry.js +0 -1
  434. package/dist/tegel/p-dcbd977f.entry.js +0 -1
  435. package/dist/tegel/p-e13935b6.entry.js +0 -1
  436. package/dist/tegel/p-e86f2d31.entry.js +0 -1
  437. package/dist/tegel/p-e97a2700.entry.js +0 -1
  438. package/dist/tegel/p-f45d905c.entry.js +0 -1
  439. package/dist/tegel/p-f841f094.entry.js +0 -1
  440. package/dist/tegel/p-fc0079d2.entry.js +0 -1
@@ -8,14 +8,34 @@ import appendHiddenInput from "../../utils/appendHiddenInput";
8
8
  export class TdsDropdown {
9
9
  constructor() {
10
10
  this.setDefaultOption = () => {
11
- if (this.defaultValue) {
11
+ if (this.internalDefaultValue) {
12
+ const children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
13
+ if (children.length === 0) {
14
+ console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
15
+ return;
16
+ }
12
17
  const defaultValues = this.multiselect
13
- ? new Set(this.defaultValue.split(','))
14
- : [this.defaultValue];
15
- const normalizedValues = Array.from(defaultValues);
16
- this.updateDropdownState(normalizedValues);
18
+ ? new Set(this.internalDefaultValue.split(','))
19
+ : [this.internalDefaultValue];
20
+ const childrenMap = new Map(children.map((element) => [element.value, element]));
21
+ const matchedValues = Array.from(defaultValues).filter((value) => {
22
+ const element = childrenMap.get(value);
23
+ if (element) {
24
+ element.setSelected(true);
25
+ return true;
26
+ }
27
+ return false;
28
+ });
29
+ if (matchedValues.length > 0) {
30
+ this.value = [...new Set(this.value ? [...this.value, ...matchedValues] : matchedValues)];
31
+ this.setValueAttribute();
32
+ }
33
+ else {
34
+ console.warn(`TDS DROPDOWN: No matching option found for defaultValue "${this.internalDefaultValue}"`);
35
+ }
17
36
  }
18
37
  };
38
+ /* Returns a list of all children that are tds-dropdown-option elements */
19
39
  this.getChildren = () => {
20
40
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
21
41
  if (tdsDropdownOptions.length === 0) {
@@ -24,36 +44,6 @@ export class TdsDropdown {
24
44
  else
25
45
  return tdsDropdownOptions;
26
46
  };
27
- this.getSelectedChildren = () => {
28
- if (this.selectedOptions.length === 0)
29
- return [];
30
- return this.selectedOptions
31
- .map((stringValue) => {
32
- var _a;
33
- const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
34
- return matchingElement;
35
- })
36
- .filter(Boolean);
37
- };
38
- this.getSelectedChildrenLabels = () => {
39
- var _a;
40
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
41
- };
42
- this.getValue = () => {
43
- const labels = this.getSelectedChildrenLabels();
44
- if (!labels) {
45
- return '';
46
- }
47
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
48
- };
49
- this.setValueAttribute = () => {
50
- if (this.selectedOptions.length === 0) {
51
- this.host.removeAttribute('value');
52
- }
53
- else {
54
- this.host.setAttribute('value', this.selectedOptions.join(','));
55
- }
56
- };
57
47
  this.getOpenDirection = () => {
58
48
  var _a, _b, _c, _d, _e;
59
49
  if (this.openDirection === 'auto' || !this.openDirection) {
@@ -67,6 +57,7 @@ export class TdsDropdown {
67
57
  }
68
58
  return this.openDirection;
69
59
  };
60
+ /* Toggles the open state of the Dropdown and sets focus to the input element */
70
61
  this.handleToggleOpen = () => {
71
62
  if (!this.disabled) {
72
63
  this.open = !this.open;
@@ -75,10 +66,38 @@ export class TdsDropdown {
75
66
  }
76
67
  }
77
68
  };
69
+ /* Focuses the input element in the Dropdown, if the reference is present. */
78
70
  this.focusInputElement = () => {
79
71
  if (this.inputElement)
80
72
  this.inputElement.focus();
81
73
  };
74
+ this.getSelectedChildren = () => {
75
+ var _a;
76
+ return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((stringValue) => {
77
+ const matchingElement = this.getChildren().find((element) => element.value === stringValue);
78
+ return matchingElement;
79
+ }).filter(Boolean);
80
+ };
81
+ this.getSelectedChildrenLabels = () => {
82
+ var _a;
83
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
84
+ };
85
+ this.getValue = () => {
86
+ const labels = this.getSelectedChildrenLabels();
87
+ if (!labels) {
88
+ return '';
89
+ }
90
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
91
+ };
92
+ this.setValueAttribute = () => {
93
+ var _a;
94
+ if (!this.value || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) === '') {
95
+ this.host.removeAttribute('value');
96
+ }
97
+ else {
98
+ this.host.setAttribute('value', this.value.map((val) => val).toString());
99
+ }
100
+ };
82
101
  this.handleFilter = (event) => {
83
102
  this.tdsInput.emit(event);
84
103
  const query = event.target.value.toLowerCase();
@@ -109,10 +128,8 @@ export class TdsDropdown {
109
128
  this.handleFilterReset = () => {
110
129
  this.reset();
111
130
  this.inputElement.value = '';
112
- this.handleFilter({ target: { value: '' } });
131
+ this.handleFilter({ target: { value: this.inputElement.value } });
113
132
  this.inputElement.focus();
114
- // Add this line to ensure internal value is cleared
115
- this.internalValue = '';
116
133
  };
117
134
  this.handleFocus = (event) => {
118
135
  this.open = true;
@@ -126,6 +143,13 @@ export class TdsDropdown {
126
143
  this.handleBlur = (event) => {
127
144
  this.tdsBlur.emit(event);
128
145
  };
146
+ this.handleChange = () => {
147
+ var _a, _b;
148
+ this.tdsChange.emit({
149
+ name: this.name,
150
+ value: (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString()) !== null && _b !== void 0 ? _b : null,
151
+ });
152
+ };
129
153
  this.resetInput = () => {
130
154
  const inputEl = this.host.querySelector('input');
131
155
  if (inputEl) {
@@ -148,99 +172,108 @@ export class TdsDropdown {
148
172
  this.normalizeText = true;
149
173
  this.noResultText = 'No result';
150
174
  this.defaultValue = undefined;
151
- this.value = null;
152
175
  this.open = false;
153
- this.internalValue = undefined;
176
+ this.value = undefined;
154
177
  this.filterResult = undefined;
155
178
  this.filterFocus = undefined;
156
- this.selectedOptions = [];
157
- }
158
- handleValueChange(newValue) {
159
- // Normalize to array
160
- const normalizedValue = this.normalizeValue(newValue);
161
- // Only update if actually changed
162
- if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
163
- this.updateDropdownState(normalizedValue);
164
- }
179
+ this.internalDefaultValue = undefined;
165
180
  }
166
- normalizeValue(value) {
167
- if (!value || value === '')
168
- return []; // Handle both null and empty string
169
- // For multiselect, keep array. For single select, wrap in array
170
- if (this.multiselect) {
171
- return Array.isArray(value) ? value : value.split(',').filter((v) => v !== '');
172
- }
173
- return Array.isArray(value) ? value : [value];
174
- }
175
- hasValueChanged(newValue, currentValue) {
176
- if (newValue.length !== currentValue.length)
177
- return true;
178
- return newValue.some((val) => !currentValue.includes(val));
181
+ /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
182
+ async reset() {
183
+ this.dropdownList.scrollTop = 0;
184
+ this.internalReset();
185
+ this.handleChange();
179
186
  }
180
- updateDropdownState(values) {
181
- // Update internal state
182
- this.selectedOptions = this.validateValues(values);
183
- // Then update the value prop to match
184
- this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
185
- // Update DOM
186
- this.updateOptionElements();
187
- // Update display value
188
- this.updateDisplayValue();
189
- // Emit change event
190
- this.emitChange();
191
- // Update value attribute
192
- this.setValueAttribute();
187
+ /** Method that forces focus on the input element. */
188
+ async focusElement() {
189
+ this.focusInputElement();
190
+ this.handleFocus({});
193
191
  }
194
- validateValues(values) {
195
- return values.filter((val) => {
196
- var _a;
197
- const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
198
- if (!isValid) {
199
- console.warn(`Option with value "${val}" does not exist`);
192
+ /** Method for setting the value of the Dropdown.
193
+ *
194
+ * Single selection example:
195
+ *
196
+ * <code>
197
+ * dropdown.setValue('option-1', 'Option 1');
198
+ * </code>
199
+ *
200
+ * Multiselect example:
201
+ *
202
+ * <code>
203
+ * dropdown.setValue(['option-1', 'option-2']);
204
+ * </code>
205
+ */
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, label) {
210
+ let nextValue;
211
+ if (typeof value === 'string')
212
+ nextValue = [value];
213
+ else
214
+ nextValue = value;
215
+ if (!this.multiselect && nextValue.length > 1) {
216
+ console.warn('Tried to select multiple items, but multiselect is not enabled.');
217
+ nextValue = [nextValue[0]];
218
+ }
219
+ nextValue = [...new Set(nextValue)];
220
+ this.internalReset();
221
+ for (let i = 0; i < nextValue.length; i++) {
222
+ const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
223
+ if (!optionExist) {
224
+ nextValue.splice(i, 1);
200
225
  }
201
- return isValid;
202
- });
203
- }
204
- updateOptionElements() {
205
- var _a;
206
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
207
- element.setSelected(this.selectedOptions.includes(element.value));
208
- });
209
- }
210
- updateDisplayValue() {
211
- this.internalValue = this.getSelectedChildrenLabels().join(', ');
212
- if (this.filter && this.inputElement) {
213
- this.inputElement.value = this.internalValue;
214
226
  }
215
- }
216
- emitChange() {
217
- const value = this.multiselect
218
- ? this.selectedOptions.join(',')
219
- : this.selectedOptions[0] || null;
220
- this.tdsChange.emit({
221
- name: this.name,
222
- value: value !== null && value !== void 0 ? value : null,
223
- });
224
- }
225
- async setValue(value) {
226
- const normalizedValue = this.normalizeValue(value);
227
- this.updateDropdownState(normalizedValue);
228
- return this.getSelectedChildren().map((element) => ({
227
+ this.value = nextValue;
228
+ this.setValueAttribute();
229
+ this.selectChildrenAsSelectedBasedOnSelectionProp();
230
+ this.handleChange();
231
+ /* 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. */
232
+ /* https://tegel.atlassian.net/browse/CDEP-2703 */
233
+ const selection = this.getSelectedChildren().map((element) => ({
229
234
  value: element.value,
230
235
  label: element.textContent.trim(),
231
236
  }));
237
+ // Update inputElement value and placeholder text
238
+ if (this.filter) {
239
+ this.inputElement.value = this.getValue();
240
+ }
241
+ return selection;
232
242
  }
233
- async reset() {
234
- this.updateDropdownState([]);
243
+ /**
244
+ * @internal
245
+ */
246
+ async appendValue(value) {
247
+ if (this.multiselect && this.value) {
248
+ this.setValue([...this.value, value]);
249
+ }
250
+ else {
251
+ this.setValue(value);
252
+ }
235
253
  }
254
+ /** Method for removing a selected value in the Dropdown. */
236
255
  async removeValue(oldValue) {
237
- const newValues = this.selectedOptions.filter((v) => v !== oldValue);
238
- this.updateDropdownState(newValues);
239
- }
240
- /** Method that forces focus on the input element. */
241
- async focusElement() {
242
- this.focusInputElement();
243
- this.handleFocus({});
256
+ var _a, _b;
257
+ let label;
258
+ if (this.multiselect) {
259
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
260
+ var _a;
261
+ if (element.value === oldValue) {
262
+ this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
263
+ label = element.textContent.trim();
264
+ element.setSelected(false);
265
+ }
266
+ return element;
267
+ });
268
+ }
269
+ else {
270
+ this.reset();
271
+ }
272
+ this.handleChange();
273
+ this.setValueAttribute();
274
+ /* 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. */
275
+ /* https://tegel.atlassian.net/browse/CDEP-2703 */
276
+ return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
244
277
  }
245
278
  /** Method for closing the Dropdown. */
246
279
  async close() {
@@ -289,15 +322,21 @@ export class TdsDropdown {
289
322
  handleOpenState() {
290
323
  if (this.filter && this.multiselect) {
291
324
  if (!this.open) {
292
- this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
325
+ this.inputElement.value = this.getValue();
293
326
  }
294
327
  }
295
328
  }
329
+ handleDefaultValueChange(newValue) {
330
+ if (newValue !== undefined && newValue !== null) {
331
+ this.internalDefaultValue = newValue.toString();
332
+ this.setDefaultOption();
333
+ }
334
+ }
296
335
  componentWillLoad() {
297
- if (this.defaultValue && !this.value) {
298
- const initialValue = this.multiselect ? this.defaultValue.split(',') : [this.defaultValue];
299
- this.updateDropdownState(initialValue);
336
+ if (this.defaultValue !== undefined && this.defaultValue !== null) {
337
+ this.internalDefaultValue = this.defaultValue.toString();
300
338
  }
339
+ this.setDefaultOption();
301
340
  }
302
341
  /** Method to handle slot changes */
303
342
  handleSlotChange() {
@@ -307,13 +346,29 @@ export class TdsDropdown {
307
346
  normalizeString(text) {
308
347
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
309
348
  }
310
- async appendValue(value) {
311
- if (this.multiselect) {
312
- this.updateDropdownState([...this.selectedOptions, value]);
313
- }
314
- else {
315
- this.updateDropdownState([value]);
316
- }
349
+ /** Method that resets the dropdown without emitting an event. */
350
+ internalReset() {
351
+ this.getChildren().forEach((element) => {
352
+ element.setSelected(false);
353
+ return element;
354
+ });
355
+ this.value = null;
356
+ this.setValueAttribute();
357
+ }
358
+ selectChildrenAsSelectedBasedOnSelectionProp() {
359
+ this.getChildren().forEach((element) => {
360
+ this.value.forEach((selection) => {
361
+ if (element.value !== selection) {
362
+ // If not multiselect, we need to unselect all other options.
363
+ if (!this.multiselect) {
364
+ element.setSelected(false);
365
+ }
366
+ }
367
+ else {
368
+ element.setSelected(true);
369
+ }
370
+ });
371
+ });
317
372
  }
318
373
  componentDidRender() {
319
374
  const form = this.host.closest('form');
@@ -328,8 +383,9 @@ export class TdsDropdown {
328
383
  }
329
384
  }
330
385
  render() {
331
- appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
332
- return (h(Host, { key: 'b084be887c56fbce2c51c70c6c5e29d2dbff0555', role: "select", class: `${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}` }, this.label && this.labelPosition === 'outside' && (h("div", { key: 'b24fadee61a85c008cff52fe1e47570f7b3db29e', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '01ba50787cfdb187f5fa602ac6d21283a1fcd98b', class: `dropdown-select ${this.size} ${this.disabled ? 'disabled' : ''}` }, this.filter ? (h("div", { class: {
386
+ var _a, _b, _c, _d;
387
+ appendHiddenInput(this.host, this.name, (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString(), this.disabled);
388
+ return (h(Host, { key: '59198c21800c375dde1f2429ec9ab83caea26a15', role: "select", class: `${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}` }, this.label && this.labelPosition === 'outside' && (h("div", { key: '51ec664e6d72a7dfaaaf4c3420d0ec726d9c165a', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: 'cfb1b64bc1ec3c09edc7a4157be01159a56a737a', class: `dropdown-select ${this.size} ${this.disabled ? 'disabled' : ''}` }, this.filter ? (h("div", { class: {
333
389
  filter: true,
334
390
  focus: this.filterFocus,
335
391
  disabled: this.disabled,
@@ -337,7 +393,7 @@ export class TdsDropdown {
337
393
  } }, 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: `
338
394
  label-inside-as-placeholder
339
395
  ${this.size}
340
- ${this.selectedOptions.length ? 'selected' : ''}
396
+ ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
341
397
  ` }, this.label)), h("input", {
342
398
  // eslint-disable-next-line no-return-assign
343
399
  ref: (inputEl) => (this.inputElement = inputEl), class: `${this.labelPosition === 'inside' ? 'placeholder' : ''}`, type: "text", placeholder: this.filterFocus ? '' : this.placeholder, value: this.multiselect && this.filterFocus ? '' : this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
@@ -346,7 +402,15 @@ export class TdsDropdown {
346
402
  this.inputElement.value = this.getValue();
347
403
  }
348
404
  this.handleBlur(event);
349
- }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
405
+ }, onFocus: (event) => {
406
+ this.open = true;
407
+ this.filterFocus = true;
408
+ if (this.multiselect) {
409
+ this.inputElement.value = '';
410
+ }
411
+ this.handleFocus(event);
412
+ this.handleFilter({ target: { value: '' } });
413
+ }, onKeyDown: (event) => {
350
414
  if (event.key === 'Escape') {
351
415
  this.open = false;
352
416
  }
@@ -364,14 +428,14 @@ export class TdsDropdown {
364
428
  this.open = false;
365
429
  }
366
430
  }, class: `
367
- ${this.selectedOptions.length ? 'value' : 'placeholder'}
431
+ ${this.value ? 'value' : 'placeholder'}
368
432
  ${this.open ? 'open' : 'closed'}
369
433
  ${this.error ? 'error' : ''}
370
434
  `, 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: `
371
435
  label-inside-as-placeholder
372
436
  ${this.size}
373
- ${this.selectedOptions.length ? 'selected' : ''}
374
- ` }, 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: '849ff954ec4ae3fc46e1de5dd236d409e9796adb', ref: (element) => (this.dropdownList = element), class: {
437
+ ${((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) ? 'selected' : ''}
438
+ ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, ((_d = this.value) === null || _d === void 0 ? void 0 : _d.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: 'a585073f41bf1cbf6855050fd45506892ac84e7a', ref: (element) => (this.dropdownList = element), class: {
375
439
  'dropdown-list': true,
376
440
  [this.size]: true,
377
441
  [this.getOpenDirection()]: true,
@@ -380,7 +444,7 @@ export class TdsDropdown {
380
444
  'closed': !this.open,
381
445
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
382
446
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
383
- } }, h("slot", { key: 'bae1fc6a37421363f0f104a5b1637dad11b13722', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: 'b8c57fb7c25949a603734eaff7ccae28aa01b787', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'c06e8e79f8ecaf3abc7fa97ea520b0e81ea48b33', class: `helper ${this.error ? 'error' : ''} ${this.disabled ? 'disabled' : ''}` }, this.error && h("tds-icon", { key: '7793cdff81b04b20111083c9ad288773339c570d', name: "error", size: "16px" }), this.helper))));
447
+ } }, h("slot", { key: '7047e1daff3ac9a7b5d85bd94885ac108eae2b68', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: 'c21388cbde54350252c0e6edcb6c16808cfc7a55', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: '2ddf6a329c52025a50a0e6519af68b6f67c8d08b', class: `helper ${this.error ? 'error' : ''} ${this.disabled ? 'disabled' : ''}` }, this.error && h("tds-icon", { key: '3527c56932fab328ee1d06d403e7931e19fe8b8a', name: "error", size: "16px" }), this.helper))));
384
448
  }
385
449
  static get is() { return "tds-dropdown"; }
386
450
  static get encapsulation() { return "shadow"; }
@@ -662,11 +726,11 @@ export class TdsDropdown {
662
726
  "defaultValue": "'No result'"
663
727
  },
664
728
  "defaultValue": {
665
- "type": "string",
729
+ "type": "any",
666
730
  "mutable": false,
667
731
  "complexType": {
668
- "original": "string",
669
- "resolved": "string",
732
+ "original": "string | number",
733
+ "resolved": "number | string",
670
734
  "references": {}
671
735
  },
672
736
  "required": false,
@@ -677,34 +741,16 @@ export class TdsDropdown {
677
741
  },
678
742
  "attribute": "default-value",
679
743
  "reflect": false
680
- },
681
- "value": {
682
- "type": "string",
683
- "mutable": true,
684
- "complexType": {
685
- "original": "string | string[]",
686
- "resolved": "string | string[]",
687
- "references": {}
688
- },
689
- "required": false,
690
- "optional": false,
691
- "docs": {
692
- "tags": [],
693
- "text": "Value of the dropdown. For multiselect, provide array of strings. For single select, provide a string."
694
- },
695
- "attribute": "value",
696
- "reflect": false,
697
- "defaultValue": "null"
698
744
  }
699
745
  };
700
746
  }
701
747
  static get states() {
702
748
  return {
703
749
  "open": {},
704
- "internalValue": {},
750
+ "value": {},
705
751
  "filterResult": {},
706
752
  "filterFocus": {},
707
- "selectedOptions": {}
753
+ "internalDefaultValue": {}
708
754
  };
709
755
  }
710
756
  static get events() {
@@ -783,51 +829,28 @@ export class TdsDropdown {
783
829
  }
784
830
  }
785
831
  }
786
- }, {
787
- "method": "tdsValueChange",
788
- "name": "tdsValueChange",
789
- "bubbles": true,
790
- "cancelable": false,
791
- "composed": true,
792
- "docs": {
793
- "tags": [],
794
- "text": "Value change event for the Dropdown."
795
- },
796
- "complexType": {
797
- "original": "{\n name: string;\n value: string;\n }",
798
- "resolved": "{ name: string; value: string; }",
799
- "references": {}
800
- }
801
832
  }];
802
833
  }
803
834
  static get methods() {
804
835
  return {
805
- "setValue": {
836
+ "reset": {
806
837
  "complexType": {
807
- "signature": "(value: string | string[]) => Promise<{ value: string; label: string; }[]>",
808
- "parameters": [{
809
- "name": "value",
810
- "type": "string | string[]",
811
- "docs": ""
812
- }],
838
+ "signature": "() => Promise<void>",
839
+ "parameters": [],
813
840
  "references": {
814
841
  "Promise": {
815
842
  "location": "global",
816
843
  "id": "global::Promise"
817
- },
818
- "HTMLTdsDropdownOptionElement": {
819
- "location": "global",
820
- "id": "global::HTMLTdsDropdownOptionElement"
821
844
  }
822
845
  },
823
- "return": "Promise<{ value: string; label: string; }[]>"
846
+ "return": "Promise<void>"
824
847
  },
825
848
  "docs": {
826
- "text": "",
849
+ "text": "Method that resets the Dropdown, marks all children as non-selected and resets the value to null.",
827
850
  "tags": []
828
851
  }
829
852
  },
830
- "reset": {
853
+ "focusElement": {
831
854
  "complexType": {
832
855
  "signature": "() => Promise<void>",
833
856
  "parameters": [],
@@ -840,15 +863,19 @@ export class TdsDropdown {
840
863
  "return": "Promise<void>"
841
864
  },
842
865
  "docs": {
843
- "text": "",
866
+ "text": "Method that forces focus on the input element.",
844
867
  "tags": []
845
868
  }
846
869
  },
847
- "removeValue": {
870
+ "setValue": {
848
871
  "complexType": {
849
- "signature": "(oldValue: string) => Promise<void>",
872
+ "signature": "(value: string | string[], label?: string) => Promise<{ value: string | number; label: string; }[]>",
850
873
  "parameters": [{
851
- "name": "oldValue",
874
+ "name": "value",
875
+ "type": "string | string[]",
876
+ "docs": ""
877
+ }, {
878
+ "name": "label",
852
879
  "type": "string",
853
880
  "docs": ""
854
881
  }],
@@ -856,19 +883,27 @@ export class TdsDropdown {
856
883
  "Promise": {
857
884
  "location": "global",
858
885
  "id": "global::Promise"
886
+ },
887
+ "HTMLTdsDropdownOptionElement": {
888
+ "location": "global",
889
+ "id": "global::HTMLTdsDropdownOptionElement"
859
890
  }
860
891
  },
861
- "return": "Promise<void>"
892
+ "return": "Promise<{ value: string | number; label: string; }[]>"
862
893
  },
863
894
  "docs": {
864
- "text": "",
895
+ "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>",
865
896
  "tags": []
866
897
  }
867
898
  },
868
- "focusElement": {
899
+ "appendValue": {
869
900
  "complexType": {
870
- "signature": "() => Promise<void>",
871
- "parameters": [],
901
+ "signature": "(value: string) => Promise<void>",
902
+ "parameters": [{
903
+ "name": "value",
904
+ "type": "string",
905
+ "docs": ""
906
+ }],
872
907
  "references": {
873
908
  "Promise": {
874
909
  "location": "global",
@@ -878,35 +913,42 @@ export class TdsDropdown {
878
913
  "return": "Promise<void>"
879
914
  },
880
915
  "docs": {
881
- "text": "Method that forces focus on the input element.",
882
- "tags": []
916
+ "text": "",
917
+ "tags": [{
918
+ "name": "internal",
919
+ "text": undefined
920
+ }]
883
921
  }
884
922
  },
885
- "close": {
923
+ "removeValue": {
886
924
  "complexType": {
887
- "signature": "() => Promise<void>",
888
- "parameters": [],
925
+ "signature": "(oldValue: string) => Promise<{ value: string; label: string; }[]>",
926
+ "parameters": [{
927
+ "name": "oldValue",
928
+ "type": "string",
929
+ "docs": ""
930
+ }],
889
931
  "references": {
890
932
  "Promise": {
891
933
  "location": "global",
892
934
  "id": "global::Promise"
935
+ },
936
+ "HTMLTdsDropdownOptionElement": {
937
+ "location": "global",
938
+ "id": "global::HTMLTdsDropdownOptionElement"
893
939
  }
894
940
  },
895
- "return": "Promise<void>"
941
+ "return": "Promise<{ value: string; label: string; }[]>"
896
942
  },
897
943
  "docs": {
898
- "text": "Method for closing the Dropdown.",
944
+ "text": "Method for removing a selected value in the Dropdown.",
899
945
  "tags": []
900
946
  }
901
947
  },
902
- "appendValue": {
948
+ "close": {
903
949
  "complexType": {
904
- "signature": "(value: string) => Promise<void>",
905
- "parameters": [{
906
- "name": "value",
907
- "type": "string",
908
- "docs": ""
909
- }],
950
+ "signature": "() => Promise<void>",
951
+ "parameters": [],
910
952
  "references": {
911
953
  "Promise": {
912
954
  "location": "global",
@@ -916,7 +958,7 @@ export class TdsDropdown {
916
958
  "return": "Promise<void>"
917
959
  },
918
960
  "docs": {
919
- "text": "",
961
+ "text": "Method for closing the Dropdown.",
920
962
  "tags": []
921
963
  }
922
964
  }
@@ -925,11 +967,11 @@ export class TdsDropdown {
925
967
  static get elementRef() { return "host"; }
926
968
  static get watchers() {
927
969
  return [{
928
- "propName": "value",
929
- "methodName": "handleValueChange"
930
- }, {
931
970
  "propName": "open",
932
971
  "methodName": "handleOpenState"
972
+ }, {
973
+ "propName": "defaultValue",
974
+ "methodName": "handleDefaultValueChange"
933
975
  }];
934
976
  }
935
977
  static get listeners() {