@statistikzh/leu 0.19.1 → 0.19.2

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 (75) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +7 -0
  3. package/dist/Accordion.js +1 -1
  4. package/dist/Button.js +1 -1
  5. package/dist/ButtonGroup.js +1 -1
  6. package/dist/ChartWrapper.js +1 -1
  7. package/dist/Checkbox.js +1 -1
  8. package/dist/CheckboxGroup.js +1 -1
  9. package/dist/Chip.js +1 -1
  10. package/dist/ChipGroup.js +1 -1
  11. package/dist/ChipLink.js +1 -1
  12. package/dist/ChipRemovable.js +1 -1
  13. package/dist/ChipSelectable.js +1 -1
  14. package/dist/Dialog.js +1 -1
  15. package/dist/Dropdown.js +1 -1
  16. package/dist/FileInput.d.ts +5 -0
  17. package/dist/FileInput.js +18 -1
  18. package/dist/Icon.js +1 -1
  19. package/dist/Input.js +1 -1
  20. package/dist/{LeuElement-CRdVLttR.js → LeuElement-CcarVabH.js} +1 -1
  21. package/dist/Menu.js +1 -1
  22. package/dist/MenuItem.js +1 -1
  23. package/dist/Message.js +1 -1
  24. package/dist/Pagination.js +1 -1
  25. package/dist/Placeholder.js +1 -1
  26. package/dist/Popup.js +1 -1
  27. package/dist/ProgressBar.js +1 -1
  28. package/dist/Radio.js +1 -1
  29. package/dist/RadioGroup.js +1 -1
  30. package/dist/Range.js +1 -1
  31. package/dist/ScrollTop.js +1 -1
  32. package/dist/Select.js +1 -1
  33. package/dist/Spinner.js +1 -1
  34. package/dist/Table.js +1 -1
  35. package/dist/Tag.js +1 -1
  36. package/dist/VisuallyHidden.js +1 -1
  37. package/dist/components/file-input/FileInput.d.ts +5 -0
  38. package/dist/components/file-input/FileInput.d.ts.map +1 -1
  39. package/dist/index.js +1 -1
  40. package/dist/leu-accordion.js +1 -1
  41. package/dist/leu-button-group.js +1 -1
  42. package/dist/leu-button.js +1 -1
  43. package/dist/leu-chart-wrapper.js +1 -1
  44. package/dist/leu-checkbox-group.js +1 -1
  45. package/dist/leu-checkbox.js +1 -1
  46. package/dist/leu-chip-group.js +1 -1
  47. package/dist/leu-chip-link.js +1 -1
  48. package/dist/leu-chip-removable.js +1 -1
  49. package/dist/leu-chip-selectable.js +1 -1
  50. package/dist/leu-dialog.js +1 -1
  51. package/dist/leu-dropdown.js +1 -1
  52. package/dist/leu-file-input.js +1 -1
  53. package/dist/leu-icon.js +1 -1
  54. package/dist/leu-input.js +1 -1
  55. package/dist/leu-menu-item.js +1 -1
  56. package/dist/leu-menu.js +1 -1
  57. package/dist/leu-message.js +1 -1
  58. package/dist/leu-pagination.js +1 -1
  59. package/dist/leu-placeholder.js +1 -1
  60. package/dist/leu-popup.js +1 -1
  61. package/dist/leu-progress-bar.js +1 -1
  62. package/dist/leu-radio-group.js +1 -1
  63. package/dist/leu-radio.js +1 -1
  64. package/dist/leu-range.js +1 -1
  65. package/dist/leu-scroll-top.js +1 -1
  66. package/dist/leu-select.js +1 -1
  67. package/dist/leu-spinner.js +1 -1
  68. package/dist/leu-table.js +1 -1
  69. package/dist/leu-tag.js +1 -1
  70. package/dist/leu-visually-hidden.js +1 -1
  71. package/dist/vscode.html-custom-data.json +1 -1
  72. package/dist/vue/index.d.ts +9 -1
  73. package/dist/web-types.json +10 -4
  74. package/package.json +1 -1
  75. package/src/components/file-input/FileInput.ts +23 -0
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.19.1"
2
+ ".": "0.19.2"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.19.2](https://github.com/statistikZH/leu/compare/leu-v0.19.1...leu-v0.19.2) (2025-10-23)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **file-input:** dispatch input and change events when files are added and removed ([ad2faf5](https://github.com/statistikZH/leu/commit/ad2faf59ff96b0f0990f3022f3e2c07d8cc0975d))
9
+
3
10
  ## [0.19.1](https://github.com/statistikZH/leu/compare/leu-v0.19.0...leu-v0.19.1) (2025-10-15)
4
11
 
5
12
 
package/dist/Accordion.js CHANGED
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, nothing } from 'lit';
3
3
  import { unsafeStatic, html } from 'lit/static-html.js';
