@statistikzh/leu 0.4.0 → 0.5.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 (216) hide show
  1. package/.storybook/preview.js +1 -2
  2. package/CHANGELOG.md +24 -0
  3. package/custom-elements-manifest.config.js +46 -0
  4. package/dist/Accordion.d.ts +31 -0
  5. package/dist/Accordion.d.ts.map +1 -0
  6. package/dist/Accordion.js +257 -0
  7. package/dist/Breadcrumb.d.ts +69 -0
  8. package/dist/Breadcrumb.d.ts.map +1 -0
  9. package/dist/Breadcrumb.js +392 -0
  10. package/dist/Button-da11d064.d.ts +84 -0
  11. package/dist/Button-da11d064.d.ts.map +1 -0
  12. package/dist/Button-da11d064.js +542 -0
  13. package/dist/Button.d.ts +2 -0
  14. package/dist/Button.d.ts.map +1 -0
  15. package/dist/Button.js +6 -420
  16. package/dist/ButtonGroup.d.ts +24 -0
  17. package/dist/ButtonGroup.d.ts.map +1 -0
  18. package/dist/ButtonGroup.js +70 -39
  19. package/dist/Checkbox.d.ts +13 -0
  20. package/dist/Checkbox.d.ts.map +1 -0
  21. package/dist/Checkbox.js +2 -2
  22. package/dist/CheckboxGroup.d.ts +13 -0
  23. package/dist/CheckboxGroup.d.ts.map +1 -0
  24. package/dist/CheckboxGroup.js +3 -3
  25. package/dist/Chip.d.ts +5 -0
  26. package/dist/Chip.d.ts.map +1 -0
  27. package/dist/{Chip-dac7337d.js → Chip.js} +16 -5
  28. package/dist/ChipGroup.d.ts +28 -0
  29. package/dist/ChipGroup.d.ts.map +1 -0
  30. package/dist/ChipGroup.js +62 -5
  31. package/dist/ChipLink.d.ts +15 -0
  32. package/dist/ChipLink.d.ts.map +1 -0
  33. package/dist/ChipLink.js +1 -1
  34. package/dist/ChipRemovable.d.ts +13 -0
  35. package/dist/ChipRemovable.d.ts.map +1 -0
  36. package/dist/ChipRemovable.js +2 -2
  37. package/dist/ChipSelectable.d.ts +22 -0
  38. package/dist/ChipSelectable.d.ts.map +1 -0
  39. package/dist/ChipSelectable.js +5 -5
  40. package/dist/Dropdown.d.ts +15 -0
  41. package/dist/Dropdown.d.ts.map +1 -0
  42. package/dist/Dropdown.js +25 -7
  43. package/dist/Input.d.ts +154 -0
  44. package/dist/Input.d.ts.map +1 -0
  45. package/dist/Input.js +13 -7
  46. package/dist/Menu.d.ts +8 -0
  47. package/dist/Menu.d.ts.map +1 -0
  48. package/dist/MenuItem.d.ts +21 -0
  49. package/dist/MenuItem.d.ts.map +1 -0
  50. package/dist/MenuItem.js +3 -3
  51. package/dist/Pagination.d.ts +27 -0
  52. package/dist/Pagination.d.ts.map +1 -0
  53. package/dist/Pagination.js +93 -61
  54. package/dist/Popup.d.ts +18 -0
  55. package/dist/Popup.d.ts.map +1 -0
  56. package/dist/{leu-popup-4bf6f1f4.js → Popup.js} +4 -5
  57. package/dist/Radio.d.ts +12 -0
  58. package/dist/Radio.d.ts.map +1 -0
  59. package/dist/Radio.js +2 -2
  60. package/dist/RadioGroup.d.ts +20 -0
  61. package/dist/RadioGroup.d.ts.map +1 -0
  62. package/dist/RadioGroup.js +3 -3
  63. package/dist/ScrollTop.d.ts +19 -0
  64. package/dist/ScrollTop.d.ts.map +1 -0
  65. package/dist/ScrollTop.js +122 -0
  66. package/dist/Select.d.ts +98 -0
  67. package/dist/Select.d.ts.map +1 -0
  68. package/dist/Select.js +27 -82
  69. package/dist/Table.d.ts +48 -0
  70. package/dist/Table.d.ts.map +1 -0
  71. package/dist/Table.js +7 -4
  72. package/dist/VisuallyHidden.d.ts +8 -0
  73. package/dist/VisuallyHidden.d.ts.map +1 -0
  74. package/dist/VisuallyHidden.js +28 -0
  75. package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts +3 -0
  76. package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts.map +1 -0
  77. package/dist/defineElement-40372b4b.d.ts +9 -0
  78. package/dist/defineElement-40372b4b.d.ts.map +1 -0
  79. package/dist/{defineElement-47d4f665.js → defineElement-40372b4b.js} +1 -1
  80. package/dist/icon-03e86700.d.ts +11 -0
  81. package/dist/icon-03e86700.d.ts.map +1 -0
  82. package/dist/index.js.d.ts +21 -0
  83. package/dist/index.js.d.ts.map +1 -0
  84. package/dist/{index.js → index.js.js} +14 -8
  85. package/dist/leu-accordion.d.ts +3 -0
  86. package/dist/leu-accordion.d.ts.map +1 -0
  87. package/dist/leu-accordion.js +9 -0
  88. package/dist/leu-breadcrumb.d.ts +3 -0
  89. package/dist/leu-breadcrumb.d.ts.map +1 -0
  90. package/dist/leu-breadcrumb.js +23 -0
  91. package/dist/leu-button-group.d.ts +3 -0
  92. package/dist/leu-button-group.d.ts.map +1 -0
  93. package/dist/leu-button-group.js +1 -5
  94. package/dist/leu-button.d.ts +3 -0
  95. package/dist/leu-button.d.ts.map +1 -0
  96. package/dist/leu-button.js +3 -2
  97. package/dist/leu-checkbox-group.d.ts +3 -0
  98. package/dist/leu-checkbox-group.d.ts.map +1 -0
  99. package/dist/leu-checkbox-group.js +1 -1
  100. package/dist/leu-checkbox.d.ts +3 -0
  101. package/dist/leu-checkbox.d.ts.map +1 -0
  102. package/dist/leu-checkbox.js +1 -1
  103. package/dist/leu-chip-group.d.ts +3 -0
  104. package/dist/leu-chip-group.d.ts.map +1 -0
  105. package/dist/leu-chip-group.js +2 -1
  106. package/dist/leu-chip-link.d.ts +3 -0
  107. package/dist/leu-chip-link.d.ts.map +1 -0
  108. package/dist/leu-chip-link.js +2 -2
  109. package/dist/leu-chip-removable.d.ts +3 -0
  110. package/dist/leu-chip-removable.d.ts.map +1 -0
  111. package/dist/leu-chip-removable.js +2 -2
  112. package/dist/leu-chip-selectable.d.ts +3 -0
  113. package/dist/leu-chip-selectable.d.ts.map +1 -0
  114. package/dist/leu-chip-selectable.js +2 -2
  115. package/dist/leu-dropdown.d.ts +3 -0
  116. package/dist/leu-dropdown.d.ts.map +1 -0
  117. package/dist/leu-dropdown.js +5 -4
  118. package/dist/leu-input.d.ts +3 -0
  119. package/dist/leu-input.d.ts.map +1 -0
  120. package/dist/leu-input.js +1 -1
  121. package/dist/leu-menu-item.d.ts +3 -0
  122. package/dist/leu-menu-item.d.ts.map +1 -0
  123. package/dist/leu-menu-item.js +1 -1
  124. package/dist/leu-menu.d.ts +3 -0
  125. package/dist/leu-menu.d.ts.map +1 -0
  126. package/dist/leu-menu.js +1 -1
  127. package/dist/leu-pagination.d.ts +3 -0
  128. package/dist/leu-pagination.d.ts.map +1 -0
  129. package/dist/leu-pagination.js +5 -2
  130. package/dist/leu-popup.d.ts +3 -0
  131. package/dist/leu-popup.d.ts.map +1 -0
  132. package/dist/leu-popup.js +9 -0
  133. package/dist/leu-radio-group.d.ts +3 -0
  134. package/dist/leu-radio-group.d.ts.map +1 -0
  135. package/dist/leu-radio-group.js +1 -1
  136. package/dist/leu-radio.d.ts +3 -0
  137. package/dist/leu-radio.d.ts.map +1 -0
  138. package/dist/leu-radio.js +1 -1
  139. package/dist/leu-scroll-top.d.ts +3 -0
  140. package/dist/leu-scroll-top.d.ts.map +1 -0
  141. package/dist/leu-scroll-top.js +14 -0
  142. package/dist/leu-select.d.ts +3 -0
  143. package/dist/leu-select.d.ts.map +1 -0
  144. package/dist/leu-select.js +4 -3
  145. package/dist/leu-table.d.ts +3 -0
  146. package/dist/leu-table.d.ts.map +1 -0
  147. package/dist/leu-table.js +5 -2
  148. package/dist/leu-visually-hidden.d.ts +3 -0
  149. package/dist/leu-visually-hidden.d.ts.map +1 -0
  150. package/dist/leu-visually-hidden.js +8 -0
  151. package/dist/theme.css +386 -2
  152. package/dist/utils-65469421.d.ts +16 -0
  153. package/dist/utils-65469421.d.ts.map +1 -0
  154. package/dist/utils-65469421.js +35 -0
  155. package/index.js +3 -0
  156. package/package.json +30 -12
  157. package/postcss.config.cjs +2 -0
  158. package/rollup.config.js +21 -40
  159. package/scripts/generate-component/templates/[name].css +2 -2
  160. package/scripts/postcss-leu-font-styles.cjs +160 -0
  161. package/src/components/accordion/accordion.css +2 -2
  162. package/src/components/accordion/stories/accordion.stories.js +2 -1
  163. package/src/components/accordion/test/accordion.test.js +4 -2
  164. package/src/components/breadcrumb/Breadcrumb.js +2 -1
  165. package/src/components/breadcrumb/breadcrumb.css +2 -13
  166. package/src/components/button/Button.js +69 -8
  167. package/src/components/button/button.css +10 -2
  168. package/src/components/button/stories/button.stories.js +43 -90
  169. package/src/components/button/test/button.test.js +90 -19
  170. package/src/components/button-group/ButtonGroup.js +76 -34
  171. package/src/components/button-group/stories/button-group.stories.js +13 -6
  172. package/src/components/button-group/test/button-group.test.js +38 -31
  173. package/src/components/checkbox/checkbox-group.css +2 -2
  174. package/src/components/checkbox/checkbox.css +1 -1
  175. package/src/components/chip/ChipGroup.js +42 -2
  176. package/src/components/chip/ChipRemovable.js +1 -1
  177. package/src/components/chip/ChipSelectable.js +4 -4
  178. package/src/components/chip/chip-group.css +12 -2
  179. package/src/components/chip/chip.css +14 -3
  180. package/src/components/chip/stories/chip-group.stories.js +100 -46
  181. package/src/components/chip/test/chip-removable.test.js +3 -3
  182. package/src/components/dropdown/Dropdown.js +23 -3
  183. package/src/components/input/Input.js +7 -4
  184. package/src/components/input/input.css +2 -2
  185. package/src/components/input/stories/input.stories.js +13 -0
  186. package/src/components/input/test/input.test.js +1 -0
  187. package/src/components/menu/menu-item.css +3 -3
  188. package/src/components/pagination/Pagination.js +91 -60
  189. package/src/components/pagination/pagination.css +6 -1
  190. package/src/components/pagination/stories/pagination.stories.js +15 -2
  191. package/src/components/pagination/test/pagination.test.js +15 -15
  192. package/src/components/popup/popup.css +2 -2
  193. package/src/components/popup/stories/popup.stories.js +1 -1
  194. package/src/components/radio/radio-group.css +2 -2
  195. package/src/components/radio/radio.css +1 -1
  196. package/src/components/scroll-top/ScrollTop.js +87 -0
  197. package/src/components/scroll-top/leu-scroll-top.js +6 -0
  198. package/src/components/scroll-top/scroll-top.css +34 -0
  199. package/src/components/scroll-top/stories/scroll-top.stories.js +217 -0
  200. package/src/components/scroll-top/test/scroll-top.test.js +22 -0
  201. package/src/components/select/Select.js +24 -6
  202. package/src/components/select/select.css +2 -2
  203. package/src/components/table/table.css +2 -2
  204. package/src/components/visually-hidden/VisuallyHidden.js +13 -0
  205. package/src/components/visually-hidden/leu-visually-hidden.js +6 -0
  206. package/src/components/visually-hidden/stories/visually-hidden.stories.js +22 -0
  207. package/src/components/visually-hidden/test/visually-hidden.test.js +36 -0
  208. package/src/components/visually-hidden/visually-hidden.css +10 -0
  209. package/src/lib/defineElement.js +1 -1
  210. package/src/lib/hasSlotController.js +5 -3
  211. package/src/lib/utils.js +21 -3
  212. package/src/styles/custom-properties.css +6 -2
  213. package/src/styles/font-definitions.json +202 -0
  214. package/stylelint.config.mjs +2 -0
  215. package/tsconfig.build.json +21 -0
  216. package/tsconfig.json +16 -0
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @tagname leu-menu-item
3
+ * @slot - The label of the menu item
4
+ */
5
+ export class LeuMenuItem extends LitElement {
6
+ static getIconOrText(name: any): any;
7
+ active: boolean;
8
+ disabled: boolean;
9
+ /**
10
+ * A programmatic way to highlight the menu item like it is hovered.
11
+ * This is just a visual effect and does not change the active state.
12
+ */
13
+ highlighted: boolean;
14
+ renderBefore(): typeof nothing | import("lit-html").TemplateResult;
15
+ renderAfter(): typeof nothing | import("lit-html").TemplateResult;
16
+ getTagName(): "button" | "a";
17
+ render(): import("lit-html").TemplateResult;
18
+ }
19
+ import { LitElement } from 'lit';
20
+ import { nothing } from 'lit';
21
+ //# sourceMappingURL=MenuItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuItem.d.ts","sourceRoot":"","sources":["MenuItem.js"],"names":[],"mappings":"AAsFA;;;GAGG;AACH;IAYE,qCAQC;IAjBC,gBAAmB;IACnB,kBAAqB;IAErB;;;OAGG;IACH,qBAAwB;IAW1B,mEAMC;IACD,kEAMC;IACD,6BAEC;IACD,4CAQC;CACF;2BAxIwC,KAAK;wBAAL,KAAK"}
package/dist/MenuItem.js CHANGED
@@ -16,10 +16,10 @@ var css_248z = css`:host,
16
16
  --background-disabled: var(--leu-color-black-black-0);
17
17
  --color: var(--leu-color-black-transp-60);
18
18
  --color-disabled: var(--leu-color-black-transp-20);
19
- --font-regular: var(--leu-font-regular);
20
- --font-black: var(--leu-font-black);
19
+ --font-regular: var(--leu-font-family-regular);
20
+ --font-black: var(--leu-font-family-black);
21
21
 
22
- font-family: var(--leu-font-regular);
22
+ font-family: var(--leu-font-family-regular);
23
23
  }
24
24
 
25
25
  .button {
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @tagname leu-pagination
3
+ */
4
+ export class LeuPagination extends LitElement {
5
+ /** @type {Number} */
6
+ numOfItems: number;
7
+ /** @type {Number} */
8
+ itemsPerPage: number;
9
+ /** @type {Number} */
10
+ _page: number;
11
+ attributeChangedCallback(name: any, oldVal: any, newVal: any): void;
12
+ set page(page: number);
13
+ get page(): number;
14
+ get startIndex(): number;
15
+ get endIndex(): number;
16
+ get _maxPage(): number;
17
+ _isFirstPage(): boolean;
18
+ _isLastPage(): boolean;
19
+ _clampPage(page: any): number;
20
+ _updatePage(page: any): void;
21
+ _handleChange(event: any): void;
22
+ _handleInput(event: any): void;
23
+ _handleKeyDown(event: any): void;
24
+ render(): import("lit-html").TemplateResult<1>;
25
+ }
26
+ import { LitElement } from 'lit';
27
+ //# sourceMappingURL=Pagination.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["Pagination.js"],"names":[],"mappings":"AA2EA;;GAEG;AACH;IAII,qBAAqB;IACrB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,cAAc;IAEhB,oEAKC;IAID,uBAEC;IALD,mBAEC;IAID,yBAEC;IACD,uBAEC;IACD,uBAEC;IACD,wBAEC;IACD,uBAEC;IACD,8BAEC;IACD,6BAaC;IACD,gCAEC;IACD,+BAKC;IACD,iCASC;IACD,+CAsCC;CACF;2BA9LqC,KAAK"}
@@ -2,16 +2,19 @@ import { _ as _defineProperty } from './_rollupPluginBabelHelpers-20f659f4.js';
2
2
  import { css, LitElement, html } from 'lit';
3
3
  import { live } from 'lit/directives/live.js';
4
4
  import './leu-button.js';
5
- import './defineElement-47d4f665.js';
6
- import './Button.js';
5
+ import './leu-visually-hidden.js';
6
+ import './defineElement-40372b4b.js';
7
+ import './Button-da11d064.js';
7
8
  import 'lit/directives/class-map.js';
9
+ import 'lit/directives/if-defined.js';
8
10
  import './icon-03e86700.js';
11
+ import './VisuallyHidden.js';
9
12
 
10
13
  var css_248z = css`:host {
11
14
  margin-top: 16px;
12
15
  display: flex;
13
16
  justify-content: end;
14
- font-family: var(--leu-font-regular);
17
+ font-family: var(--leu-font-family-regular);
15
18
  }
