@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
@@ -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,34 +84,14 @@ 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) {
@@ -105,6 +100,36 @@ const TdsDropdown = class {
105
100
  else
106
101
  return tdsDropdownOptions;
107
102
  };
103
+ this.getSelectedChildren = () => {
104
+ if (this.selectedOptions.length === 0)
105
+ return [];
106
+ return this.selectedOptions
107
+ .map((stringValue) => {
108
+ var _a;
109
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
110
+ return matchingElement;
111
+ })
112
+ .filter(Boolean);
113
+ };
114
+ this.getSelectedChildrenLabels = () => {
115
+ var _a;
116
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
117
+ };
118
+ this.getValue = () => {
119
+ const labels = this.getSelectedChildrenLabels();
120
+ if (!labels) {
121
+ return '';
122
+ }
123
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
124
+ };
125
+ this.setValueAttribute = () => {
126
+ if (this.selectedOptions.length === 0) {
127
+ this.host.removeAttribute('value');
128
+ }
129
+ else {
130
+ this.host.setAttribute('value', this.selectedOptions.join(','));
131
+ }
132
+ };
108
133
  this.getOpenDirection = () => {
109
134
  var _a, _b, _c, _d, _e;
110
135
  if (this.openDirection === 'auto' || !this.openDirection) {
@@ -118,7 +143,6 @@ const TdsDropdown = class {
118
143
  }
119
144
  return this.openDirection;
120
145
  };
121
- /* Toggles the open state of the Dropdown and sets focus to the input element */
122
146
  this.handleToggleOpen = () => {
123
147
  if (!this.disabled) {
124
148
  this.open = !this.open;
@@ -127,38 +151,10 @@ const TdsDropdown = class {
127
151
  }
128
152
  }
129
153
  };
130
- /* Focuses the input element in the Dropdown, if the reference is present. */
131
154
  this.focusInputElement = () => {
132
155
  if (this.inputElement)
133
156
  this.inputElement.focus();
134
157
  };
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
158
  this.handleFilter = (event) => {
163
159
  this.tdsInput.emit(event);
164
160
  const query = event.target.value.toLowerCase();
@@ -189,8 +185,10 @@ const TdsDropdown = class {
189
185
  this.handleFilterReset = () => {
190
186
  this.reset();
191
187
  this.inputElement.value = '';
192
- this.handleFilter({ target: { value: this.inputElement.value } });
188
+ this.handleFilter({ target: { value: '' } });
193
189
  this.inputElement.focus();
190
+ // Add this line to ensure internal value is cleared
191
+ this.internalValue = '';
194
192
  };
195
193
  this.handleFocus = (event) => {
196
194
  this.open = true;
@@ -204,13 +202,6 @@ const TdsDropdown = class {
204
202
  this.handleBlur = (event) => {
205
203
  this.tdsBlur.emit(event);
206
204
  };
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
205
  this.resetInput = () => {
215
206
  const inputEl = this.host.querySelector('input');
216
207
  if (inputEl) {
@@ -233,16 +224,111 @@ const TdsDropdown = class {
233
224
  this.normalizeText = true;
234
225
  this.noResultText = 'No result';
235
226
  this.defaultValue = undefined;
227
+ this.value = null;
236
228
  this.open = false;
237
- this.value = undefined;
229
+ this.internalValue = undefined;
238
230
  this.filterResult = undefined;
239
231
  this.filterFocus = undefined;
232
+ this.internalDefaultValue = undefined;
233
+ this.selectedOptions = [];
234
+ }
235
+ handleValueChange(newValue) {
236
+ // Normalize to array
237
+ const normalizedValue = this.normalizeValue(newValue);
238
+ // Only update if actually changed
239
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
240
+ this.updateDropdownState(normalizedValue);
241
+ }
242
+ }
243
+ normalizeValue(value) {
244
+ if (!value || value === '')
245
+ return []; // Handle both null and empty string
246
+ // For multiselect, keep array. For single select, wrap in array
247
+ if (this.multiselect) {
248
+ if (Array.isArray(value)) {
249
+ return convertArrayToStrings(value);
250
+ }
251
+ return value
252
+ .toString()
253
+ .split(',')
254
+ .filter((v) => v !== '');
255
+ }
256
+ // Single select - convert to string array
257
+ return Array.isArray(value) ? convertArrayToStrings(value) : [convertToString(value)];
258
+ }
259
+ hasValueChanged(newValue, currentValue) {
260
+ if (newValue.length !== currentValue.length)
261
+ return true;
262
+ return newValue.some((val) => !currentValue.includes(val));
263
+ }
264
+ updateDropdownState(values) {
265
+ // Update internal state
266
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
267
+ // Then update the value prop to match
268
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
269
+ // Force update of internal value
270
+ this.internalValue = this.getValue();
271
+ // Update DOM
272
+ this.updateOptionElements();
273
+ // Update display value
274
+ this.updateDisplayValue();
275
+ // Emit change event
276
+ this.emitChange();
277
+ // Update value attribute
278
+ this.setValueAttribute();
279
+ }
280
+ validateValues(values) {
281
+ return values.filter((val) => {
282
+ var _a;
283
+ const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
284
+ if (!isValid) {
285
+ console.warn(`Option with value "${val}" does not exist`);
286
+ }
287
+ return isValid;
288
+ });
289
+ }
290
+ updateOptionElements() {
291
+ var _a;
292
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
293
+ // Convert element.value to string for comparison
294
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
295
+ });
296
+ }
297
+ updateDisplayValue() {
298
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
299
+ if (this.filter && this.inputElement) {
300
+ this.inputElement.value = this.internalValue;
301
+ }
302
+ }
303
+ emitChange() {
304
+ const value = this.multiselect
305
+ ? this.selectedOptions.join(',')
306
+ : this.selectedOptions[0] || null;
307
+ this.tdsChange.emit({
308
+ name: this.name,
309
+ value: value !== null && value !== void 0 ? value : null,
310
+ });
311
+ }
312
+ async setValue(value) {
313
+ let normalizedValue;
314
+ if (Array.isArray(value)) {
315
+ normalizedValue = convertArrayToStrings(value);
316
+ }
317
+ else {
318
+ normalizedValue = [convertToString(value)];
319
+ }
320
+ this.updateDropdownState(normalizedValue);
321
+ return this.getSelectedChildren().map((element) => ({
322
+ value: element.value,
323
+ label: element.textContent.trim(),
324
+ }));
240
325
  }
241
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
242
326
  async reset() {
243
- this.dropdownList.scrollTop = 0;
244
- this.internalReset();
245
- this.handleChange();
327
+ this.updateDropdownState([]);
328
+ }
329
+ async removeValue(oldValue) {
330
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
331
+ this.updateDropdownState(newValues);
246
332
  }
247
333
  /** Method that forces focus on the input element. */
248
334
  async focusElement() {
@@ -263,79 +349,6 @@ const TdsDropdown = class {
263
349
  * dropdown.setValue(['option-1', 'option-2']);
264
350
  * </code>
265
351
  */
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
352
  async close() {
340
353
  this.open = false;
341
354
  }
@@ -382,12 +395,25 @@ const TdsDropdown = class {
382
395
  handleOpenState() {
383
396
  if (this.filter && this.multiselect) {
384
397
  if (!this.open) {
385
- this.inputElement.value = this.getValue();
398
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
386
399
  }
387
400
  }
388
401
  }
402
+ handleDefaultValueChange(newValue) {
403
+ if (newValue !== undefined && newValue !== null) {
404
+ this.internalDefaultValue = convertToString(newValue);
405
+ this.setDefaultOption();
406
+ }
407
+ }
389
408
  componentWillLoad() {
390
- this.setDefaultOption();
409
+ if (this.defaultValue && !this.value) {
410
+ // Convert defaultValue to string before splitting
411
+ const defaultValueStr = convertToString(this.defaultValue);
412
+ const initialValue = this.multiselect
413
+ ? defaultValueStr.split(',').map(convertToString)
414
+ : [convertToString(this.defaultValue)];
415
+ this.updateDropdownState(initialValue);
416
+ }
391
417
  }
392
418
  /** Method to handle slot changes */
393
419
  handleSlotChange() {
@@ -397,29 +423,16 @@ const TdsDropdown = class {
397
423
  normalizeString(text) {
398
424
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
399
425
  }
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
- });
426
+ /**
427
+ * @internal
428
+ */
429
+ async appendValue(value) {
430
+ if (this.multiselect) {
431
+ this.updateDropdownState([...this.selectedOptions, value]);
432
+ }
433
+ else {
434
+ this.updateDropdownState([value]);
435
+ }
423
436
  }
424
437
  componentDidRender() {
425
438
  const form = this.host.closest('form');
@@ -434,9 +447,14 @@ const TdsDropdown = class {
434
447
  }
435
448
  }
436
449
  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: 'b452aebe0997ce114fff5c7527d7305e97bf6462', role: "select", class: `${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}` }, this.label && this.labelPosition === 'outside' && (h("div", { key: '356273d3065daebba4d72a7f30f745dab1eb803e', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: 'c8b617da62a01e0432fee90c243723edde5fecca', class: `dropdown-select ${this.size} ${this.disabled ? 'disabled' : ''}` }, this.filter ? (h("div", { class: {
450
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
451
+ return (h(Host, { key: '490d34545b3a09c3b4342fa09d38f6bf9c782498', role: "select", class: {
452
+ [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
453
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: '7eb96c0134032654df98a3b68ffb692a2cd91d2b', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '439fddb188ad65239e9d5451a82ab3bbe8f47fb7', class: {
454
+ 'dropdown-select': true,
455
+ [this.size]: true,
456
+ 'disabled': this.disabled,
457
+ } }, this.filter ? (h("div", { class: {
440
458
  filter: true,
441
459
  focus: this.filterFocus,
442
460
  disabled: this.disabled,
@@ -444,24 +462,18 @@ const TdsDropdown = class {
444
462
  } }, 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: `
445
463
  label-inside-as-placeholder
446
464
  ${this.size}
447
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
465
+ ${this.selectedOptions.length ? 'selected' : ''}
448
466
  ` }, this.label)), h("input", {
449
467
  // eslint-disable-next-line no-return-assign
450
- 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) => {
468
+ ref: (inputEl) => (this.inputElement = inputEl), class: {
469
+ placeholder: this.labelPosition === 'inside',
470
+ }, type: "text", placeholder: this.filterFocus ? '' : this.placeholder, value: this.multiselect && this.filterFocus ? '' : this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
451
471
  this.filterFocus = false;
452
472
  if (this.multiselect) {
453
473
  this.inputElement.value = this.getValue();
454
474
  }
455
475
  this.handleBlur(event);
456
- }, onFocus: (event) => {
457
- this.open = true;
458
- this.filterFocus = true;
459
- if (this.multiselect) {
460
- this.inputElement.value = '';
461
- }
462
- this.handleFocus(event);
463
- this.handleFilter({ target: { value: '' } });
464
- }, onKeyDown: (event) => {
476
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
465
477
  if (event.key === 'Escape') {
466
478
  this.open = false;
467
479
  }
@@ -470,7 +482,10 @@ const TdsDropdown = class {
470
482
  if (event.key === 'Enter') {
471
483
  this.handleFilterReset();
472
484
  }
473
- }, class: `clear-icon ${this.open && this.inputElement.value !== '' ? '' : 'hide'}`, name: "cross", size: "16px" }), h("tds-icon", { tabIndex: 0, role: "button", "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", onClick: this.handleToggleOpen, onKeyDown: (event) => {
485
+ }, class: {
486
+ 'clear-icon': true,
487
+ 'hide': !(this.open && this.inputElement.value !== ''),
488
+ }, name: "cross", size: "16px" }), h("tds-icon", { tabIndex: 0, role: "button", "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", onClick: this.handleToggleOpen, onKeyDown: (event) => {
474
489
  if (event.key === 'Enter') {
475
490
  this.handleToggleOpen();
476
491
  }
@@ -479,14 +494,16 @@ const TdsDropdown = class {
479
494
  this.open = false;
480
495
  }
481
496
  }, class: `
482
- ${this.value ? 'value' : 'placeholder'}
497
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
483
498
  ${this.open ? 'open' : 'closed'}
484
499
  ${this.error ? 'error' : ''}
485
500
  `, 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: `
486
501
  label-inside-as-placeholder
487
502
  ${this.size}
488
- ${((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) ? 'selected' : ''}
489
- ` }, 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: 'bd702f67929bfd42350b11a9680e007dd74e4bad', ref: (element) => (this.dropdownList = element), class: {
503
+ ${this.selectedOptions.length ? 'selected' : ''}
504
+ ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, this.selectedOptions.length ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: 'd6381f78466994f05415cf8981b3cedaaf4df6a9', ref: (element) => {
505
+ this.dropdownList = element;
506
+ }, class: {
490
507
  'dropdown-list': true,
491
508
  [this.size]: true,
492
509
  [this.getOpenDirection()]: true,
@@ -495,11 +512,17 @@ const TdsDropdown = class {
495
512
  'closed': !this.open,
496
513
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
497
514
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
498
- } }, h("slot", { key: '64c67c8aa6aa68089c59de1fdedb915ea4beb3af', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '2152a99732579e2c2f7e82d450743e67d8b9f263', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'fbc4ebc39a4ca4fc49a77ea1160042ad1de005ec', class: `helper ${this.error ? 'error' : ''} ${this.disabled ? 'disabled' : ''}` }, this.error && h("tds-icon", { key: '318107cbe939b82250bb97bfbceae4017e438ba1', name: "error", size: "16px" }), this.helper))));
515
+ } }, h("slot", { key: 'c36a9cb5398a7d290f11576431982e869986e4a0', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '5ec07552d105f8a4addc46da0172f67cf9233817', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'b3e240c31060f2d2bce6e3647f903f9ff1250ed5', class: {
516
+ helper: true,
517
+ error: this.error,
518
+ disabled: this.disabled,
519
+ } }, this.error && h("tds-icon", { key: 'c0eb10dfeaa5236f5ac02dabf44329e85d52dcda', name: "error", size: "16px" }), this.helper))));
499
520
  }
500
521
  get host() { return getElement(this); }
501
522
  static get watchers() { return {
502
- "open": ["handleOpenState"]
523
+ "value": ["handleValueChange"],
524
+ "open": ["handleOpenState"],
525
+ "defaultValue": ["handleDefaultValueChange"]
503
526
  }; }
504
527
  };
505
528
  TdsDropdown.style = TdsDropdownStyle0;
@@ -513,22 +536,32 @@ const TdsDropdownOption = class {
513
536
  this.tdsSelect = createEvent(this, "tdsSelect", 6);
514
537
  this.tdsFocus = createEvent(this, "tdsFocus", 6);
515
538
  this.tdsBlur = createEvent(this, "tdsBlur", 6);
539
+ this.parentElement = null;
540
+ // @ts-ignore
541
+ // eslint-disable-next-line no-unused-vars,
542
+ this.label = '';
516
543
  this.componentWillRender = () => {
544
+ var _a, _b, _c;
545
+ if (!this.host.parentElement) {
546
+ return;
547
+ }
517
548
  this.parentElement =
518
- this.host.parentElement.tagName === 'TDS-DROPDOWN'
549
+ ((_a = this.host.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === 'TDS-DROPDOWN'
519
550
  ? this.host.parentElement
520
551
  : this.host.getRootNode().host;
521
- this.multiselect = this.parentElement.multiselect;
522
- this.size = this.parentElement.size;
523
- this.label = this.host.textContent.trim();
552
+ if (this.parentElement) {
553
+ this.multiselect = (_b = this.parentElement.multiselect) !== null && _b !== void 0 ? _b : false;
554
+ this.size = this.parentElement.size || 'lg';
555
+ }
556
+ this.label = ((_c = this.host.textContent) === null || _c === void 0 ? void 0 : _c.trim()) || '';
524
557
  };
525
558
  this.handleSingleSelect = () => {
526
559
  if (!this.disabled) {
527
560
  this.selected = true;
528
- this.parentElement.appendValue(this.value);
561
+ this.parentElement.appendValue(this.internalValue);
529
562
  this.parentElement.close();
530
563
  this.tdsSelect.emit({
531
- value: this.value,
564
+ value: this.internalValue,
532
565
  selected: this.selected,
533
566
  });
534
567
  }
@@ -536,18 +569,18 @@ const TdsDropdownOption = class {
536
569
  this.handleMultiselect = (event) => {
537
570
  if (!this.disabled) {
538
571
  if (event.detail.checked) {
539
- this.parentElement.appendValue(this.value);
572
+ this.parentElement.appendValue(this.internalValue);
540
573
  this.selected = true;
541
574
  this.tdsSelect.emit({
542
- value: this.value,
575
+ value: this.internalValue,
543
576
  selected: this.selected,
544
577
  });
545
578
  }
546
579
  else {
547
- this.parentElement.removeValue(this.value);
580
+ this.parentElement.removeValue(this.internalValue);
548
581
  this.selected = false;
549
582
  this.tdsSelect.emit({
550
- value: this.value,
583
+ value: this.internalValue,
551
584
  selected: this.selected,
552
585
  });
553
586
  }
@@ -561,17 +594,24 @@ const TdsDropdownOption = class {
561
594
  this.tdsBlur.emit(event);
562
595
  };
563
596
  this.value = undefined;
597
+ this.internalValue = undefined;
564
598
  this.disabled = false;
565
599
  this.selected = false;
566
- this.multiselect = undefined;
600
+ this.multiselect = false;
567
601
  this.size = 'lg';
568
602
  }
569
603
  /** Method to select/deselect an option. */
570
604
  async setSelected(selected) {
571
605
  this.selected = selected;
572
606
  }
607
+ valueWatcher(newValue) {
608
+ this.internalValue = convertToString(newValue);
609
+ }
610
+ componentWillLoad() {
611
+ this.internalValue = convertToString(this.value);
612
+ }
573
613
  render() {
574
- return (h(Host, { key: '1cb00a19c5dbcc47e1b2bc97d1d5ccc8ac5a532a', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, h("div", { key: '5deaf44c7306f4b1856200bf0a5640e99fcb449d', class: `dropdown-option
614
+ return (h(Host, { key: 'af1229553e89c02aca1d7c11bbc80acd25ce44b5', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, h("div", { key: 'c93eb33d1864028690ab981c0f676f03993265c4', class: `dropdown-option
575
615
  ${this.size}
576
616
  ${this.selected ? 'selected' : ''}
577
617
  ${this.disabled ? 'disabled' : ''}
@@ -589,6 +629,9 @@ const TdsDropdownOption = class {
589
629
  }
590
630
  static get delegatesFocus() { return true; }
591
631
  get host() { return getElement(this); }
632
+ static get watchers() { return {
633
+ "value": ["valueWatcher"]
634
+ }; }
592
635
  };
593
636
  TdsDropdownOption.style = TdsDropdownOptionStyle0;
594
637
 
@@ -19,8 +19,10 @@ const TdsFolderTab = class {
19
19
  this.selected = selected;
20
20
  }
21
21
  render() {
22
- return (h(Host, { key: '37ae53ec0d9c0bc3674365d14d61c6b1fbafe168', role: "listitem" }, h("div", { key: 'a977243b499569668ef7428829644f3f2ca23033', class: `${this.disabled ? 'disabled' : ''}
23
- ${this.selected ? 'selected' : ''}`, style: { width: `${this.tabWidth}px` } }, h("slot", { key: '1e8b9cc10f032a64ffef70bb061f57ddc8a4a1a5' }))));
22
+ return (h(Host, { key: '919cd453da1e3649fb5da8783ab8fabc47322d47', role: "listitem" }, h("div", { key: 'f00bf3eea1ee0d670d8989e23e27d6c54fbe7c17', class: {
23
+ selected: this.selected,
24
+ disabled: this.disabled,
25
+ }, style: { width: `${this.tabWidth}px` } }, h("slot", { key: '3e3bd62fd02c922fa0592dc0f2dae5a8b49d6c4c' }))));
24
26
  }
25
27
  };
26
28
  TdsFolderTab.style = TdsFolderTabStyle0;