@statistikzh/leu 0.14.2 → 0.14.4

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/.eslintrc.json +23 -4
  2. package/.github/workflows/ci.yml +3 -0
  3. package/.github/workflows/release-please.yml +0 -1
  4. package/.prettierignore +1 -1
  5. package/.release-please-manifest.json +3 -0
  6. package/.storybook/{main.js → main.ts} +18 -2
  7. package/.storybook/{theme.js → theme.ts} +1 -0
  8. package/CHANGELOG.md +16 -0
  9. package/custom-elements-manifest.config.js +2 -2
  10. package/dist/Accordion.d.ts +32 -11
  11. package/dist/Accordion.js +96 -68
  12. package/dist/Button.d.ts +84 -33
  13. package/dist/Button.js +116 -136
  14. package/dist/ButtonGroup.d.ts +15 -10
  15. package/dist/ButtonGroup.js +65 -72
  16. package/dist/Checkbox.d.ts +41 -8
  17. package/dist/Checkbox.js +33 -45
  18. package/dist/CheckboxGroup.d.ts +21 -8
  19. package/dist/CheckboxGroup.js +31 -35
  20. package/dist/Chip.d.ts +23 -4
  21. package/dist/Chip.js +13 -17
  22. package/dist/ChipGroup.d.ts +43 -17
  23. package/dist/ChipGroup.js +87 -113
  24. package/dist/ChipLink.d.ts +28 -10
  25. package/dist/ChipLink.js +17 -24
  26. package/dist/ChipRemovable.d.ts +25 -6
  27. package/dist/ChipRemovable.js +32 -36
  28. package/dist/ChipSelectable.d.ts +41 -23
  29. package/dist/ChipSelectable.js +55 -69
  30. package/dist/Dialog.d.ts +39 -11
  31. package/dist/Dialog.js +48 -55
  32. package/dist/Dropdown.d.ts +44 -9
  33. package/dist/Dropdown.js +89 -96
  34. package/dist/Icon.d.ts +16 -9
  35. package/dist/Icon.js +117 -122
  36. package/dist/Input.d.ts +122 -34
  37. package/dist/Input.js +262 -342
  38. package/dist/LeuElement-x8UlIDDl.js +42 -0
  39. package/dist/LeuElement.d-BevHqLUu.d.ts +10 -0
  40. package/dist/Menu.d.ts +29 -10
  41. package/dist/Menu.js +111 -110
  42. package/dist/MenuItem.d.ts +69 -19
  43. package/dist/MenuItem.js +93 -109
  44. package/dist/Pagination.d.ts +46 -16
  45. package/dist/Pagination.js +101 -116
  46. package/dist/Popup.d.ts +55 -21
  47. package/dist/Popup.js +149 -178
  48. package/dist/Radio.d.ts +37 -8
  49. package/dist/Radio.js +30 -42
  50. package/dist/RadioGroup.d.ts +25 -7
  51. package/dist/RadioGroup.js +123 -128
  52. package/dist/Range.d.ts +62 -23
  53. package/dist/Range.js +154 -180
  54. package/dist/ScrollTop.d.ts +25 -14
  55. package/dist/ScrollTop.js +71 -75
  56. package/dist/Select.d.ts +55 -38
  57. package/dist/Select.js +310 -322
  58. package/dist/Spinner.d.ts +9 -4
  59. package/dist/Spinner.js +5 -5
  60. package/dist/Table.d.ts +61 -31
  61. package/dist/Table.js +160 -179
  62. package/dist/VisuallyHidden.d.ts +9 -4
  63. package/dist/VisuallyHidden.js +5 -5
  64. package/dist/components/accordion/Accordion.d.ts +49 -0
  65. package/dist/components/accordion/Accordion.d.ts.map +1 -0
  66. package/dist/components/accordion/leu-accordion.d.ts +8 -0
  67. package/dist/components/accordion/leu-accordion.d.ts.map +1 -0
  68. package/dist/components/accordion/stories/accordion.stories.d.ts +26 -0
  69. package/dist/components/accordion/stories/accordion.stories.d.ts.map +1 -0
  70. package/dist/components/accordion/test/accordion.test.d.ts +2 -0
  71. package/dist/components/accordion/test/accordion.test.d.ts.map +1 -0
  72. package/dist/components/button/Button.d.ts +93 -0
  73. package/dist/components/button/Button.d.ts.map +1 -0
  74. package/dist/components/button/leu-button.d.ts +8 -0
  75. package/dist/components/button/leu-button.d.ts.map +1 -0
  76. package/dist/components/button/stories/button.stories.d.ts +19 -0
  77. package/dist/components/button/stories/button.stories.d.ts.map +1 -0
  78. package/dist/components/button/test/button.test.d.ts +3 -0
  79. package/dist/components/button/test/button.test.d.ts.map +1 -0
  80. package/dist/components/button-group/ButtonGroup.d.ts +25 -0
  81. package/dist/components/button-group/ButtonGroup.d.ts.map +1 -0
  82. package/dist/components/button-group/leu-button-group.d.ts +8 -0
  83. package/dist/components/button-group/leu-button-group.d.ts.map +1 -0
  84. package/dist/components/button-group/stories/button-group.stories.d.ts +15 -0
  85. package/dist/components/button-group/stories/button-group.stories.d.ts.map +1 -0
  86. package/dist/components/button-group/test/button-group.test.d.ts +3 -0
  87. package/dist/components/button-group/test/button-group.test.d.ts.map +1 -0
  88. package/dist/components/checkbox/Checkbox.d.ts +43 -0
  89. package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
  90. package/dist/components/checkbox/CheckboxGroup.d.ts +23 -0
  91. package/dist/components/checkbox/CheckboxGroup.d.ts.map +1 -0
  92. package/dist/components/checkbox/leu-checkbox-group.d.ts +8 -0
  93. package/dist/components/checkbox/leu-checkbox-group.d.ts.map +1 -0
  94. package/dist/components/checkbox/leu-checkbox.d.ts +8 -0
  95. package/dist/components/checkbox/leu-checkbox.d.ts.map +1 -0
  96. package/dist/components/checkbox/stories/checkbox-group.stories.d.ts +29 -0
  97. package/dist/components/checkbox/stories/checkbox-group.stories.d.ts.map +1 -0
  98. package/dist/components/checkbox/stories/checkbox.stories.d.ts +22 -0
  99. package/dist/components/checkbox/stories/checkbox.stories.d.ts.map +1 -0
  100. package/dist/components/checkbox/test/checkbox-group.test.d.ts +3 -0
  101. package/dist/components/checkbox/test/checkbox-group.test.d.ts.map +1 -0
  102. package/dist/components/checkbox/test/checkbox.test.d.ts +2 -0
  103. package/dist/components/checkbox/test/checkbox.test.d.ts.map +1 -0
  104. package/dist/components/chip/Chip.d.ts +21 -0
  105. package/dist/components/chip/Chip.d.ts.map +1 -0
  106. package/dist/components/chip/ChipGroup.d.ts +58 -0
  107. package/dist/components/chip/ChipGroup.d.ts.map +1 -0
  108. package/dist/components/chip/ChipLink.d.ts +29 -0
  109. package/dist/components/chip/ChipLink.d.ts.map +1 -0
  110. package/dist/components/chip/ChipRemovable.d.ts +32 -0
  111. package/dist/components/chip/ChipRemovable.d.ts.map +1 -0
  112. package/dist/components/chip/ChipSelectable.d.ts +51 -0
  113. package/dist/components/chip/ChipSelectable.d.ts.map +1 -0
  114. package/dist/components/chip/exports.d.ts +5 -0
  115. package/dist/components/chip/exports.d.ts.map +1 -0
  116. package/dist/components/chip/leu-chip-group.d.ts +8 -0
  117. package/dist/components/chip/leu-chip-group.d.ts.map +1 -0
  118. package/dist/components/chip/leu-chip-link.d.ts +8 -0
  119. package/dist/components/chip/leu-chip-link.d.ts.map +1 -0
  120. package/dist/components/chip/leu-chip-removable.d.ts +8 -0
  121. package/dist/components/chip/leu-chip-removable.d.ts.map +1 -0
  122. package/dist/components/chip/leu-chip-selectable.d.ts +8 -0
  123. package/dist/components/chip/leu-chip-selectable.d.ts.map +1 -0
  124. package/dist/components/chip/stories/chip-group.stories.d.ts +40 -0
  125. package/dist/components/chip/stories/chip-group.stories.d.ts.map +1 -0
  126. package/dist/components/chip/stories/chip-link.stories.d.ts +27 -0
  127. package/dist/components/chip/stories/chip-link.stories.d.ts.map +1 -0
  128. package/dist/components/chip/stories/chip-removable.stories.d.ts +21 -0
  129. package/dist/components/chip/stories/chip-removable.stories.d.ts.map +1 -0
  130. package/dist/components/chip/stories/chip-selectable.stories.d.ts +35 -0
  131. package/dist/components/chip/stories/chip-selectable.stories.d.ts.map +1 -0
  132. package/dist/components/chip/test/chip-group.test.d.ts +4 -0
  133. package/dist/components/chip/test/chip-group.test.d.ts.map +1 -0
  134. package/dist/components/chip/test/chip-link.test.d.ts +2 -0
  135. package/dist/components/chip/test/chip-link.test.d.ts.map +1 -0
  136. package/dist/components/chip/test/chip-removable.test.d.ts +2 -0
  137. package/dist/components/chip/test/chip-removable.test.d.ts.map +1 -0
  138. package/dist/components/chip/test/chip-selectable.test.d.ts +2 -0
  139. package/dist/components/chip/test/chip-selectable.test.d.ts.map +1 -0
  140. package/dist/components/chip/test/chip.test.d.ts +2 -0
  141. package/dist/components/chip/test/chip.test.d.ts.map +1 -0
  142. package/dist/components/dialog/Dialog.d.ts +41 -0
  143. package/dist/components/dialog/Dialog.d.ts.map +1 -0
  144. package/dist/components/dialog/leu-dialog.d.ts +8 -0
  145. package/dist/components/dialog/leu-dialog.d.ts.map +1 -0
  146. package/dist/components/dialog/stories/dialog.stories.d.ts +19 -0
  147. package/dist/components/dialog/stories/dialog.stories.d.ts.map +1 -0
  148. package/dist/components/dialog/test/dialog.test.d.ts +2 -0
  149. package/dist/components/dialog/test/dialog.test.d.ts.map +1 -0
  150. package/dist/components/dropdown/Dropdown.d.ts +49 -0
  151. package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
  152. package/dist/components/dropdown/leu-dropdown.d.ts +8 -0
  153. package/dist/components/dropdown/leu-dropdown.d.ts.map +1 -0
  154. package/dist/components/dropdown/stories/dropdown.stories.d.ts +25 -0
  155. package/dist/components/dropdown/stories/dropdown.stories.d.ts.map +1 -0
  156. package/dist/components/dropdown/test/dropdown.test.d.ts +2 -0
  157. package/dist/components/dropdown/test/dropdown.test.d.ts.map +1 -0
  158. package/dist/components/icon/Icon.d.ts +23 -0
  159. package/dist/components/icon/Icon.d.ts.map +1 -0
  160. package/dist/components/icon/leu-icon.d.ts +8 -0
  161. package/dist/components/icon/leu-icon.d.ts.map +1 -0
  162. package/dist/components/icon/paths.d.ts +101 -0
  163. package/dist/components/icon/paths.d.ts.map +1 -0
  164. package/dist/components/icon/stories/icon.stories.d.ts +22 -0
  165. package/dist/components/icon/stories/icon.stories.d.ts.map +1 -0
  166. package/dist/components/icon/test/icon.test.d.ts +2 -0
  167. package/dist/components/icon/test/icon.test.d.ts.map +1 -0
  168. package/dist/components/input/Input.d.ts +239 -0
  169. package/dist/components/input/Input.d.ts.map +1 -0
  170. package/dist/components/input/leu-input.d.ts +8 -0
  171. package/dist/components/input/leu-input.d.ts.map +1 -0
  172. package/dist/components/input/stories/input.stories.d.ts +35 -0
  173. package/dist/components/input/stories/input.stories.d.ts.map +1 -0
  174. package/dist/components/input/test/input.test.d.ts +2 -0
  175. package/dist/components/input/test/input.test.d.ts.map +1 -0
  176. package/dist/components/menu/Menu.d.ts +44 -0
  177. package/dist/components/menu/Menu.d.ts.map +1 -0
  178. package/dist/components/menu/MenuItem.d.ts +88 -0
  179. package/dist/components/menu/MenuItem.d.ts.map +1 -0
  180. package/dist/components/menu/leu-menu-item.d.ts +8 -0
  181. package/dist/components/menu/leu-menu-item.d.ts.map +1 -0
  182. package/dist/components/menu/leu-menu.d.ts +8 -0
  183. package/dist/components/menu/leu-menu.d.ts.map +1 -0
  184. package/dist/components/menu/stories/menu-item.stories.d.ts +24 -0
  185. package/dist/components/menu/stories/menu-item.stories.d.ts.map +1 -0
  186. package/dist/components/menu/stories/menu.stories.d.ts +26 -0
  187. package/dist/components/menu/stories/menu.stories.d.ts.map +1 -0
  188. package/dist/components/menu/test/menu-item.test.d.ts +3 -0
  189. package/dist/components/menu/test/menu-item.test.d.ts.map +1 -0
  190. package/dist/components/menu/test/menu.test.d.ts +4 -0
  191. package/dist/components/menu/test/menu.test.d.ts.map +1 -0
  192. package/dist/components/pagination/Pagination.d.ts +59 -0
  193. package/dist/components/pagination/Pagination.d.ts.map +1 -0
  194. package/dist/components/pagination/leu-pagination.d.ts +8 -0
  195. package/dist/components/pagination/leu-pagination.d.ts.map +1 -0
  196. package/dist/components/pagination/stories/pagination.stories.d.ts +17 -0
  197. package/dist/components/pagination/stories/pagination.stories.d.ts.map +1 -0
  198. package/dist/components/pagination/test/pagination.test.d.ts +2 -0
  199. package/dist/components/pagination/test/pagination.test.d.ts.map +1 -0
  200. package/dist/components/popup/Popup.d.ts +66 -0
  201. package/dist/components/popup/Popup.d.ts.map +1 -0
  202. package/dist/components/popup/leu-popup.d.ts +8 -0
  203. package/dist/components/popup/leu-popup.d.ts.map +1 -0
  204. package/dist/components/popup/stories/popup.stories.d.ts +17 -0
  205. package/dist/components/popup/stories/popup.stories.d.ts.map +1 -0
  206. package/dist/components/popup/test/popup.test.d.ts +2 -0
  207. package/dist/components/popup/test/popup.test.d.ts.map +1 -0
  208. package/dist/components/radio/Radio.d.ts +39 -0
  209. package/dist/components/radio/Radio.d.ts.map +1 -0
  210. package/dist/components/radio/RadioGroup.d.ts +34 -0
  211. package/dist/components/radio/RadioGroup.d.ts.map +1 -0
  212. package/dist/components/radio/leu-radio-group.d.ts +8 -0
  213. package/dist/components/radio/leu-radio-group.d.ts.map +1 -0
  214. package/dist/components/radio/leu-radio.d.ts +8 -0
  215. package/dist/components/radio/leu-radio.d.ts.map +1 -0
  216. package/dist/components/radio/stories/radio-group.stories.d.ts +29 -0
  217. package/dist/components/radio/stories/radio-group.stories.d.ts.map +1 -0
  218. package/dist/components/radio/stories/radio.stories.d.ts +22 -0
  219. package/dist/components/radio/stories/radio.stories.d.ts.map +1 -0
  220. package/dist/components/radio/test/radio-group.test.d.ts +3 -0
  221. package/dist/components/radio/test/radio-group.test.d.ts.map +1 -0
  222. package/dist/components/radio/test/radio.test.d.ts +2 -0
  223. package/dist/components/radio/test/radio.test.d.ts.map +1 -0
  224. package/dist/components/range/Range.d.ts +95 -0
  225. package/dist/components/range/Range.d.ts.map +1 -0
  226. package/dist/components/range/leu-range.d.ts +8 -0
  227. package/dist/components/range/leu-range.d.ts.map +1 -0
  228. package/dist/components/range/stories/range-slider.stories.d.ts +26 -0
  229. package/dist/components/range/stories/range-slider.stories.d.ts.map +1 -0
  230. package/dist/components/range/test/range.test.d.ts +2 -0
  231. package/dist/components/range/test/range.test.d.ts.map +1 -0
  232. package/dist/components/scroll-top/ScrollTop.d.ts +25 -0
  233. package/dist/components/scroll-top/ScrollTop.d.ts.map +1 -0
  234. package/dist/components/scroll-top/leu-scroll-top.d.ts +8 -0
  235. package/dist/components/scroll-top/leu-scroll-top.d.ts.map +1 -0
  236. package/dist/components/scroll-top/stories/scroll-top.stories.d.ts +8 -0
  237. package/dist/components/scroll-top/stories/scroll-top.stories.d.ts.map +1 -0
  238. package/dist/components/scroll-top/test/scroll-top.test.d.ts +2 -0
  239. package/dist/components/scroll-top/test/scroll-top.test.d.ts.map +1 -0
  240. package/dist/components/select/Select.d.ts +145 -0
  241. package/dist/components/select/Select.d.ts.map +1 -0
  242. package/dist/components/select/leu-select.d.ts +8 -0
  243. package/dist/components/select/leu-select.d.ts.map +1 -0
  244. package/dist/components/select/stories/select.stories.d.ts +23 -0
  245. package/dist/components/select/stories/select.stories.d.ts.map +1 -0
  246. package/dist/components/select/test/fixtures.d.ts +2 -0
  247. package/dist/components/select/test/fixtures.d.ts.map +1 -0
  248. package/dist/components/select/test/select.test.d.ts +3 -0
  249. package/dist/components/select/test/select.test.d.ts.map +1 -0
  250. package/dist/components/spinner/Spinner.d.ts +10 -0
  251. package/dist/components/spinner/Spinner.d.ts.map +1 -0
  252. package/dist/components/spinner/leu-spinner.d.ts +8 -0
  253. package/dist/components/spinner/leu-spinner.d.ts.map +1 -0
  254. package/dist/components/spinner/stories/spinner.stories.d.ts +16 -0
  255. package/dist/components/spinner/stories/spinner.stories.d.ts.map +1 -0
  256. package/dist/components/spinner/test/spinner.test.d.ts +2 -0
  257. package/dist/components/spinner/test/spinner.test.d.ts.map +1 -0
  258. package/dist/components/table/Table.d.ts +65 -0
  259. package/dist/components/table/Table.d.ts.map +1 -0
  260. package/dist/components/table/leu-table.d.ts +8 -0
  261. package/dist/components/table/leu-table.d.ts.map +1 -0
  262. package/dist/components/table/stories/table.stories.d.ts +15 -0
  263. package/dist/components/table/stories/table.stories.d.ts.map +1 -0
  264. package/dist/components/table/test/table.test.d.ts +2 -0
  265. package/dist/components/table/test/table.test.d.ts.map +1 -0
  266. package/dist/components/visually-hidden/VisuallyHidden.d.ts +9 -0
  267. package/dist/components/visually-hidden/VisuallyHidden.d.ts.map +1 -0
  268. package/dist/components/visually-hidden/leu-visually-hidden.d.ts +8 -0
  269. package/dist/components/visually-hidden/leu-visually-hidden.d.ts.map +1 -0
  270. package/dist/components/visually-hidden/stories/visually-hidden.stories.d.ts +13 -0
  271. package/dist/components/visually-hidden/stories/visually-hidden.stories.d.ts.map +1 -0
  272. package/dist/components/visually-hidden/test/visually-hidden.test.d.ts +2 -0
  273. package/dist/components/visually-hidden/test/visually-hidden.test.d.ts.map +1 -0
  274. package/dist/hasSlotController-Bm2tipvG.js +53 -0
  275. package/dist/hasSlotController.d-emXwVXWF.d.ts +23 -0
  276. package/dist/index.d.ts +17 -20
  277. package/dist/index.d.ts.map +1 -1
  278. package/dist/index.js +3 -2
  279. package/dist/leu-accordion.d.ts +12 -2
  280. package/dist/leu-accordion.js +2 -1
  281. package/dist/leu-button-group.d.ts +12 -2
  282. package/dist/leu-button-group.js +1 -1
  283. package/dist/leu-button.d.ts +14 -2
  284. package/dist/leu-button.js +2 -2
  285. package/dist/leu-checkbox-group.d.ts +12 -2
  286. package/dist/leu-checkbox-group.js +1 -1
  287. package/dist/leu-checkbox.d.ts +13 -2
  288. package/dist/leu-checkbox.js +1 -1
  289. package/dist/leu-chip-group.d.ts +12 -2
  290. package/dist/leu-chip-group.js +2 -2
  291. package/dist/leu-chip-link.d.ts +13 -2
  292. package/dist/leu-chip-link.js +1 -1
  293. package/dist/leu-chip-removable.d.ts +14 -2
  294. package/dist/leu-chip-removable.js +1 -1
  295. package/dist/leu-chip-selectable.d.ts +13 -2
  296. package/dist/leu-chip-selectable.js +1 -1
  297. package/dist/leu-dialog.d.ts +14 -2
  298. package/dist/leu-dialog.js +2 -2
  299. package/dist/leu-dropdown.d.ts +18 -2
  300. package/dist/leu-dropdown.js +2 -2
  301. package/dist/leu-icon.d.ts +12 -2
  302. package/dist/leu-icon.js +1 -1
  303. package/dist/leu-input.d.ts +13 -2
  304. package/dist/leu-input.js +1 -1
  305. package/dist/leu-menu-item.d.ts +13 -2
  306. package/dist/leu-menu-item.js +1 -1
  307. package/dist/leu-menu.d.ts +14 -2
  308. package/dist/leu-menu.js +1 -1
  309. package/dist/leu-pagination.d.ts +16 -2
  310. package/dist/leu-pagination.js +2 -2
  311. package/dist/leu-popup.d.ts +12 -2
  312. package/dist/leu-popup.js +1 -1
  313. package/dist/leu-radio-group.d.ts +12 -2
  314. package/dist/leu-radio-group.js +1 -1
  315. package/dist/leu-radio.d.ts +12 -2
  316. package/dist/leu-radio.js +1 -1
  317. package/dist/leu-range.d.ts +12 -2
  318. package/dist/leu-range.js +1 -1
  319. package/dist/leu-scroll-top.d.ts +15 -2
  320. package/dist/leu-scroll-top.js +2 -2
  321. package/dist/leu-select.d.ts +19 -2
  322. package/dist/leu-select.js +2 -2
  323. package/dist/leu-spinner.d.ts +12 -2
  324. package/dist/leu-spinner.js +1 -1
  325. package/dist/leu-table.d.ts +17 -2
  326. package/dist/leu-table.js +2 -2
  327. package/dist/leu-visually-hidden.d.ts +12 -2
  328. package/dist/leu-visually-hidden.js +1 -1
  329. package/dist/lib/LeuElement.d.ts +8 -0
  330. package/dist/lib/LeuElement.d.ts.map +1 -0
  331. package/dist/lib/a11y.d.ts +11 -0
  332. package/dist/lib/a11y.d.ts.map +1 -0
  333. package/dist/lib/hasSlotController.d.ts +20 -0
  334. package/dist/lib/hasSlotController.d.ts.map +1 -0
  335. package/dist/lib/utils.d.ts +16 -0
  336. package/dist/lib/utils.d.ts.map +1 -0
  337. package/dist/styles/style.stories.d.ts +6 -0
  338. package/dist/styles/style.stories.d.ts.map +1 -0
  339. package/dist/vscode.html-custom-data.json +1 -1
  340. package/dist/vue/index.d.ts +1 -3
  341. package/dist/web-types.json +4 -5
  342. package/package.json +20 -13
  343. package/release-please-config.json +10 -0
  344. package/rollup.config.js +55 -25
  345. package/scripts/generate-component/generate.js +1 -1
  346. package/scripts/generate-component/templates/{[Name].js → [Name].ts} +3 -3
  347. package/src/components/accordion/{Accordion.js → Accordion.ts} +26 -21
  348. package/src/components/accordion/{leu-accordion.js → leu-accordion.ts} +6 -0
  349. package/src/components/accordion/stories/{accordion.stories.js → accordion.stories.ts} +10 -8
  350. package/src/components/button/{Button.js → Button.ts} +0 -1
  351. package/src/components/button/{leu-button.js → leu-button.ts} +6 -0
  352. package/src/components/button-group/{ButtonGroup.js → ButtonGroup.ts} +4 -8
  353. package/src/components/button-group/{leu-button-group.js → leu-button-group.ts} +6 -0
  354. package/src/components/checkbox/{Checkbox.js → Checkbox.ts} +0 -1
  355. package/src/components/checkbox/{CheckboxGroup.js → CheckboxGroup.ts} +0 -1
  356. package/src/components/checkbox/{leu-checkbox-group.js → leu-checkbox-group.ts} +6 -0
  357. package/src/components/checkbox/{leu-checkbox.js → leu-checkbox.ts} +6 -0
  358. package/src/components/chip/{Chip.js → Chip.ts} +0 -1
  359. package/src/components/chip/{ChipGroup.js → ChipGroup.ts} +0 -1
  360. package/src/components/chip/{leu-chip-group.js → leu-chip-group.ts} +6 -0
  361. package/src/components/chip/{leu-chip-link.js → leu-chip-link.ts} +6 -0
  362. package/src/components/chip/{leu-chip-removable.js → leu-chip-removable.ts} +6 -0
  363. package/src/components/chip/{leu-chip-selectable.js → leu-chip-selectable.ts} +6 -0
  364. package/src/components/dialog/{Dialog.js → Dialog.ts} +0 -1
  365. package/src/components/dialog/{leu-dialog.js → leu-dialog.ts} +6 -0
  366. package/src/components/dropdown/{Dropdown.js → Dropdown.ts} +0 -1
  367. package/src/components/dropdown/{leu-dropdown.js → leu-dropdown.ts} +6 -0
  368. package/src/components/icon/{Icon.js → Icon.ts} +0 -1
  369. package/src/components/icon/{leu-icon.js → leu-icon.ts} +6 -0
  370. package/src/components/input/{Input.js → Input.ts} +0 -1
  371. package/src/components/input/{leu-input.js → leu-input.ts} +6 -0
  372. package/src/components/menu/{Menu.js → Menu.ts} +2 -2
  373. package/src/components/menu/{MenuItem.js → MenuItem.ts} +0 -1
  374. package/src/components/menu/{leu-menu-item.js → leu-menu-item.ts} +6 -0
  375. package/src/components/menu/{leu-menu.js → leu-menu.ts} +6 -0
  376. package/src/components/pagination/{Pagination.js → Pagination.ts} +0 -1
  377. package/src/components/pagination/{leu-pagination.js → leu-pagination.ts} +6 -0
  378. package/src/components/popup/{Popup.js → Popup.ts} +0 -1
  379. package/src/components/popup/{leu-popup.js → leu-popup.ts} +6 -0
  380. package/src/components/radio/{Radio.js → Radio.ts} +0 -1
  381. package/src/components/radio/{RadioGroup.js → RadioGroup.ts} +0 -1
  382. package/src/components/radio/{leu-radio-group.js → leu-radio-group.ts} +6 -0
  383. package/src/components/radio/{leu-radio.js → leu-radio.ts} +6 -0
  384. package/src/components/range/{leu-range.js → leu-range.ts} +6 -0
  385. package/src/components/scroll-top/{ScrollTop.js → ScrollTop.ts} +0 -1
  386. package/src/components/scroll-top/{leu-scroll-top.js → leu-scroll-top.ts} +6 -0
  387. package/src/components/select/{Select.js → Select.ts} +18 -4
  388. package/src/components/select/{leu-select.js → leu-select.ts} +6 -0
  389. package/src/components/select/test/{fixtures.js → fixtures.ts} +1 -1
  390. package/src/components/select/test/{select.test.js → select.test.ts} +92 -0
  391. package/src/components/spinner/{leu-spinner.js → leu-spinner.ts} +6 -0
  392. package/src/components/table/{Table.js → Table.ts} +0 -1
  393. package/src/components/table/{leu-table.js → leu-table.ts} +6 -0
  394. package/src/components/visually-hidden/{VisuallyHidden.js → VisuallyHidden.ts} +0 -1
  395. package/src/components/visually-hidden/{leu-visually-hidden.js → leu-visually-hidden.ts} +6 -0
  396. package/src/docs/theme.mdx +14 -10
  397. package/src/global.d.ts +11 -0
  398. package/src/index.ts +17 -0
  399. package/src/lib/{LeuElement.js → LeuElement.ts} +15 -6
  400. package/src/lib/{a11y.js → a11y.ts} +2 -2
  401. package/src/lib/{hasSlotController.js → hasSlotController.ts} +12 -25
  402. package/stylelint.config.mjs +1 -1
  403. package/tsconfig.build.json +6 -4
  404. package/tsconfig.json +7 -10
  405. package/web-dev-server.config.mjs +11 -1
  406. package/web-test-runner.config.mjs +11 -2
  407. package/babel.config.json +0 -3
  408. package/dist/Accordion.d.ts.map +0 -1
  409. package/dist/Button.d.ts.map +0 -1
  410. package/dist/ButtonGroup.d.ts.map +0 -1
  411. package/dist/Checkbox.d.ts.map +0 -1
  412. package/dist/CheckboxGroup.d.ts.map +0 -1
  413. package/dist/Chip.d.ts.map +0 -1
  414. package/dist/ChipGroup.d.ts.map +0 -1
  415. package/dist/ChipLink.d.ts.map +0 -1
  416. package/dist/ChipRemovable.d.ts.map +0 -1
  417. package/dist/ChipSelectable.d.ts.map +0 -1
  418. package/dist/Dialog.d.ts.map +0 -1
  419. package/dist/Dropdown.d.ts.map +0 -1
  420. package/dist/Icon.d.ts.map +0 -1
  421. package/dist/Input.d.ts.map +0 -1
  422. package/dist/LeuElement-BI1CxItv.d.ts +0 -7
  423. package/dist/LeuElement-BI1CxItv.d.ts.map +0 -1
  424. package/dist/LeuElement-BI1CxItv.js +0 -70
  425. package/dist/Menu.d.ts.map +0 -1
  426. package/dist/MenuItem.d.ts.map +0 -1
  427. package/dist/Pagination.d.ts.map +0 -1
  428. package/dist/Popup.d.ts.map +0 -1
  429. package/dist/Radio.d.ts.map +0 -1
  430. package/dist/RadioGroup.d.ts.map +0 -1
  431. package/dist/Range.d.ts.map +0 -1
  432. package/dist/ScrollTop.d.ts.map +0 -1
  433. package/dist/Select.d.ts.map +0 -1
  434. package/dist/Spinner.d.ts.map +0 -1
  435. package/dist/Table.d.ts.map +0 -1
  436. package/dist/VisuallyHidden.d.ts.map +0 -1
  437. package/dist/hasSlotController-CCPfIEw1.d.ts +0 -38
  438. package/dist/hasSlotController-CCPfIEw1.d.ts.map +0 -1
  439. package/dist/hasSlotController-CCPfIEw1.js +0 -75
  440. package/dist/leu-accordion.d.ts.map +0 -1
  441. package/dist/leu-button-group.d.ts.map +0 -1
  442. package/dist/leu-button.d.ts.map +0 -1
  443. package/dist/leu-checkbox-group.d.ts.map +0 -1
  444. package/dist/leu-checkbox.d.ts.map +0 -1
  445. package/dist/leu-chip-group.d.ts.map +0 -1
  446. package/dist/leu-chip-link.d.ts.map +0 -1
  447. package/dist/leu-chip-removable.d.ts.map +0 -1
  448. package/dist/leu-chip-selectable.d.ts.map +0 -1
  449. package/dist/leu-dialog.d.ts.map +0 -1
  450. package/dist/leu-dropdown.d.ts.map +0 -1
  451. package/dist/leu-icon.d.ts.map +0 -1
  452. package/dist/leu-input.d.ts.map +0 -1
  453. package/dist/leu-menu-item.d.ts.map +0 -1
  454. package/dist/leu-menu.d.ts.map +0 -1
  455. package/dist/leu-pagination.d.ts.map +0 -1
  456. package/dist/leu-popup.d.ts.map +0 -1
  457. package/dist/leu-radio-group.d.ts.map +0 -1
  458. package/dist/leu-radio.d.ts.map +0 -1
  459. package/dist/leu-range.d.ts.map +0 -1
  460. package/dist/leu-scroll-top.d.ts.map +0 -1
  461. package/dist/leu-select.d.ts.map +0 -1
  462. package/dist/leu-spinner.d.ts.map +0 -1
  463. package/dist/leu-table.d.ts.map +0 -1
  464. package/dist/leu-visually-hidden.d.ts.map +0 -1
  465. package/index.js +0 -17
  466. /package/.storybook/{manager.js → manager.ts} +0 -0
  467. /package/.storybook/{preview.js → preview.ts} +0 -0
  468. /package/scripts/generate-component/templates/{[namespace]-[name].js → [namespace]-[name].ts} +0 -0
  469. /package/scripts/generate-component/templates/stories/{[name].stories.js → [name].stories.ts} +0 -0
  470. /package/scripts/generate-component/templates/test/{[name].test.js → [name].test.ts} +0 -0
  471. /package/src/components/accordion/test/{accordion.test.js → accordion.test.ts} +0 -0
  472. /package/src/components/button/stories/{button.stories.js → button.stories.ts} +0 -0
  473. /package/src/components/button/test/{button.test.js → button.test.ts} +0 -0
  474. /package/src/components/button-group/stories/{button-group.stories.js → button-group.stories.ts} +0 -0
  475. /package/src/components/button-group/test/{button-group.test.js → button-group.test.ts} +0 -0
  476. /package/src/components/checkbox/stories/{checkbox-group.stories.js → checkbox-group.stories.ts} +0 -0
  477. /package/src/components/checkbox/stories/{checkbox.stories.js → checkbox.stories.ts} +0 -0
  478. /package/src/components/checkbox/test/{checkbox-group.test.js → checkbox-group.test.ts} +0 -0
  479. /package/src/components/checkbox/test/{checkbox.test.js → checkbox.test.ts} +0 -0
  480. /package/src/components/chip/{ChipLink.js → ChipLink.ts} +0 -0
  481. /package/src/components/chip/{ChipRemovable.js → ChipRemovable.ts} +0 -0
  482. /package/src/components/chip/{ChipSelectable.js → ChipSelectable.ts} +0 -0
  483. /package/src/components/chip/{exports.js → exports.ts} +0 -0
  484. /package/src/components/chip/stories/{chip-group.stories.js → chip-group.stories.ts} +0 -0
  485. /package/src/components/chip/stories/{chip-link.stories.js → chip-link.stories.ts} +0 -0
  486. /package/src/components/chip/stories/{chip-removable.stories.js → chip-removable.stories.ts} +0 -0
  487. /package/src/components/chip/stories/{chip-selectable.stories.js → chip-selectable.stories.ts} +0 -0
  488. /package/src/components/chip/test/{chip-group.test.js → chip-group.test.ts} +0 -0
  489. /package/src/components/chip/test/{chip-link.test.js → chip-link.test.ts} +0 -0
  490. /package/src/components/chip/test/{chip-removable.test.js → chip-removable.test.ts} +0 -0
  491. /package/src/components/chip/test/{chip-selectable.test.js → chip-selectable.test.ts} +0 -0
  492. /package/src/components/chip/test/{chip.test.js → chip.test.ts} +0 -0
  493. /package/src/components/dialog/stories/{dialog.stories.js → dialog.stories.ts} +0 -0
  494. /package/src/components/dialog/test/{dialog.test.js → dialog.test.ts} +0 -0
  495. /package/src/components/dropdown/stories/{dropdown.stories.js → dropdown.stories.ts} +0 -0
  496. /package/src/components/dropdown/test/{dropdown.test.js → dropdown.test.ts} +0 -0
  497. /package/src/components/icon/{paths.js → paths.ts} +0 -0
  498. /package/src/components/icon/stories/{icon.stories.js → icon.stories.ts} +0 -0
  499. /package/src/components/icon/test/{icon.test.js → icon.test.ts} +0 -0
  500. /package/src/components/input/stories/{input.stories.js → input.stories.ts} +0 -0
  501. /package/src/components/input/test/{input.test.js → input.test.ts} +0 -0
  502. /package/src/components/menu/stories/{menu-item.stories.js → menu-item.stories.ts} +0 -0
  503. /package/src/components/menu/stories/{menu.stories.js → menu.stories.ts} +0 -0
  504. /package/src/components/menu/test/{menu-item.test.js → menu-item.test.ts} +0 -0
  505. /package/src/components/menu/test/{menu.test.js → menu.test.ts} +0 -0
  506. /package/src/components/pagination/stories/{pagination.stories.js → pagination.stories.ts} +0 -0
  507. /package/src/components/pagination/test/{pagination.test.js → pagination.test.ts} +0 -0
  508. /package/src/components/popup/stories/{popup.stories.js → popup.stories.ts} +0 -0
  509. /package/src/components/popup/test/{popup.test.js → popup.test.ts} +0 -0
  510. /package/src/components/radio/stories/{radio-group.stories.js → radio-group.stories.ts} +0 -0
  511. /package/src/components/radio/stories/{radio.stories.js → radio.stories.ts} +0 -0
  512. /package/src/components/radio/test/{radio-group.test.js → radio-group.test.ts} +0 -0
  513. /package/src/components/radio/test/{radio.test.js → radio.test.ts} +0 -0
  514. /package/src/components/range/{Range.js → Range.ts} +0 -0
  515. /package/src/components/range/stories/{range-slider.stories.js → range-slider.stories.ts} +0 -0
  516. /package/src/components/range/test/{range-test.js → range.test.ts} +0 -0
  517. /package/src/components/scroll-top/stories/{scroll-top.stories.js → scroll-top.stories.ts} +0 -0
  518. /package/src/components/scroll-top/test/{scroll-top.test.js → scroll-top.test.ts} +0 -0
  519. /package/src/components/select/stories/{select.stories.js → select.stories.ts} +0 -0
  520. /package/src/components/spinner/{Spinner.js → Spinner.ts} +0 -0
  521. /package/src/components/spinner/stories/{spinner.stories.js → spinner.stories.ts} +0 -0
  522. /package/src/components/spinner/test/{spinner.test.js → spinner.test.ts} +0 -0
  523. /package/src/components/table/stories/{table.stories.js → table.stories.ts} +0 -0
  524. /package/src/components/table/test/{table.test.js → table.test.ts} +0 -0
  525. /package/src/components/visually-hidden/stories/{visually-hidden.stories.js → visually-hidden.stories.ts} +0 -0
  526. /package/src/components/visually-hidden/test/{visually-hidden.test.js → visually-hidden.test.ts} +0 -0
  527. /package/src/lib/{utils.js → utils.ts} +0 -0
  528. /package/src/styles/{style.stories.js → style.stories.ts} +0 -0
