@scania/tegel 1.24.0-value-prop.beta.6 → 1.25.0-fix-a11y-checkbox-beta.1

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 (443) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-accordion-item.cjs.entry.js +7 -4
  3. package/dist/cjs/tds-badge.cjs.entry.js +6 -1
  4. package/dist/cjs/tds-banner.cjs.entry.js +6 -2
  5. package/dist/cjs/tds-block.cjs.entry.js +10 -6
  6. package/dist/cjs/tds-body-cell.cjs.entry.js +9 -6
  7. package/dist/cjs/tds-breadcrumb.cjs.entry.js +1 -1
  8. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +1 -1
  9. package/dist/cjs/tds-button.cjs.entry.js +4 -2
  10. package/dist/cjs/tds-card.cjs.entry.js +9 -5
  11. package/dist/cjs/tds-checkbox.cjs.entry.js +17 -3
  12. package/dist/cjs/tds-chip.cjs.entry.js +1 -1
  13. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +3 -3
  14. package/dist/cjs/tds-datetime.cjs.entry.js +2 -2
  15. package/dist/cjs/tds-divider.cjs.entry.js +1 -1
  16. package/dist/cjs/tds-dropdown_2.cjs.entry.js +262 -156
  17. package/dist/cjs/tds-folder-tab.cjs.entry.js +4 -2
  18. package/dist/cjs/tds-folder-tabs.cjs.entry.js +2 -2
  19. package/dist/cjs/tds-footer-group.cjs.entry.js +3 -3
  20. package/dist/cjs/tds-footer-item.cjs.entry.js +1 -1
  21. package/dist/cjs/tds-footer.cjs.entry.js +3 -1
  22. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +1 -1
  23. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  24. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  25. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +1 -1
  26. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +1 -1
  27. package/dist/cjs/tds-header-dropdown.cjs.entry.js +3 -3
  28. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  29. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-grid-item.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +1 -1
  32. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  33. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  34. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +1 -1
  35. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +1 -1
  36. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  37. package/dist/cjs/tds-header-title.cjs.entry.js +1 -1
  38. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  39. package/dist/cjs/tds-icon.cjs.entry.js +1 -1
  40. package/dist/cjs/tds-inline-tab.cjs.entry.js +5 -2
  41. package/dist/cjs/tds-inline-tabs.cjs.entry.js +2 -2
  42. package/dist/cjs/tds-link.cjs.entry.js +5 -5
  43. package/dist/cjs/tds-message.cjs.entry.js +6 -4
  44. package/dist/cjs/tds-modal.cjs.entry.js +4 -1
  45. package/dist/cjs/tds-navigation-tab.cjs.entry.js +2 -2
  46. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +8 -2
  47. package/dist/cjs/tds-popover-canvas.cjs.entry.js +2 -2
  48. package/dist/cjs/tds-popover-core.cjs.entry.js +1 -1
  49. package/dist/cjs/tds-popover-menu-item.cjs.entry.js +2 -2
  50. package/dist/cjs/tds-popover-menu.cjs.entry.js +2 -2
  51. package/dist/cjs/tds-radio-button.cjs.entry.js +1 -1
  52. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  53. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -4
  54. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +2 -2
  55. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +2 -2
  56. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +3 -3
  57. package/dist/cjs/tds-side-menu-item.cjs.entry.js +2 -2
  58. package/dist/cjs/tds-side-menu-overlay.cjs.entry.js +1 -1
  59. package/dist/cjs/tds-side-menu-user-image_2.cjs.entry.js +2 -2
  60. package/dist/cjs/tds-side-menu-user.cjs.entry.js +1 -1
  61. package/dist/cjs/tds-slider.cjs.entry.js +8 -8
  62. package/dist/cjs/tds-spinner.cjs.entry.js +1 -1
  63. package/dist/cjs/tds-step.cjs.entry.js +1 -1
  64. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  65. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +7 -7
  66. package/dist/cjs/tds-table-body-row.cjs.entry.js +9 -6
  67. package/dist/cjs/tds-table-body.cjs.entry.js +2 -2
  68. package/dist/cjs/tds-table-footer.cjs.entry.js +3 -3
  69. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  70. package/dist/cjs/tds-table-header.cjs.entry.js +2 -2
  71. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  72. package/dist/cjs/tds-text-field.cjs.entry.js +8 -6
  73. package/dist/cjs/tds-textarea.cjs.entry.js +14 -12
  74. package/dist/cjs/tds-toast.cjs.entry.js +3 -3
  75. package/dist/cjs/tds-toggle.cjs.entry.js +4 -1
  76. package/dist/cjs/tds-tooltip.cjs.entry.js +2 -2
  77. package/dist/cjs/tegel.cjs.js +1 -1
  78. package/dist/collection/components/accordion/accordion-item/accordion-item.js +25 -4
  79. package/dist/collection/components/badge/badge.js +6 -1
  80. package/dist/collection/components/banner/banner.js +6 -2
  81. package/dist/collection/components/block/block.js +10 -6
  82. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +1 -1
  83. package/dist/collection/components/breadcrumbs/breadcrumbs.js +1 -1
  84. package/dist/collection/components/button/button.js +4 -2
  85. package/dist/collection/components/card/card.js +9 -5
  86. package/dist/collection/components/checkbox/checkbox.js +17 -3
  87. package/dist/collection/components/chip/chip.js +1 -1
  88. package/dist/collection/components/datetime/datetime.js +2 -2
  89. package/dist/collection/components/divider/divider.js +1 -1
  90. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +26 -11
  91. package/dist/collection/components/dropdown/dropdown.js +283 -226
  92. package/dist/collection/components/footer/footer-group/footer-group.js +3 -3
  93. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  94. package/dist/collection/components/footer/footer.js +3 -1
  95. package/dist/collection/components/header/core-header-item/core-header-item.js +1 -1
  96. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +1 -1
  97. package/dist/collection/components/header/header-dropdown/header-dropdown.js +3 -3
  98. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +1 -1
  99. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +2 -2
  100. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +1 -1
  101. package/dist/collection/components/header/header-hamburger/header-hamburger.js +1 -1
  102. package/dist/collection/components/header/header-item/header-item.js +2 -2
  103. package/dist/collection/components/header/header-launcher/header-launcher.js +2 -2
  104. package/dist/collection/components/header/header-launcher-button/header-launcher-button.js +1 -1
  105. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +1 -1
  106. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +1 -1
  107. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +1 -1
  108. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +1 -1
  109. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +1 -1
  110. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +1 -1
  111. package/dist/collection/components/header/header-title/header-title.js +1 -1
  112. package/dist/collection/components/header/header.js +1 -1
  113. package/dist/collection/components/icon/icon.js +1 -1
  114. package/dist/collection/components/link/link.js +5 -5
  115. package/dist/collection/components/message/message.js +6 -4
  116. package/dist/collection/components/modal/modal.js +4 -1
  117. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  118. package/dist/collection/components/popover-core/popover-core.js +1 -1
  119. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  120. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  121. package/dist/collection/components/radio-button/radio-button.js +1 -1
  122. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  123. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  124. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  125. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  126. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  127. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  128. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  129. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  130. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  131. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  132. package/dist/collection/components/slider/slider.css +13 -0
  133. package/dist/collection/components/slider/slider.js +7 -7
  134. package/dist/collection/components/spinner/spinner.js +1 -1
  135. package/dist/collection/components/stepper/step/step.js +1 -1
  136. package/dist/collection/components/table/table-body/table-body.js +2 -2
  137. package/dist/collection/components/table/table-body-cell/table-body-cell.js +9 -6
  138. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  139. package/dist/collection/components/table/table-body-row/table-body-row.js +9 -6
  140. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  141. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  142. package/dist/collection/components/table/table-header/table-header.js +2 -2
  143. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  144. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  145. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  146. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +4 -2
  147. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +2 -2
  148. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +5 -2
  149. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +2 -2
  150. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +2 -2
  151. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +8 -2
  152. package/dist/collection/components/text-field/text-field.js +9 -7
  153. package/dist/collection/components/textarea/textarea.js +14 -12
  154. package/dist/collection/components/toast/toast.js +3 -3
  155. package/dist/collection/components/toggle/toggle.js +4 -1
  156. package/dist/collection/components/tooltip/tooltip.js +2 -2
  157. package/dist/collection/utils/axeHelpers.js +3 -0
  158. package/dist/collection/utils/convertToString.js +14 -0
  159. package/dist/components/{p-0c3cab16.js → p-2ef329f1.js} +2 -2
  160. package/dist/components/{p-5e1a9abc.js → p-3351035f.js} +1 -1
  161. package/dist/components/{p-0676aa23.js → p-3a7f88ff.js} +3 -3
  162. package/dist/components/{p-1aae42d5.js → p-467fe701.js} +241 -160
  163. package/dist/components/{p-09d36119.js → p-4bdaf254.js} +1 -1
  164. package/dist/components/{p-d921fe75.js → p-4e6b4b50.js} +17 -3
  165. package/dist/components/{p-30de8ac4.js → p-707a562e.js} +1 -1
  166. package/dist/components/{p-fcec766c.js → p-75437dea.js} +1 -1
  167. package/dist/components/{p-e46088d9.js → p-8f8b0827.js} +1 -1
  168. package/dist/components/{p-cfb1b588.js → p-9d7232d0.js} +2 -2
  169. package/dist/components/{p-e323cd2a.js → p-ad77fb02.js} +1 -1
  170. package/dist/components/p-b1d21573.js +16 -0
  171. package/dist/components/{p-dddaa520.js → p-d1ace0be.js} +1 -1
  172. package/dist/components/{p-4030e9bc.js → p-d9dbd2cf.js} +24 -10
  173. package/dist/components/{p-aea7fa6b.js → p-f0a50868.js} +3 -3
  174. package/dist/components/{p-8a2d7b2f.js → p-f1980746.js} +4 -4
  175. package/dist/components/tds-accordion-item.js +9 -5
  176. package/dist/components/tds-badge.js +6 -1
  177. package/dist/components/tds-banner.js +7 -3
  178. package/dist/components/tds-block.js +10 -6
  179. package/dist/components/tds-body-cell.js +9 -6
  180. package/dist/components/tds-breadcrumb.js +1 -1
  181. package/dist/components/tds-breadcrumbs.js +1 -1
  182. package/dist/components/tds-button.js +4 -2
  183. package/dist/components/tds-card.js +10 -6
  184. package/dist/components/tds-checkbox.js +1 -1
  185. package/dist/components/tds-chip.js +1 -1
  186. package/dist/components/tds-core-header-item.js +1 -1
  187. package/dist/components/tds-datetime.js +3 -3
  188. package/dist/components/tds-divider.js +1 -1
  189. package/dist/components/tds-dropdown-option.js +1 -1
  190. package/dist/components/tds-dropdown.js +1 -1
  191. package/dist/components/tds-folder-tab.js +4 -2
  192. package/dist/components/tds-folder-tabs.js +3 -3
  193. package/dist/components/tds-footer-group.js +4 -4
  194. package/dist/components/tds-footer-item.js +1 -1
  195. package/dist/components/tds-footer.js +3 -1
  196. package/dist/components/tds-header-brand-symbol.js +3 -3
  197. package/dist/components/tds-header-cell.js +2 -2
  198. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  199. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  200. package/dist/components/tds-header-dropdown-list.js +1 -1
  201. package/dist/components/tds-header-dropdown.js +8 -8
  202. package/dist/components/tds-header-hamburger.js +4 -4
  203. package/dist/components/tds-header-item.js +1 -1
  204. package/dist/components/tds-header-launcher-button.js +1 -1
  205. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  206. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  207. package/dist/components/tds-header-launcher-grid.js +1 -1
  208. package/dist/components/tds-header-launcher-list-item.js +2 -2
  209. package/dist/components/tds-header-launcher-list-title.js +1 -1
  210. package/dist/components/tds-header-launcher-list.js +2 -2
  211. package/dist/components/tds-header-launcher.js +8 -8
  212. package/dist/components/tds-header-title.js +1 -1
  213. package/dist/components/tds-header.js +1 -1
  214. package/dist/components/tds-icon.js +1 -1
  215. package/dist/components/tds-inline-tab.js +5 -2
  216. package/dist/components/tds-inline-tabs.js +3 -3
  217. package/dist/components/tds-link.js +5 -5
  218. package/dist/components/tds-message.js +7 -5
  219. package/dist/components/tds-modal.js +5 -2
  220. package/dist/components/tds-navigation-tab.js +2 -2
  221. package/dist/components/tds-navigation-tabs.js +9 -3
  222. package/dist/components/tds-popover-canvas.js +1 -1
  223. package/dist/components/tds-popover-core.js +1 -1
  224. package/dist/components/tds-popover-menu-item.js +2 -2
  225. package/dist/components/tds-popover-menu.js +3 -3
  226. package/dist/components/tds-radio-button.js +1 -1
  227. package/dist/components/tds-side-menu-close-button.js +2 -2
  228. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  229. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  230. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  231. package/dist/components/tds-side-menu-dropdown.js +5 -5
  232. package/dist/components/tds-side-menu-item.js +1 -1
  233. package/dist/components/tds-side-menu-overlay.js +1 -1
  234. package/dist/components/tds-side-menu-user-image.js +1 -1
  235. package/dist/components/tds-side-menu-user-label.js +1 -1
  236. package/dist/components/tds-side-menu-user.js +3 -3
  237. package/dist/components/tds-slider.js +9 -9
  238. package/dist/components/tds-spinner.js +1 -1
  239. package/dist/components/tds-step.js +2 -2
  240. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  241. package/dist/components/tds-table-body-row-expandable.js +7 -7
  242. package/dist/components/tds-table-body-row.js +10 -7
  243. package/dist/components/tds-table-body.js +2 -2
  244. package/dist/components/tds-table-footer.js +7 -7
  245. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  246. package/dist/components/tds-table-header.js +3 -3
  247. package/dist/components/tds-table-toolbar.js +3 -3
  248. package/dist/components/tds-text-field.js +9 -7
  249. package/dist/components/tds-textarea.js +15 -13
  250. package/dist/components/tds-toast.js +4 -4
  251. package/dist/components/tds-toggle.js +4 -1
  252. package/dist/components/tds-tooltip.js +3 -3
  253. package/dist/esm/loader.js +1 -1
  254. package/dist/esm/tds-accordion-item.entry.js +7 -4
  255. package/dist/esm/tds-badge.entry.js +6 -1
  256. package/dist/esm/tds-banner.entry.js +6 -2
  257. package/dist/esm/tds-block.entry.js +10 -6
  258. package/dist/esm/tds-body-cell.entry.js +9 -6
  259. package/dist/esm/tds-breadcrumb.entry.js +1 -1
  260. package/dist/esm/tds-breadcrumbs.entry.js +1 -1
  261. package/dist/esm/tds-button.entry.js +4 -2
  262. package/dist/esm/tds-card.entry.js +9 -5
  263. package/dist/esm/tds-checkbox.entry.js +17 -3
  264. package/dist/esm/tds-chip.entry.js +1 -1
  265. package/dist/esm/tds-core-header-item_2.entry.js +3 -3
  266. package/dist/esm/tds-datetime.entry.js +2 -2
  267. package/dist/esm/tds-divider.entry.js +1 -1
  268. package/dist/esm/tds-dropdown_2.entry.js +262 -156
  269. package/dist/esm/tds-folder-tab.entry.js +4 -2
  270. package/dist/esm/tds-folder-tabs.entry.js +2 -2
  271. package/dist/esm/tds-footer-group.entry.js +3 -3
  272. package/dist/esm/tds-footer-item.entry.js +1 -1
  273. package/dist/esm/tds-footer.entry.js +3 -1
  274. package/dist/esm/tds-header-brand-symbol.entry.js +1 -1
  275. package/dist/esm/tds-header-cell.entry.js +1 -1
  276. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  277. package/dist/esm/tds-header-dropdown-list-user.entry.js +1 -1
  278. package/dist/esm/tds-header-dropdown-list.entry.js +1 -1
  279. package/dist/esm/tds-header-dropdown.entry.js +3 -3
  280. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  281. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  282. package/dist/esm/tds-header-launcher-grid-item.entry.js +1 -1
  283. package/dist/esm/tds-header-launcher-grid-title.entry.js +1 -1
  284. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  285. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  286. package/dist/esm/tds-header-launcher-list-title.entry.js +1 -1
  287. package/dist/esm/tds-header-launcher-list.entry.js +1 -1
  288. package/dist/esm/tds-header-launcher.entry.js +2 -2
  289. package/dist/esm/tds-header-title.entry.js +1 -1
  290. package/dist/esm/tds-header.entry.js +1 -1
  291. package/dist/esm/tds-icon.entry.js +1 -1
  292. package/dist/esm/tds-inline-tab.entry.js +5 -2
  293. package/dist/esm/tds-inline-tabs.entry.js +2 -2
  294. package/dist/esm/tds-link.entry.js +5 -5
  295. package/dist/esm/tds-message.entry.js +6 -4
  296. package/dist/esm/tds-modal.entry.js +4 -1
  297. package/dist/esm/tds-navigation-tab.entry.js +2 -2
  298. package/dist/esm/tds-navigation-tabs.entry.js +8 -2
  299. package/dist/esm/tds-popover-canvas.entry.js +2 -2
  300. package/dist/esm/tds-popover-core.entry.js +1 -1
  301. package/dist/esm/tds-popover-menu-item.entry.js +2 -2
  302. package/dist/esm/tds-popover-menu.entry.js +2 -2
  303. package/dist/esm/tds-radio-button.entry.js +1 -1
  304. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  305. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -4
  306. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +2 -2
  307. package/dist/esm/tds-side-menu-dropdown-list.entry.js +2 -2
  308. package/dist/esm/tds-side-menu-dropdown.entry.js +3 -3
  309. package/dist/esm/tds-side-menu-item.entry.js +2 -2
  310. package/dist/esm/tds-side-menu-overlay.entry.js +1 -1
  311. package/dist/esm/tds-side-menu-user-image_2.entry.js +2 -2
  312. package/dist/esm/tds-side-menu-user.entry.js +1 -1
  313. package/dist/esm/tds-slider.entry.js +8 -8
  314. package/dist/esm/tds-spinner.entry.js +1 -1
  315. package/dist/esm/tds-step.entry.js +1 -1
  316. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  317. package/dist/esm/tds-table-body-row-expandable.entry.js +7 -7
  318. package/dist/esm/tds-table-body-row.entry.js +9 -6
  319. package/dist/esm/tds-table-body.entry.js +2 -2
  320. package/dist/esm/tds-table-footer.entry.js +3 -3
  321. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  322. package/dist/esm/tds-table-header.entry.js +2 -2
  323. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  324. package/dist/esm/tds-text-field.entry.js +8 -6
  325. package/dist/esm/tds-textarea.entry.js +14 -12
  326. package/dist/esm/tds-toast.entry.js +3 -3
  327. package/dist/esm/tds-toggle.entry.js +4 -1
  328. package/dist/esm/tds-tooltip.entry.js +2 -2
  329. package/dist/esm/tegel.js +1 -1
  330. package/dist/tegel/{p-b4c7099f.entry.js → p-038c22ff.entry.js} +1 -1
  331. package/dist/tegel/{p-57f95a1b.entry.js → p-059a9499.entry.js} +1 -1
  332. package/dist/tegel/{p-9de400f4.entry.js → p-06968bd7.entry.js} +1 -1
  333. package/dist/tegel/{p-ede11de8.entry.js → p-0939b9fb.entry.js} +1 -1
  334. package/dist/tegel/p-0b773208.entry.js +1 -0
  335. package/dist/tegel/{p-6a52ed63.entry.js → p-10f7c12d.entry.js} +1 -1
  336. package/dist/tegel/{p-b9e37cf2.entry.js → p-1703f73a.entry.js} +1 -1
  337. package/dist/tegel/p-170ab61b.entry.js +1 -0
  338. package/dist/tegel/p-1aecae56.entry.js +1 -0
  339. package/dist/tegel/{p-ac46b0a4.entry.js → p-24ff5903.entry.js} +1 -1
  340. package/dist/tegel/{p-9bf7f5cd.entry.js → p-2795009a.entry.js} +1 -1
  341. package/dist/tegel/{p-4ab7461e.entry.js → p-2a38b053.entry.js} +1 -1
  342. package/dist/tegel/{p-6b405a0f.entry.js → p-2a96bd05.entry.js} +1 -1
  343. package/dist/tegel/{p-50fcdc56.entry.js → p-2f32991e.entry.js} +1 -1
  344. package/dist/tegel/p-32b7f431.entry.js +1 -0
  345. package/dist/tegel/p-39373227.entry.js +1 -0
  346. package/dist/tegel/{p-2557b79b.entry.js → p-3a32fe40.entry.js} +1 -1
  347. package/dist/tegel/p-3c22aef7.entry.js +1 -0
  348. package/dist/tegel/{p-bcae4d3a.entry.js → p-3d3ee51f.entry.js} +1 -1
  349. package/dist/tegel/p-3e144a83.entry.js +1 -0
  350. package/dist/tegel/p-3e1b1399.entry.js +1 -0
  351. package/dist/tegel/{p-2e44b4e9.entry.js → p-44c33b20.entry.js} +1 -1
  352. package/dist/tegel/p-48bbc11f.entry.js +1 -0
  353. package/dist/tegel/p-4a282c25.entry.js +1 -0
  354. package/dist/tegel/p-4b231bf9.entry.js +1 -0
  355. package/dist/tegel/{p-1634247e.entry.js → p-4b7c53a6.entry.js} +1 -1
  356. package/dist/tegel/{p-0df92ce7.entry.js → p-4c2f313d.entry.js} +1 -1
  357. package/dist/tegel/{p-ff5cd75f.entry.js → p-54154f09.entry.js} +1 -1
  358. package/dist/tegel/{p-ff7ae8a3.entry.js → p-59293f88.entry.js} +1 -1
  359. package/dist/tegel/{p-e63f827f.entry.js → p-5eaa23dc.entry.js} +1 -1
  360. package/dist/tegel/{p-bb129d43.entry.js → p-5fea857b.entry.js} +1 -1
  361. package/dist/tegel/{p-088bfcd4.entry.js → p-68859ddc.entry.js} +1 -1
  362. package/dist/tegel/p-69b38504.entry.js +1 -0
  363. package/dist/tegel/{p-a5a67770.entry.js → p-6d022f47.entry.js} +1 -1
  364. package/dist/tegel/{p-868435cd.entry.js → p-6eeded00.entry.js} +1 -1
  365. package/dist/tegel/{p-0f38bea7.entry.js → p-708a8bab.entry.js} +1 -1
  366. package/dist/tegel/p-7090a95c.entry.js +1 -0
  367. package/dist/tegel/{p-4e3e2601.entry.js → p-72106a5c.entry.js} +1 -1
  368. package/dist/tegel/{p-ed02ad2b.entry.js → p-7929d22f.entry.js} +1 -1
  369. package/dist/tegel/p-85a9032e.entry.js +1 -0
  370. package/dist/tegel/{p-f9325536.entry.js → p-86b30f71.entry.js} +1 -1
  371. package/dist/tegel/p-88204e0a.entry.js +1 -0
  372. package/dist/tegel/p-92f81cda.entry.js +1 -0
  373. package/dist/tegel/p-93930c03.entry.js +1 -0
  374. package/dist/tegel/{p-aed1c5cf.entry.js → p-96bdf035.entry.js} +1 -1
  375. package/dist/tegel/{p-7097a39a.entry.js → p-99da056d.entry.js} +1 -1
  376. package/dist/tegel/p-9c3f2c12.entry.js +1 -0
  377. package/dist/tegel/p-a38dda58.entry.js +1 -0
  378. package/dist/tegel/{p-de540cc0.entry.js → p-a392e6e7.entry.js} +1 -1
  379. package/dist/tegel/p-a86fe122.entry.js +1 -0
  380. package/dist/tegel/p-ab0528bf.entry.js +1 -0
  381. package/dist/tegel/p-b0a5eba7.entry.js +1 -0
  382. package/dist/tegel/{p-220affa9.entry.js → p-b19ce79c.entry.js} +1 -1
  383. package/dist/tegel/{p-987084a5.entry.js → p-b2018a5b.entry.js} +1 -1
  384. package/dist/tegel/{p-c790ef93.entry.js → p-b425b2f4.entry.js} +1 -1
  385. package/dist/tegel/p-b647d20e.entry.js +1 -0
  386. package/dist/tegel/{p-c18b2746.entry.js → p-b96cd80d.entry.js} +1 -1
  387. package/dist/tegel/{p-f1c172a4.entry.js → p-b9b63210.entry.js} +1 -1
  388. package/dist/tegel/p-be88c5ab.entry.js +1 -0
  389. package/dist/tegel/{p-91dcddd5.entry.js → p-c289dfb9.entry.js} +1 -1
  390. package/dist/tegel/p-cc2730d8.entry.js +1 -0
  391. package/dist/tegel/p-d1112915.entry.js +1 -0
  392. package/dist/tegel/{p-e65dba91.entry.js → p-d7f48112.entry.js} +1 -1
  393. package/dist/tegel/p-d926d075.entry.js +1 -0
  394. package/dist/tegel/{p-26ae4a93.entry.js → p-ddd33cce.entry.js} +1 -1
  395. package/dist/tegel/{p-c917d8be.entry.js → p-e478953c.entry.js} +1 -1
  396. package/dist/tegel/p-e7300cca.entry.js +1 -0
  397. package/dist/tegel/{p-6c26e66f.entry.js → p-e9ac7a1a.entry.js} +1 -1
  398. package/dist/tegel/{p-dd060c11.entry.js → p-ea4a9a4f.entry.js} +1 -1
  399. package/dist/tegel/p-f050aad8.entry.js +1 -0
  400. package/dist/tegel/{p-e7108828.entry.js → p-f4db0231.entry.js} +1 -1
  401. package/dist/tegel/p-f67b4047.entry.js +1 -0
  402. package/dist/tegel/{p-a642c800.entry.js → p-fd3d56aa.entry.js} +1 -1
  403. package/dist/tegel/{p-06d2fa56.entry.js → p-fd432c54.entry.js} +1 -1
  404. package/dist/tegel/{p-ad434031.entry.js → p-ffd827ef.entry.js} +1 -1
  405. package/dist/tegel/tegel.esm.js +1 -1
  406. package/dist/types/components/accordion/accordion-item/accordion-item.d.ts +2 -0
  407. package/dist/types/components/checkbox/checkbox.d.ts +2 -1
  408. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +6 -2
  409. package/dist/types/components/dropdown/dropdown.d.ts +39 -27
  410. package/dist/types/components.d.ts +25 -27
  411. package/dist/types/utils/axeHelpers.d.ts +2 -0
  412. package/dist/types/utils/convertToString.d.ts +7 -0
  413. package/package.json +5 -5
  414. package/dist/tegel/p-12303135.entry.js +0 -1
  415. package/dist/tegel/p-1a2f3852.entry.js +0 -1
  416. package/dist/tegel/p-1bc2c73c.entry.js +0 -1
  417. package/dist/tegel/p-54a105a4.entry.js +0 -1
  418. package/dist/tegel/p-5a891dd2.entry.js +0 -1
  419. package/dist/tegel/p-5d0e8f1e.entry.js +0 -1
  420. package/dist/tegel/p-6938329a.entry.js +0 -1
  421. package/dist/tegel/p-693e48cf.entry.js +0 -1
  422. package/dist/tegel/p-6aabf7e1.entry.js +0 -1
  423. package/dist/tegel/p-7a83cf55.entry.js +0 -1
  424. package/dist/tegel/p-7d39487c.entry.js +0 -1
  425. package/dist/tegel/p-7d83ba98.entry.js +0 -1
  426. package/dist/tegel/p-845e1fca.entry.js +0 -1
  427. package/dist/tegel/p-930e767e.entry.js +0 -1
  428. package/dist/tegel/p-959a6780.entry.js +0 -1
  429. package/dist/tegel/p-9aefb942.entry.js +0 -1
  430. package/dist/tegel/p-9c2dfecc.entry.js +0 -1
  431. package/dist/tegel/p-a9654cd4.entry.js +0 -1
  432. package/dist/tegel/p-b00bcf39.entry.js +0 -1
  433. package/dist/tegel/p-b9ac3122.entry.js +0 -1
  434. package/dist/tegel/p-bda3d846.entry.js +0 -1
  435. package/dist/tegel/p-cd5219ac.entry.js +0 -1
  436. package/dist/tegel/p-d1cbe5be.entry.js +0 -1
  437. package/dist/tegel/p-dcbd977f.entry.js +0 -1
  438. package/dist/tegel/p-e13935b6.entry.js +0 -1
  439. package/dist/tegel/p-e86f2d31.entry.js +0 -1
  440. package/dist/tegel/p-e97a2700.entry.js +0 -1
  441. package/dist/tegel/p-f45d905c.entry.js +0 -1
  442. package/dist/tegel/p-f841f094.entry.js +0 -1
  443. package/dist/tegel/p-fc0079d2.entry.js +0 -1
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Converts a value (string or number) to string
3
+ * @param value - The value to convert
4
+ * @returns The string representation of the value, or empty string if null/undefined
5
+ */
6
+ export const convertToString = (value) => {
7
+ if (value === null || value === undefined)
8
+ return '';
9
+ return value.toString();
10
+ };
11
+ // Optional: If we need array conversion often
12
+ export const convertArrayToStrings = (values) => {
13
+ return values.map((value) => convertToString(value));
14
+ };
@@ -58,12 +58,12 @@ const TdsSideMenuItem = /*@__PURE__*/ proxyCustomElement(class TdsSideMenuItem e
58
58
  this.updateSlottedElements();
59
59
  }
