@scania/tegel 1.25.0 → 1.26.0-value-prop-fix.beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (442) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-badge.cjs.entry.js +5 -9
  3. package/dist/cjs/tds-banner.cjs.entry.js +3 -4
  4. package/dist/cjs/tds-block.cjs.entry.js +3 -1
  5. package/dist/cjs/tds-body-cell.cjs.entry.js +9 -6
  6. package/dist/cjs/tds-breadcrumb.cjs.entry.js +2 -2
  7. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +7 -1
  8. package/dist/cjs/tds-button.cjs.entry.js +12 -4
  9. package/dist/cjs/tds-card.cjs.entry.js +5 -5
  10. package/dist/cjs/tds-checkbox.cjs.entry.js +2 -2
  11. package/dist/cjs/tds-chip.cjs.entry.js +7 -2
  12. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +40 -3
  13. package/dist/cjs/tds-datetime.cjs.entry.js +20 -13
  14. package/dist/cjs/tds-divider.cjs.entry.js +1 -1
  15. package/dist/cjs/tds-dropdown_2.cjs.entry.js +256 -208
  16. package/dist/cjs/tds-folder-tab.cjs.entry.js +2 -2
  17. package/dist/cjs/tds-folder-tabs.cjs.entry.js +2 -2
  18. package/dist/cjs/tds-footer-group.cjs.entry.js +3 -3
  19. package/dist/cjs/tds-footer-item.cjs.entry.js +1 -1
  20. package/dist/cjs/tds-footer.cjs.entry.js +2 -2
  21. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +1 -1
  22. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  23. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  24. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +1 -1
  25. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +1 -1
  26. package/dist/cjs/tds-header-dropdown.cjs.entry.js +3 -3
  27. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  28. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  29. package/dist/cjs/tds-header-launcher-grid-item.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  32. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  33. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +1 -1
  34. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +1 -1
  35. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  36. package/dist/cjs/tds-header-title.cjs.entry.js +1 -1
  37. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  38. package/dist/cjs/tds-icon.cjs.entry.js +1 -1
  39. package/dist/cjs/tds-inline-tab.cjs.entry.js +2 -2
  40. package/dist/cjs/tds-inline-tabs.cjs.entry.js +2 -2
  41. package/dist/cjs/tds-link.cjs.entry.js +2 -2
  42. package/dist/cjs/tds-message.cjs.entry.js +2 -2
  43. package/dist/cjs/tds-modal.cjs.entry.js +2 -2
  44. package/dist/cjs/tds-navigation-tab.cjs.entry.js +2 -2
  45. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +4 -4
  46. package/dist/cjs/tds-popover-canvas.cjs.entry.js +2 -2
  47. package/dist/cjs/tds-popover-core.cjs.entry.js +1 -1
  48. package/dist/cjs/tds-popover-menu-item.cjs.entry.js +2 -2
  49. package/dist/cjs/tds-popover-menu.cjs.entry.js +2 -2
  50. package/dist/cjs/tds-radio-button.cjs.entry.js +1 -1
  51. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  52. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -4
  53. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +2 -2
  54. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +2 -2
  55. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +3 -3
  56. package/dist/cjs/tds-side-menu-item.cjs.entry.js +2 -2
  57. package/dist/cjs/tds-side-menu-overlay.cjs.entry.js +1 -1
  58. package/dist/cjs/tds-side-menu-user-image_2.cjs.entry.js +2 -2
  59. package/dist/cjs/tds-side-menu-user.cjs.entry.js +1 -1
  60. package/dist/cjs/tds-slider.cjs.entry.js +7 -7
  61. package/dist/cjs/tds-spinner.cjs.entry.js +1 -1
  62. package/dist/cjs/tds-step.cjs.entry.js +1 -1
  63. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  64. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +7 -7
  65. package/dist/cjs/tds-table-body-row.cjs.entry.js +9 -6
  66. package/dist/cjs/tds-table-body.cjs.entry.js +2 -2
  67. package/dist/cjs/tds-table-footer.cjs.entry.js +3 -3
  68. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  69. package/dist/cjs/tds-table-header.cjs.entry.js +2 -2
  70. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  71. package/dist/cjs/tds-text-field.cjs.entry.js +6 -6
  72. package/dist/cjs/tds-textarea.cjs.entry.js +3 -3
  73. package/dist/cjs/tds-toast.cjs.entry.js +3 -3
  74. package/dist/cjs/tds-toggle.cjs.entry.js +11 -2
  75. package/dist/cjs/tds-tooltip.cjs.entry.js +2 -2
  76. package/dist/cjs/tegel.cjs.js +1 -1
  77. package/dist/collection/components/badge/badge.js +24 -9
  78. package/dist/collection/components/banner/banner.js +21 -4
  79. package/dist/collection/components/block/block.js +27 -2
  80. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.css +9 -10
  81. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +2 -2
  82. package/dist/collection/components/breadcrumbs/breadcrumbs.js +30 -1
  83. package/dist/collection/components/button/button.css +3 -3
  84. package/dist/collection/components/button/button.js +28 -3
  85. package/dist/collection/components/card/card.js +5 -5
  86. package/dist/collection/components/checkbox/checkbox.js +2 -2
  87. package/dist/collection/components/chip/chip.js +8 -3
  88. package/dist/collection/components/datetime/datetime.css +20 -0
  89. package/dist/collection/components/datetime/datetime.js +22 -15
  90. package/dist/collection/components/divider/divider.js +1 -1
  91. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +41 -16
  92. package/dist/collection/components/dropdown/dropdown.js +280 -250
  93. package/dist/collection/components/footer/footer-group/footer-group.js +3 -3
  94. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  95. package/dist/collection/components/footer/footer.js +2 -2
  96. package/dist/collection/components/header/core-header-item/core-header-item.js +1 -1
  97. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +1 -1
  98. package/dist/collection/components/header/header-dropdown/header-dropdown.js +3 -3
  99. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +1 -1
  100. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +2 -2
  101. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +1 -1
  102. package/dist/collection/components/header/header-hamburger/header-hamburger.js +1 -1
  103. package/dist/collection/components/header/header-item/header-item.js +39 -2
  104. package/dist/collection/components/header/header-launcher/header-launcher.js +2 -2
  105. package/dist/collection/components/header/header-launcher-button/header-launcher-button.js +1 -1
  106. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +1 -1
  107. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +1 -1
  108. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +1 -1
  109. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +1 -1
  110. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +1 -1
  111. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +1 -1
  112. package/dist/collection/components/header/header-title/header-title.js +1 -1
  113. package/dist/collection/components/header/header.js +1 -1
  114. package/dist/collection/components/icon/icon.js +1 -1
  115. package/dist/collection/components/link/link.js +2 -2
  116. package/dist/collection/components/message/message.js +2 -2
  117. package/dist/collection/components/modal/modal.js +2 -2
  118. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  119. package/dist/collection/components/popover-core/popover-core.js +1 -1
  120. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  121. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  122. package/dist/collection/components/radio-button/radio-button.js +1 -1
  123. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  124. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  125. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  126. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  127. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  128. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  129. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  130. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  131. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  132. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  133. package/dist/collection/components/slider/slider.js +7 -7
  134. package/dist/collection/components/spinner/spinner.js +1 -1
  135. package/dist/collection/components/stepper/step/step.js +1 -1
  136. package/dist/collection/components/table/table-body/table-body.js +2 -2
  137. package/dist/collection/components/table/table-body-cell/table-body-cell.js +9 -6
  138. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  139. package/dist/collection/components/table/table-body-row/table-body-row.js +9 -6
  140. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  141. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  142. package/dist/collection/components/table/table-header/table-header.js +2 -2
  143. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  144. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  145. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  146. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +2 -2
  147. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +2 -2
  148. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +2 -2
  149. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +2 -2
  150. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +2 -2
  151. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +4 -4
  152. package/dist/collection/components/text-field/text-field.js +6 -6
  153. package/dist/collection/components/textarea/textarea.js +3 -3
  154. package/dist/collection/components/toast/toast.js +3 -3
  155. package/dist/collection/components/toggle/toggle.js +28 -2
  156. package/dist/collection/components/tooltip/tooltip.js +2 -2
  157. package/dist/collection/utils/axeHelpers.js +1 -1
  158. package/dist/collection/utils/convertToString.js +14 -0
  159. package/dist/components/{p-2ef329f1.js → p-0e6efec9.js} +2 -2
  160. package/dist/components/{p-4bdaf254.js → p-265c3467.js} +1 -1
  161. package/dist/components/{p-f0a50868.js → p-29d19dc8.js} +3 -3
  162. package/dist/components/{p-75437dea.js → p-34737ed9.js} +1 -1
  163. package/dist/components/{p-dd6ff1e2.js → p-3cd8af42.js} +223 -204
  164. package/dist/components/{p-d1ace0be.js → p-3e93886d.js} +1 -1
  165. package/dist/components/{p-3351035f.js → p-4764a1d5.js} +1 -1
  166. package/dist/components/{p-f1980746.js → p-4c1e3344.js} +4 -4
  167. package/dist/components/{p-9d7232d0.js → p-8c849aa2.js} +2 -2
  168. package/dist/components/{p-1e110ab8.js → p-98730c19.js} +39 -15
  169. package/dist/components/p-a1181b1f.js +16 -0
  170. package/dist/components/{p-ad77fb02.js → p-a2b7bdef.js} +1 -1
  171. package/dist/components/{p-eac79032.js → p-c65351ab.js} +2 -2
  172. package/dist/components/{p-3a7f88ff.js → p-d61bd22e.js} +40 -3
  173. package/dist/components/{p-707a562e.js → p-e49a0ceb.js} +1 -1
  174. package/dist/components/{p-8f8b0827.js → p-e8d2dbbf.js} +1 -1
  175. package/dist/components/tds-accordion-item.js +1 -1
  176. package/dist/components/tds-badge.js +7 -9
  177. package/dist/components/tds-banner.js +5 -5
  178. package/dist/components/tds-block.js +5 -2
  179. package/dist/components/tds-body-cell.js +9 -6
  180. package/dist/components/tds-breadcrumb.js +3 -3
  181. package/dist/components/tds-breadcrumbs.js +10 -2
  182. package/dist/components/tds-button.js +13 -4
  183. package/dist/components/tds-card.js +6 -6
  184. package/dist/components/tds-checkbox.js +1 -1
  185. package/dist/components/tds-chip.js +7 -2
  186. package/dist/components/tds-core-header-item.js +1 -1
  187. package/dist/components/tds-datetime.js +21 -14
  188. package/dist/components/tds-divider.js +1 -1
  189. package/dist/components/tds-dropdown-option.js +1 -1
  190. package/dist/components/tds-dropdown.js +1 -1
  191. package/dist/components/tds-folder-tab.js +2 -2
  192. package/dist/components/tds-folder-tabs.js +3 -3
  193. package/dist/components/tds-footer-group.js +4 -4
  194. package/dist/components/tds-footer-item.js +1 -1
  195. package/dist/components/tds-footer.js +2 -2
  196. package/dist/components/tds-header-brand-symbol.js +3 -3
  197. package/dist/components/tds-header-cell.js +2 -2
  198. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  199. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  200. package/dist/components/tds-header-dropdown-list.js +1 -1
  201. package/dist/components/tds-header-dropdown.js +8 -8
  202. package/dist/components/tds-header-hamburger.js +4 -4
  203. package/dist/components/tds-header-item.js +1 -1
  204. package/dist/components/tds-header-launcher-button.js +1 -1
  205. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  206. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  207. package/dist/components/tds-header-launcher-grid.js +1 -1
  208. package/dist/components/tds-header-launcher-list-item.js +2 -2
  209. package/dist/components/tds-header-launcher-list-title.js +1 -1
  210. package/dist/components/tds-header-launcher-list.js +2 -2
  211. package/dist/components/tds-header-launcher.js +8 -8
  212. package/dist/components/tds-header-title.js +1 -1
  213. package/dist/components/tds-header.js +1 -1
  214. package/dist/components/tds-icon.js +1 -1
  215. package/dist/components/tds-inline-tab.js +2 -2
  216. package/dist/components/tds-inline-tabs.js +3 -3
  217. package/dist/components/tds-link.js +2 -2
  218. package/dist/components/tds-message.js +3 -3
  219. package/dist/components/tds-modal.js +3 -3
  220. package/dist/components/tds-navigation-tab.js +2 -2
  221. package/dist/components/tds-navigation-tabs.js +5 -5
  222. package/dist/components/tds-popover-canvas.js +1 -1
  223. package/dist/components/tds-popover-core.js +1 -1
  224. package/dist/components/tds-popover-menu-item.js +2 -2
  225. package/dist/components/tds-popover-menu.js +3 -3
  226. package/dist/components/tds-radio-button.js +1 -1
  227. package/dist/components/tds-side-menu-close-button.js +2 -2
  228. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  229. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  230. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  231. package/dist/components/tds-side-menu-dropdown.js +5 -5
  232. package/dist/components/tds-side-menu-item.js +1 -1
  233. package/dist/components/tds-side-menu-overlay.js +1 -1
  234. package/dist/components/tds-side-menu-user-image.js +1 -1
  235. package/dist/components/tds-side-menu-user-label.js +1 -1
  236. package/dist/components/tds-side-menu-user.js +3 -3
  237. package/dist/components/tds-slider.js +8 -8
  238. package/dist/components/tds-spinner.js +1 -1
  239. package/dist/components/tds-step.js +2 -2
  240. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  241. package/dist/components/tds-table-body-row-expandable.js +7 -7
  242. package/dist/components/tds-table-body-row.js +10 -7
  243. package/dist/components/tds-table-body.js +2 -2
  244. package/dist/components/tds-table-footer.js +7 -7
  245. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  246. package/dist/components/tds-table-header.js +3 -3
  247. package/dist/components/tds-table-toolbar.js +3 -3
  248. package/dist/components/tds-text-field.js +7 -7
  249. package/dist/components/tds-textarea.js +4 -4
  250. package/dist/components/tds-toast.js +4 -4
  251. package/dist/components/tds-toggle.js +12 -2
  252. package/dist/components/tds-tooltip.js +3 -3
  253. package/dist/esm/loader.js +1 -1
  254. package/dist/esm/tds-badge.entry.js +5 -9
  255. package/dist/esm/tds-banner.entry.js +3 -4
  256. package/dist/esm/tds-block.entry.js +3 -1
  257. package/dist/esm/tds-body-cell.entry.js +9 -6
  258. package/dist/esm/tds-breadcrumb.entry.js +3 -3
  259. package/dist/esm/tds-breadcrumbs.entry.js +7 -1
  260. package/dist/esm/tds-button.entry.js +12 -4
  261. package/dist/esm/tds-card.entry.js +5 -5
  262. package/dist/esm/tds-checkbox.entry.js +2 -2
  263. package/dist/esm/tds-chip.entry.js +7 -2
  264. package/dist/esm/tds-core-header-item_2.entry.js +40 -3
  265. package/dist/esm/tds-datetime.entry.js +20 -13
  266. package/dist/esm/tds-divider.entry.js +1 -1
  267. package/dist/esm/tds-dropdown_2.entry.js +256 -208
  268. package/dist/esm/tds-folder-tab.entry.js +2 -2
  269. package/dist/esm/tds-folder-tabs.entry.js +2 -2
  270. package/dist/esm/tds-footer-group.entry.js +3 -3
  271. package/dist/esm/tds-footer-item.entry.js +1 -1
  272. package/dist/esm/tds-footer.entry.js +2 -2
  273. package/dist/esm/tds-header-brand-symbol.entry.js +1 -1
  274. package/dist/esm/tds-header-cell.entry.js +1 -1
  275. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  276. package/dist/esm/tds-header-dropdown-list-user.entry.js +1 -1
  277. package/dist/esm/tds-header-dropdown-list.entry.js +1 -1
  278. package/dist/esm/tds-header-dropdown.entry.js +3 -3
  279. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  280. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  281. package/dist/esm/tds-header-launcher-grid-item.entry.js +1 -1
  282. package/dist/esm/tds-header-launcher-grid-title.entry.js +1 -1
  283. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  284. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  285. package/dist/esm/tds-header-launcher-list-title.entry.js +1 -1
  286. package/dist/esm/tds-header-launcher-list.entry.js +1 -1
  287. package/dist/esm/tds-header-launcher.entry.js +2 -2
  288. package/dist/esm/tds-header-title.entry.js +1 -1
  289. package/dist/esm/tds-header.entry.js +1 -1
  290. package/dist/esm/tds-icon.entry.js +1 -1
  291. package/dist/esm/tds-inline-tab.entry.js +2 -2
  292. package/dist/esm/tds-inline-tabs.entry.js +2 -2
  293. package/dist/esm/tds-link.entry.js +2 -2
  294. package/dist/esm/tds-message.entry.js +2 -2
  295. package/dist/esm/tds-modal.entry.js +2 -2
  296. package/dist/esm/tds-navigation-tab.entry.js +2 -2
  297. package/dist/esm/tds-navigation-tabs.entry.js +4 -4
  298. package/dist/esm/tds-popover-canvas.entry.js +2 -2
  299. package/dist/esm/tds-popover-core.entry.js +1 -1
  300. package/dist/esm/tds-popover-menu-item.entry.js +2 -2
  301. package/dist/esm/tds-popover-menu.entry.js +2 -2
  302. package/dist/esm/tds-radio-button.entry.js +1 -1
  303. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  304. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -4
  305. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +2 -2
  306. package/dist/esm/tds-side-menu-dropdown-list.entry.js +2 -2
  307. package/dist/esm/tds-side-menu-dropdown.entry.js +3 -3
  308. package/dist/esm/tds-side-menu-item.entry.js +2 -2
  309. package/dist/esm/tds-side-menu-overlay.entry.js +1 -1
  310. package/dist/esm/tds-side-menu-user-image_2.entry.js +2 -2
  311. package/dist/esm/tds-side-menu-user.entry.js +1 -1
  312. package/dist/esm/tds-slider.entry.js +7 -7
  313. package/dist/esm/tds-spinner.entry.js +1 -1
  314. package/dist/esm/tds-step.entry.js +1 -1
  315. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  316. package/dist/esm/tds-table-body-row-expandable.entry.js +7 -7
  317. package/dist/esm/tds-table-body-row.entry.js +9 -6
  318. package/dist/esm/tds-table-body.entry.js +2 -2
  319. package/dist/esm/tds-table-footer.entry.js +3 -3
  320. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  321. package/dist/esm/tds-table-header.entry.js +2 -2
  322. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  323. package/dist/esm/tds-text-field.entry.js +6 -6
  324. package/dist/esm/tds-textarea.entry.js +3 -3
  325. package/dist/esm/tds-toast.entry.js +3 -3
  326. package/dist/esm/tds-toggle.entry.js +11 -2
  327. package/dist/esm/tds-tooltip.entry.js +2 -2
  328. package/dist/esm/tegel.js +1 -1
  329. package/dist/tegel/p-01edebef.entry.js +1 -0
  330. package/dist/tegel/{p-3e144a83.entry.js → p-035e58e6.entry.js} +1 -1
  331. package/dist/tegel/{p-170ab61b.entry.js → p-065d6f83.entry.js} +1 -1
  332. package/dist/tegel/p-0c1e632d.entry.js +1 -0
  333. package/dist/tegel/{p-72106a5c.entry.js → p-168122a7.entry.js} +1 -1
  334. package/dist/tegel/{p-6eeded00.entry.js → p-19eb4ae1.entry.js} +1 -1
  335. package/dist/tegel/p-1b390acb.entry.js +1 -0
  336. package/dist/tegel/{p-059a9499.entry.js → p-288a09ef.entry.js} +1 -1
  337. package/dist/tegel/{p-b2018a5b.entry.js → p-3204ae8f.entry.js} +1 -1
  338. package/dist/tegel/p-32be63ea.entry.js +1 -0
  339. package/dist/tegel/{p-cc2730d8.entry.js → p-34b793c9.entry.js} +1 -1
  340. package/dist/tegel/p-3c2f7033.entry.js +1 -0
  341. package/dist/tegel/p-46205cfb.entry.js +1 -0
  342. package/dist/tegel/p-4d5963d0.entry.js +1 -0
  343. package/dist/tegel/{p-68859ddc.entry.js → p-4e298888.entry.js} +1 -1
  344. package/dist/tegel/{p-9c3f2c12.entry.js → p-4e33cbda.entry.js} +1 -1
  345. package/dist/tegel/{p-b425b2f4.entry.js → p-4ee344e5.entry.js} +1 -1
  346. package/dist/tegel/p-4f5f152a.entry.js +1 -0
  347. package/dist/tegel/p-4fe6512b.entry.js +1 -0
  348. package/dist/tegel/p-5242a1f6.entry.js +1 -0
  349. package/dist/tegel/{p-038c22ff.entry.js → p-542d7b3e.entry.js} +1 -1
  350. package/dist/tegel/{p-5eaa23dc.entry.js → p-5a7110b8.entry.js} +1 -1
  351. package/dist/tegel/{p-93930c03.entry.js → p-5ba254ee.entry.js} +1 -1
  352. package/dist/tegel/{p-06968bd7.entry.js → p-60b38806.entry.js} +1 -1
  353. package/dist/tegel/{p-9016758e.entry.js → p-64c80f14.entry.js} +1 -1
  354. package/dist/tegel/{p-7929d22f.entry.js → p-654785d2.entry.js} +1 -1
  355. package/dist/tegel/p-6f17d37f.entry.js +1 -0
  356. package/dist/tegel/p-70795d6e.entry.js +1 -0
  357. package/dist/tegel/{p-4a282c25.entry.js → p-72fd0083.entry.js} +1 -1
  358. package/dist/tegel/{p-3d3ee51f.entry.js → p-74fc9c92.entry.js} +1 -1
  359. package/dist/tegel/p-77c79b91.entry.js +1 -0
  360. package/dist/tegel/{p-54154f09.entry.js → p-77d457b8.entry.js} +1 -1
  361. package/dist/tegel/{p-4b7c53a6.entry.js → p-78d5acd7.entry.js} +1 -1
  362. package/dist/tegel/{p-44c33b20.entry.js → p-7c4c65c9.entry.js} +1 -1
  363. package/dist/tegel/{p-3a32fe40.entry.js → p-848c2732.entry.js} +1 -1
  364. package/dist/tegel/p-868757d9.entry.js +1 -0
  365. package/dist/tegel/p-8c8b9908.entry.js +1 -0
  366. package/dist/tegel/{p-59293f88.entry.js → p-93a4bd11.entry.js} +1 -1
  367. package/dist/tegel/{p-2f32991e.entry.js → p-96635c10.entry.js} +1 -1
  368. package/dist/tegel/{p-c289dfb9.entry.js → p-a0fc0cc2.entry.js} +1 -1
  369. package/dist/tegel/p-a5e0f030.entry.js +1 -0
  370. package/dist/tegel/{p-96bdf035.entry.js → p-aa9d281b.entry.js} +1 -1
  371. package/dist/tegel/p-ae46766a.entry.js +1 -0
  372. package/dist/tegel/{p-86b30f71.entry.js → p-aef6b130.entry.js} +1 -1
  373. package/dist/tegel/{p-f67b4047.entry.js → p-b35e7208.entry.js} +1 -1
  374. package/dist/tegel/{p-a86fe122.entry.js → p-b39ffad4.entry.js} +1 -1
  375. package/dist/tegel/p-b5ced8e5.entry.js +1 -0
  376. package/dist/tegel/{p-fd3d56aa.entry.js → p-b6526302.entry.js} +1 -1
  377. package/dist/tegel/{p-e7300cca.entry.js → p-b686f1ad.entry.js} +1 -1
  378. package/dist/tegel/{p-b96cd80d.entry.js → p-b9576881.entry.js} +1 -1
  379. package/dist/tegel/p-b9f81e53.entry.js +1 -0
  380. package/dist/tegel/p-be1d1345.entry.js +1 -0
  381. package/dist/tegel/{p-708a8bab.entry.js → p-bee533b5.entry.js} +1 -1
  382. package/dist/tegel/{p-99da056d.entry.js → p-c56be8d1.entry.js} +1 -1
  383. package/dist/tegel/{p-2a38b053.entry.js → p-c8404432.entry.js} +1 -1
  384. package/dist/tegel/{p-24ff5903.entry.js → p-ca93de01.entry.js} +1 -1
  385. package/dist/tegel/p-cc6c06e3.entry.js +1 -0
  386. package/dist/tegel/{p-b19ce79c.entry.js → p-cca85da0.entry.js} +1 -1
  387. package/dist/tegel/p-cde32bc6.entry.js +1 -0
  388. package/dist/tegel/p-d0abf078.entry.js +1 -0
  389. package/dist/tegel/{p-6d022f47.entry.js → p-d267665e.entry.js} +1 -1
  390. package/dist/tegel/{p-e9ac7a1a.entry.js → p-d33cb2d1.entry.js} +1 -1
  391. package/dist/tegel/{p-5fea857b.entry.js → p-d47c744f.entry.js} +1 -1
  392. package/dist/tegel/p-d65dfe04.entry.js +1 -0
  393. package/dist/tegel/{p-2a96bd05.entry.js → p-d853f8c2.entry.js} +1 -1
  394. package/dist/tegel/p-d9511720.entry.js +1 -0
  395. package/dist/tegel/{p-0b773208.entry.js → p-dcbc35af.entry.js} +1 -1
  396. package/dist/tegel/{p-fd432c54.entry.js → p-dfbbaefd.entry.js} +1 -1
  397. package/dist/tegel/{p-88204e0a.entry.js → p-ea3e071f.entry.js} +1 -1
  398. package/dist/tegel/{p-2795009a.entry.js → p-ed17283a.entry.js} +1 -1
  399. package/dist/tegel/{p-e478953c.entry.js → p-ee7f07ae.entry.js} +1 -1
  400. package/dist/tegel/{p-b9b63210.entry.js → p-f1b0211a.entry.js} +1 -1
  401. package/dist/tegel/p-f43278f0.entry.js +1 -0
  402. package/dist/tegel/{p-a392e6e7.entry.js → p-fa07db58.entry.js} +1 -1
  403. package/dist/tegel/tegel.esm.js +1 -1
  404. package/dist/types/components/badge/badge.d.ts +3 -0
  405. package/dist/types/components/banner/banner.d.ts +4 -0
  406. package/dist/types/components/block/block.d.ts +8 -1
  407. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  408. package/dist/types/components/button/button.d.ts +3 -0
  409. package/dist/types/components/datetime/datetime.d.ts +2 -2
  410. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +6 -2
  411. package/dist/types/components/dropdown/dropdown.d.ts +27 -24
  412. package/dist/types/components/header/header-item/header-item.d.ts +7 -0
  413. package/dist/types/components/toggle/toggle.d.ts +5 -0
  414. package/dist/types/components.d.ts +104 -23
  415. package/dist/types/utils/convertToString.d.ts +7 -0
  416. package/package.json +1 -1
  417. package/dist/tegel/p-0939b9fb.entry.js +0 -1
  418. package/dist/tegel/p-0cb6c898.entry.js +0 -1
  419. package/dist/tegel/p-1703f73a.entry.js +0 -1
  420. package/dist/tegel/p-32b7f431.entry.js +0 -1
  421. package/dist/tegel/p-39373227.entry.js +0 -1
  422. package/dist/tegel/p-3c22aef7.entry.js +0 -1
  423. package/dist/tegel/p-3e1b1399.entry.js +0 -1
  424. package/dist/tegel/p-48bbc11f.entry.js +0 -1
  425. package/dist/tegel/p-4b231bf9.entry.js +0 -1
  426. package/dist/tegel/p-4c2f313d.entry.js +0 -1
  427. package/dist/tegel/p-69b38504.entry.js +0 -1
  428. package/dist/tegel/p-7090a95c.entry.js +0 -1
  429. package/dist/tegel/p-85a9032e.entry.js +0 -1
  430. package/dist/tegel/p-92f81cda.entry.js +0 -1
  431. package/dist/tegel/p-9eaaa2c0.entry.js +0 -1
  432. package/dist/tegel/p-a38dda58.entry.js +0 -1
  433. package/dist/tegel/p-b647d20e.entry.js +0 -1
  434. package/dist/tegel/p-be88c5ab.entry.js +0 -1
  435. package/dist/tegel/p-d7f48112.entry.js +0 -1
  436. package/dist/tegel/p-d926d075.entry.js +0 -1
  437. package/dist/tegel/p-ddd33cce.entry.js +0 -1
  438. package/dist/tegel/p-ea4a9a4f.entry.js +0 -1
  439. package/dist/tegel/p-ee0e04ed.entry.js +0 -1
  440. package/dist/tegel/p-f050aad8.entry.js +0 -1
  441. package/dist/tegel/p-f4db0231.entry.js +0 -1
  442. package/dist/tegel/p-ffd827ef.entry.js +0 -1
