@statistikzh/leu 0.5.1 → 0.7.0

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 (236) hide show
  1. package/.husky/commit-msg +0 -3
  2. package/.husky/pre-commit +0 -3
  3. package/CHANGELOG.md +54 -0
  4. package/dist/Accordion.d.ts +10 -9
  5. package/dist/Accordion.d.ts.map +1 -1
  6. package/dist/Accordion.js +12 -11
  7. package/dist/Breadcrumb.d.ts +4 -4
  8. package/dist/Breadcrumb.d.ts.map +1 -1
  9. package/dist/Breadcrumb.js +28 -24
  10. package/dist/{Button-5326c982.d.ts → Button-7370f901.d.ts} +10 -11
  11. package/dist/Button-7370f901.d.ts.map +1 -0
  12. package/dist/{Button-5326c982.js → Button-7370f901.js} +57 -67
  13. package/dist/Button.d.ts +1 -1
  14. package/dist/Button.js +3 -3
  15. package/dist/ButtonGroup.d.ts +2 -2
  16. package/dist/ButtonGroup.d.ts.map +1 -1
  17. package/dist/ButtonGroup.js +3 -3
  18. package/dist/Checkbox.d.ts +4 -3
  19. package/dist/Checkbox.d.ts.map +1 -1
  20. package/dist/Checkbox.js +14 -17
  21. package/dist/CheckboxGroup.d.ts +2 -2
  22. package/dist/CheckboxGroup.d.ts.map +1 -1
  23. package/dist/CheckboxGroup.js +4 -4
  24. package/dist/Chip.d.ts +2 -2
  25. package/dist/Chip.d.ts.map +1 -1
  26. package/dist/Chip.js +23 -28
  27. package/dist/ChipGroup.d.ts +16 -8
  28. package/dist/ChipGroup.d.ts.map +1 -1
  29. package/dist/ChipGroup.js +39 -9
  30. package/dist/ChipLink.d.ts +2 -1
  31. package/dist/ChipLink.d.ts.map +1 -1
  32. package/dist/ChipLink.js +4 -7
  33. package/dist/ChipRemovable.d.ts +0 -2
  34. package/dist/ChipRemovable.d.ts.map +1 -1
  35. package/dist/ChipRemovable.js +8 -11
  36. package/dist/ChipSelectable.d.ts +12 -2
  37. package/dist/ChipSelectable.d.ts.map +1 -1
  38. package/dist/ChipSelectable.js +24 -26
  39. package/dist/Dropdown.d.ts +9 -5
  40. package/dist/Dropdown.d.ts.map +1 -1
  41. package/dist/Dropdown.js +68 -32
  42. package/dist/Icon.d.ts +116 -0
  43. package/dist/Icon.d.ts.map +1 -0
  44. package/dist/{icon-03e86700.js → Icon.js} +61 -32
  45. package/dist/Input.d.ts +13 -17
  46. package/dist/Input.d.ts.map +1 -1
  47. package/dist/Input.js +33 -24
  48. package/dist/LeuElement-ba5ea33d.d.ts +7 -0
  49. package/dist/LeuElement-ba5ea33d.d.ts.map +1 -0
  50. package/dist/{_rollupPluginBabelHelpers-20f659f4.js → LeuElement-ba5ea33d.js} +20 -1
  51. package/dist/Menu.d.ts +24 -2
  52. package/dist/Menu.d.ts.map +1 -1
  53. package/dist/Menu.js +120 -3
  54. package/dist/MenuItem.d.ts +28 -11
  55. package/dist/MenuItem.d.ts.map +1 -1
  56. package/dist/MenuItem.js +110 -63
  57. package/dist/Pagination.d.ts +10 -3
  58. package/dist/Pagination.d.ts.map +1 -1
  59. package/dist/Pagination.js +24 -21
  60. package/dist/Popup.d.ts +21 -3
  61. package/dist/Popup.d.ts.map +1 -1
  62. package/dist/Popup.js +44 -17
  63. package/dist/Radio.d.ts +4 -2
  64. package/dist/Radio.d.ts.map +1 -1
  65. package/dist/Radio.js +9 -14
  66. package/dist/RadioGroup.d.ts +2 -2
  67. package/dist/RadioGroup.d.ts.map +1 -1
  68. package/dist/RadioGroup.js +20 -11
  69. package/dist/ScrollTop.d.ts +2 -2
  70. package/dist/ScrollTop.d.ts.map +1 -1
  71. package/dist/ScrollTop.js +10 -8
  72. package/dist/Select.d.ts +75 -37
  73. package/dist/Select.d.ts.map +1 -1
  74. package/dist/Select.js +279 -181
  75. package/dist/Table.d.ts +2 -6
  76. package/dist/Table.d.ts.map +1 -1
  77. package/dist/Table.js +16 -16
  78. package/dist/VisuallyHidden.d.ts +2 -2
  79. package/dist/VisuallyHidden.d.ts.map +1 -1
  80. package/dist/VisuallyHidden.js +3 -3
  81. package/dist/index.d.ts +2 -2
  82. package/dist/index.js +5 -14
  83. package/dist/leu-accordion.d.ts.map +1 -1
  84. package/dist/leu-accordion.js +2 -3
  85. package/dist/leu-breadcrumb.d.ts.map +1 -1
  86. package/dist/leu-breadcrumb.js +4 -10
  87. package/dist/leu-button-group.d.ts.map +1 -1
  88. package/dist/leu-button-group.js +2 -3
  89. package/dist/leu-button.d.ts +1 -1
  90. package/dist/leu-button.d.ts.map +1 -1
  91. package/dist/leu-button.js +4 -5
  92. package/dist/leu-checkbox-group.d.ts.map +1 -1
  93. package/dist/leu-checkbox-group.js +2 -3
  94. package/dist/leu-checkbox.d.ts.map +1 -1
  95. package/dist/leu-checkbox.js +3 -4
  96. package/dist/leu-chip-group.d.ts.map +1 -1
  97. package/dist/leu-chip-group.js +2 -3
  98. package/dist/leu-chip-link.d.ts.map +1 -1
  99. package/dist/leu-chip-link.js +2 -3
  100. package/dist/leu-chip-removable.d.ts.map +1 -1
  101. package/dist/leu-chip-removable.js +3 -4
  102. package/dist/leu-chip-selectable.d.ts.map +1 -1
  103. package/dist/leu-chip-selectable.js +2 -3
  104. package/dist/leu-dropdown.d.ts.map +1 -1
  105. package/dist/leu-dropdown.js +5 -10
  106. package/dist/leu-icon.d.ts +3 -0
  107. package/dist/leu-icon.d.ts.map +1 -0
  108. package/dist/leu-icon.js +7 -0
  109. package/dist/leu-input.d.ts.map +1 -1
  110. package/dist/leu-input.js +3 -4
  111. package/dist/leu-menu-item.d.ts.map +1 -1
  112. package/dist/leu-menu-item.js +3 -5
  113. package/dist/leu-menu.d.ts.map +1 -1
  114. package/dist/leu-menu.js +5 -3
  115. package/dist/leu-pagination.d.ts.map +1 -1
  116. package/dist/leu-pagination.js +4 -7
  117. package/dist/leu-popup.d.ts.map +1 -1
  118. package/dist/leu-popup.js +2 -3
  119. package/dist/leu-radio-group.d.ts.map +1 -1
  120. package/dist/leu-radio-group.js +2 -3
  121. package/dist/leu-radio.d.ts.map +1 -1
  122. package/dist/leu-radio.js +2 -3
  123. package/dist/leu-scroll-top.d.ts.map +1 -1
  124. package/dist/leu-scroll-top.js +4 -6
  125. package/dist/leu-select.d.ts.map +1 -1
  126. package/dist/leu-select.js +5 -13
  127. package/dist/leu-table.d.ts.map +1 -1
  128. package/dist/leu-table.js +4 -8
  129. package/dist/leu-visually-hidden.d.ts.map +1 -1
  130. package/dist/leu-visually-hidden.js +2 -3
  131. package/dist/theme.css +2 -0
  132. package/dist/vscode.html-custom-data.json +124 -74
  133. package/dist/vue/index.d.ts +83 -67
  134. package/dist/web-types.json +256 -142
  135. package/package.json +9 -12
  136. package/scripts/generate-component/templates/[Name].js +6 -3
  137. package/scripts/generate-component/templates/test/[name].test.js +1 -1
  138. package/src/components/accordion/Accordion.js +13 -10
  139. package/src/components/accordion/leu-accordion.js +1 -2
  140. package/src/components/breadcrumb/Breadcrumb.js +31 -18
  141. package/src/components/breadcrumb/leu-breadcrumb.js +1 -2
  142. package/src/components/button/Button.js +45 -71
  143. package/src/components/button/button.css +11 -9
  144. package/src/components/button/leu-button.js +1 -2
  145. package/src/components/button/stories/button.stories.js +60 -19
  146. package/src/components/button/test/button.test.js +26 -63
  147. package/src/components/button-group/ButtonGroup.js +4 -2
  148. package/src/components/button-group/leu-button-group.js +1 -2
  149. package/src/components/checkbox/Checkbox.js +17 -11
  150. package/src/components/checkbox/CheckboxGroup.js +6 -3
  151. package/src/components/checkbox/leu-checkbox-group.js +1 -2
  152. package/src/components/checkbox/leu-checkbox.js +1 -2
  153. package/src/components/checkbox/stories/checkbox-group.stories.js +10 -26
  154. package/src/components/checkbox/stories/checkbox.stories.js +2 -7
  155. package/src/components/checkbox/test/checkbox-group.test.js +6 -21
  156. package/src/components/checkbox/test/checkbox.test.js +1 -12
  157. package/src/components/chip/Chip.js +5 -4
  158. package/src/components/chip/ChipGroup.js +38 -8
  159. package/src/components/chip/ChipLink.js +3 -7
  160. package/src/components/chip/ChipRemovable.js +8 -11
  161. package/src/components/chip/ChipSelectable.js +23 -27
  162. package/src/components/chip/chip.css +19 -20
  163. package/src/components/chip/leu-chip-group.js +1 -2
  164. package/src/components/chip/leu-chip-link.js +1 -2
  165. package/src/components/chip/leu-chip-removable.js +1 -2
  166. package/src/components/chip/leu-chip-selectable.js +1 -2
  167. package/src/components/chip/stories/chip-group.stories.js +6 -9
  168. package/src/components/chip/stories/chip-link.stories.js +3 -5
  169. package/src/components/chip/stories/chip-removable.stories.js +3 -4
  170. package/src/components/chip/stories/chip-selectable.stories.js +3 -3
  171. package/src/components/chip/test/chip-group.test.js +82 -30
  172. package/src/components/chip/test/chip-link.test.js +2 -6
  173. package/src/components/chip/test/chip-removable.test.js +4 -10
  174. package/src/components/chip/test/chip-selectable.test.js +10 -12
  175. package/src/components/dropdown/Dropdown.js +79 -26
  176. package/src/components/dropdown/leu-dropdown.js +1 -2
  177. package/src/components/dropdown/stories/dropdown.stories.js +30 -7
  178. package/src/components/dropdown/test/dropdown.test.js +5 -5
  179. package/src/components/icon/Icon.js +55 -0
  180. package/src/components/icon/icon.css +6 -0
  181. package/src/components/icon/leu-icon.js +5 -0
  182. package/src/components/icon/{icon.js → paths.js} +4 -37
  183. package/src/components/icon/stories/icon.stories.js +47 -0
  184. package/src/components/icon/test/icon.test.js +23 -40
  185. package/src/components/input/Input.js +31 -20
  186. package/src/components/input/input.css +4 -2
  187. package/src/components/input/leu-input.js +1 -2
  188. package/src/components/input/stories/input.stories.js +5 -5
  189. package/src/components/input/test/input.test.js +22 -0
  190. package/src/components/menu/Menu.js +143 -2
  191. package/src/components/menu/MenuItem.js +104 -52
  192. package/src/components/menu/leu-menu-item.js +1 -2
  193. package/src/components/menu/leu-menu.js +1 -2
  194. package/src/components/menu/menu-item.css +11 -4
  195. package/src/components/menu/stories/menu-item.stories.js +15 -4
  196. package/src/components/menu/stories/menu.stories.js +34 -7
  197. package/src/components/menu/test/menu-item.test.js +88 -82
  198. package/src/components/menu/test/menu.test.js +101 -8
  199. package/src/components/pagination/Pagination.js +27 -18
  200. package/src/components/pagination/leu-pagination.js +1 -2
  201. package/src/components/popup/Popup.js +39 -16
  202. package/src/components/popup/leu-popup.js +1 -2
  203. package/src/components/popup/popup.css +1 -0
  204. package/src/components/radio/Radio.js +12 -7
  205. package/src/components/radio/RadioGroup.js +18 -12
  206. package/src/components/radio/leu-radio-group.js +1 -2
  207. package/src/components/radio/leu-radio.js +1 -2
  208. package/src/components/radio/stories/radio-group.stories.js +5 -19
  209. package/src/components/radio/stories/radio.stories.js +2 -7
  210. package/src/components/radio/test/radio-group.test.js +6 -9
  211. package/src/components/radio/test/radio.test.js +3 -13
  212. package/src/components/scroll-top/ScrollTop.js +15 -5
  213. package/src/components/scroll-top/leu-scroll-top.js +1 -2
  214. package/src/components/select/Select.js +279 -175
  215. package/src/components/select/leu-select.js +1 -2
  216. package/src/components/select/select.css +20 -12
  217. package/src/components/select/stories/select.stories.js +16 -2
  218. package/src/components/select/test/select.test.js +191 -37
  219. package/src/components/table/Table.js +15 -9
  220. package/src/components/table/leu-table.js +1 -2
  221. package/src/components/table/table.css +3 -1
  222. package/src/components/visually-hidden/VisuallyHidden.js +6 -2
  223. package/src/components/visually-hidden/leu-visually-hidden.js +1 -2
  224. package/src/lib/LeuElement.js +23 -0
  225. package/src/lib/a11y.js +26 -0
  226. package/src/styles/custom-properties.css +2 -0
  227. package/web-test-runner.config.mjs +2 -0
  228. package/dist/Button-5326c982.d.ts.map +0 -1
  229. package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts +0 -3
  230. package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts.map +0 -1
  231. package/dist/defineElement-40372b4b.d.ts +0 -9
  232. package/dist/defineElement-40372b4b.d.ts.map +0 -1
  233. package/dist/defineElement-40372b4b.js +0 -15
  234. package/dist/icon-03e86700.d.ts +0 -11
  235. package/dist/icon-03e86700.d.ts.map +0 -1
  236. package/src/lib/defineElement.js +0 -13
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@statistikzh/leu",
4
- "version": "0.5.1",
4
+ "version": "0.7.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -14,22 +14,22 @@
14
14
  {
15
15
  "name": "heading-level",
16
16
  "description": "The heading level of the accordion title. Must be between 1 and 6.",
17
- "value": { "type": "Number", "default": "2" }
17
+ "value": { "type": "number", "default": "2" }
18
18
  },