60
60
  render() {
61
- return (h(Host, { key: '13d5211709dbda15ce0e398dab7e2677e15d074c' }, h("div", { key: '99cd16c7817451dfbc3e30c59fcb95ebf84c72af', class: {
61
+ return (h(Host, { key: 'f6d3cc999d431fb73ac49c7e51fa63ea56bf1130' }, h("div", { key: '7b0d9eb30d571bf2ec2c9dca91d5d0481b1306b5', class: {
62
62
  'component': true,
63
63
  'component-selected': this.selected,
64
64
  'component-active': this.active,
65
65
  'component-collapsed': this.collapsed,
66
- } }, h("slot", { key: '564c191d1bf54f63fa75c32309cd32392a22dc3a' }))));
66
+ } }, h("slot", { key: '74815b1ae22bb4d6981a2441e0048ee2e9bacf2d' }))));
67
67
  }
68
68
  get host() { return this; }
69
69
  static get style() { return TdsSideMenuItemStyle0; }
@@ -2001,7 +2001,7 @@ const TdsPopoverCore = /*@__PURE__*/ proxyCustomElement(class TdsPopoverCore ext
2001
2001
  'tds-animation-exit-fade': !this.isShown && this.animation === 'fade',
2002
2002
  };
2003
2003
  const classList = generateClassList(classes);
