@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
@@ -58,6 +58,21 @@ const appendHiddenInput = (element, name, value, disabled, additionalAttributes)
58
58
  input.value = value || '';
59
59
  };
60
60
 
61
+ /**
62
+ * Converts a value (string or number) to string
63
+ * @param value - The value to convert
64
+ * @returns The string representation of the value, or empty string if null/undefined
65
+ */
66
+ const convertToString = (value) => {
67
+ if (value === null || value === undefined)
68
+ return '';
69
+ return value.toString();
70
+ };
71
+ // Optional: If we need array conversion often
72
+ const convertArrayToStrings = (values) => {
73
+ return values.map((value) => convertToString(value));
74
+ };
75
+
61
76
  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)}";
62
77
  const TdsDropdownStyle0 = dropdownCss;
63
78
 
@@ -69,41 +84,50 @@ const TdsDropdown = class {
69
84
  this.tdsBlur = createEvent(this, "tdsBlur", 6);
70
85
  this.tdsInput = createEvent(this, "tdsInput", 6);
71
86
  this.setDefaultOption = () => {
72
- if (this.defaultValue) {
73
- const children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
74
- if (children.length === 0) {
75
- console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
76
- return;
77
- }
87
+ if (this.internalDefaultValue) {
88
+ // Convert the internal default value to an array if it's not already
78
89
  const defaultValues = this.multiselect
79
- ? new Set(this.defaultValue.split(','))
80
- : [this.defaultValue];
81
- const childrenMap = new Map(children.map((element) => [element.value, element]));
82
- const matchedValues = Array.from(defaultValues).filter((value) => {
83
- const element = childrenMap.get(value);
84
- if (element) {
85
- element.setSelected(true);
86
- return true;
87
- }
88
- return false;
89
- });
90
- if (matchedValues.length > 0) {
91
- this.value = [...new Set(this.value ? [...this.value, ...matchedValues] : matchedValues)];
92
- this.setValueAttribute();
93
- }
94
- else {
95
- console.warn(`TDS DROPDOWN: No matching option found for defaultValue "${this.defaultValue}"`);
96
- }
90
+ ? this.internalDefaultValue.split(',')
91
+ : [this.internalDefaultValue];
92
+ this.updateDropdownState(defaultValues);
97
93
  }
98
94
  };
99
- /* Returns a list of all children that are tds-dropdown-option elements */
100
95
  this.getChildren = () => {
101
96
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
102
97
  if (tdsDropdownOptions.length === 0) {
103
- console.warn('TDS DROPDOWN: Data missing. Disregard if loading data asynchronously.');
98
+ console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
99
+ }
100
+ return tdsDropdownOptions;
101
+ };
102
+ this.getSelectedChildren = () => {
103
+ if (this.selectedOptions.length === 0)
104
+ return [];
105
+ return this.selectedOptions
106
+ .map((stringValue) => {
107
+ var _a;
108
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
109
+ return matchingElement;
110
+ })
111
+ .filter(Boolean);
112
+ };
113
+ this.getSelectedChildrenLabels = () => {
114
+ var _a;
115
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
116
+ };
117
+ this.getValue = () => {
118
+ const labels = this.getSelectedChildrenLabels();
119
+ if (!labels) {
120
+ return '';
121
+ }
122
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
123
+ };
124
+ this.setValueAttribute = () => {
125
+ if (this.selectedOptions.length === 0) {
126
+ this.host.removeAttribute('value');
127
+ }
128
+ else {
129
+ this.host.setAttribute('value', this.selectedOptions.join(','));
104
130
  }
105
- else
106
- return tdsDropdownOptions;
107
131
  };
108
132
  this.getOpenDirection = () => {
109
133
  var _a, _b, _c, _d, _e;
@@ -118,7 +142,6 @@ const TdsDropdown = class {
118
142
  }
119
143
  return this.openDirection;
120
144
  };
121
- /* Toggles the open state of the Dropdown and sets focus to the input element */
122
145
  this.handleToggleOpen = () => {
123
146
  if (!this.disabled) {
124
147
  this.open = !this.open;
@@ -127,38 +150,10 @@ const TdsDropdown = class {
127
150
  }
128
151
  }
129
152
  };
130
- /* Focuses the input element in the Dropdown, if the reference is present. */
131
153
  this.focusInputElement = () => {
132
154
  if (this.inputElement)
133
155
  this.inputElement.focus();
134
156
  };
135
- this.getSelectedChildren = () => {
136
- var _a;
137
- return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((stringValue) => {
138
- const matchingElement = this.getChildren().find((element) => element.value === stringValue);
139
- return matchingElement;
140
- }).filter(Boolean);
141
- };
142
- this.getSelectedChildrenLabels = () => {
143
- var _a;
144
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
145
- };
146
- this.getValue = () => {
147
- const labels = this.getSelectedChildrenLabels();
148
- if (!labels) {
149
- return '';
150
- }
151
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
152
- };
153
- this.setValueAttribute = () => {
154
- var _a;
155
- if (!this.value || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) === '') {
156
- this.host.removeAttribute('value');
157
- }
158
- else {
159
- this.host.setAttribute('value', this.value.map((val) => val).toString());
160
- }
161
- };
162
157
  this.handleFilter = (event) => {
163
158
  this.tdsInput.emit(event);
164
159
  const query = event.target.value.toLowerCase();
@@ -189,8 +184,10 @@ const TdsDropdown = class {
189
184
  this.handleFilterReset = () => {
190
185
  this.reset();
191
186
  this.inputElement.value = '';
192
- this.handleFilter({ target: { value: this.inputElement.value } });
187
+ this.handleFilter({ target: { value: '' } });
193
188
  this.inputElement.focus();
189
+ // Add this line to ensure internal value is cleared
190
+ this.internalValue = '';
194
191
  };
195
192
  this.handleFocus = (event) => {
196
193
  this.open = true;
@@ -204,13 +201,6 @@ const TdsDropdown = class {
204
201
  this.handleBlur = (event) => {
205
202
  this.tdsBlur.emit(event);
206
203
  };
207
- this.handleChange = () => {
208
- var _a, _b;
209
- this.tdsChange.emit({
210
- name: this.name,
211
- value: (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString()) !== null && _b !== void 0 ? _b : null,
212
- });
213
- };
214
204
  this.resetInput = () => {
215
205
  const inputEl = this.host.querySelector('input');
216
206
  if (inputEl) {
@@ -233,16 +223,128 @@ const TdsDropdown = class {
233
223
  this.normalizeText = true;
234
224
  this.noResultText = 'No result';
235
225
  this.defaultValue = undefined;
226
+ this.value = null;
236
227
  this.open = false;
237
- this.value = undefined;
228
+ this.internalValue = undefined;
238
229
  this.filterResult = undefined;
239
230
  this.filterFocus = undefined;
231
+ this.internalDefaultValue = undefined;
232
+ this.selectedOptions = [];
233
+ }
234
+ handleValueChange(newValue) {
235
+ console.log('Value changed:', newValue); // Debug
236
+ // Normalize to array
237
+ const normalizedValue = this.normalizeValue(newValue);
238
+ console.log('Normalized value:', normalizedValue); // Debug
239
+ // Only update if actually changed
240
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
241
+ console.log('Value has changed, updating state'); // Debug
242
+ this.updateDropdownState(normalizedValue);
243
+ }
244
+ }
245
+ normalizeValue(value) {
246
+ if (!value || value === '')
247
+ return [];
248
+ // For single select, ensure we handle both string and array inputs
249
+ if (!this.multiselect) {
250
+ // If array is passed to single select, take first value
251
+ if (Array.isArray(value)) {
252
+ return [convertToString(value[0])];
253
+ }
254
+ return [convertToString(value)];
255
+ }
256
+ // For multiselect
257
+ if (Array.isArray(value)) {
258
+ return convertArrayToStrings(value);
259
+ }
260
+ // Handle comma-separated string for multiselect
261
+ return value
262
+ .toString()
263
+ .split(',')
264
+ .filter((v) => v !== '');
265
+ }
266
+ hasValueChanged(newValue, currentValue) {
267
+ if (newValue.length !== currentValue.length)
268
+ return true;
269
+ return newValue.some((val) => !currentValue.includes(val));
270
+ }
271
+ updateDropdownState(values) {
272
+ console.log('Updating dropdown state with values:', values); // Debug
273
+ // Validate the values first
274
+ const validValues = this.validateValues(values);
275
+ console.log('Valid values:', validValues); // Debug
276
+ // Update internal state
277
+ this.selectedOptions = [...validValues];
278
+ // Update the value prop
279
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
280
+ // Update internal value for display
281
+ this.internalValue = this.getValue();
282
+ // Update DOM
283
+ this.updateOptionElements();
284
+ // Update display value
285
+ this.updateDisplayValue();
286
+ // Emit change event
287
+ this.emitChange();
288
+ // Update value attribute
289
+ this.setValueAttribute();
290
+ }
291
+ validateValues(values) {
292
+ // Make sure we have children before validation
293
+ const children = this.getChildren();
294
+ if (!children || children.length === 0) {
295
+ console.warn('No dropdown options found'); // Debug
296
+ return values; // Return original values if no children yet
297
+ }
298
+ return values.filter((val) => {
299
+ const isValid = children.some((element) => convertToString(element.value) === convertToString(val));
300
+ if (!isValid) {
301
+ console.warn(`Option with value "${val}" does not exist`);
302
+ }
303
+ return isValid;
304
+ });
305
+ }
306
+ updateOptionElements() {
307
+ var _a;
308
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
309
+ // Convert element.value to string for comparison
310
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
311
+ });
312
+ }
313
+ updateDisplayValue() {
314
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
315
+ if (this.filter && this.inputElement) {
316
+ this.inputElement.value = this.internalValue;
317
+ }
318
+ }
319
+ emitChange() {
320
+ const value = this.multiselect
321
+ ? this.selectedOptions.join(',')
322
+ : this.selectedOptions[0] || null;
323
+ this.tdsChange.emit({
324
+ name: this.name,
325
+ value: value !== null && value !== void 0 ? value : null,
326
+ });
327
+ }
328
+ async setValue(value) {
329
+ let normalizedValue;
330
+ if (Array.isArray(value)) {
331
+ normalizedValue = convertArrayToStrings(value);
332
+ }
333
+ else {
334
+ normalizedValue = [convertToString(value)];
335
+ }
336
+ this.updateDropdownState(normalizedValue);
337
+ return this.getSelectedChildren().map((element) => ({
338
+ value: element.value,
339
+ label: element.textContent.trim(),
340
+ }));
240
341
  }
241
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
242
342
  async reset() {
243
- this.dropdownList.scrollTop = 0;
244
- this.internalReset();
245
- this.handleChange();
343
+ this.updateDropdownState([]);
344
+ }
345
+ async removeValue(oldValue) {
346
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
347
+ this.updateDropdownState(newValues);
246
348
  }
247
349
  /** Method that forces focus on the input element. */
248
350
  async focusElement() {
@@ -263,79 +365,6 @@ const TdsDropdown = class {
263
365
  * dropdown.setValue(['option-1', 'option-2']);
264
366
  * </code>
265
367
  */
266
- // The label is optional here ONLY to not break the API. Should be removed for 2.0.
267
- // @ts-ignore
268
- // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
269
- async setValue(value, label) {
270
- let nextValue;
271
- if (typeof value === 'string')
272
- nextValue = [value];
273
- else
274
- nextValue = value;
275
- if (!this.multiselect && nextValue.length > 1) {
276
- console.warn('Tried to select multiple items, but multiselect is not enabled.');
277
- nextValue = [nextValue[0]];
278
- }
279
- nextValue = [...new Set(nextValue)];
280
- this.internalReset();
281
- for (let i = 0; i < nextValue.length; i++) {
282
- const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
283
- if (!optionExist) {
284
- nextValue.splice(i, 1);
285
- }
286
- }
287
- this.value = nextValue;
288
- this.setValueAttribute();
289
- this.selectChildrenAsSelectedBasedOnSelectionProp();
290
- this.handleChange();
291
- /* 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. */
292
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
293
- const selection = this.getSelectedChildren().map((element) => ({
294
- value: element.value,
295
- label: element.textContent.trim(),
296
- }));
297
- // Update inputElement value and placeholder text
298
- if (this.filter) {
299
- this.inputElement.value = this.getValue();
300
- }
301
- return selection;
302
- }
303
- /**
304
- * @internal
305
- */
306
- async appendValue(value) {
307
- if (this.multiselect && this.value) {
308
- this.setValue([...this.value, value]);
309
- }
310
- else {
311
- this.setValue(value);
312
- }
313
- }
314
- /** Method for removing a selected value in the Dropdown. */
315
- async removeValue(oldValue) {
316
- var _a, _b;
317
- let label;
318
- if (this.multiselect) {
319
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
320
- var _a;
321
- if (element.value === oldValue) {
322
- this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
323
- label = element.textContent.trim();
324
- element.setSelected(false);
325
- }
326
- return element;
327
- });
328
- }
329
- else {
330
- this.reset();
331
- }
332
- this.handleChange();
333
- this.setValueAttribute();
334
- /* 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. */
335
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
336
- return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
337
- }
338
- /** Method for closing the Dropdown. */
339
368
  async close() {
340
369
  this.open = false;
341
370
  }
@@ -382,12 +411,33 @@ const TdsDropdown = class {
382
411
  handleOpenState() {
383
412
  if (this.filter && this.multiselect) {
384
413
  if (!this.open) {
385
- this.inputElement.value = this.getValue();
414
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
386
415
  }
387
416
  }
388
417
  }
418
+ handleDefaultValueChange(newValue) {
419
+ if (newValue !== undefined && newValue !== null) {
420
+ this.internalDefaultValue = convertToString(newValue);
421
+ this.setDefaultOption();
422
+ }
423
+ }
389
424
  componentWillLoad() {
390
- this.setDefaultOption();
425
+ // First handle the value prop if it exists
426
+ if (this.value !== null && this.value !== undefined) {
427
+ console.log('Initial value:', this.value); // Debug
428
+ const normalizedValue = this.normalizeValue(this.value);
429
+ console.log('Normalized value:', normalizedValue); // Debug
430
+ this.updateDropdownState(normalizedValue);
431
+ return; // Exit early if we handled the value prop
432
+ }
433
+ // Only use defaultValue if no value prop was provided
434
+ if (this.defaultValue !== null && this.defaultValue !== undefined) {
435
+ const defaultValueStr = convertToString(this.defaultValue);
436
+ const initialValue = this.multiselect
437
+ ? defaultValueStr.split(',').map(convertToString)
438
+ : [convertToString(this.defaultValue)];
439
+ this.updateDropdownState(initialValue);
440
+ }
391
441
  }
392
442
  /** Method to handle slot changes */
393
443
  handleSlotChange() {
@@ -397,29 +447,16 @@ const TdsDropdown = class {
397
447
  normalizeString(text) {
398
448
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
399
449
  }
400
- /** Method that resets the dropdown without emitting an event. */
401
- internalReset() {
402
- this.getChildren().forEach((element) => {
403
- element.setSelected(false);
404
- return element;
405
- });
406
- this.value = null;
407
- this.setValueAttribute();
408
- }
409
- selectChildrenAsSelectedBasedOnSelectionProp() {
410
- this.getChildren().forEach((element) => {
411
- this.value.forEach((selection) => {
412
- if (element.value !== selection) {
413
- // If not multiselect, we need to unselect all other options.
414
- if (!this.multiselect) {
415
- element.setSelected(false);
416
- }
417
- }
418
- else {
419
- element.setSelected(true);
420
- }
421
- });
422
- });
450
+ /**
451
+ * @internal
452
+ */
453
+ async appendValue(value) {
454
+ if (this.multiselect) {
455
+ this.updateDropdownState([...this.selectedOptions, value]);
456
+ }
457
+ else {
458
+ this.updateDropdownState([value]);
459
+ }
423
460
  }
424
461
  componentDidRender() {
425
462
  const form = this.host.closest('form');
@@ -434,11 +471,10 @@ const TdsDropdown = class {
434
471
  }
435
472
  }
436
473
  render() {
437
- var _a, _b, _c, _d;
438
- appendHiddenInput(this.host, this.name, (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString(), this.disabled);
439
- return (h(Host, { key: '3b547dda7bede0ae8e020d976d08ed9d8bf50356', role: "select", class: {
474
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
475
+ return (h(Host, { key: 'a6be6e0f01f203fd2d5777f9026a5b7ed5afc313', role: "select", class: {
440
476
  [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
441
- } }, this.label && this.labelPosition === 'outside' && (h("div", { key: 'ca3c45bce793171f4af249b4c007d4279599f2b4', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: 'fb12d8b69a4430977b3269f44f9b5e5600965cc1', class: {
477
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: 'bf629a4d977f27f31cd056f126295d7f3bf00dd7', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '98ea1eee12a76341af8f2cc81846c93e99f2eae8', class: {
442
478
  'dropdown-select': true,
443
479
  [this.size]: true,
444
480
  'disabled': this.disabled,
@@ -450,7 +486,7 @@ const TdsDropdown = class {
450
486
  } }, 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: `
451
487
  label-inside-as-placeholder
452
488
  ${this.size}
453
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
489
+ ${this.selectedOptions.length ? 'selected' : ''}
454
490
  ` }, this.label)), h("input", {
455
491
  // eslint-disable-next-line no-return-assign
456
492
  ref: (inputEl) => (this.inputElement = inputEl), class: {
@@ -461,15 +497,7 @@ const TdsDropdown = class {
461
497
  this.inputElement.value = this.getValue();
462
498
  }
463
499
  this.handleBlur(event);
464
- }, onFocus: (event) => {
465
- this.open = true;
466
- this.filterFocus = true;
467
- if (this.multiselect) {
468
- this.inputElement.value = '';
469
- }
470
- this.handleFocus(event);
471
- this.handleFilter({ target: { value: '' } });
472
- }, onKeyDown: (event) => {
500
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
473
501
  if (event.key === 'Escape') {
474
502
  this.open = false;
475
503
  }
@@ -489,17 +517,15 @@ const TdsDropdown = class {
489
517
  if (event.key === 'Escape') {
490
518
  this.open = false;
491
519
  }
492
- }, class: {
493
- value: Boolean(this.value),
494
- placeholder: Boolean(!this.value),
495
- open: this.open,
496
- closed: !this.open,
497
- error: this.error,
498
- }, 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: {
499
- 'label-inside-as-placeholder': true,
500
- [this.size]: true,
501
- 'selected': Boolean((_c = this.value) === null || _c === void 0 ? void 0 : _c.length),
502
- } }, 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) => {
520
+ }, class: `
521
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
522
+ ${this.open ? 'open' : 'closed'}
523
+ ${this.error ? 'error' : ''}
524
+ `, 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: `
525
+ label-inside-as-placeholder
526
+ ${this.size}
527
+ ${this.selectedOptions.length ? 'selected' : ''}
528
+ ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, this.selectedOptions.length ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: 'ca3b744399468b3d74e1982b1cb648222e601646', ref: (element) => {
503
529
  this.dropdownList = element;
504
530
  }, class: {
505
531
  'dropdown-list': true,
@@ -510,15 +536,17 @@ const TdsDropdown = class {
510
536
  'closed': !this.open,
511
537
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
512
538
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
513
- } }, 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: {
539
+ } }, h("slot", { key: '97fac699a505a4ce347ee5665aa251a5562d9c97', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: 'a549305b88f3de4a2dfd8050ea2652b459ecca7d', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: '3d336b6588a9b9f29f9ac3a92d4c0f81fc65a9d5', class: {
514
540
  helper: true,
515
541
  error: this.error,
516
542
  disabled: this.disabled,
517
- } }, this.error && h("tds-icon", { key: '1f6f2b7272f35501bf684816b4bc1cd746910fe9', name: "error", size: "16px" }), this.helper))));
543
+ } }, this.error && h("tds-icon", { key: 'fe85fe0e24269416805a570074a65c34224a6fc9', name: "error", size: "16px" }), this.helper))));
518
544
  }
519
545
  get host() { return getElement(this); }
520
546
  static get watchers() { return {
521
- "open": ["handleOpenState"]
547
+ "value": ["handleValueChange"],
548
+ "open": ["handleOpenState"],
549
+ "defaultValue": ["handleDefaultValueChange"]
522
550
  }; }
523
551
  };
524
552
  TdsDropdown.style = TdsDropdownStyle0;
@@ -532,22 +560,32 @@ const TdsDropdownOption = class {
532
560
  this.tdsSelect = createEvent(this, "tdsSelect", 6);
533
561
  this.tdsFocus = createEvent(this, "tdsFocus", 6);
534
562
  this.tdsBlur = createEvent(this, "tdsBlur", 6);
563
+ this.parentElement = null;
564
+ // @ts-ignore
565
+ // eslint-disable-next-line no-unused-vars,
566
+ this.label = '';
535
567
  this.componentWillRender = () => {
568
+ var _a, _b, _c;
569
+ if (!this.host.parentElement) {
570
+ return;
571
+ }
536
572
  this.parentElement =
537
- this.host.parentElement.tagName === 'TDS-DROPDOWN'
573
+ ((_a = this.host.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === 'TDS-DROPDOWN'
538
574
  ? this.host.parentElement
539
575
  : this.host.getRootNode().host;
540
- this.multiselect = this.parentElement.multiselect;
541
- this.size = this.parentElement.size;
542
- this.label = this.host.textContent.trim();
576
+ if (this.parentElement) {
577
+ this.multiselect = (_b = this.parentElement.multiselect) !== null && _b !== void 0 ? _b : false;
578
+ this.size = this.parentElement.size || 'lg';
579
+ }
580
+ this.label = ((_c = this.host.textContent) === null || _c === void 0 ? void 0 : _c.trim()) || '';
543
581
  };
544
582
  this.handleSingleSelect = () => {
545
583
  if (!this.disabled) {
546
584
  this.selected = true;
547
- this.parentElement.appendValue(this.value);
585
+ this.parentElement.appendValue(this.internalValue);
548
586
  this.parentElement.close();
549
587
  this.tdsSelect.emit({
550
- value: this.value,
588
+ value: this.internalValue,
551
589
  selected: this.selected,
552
590
  });
553
591
  }
@@ -555,18 +593,18 @@ const TdsDropdownOption = class {
555
593
  this.handleMultiselect = (event) => {
556
594
  if (!this.disabled) {
557
595
  if (event.detail.checked) {
558
- this.parentElement.appendValue(this.value);
596
+ this.parentElement.appendValue(this.internalValue);
559
597
  this.selected = true;
560
598
  this.tdsSelect.emit({
561
- value: this.value,
599
+ value: this.internalValue,
562
600
  selected: this.selected,
563
601
  });
564
602
  }
565
603
  else {
566
- this.parentElement.removeValue(this.value);
604
+ this.parentElement.removeValue(this.internalValue);
567
605
  this.selected = false;
568
606
  this.tdsSelect.emit({
569
- value: this.value,
607
+ value: this.internalValue,
570
608
  selected: this.selected,
571
609
  });
572
610
  }
@@ -580,17 +618,24 @@ const TdsDropdownOption = class {
580
618
  this.tdsBlur.emit(event);
581
619
  };
582
620
  this.value = undefined;
621
+ this.internalValue = undefined;
583
622
  this.disabled = false;
584
623
  this.selected = false;
585
- this.multiselect = undefined;
624
+ this.multiselect = false;
586
625
  this.size = 'lg';
587
626
  }
588
627
  /** Method to select/deselect an option. */
589
628
  async setSelected(selected) {
590
629
  this.selected = selected;
591
630
  }
631
+ valueWatcher(newValue) {
632
+ this.internalValue = convertToString(newValue);
633
+ }
634
+ componentWillLoad() {
635
+ this.internalValue = convertToString(this.value);
636
+ }
592
637
  render() {
593
- return (h(Host, { key: '0dedcd94148bf61ee8b154c00eca73759f366dd4', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, h("div", { key: 'da3b6d37132d48502599145f85f05072a996d6dc', class: `dropdown-option
638
+ return (h(Host, { key: 'af1229553e89c02aca1d7c11bbc80acd25ce44b5', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, h("div", { key: 'c93eb33d1864028690ab981c0f676f03993265c4', class: `dropdown-option
594
639
  ${this.size}
595
640
  ${this.selected ? 'selected' : ''}
596
641
  ${this.disabled ? 'disabled' : ''}
@@ -608,6 +653,9 @@ const TdsDropdownOption = class {
608
653
  }
609
654
  static get delegatesFocus() { return true; }
610
655
  get host() { return getElement(this); }
656
+ static get watchers() { return {
657
+ "value": ["valueWatcher"]
658
+ }; }
611
659
  };
612
660
  TdsDropdownOption.style = TdsDropdownOptionStyle0;
613
661