4
4
  import { property } from 'lit/decorators.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
 
7
7
  var css_248z = css`:host {
8
8
  --accordion-font-regular: var(--leu-font-family-regular);
package/dist/Button.js CHANGED
@@ -4,7 +4,7 @@ import { classMap } from 'lit/directives/class-map.js';
4
4
  import { ifDefined } from 'lit/directives/if-defined.js';
5
5
  import { property } from 'lit/decorators.js';
6
6
  import { LeuIcon } from './Icon.js';
7
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
7
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
8
8
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
9
9
 
10
10
  /**
@@ -1,5 +1,5 @@
1
1
  import { css, html } from 'lit';
2
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
2
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
3
3
  import { LeuButton } from './Button.js';
4
4
  import './_tslib-CNEFicEt.js';
5
5
  import 'lit/directives/class-map.js';
@@ -1,7 +1,7 @@
1
1
  import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, nothing, html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
4
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
5
5
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
6
6
  import { LeuSpinner } from './Spinner.js';
7
7
 
package/dist/Checkbox.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
4
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
5
5
  import { LeuIcon } from './Icon.js';
6
6
 
7
7
  var css_248z = css`:host {
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html } from 'lit';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
4
  import { property } from 'lit/decorators.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
  import { LeuCheckbox } from './Checkbox.js';
7
7
  import './Icon.js';
8
8
 
package/dist/Chip.js CHANGED
@@ -1,4 +1,4 @@
1
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
1
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
2
2
  import { css } from 'lit';
3
3
 