2004
- return (h(Host, { key: '8893e2cca1fedd09a8dfff8ceeb12b47cbf07e09', class: classList, id: `tds-popover-core-${this.uuid}` }, h("slot", { key: '7e075900d43b4f6d3009ef37f11059fd646e708e' })));
2004
+ return (h(Host, { key: 'cec7a3eddcdc7cfe4175bc6174b52f8b24a43837', class: classList, id: `tds-popover-core-${this.uuid}` }, h("slot", { key: 'ae91738a3607de7bebe9e092aa7d7b6761e3e44b' })));
2005
2005
  }
2006
2006
  get host() { return this; }
2007
2007
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  import { p as proxyCustomElement, H, h, c as Host } from './p-28ef5186.js';
2
2
  import { d as dfs } from './p-52bf0fdf.js';
3
- import { d as defineCustomElement$1 } from './p-30de8ac4.js';
3
+ import { d as defineCustomElement$1 } from './p-707a562e.js';
4
4
 
5
5
  const headerItemCss = ":host ::slotted(button),:host ::slotted(a){all:unset;box-sizing:border-box;background-color:var(--tds-header-background);border-right:1px solid var(--tds-header--basic-element-border);width:100%;height:100%;cursor:pointer;padding:0 24px;display:flex;align-items:center;gap:8px}:host ::slotted(button) *,:host ::slotted(a) *{box-sizing:border-box}:host ::slotted(button:hover),:host ::slotted(a:hover){background-color:var(--tds-header-item-hover)}:host ::slotted(button:focus-visible),:host ::slotted(a:focus-visible){outline:2px solid var(--tds-blue-400);outline-offset:-2px}:host .component-active ::slotted(button),:host .component-active ::slotted(a){background-color:var(--tds-header--basic-element-background-open);color:var(--tds-header-nav-item-dropdown-opened-color);border-color:var(--tds-header--basic-element-border-open)}:host .component-selected:not(.component-active) ::slotted(button),:host .component-selected:not(.component-active) ::slotted(a){background-color:var(--tds-header--basic-element-background-selected);padding-top:4px;border-bottom-style:solid;border-bottom-width:4px;border-bottom-color:var(--tds-nav-item-border-color-active)}";