19
19
  {
20
20
  "name": "label-prefix",
21
21
  "description": "The prefix of the accordion label. e.g. \"01\"",
22
- "value": { "type": "String" }
22
+ "value": { "type": "string", "default": "\"\"" }
23
23
  },
24
24
  {
25
25
  "name": "open",
26
26
  "description": "The expanded state of the accordion.",
27
- "value": { "type": "Boolean", "default": "false" }
27
+ "value": { "type": "boolean", "default": "false" }
28
28
  },
29
29
  {
30
30
  "name": "label",
31
31
  "description": "The label (title) of the accordion.",
32
- "value": { "type": "String", "default": "\"\"" }
32
+ "value": { "type": "string", "default": "\"\"" }
33
33
  }
34
34
  ],
35
35
  "slots": [
@@ -44,22 +44,22 @@
44
44
  {
45
45
  "name": "heading-level",
46
46
  "description": "The heading level of the accordion title. Must be between 1 and 6.",
47
- "value": { "type": "Number" }
47
+ "value": { "type": "number" }
48
48
  },
49
49
  {
50
50
  "name": "label-prefix",
51
51
  "description": "The prefix of the accordion label. e.g. \"01\"",
52
- "value": { "type": "String" }
52
+ "value": { "type": "string" }
53
53
  },
54
54
  {
55
55
  "name": "open",
56
56
  "description": "The expanded state of the accordion.",
57
- "value": { "type": "Boolean" }
57
+ "value": { "type": "boolean" }
58
58
  },
59
59
  {
60
60
  "name": "label",
61
61
  "description": "The label (title) of the accordion.",
62
- "value": { "type": "String" }
62
+ "value": { "type": "string" }
63
63
  }
64
64
  ],