@@ -62,6 +62,21 @@ const appendHiddenInput = (element, name, value, disabled, additionalAttributes)
62
62
  input.value = value || '';
63
63
  };
64
64
 
65
+ /**
66
+ * Converts a value (string or number) to string
67
+ * @param value - The value to convert
68
+ * @returns The string representation of the value, or empty string if null/undefined
69
+ */
70
+ const convertToString = (value) => {
71
+ if (value === null || value === undefined)
72
+ return '';
73
+ return value.toString();
74
+ };
75
+ // Optional: If we need array conversion often
76
+ const convertArrayToStrings = (values) => {
77
+ return values.map((value) => convertToString(value));
78
+ };
79
+
65
80
  const dropdownCss = "@charset \"UTF-8\";:host button{all:unset;height:100%;width:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);border-radius:var(--tds-dropdown-border-radius)}:host button:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host button .value-wrapper{padding:0 16px;display:flex;align-items:center;justify-content:space-between}:host button.placeholder{color:var(--tds-dropdown-placeholder-color);line-height:1.3}:host button.value{color:var(--tds-dropdown-value-color);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);line-height:1.3}:host button:focus{border-bottom-color:var(--tds-dropdown-border-bottom-open)}:host button:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--tds-dropdown-border-bottom-open)}:host button.error{border-bottom:1px solid var(--tds-negative)}:host button.error:focus{border-bottom-color:transparent}:host button.error:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host button:disabled{color:var(--tds-dropdown-disabled-color);border-bottom:1px solid transparent}:host button .menu-icon{margin-right:0}:host .filter{display:flex;align-items:center;justify-content:space-between;height:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);padding-left:16px;border-radius:4px 4px 0 0}:host .filter:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host .filter.disabled{color:var(--tds-dropdown-disabled-color);border-bottom:1px solid transparent}:host .filter .value-wrapper{display:flex;width:100%;height:100%}:host .filter .value-wrapper input{color:var(--tds-dropdown-filter-input-color)}:host .filter .label-inside-as-placeholder{position:absolute;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);line-height:1.3;color:var(--tds-dropdown-placeholder-color)}:host .filter .label-inside-as-placeholder.lg{top:20px}:host .filter .label-inside-as-placeholder.md{top:16px}:host .filter .label-inside-as-placeholder.sm{display:none}:host .filter .label-inside-as-placeholder.selected{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .filter .label-inside-as-placeholder.selected.lg{top:12px}:host .filter .label-inside-as-placeholder.selected.md{top:8px}:host .filter .label-inside-as-placeholder.selected.sm{display:none}:host .filter .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .filter.focus{border-bottom-color:transparent}:host .filter.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-dropdown-border-bottom-open)}:host .filter.error{border-bottom:1px solid var(--tds-negative)}:host .filter.error.focus{border-bottom-color:transparent}:host .filter.error.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host .filter input{flex:1;all:unset;width:100%}:host .filter input::placeholder{color:var(--tds-dropdown-placeholder-color)}:host .filter input:disabled::placeholder{color:var(--tds-dropdown-disabled-color)}:host .filter tds-icon{cursor:pointer}:host .filter .menu-icon{margin-right:16px}:host .filter .clear-icon{margin:0 8px;color:var(--tds-dropdown-clear-icon-color);padding-right:8px;border-right:1px solid var(--tds-dropdown-clear-icon-color)}:host .filter .clear-icon:hover{color:var(--tds-dropdown-clear-icon-hover-color)}:host .filter .clear-icon.hide{display:none;visibility:hidden}:host{--tds-scrollbar-width-standard:thin;--tds-scrollbar-width:10px;--tds-scrollbar-height:10px;--tds-scrollbar-thumb-border-width:3px;--tds-scrollbar-thumb-border-hover-width:2px}body{scrollbar-width:thin}:host{display:block;position:relative;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls)}:host .label-outside{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);color:var(--tds-dropdown-label-color);margin-bottom:8px}:host .label-outside.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select{position:relative}:host .dropdown-select button{transition:border-bottom-color var(--tds-motion-duration-fast-02) var(--tds-motion-easing-scania)}:host .dropdown-select button:focus{border-bottom-color:var(--tds-dropdown-border-bottom)}:host .dropdown-select button:hover{border-bottom-color:var(--tds-dropdown-border-bottom-hover)}:host .dropdown-select button{border-bottom-color:var(--tds-dropdown-border-bottom)}:host .dropdown-select button.error{border-bottom-color:var(--tds-negative)}:host .dropdown-select button.error:focus{border-bottom-color:transparent}:host .dropdown-select.disabled .label-inside,:host .dropdown-select.disabled .placeholder,:host .dropdown-select.disabled .label-inside-as-placeholder,:host .dropdown-select.disabled .value-wrapper{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select.disabled button{border:none}:host .dropdown-select .label-inside{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);color:var(--tds-dropdown-label-inside-color)}:host .dropdown-select .label-inside.lg{top:12px;left:16px}:host .dropdown-select .label-inside.md{top:8px;left:16px}:host .dropdown-select .label-inside.sm{display:none}:host .dropdown-select .label-inside.xs{display:none}:host .dropdown-select .label-inside+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select .placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--tds-placeholder-margin);}:host .dropdown-select .placeholder.xs{line-height:1}:host .dropdown-select .label-inside-as-placeholder{color:var(--tds-dropdown-placeholder-color)}:host .dropdown-select .label-inside-as-placeholder.selected{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .dropdown-select .label-inside-as-placeholder.selected.lg{top:12px}:host .dropdown-select .label-inside-as-placeholder.selected.md{top:8px}:host .dropdown-select .label-inside-as-placeholder.selected.sm{display:none}:host .dropdown-select .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select.lg{height:55px}:host .dropdown-select.md{height:47px}:host .dropdown-select.sm{height:39px}:host .dropdown-select.xs{height:29px}:host .helper{margin-top:4px;color:var(--tds-dropdown-helper-color);font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:flex;align-items:center;gap:8px}:host .helper.error{color:var(--tds-negative)}:host .helper.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-list{z-index:100;position:absolute;margin-top:1px;width:100%;transform-origin:top;box-shadow:rgba(0, 0, 0, 0.1) 0 2px 3px 0;border-radius:var(--tds-dropdown-list-border-radius-down);overflow-y:auto;transform:scaleY(0);pointer-events:none}:host .dropdown-list:hover::-webkit-scrollbar-thumb{border:var(--tds-scrollbar-thumb-border-hover-width) solid transparent;background:var(--tds-scrollbar-hover-thumb-color);background-clip:padding-box}:host .dropdown-list::-webkit-scrollbar{width:var(--tds-scrollbar-width)}:host .dropdown-list::-webkit-scrollbar-track{background:var(--tds-scrollbar-track-color)}:host .dropdown-list::-webkit-scrollbar-thumb{border-radius:40px;background:var(--tds-scrollbar-thumb-color);border:var(--tds-scrollbar-thumb-border-width) solid transparent;background-clip:padding-box}:host .dropdown-list::-webkit-scrollbar-button{height:0;width:0}@supports not selector(::-webkit-scrollbar){:host .dropdown-list{scrollbar-color:var(--tds-scrollbar-thumb-color) var(--tds-scrollbar-track-color);scrollbar-width:var(--tds-scrollbar-width-standard)}}:host .dropdown-list.lg{max-height:312px}:host .dropdown-list.md{max-height:312px}:host .dropdown-list.sm{max-height:260px}:host .dropdown-list.xs{max-height:260px}:host .dropdown-list.up{bottom:100%;margin-top:0;margin-bottom:1px;transform-origin:bottom;display:flex;flex-direction:column-reverse;box-shadow:rgba(0, 0, 0, 0.1) 0 -1px 3px 0;border-radius:var(--tds-dropdown-list-border-radius-up)}:host .dropdown-list.up.label-outside{bottom:calc(100% - 24px)}:host .dropdown-list.closed{transform:scaleY(0);pointer-events:none}:host .dropdown-list.open{transform:scaleY(1);visibility:visible;opacity:1;pointer-events:auto}:host .dropdown-list.animation-enter-slide{transition:transform var(--tds-motion-duration-moderate-01) var(--tds-motion-easing-enter)}:host .dropdown-list.animation-exit-slide{transition:transform var(--tds-motion-duration-moderate-01) var(--tds-motion-easing-exit)}:host .dropdown-list .no-result{font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);display:flex;align-items:center;padding:0 16px;background-color:var(--tds-dropdown-bg)}:host .dropdown-list .no-result.lg{height:56px}:host .dropdown-list .no-result.md{height:48px}:host .dropdown-list .no-result.sm{height:40px}:host .dropdown-list .no-result.xs{height:40px}:host .menu-icon{color:var(--tds-dropdown-menu-icon-color)}:host tds-icon{transition:transform var(--tds-motion-duration-fast-02) var(--tds-motion-easing-scania)}:host tds-icon.open{transform:rotateZ(180deg)}";
