@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
@@ -62,6 +62,21 @@ const appendHiddenInput = (element, name, value, disabled, additionalAttributes)
62
62
  input.value = value || '';
63
63
  };
64
64
 
65
+ /**
66
+ * Converts a value (string or number) to string
67
+ * @param value - The value to convert
68
+ * @returns The string representation of the value, or empty string if null/undefined
69
+ */
70
+ const convertToString = (value) => {
71
+ if (value === null || value === undefined)
72
+ return '';
73
+ return value.toString();
74
+ };
75
+ // Optional: If we need array conversion often
76
+ const convertArrayToStrings = (values) => {
77
+ return values.map((value) => convertToString(value));
78
+ };
79
+
65
80
  const dropdownCss = "@charset \"UTF-8\";:host button{all:unset;height:100%;width:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);border-radius:var(--tds-dropdown-border-radius)}:host button:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host button .value-wrapper{padding:0 16px;display:flex;align-items:center;justify-content:space-between}:host button.placeholder{color:var(--tds-dropdown-placeholder-color);line-height:1.3}:host button.value{color:var(--tds-dropdown-value-color);font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);line-height:1.3}:host button:focus{border-bottom-color:var(--tds-dropdown-border-bottom-open)}:host button:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:1px;background:var(--tds-dropdown-border-bottom-open)}:host button.error{border-bottom:1px solid var(--tds-negative)}:host button.error:focus{border-bottom-color:transparent}:host button.error:focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host button:disabled{color:var(--tds-dropdown-disabled-color);border-bottom:1px solid transparent}:host button .menu-icon{margin-right:0}:host .filter{display:flex;align-items:center;justify-content:space-between;height:100%;background-color:var(--tds-dropdown-bg);border-bottom:1px solid var(--tds-dropdown-border-bottom);padding-left:16px;border-radius:4px 4px 0 0}:host .filter:hover{border-bottom:1px solid var(--tds-dropdown-border-bottom-hover)}:host .filter.disabled{color:var(--tds-dropdown-disabled-color);border-bottom:1px solid transparent}:host .filter .value-wrapper{display:flex;width:100%;height:100%}:host .filter .value-wrapper input{color:var(--tds-dropdown-filter-input-color)}:host .filter .label-inside-as-placeholder{position:absolute;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);line-height:1.3;color:var(--tds-dropdown-placeholder-color)}:host .filter .label-inside-as-placeholder.lg{top:20px}:host .filter .label-inside-as-placeholder.md{top:16px}:host .filter .label-inside-as-placeholder.sm{display:none}:host .filter .label-inside-as-placeholder.selected{font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .filter .label-inside-as-placeholder.selected.lg{top:12px}:host .filter .label-inside-as-placeholder.selected.md{top:8px}:host .filter .label-inside-as-placeholder.selected.sm{display:none}:host .filter .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .filter.focus{border-bottom-color:transparent}:host .filter.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-dropdown-border-bottom-open)}:host .filter.error{border-bottom:1px solid var(--tds-negative)}:host .filter.error.focus{border-bottom-color:transparent}:host .filter.error.focus::before{content:\"\";position:absolute;bottom:0;left:0;width:100%;height:2px;background:var(--tds-negative)}:host .filter input{flex:1;all:unset;width:100%}:host .filter input::placeholder{color:var(--tds-dropdown-placeholder-color)}:host .filter input:disabled::placeholder{color:var(--tds-dropdown-disabled-color)}:host .filter tds-icon{cursor:pointer}:host .filter .menu-icon{margin-right:16px}:host .filter .clear-icon{margin:0 8px;color:var(--tds-dropdown-clear-icon-color);padding-right:8px;border-right:1px solid var(--tds-dropdown-clear-icon-color)}:host .filter .clear-icon:hover{color:var(--tds-dropdown-clear-icon-hover-color)}:host .filter .clear-icon.hide{display:none;visibility:hidden}:host{--tds-scrollbar-width-standard:thin;--tds-scrollbar-width:10px;--tds-scrollbar-height:10px;--tds-scrollbar-thumb-border-width:3px;--tds-scrollbar-thumb-border-hover-width:2px}body{scrollbar-width:thin}:host{display:block;position:relative;font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls)}:host .label-outside{font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);color:var(--tds-dropdown-label-color);margin-bottom:8px}:host .label-outside.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select{position:relative}:host .dropdown-select button{transition:border-bottom-color var(--tds-motion-duration-fast-02) var(--tds-motion-easing-scania)}:host .dropdown-select button:focus{border-bottom-color:var(--tds-dropdown-border-bottom)}:host .dropdown-select button:hover{border-bottom-color:var(--tds-dropdown-border-bottom-hover)}:host .dropdown-select button{border-bottom-color:var(--tds-dropdown-border-bottom)}:host .dropdown-select button.error{border-bottom-color:var(--tds-negative)}:host .dropdown-select button.error:focus{border-bottom-color:transparent}:host .dropdown-select.disabled .label-inside,:host .dropdown-select.disabled .placeholder,:host .dropdown-select.disabled .label-inside-as-placeholder,:host .dropdown-select.disabled .value-wrapper{color:var(--tds-dropdown-disabled-color)}:host .dropdown-select.disabled button{border:none}:host .dropdown-select .label-inside{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);color:var(--tds-dropdown-label-inside-color)}:host .dropdown-select .label-inside.lg{top:12px;left:16px}:host .dropdown-select .label-inside.md{top:8px;left:16px}:host .dropdown-select .label-inside.sm{display:none}:host .dropdown-select .label-inside.xs{display:none}:host .dropdown-select .label-inside+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select .placeholder{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-right:var(--tds-placeholder-margin);}:host .dropdown-select .placeholder.xs{line-height:1}:host .dropdown-select .label-inside-as-placeholder{color:var(--tds-dropdown-placeholder-color)}:host .dropdown-select .label-inside-as-placeholder.selected{position:absolute;font:var(--tds-detail-07);letter-spacing:var(--tds-detail-07-ls);transition:all 0.2s ease-in-out}:host .dropdown-select .label-inside-as-placeholder.selected.lg{top:12px}:host .dropdown-select .label-inside-as-placeholder.selected.md{top:8px}:host .dropdown-select .label-inside-as-placeholder.selected.sm{display:none}:host .dropdown-select .label-inside-as-placeholder.selected+.placeholder:not(.sm){margin-top:8px}:host .dropdown-select.lg{height:55px}:host .dropdown-select.md{height:47px}:host .dropdown-select.sm{height:39px}:host .dropdown-select.xs{height:29px}:host .helper{margin-top:4px;color:var(--tds-dropdown-helper-color);font:var(--tds-detail-05);letter-spacing:var(--tds-detail-05-ls);display:flex;align-items:center;gap:8px}:host .helper.error{color:var(--tds-negative)}:host .helper.disabled{color:var(--tds-dropdown-disabled-color)}:host .dropdown-list{z-index:100;position:absolute;margin-top:1px;width:100%;transform-origin:top;box-shadow:rgba(0, 0, 0, 0.1) 0 2px 3px 0;border-radius:var(--tds-dropdown-list-border-radius-down);overflow-y:auto;transform:scaleY(0);pointer-events:none}:host .dropdown-list:hover::-webkit-scrollbar-thumb{border:var(--tds-scrollbar-thumb-border-hover-width) solid transparent;background:var(--tds-scrollbar-hover-thumb-color);background-clip:padding-box}:host .dropdown-list::-webkit-scrollbar{width:var(--tds-scrollbar-width)}:host .dropdown-list::-webkit-scrollbar-track{background:var(--tds-scrollbar-track-color)}:host .dropdown-list::-webkit-scrollbar-thumb{border-radius:40px;background:var(--tds-scrollbar-thumb-color);border:var(--tds-scrollbar-thumb-border-width) solid transparent;background-clip:padding-box}:host .dropdown-list::-webkit-scrollbar-button{height:0;width:0}@supports not selector(::-webkit-scrollbar){:host .dropdown-list{scrollbar-color:var(--tds-scrollbar-thumb-color) var(--tds-scrollbar-track-color);scrollbar-width:var(--tds-scrollbar-width-standard)}}:host .dropdown-list.lg{max-height:312px}:host .dropdown-list.md{max-height:312px}:host .dropdown-list.sm{max-height:260px}:host .dropdown-list.xs{max-height:260px}:host .dropdown-list.up{bottom:100%;margin-top:0;margin-bottom:1px;transform-origin:bottom;display:flex;flex-direction:column-reverse;box-shadow:rgba(0, 0, 0, 0.1) 0 -1px 3px 0;border-radius:var(--tds-dropdown-list-border-radius-up)}:host .dropdown-list.up.label-outside{bottom:calc(100% - 24px)}:host .dropdown-list.closed{transform:scaleY(0);pointer-events:none}:host .dropdown-list.open{transform:scaleY(1);visibility:visible;opacity:1;pointer-events:auto}:host .dropdown-list.animation-enter-slide{transition:transform var(--tds-motion-duration-moderate-01) var(--tds-motion-easing-enter)}:host .dropdown-list.animation-exit-slide{transition:transform var(--tds-motion-duration-moderate-01) var(--tds-motion-easing-exit)}:host .dropdown-list .no-result{font:var(--tds-detail-02);letter-spacing:var(--tds-detail-02-ls);display:flex;align-items:center;padding:0 16px;background-color:var(--tds-dropdown-bg)}:host .dropdown-list .no-result.lg{height:56px}:host .dropdown-list .no-result.md{height:48px}:host .dropdown-list .no-result.sm{height:40px}:host .dropdown-list .no-result.xs{height:40px}:host .menu-icon{color:var(--tds-dropdown-menu-icon-color)}:host tds-icon{transition:transform var(--tds-motion-duration-fast-02) var(--tds-motion-easing-scania)}:host tds-icon.open{transform:rotateZ(180deg)}";