65
65
  "events": []
@@ -78,7 +78,7 @@
78
78
  {
79
79
  "name": "inverted",
80
80
  "description": "invert color on dark background",
81
- "value": { "type": "Boolean", "default": "false" }
81
+ "value": { "type": "boolean", "default": "false" }
82
82
  },
83
83
  { "name": "_hiddenItems", "value": { "type": "string" } },
84
84
  { "name": "_showBackOnly", "value": { "type": "string" } },
@@ -96,7 +96,7 @@
96
96
  {
97
97
  "name": "inverted",
98
98
  "description": "invert color on dark background",
99
- "value": { "type": "Boolean" }
99
+ "value": { "type": "boolean" }
100
100
  },
101
101
  { "name": "_hiddenItems", "value": {} },
102
102
  { "name": "_showBackOnly", "value": {} },
@@ -108,25 +108,13 @@
108
108
  },
109
109
  {
110
110
  "name": "leu-button",
111
- "description": "\n---\n",
111
+ "description": "\n---\n\n\n### **Slots:**\n - **before** - The icon to display before the label\n- **after** - The icon to display after the label\n- _default_ - The label of the button or the icon if no label is set",
112
112
  "doc-url": "",
113
113
  "attributes": [
114
114
  {
115
115
  "name": "label",
116
116
  "value": { "type": "string", "default": "null" }
117
117
  },
118
- {
119
- "name": "icon",
120
- "value": { "type": "string", "default": "null" }
121
- },
122
- {
123
- "name": "iconPosition",
124
- "description": "Only taken into account if Label and no Icon is set",
125
- "value": {
126
- "type": "(\"before\" | \"after\")",
127
- "default": "\"before\""
128
- }
129
- },
130
118
  {
131
119
  "name": "size",
132
120
  "value": { "type": "string", "default": "\"regular\"" }
@@ -142,7 +130,10 @@
142
130
  "default": "\"button\""
143
131
  }
144
132
  },
145
- { "name": "componentRole", "value": { "type": "string" } },
133
+ {
134
+ "name": "componentRole",
135
+ "value": { "type": "string", "default": "undefined" }
136
+ },
146
137
  {
147
138
  "name": "disabled",
148
139
  "value": { "type": "boolean", "default": "false" }
@@ -175,16 +166,24 @@
175
166
  "value": { "type": "boolean", "default": "false" }
176
167
  }
177
168
  ],
