@statistikzh/leu 0.19.2 → 0.21.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 (100) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +19 -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.d.ts +1 -0
  16. package/dist/Dropdown.js +1 -1
  17. package/dist/FileInput.d.ts +2 -1
  18. package/dist/FileInput.js +1 -1
  19. package/dist/Icon.d.ts +1 -0
  20. package/dist/Icon.js +2 -1
  21. package/dist/Input.js +1 -1
  22. package/dist/{LeuElement-CcarVabH.js → LeuElement-BFljD2fO.js} +1 -1
  23. package/dist/Menu.d.ts +2 -1
  24. package/dist/Menu.js +10 -2
  25. package/dist/MenuItem.js +1 -1
  26. package/dist/Message.js +1 -1
  27. package/dist/Pagination.js +1 -1
  28. package/dist/Placeholder.js +1 -1
  29. package/dist/Popup.d.ts +22 -46
  30. package/dist/Popup.js +40 -31
  31. package/dist/ProgressBar.js +1 -1
  32. package/dist/Radio.js +1 -1
  33. package/dist/RadioGroup.js +1 -1
  34. package/dist/Range.js +1 -1
  35. package/dist/ScrollTop.js +1 -1
  36. package/dist/Select.d.ts +3 -2
  37. package/dist/Select.js +1 -1
  38. package/dist/Spinner.js +1 -1
  39. package/dist/Table.js +1 -1
  40. package/dist/Tag.js +1 -1
  41. package/dist/VisuallyHidden.js +1 -1
  42. package/dist/components/file-input/FileInput.d.ts +2 -1
  43. package/dist/components/file-input/FileInput.d.ts.map +1 -1
  44. package/dist/components/icon/paths.d.ts +1 -0
  45. package/dist/components/icon/paths.d.ts.map +1 -1
  46. package/dist/components/menu/Menu.d.ts +2 -1
  47. package/dist/components/menu/Menu.d.ts.map +1 -1
  48. package/dist/components/popup/Popup.d.ts +21 -46
  49. package/dist/components/popup/Popup.d.ts.map +1 -1
  50. package/dist/components/popup/stories/popup.stories.d.ts +9 -0
  51. package/dist/components/popup/stories/popup.stories.d.ts.map +1 -1
  52. package/dist/components/select/Select.d.ts +2 -2
  53. package/dist/components/select/Select.d.ts.map +1 -1
  54. package/dist/index.js +1 -1
  55. package/dist/leu-accordion.js +1 -1
  56. package/dist/leu-button-group.js +1 -1
  57. package/dist/leu-button.js +1 -1
  58. package/dist/leu-chart-wrapper.js +1 -1
  59. package/dist/leu-checkbox-group.js +1 -1
  60. package/dist/leu-checkbox.js +1 -1
  61. package/dist/leu-chip-group.js +1 -1
  62. package/dist/leu-chip-link.js +1 -1
  63. package/dist/leu-chip-removable.js +1 -1
  64. package/dist/leu-chip-selectable.js +1 -1
  65. package/dist/leu-dialog.js +1 -1
  66. package/dist/leu-dropdown.d.ts +1 -0
  67. package/dist/leu-dropdown.js +1 -1
  68. package/dist/leu-file-input.js +1 -1
  69. package/dist/leu-icon.js +1 -1
  70. package/dist/leu-input.js +1 -1
  71. package/dist/leu-menu-item.js +1 -1
  72. package/dist/leu-menu.js +1 -1
  73. package/dist/leu-message.js +1 -1
  74. package/dist/leu-pagination.js +1 -1
  75. package/dist/leu-placeholder.js +1 -1
  76. package/dist/leu-popup.d.ts +1 -0
  77. package/dist/leu-popup.js +3 -1
  78. package/dist/leu-progress-bar.js +1 -1
  79. package/dist/leu-radio-group.js +1 -1
  80. package/dist/leu-radio.js +1 -1
  81. package/dist/leu-range.js +1 -1
  82. package/dist/leu-scroll-top.js +1 -1
  83. package/dist/leu-select.d.ts +1 -0
  84. package/dist/leu-select.js +1 -1
  85. package/dist/leu-spinner.js +1 -1
  86. package/dist/leu-table.js +1 -1
  87. package/dist/leu-tag.js +1 -1
  88. package/dist/leu-visually-hidden.js +1 -1
  89. package/dist/vscode.html-custom-data.json +5 -1
  90. package/dist/vue/index.d.ts +0 -6
  91. package/dist/web-types.json +12 -20
  92. package/package.json +1 -1
  93. package/src/components/file-input/FileInput.ts +2 -2
  94. package/src/components/icon/paths.ts +2 -0
  95. package/src/components/menu/Menu.ts +7 -3
  96. package/src/components/menu/menu.css +4 -0
  97. package/src/components/popup/Popup.ts +49 -44
  98. package/src/components/popup/stories/popup.stories.ts +49 -0
  99. package/src/components/popup/test/popup.test.ts +39 -3
  100. package/src/components/select/Select.ts +2 -2
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.19.2"
2
+ ".": "0.21.0"
3
3
  }
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.21.0](https://github.com/statistikZH/leu/compare/leu-v0.20.0...leu-v0.21.0) (2025-11-13)
4
+
5
+
6
+ ### Features
7
+
8
+ * **icon:** add ruler icon ([7eb144c](https://github.com/statistikZH/leu/commit/7eb144c0792eb0b0b7fdebbd860999e56da16536))
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **menu:** add white background color to avoid transparent area surrounding <hr> elements ([1517fc6](https://github.com/statistikZH/leu/commit/1517fc61d78ba9cfa831f5502d1a6b543789ad07))
14
+
15
+ ## [0.20.0](https://github.com/statistikZH/leu/compare/leu-v0.19.2...leu-v0.20.0) (2025-10-24)
16
+
17
+
18
+ ### Features
19
+
20
+ * **popup:** add support for a virtual element ([6458159](https://github.com/statistikZH/leu/commit/6458159bff0a3c6895ec8cc12ecd575a8639ec13))
21
+
3
22
  ## [0.19.2](https://github.com/statistikZH/leu/compare/leu-v0.19.1...leu-v0.19.2) (2025-10-23)
4
23
 
5
24
 
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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
7
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
2
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
4
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
4
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
1
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
2
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
3
+ import './LeuElement-BFljD2fO.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-CcarVabH.js';
4
+ import './LeuElement-BFljD2fO.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-CcarVabH.js';
3
+ import './LeuElement-BFljD2fO.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-CcarVabH.js';
4
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
5
5
  import { H as HasSlotController } from './hasSlotController-Bm2tipvG.js';
6
6
  import { LeuIcon } from './Icon.js';
7
7
  import './_tslib-CNEFicEt.js';
@@ -7,6 +7,7 @@ import { LeuMenu } from './Menu.js';
7
7
  import { LeuMenuItem } from './MenuItem.js';
8
8
  import { LeuPopup } from './Popup.js';
9
9
  import './Icon.js';
10
+ import '@floating-ui/dom';
10
11
 
11
12
  /**
12
13
  * @tagname leu-dropdown
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-CcarVabH.js';
3
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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';
@@ -1,5 +1,6 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
+ import { PropertyValues } from 'lit';
3
4
  import { L as LeuElement } from './LeuElement.d-BevHqLUu.js';
4
5
  import { LeuButton } from './Button.js';
5
6
  import { LeuIcon } from './Icon.js';
@@ -47,7 +48,7 @@ declare class LeuFileInput extends LeuElement {
47
48
  constructor();
48
49
  get form(): HTMLFormElement;
49
50
  get name(): string;
50
- updated(changedProperties: any): void;
51
+ updated(changedProperties: PropertyValues<this>): void;
51
52
  protected handleInput(): void;
52
53
  private handleChange;
53
54
  formResetCallback(): 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-CcarVabH.js';
6
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
7
7
  import './Accordion.js';
8
8
  import { LeuButton } from './Button.js';
9
9
  import './ButtonGroup.js';
package/dist/Icon.d.ts CHANGED
@@ -86,6 +86,7 @@ declare const paths: {
86
86
  remove: string;
87
87
  repost: string;
88
88
  resizeText: string;
89
+ ruler: string;
89
90
  search: string;
90
91
  securities: string;
91
92
  setting: string;
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-CcarVabH.js';
4
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
5
5
 
6
6
  var css_248z = css`:host {
7
7
  display: contents;
@@ -100,6 +100,7 @@ const paths = {
100
100
  remove: "M12 1C5.926 1 1 5.925 1 12C1 18.075 5.926 23 12 23C18.074 23 23 18.075 23 12C23 5.925 18.074 1 12 1ZM17 13H7V11H17V13Z",
101
101
  repost: "M12.375 8.2485V3.75L22.875 11.25L12.375 18.75V14.25C8.20012 14.2515 4.39838 14.4128 1.125 20.25C1.125 16.5424 1.66875 8.35162 12.375 8.2485Z",
102
102
  resizeText: "M17 8V5H20V8H17ZM11 14H14V11H11V14ZM8 20H5V17H8V20ZM14 20H11V17H14V20ZM17 14H20V11H17V14ZM20 20H17V17H20V20Z",
103
+ ruler: "M1.5 9C1.5 8.72386 1.72386 8.5 2 8.5H22C22.2761 8.5 22.5 8.72386 22.5 9V15C22.5 15.2761 22.2761 15.5 22 15.5H2C1.72386 15.5 1.5 15.2761 1.5 15V9ZM2.5 9.5V14.5H21.5V9.5H2.5Z M4.5 11V9H5.5V11H4.5Z M8 11V9H9V11H8Z M11.5 11V9H12.5V11H11.5Z M15 11V9H16V11H15Z M18.5 11V9H19.5V11H18.5Z",
103
104
  search: "M0.75 9C0.75 4.4445 4.4445 0.75 9 0.75C13.5555 0.75 17.25 4.4445 17.25 9C17.25 13.5555 13.5555 17.25 9 17.25C4.4445 17.25 0.75 13.5555 0.75 9ZM17.25 15.25L15 17.5L21 23.2493L23.25 20.9993L17.25 15.25ZM9 15C5.692 15 3 12.308 3 9C3 5.692 5.692 3 9 3C12.308 3 15 5.692 15 9C15 12.308 12.308 15 9 15Z",
104
105
  securities: "M4 5H20V7H4V5Z M0 0V18H9V16H2V2H22V18H24V0H0Z M15 16H22V18H15V16Z M16 17.0005C16.6279 16.1647 17 15.1258 17 14C17 11.2386 14.7614 9 12 9C9.23858 9 7 11.2386 7 14C7 15.1258 7.37209 16.1647 8 17.0005V24L12 22L16 24V17.0005ZM15 14C15 15.6569 13.6569 17 12 17C10.3431 17 9 15.6569 9 14C9 12.3431 10.3431 11 12 11C13.6569 11 15 12.3431 15 14Z",
105
106
  setting: "M13.9485 22.98H10.0522V20.3467C10.0522 20.238 9.98699 20.1397 9.88649 20.0977L7.77749 19.2157C7.67774 19.1737 7.55999 19.1955 7.48274 19.2735L5.61374 21.1417L2.85899 18.387L4.72124 16.5247C4.79849 16.4475 4.82174 16.332 4.78049 16.2307L3.91274 14.1157C3.87149 14.0145 3.77249 13.9477 3.66299 13.9477H1.01999V10.0522H3.65399C3.76274 10.0522 3.86099 9.98699 3.90299 9.88649L4.78574 7.77749C4.82774 7.67624 4.80524 7.55924 4.72724 7.48199L2.85899 5.61299L5.61374 2.85899L7.47674 4.72049C7.55324 4.79774 7.66874 4.82099 7.76999 4.77974L9.88499 3.91199C9.98624 3.87074 10.0522 3.77174 10.0522 3.66224V1.01999H13.9485V3.65549C13.9485 3.76424 14.0145 3.86249 14.115 3.90449L16.224 4.78649C16.3245 4.82849 16.4415 4.80524 16.5195 4.72799L18.3877 2.85974L21.1432 5.61449L19.2802 7.47674C19.2037 7.55324 19.1805 7.66949 19.2217 7.76999L20.0895 9.88499C20.1315 9.98624 20.2297 10.0522 20.3392 10.0522H22.9807V13.9477H20.3467C20.238 13.9477 20.1397 14.0137 20.0977 14.1142L19.2157 16.2232C19.173 16.3245 19.1962 16.4407 19.2735 16.5187L21.1425 18.387L18.387 21.1417L16.5247 19.2795C16.4467 19.203 16.3312 19.1782 16.2307 19.221L14.1165 20.088C14.0152 20.13 13.9485 20.2282 13.9485 20.3377V22.98ZM12 17C14.7614 17 17 14.7614 17 12C17 9.23857 14.7614 6.99999 12 6.99999C9.23858 6.99999 7 9.23857 7 12C7 14.7614 9.23858 17 12 17Z",
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-CcarVabH.js';
6
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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.2";
38
+ LeuElement.version = "0.21.0";
39
39
  LeuElement.dependencies = {};
40
40
  LeuElement.styles = css_248z;
41
41
 
package/dist/Menu.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
+ import { PropertyValues } from 'lit';
3
4
  import { L as LeuElement } from './LeuElement.d-BevHqLUu.js';
4
5
  import { LeuMenuItem } from './MenuItem.js';
5
6
  import './Icon.js';
@@ -42,7 +43,7 @@ declare class LeuMenu extends LeuElement {
42
43
  setCurrentItem(index: any): any;
43
44
  focusItem(index: any): void;
44
45
  firstUpdated(): void;
45
- updated(changedProperties: any): void;
46
+ updated(changedProperties: PropertyValues<this>): void;
46
47
  render(): lit_html.TemplateResult<1>;
47
48
  }
48
49
 
package/dist/Menu.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { css, html } from 'lit';
2
- import { L as LeuElement } from './LeuElement-CcarVabH.js';
2
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
3
3
  import { LeuMenuItem } from './MenuItem.js';
4
4
  import 'lit/directives/if-defined.js';
5
5
  import './Icon.js';
@@ -22,6 +22,10 @@ var css_248z = css`:host {
22
22
  padding: 0 !important;
23
23
  background: none !important;
24
24
  }
25
+
26
+ .container {
27
+ background-color: var(--leu-color-black-0);
28
+ }
25
29
  `;
26
30
 
27
31
  /**
@@ -137,7 +141,11 @@ class LeuMenu extends LeuElement {
137
141
  }
138
142
  }
139
143
  render() {
140
- return html `<slot></slot>`;
144
+ return html `
145
+ <div class="container">
146
+ <slot></slot>
147
+ </div>
148
+ `;
141
149
  }
142
150
  }
143
151
  LeuMenu.styles = [LeuElement.styles, css_248z];
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-CcarVabH.js';
3
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
2
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
3
3
 
4
4
  var css_248z = css`:host {
5
5
  --placeholder-font-regular: var(--leu-font-family-regular);
package/dist/Popup.d.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import * as lit_html from 'lit-html';
2
2
  import * as lit from 'lit';
3
+ import { PropertyValues } from 'lit';
4
+ import { Placement } from '@floating-ui/dom';
3
5
  import { L as LeuElement } from './LeuElement.d-BevHqLUu.js';
4
6
 
5
- /**
6
- * @typedef {"top"|"top-start"|"top-end"|"bottom"|"bottom-start"|"bottom-end"|"left"|"left-start"|"left-end"|"right"|"right-start"|"right-end"} Placement
7
- */
7
+ interface VirtualElement {
8
+ getBoundingClientRect: () => DOMRect;
9
+ contextElement?: Element;
10
+ }
8
11
  /**
9
12
  * @tagname leu-popup
10
13
  */
@@ -18,53 +21,26 @@ declare class LeuPopup extends LeuElement {
18
21
  customElements?: CustomElementRegistry;
19
22
  registry?: CustomElementRegistry;
20
23
  };
21
- static properties: {
22
- anchor: {};
23
- active: {
24
- type: BooleanConstructor;
25
- reflect: boolean;
26
- };
27
- placement: {
28
- type: StringConstructor;
29
- reflect: boolean;
30
- };
31
- flip: {
32
- type: BooleanConstructor;
33
- reflect: boolean;
34
- };
35
- shift: {
36
- type: BooleanConstructor;
37
- reflect: boolean;
38
- };
39
- shiftPadding: {
40
- type: NumberConstructor;
41
- reflect: boolean;
42
- };
43
- matchSize: {
44
- type: StringConstructor;
45
- reflect: boolean;
46
- };
47
- autoSize: {
48
- type: StringConstructor;
49
- reflect: boolean;
50
- };
51
- autoSizePadding: {
52
- type: NumberConstructor;
53
- reflect: boolean;
54
- };
55
- };
56
- constructor();
24
+ anchor: Element | string | VirtualElement;
25
+ active: boolean;
26
+ placement?: Placement;
27
+ flip: boolean;
28
+ shift: boolean;
29
+ shiftPadding: number;
30
+ matchSize?: "width" | "height" | "both";
31
+ autoSize?: "width" | "height" | "both";
32
+ autoSizePadding: number;
33
+ private anchorEl;
34
+ private cleanup;
57
35
  disconnectedCallback(): void;
58
- updated(changedProperties: any): void;
59
- /**
60
- * @returns {HTMLElement | null}
61
- */
62
- get popupEl(): Element;
63
- start(): void;
64
- stop(): void;
36
+ updated(changedProperties: PropertyValues<this>): void;
37
+ protected get popupEl(): HTMLDivElement;
38
+ protected start(): void;
39
+ protected stop(): void;
65
40
  reposition(): void;
66
41
  handleAnchorChange(): void;
67
42
  render(): lit_html.TemplateResult<1>;
68
43
  }
69
44
 
70
45
  export { LeuPopup };
46
+ export type { VirtualElement };
package/dist/Popup.js CHANGED
@@ -1,6 +1,8 @@
1
+ import { _ as __decorate } from './_tslib-CNEFicEt.js';
1
2
  import { css, html } from 'lit';
3
+ import { property } from 'lit/decorators.js';
2
4
  import { autoUpdate, size, flip, shift, computePosition } from '@floating-ui/dom';
3
- import { L as LeuElement } from './LeuElement-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
4
6
 
5
7
  var css_248z = css`:host {
6
8
  --popup-font-regular: var(--leu-font-family-regular);
@@ -32,30 +34,23 @@ var css_248z = css`:host {
32
34
  }
33
35
  `;
34
36
 
35
- /**
36
- * @typedef {"top"|"top-start"|"top-end"|"bottom"|"bottom-start"|"bottom-end"|"left"|"left-start"|"left-end"|"right"|"right-start"|"right-end"} Placement
37
- */
37
+ function isVirtualElement(el) {
38
+ return (el !== null &&
39
+ typeof el === "object" &&
40
+ "getBoundingClientRect" in el &&
41
+ ("contextElement" in el ? el instanceof Element : true));
42
+ }
38
43
  /**
39
44
  * @tagname leu-popup
40
45
  */
41
46
  class LeuPopup extends LeuElement {
42
47
  constructor() {
43
- super();
44
- this.anchorEl = null;
45
- this.cleanup = undefined;
48
+ super(...arguments);
49
+ this.active = false;
46
50
  this.flip = false;
47
51
  this.shift = false;
48
- this.active = false;
49
- /** @type {Placement} */
50
- this.placement = undefined;
51
- /** @type {"width" | "height" | "both"} */
52
- this.matchSize = undefined;
53
- /** @type {"width" | "height" | "both"} */
54
- this.autoSize = undefined;
55
52
  this.shiftPadding = 0;
56
53
  this.autoSizePadding = 0;
57
- /** @type {string | HTMLElement} */
58
- this.anchor = undefined;
59
54
  }
60
55
  disconnectedCallback() {
61
56
  super.disconnectedCallback();
@@ -77,9 +72,6 @@ class LeuPopup extends LeuElement {
77
72
  this.reposition();
78
73
  }
79
74
  }
80
- /**
81
- * @returns {HTMLElement | null}
82
- */
83
75
  get popupEl() {
84
76
  return this.renderRoot?.querySelector(".popup") ?? null;
85
77
  }
@@ -165,7 +157,8 @@ class LeuPopup extends LeuElement {
165
157
  const root = this.getRootNode();
166
158
  this.anchorEl = root.getElementById(this.anchor);
167
159
  }
168
- else if (this.anchor instanceof HTMLElement) {
160
+ else if (this.anchor instanceof HTMLElement ||
161
+ isVirtualElement(this.anchor)) {
169
162
  this.anchorEl = this.anchor;
170
163
  }
171
164
  else {
@@ -192,16 +185,32 @@ LeuPopup.shadowRootOptions = {
192
185
  ...LeuElement.shadowRootOptions,
193
186
  delegatesFocus: true,
194
187
  };
195
- LeuPopup.properties = {
196
- anchor: {},
197
- active: { type: Boolean, reflect: true },
198
- placement: { type: String, reflect: true },
199
- flip: { type: Boolean, reflect: true },
200
- shift: { type: Boolean, reflect: true },
201
- shiftPadding: { type: Number, reflect: true },
202
- matchSize: { type: String, reflect: true },
203
- autoSize: { type: String, reflect: true },
204
- autoSizePadding: { type: Number, reflect: true },
205
- };
188
+ __decorate([
189
+ property()
190
+ ], LeuPopup.prototype, "anchor", void 0);
191
+ __decorate([
192
+ property({ type: Boolean, reflect: true })
193
+ ], LeuPopup.prototype, "active", void 0);
194
+ __decorate([
195
+ property({ type: String, reflect: true })
196
+ ], LeuPopup.prototype, "placement", void 0);
197
+ __decorate([
198
+ property({ type: Boolean, reflect: true })
199
+ ], LeuPopup.prototype, "flip", void 0);
200
+ __decorate([
201
+ property({ type: Boolean, reflect: true })
202
+ ], LeuPopup.prototype, "shift", void 0);
203
+ __decorate([
204
+ property({ type: Number, reflect: true })
205
+ ], LeuPopup.prototype, "shiftPadding", void 0);
206
+ __decorate([
207
+ property({ type: String, reflect: true })
208
+ ], LeuPopup.prototype, "matchSize", void 0);
209
+ __decorate([
210
+ property({ type: String, reflect: true })
211
+ ], LeuPopup.prototype, "autoSize", void 0);
212
+ __decorate([
213
+ property({ type: Number, reflect: true })
214
+ ], LeuPopup.prototype, "autoSizePadding", void 0);
206
215
 
207
216
  export { LeuPopup };
@@ -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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
4
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
2
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
3
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
4
4
  import { LeuButton } from './Button.js';
5
5
  import { LeuIcon } from './Icon.js';
6
6
  import './_tslib-CNEFicEt.js';
package/dist/Select.d.ts CHANGED
@@ -1,6 +1,6 @@
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
  import { H as HasSlotController } from './hasSlotController.d-emXwVXWF.js';
6
6
  import { LeuButton } from './Button.js';
@@ -9,6 +9,7 @@ import { LeuMenuItem } from './MenuItem.js';
9
9
  import { LeuIcon } from './Icon.js';
10
10
  import { LeuInput } from './Input.js';
11
11
  import { LeuPopup } from './Popup.js';
12
+ import '@floating-ui/dom';
12
13
 
13
14
  /**
14
15
  * @tagname leu-select
@@ -87,7 +88,7 @@ declare class LeuSelect extends LeuElement {
87
88
  constructor();
88
89
  connectedCallback(): void;
89
90
  disconnectedCallback(): void;
90
- updated(changedProperties: any): void;
91
+ updated(changedProperties: PropertyValues<this>): void;
91
92
  /**
92
93
  * Apply the current state to the menu items.
93
94
  * - Set the active property when the value property has changed.
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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
2
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
5
+ import { L as LeuElement } from './LeuElement-BFljD2fO.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-CcarVabH.js';
4
+ import { L as LeuElement } from './LeuElement-BFljD2fO.js';
5
5
 
6
6
  var css_248z = css`:host {
7
7
  /* --tag-font-regular: var(--leu-font-family-regular);