@scania/tegel 1.25.0 → 1.26.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 +229 -205
  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 +253 -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 +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-1e110ab8.js → p-2a43e410.js} +39 -15
  163. package/dist/components/{p-75437dea.js → p-34737ed9.js} +1 -1
  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-ad77fb02.js → p-a2b7bdef.js} +1 -1
  169. package/dist/components/{p-dd6ff1e2.js → p-a64dc22e.js} +196 -201
  170. package/dist/components/p-b1d21573.js +16 -0
  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 +229 -205
  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-9e0b31a1.entry.js +1 -0
  369. package/dist/tegel/{p-c289dfb9.entry.js → p-a0fc0cc2.entry.js} +1 -1
  370. package/dist/tegel/p-a5e0f030.entry.js +1 -0
  371. package/dist/tegel/{p-96bdf035.entry.js → p-aa9d281b.entry.js} +1 -1
  372. package/dist/tegel/p-ae46766a.entry.js +1 -0
  373. package/dist/tegel/{p-86b30f71.entry.js → p-aef6b130.entry.js} +1 -1
  374. package/dist/tegel/{p-f67b4047.entry.js → p-b35e7208.entry.js} +1 -1
  375. package/dist/tegel/{p-a86fe122.entry.js → p-b39ffad4.entry.js} +1 -1
  376. package/dist/tegel/p-b5ced8e5.entry.js +1 -0
  377. package/dist/tegel/{p-fd3d56aa.entry.js → p-b6526302.entry.js} +1 -1
  378. package/dist/tegel/{p-e7300cca.entry.js → p-b686f1ad.entry.js} +1 -1
  379. package/dist/tegel/{p-b96cd80d.entry.js → p-b9576881.entry.js} +1 -1
  380. package/dist/tegel/p-b9f81e53.entry.js +1 -0
  381. package/dist/tegel/p-be1d1345.entry.js +1 -0
  382. package/dist/tegel/{p-708a8bab.entry.js → p-bee533b5.entry.js} +1 -1
  383. package/dist/tegel/{p-99da056d.entry.js → p-c56be8d1.entry.js} +1 -1
  384. package/dist/tegel/{p-2a38b053.entry.js → p-c8404432.entry.js} +1 -1
  385. package/dist/tegel/{p-24ff5903.entry.js → p-ca93de01.entry.js} +1 -1
  386. package/dist/tegel/p-cc6c06e3.entry.js +1 -0
  387. package/dist/tegel/{p-b19ce79c.entry.js → p-cca85da0.entry.js} +1 -1
  388. package/dist/tegel/p-cde32bc6.entry.js +1 -0
  389. package/dist/tegel/p-d0abf078.entry.js +1 -0
  390. package/dist/tegel/{p-6d022f47.entry.js → p-d267665e.entry.js} +1 -1
  391. package/dist/tegel/{p-e9ac7a1a.entry.js → p-d33cb2d1.entry.js} +1 -1
  392. package/dist/tegel/{p-5fea857b.entry.js → p-d47c744f.entry.js} +1 -1
  393. package/dist/tegel/p-d65dfe04.entry.js +1 -0
  394. package/dist/tegel/{p-2a96bd05.entry.js → p-d853f8c2.entry.js} +1 -1
  395. package/dist/tegel/p-d9511720.entry.js +1 -0
  396. package/dist/tegel/{p-0b773208.entry.js → p-dcbc35af.entry.js} +1 -1
  397. package/dist/tegel/{p-fd432c54.entry.js → p-dfbbaefd.entry.js} +1 -1
  398. package/dist/tegel/{p-88204e0a.entry.js → p-ea3e071f.entry.js} +1 -1
  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-b9b63210.entry.js → p-f1b0211a.entry.js} +1 -1
  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,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.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) {
@@ -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,111 @@ export class TdsDropdown {
172
149
  this.normalizeText = true;
173
150
  this.noResultText = 'No result';
174
151
  this.defaultValue = undefined;
152
+ this.value = null;
175
153
  this.open = false;
176
- this.value = undefined;
154
+ this.internalValue = undefined;
177
155
  this.filterResult = undefined;
178
156
  this.filterFocus = undefined;
157
+ this.internalDefaultValue = undefined;
158
+ this.selectedOptions = [];
159
+ }
160
+ handleValueChange(newValue) {
161
+ // Normalize to array
162
+ const normalizedValue = this.normalizeValue(newValue);
163
+ // Only update if actually changed
164
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
165
+ this.updateDropdownState(normalizedValue);
166
+ }
167
+ }
168
+ normalizeValue(value) {
169
+ if (!value || value === '')
170
+ return []; // Handle both null and empty string
171
+ // For multiselect, keep array. For single select, wrap in array
172
+ if (this.multiselect) {
173
+ if (Array.isArray(value)) {
174
+ return convertArrayToStrings(value);
175
+ }
176
+ return value
177
+ .toString()
178
+ .split(',')
179
+ .filter((v) => v !== '');
180
+ }
181
+ // Single select - convert to string array
182
+ return Array.isArray(value) ? convertArrayToStrings(value) : [convertToString(value)];
183
+ }
184
+ hasValueChanged(newValue, currentValue) {
185
+ if (newValue.length !== currentValue.length)
186
+ return true;
187
+ return newValue.some((val) => !currentValue.includes(val));
188
+ }
189
+ updateDropdownState(values) {
190
+ // Update internal state
191
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
192
+ // Then update the value prop to match
193
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
194
+ // Force update of internal value
195
+ this.internalValue = this.getValue();
196
+ // Update DOM
197
+ this.updateOptionElements();
198
+ // Update display value
199
+ this.updateDisplayValue();
200
+ // Emit change event
201
+ this.emitChange();
202
+ // Update value attribute
203
+ this.setValueAttribute();
204
+ }
205
+ validateValues(values) {
206
+ return values.filter((val) => {
207
+ var _a;
208
+ const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
209
+ if (!isValid) {
210
+ console.warn(`Option with value "${val}" does not exist`);
211
+ }
212
+ return isValid;
213
+ });
214
+ }
215
+ updateOptionElements() {
216
+ var _a;
217
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
218
+ // Convert element.value to string for comparison
219
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
220
+ });
221
+ }
222
+ updateDisplayValue() {
223
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
224
+ if (this.filter && this.inputElement) {
225
+ this.inputElement.value = this.internalValue;
226
+ }
227
+ }
228
+ emitChange() {
229
+ const value = this.multiselect
230
+ ? this.selectedOptions.join(',')
231
+ : this.selectedOptions[0] || null;
232
+ this.tdsChange.emit({
233
+ name: this.name,
234
+ value: value !== null && value !== void 0 ? value : null,
235
+ });
236
+ }
237
+ async setValue(value) {
238
+ let normalizedValue;
239
+ if (Array.isArray(value)) {
240
+ normalizedValue = convertArrayToStrings(value);
241
+ }
242
+ else {
243
+ normalizedValue = [convertToString(value)];
244
+ }
245
+ this.updateDropdownState(normalizedValue);
246
+ return this.getSelectedChildren().map((element) => ({
247
+ value: element.value,
248
+ label: element.textContent.trim(),
249
+ }));
179
250
  }