169
+ "slots": [
170
+ {
171
+ "name": "before",
172
+ "description": "The icon to display before the label"
173
+ },
174
+ {
175
+ "name": "after",
176
+ "description": "The icon to display after the label"
177
+ },
178
+ {
179
+ "name": "",
180
+ "description": "The label of the button or the icon if no label is set"
181
+ }
182
+ ],
178
183
  "events": [],
179
184
  "js": {
180
185
  "properties": [
181
186
  { "name": "label", "value": { "type": "string" } },
182
- { "name": "icon", "value": { "type": "string" } },
183
- {
184
- "name": "iconPosition",
185
- "description": "Only taken into account if Label and no Icon is set",
186
- "value": { "type": "(\"before\" | \"after\")" }
187
- },
188
187
  { "name": "size", "value": { "type": "string" } },
189
188
  { "name": "variant", "value": { "type": "string" } },
190
189
  {
@@ -263,20 +262,19 @@
263
262
  "name": "disabled",
264
263
  "value": { "type": "boolean", "default": "false" }
265
264
  },
266
- { "name": "identifier", "value": { "type": "string" } },
267
- { "name": "value", "value": { "type": "string" } },
268
- { "name": "name", "value": { "type": "string" } },
269
- { "name": "label", "value": { "type": "string" } }
265
+ {
266
+ "name": "value",
267
+ "value": { "type": "string", "default": "\"\"" }
268
+ },
269
+ { "name": "name", "value": { "type": "string", "default": "\"\"" } }
270
270
  ],
271
271
  "events": [],
272
272
  "js": {
273
273
  "properties": [
274
274
  { "name": "checked", "value": { "type": "boolean" } },
275
275
  { "name": "disabled", "value": { "type": "boolean" } },
276
- { "name": "identifier", "value": { "type": "string" } },
277
276
  { "name": "value", "value": { "type": "string" } },
278
- { "name": "name", "value": { "type": "string" } },
279
- { "name": "label", "value": { "type": "string" } }
277
+ { "name": "name", "value": { "type": "string" } }
280
278
  ],
281
279
  "events": []
282
280
  }
@@ -310,7 +308,10 @@
310
308
  "name": "inverted",
311
309
  "value": { "type": "boolean", "default": "false" }
312
310
  },
313
- { "name": "selection-mode", "value": { "type": "string" } },
311
+ {
312
+ "name": "selection-mode",
313
+ "value": { "type": "\"single\" | \"multiple\" | \"none\"" }
314
+ },
314
315
  {
315
316
  "name": "heading-level",
316
317
  "value": { "type": "number", "default": "2" }
@@ -330,7 +331,10 @@
330
331
  "js": {
331
332
  "properties": [
332
333
  { "name": "inverted", "value": { "type": "boolean" } },
333
- { "name": "selection-mode", "value": { "type": "string" } },
334
+ {
335
+ "name": "selection-mode",
336
+ "value": { "type": "\"single\" | \"multiple\" | \"none\"" }
337
+ },
334
338
  { "name": "heading-level", "value": { "type": "number" } },
335
339
  { "name": "label", "value": { "type": "string" } }
336
340
  ],
@@ -355,8 +359,7 @@
355
359
  {
356
360
  "name": "inverted",
357
361
  "value": { "type": "boolean", "default": "false" }
358
- },
359
- { "name": "label", "value": { "type": "string" } }
362
+ }
360
363
  ],
361
364
  "slots": [{ "name": "", "description": "The content of the chip" }],
362
365
  "events": [],
@@ -369,8 +372,7 @@
369
372
  "value": { "type": "keyof typeof SIZES" }
370
373
  },
371
374
  { "name": "href", "value": { "type": "string" } },
372
- { "name": "inverted", "value": { "type": "boolean" } },
373
- { "name": "label", "value": { "type": "string" } }
375
+ { "name": "inverted", "value": { "type": "boolean" } }
374
376
  ],
375
377
  "events": []
376
378
  }