6
6
  const TdsHeaderItemStyle0 = headerItemCss;
@@ -42,10 +42,10 @@ const TdsHeaderItem = /*@__PURE__*/ proxyCustomElement(class TdsHeaderItem exten
42
42
  this.slotEl.addEventListener('slotchange', this.updateSlottedElements);
43
43
  }
44
44
  render() {
45
- return (h(Host, { key: 'd5f256a30d131817e23f428b87a3604e2a299ad6' }, h("tds-core-header-item", { key: 'd2dc6486839af96bbd10938bf9e03ff50123da4f', class: {
45
+ return (h(Host, { key: '7317ab5668685390e2671908dd41855715267b1c' }, h("tds-core-header-item", { key: 'befc861a437912245c22413bbf774617fa84b289', class: {
46
46
  'component-active': this.active,
47
47
  'component-selected': this.selected,
48
- } }, h("slot", { key: 'a89a44221fe947e4075e6889ed3e3cf8478f6e96' }))));
48
+ } }, h("slot", { key: 'f4405b3881dc0d6e4b86f96aa90d0b045c7bf2d8' }))));
49
49
  }
50
50
  get host() { return this; }
51
51
  static get style() { return TdsHeaderItemStyle0; }
@@ -1,5 +1,6 @@
1
1
  import { p as proxyCustomElement, H, d as createEvent, h, c as Host } from './p-28ef5186.js';
