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