@statistikzh/leu 0.0.2 → 0.1.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 (48) hide show
  1. package/.github/workflows/release-please.yml +20 -1
  2. package/CHANGELOG.md +12 -0
  3. package/babel.config.json +3 -0
  4. package/dist/{Button-83c6df93.js → Button.js} +58 -50
  5. package/dist/ButtonGroup.js +75 -0
  6. package/dist/Checkbox.js +60 -57
  7. package/dist/CheckboxGroup.js +35 -41
  8. package/dist/{Chip-60af1402.js → Chip-389013ff.js} +12 -13
  9. package/dist/ChipGroup.js +27 -34
  10. package/dist/ChipLink.js +18 -19
  11. package/dist/ChipRemovable.js +9 -13
  12. package/dist/ChipSelectable.js +42 -44
  13. package/dist/Dropdown.js +75 -0
  14. package/dist/Input.js +112 -122
  15. package/dist/Menu.js +33 -0
  16. package/dist/MenuItem.js +171 -0
  17. package/dist/Pagination.js +193 -0
  18. package/dist/Radio.js +26 -22
  19. package/dist/RadioGroup.js +75 -105
  20. package/dist/Select.js +103 -337
  21. package/dist/Table.js +294 -8
  22. package/dist/defineElement-ba770aed.js +44 -0
  23. package/dist/icon-03e86700.js +136 -0
  24. package/dist/index.js +14 -9
  25. package/dist/leu-button-group.js +8 -0
  26. package/dist/leu-button.js +7 -0
  27. package/dist/leu-checkbox-group.js +1 -1
  28. package/dist/leu-checkbox.js +2 -2
  29. package/dist/leu-chip-group.js +1 -1
  30. package/dist/leu-chip-link.js +2 -2
  31. package/dist/leu-chip-removable.js +3 -3
  32. package/dist/leu-chip-selectable.js +2 -2
  33. package/dist/leu-dropdown.js +10 -0
  34. package/dist/leu-input.js +2 -2
  35. package/dist/leu-menu-item.js +6 -0
  36. package/dist/leu-menu.js +5 -0
  37. package/dist/leu-pagination.js +8 -0
  38. package/dist/leu-radio-group.js +1 -1
  39. package/dist/leu-radio.js +1 -1
  40. package/dist/leu-select.js +5 -3
  41. package/dist/leu-table.js +5 -4
  42. package/index.js +7 -3
  43. package/package.json +3 -1
  44. package/rollup.config.js +26 -9
  45. package/.github/workflows/publish.yml +0 -19
  46. package/dist/Table-72d305d7.js +0 -506
  47. package/dist/defineElement-47d4f665.js +0 -15
  48. package/dist/icon-b68c7e1e.js +0 -202
@@ -1,140 +1,84 @@
1
- import { LitElement, css, html } from 'lit';
1
+ import { _ as _defineProperty, d as defineElement } from './defineElement-ba770aed.js';
2
+ import { css, LitElement, html } from 'lit';
2
3
  import { classMap } from 'lit/directives/class-map.js';
3
- import { d as defineElement } from './defineElement-47d4f665.js';
4
4
 
5
5
  /**
6
6
  * @tagname leu-radio-group
7
7
  */