@@ -384,8 +386,7 @@
384
386
  {
385
387
  "name": "inverted",
386
388
  "value": { "type": "boolean", "default": "false" }
387
- },
388
- { "name": "label", "value": { "type": "string" } }
389
+ }
389
390
  ],
390
391
  "slots": [{ "name": "", "description": "The content of the chip" }],
391
392
  "events": [
@@ -397,8 +398,7 @@
397
398
  "js": {
398
399
  "properties": [
399
400
  { "name": "", "value": {} },
400
- { "name": "inverted", "value": { "type": "boolean" } },
401
- { "name": "label", "value": { "type": "string" } }
401
+ { "name": "inverted", "value": { "type": "boolean" } }
402
402
  ],
403
403
  "events": [
404
404
  {
@@ -417,29 +417,30 @@
417
417
  {
418
418
  "name": "size",
419
419
  "description": "The size of the chip. Not supported for radio variant.",
420
- "value": {
421
- "type": "keyof typeof SIZES",
422
- "default": "\"regular\""
423
- }
420
+ "value": { "type": "keyof typeof SIZES" }
424
421
  },
425
422
  {
426
423
  "name": "variant",
427
- "description": "The variant of the chip. Has an effect not only on the visual appearance but also on the behavior.\n- `toggle`: The chip behaves like a toggle button.\n- `radio`: The chip behaves like a radio button.",
424
+ "description": "`toggle` or `radio`. Determines if only one or multiple chips can be selected.",
428
425
  "value": {
429
426
  "type": "keyof typeof VARIANTS",
430
427
  "default": "\"toggle\""
431
428
  }
432
429
  },
433
430
  {
434
- "name": "selected",
431
+ "name": "checked",
432
+ "description": "Whether the chip is selected.",
435
433
  "value": { "type": "boolean", "default": "false" }
436
434
  },
437
- { "name": "value", "value": { "type": "string" } },
435
+ {
436
+ "name": "value",
437
+ "description": "The value of the chip.",
438
+ "value": { "type": "string" }
439
+ },
438
440
  {
439
441
  "name": "inverted",
440
442
  "value": { "type": "boolean", "default": "false" }
441
- },
442
- { "name": "label", "value": { "type": "string" } }
443
+ }
443
444
  ],
444
445
  "slots": [{ "name": "", "description": "The content of the chip" }],
445
446
  "events": [{ "name": "input" }],
@@ -453,13 +454,20 @@
453
454
  },
454
455
  {
455
456
  "name": "variant",
456
- "description": "The variant of the chip. Has an effect not only on the visual appearance but also on the behavior.\n- `toggle`: The chip behaves like a toggle button.\n- `radio`: The chip behaves like a radio button.",
457
+ "description": "`toggle` or `radio`. Determines if only one or multiple chips can be selected.",
457
458
  "value": { "type": "keyof typeof VARIANTS" }
458
459
  },
459
- { "name": "selected", "value": { "type": "boolean" } },
460
- { "name": "value", "value": { "type": "string" } },
461
- { "name": "inverted", "value": { "type": "boolean" } },
462
- { "name": "label", "value": { "type": "string" } }
460
+ {
461
+ "name": "checked",
462
+ "description": "Whether the chip is selected.",
463
+ "value": { "type": "boolean" }
464
+ },
465
+ {
466
+ "name": "value",
467
+ "description": "The value of the chip.",
468
+ "value": { "type": "string" }
469
+ },
470
+ { "name": "inverted", "value": { "type": "boolean" } }
463
471
  ],
464
472
  "events": [{ "name": "input" }]
465
473
  }
@@ -487,9 +495,32 @@
487
495
  "events": []
488
496
  }
489
497
  },
