@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
@@ -0,0 +1,42 @@
1
+ import { css, LitElement } from 'lit';
2
+
3
+ var css_248z = css`:host,
4
+ :host * {
5
+ box-sizing: border-box;
6
+ font-feature-settings: var(--leu-t-font-feature-settings);
7
+ }
8
+
9
+ /**
10
+ * If a custom element sets the display property to any value
11
+ * it will not be hidden by the [hidden] attribute.
12
+ * That's why we need to specify this rule.
13
+ */
14
+
15
+ :host([hidden]) {
16
+ display: none;
17
+ }
18
+ `;
19
+
20
+ class LeuElement extends LitElement {
21
+ static define(name, constructor = this, options = {}) {
22
+ Object.entries(this.dependencies).forEach(([n, c]) => c.define(n));
23
+ const currentlyRegisteredConstructor = customElements.get(name);
24
+ if (currentlyRegisteredConstructor === undefined) {
25
+ customElements.define(name, constructor, options);
26
+ return;
27
+ }
28
+ if (currentlyRegisteredConstructor !== constructor) {
29
+ console.warn(`The custom element with the name <${name}> is already registered with a different constructor. This can happen when the same element has been loaded from different modules (e.g. multiple CDN requests or bundles).`);
30
+ return;
31
+ }
32
+ if ("version" in currentlyRegisteredConstructor &&
33
+ currentlyRegisteredConstructor.version !== constructor.version) {
34
+ console.warn(`The custom element with the name <${name}> is already defined with the same constructor but a different version (${currentlyRegisteredConstructor.version}).`);
35
+ }
36
+ }
37
+ }
38
+ LeuElement.version = "0.14.4";
39
+ LeuElement.dependencies = {};
40
+ LeuElement.styles = css_248z;
41
+
42
+ export { LeuElement as L };
@@ -0,0 +1,10 @@
1
+ import { LitElement, CSSResultGroup } from 'lit';
2
+
3
+ declare class LeuElement extends LitElement {
4
+ static version: string;
5
+ static dependencies: Record<string, typeof LeuElement>;
6
+ static styles: CSSResultGroup;
7
+ static define(name: string, constructor?: typeof LeuElement, options?: ElementDefinitionOptions): void;
8
+ }
9
+
10
+ export { LeuElement as L };
package/dist/Menu.d.ts CHANGED
@@ -1,4 +1,9 @@
1
- export type SelectsType = "single" | "multiple" | "none";
1
+ import * as lit_html from 'lit-html';
2
+ import * as lit from 'lit';
3
+ import { L as LeuElement } from './LeuElement.d-BevHqLUu.js';
4
+ import { LeuMenuItem } from './MenuItem.js';
5
+ import './Icon.js';
6
+
2
7
  /**
3
8
  * @typedef {'single' | 'multiple' | 'none'} SelectsType
4
9
  */
@@ -6,25 +11,39 @@ export type SelectsType = "single" | "multiple" | "none";
6
11
  * @tagname leu-menu
7
12
  * @property {SelectsType} selects - This has only an effect when the role is 'menu'. It defines which role the menu items will get. Default is 'none'.
8
13
  */
