@scania/tegel 1.24.0 → 1.25.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (477) hide show
  1. package/dist/cjs/index-ca8040ad.js +4 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/tds-accordion-item.cjs.entry.js +7 -4
  4. package/dist/cjs/tds-badge.cjs.entry.js +9 -8
  5. package/dist/cjs/tds-banner.cjs.entry.js +6 -3
  6. package/dist/cjs/tds-block.cjs.entry.js +12 -6
  7. package/dist/cjs/tds-body-cell.cjs.entry.js +9 -6
  8. package/dist/cjs/tds-breadcrumb.cjs.entry.js +2 -2
  9. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +7 -1
  10. package/dist/cjs/tds-button.cjs.entry.js +13 -3
  11. package/dist/cjs/tds-card.cjs.entry.js +11 -7
  12. package/dist/cjs/tds-checkbox.cjs.entry.js +2 -2
  13. package/dist/cjs/tds-chip.cjs.entry.js +7 -2
  14. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +40 -3
  15. package/dist/cjs/tds-datetime.cjs.entry.js +20 -13
  16. package/dist/cjs/tds-divider.cjs.entry.js +1 -1
  17. package/dist/cjs/tds-dropdown_2.cjs.entry.js +240 -197
  18. package/dist/cjs/tds-folder-tab.cjs.entry.js +4 -2
  19. package/dist/cjs/tds-folder-tabs.cjs.entry.js +2 -2
  20. package/dist/cjs/tds-footer-group.cjs.entry.js +3 -3
  21. package/dist/cjs/tds-footer-item.cjs.entry.js +1 -1
  22. package/dist/cjs/tds-footer.cjs.entry.js +3 -1
  23. package/dist/cjs/tds-header-brand-symbol.cjs.entry.js +1 -1
  24. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  25. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  26. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +1 -1
  27. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +1 -1
  28. package/dist/cjs/tds-header-dropdown.cjs.entry.js +3 -3
  29. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-grid-item.cjs.entry.js +1 -1
  32. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +1 -1
  33. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  34. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  35. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +1 -1
  36. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +1 -1
  37. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  38. package/dist/cjs/tds-header-title.cjs.entry.js +1 -1
  39. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  40. package/dist/cjs/tds-icon.cjs.entry.js +1 -1
  41. package/dist/cjs/tds-inline-tab.cjs.entry.js +5 -2
  42. package/dist/cjs/tds-inline-tabs.cjs.entry.js +2 -2
  43. package/dist/cjs/tds-link.cjs.entry.js +5 -5
  44. package/dist/cjs/tds-message.cjs.entry.js +6 -4
  45. package/dist/cjs/tds-modal.cjs.entry.js +4 -1
  46. package/dist/cjs/tds-navigation-tab.cjs.entry.js +2 -2
  47. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +8 -2
  48. package/dist/cjs/tds-popover-canvas.cjs.entry.js +2 -2
  49. package/dist/cjs/tds-popover-core.cjs.entry.js +1 -1
  50. package/dist/cjs/tds-popover-menu-item.cjs.entry.js +3 -3
  51. package/dist/cjs/tds-popover-menu.cjs.entry.js +2 -2
  52. package/dist/cjs/tds-radio-button.cjs.entry.js +1 -1
  53. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  54. package/dist/cjs/tds-side-menu-collapse-button.cjs.entry.js +4 -4
  55. package/dist/cjs/tds-side-menu-dropdown-list-item.cjs.entry.js +2 -2
  56. package/dist/cjs/tds-side-menu-dropdown-list.cjs.entry.js +2 -2
  57. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +3 -3
  58. package/dist/cjs/tds-side-menu-item.cjs.entry.js +2 -2
  59. package/dist/cjs/tds-side-menu-overlay.cjs.entry.js +1 -1
  60. package/dist/cjs/tds-side-menu-user-image_2.cjs.entry.js +2 -2
  61. package/dist/cjs/tds-side-menu-user.cjs.entry.js +1 -1
  62. package/dist/cjs/tds-slider.cjs.entry.js +8 -8
  63. package/dist/cjs/tds-spinner.cjs.entry.js +1 -1
  64. package/dist/cjs/tds-step.cjs.entry.js +1 -1
  65. package/dist/cjs/tds-table-body-input-wrapper.cjs.entry.js +1 -1
  66. package/dist/cjs/tds-table-body-row-expandable.cjs.entry.js +7 -7
  67. package/dist/cjs/tds-table-body-row.cjs.entry.js +9 -6
  68. package/dist/cjs/tds-table-body.cjs.entry.js +2 -2
  69. package/dist/cjs/tds-table-footer.cjs.entry.js +3 -3
  70. package/dist/cjs/tds-table-header-input-wrapper.cjs.entry.js +1 -1
  71. package/dist/cjs/tds-table-header.cjs.entry.js +2 -2
  72. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  73. package/dist/cjs/tds-text-field.cjs.entry.js +8 -6
  74. package/dist/cjs/tds-textarea.cjs.entry.js +14 -12
  75. package/dist/cjs/tds-toast.cjs.entry.js +3 -3
  76. package/dist/cjs/tds-toggle.cjs.entry.js +13 -1
  77. package/dist/cjs/tds-tooltip-beta.cjs.entry.js +123 -0
  78. package/dist/cjs/tds-tooltip.cjs.entry.js +2 -2
  79. package/dist/cjs/tegel.cjs.js +1 -1
  80. package/dist/collection/collection-manifest.json +2 -1
  81. package/dist/collection/components/accordion/accordion-item/accordion-item.js +25 -4
  82. package/dist/collection/components/badge/badge.js +28 -8
  83. package/dist/collection/components/banner/banner.js +24 -3
  84. package/dist/collection/components/block/block.js +36 -7
  85. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.css +9 -10
  86. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +2 -2
  87. package/dist/collection/components/breadcrumbs/breadcrumbs.js +30 -1
  88. package/dist/collection/components/button/button.css +3 -3
  89. package/dist/collection/components/button/button.js +29 -2
  90. package/dist/collection/components/card/card.js +11 -7
  91. package/dist/collection/components/checkbox/checkbox.js +2 -2
  92. package/dist/collection/components/chip/chip.js +8 -3
  93. package/dist/collection/components/datetime/datetime.css +20 -0
  94. package/dist/collection/components/datetime/datetime.js +22 -15
  95. package/dist/collection/components/divider/divider.js +1 -1
  96. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +41 -16
  97. package/dist/collection/components/dropdown/dropdown.js +264 -239
  98. package/dist/collection/components/footer/footer-group/footer-group.js +3 -3
  99. package/dist/collection/components/footer/footer-item/footer-item.js +1 -1
  100. package/dist/collection/components/footer/footer.js +3 -1
  101. package/dist/collection/components/header/core-header-item/core-header-item.js +1 -1
  102. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +1 -1
  103. package/dist/collection/components/header/header-dropdown/header-dropdown.js +3 -3
  104. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +1 -1
  105. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +2 -2
  106. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +1 -1
  107. package/dist/collection/components/header/header-hamburger/header-hamburger.js +1 -1
  108. package/dist/collection/components/header/header-item/header-item.js +39 -2
  109. package/dist/collection/components/header/header-launcher/header-launcher.js +2 -2
  110. package/dist/collection/components/header/header-launcher-button/header-launcher-button.js +1 -1
  111. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +1 -1
  112. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +1 -1
  113. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +1 -1
  114. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +1 -1
  115. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +1 -1
  116. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +1 -1
  117. package/dist/collection/components/header/header-title/header-title.js +1 -1
  118. package/dist/collection/components/header/header.js +1 -1
  119. package/dist/collection/components/icon/icon.js +1 -1
  120. package/dist/collection/components/link/link.js +5 -5
  121. package/dist/collection/components/message/message.js +6 -4
  122. package/dist/collection/components/modal/modal.js +4 -1
  123. package/dist/collection/components/popover-canvas/popover-canvas.js +2 -2
  124. package/dist/collection/components/popover-core/popover-core.js +1 -1
  125. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.css +7 -1
  126. package/dist/collection/components/popover-menu/popover-menu-item/popover-menu-item.js +2 -2
  127. package/dist/collection/components/popover-menu/popover-menu.js +2 -2
  128. package/dist/collection/components/radio-button/radio-button.js +1 -1
  129. package/dist/collection/components/side-menu/side-menu-close-button/side-menu-close-button.js +1 -1
  130. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +4 -4
  131. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +3 -3
  132. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +2 -2
  133. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +2 -2
  134. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +2 -2
  135. package/dist/collection/components/side-menu/side-menu-overlay/side-menu-overlay.js +1 -1
  136. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +1 -1
  137. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +1 -1
  138. package/dist/collection/components/side-menu/side-menu-user-label/side-menu-user-label.js +1 -1
  139. package/dist/collection/components/slider/slider.css +13 -0
  140. package/dist/collection/components/slider/slider.js +7 -7
  141. package/dist/collection/components/spinner/spinner.js +1 -1
  142. package/dist/collection/components/stepper/step/step.js +1 -1
  143. package/dist/collection/components/table/table-body/table-body.js +2 -2
  144. package/dist/collection/components/table/table-body-cell/table-body-cell.js +9 -6
  145. package/dist/collection/components/table/table-body-input-wrapper/table-body-input-wrapper.js +1 -1
  146. package/dist/collection/components/table/table-body-row/table-body-row.js +9 -6
  147. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +7 -7
  148. package/dist/collection/components/table/table-footer/table-footer.js +3 -3
  149. package/dist/collection/components/table/table-header/table-header.js +2 -2
  150. package/dist/collection/components/table/table-header-cell/table-header-cell.js +1 -1
  151. package/dist/collection/components/table/table-header-input-wrapper/table-header-input-wrapper.js +1 -1
  152. package/dist/collection/components/table/table-toolbar/table-toolbar.js +2 -2
  153. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +4 -2
  154. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +2 -2
  155. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +5 -2
  156. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +2 -2
  157. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +2 -2
  158. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +8 -2
  159. package/dist/collection/components/text-field/text-field.js +9 -7
  160. package/dist/collection/components/textarea/textarea.js +14 -12
  161. package/dist/collection/components/toast/toast.js +3 -3
  162. package/dist/collection/components/toggle/toggle.js +30 -1
  163. package/dist/collection/components/tooltip/tooltip.js +2 -2
  164. package/dist/collection/components/tooltip-beta/tooltip-beta.css +40 -0
  165. package/dist/collection/components/tooltip-beta/tooltip-beta.js +319 -0
  166. package/dist/collection/types/Tooltip.js +1 -0
  167. package/dist/collection/utils/axeHelpers.js +3 -0
  168. package/dist/collection/utils/convertToString.js +14 -0
  169. package/dist/components/{p-0c3cab16.js → p-0e6efec9.js} +2 -2
  170. package/dist/components/{p-09d36119.js → p-265c3467.js} +1 -1
  171. package/dist/components/{p-aea7fa6b.js → p-29d19dc8.js} +3 -3
  172. package/dist/components/{p-4030e9bc.js → p-2a43e410.js} +39 -15
  173. package/dist/components/{p-fcec766c.js → p-34737ed9.js} +1 -1
  174. package/dist/components/{p-dddaa520.js → p-3e93886d.js} +1 -1
  175. package/dist/components/{p-5e1a9abc.js → p-4764a1d5.js} +1 -1
  176. package/dist/components/{p-8a2d7b2f.js → p-4c1e3344.js} +4 -4
  177. package/dist/components/{p-cfb1b588.js → p-8c849aa2.js} +2 -2
  178. package/dist/components/{p-e323cd2a.js → p-a2b7bdef.js} +1 -1
  179. package/dist/components/{p-4f1aa84f.js → p-a64dc22e.js} +207 -193
  180. package/dist/components/p-b1d21573.js +16 -0
  181. package/dist/components/{p-d921fe75.js → p-c65351ab.js} +2 -2
  182. package/dist/components/{p-0676aa23.js → p-d61bd22e.js} +40 -3
  183. package/dist/components/{p-30de8ac4.js → p-e49a0ceb.js} +1 -1
  184. package/dist/components/{p-e46088d9.js → p-e8d2dbbf.js} +1 -1
  185. package/dist/components/tds-accordion-item.js +9 -5
  186. package/dist/components/tds-badge.js +11 -8
  187. package/dist/components/tds-banner.js +8 -4
  188. package/dist/components/tds-block.js +14 -7
  189. package/dist/components/tds-body-cell.js +9 -6
  190. package/dist/components/tds-breadcrumb.js +3 -3
  191. package/dist/components/tds-breadcrumbs.js +10 -2
  192. package/dist/components/tds-button.js +14 -3
  193. package/dist/components/tds-card.js +12 -8
  194. package/dist/components/tds-checkbox.js +1 -1
  195. package/dist/components/tds-chip.js +7 -2
  196. package/dist/components/tds-core-header-item.js +1 -1
  197. package/dist/components/tds-datetime.js +21 -14
  198. package/dist/components/tds-divider.js +1 -1
  199. package/dist/components/tds-dropdown-option.js +1 -1
  200. package/dist/components/tds-dropdown.js +1 -1
  201. package/dist/components/tds-folder-tab.js +4 -2
  202. package/dist/components/tds-folder-tabs.js +3 -3
  203. package/dist/components/tds-footer-group.js +4 -4
  204. package/dist/components/tds-footer-item.js +1 -1
  205. package/dist/components/tds-footer.js +3 -1
  206. package/dist/components/tds-header-brand-symbol.js +3 -3
  207. package/dist/components/tds-header-cell.js +2 -2
  208. package/dist/components/tds-header-dropdown-list-item.js +1 -1
  209. package/dist/components/tds-header-dropdown-list-user.js +1 -1
  210. package/dist/components/tds-header-dropdown-list.js +1 -1
  211. package/dist/components/tds-header-dropdown.js +8 -8
  212. package/dist/components/tds-header-hamburger.js +4 -4
  213. package/dist/components/tds-header-item.js +1 -1
  214. package/dist/components/tds-header-launcher-button.js +1 -1
  215. package/dist/components/tds-header-launcher-grid-item.js +1 -1
  216. package/dist/components/tds-header-launcher-grid-title.js +1 -1
  217. package/dist/components/tds-header-launcher-grid.js +1 -1
  218. package/dist/components/tds-header-launcher-list-item.js +2 -2
  219. package/dist/components/tds-header-launcher-list-title.js +1 -1
  220. package/dist/components/tds-header-launcher-list.js +2 -2
  221. package/dist/components/tds-header-launcher.js +8 -8
  222. package/dist/components/tds-header-title.js +1 -1
  223. package/dist/components/tds-header.js +1 -1
  224. package/dist/components/tds-icon.js +1 -1
  225. package/dist/components/tds-inline-tab.js +5 -2
  226. package/dist/components/tds-inline-tabs.js +3 -3
  227. package/dist/components/tds-link.js +5 -5
  228. package/dist/components/tds-message.js +7 -5
  229. package/dist/components/tds-modal.js +5 -2
  230. package/dist/components/tds-navigation-tab.js +2 -2
  231. package/dist/components/tds-navigation-tabs.js +9 -3
  232. package/dist/components/tds-popover-canvas.js +1 -1
  233. package/dist/components/tds-popover-core.js +1 -1
  234. package/dist/components/tds-popover-menu-item.js +3 -3
  235. package/dist/components/tds-popover-menu.js +3 -3
  236. package/dist/components/tds-radio-button.js +1 -1
  237. package/dist/components/tds-side-menu-close-button.js +2 -2
  238. package/dist/components/tds-side-menu-collapse-button.js +5 -5
  239. package/dist/components/tds-side-menu-dropdown-list-item.js +2 -2
  240. package/dist/components/tds-side-menu-dropdown-list.js +2 -2
  241. package/dist/components/tds-side-menu-dropdown.js +5 -5
  242. package/dist/components/tds-side-menu-item.js +1 -1
  243. package/dist/components/tds-side-menu-overlay.js +1 -1
  244. package/dist/components/tds-side-menu-user-image.js +1 -1
  245. package/dist/components/tds-side-menu-user-label.js +1 -1
  246. package/dist/components/tds-side-menu-user.js +3 -3
  247. package/dist/components/tds-slider.js +9 -9
  248. package/dist/components/tds-spinner.js +1 -1
  249. package/dist/components/tds-step.js +2 -2
  250. package/dist/components/tds-table-body-input-wrapper.js +2 -2
  251. package/dist/components/tds-table-body-row-expandable.js +7 -7
  252. package/dist/components/tds-table-body-row.js +10 -7
  253. package/dist/components/tds-table-body.js +2 -2
  254. package/dist/components/tds-table-footer.js +7 -7
  255. package/dist/components/tds-table-header-input-wrapper.js +2 -2
  256. package/dist/components/tds-table-header.js +3 -3
  257. package/dist/components/tds-table-toolbar.js +3 -3
  258. package/dist/components/tds-text-field.js +9 -7
  259. package/dist/components/tds-textarea.js +15 -13
  260. package/dist/components/tds-toast.js +4 -4
  261. package/dist/components/tds-toggle.js +14 -1
  262. package/dist/components/tds-tooltip-beta.d.ts +11 -0
  263. package/dist/components/tds-tooltip-beta.js +149 -0
  264. package/dist/components/tds-tooltip.js +3 -3
  265. package/dist/esm/index-51d04e39.js +4 -0
  266. package/dist/esm/loader.js +1 -1
  267. package/dist/esm/tds-accordion-item.entry.js +7 -4
  268. package/dist/esm/tds-badge.entry.js +9 -8
  269. package/dist/esm/tds-banner.entry.js +6 -3
  270. package/dist/esm/tds-block.entry.js +12 -6
  271. package/dist/esm/tds-body-cell.entry.js +9 -6
  272. package/dist/esm/tds-breadcrumb.entry.js +3 -3
  273. package/dist/esm/tds-breadcrumbs.entry.js +7 -1
  274. package/dist/esm/tds-button.entry.js +13 -3
  275. package/dist/esm/tds-card.entry.js +11 -7
  276. package/dist/esm/tds-checkbox.entry.js +2 -2
  277. package/dist/esm/tds-chip.entry.js +7 -2
  278. package/dist/esm/tds-core-header-item_2.entry.js +40 -3
  279. package/dist/esm/tds-datetime.entry.js +20 -13
  280. package/dist/esm/tds-divider.entry.js +1 -1
  281. package/dist/esm/tds-dropdown_2.entry.js +240 -197
  282. package/dist/esm/tds-folder-tab.entry.js +4 -2
  283. package/dist/esm/tds-folder-tabs.entry.js +2 -2
  284. package/dist/esm/tds-footer-group.entry.js +3 -3
  285. package/dist/esm/tds-footer-item.entry.js +1 -1
  286. package/dist/esm/tds-footer.entry.js +3 -1
  287. package/dist/esm/tds-header-brand-symbol.entry.js +1 -1
  288. package/dist/esm/tds-header-cell.entry.js +1 -1
  289. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  290. package/dist/esm/tds-header-dropdown-list-user.entry.js +1 -1
  291. package/dist/esm/tds-header-dropdown-list.entry.js +1 -1
  292. package/dist/esm/tds-header-dropdown.entry.js +3 -3
  293. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  294. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  295. package/dist/esm/tds-header-launcher-grid-item.entry.js +1 -1
  296. package/dist/esm/tds-header-launcher-grid-title.entry.js +1 -1
  297. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  298. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  299. package/dist/esm/tds-header-launcher-list-title.entry.js +1 -1
  300. package/dist/esm/tds-header-launcher-list.entry.js +1 -1
  301. package/dist/esm/tds-header-launcher.entry.js +2 -2
  302. package/dist/esm/tds-header-title.entry.js +1 -1
  303. package/dist/esm/tds-header.entry.js +1 -1
  304. package/dist/esm/tds-icon.entry.js +1 -1
  305. package/dist/esm/tds-inline-tab.entry.js +5 -2
  306. package/dist/esm/tds-inline-tabs.entry.js +2 -2
  307. package/dist/esm/tds-link.entry.js +5 -5
  308. package/dist/esm/tds-message.entry.js +6 -4
  309. package/dist/esm/tds-modal.entry.js +4 -1
  310. package/dist/esm/tds-navigation-tab.entry.js +2 -2
  311. package/dist/esm/tds-navigation-tabs.entry.js +8 -2
  312. package/dist/esm/tds-popover-canvas.entry.js +2 -2
  313. package/dist/esm/tds-popover-core.entry.js +1 -1
  314. package/dist/esm/tds-popover-menu-item.entry.js +3 -3
  315. package/dist/esm/tds-popover-menu.entry.js +2 -2
  316. package/dist/esm/tds-radio-button.entry.js +1 -1
  317. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  318. package/dist/esm/tds-side-menu-collapse-button.entry.js +4 -4
  319. package/dist/esm/tds-side-menu-dropdown-list-item.entry.js +2 -2
  320. package/dist/esm/tds-side-menu-dropdown-list.entry.js +2 -2
  321. package/dist/esm/tds-side-menu-dropdown.entry.js +3 -3
  322. package/dist/esm/tds-side-menu-item.entry.js +2 -2
  323. package/dist/esm/tds-side-menu-overlay.entry.js +1 -1
  324. package/dist/esm/tds-side-menu-user-image_2.entry.js +2 -2
  325. package/dist/esm/tds-side-menu-user.entry.js +1 -1
  326. package/dist/esm/tds-slider.entry.js +8 -8
  327. package/dist/esm/tds-spinner.entry.js +1 -1
  328. package/dist/esm/tds-step.entry.js +1 -1
  329. package/dist/esm/tds-table-body-input-wrapper.entry.js +1 -1
  330. package/dist/esm/tds-table-body-row-expandable.entry.js +7 -7
  331. package/dist/esm/tds-table-body-row.entry.js +9 -6
  332. package/dist/esm/tds-table-body.entry.js +2 -2
  333. package/dist/esm/tds-table-footer.entry.js +3 -3
  334. package/dist/esm/tds-table-header-input-wrapper.entry.js +1 -1
  335. package/dist/esm/tds-table-header.entry.js +2 -2
  336. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  337. package/dist/esm/tds-text-field.entry.js +8 -6
  338. package/dist/esm/tds-textarea.entry.js +14 -12
  339. package/dist/esm/tds-toast.entry.js +3 -3
  340. package/dist/esm/tds-toggle.entry.js +13 -1
  341. package/dist/esm/tds-tooltip-beta.entry.js +119 -0
  342. package/dist/esm/tds-tooltip.entry.js +2 -2
  343. package/dist/esm/tegel.js +1 -1
  344. package/dist/tegel/p-01edebef.entry.js +1 -0
  345. package/dist/tegel/p-035e58e6.entry.js +1 -0
  346. package/dist/tegel/p-065d6f83.entry.js +1 -0
  347. package/dist/tegel/p-0c1e632d.entry.js +1 -0
  348. package/dist/tegel/{p-4e3e2601.entry.js → p-168122a7.entry.js} +1 -1
  349. package/dist/tegel/{p-868435cd.entry.js → p-19eb4ae1.entry.js} +1 -1
  350. package/dist/tegel/p-1b390acb.entry.js +1 -0
  351. package/dist/tegel/{p-57f95a1b.entry.js → p-288a09ef.entry.js} +1 -1
  352. package/dist/tegel/{p-987084a5.entry.js → p-3204ae8f.entry.js} +1 -1
  353. package/dist/tegel/p-32be63ea.entry.js +1 -0
  354. package/dist/tegel/p-34b793c9.entry.js +1 -0
  355. package/dist/tegel/p-3c2f7033.entry.js +1 -0
  356. package/dist/tegel/p-46205cfb.entry.js +1 -0
  357. package/dist/tegel/p-4d5963d0.entry.js +1 -0
  358. package/dist/tegel/{p-088bfcd4.entry.js → p-4e298888.entry.js} +1 -1
  359. package/dist/tegel/p-4e33cbda.entry.js +1 -0
  360. package/dist/tegel/{p-c790ef93.entry.js → p-4ee344e5.entry.js} +1 -1
  361. package/dist/tegel/p-4f5f152a.entry.js +1 -0
  362. package/dist/tegel/p-4fe6512b.entry.js +1 -0
  363. package/dist/tegel/p-5242a1f6.entry.js +1 -0
  364. package/dist/tegel/{p-b4c7099f.entry.js → p-542d7b3e.entry.js} +1 -1
  365. package/dist/tegel/p-5a7110b8.entry.js +1 -0
  366. package/dist/tegel/p-5ba254ee.entry.js +1 -0
  367. package/dist/tegel/{p-9de400f4.entry.js → p-60b38806.entry.js} +1 -1
  368. package/dist/tegel/{p-6a52ed63.entry.js → p-64c80f14.entry.js} +1 -1
  369. package/dist/tegel/{p-ed02ad2b.entry.js → p-654785d2.entry.js} +1 -1
  370. package/dist/tegel/p-6f17d37f.entry.js +1 -0
  371. package/dist/tegel/p-70795d6e.entry.js +1 -0
  372. package/dist/tegel/p-72fd0083.entry.js +1 -0
  373. package/dist/tegel/{p-bcae4d3a.entry.js → p-74fc9c92.entry.js} +1 -1
  374. package/dist/tegel/p-77c79b91.entry.js +1 -0
  375. package/dist/tegel/{p-ff5cd75f.entry.js → p-77d457b8.entry.js} +1 -1
  376. package/dist/tegel/{p-1634247e.entry.js → p-78d5acd7.entry.js} +1 -1
  377. package/dist/tegel/{p-2e44b4e9.entry.js → p-7c4c65c9.entry.js} +1 -1
  378. package/dist/tegel/{p-2557b79b.entry.js → p-848c2732.entry.js} +1 -1
  379. package/dist/tegel/p-868757d9.entry.js +1 -0
  380. package/dist/tegel/p-8c8b9908.entry.js +1 -0
  381. package/dist/tegel/{p-ff7ae8a3.entry.js → p-93a4bd11.entry.js} +1 -1
  382. package/dist/tegel/{p-50fcdc56.entry.js → p-96635c10.entry.js} +1 -1
  383. package/dist/tegel/p-9e0b31a1.entry.js +1 -0
  384. package/dist/tegel/{p-91dcddd5.entry.js → p-a0fc0cc2.entry.js} +1 -1
  385. package/dist/tegel/p-a5e0f030.entry.js +1 -0
  386. package/dist/tegel/{p-aed1c5cf.entry.js → p-aa9d281b.entry.js} +1 -1
  387. package/dist/tegel/p-ae46766a.entry.js +1 -0
  388. package/dist/tegel/{p-f9325536.entry.js → p-aef6b130.entry.js} +1 -1
  389. package/dist/tegel/p-b35e7208.entry.js +1 -0
  390. package/dist/tegel/p-b39ffad4.entry.js +1 -0
  391. package/dist/tegel/p-b5ced8e5.entry.js +1 -0
  392. package/dist/tegel/{p-a642c800.entry.js → p-b6526302.entry.js} +1 -1
  393. package/dist/tegel/p-b686f1ad.entry.js +1 -0
  394. package/dist/tegel/{p-c18b2746.entry.js → p-b9576881.entry.js} +1 -1
  395. package/dist/tegel/p-b9f81e53.entry.js +1 -0
  396. package/dist/tegel/p-be1d1345.entry.js +1 -0
  397. package/dist/tegel/{p-0f38bea7.entry.js → p-bee533b5.entry.js} +1 -1
  398. package/dist/tegel/{p-7097a39a.entry.js → p-c56be8d1.entry.js} +1 -1
  399. package/dist/tegel/{p-4ab7461e.entry.js → p-c8404432.entry.js} +1 -1
  400. package/dist/tegel/{p-ac46b0a4.entry.js → p-ca93de01.entry.js} +1 -1
  401. package/dist/tegel/p-cc6c06e3.entry.js +1 -0
  402. package/dist/tegel/{p-220affa9.entry.js → p-cca85da0.entry.js} +1 -1
  403. package/dist/tegel/p-cde32bc6.entry.js +1 -0
  404. package/dist/tegel/p-d0abf078.entry.js +1 -0
  405. package/dist/tegel/p-d1112915.entry.js +1 -0
  406. package/dist/tegel/{p-a5a67770.entry.js → p-d267665e.entry.js} +1 -1
  407. package/dist/tegel/{p-6c26e66f.entry.js → p-d33cb2d1.entry.js} +1 -1
  408. package/dist/tegel/{p-bb129d43.entry.js → p-d47c744f.entry.js} +1 -1
  409. package/dist/tegel/p-d65dfe04.entry.js +1 -0
  410. package/dist/tegel/{p-6b405a0f.entry.js → p-d853f8c2.entry.js} +1 -1
  411. package/dist/tegel/p-d9511720.entry.js +1 -0
  412. package/dist/tegel/p-dcbc35af.entry.js +1 -0
  413. package/dist/tegel/{p-06d2fa56.entry.js → p-dfbbaefd.entry.js} +1 -1
  414. package/dist/tegel/p-ea3e071f.entry.js +1 -0
  415. package/dist/tegel/{p-9bf7f5cd.entry.js → p-ed17283a.entry.js} +1 -1
  416. package/dist/tegel/{p-c917d8be.entry.js → p-ee7f07ae.entry.js} +1 -1
  417. package/dist/tegel/p-ef3671d8.entry.js +1 -0
  418. package/dist/tegel/{p-f1c172a4.entry.js → p-f1b0211a.entry.js} +1 -1
  419. package/dist/tegel/{p-de540cc0.entry.js → p-fa07db58.entry.js} +1 -1
  420. package/dist/tegel/tegel.esm.js +1 -1
  421. package/dist/types/components/accordion/accordion-item/accordion-item.d.ts +2 -0
  422. package/dist/types/components/badge/badge.d.ts +3 -0
  423. package/dist/types/components/banner/banner.d.ts +4 -0
  424. package/dist/types/components/block/block.d.ts +8 -1
  425. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  426. package/dist/types/components/button/button.d.ts +3 -0
  427. package/dist/types/components/checkbox/checkbox.d.ts +1 -1
  428. package/dist/types/components/datetime/datetime.d.ts +2 -2
  429. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +6 -2
  430. package/dist/types/components/dropdown/dropdown.d.ts +27 -24
  431. package/dist/types/components/header/header-item/header-item.d.ts +7 -0
  432. package/dist/types/components/toggle/toggle.d.ts +5 -0
  433. package/dist/types/components/tooltip-beta/tooltip-beta.d.ts +28 -0
  434. package/dist/types/components.d.ts +147 -23
  435. package/dist/types/types/Tooltip.d.ts +4 -0
  436. package/dist/types/utils/axeHelpers.d.ts +2 -0
  437. package/dist/types/utils/convertToString.d.ts +7 -0
  438. package/package.json +5 -5
  439. package/dist/tegel/p-062adc6d.entry.js +0 -1
  440. package/dist/tegel/p-0df92ce7.entry.js +0 -1
  441. package/dist/tegel/p-12303135.entry.js +0 -1
  442. package/dist/tegel/p-14f12f43.entry.js +0 -1
  443. package/dist/tegel/p-1a2f3852.entry.js +0 -1
  444. package/dist/tegel/p-1bc2c73c.entry.js +0 -1
  445. package/dist/tegel/p-26ae4a93.entry.js +0 -1
  446. package/dist/tegel/p-54a105a4.entry.js +0 -1
  447. package/dist/tegel/p-5a891dd2.entry.js +0 -1
  448. package/dist/tegel/p-5d0e8f1e.entry.js +0 -1
  449. package/dist/tegel/p-6938329a.entry.js +0 -1
  450. package/dist/tegel/p-6aabf7e1.entry.js +0 -1
  451. package/dist/tegel/p-7a83cf55.entry.js +0 -1
  452. package/dist/tegel/p-7d39487c.entry.js +0 -1
  453. package/dist/tegel/p-7d83ba98.entry.js +0 -1
  454. package/dist/tegel/p-845e1fca.entry.js +0 -1
  455. package/dist/tegel/p-930e767e.entry.js +0 -1
  456. package/dist/tegel/p-959a6780.entry.js +0 -1
  457. package/dist/tegel/p-9aefb942.entry.js +0 -1
  458. package/dist/tegel/p-9c2dfecc.entry.js +0 -1
  459. package/dist/tegel/p-a9654cd4.entry.js +0 -1
  460. package/dist/tegel/p-ad434031.entry.js +0 -1
  461. package/dist/tegel/p-b00bcf39.entry.js +0 -1
  462. package/dist/tegel/p-b9ac3122.entry.js +0 -1
  463. package/dist/tegel/p-b9e37cf2.entry.js +0 -1
  464. package/dist/tegel/p-bda3d846.entry.js +0 -1
  465. package/dist/tegel/p-cd5219ac.entry.js +0 -1
  466. package/dist/tegel/p-d1cbe5be.entry.js +0 -1
  467. package/dist/tegel/p-dcbd977f.entry.js +0 -1
  468. package/dist/tegel/p-dd060c11.entry.js +0 -1
  469. package/dist/tegel/p-e13935b6.entry.js +0 -1
  470. package/dist/tegel/p-e65dba91.entry.js +0 -1
  471. package/dist/tegel/p-e7108828.entry.js +0 -1
  472. package/dist/tegel/p-e86f2d31.entry.js +0 -1
  473. package/dist/tegel/p-e97a2700.entry.js +0 -1
  474. package/dist/tegel/p-ede11de8.entry.js +0 -1
  475. package/dist/tegel/p-f45d905c.entry.js +0 -1
  476. package/dist/tegel/p-f841f094.entry.js +0 -1
  477. package/dist/tegel/p-fc0079d2.entry.js +0 -1