498
+ {
499
+ "name": "leu-icon",
500
+ "description": "A component to render all defined zhWeb icons.\nThe `fill` of the icon is set to `currentColor` and\ncan be overriden by setting the css `color` property.\nIf the icon name is not found, a placeholder will be displayed.\n---\n\n\n### **CSS Properties:**\n - **--leu-icon-size** - The size of the icon. _(default: undefined)_",
501
+ "doc-url": "",
502
+ "attributes": [
503
+ {
504
+ "name": "name",
505
+ "description": "The name of the icon to display.",
506
+ "value": { "type": "IconPathName", "default": "\"\"" }
507
+ }
508
+ ],
509
+ "events": [],
510
+ "js": {
511
+ "properties": [
512
+ {
513
+ "name": "name",
514
+ "description": "The name of the icon to display.",
515
+ "value": { "type": "IconPathName" }
516
+ }
517
+ ],
518
+ "events": []
519
+ }
520
+ },
490
521
  {
491
522
  "name": "leu-input",
492
- "description": "A text input element.\n---\n\n\n### **Events:**\n - **input** - Dispatched when the value of the input element changes.\n- **change** - Dispatched when the value of the input element changes and the input element loses focus.\n\n### **Methods:**\n - **getValidationMessages(): _Object_** - Merge custom and default validation messages.\nA validation message can be a function or a string.\nIf it s a function, the function is called with the corresponding\nattribute value as argument.\ne.g.\n`tooLong(this.maxlength)`\nThis way the framework user can create reasonable validation messages\n- **renderErrorMessages(validityState: _ValidityState_, validationMessages: _Object_, idRef: _String_): __** - Creates an error list with an item for the given validity state.",
523
+ "description": "A text input element.\n---\n\n\n### **Events:**\n - **input** - Dispatched when the value of the input element changes.\n- **change** - Dispatched when the value of the input element changes and the input element loses focus.\n\n### **Methods:**\n - **getValidationMessages(): _Object_** - Merge custom and default validation messages.\nA validation message can be a function or a string.\nIf it s a function, the function is called with the corresponding\nattribute value as argument.\ne.g.\n`tooLong(this.maxlength)`\nThis way the framework user can create reasonable validation messages\n- **renderErrorMessages(): _TemplateResult | nothing_** - Creates an error list with an item for the given validity state.",
493
524
  "doc-url": "",
494
525
  "attributes": [
495
526
  {
@@ -510,7 +541,7 @@
510
541
  {
511
542
  "name": "value",
512
543
  "description": "The value of the input element.",
513
- "value": { "type": "string" }
544
+ "value": { "type": "string", "default": "\"\"" }
514
545
  },
515
546
  {
516
547
  "name": "name",
@@ -727,40 +758,60 @@
727
758
  "name": "leu-menu",
728
759
  "description": "\n---\n",
729
760
  "doc-url": "",
730
- "attributes": [],
761
+ "attributes": [
762
+ {
763
+ "name": "selects",
764
+ "description": "This has only an effect when the role is 'menu'. It defines which role the menu items will get. Default is 'none'.",
765
+ "value": { "type": "SelectsType", "default": "\"none\"" }
766
+ }
767
+ ],
731
768
  "events": [],
732
- "js": { "properties": [], "events": [] }
769
+ "js": {
770
+ "properties": [
771
+ {
772
+ "name": "selects",
773
+ "description": "This has only an effect when the role is 'menu'. It defines which role the menu items will get. Default is 'none'.",
774
+ "value": { "type": "SelectsType" }
775
+ }
776
+ ],
777
+ "events": []
778
+ }
733
779
  },
734
780
  {
735
781
  "name": "leu-menu-item",
736
- "description": "\n---\n\n\n### **Slots:**\n - _default_ - The label of the menu item",
782
+ "description": "\n---\n\n\n### **Methods:**\n - **getValue(): _string_** - Returns the value of the item. If `value` is not set, it will return the inner text\n\n### **Slots:**\n - _default_ - The label of the menu item",
737
783
  "doc-url": "",
738
784
  "attributes": [
739
785
  {
740
- "name": "before",
741
- "description": "Can be either an icon name or a text\nIf no icon with this value is found, it will be displayed as text.\nIf the value is \"EMPTY\", an empty placeholder with the size of an icon will be displayed.",
742
- "value": { "type": "string" }
786
+ "name": "active",
787
+ "description": "Defines if the item is selected or checked",
788
+ "value": { "type": "boolean", "default": "false" }
743
789
  },
744
790
  {
745
- "name": "after",
746
- "description": "Can be either an icon name or a text\nIf no icon with this value is found, it will be displayed as text\nIf the value is \"EMPTY\", an empty placeholder with the size of an icon will be displayed.",
747
- "value": { "type": "string" }
791
+ "name": "disabled",
792
+ "description": "Disables the underlying button or link",
793
+ "value": { "type": "boolean", "default": "false" }
748
794
  },
749
795
  {
750
- "name": "active",
751
- "value": { "type": "boolean", "default": "false" }
796
+ "name": "tabbable",
797
+ "description": "If the item should be focusable. Will be reflected as `tabindex` to the underlying button or link",
798
+ "value": { "type": "boolean", "default": "undefined" }
752
799
  },
753
800
  {
754
- "name": "highlighted",
755
- "description": "A programmatic way to highlight the menu item like it is hovered.\nThis is just a visual effect and does not change the active state.",
756
- "value": { "type": "boolean", "default": "false" }
801
+ "name": "href",
802
+ "description": "The href of the underlying link",
803
+ "value": { "type": "string", "default": "undefined" }
757
804
  },
758
805
  {
759
- "name": "disabled",
760
- "value": { "type": "boolean", "default": "false" }
806
+ "name": "value",
807
+ "description": "The value of the item. It must not contain commas. See `getValue()`",
808
+ "value": { "type": "string", "default": "undefined" }
761
809
  },
762
- { "name": "label", "value": { "type": "string" } },
763
- { "name": "href", "value": { "type": "string" } }
810
+ {
811
+ "name": "componentRole",
812
+ "description": "The role of the item. This will be reflected as `role` to the underlying button or link. Default is `'menuitem'.`",
813
+ "value": { "type": "MenuItemRole", "default": "\"menuitem\"" }
814
+ }
764
815
  ],
765
816
  "slots": [
766
817
  { "name": "", "description": "The label of the menu item" }
@@ -769,24 +820,35 @@
769
820
  "js": {
770
821
  "properties": [
771
822
  {
772
- "name": "before",
773
- "description": "Can be either an icon name or a text\nIf no icon with this value is found, it will be displayed as text.\nIf the value is \"EMPTY\", an empty placeholder with the size of an icon will be displayed.",
774
- "value": { "type": "string" }
823
+ "name": "active",
824
+ "description": "Defines if the item is selected or checked",
825
+ "value": { "type": "boolean" }
775
826
  },
776
827
  {
777
- "name": "after",
778
- "description": "Can be either an icon name or a text\nIf no icon with this value is found, it will be displayed as text\nIf the value is \"EMPTY\", an empty placeholder with the size of an icon will be displayed.",
779
- "value": { "type": "string" }
828
+ "name": "disabled",
829
+ "description": "Disables the underlying button or link",
830
+ "value": { "type": "boolean" }
780
831
  },
781
- { "name": "active", "value": { "type": "boolean" } },
782
832
  {
783
- "name": "highlighted",
784
- "description": "A programmatic way to highlight the menu item like it is hovered.\nThis is just a visual effect and does not change the active state.",
833
+ "name": "tabbable",
834
+ "description": "If the item should be focusable. Will be reflected as `tabindex` to the underlying button or link",
785
835
  "value": { "type": "boolean" }
786
836
  },
787
- { "name": "disabled", "value": { "type": "boolean" } },
788
- { "name": "label", "value": { "type": "string" } },
789
- { "name": "href", "value": { "type": "string" } }
837
+ {
838
+ "name": "href",
839
+ "description": "The href of the underlying link",
840
+ "value": { "type": "string" }
841
+ },
842
+ {
843
+ "name": "value",
844
+ "description": "The value of the item. It must not contain commas. See `getValue()`",
845
+ "value": { "type": "string" }
846
+ },
847
+ {
848
+ "name": "componentRole",
849
+ "description": "The role of the item. This will be reflected as `role` to the underlying button or link. Default is `'menuitem'.`",
850
+ "value": { "type": "MenuItemRole" }
851
+ }
790
852
  ],
791
853
  "events": []
792
854
  }
@@ -805,11 +867,7 @@
805
867
  "name": "numOfItems",
806
868
  "value": { "type": "Number", "default": "1" }
807
869
  },
808
- {
809
- "name": "_page",
810
- "description": "Internal page state that contains an\nalready clamped page number. Should only\nbe accessed through the `page` getter and\nsetter.",
811
- "value": { "type": "Number", "default": "1" }
812
- }
870
+ { "name": "_page", "value": { "type": "string" } }
813
871
  ],
814
872
  "events": [{ "name": "leu:pagechange" }],
815
873
  "js": {
@@ -817,11 +875,7 @@
817
875
  { "name": "defaultPage", "value": { "type": "number" } },
818
876
  { "name": "itemsPerPage", "value": { "type": "Number" } },
819
877
  { "name": "numOfItems", "value": { "type": "Number" } },
820
- {
821
- "name": "_page",
822
- "description": "Internal page state that contains an\nalready clamped page number. Should only\nbe accessed through the `page` getter and\nsetter.",
823
- "value": { "type": "Number" }
824
- }
878
+ { "name": "_page", "value": {} }
825
879
  ],
826
880
  "events": [{ "name": "leu:pagechange" }]
827
881
  }
@@ -831,14 +885,21 @@
831
885
  "description": "\n---\n",
832
886
  "doc-url": "",
833
887
  "attributes": [
834
- { "name": "anchor", "value": { "type": "string" } },
835
- { "name": "active", "value": { "type": "boolean" } },
836
888
  {
837
- "name": "placement",
889
+ "name": "anchor",
838
890
  "value": {
839
- "type": "\"top\"|\"top-start\"|\"top-end\"|\"bottom\"|\"bottom-start\"|\"bottom-end\"|\"left\"|\"left-start\"|\"left-end\"|\"right\"|\"right-start\"|\"right-end\""
891
+ "type": "string | HTMLElement",
892
+ "default": "undefined"
840
893
  }
841
894
  },
895
+ {
896
+ "name": "active",
897
+ "value": { "type": "boolean", "default": "false" }
898
+ },
899
+ {
900
+ "name": "placement",
901
+ "value": { "type": "Placement", "default": "undefined" }
902
+ },
842
903
  {
843
904
  "name": "flip",
844
905
  "value": { "type": "boolean", "default": "false" }
@@ -847,28 +908,35 @@
847
908
  "name": "shift",
848
909
  "value": { "type": "boolean", "default": "false" }
849
910
  },
850
- { "name": "shiftPadding", "value": { "type": "number" } },
911
+ {
912
+ "name": "shiftPadding",
913
+ "value": { "type": "number", "default": "0" }
914
+ },
851
915
  {
852
916
  "name": "matchSize",
853
- "value": { "type": "\"width\" | \"height\" | \"both\"" }
917
+ "value": {
918
+ "type": "\"width\" | \"height\" | \"both\"",
919
+ "default": "undefined"
920
+ }
854
921
  },
855
922
  {
856
923
  "name": "autoSize",
857
- "value": { "type": "\"width\" | \"height\" | \"both\"" }
924
+ "value": {
925
+ "type": "\"width\" | \"height\" | \"both\"",
926
+ "default": "undefined"
927
+ }
858
928
  },
859
- { "name": "autoSizePadding", "value": { "type": "number" } }
929
+ {
930
+ "name": "autoSizePadding",
931
+ "value": { "type": "number", "default": "0" }
932
+ }
860
933
  ],
861
934
  "events": [],
862
935
  "js": {
863
936
  "properties": [
864
- { "name": "anchor", "value": {} },
937
+ { "name": "anchor", "value": { "type": "string | HTMLElement" } },
865
938
  { "name": "active", "value": { "type": "boolean" } },
866
- {
867
- "name": "placement",
868
- "value": {
869
- "type": "\"top\"|\"top-start\"|\"top-end\"|\"bottom\"|\"bottom-start\"|\"bottom-end\"|\"left\"|\"left-start\"|\"left-end\"|\"right\"|\"right-start\"|\"right-end\""
870
- }
871
- },
939
+ { "name": "placement", "value": { "type": "Placement" } },
872
940
  { "name": "flip", "value": { "type": "boolean" } },
873
941
  { "name": "shift", "value": { "type": "boolean" } },
874
942
  { "name": "shiftPadding", "value": { "type": "number" } },
@@ -898,20 +966,19 @@
898
966
  "name": "disabled",
899
967
  "value": { "type": "boolean", "default": "false" }
900
968
  },
901
- { "name": "identifier", "value": { "type": "string" } },
902
- { "name": "value", "value": { "type": "string" } },
903
- { "name": "name", "value": { "type": "string" } },
904
- { "name": "label", "value": { "type": "string" } }
969
+ {
970
+ "name": "value",
971
+ "value": { "type": "string", "default": "\"\"" }
972
+ },
973
+ { "name": "name", "value": { "type": "string", "default": "\"\"" } }
905
974
  ],
906
975
  "events": [],
907
976
  "js": {
908
977
  "properties": [
909
978
  { "name": "checked", "value": { "type": "boolean" } },
910
979
  { "name": "disabled", "value": { "type": "boolean" } },
911
- { "name": "identifier", "value": { "type": "string" } },
912
980
  { "name": "value", "value": { "type": "string" } },
913
- { "name": "name", "value": { "type": "string" } },
914
- { "name": "label", "value": { "type": "string" } }
981
+ { "name": "name", "value": { "type": "string" } }
915
982
  ],
916
983
  "events": []
917
984
  }
@@ -951,39 +1018,52 @@
951
1018
  },
952
1019
  {
953
1020
  "name": "leu-select",
954
- "description": "\n---\n\n\n### **Methods:**\n - **selectOption(option: _*_)** - Adds or replaces the given option in the options array.\n\n### **Slots:**\n - **before** - Optional content the appears before the option list\n- **after** - Optional content the appears after the option list",
1021
+ "description": "\n---\n\n\n### **Methods:**\n - **_updateMenuItems(changed)** - Apply the current state to the menu items.\n- Set the active property when the value property has changed.\n- Hide menu items that do not match the filter.\n- **_getDisplayValue(): _String | nothing_** - Determines the value or label that should be displayed inside the toggle button.\n- **_isSelected(menuItemValue: _String_): _Boolean_** - Checks if the given value is selected.\n- **_handlePopupFocusOut(event)** - Close the dropdown if the focus moves outside the component.\n\n### **Slots:**\n - **before** - Optional content the appears before the option list\n- **after** - Optional content the appears after the option list",
955
1022
  "doc-url": "",
956
1023
  "attributes": [
1024
+ {
1025
+ "name": "value",
1026
+ "description": "List of selected values. If they're set from outside the component, the select element tries to find all the options with the given values and selects them.",
1027
+ "value": { "type": "array", "default": "[]" }
1028
+ },
1029
+ {
1030
+ "name": "name",
1031
+ "description": "Reflects to the name attribute of the hidden input field that would be used in a form",
1032
+ "value": { "type": "string", "default": "\"\"" }
1033
+ },
957
1034
  {
958
1035
  "name": "open",
1036
+ "description": "The expanded state of the popup",
959
1037
  "value": { "type": "boolean", "default": "false" }
960
1038
  },
961
1039
  {
962
1040
  "name": "label",
1041
+ "description": "The label of the select",
963
1042
  "value": { "type": "string", "default": "\"\"" }
964
1043
  },
965
- {
966
- "name": "options",
967
- "value": { "type": "array", "default": "[]" }
968
- },
969
- { "name": "value", "value": { "type": "array", "default": "[]" } },
970
1044
  {
971
1045
  "name": "clearable",
1046
+ "description": "Show a clearable button to reset the value",
972
1047
  "value": { "type": "boolean", "default": "false" }
973
1048
  },
974
1049
  {
975
1050
  "name": "disabled",
1051
+ "description": "If the select should be disabled",
976
1052
  "value": { "type": "boolean", "default": "false" }
977
1053
  },
978
1054
  {
979
1055
  "name": "filterable",
1056
+ "description": "Show an input field to filter the options inside the popup",
980
1057
  "value": { "type": "boolean", "default": "false" }
981
1058
  },
982
1059
  {
983
1060
  "name": "multiple",
1061
+ "description": "Allow multiple selections",
984
1062
  "value": { "type": "boolean", "default": "false" }
985
1063
  },
986
- { "name": "optionFilter", "value": { "type": "string" } }
1064
+ { "name": "_optionFilter", "value": { "type": "string" } },
1065
+ { "name": "_hasFilterResults", "value": { "type": "string" } },
1066
+ { "name": "_displayValue", "value": { "type": "string" } }
987
1067
  ],
988
1068
  "slots": [
989
1069
  {
@@ -998,15 +1078,49 @@
998
1078
  "events": [],
999
1079
  "js": {
1000
1080
  "properties": [
1001
- { "name": "open", "value": { "type": "boolean" } },
1002
- { "name": "label", "value": { "type": "string" } },
1003
- { "name": "options", "value": { "type": "array" } },
1004
- { "name": "value", "value": { "type": "array" } },
1005
- { "name": "clearable", "value": { "type": "boolean" } },
1006
- { "name": "disabled", "value": { "type": "boolean" } },
1007
- { "name": "filterable", "value": { "type": "boolean" } },
1008
- { "name": "multiple", "value": { "type": "boolean" } },
1009
- { "name": "optionFilter", "value": {} }
1081
+ {
1082
+ "name": "value",
1083
+ "description": "List of selected values. If they're set from outside the component, the select element tries to find all the options with the given values and selects them.",
1084
+ "value": { "type": "array" }
1085
+ },
1086
+ {
1087
+ "name": "name",
1088
+ "description": "Reflects to the name attribute of the hidden input field that would be used in a form",
1089
+ "value": { "type": "string" }
1090
+ },
1091
+ {
1092
+ "name": "open",
1093
+ "description": "The expanded state of the popup",
1094
+ "value": { "type": "boolean" }
1095
+ },
1096
+ {
1097
+ "name": "label",
1098
+ "description": "The label of the select",
1099
+ "value": { "type": "string" }
1100
+ },
1101
+ {
1102
+ "name": "clearable",
1103
+ "description": "Show a clearable button to reset the value",
1104
+ "value": { "type": "boolean" }
1105
+ },
1106
+ {
1107
+ "name": "disabled",
1108
+ "description": "If the select should be disabled",
1109
+ "value": { "type": "boolean" }
1110
+ },
1111
+ {
1112
+ "name": "filterable",
1113
+ "description": "Show an input field to filter the options inside the popup",
1114
+ "value": { "type": "boolean" }
1115
+ },
1116
+ {
1117
+ "name": "multiple",
1118
+ "description": "Allow multiple selections",
1119
+ "value": { "type": "boolean" }
1120
+ },
1121
+ { "name": "_optionFilter", "value": {} },
1122
+ { "name": "_hasFilterResults", "value": {} },
1123
+ { "name": "_displayValue", "value": {} }
1010
1124
  ],
1011
1125
  "events": []
1012
1126
  }