@scania/tegel 0.0.9 → 0.0.11

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 (594) hide show
  1. package/README.md +3 -0
  2. package/dist/cjs/index-ee36ffa1.js +10 -14
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/tds-accordion-item.cjs.entry.js +1 -1
  5. package/dist/cjs/tds-badge.cjs.entry.js +3 -3
  6. package/dist/cjs/tds-banner.cjs.entry.js +13 -13
  7. package/dist/cjs/tds-breadcrumb.cjs.entry.js +2 -4
  8. package/dist/cjs/tds-breadcrumbs.cjs.entry.js +0 -3
  9. package/dist/cjs/tds-button.cjs.entry.js +20 -18
  10. package/dist/cjs/tds-card.cjs.entry.js +19 -23
  11. package/dist/cjs/tds-checkbox.cjs.entry.js +2 -1
  12. package/dist/cjs/tds-chip.cjs.entry.js +14 -3
  13. package/dist/cjs/tds-core-header-item_2.cjs.entry.js +1 -1
  14. package/dist/cjs/{tds-dropdown-option-v2.cjs.entry.js → tds-dropdown-option.cjs.entry.js} +5 -5
  15. package/dist/cjs/{tds-dropdown-v2.cjs.entry.js → tds-dropdown.cjs.entry.js} +31 -26
  16. package/dist/cjs/tds-folder-tab.cjs.entry.js +2 -3
  17. package/dist/cjs/tds-folder-tabs.cjs.entry.js +5 -5
  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 +6 -6
  21. package/dist/cjs/tds-header-cell.cjs.entry.js +1 -1
  22. package/dist/cjs/tds-header-dropdown-list-item.cjs.entry.js +2 -2
  23. package/dist/cjs/tds-header-dropdown-list-user.cjs.entry.js +4 -4
  24. package/dist/cjs/tds-header-dropdown-list.cjs.entry.js +6 -6
  25. package/dist/cjs/tds-header-dropdown.cjs.entry.js +4 -3
  26. package/dist/cjs/tds-header-hamburger.cjs.entry.js +1 -1
  27. package/dist/cjs/tds-header-launcher-button.cjs.entry.js +1 -1
  28. package/dist/cjs/tds-header-launcher-grid-title.cjs.entry.js +3 -2
  29. package/dist/cjs/tds-header-launcher-grid.cjs.entry.js +1 -1
  30. package/dist/cjs/tds-header-launcher-list-item.cjs.entry.js +1 -1
  31. package/dist/cjs/tds-header-launcher-list-title.cjs.entry.js +3 -2
  32. package/dist/cjs/tds-header-launcher-list.cjs.entry.js +3 -2
  33. package/dist/cjs/tds-header-launcher.cjs.entry.js +2 -2
  34. package/dist/cjs/tds-header.cjs.entry.js +1 -1
  35. package/dist/cjs/tds-inline-tab.cjs.entry.js +1 -1
  36. package/dist/cjs/tds-inline-tabs.cjs.entry.js +5 -5
  37. package/dist/cjs/tds-link.cjs.entry.js +2 -2
  38. package/dist/cjs/tds-message.cjs.entry.js +6 -6
  39. package/dist/cjs/tds-modal.cjs.entry.js +13 -5
  40. package/dist/cjs/tds-navigation-tab.cjs.entry.js +1 -1
  41. package/dist/cjs/tds-navigation-tabs.cjs.entry.js +5 -5
  42. package/dist/cjs/tds-popover-canvas.cjs.entry.js +10 -80
  43. package/dist/{components/popper.js → cjs/tds-popover-core.cjs.entry.js} +166 -13
  44. package/dist/cjs/tds-popover-menu.cjs.entry.js +12 -62
  45. package/dist/cjs/tds-radio-button.cjs.entry.js +3 -2
  46. package/dist/cjs/tds-side-menu-close-button.cjs.entry.js +1 -1
  47. package/dist/cjs/tds-side-menu-dropdown.cjs.entry.js +1 -1
  48. package/dist/cjs/tds-side-menu-item.cjs.entry.js +1 -1
  49. package/dist/cjs/tds-side-menu.cjs.entry.js +2 -2
  50. package/dist/cjs/tds-slider.cjs.entry.js +16 -15
  51. package/dist/cjs/tds-stepper.cjs.entry.js +3 -2
  52. package/dist/cjs/tds-table-body.cjs.entry.js +4 -51
  53. package/dist/cjs/tds-table-footer.cjs.entry.js +47 -39
  54. package/dist/cjs/tds-table-toolbar.cjs.entry.js +2 -2
  55. package/dist/cjs/tds-table.cjs.entry.js +2 -1
  56. package/dist/cjs/tds-text-field.cjs.entry.js +6 -2
  57. package/dist/cjs/tds-toast.cjs.entry.js +13 -28
  58. package/dist/cjs/tds-toggle.cjs.entry.js +2 -1
  59. package/dist/cjs/tds-tooltip.cjs.entry.js +41 -78
  60. package/dist/cjs/tegel.cjs.js +1 -1
  61. package/dist/cjs/{utils-2beb1aa0.js → utils-a908536d.js} +33 -12
  62. package/dist/collection/collection-manifest.json +1 -3
  63. package/dist/collection/components/accordion/accordion-item/accordion-item.js +5 -1
  64. package/dist/collection/components/accordion/accordion.js +3 -0
  65. package/dist/collection/components/accordion/accordion.stories.js +100 -0
  66. package/dist/collection/components/badge/badge.js +4 -4
  67. package/dist/collection/components/badge/badge.stories.js +106 -0
  68. package/dist/collection/components/banner/banner.css +12 -9
  69. package/dist/collection/components/banner/banner.js +40 -24
  70. package/dist/collection/components/banner/banner.stories.js +107 -0
  71. package/dist/collection/components/block/block.js +3 -0
  72. package/dist/collection/components/block/block.stories.js +49 -0
  73. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.css +4 -4
  74. package/dist/collection/components/breadcrumbs/breadcrumb/breadcrumb.js +4 -21
  75. package/dist/collection/components/breadcrumbs/breadcrumbs.js +3 -3
  76. package/dist/collection/components/breadcrumbs/breadcrumbs.stories.js +36 -0
  77. package/dist/collection/components/button/button.css +20 -14
  78. package/dist/collection/components/button/button.js +46 -23
  79. package/dist/collection/components/button/button.stories.js +185 -0
  80. package/dist/collection/components/card/card.css +18 -14
  81. package/dist/collection/components/card/card.js +32 -68
  82. package/dist/collection/components/card/card.stories.js +163 -0
  83. package/dist/collection/components/checkbox/checkbox.js +6 -2
  84. package/dist/collection/components/checkbox/checkbox.stories.js +80 -0
  85. package/dist/collection/components/chip/chip.css +23 -8
  86. package/dist/collection/components/chip/chip.js +19 -3
  87. package/dist/collection/components/chip/chip.stories.js +230 -0
  88. package/dist/collection/components/datetime/datetime.stories.js +195 -0
  89. package/dist/collection/components/divider/divider.stories.js +62 -0
  90. package/dist/collection/components/dropdown/dropdown-option/dropdown-option.js +145 -116
  91. package/dist/collection/components/dropdown/dropdown.css +212 -386
  92. package/dist/collection/components/dropdown/dropdown.js +480 -329
  93. package/dist/collection/components/dropdown/dropdown.stories.js +268 -0
  94. package/dist/collection/components/footer/footer-group/footer-group.css +3 -3
  95. package/dist/collection/components/footer/footer-group/footer-group.js +5 -2
  96. package/dist/collection/components/footer/footer-item/footer-item.css +16 -8
  97. package/dist/collection/components/footer/footer-item/footer-item.js +3 -0
  98. package/dist/collection/components/footer/footer.css +9 -12
  99. package/dist/collection/components/footer/footer.js +10 -10
  100. package/dist/collection/components/footer/footer.stories.js +145 -0
  101. package/dist/collection/components/header/core-header-item/core-header-item.js +3 -0
  102. package/dist/collection/components/header/header-brand-symbol/header-brand-symbol.js +3 -0
  103. package/dist/collection/components/header/header-dropdown/header-dropdown.js +11 -5
  104. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.css +2 -2
  105. package/dist/collection/components/header/header-dropdown-list/header-dropdown-list.js +10 -7
  106. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.css +3 -3
  107. package/dist/collection/components/header/header-dropdown-list-item/header-dropdown-list-item.js +7 -4
  108. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.css +1 -1
  109. package/dist/collection/components/header/header-dropdown-list-user/header-dropdown-list-user.js +13 -9
  110. package/dist/collection/components/header/header-hamburger/header-hamburger.css +0 -1
  111. package/dist/collection/components/header/header-item/header-item.js +3 -0
  112. package/dist/collection/components/header/header-launcher/header-launcher.js +5 -2
  113. package/dist/collection/components/header/header-launcher-grid/header-launcher-grid.js +3 -0
  114. package/dist/collection/components/header/header-launcher-grid-item/header-launcher-grid-item.js +3 -0
  115. package/dist/collection/components/header/header-launcher-grid-title/header-launcher-grid-title.js +6 -2
  116. package/dist/collection/components/header/header-launcher-list/header-launcher-list.js +6 -2
  117. package/dist/collection/components/header/header-launcher-list-item/header-launcher-list-item.js +4 -1
  118. package/dist/collection/components/header/header-launcher-list-title/header-launcher-list-title.js +6 -2
  119. package/dist/collection/components/header/header-title/header-title.js +3 -0
  120. package/dist/collection/components/header/header.css +1 -1
  121. package/dist/collection/components/header/header.js +6 -0
  122. package/dist/collection/components/header/header.stories.js +82 -0
  123. package/dist/collection/components/icon/icon.stories.js +48 -0
  124. package/dist/collection/components/link/link.css +16 -13
  125. package/dist/collection/components/link/link.js +5 -1
  126. package/dist/collection/components/link/link.stories.js +59 -0
  127. package/dist/collection/components/message/message.css +16 -16
  128. package/dist/collection/components/message/message.js +11 -8
  129. package/dist/collection/components/message/message.stories.js +110 -0
  130. package/dist/collection/components/modal/modal.css +19 -33
  131. package/dist/collection/components/modal/modal.js +36 -6
  132. package/dist/collection/components/modal/modal.stories.js +109 -0
  133. package/dist/collection/components/popover-canvas/popover-canvas.css +3 -7
  134. package/dist/collection/components/popover-canvas/popover-canvas.js +15 -104
  135. package/dist/collection/components/popover-canvas/popover-canvas.stories.js +92 -0
  136. package/dist/collection/components/popover-core/popover-core.js +390 -0
  137. package/dist/collection/components/popover-menu/popover-menu.css +2 -8
  138. package/dist/collection/components/popover-menu/popover-menu.js +18 -81
  139. package/dist/collection/components/popover-menu/popover-menu.stories.js +140 -0
  140. package/dist/collection/components/radio-button/radio-button.css +1 -1
  141. package/dist/collection/components/radio-button/radio-button.js +6 -2
  142. package/dist/collection/components/radio-button/radio-button.stories.js +91 -0
  143. package/dist/collection/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.js +3 -0
  144. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.css +1 -1
  145. package/dist/collection/components/side-menu/side-menu-dropdown/side-menu-dropdown.js +5 -0
  146. package/dist/collection/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.js +3 -0
  147. package/dist/collection/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.js +3 -0
  148. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.css +1 -1
  149. package/dist/collection/components/side-menu/side-menu-item/side-menu-item.js +3 -0
  150. package/dist/collection/components/side-menu/side-menu-user/side-menu-user.js +3 -0
  151. package/dist/collection/components/side-menu/side-menu-user-image/side-menu-user-image.js +5 -0
  152. package/dist/collection/components/side-menu/side-menu.css +6 -5
  153. package/dist/collection/components/side-menu/side-menu.js +11 -3
  154. package/dist/collection/components/side-menu/side-menu.stories.js +215 -0
  155. package/dist/collection/components/slider/slider.js +17 -16
  156. package/dist/collection/components/slider/slider.stories.js +243 -0
  157. package/dist/collection/components/spinner/spinner.stories.js +61 -0
  158. package/dist/collection/components/stepper/step/step.js +3 -0
  159. package/dist/collection/components/stepper/stepper.css +3 -0
  160. package/dist/collection/components/stepper/stepper.js +7 -3
  161. package/dist/collection/components/stepper/stepper.stories.js +95 -0
  162. package/dist/collection/components/table/table/table.js +7 -3
  163. package/dist/collection/components/table/table-body/table-body.js +15 -60
  164. package/dist/collection/components/table/table-body-cell/table-body-cell.js +3 -0
  165. package/dist/collection/components/table/table-body-row/table-body-row.js +3 -0
  166. package/dist/collection/components/table/table-body-row-expandable/table-body-row-expandable.js +4 -0
  167. package/dist/collection/components/table/table-component-basic.stories.js +184 -0
  168. package/dist/collection/components/table/table-component-batch-actions.stories.js +201 -0
  169. package/dist/collection/components/table/table-component-bodydata.stories.js +101 -0
  170. package/dist/collection/components/table/table-component-custom-width.stories.js +174 -0
  171. package/dist/collection/components/table/table-component-event-listeners.stories.js +193 -0
  172. package/dist/collection/components/table/table-component-expandable-rows.stories.js +160 -0
  173. package/dist/collection/components/table/table-component-filtering.stories.js +210 -0
  174. package/dist/collection/components/table/table-component-multiselect.stories.js +230 -0
  175. package/dist/collection/components/table/table-component-pagination.stories.js +215 -0
  176. package/dist/collection/components/table/table-component-sorting.stories.js +238 -0
  177. package/dist/collection/components/table/table-footer/table-footer.js +65 -54
  178. package/dist/collection/components/table/table-header/table-header.js +3 -0
  179. package/dist/collection/components/table/table-header-cell/table-header-cell.css +1 -0
  180. package/dist/collection/components/table/table-toolbar/table-toolbar.css +2 -1
  181. package/dist/collection/components/table/table-toolbar/table-toolbar.js +4 -1
  182. package/dist/collection/components/table/table.filtering.spec.js +0 -6
  183. package/dist/collection/components/table/table.spec.js +0 -6
  184. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.css +10 -11
  185. package/dist/collection/components/tabs/folder-tabs/folder-tab/folder-tab.js +4 -2
  186. package/dist/collection/components/tabs/folder-tabs/folder-tabs.js +8 -5
  187. package/dist/collection/components/tabs/folder-tabs/folder-tabs.stories.js +105 -0
  188. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.css +13 -2
  189. package/dist/collection/components/tabs/inline-tabs/inline-tab/inline-tab.js +3 -0
  190. package/dist/collection/components/tabs/inline-tabs/inline-tabs.js +8 -5
  191. package/dist/collection/components/tabs/inline-tabs/inline-tabs.stories.js +99 -0
  192. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.css +13 -2
  193. package/dist/collection/components/tabs/navigation-tabs/navigation-tab/navigation-tab.js +3 -0
  194. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.js +8 -5
  195. package/dist/collection/components/tabs/navigation-tabs/navigation-tabs.stories.js +101 -0
  196. package/dist/collection/components/text-field/text-field.js +10 -2
  197. package/dist/collection/components/text-field/text-field.stories.js +247 -0
  198. package/dist/collection/components/textarea/textarea.stories.js +188 -0
  199. package/dist/collection/components/toast/toast.css +32 -25
  200. package/dist/collection/components/toast/toast.js +21 -37
  201. package/dist/collection/components/toast/toast.stories.js +79 -0
  202. package/dist/collection/components/toggle/toggle.js +6 -2
  203. package/dist/collection/components/toggle/toggle.stories.js +95 -0
  204. package/dist/collection/components/tooltip/tooltip.js +47 -87
  205. package/dist/collection/components/tooltip/tooltip.stories.js +136 -0
  206. package/dist/collection/stories/Installation/installation.stories.js +222 -0
  207. package/dist/collection/stories/announcements/announce-tegel.stories.js +262 -0
  208. package/dist/collection/stories/announcements/prefix-change.stories.js +93 -0
  209. package/dist/collection/stories/foundations/color/color-brand.stories.js +38 -0
  210. package/dist/collection/stories/foundations/color/color-scales.stories.js +71 -0
  211. package/dist/collection/stories/foundations/color/color-semantic.stories.js +40 -0
  212. package/dist/collection/stories/foundations/grid/grid.stories.js +386 -0
  213. package/dist/collection/stories/foundations/spacing/spacing-element.stories.js +100 -0
  214. package/dist/collection/stories/foundations/spacing/spacing-layout.stories.js +94 -0
  215. package/dist/collection/stories/foundations/typography/typography-body.stories.js +16 -0
  216. package/dist/collection/stories/foundations/typography/typography-detail.stories.js +17 -0
  217. package/dist/collection/stories/foundations/typography/typography-headline.stories.js +39 -0
  218. package/dist/collection/stories/foundations/typography/typography-paragraph.stories.js +12 -0
  219. package/dist/collection/stories/patterns/navigation/navigation-basic.stories.js +85 -0
  220. package/dist/collection/stories/patterns/navigation/navigation-fewitems.stories.js +259 -0
  221. package/dist/collection/stories/patterns/navigation/navigation-manyitems.stories.js +246 -0
  222. package/dist/collection/stories/patterns/navigation/navigation-user-menu.stories.js +140 -0
  223. package/dist/collection/stories/tegel.stories.js +293 -0
  224. package/dist/collection/stories/utility/color/background-color.stories.js +96 -0
  225. package/dist/collection/stories/utility/color/text-color.stories.js +94 -0
  226. package/dist/collection/utils/utils.js +30 -11
  227. package/dist/components/checkbox.js +2 -1
  228. package/dist/components/header-dropdown-list-item.js +3 -3
  229. package/dist/components/header-dropdown-list.js +7 -7
  230. package/dist/components/header-item.js +1 -1
  231. package/dist/components/popover-canvas.js +20 -89
  232. package/dist/{esm/popper-bfa25c7f.js → components/popover-core.js} +190 -13
  233. package/dist/components/side-menu-item.js +1 -1
  234. package/dist/components/tds-accordion-item.js +1 -1
  235. package/dist/components/tds-badge.js +4 -4
  236. package/dist/components/tds-banner.js +16 -17
  237. package/dist/components/tds-breadcrumb.js +3 -6
  238. package/dist/components/tds-breadcrumbs.js +0 -3
  239. package/dist/components/tds-button.js +23 -22
  240. package/dist/components/tds-card.js +21 -29
  241. package/dist/components/tds-chip.js +14 -3
  242. package/dist/components/tds-dropdown-option.js +121 -1
  243. package/dist/components/tds-dropdown.js +323 -1
  244. package/dist/components/tds-folder-tab.js +2 -3
  245. package/dist/components/tds-folder-tabs.js +5 -5
  246. package/dist/components/tds-footer-group.js +3 -3
  247. package/dist/components/tds-footer-item.js +1 -1
  248. package/dist/components/tds-footer.js +7 -8
  249. package/dist/components/tds-header-cell.js +1 -1
  250. package/dist/components/tds-header-dropdown-list-user.js +6 -6
  251. package/dist/components/tds-header-dropdown.js +19 -12
  252. package/dist/components/tds-header-launcher-grid-title.js +3 -2
  253. package/dist/components/tds-header-launcher-grid.js +1 -1
  254. package/dist/components/tds-header-launcher-list-item.js +1 -1
  255. package/dist/components/tds-header-launcher-list-title.js +3 -2
  256. package/dist/components/tds-header-launcher-list.js +3 -2
  257. package/dist/components/tds-header-launcher.js +18 -12
  258. package/dist/components/tds-inline-tab.js +1 -1
  259. package/dist/components/tds-inline-tabs.js +5 -5
  260. package/dist/components/tds-link.js +4 -3
  261. package/dist/components/tds-message.js +7 -7
  262. package/dist/components/tds-modal.js +14 -5
  263. package/dist/components/tds-navigation-tab.js +1 -1
  264. package/dist/components/tds-navigation-tabs.js +5 -5
  265. package/dist/components/{tds-dropdown-v2.d.ts → tds-popover-core.d.ts} +4 -4
  266. package/dist/components/tds-popover-core.js +6 -0
  267. package/dist/components/tds-popover-menu.js +22 -70
  268. package/dist/components/tds-radio-button.js +3 -2
  269. package/dist/components/tds-side-menu-dropdown.js +1 -1
  270. package/dist/components/tds-side-menu.js +2 -2
  271. package/dist/components/tds-slider.js +16 -15
  272. package/dist/components/tds-stepper.js +3 -2
  273. package/dist/components/tds-table-body.js +5 -53
  274. package/dist/components/tds-table-footer.js +50 -42
  275. package/dist/components/tds-table-toolbar.js +9 -3
  276. package/dist/components/tds-table.js +2 -1
  277. package/dist/components/tds-text-field.js +6 -2
  278. package/dist/components/tds-toast.js +15 -32
  279. package/dist/components/tds-toggle.js +2 -1
  280. package/dist/components/tds-tooltip.js +51 -85
  281. package/dist/components/utils.js +31 -12
  282. package/dist/esm/index-23ee700b.js +10 -14
  283. package/dist/esm/loader.js +1 -1
  284. package/dist/esm/tds-accordion-item.entry.js +1 -1
  285. package/dist/esm/tds-badge.entry.js +3 -3
  286. package/dist/esm/tds-banner.entry.js +13 -13
  287. package/dist/esm/tds-breadcrumb.entry.js +2 -4
  288. package/dist/esm/tds-breadcrumbs.entry.js +0 -3
  289. package/dist/esm/tds-button.entry.js +20 -18
  290. package/dist/esm/tds-card.entry.js +19 -23
  291. package/dist/esm/tds-checkbox.entry.js +2 -1
  292. package/dist/esm/tds-chip.entry.js +15 -4
  293. package/dist/esm/tds-core-header-item_2.entry.js +1 -1
  294. package/dist/esm/{tds-dropdown-option-v2.entry.js → tds-dropdown-option.entry.js} +5 -5
  295. package/dist/esm/{tds-dropdown-v2.entry.js → tds-dropdown.entry.js} +31 -26
  296. package/dist/esm/tds-folder-tab.entry.js +2 -3
  297. package/dist/esm/tds-folder-tabs.entry.js +5 -5
  298. package/dist/esm/tds-footer-group.entry.js +3 -3
  299. package/dist/esm/tds-footer-item.entry.js +1 -1
  300. package/dist/esm/tds-footer.entry.js +6 -6
  301. package/dist/esm/tds-header-cell.entry.js +1 -1
  302. package/dist/esm/tds-header-dropdown-list-item.entry.js +2 -2
  303. package/dist/esm/tds-header-dropdown-list-user.entry.js +4 -4
  304. package/dist/esm/tds-header-dropdown-list.entry.js +6 -6
  305. package/dist/esm/tds-header-dropdown.entry.js +4 -3
  306. package/dist/esm/tds-header-hamburger.entry.js +1 -1
  307. package/dist/esm/tds-header-launcher-button.entry.js +1 -1
  308. package/dist/esm/tds-header-launcher-grid-title.entry.js +3 -2
  309. package/dist/esm/tds-header-launcher-grid.entry.js +1 -1
  310. package/dist/esm/tds-header-launcher-list-item.entry.js +1 -1
  311. package/dist/esm/tds-header-launcher-list-title.entry.js +3 -2
  312. package/dist/esm/tds-header-launcher-list.entry.js +3 -2
  313. package/dist/esm/tds-header-launcher.entry.js +2 -2
  314. package/dist/esm/tds-header.entry.js +1 -1
  315. package/dist/esm/tds-inline-tab.entry.js +1 -1
  316. package/dist/esm/tds-inline-tabs.entry.js +5 -5
  317. package/dist/esm/tds-link.entry.js +2 -2
  318. package/dist/esm/tds-message.entry.js +6 -6
  319. package/dist/esm/tds-modal.entry.js +13 -5
  320. package/dist/esm/tds-navigation-tab.entry.js +1 -1
  321. package/dist/esm/tds-navigation-tabs.entry.js +5 -5
  322. package/dist/esm/tds-popover-canvas.entry.js +10 -80
  323. package/dist/{cjs/popper-9def2535.js → esm/tds-popover-core.entry.js} +161 -14
  324. package/dist/esm/tds-popover-menu.entry.js +12 -62
  325. package/dist/esm/tds-radio-button.entry.js +3 -2
  326. package/dist/esm/tds-side-menu-close-button.entry.js +1 -1
  327. package/dist/esm/tds-side-menu-dropdown.entry.js +1 -1
  328. package/dist/esm/tds-side-menu-item.entry.js +1 -1
  329. package/dist/esm/tds-side-menu.entry.js +2 -2
  330. package/dist/esm/tds-slider.entry.js +16 -15
  331. package/dist/esm/tds-stepper.entry.js +3 -2
  332. package/dist/esm/tds-table-body.entry.js +4 -51
  333. package/dist/esm/tds-table-footer.entry.js +47 -39
  334. package/dist/esm/tds-table-toolbar.entry.js +2 -2
  335. package/dist/esm/tds-table.entry.js +2 -1
  336. package/dist/esm/tds-text-field.entry.js +7 -3
  337. package/dist/esm/tds-toast.entry.js +13 -28
  338. package/dist/esm/tds-toggle.entry.js +2 -1
  339. package/dist/esm/tds-tooltip.entry.js +42 -79
  340. package/dist/esm/tegel.js +1 -1
  341. package/dist/esm/{utils-9ac24735.js → utils-8544b156.js} +31 -12
  342. package/dist/tegel/p-000d60e5.entry.js +1 -0
  343. package/dist/tegel/p-04bff255.entry.js +1 -0
  344. package/dist/tegel/p-0641ac24.entry.js +1 -0
  345. package/dist/tegel/p-099025f0.entry.js +1 -0
  346. package/dist/tegel/p-0ae649c3.entry.js +1 -0
  347. package/dist/tegel/p-1a907ae9.entry.js +1 -0
  348. package/dist/tegel/p-1c82ccf0.entry.js +1 -0
  349. package/dist/tegel/{p-1acb8407.entry.js → p-1f43d4f0.entry.js} +1 -1
  350. package/dist/tegel/p-2e5f6086.entry.js +1 -0
  351. package/dist/tegel/{p-89283891.entry.js → p-31848a92.entry.js} +1 -1
  352. package/dist/tegel/{p-fb3f4a14.entry.js → p-3d28689e.entry.js} +1 -1
  353. package/dist/tegel/p-400282e5.entry.js +1 -0
  354. package/dist/tegel/p-4163997b.entry.js +1 -0
  355. package/dist/tegel/{p-bcb2fad3.entry.js → p-42990ec0.entry.js} +1 -1
  356. package/dist/tegel/p-43320d81.entry.js +1 -0
  357. package/dist/tegel/p-49a084db.entry.js +1 -0
  358. package/dist/tegel/{p-e8fccebc.entry.js → p-56189659.entry.js} +1 -1
  359. package/dist/tegel/{p-b6a16219.entry.js → p-656add37.entry.js} +1 -1
  360. package/dist/tegel/p-65ab407b.entry.js +1 -0
  361. package/dist/tegel/p-6654e59d.entry.js +1 -0
  362. package/dist/tegel/p-6f0072cc.entry.js +1 -0
  363. package/dist/tegel/{p-39227588.js → p-72fced16.js} +1 -1
  364. package/dist/tegel/p-79b1bb29.entry.js +1 -0
  365. package/dist/tegel/p-7ccff0a5.entry.js +1 -0
  366. package/dist/tegel/p-81915088.entry.js +1 -0
  367. package/dist/tegel/{p-232f5889.entry.js → p-823399ef.entry.js} +1 -1
  368. package/dist/tegel/p-84d231a5.entry.js +1 -0
  369. package/dist/tegel/{p-7b34156b.entry.js → p-88807dac.entry.js} +1 -1
  370. package/dist/tegel/p-88d7c4c1.entry.js +1 -0
  371. package/dist/tegel/p-8bd0a233.entry.js +1 -0
  372. package/dist/tegel/{p-e0ee20ee.entry.js → p-8c194dd8.entry.js} +1 -1
  373. package/dist/tegel/p-8e745d73.entry.js +1 -0
  374. package/dist/tegel/p-9991a816.entry.js +1 -0
  375. package/dist/tegel/{p-135575ae.entry.js → p-a08be1c3.entry.js} +1 -1
  376. package/dist/tegel/{p-3aa634ed.entry.js → p-a1ad46d2.entry.js} +1 -1
  377. package/dist/tegel/p-a8cc3901.entry.js +1 -0
  378. package/dist/tegel/{p-7d3a66ae.entry.js → p-aa7e2f79.entry.js} +1 -1
  379. package/dist/tegel/{p-cd2a74d7.entry.js → p-b0d313cd.entry.js} +1 -1
  380. package/dist/tegel/p-b1067b50.entry.js +1 -0
  381. package/dist/tegel/p-c411f254.entry.js +1 -0
  382. package/dist/tegel/p-cacdd03f.entry.js +1 -0
  383. package/dist/tegel/p-cb5a4d7d.entry.js +1 -0
  384. package/dist/tegel/p-d0f15f73.entry.js +1 -0
  385. package/dist/tegel/p-d2ca7f58.entry.js +1 -0
  386. package/dist/tegel/p-d4c25eb6.entry.js +1 -0
  387. package/dist/tegel/p-d5bd9b2e.entry.js +1 -0
  388. package/dist/tegel/{p-de799b9a.entry.js → p-d60cb9e5.entry.js} +1 -1
  389. package/dist/tegel/p-da6f310c.entry.js +1 -0
  390. package/dist/tegel/p-df318a85.entry.js +1 -0
  391. package/dist/tegel/p-df95f0ae.entry.js +1 -0
  392. package/dist/tegel/p-e36ceefe.entry.js +1 -0
  393. package/dist/tegel/p-e4d6a4c5.entry.js +1 -0
  394. package/dist/tegel/p-f36ec03b.entry.js +1 -0
  395. package/dist/tegel/p-f64ff692.entry.js +1 -0
  396. package/dist/tegel/p-f682dd0b.entry.js +1 -0
  397. package/dist/tegel/p-fa30061f.entry.js +1 -0
  398. package/dist/tegel/tegel.css +2 -2
  399. package/dist/tegel/tegel.esm.js +1 -1
  400. package/dist/types/components/accordion/accordion-item/accordion-item.d.ts +4 -0
  401. package/dist/types/components/accordion/accordion.d.ts +3 -0
  402. package/dist/types/components/accordion/accordion.stories.d.ts +77 -0
  403. package/dist/types/components/badge/badge.stories.d.ts +73 -0
  404. package/dist/types/components/banner/banner.d.ts +10 -5
  405. package/dist/types/components/banner/banner.stories.d.ts +82 -0
  406. package/dist/types/components/block/block.d.ts +3 -0
  407. package/dist/types/components/block/block.stories.d.ts +32 -0
  408. package/dist/types/components/breadcrumbs/breadcrumb/breadcrumb.d.ts +3 -2
  409. package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +3 -1
  410. package/dist/types/components/breadcrumbs/breadcrumbs.stories.d.ts +16 -0
  411. package/dist/types/components/button/button.d.ts +9 -3
  412. package/dist/types/components/button/button.stories.d.ts +147 -0
  413. package/dist/types/components/card/card.d.ts +11 -9
  414. package/dist/types/components/card/card.stories.d.ts +128 -0
  415. package/dist/types/components/checkbox/checkbox.d.ts +3 -0
  416. package/dist/types/components/checkbox/checkbox.stories.d.ts +52 -0
  417. package/dist/types/components/chip/chip.d.ts +6 -0
  418. package/dist/types/components/chip/chip.stories.d.ts +99 -0
  419. package/dist/types/components/datetime/datetime.stories.d.ts +125 -0
  420. package/dist/types/components/divider/divider.stories.d.ts +58 -0
  421. package/dist/types/components/dropdown/dropdown-option/dropdown-option.d.ts +31 -17
  422. package/dist/types/components/dropdown/dropdown.d.ts +82 -54
  423. package/dist/types/components/dropdown/dropdown.stories.d.ts +183 -0
  424. package/dist/types/components/footer/footer-group/footer-group.d.ts +4 -1
  425. package/dist/types/components/footer/footer-item/footer-item.d.ts +3 -0
  426. package/dist/types/components/footer/footer.d.ts +5 -3
  427. package/dist/types/components/footer/footer.stories.d.ts +44 -0
  428. package/dist/types/components/header/core-header-item/core-header-item.d.ts +3 -0
  429. package/dist/types/components/header/header-brand-symbol/header-brand-symbol.d.ts +3 -0
  430. package/dist/types/components/header/header-dropdown/header-dropdown.d.ts +6 -1
  431. package/dist/types/components/header/header-dropdown-list/header-dropdown-list.d.ts +5 -1
  432. package/dist/types/components/header/header-dropdown-list-item/header-dropdown-list-item.d.ts +5 -2
  433. package/dist/types/components/header/header-dropdown-list-user/header-dropdown-list-user.d.ts +8 -4
  434. package/dist/types/components/header/header-item/header-item.d.ts +3 -0
  435. package/dist/types/components/header/header-launcher/header-launcher.d.ts +3 -0
  436. package/dist/types/components/header/header-launcher-grid/header-launcher-grid.d.ts +3 -0
  437. package/dist/types/components/header/header-launcher-grid-item/header-launcher-grid-item.d.ts +3 -0
  438. package/dist/types/components/header/header-launcher-grid-title/header-launcher-grid-title.d.ts +3 -0
  439. package/dist/types/components/header/header-launcher-list/header-launcher-list.d.ts +3 -0
  440. package/dist/types/components/header/header-launcher-list-item/header-launcher-list-item.d.ts +3 -0
  441. package/dist/types/components/header/header-launcher-list-title/header-launcher-list-title.d.ts +3 -0
  442. package/dist/types/components/header/header-title/header-title.d.ts +3 -0
  443. package/dist/types/components/header/header.d.ts +6 -0
  444. package/dist/types/components/header/header.stories.d.ts +32 -0
  445. package/dist/types/components/icon/icon.stories.d.ts +36 -0
  446. package/dist/types/components/link/link.d.ts +3 -0
  447. package/dist/types/components/link/link.stories.d.ts +44 -0
  448. package/dist/types/components/message/message.d.ts +5 -2
  449. package/dist/types/components/message/message.stories.d.ts +88 -0
  450. package/dist/types/components/modal/modal.d.ts +9 -3
  451. package/dist/types/components/modal/modal.stories.d.ts +70 -0
  452. package/dist/types/components/popover-canvas/popover-canvas.d.ts +8 -14
  453. package/dist/types/components/popover-canvas/popover-canvas.stories.d.ts +27 -0
  454. package/dist/types/components/popover-core/popover-core.d.ts +46 -0
  455. package/dist/types/components/popover-menu/popover-menu.d.ts +9 -10
  456. package/dist/types/components/popover-menu/popover-menu.stories.d.ts +40 -0
  457. package/dist/types/components/radio-button/radio-button.d.ts +3 -0
  458. package/dist/types/components/radio-button/radio-button.stories.d.ts +39 -0
  459. package/dist/types/components/side-menu/side-menu-collapse-button/side-menu-collapse-button.d.ts +3 -0
  460. package/dist/types/components/side-menu/side-menu-dropdown/side-menu-dropdown.d.ts +5 -0
  461. package/dist/types/components/side-menu/side-menu-dropdown-list/side-menu-dropdown-list.d.ts +3 -0
  462. package/dist/types/components/side-menu/side-menu-dropdown-list-item/side-menu-dropdown-list-item.d.ts +3 -0
  463. package/dist/types/components/side-menu/side-menu-item/side-menu-item.d.ts +3 -0
  464. package/dist/types/components/side-menu/side-menu-user/side-menu-user.d.ts +3 -0
  465. package/dist/types/components/side-menu/side-menu-user-image/side-menu-user-image.d.ts +4 -0
  466. package/dist/types/components/side-menu/side-menu.d.ts +8 -0
  467. package/dist/types/components/side-menu/side-menu.stories.d.ts +53 -0
  468. package/dist/types/components/slider/slider.d.ts +0 -1
  469. package/dist/types/components/slider/slider.stories.d.ts +235 -0
  470. package/dist/types/components/spinner/spinner.stories.d.ts +46 -0
  471. package/dist/types/components/stepper/step/step.d.ts +3 -0
  472. package/dist/types/components/stepper/stepper.d.ts +3 -0
  473. package/dist/types/components/stepper/stepper.stories.d.ts +80 -0
  474. package/dist/types/components/table/table/table.d.ts +3 -0
  475. package/dist/types/components/table/table-body/table-body.d.ts +6 -3
  476. package/dist/types/components/table/table-body-cell/table-body-cell.d.ts +3 -0
  477. package/dist/types/components/table/table-body-row/table-body-row.d.ts +3 -0
  478. package/dist/types/components/table/table-body-row-expandable/table-body-row-expandable.d.ts +4 -0
  479. package/dist/types/components/table/table-component-basic.stories.d.ts +144 -0
  480. package/dist/types/components/table/table-component-batch-actions.stories.d.ts +139 -0
  481. package/dist/types/components/table/table-component-bodydata.stories.d.ts +35 -0
  482. package/dist/types/components/table/table-component-custom-width.stories.d.ts +131 -0
  483. package/dist/types/components/table/table-component-event-listeners.stories.d.ts +131 -0
  484. package/dist/types/components/table/table-component-expandable-rows.stories.d.ts +131 -0
  485. package/dist/types/components/table/table-component-filtering.stories.d.ts +139 -0
  486. package/dist/types/components/table/table-component-multiselect.stories.d.ts +144 -0
  487. package/dist/types/components/table/table-component-pagination.stories.d.ts +131 -0
  488. package/dist/types/components/table/table-component-sorting.stories.d.ts +183 -0
  489. package/dist/types/components/table/table-footer/table-footer.d.ts +7 -7
  490. package/dist/types/components/table/table-header/table-header.d.ts +3 -0
  491. package/dist/types/components/table/table-toolbar/table-toolbar.d.ts +3 -0
  492. package/dist/types/components/tabs/folder-tabs/folder-tab/folder-tab.d.ts +3 -0
  493. package/dist/types/components/tabs/folder-tabs/folder-tabs.d.ts +3 -0
  494. package/dist/types/components/tabs/folder-tabs/folder-tabs.stories.d.ts +69 -0
  495. package/dist/types/components/tabs/inline-tabs/inline-tab/inline-tab.d.ts +3 -0
  496. package/dist/types/components/tabs/inline-tabs/inline-tabs.d.ts +3 -0
  497. package/dist/types/components/tabs/inline-tabs/inline-tabs.stories.d.ts +61 -0
  498. package/dist/types/components/tabs/navigation-tabs/navigation-tab/navigation-tab.d.ts +3 -0
  499. package/dist/types/components/tabs/navigation-tabs/navigation-tabs.d.ts +3 -0
  500. package/dist/types/components/tabs/navigation-tabs/navigation-tabs.stories.d.ts +61 -0
  501. package/dist/types/components/text-field/text-field.d.ts +5 -0
  502. package/dist/types/components/text-field/text-field.stories.d.ts +201 -0
  503. package/dist/types/components/textarea/textarea.stories.d.ts +139 -0
  504. package/dist/types/components/toast/toast.d.ts +6 -5
  505. package/dist/types/components/toast/toast.stories.d.ts +56 -0
  506. package/dist/types/components/toggle/toggle.d.ts +3 -0
  507. package/dist/types/components/toggle/toggle.stories.d.ts +74 -0
  508. package/dist/types/components/tooltip/tooltip.d.ts +17 -7
  509. package/dist/types/components/tooltip/tooltip.stories.d.ts +66 -0
  510. package/dist/types/components.d.ts +232 -415
  511. package/dist/types/stories/Installation/installation.stories.d.ts +7 -0
  512. package/dist/types/stories/announcements/announce-tegel.stories.d.ts +6 -0
  513. package/dist/types/stories/announcements/prefix-change.stories.d.ts +6 -0
  514. package/dist/types/stories/foundations/color/color-brand.stories.d.ts +13 -0
  515. package/dist/types/stories/foundations/color/color-scales.stories.d.ts +30 -0
  516. package/dist/types/stories/foundations/color/color-semantic.stories.d.ts +13 -0
  517. package/dist/types/stories/foundations/grid/grid.stories.d.ts +35 -0
  518. package/dist/types/stories/foundations/spacing/spacing-element.stories.d.ts +8 -0
  519. package/dist/types/stories/foundations/spacing/spacing-layout.stories.d.ts +8 -0
  520. package/dist/types/stories/foundations/typography/typography-body.stories.d.ts +8 -0
  521. package/dist/types/stories/foundations/typography/typography-detail.stories.d.ts +8 -0
  522. package/dist/types/stories/foundations/typography/typography-headline.stories.d.ts +21 -0
  523. package/dist/types/stories/foundations/typography/typography-paragraph.stories.d.ts +8 -0
  524. package/dist/types/stories/patterns/navigation/navigation-basic.stories.d.ts +23 -0
  525. package/dist/types/stories/patterns/navigation/navigation-fewitems.stories.d.ts +23 -0
  526. package/dist/types/stories/patterns/navigation/navigation-manyitems.stories.d.ts +38 -0
  527. package/dist/types/stories/patterns/navigation/navigation-user-menu.stories.d.ts +33 -0
  528. package/dist/types/stories/tegel.stories.d.ts +6 -0
  529. package/dist/types/stories/utility/color/background-color.stories.d.ts +64 -0
  530. package/dist/types/stories/utility/color/text-color.stories.d.ts +64 -0
  531. package/dist/types/utils/utils.d.ts +20 -6
  532. package/package.json +22 -24
  533. package/dist/cjs/tds-dropdown-filter.cjs.entry.js +0 -96
  534. package/dist/cjs/tds-dropdown_2.cjs.entry.js +0 -339
  535. package/dist/collection/components/dropdown/dropdown-filter/dropdown-filter.js +0 -380
  536. package/dist/collection/components/dropdown-v2/dropdown-option-v2/dropdown-option-v2.js +0 -216
  537. package/dist/collection/components/dropdown-v2/dropdown-v2.css +0 -286
  538. package/dist/collection/components/dropdown-v2/dropdown-v2.js +0 -726
  539. package/dist/components/dropdown-option.js +0 -104
  540. package/dist/components/dropdown.js +0 -304
  541. package/dist/components/tds-dropdown-filter.d.ts +0 -11
  542. package/dist/components/tds-dropdown-filter.js +0 -150
  543. package/dist/components/tds-dropdown-option-v2.d.ts +0 -11
  544. package/dist/components/tds-dropdown-option-v2.js +0 -126
  545. package/dist/components/tds-dropdown-v2.js +0 -323
  546. package/dist/esm/tds-dropdown-filter.entry.js +0 -92
  547. package/dist/esm/tds-dropdown_2.entry.js +0 -334
  548. package/dist/tegel/p-07e5df94.entry.js +0 -1
  549. package/dist/tegel/p-0a3e7512.entry.js +0 -1
  550. package/dist/tegel/p-0e55d72f.entry.js +0 -1
  551. package/dist/tegel/p-107d3da8.entry.js +0 -1
  552. package/dist/tegel/p-13b02a4f.entry.js +0 -1
  553. package/dist/tegel/p-19e9addd.entry.js +0 -1
  554. package/dist/tegel/p-1fb5c5d4.entry.js +0 -1
  555. package/dist/tegel/p-2bee16f6.entry.js +0 -1
  556. package/dist/tegel/p-2e2c91c4.entry.js +0 -1
  557. package/dist/tegel/p-330ed982.entry.js +0 -1
  558. package/dist/tegel/p-3604b5d3.entry.js +0 -1
  559. package/dist/tegel/p-375e361b.entry.js +0 -1
  560. package/dist/tegel/p-55dc4711.entry.js +0 -1
  561. package/dist/tegel/p-59f1cb9b.entry.js +0 -1
  562. package/dist/tegel/p-5a6aba01.entry.js +0 -1
  563. package/dist/tegel/p-60733f89.entry.js +0 -1
  564. package/dist/tegel/p-6a530c2f.entry.js +0 -1
  565. package/dist/tegel/p-732256e0.entry.js +0 -1
  566. package/dist/tegel/p-7331ec7b.entry.js +0 -1
  567. package/dist/tegel/p-76f941e8.entry.js +0 -1
  568. package/dist/tegel/p-7b0853e6.entry.js +0 -1
  569. package/dist/tegel/p-90686bc7.entry.js +0 -1
  570. package/dist/tegel/p-95da9b7f.entry.js +0 -1
  571. package/dist/tegel/p-99f540db.entry.js +0 -1
  572. package/dist/tegel/p-9bcc42cf.entry.js +0 -1
  573. package/dist/tegel/p-9d707f6e.js +0 -1
  574. package/dist/tegel/p-9f57d275.entry.js +0 -1
  575. package/dist/tegel/p-9fe384ad.entry.js +0 -1
  576. package/dist/tegel/p-a5604352.entry.js +0 -1
  577. package/dist/tegel/p-acb62b52.entry.js +0 -1
  578. package/dist/tegel/p-aeffa257.entry.js +0 -1
  579. package/dist/tegel/p-b8d88873.entry.js +0 -1
  580. package/dist/tegel/p-beb8a6bd.entry.js +0 -1
  581. package/dist/tegel/p-c8d4af09.entry.js +0 -1
  582. package/dist/tegel/p-c90a247c.entry.js +0 -1
  583. package/dist/tegel/p-ca4527de.entry.js +0 -1
  584. package/dist/tegel/p-cf4cfc54.entry.js +0 -1
  585. package/dist/tegel/p-d3f5cf74.entry.js +0 -1
  586. package/dist/tegel/p-d67d67be.entry.js +0 -1
  587. package/dist/tegel/p-da4c92b9.entry.js +0 -1
  588. package/dist/tegel/p-e95059e9.entry.js +0 -1
  589. package/dist/tegel/p-f6206d3c.entry.js +0 -1
  590. package/dist/tegel/p-fc47d911.entry.js +0 -1
  591. package/dist/types/components/dropdown/dropdown-filter/dropdown-filter.d.ts +0 -47
  592. package/dist/types/components/dropdown-v2/dropdown-option-v2/dropdown-option-v2.d.ts +0 -35
  593. package/dist/types/components/dropdown-v2/dropdown-v2.d.ts +0 -86
  594. /package/dist/collection/components/{dropdown-v2/dropdown-option-v2/dropdown-option-v2.css → dropdown/dropdown-option/dropdown-option.css} +0 -0
