@scania/tegel 1.25.0 → 1.26.0-onTdsChange-gets-triggered-unexpectedly-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 (463) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/tds-badge.cjs.entry.js +5 -9
  3. package/dist/cjs/tds-banner.cjs.entry.js +3 -4
  4. package/dist/cjs/tds-block.cjs.entry.js +3 -1
  5. package/dist/cjs/tds-body-cell.cjs.entry.js +9 -6
  6. package/dist/cjs/tds-breadcrumb.cjs.entry.js +2 -2
  7. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +7 -1
  8. package/dist/cjs/tds-button.cjs.entry.js +12 -4
  9. package/dist/cjs/tds-card.cjs.entry.js +5 -5
  10. package/dist/cjs/tds-checkbox.cjs.entry.js +10 -3
  11. package/dist/cjs/tds-chip.cjs.entry.js +12 -2
  12. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +40 -3
  13. package/dist/cjs/tds-datetime.cjs.entry.js +20 -13
  14. package/dist/cjs/tds-divider.cjs.entry.js +1 -1
  15. package/dist/cjs/tds-dropdown_2.cjs.entry.js +258 -208
  16. package/dist/cjs/tds-folder-tab.cjs.entry.js +21 -2
  17. package/dist/cjs/tds-folder-tabs.cjs.entry.js +4 -2
  18. package/dist/cjs/tds-footer-group.cjs.entry.js +3 -3
  19. package/dist/cjs/tds-footer-item.cjs.entry.js +1 -1
  20. package/dist/cjs/tds-footer.cjs.entry.js +2 -2
  21. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +1 -1
  22. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  23. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  24. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +1 -1
  25. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +1 -1
  26. package/dist/cjs/tds-header-dropdown.cjs.entry.js +3 -3
  27. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  28. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  29. package/dist/cjs/tds-header-launcher-grid-item.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  32. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  33. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +1 -1
  34. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +1 -1
  35. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  36. package/dist/cjs/tds-header-title.cjs.entry.js +1 -1
  37. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  38. package/dist/cjs/tds-icon.cjs.entry.js +2 -2
  39. package/dist/cjs/tds-inline-tab.cjs.entry.js +21 -2
  40. package/dist/cjs/tds-inline-tabs.cjs.entry.js +4 -2
  41. package/dist/cjs/tds-link.cjs.entry.js +17 -3
  42. package/dist/cjs/tds-message.cjs.entry.js +2 -2
  43. package/dist/cjs/tds-modal.cjs.entry.js +2 -2
  44. package/dist/cjs/tds-navigation-tab.cjs.entry.js +21 -2
  45. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +6 -4
  46. package/dist/cjs/tds-popover-canvas.cjs.entry.js +2 -2
  47. package/dist/cjs/tds-popover-core.cjs.entry.js +1 -1
  48. package/dist/cjs/tds-popover-menu-item.cjs.entry.js +2 -2
  49. package/dist/cjs/tds-popover-menu.cjs.entry.js +2 -2
  50. package/dist/cjs/tds-radio-button.cjs.entry.js +1 -1
  51. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  52. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -4
  53. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +2 -2
  54. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +2 -2
  55. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +3 -3
  56. package/dist/cjs/tds-side-menu-item.cjs.entry.js +2 -2
  57. package/dist/cjs/tds-side-menu-overlay.cjs.entry.js +1 -1
  58. package/dist/cjs/tds-side-menu-user-image_2.cjs.entry.js +2 -2
  59. package/dist/cjs/tds-side-menu-user.cjs.entry.js +1 -1
  60. package/dist/cjs/tds-slider.cjs.entry.js +7 -7
  61. package/dist/cjs/tds-spinner.cjs.entry.js +1 -1
  62. package/dist/cjs/tds-step.cjs.entry.js +1 -1
  63. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  64. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +7 -7
  65. package/dist/cjs/tds-table-body-row.cjs.entry.js +9 -6
  66. package/dist/cjs/tds-table-body.cjs.entry.js +2 -2
  67. package/dist/cjs/tds-table-footer.cjs.entry.js +3 -3
  68. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  69. package/dist/cjs/tds-table-header.cjs.entry.js +2 -2
  70. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  71. package/dist/cjs/tds-text-field.cjs.entry.js +6 -6
  72. package/dist/cjs/tds-textarea.cjs.entry.js +3 -3
  73. package/dist/cjs/tds-toast.cjs.entry.js +3 -3
  74. package/dist/cjs/tds-toggle.cjs.entry.js +11 -2
  75. package/dist/cjs/tds-tooltip.cjs.entry.js +2 -2
  76. package/dist/cjs/tegel.cjs.js +1 -1
  77. package/dist/collection/components/badge/badge.js +24 -9
  78. package/dist/collection/components/banner/banner.js +22 -5
  79. package/dist/collection/components/block/block.js +27 -2
  80. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.css +9 -10
  81. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +2 -2
  82. package/dist/collection/components/breadcrumbs/breadcrumbs.js +30 -1
  83. package/dist/collection/components/button/button.css +3 -3
  84. package/dist/collection/components/button/button.js +28 -3
  85. package/dist/collection/components/card/card.js +5 -5
  86. package/dist/collection/components/checkbox/checkbox.js +44 -3
  87. package/dist/collection/components/chip/chip.js +30 -3
  88. package/dist/collection/components/datetime/datetime.css +20 -0
  89. package/dist/collection/components/datetime/datetime.js +22 -15
  90. package/dist/collection/components/divider/divider.js +1 -1
  91. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +41 -16
  92. package/dist/collection/components/dropdown/dropdown.js +282 -250
  93. package/dist/collection/components/footer/footer-group/footer-group.js +3 -3
  94. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  95. package/dist/collection/components/footer/footer.js +2 -2
  96. package/dist/collection/components/header/core-header-item/core-header-item.js +1 -1
  97. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +1 -1
  98. package/dist/collection/components/header/header-dropdown/header-dropdown.js +3 -3
  99. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +1 -1
  100. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +2 -2
  101. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +1 -1
  102. package/dist/collection/components/header/header-hamburger/header-hamburger.js +1 -1
  103. package/dist/collection/components/header/header-item/header-item.js +39 -2
  104. package/dist/collection/components/header/header-launcher/header-launcher.js +2 -2
  105. package/dist/collection/components/header/header-launcher-button/header-launcher-button.js +1 -1
  106. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +1 -1
  107. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +1 -1
  108. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +1 -1
  109. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +1 -1
  110. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +1 -1
  111. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +1 -1
  112. package/dist/collection/components/header/header-title/header-title.js +1 -1
  113. package/dist/collection/components/header/header.js +1 -1
  114. package/dist/collection/components/icon/icon.js +2 -2
  115. package/dist/collection/components/icon/iconsArray.js +96 -1
  116. package/dist/collection/components/link/link.js +17 -3
  117. package/dist/collection/components/message/message.js +2 -2
  118. package/dist/collection/components/modal/modal.js +2 -2
  119. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  120. package/dist/collection/components/popover-core/popover-core.js +1 -1
  121. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  122. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  123. package/dist/collection/components/radio-button/radio-button.js +1 -1
  124. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  125. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  126. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  127. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  128. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  129. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  130. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  131. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  132. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  133. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  134. package/dist/collection/components/slider/slider.js +7 -7
  135. package/dist/collection/components/spinner/spinner.js +1 -1
  136. package/dist/collection/components/stepper/step/step.js +1 -1
  137. package/dist/collection/components/table/table-body/table-body.js +2 -2
  138. package/dist/collection/components/table/table-body-cell/table-body-cell.js +9 -6
  139. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  140. package/dist/collection/components/table/table-body-row/table-body-row.js +9 -6
  141. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  142. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  143. package/dist/collection/components/table/table-header/table-header.js +2 -2
  144. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  145. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  146. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  147. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +21 -2
  148. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +40 -2
  149. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +21 -2
  150. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +40 -2
  151. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +21 -2
  152. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +42 -4
  153. package/dist/collection/components/text-field/text-field.js +6 -6
  154. package/dist/collection/components/textarea/textarea.js +3 -3
  155. package/dist/collection/components/toast/toast.js +3 -3
  156. package/dist/collection/components/toggle/toggle.js +28 -2
  157. package/dist/collection/components/tooltip/tooltip.js +2 -2
  158. package/dist/collection/utils/axeHelpers.js +1 -1
  159. package/dist/collection/utils/convertToString.js +14 -0
  160. package/dist/components/{p-2ef329f1.js → p-0e6efec9.js} +2 -2
  161. package/dist/components/{p-eac79032.js → p-14ab9663.js} +12 -3
  162. package/dist/components/{p-4bdaf254.js → p-265c3467.js} +1 -1
  163. package/dist/components/{p-1e110ab8.js → p-2681d914.js} +39 -15
  164. package/dist/components/{p-f0a50868.js → p-29d19dc8.js} +3 -3
  165. package/dist/components/{p-75437dea.js → p-34737ed9.js} +1 -1
  166. package/dist/components/{p-f1980746.js → p-363184d0.js} +4 -4
  167. package/dist/components/{p-d1ace0be.js → p-3e93886d.js} +1 -1
  168. package/dist/components/{p-3351035f.js → p-4764a1d5.js} +1 -1
  169. package/dist/components/p-64019792.js +65 -0
  170. package/dist/components/{p-dd6ff1e2.js → p-6f1a74d0.js} +225 -204
  171. package/dist/components/{p-9d7232d0.js → p-8c849aa2.js} +2 -2
  172. package/dist/components/p-a1181b1f.js +16 -0
  173. package/dist/components/{p-3a7f88ff.js → p-d61bd22e.js} +40 -3
  174. package/dist/components/{p-707a562e.js → p-e49a0ceb.js} +1 -1
  175. package/dist/components/{p-8f8b0827.js → p-e8d2dbbf.js} +1 -1
  176. package/dist/components/tds-accordion-item.js +1 -1
  177. package/dist/components/tds-badge.js +7 -9
  178. package/dist/components/tds-banner.js +5 -5
  179. package/dist/components/tds-block.js +5 -2
  180. package/dist/components/tds-body-cell.js +9 -6
  181. package/dist/components/tds-breadcrumb.js +3 -3
  182. package/dist/components/tds-breadcrumbs.js +10 -2
  183. package/dist/components/tds-button.js +13 -4
  184. package/dist/components/tds-card.js +6 -6
  185. package/dist/components/tds-checkbox.js +1 -1
  186. package/dist/components/tds-chip.js +14 -3
  187. package/dist/components/tds-core-header-item.js +1 -1
  188. package/dist/components/tds-datetime.js +21 -14
  189. package/dist/components/tds-divider.js +1 -1
  190. package/dist/components/tds-dropdown-option.js +1 -1
  191. package/dist/components/tds-dropdown.js +1 -1
  192. package/dist/components/tds-folder-tab.js +21 -2
  193. package/dist/components/tds-folder-tabs.js +7 -3
  194. package/dist/components/tds-footer-group.js +4 -4
  195. package/dist/components/tds-footer-item.js +1 -1
  196. package/dist/components/tds-footer.js +2 -2
  197. package/dist/components/tds-header-brand-symbol.js +3 -3
  198. package/dist/components/tds-header-cell.js +2 -2
  199. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  200. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  201. package/dist/components/tds-header-dropdown-list.js +1 -1
  202. package/dist/components/tds-header-dropdown.js +8 -8
  203. package/dist/components/tds-header-hamburger.js +4 -4
  204. package/dist/components/tds-header-item.js +1 -1
  205. package/dist/components/tds-header-launcher-button.js +1 -1
  206. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  207. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  208. package/dist/components/tds-header-launcher-grid.js +1 -1
  209. package/dist/components/tds-header-launcher-list-item.js +2 -2
  210. package/dist/components/tds-header-launcher-list-title.js +1 -1
  211. package/dist/components/tds-header-launcher-list.js +2 -2
  212. package/dist/components/tds-header-launcher.js +8 -8
  213. package/dist/components/tds-header-title.js +1 -1
  214. package/dist/components/tds-header.js +1 -1
  215. package/dist/components/tds-icon.js +1 -1
  216. package/dist/components/tds-inline-tab.js +21 -2
  217. package/dist/components/tds-inline-tabs.js +7 -3
  218. package/dist/components/tds-link.js +17 -3
  219. package/dist/components/tds-message.js +3 -3
  220. package/dist/components/tds-modal.js +3 -3
  221. package/dist/components/tds-navigation-tab.js +21 -2
  222. package/dist/components/tds-navigation-tabs.js +9 -5
  223. package/dist/components/tds-popover-canvas.js +1 -1
  224. package/dist/components/tds-popover-core.js +1 -1
  225. package/dist/components/tds-popover-menu-item.js +2 -2
  226. package/dist/components/tds-popover-menu.js +3 -3
  227. package/dist/components/tds-radio-button.js +1 -1
  228. package/dist/components/tds-side-menu-close-button.js +2 -2
  229. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  230. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  231. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  232. package/dist/components/tds-side-menu-dropdown.js +5 -5
  233. package/dist/components/tds-side-menu-item.js +1 -1
  234. package/dist/components/tds-side-menu-overlay.js +1 -1
  235. package/dist/components/tds-side-menu-user-image.js +1 -1
  236. package/dist/components/tds-side-menu-user-label.js +1 -1
  237. package/dist/components/tds-side-menu-user.js +3 -3
  238. package/dist/components/tds-slider.js +8 -8
  239. package/dist/components/tds-spinner.js +1 -1
  240. package/dist/components/tds-step.js +2 -2
  241. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  242. package/dist/components/tds-table-body-row-expandable.js +7 -7
  243. package/dist/components/tds-table-body-row.js +10 -7
  244. package/dist/components/tds-table-body.js +2 -2
  245. package/dist/components/tds-table-footer.js +7 -7
  246. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  247. package/dist/components/tds-table-header.js +3 -3
  248. package/dist/components/tds-table-toolbar.js +3 -3
  249. package/dist/components/tds-text-field.js +7 -7
  250. package/dist/components/tds-textarea.js +4 -4
  251. package/dist/components/tds-toast.js +4 -4
  252. package/dist/components/tds-toggle.js +12 -2
  253. package/dist/components/tds-tooltip.js +3 -3
  254. package/dist/esm/loader.js +1 -1
  255. package/dist/esm/tds-badge.entry.js +5 -9
  256. package/dist/esm/tds-banner.entry.js +3 -4
  257. package/dist/esm/tds-block.entry.js +3 -1
  258. package/dist/esm/tds-body-cell.entry.js +9 -6
  259. package/dist/esm/tds-breadcrumb.entry.js +3 -3
  260. package/dist/esm/tds-breadcrumbs.entry.js +7 -1
  261. package/dist/esm/tds-button.entry.js +12 -4
  262. package/dist/esm/tds-card.entry.js +5 -5
  263. package/dist/esm/tds-checkbox.entry.js +10 -3
  264. package/dist/esm/tds-chip.entry.js +12 -2
  265. package/dist/esm/tds-core-header-item_2.entry.js +40 -3
  266. package/dist/esm/tds-datetime.entry.js +20 -13
  267. package/dist/esm/tds-divider.entry.js +1 -1
  268. package/dist/esm/tds-dropdown_2.entry.js +258 -208
  269. package/dist/esm/tds-folder-tab.entry.js +22 -3
  270. package/dist/esm/tds-folder-tabs.entry.js +4 -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 +2 -2
  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 +2 -2
  292. package/dist/esm/tds-inline-tab.entry.js +22 -3
  293. package/dist/esm/tds-inline-tabs.entry.js +4 -2
  294. package/dist/esm/tds-link.entry.js +17 -3
  295. package/dist/esm/tds-message.entry.js +2 -2
  296. package/dist/esm/tds-modal.entry.js +2 -2
  297. package/dist/esm/tds-navigation-tab.entry.js +22 -3
  298. package/dist/esm/tds-navigation-tabs.entry.js +6 -4
  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 +7 -7
  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 +6 -6
  325. package/dist/esm/tds-textarea.entry.js +3 -3
  326. package/dist/esm/tds-toast.entry.js +3 -3
  327. package/dist/esm/tds-toggle.entry.js +11 -2
  328. package/dist/esm/tds-tooltip.entry.js +2 -2
  329. package/dist/esm/tegel.js +1 -1
  330. package/dist/tegel/p-01edebef.entry.js +1 -0
  331. package/dist/tegel/{p-3e144a83.entry.js → p-035e58e6.entry.js} +1 -1
  332. package/dist/tegel/{p-170ab61b.entry.js → p-065d6f83.entry.js} +1 -1
  333. package/dist/tegel/p-0f2c9507.entry.js +1 -0
  334. package/dist/tegel/{p-72106a5c.entry.js → p-168122a7.entry.js} +1 -1
  335. package/dist/tegel/p-1b390acb.entry.js +1 -0
  336. package/dist/tegel/{p-059a9499.entry.js → p-288a09ef.entry.js} +1 -1
  337. package/dist/tegel/{p-b2018a5b.entry.js → p-3204ae8f.entry.js} +1 -1
  338. package/dist/tegel/p-32be63ea.entry.js +1 -0
  339. package/dist/tegel/{p-cc2730d8.entry.js → p-34b793c9.entry.js} +1 -1
  340. package/dist/tegel/p-3c2f7033.entry.js +1 -0
  341. package/dist/tegel/p-46205cfb.entry.js +1 -0
  342. package/dist/tegel/p-4d5963d0.entry.js +1 -0
  343. package/dist/tegel/{p-68859ddc.entry.js → p-4e298888.entry.js} +1 -1
  344. package/dist/tegel/p-4f5f152a.entry.js +1 -0
  345. package/dist/tegel/p-4fe6512b.entry.js +1 -0
  346. package/dist/tegel/p-5242a1f6.entry.js +1 -0
  347. package/dist/tegel/{p-038c22ff.entry.js → p-542d7b3e.entry.js} +1 -1
  348. package/dist/tegel/{p-5eaa23dc.entry.js → p-5a7110b8.entry.js} +1 -1
  349. package/dist/tegel/{p-93930c03.entry.js → p-5ba254ee.entry.js} +1 -1
  350. package/dist/tegel/{p-06968bd7.entry.js → p-60b38806.entry.js} +1 -1
  351. package/dist/tegel/{p-7929d22f.entry.js → p-654785d2.entry.js} +1 -1
  352. package/dist/tegel/p-668b7662.entry.js +1 -0
  353. package/dist/tegel/p-6998c39e.entry.js +1 -0
  354. package/dist/tegel/p-6f17d37f.entry.js +1 -0
  355. package/dist/tegel/p-70795d6e.entry.js +1 -0
  356. package/dist/tegel/{p-3d3ee51f.entry.js → p-74fc9c92.entry.js} +1 -1
  357. package/dist/tegel/p-77c79b91.entry.js +1 -0
  358. package/dist/tegel/{p-54154f09.entry.js → p-77d457b8.entry.js} +1 -1
  359. package/dist/tegel/{p-4b7c53a6.entry.js → p-78d5acd7.entry.js} +1 -1
  360. package/dist/tegel/{p-44c33b20.entry.js → p-7c4c65c9.entry.js} +1 -1
  361. package/dist/tegel/{p-3a32fe40.entry.js → p-848c2732.entry.js} +1 -1
  362. package/dist/tegel/p-868757d9.entry.js +1 -0
  363. package/dist/tegel/p-8c8b9908.entry.js +1 -0
  364. package/dist/tegel/{p-2f32991e.entry.js → p-96635c10.entry.js} +1 -1
  365. package/dist/tegel/p-a21250b8.entry.js +1 -0
  366. package/dist/tegel/p-a5e0f030.entry.js +1 -0
  367. package/dist/tegel/{p-96bdf035.entry.js → p-aa9d281b.entry.js} +1 -1
  368. package/dist/tegel/p-aadb2553.entry.js +1 -0
  369. package/dist/tegel/p-ae46766a.entry.js +1 -0
  370. package/dist/tegel/{p-86b30f71.entry.js → p-aef6b130.entry.js} +1 -1
  371. package/dist/tegel/p-b08886e3.entry.js +1 -0
  372. package/dist/tegel/{p-f67b4047.entry.js → p-b35e7208.entry.js} +1 -1
  373. package/dist/tegel/{p-a86fe122.entry.js → p-b39ffad4.entry.js} +1 -1
  374. package/dist/tegel/p-b5ced8e5.entry.js +1 -0
  375. package/dist/tegel/{p-e7300cca.entry.js → p-b686f1ad.entry.js} +1 -1
  376. package/dist/tegel/{p-b96cd80d.entry.js → p-b9576881.entry.js} +1 -1
  377. package/dist/tegel/p-b9f81e53.entry.js +1 -0
  378. package/dist/tegel/p-be1d1345.entry.js +1 -0
  379. package/dist/tegel/{p-708a8bab.entry.js → p-bee533b5.entry.js} +1 -1
  380. package/dist/tegel/p-c3607f10.entry.js +1 -0
  381. package/dist/tegel/{p-99da056d.entry.js → p-c56be8d1.entry.js} +1 -1
  382. package/dist/tegel/{p-2a38b053.entry.js → p-c8404432.entry.js} +1 -1
  383. package/dist/tegel/{p-24ff5903.entry.js → p-ca93de01.entry.js} +1 -1
  384. package/dist/tegel/p-cc6c06e3.entry.js +1 -0
  385. package/dist/tegel/{p-b19ce79c.entry.js → p-cca85da0.entry.js} +1 -1
  386. package/dist/tegel/p-cde32bc6.entry.js +1 -0
  387. package/dist/tegel/p-cf302187.entry.js +1 -0
  388. package/dist/tegel/p-d0abf078.entry.js +1 -0
  389. package/dist/tegel/{p-6d022f47.entry.js → p-d267665e.entry.js} +1 -1
  390. package/dist/tegel/{p-e9ac7a1a.entry.js → p-d33cb2d1.entry.js} +1 -1
  391. package/dist/tegel/{p-5fea857b.entry.js → p-d47c744f.entry.js} +1 -1
  392. package/dist/tegel/p-d65dfe04.entry.js +1 -0
  393. package/dist/tegel/{p-2a96bd05.entry.js → p-d853f8c2.entry.js} +1 -1
  394. package/dist/tegel/p-d9511720.entry.js +1 -0
  395. package/dist/tegel/p-ddda64eb.entry.js +1 -0
  396. package/dist/tegel/{p-fd432c54.entry.js → p-dfbbaefd.entry.js} +1 -1
  397. package/dist/tegel/{p-88204e0a.entry.js → p-ea3e071f.entry.js} +1 -1
  398. package/dist/tegel/p-eaa279dd.entry.js +1 -0
  399. package/dist/tegel/{p-2795009a.entry.js → p-ed17283a.entry.js} +1 -1
  400. package/dist/tegel/{p-e478953c.entry.js → p-ee7f07ae.entry.js} +1 -1
  401. package/dist/tegel/p-ee960089.entry.js +1 -0
  402. package/dist/tegel/{p-b9b63210.entry.js → p-f1b0211a.entry.js} +1 -1
  403. package/dist/tegel/{p-a392e6e7.entry.js → p-fa07db58.entry.js} +1 -1
  404. package/dist/tegel/tegel.esm.js +1 -1
  405. package/dist/types/components/badge/badge.d.ts +3 -0
  406. package/dist/types/components/banner/banner.d.ts +4 -0
  407. package/dist/types/components/block/block.d.ts +8 -1
  408. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  409. package/dist/types/components/button/button.d.ts +3 -0
  410. package/dist/types/components/checkbox/checkbox.d.ts +5 -0
  411. package/dist/types/components/chip/chip.d.ts +3 -0
  412. package/dist/types/components/datetime/datetime.d.ts +2 -2
  413. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +6 -2
  414. package/dist/types/components/dropdown/dropdown.d.ts +29 -24
  415. package/dist/types/components/header/header-item/header-item.d.ts +7 -0
  416. package/dist/types/components/tabs/folder-tabs/folder-tab/folder-tab.d.ts +2 -0
  417. package/dist/types/components/tabs/folder-tabs/folder-tabs.d.ts +4 -0
  418. package/dist/types/components/tabs/inline-tabs/inline-tab/inline-tab.d.ts +2 -0
  419. package/dist/types/components/tabs/inline-tabs/inline-tabs.d.ts +4 -0
  420. package/dist/types/components/tabs/navigation-tabs/navigation-tab/navigation-tab.d.ts +2 -0
  421. package/dist/types/components/tabs/navigation-tabs/navigation-tabs.d.ts +4 -0
  422. package/dist/types/components/toggle/toggle.d.ts +5 -0
  423. package/dist/types/components.d.ts +176 -23
  424. package/dist/types/types/Icons.d.ts +1 -1
  425. package/dist/types/utils/axeHelpers.d.ts +1 -2
  426. package/dist/types/utils/convertToString.d.ts +7 -0
  427. package/package.json +1 -1
  428. package/dist/components/p-ad77fb02.js +0 -65
  429. package/dist/tegel/p-0939b9fb.entry.js +0 -1
  430. package/dist/tegel/p-0b773208.entry.js +0 -1
  431. package/dist/tegel/p-0cb6c898.entry.js +0 -1
  432. package/dist/tegel/p-1703f73a.entry.js +0 -1
  433. package/dist/tegel/p-32b7f431.entry.js +0 -1
  434. package/dist/tegel/p-39373227.entry.js +0 -1
  435. package/dist/tegel/p-3c22aef7.entry.js +0 -1
  436. package/dist/tegel/p-3e1b1399.entry.js +0 -1
  437. package/dist/tegel/p-48bbc11f.entry.js +0 -1
  438. package/dist/tegel/p-4a282c25.entry.js +0 -1
  439. package/dist/tegel/p-4b231bf9.entry.js +0 -1
  440. package/dist/tegel/p-4c2f313d.entry.js +0 -1
  441. package/dist/tegel/p-59293f88.entry.js +0 -1
  442. package/dist/tegel/p-69b38504.entry.js +0 -1
  443. package/dist/tegel/p-6eeded00.entry.js +0 -1
  444. package/dist/tegel/p-7090a95c.entry.js +0 -1
  445. package/dist/tegel/p-85a9032e.entry.js +0 -1
  446. package/dist/tegel/p-9016758e.entry.js +0 -1
  447. package/dist/tegel/p-92f81cda.entry.js +0 -1
  448. package/dist/tegel/p-9c3f2c12.entry.js +0 -1
  449. package/dist/tegel/p-9eaaa2c0.entry.js +0 -1
  450. package/dist/tegel/p-a38dda58.entry.js +0 -1
  451. package/dist/tegel/p-b425b2f4.entry.js +0 -1
  452. package/dist/tegel/p-b647d20e.entry.js +0 -1
  453. package/dist/tegel/p-be88c5ab.entry.js +0 -1
  454. package/dist/tegel/p-c289dfb9.entry.js +0 -1
  455. package/dist/tegel/p-d7f48112.entry.js +0 -1
  456. package/dist/tegel/p-d926d075.entry.js +0 -1
  457. package/dist/tegel/p-ddd33cce.entry.js +0 -1
  458. package/dist/tegel/p-ea4a9a4f.entry.js +0 -1
  459. package/dist/tegel/p-ee0e04ed.entry.js +0 -1
  460. package/dist/tegel/p-f050aad8.entry.js +0 -1
  461. package/dist/tegel/p-f4db0231.entry.js +0 -1
  462. package/dist/tegel/p-fd3d56aa.entry.js +0 -1
  463. package/dist/tegel/p-ffd827ef.entry.js +0 -1