16
19
 
17
20
  .input {
@@ -61,6 +64,11 @@ var css_248z = css`:host {
61
64
  color: var(--leu-color-black-transp-60);
62
65
  white-space: nowrap;
63
66
  }
67
+
68
+ .button-group {
69
+ display: flex;
70
+ gap: 0.25rem;
71
+ }
64
72
  `;
65
73
 
66
74
  const MIN_PAGE = 1;
@@ -71,98 +79,114 @@ const MIN_PAGE = 1;
71
79
  class LeuPagination extends LitElement {
72
80
  constructor() {
73
81
  super();
74
- /** @type {number} */
75
- this.page = 1;
76
- /** @type {number} */
82
+
83
+ /** @type {Number} */
77
84
  this.numOfItems = 1;
78
- /** @type {number} */
85
+ /** @type {Number} */
79
86
  this.itemsPerPage = 1;
87
+ /** @type {Number} */
88
+ this._page = 1;
89
+ }
90
+ attributeChangedCallback(name, oldVal, newVal) {
91
+ super.attributeChangedCallback(name, oldVal, newVal);
92
+ if (name === "defaultpage" && newVal !== oldVal) {
93
+ this.page = parseInt(newVal, 10);
94
+ }
95
+ }
96
+ get page() {
97
+ return this._page;
98
+ }
99
+ set page(page) {
100
+ this._page = this._clampPage(page);
101
+ }
102
+ get startIndex() {
103
+ return (this.page - 1) * this.itemsPerPage;
80
104
  }
81
- get maxPage() {
105
+ get endIndex() {
106
+ return Math.min(this.startIndex + this.itemsPerPage, this.numOfItems);
107
+ }
108
+ get _maxPage() {
82
109
  return Math.ceil(this.numOfItems / this.itemsPerPage);
83
110
  }
84
- get firstPage() {
85
- return this.boundPage === MIN_PAGE;
111
+ _isFirstPage() {
112
+ return this.page === MIN_PAGE;
86
113
  }
87
- get lastPage() {
88
- return this.boundPage === this.maxPage;
114
+ _isLastPage() {
115
+ return this.page === this._maxPage;
89
116
  }
90
-
91
- /**
92
- * The boundPage getter is necessary to ensure that the current page (this.page) is always within the valid range of pages.
93
- * It prevents the page number from going below the minimum page limit (MIN_PAGE) or above the maximum page limit (this.maxPage).
94
- * This is important for the correct functioning of the pagination system, as it prevents users from navigating to non-existent pages.
95
- *
96
- * @returns {number}
97
- */
98
- get boundPage() {
99
- return Math.min(Math.max(this.page, MIN_PAGE), this.maxPage);
117
+ _clampPage(page) {
118
+ return Math.min(Math.max(page, MIN_PAGE), this._maxPage);
100
119
  }
101
- numberUpdate(number) {
120
+ _updatePage(page) {
102
121
  const prevPage = this.page;
103
- this.page = number;
122
+ this.page = this._clampPage(page);
104
123
  if (this.page !== prevPage) {
105
- const startIndex = (this.boundPage - 1) * this.itemsPerPage;
106
- const endIndex = Math.min(startIndex + this.itemsPerPage, this.numOfItems);
107
124
  this.dispatchEvent(new CustomEvent("leu:pagechange", {
108
125
  detail: {
109
- startIndex,
110
- endIndex,
111
- page: this.boundPage
126
+ startIndex: this.startIndex,
127
+ endIndex: this.endIndex,
128
+ page: this.page
112
129
  },
113
130
  bubbles: false
114
131
  }));
115
132
  }
116
133
  }
117
- change(event) {
118
- this.numberUpdate(parseInt(event.target.value, 10) || 0);
134
+ _handleChange(event) {
135
+ this._updatePage(parseInt(event.target.value, 10) || 0);
119
136
  }
120
- input(event) {
137
+ _handleInput(event) {
121
138
  if (event.target.value !== "") {
122
139
  event.preventDefault();
123
- this.change(event);
140
+ this._handleChange(event);
124
141
  }
125
142
  }
126
- keydown(event) {
143
+ _handleKeyDown(event) {
127
144
  if (event.key === "ArrowUp") {
128
145
  event.preventDefault();
129
- this.numberUpdate(this.boundPage + 1);
146
+ this._updatePage(this.page + 1);
130
147
  }
131
148
  if (event.key === "ArrowDown") {
132
149
  event.preventDefault();
133
- this.numberUpdate(this.boundPage - 1);
150
+ this._updatePage(this.page - 1);
134
151
  }
135
152
  }
136
153
  render() {
137
154
  return html`
155
+ <leu-visually-hidden>
156
+ <label for="page-input">Aktuelle Seite</label>
157
+ </leu-visually-hidden>
138
158
  <input
159
+ id="page-input"
139
160
  class="input"
140
161
  min=${MIN_PAGE}
141
- max=${this.maxPage}
142
- .value=${live(this.boundPage.toString())}
143
- @input=${this.input}
144
- @change=${this.change}
145
- @keydown=${this.keydown}
162
+ max=${this._maxPage}
163
+ .value=${live(this.page.toString())}
164
+ @input=${this._handleInput}
165
+ @change=${this._handleChange}
166
+ @keydown=${this._handleKeyDown}
146
167
  type="number"
147
168
  />
148
- <div class="label">von ${this.maxPage}</div>
149
- <leu-button
150
- icon="angleLeft"
151
- variant="secondary"
152
- @click=${_ => {
153
- this.numberUpdate(this.boundPage - 1);
169
+ <div class="label">von ${this._maxPage}</div>
170
+ <div class="button-group">
171
+ <leu-button
172
+ icon="angleLeft"
173
+ variant="secondary"
174
+ label="Vorherige Seite"
175
+ @click=${_ => {
176
+ this._updatePage(this.page - 1);
154
177
  }}
155
- ?disabled=${this.firstPage}
156
- ></leu-button>
157
- <leu-button
158
- icon="angleRight"
159
- variant="secondary"
160
- @click=${_ => {
161
- this.numberUpdate(this.boundPage + 1);
178
+ ?disabled=${this._isFirstPage()}
179
+ ></leu-button>
180
+ <leu-button
181
+ icon="angleRight"
182
+ variant="secondary"
183
+ label="Nächste Seite"
184
+ @click=${_ => {
185
+ this._updatePage(this.page + 1);
162
186
  }}
163
- ?disabled=${this.lastPage}
164
- style="margin-left:4px;"
165
- ></leu-button>
187
+ ?disabled=${this._isLastPage()}
188
+ ></leu-button>
189
+ </div>
166
190
  `;
167
191
  }
168
192
  }
@@ -174,11 +198,8 @@ _defineProperty(LeuPagination, "shadowRootOptions", {
174
198
  ...LitElement.shadowRootOptions,
175
199
  delegatesFocus: true
176
200
  });
177
- _defineProperty(LeuPagination, "events", {
178
- range: {}
179
- });
180
201
  _defineProperty(LeuPagination, "properties", {
181
- page: {
202
+ defaultPage: {
182
203
  type: Number,
183
204
  reflect: true
184
205
  },
@@ -189,6 +210,17 @@ _defineProperty(LeuPagination, "properties", {
189
210
  numOfItems: {
190
211
  type: Number,
191
212
  reflect: true
213
+ },
214
+ /**
215
+ * Internal page state that contains an
216
+ * already clamped page number. Should only
217
+ * be accessed through the `page` getter and
218
+ * setter.
219
+ * @type {Number}
220
+ * @internal
221
+ */
222
+ _page: {
223
+ state: true
192
224
  }
193
225
  });
194
226
 
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @tagname leu-popup
3
+ */
4
+ export class LeuPopup extends LitElement {
5
+ anchorEl: any;
6
+ cleanup: () => void;
7
+ flip: boolean;
8
+ shift: boolean;
9
+ updated(changedProperties: any): void;
10
+ get popupEl(): Element;
11
+ start(): void;
12
+ stop(): void;
13
+ reposition(): void;
14
+ handleAnchorChange(): void;
15
+ render(): import("lit-html").TemplateResult<1>;
16
+ }
17
+ import { LitElement } from 'lit';
18
+ //# sourceMappingURL=Popup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popup.d.ts","sourceRoot":"","sources":["Popup.js"],"names":[],"mappings":"AAuCA;;GAEG;AACH;IAGI,cAAoB;IACpB,oBAAwB;IACxB,cAAiB;IACjB,eAAkB;IAMpB,sCAcC;IACD,uBAEC;IACD,cAKC;IACD,aAIC;IACD,mBAiEC;IACD,2BAiBC;IACD,+CAOC;CACF;2BA9KqC,KAAK"}
@@ -1,4 +1,3 @@
1
- import { d as defineElement } from './defineElement-47d4f665.js';
2
1
  import { _ as _defineProperty } from './_rollupPluginBabelHelpers-20f659f4.js';
3
2
  import { css, LitElement, html } from 'lit';
4
3
  import { autoUpdate, size, flip, shift, computePosition } from '@floating-ui/dom';
@@ -9,10 +8,10 @@ var css_248z = css`:host,
9
8
  }
10
9
 
11
10
  :host {
12
- --popup-font-regular: var(--leu-font-regular);
13
- --popup-font-black: var(--leu-font-black);
11
+ --popup-font-regular: var(--leu-font-family-regular);
12
+ --popup-font-black: var(--leu-font-family-black);
14
13
 
15
- font-family: var(--leu-font-regular);
14
+ font-family: var(--leu-font-family-regular);
16
15
 
17
16
  font-family: var(--popup-font-regular);
18
17
  }
@@ -213,4 +212,4 @@ _defineProperty(LeuPopup, "properties", {
213
212
  }
214
213
  });
215
214
 
216
- defineElement("popup", LeuPopup);
215
+ export { LeuPopup };
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @tagname leu-radio
3
+ */
4
+ export class LeuRadio extends LitElement {
5
+ checked: boolean;
6
+ disabled: boolean;
7
+ handleChange(event: any): void;
8
+ handleInput(event: any): void;
9
+ render(): import("lit-html").TemplateResult<1>;
10
+ }
11
+ import { LitElement } from 'lit';
12
+ //# sourceMappingURL=Radio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Radio.d.ts","sourceRoot":"","sources":["Radio.js"],"names":[],"mappings":"AAgGA;;GAEG;AACH;IAGI,iBAAoB;IACpB,kBAAqB;IAEvB,+BAIC;IACD,8BAEC;IACD,+CAeC;CACF;2BAhIqC,KAAK"}
package/dist/Radio.js CHANGED
@@ -9,13 +9,13 @@ var css_248z = css`:host {
9
9
  --radio-label-color: var(--leu-color-black-100);
10
10
  --radio-label-color-disabled: var(--radio-color-disabled);
11
11
 
12
- --radio-font-regular: var(--leu-font-regular);
12
+ --radio-font-regular: var(--leu-font-family-regular);
13
13
 
14
14
  display: inline-flex;
15
15
  align-items: flex-start;
16
16
  gap: 0.5rem;
17
17
 
18
- font-family: var(--leu-font-regular);
18
+ font-family: var(--leu-font-family-regular);
19
19
 
20
20
  font-family: var(--radio-font-regular);
21
21
  }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @tagname leu-radio-group
3
+ */
4
+ export class LeuRadioGroup extends LitElement {
5
+ _currentIndex: number;
6
+ orientation: string;
7
+ items: any[];
8
+ get value(): any;
9
+ addEventListeners(): void;
10
+ removeEventListeners(): void;
11
+ handleSlotChange(): void;
12
+ selectItem(selectingItem: any): void;
13
+ selectNextItem(startingIndex: any, direction: any): void;
14
+ setTabIndex(): void;
15
+ handleItems(): void;
16
+ initializeIndex(): void;
17
+ render(): import("lit-html").TemplateResult<1>;
18
+ }
19
+ import { LitElement } from 'lit';
20
+ //# sourceMappingURL=RadioGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RadioGroup.d.ts","sourceRoot":"","sources":["RadioGroup.js"],"names":[],"mappings":"AAqCA;;GAEG;AACH;IAIM,sBAAiD;IA6BnD,oBAA+B;IAE/B,aAAe;IAEjB,iBAGC;IAUD,0BAIC;IACD,6BAIC;IACD,yBAEC;IACD,qCAIC;IACD,yDAaC;IACD,oBAQC;IACD,oBAIC;IACD,wBAIC;IACD,+CAWC;CACF;2BAxJqC,KAAK"}
@@ -3,10 +3,10 @@ import { css, LitElement, html } from 'lit';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
4
 
5
5
  var css_248z = css`:host {
6
- --group-font-regular: var(--leu-font-regular);
7
- --group-font-black: var(--leu-font-black);
6
+ --group-font-regular: var(--leu-font-family-regular);
7
+ --group-font-black: var(--leu-font-family-black);
8
8
 
9
- font-family: var(--leu-font-regular);
9
+ font-family: var(--leu-font-family-regular);
10
10
 
11
11
  font-family: var(--group-font-regular);
12
12
  }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @tagname leu-scroll-top
3
+ */
4
+ export class LeuScrollTop extends LitElement {
5
+ static scrollToTop(): void;
6
+ _scrollDown: boolean;
7
+ /**
8
+ * Only show the button when
9
+ * ... the current scroll position is greater than the window height (below-the-fold) and when
10
+ * ... scrolling up
11
+ */
12
+ _showButton: boolean;
13
+ _prevYPos: number;
14
+ /** @internal */
15
+ _scrollListener: Function;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
18
+ import { LitElement } from 'lit';
19
+ //# sourceMappingURL=ScrollTop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScrollTop.d.ts","sourceRoot":"","sources":["ScrollTop.js"],"names":[],"mappings":"AA8CA;;GAEG;AACH;IAwCE,2BAMC;IAtCO,qBAAwB;IAM5B;;;;OAIG;IACH,qBAA2E;IAC3E,kBAA+B;IAQjC,gBAAgB;IAChB,0BAAgC;IAkBlC,+CAgBC;CACF;2BAhHqC,KAAK"}
@@ -0,0 +1,122 @@
1
+ import { _ as _defineProperty } from './_rollupPluginBabelHelpers-20f659f4.js';
2
+ import { css, LitElement, html } from 'lit';
3
+ import { classMap } from 'lit/directives/class-map.js';
4
+ import './leu-button.js';
5
+ import { t as throttle } from './utils-65469421.js';
6
+ import './defineElement-40372b4b.js';
7
+ import './Button-da11d064.js';
8
+ import 'lit/directives/if-defined.js';
9
+ import './icon-03e86700.js';
10
+
11
+ var css_248z = css`.scroll-top {
12
+ overflow: hidden;
13
+ position: fixed;
14
+ right: 1.5rem;
15
+ z-index: 1099;
16
+ bottom: 8.125rem;
17
+
18
+ /* show */
19
+ height: 50px;
20
+ pointer-events: auto;
21
+ transition: height, bottom 0.9s, 0.6s ease;
22
+ }
23
+
24
+ .hide {
25
+ height: 0;
26
+ pointer-events: none;
27
+ transition: height, top 0.9s, 0.6s ease;
28
+ }
29
+
30
+ @keyframes hide-animation {
31
+ 0% {
32
+ transform: rotate(0deg);
33
+ }
34
+
35
+ 100% {
36
+ transform: rotate(90deg);
37
+ }
38
+ }
39
+
40
+ .hide leu-button {
41
+ animation-name: hide-animation;
42
+ animation-duration: 0.45s;
43
+ animation-timing-function: ease;
44
+ }
45
+ `;
46
+
47
+ /**
48
+ * @tagname leu-scroll-top
49
+ */
50
+ class LeuScrollTop extends LitElement {
51
+ constructor() {
52
+ super();
53
+ /** @internal */
54
+ _defineProperty(this, "scroll", () => {
55
+ const delta = window.scrollY - this._prevYPos;
56
+ if (this._scrollDown) {
57
+ if (delta < 0) {
58
+ this._scrollDown = false;
59
+ }
60
+ } else if (delta > 0) {
61
+ this._scrollDown = true;
62
+ }
63
+
64
+ /**
65
+ * Only show the button when
66
+ * ... the current scroll position is greater than the window height (below-the-fold) and when
67
+ * ... scrolling up
68
+ */
69
+ this._showButton = window.scrollY > window.innerHeight && !this._scrollDown;
70
+ this._prevYPos = window.scrollY;
71
+ });
72
+ this._prevYPos = 0;
73
+ /** @internal */
74
+ this._showButton = false;
75
+ /** @internal */
76
+ this._scrollDown = false;
77
+
78
+ /** @internal */
79
+ this._scrollListener = undefined;
80
+ }
81
+ connectedCallback() {
82
+ super.connectedCallback();
83
+ this._scrollListener = throttle(this.scroll, 100);
84
+ document.addEventListener("scroll", this._scrollListener, true);
85
+ }
86
+ disconnectedCallback() {
87
+ document.removeEventListener("scroll", this._scrollListener, true);
88
+ super.disconnectedCallback();
89
+ }
90
+ static scrollToTop() {
91
+ window.scrollTo({
92
+ top: 0,
93
+ left: 0,
94
+ behavior: "smooth"
95
+ });
96
+ }
97
+ render() {
98
+ const cssClasses = {
99
+ "scroll-top": true,
100
+ hide: !this._showButton
101
+ };
102
+ return html`
103
+ <div class=${classMap(cssClasses)}>
104
+ <leu-button
105
+ icon="arrowUp"
106
+ label="Zum Seitenanfang"
107
+ round
108
+ @click="${() => LeuScrollTop.scrollToTop()}"
109
+ >
110
+ </leu-button>
111
+ </div>
112
+ `;
113
+ }
114
+ }
115
+ _defineProperty(LeuScrollTop, "styles", css_248z);
116
+ _defineProperty(LeuScrollTop, "properties", {
117
+ _showButton: {
118
+ state: true
119
+ }
120
+ });
121
+
122
+ export { LeuScrollTop };
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @tagname leu-select
3
+ * @slot before - Optional content the appears before the option list
4
+ * @slot after - Optional content the appears after the option list
5
+ */
6
+ export class LeuSelect extends LitElement {
7
+ static get properties(): {
8
+ open: {
9
+ type: BooleanConstructor;
10
+ reflect: boolean;
11
+ };
12
+ label: {
13
+ type: StringConstructor;
14
+ reflect: boolean;
15
+ };
16
+ options: {
17
+ type: ArrayConstructor;
18
+ };
19
+ value: {
20
+ type: ArrayConstructor;
21
+ };
22
+ clearable: {
23
+ type: BooleanConstructor;
24
+ reflect: boolean;
25
+ };
26
+ disabled: {
27
+ type: BooleanConstructor;
28
+ reflect: boolean;
29
+ };
30
+ filterable: {
31
+ type: BooleanConstructor;
32
+ reflect: boolean;
33
+ };
34
+ multiple: {
35
+ type: BooleanConstructor;
36
+ reflect: boolean;
37
+ };
38
+ optionFilter: {
39
+ state: boolean;
40
+ };
41
+ };
42
+ static getOptionLabel(option: any): any;
43
+ open: boolean;
44
+ disabled: boolean;
45
+ multiple: boolean;
46
+ clearable: boolean;
47
+ filterable: boolean;
48
+ value: any[];
49
+ options: any[];
50
+ label: string;
51
+ /** @internal */
52
+ _arrowIcon: import("lit-html").TemplateResult<1>;
53
+ /** @internal */
54
+ _clearIcon: import("lit-html").TemplateResult<1>;
55
+ /** @internal */
56
+ optionFilter: string;
57
+ /** @internal */
58
+ deferedChangeEvent: boolean;
59
+ /**
60
+ * @type {import("lit/directives/ref").Ref<import("../menu/Menu").LeuMenu>}
61
+ */
62
+ menuRef: import("lit/directives/ref").Ref<any>;
63
+ /**
64
+ * @type {import("lit/directives/ref").Ref<import("../input/Input").LeuInput>}
65
+ */
66
+ optionFilterRef: import("lit/directives/ref").Ref<any>;
67
+ /**
68
+ * @type {import("lit/directives/ref").Ref<HTMLButtonElement>}
69
+ */
70
+ toggleButtonRef: import("lit/directives/ref").Ref<HTMLButtonElement>;
71
+ updated(changedProperties: any): void;
72
+ getDisplayValue(value: any): any;
73
+ getFilteredOptions(): any[];
74
+ emitUpdateEvents(): void;
75
+ emitInputEvent(): void;
76
+ emitChangeEvent(): void;
77
+ clearValue(event: any): void;
78
+ toggleDropdown(): void;
79
+ openDropdown(): void;
80
+ closeDropdown(): void;
81
+ /**
82
+ * Adds or replaces the given option in the options array.
83
+ *
84
+ * @param {*} option
85
+ */
86
+ selectOption(option: any): void;
87
+ handleApplyClick(): void;
88
+ handleFilterInput(event: any): void;
89
+ isSelected(option: any): boolean;
90
+ renderMenu(): import("lit-html").TemplateResult<1>;
91
+ renderFilterInput(): import("lit-html").TemplateResult<1> | typeof nothing;
92
+ renderApplyButton(): import("lit-html").TemplateResult<1> | typeof nothing;
93
+ renderToggleButton(): import("lit-html").TemplateResult<1>;
94
+ render(): import("lit-html").TemplateResult<1>;
95
+ }
96
+ import { LitElement } from 'lit';
97
+ import { nothing } from 'lit';
98
+ //# sourceMappingURL=Select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Select.d.ts","sourceRoot":"","sources":["Select.js"],"names":[],"mappings":"AA6PA;;;;GAIG;AACH;IACE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoCC;IACD,wCAKC;IA4BC,cAAiB;IACjB,kBAAqB;IAErB,kBAAqB;IACrB,mBAAsB;IACtB,oBAAuB;IACvB,aAAe;IACf,eAAiB;IACjB,cAAe;IAEf,gBAAgB;IAChB,iDAAuC;IAEvC,gBAAgB;IAChB,iDAA+B;IAE/B,gBAAgB;IAChB,qBAAsB;IAEtB,gBAAgB;IAChB,4BAA+B;IAE/B;;OAEG;IACH,SAFU,OAAO,oBAAoB,EAAE,GAAG,KAAgC,CAEhD;IAC1B;;OAEG;IACH,iBAFU,OAAO,oBAAoB,EAAE,GAAG,KAAmC,CAE3C;IAClC;;OAEG;IACH,iBAFU,OAAO,oBAAoB,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAE3B;IAUpC,sCAUC;IACD,iCAKC;IACD,4BAKC;IACD,yBAGC;IACD,uBAMC;IACD,wBAMC;IACD,6BAMC;IACD,uBAIC;IACD,qBAEC;IACD,sBAMC;IAED;;;;OAIG;IACH,gCAYC;IACD,yBAEC;IACD,oCAEC;IACD,iCAEC;IACD,mDAqCC;IACD,2EAYC;IACD,2EAaC;IACD,2DA+BC;IACD,+CAkCC;CACF;2BAllB8C,KAAK;wBAAL,KAAK"}