@statistikzh/leu 0.28.0 → 0.28.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 (114) hide show
  1. package/.github/workflows/publish.yml +1 -3
  2. package/.release-please-manifest.json +1 -1
  3. package/AGENTS.md +162 -0
  4. package/CHANGELOG.md +7 -0
  5. package/dist/{Accordion-D9kLsiBW.js → Accordion-CwkI7sfx.js} +1 -1
  6. package/dist/Accordion.js +2 -2
  7. package/dist/{Button-DyNVOHCd.js → Button-D1aYnunQ.js} +3 -3
  8. package/dist/Button.js +4 -4
  9. package/dist/{ButtonGroup-MEh4vb5a.js → ButtonGroup-CqThYjzX.js} +2 -2
  10. package/dist/ButtonGroup.js +5 -5
  11. package/dist/{ChartWrapper-DAl91BIN.js → ChartWrapper-BjVT4x-H.js} +2 -2
  12. package/dist/ChartWrapper.js +3 -3
  13. package/dist/{Checkbox-CGGyUW9U.js → Checkbox-HxYqp2w4.js} +2 -2
  14. package/dist/Checkbox.js +3 -3
  15. package/dist/{CheckboxGroup-DXt5iMdj.js → CheckboxGroup-DYws2rwt.js} +2 -2
  16. package/dist/CheckboxGroup.js +4 -4
  17. package/dist/{Chip-BGs71WGH.js → Chip-gKxD6IaZ.js} +1 -1
  18. package/dist/Chip.js +2 -2
  19. package/dist/{ChipGroup-BcGyusP-.js → ChipGroup-ZvBzX_wd.js} +1 -1
  20. package/dist/ChipGroup.js +3 -3
  21. package/dist/ChipLink.js +2 -2
  22. package/dist/ChipRemovable.js +3 -3
  23. package/dist/ChipSelectable.js +2 -2
  24. package/dist/{Dialog-BzuyL1U3.js → Dialog-BYpzTprV.js} +2 -2
  25. package/dist/Dialog.js +3 -3
  26. package/dist/{Dropdown-plyBTM15.js → Dropdown-C4CgE4E-.js} +5 -5
  27. package/dist/Dropdown.js +8 -8
  28. package/dist/{FileInput-BT3Fe-0J.js → FileInput-nsnSQCaU.js} +8 -6
  29. package/dist/FileInput.d.ts +1 -1
  30. package/dist/FileInput.js +6 -6
  31. package/dist/{Icon-D83qesg5.js → Icon-D8HTPEFH.js} +1 -1
  32. package/dist/Icon.js +2 -2
  33. package/dist/{Input-D7zS50oz.js → Input-OrILqlax.js} +2 -2
  34. package/dist/Input.js +3 -3
  35. package/dist/{LeuElement-DQI8cqZV.js → LeuElement-C_lcHzQI.js} +1 -1
  36. package/dist/{Menu-DRU1LiMM.js → Menu-CFLCnI34.js} +2 -2
  37. package/dist/Menu.js +4 -4
  38. package/dist/{MenuItem-DCttylRO.js → MenuItem-ICjLCGim.js} +2 -2
  39. package/dist/MenuItem.js +3 -3
  40. package/dist/{Message-0NxnKEqw.js → Message-Dw5D_0i1.js} +2 -2
  41. package/dist/Message.js +3 -3
  42. package/dist/{Pagination-CIy7YvWE.js → Pagination-D1tP5FrM.js} +4 -4
  43. package/dist/Pagination.js +6 -6
  44. package/dist/{Placeholder-Dol_X5Hp.js → Placeholder-CnGzCZ5-.js} +1 -1
  45. package/dist/Placeholder.js +2 -2
  46. package/dist/{Popup-nJrJHGSy.js → Popup-BiN_tZDN.js} +1 -1
  47. package/dist/Popup.js +2 -2
  48. package/dist/{ProgressBar-Dmq9veqU.js → ProgressBar-BfJo_KyU.js} +1 -1
  49. package/dist/ProgressBar.js +2 -2
  50. package/dist/{Radio-W5ck_IJI.js → Radio-CV7vuQUj.js} +1 -1
  51. package/dist/Radio.js +2 -2
  52. package/dist/{RadioGroup-De5x2YCO.js → RadioGroup-C3XWSScc.js} +2 -2
  53. package/dist/RadioGroup.js +3 -3
  54. package/dist/{Range-NCdfDkeD.js → Range-C8RVrIM9.js} +1 -1
  55. package/dist/Range.js +2 -2
  56. package/dist/{ScrollTop-DwcNIKmN.js → ScrollTop-B_TJ_k4m.js} +3 -3
  57. package/dist/ScrollTop.js +5 -5
  58. package/dist/{Select-Bpicra9q.js → Select-CbPTrL3G.js} +7 -7
  59. package/dist/Select.js +9 -9
  60. package/dist/{Spinner-BBiVZxFH.js → Spinner-ChKJQJTN.js} +1 -1
  61. package/dist/Spinner.js +2 -2
  62. package/dist/{Tab-Ce9nrDok.js → Tab-BJbzY1xd.js} +1 -1
  63. package/dist/Tab.js +2 -2
  64. package/dist/{TabGroup-C-cd4Wcx.js → TabGroup-BIaCHrKR.js} +3 -3
  65. package/dist/TabGroup.js +4 -4
  66. package/dist/{TabPanel-BW1ydVBT.js → TabPanel-CTyw410b.js} +1 -1
  67. package/dist/TabPanel.js +2 -2
  68. package/dist/{Table-DiYqIzBu.js → Table-D3QmePJd.js} +3 -3
  69. package/dist/Table.js +7 -7
  70. package/dist/{Tag-Ct8Hhv7W.js → Tag-nUnWtHYy.js} +1 -1
  71. package/dist/Tag.js +2 -2
  72. package/dist/{VisuallyHidden-CpYXyuC7.js → VisuallyHidden-DF2q9pTa.js} +1 -1
  73. package/dist/VisuallyHidden.js +2 -2
  74. package/dist/index.js +30 -30
  75. package/dist/leu-accordion.js +2 -2
  76. package/dist/leu-button-group.js +5 -5
  77. package/dist/leu-button.js +4 -4
  78. package/dist/leu-chart-wrapper.js +3 -3
  79. package/dist/leu-checkbox-group.js +4 -4
  80. package/dist/leu-checkbox.js +3 -3
  81. package/dist/leu-chip-group.js +3 -3
  82. package/dist/leu-chip-link.js +2 -2
  83. package/dist/leu-chip-removable.js +3 -3
  84. package/dist/leu-chip-selectable.js +2 -2
  85. package/dist/leu-dialog.js +3 -3
  86. package/dist/leu-dropdown.js +8 -8
  87. package/dist/leu-file-input.js +6 -6
  88. package/dist/leu-icon.js +2 -2
  89. package/dist/leu-input.js +3 -3
  90. package/dist/leu-menu-item.js +3 -3
  91. package/dist/leu-menu.js +4 -4
  92. package/dist/leu-message.js +3 -3
  93. package/dist/leu-pagination.js +6 -6
  94. package/dist/leu-placeholder.js +2 -2
  95. package/dist/leu-popup.js +2 -2
  96. package/dist/leu-progress-bar.js +2 -2
  97. package/dist/leu-radio-group.js +3 -3
  98. package/dist/leu-radio.js +2 -2
  99. package/dist/leu-range.js +2 -2
  100. package/dist/leu-scroll-top.js +5 -5
  101. package/dist/leu-select.js +9 -9
  102. package/dist/leu-spinner.js +2 -2
  103. package/dist/leu-tab-group.js +4 -4
  104. package/dist/leu-tab-panel.js +2 -2
  105. package/dist/leu-tab.js +2 -2
  106. package/dist/leu-table.js +7 -7
  107. package/dist/leu-tag.js +2 -2
  108. package/dist/leu-visually-hidden.js +2 -2
  109. package/dist/vscode.html-custom-data.json +11 -11
  110. package/dist/vue/index.d.ts +20 -20
  111. package/dist/web-types.json +28 -28
  112. package/package.json +6 -4
  113. package/src/components/file-input/FileInput.ts +4 -2
  114. package/src/components/file-input/test/file-input.test.ts +24 -0