66
81
  const TdsDropdownStyle0 = dropdownCss;
67
82
 
@@ -73,41 +88,50 @@ const TdsDropdown = class {
73
88
  this.tdsBlur = index.createEvent(this, "tdsBlur", 6);
74
89
  this.tdsInput = index.createEvent(this, "tdsInput", 6);
75
90
  this.setDefaultOption = () => {
76
- if (this.defaultValue) {
77
- const children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
78
- if (children.length === 0) {
79
- console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
80
- return;
81
- }
91
+ if (this.internalDefaultValue) {
92
+ // Convert the internal default value to an array if it's not already
82
93
  const defaultValues = this.multiselect
83
- ? new Set(this.defaultValue.split(','))
84
- : [this.defaultValue];
85
- const childrenMap = new Map(children.map((element) => [element.value, element]));
86
- const matchedValues = Array.from(defaultValues).filter((value) => {
87
- const element = childrenMap.get(value);
88
- if (element) {
89
- element.setSelected(true);
90
- return true;
91
- }
92
- return false;
93
- });
94
- if (matchedValues.length > 0) {
95
- this.value = [...new Set(this.value ? [...this.value, ...matchedValues] : matchedValues)];
96
- this.setValueAttribute();
97
- }
98
- else {
99
- console.warn(`TDS DROPDOWN: No matching option found for defaultValue "${this.defaultValue}"`);
100
- }
94
+ ? this.internalDefaultValue.split(',')
95
+ : [this.internalDefaultValue];
96
+ this.updateDropdownStateInternal(defaultValues);
101
97
  }
102
98
  };
103
- /* Returns a list of all children that are tds-dropdown-option elements */
104
99
  this.getChildren = () => {
105
100
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
106
101
  if (tdsDropdownOptions.length === 0) {
107
- console.warn('TDS DROPDOWN: Data missing. Disregard if loading data asynchronously.');
102
+ console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
103
+ }
104
+ return tdsDropdownOptions;
105
+ };
106
+ this.getSelectedChildren = () => {
107
+ if (this.selectedOptions.length === 0)
108
+ return [];
109
+ return this.selectedOptions
110
+ .map((stringValue) => {
111
+ var _a;
112
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
113
+ return matchingElement;
114
+ })
115
+ .filter(Boolean);
116
+ };
117
+ this.getSelectedChildrenLabels = () => {
118
+ var _a;
119
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
120
+ };
121
+ this.getValue = () => {
122
+ const labels = this.getSelectedChildrenLabels();
123
+ if (!labels) {
124
+ return '';
125
+ }
126
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
127
+ };
128
+ this.setValueAttribute = () => {
129
+ if (this.selectedOptions.length === 0) {
130
+ this.host.removeAttribute('value');
131
+ }
132
+ else {
133
+ this.host.setAttribute('value', this.selectedOptions.join(','));
108
134
  }
109
- else
110
- return tdsDropdownOptions;
111
135
  };
112
136
  this.getOpenDirection = () => {
113
137
  var _a, _b, _c, _d, _e;
@@ -122,7 +146,6 @@ const TdsDropdown = class {
122
146
  }
123
147
  return this.openDirection;
124
148
  };
125
- /* Toggles the open state of the Dropdown and sets focus to the input element */
126
149
  this.handleToggleOpen = () => {
127
150
  if (!this.disabled) {
128
151
  this.open = !this.open;
@@ -131,38 +154,10 @@ const TdsDropdown = class {
131
154
  }
132
155
  }
133
156
  };
134
- /* Focuses the input element in the Dropdown, if the reference is present. */
135
157
  this.focusInputElement = () => {
136
158
  if (this.inputElement)
137
159
  this.inputElement.focus();
138
160
  };
139
- this.getSelectedChildren = () => {
140
- var _a;
141
- return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((stringValue) => {
142
- const matchingElement = this.getChildren().find((element) => element.value === stringValue);
143
- return matchingElement;
144
- }).filter(Boolean);
145
- };
146
- this.getSelectedChildrenLabels = () => {
147
- var _a;
148
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
149
- };
150
- this.getValue = () => {
151
- const labels = this.getSelectedChildrenLabels();
152
- if (!labels) {
153
- return '';
154
- }
155
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
156
- };
157
- this.setValueAttribute = () => {
158
- var _a;
159
- if (!this.value || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) === '') {
160
- this.host.removeAttribute('value');
161
- }
162
- else {
163
- this.host.setAttribute('value', this.value.map((val) => val).toString());
164
- }
165
- };
166
161
  this.handleFilter = (event) => {
167
162
  this.tdsInput.emit(event);
168
163
  const query = event.target.value.toLowerCase();
@@ -193,8 +188,10 @@ const TdsDropdown = class {
193
188
  this.handleFilterReset = () => {
194
189
  this.reset();
195
190
  this.inputElement.value = '';
196
- this.handleFilter({ target: { value: this.inputElement.value } });
191
+ this.handleFilter({ target: { value: '' } });
197
192
  this.inputElement.focus();
193
+ // Add this line to ensure internal value is cleared
194
+ this.internalValue = '';
198
195
  };
199
196
  this.handleFocus = (event) => {
200
197
  this.open = true;
@@ -208,13 +205,6 @@ const TdsDropdown = class {
208
205
  this.handleBlur = (event) => {
209
206
  this.tdsBlur.emit(event);
210
207
  };
211
- this.handleChange = () => {
212
- var _a, _b;
213
- this.tdsChange.emit({
214
- name: this.name,
215
- value: (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString()) !== null && _b !== void 0 ? _b : null,
216
- });
217
- };
218
208
  this.resetInput = () => {
219
209
  const inputEl = this.host.querySelector('input');
220
210
  if (inputEl) {
@@ -237,16 +227,132 @@ const TdsDropdown = class {
237
227
  this.normalizeText = true;
238
228
  this.noResultText = 'No result';
239
229
  this.defaultValue = undefined;
230
+ this.value = null;
240
231
  this.open = false;
241
- this.value = undefined;
232
+ this.internalValue = undefined;
242
233
  this.filterResult = undefined;
243
234
  this.filterFocus = undefined;
235
+ this.internalDefaultValue = undefined;
236
+ this.selectedOptions = [];
237
+ }
238
+ handleValueChange(newValue) {
239
+ // Normalize to array
240
+ const normalizedValue = this.normalizeValue(newValue);
241
+ // Only update if actually changed
242
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
243
+ this.updateDropdownStateFromUser(normalizedValue);
244
+ }
245
+ }
246
+ normalizeValue(value) {
247
+ if (!value || value === '')
248
+ return [];
249
+ // For single select, ensure we handle both string and array inputs
250
+ if (!this.multiselect) {
251
+ // If array is passed to single select, take first value
252
+ if (Array.isArray(value)) {
253
+ return [convertToString(value[0])];
254
+ }
255
+ return [convertToString(value)];
256
+ }
257
+ // For multiselect
258
+ if (Array.isArray(value)) {
259
+ return convertArrayToStrings(value);
260
+ }
261
+ // Handle comma-separated string for multiselect
262
+ return value
263
+ .toString()
264
+ .split(',')
265
+ .filter((v) => v !== '');
266
+ }
267
+ hasValueChanged(newValue, currentValue) {
268
+ if (newValue.length !== currentValue.length)
269
+ return true;
270
+ return newValue.some((val) => !currentValue.includes(val));
271
+ }
272
+ updateDropdownStateInternal(values) {
273
+ this.updateDropdownState(values, false);
274
+ }
275
+ updateDropdownStateFromUser(values) {
276
+ this.updateDropdownState(values, true);
277
+ }
278
+ updateDropdownState(values, userEmitted = false) {
279
+ // Validate the values first
280
+ const validValues = this.validateValues(values);
281
+ // Update internal state
282
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
283
+ // Update internal state
284
+ this.selectedOptions = [...validValues];
285
+ // Update the value prop
286
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
287
+ // Update internal value for display
288
+ this.internalValue = this.getValue();
289
+ // Update DOM
290
+ this.updateOptionElements();
291
+ // Update display value
292
+ this.updateDisplayValue();
293
+ // Update value attribute
294
+ this.setValueAttribute();
295
+ // Only emit change if it is an user emitted event
296
+ if (userEmitted)
297
+ this.emitChange();
298
+ }
299
+ validateValues(values) {
300
+ // Make sure we have children before validation
301
+ const children = this.getChildren();
302
+ if (!children || children.length === 0) {
303
+ console.warn('No dropdown options found');
304
+ return values; // Return original values if no children yet
305
+ }
306
+ return values.filter((val) => {
307
+ const isValid = children.some((element) => convertToString(element.value) === convertToString(val));
308
+ if (!isValid) {
309
+ console.warn(`Option with value "${val}" does not exist`);
310
+ }
311
+ return isValid;
312
+ });
313
+ }
314
+ updateOptionElements() {
315
+ var _a;
316
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
317
+ // Convert element.value to string for comparison
318
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
319
+ });
320
+ }
321
+ updateDisplayValue() {
322
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
323
+ if (this.filter && this.inputElement) {
324
+ this.inputElement.value = this.internalValue;
325
+ }
326
+ }
327
+ emitChange() {
328
+ const value = this.multiselect
329
+ ? this.selectedOptions.join(',')
330
+ : this.selectedOptions[0] || null;
331
+ this.tdsChange.emit({
332
+ name: this.name,
333
+ value: value !== null && value !== void 0 ? value : null,
334
+ });
335
+ }
336
+ async setValue(value) {
337
+ let normalizedValue;
338
+ if (Array.isArray(value)) {
339
+ normalizedValue = convertArrayToStrings(value);
340
+ }
341
+ else {
342
+ normalizedValue = [convertToString(value)];
343
+ }
344
+ this.updateDropdownStateFromUser(normalizedValue);
345
+ return this.getSelectedChildren().map((element) => ({
346
+ value: element.value,
347
+ label: element.textContent.trim(),
348
+ }));
244
349
  }
245
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
246
350
  async reset() {
247
- this.dropdownList.scrollTop = 0;
248
- this.internalReset();
249
- this.handleChange();
351
+ this.updateDropdownStateFromUser([]);
352
+ }
353
+ async removeValue(oldValue) {
354
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
355
+ this.updateDropdownStateFromUser(newValues);
250
356
  }
251
357
  /** Method that forces focus on the input element. */
252
358
  async focusElement() {
@@ -267,79 +373,6 @@ const TdsDropdown = class {
267
373
  * dropdown.setValue(['option-1', 'option-2']);
268
374
  * </code>
269
375
  */
270
- // The label is optional here ONLY to not break the API. Should be removed for 2.0.
271
- // @ts-ignore
272
- // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
273
- async setValue(value, label) {
274
- let nextValue;
275
- if (typeof value === 'string')
276
- nextValue = [value];
277
- else
278
- nextValue = value;
279
- if (!this.multiselect && nextValue.length > 1) {
280
- console.warn('Tried to select multiple items, but multiselect is not enabled.');
281
- nextValue = [nextValue[0]];
282
- }
283
- nextValue = [...new Set(nextValue)];
284
- this.internalReset();
285
- for (let i = 0; i < nextValue.length; i++) {
286
- const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
287
- if (!optionExist) {
288
- nextValue.splice(i, 1);
289
- }
290
- }
291
- this.value = nextValue;
292
- this.setValueAttribute();
293
- this.selectChildrenAsSelectedBasedOnSelectionProp();
294
- this.handleChange();
295
- /* This returns an array of object with a value and label pair. This is ONLY to not break the API. Should be removed for 2.0. */
296
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
297
- const selection = this.getSelectedChildren().map((element) => ({
298
- value: element.value,
299
- label: element.textContent.trim(),
300
- }));
301
- // Update inputElement value and placeholder text
302
- if (this.filter) {
303
- this.inputElement.value = this.getValue();
304
- }
305
- return selection;
306
- }
307
- /**
308
- * @internal
309
- */
310
- async appendValue(value) {
311
- if (this.multiselect && this.value) {
312
- this.setValue([...this.value, value]);
313
- }
314
- else {
315
- this.setValue(value);
316
- }
317
- }
318
- /** Method for removing a selected value in the Dropdown. */
319
- async removeValue(oldValue) {
320
- var _a, _b;
321
- let label;
322
- if (this.multiselect) {
323
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
324
- var _a;
325
- if (element.value === oldValue) {
326
- this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
327
- label = element.textContent.trim();
328
- element.setSelected(false);
329
- }
330
- return element;
331
- });
332
- }
333
- else {
334
- this.reset();
335
- }
336
- this.handleChange();
337
- this.setValueAttribute();
338
- /* This returns an array of object with a value and label pair. This is ONLY to not break the API. Should be removed for 2.0. */
339
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
340
- return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
341
- }
342
- /** Method for closing the Dropdown. */
343
376
  async close() {
344
377
  this.open = false;
345
378
  }
@@ -386,12 +419,31 @@ const TdsDropdown = class {
386
419
  handleOpenState() {
387
420
  if (this.filter && this.multiselect) {
388
421
  if (!this.open) {
389
- this.inputElement.value = this.getValue();
422
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
390
423
  }
391
424
  }
392
425
  }
426
+ handleDefaultValueChange(newValue) {
427
+ if (newValue !== undefined && newValue !== null) {
428
+ this.internalDefaultValue = convertToString(newValue);
429
+ this.setDefaultOption();
430
+ }
431
+ }
393
432
  componentWillLoad() {
394
- this.setDefaultOption();
433
+ // First handle the value prop if it exists
434
+ if (this.value !== null && this.value !== undefined) {
435
+ const normalizedValue = this.normalizeValue(this.value);
436
+ this.updateDropdownStateInternal(normalizedValue);
437
+ return; // Exit early if we handled the value prop
438
+ }
439
+ // Only use defaultValue if no value prop was provided
440
+ if (this.defaultValue !== null && this.defaultValue !== undefined) {
441
+ const defaultValueStr = convertToString(this.defaultValue);
442
+ const initialValue = this.multiselect
443
+ ? defaultValueStr.split(',').map(convertToString)
444
+ : [convertToString(this.defaultValue)];
445
+ this.updateDropdownStateInternal(initialValue);
446
+ }
395
447
  }
396
448
  /** Method to handle slot changes */
397
449
  handleSlotChange() {
@@ -401,29 +453,16 @@ const TdsDropdown = class {
401
453
  normalizeString(text) {
402
454
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
403
455
  }
404
- /** Method that resets the dropdown without emitting an event. */
405
- internalReset() {
406
- this.getChildren().forEach((element) => {
407
- element.setSelected(false);
408
- return element;
409
- });
410
- this.value = null;
411
- this.setValueAttribute();
412
- }
413
- selectChildrenAsSelectedBasedOnSelectionProp() {
414
- this.getChildren().forEach((element) => {
415
- this.value.forEach((selection) => {
416
- if (element.value !== selection) {
417
- // If not multiselect, we need to unselect all other options.
418
- if (!this.multiselect) {
419
- element.setSelected(false);
420
- }
421
- }
422
- else {
423
- element.setSelected(true);
424
- }
425
- });
426
- });
456
+ /**
457
+ * @internal
458
+ */
459
+ async appendValue(value) {
460
+ if (this.multiselect) {
461
+ this.updateDropdownStateFromUser([...this.selectedOptions, value]);
462
+ }
463
+ else {
464
+ this.updateDropdownStateFromUser([value]);
465
+ }
427
466
  }
428
467
  componentDidRender() {
429
468
  const form = this.host.closest('form');
@@ -438,11 +477,10 @@ const TdsDropdown = class {
438
477
  }
439
478
  }
440
479
  render() {
441
- var _a, _b, _c, _d;
442
- appendHiddenInput(this.host, this.name, (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString(), this.disabled);
443
- return (index.h(index.Host, { key: '3b547dda7bede0ae8e020d976d08ed9d8bf50356', role: "select", class: {
480
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
481
+ return (index.h(index.Host, { key: '48d15709a3b7b34ab898823c9494410d96c36519', role: "select", class: {
444
482
  [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
445
- } }, this.label && this.labelPosition === 'outside' && (index.h("div", { key: 'ca3c45bce793171f4af249b4c007d4279599f2b4', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), index.h("div", { key: 'fb12d8b69a4430977b3269f44f9b5e5600965cc1', class: {
483
+ } }, this.label && this.labelPosition === 'outside' && (index.h("div", { key: '94fe586eaa258a771a70d1e7d9f2db5327bb663c', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), index.h("div", { key: '02780cf7cbc43d3f3eb416b2bd8c0af6562be756', class: {
446
484
  'dropdown-select': true,
447
485
  [this.size]: true,
448
486
  'disabled': this.disabled,
@@ -454,7 +492,7 @@ const TdsDropdown = class {
454
492
  } }, index.h("div", { class: "value-wrapper" }, this.label && this.labelPosition === 'inside' && this.placeholder && (index.h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (index.h("div", { class: `
455
493
  label-inside-as-placeholder
456
494
  ${this.size}
457
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
495
+ ${this.selectedOptions.length ? 'selected' : ''}
458
496
  ` }, this.label)), index.h("input", {
459
497
  // eslint-disable-next-line no-return-assign
460
498
  ref: (inputEl) => (this.inputElement = inputEl), class: {
@@ -465,15 +503,7 @@ const TdsDropdown = class {
465
503
  this.inputElement.value = this.getValue();
466
504
  }
467
505
  this.handleBlur(event);
468
- }, onFocus: (event) => {
469
- this.open = true;
470
- this.filterFocus = true;
471
- if (this.multiselect) {
472
- this.inputElement.value = '';
473
- }
474
- this.handleFocus(event);
475
- this.handleFilter({ target: { value: '' } });
476
- }, onKeyDown: (event) => {
506
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
477
507
  if (event.key === 'Escape') {
478
508
  this.open = false;
479
509
  }
@@ -493,17 +523,15 @@ const TdsDropdown = class {
493
523
  if (event.key === 'Escape') {
494
524
  this.open = false;
495
525
  }
496
- }, class: {
497
- value: Boolean(this.value),
498
- placeholder: Boolean(!this.value),
499
- open: this.open,
500
- closed: !this.open,
501
- error: this.error,
502
- }, disabled: this.disabled }, index.h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (index.h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (index.h("div", { class: {
503
- 'label-inside-as-placeholder': true,
504
- [this.size]: true,
505
- 'selected': Boolean((_c = this.value) === null || _c === void 0 ? void 0 : _c.length),
506
- } }, this.label)), index.h("div", { class: `placeholder ${this.size}` }, ((_d = this.value) === null || _d === void 0 ? void 0 : _d.length) ? this.getValue() : this.placeholder), index.h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), index.h("div", { key: 'b734958a92e331bc6fcd07a0cf716219cec235c1', ref: (element) => {
526
+ }, class: `
527
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
528
+ ${this.open ? 'open' : 'closed'}
529
+ ${this.error ? 'error' : ''}
530
+ `, disabled: this.disabled }, index.h("div", { class: `value-wrapper ${this.size}` }, this.label && this.labelPosition === 'inside' && this.placeholder && (index.h("div", { class: `label-inside ${this.size}` }, this.label)), this.label && this.labelPosition === 'inside' && !this.placeholder && (index.h("div", { class: `
531
+ label-inside-as-placeholder
532
+ ${this.size}
533
+ ${this.selectedOptions.length ? 'selected' : ''}
534
+ ` }, this.label)), index.h("div", { class: `placeholder ${this.size}` }, this.selectedOptions.length ? this.getValue() : this.placeholder), index.h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), index.h("div", { key: 'c4ddfd66a21019a1ab9922971541a3e51d22b488', ref: (element) => {
507
535
  this.dropdownList = element;
508
536
  }, class: {
509
537
  'dropdown-list': true,
@@ -514,15 +542,17 @@ const TdsDropdown = class {
514
542
  'closed': !this.open,
515
543
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
516
544
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
517
- } }, index.h("slot", { key: '85d5f7599b21df148a34416fb271c894ff6a2e3e', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (index.h("div", { key: '5009c99ade06605dd2605e28f59b82e78e3f3bec', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (index.h("div", { key: '88d55d60aac26a3c5af04bfa74b6649d5d893fce', class: {
545
+ } }, index.h("slot", { key: '7ed90314e2f5fd2bac731fa6b31142a7f1d51870', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (index.h("div", { key: 'ed2af7d051080dbf8eaec837f429e98695dec4ee', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (index.h("div", { key: 'acb696e82a61966fe978ea9cd0f7c2a85583da42', class: {
518
546
  helper: true,
519
547
  error: this.error,
520
548
  disabled: this.disabled,
521
- } }, this.error && index.h("tds-icon", { key: '1f6f2b7272f35501bf684816b4bc1cd746910fe9', name: "error", size: "16px" }), this.helper))));
549
+ } }, this.error && index.h("tds-icon", { key: '94b4a119db6ef6e44b3c8d2adec3955cec132708', name: "error", size: "16px" }), this.helper))));
522
550
  }
523
551
  get host() { return index.getElement(this); }
524
552
  static get watchers() { return {
525
- "open": ["handleOpenState"]
553
+ "value": ["handleValueChange"],
554
+ "open": ["handleOpenState"],
555
+ "defaultValue": ["handleDefaultValueChange"]
526
556
  }; }
527
557
  };
528
558
  TdsDropdown.style = TdsDropdownStyle0;
@@ -536,22 +566,32 @@ const TdsDropdownOption = class {
536
566
  this.tdsSelect = index.createEvent(this, "tdsSelect", 6);
537
567
  this.tdsFocus = index.createEvent(this, "tdsFocus", 6);
538
568
  this.tdsBlur = index.createEvent(this, "tdsBlur", 6);
569
+ this.parentElement = null;
570
+ // @ts-ignore
571
+ // eslint-disable-next-line no-unused-vars,
572
+ this.label = '';
539
573
  this.componentWillRender = () => {
574
+ var _a, _b, _c;
575
+ if (!this.host.parentElement) {
576
+ return;
577
+ }
540
578
  this.parentElement =
541
- this.host.parentElement.tagName === 'TDS-DROPDOWN'
579
+ ((_a = this.host.parentElement) === null || _a === void 0 ? void 0 : _a.tagName) === 'TDS-DROPDOWN'
542
580
  ? this.host.parentElement
543
581
  : this.host.getRootNode().host;
544
- this.multiselect = this.parentElement.multiselect;
545
- this.size = this.parentElement.size;
546
- this.label = this.host.textContent.trim();
582
+ if (this.parentElement) {
583
+ this.multiselect = (_b = this.parentElement.multiselect) !== null && _b !== void 0 ? _b : false;
584
+ this.size = this.parentElement.size || 'lg';
585
+ }
586
+ this.label = ((_c = this.host.textContent) === null || _c === void 0 ? void 0 : _c.trim()) || '';
547
587
  };
548
588
  this.handleSingleSelect = () => {
549
589
  if (!this.disabled) {
550
590
  this.selected = true;
551
- this.parentElement.appendValue(this.value);
591
+ this.parentElement.appendValue(this.internalValue);
552
592
  this.parentElement.close();
553
593
  this.tdsSelect.emit({
554
- value: this.value,
594
+ value: this.internalValue,
555
595
  selected: this.selected,
556
596
  });
557
597
  }
@@ -559,18 +599,18 @@ const TdsDropdownOption = class {
559
599
  this.handleMultiselect = (event) => {
560
600
  if (!this.disabled) {
561
601
  if (event.detail.checked) {
562
- this.parentElement.appendValue(this.value);
602
+ this.parentElement.appendValue(this.internalValue);
563
603
  this.selected = true;
564
604
  this.tdsSelect.emit({
565
- value: this.value,
605
+ value: this.internalValue,
566
606
  selected: this.selected,
567
607
  });
568
608
  }
569
609
  else {
570
- this.parentElement.removeValue(this.value);
610
+ this.parentElement.removeValue(this.internalValue);
571
611
  this.selected = false;
572
612
  this.tdsSelect.emit({
573
- value: this.value,
613
+ value: this.internalValue,
574
614
  selected: this.selected,
575
615
  });
576
616
  }
@@ -584,17 +624,24 @@ const TdsDropdownOption = class {
584
624
  this.tdsBlur.emit(event);
585
625
  };
586
626
  this.value = undefined;
627
+ this.internalValue = undefined;
587
628
  this.disabled = false;
588
629
  this.selected = false;
589
- this.multiselect = undefined;
630
+ this.multiselect = false;
590
631
  this.size = 'lg';
591
632
  }
592
633
  /** Method to select/deselect an option. */
593
634
  async setSelected(selected) {
594
635
  this.selected = selected;
595
636
  }
637
+ valueWatcher(newValue) {
638
+ this.internalValue = convertToString(newValue);
639
+ }
640
+ componentWillLoad() {
641
+ this.internalValue = convertToString(this.value);
642
+ }
596
643
  render() {
597
- return (index.h(index.Host, { key: '0dedcd94148bf61ee8b154c00eca73759f366dd4', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, index.h("div", { key: 'da3b6d37132d48502599145f85f05072a996d6dc', class: `dropdown-option
644
+ return (index.h(index.Host, { key: 'af1229553e89c02aca1d7c11bbc80acd25ce44b5', role: "option", "aria-disabled": this.disabled, "aria-selected": this.selected }, index.h("div", { key: 'c93eb33d1864028690ab981c0f676f03993265c4', class: `dropdown-option
598
645
  ${this.size}
599
646
  ${this.selected ? 'selected' : ''}
600
647
  ${this.disabled ? 'disabled' : ''}
@@ -612,6 +659,9 @@ const TdsDropdownOption = class {
612
659
  }
613
660
  static get delegatesFocus() { return true; }
614
661
  get host() { return index.getElement(this); }
662
+ static get watchers() { return {
663
+ "value": ["valueWatcher"]
664
+ }; }
615
665
  };
616
666
  TdsDropdownOption.style = TdsDropdownOptionStyle0;
617
667