@statistikzh/leu 0.14.3 → 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 (527) hide show
  1. package/.eslintrc.json +23 -4
  2. package/.github/workflows/release-please.yml +0 -1
  3. package/.prettierignore +1 -1
  4. package/.release-please-manifest.json +3 -0
  5. package/.storybook/{main.js → main.ts} +18 -2
  6. package/.storybook/{theme.js → theme.ts} +1 -0
  7. package/CHANGELOG.md +7 -0
  8. package/custom-elements-manifest.config.js +2 -2
  9. package/dist/Accordion.d.ts +32 -11
  10. package/dist/Accordion.js +96 -68
  11. package/dist/Button.d.ts +84 -33
  12. package/dist/Button.js +116 -136
  13. package/dist/ButtonGroup.d.ts +15 -10
  14. package/dist/ButtonGroup.js +65 -72
  15. package/dist/Checkbox.d.ts +41 -8
  16. package/dist/Checkbox.js +33 -45
  17. package/dist/CheckboxGroup.d.ts +21 -8
  18. package/dist/CheckboxGroup.js +31 -35
  19. package/dist/Chip.d.ts +23 -4
  20. package/dist/Chip.js +13 -17
  21. package/dist/ChipGroup.d.ts +43 -17
  22. package/dist/ChipGroup.js +87 -113
  23. package/dist/ChipLink.d.ts +28 -10
  24. package/dist/ChipLink.js +17 -24
  25. package/dist/ChipRemovable.d.ts +25 -6
  26. package/dist/ChipRemovable.js +32 -36
  27. package/dist/ChipSelectable.d.ts +41 -23
  28. package/dist/ChipSelectable.js +55 -69
  29. package/dist/Dialog.d.ts +39 -11
  30. package/dist/Dialog.js +48 -55
  31. package/dist/Dropdown.d.ts +44 -9
  32. package/dist/Dropdown.js +89 -96
  33. package/dist/Icon.d.ts +16 -9
  34. package/dist/Icon.js +117 -122
  35. package/dist/Input.d.ts +122 -34
  36. package/dist/Input.js +262 -342
  37. package/dist/LeuElement-x8UlIDDl.js +42 -0
  38. package/dist/LeuElement.d-BevHqLUu.d.ts +10 -0
  39. package/dist/Menu.d.ts +29 -10
  40. package/dist/Menu.js +111 -110
  41. package/dist/MenuItem.d.ts +69 -19
  42. package/dist/MenuItem.js +93 -109
  43. package/dist/Pagination.d.ts +46 -16
  44. package/dist/Pagination.js +101 -116
  45. package/dist/Popup.d.ts +55 -21
  46. package/dist/Popup.js +149 -178
  47. package/dist/Radio.d.ts +37 -8
  48. package/dist/Radio.js +30 -42
  49. package/dist/RadioGroup.d.ts +25 -7
  50. package/dist/RadioGroup.js +123 -128
  51. package/dist/Range.d.ts +62 -23
  52. package/dist/Range.js +154 -180
  53. package/dist/ScrollTop.d.ts +25 -14
  54. package/dist/ScrollTop.js +71 -75
  55. package/dist/Select.d.ts +48 -38
  56. package/dist/Select.js +309 -336
  57. package/dist/Spinner.d.ts +9 -4
  58. package/dist/Spinner.js +5 -5
  59. package/dist/Table.d.ts +61 -31
  60. package/dist/Table.js +160 -179
  61. package/dist/VisuallyHidden.d.ts +9 -4
  62. package/dist/VisuallyHidden.js +5 -5
  63. package/dist/components/accordion/Accordion.d.ts +49 -0
  64. package/dist/components/accordion/Accordion.d.ts.map +1 -0
  65. package/dist/components/accordion/leu-accordion.d.ts +8 -0
  66. package/dist/components/accordion/leu-accordion.d.ts.map +1 -0
  67. package/dist/components/accordion/stories/accordion.stories.d.ts +26 -0
  68. package/dist/components/accordion/stories/accordion.stories.d.ts.map +1 -0
  69. package/dist/components/accordion/test/accordion.test.d.ts +2 -0
  70. package/dist/components/accordion/test/accordion.test.d.ts.map +1 -0
  71. package/dist/components/button/Button.d.ts +93 -0
  72. package/dist/components/button/Button.d.ts.map +1 -0
  73. package/dist/components/button/leu-button.d.ts +8 -0
  74. package/dist/components/button/leu-button.d.ts.map +1 -0
  75. package/dist/components/button/stories/button.stories.d.ts +19 -0
  76. package/dist/components/button/stories/button.stories.d.ts.map +1 -0
  77. package/dist/components/button/test/button.test.d.ts +3 -0
  78. package/dist/components/button/test/button.test.d.ts.map +1 -0
  79. package/dist/components/button-group/ButtonGroup.d.ts +25 -0
  80. package/dist/components/button-group/ButtonGroup.d.ts.map +1 -0
  81. package/dist/components/button-group/leu-button-group.d.ts +8 -0
  82. package/dist/components/button-group/leu-button-group.d.ts.map +1 -0
  83. package/dist/components/button-group/stories/button-group.stories.d.ts +15 -0
  84. package/dist/components/button-group/stories/button-group.stories.d.ts.map +1 -0
  85. package/dist/components/button-group/test/button-group.test.d.ts +3 -0
  86. package/dist/components/button-group/test/button-group.test.d.ts.map +1 -0
  87. package/dist/components/checkbox/Checkbox.d.ts +43 -0
  88. package/dist/components/checkbox/Checkbox.d.ts.map +1 -0
  89. package/dist/components/checkbox/CheckboxGroup.d.ts +23 -0
  90. package/dist/components/checkbox/CheckboxGroup.d.ts.map +1 -0
  91. package/dist/components/checkbox/leu-checkbox-group.d.ts +8 -0
  92. package/dist/components/checkbox/leu-checkbox-group.d.ts.map +1 -0
  93. package/dist/components/checkbox/leu-checkbox.d.ts +8 -0
  94. package/dist/components/checkbox/leu-checkbox.d.ts.map +1 -0
  95. package/dist/components/checkbox/stories/checkbox-group.stories.d.ts +29 -0
  96. package/dist/components/checkbox/stories/checkbox-group.stories.d.ts.map +1 -0
  97. package/dist/components/checkbox/stories/checkbox.stories.d.ts +22 -0
  98. package/dist/components/checkbox/stories/checkbox.stories.d.ts.map +1 -0
  99. package/dist/components/checkbox/test/checkbox-group.test.d.ts +3 -0
  100. package/dist/components/checkbox/test/checkbox-group.test.d.ts.map +1 -0
  101. package/dist/components/checkbox/test/checkbox.test.d.ts +2 -0
  102. package/dist/components/checkbox/test/checkbox.test.d.ts.map +1 -0
  103. package/dist/components/chip/Chip.d.ts +21 -0
  104. package/dist/components/chip/Chip.d.ts.map +1 -0
  105. package/dist/components/chip/ChipGroup.d.ts +58 -0
  106. package/dist/components/chip/ChipGroup.d.ts.map +1 -0
  107. package/dist/components/chip/ChipLink.d.ts +29 -0
  108. package/dist/components/chip/ChipLink.d.ts.map +1 -0
  109. package/dist/components/chip/ChipRemovable.d.ts +32 -0
  110. package/dist/components/chip/ChipRemovable.d.ts.map +1 -0
  111. package/dist/components/chip/ChipSelectable.d.ts +51 -0
  112. package/dist/components/chip/ChipSelectable.d.ts.map +1 -0
  113. package/dist/components/chip/exports.d.ts +5 -0
  114. package/dist/components/chip/exports.d.ts.map +1 -0
  115. package/dist/components/chip/leu-chip-group.d.ts +8 -0
  116. package/dist/components/chip/leu-chip-group.d.ts.map +1 -0
  117. package/dist/components/chip/leu-chip-link.d.ts +8 -0
  118. package/dist/components/chip/leu-chip-link.d.ts.map +1 -0
  119. package/dist/components/chip/leu-chip-removable.d.ts +8 -0
  120. package/dist/components/chip/leu-chip-removable.d.ts.map +1 -0
  121. package/dist/components/chip/leu-chip-selectable.d.ts +8 -0
  122. package/dist/components/chip/leu-chip-selectable.d.ts.map +1 -0
  123. package/dist/components/chip/stories/chip-group.stories.d.ts +40 -0
  124. package/dist/components/chip/stories/chip-group.stories.d.ts.map +1 -0
  125. package/dist/components/chip/stories/chip-link.stories.d.ts +27 -0
  126. package/dist/components/chip/stories/chip-link.stories.d.ts.map +1 -0
  127. package/dist/components/chip/stories/chip-removable.stories.d.ts +21 -0
  128. package/dist/components/chip/stories/chip-removable.stories.d.ts.map +1 -0
  129. package/dist/components/chip/stories/chip-selectable.stories.d.ts +35 -0
  130. package/dist/components/chip/stories/chip-selectable.stories.d.ts.map +1 -0
  131. package/dist/components/chip/test/chip-group.test.d.ts +4 -0
  132. package/dist/components/chip/test/chip-group.test.d.ts.map +1 -0
  133. package/dist/components/chip/test/chip-link.test.d.ts +2 -0
  134. package/dist/components/chip/test/chip-link.test.d.ts.map +1 -0
  135. package/dist/components/chip/test/chip-removable.test.d.ts +2 -0
  136. package/dist/components/chip/test/chip-removable.test.d.ts.map +1 -0
  137. package/dist/components/chip/test/chip-selectable.test.d.ts +2 -0
  138. package/dist/components/chip/test/chip-selectable.test.d.ts.map +1 -0
  139. package/dist/components/chip/test/chip.test.d.ts +2 -0
  140. package/dist/components/chip/test/chip.test.d.ts.map +1 -0
  141. package/dist/components/dialog/Dialog.d.ts +41 -0
  142. package/dist/components/dialog/Dialog.d.ts.map +1 -0
  143. package/dist/components/dialog/leu-dialog.d.ts +8 -0
  144. package/dist/components/dialog/leu-dialog.d.ts.map +1 -0
  145. package/dist/components/dialog/stories/dialog.stories.d.ts +19 -0
  146. package/dist/components/dialog/stories/dialog.stories.d.ts.map +1 -0
  147. package/dist/components/dialog/test/dialog.test.d.ts +2 -0
  148. package/dist/components/dialog/test/dialog.test.d.ts.map +1 -0
  149. package/dist/components/dropdown/Dropdown.d.ts +49 -0
  150. package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
  151. package/dist/components/dropdown/leu-dropdown.d.ts +8 -0
  152. package/dist/components/dropdown/leu-dropdown.d.ts.map +1 -0
  153. package/dist/components/dropdown/stories/dropdown.stories.d.ts +25 -0
  154. package/dist/components/dropdown/stories/dropdown.stories.d.ts.map +1 -0
  155. package/dist/components/dropdown/test/dropdown.test.d.ts +2 -0
  156. package/dist/components/dropdown/test/dropdown.test.d.ts.map +1 -0
  157. package/dist/components/icon/Icon.d.ts +23 -0
  158. package/dist/components/icon/Icon.d.ts.map +1 -0
  159. package/dist/components/icon/leu-icon.d.ts +8 -0
  160. package/dist/components/icon/leu-icon.d.ts.map +1 -0
  161. package/dist/components/icon/paths.d.ts +101 -0
  162. package/dist/components/icon/paths.d.ts.map +1 -0
  163. package/dist/components/icon/stories/icon.stories.d.ts +22 -0
  164. package/dist/components/icon/stories/icon.stories.d.ts.map +1 -0
  165. package/dist/components/icon/test/icon.test.d.ts +2 -0
  166. package/dist/components/icon/test/icon.test.d.ts.map +1 -0
  167. package/dist/components/input/Input.d.ts +239 -0
  168. package/dist/components/input/Input.d.ts.map +1 -0
  169. package/dist/components/input/leu-input.d.ts +8 -0
  170. package/dist/components/input/leu-input.d.ts.map +1 -0
  171. package/dist/components/input/stories/input.stories.d.ts +35 -0
  172. package/dist/components/input/stories/input.stories.d.ts.map +1 -0
  173. package/dist/components/input/test/input.test.d.ts +2 -0
  174. package/dist/components/input/test/input.test.d.ts.map +1 -0
  175. package/dist/components/menu/Menu.d.ts +44 -0
  176. package/dist/components/menu/Menu.d.ts.map +1 -0
  177. package/dist/components/menu/MenuItem.d.ts +88 -0
  178. package/dist/components/menu/MenuItem.d.ts.map +1 -0
  179. package/dist/components/menu/leu-menu-item.d.ts +8 -0
  180. package/dist/components/menu/leu-menu-item.d.ts.map +1 -0
  181. package/dist/components/menu/leu-menu.d.ts +8 -0
  182. package/dist/components/menu/leu-menu.d.ts.map +1 -0
  183. package/dist/components/menu/stories/menu-item.stories.d.ts +24 -0
  184. package/dist/components/menu/stories/menu-item.stories.d.ts.map +1 -0
  185. package/dist/components/menu/stories/menu.stories.d.ts +26 -0
  186. package/dist/components/menu/stories/menu.stories.d.ts.map +1 -0
  187. package/dist/components/menu/test/menu-item.test.d.ts +3 -0
  188. package/dist/components/menu/test/menu-item.test.d.ts.map +1 -0
  189. package/dist/components/menu/test/menu.test.d.ts +4 -0
  190. package/dist/components/menu/test/menu.test.d.ts.map +1 -0
  191. package/dist/components/pagination/Pagination.d.ts +59 -0
  192. package/dist/components/pagination/Pagination.d.ts.map +1 -0
  193. package/dist/components/pagination/leu-pagination.d.ts +8 -0
  194. package/dist/components/pagination/leu-pagination.d.ts.map +1 -0
  195. package/dist/components/pagination/stories/pagination.stories.d.ts +17 -0
  196. package/dist/components/pagination/stories/pagination.stories.d.ts.map +1 -0
  197. package/dist/components/pagination/test/pagination.test.d.ts +2 -0
  198. package/dist/components/pagination/test/pagination.test.d.ts.map +1 -0
  199. package/dist/components/popup/Popup.d.ts +66 -0
  200. package/dist/components/popup/Popup.d.ts.map +1 -0
  201. package/dist/components/popup/leu-popup.d.ts +8 -0
  202. package/dist/components/popup/leu-popup.d.ts.map +1 -0
  203. package/dist/components/popup/stories/popup.stories.d.ts +17 -0
  204. package/dist/components/popup/stories/popup.stories.d.ts.map +1 -0
  205. package/dist/components/popup/test/popup.test.d.ts +2 -0
  206. package/dist/components/popup/test/popup.test.d.ts.map +1 -0
  207. package/dist/components/radio/Radio.d.ts +39 -0
  208. package/dist/components/radio/Radio.d.ts.map +1 -0
  209. package/dist/components/radio/RadioGroup.d.ts +34 -0
  210. package/dist/components/radio/RadioGroup.d.ts.map +1 -0
  211. package/dist/components/radio/leu-radio-group.d.ts +8 -0
  212. package/dist/components/radio/leu-radio-group.d.ts.map +1 -0
  213. package/dist/components/radio/leu-radio.d.ts +8 -0
  214. package/dist/components/radio/leu-radio.d.ts.map +1 -0
  215. package/dist/components/radio/stories/radio-group.stories.d.ts +29 -0
  216. package/dist/components/radio/stories/radio-group.stories.d.ts.map +1 -0
  217. package/dist/components/radio/stories/radio.stories.d.ts +22 -0
  218. package/dist/components/radio/stories/radio.stories.d.ts.map +1 -0
  219. package/dist/components/radio/test/radio-group.test.d.ts +3 -0
  220. package/dist/components/radio/test/radio-group.test.d.ts.map +1 -0
  221. package/dist/components/radio/test/radio.test.d.ts +2 -0
  222. package/dist/components/radio/test/radio.test.d.ts.map +1 -0
  223. package/dist/components/range/Range.d.ts +95 -0
  224. package/dist/components/range/Range.d.ts.map +1 -0
  225. package/dist/components/range/leu-range.d.ts +8 -0
  226. package/dist/components/range/leu-range.d.ts.map +1 -0
  227. package/dist/components/range/stories/range-slider.stories.d.ts +26 -0
  228. package/dist/components/range/stories/range-slider.stories.d.ts.map +1 -0
  229. package/dist/components/range/test/range.test.d.ts +2 -0
  230. package/dist/components/range/test/range.test.d.ts.map +1 -0
  231. package/dist/components/scroll-top/ScrollTop.d.ts +25 -0
  232. package/dist/components/scroll-top/ScrollTop.d.ts.map +1 -0
  233. package/dist/components/scroll-top/leu-scroll-top.d.ts +8 -0
  234. package/dist/components/scroll-top/leu-scroll-top.d.ts.map +1 -0
  235. package/dist/components/scroll-top/stories/scroll-top.stories.d.ts +8 -0
  236. package/dist/components/scroll-top/stories/scroll-top.stories.d.ts.map +1 -0
  237. package/dist/components/scroll-top/test/scroll-top.test.d.ts +2 -0
  238. package/dist/components/scroll-top/test/scroll-top.test.d.ts.map +1 -0
  239. package/dist/components/select/Select.d.ts +145 -0
  240. package/dist/components/select/Select.d.ts.map +1 -0
  241. package/dist/components/select/leu-select.d.ts +8 -0
  242. package/dist/components/select/leu-select.d.ts.map +1 -0
  243. package/dist/components/select/stories/select.stories.d.ts +23 -0
  244. package/dist/components/select/stories/select.stories.d.ts.map +1 -0
  245. package/dist/components/select/test/fixtures.d.ts +2 -0
  246. package/dist/components/select/test/fixtures.d.ts.map +1 -0
  247. package/dist/components/select/test/select.test.d.ts +3 -0
  248. package/dist/components/select/test/select.test.d.ts.map +1 -0
  249. package/dist/components/spinner/Spinner.d.ts +10 -0
  250. package/dist/components/spinner/Spinner.d.ts.map +1 -0
  251. package/dist/components/spinner/leu-spinner.d.ts +8 -0
  252. package/dist/components/spinner/leu-spinner.d.ts.map +1 -0
  253. package/dist/components/spinner/stories/spinner.stories.d.ts +16 -0
  254. package/dist/components/spinner/stories/spinner.stories.d.ts.map +1 -0
  255. package/dist/components/spinner/test/spinner.test.d.ts +2 -0
  256. package/dist/components/spinner/test/spinner.test.d.ts.map +1 -0
  257. package/dist/components/table/Table.d.ts +65 -0
  258. package/dist/components/table/Table.d.ts.map +1 -0
  259. package/dist/components/table/leu-table.d.ts +8 -0
  260. package/dist/components/table/leu-table.d.ts.map +1 -0
  261. package/dist/components/table/stories/table.stories.d.ts +15 -0
  262. package/dist/components/table/stories/table.stories.d.ts.map +1 -0
  263. package/dist/components/table/test/table.test.d.ts +2 -0
  264. package/dist/components/table/test/table.test.d.ts.map +1 -0
  265. package/dist/components/visually-hidden/VisuallyHidden.d.ts +9 -0
  266. package/dist/components/visually-hidden/VisuallyHidden.d.ts.map +1 -0
  267. package/dist/components/visually-hidden/leu-visually-hidden.d.ts +8 -0
  268. package/dist/components/visually-hidden/leu-visually-hidden.d.ts.map +1 -0
  269. package/dist/components/visually-hidden/stories/visually-hidden.stories.d.ts +13 -0
  270. package/dist/components/visually-hidden/stories/visually-hidden.stories.d.ts.map +1 -0
  271. package/dist/components/visually-hidden/test/visually-hidden.test.d.ts +2 -0
  272. package/dist/components/visually-hidden/test/visually-hidden.test.d.ts.map +1 -0
  273. package/dist/hasSlotController-Bm2tipvG.js +53 -0
  274. package/dist/hasSlotController.d-emXwVXWF.d.ts +23 -0
  275. package/dist/index.d.ts +17 -20
  276. package/dist/index.d.ts.map +1 -1
  277. package/dist/index.js +3 -2
  278. package/dist/leu-accordion.d.ts +12 -2
  279. package/dist/leu-accordion.js +2 -1
  280. package/dist/leu-button-group.d.ts +12 -2
  281. package/dist/leu-button-group.js +1 -1
  282. package/dist/leu-button.d.ts +14 -2
  283. package/dist/leu-button.js +2 -2
  284. package/dist/leu-checkbox-group.d.ts +12 -2
  285. package/dist/leu-checkbox-group.js +1 -1
  286. package/dist/leu-checkbox.d.ts +13 -2
  287. package/dist/leu-checkbox.js +1 -1
  288. package/dist/leu-chip-group.d.ts +12 -2
  289. package/dist/leu-chip-group.js +2 -2
  290. package/dist/leu-chip-link.d.ts +13 -2
  291. package/dist/leu-chip-link.js +1 -1
  292. package/dist/leu-chip-removable.d.ts +14 -2
  293. package/dist/leu-chip-removable.js +1 -1
  294. package/dist/leu-chip-selectable.d.ts +13 -2
  295. package/dist/leu-chip-selectable.js +1 -1
  296. package/dist/leu-dialog.d.ts +14 -2
  297. package/dist/leu-dialog.js +2 -2
  298. package/dist/leu-dropdown.d.ts +18 -2
  299. package/dist/leu-dropdown.js +2 -2
  300. package/dist/leu-icon.d.ts +12 -2
  301. package/dist/leu-icon.js +1 -1
  302. package/dist/leu-input.d.ts +13 -2
  303. package/dist/leu-input.js +1 -1
  304. package/dist/leu-menu-item.d.ts +13 -2
  305. package/dist/leu-menu-item.js +1 -1
  306. package/dist/leu-menu.d.ts +14 -2
  307. package/dist/leu-menu.js +1 -1
  308. package/dist/leu-pagination.d.ts +16 -2
  309. package/dist/leu-pagination.js +2 -2
  310. package/dist/leu-popup.d.ts +12 -2
  311. package/dist/leu-popup.js +1 -1
  312. package/dist/leu-radio-group.d.ts +12 -2
  313. package/dist/leu-radio-group.js +1 -1
  314. package/dist/leu-radio.d.ts +12 -2
  315. package/dist/leu-radio.js +1 -1
  316. package/dist/leu-range.d.ts +12 -2
  317. package/dist/leu-range.js +1 -1
  318. package/dist/leu-scroll-top.d.ts +15 -2
  319. package/dist/leu-scroll-top.js +2 -2
  320. package/dist/leu-select.d.ts +19 -2
  321. package/dist/leu-select.js +2 -2
  322. package/dist/leu-spinner.d.ts +12 -2
  323. package/dist/leu-spinner.js +1 -1
  324. package/dist/leu-table.d.ts +17 -2
  325. package/dist/leu-table.js +2 -2
  326. package/dist/leu-visually-hidden.d.ts +12 -2
  327. package/dist/leu-visually-hidden.js +1 -1
  328. package/dist/lib/LeuElement.d.ts +8 -0
  329. package/dist/lib/LeuElement.d.ts.map +1 -0
  330. package/dist/lib/a11y.d.ts +11 -0
  331. package/dist/lib/a11y.d.ts.map +1 -0
  332. package/dist/lib/hasSlotController.d.ts +20 -0
  333. package/dist/lib/hasSlotController.d.ts.map +1 -0
  334. package/dist/lib/utils.d.ts +16 -0
  335. package/dist/lib/utils.d.ts.map +1 -0
  336. package/dist/styles/style.stories.d.ts +6 -0
  337. package/dist/styles/style.stories.d.ts.map +1 -0
  338. package/dist/vscode.html-custom-data.json +1 -1
  339. package/dist/vue/index.d.ts +1 -3
  340. package/dist/web-types.json +4 -5
  341. package/package.json +18 -11
  342. package/release-please-config.json +10 -0
  343. package/rollup.config.js +55 -25
  344. package/scripts/generate-component/generate.js +1 -1
  345. package/scripts/generate-component/templates/{[Name].js → [Name].ts} +3 -3
  346. package/src/components/accordion/{Accordion.js → Accordion.ts} +26 -21
  347. package/src/components/accordion/{leu-accordion.js → leu-accordion.ts} +6 -0
  348. package/src/components/accordion/stories/{accordion.stories.js → accordion.stories.ts} +10 -8
  349. package/src/components/button/{Button.js → Button.ts} +0 -1
  350. package/src/components/button/{leu-button.js → leu-button.ts} +6 -0
  351. package/src/components/button-group/{ButtonGroup.js → ButtonGroup.ts} +4 -8
  352. package/src/components/button-group/{leu-button-group.js → leu-button-group.ts} +6 -0
  353. package/src/components/checkbox/{Checkbox.js → Checkbox.ts} +0 -1
  354. package/src/components/checkbox/{CheckboxGroup.js → CheckboxGroup.ts} +0 -1
  355. package/src/components/checkbox/{leu-checkbox-group.js → leu-checkbox-group.ts} +6 -0
  356. package/src/components/checkbox/{leu-checkbox.js → leu-checkbox.ts} +6 -0
  357. package/src/components/chip/{Chip.js → Chip.ts} +0 -1
  358. package/src/components/chip/{ChipGroup.js → ChipGroup.ts} +0 -1
  359. package/src/components/chip/{leu-chip-group.js → leu-chip-group.ts} +6 -0
  360. package/src/components/chip/{leu-chip-link.js → leu-chip-link.ts} +6 -0
  361. package/src/components/chip/{leu-chip-removable.js → leu-chip-removable.ts} +6 -0
  362. package/src/components/chip/{leu-chip-selectable.js → leu-chip-selectable.ts} +6 -0
  363. package/src/components/dialog/{Dialog.js → Dialog.ts} +0 -1
  364. package/src/components/dialog/{leu-dialog.js → leu-dialog.ts} +6 -0
  365. package/src/components/dropdown/{Dropdown.js → Dropdown.ts} +0 -1
  366. package/src/components/dropdown/{leu-dropdown.js → leu-dropdown.ts} +6 -0
  367. package/src/components/icon/{Icon.js → Icon.ts} +0 -1
  368. package/src/components/icon/{leu-icon.js → leu-icon.ts} +6 -0
  369. package/src/components/input/{Input.js → Input.ts} +0 -1
  370. package/src/components/input/{leu-input.js → leu-input.ts} +6 -0
  371. package/src/components/menu/{Menu.js → Menu.ts} +0 -1
  372. package/src/components/menu/{MenuItem.js → MenuItem.ts} +0 -1
  373. package/src/components/menu/{leu-menu-item.js → leu-menu-item.ts} +6 -0
  374. package/src/components/menu/{leu-menu.js → leu-menu.ts} +6 -0
  375. package/src/components/pagination/{Pagination.js → Pagination.ts} +0 -1
  376. package/src/components/pagination/{leu-pagination.js → leu-pagination.ts} +6 -0
  377. package/src/components/popup/{Popup.js → Popup.ts} +0 -1
  378. package/src/components/popup/{leu-popup.js → leu-popup.ts} +6 -0
  379. package/src/components/radio/{Radio.js → Radio.ts} +0 -1
  380. package/src/components/radio/{RadioGroup.js → RadioGroup.ts} +0 -1
  381. package/src/components/radio/{leu-radio-group.js → leu-radio-group.ts} +6 -0
  382. package/src/components/radio/{leu-radio.js → leu-radio.ts} +6 -0
  383. package/src/components/range/{leu-range.js → leu-range.ts} +6 -0
  384. package/src/components/scroll-top/{ScrollTop.js → ScrollTop.ts} +0 -1
  385. package/src/components/scroll-top/{leu-scroll-top.js → leu-scroll-top.ts} +6 -0
  386. package/src/components/select/{Select.js → Select.ts} +0 -1
  387. package/src/components/select/{leu-select.js → leu-select.ts} +6 -0
  388. package/src/components/select/test/{fixtures.js → fixtures.ts} +1 -1
  389. package/src/components/spinner/{leu-spinner.js → leu-spinner.ts} +6 -0
  390. package/src/components/table/{Table.js → Table.ts} +0 -1
  391. package/src/components/table/{leu-table.js → leu-table.ts} +6 -0
  392. package/src/components/visually-hidden/{VisuallyHidden.js → VisuallyHidden.ts} +0 -1
  393. package/src/components/visually-hidden/{leu-visually-hidden.js → leu-visually-hidden.ts} +6 -0
  394. package/src/docs/theme.mdx +14 -10
  395. package/src/global.d.ts +11 -0
  396. package/src/index.ts +17 -0
  397. package/src/lib/{LeuElement.js → LeuElement.ts} +15 -6
  398. package/src/lib/{a11y.js → a11y.ts} +2 -2
  399. package/src/lib/{hasSlotController.js → hasSlotController.ts} +12 -25
  400. package/stylelint.config.mjs +1 -1
  401. package/tsconfig.build.json +6 -4
  402. package/tsconfig.json +7 -10
  403. package/web-dev-server.config.mjs +11 -1
  404. package/web-test-runner.config.mjs +11 -2
  405. package/babel.config.json +0 -3
  406. package/dist/Accordion.d.ts.map +0 -1
  407. package/dist/Button.d.ts.map +0 -1
  408. package/dist/ButtonGroup.d.ts.map +0 -1
  409. package/dist/Checkbox.d.ts.map +0 -1
  410. package/dist/CheckboxGroup.d.ts.map +0 -1
  411. package/dist/Chip.d.ts.map +0 -1
  412. package/dist/ChipGroup.d.ts.map +0 -1
  413. package/dist/ChipLink.d.ts.map +0 -1
  414. package/dist/ChipRemovable.d.ts.map +0 -1
  415. package/dist/ChipSelectable.d.ts.map +0 -1
  416. package/dist/Dialog.d.ts.map +0 -1
  417. package/dist/Dropdown.d.ts.map +0 -1
  418. package/dist/Icon.d.ts.map +0 -1
  419. package/dist/Input.d.ts.map +0 -1
  420. package/dist/LeuElement-Dd6zm9XF.d.ts +0 -7
  421. package/dist/LeuElement-Dd6zm9XF.d.ts.map +0 -1
  422. package/dist/LeuElement-Dd6zm9XF.js +0 -70
  423. package/dist/Menu.d.ts.map +0 -1
  424. package/dist/MenuItem.d.ts.map +0 -1
  425. package/dist/Pagination.d.ts.map +0 -1
  426. package/dist/Popup.d.ts.map +0 -1
  427. package/dist/Radio.d.ts.map +0 -1
  428. package/dist/RadioGroup.d.ts.map +0 -1
  429. package/dist/Range.d.ts.map +0 -1
  430. package/dist/ScrollTop.d.ts.map +0 -1
  431. package/dist/Select.d.ts.map +0 -1
  432. package/dist/Spinner.d.ts.map +0 -1
  433. package/dist/Table.d.ts.map +0 -1
  434. package/dist/VisuallyHidden.d.ts.map +0 -1
  435. package/dist/hasSlotController-dQsSUUpb.d.ts +0 -38
  436. package/dist/hasSlotController-dQsSUUpb.d.ts.map +0 -1
  437. package/dist/hasSlotController-dQsSUUpb.js +0 -75
  438. package/dist/leu-accordion.d.ts.map +0 -1
  439. package/dist/leu-button-group.d.ts.map +0 -1
  440. package/dist/leu-button.d.ts.map +0 -1
  441. package/dist/leu-checkbox-group.d.ts.map +0 -1
  442. package/dist/leu-checkbox.d.ts.map +0 -1
  443. package/dist/leu-chip-group.d.ts.map +0 -1
  444. package/dist/leu-chip-link.d.ts.map +0 -1
  445. package/dist/leu-chip-removable.d.ts.map +0 -1
  446. package/dist/leu-chip-selectable.d.ts.map +0 -1
  447. package/dist/leu-dialog.d.ts.map +0 -1
  448. package/dist/leu-dropdown.d.ts.map +0 -1
  449. package/dist/leu-icon.d.ts.map +0 -1
  450. package/dist/leu-input.d.ts.map +0 -1
  451. package/dist/leu-menu-item.d.ts.map +0 -1
  452. package/dist/leu-menu.d.ts.map +0 -1
  453. package/dist/leu-pagination.d.ts.map +0 -1
  454. package/dist/leu-popup.d.ts.map +0 -1
  455. package/dist/leu-radio-group.d.ts.map +0 -1
  456. package/dist/leu-radio.d.ts.map +0 -1
  457. package/dist/leu-range.d.ts.map +0 -1
  458. package/dist/leu-scroll-top.d.ts.map +0 -1
  459. package/dist/leu-select.d.ts.map +0 -1
  460. package/dist/leu-spinner.d.ts.map +0 -1
  461. package/dist/leu-table.d.ts.map +0 -1
  462. package/dist/leu-visually-hidden.d.ts.map +0 -1
  463. package/index.js +0 -17
  464. /package/.storybook/{manager.js → manager.ts} +0 -0
  465. /package/.storybook/{preview.js → preview.ts} +0 -0
  466. /package/scripts/generate-component/templates/{[namespace]-[name].js → [namespace]-[name].ts} +0 -0
  467. /package/scripts/generate-component/templates/stories/{[name].stories.js → [name].stories.ts} +0 -0
  468. /package/scripts/generate-component/templates/test/{[name].test.js → [name].test.ts} +0 -0
  469. /package/src/components/accordion/test/{accordion.test.js → accordion.test.ts} +0 -0
  470. /package/src/components/button/stories/{button.stories.js → button.stories.ts} +0 -0
  471. /package/src/components/button/test/{button.test.js → button.test.ts} +0 -0
  472. /package/src/components/button-group/stories/{button-group.stories.js → button-group.stories.ts} +0 -0
  473. /package/src/components/button-group/test/{button-group.test.js → button-group.test.ts} +0 -0
  474. /package/src/components/checkbox/stories/{checkbox-group.stories.js → checkbox-group.stories.ts} +0 -0
  475. /package/src/components/checkbox/stories/{checkbox.stories.js → checkbox.stories.ts} +0 -0
  476. /package/src/components/checkbox/test/{checkbox-group.test.js → checkbox-group.test.ts} +0 -0
  477. /package/src/components/checkbox/test/{checkbox.test.js → checkbox.test.ts} +0 -0
  478. /package/src/components/chip/{ChipLink.js → ChipLink.ts} +0 -0
  479. /package/src/components/chip/{ChipRemovable.js → ChipRemovable.ts} +0 -0
  480. /package/src/components/chip/{ChipSelectable.js → ChipSelectable.ts} +0 -0
  481. /package/src/components/chip/{exports.js → exports.ts} +0 -0
  482. /package/src/components/chip/stories/{chip-group.stories.js → chip-group.stories.ts} +0 -0
  483. /package/src/components/chip/stories/{chip-link.stories.js → chip-link.stories.ts} +0 -0
  484. /package/src/components/chip/stories/{chip-removable.stories.js → chip-removable.stories.ts} +0 -0
  485. /package/src/components/chip/stories/{chip-selectable.stories.js → chip-selectable.stories.ts} +0 -0
  486. /package/src/components/chip/test/{chip-group.test.js → chip-group.test.ts} +0 -0
  487. /package/src/components/chip/test/{chip-link.test.js → chip-link.test.ts} +0 -0
  488. /package/src/components/chip/test/{chip-removable.test.js → chip-removable.test.ts} +0 -0
  489. /package/src/components/chip/test/{chip-selectable.test.js → chip-selectable.test.ts} +0 -0
  490. /package/src/components/chip/test/{chip.test.js → chip.test.ts} +0 -0
  491. /package/src/components/dialog/stories/{dialog.stories.js → dialog.stories.ts} +0 -0
  492. /package/src/components/dialog/test/{dialog.test.js → dialog.test.ts} +0 -0
  493. /package/src/components/dropdown/stories/{dropdown.stories.js → dropdown.stories.ts} +0 -0
  494. /package/src/components/dropdown/test/{dropdown.test.js → dropdown.test.ts} +0 -0
  495. /package/src/components/icon/{paths.js → paths.ts} +0 -0
  496. /package/src/components/icon/stories/{icon.stories.js → icon.stories.ts} +0 -0
  497. /package/src/components/icon/test/{icon.test.js → icon.test.ts} +0 -0
  498. /package/src/components/input/stories/{input.stories.js → input.stories.ts} +0 -0
  499. /package/src/components/input/test/{input.test.js → input.test.ts} +0 -0
  500. /package/src/components/menu/stories/{menu-item.stories.js → menu-item.stories.ts} +0 -0
  501. /package/src/components/menu/stories/{menu.stories.js → menu.stories.ts} +0 -0
  502. /package/src/components/menu/test/{menu-item.test.js → menu-item.test.ts} +0 -0
  503. /package/src/components/menu/test/{menu.test.js → menu.test.ts} +0 -0
  504. /package/src/components/pagination/stories/{pagination.stories.js → pagination.stories.ts} +0 -0
  505. /package/src/components/pagination/test/{pagination.test.js → pagination.test.ts} +0 -0
  506. /package/src/components/popup/stories/{popup.stories.js → popup.stories.ts} +0 -0
  507. /package/src/components/popup/test/{popup.test.js → popup.test.ts} +0 -0
  508. /package/src/components/radio/stories/{radio-group.stories.js → radio-group.stories.ts} +0 -0
  509. /package/src/components/radio/stories/{radio.stories.js → radio.stories.ts} +0 -0
  510. /package/src/components/radio/test/{radio-group.test.js → radio-group.test.ts} +0 -0
  511. /package/src/components/radio/test/{radio.test.js → radio.test.ts} +0 -0
  512. /package/src/components/range/{Range.js → Range.ts} +0 -0
  513. /package/src/components/range/stories/{range-slider.stories.js → range-slider.stories.ts} +0 -0
  514. /package/src/components/range/test/{range-test.js → range.test.ts} +0 -0
  515. /package/src/components/scroll-top/stories/{scroll-top.stories.js → scroll-top.stories.ts} +0 -0
  516. /package/src/components/scroll-top/test/{scroll-top.test.js → scroll-top.test.ts} +0 -0
  517. /package/src/components/select/stories/{select.stories.js → select.stories.ts} +0 -0
  518. /package/src/components/select/test/{select.test.js → select.test.ts} +0 -0
  519. /package/src/components/spinner/{Spinner.js → Spinner.ts} +0 -0
  520. /package/src/components/spinner/stories/{spinner.stories.js → spinner.stories.ts} +0 -0
  521. /package/src/components/spinner/test/{spinner.test.js → spinner.test.ts} +0 -0
  522. /package/src/components/table/stories/{table.stories.js → table.stories.ts} +0 -0
  523. /package/src/components/table/test/{table.test.js → table.test.ts} +0 -0
  524. /package/src/components/visually-hidden/stories/{visually-hidden.stories.js → visually-hidden.stories.ts} +0 -0
  525. /package/src/components/visually-hidden/test/{visually-hidden.test.js → visually-hidden.test.ts} +0 -0
  526. /package/src/lib/{utils.js → utils.ts} +0 -0
  527. /package/src/styles/{style.stories.js → style.stories.ts} +0 -0