@@ -7,6 +7,7 @@ on:
7
7
  - "leu-v*"
8
8
 
9
9
  permissions:
10
+ id-token: write
10
11
  contents: read
11
12
 
12
13
  jobs:
@@ -21,10 +22,7 @@ jobs:
21
22
  cache: "npm"
22
23
  registry-url: "https://registry.npmjs.org"
23
24
 
24
- - run: npm --version
25
25
  - run: npm ci
26
26
  - run: npm run build
27
27
  - name: Publish to npm
28
- env:
29
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
30
28
  run: npm publish
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.28.0"
2
+ ".": "0.28.1"
3
3
  }
package/AGENTS.md ADDED
@@ -0,0 +1,162 @@
1
+ # AGENTS.md - AI Coding Assistant Guide
2
+
3
+ This file provides guidance for AI coding assistants when working with this repository.
4
+
5
+ ## Project Overview
6
+
7
+ `leu` is a framework-agnostic web components library implementing the design system of the Canton of Zurich. Components are built with [Lit](https://lit.dev) and extend a shared `LeuElement` base class.
8
+
9
+ ## Repo Structure
10
+
11
+ ```
12
+ src/
13
+ ├── components/ # Individual web components (one folder per component)
14
+ ├── lib/ # Shared base class (LeuElement), mixins, and utilities
15
+ ├── styles/ # Global CSS theme (theme.css)
16
+ ├── docs/ # Documentation source files
17
+ └── index.ts # Public barrel export
18
+ scripts/
19
+ └── generate-component/ # Scaffolding script for new components
20
+ ```
21
+
22
+ Each component folder (e.g. `src/components/button/`) typically contains:
23
+
24
+ - `Button.ts` — component class
25
+ - `leu-button.ts` — custom element registration
26
+ - `button.css` — component styles (imported as `?inline` in the class)
27
+ - `stories/` — Storybook stories
28
+ - `test/` — unit tests
29
+
30
+ ## Essential Commands
31
+
32
+ All commands run from the repo root.
33
+
34
+ ```bash
35
+ npm run storybook # Start Storybook dev server on http://localhost:8080
36
+ npm run build # Full production build (JS + CSS + CEM analysis)
37
+ npm run build:js # TypeScript → JS via tsdown
38
+ npm run build:css # PostCSS theme build
39
+ npm run lint # ESLint + Prettier check
40
+ npm run lint:types # TypeScript type check
41
+ npm run format # Auto-fix ESLint + Prettier
42
+ npm run test # Run all tests with coverage
43
+ npm run test:watch # Run tests in watch mode
44
+ npm run analyze # Regenerate custom-elements.json manifest
45
+ ```
46
+
47
+ ## Build & Test Flow
48
+
49
+ **Build:** `npm run build` compiles TypeScript (`tsdown`), builds the CSS theme, and regenerates the custom elements manifest. Check types without building: `npm run lint:types`.
50
+
51
+ **Tests** use Web Test Runner with Playwright. Test files match `src/components/**/*.test.ts`.
52
+
53
+ Run tests for a single component:
54
+
55
+ ```bash
56
+ npm run test -- --files "src/components/button/**/*.test.ts"
57
+ ```
58
+
59
+ **Running a single test case:** Use `.only` to isolate a failing test, then remove it before committing:
60
+
61
+ ```ts
62
+ it.only("should render correctly", () => {
63
+ ```
64
+
65
+ **Important:** Only run tests for the component being modified, not the full suite, unless validating a cross-cutting change.
66
+
67
+ ## Component Development
68
+
69
+ A new component can be scaffolded using the provided script:
70
+
71
+ ```bash
72
+ # Learn how to use the generator:
73
+ npm run generate-component -- --help
74
+ # Create a single component:
75
+ npm run generate-component -- --name button
76
+ # For multiple components that live in the same folder (e.g. menu + menu-item):
77
+ npm run generate-component -- --name menu --components menu,menu-item
78
+ ```
79
+
80
+ ### Naming Conventions
81
+
82
+ - Class name: `LeuButton` (PascalCase, `Leu` prefix)
83
+ - Tag name: `leu-button` (kebab-case, `leu-` prefix)
84
+ - File names: `Button.ts`, `leu-button.ts`, `button.css`
85
+
86
+ ### Component Structure
87
+
88
+ Components extend `LeuElement` (which extends `LitElement`):
89
+
90
+ ```ts
91
+ import { LeuElement } from "../../lib/LeuElement.js"
92
+ import styles from "./button.css?inline"
93
+
94
+ export class LeuButton extends LeuElement {
95
+ static styles = [LeuElement.styles, styles]
96
+
97
+ // Use Lit decorators for properties
98
+ @property({ type: String, reflect: true })
99
+ variant: "primary" | "secondary" | "ghost" = "primary"
100
+ }
101
+ ```
102
+
103
+ Register the custom element in a separate file:
104
+
105
+ ```ts
106
+ // leu-button.ts
107
+ import { LeuButton } from "./Button.js"
108
+ customElements.define("leu-button", LeuButton)
109
+ ```
110
+
111
+ Export from `src/index.ts` (both the class and the registration module).
112
+
113
+ ### Styles
114
+
115
+ All component styles should be based on the global theme variables defined in `src/styles/theme.css`.
116
+
117
+ ### Key Patterns
118
+
119
+ | Topic | Convention |
120
+ | ---------------- | ------------------------------------------------------------------------- |
121
+ | Styles | Import CSS as `?inline`, include `LeuElement.styles` first |
122
+ | Slots | Manage with `HasSlotController` from `lib/hasSlotController.ts` |
123
+ | Form fields | Extend `FormAssociatedMixin(LeuElement)` |
124
+ | Sub-dependencies | Declare via static `dependencies` object; auto-registered by `LeuElement` |
125
+ | Figma reference | Link in JSDoc `@see` on the class |
126
+
127
+ ## Commit Message Format
128
+
129
+ Follow [Conventional Commits](https://conventionalcommits.org) (enforced by commitlint):
130
+
131
+ ```
132
+ <type>(<scope>): <description>
133
+
134
+ [body]
135
+
136
+ [footer]
137
+ ```
138
+
139
+ **Types:** `fix`, `feat`, `docs`, `style`, `refactor`, `perf`, `test`, `chore`, `revert`
140
+ **Scope:** Component name without prefix (e.g., `button`, `input`, `dialog`)
141
+
142
+ Example: `feat(radio): add new feature`
143
+
144
+ ## Branching
145
+
146
+ Branch off `main`. Prefix branch names with the issue number (e.g. `48-dropdown`). Do not merge feature branches into each other; merge into `main` as soon as possible.
147
+ Branches will be squashed on merge, so the commit history should be clean and focused on the change.
148
+
149
+ ```
150
+ fix(button): correct focus outline on tab key
151
+
152
+ The button now receives proper focus outline when
153
+ navigating with the tab key.
154
+
155
+ Fixes #42
156
+ ```
157
+
158
+ ## GitHub Actions & Releases
159
+
160
+ Never update the `CHANGELOG.md` or version number manually. The release process is automated via GitHub Actions:
161
+
162
+ 1. Merge your PR into `main` with a properly formatted commit message.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.28.1](https://github.com/statistikZH/leu/compare/leu-v0.28.0...leu-v0.28.1) (2026-05-20)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **file-input:** dispatch `input`/`change` events only after render state settles ([#348](https://github.com/statistikZH/leu/issues/348)) ([d2f2237](https://github.com/statistikZH/leu/commit/d2f223716eac4033e6e121be9806c718ccb7a775))
9
+
3
10
  ## [0.28.0](https://github.com/statistikZH/leu/compare/leu-v0.27.0...leu-v0.28.0) (2026-04-09)
4
11
 
5
12
 
@@ -1,4 +1,4 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
3
  import { css, nothing } from "lit";
4
4
  import { html as html$1, unsafeStatic } from "lit/static-html.js";
package/dist/Accordion.js CHANGED
@@ -1,3 +1,3 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import { t as LeuAccordion } from "./Accordion-D9kLsiBW.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import { t as LeuAccordion } from "./Accordion-CwkI7sfx.js";
3
3
  export { LeuAccordion };
@@ -1,7 +1,7 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
4
- import { t as LeuSpinner } from "./Spinner-BBiVZxFH.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
+ import { t as LeuSpinner } from "./Spinner-ChKJQJTN.js";
5
5
  import { t as HasSlotController } from "./hasSlotController-DSBCVzPD.js";
6
6
  import { t as FormAssociatedMixin } from "./FormAssociatedMixin-DLPvFtbT.js";
7
7
  import { css, nothing } from "lit";
package/dist/Button.js CHANGED
@@ -1,6 +1,6 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import "./Spinner-BBiVZxFH.js";
4
- import { t as LeuButton } from "./Button-DyNVOHCd.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import "./Spinner-ChKJQJTN.js";
4
+ import { t as LeuButton } from "./Button-D1aYnunQ.js";
5
5
  import "./FormAssociatedMixin-DLPvFtbT.js";
6
6
  export { LeuButton };
@@ -1,5 +1,5 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
2
- import { t as LeuButton } from "./Button-DyNVOHCd.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
+ import { t as LeuButton } from "./Button-D1aYnunQ.js";
3
3
  import { css, html } from "lit";
4
4
  //#region src/components/button-group/button-group.css?inline
5
5
  var button_group_default = css`.group {
@@ -1,7 +1,7 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import "./Spinner-BBiVZxFH.js";
4
- import "./Button-DyNVOHCd.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import "./Spinner-ChKJQJTN.js";
4
+ import "./Button-D1aYnunQ.js";
5
5
  import "./FormAssociatedMixin-DLPvFtbT.js";
6
- import { t as LeuButtonGroup } from "./ButtonGroup-MEh4vb5a.js";
6
+ import { t as LeuButtonGroup } from "./ButtonGroup-CqThYjzX.js";
7
7
  export { LeuButtonGroup };
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuSpinner } from "./Spinner-BBiVZxFH.js";
3
+ import { t as LeuSpinner } from "./Spinner-ChKJQJTN.js";
4
4
  import { t as HasSlotController } from "./hasSlotController-DSBCVzPD.js";
5
5
  import { css, html, nothing } from "lit";
6
6
  import { property } from "lit/decorators.js";
@@ -1,4 +1,4 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Spinner-BBiVZxFH.js";
3
- import { t as LeuChartWrapper } from "./ChartWrapper-DAl91BIN.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Spinner-ChKJQJTN.js";
3
+ import { t as LeuChartWrapper } from "./ChartWrapper-BjVT4x-H.js";
4
4
  export { LeuChartWrapper };
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
4
  import { t as FormAssociatedMixin } from "./FormAssociatedMixin-DLPvFtbT.js";
5
5
  import { css, html } from "lit";
6
6
  import { property } from "lit/decorators.js";
package/dist/Checkbox.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
3
  import "./FormAssociatedMixin-DLPvFtbT.js";
4
- import { t as LeuCheckbox } from "./Checkbox-CGGyUW9U.js";
4
+ import { t as LeuCheckbox } from "./Checkbox-HxYqp2w4.js";
5
5
  export { LeuCheckbox };
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuCheckbox } from "./Checkbox-CGGyUW9U.js";
3
+ import { t as LeuCheckbox } from "./Checkbox-HxYqp2w4.js";
4
4
  import { css, html } from "lit";
5
5
  import { property } from "lit/decorators.js";
6
6
  import { classMap } from "lit/directives/class-map.js";
@@ -1,6 +1,6 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
3
  import "./FormAssociatedMixin-DLPvFtbT.js";
4
- import "./Checkbox-CGGyUW9U.js";
5
- import { t as LeuCheckboxGroup } from "./CheckboxGroup-DXt5iMdj.js";
4
+ import "./Checkbox-HxYqp2w4.js";
5
+ import { t as LeuCheckboxGroup } from "./CheckboxGroup-DYws2rwt.js";
6
6
  export { LeuCheckboxGroup };
@@ -1,4 +1,4 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
3
  import { css } from "lit";
4
4
  import { property } from "lit/decorators.js";
package/dist/Chip.js CHANGED
@@ -1,3 +1,3 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import { t as LeuChipBase } from "./Chip-BGs71WGH.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import { t as LeuChipBase } from "./Chip-gKxD6IaZ.js";
3
3
  export { LeuChipBase };
@@ -1,4 +1,4 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
3
  import { LeuChipSelectable } from "./ChipSelectable.js";
4
4
  import { css } from "lit";
package/dist/ChipGroup.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import { t as LeuChipGroup } from "./ChipGroup-BcGyusP-.js";
3
- import "./Chip-BGs71WGH.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import { t as LeuChipGroup } from "./ChipGroup-ZvBzX_wd.js";
3
+ import "./Chip-gKxD6IaZ.js";
4
4
  export { LeuChipGroup };
package/dist/ChipLink.js CHANGED
@@ -1,6 +1,6 @@
1
- import "./LeuElement-DQI8cqZV.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuChipBase } from "./Chip-BGs71WGH.js";
3
+ import { t as LeuChipBase } from "./Chip-gKxD6IaZ.js";
4
4
  import { html } from "lit";
5
5
  import { property } from "lit/decorators.js";
6
6
  //#region src/components/chip/ChipLink.ts
@@ -1,7 +1,7 @@
1
- import "./LeuElement-DQI8cqZV.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
4
- import { t as LeuChipBase } from "./Chip-BGs71WGH.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
+ import { t as LeuChipBase } from "./Chip-gKxD6IaZ.js";
5
5
  import { html } from "lit";
6
6
  import { property } from "lit/decorators.js";
7
7
  //#region src/components/chip/ChipRemovable.ts
@@ -1,6 +1,6 @@
1
- import "./LeuElement-DQI8cqZV.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuChipBase } from "./Chip-BGs71WGH.js";
3
+ import { t as LeuChipBase } from "./Chip-gKxD6IaZ.js";
4
4
  import { html } from "lit";
5
5
  import { property } from "lit/decorators.js";
6
6
  //#region src/components/chip/ChipSelectable.ts
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
4
  import { t as HasSlotController } from "./hasSlotController-DSBCVzPD.js";
5
5
  import { css, html, nothing } from "lit";
6
6
  import { property } from "lit/decorators.js";
package/dist/Dialog.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import { t as LeuDialog } from "./Dialog-BzuyL1U3.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import { t as LeuDialog } from "./Dialog-BYpzTprV.js";
4
4
  export { LeuDialog };
@@ -1,10 +1,10 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
3
  import { t as HasSlotController } from "./hasSlotController-DSBCVzPD.js";
4
- import { t as LeuButton } from "./Button-DyNVOHCd.js";
5
- import { t as LeuMenuItem } from "./MenuItem-DCttylRO.js";
6
- import { t as LeuMenu } from "./Menu-DRU1LiMM.js";
7
- import { t as LeuPopup } from "./Popup-nJrJHGSy.js";
4
+ import { t as LeuButton } from "./Button-D1aYnunQ.js";
5
+ import { t as LeuMenuItem } from "./MenuItem-ICjLCGim.js";
6
+ import { t as LeuMenu } from "./Menu-CFLCnI34.js";
7
+ import { t as LeuPopup } from "./Popup-BiN_tZDN.js";
8
8
  import { css, html, nothing } from "lit";
9
9
  import { property } from "lit/decorators.js";
10
10
  import { createRef, ref } from "lit/directives/ref.js";
package/dist/Dropdown.js CHANGED
@@ -1,10 +1,10 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import "./Spinner-BBiVZxFH.js";
4
- import "./Button-DyNVOHCd.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import "./Spinner-ChKJQJTN.js";
4
+ import "./Button-D1aYnunQ.js";
5
5
  import "./FormAssociatedMixin-DLPvFtbT.js";
6
- import "./MenuItem-DCttylRO.js";
7
- import "./Menu-DRU1LiMM.js";
8
- import "./Popup-nJrJHGSy.js";
9
- import { t as LeuDropdown } from "./Dropdown-plyBTM15.js";
6
+ import "./MenuItem-ICjLCGim.js";
7
+ import "./Menu-CFLCnI34.js";
8
+ import "./Popup-BiN_tZDN.js";
9
+ import { t as LeuDropdown } from "./Dropdown-C4CgE4E-.js";
10
10
  export { LeuDropdown };
@@ -1,9 +1,9 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
4
- import { t as LeuButton } from "./Button-DyNVOHCd.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
+ import { t as LeuButton } from "./Button-D1aYnunQ.js";
5
5
  import { t as FormAssociatedMixin } from "./FormAssociatedMixin-DLPvFtbT.js";
6
- import { t as LeuVisuallyHidden } from "./VisuallyHidden-CpYXyuC7.js";
6
+ import { t as LeuVisuallyHidden } from "./VisuallyHidden-DF2q9pTa.js";
7
7
  import { css, html, nothing } from "lit";
8
8
  import { property, query, state } from "lit/decorators.js";
9
9
  import { classMap } from "lit/directives/class-map.js";
@@ -205,7 +205,8 @@ var LeuFileInput = class LeuFileInput extends FormAssociatedMixin(LeuElement) {
205
205
  this.files = this.multiple ? this.files.concat(acceptableFiles) : acceptableFiles.slice(0, 1);
206
206
  }
207
207
  }
208
- handleChange(event) {
208
+ async handleChange(event) {
209
+ await this.updateComplete;
209
210
  const customEvent = new CustomEvent(event.type, event);
210
211
  this.dispatchEvent(customEvent);
211
212
  }
@@ -227,7 +228,8 @@ var LeuFileInput = class LeuFileInput extends FormAssociatedMixin(LeuElement) {
227
228
  this.files = this.files.filter((file) => file !== fileToRemove);
228
229
  this.dispatchChangeAndInputEvents();
229
230
  }
230
- dispatchChangeAndInputEvents() {
231
+ async dispatchChangeAndInputEvents() {
232
+ await this.updateComplete;
231
233
  this.dispatchEvent(new CustomEvent("input", {
232
234
  composed: true,
233
235
  bubbles: true
@@ -52,7 +52,7 @@ declare class LeuFileInput extends LeuFileInput_base {
52
52
  formResetCallback(): void;
53
53
  protected setFormValue(): void;
54
54
  protected removeFile(fileToRemove: File): void;
55
- protected dispatchChangeAndInputEvents(): void;
55
+ protected dispatchChangeAndInputEvents(): Promise<void>;
56
56
  /**
57
57
  * This implementation Uses base-10 (decimal) units:
58
58
  * 1 KB = 1_000 bytes
package/dist/FileInput.js CHANGED
@@ -1,8 +1,8 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import "./Spinner-BBiVZxFH.js";
4
- import "./Button-DyNVOHCd.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import "./Spinner-ChKJQJTN.js";
4
+ import "./Button-D1aYnunQ.js";
5
5
  import "./FormAssociatedMixin-DLPvFtbT.js";
6
- import { t as LeuFileInput } from "./FileInput-BT3Fe-0J.js";
7
- import "./VisuallyHidden-CpYXyuC7.js";
6
+ import { t as LeuFileInput } from "./FileInput-nsnSQCaU.js";
7
+ import "./VisuallyHidden-DF2q9pTa.js";
8
8
  export { LeuFileInput };
@@ -1,4 +1,4 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
3
  import { css, html, svg } from "lit";
4
4
  import { property } from "lit/decorators.js";
package/dist/Icon.js CHANGED
@@ -1,3 +1,3 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
3
3
  export { LeuIcon };
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
4
  import { t as FormAssociatedMixin } from "./FormAssociatedMixin-DLPvFtbT.js";
5
5
  import { css, html, nothing } from "lit";
6
6
  import { property, state } from "lit/decorators.js";
package/dist/Input.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
3
  import "./FormAssociatedMixin-DLPvFtbT.js";
4
- import { n as SIZES, t as LeuInput } from "./Input-D7zS50oz.js";
4
+ import { n as SIZES, t as LeuInput } from "./Input-OrILqlax.js";
5
5
  export { LeuInput, SIZES };
@@ -20,7 +20,7 @@ var common_styles_default = css`:host,
20
20
  //#region src/lib/LeuElement.ts
21
21
  var LeuElement = class extends LitElement {
22
22
  static {
23
- this.version = "0.28.0";
23
+ this.version = "0.28.1";
24
24
  }
25
25
  static {
26
26
  this.dependencies = {};
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuMenuItem } from "./MenuItem-DCttylRO.js";
3
+ import { t as LeuMenuItem } from "./MenuItem-ICjLCGim.js";
4
4
  import { css, html } from "lit";
5
5
  import { property } from "lit/decorators.js";
6
6
  //#region src/components/menu/menu.css?inline
package/dist/Menu.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import "./MenuItem-DCttylRO.js";
4
- import { t as LeuMenu } from "./Menu-DRU1LiMM.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import "./MenuItem-ICjLCGim.js";
4
+ import { t as LeuMenu } from "./Menu-CFLCnI34.js";
5
5
  export { LeuMenu };
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
4
  import { css, html, nothing } from "lit";
5
5
  import { property } from "lit/decorators.js";
6
6
  import { ifDefined } from "lit/directives/if-defined.js";
package/dist/MenuItem.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import { t as LeuMenuItem } from "./MenuItem-DCttylRO.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import { t as LeuMenuItem } from "./MenuItem-ICjLCGim.js";
4
4
  export { LeuMenuItem };
@@ -1,6 +1,6 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
4
  import { t as HasSlotController } from "./hasSlotController-DSBCVzPD.js";
5
5
  import { css, html, nothing } from "lit";
6
6
  import { property } from "lit/decorators.js";
package/dist/Message.js CHANGED
@@ -1,4 +1,4 @@
1
- import "./LeuElement-DQI8cqZV.js";
2
- import "./Icon-D83qesg5.js";
3
- import { t as LeuMessage } from "./Message-0NxnKEqw.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import "./Icon-D8HTPEFH.js";
3
+ import { t as LeuMessage } from "./Message-Dw5D_0i1.js";
4
4
  export { LeuMessage };
@@ -1,8 +1,8 @@
1
- import { t as LeuElement } from "./LeuElement-DQI8cqZV.js";
1
+ import { t as LeuElement } from "./LeuElement-C_lcHzQI.js";
2
2
  import { t as __decorate } from "./decorate-DwpAc4D0.js";
3
- import { t as LeuIcon } from "./Icon-D83qesg5.js";
4
- import { t as LeuButton } from "./Button-DyNVOHCd.js";
5
- import { t as LeuVisuallyHidden } from "./VisuallyHidden-CpYXyuC7.js";
3
+ import { t as LeuIcon } from "./Icon-D8HTPEFH.js";
4
+ import { t as LeuButton } from "./Button-D1aYnunQ.js";
5
+ import { t as LeuVisuallyHidden } from "./VisuallyHidden-DF2q9pTa.js";
6
6
  import { css, html } from "lit";
7
7
  import { property, state } from "lit/decorators.js";
8
8
  import { live } from "lit/directives/live.js";