9
- export class LeuMenu extends LeuElement {
10
- /** @type {SelectsType} */
11
- selects: SelectsType;
12
- value: any;
14
+ declare class LeuMenu extends LeuElement {
15
+ static styles: lit.CSSResultGroup[];
16
+ static shadowRootOptions: {
17
+ delegatesFocus: boolean;
18
+ mode: ShadowRootMode;
19
+ serializable?: boolean;
20
+ slotAssignment?: SlotAssignmentMode;
21
+ customElements?: CustomElementRegistry;
22
+ registry?: CustomElementRegistry;
23
+ };
24
+ static properties: {
25
+ selects: {
26
+ type: StringConstructor;
27
+ reflect: boolean;
28
+ };
29
+ };
30
+ constructor();
31
+ connectedCallback(): void;
32
+ disconnectedCallback(): void;
13
33
  _handleSlotChange(): void;
14
34
  _setMenuItemRoles(): void;
15
35
  /**
16
36
  *
17
37
  * @returns {import("./MenuItem").LeuMenuItem[]}
18
38
  */
19
- getMenuItems(): import("./MenuItem").LeuMenuItem[];
39
+ getMenuItems(): LeuMenuItem[];
20
40
  getVisibleMenuItems(): LeuMenuItem[];
21
41
  _handleKeyDown(event: any): void;
22
42
  setCurrentItem(index: any): any;
23
43
  focusItem(index: any): void;
24
44
  firstUpdated(): void;
25
45
  updated(changedProperties: any): void;
26
- render(): import("lit-html").TemplateResult<1>;
46
+ render(): lit_html.TemplateResult<1>;
27
47
  }
28
- import { L as LeuElement } from './LeuElement-BI1CxItv.js';
29
- import { LeuMenuItem } from './MenuItem.js';
30
- //# sourceMappingURL=Menu.d.ts.map
48
+
49
+ export { LeuMenu };
package/dist/Menu.js CHANGED
@@ -1,5 +1,5 @@
1
- import { _ as _defineProperty, L as LeuElement } from './LeuElement-BI1CxItv.js';
2
1
  import { css, html } from 'lit';
2
+ import { L as LeuElement } from './LeuElement-x8UlIDDl.js';
3
3
  import { LeuMenuItem } from './MenuItem.js';
4
4
  import 'lit/directives/if-defined.js';
5
5
  import './Icon.js';
@@ -25,125 +25,126 @@ var css_248z = css`:host {
25
25
  /**
26
26
  * @typedef {'single' | 'multiple' | 'none'} SelectsType
27
27
  */
28
-
29
28
  /**
30
29
  * @tagname leu-menu
31
30
  * @property {SelectsType} selects - This has only an effect when the role is 'menu'. It defines which role the menu items will get. Default is 'none'.
32
31
  */
33
32
  class LeuMenu extends LeuElement {
34
- constructor() {
35
- super();
36
-
37
- /** @type {SelectsType} */
38
- this.selects = "none";
39
- this.value = undefined;
40
- }
41
- connectedCallback() {
42
- super.connectedCallback();
43
- if (!this.getAttribute("role")) {
44
- this.setAttribute("role", "menu");
33
+ constructor() {
34
+ super();
35
+ /** @type {SelectsType} */
36
+ this.selects = "none";
37
+ this.value = undefined;
45
38
  }
46
- this.addEventListener("keydown", this._handleKeyDown);
47
- }
48
- disconnectedCallback() {
49
- super.disconnectedCallback();
50
- this.removeEventListener("keydown", this._handleKeyDown);
51
- }
52
- _handleSlotChange() {
53
- this.setCurrentItem(0);
54
- this._setMenuItemRoles();
55
- }
56
- _setMenuItemRoles() {
57
- const menuRole = this.getAttribute("role");
58
- let menuItemRole;
59
- if (menuRole === "menu") {
60
- if (this.selects === "multiple") {
61
- menuItemRole = "menuitemcheckbox";
62
- } else if (this.selects === "single") {
63
- menuItemRole = "menuitemradio";
64
- } else {
65
- menuItemRole = "menuitem";
66
- }
67
- } else if (menuRole === "listbox") {
68
- menuItemRole = "option";
39
+ connectedCallback() {
40
+ super.connectedCallback();
41
+ if (!this.getAttribute("role")) {
42
+ this.setAttribute("role", "menu");
43
+ }
44
+ this.addEventListener("keydown", this._handleKeyDown);
69
45
  }
70
- if (menuItemRole) {
71
- this.getMenuItems().forEach(menuItem => {
72
- menuItem.componentRole = menuItemRole; // eslint-disable-line no-param-reassign
73
- });
46
+ disconnectedCallback() {
47
+ super.disconnectedCallback();
48
+ this.removeEventListener("keydown", this._handleKeyDown);
74
49
  }
75
- }
76
-
77
- /**
78
- *
79
- * @returns {import("./MenuItem").LeuMenuItem[]}
80
- */
81
- getMenuItems() {
82
- const slot = this.shadowRoot.querySelector("slot");
83
- return slot.assignedElements({
84
- flatten: true
85
- }).filter(el => el instanceof LeuMenuItem);
86
- }
87
- getVisibleMenuItems() {
88
- return this.getMenuItems().filter(menuItem => !menuItem.hidden);
89
- }
90
- _handleKeyDown(event) {
91
- if (["ArrowDown", "ArrowUp", "Home", "End"].includes(event.key)) {
92
- event.preventDefault();
93
- const menuItems = this.getVisibleMenuItems();
94
- let index = menuItems.findIndex(menuItem => menuItem.tabbable);
95
- if (event.key === "ArrowDown") {
96
- index += 1;
97
- } else if (event.key === "ArrowUp") {
98
- index -= 1;
99
- } else if (event.key === "Home") {
100
- index = 0;
101
- } else if (event.key === "End") {
102
- index = menuItems.length - 1;
103
- }
104
- this.focusItem(index);
50
+ _handleSlotChange() {
51
+ this.setCurrentItem(0);
52
+ this._setMenuItemRoles();
53
+ }
54
+ _setMenuItemRoles() {
55
+ const menuRole = this.getAttribute("role");
56
+ let menuItemRole;
57
+ if (menuRole === "menu") {
58
+ if (this.selects === "multiple") {
59
+ menuItemRole = "menuitemcheckbox";
60
+ }
61
+ else if (this.selects === "single") {
62
+ menuItemRole = "menuitemradio";
63
+ }
64
+ else {
65
+ menuItemRole = "menuitem";
66
+ }
67
+ }
68
+ else if (menuRole === "listbox") {
69
+ menuItemRole = "option";
70
+ }
71
+ if (menuItemRole) {
72
+ this.getMenuItems().forEach((menuItem) => {
73
+ menuItem.componentRole = menuItemRole; // eslint-disable-line no-param-reassign
74
+ });
75
+ }
76
+ }
77
+ /**
78
+ *
79
+ * @returns {import("./MenuItem").LeuMenuItem[]}
80
+ */
81
+ getMenuItems() {
82
+ const slot = this.shadowRoot.querySelector("slot");
83
+ return slot
84
+ .assignedElements({ flatten: true })
85
+ .filter((el) => el instanceof LeuMenuItem);
86
+ }
87
+ getVisibleMenuItems() {
88
+ return this.getMenuItems().filter((menuItem) => !menuItem.hidden);
89
+ }
90
+ _handleKeyDown(event) {
91
+ if (["ArrowDown", "ArrowUp", "Home", "End"].includes(event.key)) {
92
+ event.preventDefault();
93
+ const menuItems = this.getVisibleMenuItems();
94
+ let index = menuItems.findIndex((menuItem) => menuItem.tabbable);
95
+ if (event.key === "ArrowDown") {
96
+ index += 1;
97
+ }
98
+ else if (event.key === "ArrowUp") {
99
+ index -= 1;
100
+ }
101
+ else if (event.key === "Home") {
102
+ index = 0;
103
+ }
104
+ else if (event.key === "End") {
105
+ index = menuItems.length - 1;
106
+ }
107
+ this.focusItem(index);
108
+ }
109
+ }
110
+ setCurrentItem(index) {
111
+ const menuItems = this.getVisibleMenuItems();
112
+ let currentItem = null;
113
+ const currentItemIndex = (index + menuItems.length) % menuItems.length;
114
+ menuItems.forEach((menuItem, i) => {
115
+ if (i === currentItemIndex) {
116
+ currentItem = menuItem;
117
+ menuItem.tabbable = true; // eslint-disable-line no-param-reassign
118
+ }
119
+ else {
120
+ menuItem.tabbable = false; // eslint-disable-line no-param-reassign
121
+ }
122
+ });
123
+ return currentItem;
124
+ }
125
+ focusItem(index) {
126
+ const currentItem = this.setCurrentItem(index);
127
+ currentItem?.focus();
128
+ }
129
+ firstUpdated() {
130
+ this.setCurrentItem(0);
131
+ }
132
+ updated(changedProperties) {
133
+ if (changedProperties.has("selects")) {
134
+ this._setMenuItemRoles();
135
+ }
105
136
  }
106
- }
107
- setCurrentItem(index) {
108
- const menuItems = this.getVisibleMenuItems();
109
- let currentItem = null;
110
- const currentItemIndex = (index + menuItems.length) % menuItems.length;
111
- menuItems.forEach((menuItem, i) => {
112
- if (i === currentItemIndex) {
113
- currentItem = menuItem;
114
- menuItem.tabbable = true; // eslint-disable-line no-param-reassign
115
- } else {
116
- menuItem.tabbable = false; // eslint-disable-line no-param-reassign
117
- }
118
- });
119
- return currentItem;
120
- }
121
- focusItem(index) {
122
- const currentItem = this.setCurrentItem(index);
123
- currentItem.focus();
124
- }
125
- firstUpdated() {
126
- this.setCurrentItem(0);
127
- }
128
- updated(changedProperties) {
129
- if (changedProperties.has("selects")) {
130
- this._setMenuItemRoles();
137
+ render() {
138
+ return html `<slot></slot>`;
131
139
  }
132
- }
133
- render() {
134
- return html`<slot></slot>`;
135
- }
136
140
  }
137
- _defineProperty(LeuMenu, "styles", [LeuElement.styles, css_248z]);
138
- _defineProperty(LeuMenu, "shadowRootOptions", {
139
- ...LeuElement.shadowRootOptions,
140
- delegatesFocus: true
141
- });
142
- _defineProperty(LeuMenu, "properties", {
143
- selects: {
144
- type: String,
145
- reflect: true
146
- }
147
- });
141
+ LeuMenu.styles = [LeuElement.styles, css_248z];
142
+ LeuMenu.shadowRootOptions = {
143
+ ...LeuElement.shadowRootOptions,
144
+ delegatesFocus: true,
145
+ };
146
+ LeuMenu.properties = {
147
+ selects: { type: String, reflect: true },
148
+ };
148
149
 
149
150
  export { LeuMenu };
@@ -1,4 +1,9 @@
1
- export type MenuItemRole = "menuitem" | "menuitemcheckbox" | "menuitemradio" | "option" | "none";
1
+ import * as lit_html from 'lit-html';
2
+ import * as lit from 'lit';
3
+ import { nothing } from 'lit';
4
+ import { L as LeuElement } from './LeuElement.d-BevHqLUu.js';
5
+ import { LeuIcon } from './Icon.js';
6
+
2
7
  /**
3
8
  * @typedef {'menuitem' | 'menuitemcheckbox' | 'menuitemradio' | 'option' | 'none'} MenuItemRole
4
9
  */
@@ -13,30 +18,75 @@ export type MenuItemRole = "menuitem" | "menuitemcheckbox" | "menuitemradio" | "
13
18
  * @property {boolean} tabbable - If the item should be focusable. Will be reflected as `tabindex` to the underlying button or link
14
19
  * @property {MenuItemRole} componentRole - The role of the item. This will be reflected as `role` to the underlying button or link. Default is `'menuitem'.`
15
20
  */
16
- export class LeuMenuItem extends LeuElement {
17
- active: boolean;
18
- disabled: boolean;
19
- multipleSelection: boolean;
20
- value: any;
21
- href: any;
22
- tabbable: any;
23
- /** @type {MenuItemRole} */
24
- componentRole: MenuItemRole;
21
+ declare class LeuMenuItem extends LeuElement {
22
+ static dependencies: {
23
+ "leu-icon": typeof LeuIcon;
24
+ };
25
+ static styles: lit.CSSResultGroup[];
26
+ /**
27
+ * @internal
28
+ */
29
+ static shadowRootOptions: {
30
+ delegatesFocus: boolean;
31
+ mode: ShadowRootMode;
32
+ serializable?: boolean;
33
+ slotAssignment?: SlotAssignmentMode;
34
+ customElements?: CustomElementRegistry;
35
+ registry?: CustomElementRegistry;
36
+ };
37
+ static properties: {
38
+ active: {
39
+ type: BooleanConstructor;
40
+ reflect: boolean;
41
+ };
42
+ multipleSelection: {
43
+ type: BooleanConstructor;
44
+ reflect: boolean;
45
+ attr: string;
46
+ };
47
+ disabled: {
48
+ type: BooleanConstructor;
49
+ reflect: boolean;
50
+ };
51
+ tabbable: {
52
+ type: BooleanConstructor;
53
+ reflect: boolean;
54
+ };
55
+ href: {
56
+ type: StringConstructor;
57
+ reflect: boolean;
58
+ };
59
+ value: {
60
+ type: StringConstructor;
61
+ reflect: boolean;
62
+ };
63
+ componentRole: {
64
+ type: StringConstructor;
65
+ reflect: boolean;
66
+ };
67
+ };
68
+ constructor();
69
+ connectedCallback(): void;
70
+ disconnectedCallback(): void;
25
71
  _handleClick(event: any): void;
26
72
  /**
27
73
  * Returns the value of the item. If `value` is not set, it will return the inner text
28
74
  * @returns {string}
29
75
  */
30
- getValue(): string;
76
+ getValue(): any;
31
77
  _getAria(): {
32
- disabled: boolean;
78
+ disabled: any;
79
+ } | {
80
+ checked: any;
81
+ selected: any;
82
+ role: any;
83
+ disabled: any;
33
84
  };
34
85
  _getTabIndex(): 0 | -1;
35
- _renderLink(content: any): import("lit-html").TemplateResult<1>;
36
- _renderButton(content: any): import("lit-html").TemplateResult<1>;
37
- _renderBeforeSlotDefault(): typeof nothing | import("lit-html").TemplateResult<1>;
38
- render(): import("lit-html").TemplateResult<1>;
86
+ _renderLink(content: any): lit_html.TemplateResult<1>;
87
+ _renderButton(content: any): lit_html.TemplateResult<1>;
88
+ _renderBeforeSlotDefault(): typeof nothing | lit_html.TemplateResult<1>;
89
+ render(): lit_html.TemplateResult<1>;
39
90
  }
40
- import { L as LeuElement } from './LeuElement-BI1CxItv.js';
41
- import { nothing } from 'lit';
42
- //# sourceMappingURL=MenuItem.d.ts.map
91
+
92
+ export { LeuMenuItem };