@@ -1,250 +1,269 @@
1
- import { h, Host, } from '@stencil/core';
1
+ import { Host, h } from '@stencil/core';
2
+ import { appendChildElement, appendHiddenInput, findNextFocusableItem, findPreviousFocusableItem, } from '../../utils/utils';
3
+ /**
4
+ * @slot <default> - <b>Unnamed slot.</b> For dropdown option elements.
5
+ */
2
6
  export class TdsDropdown {
3
7
  constructor() {
4
- this.modeVariant = null;
5
- this.placeholder = undefined;
6
- this.defaultOption = undefined;
7
- this.selectedOption = undefined;
8
+ this.connectedCallback = () => {
9
+ if (!this.options) {
10
+ this.children = Array.from(this.host.children);
11
+ }
12
+ };
13
+ this.setDefaultOption = () => {
14
+ this.children = this.children.map((element) => {
15
+ if (this.multiselect) {
16
+ this.defaultValue.split(',').forEach((defaultValue) => {
17
+ if (defaultValue === element.value) {
18
+ element.setSelected(true);
19
+ this.selection = this.selection
20
+ ? [...this.selection, { value: element.value, label: element.textContent }]
21
+ : [{ value: element.value, label: element.textContent }];
22
+ }
23
+ else {
24
+ element.setSelected(false);
25
+ }
26
+ });
27
+ }
28
+ else {
29
+ if (this.defaultValue === element.value) {
30
+ element.setSelected(true);
31
+ this.selection = [{ value: element.value, label: element.textContent }];
32
+ }
33
+ else {
34
+ element.setSelected(false);
35
+ }
36
+ }
37
+ return element;
38
+ });
39
+ };
40
+ this.getOpenDirection = () => {
41
+ var _a, _b, _c, _d, _e;
42
+ if (this.openDirection === 'auto' || !this.openDirection) {
43
+ const dropdownMenuHeight = (_b = (_a = this.dropdownList) === null || _a === void 0 ? void 0 : _a.offsetHeight) !== null && _b !== void 0 ? _b : 0;
44
+ const distanceToBottom = (_e = (_d = (_c = this.host).getBoundingClientRect) === null || _d === void 0 ? void 0 : _d.call(_c).top) !== null && _e !== void 0 ? _e : 0;
45
+ const viewportHeight = window.innerHeight;
46
+ if (distanceToBottom + dropdownMenuHeight + 57 > viewportHeight) {
47
+ return 'up';
48
+ }
49
+ return 'down';
50
+ }
51
+ return this.openDirection;
52
+ };
53
+ this.getValue = () => {
54
+ var _a, _b;
55
+ if (this.filter) {
56
+ return (_a = this.selection) === null || _a === void 0 ? void 0 : _a.map((item) => item.label).toString();
57
+ }
58
+ return (_b = this.selection) === null || _b === void 0 ? void 0 : _b.map((item) => item.label).join(', ');
59
+ };
60
+ this.handleFilter = (event) => {
61
+ this.tdsInput.emit(event);
62
+ const query = event.target.value.toLowerCase();
63
+ /* Check if the query is empty, and if so, show all options */
64
+ if (query === '') {
65
+ this.children = this.children.map((element) => {
66
+ element.removeAttribute('hidden');
67
+ return element;
68
+ });
69
+ this.filterResult = null;
70
+ /* Hide the options that do not match the query */
71
+ }
72
+ else {
73
+ this.filterResult = this.children.filter((element) => {
74
+ if (!element.textContent.toLowerCase().includes(query.toLowerCase())) {
75
+ element.setAttribute('hidden', '');
76
+ }
77
+ else {
78
+ element.removeAttribute('hidden');
79
+ }
80
+ return !element.hasAttribute('hidden');
81
+ }).length;
82
+ }
83
+ };
84
+ this.handleFocus = (event) => {
85
+ this.tdsFocus.emit(event);
86
+ };
87
+ this.handleBlur = (event) => {
88
+ this.tdsBlur.emit(event);
89
+ };
90
+ this.handleChange = () => {
91
+ var _a, _b;
92
+ this.tdsChange.emit({
93
+ name: this.name,
94
+ value: (_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.map((item) => item.value).toString()) !== null && _b !== void 0 ? _b : null,
95
+ });
96
+ };
97
+ this.name = undefined;
8
98
  this.disabled = false;
9
- this.type = 'default';
10
- this.size = 'lg';
11
- this.inline = false;
12
- this.labelPosition = 'no-label';
99
+ this.helper = undefined;
13
100
  this.label = undefined;
14
- this.state = false;
15
- this.helper = '';
101
+ this.labelPosition = undefined;
102
+ this.modeVariant = null;
16
103
  this.openDirection = 'auto';
17
- this.optionValues = [];
18
- this.optionLabels = [];
104
+ this.placeholder = undefined;
105
+ this.size = 'lg';
106
+ this.error = false;
107
+ this.multiselect = false;
108
+ this.filter = false;
109
+ this.noResultText = 'No result';
110
+ this.defaultValue = undefined;
111
+ this.options = undefined;
19
112
  this.open = false;
20
- this.node = undefined;
21
- this.selectedLabel = '';
22
- this.selectedValue = '';
23
- this.selectedValuesArray = [];
24
- this.selectedLabelsArray = [];
25
- this.dropdownUniqueClass = '';
26
- this.openUpwards = false;
27
- this.dropdownMenuHeight = 0;
28
- this.dropdownMenuSelector = undefined;
29
- this.listItemIndex = -1;
30
- this.listItemArray = undefined;
31
- this.listItemObject = undefined;
113
+ this.selection = undefined;
114
+ this.filterResult = undefined;
115
+ this.filterFocus = undefined;
32
116
  }
33
- componentWillLoad() {
34
- // If a default option is set, update the default selectedLabel value
35
- // this.host.children is a HTMLCollection type, cannot use forEach
36
- this.listItemObject = this.host.children;
37
- this.listItemArray = Array.from(this.listItemObject);
38
- this.listItemArray.map((listItem) => {
39
- this.optionValues.push(listItem.value);
40
- this.optionLabels.push(listItem.innerText.trim());
41
- });
42
- this.setOptionFromOutside(this.defaultOption);
43
- if (this.size === 'small') {
44
- this.size = 'sm';
45
- console.warn('size="small" is deprecated, use size="sm" instead');
46
- }
47
- if (this.size === 'medium') {
48
- this.size = 'md';
49
- console.warn('size="medium" is deprecated, use size="md" instead');
50
- }
51
- if (this.size === 'large') {
52
- this.size = 'lg';
53
- console.warn('size="large" is deprecated, use size="lg" instead');
54
- }
117
+ /** Method that resets the Dropdown. */
118
+ async reset() {
119
+ this.children.forEach((element) => element.setSelected(false));
120
+ this.selection = null;
121
+ this.handleChange();
55
122
  }
56
- setOptionFromOutside(optionValue) {
57
- if (optionValue) {
58
- this.deselectAll();
59
- // TODO
60
- // eslint-disable-next-line no-param-reassign
61
- optionValue = optionValue.split(',');
62
- for (let i = 0; i < this.host.children.length; i++) {
63
- // Todo - specify type
64
- const el = this.host.children[i];
65
- if (optionValue.includes(el.value.trim())) {
66
- this.selectedLabelsArray = [...this.selectedLabelsArray, el.textContent.trim()];
67
- this.selectedValuesArray = [...this.selectedValuesArray, el.value];
68
- this.selectedLabel = el.textContent;
69
- this.selectedValue = el.value;
70
- el.setAttribute('selectedLabel', 'true');
71
- el.setAttribute('selected', 'true');
72
- }
73
- else {
74
- el.setAttribute('selectedLabel', 'false');
75
- el.setAttribute('selected', 'false');
76
- }
77
- }
123
+ /** Method for setting the value of the Dropdown. */
124
+ async setValue(newValue, newValueLabel) {
125
+ if (this.multiselect) {
126
+ this.selection = this.selection
127
+ ? [...this.selection, { value: newValue, label: newValueLabel }]
128
+ : [{ value: newValue, label: newValueLabel }];
78
129
  }
79
- }
80
- changeSelectedOption() {
81
- if (this.selectedValuesArray.includes(this.selectedOption)) {
82
- this.resetOption();
130
+ else {
131
+ this.selection = [{ value: newValue, label: newValueLabel }];
132
+ this.children = this.children.map((element) => {
133
+ if (element.value !== newValue) {
134
+ element.setSelected(false);
135
+ }
136
+ return element;
137
+ });
83
138
  }
84
- this.setOptionFromOutside(this.selectedOption);
85
- this.host.setAttribute('selected-option', '');
139
+ this.handleChange();
140
+ return this.selection;
86
141
  }
87
- handleDocClick(ev) {
88
- // To stop bubble click
89
- ev.stopPropagation();
90
- const target = ev ? ev.composedPath()[0] : window.event.target[0];
91
- if (this.node !== undefined && this.node.contains(target)) {
92
- if (typeof this.textInput !== 'undefined' || this.textInput === null) {
93
- this.textInput.focus();
94
- }
142
+ /** Method for removing a selected value in the Dropdown. */
143
+ async removeValue(oldValue) {
144
+ if (this.multiselect) {
145
+ this.children.forEach((element) => {
146
+ if (element.value === oldValue) {
147
+ this.selection = this.selection.filter((item) => item.value !== element.value);
148
+ element.setSelected(false);
149
+ }
150
+ });
95
151
  }
96
152
  else {
97
- this.tabbingLabelReset();
98
- this.open = false;
153
+ this.reset();
99
154
  }
155
+ this.handleChange();
156
+ return this.selection;
100
157
  }
101
- keyListener(ev) {
102
- if (!this.disabled) {
103
- switch (ev.key) {
104
- case 'ArrowDown':
105
- if (this.open) {
106
- ev.preventDefault();
107
- if (this.listItemIndex < this.listItemArray.length - 1) {
108
- this.listItemIndex++;
109
- }
110
- else {
111
- this.listItemIndex = 0;
112
- }
113
- this.listItemObject[this.listItemIndex].focus();
114
- }
115
- break;
116
- case 'ArrowUp':
117
- if (this.open) {
118
- ev.preventDefault();
119
- if (this.listItemIndex > 0) {
120
- this.listItemIndex--;
121
- }
122
- else {
123
- this.listItemIndex = this.listItemArray.length - 1;
124
- }
125
- this.listItemObject[this.listItemIndex].focus();
126
- }
127
- break;
128
- case 'Tab':
129
- this.open = false;
130
- break;
131
- case 'Escape':
132
- this.open = false;
133
- this.node.focus();
134
- break;
135
- default:
136
- break;
158
+ /** Method for closing the Dropdown. */
159
+ async close() {
160
+ this.open = false;
161
+ }
162
+ onAnyClick(event) {
163
+ if (this.open) {
164
+ // Source: https://lamplightdev.com/blog/2021/04/10/how-to-detect-clicks-outside-of-a-web-component/
165
+ const isClickOutside = !event.composedPath().includes(this.host);
166
+ if (isClickOutside) {
167
+ this.open = false;
137
168
  }
138
169
  }
139
170
  }
140
- handleClick() {
141
- this.open = this.open === false;
142
- if (this.openDirection === 'auto') {
143
- this.dropdownMenuHeight = this.dropdownMenuSelector.offsetHeight;
144
- const distanceToBottom = this.host.getBoundingClientRect().top;
145
- const viewportHeight = window.innerHeight;
146
- this.openUpwards = distanceToBottom + this.dropdownMenuHeight + 57 > viewportHeight;
147
- // If summary of Dropdown menu height and its distance to the bottom is more than viewport height, open menu upwards
148
- // Additional 57px is added as compensation for Dropdown element own input/button height
149
- // It is added on handleClick due to possible dynamic injection of data when component is already rendered
171
+ async onKeyDown(event) {
172
+ // Get the active element
173
+ const { activeElement } = document;
174
+ if (!activeElement) {
175
+ return;
150
176
  }
151
- else {
152
- this.openUpwards = this.openDirection === 'up';
177
+ if (event.key === 'ArrowDown') {
178
+ /* Get the index of the current focus index, if there is no
179
+ nextElementSibling return the index for the first child in our Dropdown. */
180
+ const startingIndex = activeElement.nextElementSibling
181
+ ? this.children.findIndex((element) => element === activeElement.nextElementSibling)
182
+ : 0;
183
+ const elementIndex = findNextFocusableItem(this.children, startingIndex);
184
+ this.children[elementIndex].focus();
153
185
  }
154
- }
155
- tabbingLabelReset() {
156
- if (typeof this.textInput !== 'undefined' || this.textInput === null) {
157
- if (!this.selectedLabel && this.selectedLabel.length <= 0) {
158
- this.textInput.value = '';
159
- this.internalTdsSearch.emit('');
160
- }
161
- if (this.selectedLabel !== this.textInput.value) {
162
- this.textInput.value = this.selectedLabel;
163
- }
186
+ else if (event.key === 'ArrowUp') {
187
+ /* Get the index of the current focus index, if there is no
188
+ previousElementSibling return the index for the first last in our Dropdown. */
189
+ const startingIndex = activeElement.nextElementSibling
190
+ ? this.children.findIndex((element) => element === activeElement.previousElementSibling)
191
+ : 0;
192
+ const elementIndex = findPreviousFocusableItem(this.children, startingIndex);
193
+ this.children[elementIndex].focus();
164
194
  }
165
- }
166
- selectOptionHandler(event) {
167
- this.open = this.type === 'multiselect';
168
- if (this.type !== 'multiselect') {
169
- this.selectedLabel = event.detail.label;
170
- this.selectedValue = event.detail.value;
171
- this.tabbingLabelReset();
195
+ else if (event.key === 'Escape') {
196
+ this.open = false;
172
197
  }
173
- else {
174
- if (this.selectedValuesArray.includes(event.detail.value)) {
175
- const itemIndex = this.selectedValuesArray.indexOf(event.detail.value);
176
- this.selectedValuesArray = this.selectedValuesArray.filter((_value, index) => index !== itemIndex);
177
- this.selectedLabelsArray = this.selectedLabelsArray.filter((_value, index) => index !== itemIndex);
178
- }
179
- else {
180
- this.selectedValuesArray = [...this.selectedValuesArray, event.detail.value];
181
- this.selectedLabelsArray = [...this.selectedLabelsArray, event.detail.label.trim()];
198
+ }
199
+ // If the Dropdown gets closed,
200
+ // this sets the value of the dropdown to the current selection labels or null if no selection is made.
201
+ handleOpenState() {
202
+ var _a, _b;
203
+ if (this.filter && this.multiselect) {
204
+ if (!this.open) {
205
+ this.inputElement.value = (_b = (_a = this.selection) === null || _a === void 0 ? void 0 : _a.map((item) => item.label).toString()) !== null && _b !== void 0 ? _b : null;
182
206
  }
183
207
  }
184
208
  }
185
- handleSearch(ev) {
186
- const searchTerm = ev.target.value;
187
- this.internalTdsSearch.emit(searchTerm);
188
- this.open = true;
189
- }
190
- deselectAll() {
191
- this.selectedLabel = '';
192
- this.selectedValue = '';
193
- this.selectedLabelsArray = [];
194
- this.selectedValuesArray = [];
195
- this.listItemArray = this.listItemArray.map((optionItem) => (Object.assign(Object.assign({}, optionItem), { selected: false })));
196
- }
197
- async resetOption() {
198
- this.deselectAll();
199
- this.open = false;
200
- if (this.defaultOption) {
201
- this.setOptionFromOutside(this.defaultOption);
209
+ componentDidLoad() {
210
+ if (this.defaultValue) {
211
+ this.setDefaultOption();
202
212
  }
203
213
  }
204
214
  render() {
205
- return (h(Host, { class: `
206
- ${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}
207
- ${this.open && !this.disabled ? 'tds-dropdown--open' : ''}
208
- ${this.type === 'multiselect' ? 'tds-dropdown-multiselect' : ''}
209
- ${this.inline ? 'tds-dropdown-inline' : ''}
210
- ${this.selectedLabel.length > 0 || this.selectedLabel === '' ? 'tds-dropdown--selected' : ''}
211
- ${this.state ? 'tds-dropdown--error' : ''}
212
- ${this.openUpwards ? 'tds-dropdown--open-upwards' : ''}
213
- ${this.labelPosition === 'inside' && this.selectedLabelsArray.length > 0
214
- ? 'tds-dropdown--label-inside-position'
215
- : ''}
216
- `, "selected-value": this.selectedValue, "selected-text": this.selectedLabel, "multi-selected-values": JSON.stringify(this.selectedValuesArray), "multi-selected-labels": JSON.stringify(this.selectedLabelsArray) }, h("span", { class: `tds-dropdown tds-dropdown-${this.size}` }, this.labelPosition === 'outside' && this.label.length > 0 ? (h("span", { class: "tds-dropdown-label-outside" }, this.label)) : (''), h("button", { part: this.disabled ? 'dropdown-filter-disabled' : '', disabled: this.disabled, tabindex: this.disabled ? '-1' : null, class: `tds-dropdown-toggle ${this.selectedValue === 'filter' ? 'is-filter' : ''} ${this.selectedValue !== '' || this.selectedLabelsArray.length > 0
217
- ? 'tds-dropdown-toggle--selected'
218
- : ''}
219
- ${this.labelPosition === 'inside' && this.selectedValue !== '' && this.size !== 'sm'
220
- ? `tds-dropdown-toggle-label-inside-${this.size}`
221
- : `tds-dropdown-toggle-${this.size}`}`, type: "button", onClick: () => this.handleClick(), ref: (node) => (this.node = node) }, h("span", { class: "tds-dropdown-label" }, this.type === 'filter' ? (h("input", { part: this.disabled ? 'dropdown-filter-disabled' : '', disabled: this.disabled, tabindex: "-1", ref: (inputEl) => (this.textInput = inputEl), class: "tds-dropdown-filter", type: "text", placeholder: this.placeholder, value: this.selectedLabel, autoComplete: "off" })) : (h("span", { class: {
222
- 'tds-dropdown-label-container': true,
223
- 'tds-dropdown-label-container--label-inside': this.labelPosition === 'inside' &&
224
- this.size !== 'sm' &&
225
- (this.selectedLabel.length > 0 || this.selectedLabelsArray.length > 0),
226
- } }, this.size !== 'sm' &&
227
- (this.selectedLabel.length > 0 || this.selectedLabelsArray.length > 0) &&
228
- this.labelPosition === 'inside' &&
229
- this.label.length > 0 && (h("span", { class: "tds-dropdown-label-inside" }, this.label)), h("span", { class: `tds-dropdown-label-main ${(this.selectedLabel.length === 0 ||
230
- (this.labelPosition === 'inside' && this.label.length < 0)) &&
231
- 'tds-dropdown-placeholder'}` }, this.selectedLabel.length > 0 &&
232
- this.type !== 'multiselect' &&
233
- this.selectedLabel, this.type === 'multiselect' && (h("span", { class: "tds-dropdown-multiselect-result" }, this.labelPosition !== 'inside' &&
234
- this.selectedLabelsArray.toString().length < 1 &&
235
- this.placeholder, this.selectedLabelsArray.toString().length > 0 &&
236
- this.selectedLabelsArray.toString().split(',').join(', '))), !this.selectedLabel &&
237
- this.labelPosition === 'inside' &&
238
- this.size !== 'sm' &&
239
- this.label, !this.selectedLabel &&
240
- this.type !== 'multiselect' &&
241
- this.labelPosition !== 'inside' &&
242
- this.placeholder, !this.selectedLabel &&
243
- this.size === 'sm' &&
244
- this.labelPosition === 'inside' &&
245
- this.placeholder)))), h("svg", { class: "tds-dropdown-arrow", width: "12", height: "7", viewBox: "0 0 12 7", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { d: "M1 1L6 6L11 1", stroke: "currentColor", "stroke-width": "1.25", "stroke-linecap": "round", "stroke-linejoin": "round" }))), h("span", { class: "tds-dropdown-menu",
246
- // Need to have reference in order to calc height and distance from bottom
247
- ref: (dropdownMenu) => (this.dropdownMenuSelector = dropdownMenu) }, h("slot", null))), h("p", { class: "tds-dropdown-helper" }, h("svg", { class: "tds-dropdown-error-icon", fill: "none", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 32 32" }, h("path", { "fill-rule": "evenodd", "clip-rule": "evenodd", d: "M16 4C9.37 4 3.996 9.374 3.996 16.004S9.371 28.007 16 28.007c6.63 0 12.004-5.374 12.004-12.003C28.004 9.374 22.629 4 16 4ZM2 16.004c0-7.732 6.268-14 14-14s14 6.268 14 14-6.268 14-14 14-14-6.268-14-14Z", fill: "currentColor" }), h("path", { d: "M14.803 14.47V10h2.376v4.47l-.352 4.295h-1.672l-.352-4.295Zm-.053 5.632h2.5v2.394h-2.5v-2.394Z", fill: "currentColor" })), h("span", null, this.helper))));
215
+ var _a, _b, _c, _d;
216
+ if (this.options) {
217
+ let id = 0;
218
+ this.options.forEach((option) => {
219
+ appendChildElement(this.host, 'tds-dropdown-option', [
220
+ { key: 'value', value: option.value },
221
+ { key: 'disabled', value: option.disabled.toString() },
222
+ ], option.label, `id${id++}`);
223
+ });
224
+ this.children = Array.from(this.host.children).filter((element) => element.tagName === 'TDS-DROPDOWN-OPTION');
225
+ }
226
+ appendHiddenInput(this.host, this.name, (_a = this.selection) === null || _a === void 0 ? void 0 : _a.map((item) => item.value).toString(), this.disabled);
227
+ return (h(Host, { role: "select", class: `${this.modeVariant ? `tds-mode-variant-${this.modeVariant}` : ''}` }, this.label && this.labelPosition === 'outside' && (h("div", { class: `label-outside ${this.disabled ? 'disabled' : ''}` }, this.label)), h("div", { class: `dropdown-select ${this.size} ${this.disabled ? 'disabled' : ''}` }, this.filter ? (h("div", { class: `filter ${this.filterFocus ? 'focus' : ''}
228
+ ${this.disabled ? 'disabled' : ''}` }, 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: `
229
+ label-inside-as-placeholder
230
+ ${this.size}
231
+ ${((_b = this.selection) === null || _b === void 0 ? void 0 : _b.length) ? 'selected' : ''}
232
+ ` }, this.label)), h("input", {
233
+ // eslint-disable-next-line no-return-assign
234
+ ref: (element) => (this.inputElement = element), class: `${this.labelPosition === 'inside' ? 'placeholder' : ''}`, type: "text", placeholder: this.placeholder, value: this.getValue(), disabled: this.disabled, onInput: (event) => this.handleFilter(event), onBlur: (event) => {
235
+ this.filterFocus = false;
236
+ this.handleBlur(event);
237
+ }, onFocus: (event) => {
238
+ this.open = true;
239
+ this.filterFocus = true;
240
+ this.handleFocus(event);
241
+ }, onKeyDown: (event) => {
242
+ if (event.key === 'Escape') {
243
+ this.open = false;
244
+ }
245
+ }
246
+ })), h("tds-icon", { onClick: () => {
247
+ this.open = !this.open;
248
+ }, class: `${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))) : (h("button", { onClick: () => {
249
+ this.open = !this.open;
250
+ }, onKeyDown: (event) => {
251
+ if (event.key === 'Escape') {
252
+ this.open = false;
253
+ }
254
+ }, class: `
255
+ ${this.selection ? 'value' : 'placeholder'}
256
+ ${this.open ? 'open' : 'closed'}
257
+ ${this.error ? 'error' : ''}
258
+ `, 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: `
259
+ label-inside-as-placeholder
260
+ ${this.size}
261
+ ${((_c = this.selection) === null || _c === void 0 ? void 0 : _c.length) ? 'selected' : ''}
262
+ ` }, this.label)), h("div", { class: `placeholder ${this.size}` }, ((_d = this.selection) === null || _d === void 0 ? void 0 : _d.length) ? this.getValue() : this.placeholder), h("tds-icon", { class: `${this.open ? 'open' : 'closed'}`, name: "chevron_down", size: "16px" }))))), h("div", { ref: (element) => (this.dropdownList = element), class: `dropdown-list
263
+ ${this.size}
264
+ ${this.open ? 'open' : 'closed'}
265
+ ${this.getOpenDirection()}
266
+ ${this.label && this.labelPosition === 'outside' ? 'label-outside' : ''}` }, h("slot", null), this.filterResult === 0 && (h("div", { class: `no-result ${this.size}` }, this.noResultText))), this.helper && (h("div", { class: `helper ${this.error ? 'error' : ''} ${this.disabled ? 'disabled' : ''}` }, this.error && h("tds-icon", { name: "error", size: "16px" }), this.helper))));
248
267
  }
249
268
  static get is() { return "tds-dropdown"; }
250
269
  static get encapsulation() { return "shadow"; }
@@ -260,25 +279,42 @@ export class TdsDropdown {
260
279
  }
261
280
  static get properties() {
262
281
  return {
263
- "modeVariant": {
282
+ "name": {
264
283
  "type": "string",
265
284
  "mutable": false,
266
285
  "complexType": {
267
- "original": "'primary' | 'secondary'",
268
- "resolved": "\"primary\" | \"secondary\"",
286
+ "original": "string",
287
+ "resolved": "string",
269
288
  "references": {}
270
289
  },
271
290
  "required": false,
272
291
  "optional": false,
273
292
  "docs": {
274
293
  "tags": [],
275
- "text": "Set the variant of the Dropdown."
294
+ "text": "Name for the Dropdowns input element."
276
295
  },
277
- "attribute": "mode-variant",
296
+ "attribute": "name",
297
+ "reflect": false
298
+ },
299
+ "disabled": {
300
+ "type": "boolean",
301
+ "mutable": false,
302
+ "complexType": {
303
+ "original": "boolean",
304
+ "resolved": "boolean",
305
+ "references": {}
306
+ },
307
+ "required": false,
308
+ "optional": false,
309
+ "docs": {
310
+ "tags": [],
311
+ "text": "Sets the Dropdown in a disabled state"
312
+ },
313
+ "attribute": "disabled",
278
314
  "reflect": false,
279
- "defaultValue": "null"
315
+ "defaultValue": "false"
280
316
  },
281
- "placeholder": {
317
+ "helper": {
282
318
  "type": "string",
283
319
  "mutable": false,
284
320
  "complexType": {
@@ -290,12 +326,12 @@ export class TdsDropdown {
290
326
  "optional": false,
291
327
  "docs": {
292
328
  "tags": [],
293
- "text": "Placeholder text for Dropdown with no selectedLabel item"
329
+ "text": "Helper text for the Dropdown."
294
330
  },
295
- "attribute": "placeholder",
331
+ "attribute": "helper",
296
332
  "reflect": false
297
333
  },
298
- "defaultOption": {
334
+ "label": {
299
335
  "type": "string",
300
336
  "mutable": false,
301
337
  "complexType": {
@@ -307,136 +343,136 @@ export class TdsDropdown {
307
343
  "optional": false,
308
344
  "docs": {
309
345
  "tags": [],
310
- "text": "Add the value of the option as string to set it as default"
346
+ "text": "Label text for the Dropdown."
311
347
  },
312
- "attribute": "default-option",
348
+ "attribute": "label",
313
349
  "reflect": false
314
350
  },
315
- "selectedOption": {
351
+ "labelPosition": {
316
352
  "type": "string",
317
353
  "mutable": false,
318
354
  "complexType": {
319
- "original": "string",
320
- "resolved": "string",
355
+ "original": "'inside' | 'outside'",
356
+ "resolved": "\"inside\" | \"outside\"",
321
357
  "references": {}
322
358
  },
323
359
  "required": false,
324
360
  "optional": false,
325
361
  "docs": {
326
362
  "tags": [],
327
- "text": "Add the value of the option as string to set it as new selected value"
363
+ "text": "Label text position"
328
364
  },
329
- "attribute": "selected-option",
365
+ "attribute": "label-position",
330
366
  "reflect": false
331
367
  },
332
- "disabled": {
333
- "type": "boolean",
368
+ "modeVariant": {
369
+ "type": "string",
334
370
  "mutable": false,
335
371
  "complexType": {
336
- "original": "boolean",
337
- "resolved": "boolean",
372
+ "original": "'primary' | 'secondary'",
373
+ "resolved": "\"primary\" | \"secondary\"",
338
374
  "references": {}
339
375
  },
340
376
  "required": false,
341
377
  "optional": false,
342
378
  "docs": {
343
379
  "tags": [],
344
- "text": "Set to true for disabled states"
380
+ "text": "Mode variant of the component, based on current mode."
345
381
  },
346
- "attribute": "disabled",
382
+ "attribute": "mode-variant",
347
383
  "reflect": false,
348
- "defaultValue": "false"
384
+ "defaultValue": "null"
349
385
  },
350
- "type": {
386
+ "openDirection": {
351
387
  "type": "string",
352
388
  "mutable": false,
353
389
  "complexType": {
354
- "original": "'default' | 'multiselect' | 'filter'",
355
- "resolved": "\"default\" | \"filter\" | \"multiselect\"",
390
+ "original": "'up' | 'down' | 'auto'",
391
+ "resolved": "\"auto\" | \"down\" | \"up\"",
356
392
  "references": {}
357
393
  },
358
394
  "required": false,
359
395
  "optional": false,
360
396
  "docs": {
361
397
  "tags": [],
362
- "text": "`Controls type of Dropdown."
398
+ "text": "The direction the Dropdown should open, auto if not specified."
363
399
  },
364
- "attribute": "type",
400
+ "attribute": "open-direction",
365
401
  "reflect": false,
366
- "defaultValue": "'default'"
402
+ "defaultValue": "'auto'"
367
403
  },
368
- "size": {
404
+ "placeholder": {
369
405
  "type": "string",
370
406
  "mutable": false,
371
407
  "complexType": {
372
- "original": "'sm' | 'md' | 'lg' | 'small' | 'medium' | 'large'",
373
- "resolved": "\"large\" | \"lg\" | \"md\" | \"medium\" | \"sm\" | \"small\"",
408
+ "original": "string",
409
+ "resolved": "string",
374
410
  "references": {}
375
411
  },
376
412
  "required": false,
377
413
  "optional": false,
378
414
  "docs": {
379
415
  "tags": [],
380
- "text": "Controls the size of the Dropdown.\n'sm', 'md' and 'lg' correct values and 'small', 'medium' and 'large' are deprecated"
416
+ "text": "Placeholder text for the Dropdown."
381
417
  },
382
- "attribute": "size",
383
- "reflect": false,
384
- "defaultValue": "'lg'"
418
+ "attribute": "placeholder",
419
+ "reflect": false
385
420
  },
386
- "inline": {
387
- "type": "boolean",
421
+ "size": {
422
+ "type": "string",
388
423
  "mutable": false,
389
424
  "complexType": {
390
- "original": "boolean",
391
- "resolved": "boolean",
425
+ "original": "'sm' | 'md' | 'lg'",
426
+ "resolved": "\"lg\" | \"md\" | \"sm\"",
392
427
  "references": {}
393
428
  },
394
429
  "required": false,
395
430
  "optional": false,
396
431
  "docs": {
397
432
  "tags": [],
398
- "text": "Set to true to make the width following the label text length"
433
+ "text": "The size of the Dropdown."
399
434
  },
400
- "attribute": "inline",
435
+ "attribute": "size",
401
436
  "reflect": false,
402
- "defaultValue": "false"
437
+ "defaultValue": "'lg'"
403
438
  },
404
- "labelPosition": {
405
- "type": "string",
439
+ "error": {
440
+ "type": "boolean",
406
441
  "mutable": false,
407
442
  "complexType": {
408
- "original": "'no-label' | 'inside' | 'outside'",
409
- "resolved": "\"inside\" | \"no-label\" | \"outside\"",
443
+ "original": "boolean",
444
+ "resolved": "boolean",
410
445
  "references": {}
411
446
  },
412
447
  "required": false,
413
448
  "optional": false,
414
449
  "docs": {
415
450
  "tags": [],
416
- "text": "Controls position of label"
451
+ "text": "Sets the Dropdown in an error state"
417
452
  },
418
- "attribute": "label-position",
453
+ "attribute": "error",
419
454
  "reflect": false,
420
- "defaultValue": "'no-label'"
455
+ "defaultValue": "false"
421
456
  },
422
- "label": {
423
- "type": "string",
457
+ "multiselect": {
458
+ "type": "boolean",
424
459
  "mutable": false,
425
460
  "complexType": {
426
- "original": "string",
427
- "resolved": "string",
461
+ "original": "boolean",
462
+ "resolved": "boolean",
428
463
  "references": {}
429
464
  },
430
465
  "required": false,
431
466
  "optional": false,
432
467
  "docs": {
433
468
  "tags": [],
434
- "text": "Label text for label inside & outside"
469
+ "text": "Enables multiselect in the Dropdown."
435
470
  },
436
- "attribute": "label",
437
- "reflect": false
471
+ "attribute": "multiselect",
472
+ "reflect": false,
473
+ "defaultValue": "false"
438
474
  },
439
- "state": {
475
+ "filter": {
440
476
  "type": "boolean",
441
477
  "mutable": false,
442
478
  "complexType": {
@@ -448,13 +484,13 @@ export class TdsDropdown {
448
484
  "optional": false,
449
485
  "docs": {
450
486
  "tags": [],
451
- "text": "Support `error` state"
487
+ "text": "Enables filtration in the Dropdown."
452
488
  },
453
- "attribute": "state",
489
+ "attribute": "filter",
454
490
  "reflect": false,
455
491
  "defaultValue": "false"
456
492
  },
457
- "helper": {
493
+ "noResultText": {
458
494
  "type": "string",
459
495
  "mutable": false,
460
496
  "complexType": {
@@ -466,75 +502,136 @@ export class TdsDropdown {
466
502
  "optional": false,
467
503
  "docs": {
468
504
  "tags": [],
469
- "text": "Add helper text in the bottom of Dropdown"
505
+ "text": "Text that is displayed if filter is used and there are no options that matches the search."
470
506
  },
471
- "attribute": "helper",
507
+ "attribute": "no-result-text",
472
508
  "reflect": false,
473
- "defaultValue": "''"
509
+ "defaultValue": "'No result'"
474
510
  },
475
- "openDirection": {
511
+ "defaultValue": {
476
512
  "type": "string",
477
513
  "mutable": false,
478
514
  "complexType": {
479
- "original": "'down' | 'up' | 'auto'",
480
- "resolved": "\"auto\" | \"down\" | \"up\"",
515
+ "original": "string",
516
+ "resolved": "string",
481
517
  "references": {}
482
518
  },
483
519
  "required": false,
484
520
  "optional": false,
485
521
  "docs": {
486
522
  "tags": [],
487
- "text": "Direction that the Dropdown will open. Default is auto."
523
+ "text": "Default value selected in the Dropdown."
488
524
  },
489
- "attribute": "open-direction",
490
- "reflect": false,
491
- "defaultValue": "'auto'"
525
+ "attribute": "default-value",
526
+ "reflect": false
527
+ },
528
+ "options": {
529
+ "type": "unknown",
530
+ "mutable": false,
531
+ "complexType": {
532
+ "original": "Array<{ value: string; label: string; disabled: boolean }>",
533
+ "resolved": "{ value: string; label: string; disabled: boolean; }[]",
534
+ "references": {
535
+ "Array": {
536
+ "location": "global"
537
+ }
538
+ }
539
+ },
540
+ "required": false,
541
+ "optional": false,
542
+ "docs": {
543
+ "tags": [],
544
+ "text": "Populate the Dropdown via a JSON array"
545
+ }
492
546
  }
493
547
  };
494
548
  }
495
549
  static get states() {
496
550
  return {
497
- "optionValues": {},
498
- "optionLabels": {},
499
551
  "open": {},
500
- "node": {},
501
- "selectedLabel": {},
502
- "selectedValue": {},
503
- "selectedValuesArray": {},
504
- "selectedLabelsArray": {},
505
- "dropdownUniqueClass": {},
506
- "openUpwards": {},
507
- "dropdownMenuHeight": {},
508
- "dropdownMenuSelector": {},
509
- "listItemIndex": {},
510
- "listItemArray": {},
511
- "listItemObject": {}
552
+ "selection": {},
553
+ "filterResult": {},
554
+ "filterFocus": {}
512
555
  };
513
556
  }
514
557
  static get events() {
515
558
  return [{
516
- "method": "internalTdsSearch",
517
- "name": "internalTdsSearch",
559
+ "method": "tdsChange",
560
+ "name": "tdsChange",
518
561
  "bubbles": true,
519
562
  "cancelable": false,
520
563
  "composed": true,
521
564
  "docs": {
522
- "tags": [{
523
- "name": "internal",
524
- "text": "Search event that is emitted to the tds-dropdown-filter"
525
- }],
526
- "text": ""
565
+ "tags": [],
566
+ "text": "Change event for the Dropdown."
527
567
  },
528
568
  "complexType": {
529
- "original": "any",
530
- "resolved": "any",
569
+ "original": "{\n name: string;\n value: string;\n }",
570
+ "resolved": "{ name: string; value: string; }",
531
571
  "references": {}
532
572
  }
573
+ }, {
574
+ "method": "tdsFocus",
575
+ "name": "tdsFocus",
576
+ "bubbles": true,
577
+ "cancelable": false,
578
+ "composed": true,
579
+ "docs": {
580
+ "tags": [],
581
+ "text": "Focus event for the Dropdown."
582
+ },
583
+ "complexType": {
584
+ "original": "FocusEvent",
585
+ "resolved": "FocusEvent",
586
+ "references": {
587
+ "FocusEvent": {
588
+ "location": "global"
589
+ }
590
+ }
591
+ }
592
+ }, {
593
+ "method": "tdsBlur",
594
+ "name": "tdsBlur",
595
+ "bubbles": true,
596
+ "cancelable": false,
597
+ "composed": true,
598
+ "docs": {
599
+ "tags": [],
600
+ "text": "Blur event for the Dropdown."
601
+ },
602
+ "complexType": {
603
+ "original": "FocusEvent",
604
+ "resolved": "FocusEvent",
605
+ "references": {
606
+ "FocusEvent": {
607
+ "location": "global"
608
+ }
609
+ }
610
+ }
611
+ }, {
612
+ "method": "tdsInput",
613
+ "name": "tdsInput",
614
+ "bubbles": true,
615
+ "cancelable": false,
616
+ "composed": true,
617
+ "docs": {
618
+ "tags": [],
619
+ "text": "Input event for the Dropdown."
620
+ },
621
+ "complexType": {
622
+ "original": "InputEvent",
623
+ "resolved": "InputEvent",
624
+ "references": {
625
+ "InputEvent": {
626
+ "location": "global"
627
+ }
628
+ }
629
+ }
533
630
  }];
534
631
  }
535
632
  static get methods() {
536
633
  return {
537
- "resetOption": {
634
+ "reset": {
538
635
  "complexType": {
539
636
  "signature": "() => Promise<void>",
540
637
  "parameters": [],
@@ -546,7 +643,67 @@ export class TdsDropdown {
546
643
  "return": "Promise<void>"
547
644
  },
548
645
  "docs": {
549
- "text": "",
646
+ "text": "Method that resets the Dropdown.",
647
+ "tags": []
648
+ }
649
+ },
650
+ "setValue": {
651
+ "complexType": {
652
+ "signature": "(newValue: string, newValueLabel: string) => Promise<{ value: string; label: string; }[]>",
653
+ "parameters": [{
654
+ "tags": [],
655
+ "text": ""
656
+ }, {
657
+ "tags": [],
658
+ "text": ""
659
+ }],
660
+ "references": {
661
+ "Promise": {
662
+ "location": "global"
663
+ },
664
+ "HTMLTdsDropdownOptionElement": {
665
+ "location": "global"
666
+ }
667
+ },
668
+ "return": "Promise<{ value: string; label: string; }[]>"
669
+ },
670
+ "docs": {
671
+ "text": "Method for setting the value of the Dropdown.",
672
+ "tags": []
673
+ }
674
+ },
675
+ "removeValue": {
676
+ "complexType": {
677
+ "signature": "(oldValue: string) => Promise<{ value: string; label: string; }[]>",
678
+ "parameters": [{
679
+ "tags": [],
680
+ "text": ""
681
+ }],
682
+ "references": {
683
+ "Promise": {
684
+ "location": "global"
685
+ }
686
+ },
687
+ "return": "Promise<{ value: string; label: string; }[]>"
688
+ },
689
+ "docs": {
690
+ "text": "Method for removing a selected value in the Dropdown.",
691
+ "tags": []
692
+ }
693
+ },
694
+ "close": {
695
+ "complexType": {
696
+ "signature": "() => Promise<void>",
697
+ "parameters": [],
698
+ "references": {
699
+ "Promise": {
700
+ "location": "global"
701
+ }
702
+ },
703
+ "return": "Promise<void>"
704
+ },
705
+ "docs": {
706
+ "text": "Method for closing the Dropdown.",
550
707
  "tags": []
551
708
  }
552
709
  }
@@ -555,26 +712,20 @@ export class TdsDropdown {
555
712
  static get elementRef() { return "host"; }
556
713
  static get watchers() {
557
714
  return [{
558
- "propName": "selectedOption",
559
- "methodName": "changeSelectedOption"
715
+ "propName": "open",
716
+ "methodName": "handleOpenState"
560
717
  }];
561
718
  }
562
719
  static get listeners() {
563
720
  return [{
564
- "name": "click",
565
- "method": "handleDocClick",
566
- "target": "document",
721
+ "name": "mousedown",
722
+ "method": "onAnyClick",
723
+ "target": "window",
567
724
  "capture": false,
568
- "passive": false
725
+ "passive": true
569
726
  }, {
570
727
  "name": "keydown",
571
- "method": "keyListener",
572
- "target": undefined,
573
- "capture": false,
574
- "passive": false
575
- }, {
576
- "name": "internalTdsSelect",
577
- "method": "selectOptionHandler",
728
+ "method": "onKeyDown",
578
729
  "target": undefined,
579
730
  "capture": false,
580
731
  "passive": false