@@ -2,7 +2,6 @@ import { html, unsafeStatic } from "lit/static-html.js"
2
2
 
3
3
  import { LeuElement } from "../../lib/LeuElement.js"
4
4
 
5
- // @ts-ignore
6
5
  import styles from "./chip-group.css"
7
6
 
8
7
  /* Figma https://www.figma.com/file/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?type=design&node-id=131766-248643&mode=design&t=Kjo5VDiqivihn8dh-11 */
@@ -3,3 +3,9 @@ import { LeuChipGroup } from "./ChipGroup.js"
3
3
  export { LeuChipGroup }
4
4
 
5
5
  LeuChipGroup.define("leu-chip-group")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-chip-group": LeuChipGroup
10
+ }
11
+ }
@@ -3,3 +3,9 @@ import { LeuChipLink } from "./ChipLink.js"
3
3
  export { LeuChipLink }
4
4
 
5
5
  LeuChipLink.define("leu-chip-link")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-chip-link": LeuChipLink
10
+ }
11
+ }
@@ -3,3 +3,9 @@ import { LeuChipRemovable } from "./ChipRemovable.js"
3
3
  export { LeuChipRemovable }
4
4
 
5
5
  LeuChipRemovable.define("leu-chip-removable")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-chip-removable": LeuChipRemovable