180
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
181
251
  async reset() {
182
- this.dropdownList.scrollTop = 0;
183
- this.internalReset();
184
- this.handleChange();
252
+ this.updateDropdownState([]);
253
+ }
254
+ async removeValue(oldValue) {
255
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
256
+ this.updateDropdownState(newValues);
185
257
  }
186
258
  /** Method that forces focus on the input element. */
187
259
  async focusElement() {
@@ -202,79 +274,6 @@ export class TdsDropdown {
202
274
  * dropdown.setValue(['option-1', 'option-2']);
203
275
  * </code>
204
276
  */
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
277
  async close() {
279
278
  this.open = false;
280
279
  }
@@ -321,12 +320,25 @@ export class TdsDropdown {
321
320
  handleOpenState() {
322
321
  if (this.filter && this.multiselect) {
323
322
  if (!this.open) {
324
- this.inputElement.value = this.getValue();
323
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
325
324
  }
326
325
  }
327
326
  }
327
+ handleDefaultValueChange(newValue) {
328
+ if (newValue !== undefined && newValue !== null) {
329
+ this.internalDefaultValue = convertToString(newValue);
330
+ this.setDefaultOption();
331
+ }
332
+ }
328
333
  componentWillLoad() {
329
- this.setDefaultOption();
334
+ if (this.defaultValue && !this.value) {
335
+ // Convert defaultValue to string before splitting
336
+ const defaultValueStr = convertToString(this.defaultValue);
337
+ const initialValue = this.multiselect
338
+ ? defaultValueStr.split(',').map(convertToString)
339
+ : [convertToString(this.defaultValue)];
340
+ this.updateDropdownState(initialValue);
341
+ }
330
342
  }
331
343
  /** Method to handle slot changes */
332
344
  handleSlotChange() {
@@ -336,29 +348,16 @@ export class TdsDropdown {
336
348
  normalizeString(text) {
337
349
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
338
350
  }
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
- });
351
+ /**
352
+ * @internal
353
+ */
354
+ async appendValue(value) {
355
+ if (this.multiselect) {
356
+ this.updateDropdownState([...this.selectedOptions, value]);
357
+ }
358
+ else {
359
+ this.updateDropdownState([value]);
360
+ }
362
361
  }
363
362
  componentDidRender() {
364
363
  const form = this.host.closest('form');
@@ -373,11 +372,10 @@ export class TdsDropdown {
373
372
  }
374
373
  }
375
374
  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: {
375
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
376
+ return (h(Host, { key: '490d34545b3a09c3b4342fa09d38f6bf9c782498', role: "select", class: {
379
377
  [`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: {
378
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: '7eb96c0134032654df98a3b68ffb692a2cd91d2b', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '439fddb188ad65239e9d5451a82ab3bbe8f47fb7', class: {
381
379
  'dropdown-select': true,
382
380
  [this.size]: true,
383
381
  'disabled': this.disabled,
@@ -389,7 +387,7 @@ export class TdsDropdown {
389
387
  } }, h("div", { class: "value-wrapper" }, this.label && this.labelPosition === 'inside' && this.placeholder && (h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (h("div", { class: `
390
388
  label-inside-as-placeholder
391
389
  ${this.size}
392
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
390
+ ${this.selectedOptions.length ? 'selected' : ''}
393
391
  ` }, this.label)), h("input", {
394
392
  // eslint-disable-next-line no-return-assign
395
393
  ref: (inputEl) => (this.inputElement = inputEl), class: {
@@ -400,15 +398,7 @@ export class TdsDropdown {
400
398
  this.inputElement.value = this.getValue();
401
399
  }
402
400
  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) => {
401
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
412
402
  if (event.key === 'Escape') {
413
403
  this.open = false;
414
404
  }
@@ -428,17 +418,15 @@ export class TdsDropdown {
428
418
  if (event.key === 'Escape') {
429
419
  this.open = false;
430
420
  }
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) => {
421
+ }, class: `
422
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
423
+ ${this.open ? 'open' : 'closed'}
424
+ ${this.error ? 'error' : ''}
425
+ `, disabled: this.disabled }, h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (h("div", { class: `
426
+ label-inside-as-placeholder
427
+ ${this.size}
428
+ ${this.selectedOptions.length ? 'selected' : ''}
429
+ ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, this.selectedOptions.length ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: 'd6381f78466994f05415cf8981b3cedaaf4df6a9', ref: (element) => {
442
430
  this.dropdownList = element;
443
431
  }, class: {
444
432
  'dropdown-list': true,
@@ -449,11 +437,11 @@ export class TdsDropdown {
449
437
  'closed': !this.open,
450
438
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
451
439
  [`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: {
440
+ } }, h("slot", { key: 'c36a9cb5398a7d290f11576431982e869986e4a0', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '5ec07552d105f8a4addc46da0172f67cf9233817', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'b3e240c31060f2d2bce6e3647f903f9ff1250ed5', class: {
453
441
  helper: true,
454
442
  error: this.error,
455
443
  disabled: this.disabled,
456
- } }, this.error && h("tds-icon", { key: '1f6f2b7272f35501bf684816b4bc1cd746910fe9', name: "error", size: "16px" }), this.helper))));
444
+ } }, this.error && h("tds-icon", { key: 'c0eb10dfeaa5236f5ac02dabf44329e85d52dcda', name: "error", size: "16px" }), this.helper))));
457
445
  }
458
446
  static get is() { return "tds-dropdown"; }
459
447
  static get encapsulation() { return "shadow"; }
@@ -735,11 +723,11 @@ export class TdsDropdown {
735
723
  "defaultValue": "'No result'"
736
724
  },
737
725
  "defaultValue": {
738
- "type": "string",
726
+ "type": "any",
739
727
  "mutable": false,
740
728
  "complexType": {
741
- "original": "string",
742
- "resolved": "string",
729
+ "original": "string | number",
730
+ "resolved": "number | string",
743
731
  "references": {}
744
732
  },
745
733
  "required": false,
@@ -750,15 +738,35 @@ export class TdsDropdown {
750
738
  },
751
739
  "attribute": "default-value",
752
740
  "reflect": false
741
+ },
742
+ "value": {
743
+ "type": "any",
744
+ "mutable": true,
745
+ "complexType": {
746
+ "original": "string | number | (string | number)[]",
747
+ "resolved": "(string | number)[] | number | string",
748
+ "references": {}
749
+ },
750
+ "required": false,
751
+ "optional": false,
752
+ "docs": {
753
+ "tags": [],
754
+ "text": "Value of the dropdown. For multiselect, provide array of strings/numbers. For single select, provide a string/number."
755
+ },
756
+ "attribute": "value",
757
+ "reflect": false,
758
+ "defaultValue": "null"
753
759
  }
754
760
  };
755
761
  }
756
762
  static get states() {
757
763
  return {
758
764
  "open": {},
759
- "value": {},
765
+ "internalValue": {},
760
766
  "filterResult": {},
761
- "filterFocus": {}
767
+ "filterFocus": {},
768
+ "internalDefaultValue": {},
769
+ "selectedOptions": {}
762
770
  };
763
771
  }
764
772
  static get events() {
@@ -841,24 +849,32 @@ export class TdsDropdown {
841
849
  }
842
850
  static get methods() {
843
851
  return {
844
- "reset": {
852
+ "setValue": {
845
853
  "complexType": {
846
- "signature": "() => Promise<void>",
847
- "parameters": [],
854
+ "signature": "(value: string | number | string[] | number[]) => Promise<{ value: string | number; label: string; }[]>",
855
+ "parameters": [{
856
+ "name": "value",
857
+ "type": "string | number | string[] | number[]",
858
+ "docs": ""
859
+ }],
848
860
  "references": {
849
861
  "Promise": {
850
862
  "location": "global",
851
863
  "id": "global::Promise"
864
+ },
865
+ "HTMLTdsDropdownOptionElement": {
866
+ "location": "global",
867
+ "id": "global::HTMLTdsDropdownOptionElement"
852
868
  }
853
869
  },
854
- "return": "Promise<void>"
870
+ "return": "Promise<{ value: string | number; label: string; }[]>"
855
871
  },
856
872
  "docs": {
857
- "text": "Method that resets the Dropdown, marks all children as non-selected and resets the value to null.",
873
+ "text": "",
858
874
  "tags": []
859
875
  }
860
876
  },
861
- "focusElement": {
877
+ "reset": {
862
878
  "complexType": {
863
879
  "signature": "() => Promise<void>",
864
880
  "parameters": [],
@@ -871,19 +887,15 @@ export class TdsDropdown {
871
887
  "return": "Promise<void>"
872
888
  },
873
889
  "docs": {
874
- "text": "Method that forces focus on the input element.",
890
+ "text": "",
875
891
  "tags": []
876
892
  }
877
893
  },
878
- "setValue": {
894
+ "removeValue": {
879
895
  "complexType": {
880
- "signature": "(value: string | string[], label?: string) => Promise<{ value: string; label: string; }[]>",
896
+ "signature": "(oldValue: string) => Promise<void>",
881
897
  "parameters": [{
882
- "name": "value",
883
- "type": "string | string[]",
884
- "docs": ""
885
- }, {
886
- "name": "label",
898
+ "name": "oldValue",
887
899
  "type": "string",
888
900
  "docs": ""
889
901
  }],
@@ -891,27 +903,19 @@ export class TdsDropdown {
891
903
  "Promise": {
892
904
  "location": "global",
893
905
  "id": "global::Promise"
894
- },
895
- "HTMLTdsDropdownOptionElement": {
896
- "location": "global",
897
- "id": "global::HTMLTdsDropdownOptionElement"
898
906
  }
899
907
  },
900
- "return": "Promise<{ value: string; label: string; }[]>"
908
+ "return": "Promise<void>"
901
909
  },
902
910
  "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>",
911
+ "text": "",
904
912
  "tags": []
905
913
  }
906
914
  },
907
- "appendValue": {
915
+ "focusElement": {
908
916
  "complexType": {
909
- "signature": "(value: string) => Promise<void>",
910
- "parameters": [{
911
- "name": "value",
912
- "type": "string",
913
- "docs": ""
914
- }],
917
+ "signature": "() => Promise<void>",
918
+ "parameters": [],
915
919
  "references": {
916
920
  "Promise": {
917
921
  "location": "global",
@@ -921,42 +925,35 @@ export class TdsDropdown {
921
925
  "return": "Promise<void>"
922
926
  },
923
927
  "docs": {
924
- "text": "",
925
- "tags": [{
926
- "name": "internal",
927
- "text": undefined
928
- }]
928
+ "text": "Method that forces focus on the input element.",
929
+ "tags": []
929
930
  }
930
931
  },
931
- "removeValue": {
932
+ "close": {
932
933
  "complexType": {
933
- "signature": "(oldValue: string) => Promise<{ value: string; label: string; }[]>",
934
- "parameters": [{
935
- "name": "oldValue",
936
- "type": "string",
937
- "docs": ""
938
- }],
934
+ "signature": "() => Promise<void>",
935
+ "parameters": [],
939
936
  "references": {
940
937
  "Promise": {
941
938
  "location": "global",
942
939
  "id": "global::Promise"
943
- },
944
- "HTMLTdsDropdownOptionElement": {
945
- "location": "global",
946
- "id": "global::HTMLTdsDropdownOptionElement"
947
940
  }
948
941
  },
949
- "return": "Promise<{ value: string; label: string; }[]>"
942
+ "return": "Promise<void>"
950
943
  },
951
944
  "docs": {
952
- "text": "Method for removing a selected value in the Dropdown.",
945
+ "text": "Method for setting the value of the Dropdown.\n\nSingle selection example:\n\n<code>\ndropdown.setValue('option-1', 'Option 1');\n</code>\n\nMultiselect example:\n\n<code>\ndropdown.setValue(['option-1', 'option-2']);\n</code>",
953
946
  "tags": []
954
947
  }
955
948
  },
956
- "close": {
949
+ "appendValue": {
957
950
  "complexType": {
958
- "signature": "() => Promise<void>",
959
- "parameters": [],
951
+ "signature": "(value: string) => Promise<void>",
952
+ "parameters": [{
953
+ "name": "value",
954
+ "type": "string",
955
+ "docs": ""
956
+ }],
960
957
  "references": {
961
958
  "Promise": {
962
959
  "location": "global",
@@ -966,8 +963,11 @@ export class TdsDropdown {
966
963
  "return": "Promise<void>"
967
964
  },
968
965
  "docs": {
969
- "text": "Method for closing the Dropdown.",
970
- "tags": []
966
+ "text": "",
967
+ "tags": [{
968
+ "name": "internal",
969
+ "text": undefined
970
+ }]
971
971
  }
972
972
  }
973
973
  };
@@ -975,8 +975,14 @@ export class TdsDropdown {
975
975
  static get elementRef() { return "host"; }
976
976
  static get watchers() {
977
977
  return [{
978
+ "propName": "value",
979
+ "methodName": "handleValueChange"
980
+ }, {
978
981
  "propName": "open",
979
982
  "methodName": "handleOpenState"
983
+ }, {
984
+ "propName": "defaultValue",
985
+ "methodName": "handleDefaultValueChange"
980
986
  }];
981
987
  }
982
988
  static get listeners() {