@@ -2,47 +2,57 @@ import { Host, h, } from "@stencil/core";
2
2
  import findNextFocusableElement from "../../utils/findNextFocusableElement";
3
3
  import findPreviousFocusableElement from "../../utils/findPreviousFocusableElement";
4
4
  import appendHiddenInput from "../../utils/appendHiddenInput";
5
+ import { convertToString, convertArrayToStrings } from "../../utils/convertToString";
5
6
  /**
6
7
  * @slot <default> - <b>Unnamed slot.</b> For dropdown option elements.
7
8
  */
8
9
  export class TdsDropdown {
9
10
  constructor() {
10
11
  this.setDefaultOption = () => {
11
- if (this.defaultValue) {
12
- const children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
13
- if (children.length === 0) {
14
- console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
15
- return;
16
- }
12
+ if (this.internalDefaultValue) {
13
+ // Convert the internal default value to an array if it's not already
17
14
  const defaultValues = this.multiselect
18
- ? new Set(this.defaultValue.split(','))
19
- : [this.defaultValue];
20
- const childrenMap = new Map(children.map((element) => [element.value, element]));
21
- const matchedValues = Array.from(defaultValues).filter((value) => {
22
- const element = childrenMap.get(value);
23
- if (element) {
24
- element.setSelected(true);
25
- return true;
26
- }
27
- return false;
28
- });
29
- if (matchedValues.length > 0) {
30
- this.value = [...new Set(this.value ? [...this.value, ...matchedValues] : matchedValues)];
31
- this.setValueAttribute();
32
- }
33
- else {
34
- console.warn(`TDS DROPDOWN: No matching option found for defaultValue "${this.defaultValue}"`);
35
- }
15
+ ? this.internalDefaultValue.split(',')
16
+ : [this.internalDefaultValue];
17
+ this.updateDropdownStateInternal(defaultValues);
36
18
  }
37
19
  };
38
- /* Returns a list of all children that are tds-dropdown-option elements */
39
20
  this.getChildren = () => {
40
21
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
41
22
  if (tdsDropdownOptions.length === 0) {
42
- console.warn('TDS DROPDOWN: Data missing. Disregard if loading data asynchronously.');
23
+ console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
24
+ }
25
+ return tdsDropdownOptions;
26
+ };
27
+ this.getSelectedChildren = () => {
28
+ if (this.selectedOptions.length === 0)
29
+ return [];
30
+ return this.selectedOptions
31
+ .map((stringValue) => {
32
+ var _a;
33
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
34
+ return matchingElement;
35
+ })
36
+ .filter(Boolean);
37
+ };
38
+ this.getSelectedChildrenLabels = () => {
39
+ var _a;
40
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
41
+ };
42
+ this.getValue = () => {
43
+ const labels = this.getSelectedChildrenLabels();
44
+ if (!labels) {
45
+ return '';
46
+ }
47
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
48
+ };
49
+ this.setValueAttribute = () => {
50
+ if (this.selectedOptions.length === 0) {
51
+ this.host.removeAttribute('value');
52
+ }
53
+ else {
54
+ this.host.setAttribute('value', this.selectedOptions.join(','));
43
55
  }
44
- else
45
- return tdsDropdownOptions;
46
56
  };
47
57
  this.getOpenDirection = () => {
48
58
  var _a, _b, _c, _d, _e;
@@ -57,7 +67,6 @@ export class TdsDropdown {
57
67
  }
58
68
  return this.openDirection;
59
69
  };
60
- /* Toggles the open state of the Dropdown and sets focus to the input element */
61
70
  this.handleToggleOpen = () => {
62
71
  if (!this.disabled) {
63
72
  this.open = !this.open;
@@ -66,38 +75,10 @@ export class TdsDropdown {
66
75
  }
67
76
  }
68
77
  };
69
- /* Focuses the input element in the Dropdown, if the reference is present. */
70
78
  this.focusInputElement = () => {
71
79
  if (this.inputElement)
72
80
  this.inputElement.focus();
73
81
  };
74
- this.getSelectedChildren = () => {
75
- var _a;
76
- return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((stringValue) => {
77
- const matchingElement = this.getChildren().find((element) => element.value === stringValue);
78
- return matchingElement;
79
- }).filter(Boolean);
80
- };
81
- this.getSelectedChildrenLabels = () => {
82
- var _a;
83
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
84
- };
85
- this.getValue = () => {
86
- const labels = this.getSelectedChildrenLabels();
87
- if (!labels) {
88
- return '';
89
- }
90
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
91
- };
92
- this.setValueAttribute = () => {
93
- var _a;
94
- if (!this.value || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) === '') {
95
- this.host.removeAttribute('value');
96
- }
97
- else {
98
- this.host.setAttribute('value', this.value.map((val) => val).toString());
99
- }
100
- };
101
82
  this.handleFilter = (event) => {
102
83
  this.tdsInput.emit(event);
103
84
  const query = event.target.value.toLowerCase();
@@ -128,8 +109,10 @@ export class TdsDropdown {
128
109
  this.handleFilterReset = () => {
129
110
  this.reset();
130
111
  this.inputElement.value = '';
131
- this.handleFilter({ target: { value: this.inputElement.value } });
112
+ this.handleFilter({ target: { value: '' } });
132
113
  this.inputElement.focus();
114
+ // Add this line to ensure internal value is cleared
115
+ this.internalValue = '';
133
116
  };
134
117
  this.handleFocus = (event) => {
135
118
  this.open = true;
@@ -143,13 +126,6 @@ export class TdsDropdown {
143
126
  this.handleBlur = (event) => {
144
127
  this.tdsBlur.emit(event);
145
128
  };
146
- this.handleChange = () => {
147
- var _a, _b;
148
- this.tdsChange.emit({
149
- name: this.name,
150
- value: (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString()) !== null && _b !== void 0 ? _b : null,
151
- });
152
- };
153
129
  this.resetInput = () => {
154
130
  const inputEl = this.host.querySelector('input');
155
131
  if (inputEl) {
@@ -172,16 +148,132 @@ export class TdsDropdown {
172
148
  this.normalizeText = true;
173
149
  this.noResultText = 'No result';
174
150
  this.defaultValue = undefined;
151
+ this.value = null;
175
152
  this.open = false;
176
- this.value = undefined;
153
+ this.internalValue = undefined;
177
154
  this.filterResult = undefined;
178
155
  this.filterFocus = undefined;
156
+ this.internalDefaultValue = undefined;
157
+ this.selectedOptions = [];
158
+ }
159
+ handleValueChange(newValue) {
160
+ // Normalize to array
161
+ const normalizedValue = this.normalizeValue(newValue);
162
+ // Only update if actually changed
163
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
164
+ this.updateDropdownStateFromUser(normalizedValue);
165
+ }
166
+ }
167
+ normalizeValue(value) {
168
+ if (!value || value === '')
169
+ return [];
170
+ // For single select, ensure we handle both string and array inputs
171
+ if (!this.multiselect) {
172
+ // If array is passed to single select, take first value
173
+ if (Array.isArray(value)) {
174
+ return [convertToString(value[0])];
175
+ }
176
+ return [convertToString(value)];
177
+ }
178
+ // For multiselect
179
+ if (Array.isArray(value)) {
180
+ return convertArrayToStrings(value);
181
+ }
182
+ // Handle comma-separated string for multiselect
183
+ return value
184
+ .toString()
185
+ .split(',')
186
+ .filter((v) => v !== '');
187
+ }
188
+ hasValueChanged(newValue, currentValue) {
189
+ if (newValue.length !== currentValue.length)
190
+ return true;
191
+ return newValue.some((val) => !currentValue.includes(val));
192
+ }
193
+ updateDropdownStateInternal(values) {
194
+ this.updateDropdownState(values, false);
195
+ }
196
+ updateDropdownStateFromUser(values) {
197
+ this.updateDropdownState(values, true);
198
+ }
199
+ updateDropdownState(values, userEmitted = false) {
200
+ // Validate the values first
201
+ const validValues = this.validateValues(values);
202
+ // Update internal state
203
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
204
+ // Update internal state
205
+ this.selectedOptions = [...validValues];
206
+ // Update the value prop
207
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
208
+ // Update internal value for display
209
+ this.internalValue = this.getValue();
210
+ // Update DOM
211
+ this.updateOptionElements();
212
+ // Update display value
213
+ this.updateDisplayValue();
214
+ // Update value attribute
215
+ this.setValueAttribute();
216
+ // Only emit change if it is an user emitted event
217
+ if (userEmitted)
218
+ this.emitChange();
219
+ }
220
+ validateValues(values) {
221
+ // Make sure we have children before validation
222
+ const children = this.getChildren();
223
+ if (!children || children.length === 0) {
224
+ console.warn('No dropdown options found');
225
+ return values; // Return original values if no children yet
226
+ }
227
+ return values.filter((val) => {
228
+ const isValid = children.some((element) => convertToString(element.value) === convertToString(val));
229
+ if (!isValid) {
230
+ console.warn(`Option with value "${val}" does not exist`);
231
+ }
232
+ return isValid;
233
+ });
234
+ }
235
+ updateOptionElements() {
236
+ var _a;
237
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
238
+ // Convert element.value to string for comparison
239
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
240
+ });
241
+ }
242
+ updateDisplayValue() {
243
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
244
+ if (this.filter && this.inputElement) {
245
+ this.inputElement.value = this.internalValue;
246
+ }
247
+ }
248
+ emitChange() {
249
+ const value = this.multiselect
250
+ ? this.selectedOptions.join(',')
251
+ : this.selectedOptions[0] || null;
252
+ this.tdsChange.emit({
253
+ name: this.name,
254
+ value: value !== null && value !== void 0 ? value : null,
255
+ });
256
+ }
257
+ async setValue(value) {
258
+ let normalizedValue;
259
+ if (Array.isArray(value)) {
260
+ normalizedValue = convertArrayToStrings(value);
261
+ }
262
+ else {
263
+ normalizedValue = [convertToString(value)];
264
+ }
265
+ this.updateDropdownStateFromUser(normalizedValue);
266
+ return this.getSelectedChildren().map((element) => ({
267
+ value: element.value,
268
+ label: element.textContent.trim(),
269
+ }));
179
270
  }
180
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
181
271
  async reset() {
182
- this.dropdownList.scrollTop = 0;
183
- this.internalReset();
184
- this.handleChange();
272
+ this.updateDropdownStateFromUser([]);
273
+ }
274
+ async removeValue(oldValue) {
275
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
276
+ this.updateDropdownStateFromUser(newValues);
185
277
  }
186
278
  /** Method that forces focus on the input element. */
187
279
  async focusElement() {
@@ -202,79 +294,6 @@ export class TdsDropdown {
202
294
  * dropdown.setValue(['option-1', 'option-2']);
203
295
  * </code>
204
296
  */
205
- // The label is optional here ONLY to not break the API. Should be removed for 2.0.
206
- // @ts-ignore
207
- // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
208
- async setValue(value, label) {
209
- let nextValue;
210
- if (typeof value === 'string')
211
- nextValue = [value];
212
- else
213
- nextValue = value;
214
- if (!this.multiselect && nextValue.length > 1) {
215
- console.warn('Tried to select multiple items, but multiselect is not enabled.');
216
- nextValue = [nextValue[0]];
217
- }
218
- nextValue = [...new Set(nextValue)];
219
- this.internalReset();
220
- for (let i = 0; i < nextValue.length; i++) {
221
- const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
222
- if (!optionExist) {
223
- nextValue.splice(i, 1);
224
- }
225
- }
226
- this.value = nextValue;
227
- this.setValueAttribute();
228
- this.selectChildrenAsSelectedBasedOnSelectionProp();
229
- this.handleChange();
230
- /* 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. */
231
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
232
- const selection = this.getSelectedChildren().map((element) => ({
233
- value: element.value,
234
- label: element.textContent.trim(),
235
- }));
236
- // Update inputElement value and placeholder text
237
- if (this.filter) {
238
- this.inputElement.value = this.getValue();
239
- }
240
- return selection;
241
- }
242
- /**
243
- * @internal
244
- */
245
- async appendValue(value) {
246
- if (this.multiselect && this.value) {
247
- this.setValue([...this.value, value]);
248
- }
249
- else {
250
- this.setValue(value);
251
- }
252
- }
253
- /** Method for removing a selected value in the Dropdown. */
254
- async removeValue(oldValue) {
255
- var _a, _b;
256
- let label;
257
- if (this.multiselect) {
258
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
259
- var _a;
260
- if (element.value === oldValue) {
261
- this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
262
- label = element.textContent.trim();
263
- element.setSelected(false);
264
- }
265
- return element;
266
- });
267
- }
268
- else {
269
- this.reset();
270
- }
271
- this.handleChange();
272
- this.setValueAttribute();
273
- /* 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. */
274
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
275
- return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
276
- }
277
- /** Method for closing the Dropdown. */
278
297
  async close() {
279
298
  this.open = false;
280
299
  }
@@ -321,12 +340,31 @@ export class TdsDropdown {
321
340
  handleOpenState() {
322
341
  if (this.filter && this.multiselect) {
323
342
  if (!this.open) {
324
- this.inputElement.value = this.getValue();
343
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
325
344
  }
326
345
  }
327
346
  }
347
+ handleDefaultValueChange(newValue) {
348
+ if (newValue !== undefined && newValue !== null) {
349
+ this.internalDefaultValue = convertToString(newValue);
350
+ this.setDefaultOption();
351
+ }
352
+ }
328
353
  componentWillLoad() {
329
- this.setDefaultOption();
354
+ // First handle the value prop if it exists
355
+ if (this.value !== null && this.value !== undefined) {
356
+ const normalizedValue = this.normalizeValue(this.value);
357
+ this.updateDropdownStateInternal(normalizedValue);
358
+ return; // Exit early if we handled the value prop
359
+ }
360
+ // Only use defaultValue if no value prop was provided
361
+ if (this.defaultValue !== null && this.defaultValue !== undefined) {
362
+ const defaultValueStr = convertToString(this.defaultValue);
363
+ const initialValue = this.multiselect
364
+ ? defaultValueStr.split(',').map(convertToString)
365
+ : [convertToString(this.defaultValue)];
366
+ this.updateDropdownStateInternal(initialValue);
367
+ }
330
368
  }
331
369
  /** Method to handle slot changes */
332
370
  handleSlotChange() {
@@ -336,29 +374,16 @@ export class TdsDropdown {
336
374
  normalizeString(text) {
337
375
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
338
376
  }
339
- /** Method that resets the dropdown without emitting an event. */
340
- internalReset() {
341
- this.getChildren().forEach((element) => {
342
- element.setSelected(false);
343
- return element;
344
- });
345
- this.value = null;
346
- this.setValueAttribute();
347
- }
348
- selectChildrenAsSelectedBasedOnSelectionProp() {
349
- this.getChildren().forEach((element) => {
350
- this.value.forEach((selection) => {
351
- if (element.value !== selection) {
352
- // If not multiselect, we need to unselect all other options.
353
- if (!this.multiselect) {
354
- element.setSelected(false);
355
- }
356
- }
357
- else {
358
- element.setSelected(true);
359
- }
360
- });
361
- });
377
+ /**
378
+ * @internal
379
+ */
380
+ async appendValue(value) {
381
+ if (this.multiselect) {
382
+ this.updateDropdownStateFromUser([...this.selectedOptions, value]);
383
+ }
384
+ else {
385
+ this.updateDropdownStateFromUser([value]);
386
+ }
362
387
  }
363
388
  componentDidRender() {
364
389
  const form = this.host.closest('form');
@@ -373,11 +398,10 @@ export class TdsDropdown {
373
398
  }
374
399
  }
375
400
  render() {
376
- var _a, _b, _c, _d;
377
- appendHiddenInput(this.host, this.name, (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString(), this.disabled);
378
- return (h(Host, { key: '3b547dda7bede0ae8e020d976d08ed9d8bf50356', role: "select", class: {
401
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
402
+ return (h(Host, { key: '48d15709a3b7b34ab898823c9494410d96c36519', role: "select", class: {
379
403
  [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
380
- } }, this.label && this.labelPosition === 'outside' && (h("div", { key: 'ca3c45bce793171f4af249b4c007d4279599f2b4', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: 'fb12d8b69a4430977b3269f44f9b5e5600965cc1', class: {
404
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: '94fe586eaa258a771a70d1e7d9f2db5327bb663c', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '02780cf7cbc43d3f3eb416b2bd8c0af6562be756', class: {
381
405
  'dropdown-select': true,
382
406
  [this.size]: true,
383
407
  'disabled': this.disabled,
@@ -389,7 +413,7 @@ export class TdsDropdown {
389
413
  } }, 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: `
390
414
  label-inside-as-placeholder
391
415
  ${this.size}
392
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
416
+ ${this.selectedOptions.length ? 'selected' : ''}
393
417
  ` }, this.label)), h("input", {
394
418
  // eslint-disable-next-line no-return-assign
395
419
  ref: (inputEl) => (this.inputElement = inputEl), class: {
@@ -400,15 +424,7 @@ export class TdsDropdown {
400
424
  this.inputElement.value = this.getValue();
401
425
  }
402
426
  this.handleBlur(event);
403
- }, onFocus: (event) => {
404
- this.open = true;
405
- this.filterFocus = true;
406
- if (this.multiselect) {
407
- this.inputElement.value = '';
408
- }
409
- this.handleFocus(event);
410
- this.handleFilter({ target: { value: '' } });
411
- }, onKeyDown: (event) => {
427
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
412
428
  if (event.key === 'Escape') {
413
429
  this.open = false;
414
430
  }
@@ -428,17 +444,15 @@ export class TdsDropdown {
428
444
  if (event.key === 'Escape') {
429
445
  this.open = false;
430
446
  }
431
- }, class: {
432
- value: Boolean(this.value),
433
- placeholder: Boolean(!this.value),
434
- open: this.open,
435
- closed: !this.open,
436
- error: this.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': true,
439
- [this.size]: true,
440
- 'selected': Boolean((_c = this.value) === null || _c === void 0 ? void 0 : _c.length),
441
- } }, this.label)), h("div", { class: `placeholder ${this.size}` }, ((_d = this.value) === null || _d === void 0 ? void 0 : _d.length) ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: 'b734958a92e331bc6fcd07a0cf716219cec235c1', ref: (element) => {
447
+ }, class: `
448
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
449
+ ${this.open ? 'open' : 'closed'}
450
+ ${this.error ? 'error' : ''}
451
+ `, 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: `
452
+ label-inside-as-placeholder
453
+ ${this.size}
454
+ ${this.selectedOptions.length ? 'selected' : ''}
455
+ ` }, 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: 'c4ddfd66a21019a1ab9922971541a3e51d22b488', ref: (element) => {
442
456
  this.dropdownList = element;
443
457
  }, class: {
444
458
  'dropdown-list': true,
@@ -449,11 +463,11 @@ export class TdsDropdown {
449
463
  'closed': !this.open,
450
464
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
451
465
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
452
- } }, h("slot", { key: '85d5f7599b21df148a34416fb271c894ff6a2e3e', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '5009c99ade06605dd2605e28f59b82e78e3f3bec', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: '88d55d60aac26a3c5af04bfa74b6649d5d893fce', class: {
466
+ } }, h("slot", { key: '7ed90314e2f5fd2bac731fa6b31142a7f1d51870', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: 'ed2af7d051080dbf8eaec837f429e98695dec4ee', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'acb696e82a61966fe978ea9cd0f7c2a85583da42', class: {
453
467
  helper: true,
454
468
  error: this.error,
455
469
  disabled: this.disabled,
456
- } }, this.error && h("tds-icon", { key: '1f6f2b7272f35501bf684816b4bc1cd746910fe9', name: "error", size: "16px" }), this.helper))));
470
+ } }, this.error && h("tds-icon", { key: '94b4a119db6ef6e44b3c8d2adec3955cec132708', name: "error", size: "16px" }), this.helper))));
457
471
  }
458
472
  static get is() { return "tds-dropdown"; }
459
473
  static get encapsulation() { return "shadow"; }
@@ -735,11 +749,11 @@ export class TdsDropdown {
735
749
  "defaultValue": "'No result'"
736
750
  },
737
751
  "defaultValue": {
738
- "type": "string",
752
+ "type": "any",
739
753
  "mutable": false,
740
754
  "complexType": {
741
- "original": "string",
742
- "resolved": "string",
755
+ "original": "string | number",
756
+ "resolved": "number | string",
743
757
  "references": {}
744
758
  },
745
759
  "required": false,
@@ -750,15 +764,35 @@ export class TdsDropdown {
750
764
  },
751
765
  "attribute": "default-value",
752
766
  "reflect": false
767
+ },
768
+ "value": {
769
+ "type": "any",
770
+ "mutable": true,
771
+ "complexType": {
772
+ "original": "string | number | (string | number)[]",
773
+ "resolved": "(string | number)[] | number | string",
774
+ "references": {}
775
+ },
776
+ "required": false,
777
+ "optional": false,
778
+ "docs": {
779
+ "tags": [],
780
+ "text": "Value of the dropdown. For multiselect, provide array of strings/numbers. For single select, provide a string/number."
781
+ },
782
+ "attribute": "value",
783
+ "reflect": false,
784
+ "defaultValue": "null"
753
785
  }
754
786
  };
755
787
  }
756
788
  static get states() {
757
789
  return {
758
790
  "open": {},
759
- "value": {},
791
+ "internalValue": {},
760
792
  "filterResult": {},
761
- "filterFocus": {}
793
+ "filterFocus": {},
794
+ "internalDefaultValue": {},
795
+ "selectedOptions": {}
762
796
  };
763
797
  }
764
798
  static get events() {
@@ -841,24 +875,32 @@ export class TdsDropdown {
841
875
  }
842
876
  static get methods() {
843
877
  return {
844
- "reset": {
878
+ "setValue": {
845
879
  "complexType": {
846
- "signature": "() => Promise<void>",
847
- "parameters": [],
880
+ "signature": "(value: string | number | string[] | number[]) => Promise<{ value: string | number; label: string; }[]>",
881
+ "parameters": [{
882
+ "name": "value",
883
+ "type": "string | number | string[] | number[]",
884
+ "docs": ""
885
+ }],
848
886
  "references": {
849
887
  "Promise": {
850
888
  "location": "global",
851
889
  "id": "global::Promise"
890
+ },
891
+ "HTMLTdsDropdownOptionElement": {
892
+ "location": "global",
893
+ "id": "global::HTMLTdsDropdownOptionElement"
852
894
  }
853
895
  },
854
- "return": "Promise<void>"
896
+ "return": "Promise<{ value: string | number; label: string; }[]>"
855
897
  },
856
898
  "docs": {
857
- "text": "Method that resets the Dropdown, marks all children as non-selected and resets the value to null.",
899
+ "text": "",
858
900
  "tags": []
859
901
  }
860
902
  },
861
- "focusElement": {
903
+ "reset": {
862
904
  "complexType": {
863
905
  "signature": "() => Promise<void>",
864
906
  "parameters": [],
@@ -871,19 +913,15 @@ export class TdsDropdown {
871
913
  "return": "Promise<void>"
872
914
  },
873
915
  "docs": {
874
- "text": "Method that forces focus on the input element.",
916
+ "text": "",
875
917
  "tags": []
876
918
  }
877
919
  },
878
- "setValue": {
920
+ "removeValue": {
879
921
  "complexType": {
880
- "signature": "(value: string | string[], label?: string) => Promise<{ value: string; label: string; }[]>",
922
+ "signature": "(oldValue: string) => Promise<void>",
881
923
  "parameters": [{
882
- "name": "value",
883
- "type": "string | string[]",
884
- "docs": ""
885
- }, {
886
- "name": "label",
924
+ "name": "oldValue",
887
925
  "type": "string",
888
926
  "docs": ""
889
927
  }],
@@ -891,27 +929,19 @@ export class TdsDropdown {
891
929
  "Promise": {
892
930
  "location": "global",
893
931
  "id": "global::Promise"
894
- },
895
- "HTMLTdsDropdownOptionElement": {
896
- "location": "global",
897
- "id": "global::HTMLTdsDropdownOptionElement"
898
932
  }
899
933
  },
900
- "return": "Promise<{ value: string; label: string; }[]>"
934
+ "return": "Promise<void>"
901
935
  },
902
936
  "docs": {
903
- "text": "Method for setting the value of the Dropdown.\n\nSingle selection example:\n\n<code>\ndropdown.setValue('option-1', 'Option 1');\n</code>\n\nMultiselect example:\n\n<code>\ndropdown.setValue(['option-1', 'option-2']);\n</code>",
937
+ "text": "",
904
938
  "tags": []
905
939
  }
906
940
  },
907
- "appendValue": {
941
+ "focusElement": {
908
942
  "complexType": {
909
- "signature": "(value: string) => Promise<void>",
910
- "parameters": [{
911
- "name": "value",
912
- "type": "string",
913
- "docs": ""
914
- }],
943
+ "signature": "() => Promise<void>",
944
+ "parameters": [],
915
945
  "references": {
916
946
  "Promise": {
917
947
  "location": "global",
@@ -921,42 +951,35 @@ export class TdsDropdown {
921
951
  "return": "Promise<void>"
922
952
  },
923
953
  "docs": {
924
- "text": "",
925
- "tags": [{
926
- "name": "internal",
927
- "text": undefined
928
- }]
954
+ "text": "Method that forces focus on the input element.",
955
+ "tags": []
929
956
  }
930
957
  },
931
- "removeValue": {
958
+ "close": {
932
959
  "complexType": {
933
- "signature": "(oldValue: string) => Promise<{ value: string; label: string; }[]>",
934
- "parameters": [{
935
- "name": "oldValue",
936
- "type": "string",
937
- "docs": ""
938
- }],
960
+ "signature": "() => Promise<void>",
961
+ "parameters": [],
939
962
  "references": {
940
963
  "Promise": {
941
964
  "location": "global",
942
965
  "id": "global::Promise"
943
- },
944
- "HTMLTdsDropdownOptionElement": {
945
- "location": "global",
946
- "id": "global::HTMLTdsDropdownOptionElement"
947
966
  }
948
967
  },
949
- "return": "Promise<{ value: string; label: string; }[]>"
968
+ "return": "Promise<void>"
950
969
  },
951
970
  "docs": {
952
- "text": "Method for removing a selected value in the Dropdown.",
971
+ "text": "Method for setting the value of the Dropdown.\n\nSingle selection example:\n\n<code>\ndropdown.setValue('option-1', 'Option 1');\n</code>\n\nMultiselect example:\n\n<code>\ndropdown.setValue(['option-1', 'option-2']);\n</code>",
953
972
  "tags": []
954
973
  }
955
974
  },
956
- "close": {
975
+ "appendValue": {
957
976
  "complexType": {
958
- "signature": "() => Promise<void>",
959
- "parameters": [],
977
+ "signature": "(value: string) => Promise<void>",
978
+ "parameters": [{
979
+ "name": "value",
980
+ "type": "string",
981
+ "docs": ""
982
+ }],
960
983
  "references": {
961
984
  "Promise": {
962
985
  "location": "global",
@@ -966,8 +989,11 @@ export class TdsDropdown {
966
989
  "return": "Promise<void>"
967
990
  },
968
991
  "docs": {
969
- "text": "Method for closing the Dropdown.",
970
- "tags": []
992
+ "text": "",
993
+ "tags": [{
994
+ "name": "internal",
995
+ "text": undefined
996
+ }]
971
997
  }
972
998
  }
973
999
  };
@@ -975,8 +1001,14 @@ export class TdsDropdown {
975
1001
  static get elementRef() { return "host"; }
976
1002
  static get watchers() {
977
1003
  return [{
1004
+ "propName": "value",
1005
+ "methodName": "handleValueChange"
1006
+ }, {
978
1007
  "propName": "open",
979
1008
  "methodName": "handleOpenState"
1009
+ }, {
1010
+ "propName": "defaultValue",
1011
+ "methodName": "handleDefaultValueChange"
980
1012
  }];
981
1013
  }
982
1014
  static get listeners() {