10
+ }
11
+ }
@@ -3,3 +3,9 @@ import { LeuChipSelectable } from "./ChipSelectable.js"
3
3
  export { LeuChipSelectable }
4
4
 
5
5
  LeuChipSelectable.define("leu-chip-selectable")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-chip-selectable": LeuChipSelectable
10
+ }
11
+ }
@@ -8,7 +8,6 @@ import { LeuIcon } from "../icon/Icon.js"
8
8
 
9
9
  // design: https://www.figma.com/design/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?node-id=21161-186812&node-type=FRAME
10
10
 
11
- // @ts-ignore
12
11
  import styles from "./dialog.css"
13
12
 
14
13
  /**
@@ -3,3 +3,9 @@ import { LeuDialog } from "./Dialog.js"
3
3
  export { LeuDialog }
4
4
 
5
5
  LeuDialog.define("leu-dialog")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-dialog": LeuDialog
10
+ }
11
+ }
@@ -9,7 +9,6 @@ import { LeuMenu } from "../menu/Menu.js"
9
9
  import { LeuMenuItem } from "../menu/MenuItem.js"
10
10
  import { LeuPopup } from "../popup/Popup.js"
11
11
 
12
- // @ts-ignore
13
12
  import styles from "./dropdown.css"
14
13
 
15
14
  /**
@@ -3,3 +3,9 @@ import { LeuDropdown } from "./Dropdown.js"
3
3
  export { LeuDropdown }
4
4
 
5
5
  LeuDropdown.define("leu-dropdown")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-dropdown": LeuDropdown
10
+ }
11
+ }
@@ -2,7 +2,6 @@ import { html, svg } from "lit"
2
2
 
3
3
  import { LeuElement } from "../../lib/LeuElement.js"
4
4
 
5
- // @ts-ignore
6
5
  import styles from "./icon.css"
7
6
  import { paths } from "./paths.js"
8
7
 
@@ -3,3 +3,9 @@ import { LeuIcon } from "./Icon.js"
3
3
  export { LeuIcon }
4
4
 
5
5
  LeuIcon.define("leu-icon")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-icon": LeuIcon
10
+ }
11
+ }
@@ -7,7 +7,6 @@ import { createRef, ref } from "lit/directives/ref.js"
7
7
  import { LeuElement } from "../../lib/LeuElement.js"
8
8
  import { LeuIcon } from "../icon/Icon.js"
9
9
 
10
- // @ts-ignore
11
10
  import styles from "./input.css"
12
11
 
13
12
  export const SIZES = Object.freeze({
@@ -3,3 +3,9 @@ import { LeuInput } from "./Input.js"
3
3
  export { LeuInput }
4
4
 
5
5
  LeuInput.define("leu-input")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-input": LeuInput
10
+ }
11
+ }
@@ -4,7 +4,6 @@ import { LeuElement } from "../../lib/LeuElement.js"
4
4
 
5
5
  import { LeuMenuItem } from "./MenuItem.js"
6
6
 
7
- // @ts-ignore
8
7
  import styles from "./menu.css"
9
8
 
10
9
  /**
@@ -135,7 +134,8 @@ export class LeuMenu extends LeuElement {
135
134
 
136
135
  focusItem(index) {
137
136
  const currentItem = this.setCurrentItem(index)
138
- currentItem.focus()
137
+
138
+ currentItem?.focus()
139
139
  }
140
140
 
141
141
  firstUpdated() {
@@ -4,7 +4,6 @@ import { ifDefined } from "lit/directives/if-defined.js"
4
4
  import { LeuElement } from "../../lib/LeuElement.js"
5
5
  import { LeuIcon } from "../icon/Icon.js"
6
6
 
7
- // @ts-ignore
8
7
  import styles from "./menu-item.css"
9
8
 
10
9
  /**
@@ -3,3 +3,9 @@ import { LeuMenuItem } from "./MenuItem.js"
3
3
  export { LeuMenuItem }
4
4
 
5
5
  LeuMenuItem.define("leu-menu-item")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-menu-item": LeuMenuItem
10
+ }
11
+ }
@@ -3,3 +3,9 @@ import { LeuMenu } from "./Menu.js"
3
3
  export { LeuMenu }
4
4
 
5
5
  LeuMenu.define("leu-menu")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-menu": LeuMenu
10
+ }
11
+ }
@@ -6,7 +6,6 @@ import { LeuButton } from "../button/Button.js"
6
6
  import { LeuVisuallyHidden } from "../visually-hidden/VisuallyHidden.js"
7
7
  import { LeuIcon } from "../icon/Icon.js"
8
8
 
9
- // @ts-ignore
10
9
  import styles from "./pagination.css"
11
10
 
12
11
  const MIN_PAGE = 1
@@ -3,3 +3,9 @@ import { LeuPagination } from "./Pagination.js"
3
3
  export { LeuPagination }
4
4
 
5
5
  LeuPagination.define("leu-pagination")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-pagination": LeuPagination
10
+ }
11
+ }
@@ -9,7 +9,6 @@ import {
9
9
 
10
10
  import { LeuElement } from "../../lib/LeuElement.js"
11
11
 
12
- // @ts-ignore
13
12
  import styles from "./popup.css"
14
13
 
15
14
  /**
@@ -3,3 +3,9 @@ import { LeuPopup } from "./Popup.js"
3
3
  export { LeuPopup }
4
4
 
5
5
  LeuPopup.define("leu-popup")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-popup": LeuPopup
10
+ }
11
+ }
@@ -2,7 +2,6 @@ import { html } from "lit"
2
2
 
3
3
  import { LeuElement } from "../../lib/LeuElement.js"
4
4
 
5
- // @ts-ignore
6
5
  import styles from "./radio.css"
7
6
 
8
7
  /**
@@ -3,7 +3,6 @@ import { classMap } from "lit/directives/class-map.js"
3
3
 
4
4
  import { LeuElement } from "../../lib/LeuElement.js"
5
5
 
6
- // @ts-ignore
7
6
  import styles from "./radio-group.css"
8
7
 
9
8
  /**
@@ -3,3 +3,9 @@ import { LeuRadioGroup } from "./RadioGroup.js"
3
3
  export { LeuRadioGroup }
4
4
 
5
5
  LeuRadioGroup.define("leu-radio-group")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-radio-group": LeuRadioGroup
10
+ }
11
+ }
@@ -3,3 +3,9 @@ import { LeuRadio } from "./Radio.js"
3
3
  export { LeuRadio }
4
4
 
5
5
  LeuRadio.define("leu-radio")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-radio": LeuRadio
10
+ }
11
+ }
@@ -3,3 +3,9 @@ import { LeuRange } from "./Range.js"
3
3
  export { LeuRange }
4
4
 
5
5
  LeuRange.define("leu-range")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-range": LeuRange
10
+ }
11
+ }
@@ -7,7 +7,6 @@ import { LeuIcon } from "../icon/Icon.js"
7
7
 
8
8
  import { throttle } from "../../lib/utils.js"
9
9
 
10
- // @ts-ignore
11
10
  import styles from "./scroll-top.css"
12
11
 
13
12
  /**
@@ -3,3 +3,9 @@ import { LeuScrollTop } from "./ScrollTop.js"
3
3
  export { LeuScrollTop }
4
4
 
5
5
  LeuScrollTop.define("leu-scroll-top")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-scroll-top": LeuScrollTop
10
+ }
11
+ }
@@ -13,7 +13,6 @@ import { LeuIcon } from "../icon/Icon.js"
13
13
  import { LeuInput } from "../input/Input.js"
14
14
  import { LeuPopup } from "../popup/Popup.js"
15
15
 
16
- // @ts-ignore
17
16
  import styles from "./select.css"
18
17
 
19
18
  /**
@@ -207,6 +206,20 @@ export class LeuSelect extends LeuElement {
207
206
  }
208
207
  }
209
208
 
209
+ /**
210
+ * Update all the menu items when the slot changes
211
+ * to make sure that the menu items are in sync
212
+ * with the state of the component.
213
+ * @internal
214
+ */
215
+ _handleItemSlotChange() {
216
+ this._updateMenuItems({
217
+ value: true,
218
+ optionFilter: true,
219
+ multiple: true,
220
+ })
221
+ }
222
+
210
223
  /**
211
224
  * Handles clicks outside of the component to close the dropdown.
212
225
  * @internal
@@ -344,7 +357,8 @@ export class LeuSelect extends LeuElement {
344
357
  : this.value.concat(value)
345
358
 
346
359
  this._deferedChangeEvent = true
347
- } else {
360
+ } else if (this.clearable || !isSelected) {
361
+ // Only clear if clearable is true or if the value is not selected.
348
362
  this.value = isSelected ? [] : [value]
349
363
  this._displayValue = isSelected ? "" : menuItem.textContent
350
364
  }
@@ -468,9 +482,9 @@ export class LeuSelect extends LeuElement {
468
482
  @click=${this._handleMenuItemClick}
469
483
  aria-labelledby="select-label"
470
484
  >
471
- <slot></slot>
485
+ <slot @slotchange=${this._handleItemSlotChange}> </slot>
472
486
  </leu-menu>
473
- ${this._hasFilterResults
487
+ ${this._hasFilterResults || this._optionFilter === ""
474
488
  ? nothing
475
489
  : html` <p class="filter-message-empty" aria-live="polite">
476
490
  Keine Resultate
@@ -3,3 +3,9 @@ import { LeuSelect } from "./Select.js"
3
3
  export { LeuSelect }
4
4
 
5
5
  LeuSelect.define("leu-select")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-select": LeuSelect
10
+ }
11
+ }
@@ -159,4 +159,4 @@ export const MUNICIPALITIES = [
159
159
  "Illnau-Effretikon",
160
160
  "Bauma",
161
161
  "Wiesendangen",
162
- ]
162
+ ] as const
@@ -258,6 +258,63 @@ describe("LeuSelect", () => {
258
258
  const emptyMessage = el.shadowRoot.querySelector(".filter-message-empty")
259
259
  expect(emptyMessage).to.exist
260
260
  expect(emptyMessage).to.have.attribute("aria-live", "polite")
261
+ expect(emptyMessage).to.have.trimmed.text("Keine Resultate")
262
+ })
263
+
264
+ it("doesn't render a message when no options are available and no filter is set", async () => {
265
+ const el = await defaultFixture({
266
+ options: [],
267
+ label: "Gemeinde",
268
+ filterable: true,
269
+ })
270
+
271
+ const toggleButton = el.shadowRoot.querySelector(".select-toggle")
272
+ toggleButton.click()
273
+
274
+ const emptyMessage = el.shadowRoot.querySelector(".filter-message-empty")
275
+ expect(emptyMessage).not.to.exist
276
+ })
277
+
278
+ it("syncs the state to the menu items when they're updated lazily", async () => {
279
+ const el = await defaultFixture({
280
+ options: [],
281
+ label: "Gemeinde",
282
+ value: ["Affoltern am Albis"],
283
+ filterable: true,
284
+ })
285
+
286
+ const toggleButton = el.shadowRoot.querySelector(".select-toggle")
287
+ toggleButton.click()
288
+
289
+ const filterInput = el.shadowRoot.querySelector(".select-search")
290
+ filterInput.focus()
291
+
292
+ await sendKeys({ type: "am albis" })
293
+ await elementUpdated(el)
294
+
295
+ let emptyMessage = el.shadowRoot.querySelector(".filter-message-empty")
296
+ expect(emptyMessage).to.exist
297
+
298
+ const fragment = document.createDocumentFragment()
299
+ MUNICIPALITIES.forEach((option) => {
300
+ const menuItem = document.createElement("leu-menu-item")
301
+ menuItem.textContent = option
302
+ fragment.appendChild(menuItem)
303
+ })
304
+
305
+ el.appendChild(fragment)
306
+
307
+ // Two calls to elementUpdated are needed because the _hasFilterResults
308
+ // property is set during the updated lifecycle
309
+ await elementUpdated(el)
310
+ await elementUpdated(el)
311
+ emptyMessage = el.shadowRoot.querySelector(".filter-message-empty")
312
+ expect(emptyMessage).to.be.null
313
+
314
+ const menuItem = Array.from(el.querySelectorAll("leu-menu-item")).find(
315
+ (item) => item.textContent === "Affoltern am Albis",
316
+ )
317
+ expect(menuItem).to.have.attribute("active")
261
318
  })
262
319
 
263
320
  it("renders a apply button when multiple selection is allowed", async () => {
@@ -305,6 +362,41 @@ describe("LeuSelect", () => {
305
362
  expect(el.value).to.deep.equal(["Maur"])
306
363
  })
307
364
 
365
+ it("doesn't allow unselecting the value", async () => {
366
+ const el = await defaultFixture({
367
+ options: MUNICIPALITIES,
368
+ label: "Gemeinde",
369
+ value: ["Maur"],
370
+ })
371
+ const toggleButton = el.shadowRoot.querySelector(".select-toggle")
372
+ toggleButton.click()
373
+
374
+ const menuItem = Array.from(el.querySelectorAll("leu-menu-item")).find(
375
+ (item) => item.textContent === "Maur",
376
+ )
377
+
378
+ menuItem.click()
379
+ expect(el.value).to.deep.equal(["Maur"])
380
+ })
381
+
382
+ it("allows unselecting the value when clearable is set", async () => {
383
+ const el = await defaultFixture({
384
+ options: MUNICIPALITIES,
385
+ label: "Gemeinde",
386
+ value: ["Maur"],
387
+ clearable: true,
388
+ })
389
+ const toggleButton = el.shadowRoot.querySelector(".select-toggle")
390
+ toggleButton.click()
391
+
392
+ const menuItem = Array.from(el.querySelectorAll("leu-menu-item")).find(
393
+ (item) => item.textContent === "Maur",
394
+ )
395
+
396
+ menuItem.click()
397
+ expect(el.value).to.deep.equal([])
398
+ })
399
+
308
400
  it("allows a value with multiple values", async () => {
309
401
  const el = await defaultFixture({
310
402
  options: MUNICIPALITIES,
@@ -3,3 +3,9 @@ import { LeuSpinner } from "./Spinner.js"
3
3
  export { LeuSpinner }
4
4
 
5
5
  LeuSpinner.define("leu-spinner")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-spinner": LeuSpinner
10
+ }
11
+ }
@@ -7,7 +7,6 @@ import { LeuElement } from "../../lib/LeuElement.js"
7
7
  import { LeuIcon } from "../icon/Icon.js"
8
8
  import { LeuPagination } from "../pagination/Pagination.js"
9
9
 
10
- // @ts-ignore
11
10
  import styles from "./table.css"
12
11
 
13
12
  /**
@@ -3,3 +3,9 @@ import { LeuTable } from "./Table.js"
3
3
  export { LeuTable }
4
4
 
5
5
  LeuTable.define("leu-table")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-table": LeuTable
10
+ }
11
+ }
@@ -2,7 +2,6 @@ import { html } from "lit"
2
2
 
3
3
  import { LeuElement } from "../../lib/LeuElement.js"
4
4
 
5
- // @ts-ignore
6
5
  import styles from "./visually-hidden.css"
7
6
 
8
7
  /**
@@ -3,3 +3,9 @@ import { LeuVisuallyHidden } from "./VisuallyHidden.js"
3
3
  export { LeuVisuallyHidden }
4
4
 
5
5
  LeuVisuallyHidden.define("leu-visually-hidden")
6
+
7
+ declare global {
8
+ interface HTMLElementTagNameMap {
9
+ "leu-visually-hidden": LeuVisuallyHidden
10
+ }
11
+ }
@@ -1,6 +1,7 @@
1
1
  import { Meta, Markdown, Canvas } from "@storybook/blocks"
2
+ import React from "react"
2
3
 
3
- import * as GridStories from "../styles/style.stories.js"
4
+ import * as GridStories from "../styles/style.stories"
4
5
 
5
6
  <Meta title="Introduction/Theme" />
6
7
 
@@ -16,7 +17,7 @@ export const ColorTable = ({ prefix, shades }) => {
16
17
  <tbody>
17
18
  {shades.map((shade) => {
18
19
  return (
19
- <tr>
20
+ <tr key={`${prefix}-${shade}`}>
20
21
  <td
21
22
  style={{
22
23
  background:
@@ -160,6 +161,7 @@ box-shadow: var(--leu-box-shadow-short);
160
161
  <div style={{ display: "flex", gap: "1rem", flexWrap: "wrap" }}>
161
162
  {["short", "regular", "long"].map((shadow) => (
162
163
  <div
164
+ key={shadow}
163
165
  style={{
164
166
  boxShadow: `var(--leu-box-shadow-${shadow})`,
165
167
  padding: "1rem",
@@ -183,14 +185,16 @@ The font files and the font face declaration are not part of the package. You ne
183
185
  Each weight has a unique font family name. The `@font-face` declaration has to match this naming.
184
186
 
185
187
  <table>
186
- <tr>
187
- <td>regular</td>
188
- <td>InterRegular</td>
189
- </tr>
190
- <tr>
191
- <td>black</td>
192
- <td>InterBlack</td>
193
- </tr>
188
+ <tbody>
189
+ <tr>
190
+ <td>regular</td>
191
+ <td>InterRegular</td>
192
+ </tr>
193
+ <tr>
194
+ <td>black</td>
195
+ <td>InterBlack</td>
196
+ </tr>
197
+ </tbody>
194
198
  </table>
195
199
 
196
200
  In the theme those two definitions including fallbacks are defined as custom properties.
@@ -0,0 +1,11 @@
1
+ declare module "*.css" {
2
+ import { CSSResult } from "lit"
3
+
4
+ const css: CSSResult
5
+ export default css
6
+ }
7
+
8
+ /**
9
+ * The value is injected at build time.
10
+ */
11
+ declare const __LEU_VERSION__: string
package/src/index.ts ADDED
@@ -0,0 +1,17 @@
1
+ export * from "./components/accordion/Accordion.js"
2
+ export * from "./components/button/Button.js"
3
+ export * from "./components/button-group/ButtonGroup.js"
4
+ export * from "./components/checkbox/Checkbox.js"
5
+ export * from "./components/checkbox/CheckboxGroup.js"
6
+ export * from "./components/chip/exports.js"
7
+ export * from "./components/dropdown/Dropdown.js"
8
+ export * from "./components/input/Input.js"
9
+ export * from "./components/menu/Menu.js"
10
+ export * from "./components/menu/MenuItem.js"
11
+ export * from "./components/pagination/Pagination.js"
12
+ export * from "./components/popup/Popup.js"
13
+ export * from "./components/radio/Radio.js"
14
+ export * from "./components/radio/RadioGroup.js"
15
+ export * from "./components/select/Select.js"
16
+ export * from "./components/table/Table.js"
17
+ export * from "./lib/LeuElement.js"
@@ -1,17 +1,23 @@
1
- import { LitElement } from "lit"
1
+ import { CSSResultGroup, LitElement } from "lit"
2
2
  import commonStyles from "../styles/common-styles.css"