package/dist/Input.js CHANGED
@@ -1,9 +1,9 @@
1
- import { _ as _defineProperty, L as LeuElement } from './LeuElement-Dd6zm9XF.js';
2
1
  import { css, nothing, html } from 'lit';
3
2
  import { classMap } from 'lit/directives/class-map.js';
4
3
  import { ifDefined } from 'lit/directives/if-defined.js';
5
4
  import { live } from 'lit/directives/live.js';
6
5
  import { createRef, ref } from 'lit/directives/ref.js';
6
+ import { L as LeuElement } from './LeuElement-x8UlIDDl.js';
7
7
  import { LeuIcon } from './Icon.js';
8
8
 
9
9
  var css_248z = css`:host {
@@ -278,29 +278,26 @@ var css_248z = css`:host {
278
278
  `;
279
279
 
280
280
  const SIZES = Object.freeze({
281
- SMALL: "small",
282
- REGULAR: "regular"
281
+ SMALL: "small",
282
+ REGULAR: "regular",
283
283
  });
284
-
285
284
  /**
286
285
  * TODO:
287
286
  * - Add section to docs about how to mark up suffix and prefix for screenreaders
288
287
  * - Handle validation
289
288
  * - Infotext attribute or slot?
290
289
  */
291
-
292
290
  const VALIDATION_MESSAGES = {
293
- badInput: "Bitte überprüfen Sie das Format.",
294
- patternMismatch: "Bitte überprüfen Sie das Format.",
295
- rangeOverflow: max => `Der Wert darf nicht grösser als ${max} sein.`,
296
- rangeUnderflow: min => `Der Wert darf nicht kleiner als ${min} sein.`,
297
- stepMismatch: "Bitte überprüfen Sie das Format.",
298
- tooLong: maxlength => `Die Eingabe muss kürzer als ${maxlength} Zeichen sein.`,
299
- tooShort: minlength => `Die Eingabe muss länger als ${minlength} Zeichen sein.`,
300
- typeMismatch: "Bitte überprüfen Sie das Format.",
301
- valueMissing: "Bitte füllen Sie das Feld aus."
291
+ badInput: "Bitte überprüfen Sie das Format.",
292
+ patternMismatch: "Bitte überprüfen Sie das Format.",
293
+ rangeOverflow: (max) => `Der Wert darf nicht grösser als ${max} sein.`,
294
+ rangeUnderflow: (min) => `Der Wert darf nicht kleiner als ${min} sein.`,
295
+ stepMismatch: "Bitte überprüfen Sie das Format.",
296
+ tooLong: (maxlength) => `Die Eingabe muss kürzer als ${maxlength} Zeichen sein.`,
297
+ tooShort: (minlength) => `Die Eingabe muss länger als ${minlength} Zeichen sein.`,
298
+ typeMismatch: "Bitte überprüfen Sie das Format.",
299
+ valueMissing: "Bitte füllen Sie das Feld aus.",
302
300
  };
303
-
304
301
  /**
305
302
  * A text input element.
306
303
  *
@@ -331,238 +328,219 @@ const VALIDATION_MESSAGES = {
331
328
  * @tagname leu-input
332
329
  */
333
330
  class LeuInput extends LeuElement {
334
- static resolveErrorMessage(message, refernceValue) {
335
- if (typeof message === "function") {
336
- return message(refernceValue);
331
+ static resolveErrorMessage(message, refernceValue) {
332
+ if (typeof message === "function") {
333
+ return message(refernceValue);
334
+ }
335
+ return message;
336
+ }
337
+ constructor() {
338
+ super();
339
+ this.disabled = false;
340
+ this.required = false;
341
+ this.clearable = false;
342
+ /** @type {"small" | "regular"} */
343
+ this.size = SIZES.REGULAR;
344
+ this.type = "text";
345
+ this._validity = null;
346
+ this.validationMessages = {};
347
+ this.novalidate = false;
348
+ this.value = "";
349
+ /** @internal */
350
+ this._identifier = "";
351
+ /**
352
+ * @internal
353
+ * @type {import("lit/directives/ref.js").Ref<HTMLInputElement>}
354
+ */
355
+ this._inputRef = createRef();
356
+ }
357
+ get valueAsNumber() {
358
+ if (this.value === "") {
359
+ return NaN;
360
+ }
361
+ return Number(this.value);
337
362
  }
338
- return message;
339
- }
340
- constructor() {
341
- super();
342
- this.disabled = false;
343
- this.required = false;
344
- this.clearable = false;
345
-
346
- /** @type {"small" | "regular"} */
347
- this.size = SIZES.REGULAR;
348
- this.type = "text";
349
- this._validity = null;
350
- this.validationMessages = {};
351
- this.novalidate = false;
352
- this.value = "";
353
-
354
- /** @internal */
355
- this._identifier = "";
356
-
357
363
  /**
358
- * @internal
359
- * @type {import("lit/directives/ref.js").Ref<HTMLInputElement>}
364
+ * Method for handling the click event of the wrapper element.
365
+ * Redirect every click on the wrapper to the input element.
366
+ * This is only necessary for click events because the wrapper element
367
+ * looks like the input element. But the actual input field does not
368
+ * completely fill the wrapper element. Keyboard events don't need to be
369
+ * handled because the actual input element is focusable.
370
+ * @private
371
+ * @param {MouseEvent|PointerEvent} event
372
+ * @returns {void}
360
373
  */
361
- this._inputRef = createRef();
362
- }
363
- get valueAsNumber() {
364
- if (this.value === "") {
365
- return NaN;
374
+ handleWrapperClick(event) {
375
+ if (event.target === event.currentTarget) {
376
+ this._inputRef.value.focus();
377
+ }
366
378
  }
367
- return Number(this.value);
368
- }
369
-
370
- /**
371
- * Method for handling the click event of the wrapper element.
372
- * Redirect every click on the wrapper to the input element.
373
- * This is only necessary for click events because the wrapper element
374
- * looks like the input element. But the actual input field does not
375
- * completely fill the wrapper element. Keyboard events don't need to be
376
- * handled because the actual input element is focusable.
377
- * @private
378
- * @param {MouseEvent|PointerEvent} event
379
- * @returns {void}
380
- */
381
- handleWrapperClick(event) {
382
- if (event.target === event.currentTarget) {
383
- this._inputRef.value.focus();
379
+ /**
380
+ * Method for handling the blur event of the input element.
381
+ * Checks validity of the input element and sets the validity state.
382
+ * @private
383
+ * @param {FocusEvent & {target: HTMLInputElement}} event
384
+ * @returns {void}
385
+ */
386
+ handleBlur(event) {
387
+ this._validity = null;
388
+ if (!this.novalidate) {
389
+ event.target.checkValidity();
390
+ }
384
391
  }
385
- }
386
-
387
- /**
388
- * Method for handling the blur event of the input element.
389
- * Checks validity of the input element and sets the validity state.
390
- * @private
391
- * @param {FocusEvent & {target: HTMLInputElement}} event
392
- * @returns {void}
393
- */
394
- handleBlur(event) {
395
- this._validity = null;
396
- if (!this.novalidate) {
397
- event.target.checkValidity();
392
+ /**
393
+ * Method for handling the invalid event of the input element.
394
+ * Sets the validity state.
395
+ * @private
396
+ * @param {Event} event
397
+ * @returns {void}
398
+ */
399
+ handleInvalid(event) {
400
+ this._validity = event.target.validity;
398
401
  }
399
- }
400
-
401
- /**
402
- * Method for handling the invalid event of the input element.
403
- * Sets the validity state.
404
- * @private
405
- * @param {Event} event
406
- * @returns {void}
407
- */
408
- handleInvalid(event) {
409
- this._validity = event.target.validity;
410
- }
411
-
412
- /**
413
- * Method for handling the change event of the input element.
414
- * Sets the value property and dispatches a change event so that
415
- * the event can be handled outside the shadow DOM.
416
- * @private
417
- * @param {Event} event
418
- * @fires {CustomEvent} change
419
- * @returns {void}
420
- */
421
- handleChange(event) {
422
- if (event.target.validity.valid) {
423
- this.value = event.target.value;
402
+ /**
403
+ * Method for handling the change event of the input element.
404
+ * Sets the value property and dispatches a change event so that
405
+ * the event can be handled outside the shadow DOM.
406
+ * @private
407
+ * @param {Event} event
408
+ * @fires {CustomEvent} change
409
+ * @returns {void}
410
+ */
411
+ handleChange(event) {
412
+ if (event.target.validity.valid) {
413
+ this.value = event.target.value;
414
+ }
415
+ const customEvent = new CustomEvent(event.type, event);
416
+ this.dispatchEvent(customEvent);
424
417
  }
425
- const customEvent = new CustomEvent(event.type, event);
426
- this.dispatchEvent(customEvent);
427
- }
428
-
429
- /**
430
- * Method for handling the input event of the input element.
431
- * Sets the value property and dispatches an input event so that
432
- * the event can be handled outside the shadow DOM.
433
- * @private
434
- * @param {Event} event
435
- * @returns {void}
436
- */
437
- handleInput(event) {
438
- this.value = event.target.value;
439
- const customEvent = new CustomEvent("input", {
440
- bubbles: true,
441
- composed: true
442
- });
443
- this.dispatchEvent(customEvent);
444
- }
445
-
446
- /**
447
- * Method for clearing the input element.
448
- * Sets the value property to an empty string and dispatches
449
- * an input and a change event.
450
- * @private
451
- * @returns {void}
452
- * @fires {CustomEvent} input
453
- * @fires {CustomEvent} change
454
- */
455
- clear() {
456
- this.value = "";
457
- this._inputRef.value.focus();
458
- this.dispatchEvent(new CustomEvent("input", {
459
- bubbles: true,
460
- composed: true
461
- }));
462
- this.dispatchEvent(new CustomEvent("change", {
463
- bubbles: true,
464
- composed: true
465
- }));
466
- }
467
-
468
- /**
469
- * Method for getting the id of the input element.
470
- * If the id attribute is set, the value of the id attribute is returned.
471
- * Otherwise a random id is generated and returned.
472
- *
473
- * @private
474
- * @returns {string} id
475
- */
476
- getId() {
477
- const id = this.getAttribute("id");
478
- if (id !== null && id !== "") {
479
- return id;
418
+ /**
419
+ * Method for handling the input event of the input element.
420
+ * Sets the value property and dispatches an input event so that
421
+ * the event can be handled outside the shadow DOM.
422
+ * @private
423
+ * @param {Event} event
424
+ * @returns {void}
425
+ */
426
+ handleInput(event) {
427
+ this.value = event.target.value;
428
+ const customEvent = new CustomEvent("input", {
429
+ bubbles: true,
430
+ composed: true,
431
+ });
432
+ this.dispatchEvent(customEvent);
480
433
  }
481
- if (this._identifier !== "") {
482
- return this._identifier;
434
+ /**
435
+ * Method for clearing the input element.
436
+ * Sets the value property to an empty string and dispatches
437
+ * an input and a change event.
438
+ * @private
439
+ * @returns {void}
440
+ * @fires {CustomEvent} input
441
+ * @fires {CustomEvent} change
442
+ */
443
+ clear() {
444
+ this.value = "";
445
+ this._inputRef.value.focus();
446
+ this.dispatchEvent(new CustomEvent("input", { bubbles: true, composed: true }));
447
+ this.dispatchEvent(new CustomEvent("change", { bubbles: true, composed: true }));
483
448
  }
484
- this._identifier = crypto.randomUUID();
485
- return this._identifier;
486
- }
487
-
488
- /**
489
- * Merge custom and default validation messages.
490
- * A validation message can be a function or a string.
491
- * If it s a function, the function is called with the corresponding
492
- * attribute value as argument.
493
- * e.g.
494
- * `tooLong(this.maxlength)`
495
- * This way the framework user can create reasonable validation messages
496
- *
497
- * @returns {Object} validationMessages
498
- */
499
- getValidationMessages() {
500
- const validationMessages = {
501
- ...VALIDATION_MESSAGES,
502
- ...this.validationMessages
503
- };
504
- const {
505
- tooLong,
506
- tooShort,
507
- rangeOverflow,
508
- rangeUnderflow
509
- } = validationMessages;
510
- validationMessages.tooLong = LeuInput.resolveErrorMessage(tooLong, this.maxlength);
511
- validationMessages.tooShort = LeuInput.resolveErrorMessage(tooShort, this.minlength);
512
- validationMessages.rangeOverflow = LeuInput.resolveErrorMessage(rangeOverflow, this.max);
513
- validationMessages.rangeUnderflow = LeuInput.resolveErrorMessage(rangeUnderflow, this.min);
514
- return validationMessages;
515
- }
516
- isInvalid() {
517
- if (this.error) {
518
- return true;
449
+ /**
450
+ * Method for getting the id of the input element.
451
+ * If the id attribute is set, the value of the id attribute is returned.
452
+ * Otherwise a random id is generated and returned.
453
+ *
454
+ * @private
455
+ * @returns {string} id
456
+ */
457
+ getId() {
458
+ const id = this.getAttribute("id");
459
+ if (id !== null && id !== "") {
460
+ return id;
461
+ }
462
+ if (this._identifier !== "") {
463
+ return this._identifier;
464
+ }
465
+ this._identifier = crypto.randomUUID();
466
+ return this._identifier;
519
467
  }
520
- return this._validity === null || this.novalidate ? false : !this._validity.valid;
521
- }
522
-
523
- /**
524
- * Check input validation
525
- * @returns {boolean} if valid or not
526
- */
527
- checkValidity() {
528
- return this._inputRef.value?.checkValidity() ?? false;
529
- }
530
-
531
- /**
532
- * Creates an error list with an item for the given validity state.
533
- * @returns {import("lit").TemplateResult | nothing}
534
- */
535
- renderErrorMessages() {
536
- if (!this.isInvalid()) {
537
- return nothing;
468
+ /**
469
+ * Merge custom and default validation messages.
470
+ * A validation message can be a function or a string.
471
+ * If it s a function, the function is called with the corresponding
472
+ * attribute value as argument.
473
+ * e.g.
474
+ * `tooLong(this.maxlength)`
475
+ * This way the framework user can create reasonable validation messages
476
+ *
477
+ * @returns {Object} validationMessages
478
+ */
479
+ getValidationMessages() {
480
+ const validationMessages = {
481
+ ...VALIDATION_MESSAGES,
482
+ ...this.validationMessages,
483
+ };
484
+ const { tooLong, tooShort, rangeOverflow, rangeUnderflow } = validationMessages;
485
+ validationMessages.tooLong = LeuInput.resolveErrorMessage(tooLong, this.maxlength);
486
+ validationMessages.tooShort = LeuInput.resolveErrorMessage(tooShort, this.minlength);
487
+ validationMessages.rangeOverflow = LeuInput.resolveErrorMessage(rangeOverflow, this.max);
488
+ validationMessages.rangeUnderflow = LeuInput.resolveErrorMessage(rangeUnderflow, this.min);
489
+ return validationMessages;
538
490
  }
539
- const validationMessages = this.getValidationMessages();
540
- let errorMessages = this._validity ? Object.entries(validationMessages).filter(([property]) => this._validity[property]).map(([_, message]) => message) : [];
541
- if (this.error !== "") {
542
- errorMessages = [this.error, errorMessages];
491
+ isInvalid() {
492
+ if (this.error) {
493
+ return true;
494
+ }
495
+ return this._validity === null || this.novalidate
496
+ ? false
497
+ : !this._validity.valid;
543
498
  }
544
- return html`
499
+ /**
500
+ * Check input validation
501
+ * @returns {boolean} if valid or not
502
+ */
503
+ checkValidity() {
504
+ return this._inputRef.value?.checkValidity() ?? false;
505
+ }
506
+ /**
507
+ * Creates an error list with an item for the given validity state.
508
+ * @returns {import("lit").TemplateResult | nothing}
509
+ */
510
+ renderErrorMessages() {
511
+ if (!this.isInvalid()) {
512
+ return nothing;
513
+ }
514
+ const validationMessages = this.getValidationMessages();
515
+ let errorMessages = this._validity
516
+ ? Object.entries(validationMessages)
517
+ .filter(([property]) => this._validity[property])
518
+ .map(([_, message]) => message)
519
+ : [];
520
+ if (this.error !== "") {
521
+ errorMessages = [this.error, errorMessages];
522
+ }
523
+ return html `
545
524
  <ul class="error" aria-errormessage=${`input-${this.getId()}`}>
546
- ${errorMessages.map(message => html`<li class="error-message">${message}</li>`)}
525
+ ${errorMessages.map((message) => html `<li class="error-message">${message}</li>`)}
547
526
  </ul>
548
527
  `;
549
- }
550
-
551
- /**
552
- * Determines the content that is displayed after the input element.
553
- * This can be either an icon, a clear button or an error indicator icon.
554
- *
555
- * @private
556
- * @returns {import("lit").TemplateResult | nothing}
557
- */
558
- renderAfterContent() {
559
- if (this.isInvalid()) {
560
- return html`<div class="error-icon">
528
+ }
529
+ /**
530
+ * Determines the content that is displayed after the input element.
531
+ * This can be either an icon, a clear button or an error indicator icon.
532
+ *
533
+ * @private
534
+ * @returns {import("lit").TemplateResult | nothing}
535
+ */
536
+ renderAfterContent() {
537
+ if (this.isInvalid()) {
538
+ return html `<div class="error-icon">
561
539
  <leu-icon name="caution"></leu-icon>
562
540
  </div>`;
563
- }
564
- if (this.clearable && this.value) {
565
- return html`<button
541
+ }
542
+ if (this.clearable && this.value) {
543
+ return html `<button
566
544
  class="clear-button"
567
545
  @click=${this.clear}
568
546
  aria-label="Eingabefeld zurücksetzen"
@@ -570,25 +548,24 @@ class LeuInput extends LeuElement {
570
548
  >
571
549
  <leu-icon name="clear"></leu-icon>
572
550
  </button>`;
573
- }
574
- if (this.icon) {
575
- return html`<div class="icon">
551
+ }
552
+ if (this.icon) {
553
+ return html `<div class="icon">
576
554
  <leu-icon name=${this.icon}></leu-icon>
577
555
  </div>`;
556
+ }
557
+ return nothing;
578
558
  }
579
- return nothing;
580
- }
581
- render() {
582
- const isInvalid = this.isInvalid();
583
- const inputWrapperClasses = {
584
- "input-wrapper": true,
585
- "input-wrapper--empty": !this.value,
586
- "input-wrapper--invalid": isInvalid
587
- };
588
-
589
- /* See the description of the handleWrapperClick method on why this rule is disabled */
590
- /* eslint-disable lit-a11y/click-events-have-key-events */
591
- return html`
559
+ render() {
560
+ const isInvalid = this.isInvalid();
561
+ const inputWrapperClasses = {
562
+ "input-wrapper": true,
563
+ "input-wrapper--empty": !this.value,
564
+ "input-wrapper--invalid": isInvalid,
565
+ };
566
+ /* See the description of the handleWrapperClick method on why this rule is disabled */
567
+ /* eslint-disable lit-a11y/click-events-have-key-events */
568
+ return html `
592
569
  <div
593
570
  @click=${this.handleWrapperClick}
594
571
  class=${classMap(inputWrapperClasses)}
@@ -615,109 +592,52 @@ class LeuInput extends LeuElement {
615
592
  aria-invalid=${isInvalid}
616
593
  />
617
594
  <label for="input-${this.getId()}" class="label">${this.label}</label>
618
- ${this.prefix ? html`<div class="prefix" .aria-hidden=${true}>${this.prefix}</div>` : nothing}
619
- ${this.suffix ? html`<div class="suffix" .aria-hidden=${true}>${this.suffix}</div>` : nothing}
595
+ ${this.prefix
596
+ ? html `<div class="prefix" .aria-hidden=${true}>${this.prefix}</div>`
597
+ : nothing}
598
+ ${this.suffix
599
+ ? html `<div class="suffix" .aria-hidden=${true}>${this.suffix}</div>`
600
+ : nothing}
620
601
  ${this.renderAfterContent()}
621
602
  </div>
622
603
  ${this.renderErrorMessages()}
623
604
  `;
624
- }
605
+ }
625
606
  }
626
- _defineProperty(LeuInput, "dependencies", {
627
- "leu-icon": LeuIcon
628
- });
629
- _defineProperty(LeuInput, "styles", [LeuElement.styles, css_248z]);
607
+ LeuInput.dependencies = {
608
+ "leu-icon": LeuIcon,
609
+ };
610
+ LeuInput.styles = [LeuElement.styles, css_248z];
630
611
  /**
631
612
  * @internal
632
613
  */
633
- _defineProperty(LeuInput, "shadowRootOptions", {
634
- ...LeuElement.shadowRootOptions,
635
- delegatesFocus: true
636
- });
637
- _defineProperty(LeuInput, "properties", {
638
- disabled: {
639
- type: Boolean,
640
- reflect: true
641
- },
642
- required: {
643
- type: Boolean,
644
- reflect: true
645
- },
646
- clearable: {
647
- type: Boolean,
648
- reflect: true
649
- },
650
- value: {
651
- type: String,
652
- reflect: true
653
- },
654
- name: {
655
- type: String,
656
- reflect: true
657
- },
658
- error: {
659
- type: String,
660
- reflect: true
661
- },
662
- label: {
663
- type: String,
664
- reflect: true
665
- },
666
- prefix: {
667
- type: String,
668
- reflect: true
669
- },
670
- suffix: {
671
- type: String,
672
- reflect: true
673
- },
674
- size: {
675
- type: String,
676
- reflect: true
677
- },
678
- icon: {
679
- type: String,
680
- reflect: true
681
- },
682
- /* Validation attributes */
683
- pattern: {
684
- type: String,
685
- reflect: true
686
- },
687
- type: {
688
- type: String,
689
- reflect: true
690
- },
691
- min: {
692
- type: String,
693
- reflect: true
694
- },
695
- max: {
696
- type: String,
697
- reflect: true
698
- },
699
- maxlength: {
700
- type: String,
701
- reflect: true
702
- },
703
- minlength: {
704
- type: String,
705
- reflect: true
706
- },
707
- validationMessages: {
708
- type: Object
709
- },
710
- novalidate: {
711
- type: Boolean,
712
- reflect: true
713
- },
714
- step: {
715
- type: String,
716
- reflect: true
717
- },
718
- _validity: {
719
- state: true
720
- }
721
- });
614
+ LeuInput.shadowRootOptions = {
615
+ ...LeuElement.shadowRootOptions,
616
+ delegatesFocus: true,
617
+ };
618
+ LeuInput.properties = {
619
+ disabled: { type: Boolean, reflect: true },
620
+ required: { type: Boolean, reflect: true },
621
+ clearable: { type: Boolean, reflect: true },
622
+ value: { type: String, reflect: true },
623
+ name: { type: String, reflect: true },
624
+ error: { type: String, reflect: true },
625
+ label: { type: String, reflect: true },
626
+ prefix: { type: String, reflect: true },
627
+ suffix: { type: String, reflect: true },
628
+ size: { type: String, reflect: true },
629
+ icon: { type: String, reflect: true },
630
+ /* Validation attributes */
631
+ pattern: { type: String, reflect: true },
632
+ type: { type: String, reflect: true },
633
+ min: { type: String, reflect: true },
634
+ max: { type: String, reflect: true },
635
+ maxlength: { type: String, reflect: true },
636
+ minlength: { type: String, reflect: true },
637
+ validationMessages: { type: Object },
638
+ novalidate: { type: Boolean, reflect: true },
639
+ step: { type: String, reflect: true },
640
+ _validity: { state: true },
641
+ };
722
642
 
723
643
  export { LeuInput, SIZES };