@scania/tegel 0.0.9 → 0.0.10

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