@statistikzh/leu 0.21.0 → 0.22.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.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +14 -0
- package/dist/Accordion.js +1 -1
- package/dist/Button.js +1 -1
- package/dist/ButtonGroup.js +1 -1
- package/dist/ChartWrapper.js +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/CheckboxGroup.js +1 -1
- package/dist/Chip.js +1 -1
- package/dist/ChipGroup.js +1 -1
- package/dist/ChipLink.js +1 -1
- package/dist/ChipRemovable.js +1 -1
- package/dist/ChipSelectable.js +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/Dropdown.d.ts +4 -0
- package/dist/Dropdown.js +4 -1
- package/dist/FileInput.js +2 -2
- package/dist/Icon.js +1 -1
- package/dist/Input.js +1 -1
- package/dist/{LeuElement-BFljD2fO.js → LeuElement-BooZrClI.js} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/MenuItem.js +1 -1
- package/dist/Message.js +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/Placeholder.js +1 -1
- package/dist/Popup.js +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/Radio.js +1 -1
- package/dist/RadioGroup.js +1 -1
- package/dist/Range.js +1 -1
- package/dist/ScrollTop.js +1 -1
- package/dist/Select.js +1 -1
- package/dist/Spinner.js +1 -1
- package/dist/Table.js +97 -3
- package/dist/Tag.js +1 -1
- package/dist/VisuallyHidden.js +1 -1
- package/dist/components/dropdown/Dropdown.d.ts +4 -0
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
- package/dist/components/dropdown/stories/dropdown.stories.d.ts.map +1 -1
- package/dist/components/table/Table.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/leu-accordion.js +1 -1
- package/dist/leu-button-group.js +1 -1
- package/dist/leu-button.js +1 -1
- package/dist/leu-chart-wrapper.js +1 -1
- package/dist/leu-checkbox-group.js +1 -1
- package/dist/leu-checkbox.js +1 -1
- package/dist/leu-chip-group.js +1 -1
- package/dist/leu-chip-link.js +1 -1
- package/dist/leu-chip-removable.js +1 -1
- package/dist/leu-chip-selectable.js +1 -1
- package/dist/leu-dialog.js +1 -1
- package/dist/leu-dropdown.js +1 -1
- package/dist/leu-file-input.js +2 -2
- package/dist/leu-icon.js +1 -1
- package/dist/leu-input.js +1 -1
- package/dist/leu-menu-item.js +1 -1
- package/dist/leu-menu.js +1 -1
- package/dist/leu-message.js +1 -1
- package/dist/leu-pagination.js +1 -1
- package/dist/leu-placeholder.js +1 -1
- package/dist/leu-popup.js +1 -1
- package/dist/leu-progress-bar.js +1 -1
- package/dist/leu-radio-group.js +1 -1
- package/dist/leu-radio.js +1 -1
- package/dist/leu-range.js +1 -1
- package/dist/leu-scroll-top.js +1 -1
- package/dist/leu-select.js +1 -1
- package/dist/leu-spinner.js +1 -1
- package/dist/leu-table.js +2 -2
- package/dist/leu-tag.js +1 -1
- package/dist/leu-visually-hidden.js +1 -1
- package/dist/lib/styleMap.d.ts +61 -0
- package/dist/lib/styleMap.d.ts.map +1 -0
- package/dist/vscode.html-custom-data.json +13 -12
- package/dist/vue/index.d.ts +22 -20
- package/dist/web-types.json +33 -28
- package/package.json +1 -1
- package/src/components/dropdown/Dropdown.ts +3 -0
- package/src/components/dropdown/stories/dropdown.stories.ts +6 -2
- package/src/components/dropdown/test/dropdown.test.ts +14 -2
- package/src/components/table/Table.ts +1 -1
- package/src/lib/styleMap.ts +139 -0
package/dist/leu-dialog.js
CHANGED
|
@@ -2,7 +2,7 @@ import { LeuDialog } from './Dialog.js';
|
|
|
2
2
|
import 'lit';
|
|
3
3
|
import 'lit/directives/ref.js';
|
|
4
4
|
import 'lit/directives/class-map.js';
|
|
5
|
-
import './LeuElement-
|
|
5
|
+
import './LeuElement-BooZrClI.js';
|
|
6
6
|
import './hasSlotController-Bm2tipvG.js';
|
|
7
7
|
import './Icon.js';
|
|
8
8
|
import './_tslib-CNEFicEt.js';
|
package/dist/leu-dropdown.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LeuDropdown } from './Dropdown.js';
|
|
2
2
|
import 'lit';
|
|
3
3
|
import 'lit/directives/ref.js';
|
|
4
|
-
import './LeuElement-
|
|
4
|
+
import './LeuElement-BooZrClI.js';
|
|
5
5
|
import './hasSlotController-Bm2tipvG.js';
|
|
6
6
|
import './Button.js';
|
|
7
7
|
import './_tslib-CNEFicEt.js';
|
package/dist/leu-file-input.js
CHANGED
|
@@ -4,7 +4,7 @@ import 'lit';
|
|
|
4
4
|
import 'lit/decorators.js';
|
|
5
5
|
import 'lit/directives/if-defined.js';
|
|
6
6
|
import 'lit/directives/class-map.js';
|
|
7
|
-
import './LeuElement-
|
|
7
|
+
import './LeuElement-BooZrClI.js';
|
|
8
8
|
import './Accordion.js';
|
|
9
9
|
import 'lit/static-html.js';
|
|
10
10
|
import './Button.js';
|
|
@@ -34,7 +34,7 @@ import './Radio.js';
|
|
|
34
34
|
import './RadioGroup.js';
|
|
35
35
|
import './Select.js';
|
|
36
36
|
import './Table.js';
|
|
37
|
-
import 'lit/
|
|
37
|
+
import 'lit/directive.js';
|
|
38
38
|
import './leu-icon.js';
|
|
39
39
|
|
|
40
40
|
LeuFileInput.define("leu-file-input");
|
package/dist/leu-icon.js
CHANGED
package/dist/leu-input.js
CHANGED
|
@@ -4,7 +4,7 @@ import 'lit/directives/class-map.js';
|
|
|
4
4
|
import 'lit/directives/if-defined.js';
|
|
5
5
|
import 'lit/directives/live.js';
|
|
6
6
|
import 'lit/directives/ref.js';
|
|
7
|
-
import './LeuElement-
|
|
7
|
+
import './LeuElement-BooZrClI.js';
|
|
8
8
|
import './Icon.js';
|
|
9
9
|
import './_tslib-CNEFicEt.js';
|
|
10
10
|
import 'lit/decorators.js';
|
package/dist/leu-menu-item.js
CHANGED
package/dist/leu-menu.js
CHANGED
package/dist/leu-message.js
CHANGED
package/dist/leu-pagination.js
CHANGED
|
@@ -3,7 +3,7 @@ import './_tslib-CNEFicEt.js';
|
|
|
3
3
|
import 'lit';
|
|
4
4
|
import 'lit/directives/live.js';
|
|
5
5
|
import 'lit/decorators.js';
|
|
6
|
-
import './LeuElement-
|
|
6
|
+
import './LeuElement-BooZrClI.js';
|
|
7
7
|
import './Button.js';
|
|
8
8
|
import 'lit/directives/class-map.js';
|
|
9
9
|
import 'lit/directives/if-defined.js';
|
package/dist/leu-placeholder.js
CHANGED
package/dist/leu-popup.js
CHANGED
package/dist/leu-progress-bar.js
CHANGED
package/dist/leu-radio-group.js
CHANGED
package/dist/leu-radio.js
CHANGED
package/dist/leu-range.js
CHANGED
package/dist/leu-scroll-top.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { LeuScrollTop } from './ScrollTop.js';
|
|
2
2
|
import 'lit';
|
|
3
3
|
import 'lit/directives/class-map.js';
|
|
4
|
-
import './LeuElement-
|
|
4
|
+
import './LeuElement-BooZrClI.js';
|
|
5
5
|
import './Button.js';
|
|
6
6
|
import './_tslib-CNEFicEt.js';
|
|
7
7
|
import 'lit/directives/if-defined.js';
|
package/dist/leu-select.js
CHANGED
|
@@ -3,7 +3,7 @@ import 'lit';
|
|
|
3
3
|
import 'lit/directives/class-map.js';
|
|
4
4
|
import 'lit/directives/ref.js';
|
|
5
5
|
import 'lit/directives/if-defined.js';
|
|
6
|
-
import './LeuElement-
|
|
6
|
+
import './LeuElement-BooZrClI.js';
|
|
7
7
|
import './hasSlotController-Bm2tipvG.js';
|
|
8
8
|
import './Button.js';
|
|
9
9
|
import './_tslib-CNEFicEt.js';
|
package/dist/leu-spinner.js
CHANGED
package/dist/leu-table.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LeuTable } from './Table.js';
|
|
2
2
|
import 'lit';
|
|
3
3
|
import 'lit/directives/class-map.js';
|
|
4
|
-
import 'lit/directives/style-map.js';
|
|
5
4
|
import 'lit/directives/ref.js';
|
|
6
|
-
import './LeuElement-
|
|
5
|
+
import './LeuElement-BooZrClI.js';
|
|
6
|
+
import 'lit/directive.js';
|
|
7
7
|
import './Icon.js';
|
|
8
8
|
import './_tslib-CNEFicEt.js';
|
|
9
9
|
import 'lit/decorators.js';
|
package/dist/leu-tag.js
CHANGED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The original lit styleMap directive is not compatible with a strict style-src content security policy.
|
|
3
|
+
* There is an an open issue about this in the lit repository:
|
|
4
|
+
* https://github.com/lit/lit/issues/4719
|
|
5
|
+
*
|
|
6
|
+
* This file contains a custom implementation of the styleMap directive that bypasses
|
|
7
|
+
* the render method and directly updates the styles using the .style.setProperty and
|
|
8
|
+
* .style.removeProperty methods.
|
|
9
|
+
*
|
|
10
|
+
* In the original implementation, the render method returns a string that is set as the
|
|
11
|
+
* value of the style attribute. This approach is blocked by strict CSPs that disallow
|
|
12
|
+
* inline styles.
|
|
13
|
+
*
|
|
14
|
+
* As we don't support SSR in this library, we can safely skip the render method.
|
|
15
|
+
*/
|
|
16
|
+
import { AttributePart } from "lit";
|
|
17
|
+
import { Directive, DirectiveParameters, PartInfo } from "lit/directive.js";
|
|
18
|
+
/**
|
|
19
|
+
* A key-value set of CSS properties and values.
|
|
20
|
+
*
|
|
21
|
+
* The key should be either a valid CSS property name string, like
|
|
22
|
+
* `'background-color'`, or a valid JavaScript camel case property name
|
|
23
|
+
* for CSSStyleDeclaration like `backgroundColor`.
|
|
24
|
+
*/
|
|
25
|
+
export interface StyleInfo {
|
|
26
|
+
[name: string]: string | number | undefined | null;
|
|
27
|
+
}
|
|
28
|
+
declare class StyleMapDirective extends Directive {
|
|
29
|
+
private _previousStyleProperties?;
|
|
30
|
+
constructor(partInfo: PartInfo);
|
|
31
|
+
render(_styleInfo: Readonly<StyleInfo>): symbol;
|
|
32
|
+
update(part: AttributePart, [styleInfo]: DirectiveParameters<this>): symbol;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* !A custom implementation of lit's `styleMap` directive!
|
|
36
|
+
* A directive that applies CSS properties to an element.
|
|
37
|
+
*
|
|
38
|
+
* `styleMap` can only be used in the `style` attribute and must be the only
|
|
39
|
+
* expression in the attribute. It takes the property names in the
|
|
40
|
+
* {@link StyleInfo styleInfo} object and adds the properties to the inline
|
|
41
|
+
* style of the element.
|
|
42
|
+
*
|
|
43
|
+
* Property names with dashes (`-`) are assumed to be valid CSS
|
|
44
|
+
* property names and set on the element's style object using `setProperty()`.
|
|
45
|
+
* Names without dashes are assumed to be camelCased JavaScript property names
|
|
46
|
+
* and set on the element's style object using property assignment, allowing the
|
|
47
|
+
* style object to translate JavaScript-style names to CSS property names.
|
|
48
|
+
*
|
|
49
|
+
* For example `styleMap({backgroundColor: 'red', 'border-top': '5px', '--size':
|
|
50
|
+
* '0'})` sets the `background-color`, `border-top` and `--size` properties.
|
|
51
|
+
*
|
|
52
|
+
* @param styleInfo
|
|
53
|
+
* @see {@link https://lit.dev/docs/templates/directives/#stylemap styleMap code samples on Lit.dev}
|
|
54
|
+
*/
|
|
55
|
+
export declare const styleMap: (_styleInfo: Readonly<StyleInfo>) => import("lit-html/directive.js").DirectiveResult<typeof StyleMapDirective>;
|
|
56
|
+
/**
|
|
57
|
+
* The type of the class that powers this directive. Necessary for naming the
|
|
58
|
+
* directive's return type.
|
|
59
|
+
*/
|
|
60
|
+
export type { StyleMapDirective };
|
|
61
|
+
//# sourceMappingURL=styleMap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"styleMap.d.ts","sourceRoot":"","sources":["../../src/lib/styleMap.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,aAAa,EAAqB,MAAM,KAAK,CAAA;AACtD,OAAO,EAEL,SAAS,EACT,mBAAmB,EACnB,QAAQ,EAET,MAAM,kBAAkB,CAAA;AAEzB;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACxB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAA;CACnD;AAQD,cAAM,iBAAkB,SAAQ,SAAS;IACvC,OAAO,CAAC,wBAAwB,CAAC,CAAa;gBAElC,QAAQ,EAAE,QAAQ;IAc9B,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,SAAS,CAAC;IAI7B,MAAM,CAAC,IAAI,EAAE,aAAa,EAAE,CAAC,SAAS,CAAC,EAAE,mBAAmB,CAAC,IAAI,CAAC;CA4C5E;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,QAAQ,gHAA+B,CAAA;AAEpD;;;GAGG;AACH,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -34,6 +34,17 @@
|
|
|
34
34
|
}
|
|
35
35
|
]
|
|
36
36
|
},
|
|
37
|
+
{
|
|
38
|
+
"name": "leu-button-group",
|
|
39
|
+
"description": "A radio input-like button group component.\nIt allows only one button to be active at a time.\n---\n\n\n### **Events:**\n - **input** - When the value of the group changes by clicking a button\n\n### **Slots:**\n - _default_ - Slot for the buttons",
|
|
40
|
+
"attributes": [],
|
|
41
|
+
"references": [
|
|
42
|
+
{
|
|
43
|
+
"name": "Documentation",
|
|
44
|
+
"url": "https://statistikzh.github.io/leu/?path=/story/button-group"
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
37
48
|
{
|
|
38
49
|
"name": "leu-button",
|
|
39
50
|
"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",
|
|
@@ -109,17 +120,6 @@
|
|
|
109
120
|
}
|
|
110
121
|
]
|
|
111
122
|
},
|
|
112
|
-
{
|
|
113
|
-
"name": "leu-button-group",
|
|
114
|
-
"description": "A radio input-like button group component.\nIt allows only one button to be active at a time.\n---\n\n\n### **Events:**\n - **input** - When the value of the group changes by clicking a button\n\n### **Slots:**\n - _default_ - Slot for the buttons",
|
|
115
|
-
"attributes": [],
|
|
116
|
-
"references": [
|
|
117
|
-
{
|
|
118
|
-
"name": "Documentation",
|
|
119
|
-
"url": "https://statistikzh.github.io/leu/?path=/story/button-group"
|
|
120
|
-
}
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
123
|
{
|
|
124
124
|
"name": "leu-chart-wrapper",
|
|
125
125
|
"description": "A wrapper element for charts.\n---\n\n\n### **Slots:**\n - **title** - The title of the chart. Use a heading tag (h2-4) depending on your context.\n- **description** - A description of the chart. Content is wrapped in a `<p>` tag by the component.\n- **chart** - The actual chart\n- **caption** - A caption for the chart, e.g. a source or explanation of the data.\n- **download** - A download button or dropdown to export the chart in different formats.",
|
|
@@ -288,7 +288,8 @@
|
|
|
288
288
|
"description": "\n---\n",
|
|
289
289
|
"attributes": [
|
|
290
290
|
{ "name": "label", "values": [] },
|
|
291
|
-
{ "name": "expanded", "values": [] }
|
|
291
|
+
{ "name": "expanded", "values": [] },
|
|
292
|
+
{ "name": "inverted", "values": [] }
|
|
292
293
|
],
|
|
293
294
|
"references": [
|
|
294
295
|
{
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { DefineComponent } from "vue";
|
|
2
2
|
|
|
3
3
|
import type { LeuAccordion } from "../Accordion.js";
|
|
4
|
-
import type { LeuButton } from "../Button.js";
|
|
5
4
|
import type { LeuButtonGroup } from "../ButtonGroup.js";
|
|
5
|
+
import type { LeuButton } from "../Button.js";
|
|
6
6
|
import type { LeuChartWrapper } from "../ChartWrapper.js";
|
|
7
7
|
import type { LeuCheckbox } from "../Checkbox.js";
|
|
8
8
|
import type { LeuCheckboxGroup } from "../CheckboxGroup.js";
|
|
@@ -43,6 +43,13 @@ type LeuAccordionProps = {
|
|
|
43
43
|
label?: LeuAccordion["label"];
|
|
44
44
|
};
|
|
45
45
|
|
|
46
|
+
type LeuButtonGroupProps = {
|
|
47
|
+
/** The value of the currently selected (active) button */
|
|
48
|
+
value?: LeuButtonGroup["value"];
|
|
49
|
+
/** When the value of the group changes by clicking a button */
|
|
50
|
+
oninput?: (e: CustomEvent<never>) => void;
|
|
51
|
+
};
|
|
52
|
+
|
|
46
53
|
type LeuButtonProps = {
|
|
47
54
|
/** `aria-label` of the underlying button elements.
|
|
48
55
|
Use it to provide a label when only an icon is visible. */
|
|
@@ -74,13 +81,6 @@ If it is set, the icon will either show an expanded or collapsed state. */
|
|
|
74
81
|
fluid?: LeuButton["fluid"];
|
|
75
82
|
};
|
|
76
83
|
|
|
77
|
-
type LeuButtonGroupProps = {
|
|
78
|
-
/** The value of the currently selected (active) button */
|
|
79
|
-
value?: LeuButtonGroup["value"];
|
|
80
|
-
/** When the value of the group changes by clicking a button */
|
|
81
|
-
oninput?: (e: CustomEvent<never>) => void;
|
|
82
|
-
};
|
|
83
|
-
|
|
84
84
|
type LeuChartWrapperProps = {
|
|
85
85
|
/** Whether the chart is currently loading or not.
|
|
86
86
|
When set to `true`, a spinner will be shown in the chart container. */
|
|
@@ -175,6 +175,8 @@ type LeuDropdownProps = {
|
|
|
175
175
|
/** */
|
|
176
176
|
expanded?: LeuDropdown["expanded"];
|
|
177
177
|
/** */
|
|
178
|
+
inverted?: LeuDropdown["inverted"];
|
|
179
|
+
/** */
|
|
178
180
|
hasSlotController?: LeuDropdown["hasSlotController"];
|
|
179
181
|
/** */
|
|
180
182
|
_documentClickHandler?: LeuDropdown["_documentClickHandler"];
|
|
@@ -500,18 +502,6 @@ export type CustomElements = {
|
|
|
500
502
|
*/
|
|
501
503
|
"leu-accordion": DefineComponent<LeuAccordionProps>;
|
|
502
504
|
|
|
503
|
-
/**
|
|
504
|
-
*
|
|
505
|
-
* ---
|
|
506
|
-
*
|
|
507
|
-
*
|
|
508
|
-
* ### **Slots:**
|
|
509
|
-
* - **before** - The icon to display before the label
|
|
510
|
-
* - **after** - The icon to display after the label
|
|
511
|
-
* - _default_ - The label of the button or the icon if no label is set
|
|
512
|
-
*/
|
|
513
|
-
"leu-button": DefineComponent<LeuButtonProps>;
|
|
514
|
-
|
|
515
505
|
/**
|
|
516
506
|
* A radio input-like button group component.
|
|
517
507
|
* It allows only one button to be active at a time.
|
|
@@ -526,6 +516,18 @@ export type CustomElements = {
|
|
|
526
516
|
*/
|
|
527
517
|
"leu-button-group": DefineComponent<LeuButtonGroupProps>;
|
|
528
518
|
|
|
519
|
+
/**
|
|
520
|
+
*
|
|
521
|
+
* ---
|
|
522
|
+
*
|
|
523
|
+
*
|
|
524
|
+
* ### **Slots:**
|
|
525
|
+
* - **before** - The icon to display before the label
|
|
526
|
+
* - **after** - The icon to display after the label
|
|
527
|
+
* - _default_ - The label of the button or the icon if no label is set
|
|
528
|
+
*/
|
|
529
|
+
"leu-button": DefineComponent<LeuButtonProps>;
|
|
530
|
+
|
|
529
531
|
/**
|
|
530
532
|
* A wrapper element for charts.
|
|
531
533
|
* ---
|
package/dist/web-types.json
CHANGED
|
@@ -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.
|
|
4
|
+
"version": "0.22.0",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -65,6 +65,33 @@
|
|
|
65
65
|
"events": []
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
|
+
{
|
|
69
|
+
"name": "leu-button-group",
|
|
70
|
+
"description": "A radio input-like button group component.\nIt allows only one button to be active at a time.\n---\n\n\n### **Events:**\n - **input** - When the value of the group changes by clicking a button\n\n### **Slots:**\n - _default_ - Slot for the buttons",
|
|
71
|
+
"doc-url": "",
|
|
72
|
+
"attributes": [],
|
|
73
|
+
"slots": [{ "name": "", "description": "Slot for the buttons" }],
|
|
74
|
+
"events": [
|
|
75
|
+
{
|
|
76
|
+
"name": "input",
|
|
77
|
+
"description": "When the value of the group changes by clicking a button"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"js": {
|
|
81
|
+
"properties": [
|
|
82
|
+
{
|
|
83
|
+
"name": "value",
|
|
84
|
+
"description": "The value of the currently selected (active) button"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"events": [
|
|
88
|
+
{
|
|
89
|
+
"name": "input",
|
|
90
|
+
"description": "When the value of the group changes by clicking a button"
|
|
91
|
+
}
|
|
92
|
+
]
|
|
93
|
+
}
|
|
94
|
+
},
|
|
68
95
|
{
|
|
69
96
|
"name": "leu-button",
|
|
70
97
|
"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",
|
|
@@ -211,33 +238,6 @@
|
|
|
211
238
|
"events": []
|
|
212
239
|
}
|
|
213
240
|
},
|
|
214
|
-
{
|
|
215
|
-
"name": "leu-button-group",
|
|
216
|
-
"description": "A radio input-like button group component.\nIt allows only one button to be active at a time.\n---\n\n\n### **Events:**\n - **input** - When the value of the group changes by clicking a button\n\n### **Slots:**\n - _default_ - Slot for the buttons",
|
|
217
|
-
"doc-url": "",
|
|
218
|
-
"attributes": [],
|
|
219
|
-
"slots": [{ "name": "", "description": "Slot for the buttons" }],
|
|
220
|
-
"events": [
|
|
221
|
-
{
|
|
222
|
-
"name": "input",
|
|
223
|
-
"description": "When the value of the group changes by clicking a button"
|
|
224
|
-
}
|
|
225
|
-
],
|
|
226
|
-
"js": {
|
|
227
|
-
"properties": [
|
|
228
|
-
{
|
|
229
|
-
"name": "value",
|
|
230
|
-
"description": "The value of the currently selected (active) button"
|
|
231
|
-
}
|
|
232
|
-
],
|
|
233
|
-
"events": [
|
|
234
|
-
{
|
|
235
|
-
"name": "input",
|
|
236
|
-
"description": "When the value of the group changes by clicking a button"
|
|
237
|
-
}
|
|
238
|
-
]
|
|
239
|
-
}
|
|
240
|
-
},
|
|
241
241
|
{
|
|
242
242
|
"name": "leu-chart-wrapper",
|
|
243
243
|
"description": "A wrapper element for charts.\n---\n\n\n### **Slots:**\n - **title** - The title of the chart. Use a heading tag (h2-4) depending on your context.\n- **description** - A description of the chart. Content is wrapped in a `<p>` tag by the component.\n- **chart** - The actual chart\n- **caption** - A caption for the chart, e.g. a source or explanation of the data.\n- **download** - A download button or dropdown to export the chart in different formats.",
|
|
@@ -576,6 +576,10 @@
|
|
|
576
576
|
{
|
|
577
577
|
"name": "expanded",
|
|
578
578
|
"value": { "type": "boolean", "default": "false" }
|
|
579
|
+
},
|
|
580
|
+
{
|
|
581
|
+
"name": "inverted",
|
|
582
|
+
"value": { "type": "boolean", "default": "false" }
|
|
579
583
|
}
|
|
580
584
|
],
|
|
581
585
|
"events": [],
|
|
@@ -590,6 +594,7 @@
|
|
|
590
594
|
},
|
|
591
595
|
{ "name": "label", "type": "string" },
|
|
592
596
|
{ "name": "expanded", "type": "boolean" },
|
|
597
|
+
{ "name": "inverted", "type": "boolean" },
|
|
593
598
|
{ "name": "_toggleRef", "type": "Ref<HTMLButtonElement>" }
|
|
594
599
|
],
|
|
595
600
|
"events": []
|
package/package.json
CHANGED
|
@@ -27,6 +27,7 @@ export class LeuDropdown extends LeuElement {
|
|
|
27
27
|
static properties = {
|
|
28
28
|
label: { type: String, reflect: true },
|
|
29
29
|
expanded: { type: Boolean, reflect: true },
|
|
30
|
+
inverted: { type: Boolean, reflect: true },
|
|
30
31
|
}
|
|
31
32
|
|
|
32
33
|
hasSlotController = new HasSlotController(this, ["icon"])
|
|
@@ -36,6 +37,7 @@ export class LeuDropdown extends LeuElement {
|
|
|
36
37
|
|
|
37
38
|
this.label = ""
|
|
38
39
|
this.expanded = false
|
|
40
|
+
this.inverted = false
|
|
39
41
|
|
|
40
42
|
/** @type {import("lit/directives/ref").Ref<HTMLButtonElement>} */
|
|
41
43
|
this._toggleRef = createRef()
|
|
@@ -141,6 +143,7 @@ export class LeuDropdown extends LeuElement {
|
|
|
141
143
|
variant="ghost"
|
|
142
144
|
expanded=${this.expanded ? "true" : "false"}
|
|
143
145
|
?active=${this.expanded}
|
|
146
|
+
?inverted=${this.inverted}
|
|
144
147
|
@click=${this._handleToggleClick}
|
|
145
148
|
@keydown=${this._keyDownToggleHandler}
|
|
146
149
|
>
|
|
@@ -24,8 +24,12 @@ export default {
|
|
|
24
24
|
},
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
function Template({ label, expanded, icon }) {
|
|
28
|
-
return html` <leu-dropdown
|
|
27
|
+
function Template({ label, expanded, icon, inverted }) {
|
|
28
|
+
return html` <leu-dropdown
|
|
29
|
+
label=${label}
|
|
30
|
+
?expanded=${expanded}
|
|
31
|
+
?inverted=${inverted}
|
|
32
|
+
>
|
|
29
33
|
${icon ? html`<leu-icon name=${icon} slot="icon"></leu-icon>` : nothing}
|
|
30
34
|
<leu-menu>
|
|
31
35
|
<leu-menu-item
|
|
@@ -3,9 +3,13 @@ import { fixture, expect, elementUpdated } from "@open-wc/testing"
|
|
|
3
3
|
|
|
4
4
|
import "../leu-dropdown.js"
|
|
5
5
|
|
|
6
|
-
async function defaultFixture(args = { expanded: false }) {
|
|
6
|
+
async function defaultFixture(args = { expanded: false, inverted: false }) {
|
|
7
7
|
return fixture(
|
|
8
|
-
html` <leu-dropdown
|
|
8
|
+
html` <leu-dropdown
|
|
9
|
+
label="Download"
|
|
10
|
+
?expanded=${args.expanded}
|
|
11
|
+
?inverted=${args.inverted}
|
|
12
|
+
>
|
|
9
13
|
<leu-menu>
|
|
10
14
|
<leu-menu-item>Als CSV Tabelle</leu-menu-item>
|
|
11
15
|
<leu-menu-item>Als XLS Tabelle</leu-menu-item>
|
|
@@ -44,4 +48,12 @@ describe("LeuDropdown", () => {
|
|
|
44
48
|
|
|
45
49
|
expect(el.expanded).to.be.false
|
|
46
50
|
})
|
|
51
|
+
|
|
52
|
+
it("reflects the inverted property to the internal button", async () => {
|
|
53
|
+
const el = await defaultFixture({ inverted: true })
|
|
54
|
+
await elementUpdated(el)
|
|
55
|
+
|
|
56
|
+
const toggleButton = el.shadowRoot.querySelector("leu-button")
|
|
57
|
+
expect(toggleButton.inverted).to.be.true
|
|
58
|
+
})
|
|
47
59
|
})
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { html, nothing } from "lit"
|
|
2
2
|
import { classMap } from "lit/directives/class-map.js"
|
|
3
|
-
import { styleMap } from "lit/directives/style-map.js"
|
|
4
3
|
import { createRef, ref } from "lit/directives/ref.js"
|
|
5
4
|
|
|
6
5
|
import { LeuElement } from "../../lib/LeuElement.js"
|
|
6
|
+
import { styleMap } from "../../lib/styleMap.js"
|
|
7
7
|
import { LeuIcon } from "../icon/Icon.js"
|
|
8
8
|
import { LeuPagination } from "../pagination/Pagination.js"
|
|
9
9
|
|