@@ -2,40 +2,21 @@ import { Host, h, } from "@stencil/core";
2
2
  import findNextFocusableElement from "../../utils/findNextFocusableElement";
3
3
  import findPreviousFocusableElement from "../../utils/findPreviousFocusableElement";
4
4
  import appendHiddenInput from "../../utils/appendHiddenInput";
5
+ import { convertToString, convertArrayToStrings } from "../../utils/convertToString";
5
6
  /**
6
7
  * @slot <default> - <b>Unnamed slot.</b> For dropdown option elements.
7
8
  */
8
9
  export class TdsDropdown {
9
10
  constructor() {
10
11
  this.setDefaultOption = () => {
11
- if (this.defaultValue) {
12
- const children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
13
- if (children.length === 0) {
14
- console.warn('TDS DROPDOWN: No options found. Disregard if loading data asynchronously.');
15
- return;
16
- }
12
+ if (this.internalDefaultValue) {
13
+ // Convert the internal default value to an array if it's not already
17
14
  const defaultValues = this.multiselect
18
- ? new Set(this.defaultValue.split(','))
19
- : [this.defaultValue];
20
- const childrenMap = new Map(children.map((element) => [element.value, element]));
21
- const matchedValues = Array.from(defaultValues).filter((value) => {
22
- const element = childrenMap.get(value);
23
- if (element) {
24
- element.setSelected(true);
25
- return true;
26
- }
27
- return false;
28
- });
29
- if (matchedValues.length > 0) {
30
- this.value = [...new Set(this.value ? [...this.value, ...matchedValues] : matchedValues)];
31
- this.setValueAttribute();
32
- }
33
- else {
34
- console.warn(`TDS DROPDOWN: No matching option found for defaultValue "${this.defaultValue}"`);
35
- }
15
+ ? this.internalDefaultValue.split(',')
16
+ : [this.internalDefaultValue];
17
+ this.updateDropdownState(defaultValues);
36
18
  }
37
19
  };
38
- /* Returns a list of all children that are tds-dropdown-option elements */
39
20
  this.getChildren = () => {
40
21
  const tdsDropdownOptions = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
41
22
  if (tdsDropdownOptions.length === 0) {
@@ -44,6 +25,36 @@ export class TdsDropdown {
44
25
  else
45
26
  return tdsDropdownOptions;
46
27
  };
28
+ this.getSelectedChildren = () => {
29
+ if (this.selectedOptions.length === 0)
30
+ return [];
31
+ return this.selectedOptions
32
+ .map((stringValue) => {
33
+ var _a;
34
+ const matchingElement = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.find((element) => element.value === stringValue);
35
+ return matchingElement;
36
+ })
37
+ .filter(Boolean);
38
+ };
39
+ this.getSelectedChildrenLabels = () => {
40
+ var _a;
41
+ return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
42
+ };
43
+ this.getValue = () => {
44
+ const labels = this.getSelectedChildrenLabels();
45
+ if (!labels) {
46
+ return '';
47
+ }
48
+ return labels === null || labels === void 0 ? void 0 : labels.join(', ');
49
+ };
50
+ this.setValueAttribute = () => {
51
+ if (this.selectedOptions.length === 0) {
52
+ this.host.removeAttribute('value');
53
+ }
54
+ else {
55
+ this.host.setAttribute('value', this.selectedOptions.join(','));
56
+ }
57
+ };
47
58
  this.getOpenDirection = () => {
48
59
  var _a, _b, _c, _d, _e;
49
60
  if (this.openDirection === 'auto' || !this.openDirection) {
@@ -57,7 +68,6 @@ export class TdsDropdown {
57
68
  }
58
69
  return this.openDirection;
59
70
  };
60
- /* Toggles the open state of the Dropdown and sets focus to the input element */
61
71
  this.handleToggleOpen = () => {
62
72
  if (!this.disabled) {
63
73
  this.open = !this.open;
@@ -66,38 +76,10 @@ export class TdsDropdown {
66
76
  }
67
77
  }
68
78
  };
69
- /* Focuses the input element in the Dropdown, if the reference is present. */
70
79
  this.focusInputElement = () => {
71
80
  if (this.inputElement)
72
81
  this.inputElement.focus();
73
82
  };
74
- this.getSelectedChildren = () => {
75
- var _a;
76
- return (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((stringValue) => {
77
- const matchingElement = this.getChildren().find((element) => element.value === stringValue);
78
- return matchingElement;
79
- }).filter(Boolean);
80
- };
81
- this.getSelectedChildrenLabels = () => {
82
- var _a;
83
- return (_a = this.getSelectedChildren()) === null || _a === void 0 ? void 0 : _a.map((element) => element.textContent.trim());
84
- };
85
- this.getValue = () => {
86
- const labels = this.getSelectedChildrenLabels();
87
- if (!labels) {
88
- return '';
89
- }
90
- return labels === null || labels === void 0 ? void 0 : labels.join(', ');
91
- };
92
- this.setValueAttribute = () => {
93
- var _a;
94
- if (!this.value || ((_a = this.value) === null || _a === void 0 ? void 0 : _a.toString()) === '') {
95
- this.host.removeAttribute('value');
96
- }
97
- else {
98
- this.host.setAttribute('value', this.value.map((val) => val).toString());
99
- }
100
- };
101
83
  this.handleFilter = (event) => {
102
84
  this.tdsInput.emit(event);
103
85
  const query = event.target.value.toLowerCase();
@@ -128,8 +110,10 @@ export class TdsDropdown {
128
110
  this.handleFilterReset = () => {
129
111
  this.reset();
130
112
  this.inputElement.value = '';
131
- this.handleFilter({ target: { value: this.inputElement.value } });
113
+ this.handleFilter({ target: { value: '' } });
132
114
  this.inputElement.focus();
115
+ // Add this line to ensure internal value is cleared
116
+ this.internalValue = '';
133
117
  };
134
118
  this.handleFocus = (event) => {
135
119
  this.open = true;
@@ -143,13 +127,6 @@ export class TdsDropdown {
143
127
  this.handleBlur = (event) => {
144
128
  this.tdsBlur.emit(event);
145
129
  };
146
- this.handleChange = () => {
147
- var _a, _b;
148
- this.tdsChange.emit({
149
- name: this.name,
150
- value: (_b = (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString()) !== null && _b !== void 0 ? _b : null,
151
- });
152
- };
153
130
  this.resetInput = () => {
154
131
  const inputEl = this.host.querySelector('input');
155
132
  if (inputEl) {
@@ -172,16 +149,111 @@ export class TdsDropdown {
172
149
  this.normalizeText = true;
173
150
  this.noResultText = 'No result';
174
151
  this.defaultValue = undefined;
152
+ this.value = null;
175
153
  this.open = false;
176
- this.value = undefined;
154
+ this.internalValue = undefined;
177
155
  this.filterResult = undefined;
178
156
  this.filterFocus = undefined;
157
+ this.internalDefaultValue = undefined;
158
+ this.selectedOptions = [];
159
+ }
160
+ handleValueChange(newValue) {
161
+ // Normalize to array
162
+ const normalizedValue = this.normalizeValue(newValue);
163
+ // Only update if actually changed
164
+ if (this.hasValueChanged(normalizedValue, this.selectedOptions)) {
165
+ this.updateDropdownState(normalizedValue);
166
+ }
167
+ }
168
+ normalizeValue(value) {
169
+ if (!value || value === '')
170
+ return []; // Handle both null and empty string
171
+ // For multiselect, keep array. For single select, wrap in array
172
+ if (this.multiselect) {
173
+ if (Array.isArray(value)) {
174
+ return convertArrayToStrings(value);
175
+ }
176
+ return value
177
+ .toString()
178
+ .split(',')
179
+ .filter((v) => v !== '');
180
+ }
181
+ // Single select - convert to string array
182
+ return Array.isArray(value) ? convertArrayToStrings(value) : [convertToString(value)];
183
+ }
184
+ hasValueChanged(newValue, currentValue) {
185
+ if (newValue.length !== currentValue.length)
186
+ return true;
187
+ return newValue.some((val) => !currentValue.includes(val));
188
+ }
189
+ updateDropdownState(values) {
190
+ // Update internal state
191
+ this.selectedOptions = [...this.validateValues(values)]; // Force new array reference
192
+ // Then update the value prop to match
193
+ this.value = this.multiselect ? this.selectedOptions : this.selectedOptions[0] || null;
194
+ // Force update of internal value
195
+ this.internalValue = this.getValue();
196
+ // Update DOM
197
+ this.updateOptionElements();
198
+ // Update display value
199
+ this.updateDisplayValue();
200
+ // Emit change event
201
+ this.emitChange();
202
+ // Update value attribute
203
+ this.setValueAttribute();
204
+ }
205
+ validateValues(values) {
206
+ return values.filter((val) => {
207
+ var _a;
208
+ const isValid = (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.some((element) => element.value === val);
209
+ if (!isValid) {
210
+ console.warn(`Option with value "${val}" does not exist`);
211
+ }
212
+ return isValid;
213
+ });
214
+ }
215
+ updateOptionElements() {
216
+ var _a;
217
+ (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
218
+ // Convert element.value to string for comparison
219
+ element.setSelected(this.selectedOptions.includes(convertToString(element.value)));
220
+ });
221
+ }
222
+ updateDisplayValue() {
223
+ this.internalValue = this.getSelectedChildrenLabels().join(', ');
224
+ if (this.filter && this.inputElement) {
225
+ this.inputElement.value = this.internalValue;
226
+ }
227
+ }
228
+ emitChange() {
229
+ const value = this.multiselect
230
+ ? this.selectedOptions.join(',')
231
+ : this.selectedOptions[0] || null;
232
+ this.tdsChange.emit({
233
+ name: this.name,
234
+ value: value !== null && value !== void 0 ? value : null,
235
+ });
236
+ }
237
+ async setValue(value) {
238
+ let normalizedValue;
239
+ if (Array.isArray(value)) {
240
+ normalizedValue = convertArrayToStrings(value);
241
+ }
242
+ else {
243
+ normalizedValue = [convertToString(value)];
244
+ }
245
+ this.updateDropdownState(normalizedValue);
246
+ return this.getSelectedChildren().map((element) => ({
247
+ value: element.value,
248
+ label: element.textContent.trim(),
249
+ }));
179
250
  }
180
- /** Method that resets the Dropdown, marks all children as non-selected and resets the value to null. */
181
251
  async reset() {
182
- this.dropdownList.scrollTop = 0;
183
- this.internalReset();
184
- this.handleChange();
252
+ this.updateDropdownState([]);
253
+ }
254
+ async removeValue(oldValue) {
255
+ const newValues = this.selectedOptions.filter((v) => v !== oldValue);
256
+ this.updateDropdownState(newValues);
185
257
  }
186
258
  /** Method that forces focus on the input element. */
187
259
  async focusElement() {
@@ -202,79 +274,6 @@ export class TdsDropdown {
202
274
  * dropdown.setValue(['option-1', 'option-2']);
203
275
  * </code>
204
276
  */
205
- // The label is optional here ONLY to not break the API. Should be removed for 2.0.
206
- // @ts-ignore
207
- // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
208
- async setValue(value, label) {
209
- let nextValue;
210
- if (typeof value === 'string')
211
- nextValue = [value];
212
- else
213
- nextValue = value;
214
- if (!this.multiselect && nextValue.length > 1) {
215
- console.warn('Tried to select multiple items, but multiselect is not enabled.');
216
- nextValue = [nextValue[0]];
217
- }
218
- nextValue = [...new Set(nextValue)];
219
- this.internalReset();
220
- for (let i = 0; i < nextValue.length; i++) {
221
- const optionExist = this.getChildren().some((element) => element.value === nextValue[i]);
222
- if (!optionExist) {
223
- nextValue.splice(i, 1);
224
- }
225
- }
226
- this.value = nextValue;
227
- this.setValueAttribute();
228
- this.selectChildrenAsSelectedBasedOnSelectionProp();
229
- this.handleChange();
230
- /* This returns an array of object with a value and label pair. This is ONLY to not break the API. Should be removed for 2.0. */
231
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
232
- const selection = this.getSelectedChildren().map((element) => ({
233
- value: element.value,
234
- label: element.textContent.trim(),
235
- }));
236
- // Update inputElement value and placeholder text
237
- if (this.filter) {
238
- this.inputElement.value = this.getValue();
239
- }
240
- return selection;
241
- }
242
- /**
243
- * @internal
244
- */
245
- async appendValue(value) {
246
- if (this.multiselect && this.value) {
247
- this.setValue([...this.value, value]);
248
- }
249
- else {
250
- this.setValue(value);
251
- }
252
- }
253
- /** Method for removing a selected value in the Dropdown. */
254
- async removeValue(oldValue) {
255
- var _a, _b;
256
- let label;
257
- if (this.multiselect) {
258
- (_a = this.getChildren()) === null || _a === void 0 ? void 0 : _a.forEach((element) => {
259
- var _a;
260
- if (element.value === oldValue) {
261
- this.value = (_a = this.value) === null || _a === void 0 ? void 0 : _a.filter((value) => value !== element.value);
262
- label = element.textContent.trim();
263
- element.setSelected(false);
264
- }
265
- return element;
266
- });
267
- }
268
- else {
269
- this.reset();
270
- }
271
- this.handleChange();
272
- this.setValueAttribute();
273
- /* This returns an array of object with a value and label pair. This is ONLY to not break the API. Should be removed for 2.0. */
274
- /* https://tegel.atlassian.net/browse/CDEP-2703 */
275
- return (_b = this.value) === null || _b === void 0 ? void 0 : _b.map((value) => ({ value, label }));
276
- }
277
- /** Method for closing the Dropdown. */
278
277
  async close() {
279
278
  this.open = false;
280
279
  }
@@ -321,12 +320,25 @@ export class TdsDropdown {
321
320
  handleOpenState() {
322
321
  if (this.filter && this.multiselect) {
323
322
  if (!this.open) {
324
- this.inputElement.value = this.getValue();
323
+ this.inputElement.value = this.selectedOptions.length ? this.getValue() : '';
325
324
  }
326
325
  }
327
326
  }
327
+ handleDefaultValueChange(newValue) {
328
+ if (newValue !== undefined && newValue !== null) {
329
+ this.internalDefaultValue = convertToString(newValue);
330
+ this.setDefaultOption();
331
+ }
332
+ }
328
333
  componentWillLoad() {
329
- this.setDefaultOption();
334
+ if (this.defaultValue && !this.value) {
335
+ // Convert defaultValue to string before splitting
336
+ const defaultValueStr = convertToString(this.defaultValue);
337
+ const initialValue = this.multiselect
338
+ ? defaultValueStr.split(',').map(convertToString)
339
+ : [convertToString(this.defaultValue)];
340
+ this.updateDropdownState(initialValue);
341
+ }
330
342
  }
331
343
  /** Method to handle slot changes */
332
344
  handleSlotChange() {
@@ -336,29 +348,16 @@ export class TdsDropdown {
336
348
  normalizeString(text) {
337
349
  return this.normalizeText ? text.normalize('NFD').replace(/\p{Diacritic}/gu, '') : text;
338
350
  }
339
- /** Method that resets the dropdown without emitting an event. */
340
- internalReset() {
341
- this.getChildren().forEach((element) => {
342
- element.setSelected(false);
343
- return element;
344
- });
345
- this.value = null;
346
- this.setValueAttribute();
347
- }
348
- selectChildrenAsSelectedBasedOnSelectionProp() {
349
- this.getChildren().forEach((element) => {
350
- this.value.forEach((selection) => {
351
- if (element.value !== selection) {
352
- // If not multiselect, we need to unselect all other options.
353
- if (!this.multiselect) {
354
- element.setSelected(false);
355
- }
356
- }
357
- else {
358
- element.setSelected(true);
359
- }
360
- });
361
- });
351
+ /**
352
+ * @internal
353
+ */
354
+ async appendValue(value) {
355
+ if (this.multiselect) {
356
+ this.updateDropdownState([...this.selectedOptions, value]);
357
+ }
358
+ else {
359
+ this.updateDropdownState([value]);
360
+ }
362
361
  }
363
362
  componentDidRender() {
364
363
  const form = this.host.closest('form');
@@ -373,9 +372,14 @@ export class TdsDropdown {
373
372
  }
374
373
  }
375
374
  render() {
376
- var _a, _b, _c, _d;
377
- appendHiddenInput(this.host, this.name, (_a = this.value) === null || _a === void 0 ? void 0 : _a.map((value) => value).toString(), this.disabled);
378
- return (h(Host, { key: 'b452aebe0997ce114fff5c7527d7305e97bf6462', role: "select", class: `${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}` }, this.label && this.labelPosition === 'outside' && (h("div", { key: '356273d3065daebba4d72a7f30f745dab1eb803e', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: 'c8b617da62a01e0432fee90c243723edde5fecca', class: `dropdown-select ${this.size} ${this.disabled ? 'disabled' : ''}` }, this.filter ? (h("div", { class: {
375
+ appendHiddenInput(this.host, this.name, this.selectedOptions.join(','), this.disabled);
376
+ return (h(Host, { key: '490d34545b3a09c3b4342fa09d38f6bf9c782498', role: "select", class: {
377
+ [`tds-mode-variant-${this.modeVariant}`]: Boolean(this.modeVariant),
378
+ } }, this.label && this.labelPosition === 'outside' && (h("div", { key: '7eb96c0134032654df98a3b68ffb692a2cd91d2b', class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { key: '439fddb188ad65239e9d5451a82ab3bbe8f47fb7', class: {
379
+ 'dropdown-select': true,
380
+ [this.size]: true,
381
+ 'disabled': this.disabled,
382
+ } }, this.filter ? (h("div", { class: {
379
383
  filter: true,
380
384
  focus: this.filterFocus,
381
385
  disabled: this.disabled,
@@ -383,24 +387,18 @@ export class TdsDropdown {
383
387
  } }, 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: `
384
388
  label-inside-as-placeholder
385
389
  ${this.size}
386
- ${((_b = this.value) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
390
+ ${this.selectedOptions.length ? 'selected' : ''}
387
391
  ` }, this.label)), h("input", {
388
392
  // eslint-disable-next-line no-return-assign
389
- ref: (inputEl) => (this.inputElement = inputEl), class: `${this.labelPosition === 'inside' ? 'placeholder' : ''}`, type: "text", placeholder: this.filterFocus ? '' : this.placeholder, value: this.multiselect && this.filterFocus ? '' : this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
393
+ ref: (inputEl) => (this.inputElement = inputEl), class: {
394
+ placeholder: this.labelPosition === 'inside',
395
+ }, type: "text", placeholder: this.filterFocus ? '' : this.placeholder, value: this.multiselect && this.filterFocus ? '' : this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
390
396
  this.filterFocus = false;
391
397
  if (this.multiselect) {
392
398
  this.inputElement.value = this.getValue();
393
399
  }
394
400
  this.handleBlur(event);
395
- }, onFocus: (event) => {
396
- this.open = true;
397
- this.filterFocus = true;
398
- if (this.multiselect) {
399
- this.inputElement.value = '';
400
- }
401
- this.handleFocus(event);
402
- this.handleFilter({ target: { value: '' } });
403
- }, onKeyDown: (event) => {
401
+ }, onFocus: (event) => this.handleFocus(event), onKeyDown: (event) => {
404
402
  if (event.key === 'Escape') {
405
403
  this.open = false;
406
404
  }
@@ -409,7 +407,10 @@ export class TdsDropdown {
409
407
  if (event.key === 'Enter') {
410
408
  this.handleFilterReset();
411
409
  }
412
- }, class: `clear-icon ${this.open && this.inputElement.value !== '' ? '' : 'hide'}`, name: "cross", size: "16px" }), h("tds-icon", { tabIndex: 0, role: "button", "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", onClick: this.handleToggleOpen, onKeyDown: (event) => {
410
+ }, class: {
411
+ 'clear-icon': true,
412
+ 'hide': !(this.open && this.inputElement.value !== ''),
413
+ }, name: "cross", size: "16px" }), h("tds-icon", { tabIndex: 0, role: "button", "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", onClick: this.handleToggleOpen, onKeyDown: (event) => {
413
414
  if (event.key === 'Enter') {
414
415
  this.handleToggleOpen();
415
416
  }
@@ -418,14 +419,16 @@ export class TdsDropdown {
418
419
  this.open = false;
419
420
  }
420
421
  }, class: `
421
- ${this.value ? 'value' : 'placeholder'}
422
+ ${this.selectedOptions.length ? 'value' : 'placeholder'}
422
423
  ${this.open ? 'open' : 'closed'}
423
424
  ${this.error ? 'error' : ''}
424
425
  `, 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: `
425
426
  label-inside-as-placeholder
426
427
  ${this.size}
427
- ${((_c = this.value) === null || _c === void 0 ? void 0 : _c.length) ? 'selected' : ''}
428
- ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, ((_d = this.value) === null || _d === void 0 ? void 0 : _d.length) ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: 'bd702f67929bfd42350b11a9680e007dd74e4bad', ref: (element) => (this.dropdownList = element), class: {
428
+ ${this.selectedOptions.length ? 'selected' : ''}
429
+ ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, this.selectedOptions.length ? this.getValue() : this.placeholder), h("tds-icon", { "aria-label": "Open/Close dropdown", svgTitle: "Open/Close dropdown", class: `menu-icon ${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { key: 'd6381f78466994f05415cf8981b3cedaaf4df6a9', ref: (element) => {
430
+ this.dropdownList = element;
431
+ }, class: {
429
432
  'dropdown-list': true,
430
433
  [this.size]: true,
431
434
  [this.getOpenDirection()]: true,
@@ -434,7 +437,11 @@ export class TdsDropdown {
434
437
  'closed': !this.open,
435
438
  [`animation-enter-${this.animation}`]: this.animation !== 'none' && this.open,
436
439
  [`animation-exit-${this.animation}`]: this.animation !== 'none' && !this.open,
437
- } }, h("slot", { key: '64c67c8aa6aa68089c59de1fdedb915ea4beb3af', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '2152a99732579e2c2f7e82d450743e67d8b9f263', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'fbc4ebc39a4ca4fc49a77ea1160042ad1de005ec', class: `helper ${this.error ? 'error' : ''} ${this.disabled ? 'disabled' : ''}` }, this.error && h("tds-icon", { key: '318107cbe939b82250bb97bfbceae4017e438ba1', name: "error", size: "16px" }), this.helper))));
440
+ } }, h("slot", { key: 'c36a9cb5398a7d290f11576431982e869986e4a0', onSlotchange: () => this.handleSlotChange() }), this.filterResult === 0 && this.noResultText !== '' && (h("div", { key: '5ec07552d105f8a4addc46da0172f67cf9233817', class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { key: 'b3e240c31060f2d2bce6e3647f903f9ff1250ed5', class: {
441
+ helper: true,
442
+ error: this.error,
443
+ disabled: this.disabled,
444
+ } }, this.error && h("tds-icon", { key: 'c0eb10dfeaa5236f5ac02dabf44329e85d52dcda', name: "error", size: "16px" }), this.helper))));
438
445
  }
439
446
  static get is() { return "tds-dropdown"; }
440
447
  static get encapsulation() { return "shadow"; }
@@ -716,11 +723,11 @@ export class TdsDropdown {
716
723
  "defaultValue": "'No result'"
717
724
  },
718
725
  "defaultValue": {
719
- "type": "string",
726
+ "type": "any",
720
727
  "mutable": false,
721
728
  "complexType": {
722
- "original": "string",
723
- "resolved": "string",
729
+ "original": "string | number",
730
+ "resolved": "number | string",
724
731
  "references": {}
725
732
  },
726
733
  "required": false,
@@ -731,15 +738,35 @@ export class TdsDropdown {
731
738
  },
732
739
  "attribute": "default-value",
733
740
  "reflect": false
741
+ },
742
+ "value": {
743
+ "type": "any",
744
+ "mutable": true,
745
+ "complexType": {
746
+ "original": "string | number | (string | number)[]",
747
+ "resolved": "(string | number)[] | number | string",
748
+ "references": {}
749
+ },
750
+ "required": false,
751
+ "optional": false,
752
+ "docs": {
753
+ "tags": [],
754
+ "text": "Value of the dropdown. For multiselect, provide array of strings/numbers. For single select, provide a string/number."
755
+ },
756
+ "attribute": "value",
757
+ "reflect": false,
758
+ "defaultValue": "null"
734
759
  }
735
760
  };
736
761
  }
737
762
  static get states() {
738
763
  return {
739
764
  "open": {},
740
- "value": {},
765
+ "internalValue": {},
741
766
  "filterResult": {},
742
- "filterFocus": {}
767
+ "filterFocus": {},
768
+ "internalDefaultValue": {},
769
+ "selectedOptions": {}
743
770
  };
744
771
  }
745
772
  static get events() {
@@ -822,24 +849,32 @@ export class TdsDropdown {
822
849
  }
823
850
  static get methods() {
824
851
  return {
825
- "reset": {
852
+ "setValue": {
826
853
  "complexType": {
827
- "signature": "() => Promise<void>",
828
- "parameters": [],
854
+ "signature": "(value: string | number | string[] | number[]) => Promise<{ value: string | number; label: string; }[]>",
855
+ "parameters": [{
856
+ "name": "value",
857
+ "type": "string | number | string[] | number[]",
858
+ "docs": ""
859
+ }],
829
860
  "references": {
830
861
  "Promise": {
831
862
  "location": "global",
832
863
  "id": "global::Promise"
864
+ },
865
+ "HTMLTdsDropdownOptionElement": {
866
+ "location": "global",
867
+ "id": "global::HTMLTdsDropdownOptionElement"
833
868
  }
834
869
  },
835
- "return": "Promise<void>"
870
+ "return": "Promise<{ value: string | number; label: string; }[]>"
836
871
  },
837
872
  "docs": {
838
- "text": "Method that resets the Dropdown, marks all children as non-selected and resets the value to null.",
873
+ "text": "",
839
874
  "tags": []
840
875
  }
841
876
  },
842
- "focusElement": {
877
+ "reset": {
843
878
  "complexType": {
844
879
  "signature": "() => Promise<void>",
845
880
  "parameters": [],
@@ -852,19 +887,15 @@ export class TdsDropdown {
852
887
  "return": "Promise<void>"
853
888
  },
854
889
  "docs": {
855
- "text": "Method that forces focus on the input element.",
890
+ "text": "",
856
891
  "tags": []
857
892
  }
858
893
  },
859
- "setValue": {
894
+ "removeValue": {
860
895
  "complexType": {
861
- "signature": "(value: string | string[], label?: string) => Promise<{ value: string; label: string; }[]>",
896
+ "signature": "(oldValue: string) => Promise<void>",
862
897
  "parameters": [{
863
- "name": "value",
864
- "type": "string | string[]",
865
- "docs": ""
866
- }, {
867
- "name": "label",
898
+ "name": "oldValue",
868
899
  "type": "string",
869
900
  "docs": ""
870
901
  }],
@@ -872,27 +903,19 @@ export class TdsDropdown {
872
903
  "Promise": {
873
904
  "location": "global",
874
905
  "id": "global::Promise"
875
- },
876
- "HTMLTdsDropdownOptionElement": {
877
- "location": "global",
878
- "id": "global::HTMLTdsDropdownOptionElement"
879
906
  }
880
907
  },
881
- "return": "Promise<{ value: string; label: string; }[]>"
908
+ "return": "Promise<void>"
882
909
  },
883
910
  "docs": {
884
- "text": "Method for setting the value of the Dropdown.\n\nSingle selection example:\n\n<code>\ndropdown.setValue('option-1', 'Option 1');\n</code>\n\nMultiselect example:\n\n<code>\ndropdown.setValue(['option-1', 'option-2']);\n</code>",
911
+ "text": "",
885
912
  "tags": []
886
913
  }
887
914
  },
888
- "appendValue": {
915
+ "focusElement": {
889
916
  "complexType": {
890
- "signature": "(value: string) => Promise<void>",
891
- "parameters": [{
892
- "name": "value",
893
- "type": "string",
894
- "docs": ""
895
- }],
917
+ "signature": "() => Promise<void>",
918
+ "parameters": [],
896
919
  "references": {
897
920
  "Promise": {
898
921
  "location": "global",
@@ -902,42 +925,35 @@ export class TdsDropdown {
902
925
  "return": "Promise<void>"
903
926
  },
904
927
  "docs": {
905
- "text": "",
906
- "tags": [{
907
- "name": "internal",
908
- "text": undefined
909
- }]
928
+ "text": "Method that forces focus on the input element.",
929
+ "tags": []
910
930
  }
911
931
  },
912
- "removeValue": {
932
+ "close": {
913
933
  "complexType": {
914
- "signature": "(oldValue: string) => Promise<{ value: string; label: string; }[]>",
915
- "parameters": [{
916
- "name": "oldValue",
917
- "type": "string",
918
- "docs": ""
919
- }],
934
+ "signature": "() => Promise<void>",
935
+ "parameters": [],
920
936
  "references": {
921
937
  "Promise": {
922
938
  "location": "global",
923
939
  "id": "global::Promise"
924
- },
925
- "HTMLTdsDropdownOptionElement": {
926
- "location": "global",
927
- "id": "global::HTMLTdsDropdownOptionElement"
928
940
  }
929
941
  },
930
- "return": "Promise<{ value: string; label: string; }[]>"
942
+ "return": "Promise<void>"
931
943
  },
932
944
  "docs": {
933
- "text": "Method for removing a selected value in the Dropdown.",
945
+ "text": "Method for setting the value of the Dropdown.\n\nSingle selection example:\n\n<code>\ndropdown.setValue('option-1', 'Option 1');\n</code>\n\nMultiselect example:\n\n<code>\ndropdown.setValue(['option-1', 'option-2']);\n</code>",
934
946
  "tags": []
935
947
  }
936
948
  },
937
- "close": {
949
+ "appendValue": {
938
950
  "complexType": {
939
- "signature": "() => Promise<void>",
940
- "parameters": [],
951
+ "signature": "(value: string) => Promise<void>",
952
+ "parameters": [{
953
+ "name": "value",
954
+ "type": "string",
955
+ "docs": ""
956
+ }],
941
957
  "references": {
942
958
  "Promise": {
943
959
  "location": "global",
@@ -947,8 +963,11 @@ export class TdsDropdown {
947
963
  "return": "Promise<void>"
948
964
  },
949
965
  "docs": {
950
- "text": "Method for closing the Dropdown.",
951
- "tags": []
966
+ "text": "",
967
+ "tags": [{
968
+ "name": "internal",
969
+ "text": undefined
970
+ }]
952
971
  }
953
972
  }
954
973
  };
@@ -956,8 +975,14 @@ export class TdsDropdown {
956
975
  static get elementRef() { return "host"; }
957
976
  static get watchers() {
958
977
  return [{
978
+ "propName": "value",
979
+ "methodName": "handleValueChange"
980
+ }, {
959
981
  "propName": "open",
960
982
  "methodName": "handleOpenState"
983
+ }, {
984
+ "propName": "defaultValue",
985
+ "methodName": "handleDefaultValueChange"
961
986
  }];
962
987
  }
963
988
  static get listeners() {