@scania/tegel 1.25.0 → 1.26.0-onTdsChange-gets-triggered-unexpectedly-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 (463) 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 +10 -3
  11. package/dist/cjs/tds-chip.cjs.entry.js +12 -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 +236 -205
  16. package/dist/cjs/tds-folder-tab.cjs.entry.js +21 -2
  17. package/dist/cjs/tds-folder-tabs.cjs.entry.js +4 -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 +2 -2
  39. package/dist/cjs/tds-inline-tab.cjs.entry.js +21 -2
  40. package/dist/cjs/tds-inline-tabs.cjs.entry.js +4 -2
  41. package/dist/cjs/tds-link.cjs.entry.js +17 -3
  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 +21 -2
  45. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +6 -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 +22 -5
  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 +44 -3
  87. package/dist/collection/components/chip/chip.js +30 -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 +260 -247
  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 +2 -2
  115. package/dist/collection/components/icon/iconsArray.js +96 -1
  116. package/dist/collection/components/link/link.js +17 -3
  117. package/dist/collection/components/message/message.js +2 -2
  118. package/dist/collection/components/modal/modal.js +2 -2
  119. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  120. package/dist/collection/components/popover-core/popover-core.js +1 -1
  121. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  122. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  123. package/dist/collection/components/radio-button/radio-button.js +1 -1
  124. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  125. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  126. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  127. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  128. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  129. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  130. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  131. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  132. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  133. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  134. package/dist/collection/components/slider/slider.js +7 -7
  135. package/dist/collection/components/spinner/spinner.js +1 -1
  136. package/dist/collection/components/stepper/step/step.js +1 -1
  137. package/dist/collection/components/table/table-body/table-body.js +2 -2
  138. package/dist/collection/components/table/table-body-cell/table-body-cell.js +9 -6
  139. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  140. package/dist/collection/components/table/table-body-row/table-body-row.js +9 -6
  141. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  142. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  143. package/dist/collection/components/table/table-header/table-header.js +2 -2
  144. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  145. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  146. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  147. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +21 -2
  148. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +40 -2
  149. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +21 -2
  150. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +40 -2
  151. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +21 -2
  152. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +42 -4
  153. package/dist/collection/components/text-field/text-field.js +6 -6
  154. package/dist/collection/components/textarea/textarea.js +3 -3
  155. package/dist/collection/components/toast/toast.js +3 -3
  156. package/dist/collection/components/toggle/toggle.js +28 -2
  157. package/dist/collection/components/tooltip/tooltip.js +2 -2
  158. package/dist/collection/utils/axeHelpers.js +1 -1
  159. package/dist/collection/utils/convertToString.js +14 -0
  160. package/dist/components/{p-2ef329f1.js → p-0e6efec9.js} +2 -2
  161. package/dist/components/{p-eac79032.js → p-14ab9663.js} +12 -3
  162. package/dist/components/{p-4bdaf254.js → p-265c3467.js} +1 -1
  163. package/dist/components/{p-f0a50868.js → p-29d19dc8.js} +3 -3
  164. package/dist/components/{p-75437dea.js → p-34737ed9.js} +1 -1
  165. package/dist/components/{p-f1980746.js → p-363184d0.js} +4 -4
  166. package/dist/components/{p-d1ace0be.js → p-3e93886d.js} +1 -1
  167. package/dist/components/{p-3351035f.js → p-4764a1d5.js} +1 -1
  168. package/dist/components/{p-1e110ab8.js → p-5028a7ae.js} +39 -15
  169. package/dist/components/p-64019792.js +65 -0
  170. package/dist/components/{p-9d7232d0.js → p-8c849aa2.js} +2 -2
  171. package/dist/components/p-b1d21573.js +16 -0
  172. package/dist/components/{p-dd6ff1e2.js → p-bac1d6b1.js} +203 -201
  173. package/dist/components/{p-3a7f88ff.js → p-d61bd22e.js} +40 -3
  174. package/dist/components/{p-707a562e.js → p-e49a0ceb.js} +1 -1
  175. package/dist/components/{p-8f8b0827.js → p-e8d2dbbf.js} +1 -1
  176. package/dist/components/tds-accordion-item.js +1 -1
  177. package/dist/components/tds-badge.js +7 -9
  178. package/dist/components/tds-banner.js +5 -5
  179. package/dist/components/tds-block.js +5 -2
  180. package/dist/components/tds-body-cell.js +9 -6
  181. package/dist/components/tds-breadcrumb.js +3 -3
  182. package/dist/components/tds-breadcrumbs.js +10 -2
  183. package/dist/components/tds-button.js +13 -4
  184. package/dist/components/tds-card.js +6 -6
  185. package/dist/components/tds-checkbox.js +1 -1
  186. package/dist/components/tds-chip.js +14 -3
  187. package/dist/components/tds-core-header-item.js +1 -1
  188. package/dist/components/tds-datetime.js +21 -14
  189. package/dist/components/tds-divider.js +1 -1
  190. package/dist/components/tds-dropdown-option.js +1 -1
  191. package/dist/components/tds-dropdown.js +1 -1
  192. package/dist/components/tds-folder-tab.js +21 -2
  193. package/dist/components/tds-folder-tabs.js +7 -3
  194. package/dist/components/tds-footer-group.js +4 -4
  195. package/dist/components/tds-footer-item.js +1 -1
  196. package/dist/components/tds-footer.js +2 -2
  197. package/dist/components/tds-header-brand-symbol.js +3 -3
  198. package/dist/components/tds-header-cell.js +2 -2
  199. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  200. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  201. package/dist/components/tds-header-dropdown-list.js +1 -1
  202. package/dist/components/tds-header-dropdown.js +8 -8
  203. package/dist/components/tds-header-hamburger.js +4 -4
  204. package/dist/components/tds-header-item.js +1 -1
  205. package/dist/components/tds-header-launcher-button.js +1 -1
  206. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  207. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  208. package/dist/components/tds-header-launcher-grid.js +1 -1
  209. package/dist/components/tds-header-launcher-list-item.js +2 -2
  210. package/dist/components/tds-header-launcher-list-title.js +1 -1
  211. package/dist/components/tds-header-launcher-list.js +2 -2
  212. package/dist/components/tds-header-launcher.js +8 -8
  213. package/dist/components/tds-header-title.js +1 -1
  214. package/dist/components/tds-header.js +1 -1
  215. package/dist/components/tds-icon.js +1 -1
  216. package/dist/components/tds-inline-tab.js +21 -2
  217. package/dist/components/tds-inline-tabs.js +7 -3
  218. package/dist/components/tds-link.js +17 -3
  219. package/dist/components/tds-message.js +3 -3
  220. package/dist/components/tds-modal.js +3 -3
  221. package/dist/components/tds-navigation-tab.js +21 -2
  222. package/dist/components/tds-navigation-tabs.js +9 -5
  223. package/dist/components/tds-popover-canvas.js +1 -1
  224. package/dist/components/tds-popover-core.js +1 -1
  225. package/dist/components/tds-popover-menu-item.js +2 -2
  226. package/dist/components/tds-popover-menu.js +3 -3
  227. package/dist/components/tds-radio-button.js +1 -1
  228. package/dist/components/tds-side-menu-close-button.js +2 -2
  229. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  230. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  231. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  232. package/dist/components/tds-side-menu-dropdown.js +5 -5
  233. package/dist/components/tds-side-menu-item.js +1 -1
  234. package/dist/components/tds-side-menu-overlay.js +1 -1
  235. package/dist/components/tds-side-menu-user-image.js +1 -1
  236. package/dist/components/tds-side-menu-user-label.js +1 -1
  237. package/dist/components/tds-side-menu-user.js +3 -3
  238. package/dist/components/tds-slider.js +8 -8
  239. package/dist/components/tds-spinner.js +1 -1
  240. package/dist/components/tds-step.js +2 -2
  241. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  242. package/dist/components/tds-table-body-row-expandable.js +7 -7
  243. package/dist/components/tds-table-body-row.js +10 -7
  244. package/dist/components/tds-table-body.js +2 -2
  245. package/dist/components/tds-table-footer.js +7 -7
  246. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  247. package/dist/components/tds-table-header.js +3 -3
  248. package/dist/components/tds-table-toolbar.js +3 -3
  249. package/dist/components/tds-text-field.js +7 -7
  250. package/dist/components/tds-textarea.js +4 -4
  251. package/dist/components/tds-toast.js +4 -4
  252. package/dist/components/tds-toggle.js +12 -2
  253. package/dist/components/tds-tooltip.js +3 -3
  254. package/dist/esm/loader.js +1 -1
  255. package/dist/esm/tds-badge.entry.js +5 -9
  256. package/dist/esm/tds-banner.entry.js +3 -4
  257. package/dist/esm/tds-block.entry.js +3 -1
  258. package/dist/esm/tds-body-cell.entry.js +9 -6
  259. package/dist/esm/tds-breadcrumb.entry.js +3 -3
  260. package/dist/esm/tds-breadcrumbs.entry.js +7 -1
  261. package/dist/esm/tds-button.entry.js +12 -4
  262. package/dist/esm/tds-card.entry.js +5 -5
  263. package/dist/esm/tds-checkbox.entry.js +10 -3
  264. package/dist/esm/tds-chip.entry.js +12 -2
  265. package/dist/esm/tds-core-header-item_2.entry.js +40 -3
  266. package/dist/esm/tds-datetime.entry.js +20 -13
  267. package/dist/esm/tds-divider.entry.js +1 -1
  268. package/dist/esm/tds-dropdown_2.entry.js +236 -205
  269. package/dist/esm/tds-folder-tab.entry.js +22 -3
  270. package/dist/esm/tds-folder-tabs.entry.js +4 -2
  271. package/dist/esm/tds-footer-group.entry.js +3 -3
  272. package/dist/esm/tds-footer-item.entry.js +1 -1
  273. package/dist/esm/tds-footer.entry.js +2 -2
  274. package/dist/esm/tds-header-brand-symbol.entry.js +1 -1
  275. package/dist/esm/tds-header-cell.entry.js +1 -1
  276. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  277. package/dist/esm/tds-header-dropdown-list-user.entry.js +1 -1
  278. package/dist/esm/tds-header-dropdown-list.entry.js +1 -1
  279. package/dist/esm/tds-header-dropdown.entry.js +3 -3
  280. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  281. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  282. package/dist/esm/tds-header-launcher-grid-item.entry.js +1 -1
  283. package/dist/esm/tds-header-launcher-grid-title.entry.js +1 -1
  284. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  285. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  286. package/dist/esm/tds-header-launcher-list-title.entry.js +1 -1
  287. package/dist/esm/tds-header-launcher-list.entry.js +1 -1
  288. package/dist/esm/tds-header-launcher.entry.js +2 -2
  289. package/dist/esm/tds-header-title.entry.js +1 -1
  290. package/dist/esm/tds-header.entry.js +1 -1
  291. package/dist/esm/tds-icon.entry.js +2 -2
  292. package/dist/esm/tds-inline-tab.entry.js +22 -3
  293. package/dist/esm/tds-inline-tabs.entry.js +4 -2
  294. package/dist/esm/tds-link.entry.js +17 -3
  295. package/dist/esm/tds-message.entry.js +2 -2
  296. package/dist/esm/tds-modal.entry.js +2 -2
  297. package/dist/esm/tds-navigation-tab.entry.js +22 -3
  298. package/dist/esm/tds-navigation-tabs.entry.js +6 -4
  299. package/dist/esm/tds-popover-canvas.entry.js +2 -2
  300. package/dist/esm/tds-popover-core.entry.js +1 -1
  301. package/dist/esm/tds-popover-menu-item.entry.js +2 -2
  302. package/dist/esm/tds-popover-menu.entry.js +2 -2
  303. package/dist/esm/tds-radio-button.entry.js +1 -1
  304. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  305. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -4
  306. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +2 -2
  307. package/dist/esm/tds-side-menu-dropdown-list.entry.js +2 -2
  308. package/dist/esm/tds-side-menu-dropdown.entry.js +3 -3
  309. package/dist/esm/tds-side-menu-item.entry.js +2 -2
  310. package/dist/esm/tds-side-menu-overlay.entry.js +1 -1
  311. package/dist/esm/tds-side-menu-user-image_2.entry.js +2 -2
  312. package/dist/esm/tds-side-menu-user.entry.js +1 -1
  313. package/dist/esm/tds-slider.entry.js +7 -7
  314. package/dist/esm/tds-spinner.entry.js +1 -1
  315. package/dist/esm/tds-step.entry.js +1 -1
  316. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  317. package/dist/esm/tds-table-body-row-expandable.entry.js +7 -7
  318. package/dist/esm/tds-table-body-row.entry.js +9 -6
  319. package/dist/esm/tds-table-body.entry.js +2 -2
  320. package/dist/esm/tds-table-footer.entry.js +3 -3
  321. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  322. package/dist/esm/tds-table-header.entry.js +2 -2
  323. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  324. package/dist/esm/tds-text-field.entry.js +6 -6
  325. package/dist/esm/tds-textarea.entry.js +3 -3
  326. package/dist/esm/tds-toast.entry.js +3 -3
  327. package/dist/esm/tds-toggle.entry.js +11 -2
  328. package/dist/esm/tds-tooltip.entry.js +2 -2
  329. package/dist/esm/tegel.js +1 -1
  330. package/dist/tegel/p-01edebef.entry.js +1 -0
  331. package/dist/tegel/{p-3e144a83.entry.js → p-035e58e6.entry.js} +1 -1
  332. package/dist/tegel/{p-170ab61b.entry.js → p-065d6f83.entry.js} +1 -1
  333. package/dist/tegel/p-0f2c9507.entry.js +1 -0
  334. package/dist/tegel/{p-72106a5c.entry.js → p-168122a7.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-4f5f152a.entry.js +1 -0
  345. package/dist/tegel/p-4fe6512b.entry.js +1 -0
  346. package/dist/tegel/p-5242a1f6.entry.js +1 -0
  347. package/dist/tegel/{p-038c22ff.entry.js → p-542d7b3e.entry.js} +1 -1
  348. package/dist/tegel/{p-5eaa23dc.entry.js → p-5a7110b8.entry.js} +1 -1
  349. package/dist/tegel/{p-93930c03.entry.js → p-5ba254ee.entry.js} +1 -1
  350. package/dist/tegel/{p-06968bd7.entry.js → p-60b38806.entry.js} +1 -1
  351. package/dist/tegel/{p-7929d22f.entry.js → p-654785d2.entry.js} +1 -1
  352. package/dist/tegel/p-668b7662.entry.js +1 -0
  353. package/dist/tegel/p-6f17d37f.entry.js +1 -0
  354. package/dist/tegel/p-70795d6e.entry.js +1 -0
  355. package/dist/tegel/{p-3d3ee51f.entry.js → p-74fc9c92.entry.js} +1 -1
  356. package/dist/tegel/p-77c79b91.entry.js +1 -0
  357. package/dist/tegel/{p-54154f09.entry.js → p-77d457b8.entry.js} +1 -1
  358. package/dist/tegel/{p-4b7c53a6.entry.js → p-78d5acd7.entry.js} +1 -1
  359. package/dist/tegel/{p-44c33b20.entry.js → p-7c4c65c9.entry.js} +1 -1
  360. package/dist/tegel/{p-3a32fe40.entry.js → p-848c2732.entry.js} +1 -1
  361. package/dist/tegel/p-868757d9.entry.js +1 -0
  362. package/dist/tegel/p-8c8b9908.entry.js +1 -0
  363. package/dist/tegel/{p-2f32991e.entry.js → p-96635c10.entry.js} +1 -1
  364. package/dist/tegel/p-a21250b8.entry.js +1 -0
  365. package/dist/tegel/p-a5e0f030.entry.js +1 -0
  366. package/dist/tegel/{p-96bdf035.entry.js → p-aa9d281b.entry.js} +1 -1
  367. package/dist/tegel/p-aadb2553.entry.js +1 -0
  368. package/dist/tegel/p-ab8beb0f.entry.js +1 -0
  369. package/dist/tegel/p-ae46766a.entry.js +1 -0
  370. package/dist/tegel/{p-86b30f71.entry.js → p-aef6b130.entry.js} +1 -1
  371. package/dist/tegel/p-b08886e3.entry.js +1 -0
  372. package/dist/tegel/{p-f67b4047.entry.js → p-b35e7208.entry.js} +1 -1
  373. package/dist/tegel/{p-a86fe122.entry.js → p-b39ffad4.entry.js} +1 -1
  374. package/dist/tegel/p-b5ced8e5.entry.js +1 -0
  375. package/dist/tegel/{p-e7300cca.entry.js → p-b686f1ad.entry.js} +1 -1
  376. package/dist/tegel/{p-b96cd80d.entry.js → p-b9576881.entry.js} +1 -1
  377. package/dist/tegel/p-b9f81e53.entry.js +1 -0
  378. package/dist/tegel/p-be1d1345.entry.js +1 -0
  379. package/dist/tegel/{p-708a8bab.entry.js → p-bee533b5.entry.js} +1 -1
  380. package/dist/tegel/p-c3607f10.entry.js +1 -0
  381. package/dist/tegel/{p-99da056d.entry.js → p-c56be8d1.entry.js} +1 -1
  382. package/dist/tegel/{p-2a38b053.entry.js → p-c8404432.entry.js} +1 -1
  383. package/dist/tegel/{p-24ff5903.entry.js → p-ca93de01.entry.js} +1 -1
  384. package/dist/tegel/p-cc6c06e3.entry.js +1 -0
  385. package/dist/tegel/{p-b19ce79c.entry.js → p-cca85da0.entry.js} +1 -1
  386. package/dist/tegel/p-cde32bc6.entry.js +1 -0
  387. package/dist/tegel/p-cf302187.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-ddda64eb.entry.js +1 -0
  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-eaa279dd.entry.js +1 -0
  399. package/dist/tegel/{p-2795009a.entry.js → p-ed17283a.entry.js} +1 -1
  400. package/dist/tegel/{p-e478953c.entry.js → p-ee7f07ae.entry.js} +1 -1
  401. package/dist/tegel/p-ee960089.entry.js +1 -0
  402. package/dist/tegel/{p-b9b63210.entry.js → p-f1b0211a.entry.js} +1 -1
  403. package/dist/tegel/{p-a392e6e7.entry.js → p-fa07db58.entry.js} +1 -1
  404. package/dist/tegel/tegel.esm.js +1 -1
  405. package/dist/types/components/badge/badge.d.ts +3 -0
  406. package/dist/types/components/banner/banner.d.ts +4 -0
  407. package/dist/types/components/block/block.d.ts +8 -1
  408. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  409. package/dist/types/components/button/button.d.ts +3 -0
  410. package/dist/types/components/checkbox/checkbox.d.ts +5 -0
  411. package/dist/types/components/chip/chip.d.ts +3 -0
  412. package/dist/types/components/datetime/datetime.d.ts +2 -2
  413. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +6 -2
  414. package/dist/types/components/dropdown/dropdown.d.ts +29 -24
  415. package/dist/types/components/header/header-item/header-item.d.ts +7 -0
  416. package/dist/types/components/tabs/folder-tabs/folder-tab/folder-tab.d.ts +2 -0
  417. package/dist/types/components/tabs/folder-tabs/folder-tabs.d.ts +4 -0
  418. package/dist/types/components/tabs/inline-tabs/inline-tab/inline-tab.d.ts +2 -0
  419. package/dist/types/components/tabs/inline-tabs/inline-tabs.d.ts +4 -0
  420. package/dist/types/components/tabs/navigation-tabs/navigation-tab/navigation-tab.d.ts +2 -0
  421. package/dist/types/components/tabs/navigation-tabs/navigation-tabs.d.ts +4 -0
  422. package/dist/types/components/toggle/toggle.d.ts +5 -0
  423. package/dist/types/components.d.ts +176 -23
  424. package/dist/types/types/Icons.d.ts +1 -1
  425. package/dist/types/utils/axeHelpers.d.ts +1 -2
  426. package/dist/types/utils/convertToString.d.ts +7 -0
  427. package/package.json +1 -1
  428. package/dist/components/p-ad77fb02.js +0 -65
  429. package/dist/tegel/p-0939b9fb.entry.js +0 -1
  430. package/dist/tegel/p-0b773208.entry.js +0 -1
  431. package/dist/tegel/p-0cb6c898.entry.js +0 -1
  432. package/dist/tegel/p-1703f73a.entry.js +0 -1
  433. package/dist/tegel/p-32b7f431.entry.js +0 -1
  434. package/dist/tegel/p-39373227.entry.js +0 -1
  435. package/dist/tegel/p-3c22aef7.entry.js +0 -1
  436. package/dist/tegel/p-3e1b1399.entry.js +0 -1
  437. package/dist/tegel/p-48bbc11f.entry.js +0 -1
  438. package/dist/tegel/p-4a282c25.entry.js +0 -1
  439. package/dist/tegel/p-4b231bf9.entry.js +0 -1
  440. package/dist/tegel/p-4c2f313d.entry.js +0 -1
  441. package/dist/tegel/p-59293f88.entry.js +0 -1
  442. package/dist/tegel/p-69b38504.entry.js +0 -1
  443. package/dist/tegel/p-6eeded00.entry.js +0 -1
  444. package/dist/tegel/p-7090a95c.entry.js +0 -1
  445. package/dist/tegel/p-85a9032e.entry.js +0 -1
  446. package/dist/tegel/p-9016758e.entry.js +0 -1
  447. package/dist/tegel/p-92f81cda.entry.js +0 -1
  448. package/dist/tegel/p-9c3f2c12.entry.js +0 -1
  449. package/dist/tegel/p-9eaaa2c0.entry.js +0 -1
  450. package/dist/tegel/p-a38dda58.entry.js +0 -1
  451. package/dist/tegel/p-b425b2f4.entry.js +0 -1
  452. package/dist/tegel/p-b647d20e.entry.js +0 -1
  453. package/dist/tegel/p-be88c5ab.entry.js +0 -1
  454. package/dist/tegel/p-c289dfb9.entry.js +0 -1
  455. package/dist/tegel/p-d7f48112.entry.js +0 -1
  456. package/dist/tegel/p-d926d075.entry.js +0 -1
  457. package/dist/tegel/p-ddd33cce.entry.js +0 -1
  458. package/dist/tegel/p-ea4a9a4f.entry.js +0 -1
  459. package/dist/tegel/p-ee0e04ed.entry.js +0 -1
  460. package/dist/tegel/p-f050aad8.entry.js +0 -1
  461. package/dist/tegel/p-f4db0231.entry.js +0 -1
  462. package/dist/tegel/p-fd3d56aa.entry.js +0 -1
  463. package/dist/tegel/p-ffd827ef.entry.js +0 -1
@@ -2,40 +2,21 @@ 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.updateDropdownStateInternal(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) {
@@ -44,6 +25,36 @@ export class TdsDropdown {
44
25
  else
45
26
  return tdsDropdownOptions;
46
27
  };
28
+ this.getSelectedChildren = () => {
29
+ if (this.selectedOptions.length === 0)
30
+ return [];
31
+ return this.selectedOptions
32
+ .map((stringValue) => {
33
+ var _a;
34
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
35
+ return matchingElement;
36
+ })
37
+ .filter(Boolean);
38
+ };
39
+ this.getSelectedChildrenLabels = () => {
40
+ var _a;
41
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
42
+ };
43
+ this.getValue = () => {
44
+ const labels = this.getSelectedChildrenLabels();
45
+ if (!labels) {
46
+ return '';
47
+ }
48
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
49
+ };
50
+ this.setValueAttribute = () => {
51
+ if (this.selectedOptions.length === 0) {
52
+ this.host.removeAttribute('value');
53
+ }
54
+ else {
55
+ this.host.setAttribute('value', this.selectedOptions.join(','));
56
+ }
57
+ };
47
58
  this.getOpenDirection = () => {
48
59
  var _a, _b, _c, _d, _e;
49
60
  if (this.openDirection === 'auto' || !this.openDirection) {
@@ -57,7 +68,6 @@ export class TdsDropdown {
57
68
  }
58
69
  return this.openDirection;
59
70
  };
60
- /* Toggles the open state of the Dropdown and sets focus to the input element */
61
71
  this.handleToggleOpen = () => {
62
72
  if (!this.disabled) {
63
73
  this.open = !this.open;
@@ -66,38 +76,10 @@ export class TdsDropdown {
66
76
  }
67
77
  }
68
78
  };
69
- /* Focuses the input element in the Dropdown, if the reference is present. */
70
79
  this.focusInputElement = () => {
71
80
  if (this.inputElement)
72
81
  this.inputElement.focus();
73
82
  };
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
83
  this.handleFilter = (event) => {
102
84
  this.tdsInput.emit(event);
103
85
  const query = event.target.value.toLowerCase();
@@ -128,8 +110,10 @@ export class TdsDropdown {
128
110
  this.handleFilterReset = () => {
129
111
  this.reset();
130
112
  this.inputElement.value = '';
131
- this.handleFilter({ target: { value: this.inputElement.value } });
113
+ this.handleFilter({ target: { value: '' } });
132
114
  this.inputElement.focus();
115
+ // Add this line to ensure internal value is cleared
116
+ this.internalValue = '';
133
117
  };
134
118
  this.handleFocus = (event) => {
135
119
  this.open = true;
@@ -143,13 +127,6 @@ export class TdsDropdown {
143
127
  this.handleBlur = (event) => {
144
128
  this.tdsBlur.emit(event);
145
129
  };
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
130
  this.resetInput = () => {
154
131
  const inputEl = this.host.querySelector('input');
155
132
  if (inputEl) {
@@ -172,16 +149,118 @@ export class TdsDropdown {
172
149
  this.normalizeText = true;
173
150
  this.noResultText = 'No result';
174
151
  this.defaultValue = undefined;
152
+ this.value = null;
175
153
  this.open = false;
176
- this.value = undefined;
154
+ this.internalValue = undefined;
177
155
  this.filterResult = undefined;
178
156
  this.filterFocus = undefined;
157
+ this.internalDefaultValue = undefined;
158
+ this.selectedOptions = [];
159
+ }
160
+ handleValueChange(newValue) {
161
+ // Normalize to array
162
+ const normalizedValue = this.normalizeValue(newValue);
163
+ // Only update if actually changed
164
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
165
+ this.updateDropdownStateFromUser(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
+ updateDropdownStateInternal(values) {
190
+ this.updateDropdownState(values, false);
191
+ }
192
+ updateDropdownStateFromUser(values) {
193
+ this.updateDropdownState(values, true);
194
+ }
195
+ updateDropdownState(values, userEmitted = false) {
196
+ // Update internal state
197
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
198
+ // Then update the value prop to match
199
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
200
+ // Force update of internal value
201
+ this.internalValue = this.getValue();
202
+ // Update DOM
203
+ this.updateOptionElements();
204
+ // Update display value
205
+ this.updateDisplayValue();
206
+ // Update value attribute
207
+ this.setValueAttribute();
208
+ // Only emit change if it is an user emitted event
209
+ if (userEmitted)
210
+ this.emitChange();
211
+ }
212
+ validateValues(values) {
213
+ return values.filter((val) => {
214
+ var _a;
215
+ const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
216
+ if (!isValid) {
217
+ console.warn(`Option with value "${val}" does not exist`);
218
+ }
219
+ return isValid;
220
+ });
221
+ }
222
+ updateOptionElements() {
223
+ var _a;
224
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
225
+ // Convert element.value to string for comparison
226
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
227
+ });
228
+ }
229
+ updateDisplayValue() {
230
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
231
+ if (this.filter && this.inputElement) {
232
+ this.inputElement.value = this.internalValue;
233
+ }
234
+ }
235
+ emitChange() {
236
+ const value = this.multiselect
237
+ ? this.selectedOptions.join(',')
238
+ : this.selectedOptions[0] || null;
239
+ this.tdsChange.emit({
240
+ name: this.name,
241
+ value: value !== null && value !== void 0 ? value : null,
242
+ });
243
+ }
244
+ async setValue(value) {
245
+ let normalizedValue;
246
+ if (Array.isArray(value)) {
247
+ normalizedValue = convertArrayToStrings(value);
248
+ }
249
+ else {
250
+ normalizedValue = [convertToString(value)];
251
+ }
252
+ this.updateDropdownStateFromUser(normalizedValue);
253
+ return this.getSelectedChildren().map((element) => ({
254
+ value: element.value,
255
+ label: element.textContent.trim(),
256
+ }));
179
257
  }
180
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
181
258
  async reset() {
182
- this.dropdownList.scrollTop = 0;
183
- this.internalReset();
184
- this.handleChange();
259
+ this.updateDropdownStateFromUser([]);
260
+ }
261
+ async removeValue(oldValue) {
262
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
263
+ this.updateDropdownStateFromUser(newValues);
185
264
  }
186
265
  /** Method that forces focus on the input element. */
187
266
  async focusElement() {
@@ -202,79 +281,6 @@ export class TdsDropdown {
202
281
  * dropdown.setValue(['option-1', 'option-2']);
203
282
  * </code>
204
283
  */
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
284
  async close() {
279
285
  this.open = false;
280
286
  }
@@ -321,12 +327,25 @@ export class TdsDropdown {
321
327
  handleOpenState() {
322
328
  if (this.filter && this.multiselect) {
323
329
  if (!this.open) {
324
- this.inputElement.value = this.getValue();
330
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
325
331
  }
326
332
  }
327
333
  }
334
+ handleDefaultValueChange(newValue) {
335
+ if (newValue !== undefined && newValue !== null) {
336
+ this.internalDefaultValue = convertToString(newValue);
337
+ this.setDefaultOption();
338
+ }
339
+ }
328
340
  componentWillLoad() {
329
- this.setDefaultOption();
341
+ if (this.defaultValue && !this.value) {
342
+ // Convert defaultValue to string before splitting
343
+ const defaultValueStr = convertToString(this.defaultValue);
344
+ const initialValue = this.multiselect
345
+ ? defaultValueStr.split(',').map(convertToString)
346
+ : [convertToString(this.defaultValue)];
347
+ this.updateDropdownStateInternal(initialValue);
348
+ }
330
349
  }
331
350
  /** Method to handle slot changes */
332
351
  handleSlotChange() {
@@ -336,29 +355,16 @@ export class TdsDropdown {
336
355
  normalizeString(text) {
337
356
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
338
357
  }
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
- });
358
+ /**
359
+ * @internal
360
+ */
361
+ async appendValue(value) {
362
+ if (this.multiselect) {
363
+ this.updateDropdownStateFromUser([...this.selectedOptions, value]);
364
+ }
365
+ else {
366
+ this.updateDropdownStateFromUser([value]);
367
+ }
362
368
  }
363
369
  componentDidRender() {
364
370
  const form = this.host.closest('form');
@@ -373,11 +379,10 @@ export class TdsDropdown {
373
379
  }
374
380
  }
375
381
  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: {
382
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
383
+ return (h(Host, { key: 'd15afb12233aaa419a7a6b5591d6ea1dc7663218', role: "select", class: {
379
384
  [`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: {
385
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: '9562a26de18136dc53c23baeeb0ae210356adac7', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '0945af4d097f042da54c50da1858380c0b1dbfeb', class: {
381
386
  'dropdown-select': true,
382
387
  [this.size]: true,
383
388
  'disabled': this.disabled,
@@ -389,7 +394,7 @@ export class TdsDropdown {
389
394
  } }, 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
395
  label-inside-as-placeholder
391
396
  ${this.size}
392
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
397
+ ${this.selectedOptions.length ? 'selected' : ''}
393
398
  ` }, this.label)), h("input", {
394
399
  // eslint-disable-next-line no-return-assign
395
400
  ref: (inputEl) => (this.inputElement = inputEl), class: {
@@ -400,15 +405,7 @@ export class TdsDropdown {
400
405
  this.inputElement.value = this.getValue();
401
406
  }
402
407
  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) => {
408
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
412
409
  if (event.key === 'Escape') {
413
410
  this.open = false;
414
411
  }
@@ -428,17 +425,15 @@ export class TdsDropdown {
428
425
  if (event.key === 'Escape') {
429
426
  this.open = false;
430
427
  }
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) => {
428
+ }, class: `
429
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
430
+ ${this.open ? 'open' : 'closed'}
431
+ ${this.error ? 'error' : ''}
432
+ `, 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: `
433
+ label-inside-as-placeholder
434
+ ${this.size}
435
+ ${this.selectedOptions.length ? 'selected' : ''}
436
+ ` }, 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: 'e3db331ef53896c16822478e56568c1c89c34d8c', ref: (element) => {
442
437
  this.dropdownList = element;
443
438
  }, class: {
444
439
  'dropdown-list': true,
@@ -449,11 +444,11 @@ export class TdsDropdown {
449
444
  'closed': !this.open,
450
445
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
451
446
  [`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: {
447
+ } }, h("slot", { key: '9c41b3495fdb0745dbf6bb33cede9b7cc13f551e', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '9de44942495f2246e6696c18d54d9af6f7c24f71', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: '5164de6dc06ca1d4cd8a9f296660b9c260ccd878', class: {
453
448
  helper: true,
454
449
  error: this.error,
455
450
  disabled: this.disabled,
456
- } }, this.error && h("tds-icon", { key: '1f6f2b7272f35501bf684816b4bc1cd746910fe9', name: "error", size: "16px" }), this.helper))));
451
+ } }, this.error && h("tds-icon", { key: '27056711de2079206b1b09a849aed911bf1efb9a', name: "error", size: "16px" }), this.helper))));
457
452
  }
458
453
  static get is() { return "tds-dropdown"; }
459
454
  static get encapsulation() { return "shadow"; }
@@ -735,11 +730,11 @@ export class TdsDropdown {
735
730
  "defaultValue": "'No result'"
736
731
  },
737
732
  "defaultValue": {
738
- "type": "string",
733
+ "type": "any",
739
734
  "mutable": false,
740
735
  "complexType": {
741
- "original": "string",
742
- "resolved": "string",
736
+ "original": "string | number",
737
+ "resolved": "number | string",
743
738
  "references": {}
744
739
  },
745
740
  "required": false,
@@ -750,15 +745,35 @@ export class TdsDropdown {
750
745
  },
751
746
  "attribute": "default-value",
752
747
  "reflect": false
748
+ },
749
+ "value": {
750
+ "type": "any",
751
+ "mutable": true,
752
+ "complexType": {
753
+ "original": "string | number | (string | number)[]",
754
+ "resolved": "(string | number)[] | number | string",
755
+ "references": {}
756
+ },
757
+ "required": false,
758
+ "optional": false,
759
+ "docs": {
760
+ "tags": [],
761
+ "text": "Value of the dropdown. For multiselect, provide array of strings/numbers. For single select, provide a string/number."
762
+ },
763
+ "attribute": "value",
764
+ "reflect": false,
765
+ "defaultValue": "null"
753
766
  }
754
767
  };
755
768
  }
756
769
  static get states() {
757
770
  return {
758
771
  "open": {},
759
- "value": {},
772
+ "internalValue": {},
760
773
  "filterResult": {},
761
- "filterFocus": {}
774
+ "filterFocus": {},
775
+ "internalDefaultValue": {},
776
+ "selectedOptions": {}
762
777
  };
763
778
  }
764
779
  static get events() {
@@ -841,24 +856,32 @@ export class TdsDropdown {
841
856
  }
842
857
  static get methods() {
843
858
  return {
844
- "reset": {
859
+ "setValue": {
845
860
  "complexType": {
846
- "signature": "() => Promise<void>",
847
- "parameters": [],
861
+ "signature": "(value: string | number | string[] | number[]) => Promise<{ value: string | number; label: string; }[]>",
862
+ "parameters": [{
863
+ "name": "value",
864
+ "type": "string | number | string[] | number[]",
865
+ "docs": ""
866
+ }],
848
867
  "references": {
849
868
  "Promise": {
850
869
  "location": "global",
851
870
  "id": "global::Promise"
871
+ },
872
+ "HTMLTdsDropdownOptionElement": {
873
+ "location": "global",
874
+ "id": "global::HTMLTdsDropdownOptionElement"
852
875
  }
853
876
  },
854
- "return": "Promise<void>"
877
+ "return": "Promise<{ value: string | number; label: string; }[]>"
855
878
  },
856
879
  "docs": {
857
- "text": "Method that resets the Dropdown, marks all children as non-selected and resets the value to null.",
880
+ "text": "",
858
881
  "tags": []
859
882
  }
860
883
  },
861
- "focusElement": {
884
+ "reset": {
862
885
  "complexType": {
863
886
  "signature": "() => Promise<void>",
864
887
  "parameters": [],
@@ -871,19 +894,15 @@ export class TdsDropdown {
871
894
  "return": "Promise<void>"
872
895
  },
873
896
  "docs": {
874
- "text": "Method that forces focus on the input element.",
897
+ "text": "",
875
898
  "tags": []
876
899
  }
877
900
  },
878
- "setValue": {
901
+ "removeValue": {
879
902
  "complexType": {
880
- "signature": "(value: string | string[], label?: string) => Promise<{ value: string; label: string; }[]>",
903
+ "signature": "(oldValue: string) => Promise<void>",
881
904
  "parameters": [{
882
- "name": "value",
883
- "type": "string | string[]",
884
- "docs": ""
885
- }, {
886
- "name": "label",
905
+ "name": "oldValue",
887
906
  "type": "string",
888
907
  "docs": ""
889
908
  }],
@@ -891,27 +910,19 @@ export class TdsDropdown {
891
910
  "Promise": {
892
911
  "location": "global",
893
912
  "id": "global::Promise"
894
- },
895
- "HTMLTdsDropdownOptionElement": {
896
- "location": "global",
897
- "id": "global::HTMLTdsDropdownOptionElement"
898
913
  }
899
914
  },
900
- "return": "Promise<{ value: string; label: string; }[]>"
915
+ "return": "Promise<void>"
901
916
  },
902
917
  "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>",
918
+ "text": "",
904
919
  "tags": []
905
920
  }
906
921
  },
907
- "appendValue": {
922
+ "focusElement": {
908
923
  "complexType": {
909
- "signature": "(value: string) => Promise<void>",
910
- "parameters": [{
911
- "name": "value",
912
- "type": "string",
913
- "docs": ""
914
- }],
924
+ "signature": "() => Promise<void>",
925
+ "parameters": [],
915
926
  "references": {
916
927
  "Promise": {
917
928
  "location": "global",
@@ -921,42 +932,35 @@ export class TdsDropdown {
921
932
  "return": "Promise<void>"
922
933
  },
923
934
  "docs": {
924
- "text": "",
925
- "tags": [{
926
- "name": "internal",
927
- "text": undefined
928
- }]
935
+ "text": "Method that forces focus on the input element.",
936
+ "tags": []
929
937
  }
930
938
  },
931
- "removeValue": {
939
+ "close": {
932
940
  "complexType": {
933
- "signature": "(oldValue: string) => Promise<{ value: string; label: string; }[]>",
934
- "parameters": [{
935
- "name": "oldValue",
936
- "type": "string",
937
- "docs": ""
938
- }],
941
+ "signature": "() => Promise<void>",
942
+ "parameters": [],
939
943
  "references": {
940
944
  "Promise": {
941
945
  "location": "global",
942
946
  "id": "global::Promise"
943
- },
944
- "HTMLTdsDropdownOptionElement": {
945
- "location": "global",
946
- "id": "global::HTMLTdsDropdownOptionElement"
947
947
  }
948
948
  },
949
- "return": "Promise<{ value: string; label: string; }[]>"
949
+ "return": "Promise<void>"
950
950
  },
951
951
  "docs": {
952
- "text": "Method for removing a selected value in the Dropdown.",
952
+ "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
953
  "tags": []
954
954
  }
955
955
  },
956
- "close": {
956
+ "appendValue": {
957
957
  "complexType": {
958
- "signature": "() => Promise<void>",
959
- "parameters": [],
958
+ "signature": "(value: string) => Promise<void>",
959
+ "parameters": [{
960
+ "name": "value",
961
+ "type": "string",
962
+ "docs": ""
963
+ }],
960
964
  "references": {
961
965
  "Promise": {
962
966
  "location": "global",
@@ -966,8 +970,11 @@ export class TdsDropdown {
966
970
  "return": "Promise<void>"
967
971
  },
968
972
  "docs": {
969
- "text": "Method for closing the Dropdown.",
970
- "tags": []
973
+ "text": "",
974
+ "tags": [{
975
+ "name": "internal",
976
+ "text": undefined
977
+ }]
971
978
  }
972
979
  }
973
980
  };
@@ -975,8 +982,14 @@ export class TdsDropdown {
975
982
  static get elementRef() { return "host"; }
976
983
  static get watchers() {
977
984
  return [{
985
+ "propName": "value",
986
+ "methodName": "handleValueChange"
987
+ }, {
978
988
  "propName": "open",
979
989
  "methodName": "handleOpenState"
990
+ }, {
991
+ "propName": "defaultValue",
992
+ "methodName": "handleDefaultValueChange"
980
993
  }];
981
994
  }
982
995
  static get listeners() {