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