4
4
  var css_248z = css`:host *::before,
package/dist/ChipGroup.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { unsafeStatic, html } from 'lit/static-html.js';
2
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
2
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
3
3
  import { css } from 'lit';
4
4
 
5
5
  var css_248z = css`.label {
package/dist/ChipLink.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { html } from 'lit';
2
2
  import { LeuChipBase } from './Chip.js';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
 
5
5
  const SIZES = {
6
6
  regular: "regular",
@@ -1,7 +1,7 @@
1
1
  import { html } from 'lit';
2
2
  import { LeuChipBase } from './Chip.js';
3
3
  import { LeuIcon } from './Icon.js';
4
- import './LeuElement-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
  import './_tslib-CNEFicEt.js';
6
6
  import 'lit/decorators.js';
7
7
 
@@ -1,6 +1,6 @@
1
1
  import { html } from 'lit';
2
2
  import { LeuChipBase } from './Chip.js';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
 
5
5
  const SIZES = {
6
6
  small: "small",
package/dist/Dialog.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { css, nothing, html } from 'lit';
2
2
  import { createRef, ref } from 'lit/directives/ref.js';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
4
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
5
5
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
6
6
  import { LeuIcon } from './Icon.js';
7
7
  import './_tslib-CNEFicEt.js';
package/dist/Dropdown.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { css, nothing, html } from 'lit';
2
2
  import { createRef, ref } from 'lit/directives/ref.js';
3
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
3
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
4
4
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
5
5
  import { LeuButton } from './Button.js';
6
6
  import { LeuMenu } from './Menu.js';
@@ -6,6 +6,10 @@ import { LeuIcon } from './Icon.js';
6
6
  import { LeuVisuallyHidden } from './VisuallyHidden.js';
7
7
  import './leu-icon.js';
8
8
 
9
+ /**
10
+ * @todo Pluralize text when multiple files are allowed
11
+ * @todo Hide dropzone when not multiple and already filled
12
+ */
9
13
  /**
10
14
  * @tagname leu-file-input
11
15
  */
@@ -45,6 +49,7 @@ declare class LeuFileInput extends LeuElement {
45
49
  get name(): string;
46
50
  updated(changedProperties: any): void;
47
51
  protected handleInput(): void;
52
+ private handleChange;
48
53
  formResetCallback(): void;
49
54
  protected updateFormValue(): void;
50
55
  protected removeFile(fileToRemove: File): void;
package/dist/FileInput.js CHANGED
@@ -3,7 +3,7 @@ import { css, html, nothing } from 'lit';
3
3
  import { property, state, query } from 'lit/decorators.js';
4
4
  import { ifDefined } from 'lit/directives/if-defined.js';
5
5
  import { classMap } from 'lit/directives/class-map.js';
6
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
6
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
7
7
  import './Accordion.js';
8
8
  import { LeuButton } from './Button.js';
9
9
  import './ButtonGroup.js';
@@ -157,6 +157,10 @@ var css_248z = css`:host {
157
157
  }
158
158
  `;
159
159
 
160
+ /**
161
+ * @todo Pluralize text when multiple files are allowed
162
+ * @todo Hide dropzone when not multiple and already filled
163
+ */
160
164
  /**
161
165
  * @tagname leu-file-input
162
166
  */
@@ -235,6 +239,10 @@ class LeuFileInput extends LeuElement {
235
239
  : acceptableFiles.slice(0, 1);
236
240
  }
237
241
  }
242
+ handleChange(event) {
243
+ const customEvent = new CustomEvent(event.type, event);
244
+ this.dispatchEvent(customEvent);
245
+ }
238
246
  formResetCallback() {
239
247
  this.files = [];
240
248
  this.input.value = "";
@@ -249,6 +257,14 @@ class LeuFileInput extends LeuElement {
249
257
  }
250
258
  removeFile(fileToRemove) {
251
259
  this.files = this.files.filter((file) => file !== fileToRemove);
260
+ this.dispatchEvent(new CustomEvent("input", {
261
+ composed: true,
262
+ bubbles: true,
263
+ }));
264
+ this.dispatchEvent(new CustomEvent("change", {
265
+ composed: true,
266
+ bubbles: true,
267
+ }));
252
268
  }
253
269
  static formatFileSize(size) {
254
270
  if (size < 1e3) {
@@ -299,6 +315,7 @@ class LeuFileInput extends LeuElement {
299
315
  accept=${ifDefined(this.accept)}
300
316
  ?disabled=${this.disabled}
301
317
  @input=${this.handleInput}
318
+ @change=${this.handleChange}
302
319
  />
303
320
  </leu-visually-hidden>
304
321
  <div
package/dist/Icon.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html, svg } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
4
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
5
5
 
6
6
  var css_248z = css`:host {
7
7
  display: contents;
package/dist/Input.js CHANGED
@@ -3,7 +3,7 @@ import { classMap } from 'lit/directives/class-map.js';
3
3
  import { ifDefined } from 'lit/directives/if-defined.js';
4
4
  import { live } from 'lit/directives/live.js';
5
5
  import { createRef, ref } from 'lit/directives/ref.js';
6
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
6
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
7
7
  import { LeuIcon } from './Icon.js';
8
8
  import './_tslib-CNEFicEt.js';
9
9
  import 'lit/decorators.js';
@@ -35,7 +35,7 @@ class LeuElement extends LitElement {
35
35
  }
36
36
  }
37
37
  }
38
- LeuElement.version = "0.19.1";
38
+ LeuElement.version = "0.19.2";
39
39
  LeuElement.dependencies = {};
40
40
  LeuElement.styles = css_248z;
41
41
 
package/dist/Menu.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { css, html } from 'lit';
2
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
2
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
3
3
  import { LeuMenuItem } from './MenuItem.js';
4
4
  import 'lit/directives/if-defined.js';
5
5
  import './Icon.js';
package/dist/MenuItem.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { css, html, nothing } from 'lit';
2
2
  import { ifDefined } from 'lit/directives/if-defined.js';
3
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
3
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
4
4
  import { LeuIcon } from './Icon.js';
5
5
  import './_tslib-CNEFicEt.js';
6
6
  import 'lit/decorators.js';
package/dist/Message.js CHANGED
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html, nothing } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { classMap } from 'lit/directives/class-map.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
  import { LeuIcon } from './Icon.js';
7
7
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
8
8
 
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html } from 'lit';
3
3
  import { live } from 'lit/directives/live.js';
4
4
  import { property, state } from 'lit/decorators.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
  import { LeuButton } from './Button.js';
7
7
  import { LeuVisuallyHidden } from './VisuallyHidden.js';
8
8
  import { LeuIcon } from './Icon.js';
@@ -1,5 +1,5 @@
1
1
  import { css, html } from 'lit';
2
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
2
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
3
3
 
4
4
  var css_248z = css`:host {
5
5
  --placeholder-font-regular: var(--leu-font-family-regular);
package/dist/Popup.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { css, html } from 'lit';
2
2
  import { autoUpdate, size, flip, shift, computePosition } from '@floating-ui/dom';
3
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
3
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
4
4
 
5
5
  var css_248z = css`:host {
6
6
  --popup-font-regular: var(--leu-font-family-regular);
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, nothing, html } from 'lit';
3
3
  import { ifDefined } from 'lit/directives/if-defined.js';
4
4
  import { property } from 'lit/decorators.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
 
7
7
  var css_248z = css`/* :host {
8
8
  --progress-bar-font-regular: var(--leu-font-family-regular);
package/dist/Radio.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
4
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
5
5
 
6
6
  var css_248z = css`:host {
7
7
  --radio-color: var(--leu-color-black-40);
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html } from 'lit';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
4
  import { property } from 'lit/decorators.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
  import { LeuRadio } from './Radio.js';
7
7
 
8
8
  var css_248z = css`:host {
package/dist/Range.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { css, html } from 'lit';
2
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
2
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
3
3
 
4
4
  var css_248z = css`:host {
5
5
  --range-color: var(--leu-color-black-40);
package/dist/ScrollTop.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { css, html } from 'lit';
2
2
  import { classMap } from 'lit/directives/class-map.js';
3
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
3
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
4
4
  import { LeuButton } from './Button.js';
5
5
  import { LeuIcon } from './Icon.js';
6
6
  import './_tslib-CNEFicEt.js';
package/dist/Select.js CHANGED
@@ -2,7 +2,7 @@ import { css, nothing, html } from 'lit';
2
2
  import { classMap } from 'lit/directives/class-map.js';
3
3
  import { createRef, ref } from 'lit/directives/ref.js';
4
4
  import { ifDefined } from 'lit/directives/if-defined.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
7
7
  import { LeuButton } from './Button.js';
8
8
  import { LeuMenu } from './Menu.js';
package/dist/Spinner.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { css, html } from 'lit';
2
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
2
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
3
3
 
4
4
  var css_248z = css`@keyframes leu-spinner-rotate {
5
5
  from {
package/dist/Table.js CHANGED
@@ -2,7 +2,7 @@ import { css, html, nothing } from 'lit';
2
2
  import { classMap } from 'lit/directives/class-map.js';
3
3
  import { styleMap } from 'lit/directives/style-map.js';
4
4
  import { createRef, ref } from 'lit/directives/ref.js';
5
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
5
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
6
6
  import { LeuIcon } from './Icon.js';
7
7
  import { LeuPagination } from './Pagination.js';
8
8
  import './_tslib-CNEFicEt.js';
package/dist/Tag.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
4
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
5
5
 
6
6
  var css_248z = css`:host {
7
7
  /* --tag-font-regular: var(--leu-font-family-regular);
@@ -1,5 +1,5 @@
1
1
  import { css, html } from 'lit';
2
- import { L as LeuElement } from './LeuElement-CRdVLttR.js';
2
+ import { L as LeuElement } from './LeuElement-CcarVabH.js';
3
3
 
4
4
  var css_248z = css`:host {
5
5
  clip: rect(0 0 0 0);
@@ -2,6 +2,10 @@ import { LeuElement } from "../../lib/LeuElement.js";
2
2
  import { LeuButton } from "../../index.js";
3
3
  import { LeuIcon } from "../icon/leu-icon.js";
4
4
  import { LeuVisuallyHidden } from "../visually-hidden/VisuallyHidden.js";
5
+ /**
6
+ * @todo Pluralize text when multiple files are allowed
7
+ * @todo Hide dropzone when not multiple and already filled
8
+ */
5
9
  /**
6
10
  * @tagname leu-file-input
7
11
  */
@@ -41,6 +45,7 @@ export declare class LeuFileInput extends LeuElement {
41
45
  get name(): string;
42
46
  updated(changedProperties: any): void;
43
47
  protected handleInput(): void;
48
+ private handleChange;
44
49
  formResetCallback(): void;
45
50
  protected updateFormValue(): void;
46
51
  protected removeFile(fileToRemove: File): void;
@@ -1 +1 @@
1
- {"version":3,"file":"FileInput.d.ts","sourceRoot":"","sources":["../../../src/components/file-input/FileInput.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAExE;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,YAAY;;;;MAIlB;IAED,MAAM,CAAC,MAAM,iCAA8B;IAE3C,MAAM,CAAC,iBAAiB;;;;;;;MAGvB;IAED,MAAM,CAAC,cAAc,UAAO;IAE5B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAA;IAGrC,KAAK,EAAE,MAAM,CAAK;IAElB,0MAA0M;IAE1M,MAAM,EAAE,MAAM,CAAK;IAEnB,0CAA0C;IAE1C,QAAQ,EAAE,OAAO,CAAQ;IAEzB,oDAAoD;IAEpD,QAAQ,EAAE,OAAO,CAAQ;IAEzB,0CAA0C;IAE1C,QAAQ,EAAE,OAAO,CAAQ;IAEzB,6EAA6E;IAE7E,OAAO,EAAE,QAAQ,GAAG,aAAa,CAAW;IAGrC,KAAK,EAAE,IAAI,EAAE,CAAK;IAGzB,OAAO,CAAC,UAAU,CAAiB;IAGnC,KAAK,EAAE,gBAAgB,CAAA;;IAQvB,IAAI,IAAI,oBAEP;IAED,IAAI,IAAI,WAEP;IAED,OAAO,CAAC,iBAAiB,KAAA;IAUzB,SAAS,CAAC,WAAW;IAad,iBAAiB;IAKxB,SAAS,CAAC,eAAe;IAYzB,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI;IAIvC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM;IAY5C,SAAS,CAAC,eAAe,UAAW,SAAS,UAQ5C;IAGD,SAAS,CAAC,cAAc,UAAW,SAAS,UAK3C;IAED,SAAS,CAAC,eAAe,UAAW,SAAS,UAM5C;IAED,SAAS,CAAC,UAAU,UAAW,SAAS,UAcvC;IAED,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IA4BnC,MAAM;CAiEP"}
1
+ {"version":3,"file":"FileInput.d.ts","sourceRoot":"","sources":["../../../src/components/file-input/FileInput.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAExE;;;GAGG;AAEH;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C,MAAM,CAAC,YAAY;;;;MAIlB;IAED,MAAM,CAAC,MAAM,iCAA8B;IAE3C,MAAM,CAAC,iBAAiB;;;;;;;MAGvB;IAED,MAAM,CAAC,cAAc,UAAO;IAE5B,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAA;IAGrC,KAAK,EAAE,MAAM,CAAK;IAElB,0MAA0M;IAE1M,MAAM,EAAE,MAAM,CAAK;IAEnB,0CAA0C;IAE1C,QAAQ,EAAE,OAAO,CAAQ;IAEzB,oDAAoD;IAEpD,QAAQ,EAAE,OAAO,CAAQ;IAEzB,0CAA0C;IAE1C,QAAQ,EAAE,OAAO,CAAQ;IAEzB,6EAA6E;IAE7E,OAAO,EAAE,QAAQ,GAAG,aAAa,CAAW;IAGrC,KAAK,EAAE,IAAI,EAAE,CAAK;IAGzB,OAAO,CAAC,UAAU,CAAiB;IAGnC,KAAK,EAAE,gBAAgB,CAAA;;IAQvB,IAAI,IAAI,oBAEP;IAED,IAAI,IAAI,WAEP;IAED,OAAO,CAAC,iBAAiB,KAAA;IAUzB,SAAS,CAAC,WAAW;IAarB,OAAO,CAAC,YAAY;IAKb,iBAAiB;IAKxB,SAAS,CAAC,eAAe;IAYzB,SAAS,CAAC,UAAU,CAAC,YAAY,EAAE,IAAI;IAgBvC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM;IAY5C,SAAS,CAAC,eAAe,UAAW,SAAS,UAQ5C;IAGD,SAAS,CAAC,cAAc,UAAW,SAAS,UAK3C;IAED,SAAS,CAAC,eAAe,UAAW,SAAS,UAM5C;IAED,SAAS,CAAC,UAAU,UAAW,SAAS,UAcvC;IAED,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IA4BnC,MAAM;CAkEP"}
package/dist/index.js CHANGED
@@ -18,7 +18,7 @@ export { LeuRadio } from './Radio.js';
18
18
  export { LeuRadioGroup } from './RadioGroup.js';
19
19
  export { LeuSelect } from './Select.js';
20
20
  export { LeuTable } from './Table.js';
21
- export { L as LeuElement } from './LeuElement-CRdVLttR.js';
21
+ export { L as LeuElement } from './LeuElement-CcarVabH.js';
22
22
  import './_tslib-CNEFicEt.js';
23
23
  import 'lit';
24
24
  import 'lit/static-html.js';
@@ -3,7 +3,7 @@ import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/static-html.js';
5
5
  import 'lit/decorators.js';
6
- import './LeuElement-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
 
8
8
  LeuAccordion.define("leu-accordion");
9
9
 
@@ -1,6 +1,6 @@
1
1
  import { LeuButtonGroup } from './ButtonGroup.js';
2
2
  import 'lit';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
  import './Button.js';
5
5
  import './_tslib-CNEFicEt.js';
6
6
  import 'lit/directives/class-map.js';
@@ -5,7 +5,7 @@ import 'lit/directives/class-map.js';
5
5
  import 'lit/directives/if-defined.js';
6
6
  import 'lit/decorators.js';
7
7
  import './Icon.js';
8
- import './LeuElement-CRdVLttR.js';
8
+ import './LeuElement-CcarVabH.js';
9
9
  import './hasSlotController-Bm2tipvG.js';
10
10
 
11
11
  LeuButton.define("leu-button");
@@ -2,7 +2,7 @@ import { LeuChartWrapper } from './ChartWrapper.js';
2
2
  import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/decorators.js';
5
- import './LeuElement-CRdVLttR.js';
5
+ import './LeuElement-CcarVabH.js';
6
6
  import './hasSlotController-Bm2tipvG.js';
7
7
  import './Spinner.js';
8
8
 
@@ -3,7 +3,7 @@ import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/directives/class-map.js';
5
5
  import 'lit/decorators.js';
6
- import './LeuElement-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
  import './Checkbox.js';
8
8
  import './Icon.js';
9
9
 
@@ -2,7 +2,7 @@ import { LeuCheckbox } from './Checkbox.js';
2
2
  import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/decorators.js';
5
- import './LeuElement-CRdVLttR.js';
5
+ import './LeuElement-CcarVabH.js';
6
6
  import './Icon.js';
7
7
 
8
8
  LeuCheckbox.define("leu-checkbox");
@@ -1,6 +1,6 @@
1
1
  import { LeuChipGroup } from './ChipGroup.js';
2
2
  import 'lit/static-html.js';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
  import 'lit';
5
5
 
6
6
  LeuChipGroup.define("leu-chip-group");
@@ -1,7 +1,7 @@
1
1
  import { LeuChipLink } from './ChipLink.js';
2
2
  import 'lit';
3
3
  import './Chip.js';
4
- import './LeuElement-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
 
6
6
  LeuChipLink.define("leu-chip-link");
7
7
 
@@ -1,7 +1,7 @@
1
1
  import { LeuChipRemovable } from './ChipRemovable.js';
2
2
  import 'lit';
3
3
  import './Chip.js';
4
- import './LeuElement-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
  import './Icon.js';
6
6
  import './_tslib-CNEFicEt.js';
7
7
  import 'lit/decorators.js';
@@ -1,7 +1,7 @@
1
1
  import { LeuChipSelectable } from './ChipSelectable.js';
2
2
  import 'lit';
3
3
  import './Chip.js';
4
- import './LeuElement-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
 
6
6
  LeuChipSelectable.define("leu-chip-selectable");
7
7
 
@@ -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-CRdVLttR.js';
5
+ import './LeuElement-CcarVabH.js';
6
6
  import './hasSlotController-Bm2tipvG.js';
7
7
  import './Icon.js';
8
8
  import './_tslib-CNEFicEt.js';
@@ -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-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
  import './hasSlotController-Bm2tipvG.js';
6
6
  import './Button.js';
7
7
  import './_tslib-CNEFicEt.js';
@@ -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-CRdVLttR.js';
7
+ import './LeuElement-CcarVabH.js';
8
8
  import './Accordion.js';
9
9
  import 'lit/static-html.js';
10
10
  import './Button.js';
package/dist/leu-icon.js CHANGED
@@ -2,7 +2,7 @@ import { LeuIcon } from './Icon.js';
2
2
  import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/decorators.js';
5
- import './LeuElement-CRdVLttR.js';
5
+ import './LeuElement-CcarVabH.js';
6
6
 
7
7
  LeuIcon.define("leu-icon");
8
8
 
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-CRdVLttR.js';
7
+ import './LeuElement-CcarVabH.js';
8
8
  import './Icon.js';
9
9
  import './_tslib-CNEFicEt.js';
10
10
  import 'lit/decorators.js';
@@ -1,7 +1,7 @@
1
1
  import { LeuMenuItem } from './MenuItem.js';
2
2
  import 'lit';
3
3
  import 'lit/directives/if-defined.js';
4
- import './LeuElement-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
  import './Icon.js';
6
6
  import './_tslib-CNEFicEt.js';
7
7
  import 'lit/decorators.js';
package/dist/leu-menu.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { LeuMenu } from './Menu.js';
2
2
  import 'lit';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
  import './MenuItem.js';
5
5
  import 'lit/directives/if-defined.js';
6
6
  import './Icon.js';
@@ -3,7 +3,7 @@ import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/decorators.js';
5
5
  import 'lit/directives/class-map.js';
6
- import './LeuElement-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
  import './Icon.js';
8
8
  import './hasSlotController-Bm2tipvG.js';
9
9
 
@@ -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-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
  import './Button.js';
8
8
  import 'lit/directives/class-map.js';
9
9
  import 'lit/directives/if-defined.js';
@@ -1,6 +1,6 @@
1
1
  import { LeuPlaceholder } from './Placeholder.js';
2
2
  import 'lit';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
 
5
5
  LeuPlaceholder.define("leu-placeholder");
6
6
 
package/dist/leu-popup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { LeuPopup } from './Popup.js';
2
2
  import 'lit';
3
3
  import '@floating-ui/dom';
4
- import './LeuElement-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
 
6
6
  LeuPopup.define("leu-popup");
7
7
 
@@ -3,7 +3,7 @@ import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/directives/if-defined.js';
5
5
  import 'lit/decorators.js';
6
- import './LeuElement-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
 
8
8
  LeuProgressBar.define("leu-progress-bar");
9
9
 
@@ -3,7 +3,7 @@ import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/directives/class-map.js';
5
5
  import 'lit/decorators.js';
6
- import './LeuElement-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
  import './Radio.js';
8
8
 
9
9
  LeuRadioGroup.define("leu-radio-group");
package/dist/leu-radio.js CHANGED
@@ -2,7 +2,7 @@ import { LeuRadio } from './Radio.js';
2
2
  import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/decorators.js';
5
- import './LeuElement-CRdVLttR.js';
5
+ import './LeuElement-CcarVabH.js';
6
6
 
7
7
  LeuRadio.define("leu-radio");
8
8
 
package/dist/leu-range.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { LeuRange } from './Range.js';
2
2
  import 'lit';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
 
5
5
  LeuRange.define("leu-range");
6
6
 
@@ -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-CRdVLttR.js';
4
+ import './LeuElement-CcarVabH.js';
5
5
  import './Button.js';
6
6
  import './_tslib-CNEFicEt.js';
7
7
  import 'lit/directives/if-defined.js';
@@ -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-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
  import './hasSlotController-Bm2tipvG.js';
8
8
  import './Button.js';
9
9
  import './_tslib-CNEFicEt.js';
@@ -1,6 +1,6 @@
1
1
  import { LeuSpinner } from './Spinner.js';
2
2
  import 'lit';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
 
5
5
  LeuSpinner.define("leu-spinner");
6
6
 
package/dist/leu-table.js CHANGED
@@ -3,7 +3,7 @@ import 'lit';
3
3
  import 'lit/directives/class-map.js';
4
4
  import 'lit/directives/style-map.js';
5
5
  import 'lit/directives/ref.js';
6
- import './LeuElement-CRdVLttR.js';
6
+ import './LeuElement-CcarVabH.js';
7
7
  import './Icon.js';
8
8
  import './_tslib-CNEFicEt.js';
9
9
  import 'lit/decorators.js';
package/dist/leu-tag.js CHANGED
@@ -2,7 +2,7 @@ import { LeuTag } from './Tag.js';
2
2
  import './_tslib-CNEFicEt.js';
3
3
  import 'lit';
4
4
  import 'lit/decorators.js';
5
- import './LeuElement-CRdVLttR.js';
5
+ import './LeuElement-CcarVabH.js';
6
6
 
7
7
  LeuTag.define("leu-tag");
8
8
 
@@ -1,6 +1,6 @@
1
1
  import { LeuVisuallyHidden } from './VisuallyHidden.js';
2
2
  import 'lit';
3
- import './LeuElement-CRdVLttR.js';
3
+ import './LeuElement-CcarVabH.js';
4
4
 
5
5
  LeuVisuallyHidden.define("leu-visually-hidden");
6
6
 
@@ -299,7 +299,7 @@
299
299
  },
300
300
  {
301
301
  "name": "leu-file-input",
302
- "description": "\n---\n",
302
+ "description": "\n---\n\n\n### **Events:**\n - **input**\n- **change**",
303
303
  "attributes": [
304
304
  { "name": "label", "values": [] },
305
305
  {
@@ -12,7 +12,7 @@ import type { LeuChipRemovable } from "../ChipRemovable.js";
12
12
  import type { LeuChipSelectable, CustomEvent } from "../ChipSelectable.js";
13
13
  import type { LeuDialog } from "../Dialog.js";
14
14
  import type { LeuDropdown } from "../Dropdown.js";
15
- import type { LeuFileInput } from "../FileInput.js";
15
+ import type { LeuFileInput, CustomEvent } from "../FileInput.js";
16
16
  import type { LeuIcon } from "../Icon.js";
17
17
  import type { LeuInput, CustomEvent } from "../Input.js";
18
18
  import type { LeuMenu } from "../Menu.js";
@@ -208,6 +208,10 @@ type LeuFileInputProps = {
208
208
  form?: LeuFileInput["form"];
209
209
  /** */
210
210
  name?: LeuFileInput["name"];
211
+ /** */
212
+ oninput?: (e: CustomEvent<CustomEvent>) => void;
213
+ /** */
214
+ onchange?: (e: CustomEvent<CustomEvent>) => void;
211
215
  };
212
216
 
213
217
  type LeuIconProps = {
@@ -632,6 +636,10 @@ export type CustomElements = {
632
636
  *
633
637
  * ---
634
638
  *
639
+ *
640
+ * ### **Events:**
641
+ * - **input**
642
+ * - **change**
635
643
  */
636
644
  "leu-file-input": DefineComponent<LeuFileInputProps>;
637
645
 
@@ -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.19.1",
4
+ "version": "0.19.2",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -597,7 +597,7 @@
597
597
  },
598
598
  {
599
599
  "name": "leu-file-input",
600
- "description": "\n---\n",
600
+ "description": "\n---\n\n\n### **Events:**\n - **input**\n- **change**",
601
601
  "doc-url": "",
602
602
  "attributes": [
603
603
  {
@@ -633,7 +633,10 @@
633
633
  }
634
634
  }
635
635
  ],
636
- "events": [],
636
+ "events": [
637
+ { "name": "input", "type": "CustomEvent" },
638
+ { "name": "change", "type": "CustomEvent" }
639
+ ],
637
640
  "js": {
638
641
  "properties": [
639
642
  { "name": "label", "type": "string" },
@@ -667,7 +670,10 @@
667
670
  { "name": "form" },
668
671
  { "name": "name" }
669
672
  ],
670
- "events": []
673
+ "events": [
674
+ { "name": "input", "type": "CustomEvent" },
675
+ { "name": "change", "type": "CustomEvent" }
676
+ ]
671
677
  }
672
678
  },
673
679
  {
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "UI component library of the canton of zurich",
4
4
  "license": "MIT",
5
5
  "author": "statistikzh",
6
- "version": "0.19.1",
6
+ "version": "0.19.2",
7
7
  "type": "module",
8
8
  "main": "dist/index.js",
9
9
  "module": "dist/index.js",
@@ -10,6 +10,11 @@ import { LeuButton } from "../../index.js"
10
10
  import { LeuIcon } from "../icon/leu-icon.js"
11
11
  import { LeuVisuallyHidden } from "../visually-hidden/VisuallyHidden.js"
12
12
 
13
+ /**
14
+ * @todo Pluralize text when multiple files are allowed
15
+ * @todo Hide dropzone when not multiple and already filled
16
+ */
17
+
13
18
  /**
14
19
  * @tagname leu-file-input
15
20
  */
@@ -100,6 +105,11 @@ export class LeuFileInput extends LeuElement {
100
105
  }
101
106
  }
102
107
 
108
+ private handleChange(event: Event & { target: HTMLInputElement }) {
109
+ const customEvent = new CustomEvent(event.type, event)
110
+ this.dispatchEvent(customEvent)
111
+ }
112
+
103
113
  public formResetCallback() {
104
114
  this.files = []
105
115
  this.input.value = ""
@@ -119,6 +129,18 @@ export class LeuFileInput extends LeuElement {
119
129
 
120
130
  protected removeFile(fileToRemove: File) {
121
131
  this.files = this.files.filter((file) => file !== fileToRemove)
132
+ this.dispatchEvent(
133
+ new CustomEvent("input", {
134
+ composed: true,
135
+ bubbles: true,
136
+ }),
137
+ )
138
+ this.dispatchEvent(
139
+ new CustomEvent("change", {
140
+ composed: true,
141
+ bubbles: true,
142
+ }),
143
+ )
122
144
  }
123
145
 
124
146
  protected static formatFileSize(size: number) {
@@ -220,6 +242,7 @@ export class LeuFileInput extends LeuElement {
220
242
  accept=${ifDefined(this.accept)}
221
243
  ?disabled=${this.disabled}
222
244
  @input=${this.handleInput}
245
+ @change=${this.handleChange}
223
246
  />
224
247
  </leu-visually-hidden>
225
248
  <div