2
- import { d as defineCustomElement$1 } from './p-e323cd2a.js';
2
+ import { c as convertArrayToStrings, a as convertToString } from './p-b1d21573.js';
3
+ import { d as defineCustomElement$1 } from './p-ad77fb02.js';
3
4
 
4
5
  /**
5
6
  * Find the next focusable element index in a list of focusable elements.
@@ -71,16 +72,35 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
71
72
  this.tdsFocus = createEvent(this, "tdsFocus", 6);
72
73
  this.tdsBlur = createEvent(this, "tdsBlur", 6);
73
74
  this.tdsInput = createEvent(this, "tdsInput", 6);
74
- this.tdsValueChange = createEvent(this, "tdsValueChange", 6);
75
75
  this.setDefaultOption = () => {
76
- if (this.defaultValue) {
76
+ if (this.internalDefaultValue) {
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
+ }
77
82
  const defaultValues = this.multiselect
78
- ? new Set(this.defaultValue.split(','))
79
- : [this.defaultValue];
80
- const normalizedValues = Array.from(defaultValues);
81
- this.updateDropdownState(normalizedValues);
83
+ ? new Set(this.internalDefaultValue.split(','))
84
+ : [this.internalDefaultValue];
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.internalDefaultValue}"`);
100
+ }
82
101
  }
83
102
  };
103
+ /* Returns a list of all children that are tds-dropdown-option elements */
84
104
  this.getChildren = () => {
85
105
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
86
106
  if (tdsDropdownOptions.length === 0) {
@@ -89,36 +109,6 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
89
109
  else
90
110
  return tdsDropdownOptions;
91
111
  };
92
- this.getSelectedChildren = () => {
93
- if (this.selectedOptions.length === 0)
94
- return [];
95
- return this.selectedOptions
96
- .map((stringValue) => {
97
- var _a;
98
- const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
99
- return matchingElement;
100
- })
101
- .filter(Boolean);
102
- };
103
- this.getSelectedChildrenLabels = () => {
104
- var _a;
105
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
106
- };
107
- this.getValue = () => {
108
- const labels = this.getSelectedChildrenLabels();
109
- if (!labels) {
110
- return '';
111
- }
112
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
113
- };
114
- this.setValueAttribute = () => {
115
- if (this.selectedOptions.length === 0) {
116
- this.host.removeAttribute('value');
117
- }
118
- else {
119
- this.host.setAttribute('value', this.selectedOptions.join(','));
120
- }
121
- };
122
112
  this.getOpenDirection = () => {
123
113
  var _a, _b, _c, _d, _e;
124
114
  if (this.openDirection === 'auto' || !this.openDirection) {
@@ -132,6 +122,7 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
132
122
  }
133
123
  return this.openDirection;
134
124
  };
125
+ /* Toggles the open state of the Dropdown and sets focus to the input element */
135
126
  this.handleToggleOpen = () => {
136
127
  if (!this.disabled) {
137
128
  this.open = !this.open;
@@ -140,10 +131,38 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
140
131
  }
141
132
  }
142
133
  };