3
3
 
4
4
  export class LeuElement extends LitElement {
5
5
  static version = __LEU_VERSION__
6
6
 
7
- static dependencies = {}
7
+ static dependencies: Record<string, typeof LeuElement> = {}
8
8
 
9
- static styles = commonStyles
9
+ static styles: CSSResultGroup = commonStyles
10
10
 
11
- static define(name, constructor = this, options = {}) {
11
+ static define(
12
+ name: string,
13
+ constructor = this,
14
+ options: ElementDefinitionOptions = {},
15
+ ) {
12
16
  Object.entries(this.dependencies).forEach(([n, c]) => c.define(n))
13
17
 
14
- const currentlyRegisteredConstructor = customElements.get(name)
18
+ const currentlyRegisteredConstructor = customElements.get(name) as
19
+ | CustomElementConstructor
20
+ | typeof LeuElement
15
21
 
16
22
  if (currentlyRegisteredConstructor === undefined) {
17
23
  customElements.define(name, constructor, options)
@@ -25,7 +31,10 @@ export class LeuElement extends LitElement {
25
31
  return
26
32
  }
27
33
 
28
- if (currentlyRegisteredConstructor.version !== constructor.version) {
34
+ if (
35
+ "version" in currentlyRegisteredConstructor &&
36
+ currentlyRegisteredConstructor.version !== constructor.version
37
+ ) {
29
38
  console.warn(
30
39
  `The custom element with the name <${name}> is already defined with the same constructor but a different version (${currentlyRegisteredConstructor.version}).`,
31
40
  )
@@ -9,7 +9,7 @@ export const ARIA_CHECKED_ROLES = [
9
9
  "option",
10
10
  "radio",
11
11
  "switch",
12
- ]
12
+ ] as const
13
13
 
14
14
  /**
15
15
  * All roles that are associated with a aria-selected attribute
@@ -23,4 +23,4 @@ export const ARIA_SELECTED_ROLES = [
23
23
  "columnheader",
24
24
  "rowheader",
25
25
  "treeitem",
26
- ]
26
+ ] as const