@statistikzh/leu 0.24.0 → 0.24.1

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 (84) hide show
  1. package/.github/workflows/publish.yml +7 -0
  2. package/.release-please-manifest.json +1 -1
  3. package/CHANGELOG.md +8 -0
  4. package/dist/Accordion.js +1 -1
  5. package/dist/Button.js +1 -1
  6. package/dist/ButtonGroup.js +1 -1
  7. package/dist/ChartWrapper.js +1 -1
  8. package/dist/Checkbox.js +1 -1
  9. package/dist/CheckboxGroup.js +1 -1
  10. package/dist/Chip.js +1 -1
  11. package/dist/ChipGroup.js +1 -1
  12. package/dist/ChipLink.js +1 -1
  13. package/dist/ChipRemovable.js +1 -1
  14. package/dist/ChipSelectable.js +1 -1
  15. package/dist/Dialog.js +1 -1
  16. package/dist/Dropdown.js +1 -1
  17. package/dist/FileInput.js +1 -1
  18. package/dist/Icon.js +1 -1
  19. package/dist/Input.js +1 -1
  20. package/dist/{LeuElement-BfbOWTGZ.js → LeuElement-jrR2M5pZ.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.d.ts +32 -20
  31. package/dist/Range.js +137 -72
  32. package/dist/ScrollTop.js +2 -25
  33. package/dist/Select.js +1 -1
  34. package/dist/Spinner.js +1 -1
  35. package/dist/Table.js +1 -1
  36. package/dist/Tag.js +1 -1
  37. package/dist/VisuallyHidden.js +1 -1
  38. package/dist/components/range/Range.d.ts +33 -20
  39. package/dist/components/range/Range.d.ts.map +1 -1
  40. package/dist/components/range/stories/range.stories.d.ts +1 -0
  41. package/dist/components/range/stories/range.stories.d.ts.map +1 -1
  42. package/dist/index.js +2 -1
  43. package/dist/leu-accordion.js +1 -1
  44. package/dist/leu-button-group.js +1 -1
  45. package/dist/leu-button.js +1 -1
  46. package/dist/leu-chart-wrapper.js +1 -1
  47. package/dist/leu-checkbox-group.js +1 -1
  48. package/dist/leu-checkbox.js +1 -1
  49. package/dist/leu-chip-group.js +1 -1
  50. package/dist/leu-chip-link.js +1 -1
  51. package/dist/leu-chip-removable.js +1 -1
  52. package/dist/leu-chip-selectable.js +1 -1
  53. package/dist/leu-dialog.js +1 -1
  54. package/dist/leu-dropdown.js +1 -1
  55. package/dist/leu-file-input.js +1 -1
  56. package/dist/leu-icon.js +1 -1
  57. package/dist/leu-input.js +1 -1
  58. package/dist/leu-menu-item.js +1 -1
  59. package/dist/leu-menu.js +1 -1
  60. package/dist/leu-message.js +1 -1
  61. package/dist/leu-pagination.js +1 -1
  62. package/dist/leu-placeholder.js +1 -1
  63. package/dist/leu-popup.js +1 -1
  64. package/dist/leu-progress-bar.js +1 -1
  65. package/dist/leu-radio-group.js +1 -1
  66. package/dist/leu-radio.js +1 -1
  67. package/dist/leu-range.js +3 -1
  68. package/dist/leu-scroll-top.js +2 -1
  69. package/dist/leu-select.js +1 -1
  70. package/dist/leu-spinner.js +1 -1
  71. package/dist/leu-table.js +1 -1
  72. package/dist/leu-tag.js +1 -1
  73. package/dist/leu-visually-hidden.js +1 -1
  74. package/dist/lib/utils.d.ts +10 -3
  75. package/dist/lib/utils.d.ts.map +1 -1
  76. package/dist/utils-DBGsNSJW.js +33 -0
  77. package/dist/vscode.html-custom-data.json +66 -62
  78. package/dist/vue/index.d.ts +80 -73
  79. package/dist/web-types.json +143 -137
  80. package/package.json +1 -1
  81. package/src/components/range/Range.ts +160 -87
  82. package/src/components/range/stories/range.stories.ts +3 -0
  83. package/src/components/range/test/range.test.ts +59 -0
  84. package/src/lib/utils.ts +13 -3
@@ -21,6 +21,13 @@ jobs:
21
21
  node-version-file: ".nvmrc"
22
22
  cache: "npm"
23
23
  registry-url: "https://registry.npmjs.org"
24
+
25
+ - name: Clear auth token for OIDC
26
+ run: echo "NODE_AUTH_TOKEN=" >> $GITHUB_ENV
27
+
28
+ - name: Upgrade npm for OIDC
29
+ run: npm install -g npm@latest
30
+
24
31
  - run: npm --version
25
32
  - run: npm ci
26
33
  - run: npm run build
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.24.0"
2
+ ".": "0.24.1"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.24.1](https://github.com/statistikZH/leu/compare/leu-v0.24.0...leu-v0.24.1) (2026-02-12)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **file-input:** fix import location to avoid circular dependency and ensure lazy registration ([2586597](https://github.com/statistikZH/leu/commit/2586597ecd541bda68e530bbddb559b5cdc71d6d))
9
+ * **range:** move the value state to the component itself ([#330](https://github.com/statistikZH/leu/issues/330)) ([20cca8d](https://github.com/statistikZH/leu/commit/20cca8da00b87d55f71b2aa48eeb3ab3f7abbf05))
10
+
3
11
  ## [0.24.0](https://github.com/statistikZH/leu/compare/leu-v0.23.0...leu-v0.24.0) (2026-02-09)
4
12
 
5
13
 
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-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
7
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
2
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
4
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
4
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
6
6
  import { LeuCheckbox } from './Checkbox.js';
7
7
  import './Icon.js';
8
8
 
package/dist/Chip.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { property } from 'lit/decorators.js';
3
- import { L as LeuElement } from './LeuElement-BfbOWTGZ.js';
3
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
4
4
  import { css } from 'lit';
5
5
 
6
6
  var css_248z = css`:host *::before,
package/dist/ChipGroup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { unsafeStatic, html } from 'lit/static-html.js';
3
3
  import { property } from 'lit/decorators.js';
4
- import { L as LeuElement } from './LeuElement-BfbOWTGZ.js';
4
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
5
5
  import { css } from 'lit';
6
6
  import { LeuChipSelectable } from './ChipSelectable.js';
7
7
  import './Chip.js';
package/dist/ChipLink.js CHANGED
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { LeuChipBase } from './Chip.js';
5
- import './LeuElement-BfbOWTGZ.js';
5
+ import './LeuElement-jrR2M5pZ.js';
6
6
 
7
7
  /**
8
8
  * @tagname leu-chip-link
@@ -3,7 +3,7 @@ import { html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { LeuChipBase } from './Chip.js';
5
5
  import { LeuIcon } from './Icon.js';
6
- import './LeuElement-BfbOWTGZ.js';
6
+ import './LeuElement-jrR2M5pZ.js';
7
7
 
8
8
  /**
9
9
  * @slot - The content of the chip
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { LeuChipBase } from './Chip.js';
5
- import './LeuElement-BfbOWTGZ.js';
5
+ import './LeuElement-jrR2M5pZ.js';
6
6
 
7
7
  /**
8
8
  * A chip component that can be selected.
package/dist/Dialog.js CHANGED
@@ -3,7 +3,7 @@ import { css, nothing, html } from 'lit';
3
3
  import { createRef, ref } from 'lit/directives/ref.js';
4
4
  import { classMap } from 'lit/directives/class-map.js';
5
5
  import { property } from 'lit/decorators.js';
6
- import { L as LeuElement } from './LeuElement-BfbOWTGZ.js';
6
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
7
7
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
8
8
  import { LeuIcon } from './Icon.js';
9
9
 
package/dist/Dropdown.js CHANGED
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, nothing, html } from 'lit';
3
3
  import { createRef, ref } from 'lit/directives/ref.js';
4
4
  import { property } from 'lit/decorators.js';
5
- import { L as LeuElement } from './LeuElement-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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/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-BfbOWTGZ.js';
6
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
7
7
  import { LeuButton } from './Button.js';
8
8
  import { LeuIcon } from './Icon.js';
9
9
  import { LeuVisuallyHidden } from './VisuallyHidden.js';
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-BfbOWTGZ.js';
4
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
5
5
 
6
6
  var css_248z = css`:host {
7
7
  display: contents;
package/dist/Input.js CHANGED
@@ -5,7 +5,7 @@ import { ifDefined } from 'lit/directives/if-defined.js';
5
5
  import { live } from 'lit/directives/live.js';
6
6
  import { createRef, ref } from 'lit/directives/ref.js';
7
7
  import { property, state } from 'lit/decorators.js';
8
- import { L as LeuElement } from './LeuElement-BfbOWTGZ.js';
8
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
9
9
  import { LeuIcon } from './Icon.js';
10
10
 
11
11
  var css_248z = css`:host {
@@ -35,7 +35,7 @@ class LeuElement extends LitElement {
35
35
  }
36
36
  }
37
37
  }
38
- LeuElement.version = "0.24.0";
38
+ LeuElement.version = "0.24.1";
39
39
  LeuElement.dependencies = {};
40
40
  LeuElement.styles = css_248z;
41
41
 
package/dist/Menu.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-BfbOWTGZ.js';
4
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
5
5
  import { LeuMenuItem } from './MenuItem.js';
6
6
  import 'lit/directives/if-defined.js';
7
7
  import './Icon.js';
package/dist/MenuItem.js CHANGED
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html, nothing } 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-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
6
6
  import { LeuIcon } from './Icon.js';
7
7
 
8
8
  var css_248z = css`:host {
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-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
2
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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
@@ -2,7 +2,7 @@ import { _ as __decorate } from './_tslib-CNEFicEt.js';
2
2
  import { css, html } from 'lit';
3
3
  import { property } from 'lit/decorators.js';
4
4
  import { autoUpdate, offset, size, flip, shift, computePosition } from '@floating-ui/dom';
5
- import { L as LeuElement } from './LeuElement-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
6
6
 
7
7
  var css_248z = css`:host {
8
8
  --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-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
4
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.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-BfbOWTGZ.js';
5
+ import { L as LeuElement } from './LeuElement-jrR2M5pZ.js';
6
6
  import { LeuRadio } from './Radio.js';
7
7
 
8
8
  var css_248z = css`:host {
package/dist/Range.d.ts CHANGED
@@ -1,8 +1,9 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
- import { nothing } from 'lit';
3
+ import { PropertyValues, nothing } from 'lit';
4
4
  import { L as LeuElement } from './LeuElement.d-BevHqLUu.js';
5
5
 
6
+ type InternalRangeValue = [number, number] | [number];
6
7
  /**
7
8
  * @tagname leu-range
8
9
  */
@@ -16,6 +17,10 @@ declare class LeuRange extends LeuElement {
16
17
  customElements?: CustomElementRegistry;
17
18
  registry?: CustomElementRegistry;
18
19
  };
20
+ /**
21
+ * The default value of the range slider.
22
+ * String input is parsed as a comma-separated list of numbers.
23
+ */
19
24
  defaultValue: number[];
20
25
  /**
21
26
  * The minimum value of the range slider.
@@ -72,31 +77,38 @@ declare class LeuRange extends LeuElement {
72
77
  * If provided, the prefix and suffix properties will be ignored.
73
78
  */
74
79
  valueFormatter?: (value: number) => string;
75
- updated(): void;
76
- protected get _inputs(): HTMLInputElement[];
77
- protected _updateStyles(): void;
78
- get value(): string | Array<string>;
80
+ protected _value: InternalRangeValue;
79
81
  /**
80
- * Sets the value of the underlying input element(s).
81
- * The value has to be an array if "multiple" range is used.
82
- * Otherwise it has to be a string.
82
+ * The value of the range slider.
83
+ * String input is parsed as a comma-separated list of numbers.
84
+ * In multiple mode, if only a single value is provided, the second handle will be set to the minimum value.
85
+ * In single mode, only the first value will be used.
83
86
  */
84
- set value(value: string | Array<string>);
85
- get valueAsArray(): number[];
86
- get valueLow(): string | number;
87
- get valueHigh(): string | number;
88
- protected _getBaseInput(): HTMLInputElement;
89
- protected _getGhostInput(): HTMLInputElement;
90
- protected _handleInput(_index: number, _e: InputEvent & {
87
+ set value(value: string | number | Array<string | number>);
88
+ get value(): string;
89
+ get valueAsArray(): InternalRangeValue;
90
+ get valueLow(): number;
91
+ get valueHigh(): number;
92
+ protected container: HTMLDivElement;
93
+ protected inputBase: HTMLInputElement;
94
+ protected inputGhost: HTMLInputElement | null;
95
+ protected outputBase: HTMLOutputElement;
96
+ protected outputGhost: HTMLOutputElement | null;
97
+ updated(): void;
98
+ protected willUpdate(changedProperties: PropertyValues<this>): void;
99
+ protected updateStyles(): void;
100
+ protected clampAndRoundValue(value: number): number;
101
+ protected handleInput(e: Event & {
91
102
  target: HTMLInputElement;
92
103
  }): void;
93
- protected _getNormalizedValue(value: number): number;
94
- protected _getNormalizedRange(): number[];
104
+ protected getNormalizedValue(value: number): number;
105
+ protected getNormalizedRange(): number[];
95
106
  /**
96
- * Determine if the "click" (pointer event) is closer the
97
- * the value of the other input element. Swap the values if this is the case.
107
+ * This event handler is only applied to the "base" input element and only when in "multiple" mode.
108
+ * It handles pointer events on the *track* and the thumb.
109
+ * This method determines if the interaction was closer to the base or the ghost input.
98
110
  */
99
- protected _handlePointerDown(e: PointerEvent & {
111
+ protected handlePointerDown(e: PointerEvent & {
100
112
  target: HTMLInputElement;
101
113
  }): void;
102
114
  protected formatValue(value: number): string;