8
8
  class LeuRadioGroup extends LitElement {
9
- static styles = css`
10
- :host {
11
- --group-font-regular: var(--leu-font-regular);
12
- --group-font-black: var(--leu-font-black);
13
-
14
- font-family: var(--group-font-regular);
15
- }
16
-
17
- .fieldset {
18
- display: flex;
19
- align-items: flex-start;
20
- flex-wrap: wrap;
21
- gap: 0.5rem 1rem;
22
-
23
- border: none;
24
- padding: 0;
25
- }
26
-
27
- .fieldset--vertical {
28
- flex-direction: column;
29
- gap: 1rem;
30
- }
31
-
32
- .legend {
33
- font-family: var(--group-font-black);
34
- font-size: 1.125rem;
35
- line-height: 1.5;
36
-
37
- margin-bottom: 0.5rem;
38
- }
39
- `
40
-
41
- static properties = {
42
- orientation: { type: String },
43
- }
44
-
45
9
  constructor() {
46
10
  super();
11
+ _defineProperty(this, "handleFocusIn", e => {
12
+ this._currentIndex = this.items.indexOf(e.target);
13
+ });
14
+ _defineProperty(this, "handleKeyDown", e => {
15
+ const currentIndex = this.items.indexOf(e.target);
16
+ switch (e.key) {
17
+ case "ArrowUp":
18
+ case "ArrowLeft":
19
+ this.selectNextItem(currentIndex, -1);
20
+ break;
21
+ case "ArrowDown":
22
+ case "ArrowRight":
23
+ this.selectNextItem(currentIndex, 1);
24
+ break;
25
+ case "Home":
26
+ this.selectItem(this.items.find(item => !item.disabled));
27
+ break;
28
+ case "End":
29
+ this.selectItem(this.items.findLast(item => !item.disabled));
30
+ break;
31
+ }
32
+ this.setTabIndex();
33
+ });
34
+ _defineProperty(this, "handleInput", e => {
35
+ if (e.target.checked) {
36
+ this.items.filter(item => item !== e.target).forEach(item => {
37
+ item.checked = false; // eslint-disable-line no-param-reassign
38
+ });
39
+ }
40
+ });
47
41
  this.orientation = "HORIZONTAL";
48
42
  this._currentIndex = 0;
49
43
  this.items = [];
50
44
  }
51
-
52
45
  get value() {
53
- const checkedValues = this.items
54
- .filter((i) => i.checked)
55
- .map((i) => i.value);
56
- return checkedValues.length > 0 ? checkedValues[0] : ""
46
+ const checkedValues = this.items.filter(i => i.checked).map(i => i.value);
47
+ return checkedValues.length > 0 ? checkedValues[0] : "";
57
48
  }
58
-
59
49
  connectedCallback() {
60
50
  super.connectedCallback();
61
51
  this.handleItems();
62
52
  this.addEventListeners();
63
53
  }
64
-
65
54
  disconnectedCallback() {
66
55
  super.disconnectedCallback();
67
56
  this.removeEventListeners();
68
57
  }
69
-
70
58
  addEventListeners() {
71
59
  this.addEventListener("input", this.handleInput);
72
60
  this.addEventListener("focusin", this.handleFocusIn);
73
61
  this.addEventListener("keydown", this.handleKeyDown);
74
62
  }
75
-
76
63
  removeEventListeners() {
77
64
  this.removeEventListener("input", this.handleInput);
78
65
  this.removeEventListener("focusin", this.handleFocusIn);
79
66
  this.removeEventListener("keydown", this.handleKeyDown);
80
67
  }
81
-
82
68
  handleSlotChange() {
83
69
  this.handleItems();
84
70
  }
85
-
86
- handleFocusIn = (e) => {
87
- this._currentIndex = this.items.indexOf(e.target);
88
- }
89
-
90
- handleKeyDown = (e) => {
91
- const currentIndex = this.items.indexOf(e.target);
92
-
93
- switch (e.key) {
94
- case "ArrowUp":
95
- case "ArrowLeft":
96
- this.selectNextItem(currentIndex, -1);
97
- break
98
- case "ArrowDown":
99
- case "ArrowRight":
100
- this.selectNextItem(currentIndex, 1);
101
- break
102
- case "Home":
103
- this.selectItem(this.items.find((item) => !item.disabled));
104
- break
105
- case "End":
106
- this.selectItem(this.items.findLast((item) => !item.disabled));
107
- break
108
- }
109
-
110
- this.setTabIndex();
111
- }
112
-
113
- handleInput = (e) => {
114
- if (e.target.checked) {
115
- this.items
116
- .filter((item) => item !== e.target)
117
- .forEach((item) => {
118
- item.checked = false; // eslint-disable-line no-param-reassign
119
- });
120
- }
121
- }
122
-
123
71
  selectItem(selectingItem) {
124
- this.items.forEach((item) => {
72
+ this.items.forEach(item => {
125
73
  item.checked = item === selectingItem; // eslint-disable-line no-param-reassign
126
74
  });
127
75
  }
128
76
 
129
77
  selectNextItem(startingIndex, direction) {
130
78
  let selected = false;
131
-
132
79
  for (let index = 0; index < this.items.length; index += 1) {
133
- const currentIndex =
134
- (this.items.length + index * direction + startingIndex + direction) %
135
- this.items.length;
80
+ const currentIndex = (this.items.length + index * direction + startingIndex + direction) % this.items.length;
136
81
  const currentItem = this.items[currentIndex];
137
-
138
82
  if (!selected && !currentItem.disabled) {
139
83
  currentItem.checked = true;
140
84
  currentItem.focus();
@@ -144,7 +88,6 @@ class LeuRadioGroup extends LitElement {
144
88
  }
145
89
  }
146
90
  }
147
-
148
91
  setTabIndex() {
149
92
  this.items.forEach((item, index) => {
150
93
  if (index === this._currentIndex) {
@@ -160,33 +103,60 @@ class LeuRadioGroup extends LitElement {
160
103
  this.initializeIndex();
161
104
  this.setTabIndex();
162
105
  }
163
-
164
106
  initializeIndex() {
165
- const index = this.items.findIndex(
166
- (item) => item.hasAttribute("checked") && !item.hasAttribute("disabled")
167
- );
168
- const nextEnabledIndex = this.items.findIndex(
169
- (item) => !item.hasAttribute("disabled")
170
- );
171
-
107
+ const index = this.items.findIndex(item => item.hasAttribute("checked") && !item.hasAttribute("disabled"));
108
+ const nextEnabledIndex = this.items.findIndex(item => !item.hasAttribute("disabled"));
172
109
  this._currentIndex = index >= 0 ? index : nextEnabledIndex;
173
110
  }
174
-
175
111
  render() {
176
112
  const fieldsetClasses = {
177
113
  fieldset: "true",
178
- "fieldset--vertical": this.orientation === "VERTICAL",
114
+ "fieldset--vertical": this.orientation === "VERTICAL"
179
115
  };
180
-
181
116
  return html`
182
117
  <fieldset class=${classMap(fieldsetClasses)}>
183
118
  <legend class="legend"><slot name="legend"></slot></legend>
184
119
  <slot @slotchange=${this.handleSlotChange}></slot>
185
120
  </fieldset>
186
- `
121
+ `;
187
122
  }
188
123
  }
124
+ _defineProperty(LeuRadioGroup, "styles", css`
125
+ :host {
126
+ --group-font-regular: var(--leu-font-regular);
127
+ --group-font-black: var(--leu-font-black);
128
+
129
+ font-family: var(--group-font-regular);
130
+ }
189
131
 
132
+ .fieldset {
133
+ display: flex;
134
+ align-items: flex-start;
135
+ flex-wrap: wrap;
136
+ gap: 0.5rem 1rem;
137
+
138
+ border: none;
139
+ padding: 0;
140
+ }
141
+
142
+ .fieldset--vertical {
143
+ flex-direction: column;
144
+ gap: 1rem;
145
+ }
146
+
147
+ .legend {
148
+ font-family: var(--group-font-black);
149
+ font-size: 1.125rem;
150
+ line-height: 1.5;
151
+
152
+ margin-bottom: 0.5rem;
153
+ }
154
+ `);
155
+ _defineProperty(LeuRadioGroup, "properties", {
156
+ orientation: {
157
+ type: String
158
+ }
159
+ });
190
160
  function defineRadioGroupElements() {
191
161
  defineElement("radio-group", LeuRadioGroup);
192
162
  }