134
+ /* Focuses the input element in the Dropdown, if the reference is present. */
143
135
  this.focusInputElement = () => {
144
136
  if (this.inputElement)
145
137
  this.inputElement.focus();
146
138
  };
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', convertArrayToStrings(this.value).join(','));
164
+ }
165
+ };
147
166
  this.handleFilter = (event) => {
148
167
  this.tdsInput.emit(event);
149
168
  const query = event.target.value.toLowerCase();
@@ -174,10 +193,8 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
174
193
  this.handleFilterReset = () => {
175
194
  this.reset();
176
195
  this.inputElement.value = '';
177
- this.handleFilter({ target: { value: '' } });
196
+ this.handleFilter({ target: { value: this.inputElement.value } });
178
197
  this.inputElement.focus();
179
- // Add this line to ensure internal value is cleared
180
- this.internalValue = '';
181
198
  };
182
199
  this.handleFocus = (event) => {
183
200
  this.open = true;
@@ -191,6 +208,12 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
191
208
  this.handleBlur = (event) => {
192
209
  this.tdsBlur.emit(event);
193
210
  };
211
+ this.handleChange = () => {
212
+ this.tdsChange.emit({
213
+ name: this.name,
214
+ value: this.value ? convertArrayToStrings(this.value).join(',') : null,
215
+ });
216
+ };
194
217
  this.resetInput = () => {
195
218
  const inputEl = this.host.querySelector('input');
196
219
  if (inputEl) {
@@ -213,101 +236,110 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
213
236
  this.normalizeText = true;
214
237
  this.noResultText = 'No result';
215
238
  this.defaultValue = undefined;
216
- this.value = null;
217
239
  this.open = false;
218
- this.internalValue = undefined;
240
+ this.value = undefined;
219
241
  this.filterResult = undefined;
220
242
  this.filterFocus = undefined;
221
- this.selectedOptions = [];
222
- }
223
- handleValueChange(newValue) {
224
- // Normalize to array
225
- const normalizedValue = this.normalizeValue(newValue);
226
- // Only update if actually changed
227
- if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
228
- this.updateDropdownState(normalizedValue);
229
- }
230
- }
231
- normalizeValue(value) {
232
- if (!value || value === '')
233
- return []; // Handle both null and empty string
234
- // For multiselect, keep array. For single select, wrap in array
235
- if (this.multiselect) {
236
- return Array.isArray(value) ? value : value.split(',').filter((v) => v !== '');
237
- }
238
- return Array.isArray(value) ? value : [value];
243
+ this.internalDefaultValue = undefined;
239
244
  }
240
- hasValueChanged(newValue, currentValue) {
241
- if (newValue.length !== currentValue.length)
242
- return true;
243
- return newValue.some((val) => !currentValue.includes(val));
245
+ /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
246
+ async reset() {
247
+ this.dropdownList.scrollTop = 0;
248
+ this.internalReset();
249
+ this.handleChange();
244
250
  }
245
- updateDropdownState(values) {
246
- // Update internal state
247
- this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
248
- // Then update the value prop to match
249
- this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
250
- // Force update of internal value
251
- this.internalValue = this.getValue();
252
- // Update DOM
253
- this.updateOptionElements();
254
- // Update display value
255
- this.updateDisplayValue();
256
- // Emit change event
257
- this.emitChange();
258
- // Update value attribute
259
- this.setValueAttribute();
251
+ /** Method that forces focus on the input element. */
252
+ async focusElement() {
253
+ this.focusInputElement();
254
+ this.handleFocus({});
260
255
  }
261
- validateValues(values) {
262
- return values.filter((val) => {
263
- var _a;
264
- const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
265
- if (!isValid) {
266
- console.warn(`Option with value "${val}" does not exist`);
256
+ /** Method for setting the value of the Dropdown.
257
+ *
258
+ * Single selection example:
259
+ *
260
+ * <code>
261
+ * dropdown.setValue('option-1', 'Option 1');
262
+ * </code>
263
+ *
264
+ * Multiselect example:
265
+ *
266
+ * <code>
267
+ * dropdown.setValue(['option-1', 'option-2']);
268
+ * </code>
269
+ */
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) {
274
+ let nextValue;
275
+ if (Array.isArray(value)) {
276
+ nextValue = convertArrayToStrings(value);
277
+ }
278
+ else {
279
+ nextValue = [convertToString(value)];
280
+ }
281
+ if (!this.multiselect && nextValue.length > 1) {
282
+ console.warn('Tried to select multiple items, but multiselect is not enabled.');
283
+ nextValue = [nextValue[0]];
284
+ }
285
+ nextValue = [...new Set(nextValue)];
286
+ this.internalReset();
287
+ for (let i = 0; i < nextValue.length; i++) {
288
+ const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
289
+ if (!optionExist) {
290
+ nextValue.splice(i, 1);
267
291
  }
268
- return isValid;
269
- });
270
- }
271
- updateOptionElements() {
272
- var _a;
273
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
274
- element.setSelected(this.selectedOptions.includes(element.value));
275
- });
276
- }
277
- updateDisplayValue() {
278
- this.internalValue = this.getSelectedChildrenLabels().join(', ');
279
- if (this.filter && this.inputElement) {
280
- this.inputElement.value = this.internalValue;
281
292
  }
282
- }
283
- emitChange() {
284
- const value = this.multiselect
285
- ? this.selectedOptions.join(',')
286
- : this.selectedOptions[0] || null;
287
- this.tdsChange.emit({
288
- name: this.name,
289
- value: value !== null && value !== void 0 ? value : null,
290
- });
291
- }
292
- async setValue(value) {
293
- const normalizedValue = this.normalizeValue(value);
294
- this.updateDropdownState(normalizedValue);
295
- return this.getSelectedChildren().map((element) => ({
293
+ this.value = nextValue;
294
+ this.setValueAttribute();
295
+ this.selectChildrenAsSelectedBasedOnSelectionProp();
296
+ this.handleChange();
297
+ /* 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. */
298
+ /* https://tegel.atlassian.net/browse/CDEP-2703 */
299
+ const selection = this.getSelectedChildren().map((element) => ({
296
300
  value: element.value,
297
301
  label: element.textContent.trim(),
298
302
  }));
303
+ // Update inputElement value and placeholder text
304
+ if (this.filter) {
305
+ this.inputElement.value = this.getValue();
306
+ }
307
+ return selection;
299
308
  }
300
- async reset() {
301
- this.updateDropdownState([]);
309
+ /**
310
+ * @internal
311
+ */
312
+ async appendValue(value) {
313
+ if (this.multiselect && this.value) {
314
+ this.setValue([...this.value, value]);
315
+ }
316
+ else {
317
+ this.setValue(value);
318
+ }
302
319
  }
320
+ /** Method for removing a selected value in the Dropdown. */
303
321
  async removeValue(oldValue) {
304
- const newValues = this.selectedOptions.filter((v) => v !== oldValue);
305
- this.updateDropdownState(newValues);
306
- }
307
- /** Method that forces focus on the input element. */
308
- async focusElement() {
309
- this.focusInputElement();
310
- this.handleFocus({});
322
+ var _a, _b;
323
+ let label;
324
+ if (this.multiselect) {
325
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
326
+ var _a;
327
+ if (element.value === oldValue) {
328
+ this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
329
+ label = element.textContent.trim();
330
+ element.setSelected(false);
331
+ }
332
+ return element;
333
+ });
334
+ }
335
+ else {
336
+ this.reset();
337
+ }
338
+ this.handleChange();
339
+ this.setValueAttribute();
340
+ /* 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. */
341
+ /* https://tegel.atlassian.net/browse/CDEP-2703 */
342
+ return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
311
343
  }
312
344
  /** Method for closing the Dropdown. */
313
345
  async close() {
@@ -356,15 +388,21 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
356
388
  handleOpenState() {
357
389
  if (this.filter && this.multiselect) {
358
390
  if (!this.open) {
359
- this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
391
+ this.inputElement.value = this.getValue();
360
392
  }
361
393
  }
362
394
  }
395
+ handleDefaultValueChange(newValue) {
396
+ if (newValue !== undefined && newValue !== null) {
397
+ this.internalDefaultValue = convertToString(newValue);
398
+ this.setDefaultOption();
399
+ }
400
+ }
363
401
  componentWillLoad() {
364
- if (this.defaultValue && !this.value) {
365
- const initialValue = this.multiselect ? this.defaultValue.split(',') : [this.defaultValue];
366
- this.updateDropdownState(initialValue);
402
+ if (this.defaultValue !== undefined && this.defaultValue !== null) {
403
+ this.internalDefaultValue = convertToString(this.defaultValue);
367
404
  }
405
+ this.setDefaultOption();
368
406
  }
369
407
  /** Method to handle slot changes */
370
408
  handleSlotChange() {
@@ -374,13 +412,29 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
374
412
  normalizeString(text) {
375
413
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
376
414
  }
377
- async appendValue(value) {
378
- if (this.multiselect) {
379
- this.updateDropdownState([...this.selectedOptions, value]);
380
- }
381
- else {
382
- this.updateDropdownState([value]);
383
- }
415
+ /** Method that resets the dropdown without emitting an event. */
416
+ internalReset() {
417
+ this.getChildren().forEach((element) => {
418
+ element.setSelected(false);
419
+ return element;
420
+ });
421
+ this.value = null;
422
+ this.setValueAttribute();
423
+ }
424
+ selectChildrenAsSelectedBasedOnSelectionProp() {
425
+ this.getChildren().forEach((element) => {
426
+ this.value.forEach((selection) => {
427
+ if (element.value !== selection) {
428
+ // If not multiselect, we need to unselect all other options.
429
+ if (!this.multiselect) {
430
+ element.setSelected(false);
431
+ }
432
+ }
433
+ else {
434
+ element.setSelected(true);
435
+ }
436
+ });
437
+ });
384
438
  }
385
439
  componentDidRender() {
386
440
  const form = this.host.closest('form');
@@ -395,8 +449,15 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
395
449
  }
396
450
  }
397
451
  render() {
398
- appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
399
- return (h(Host, { key: 'e61969b03dc211a0007166d7319285cc50207910', role: "select", class: `${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}` }, this.label && this.labelPosition === 'outside' && (h("div", { key: 'd97ce5d02635b30698564226be8c55b477f42de5', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '29099efd6d106a5c6013ac83a545c290bb1d0af7', class: `dropdown-select ${this.size} ${this.disabled ? 'disabled' : ''}` }, this.filter ? (h("div", { class: {
452
+ var _a, _b, _c;
453
+ appendHiddenInput(this.host, this.name, this.value ? convertArrayToStrings(this.value).join(',') : null, this.disabled);
454
+ return (h(Host, { key: '0bb6532a6a87ba128f556022792fe5afb3e3e482', role: "select", class: {
455
+ [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
456
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: 'c65377474abaae962436d53b42e19eeda2bcdda6', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '80d21a17eef6a3d8ff7f73e5a52a744ae4aa08b6', class: {
457
+ 'dropdown-select': true,
458
+ [this.size]: true,
459
+ 'disabled': this.disabled,
460
+ } }, this.filter ? (h("div", { class: {
400
461
  filter: true,
401
462
  focus: this.filterFocus,
402
463
  disabled: this.disabled,
@@ -404,16 +465,26 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
404
465
  } }, 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: `
405
466
  label-inside-as-placeholder
406
467
  ${this.size}
407
- ${this.selectedOptions.length ? 'selected' : ''}
468
+ ${((_a = this.value) === null || _a === void 0 ? void 0 : _a.length) ? 'selected' : ''}
408
469
  ` }, this.label)), h("input", {
409
470
  // eslint-disable-next-line no-return-assign
410
- 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) => {
471
+ ref: (inputEl) => (this.inputElement = inputEl), class: {
472
+ placeholder: this.labelPosition === 'inside',
473
+ }, type: "text", placeholder: this.filterFocus ? '' : this.placeholder, value: this.multiselect && this.filterFocus ? '' : this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
411
474
  this.filterFocus = false;
412
475
  if (this.multiselect) {
413
476
  this.inputElement.value = this.getValue();
414
477
  }
415
478
  this.handleBlur(event);
416
- }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
479
+ }, onFocus: (event) => {
480
+ this.open = true;
481
+ this.filterFocus = true;
482
+ if (this.multiselect) {
483
+ this.inputElement.value = '';
484
+ }
485
+ this.handleFocus(event);
486
+ this.handleFilter({ target: { value: '' } });
487
+ }, onKeyDown: (event) => {
417
488
  if (event.key === 'Escape') {
418
489
  this.open = false;
419
490
  }
@@ -422,7 +493,10 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
422
493
  if (event.key === 'Enter') {
423
494
  this.handleFilterReset();
424
495
  }
425
- }, 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) => {
496
+ }, class: {
497
+ 'clear-icon': true,
498
+ 'hide': !(this.open && this.inputElement.value !== ''),
499
+ }, 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) => {
426
500
  if (event.key === 'Enter') {
427
501
  this.handleToggleOpen();
428
502
  }
@@ -430,15 +504,19 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
430
504
  if (event.key === 'Escape') {
431
505
  this.open = false;
432
506
  }
433
- }, class: `
434
- ${this.selectedOptions.length ? 'value' : 'placeholder'}
435
- ${this.open ? 'open' : 'closed'}
436
- ${this.error ? 'error' : ''}
437
- `, disabled: this.disabled }, h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (h("div", { class: `
438
- label-inside-as-placeholder
439
- ${this.size}
440
- ${this.selectedOptions.length ? 'selected' : ''}
441
- ` }, 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: '04cf1b3b829f482b189a59fb5fd8f9c3932b4982', ref: (element) => (this.dropdownList = element), class: {
507
+ }, class: {
508
+ value: Boolean(this.value),
509
+ placeholder: Boolean(!this.value),
510
+ open: this.open,
511
+ closed: !this.open,
512
+ error: this.error,
513
+ }, 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: {
514
+ 'label-inside-as-placeholder': true,
515
+ [this.size]: true,
516
+ 'selected': Boolean((_b = this.value) === null || _b === void 0 ? void 0 : _b.length),
517
+ } }, this.label)), h("div", { class: `placeholder ${this.size}` }, ((_c = this.value) === null || _c === void 0 ? void 0 : _c.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: '1f1c87b17a78c2a65add834208f487c6e9a4f77e', ref: (element) => {
518
+ this.dropdownList = element;
519
+ }, class: {
442
520
  'dropdown-list': true,
443
521
  [this.size]: true,
444
522
  [this.getOpenDirection()]: true,
@@ -447,12 +525,16 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
447
525
  'closed': !this.open,
448
526
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
449
527
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
450
- } }, h("slot", { key: '3dce31c592336d9b5c2e8e5fa25a0a8ff23694d3', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '7f1e8b0d7fff2f09412f389507ff7c2f2430a70b', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: '0c728acc0d233f674ad7bc394176aa89b01ee66d', class: `helper ${this.error ? 'error' : ''} ${this.disabled ? 'disabled' : ''}` }, this.error && h("tds-icon", { key: '65691c3c11f4b6c908028475c03d1f4b6f35ce74', name: "error", size: "16px" }), this.helper))));
528
+ } }, h("slot", { key: '6eb6b21f865702aa56af12b9e54bdb2c6c7c8cc2', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '58c15bd69f38c001e0d6c74466ddfe97d6d77a79', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'cc7e1a7f988e6bc61f3bacb7dd9a564b6c1f738d', class: {
529
+ helper: true,
530
+ error: this.error,
531
+ disabled: this.disabled,
532
+ } }, this.error && h("tds-icon", { key: 'ffd574d493f3bbaa37ddc7b14a8372ba4b23bd70', name: "error", size: "16px" }), this.helper))));
451
533
  }
452
534
  get host() { return this; }
453
535
  static get watchers() { return {
454
- "value": ["handleValueChange"],
455
- "open": ["handleOpenState"]
536
+ "open": ["handleOpenState"],
537
+ "defaultValue": ["handleDefaultValueChange"]
456
538
  }; }
457
539
  static get style() { return TdsDropdownStyle0; }
458
540
  }, [1, "tds-dropdown", {
@@ -471,22 +553,21 @@ const TdsDropdown = /*@__PURE__*/ proxyCustomElement(class TdsDropdown extends H
471
553
  "filter": [4],
472
554
  "normalizeText": [4, "normalize-text"],
473
555
  "noResultText": [1, "no-result-text"],
474
- "defaultValue": [1, "default-value"],
475
- "value": [1025],
556
+ "defaultValue": [8, "default-value"],
476
557
  "open": [32],
477
- "internalValue": [32],
558
+ "value": [32],
478
559
  "filterResult": [32],
479
560
  "filterFocus": [32],
480
- "selectedOptions": [32],
481
- "setValue": [64],
561
+ "internalDefaultValue": [32],
482
562
  "reset": [64],
483
- "removeValue": [64],
484
563
  "focusElement": [64],
485
- "close": [64],
486
- "appendValue": [64]
564
+ "setValue": [64],
565
+ "appendValue": [64],
566
+ "removeValue": [64],
567
+ "close": [64]
487
568
  }, [[9, "mousedown", "onAnyClick"], [0, "keydown", "onKeyDown"]], {
488
- "value": ["handleValueChange"],
489
- "open": ["handleOpenState"]
569
+ "open": ["handleOpenState"],
570
+ "defaultValue": ["handleDefaultValueChange"]
490
571
  }]);
491
572
  function defineCustomElement() {
492
573
  if (typeof customElements === "undefined") {
@@ -12,7 +12,7 @@ const TdsSideMenuUserLabel = /*@__PURE__*/ proxyCustomElement(class TdsSideMenuU
12
12
  this.subheading = undefined;
13
13
  }
14
14
  render() {
15
- return (h(Host, { key: '5b26493d17e356fa885a7b615ed4bda03e751eb6' }, this.heading, this.subheading && h("div", { key: '2dc511289427ef2ea490fec0308119c42956113c', class: "subheading" }, this.subheading)));
15
+ return (h(Host, { key: '361c1868777c78a539e7c36a0acb9963f57fde3c' }, this.heading, this.subheading && h("div", { key: 'a1e15c671dcd77841051c52c3e17ef66bbf7730f', class: "subheading" }, this.subheading)));
16
16
  }
17
17
  static get style() { return TdsSideMenuUserLabelStyle0; }
18
18
  }, [1, "tds-side-menu-user-label", {