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