@scania/tegel 1.24.0 → 1.25.0-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 (477) hide show
  1. package/dist/cjs/index-ca8040ad.js +4 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/tds-accordion-item.cjs.entry.js +7 -4
  4. package/dist/cjs/tds-badge.cjs.entry.js +9 -8
  5. package/dist/cjs/tds-banner.cjs.entry.js +6 -3
  6. package/dist/cjs/tds-block.cjs.entry.js +12 -6
  7. package/dist/cjs/tds-body-cell.cjs.entry.js +9 -6
  8. package/dist/cjs/tds-breadcrumb.cjs.entry.js +2 -2
  9. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +7 -1
  10. package/dist/cjs/tds-button.cjs.entry.js +13 -3
  11. package/dist/cjs/tds-card.cjs.entry.js +11 -7
  12. package/dist/cjs/tds-checkbox.cjs.entry.js +2 -2
  13. package/dist/cjs/tds-chip.cjs.entry.js +7 -2
  14. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +40 -3
  15. package/dist/cjs/tds-datetime.cjs.entry.js +20 -13
  16. package/dist/cjs/tds-divider.cjs.entry.js +1 -1
  17. package/dist/cjs/tds-dropdown_2.cjs.entry.js +240 -197
  18. package/dist/cjs/tds-folder-tab.cjs.entry.js +4 -2
  19. package/dist/cjs/tds-folder-tabs.cjs.entry.js +2 -2
  20. package/dist/cjs/tds-footer-group.cjs.entry.js +3 -3
  21. package/dist/cjs/tds-footer-item.cjs.entry.js +1 -1
  22. package/dist/cjs/tds-footer.cjs.entry.js +3 -1
  23. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +1 -1
  24. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  25. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  26. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +1 -1
  27. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +1 -1
  28. package/dist/cjs/tds-header-dropdown.cjs.entry.js +3 -3
  29. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-grid-item.cjs.entry.js +1 -1
  32. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +1 -1
  33. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  34. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  35. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +1 -1
  36. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +1 -1
  37. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  38. package/dist/cjs/tds-header-title.cjs.entry.js +1 -1
  39. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  40. package/dist/cjs/tds-icon.cjs.entry.js +1 -1
  41. package/dist/cjs/tds-inline-tab.cjs.entry.js +5 -2
  42. package/dist/cjs/tds-inline-tabs.cjs.entry.js +2 -2
  43. package/dist/cjs/tds-link.cjs.entry.js +5 -5
  44. package/dist/cjs/tds-message.cjs.entry.js +6 -4
  45. package/dist/cjs/tds-modal.cjs.entry.js +4 -1
  46. package/dist/cjs/tds-navigation-tab.cjs.entry.js +2 -2
  47. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +8 -2
  48. package/dist/cjs/tds-popover-canvas.cjs.entry.js +2 -2
  49. package/dist/cjs/tds-popover-core.cjs.entry.js +1 -1
  50. package/dist/cjs/tds-popover-menu-item.cjs.entry.js +3 -3
  51. package/dist/cjs/tds-popover-menu.cjs.entry.js +2 -2
  52. package/dist/cjs/tds-radio-button.cjs.entry.js +1 -1
  53. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  54. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -4
  55. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +2 -2
  56. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +2 -2
  57. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +3 -3
  58. package/dist/cjs/tds-side-menu-item.cjs.entry.js +2 -2
  59. package/dist/cjs/tds-side-menu-overlay.cjs.entry.js +1 -1
  60. package/dist/cjs/tds-side-menu-user-image_2.cjs.entry.js +2 -2
  61. package/dist/cjs/tds-side-menu-user.cjs.entry.js +1 -1
  62. package/dist/cjs/tds-slider.cjs.entry.js +8 -8
  63. package/dist/cjs/tds-spinner.cjs.entry.js +1 -1
  64. package/dist/cjs/tds-step.cjs.entry.js +1 -1
  65. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  66. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +7 -7
  67. package/dist/cjs/tds-table-body-row.cjs.entry.js +9 -6
  68. package/dist/cjs/tds-table-body.cjs.entry.js +2 -2
  69. package/dist/cjs/tds-table-footer.cjs.entry.js +3 -3
  70. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  71. package/dist/cjs/tds-table-header.cjs.entry.js +2 -2
  72. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  73. package/dist/cjs/tds-text-field.cjs.entry.js +8 -6
  74. package/dist/cjs/tds-textarea.cjs.entry.js +14 -12
  75. package/dist/cjs/tds-toast.cjs.entry.js +3 -3
  76. package/dist/cjs/tds-toggle.cjs.entry.js +13 -1
  77. package/dist/cjs/tds-tooltip-beta.cjs.entry.js +123 -0
  78. package/dist/cjs/tds-tooltip.cjs.entry.js +2 -2
  79. package/dist/cjs/tegel.cjs.js +1 -1
  80. package/dist/collection/collection-manifest.json +2 -1
  81. package/dist/collection/components/accordion/accordion-item/accordion-item.js +25 -4
  82. package/dist/collection/components/badge/badge.js +28 -8
  83. package/dist/collection/components/banner/banner.js +24 -3
  84. package/dist/collection/components/block/block.js +36 -7
  85. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.css +9 -10
  86. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +2 -2
  87. package/dist/collection/components/breadcrumbs/breadcrumbs.js +30 -1
  88. package/dist/collection/components/button/button.css +3 -3
  89. package/dist/collection/components/button/button.js +29 -2
  90. package/dist/collection/components/card/card.js +11 -7
  91. package/dist/collection/components/checkbox/checkbox.js +2 -2
  92. package/dist/collection/components/chip/chip.js +8 -3
  93. package/dist/collection/components/datetime/datetime.css +20 -0
  94. package/dist/collection/components/datetime/datetime.js +22 -15
  95. package/dist/collection/components/divider/divider.js +1 -1
  96. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +41 -16
  97. package/dist/collection/components/dropdown/dropdown.js +264 -239
  98. package/dist/collection/components/footer/footer-group/footer-group.js +3 -3
  99. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  100. package/dist/collection/components/footer/footer.js +3 -1
  101. package/dist/collection/components/header/core-header-item/core-header-item.js +1 -1
  102. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +1 -1
  103. package/dist/collection/components/header/header-dropdown/header-dropdown.js +3 -3
  104. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +1 -1
  105. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +2 -2
  106. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +1 -1
  107. package/dist/collection/components/header/header-hamburger/header-hamburger.js +1 -1
  108. package/dist/collection/components/header/header-item/header-item.js +39 -2
  109. package/dist/collection/components/header/header-launcher/header-launcher.js +2 -2
  110. package/dist/collection/components/header/header-launcher-button/header-launcher-button.js +1 -1
  111. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +1 -1
  112. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +1 -1
  113. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +1 -1
  114. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +1 -1
  115. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +1 -1
  116. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +1 -1
  117. package/dist/collection/components/header/header-title/header-title.js +1 -1
  118. package/dist/collection/components/header/header.js +1 -1
  119. package/dist/collection/components/icon/icon.js +1 -1
  120. package/dist/collection/components/link/link.js +5 -5
  121. package/dist/collection/components/message/message.js +6 -4
  122. package/dist/collection/components/modal/modal.js +4 -1
  123. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  124. package/dist/collection/components/popover-core/popover-core.js +1 -1
  125. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.css +7 -1
  126. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  127. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  128. package/dist/collection/components/radio-button/radio-button.js +1 -1
  129. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  130. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  131. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  132. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  133. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  134. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  135. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  136. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  137. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  138. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  139. package/dist/collection/components/slider/slider.css +13 -0
  140. package/dist/collection/components/slider/slider.js +7 -7
  141. package/dist/collection/components/spinner/spinner.js +1 -1
  142. package/dist/collection/components/stepper/step/step.js +1 -1
  143. package/dist/collection/components/table/table-body/table-body.js +2 -2
  144. package/dist/collection/components/table/table-body-cell/table-body-cell.js +9 -6
  145. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  146. package/dist/collection/components/table/table-body-row/table-body-row.js +9 -6
  147. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  148. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  149. package/dist/collection/components/table/table-header/table-header.js +2 -2
  150. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  151. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  152. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  153. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +4 -2
  154. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +2 -2
  155. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +5 -2
  156. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +2 -2
  157. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +2 -2
  158. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +8 -2
  159. package/dist/collection/components/text-field/text-field.js +9 -7
  160. package/dist/collection/components/textarea/textarea.js +14 -12
  161. package/dist/collection/components/toast/toast.js +3 -3
  162. package/dist/collection/components/toggle/toggle.js +30 -1
  163. package/dist/collection/components/tooltip/tooltip.js +2 -2
  164. package/dist/collection/components/tooltip-beta/tooltip-beta.css +40 -0
  165. package/dist/collection/components/tooltip-beta/tooltip-beta.js +319 -0
  166. package/dist/collection/types/Tooltip.js +1 -0
  167. package/dist/collection/utils/axeHelpers.js +3 -0
  168. package/dist/collection/utils/convertToString.js +14 -0
  169. package/dist/components/{p-0c3cab16.js → p-0e6efec9.js} +2 -2
  170. package/dist/components/{p-09d36119.js → p-265c3467.js} +1 -1
  171. package/dist/components/{p-aea7fa6b.js → p-29d19dc8.js} +3 -3
  172. package/dist/components/{p-4030e9bc.js → p-2a43e410.js} +39 -15
  173. package/dist/components/{p-fcec766c.js → p-34737ed9.js} +1 -1
  174. package/dist/components/{p-dddaa520.js → p-3e93886d.js} +1 -1
  175. package/dist/components/{p-5e1a9abc.js → p-4764a1d5.js} +1 -1
  176. package/dist/components/{p-8a2d7b2f.js → p-4c1e3344.js} +4 -4
  177. package/dist/components/{p-cfb1b588.js → p-8c849aa2.js} +2 -2
  178. package/dist/components/{p-e323cd2a.js → p-a2b7bdef.js} +1 -1
  179. package/dist/components/{p-4f1aa84f.js → p-a64dc22e.js} +207 -193
  180. package/dist/components/p-b1d21573.js +16 -0
  181. package/dist/components/{p-d921fe75.js → p-c65351ab.js} +2 -2
  182. package/dist/components/{p-0676aa23.js → p-d61bd22e.js} +40 -3
  183. package/dist/components/{p-30de8ac4.js → p-e49a0ceb.js} +1 -1
  184. package/dist/components/{p-e46088d9.js → p-e8d2dbbf.js} +1 -1
  185. package/dist/components/tds-accordion-item.js +9 -5
  186. package/dist/components/tds-badge.js +11 -8
  187. package/dist/components/tds-banner.js +8 -4
  188. package/dist/components/tds-block.js +14 -7
  189. package/dist/components/tds-body-cell.js +9 -6
  190. package/dist/components/tds-breadcrumb.js +3 -3
  191. package/dist/components/tds-breadcrumbs.js +10 -2
  192. package/dist/components/tds-button.js +14 -3
  193. package/dist/components/tds-card.js +12 -8
  194. package/dist/components/tds-checkbox.js +1 -1
  195. package/dist/components/tds-chip.js +7 -2
  196. package/dist/components/tds-core-header-item.js +1 -1
  197. package/dist/components/tds-datetime.js +21 -14
  198. package/dist/components/tds-divider.js +1 -1
  199. package/dist/components/tds-dropdown-option.js +1 -1
  200. package/dist/components/tds-dropdown.js +1 -1
  201. package/dist/components/tds-folder-tab.js +4 -2
  202. package/dist/components/tds-folder-tabs.js +3 -3
  203. package/dist/components/tds-footer-group.js +4 -4
  204. package/dist/components/tds-footer-item.js +1 -1
  205. package/dist/components/tds-footer.js +3 -1
  206. package/dist/components/tds-header-brand-symbol.js +3 -3
  207. package/dist/components/tds-header-cell.js +2 -2
  208. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  209. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  210. package/dist/components/tds-header-dropdown-list.js +1 -1
  211. package/dist/components/tds-header-dropdown.js +8 -8
  212. package/dist/components/tds-header-hamburger.js +4 -4
  213. package/dist/components/tds-header-item.js +1 -1
  214. package/dist/components/tds-header-launcher-button.js +1 -1
  215. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  216. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  217. package/dist/components/tds-header-launcher-grid.js +1 -1
  218. package/dist/components/tds-header-launcher-list-item.js +2 -2
  219. package/dist/components/tds-header-launcher-list-title.js +1 -1
  220. package/dist/components/tds-header-launcher-list.js +2 -2
  221. package/dist/components/tds-header-launcher.js +8 -8
  222. package/dist/components/tds-header-title.js +1 -1
  223. package/dist/components/tds-header.js +1 -1
  224. package/dist/components/tds-icon.js +1 -1
  225. package/dist/components/tds-inline-tab.js +5 -2
  226. package/dist/components/tds-inline-tabs.js +3 -3
  227. package/dist/components/tds-link.js +5 -5
  228. package/dist/components/tds-message.js +7 -5
  229. package/dist/components/tds-modal.js +5 -2
  230. package/dist/components/tds-navigation-tab.js +2 -2
  231. package/dist/components/tds-navigation-tabs.js +9 -3
  232. package/dist/components/tds-popover-canvas.js +1 -1
  233. package/dist/components/tds-popover-core.js +1 -1
  234. package/dist/components/tds-popover-menu-item.js +3 -3
  235. package/dist/components/tds-popover-menu.js +3 -3
  236. package/dist/components/tds-radio-button.js +1 -1
  237. package/dist/components/tds-side-menu-close-button.js +2 -2
  238. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  239. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  240. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  241. package/dist/components/tds-side-menu-dropdown.js +5 -5
  242. package/dist/components/tds-side-menu-item.js +1 -1
  243. package/dist/components/tds-side-menu-overlay.js +1 -1
  244. package/dist/components/tds-side-menu-user-image.js +1 -1
  245. package/dist/components/tds-side-menu-user-label.js +1 -1
  246. package/dist/components/tds-side-menu-user.js +3 -3
  247. package/dist/components/tds-slider.js +9 -9
  248. package/dist/components/tds-spinner.js +1 -1
  249. package/dist/components/tds-step.js +2 -2
  250. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  251. package/dist/components/tds-table-body-row-expandable.js +7 -7
  252. package/dist/components/tds-table-body-row.js +10 -7
  253. package/dist/components/tds-table-body.js +2 -2
  254. package/dist/components/tds-table-footer.js +7 -7
  255. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  256. package/dist/components/tds-table-header.js +3 -3
  257. package/dist/components/tds-table-toolbar.js +3 -3
  258. package/dist/components/tds-text-field.js +9 -7
  259. package/dist/components/tds-textarea.js +15 -13
  260. package/dist/components/tds-toast.js +4 -4
  261. package/dist/components/tds-toggle.js +14 -1
  262. package/dist/components/tds-tooltip-beta.d.ts +11 -0
  263. package/dist/components/tds-tooltip-beta.js +149 -0
  264. package/dist/components/tds-tooltip.js +3 -3
  265. package/dist/esm/index-51d04e39.js +4 -0
  266. package/dist/esm/loader.js +1 -1
  267. package/dist/esm/tds-accordion-item.entry.js +7 -4
  268. package/dist/esm/tds-badge.entry.js +9 -8
  269. package/dist/esm/tds-banner.entry.js +6 -3
  270. package/dist/esm/tds-block.entry.js +12 -6
  271. package/dist/esm/tds-body-cell.entry.js +9 -6
  272. package/dist/esm/tds-breadcrumb.entry.js +3 -3
  273. package/dist/esm/tds-breadcrumbs.entry.js +7 -1
  274. package/dist/esm/tds-button.entry.js +13 -3
  275. package/dist/esm/tds-card.entry.js +11 -7
  276. package/dist/esm/tds-checkbox.entry.js +2 -2
  277. package/dist/esm/tds-chip.entry.js +7 -2
  278. package/dist/esm/tds-core-header-item_2.entry.js +40 -3
  279. package/dist/esm/tds-datetime.entry.js +20 -13
  280. package/dist/esm/tds-divider.entry.js +1 -1
  281. package/dist/esm/tds-dropdown_2.entry.js +240 -197
  282. package/dist/esm/tds-folder-tab.entry.js +4 -2
  283. package/dist/esm/tds-folder-tabs.entry.js +2 -2
  284. package/dist/esm/tds-footer-group.entry.js +3 -3
  285. package/dist/esm/tds-footer-item.entry.js +1 -1
  286. package/dist/esm/tds-footer.entry.js +3 -1
  287. package/dist/esm/tds-header-brand-symbol.entry.js +1 -1
  288. package/dist/esm/tds-header-cell.entry.js +1 -1
  289. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  290. package/dist/esm/tds-header-dropdown-list-user.entry.js +1 -1
  291. package/dist/esm/tds-header-dropdown-list.entry.js +1 -1
  292. package/dist/esm/tds-header-dropdown.entry.js +3 -3
  293. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  294. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  295. package/dist/esm/tds-header-launcher-grid-item.entry.js +1 -1
  296. package/dist/esm/tds-header-launcher-grid-title.entry.js +1 -1
  297. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  298. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  299. package/dist/esm/tds-header-launcher-list-title.entry.js +1 -1
  300. package/dist/esm/tds-header-launcher-list.entry.js +1 -1
  301. package/dist/esm/tds-header-launcher.entry.js +2 -2
  302. package/dist/esm/tds-header-title.entry.js +1 -1
  303. package/dist/esm/tds-header.entry.js +1 -1
  304. package/dist/esm/tds-icon.entry.js +1 -1
  305. package/dist/esm/tds-inline-tab.entry.js +5 -2
  306. package/dist/esm/tds-inline-tabs.entry.js +2 -2
  307. package/dist/esm/tds-link.entry.js +5 -5
  308. package/dist/esm/tds-message.entry.js +6 -4
  309. package/dist/esm/tds-modal.entry.js +4 -1
  310. package/dist/esm/tds-navigation-tab.entry.js +2 -2
  311. package/dist/esm/tds-navigation-tabs.entry.js +8 -2
  312. package/dist/esm/tds-popover-canvas.entry.js +2 -2
  313. package/dist/esm/tds-popover-core.entry.js +1 -1
  314. package/dist/esm/tds-popover-menu-item.entry.js +3 -3
  315. package/dist/esm/tds-popover-menu.entry.js +2 -2
  316. package/dist/esm/tds-radio-button.entry.js +1 -1
  317. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  318. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -4
  319. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +2 -2
  320. package/dist/esm/tds-side-menu-dropdown-list.entry.js +2 -2
  321. package/dist/esm/tds-side-menu-dropdown.entry.js +3 -3
  322. package/dist/esm/tds-side-menu-item.entry.js +2 -2
  323. package/dist/esm/tds-side-menu-overlay.entry.js +1 -1
  324. package/dist/esm/tds-side-menu-user-image_2.entry.js +2 -2
  325. package/dist/esm/tds-side-menu-user.entry.js +1 -1
  326. package/dist/esm/tds-slider.entry.js +8 -8
  327. package/dist/esm/tds-spinner.entry.js +1 -1
  328. package/dist/esm/tds-step.entry.js +1 -1
  329. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  330. package/dist/esm/tds-table-body-row-expandable.entry.js +7 -7
  331. package/dist/esm/tds-table-body-row.entry.js +9 -6
  332. package/dist/esm/tds-table-body.entry.js +2 -2
  333. package/dist/esm/tds-table-footer.entry.js +3 -3
  334. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  335. package/dist/esm/tds-table-header.entry.js +2 -2
  336. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  337. package/dist/esm/tds-text-field.entry.js +8 -6
  338. package/dist/esm/tds-textarea.entry.js +14 -12
  339. package/dist/esm/tds-toast.entry.js +3 -3
  340. package/dist/esm/tds-toggle.entry.js +13 -1
  341. package/dist/esm/tds-tooltip-beta.entry.js +119 -0
  342. package/dist/esm/tds-tooltip.entry.js +2 -2
  343. package/dist/esm/tegel.js +1 -1
  344. package/dist/tegel/p-01edebef.entry.js +1 -0
  345. package/dist/tegel/p-035e58e6.entry.js +1 -0
  346. package/dist/tegel/p-065d6f83.entry.js +1 -0
  347. package/dist/tegel/p-0c1e632d.entry.js +1 -0
  348. package/dist/tegel/{p-4e3e2601.entry.js → p-168122a7.entry.js} +1 -1
  349. package/dist/tegel/{p-868435cd.entry.js → p-19eb4ae1.entry.js} +1 -1
  350. package/dist/tegel/p-1b390acb.entry.js +1 -0
  351. package/dist/tegel/{p-57f95a1b.entry.js → p-288a09ef.entry.js} +1 -1
  352. package/dist/tegel/{p-987084a5.entry.js → p-3204ae8f.entry.js} +1 -1
  353. package/dist/tegel/p-32be63ea.entry.js +1 -0
  354. package/dist/tegel/p-34b793c9.entry.js +1 -0
  355. package/dist/tegel/p-3c2f7033.entry.js +1 -0
  356. package/dist/tegel/p-46205cfb.entry.js +1 -0
  357. package/dist/tegel/p-4d5963d0.entry.js +1 -0
  358. package/dist/tegel/{p-088bfcd4.entry.js → p-4e298888.entry.js} +1 -1
  359. package/dist/tegel/p-4e33cbda.entry.js +1 -0
  360. package/dist/tegel/{p-c790ef93.entry.js → p-4ee344e5.entry.js} +1 -1
  361. package/dist/tegel/p-4f5f152a.entry.js +1 -0
  362. package/dist/tegel/p-4fe6512b.entry.js +1 -0
  363. package/dist/tegel/p-5242a1f6.entry.js +1 -0
  364. package/dist/tegel/{p-b4c7099f.entry.js → p-542d7b3e.entry.js} +1 -1
  365. package/dist/tegel/p-5a7110b8.entry.js +1 -0
  366. package/dist/tegel/p-5ba254ee.entry.js +1 -0
  367. package/dist/tegel/{p-9de400f4.entry.js → p-60b38806.entry.js} +1 -1
  368. package/dist/tegel/{p-6a52ed63.entry.js → p-64c80f14.entry.js} +1 -1
  369. package/dist/tegel/{p-ed02ad2b.entry.js → p-654785d2.entry.js} +1 -1
  370. package/dist/tegel/p-6f17d37f.entry.js +1 -0
  371. package/dist/tegel/p-70795d6e.entry.js +1 -0
  372. package/dist/tegel/p-72fd0083.entry.js +1 -0
  373. package/dist/tegel/{p-bcae4d3a.entry.js → p-74fc9c92.entry.js} +1 -1
  374. package/dist/tegel/p-77c79b91.entry.js +1 -0
  375. package/dist/tegel/{p-ff5cd75f.entry.js → p-77d457b8.entry.js} +1 -1
  376. package/dist/tegel/{p-1634247e.entry.js → p-78d5acd7.entry.js} +1 -1
  377. package/dist/tegel/{p-2e44b4e9.entry.js → p-7c4c65c9.entry.js} +1 -1
  378. package/dist/tegel/{p-2557b79b.entry.js → p-848c2732.entry.js} +1 -1
  379. package/dist/tegel/p-868757d9.entry.js +1 -0
  380. package/dist/tegel/p-8c8b9908.entry.js +1 -0
  381. package/dist/tegel/{p-ff7ae8a3.entry.js → p-93a4bd11.entry.js} +1 -1
  382. package/dist/tegel/{p-50fcdc56.entry.js → p-96635c10.entry.js} +1 -1
  383. package/dist/tegel/p-9e0b31a1.entry.js +1 -0
  384. package/dist/tegel/{p-91dcddd5.entry.js → p-a0fc0cc2.entry.js} +1 -1
  385. package/dist/tegel/p-a5e0f030.entry.js +1 -0
  386. package/dist/tegel/{p-aed1c5cf.entry.js → p-aa9d281b.entry.js} +1 -1
  387. package/dist/tegel/p-ae46766a.entry.js +1 -0
  388. package/dist/tegel/{p-f9325536.entry.js → p-aef6b130.entry.js} +1 -1
  389. package/dist/tegel/p-b35e7208.entry.js +1 -0
  390. package/dist/tegel/p-b39ffad4.entry.js +1 -0
  391. package/dist/tegel/p-b5ced8e5.entry.js +1 -0
  392. package/dist/tegel/{p-a642c800.entry.js → p-b6526302.entry.js} +1 -1
  393. package/dist/tegel/p-b686f1ad.entry.js +1 -0
  394. package/dist/tegel/{p-c18b2746.entry.js → p-b9576881.entry.js} +1 -1
  395. package/dist/tegel/p-b9f81e53.entry.js +1 -0
  396. package/dist/tegel/p-be1d1345.entry.js +1 -0
  397. package/dist/tegel/{p-0f38bea7.entry.js → p-bee533b5.entry.js} +1 -1
  398. package/dist/tegel/{p-7097a39a.entry.js → p-c56be8d1.entry.js} +1 -1
  399. package/dist/tegel/{p-4ab7461e.entry.js → p-c8404432.entry.js} +1 -1
  400. package/dist/tegel/{p-ac46b0a4.entry.js → p-ca93de01.entry.js} +1 -1
  401. package/dist/tegel/p-cc6c06e3.entry.js +1 -0
  402. package/dist/tegel/{p-220affa9.entry.js → p-cca85da0.entry.js} +1 -1
  403. package/dist/tegel/p-cde32bc6.entry.js +1 -0
  404. package/dist/tegel/p-d0abf078.entry.js +1 -0
  405. package/dist/tegel/p-d1112915.entry.js +1 -0
  406. package/dist/tegel/{p-a5a67770.entry.js → p-d267665e.entry.js} +1 -1
  407. package/dist/tegel/{p-6c26e66f.entry.js → p-d33cb2d1.entry.js} +1 -1
  408. package/dist/tegel/{p-bb129d43.entry.js → p-d47c744f.entry.js} +1 -1
  409. package/dist/tegel/p-d65dfe04.entry.js +1 -0
  410. package/dist/tegel/{p-6b405a0f.entry.js → p-d853f8c2.entry.js} +1 -1
  411. package/dist/tegel/p-d9511720.entry.js +1 -0
  412. package/dist/tegel/p-dcbc35af.entry.js +1 -0
  413. package/dist/tegel/{p-06d2fa56.entry.js → p-dfbbaefd.entry.js} +1 -1
  414. package/dist/tegel/p-ea3e071f.entry.js +1 -0
  415. package/dist/tegel/{p-9bf7f5cd.entry.js → p-ed17283a.entry.js} +1 -1
  416. package/dist/tegel/{p-c917d8be.entry.js → p-ee7f07ae.entry.js} +1 -1
  417. package/dist/tegel/p-ef3671d8.entry.js +1 -0
  418. package/dist/tegel/{p-f1c172a4.entry.js → p-f1b0211a.entry.js} +1 -1
  419. package/dist/tegel/{p-de540cc0.entry.js → p-fa07db58.entry.js} +1 -1
  420. package/dist/tegel/tegel.esm.js +1 -1
  421. package/dist/types/components/accordion/accordion-item/accordion-item.d.ts +2 -0
  422. package/dist/types/components/badge/badge.d.ts +3 -0
  423. package/dist/types/components/banner/banner.d.ts +4 -0
  424. package/dist/types/components/block/block.d.ts +8 -1
  425. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  426. package/dist/types/components/button/button.d.ts +3 -0
  427. package/dist/types/components/checkbox/checkbox.d.ts +1 -1
  428. package/dist/types/components/datetime/datetime.d.ts +2 -2
  429. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +6 -2
  430. package/dist/types/components/dropdown/dropdown.d.ts +27 -24
  431. package/dist/types/components/header/header-item/header-item.d.ts +7 -0
  432. package/dist/types/components/toggle/toggle.d.ts +5 -0
  433. package/dist/types/components/tooltip-beta/tooltip-beta.d.ts +28 -0
  434. package/dist/types/components.d.ts +147 -23
  435. package/dist/types/types/Tooltip.d.ts +4 -0
  436. package/dist/types/utils/axeHelpers.d.ts +2 -0
  437. package/dist/types/utils/convertToString.d.ts +7 -0
  438. package/package.json +5 -5
  439. package/dist/tegel/p-062adc6d.entry.js +0 -1
  440. package/dist/tegel/p-0df92ce7.entry.js +0 -1
  441. package/dist/tegel/p-12303135.entry.js +0 -1
  442. package/dist/tegel/p-14f12f43.entry.js +0 -1
  443. package/dist/tegel/p-1a2f3852.entry.js +0 -1
  444. package/dist/tegel/p-1bc2c73c.entry.js +0 -1
  445. package/dist/tegel/p-26ae4a93.entry.js +0 -1
  446. package/dist/tegel/p-54a105a4.entry.js +0 -1
  447. package/dist/tegel/p-5a891dd2.entry.js +0 -1
  448. package/dist/tegel/p-5d0e8f1e.entry.js +0 -1
  449. package/dist/tegel/p-6938329a.entry.js +0 -1
  450. package/dist/tegel/p-6aabf7e1.entry.js +0 -1
  451. package/dist/tegel/p-7a83cf55.entry.js +0 -1
  452. package/dist/tegel/p-7d39487c.entry.js +0 -1
  453. package/dist/tegel/p-7d83ba98.entry.js +0 -1
  454. package/dist/tegel/p-845e1fca.entry.js +0 -1
  455. package/dist/tegel/p-930e767e.entry.js +0 -1
  456. package/dist/tegel/p-959a6780.entry.js +0 -1
  457. package/dist/tegel/p-9aefb942.entry.js +0 -1
  458. package/dist/tegel/p-9c2dfecc.entry.js +0 -1
  459. package/dist/tegel/p-a9654cd4.entry.js +0 -1
  460. package/dist/tegel/p-ad434031.entry.js +0 -1
  461. package/dist/tegel/p-b00bcf39.entry.js +0 -1
  462. package/dist/tegel/p-b9ac3122.entry.js +0 -1
  463. package/dist/tegel/p-b9e37cf2.entry.js +0 -1
  464. package/dist/tegel/p-bda3d846.entry.js +0 -1
  465. package/dist/tegel/p-cd5219ac.entry.js +0 -1
  466. package/dist/tegel/p-d1cbe5be.entry.js +0 -1
  467. package/dist/tegel/p-dcbd977f.entry.js +0 -1
  468. package/dist/tegel/p-dd060c11.entry.js +0 -1
  469. package/dist/tegel/p-e13935b6.entry.js +0 -1
  470. package/dist/tegel/p-e65dba91.entry.js +0 -1
  471. package/dist/tegel/p-e7108828.entry.js +0 -1
  472. package/dist/tegel/p-e86f2d31.entry.js +0 -1
  473. package/dist/tegel/p-e97a2700.entry.js +0 -1
  474. package/dist/tegel/p-ede11de8.entry.js +0 -1
  475. package/dist/tegel/p-f45d905c.entry.js +0 -1
  476. package/dist/tegel/p-f841f094.entry.js +0 -1
  477. package/dist/tegel/p-fc0079d2.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,34 +88,14 @@ 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) {
@@ -109,6 +104,36 @@ const TdsDropdown = class {
109
104
  else
110
105
  return tdsDropdownOptions;
111
106
  };
107
+ this.getSelectedChildren = () => {
108
+ if (this.selectedOptions.length === 0)
109
+ return [];
110
+ return this.selectedOptions
111
+ .map((stringValue) => {
112
+ var _a;
113
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
114
+ return matchingElement;
115
+ })
116
+ .filter(Boolean);
117
+ };
118
+ this.getSelectedChildrenLabels = () => {
119
+ var _a;
120
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
121
+ };
122
+ this.getValue = () => {
123
+ const labels = this.getSelectedChildrenLabels();
124
+ if (!labels) {
125
+ return '';
126
+ }
127
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
128
+ };
129
+ this.setValueAttribute = () => {
130
+ if (this.selectedOptions.length === 0) {
131
+ this.host.removeAttribute('value');
132
+ }
133
+ else {
134
+ this.host.setAttribute('value', this.selectedOptions.join(','));
135
+ }
136
+ };
112
137
  this.getOpenDirection = () => {
113
138
  var _a, _b, _c, _d, _e;
114
139
  if (this.openDirection === 'auto' || !this.openDirection) {
@@ -122,7 +147,6 @@ const TdsDropdown = class {
122
147
  }
123
148
  return this.openDirection;
124
149
  };
125
- /* Toggles the open state of the Dropdown and sets focus to the input element */
126
150
  this.handleToggleOpen = () => {
127
151
  if (!this.disabled) {
128
152
  this.open = !this.open;
@@ -131,38 +155,10 @@ const TdsDropdown = class {
131
155
  }
132
156
  }
133
157
  };
134
- /* Focuses the input element in the Dropdown, if the reference is present. */
135
158
  this.focusInputElement = () => {
136
159
  if (this.inputElement)
137
160
  this.inputElement.focus();
138
161
  };
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
162
  this.handleFilter = (event) => {
167
163
  this.tdsInput.emit(event);
168
164
  const query = event.target.value.toLowerCase();
@@ -193,8 +189,10 @@ const TdsDropdown = class {
193
189
  this.handleFilterReset = () => {
194
190
  this.reset();
195
191
  this.inputElement.value = '';
196
- this.handleFilter({ target: { value: this.inputElement.value } });
192
+ this.handleFilter({ target: { value: '' } });
197
193
  this.inputElement.focus();
194
+ // Add this line to ensure internal value is cleared
195
+ this.internalValue = '';
198
196
  };
199
197
  this.handleFocus = (event) => {
200
198
  this.open = true;
@@ -208,13 +206,6 @@ const TdsDropdown = class {
208
206
  this.handleBlur = (event) => {
209
207
  this.tdsBlur.emit(event);
210
208
  };
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
209
  this.resetInput = () => {
219
210
  const inputEl = this.host.querySelector('input');
220
211
  if (inputEl) {
@@ -237,16 +228,111 @@ const TdsDropdown = class {
237
228
  this.normalizeText = true;
238
229
  this.noResultText = 'No result';
239
230
  this.defaultValue = undefined;
231
+ this.value = null;
240
232
  this.open = false;
241
- this.value = undefined;
233
+ this.internalValue = undefined;
242
234
  this.filterResult = undefined;
243
235
  this.filterFocus = undefined;
236
+ this.internalDefaultValue = undefined;
237
+ this.selectedOptions = [];
238
+ }
239
+ handleValueChange(newValue) {
240
+ // Normalize to array
241
+ const normalizedValue = this.normalizeValue(newValue);
242
+ // Only update if actually changed
243
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
244
+ this.updateDropdownState(normalizedValue);
245
+ }
246
+ }
247
+ normalizeValue(value) {
248
+ if (!value || value === '')
249
+ return []; // Handle both null and empty string
250
+ // For multiselect, keep array. For single select, wrap in array
251
+ if (this.multiselect) {
252
+ if (Array.isArray(value)) {
253
+ return convertArrayToStrings(value);
254
+ }
255
+ return value
256
+ .toString()
257
+ .split(',')
258
+ .filter((v) => v !== '');
259
+ }
260
+ // Single select - convert to string array
261
+ return Array.isArray(value) ? convertArrayToStrings(value) : [convertToString(value)];
262
+ }
263
+ hasValueChanged(newValue, currentValue) {
264
+ if (newValue.length !== currentValue.length)
265
+ return true;
266
+ return newValue.some((val) => !currentValue.includes(val));
267
+ }
268
+ updateDropdownState(values) {
269
+ // Update internal state
270
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
271
+ // Then update the value prop to match
272
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
273
+ // Force update of internal value
274
+ this.internalValue = this.getValue();
275
+ // Update DOM
276
+ this.updateOptionElements();
277
+ // Update display value
278
+ this.updateDisplayValue();
279
+ // Emit change event
280
+ this.emitChange();
281
+ // Update value attribute
282
+ this.setValueAttribute();
283
+ }
284
+ validateValues(values) {
285
+ return values.filter((val) => {
286
+ var _a;
287
+ const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
288
+ if (!isValid) {
289
+ console.warn(`Option with value "${val}" does not exist`);
290
+ }
291
+ return isValid;
292
+ });
293
+ }
294
+ updateOptionElements() {
295
+ var _a;
296
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
297
+ // Convert element.value to string for comparison
298
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
299
+ });
300
+ }
301
+ updateDisplayValue() {
302
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
303
+ if (this.filter && this.inputElement) {
304
+ this.inputElement.value = this.internalValue;
305
+ }
306
+ }
307
+ emitChange() {
308
+ const value = this.multiselect
309
+ ? this.selectedOptions.join(',')
310
+ : this.selectedOptions[0] || null;
311
+ this.tdsChange.emit({
312
+ name: this.name,
313
+ value: value !== null && value !== void 0 ? value : null,
314
+ });
315
+ }
316
+ async setValue(value) {
317
+ let normalizedValue;
318
+ if (Array.isArray(value)) {
319
+ normalizedValue = convertArrayToStrings(value);
320
+ }
321
+ else {
322
+ normalizedValue = [convertToString(value)];
323
+ }
324
+ this.updateDropdownState(normalizedValue);
325
+ return this.getSelectedChildren().map((element) => ({
326
+ value: element.value,
327
+ label: element.textContent.trim(),
328
+ }));
244
329
  }
245
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
246
330
  async reset() {
247
- this.dropdownList.scrollTop = 0;
248
- this.internalReset();
249
- this.handleChange();
331
+ this.updateDropdownState([]);
332
+ }
333
+ async removeValue(oldValue) {
334
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
335
+ this.updateDropdownState(newValues);
250
336
  }
251
337
  /** Method that forces focus on the input element. */
252
338
  async focusElement() {
@@ -267,79 +353,6 @@ const TdsDropdown = class {
267
353
  * dropdown.setValue(['option-1', 'option-2']);
268
354
  * </code>
269
355
  */
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
356
  async close() {
344
357
  this.open = false;
345
358
  }
@@ -386,12 +399,25 @@ const TdsDropdown = class {
386
399
  handleOpenState() {
387
400
  if (this.filter && this.multiselect) {
388
401
  if (!this.open) {
389
- this.inputElement.value = this.getValue();
402
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
390
403
  }
391
404
  }
392
405
  }
406
+ handleDefaultValueChange(newValue) {
407
+ if (newValue !== undefined && newValue !== null) {
408
+ this.internalDefaultValue = convertToString(newValue);
409
+ this.setDefaultOption();
410
+ }
411
+ }
393
412
  componentWillLoad() {
394
- this.setDefaultOption();
413
+ if (this.defaultValue && !this.value) {
414
+ // Convert defaultValue to string before splitting
415
+ const defaultValueStr = convertToString(this.defaultValue);
416
+ const initialValue = this.multiselect
417
+ ? defaultValueStr.split(',').map(convertToString)
418
+ : [convertToString(this.defaultValue)];
419
+ this.updateDropdownState(initialValue);
420
+ }
395
421
  }
396
422
  /** Method to handle slot changes */
397
423
  handleSlotChange() {
@@ -401,29 +427,16 @@ const TdsDropdown = class {
401
427
  normalizeString(text) {
402
428
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
403
429
  }
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
- });
430
+ /**
431
+ * @internal
432
+ */
433
+ async appendValue(value) {
434
+ if (this.multiselect) {
435
+ this.updateDropdownState([...this.selectedOptions, value]);
436
+ }
437
+ else {
438
+ this.updateDropdownState([value]);
439
+ }
427
440
  }
428
441
  componentDidRender() {
429
442
  const form = this.host.closest('form');
@@ -438,9 +451,14 @@ const TdsDropdown = class {
438
451
  }
439
452
  }
440
453
  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: 'b452aebe0997ce114fff5c7527d7305e97bf6462', role: "select", class: `${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}` }, this.label && this.labelPosition === 'outside' && (index.h("div", { key: '356273d3065daebba4d72a7f30f745dab1eb803e', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), index.h("div", { key: 'c8b617da62a01e0432fee90c243723edde5fecca', class: `dropdown-select ${this.size} ${this.disabled ? 'disabled' : ''}` }, this.filter ? (index.h("div", { class: {
454
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
455
+ return (index.h(index.Host, { key: '490d34545b3a09c3b4342fa09d38f6bf9c782498', role: "select", class: {
456
+ [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
457
+ } }, this.label && this.labelPosition === 'outside' && (index.h("div", { key: '7eb96c0134032654df98a3b68ffb692a2cd91d2b', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), index.h("div", { key: '439fddb188ad65239e9d5451a82ab3bbe8f47fb7', class: {
458
+ 'dropdown-select': true,
459
+ [this.size]: true,
460
+ 'disabled': this.disabled,
461
+ } }, this.filter ? (index.h("div", { class: {
444
462
  filter: true,
445
463
  focus: this.filterFocus,
446
464
  disabled: this.disabled,
@@ -448,24 +466,18 @@ const TdsDropdown = class {
448
466
  } }, 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: `
449
467
  label-inside-as-placeholder
450
468
  ${this.size}
451
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
469
+ ${this.selectedOptions.length ? 'selected' : ''}
452
470
  ` }, this.label)), index.h("input", {
453
471
  // eslint-disable-next-line no-return-assign
454
- ref: (inputEl) => (this.inputElement = inputEl), class: `${this.labelPosition === 'inside' ? 'placeholder' : ''}`, type: "text", placeholder: this.filterFocus ? '' : this.placeholder, value: this.multiselect && this.filterFocus ? '' : this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
472
+ ref: (inputEl) => (this.inputElement = inputEl), class: {
473
+ placeholder: this.labelPosition === 'inside',
474
+ }, type: "text", placeholder: this.filterFocus ? '' : this.placeholder, value: this.multiselect && this.filterFocus ? '' : this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
455
475
  this.filterFocus = false;
456
476
  if (this.multiselect) {
457
477
  this.inputElement.value = this.getValue();
458
478
  }
459
479
  this.handleBlur(event);
460
- }, onFocus: (event) => {
461
- this.open = true;
462
- this.filterFocus = true;
463
- if (this.multiselect) {
464
- this.inputElement.value = '';
465
- }
466
- this.handleFocus(event);
467
- this.handleFilter({ target: { value: '' } });
468
- }, onKeyDown: (event) => {
480
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
469
481
  if (event.key === 'Escape') {
470
482
  this.open = false;
471
483
  }
@@ -474,7 +486,10 @@ const TdsDropdown = class {
474
486
  if (event.key === 'Enter') {
475
487
  this.handleFilterReset();
476
488
  }
477
- }, class: `clear-icon ${this.open && this.inputElement.value !== '' ? '' : 'hide'}`, name: "cross", size: "16px" }), index.h("tds-icon", { tabIndex: 0, role: "button", "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", onClick: this.handleToggleOpen, onKeyDown: (event) => {
489
+ }, class: {
490
+ 'clear-icon': true,
491
+ 'hide': !(this.open && this.inputElement.value !== ''),
492
+ }, name: "cross", size: "16px" }), index.h("tds-icon", { tabIndex: 0, role: "button", "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", onClick: this.handleToggleOpen, onKeyDown: (event) => {
478
493
  if (event.key === 'Enter') {
479
494
  this.handleToggleOpen();
480
495
  }
@@ -483,14 +498,16 @@ const TdsDropdown = class {
483
498
  this.open = false;
484
499
  }
485
500
  }, class: `
486
- ${this.value ? 'value' : 'placeholder'}
501
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
487
502
  ${this.open ? 'open' : 'closed'}
488
503
  ${this.error ? 'error' : ''}
489
504
  `, 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: `
490
505
  label-inside-as-placeholder
491
506
  ${this.size}
492
- ${((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) ? 'selected' : ''}
493
- ` }, 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: 'bd702f67929bfd42350b11a9680e007dd74e4bad', ref: (element) => (this.dropdownList = element), class: {
507
+ ${this.selectedOptions.length ? 'selected' : ''}
508
+ ` }, 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: 'd6381f78466994f05415cf8981b3cedaaf4df6a9', ref: (element) => {
509
+ this.dropdownList = element;
510
+ }, class: {
494
511
  'dropdown-list': true,
495
512
  [this.size]: true,
496
513
  [this.getOpenDirection()]: true,
@@ -499,11 +516,17 @@ const TdsDropdown = class {
499
516
  'closed': !this.open,
500
517
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
501
518
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
502
- } }, index.h("slot", { key: '64c67c8aa6aa68089c59de1fdedb915ea4beb3af', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (index.h("div", { key: '2152a99732579e2c2f7e82d450743e67d8b9f263', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (index.h("div", { key: 'fbc4ebc39a4ca4fc49a77ea1160042ad1de005ec', class: `helper ${this.error ? 'error' : ''} ${this.disabled ? 'disabled' : ''}` }, this.error && index.h("tds-icon", { key: '318107cbe939b82250bb97bfbceae4017e438ba1', name: "error", size: "16px" }), this.helper))));
519
+ } }, index.h("slot", { key: 'c36a9cb5398a7d290f11576431982e869986e4a0', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (index.h("div", { key: '5ec07552d105f8a4addc46da0172f67cf9233817', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (index.h("div", { key: 'b3e240c31060f2d2bce6e3647f903f9ff1250ed5', class: {
520
+ helper: true,
521
+ error: this.error,
522
+ disabled: this.disabled,
523
+ } }, this.error && index.h("tds-icon", { key: 'c0eb10dfeaa5236f5ac02dabf44329e85d52dcda', name: "error", size: "16px" }), this.helper))));
503
524
  }
504
525
  get host() { return index.getElement(this); }
505
526
  static get watchers() { return {
506
- "open": ["handleOpenState"]
527
+ "value": ["handleValueChange"],
528
+ "open": ["handleOpenState"],
529
+ "defaultValue": ["handleDefaultValueChange"]
507
530
  }; }
508
531
  };
509
532
  TdsDropdown.style = TdsDropdownStyle0;
@@ -517,22 +540,32 @@ const TdsDropdownOption = class {
517
540
  this.tdsSelect = index.createEvent(this, "tdsSelect", 6);
518
541
  this.tdsFocus = index.createEvent(this, "tdsFocus", 6);
519
542
  this.tdsBlur = index.createEvent(this, "tdsBlur", 6);
543
+ this.parentElement = null;
544
+ // @ts-ignore
545
+ // eslint-disable-next-line no-unused-vars,
546
+ this.label = '';
520
547
  this.componentWillRender = () => {
548
+ var _a, _b, _c;
549
+ if (!this.host.parentElement) {
550
+ return;
551
+ }
521
552
  this.parentElement =
522
- this.host.parentElement.tagName === 'TDS-DROPDOWN'
553
+ ((_a = this.host.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === 'TDS-DROPDOWN'
523
554
  ? this.host.parentElement
524
555
  : this.host.getRootNode().host;
525
- this.multiselect = this.parentElement.multiselect;
526
- this.size = this.parentElement.size;
527
- this.label = this.host.textContent.trim();
556
+ if (this.parentElement) {
557
+ this.multiselect = (_b = this.parentElement.multiselect) !== null && _b !== void 0 ? _b : false;
558
+ this.size = this.parentElement.size || 'lg';
559
+ }
560
+ this.label = ((_c = this.host.textContent) === null || _c === void 0 ? void 0 : _c.trim()) || '';
528
561
  };
529
562
  this.handleSingleSelect = () => {
530
563
  if (!this.disabled) {
531
564
  this.selected = true;
532
- this.parentElement.appendValue(this.value);
565
+ this.parentElement.appendValue(this.internalValue);
533
566
  this.parentElement.close();
534
567
  this.tdsSelect.emit({
535
- value: this.value,
568
+ value: this.internalValue,
536
569
  selected: this.selected,
537
570
  });
538
571
  }
@@ -540,18 +573,18 @@ const TdsDropdownOption = class {
540
573
  this.handleMultiselect = (event) => {
541
574
  if (!this.disabled) {
542
575
  if (event.detail.checked) {
543
- this.parentElement.appendValue(this.value);
576
+ this.parentElement.appendValue(this.internalValue);
544
577
  this.selected = true;
545
578
  this.tdsSelect.emit({
546
- value: this.value,
579
+ value: this.internalValue,
547
580
  selected: this.selected,
548
581
  });
549
582
  }
550
583
  else {
551
- this.parentElement.removeValue(this.value);
584
+ this.parentElement.removeValue(this.internalValue);
552
585
  this.selected = false;
553
586
  this.tdsSelect.emit({
554
- value: this.value,
587
+ value: this.internalValue,
555
588
  selected: this.selected,
556
589
  });
557
590
  }
@@ -565,17 +598,24 @@ const TdsDropdownOption = class {
565
598
  this.tdsBlur.emit(event);
566
599
  };
567
600
  this.value = undefined;
601
+ this.internalValue = undefined;
568
602
  this.disabled = false;
569
603
  this.selected = false;
570
- this.multiselect = undefined;
604
+ this.multiselect = false;
571
605
  this.size = 'lg';
572
606
  }
573
607
  /** Method to select/deselect an option. */
574
608
  async setSelected(selected) {
575
609
  this.selected = selected;
576
610
  }
611
+ valueWatcher(newValue) {
612
+ this.internalValue = convertToString(newValue);
613
+ }
614
+ componentWillLoad() {
615
+ this.internalValue = convertToString(this.value);
616
+ }
577
617
  render() {
578
- return (index.h(index.Host, { key: '1cb00a19c5dbcc47e1b2bc97d1d5ccc8ac5a532a', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, index.h("div", { key: '5deaf44c7306f4b1856200bf0a5640e99fcb449d', class: `dropdown-option
618
+ 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
579
619
  ${this.size}
580
620
  ${this.selected ? 'selected' : ''}
581
621
  ${this.disabled ? 'disabled' : ''}
@@ -593,6 +633,9 @@ const TdsDropdownOption = class {
593
633
  }
594
634
  static get delegatesFocus() { return true; }
595
635
  get host() { return index.getElement(this); }
636
+ static get watchers() { return {
637
+ "value": ["valueWatcher"]
638
+ }; }
596
639
  };
597
640
  TdsDropdownOption.style = TdsDropdownOptionStyle0;
598
641
 
@@ -23,8 +23,10 @@ const TdsFolderTab = class {
23
23
  this.selected = selected;
24
24
  }
25
25
  render() {
26
- return (index.h(index.Host, { key: '37ae53ec0d9c0bc3674365d14d61c6b1fbafe168', role: "listitem" }, index.h("div", { key: 'a977243b499569668ef7428829644f3f2ca23033', class: `${this.disabled ? 'disabled' : ''}
27
- ${this.selected ? 'selected' : ''}`, style: { width: `${this.tabWidth}px` } }, index.h("slot", { key: '1e8b9cc10f032a64ffef70bb061f57ddc8a4a1a5' }))));
26
+ return (index.h(index.Host, { key: '919cd453da1e3649fb5da8783ab8fabc47322d47', role: "listitem" }, index.h("div", { key: 'f00bf3eea1ee0d670d8989e23e27d6c54fbe7c17', class: {
27
+ selected: this.selected,
28
+ disabled: this.disabled,
29
+ }, style: { width: `${this.tabWidth}px` } }, index.h("slot", { key: '3e3bd62fd02c922fa0592dc0f2dae5a8b49d6c4c' }))));
28
30
  }
29
31
  };
30
32
  TdsFolderTab.style = TdsFolderTabStyle0;