66
81
  const TdsDropdownStyle0 = dropdownCss;
67
82
 
@@ -73,41 +88,50 @@ const TdsDropdown = class {
73
88
  this.tdsBlur = index.createEvent(this, "tdsBlur", 6);
74
89
  this.tdsInput = index.createEvent(this, "tdsInput", 6);
75
90
  this.setDefaultOption = () => {
76
- if (this.defaultValue) {
77
- const children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
78
- if (children.length === 0) {
79
- console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
80
- return;
81
- }
91
+ if (this.internalDefaultValue) {
92
+ // Convert the internal default value to an array if it's not already
82
93
  const defaultValues = this.multiselect
83
- ? new Set(this.defaultValue.split(','))
84
- : [this.defaultValue];
85
- const childrenMap = new Map(children.map((element) => [element.value, element]));
86
- const matchedValues = Array.from(defaultValues).filter((value) => {
87
- const element = childrenMap.get(value);
88
- if (element) {
89
- element.setSelected(true);
90
- return true;
91
- }
92
- return false;
93
- });
94
- if (matchedValues.length > 0) {
95
- this.value = [...new Set(this.value ? [...this.value, ...matchedValues] : matchedValues)];
96
- this.setValueAttribute();
97
- }
98
- else {
99
- console.warn(`TDS DROPDOWN: No matching option found for defaultValue "${this.defaultValue}"`);
100
- }
94
+ ? this.internalDefaultValue.split(',')
95
+ : [this.internalDefaultValue];
96
+ this.updateDropdownState(defaultValues);
101
97
  }
102
98
  };
103
- /* Returns a list of all children that are tds-dropdown-option elements */
104
99
  this.getChildren = () => {
105
100
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
106
101
  if (tdsDropdownOptions.length === 0) {
107
- console.warn('TDS DROPDOWN: Data missing. Disregard if loading data asynchronously.');
102
+ console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
103
+ }
104
+ return tdsDropdownOptions;
105
+ };
106
+ this.getSelectedChildren = () => {
107
+ if (this.selectedOptions.length === 0)
108
+ return [];
109
+ return this.selectedOptions
110
+ .map((stringValue) => {
111
+ var _a;
112
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
113
+ return matchingElement;
114
+ })
115
+ .filter(Boolean);
116
+ };
117
+ this.getSelectedChildrenLabels = () => {
118
+ var _a;
119
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
120
+ };
121
+ this.getValue = () => {
122
+ const labels = this.getSelectedChildrenLabels();
123
+ if (!labels) {
124
+ return '';
125
+ }
126
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
127
+ };
128
+ this.setValueAttribute = () => {
129
+ if (this.selectedOptions.length === 0) {
130
+ this.host.removeAttribute('value');
131
+ }
132
+ else {
133
+ this.host.setAttribute('value', this.selectedOptions.join(','));
108
134
  }
109
- else
110
- return tdsDropdownOptions;
111
135
  };
112
136
  this.getOpenDirection = () => {
113
137
  var _a, _b, _c, _d, _e;
@@ -122,7 +146,6 @@ const TdsDropdown = class {
122
146
  }
123
147
  return this.openDirection;
124
148
  };
125
- /* Toggles the open state of the Dropdown and sets focus to the input element */
126
149
  this.handleToggleOpen = () => {
127
150
  if (!this.disabled) {
128
151
  this.open = !this.open;
@@ -131,38 +154,10 @@ const TdsDropdown = class {
131
154
  }
132
155
  }
133
156
  };
134
- /* Focuses the input element in the Dropdown, if the reference is present. */
135
157
  this.focusInputElement = () => {
136
158
  if (this.inputElement)
137
159
  this.inputElement.focus();
138
160
  };
139
- this.getSelectedChildren = () => {
140
- var _a;
141
- return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((stringValue) => {
142
- const matchingElement = this.getChildren().find((element) => element.value === stringValue);
143
- return matchingElement;
144
- }).filter(Boolean);
145
- };
146
- this.getSelectedChildrenLabels = () => {
147
- var _a;
148
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
149
- };
150
- this.getValue = () => {
151
- const labels = this.getSelectedChildrenLabels();
152
- if (!labels) {
153
- return '';
154
- }
155
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
156
- };
157
- this.setValueAttribute = () => {
158
- var _a;
159
- if (!this.value || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) === '') {
160
- this.host.removeAttribute('value');
161
- }
162
- else {
163
- this.host.setAttribute('value', this.value.map((val) => val).toString());
164
- }
165
- };
166
161
  this.handleFilter = (event) => {
167
162
  this.tdsInput.emit(event);
168
163
  const query = event.target.value.toLowerCase();
@@ -193,8 +188,10 @@ const TdsDropdown = class {
193
188
  this.handleFilterReset = () => {
194
189
  this.reset();
195
190
  this.inputElement.value = '';
196
- this.handleFilter({ target: { value: this.inputElement.value } });
191
+ this.handleFilter({ target: { value: '' } });
197
192
  this.inputElement.focus();
193
+ // Add this line to ensure internal value is cleared
194
+ this.internalValue = '';
198
195
  };
199
196
  this.handleFocus = (event) => {
200
197
  this.open = true;
@@ -208,13 +205,6 @@ const TdsDropdown = class {
208
205
  this.handleBlur = (event) => {
209
206
  this.tdsBlur.emit(event);
210
207
  };
211
- this.handleChange = () => {
212
- var _a, _b;
213
- this.tdsChange.emit({
214
- name: this.name,
215
- value: (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString()) !== null && _b !== void 0 ? _b : null,
216
- });
217
- };
218
208
  this.resetInput = () => {
219
209
  const inputEl = this.host.querySelector('input');
220
210
  if (inputEl) {
@@ -237,16 +227,128 @@ const TdsDropdown = class {
237
227
  this.normalizeText = true;
238
228
  this.noResultText = 'No result';
239
229
  this.defaultValue = undefined;
230
+ this.value = null;
240
231
  this.open = false;
241
- this.value = undefined;
232
+ this.internalValue = undefined;
242
233
  this.filterResult = undefined;
243
234
  this.filterFocus = undefined;
235
+ this.internalDefaultValue = undefined;
236
+ this.selectedOptions = [];
237
+ }
238
+ handleValueChange(newValue) {
239
+ console.log('Value changed:', newValue); // Debug
240
+ // Normalize to array
241
+ const normalizedValue = this.normalizeValue(newValue);
242
+ console.log('Normalized value:', normalizedValue); // Debug
243
+ // Only update if actually changed
244
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
245
+ console.log('Value has changed, updating state'); // Debug
246
+ this.updateDropdownState(normalizedValue);
247
+ }
248
+ }
249
+ normalizeValue(value) {
250
+ if (!value || value === '')
251
+ return [];
252
+ // For single select, ensure we handle both string and array inputs
253
+ if (!this.multiselect) {
254
+ // If array is passed to single select, take first value
255
+ if (Array.isArray(value)) {
256
+ return [convertToString(value[0])];
257
+ }
258
+ return [convertToString(value)];
259
+ }
260
+ // For multiselect
261
+ if (Array.isArray(value)) {
262
+ return convertArrayToStrings(value);
263
+ }
264
+ // Handle comma-separated string for multiselect
265
+ return value
266
+ .toString()
267
+ .split(',')
268
+ .filter((v) => v !== '');
269
+ }
270
+ hasValueChanged(newValue, currentValue) {
271
+ if (newValue.length !== currentValue.length)
272
+ return true;
273
+ return newValue.some((val) => !currentValue.includes(val));
274
+ }
275
+ updateDropdownState(values) {
276
+ console.log('Updating dropdown state with values:', values); // Debug
277
+ // Validate the values first
278
+ const validValues = this.validateValues(values);
279
+ console.log('Valid values:', validValues); // Debug
280
+ // Update internal state
281
+ this.selectedOptions = [...validValues];
282
+ // Update the value prop
283
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
284
+ // Update internal value for display
285
+ this.internalValue = this.getValue();
286
+ // Update DOM
287
+ this.updateOptionElements();
288
+ // Update display value
289
+ this.updateDisplayValue();
290
+ // Emit change event
291
+ this.emitChange();
292
+ // Update value attribute
293
+ this.setValueAttribute();
294
+ }
295
+ validateValues(values) {
296
+ // Make sure we have children before validation
297
+ const children = this.getChildren();
298
+ if (!children || children.length === 0) {
299
+ console.warn('No dropdown options found'); // Debug
300
+ return values; // Return original values if no children yet
301
+ }
302
+ return values.filter((val) => {
303
+ const isValid = children.some((element) => convertToString(element.value) === convertToString(val));
304
+ if (!isValid) {
305
+ console.warn(`Option with value "${val}" does not exist`);
306
+ }
307
+ return isValid;
308
+ });
309
+ }
310
+ updateOptionElements() {
311
+ var _a;
312
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
313
+ // Convert element.value to string for comparison
314
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
315
+ });
316
+ }
317
+ updateDisplayValue() {
318
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
319
+ if (this.filter && this.inputElement) {
320
+ this.inputElement.value = this.internalValue;
321
+ }
322
+ }
323
+ emitChange() {
324
+ const value = this.multiselect
325
+ ? this.selectedOptions.join(',')
326
+ : this.selectedOptions[0] || null;
327
+ this.tdsChange.emit({
328
+ name: this.name,
329
+ value: value !== null && value !== void 0 ? value : null,
330
+ });
331
+ }
332
+ async setValue(value) {
333
+ let normalizedValue;
334
+ if (Array.isArray(value)) {
335
+ normalizedValue = convertArrayToStrings(value);
336
+ }
337
+ else {
338
+ normalizedValue = [convertToString(value)];
339
+ }
340
+ this.updateDropdownState(normalizedValue);
341
+ return this.getSelectedChildren().map((element) => ({
342
+ value: element.value,
343
+ label: element.textContent.trim(),
344
+ }));
244
345
  }
245
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
246
346
  async reset() {
247
- this.dropdownList.scrollTop = 0;
248
- this.internalReset();
249
- this.handleChange();
347
+ this.updateDropdownState([]);
348
+ }
349
+ async removeValue(oldValue) {
350
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
351
+ this.updateDropdownState(newValues);
250
352
  }
251
353
  /** Method that forces focus on the input element. */
252
354
  async focusElement() {
@@ -267,79 +369,6 @@ const TdsDropdown = class {
267
369
  * dropdown.setValue(['option-1', 'option-2']);
268
370
  * </code>
269
371
  */
270
- // The label is optional here ONLY to not break the API. Should be removed for 2.0.
271
- // @ts-ignore
272
- // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
273
- async setValue(value, label) {
274
- let nextValue;
275
- if (typeof value === 'string')
276
- nextValue = [value];
277
- else
278
- nextValue = value;
279
- if (!this.multiselect && nextValue.length > 1) {
280
- console.warn('Tried to select multiple items, but multiselect is not enabled.');
281
- nextValue = [nextValue[0]];
282
- }
283
- nextValue = [...new Set(nextValue)];
284
- this.internalReset();
285
- for (let i = 0; i < nextValue.length; i++) {
286
- const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
287
- if (!optionExist) {
288
- nextValue.splice(i, 1);
289
- }
290
- }
291
- this.value = nextValue;
292
- this.setValueAttribute();
293
- this.selectChildrenAsSelectedBasedOnSelectionProp();
294
- this.handleChange();
295
- /* 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. */
296
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
297
- const selection = this.getSelectedChildren().map((element) => ({
298
- value: element.value,
299
- label: element.textContent.trim(),
300
- }));
301
- // Update inputElement value and placeholder text
302
- if (this.filter) {
303
- this.inputElement.value = this.getValue();
304
- }
305
- return selection;
306
- }
307
- /**
308
- * @internal
309
- */
310
- async appendValue(value) {
311
- if (this.multiselect && this.value) {
312
- this.setValue([...this.value, value]);
313
- }
314
- else {
315
- this.setValue(value);
316
- }
317
- }
318
- /** Method for removing a selected value in the Dropdown. */
319
- async removeValue(oldValue) {
320
- var _a, _b;
321
- let label;
322
- if (this.multiselect) {
323
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
324
- var _a;
325
- if (element.value === oldValue) {
326
- this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
327
- label = element.textContent.trim();
328
- element.setSelected(false);
329
- }
330
- return element;
331
- });
332
- }
333
- else {
334
- this.reset();
335
- }
336
- this.handleChange();
337
- this.setValueAttribute();
338
- /* 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. */
339
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
340
- return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
341
- }
342
- /** Method for closing the Dropdown. */
343
372
  async close() {
344
373
  this.open = false;
345
374
  }
@@ -386,12 +415,33 @@ const TdsDropdown = class {
386
415
  handleOpenState() {
387
416
  if (this.filter && this.multiselect) {
388
417
  if (!this.open) {
389
- this.inputElement.value = this.getValue();
418
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
390
419
  }
391
420
  }
392
421
  }
422
+ handleDefaultValueChange(newValue) {
423
+ if (newValue !== undefined && newValue !== null) {
424
+ this.internalDefaultValue = convertToString(newValue);
425
+ this.setDefaultOption();
426
+ }
427
+ }
393
428
  componentWillLoad() {
394
- this.setDefaultOption();
429
+ // First handle the value prop if it exists
430
+ if (this.value !== null && this.value !== undefined) {
431
+ console.log('Initial value:', this.value); // Debug
432
+ const normalizedValue = this.normalizeValue(this.value);
433
+ console.log('Normalized value:', normalizedValue); // Debug
434
+ this.updateDropdownState(normalizedValue);
435
+ return; // Exit early if we handled the value prop
436
+ }
437
+ // Only use defaultValue if no value prop was provided
438
+ if (this.defaultValue !== null && this.defaultValue !== undefined) {
439
+ const defaultValueStr = convertToString(this.defaultValue);
440
+ const initialValue = this.multiselect
441
+ ? defaultValueStr.split(',').map(convertToString)
442
+ : [convertToString(this.defaultValue)];
443
+ this.updateDropdownState(initialValue);
444
+ }
395
445
  }
396
446
  /** Method to handle slot changes */
397
447
  handleSlotChange() {
@@ -401,29 +451,16 @@ const TdsDropdown = class {
401
451
  normalizeString(text) {
402
452
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
403
453
  }
404
- /** Method that resets the dropdown without emitting an event. */
405
- internalReset() {
406
- this.getChildren().forEach((element) => {
407
- element.setSelected(false);
408
- return element;
409
- });
410
- this.value = null;
411
- this.setValueAttribute();
412
- }
413
- selectChildrenAsSelectedBasedOnSelectionProp() {
414
- this.getChildren().forEach((element) => {
415
- this.value.forEach((selection) => {
416
- if (element.value !== selection) {
417
- // If not multiselect, we need to unselect all other options.
418
- if (!this.multiselect) {
419
- element.setSelected(false);
420
- }
421
- }
422
- else {
423
- element.setSelected(true);
424
- }
425
- });
426
- });
454
+ /**
455
+ * @internal
456
+ */
457
+ async appendValue(value) {
458
+ if (this.multiselect) {
459
+ this.updateDropdownState([...this.selectedOptions, value]);
460
+ }
461
+ else {
462
+ this.updateDropdownState([value]);
463
+ }
427
464
  }
428
465
  componentDidRender() {
429
466
  const form = this.host.closest('form');
@@ -438,11 +475,10 @@ const TdsDropdown = class {
438
475
  }
439
476
  }
440
477
  render() {
441
- var _a, _b, _c, _d;
442
- appendHiddenInput(this.host, this.name, (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString(), this.disabled);
443
- return (index.h(index.Host, { key: '3b547dda7bede0ae8e020d976d08ed9d8bf50356', role: "select", class: {
478
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
479
+ return (index.h(index.Host, { key: 'a6be6e0f01f203fd2d5777f9026a5b7ed5afc313', role: "select", class: {
444
480
  [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
445
- } }, this.label && this.labelPosition === 'outside' && (index.h("div", { key: 'ca3c45bce793171f4af249b4c007d4279599f2b4', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), index.h("div", { key: 'fb12d8b69a4430977b3269f44f9b5e5600965cc1', class: {
481
+ } }, this.label && this.labelPosition === 'outside' && (index.h("div", { key: 'bf629a4d977f27f31cd056f126295d7f3bf00dd7', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), index.h("div", { key: '98ea1eee12a76341af8f2cc81846c93e99f2eae8', class: {
446
482
  'dropdown-select': true,
447
483
  [this.size]: true,
448
484
  'disabled': this.disabled,
@@ -454,7 +490,7 @@ const TdsDropdown = class {
454
490
  } }, index.h("div", { class: "value-wrapper" }, this.label && this.labelPosition === 'inside' && this.placeholder && (index.h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (index.h("div", { class: `
455
491
  label-inside-as-placeholder
456
492
  ${this.size}
457
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
493
+ ${this.selectedOptions.length ? 'selected' : ''}
458
494
  ` }, this.label)), index.h("input", {
459
495
  // eslint-disable-next-line no-return-assign
460
496
  ref: (inputEl) => (this.inputElement = inputEl), class: {
@@ -465,15 +501,7 @@ const TdsDropdown = class {
465
501
  this.inputElement.value = this.getValue();
466
502
  }
467
503
  this.handleBlur(event);
468
- }, onFocus: (event) => {
469
- this.open = true;
470
- this.filterFocus = true;
471
- if (this.multiselect) {
472
- this.inputElement.value = '';
473
- }
474
- this.handleFocus(event);
475
- this.handleFilter({ target: { value: '' } });
476
- }, onKeyDown: (event) => {
504
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
477
505
  if (event.key === 'Escape') {
478
506
  this.open = false;
479
507
  }
@@ -493,17 +521,15 @@ const TdsDropdown = class {
493
521
  if (event.key === 'Escape') {
494
522
  this.open = false;
495
523
  }
496
- }, class: {
497
- value: Boolean(this.value),
498
- placeholder: Boolean(!this.value),
499
- open: this.open,
500
- closed: !this.open,
501
- error: this.error,
502
- }, disabled: this.disabled }, index.h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (index.h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (index.h("div", { class: {
503
- 'label-inside-as-placeholder': true,
504
- [this.size]: true,
505
- 'selected': Boolean((_c = this.value) === null || _c === void 0 ? void 0 : _c.length),
506
- } }, this.label)), index.h("div", { class: `placeholder ${this.size}` }, ((_d = this.value) === null || _d === void 0 ? void 0 : _d.length) ? this.getValue() : this.placeholder), index.h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), index.h("div", { key: 'b734958a92e331bc6fcd07a0cf716219cec235c1', ref: (element) => {
524
+ }, class: `
525
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
526
+ ${this.open ? 'open' : 'closed'}
527
+ ${this.error ? 'error' : ''}
528
+ `, disabled: this.disabled }, index.h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (index.h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (index.h("div", { class: `
529
+ label-inside-as-placeholder
530
+ ${this.size}
531
+ ${this.selectedOptions.length ? 'selected' : ''}
532
+ ` }, this.label)), index.h("div", { class: `placeholder ${this.size}` }, this.selectedOptions.length ? this.getValue() : this.placeholder), index.h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), index.h("div", { key: 'ca3b744399468b3d74e1982b1cb648222e601646', ref: (element) => {
507
533
  this.dropdownList = element;
508
534
  }, class: {
509
535
  'dropdown-list': true,
@@ -514,15 +540,17 @@ const TdsDropdown = class {
514
540
  'closed': !this.open,
515
541
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
516
542
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
517
- } }, index.h("slot", { key: '85d5f7599b21df148a34416fb271c894ff6a2e3e', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (index.h("div", { key: '5009c99ade06605dd2605e28f59b82e78e3f3bec', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (index.h("div", { key: '88d55d60aac26a3c5af04bfa74b6649d5d893fce', class: {
543
+ } }, index.h("slot", { key: '97fac699a505a4ce347ee5665aa251a5562d9c97', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (index.h("div", { key: 'a549305b88f3de4a2dfd8050ea2652b459ecca7d', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (index.h("div", { key: '3d336b6588a9b9f29f9ac3a92d4c0f81fc65a9d5', class: {
518
544
  helper: true,
519
545
  error: this.error,
520
546
  disabled: this.disabled,
521
- } }, this.error && index.h("tds-icon", { key: '1f6f2b7272f35501bf684816b4bc1cd746910fe9', name: "error", size: "16px" }), this.helper))));
547
+ } }, this.error && index.h("tds-icon", { key: 'fe85fe0e24269416805a570074a65c34224a6fc9', name: "error", size: "16px" }), this.helper))));
522
548
  }
523
549
  get host() { return index.getElement(this); }
524
550
  static get watchers() { return {
525
- "open": ["handleOpenState"]
551
+ "value": ["handleValueChange"],
552
+ "open": ["handleOpenState"],
553
+ "defaultValue": ["handleDefaultValueChange"]
526
554
  }; }
527
555
  };
528
556
  TdsDropdown.style = TdsDropdownStyle0;
@@ -536,22 +564,32 @@ const TdsDropdownOption = class {
536
564
  this.tdsSelect = index.createEvent(this, "tdsSelect", 6);
537
565
  this.tdsFocus = index.createEvent(this, "tdsFocus", 6);
538
566
  this.tdsBlur = index.createEvent(this, "tdsBlur", 6);
567
+ this.parentElement = null;
568
+ // @ts-ignore
569
+ // eslint-disable-next-line no-unused-vars,
570
+ this.label = '';
539
571
  this.componentWillRender = () => {
572
+ var _a, _b, _c;
573
+ if (!this.host.parentElement) {
574
+ return;
575
+ }
540
576
  this.parentElement =
541
- this.host.parentElement.tagName === 'TDS-DROPDOWN'
577
+ ((_a = this.host.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === 'TDS-DROPDOWN'
542
578
  ? this.host.parentElement
543
579
  : this.host.getRootNode().host;
544
- this.multiselect = this.parentElement.multiselect;
545
- this.size = this.parentElement.size;
546
- this.label = this.host.textContent.trim();
580
+ if (this.parentElement) {
581
+ this.multiselect = (_b = this.parentElement.multiselect) !== null && _b !== void 0 ? _b : false;
582
+ this.size = this.parentElement.size || 'lg';
583
+ }
584
+ this.label = ((_c = this.host.textContent) === null || _c === void 0 ? void 0 : _c.trim()) || '';
547
585
  };
548
586
  this.handleSingleSelect = () => {
549
587
  if (!this.disabled) {
550
588
  this.selected = true;
551
- this.parentElement.appendValue(this.value);
589
+ this.parentElement.appendValue(this.internalValue);
552
590
  this.parentElement.close();
553
591
  this.tdsSelect.emit({
554
- value: this.value,
592
+ value: this.internalValue,
555
593
  selected: this.selected,
556
594
  });
557
595
  }
@@ -559,18 +597,18 @@ const TdsDropdownOption = class {
559
597
  this.handleMultiselect = (event) => {
560
598
  if (!this.disabled) {
561
599
  if (event.detail.checked) {
562
- this.parentElement.appendValue(this.value);
600
+ this.parentElement.appendValue(this.internalValue);
563
601
  this.selected = true;
564
602
  this.tdsSelect.emit({
565
- value: this.value,
603
+ value: this.internalValue,
566
604
  selected: this.selected,
567
605
  });
568
606
  }
569
607
  else {
570
- this.parentElement.removeValue(this.value);
608
+ this.parentElement.removeValue(this.internalValue);
571
609
  this.selected = false;
572
610
  this.tdsSelect.emit({
573
- value: this.value,
611
+ value: this.internalValue,
574
612
  selected: this.selected,
575
613
  });
576
614
  }
@@ -584,17 +622,24 @@ const TdsDropdownOption = class {
584
622
  this.tdsBlur.emit(event);
585
623
  };
586
624
  this.value = undefined;
625
+ this.internalValue = undefined;
587
626
  this.disabled = false;
588
627
  this.selected = false;
589
- this.multiselect = undefined;
628
+ this.multiselect = false;
590
629
  this.size = 'lg';
591
630
  }
592
631
  /** Method to select/deselect an option. */
593
632
  async setSelected(selected) {
594
633
  this.selected = selected;
595
634
  }
635
+ valueWatcher(newValue) {
636
+ this.internalValue = convertToString(newValue);
637
+ }
638
+ componentWillLoad() {
639
+ this.internalValue = convertToString(this.value);
640
+ }
596
641
  render() {
597
- return (index.h(index.Host, { key: '0dedcd94148bf61ee8b154c00eca73759f366dd4', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, index.h("div", { key: 'da3b6d37132d48502599145f85f05072a996d6dc', class: `dropdown-option
642
+ return (index.h(index.Host, { key: 'af1229553e89c02aca1d7c11bbc80acd25ce44b5', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, index.h("div", { key: 'c93eb33d1864028690ab981c0f676f03993265c4', class: `dropdown-option
598
643
  ${this.size}
599
644
  ${this.selected ? 'selected' : ''}
600
645
  ${this.disabled ? 'disabled' : ''}
@@ -612,6 +657,9 @@ const TdsDropdownOption = class {
612
657
  }
613
658
  static get delegatesFocus() { return true; }
614
659
  get host() { return index.getElement(this); }
660
+ static get watchers() { return {
661
+ "value": ["valueWatcher"]
662
+ }; }
615
663
  };
616
664
  TdsDropdownOption.style = TdsDropdownOptionStyle0;
617
665