@statistikzh/leu 0.27.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 (206) hide show
  1. package/.github/workflows/publish.yml +1 -3
  2. package/.release-please-manifest.json +1 -1
  3. package/.storybook/main.ts +1 -1
  4. package/.storybook/preview.ts +6 -4
  5. package/.storybook/static/global.css +5 -0
  6. package/AGENTS.md +162 -0
  7. package/CHANGELOG.md +30 -0
  8. package/dist/{Accordion-DLsqXcK8.js → Accordion-CwkI7sfx.js} +1 -1
  9. package/dist/Accordion.d.ts +1 -1
  10. package/dist/Accordion.js +2 -2
  11. package/dist/{Button-BSyDL_cV.js → Button-D1aYnunQ.js} +90 -82
  12. package/dist/{Button-BgNUxmo_.d.ts → Button-DcuvEVkC.d.ts} +14 -12
  13. package/dist/Button.d.ts +1 -1
  14. package/dist/Button.js +4 -4
  15. package/dist/{ButtonGroup-BmSvl-Oc.js → ButtonGroup-CqThYjzX.js} +2 -2
  16. package/dist/ButtonGroup.d.ts +1 -1
  17. package/dist/ButtonGroup.js +5 -5
  18. package/dist/{ChartWrapper-CvDvQsd5.js → ChartWrapper-BjVT4x-H.js} +2 -2
  19. package/dist/ChartWrapper.d.ts +3 -3
  20. package/dist/ChartWrapper.js +3 -3
  21. package/dist/{Checkbox-Cl_X6gBJ.js → Checkbox-HxYqp2w4.js} +2 -2
  22. package/dist/Checkbox.d.ts +3 -3
  23. package/dist/Checkbox.js +3 -3
  24. package/dist/{CheckboxGroup-BKhOmZYX.js → CheckboxGroup-DYws2rwt.js} +2 -2
  25. package/dist/CheckboxGroup.d.ts +1 -1
  26. package/dist/CheckboxGroup.js +4 -4
  27. package/dist/{Chip-DLKM9P7v.d.ts → Chip-DVGjEPJE.d.ts} +1 -1
  28. package/dist/{Chip-McVP3N_x.js → Chip-gKxD6IaZ.js} +1 -1
  29. package/dist/Chip.d.ts +1 -1
  30. package/dist/Chip.js +2 -2
  31. package/dist/{ChipGroup-Ta8Ht4jc.d.ts → ChipGroup-BK5BYM0X.d.ts} +2 -2
  32. package/dist/{ChipGroup-DUGavZeU.js → ChipGroup-ZvBzX_wd.js} +1 -1
  33. package/dist/ChipGroup.d.ts +1 -1
  34. package/dist/ChipGroup.js +3 -3
  35. package/dist/{ChipLink-BAxyQO2M.d.ts → ChipLink-BdG2o-nk.d.ts} +1 -1
  36. package/dist/ChipLink.d.ts +1 -1
  37. package/dist/ChipLink.js +2 -2
  38. package/dist/{ChipRemovable-DBjwt0CH.d.ts → ChipRemovable-CCwSQTAL.d.ts} +2 -2
  39. package/dist/ChipRemovable.d.ts +1 -1
  40. package/dist/ChipRemovable.js +3 -3
  41. package/dist/{ChipSelectable-CMJNcE4U.d.ts → ChipSelectable-BQ3VLVi5.d.ts} +1 -1
  42. package/dist/ChipSelectable.d.ts +1 -1
  43. package/dist/ChipSelectable.js +2 -2
  44. package/dist/{Dialog-BlDd4T2u.js → Dialog-BYpzTprV.js} +2 -2
  45. package/dist/Dialog.d.ts +3 -3
  46. package/dist/Dialog.js +3 -3
  47. package/dist/{Dropdown-BLxSIe6p.js → Dropdown-C4CgE4E-.js} +5 -5
  48. package/dist/Dropdown.d.ts +6 -6
  49. package/dist/Dropdown.js +8 -8
  50. package/dist/{FileInput-DntYrpZ-.js → FileInput-nsnSQCaU.js} +8 -6
  51. package/dist/FileInput.d.ts +6 -6
  52. package/dist/FileInput.js +6 -6
  53. package/dist/{Icon-Op80LrrO.d.ts → Icon-CUfh3eb3.d.ts} +1 -1
  54. package/dist/{Icon-CbZXpyHU.js → Icon-D8HTPEFH.js} +1 -1
  55. package/dist/Icon.d.ts +1 -1
  56. package/dist/Icon.js +2 -2
  57. package/dist/{Input-DBXX7ev8.js → Input-OrILqlax.js} +2 -2
  58. package/dist/{Input-CeaAOB4p.d.ts → Input-fEiQvGDF.d.ts} +3 -3
  59. package/dist/Input.d.ts +1 -1
  60. package/dist/Input.js +3 -3
  61. package/dist/{LeuElement-k4RjIeoG.js → LeuElement-C_lcHzQI.js} +1 -1
  62. package/dist/{Menu-Cu8eIF1T.js → Menu-CFLCnI34.js} +2 -2
  63. package/dist/{Menu-CQdx1ef3.d.ts → Menu-Z2b7dsB5.d.ts} +2 -2
  64. package/dist/Menu.d.ts +1 -1
  65. package/dist/Menu.js +4 -4
  66. package/dist/{MenuItem-Cs3KFhJm.js → MenuItem-ICjLCGim.js} +2 -2
  67. package/dist/{MenuItem-QcgnRk_7.d.ts → MenuItem-LY4TRIho.d.ts} +2 -2
  68. package/dist/MenuItem.d.ts +1 -1
  69. package/dist/MenuItem.js +3 -3
  70. package/dist/{Message-C6Zlk_2p.js → Message-Dw5D_0i1.js} +2 -2
  71. package/dist/Message.d.ts +2 -2
  72. package/dist/Message.js +3 -3
  73. package/dist/{Pagination-CqkHh-Vd.d.ts → Pagination-9eZ8WMvR.d.ts} +4 -4
  74. package/dist/{Pagination-CB2eVlXk.js → Pagination-D1tP5FrM.js} +4 -4
  75. package/dist/Pagination.d.ts +1 -1
  76. package/dist/Pagination.js +6 -6
  77. package/dist/{Placeholder-DHMexMhK.js → Placeholder-CnGzCZ5-.js} +1 -1
  78. package/dist/Placeholder.d.ts +1 -1
  79. package/dist/Placeholder.js +2 -2
  80. package/dist/{Popup-Btgm2a3D.d.ts → Popup-B5iDSLIO.d.ts} +1 -1
  81. package/dist/{Popup-8jhVy8gB.js → Popup-BiN_tZDN.js} +1 -1
  82. package/dist/Popup.d.ts +1 -1
  83. package/dist/Popup.js +2 -2
  84. package/dist/{ProgressBar-CG0_lHfS.js → ProgressBar-BfJo_KyU.js} +1 -1
  85. package/dist/ProgressBar.d.ts +1 -1
  86. package/dist/ProgressBar.js +2 -2
  87. package/dist/{Radio-DG3xqP3s.js → Radio-CV7vuQUj.js} +1 -1
  88. package/dist/Radio.d.ts +1 -1
  89. package/dist/Radio.js +2 -2
  90. package/dist/{RadioGroup-BKCp9ICX.js → RadioGroup-C3XWSScc.js} +2 -2
  91. package/dist/RadioGroup.d.ts +1 -1
  92. package/dist/RadioGroup.js +3 -3
  93. package/dist/{Range-7LrESv4K.js → Range-C8RVrIM9.js} +1 -1
  94. package/dist/Range.d.ts +1 -1
  95. package/dist/Range.js +2 -2
  96. package/dist/{ScrollTop-CJJsfniA.js → ScrollTop-B_TJ_k4m.js} +3 -3
  97. package/dist/ScrollTop.d.ts +3 -3
  98. package/dist/ScrollTop.js +5 -5
  99. package/dist/{Select-CxEDXIBn.js → Select-CbPTrL3G.js} +7 -8
  100. package/dist/Select.d.ts +9 -9
  101. package/dist/Select.js +9 -9
  102. package/dist/{Spinner-VhKfzI3Q.js → Spinner-ChKJQJTN.js} +1 -1
  103. package/dist/{Spinner-CrM1enM0.d.ts → Spinner-DHYaX6-Y.d.ts} +1 -1
  104. package/dist/Spinner.d.ts +1 -1
  105. package/dist/Spinner.js +2 -2
  106. package/dist/Tab-BJbzY1xd.js +117 -0
  107. package/dist/Tab-CN97q0nj.d.ts +30 -0
  108. package/dist/Tab.d.ts +2 -0
  109. package/dist/Tab.js +3 -0
  110. package/dist/TabGroup-BIaCHrKR.js +248 -0
  111. package/dist/TabGroup.d.ts +64 -0
  112. package/dist/TabGroup.js +5 -0
  113. package/dist/TabPanel-CTyw410b.js +65 -0
  114. package/dist/TabPanel-DQgWP7LO.d.ts +26 -0
  115. package/dist/TabPanel.d.ts +2 -0
  116. package/dist/TabPanel.js +3 -0
  117. package/dist/{Table-rg_JCtsA.js → Table-D3QmePJd.js} +3 -3
  118. package/dist/Table.d.ts +3 -3
  119. package/dist/Table.js +7 -7
  120. package/dist/{Tag-BROUaDAZ.js → Tag-nUnWtHYy.js} +1 -1
  121. package/dist/Tag.d.ts +1 -1
  122. package/dist/Tag.js +2 -2
  123. package/dist/{VisuallyHidden-OeQvhxYn.d.ts → VisuallyHidden-CB7aRJzF.d.ts} +1 -1
  124. package/dist/{VisuallyHidden-Co_txzxB.js → VisuallyHidden-DF2q9pTa.js} +1 -1
  125. package/dist/VisuallyHidden.d.ts +1 -1
  126. package/dist/VisuallyHidden.js +2 -2
  127. package/dist/index.d.ts +14 -14
  128. package/dist/index.js +30 -30
  129. package/dist/leu-accordion.js +2 -2
  130. package/dist/leu-button-group.js +5 -5
  131. package/dist/leu-button.d.ts +1 -1
  132. package/dist/leu-button.js +4 -4
  133. package/dist/leu-chart-wrapper.js +3 -3
  134. package/dist/leu-checkbox-group.js +4 -4
  135. package/dist/leu-checkbox.js +3 -3
  136. package/dist/leu-chip-group.d.ts +1 -1
  137. package/dist/leu-chip-group.js +3 -3
  138. package/dist/leu-chip-link.d.ts +1 -1
  139. package/dist/leu-chip-link.js +2 -2
  140. package/dist/leu-chip-removable.d.ts +1 -1
  141. package/dist/leu-chip-removable.js +3 -3
  142. package/dist/leu-chip-selectable.d.ts +1 -1
  143. package/dist/leu-chip-selectable.js +2 -2
  144. package/dist/leu-dialog.js +3 -3
  145. package/dist/leu-dropdown.js +8 -8
  146. package/dist/leu-file-input.js +6 -6
  147. package/dist/leu-icon.d.ts +1 -1
  148. package/dist/leu-icon.js +2 -2
  149. package/dist/leu-input.d.ts +1 -1
  150. package/dist/leu-input.js +3 -3
  151. package/dist/leu-menu-item.d.ts +1 -1
  152. package/dist/leu-menu-item.js +3 -3
  153. package/dist/leu-menu.d.ts +1 -1
  154. package/dist/leu-menu.js +4 -4
  155. package/dist/leu-message.js +3 -3
  156. package/dist/leu-pagination.d.ts +1 -1
  157. package/dist/leu-pagination.js +6 -6
  158. package/dist/leu-placeholder.js +2 -2
  159. package/dist/leu-popup.d.ts +1 -1
  160. package/dist/leu-popup.js +2 -2
  161. package/dist/leu-progress-bar.js +2 -2
  162. package/dist/leu-radio-group.js +3 -3
  163. package/dist/leu-radio.js +2 -2
  164. package/dist/leu-range.js +2 -2
  165. package/dist/leu-scroll-top.js +5 -5
  166. package/dist/leu-select.js +9 -9
  167. package/dist/leu-spinner.d.ts +1 -1
  168. package/dist/leu-spinner.js +2 -2
  169. package/dist/leu-tab-group.d.ts +10 -0
  170. package/dist/leu-tab-group.js +8 -0
  171. package/dist/leu-tab-panel.d.ts +10 -0
  172. package/dist/leu-tab-panel.js +6 -0
  173. package/dist/leu-tab.d.ts +10 -0
  174. package/dist/leu-tab.js +6 -0
  175. package/dist/leu-table.js +7 -7
  176. package/dist/leu-tag.js +2 -2
  177. package/dist/leu-visually-hidden.d.ts +1 -1
  178. package/dist/leu-visually-hidden.js +2 -2
  179. package/dist/vscode.html-custom-data.json +87 -19
  180. package/dist/vue/index.d.ts +93 -25
  181. package/dist/web-types.json +169 -44
  182. package/package.json +6 -5
  183. package/src/components/button/Button.ts +45 -30
  184. package/src/components/button/button.css +55 -54
  185. package/src/components/button/stories/button.stories.ts +17 -20
  186. package/src/components/button/test/button.test.ts +46 -0
  187. package/src/components/file-input/FileInput.ts +4 -2
  188. package/src/components/file-input/test/file-input.test.ts +24 -0
  189. package/src/components/select/Select.ts +0 -1
  190. package/src/components/tab/Tab.ts +72 -0
  191. package/src/components/tab/TabGroup.ts +267 -0
  192. package/src/components/tab/TabPanel.ts +59 -0
  193. package/src/components/tab/leu-tab-group.ts +11 -0
  194. package/src/components/tab/leu-tab-panel.ts +11 -0
  195. package/src/components/tab/leu-tab.ts +11 -0
  196. package/src/components/tab/stories/tab.stories.ts +97 -0
  197. package/src/components/tab/tab-group.css +63 -0
  198. package/src/components/tab/tab-panel.css +10 -0
  199. package/src/components/tab/tab.css +54 -0
  200. package/src/components/tab/test/tab-group.test.ts +426 -0
  201. package/src/components/tab/test/tab-panel.test.ts +102 -0
  202. package/src/components/tab/test/tab.test.ts +139 -0
  203. package/tsconfig.json +1 -0
  204. /package/dist/{FormAssociatedMixin-Cc74LjbC.d.ts → FormAssociatedMixin-Cw7LsSUE.d.ts} +0 -0
  205. /package/dist/{LeuElement-pJFU18Xm.d.ts → LeuElement-DK1jntuu.d.ts} +0 -0
  206. /package/dist/{hasSlotController-DWPyZ52b.d.ts → hasSlotController-BjKyhJm-.d.ts} +0 -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.27.0"
2
+ ".": "0.28.1"
3
3
  }
@@ -5,7 +5,6 @@ export default defineMain({
5
5
  stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
6
6
  addons: [
7
7
  "@storybook/addon-designs",
8
- "@whitespace/storybook-addon-html",
9
8
  "@storybook/addon-a11y",
10
9
  "@storybook/addon-docs",
11
10
  ],
@@ -20,6 +19,7 @@ export default defineMain({
20
19
  ${head}
21
20
  <link rel="stylesheet" href="fonts.css" />
22
21
  <link rel="stylesheet" href="theme.css" />
22
+ <link rel="stylesheet" href="global.css" />
23
23
  `
24
24
  },
25
25
  async viteFinal(config) {
@@ -1,11 +1,12 @@
1
- /** @type { import('@storybook/web-components').Preview } */
2
-
3
- import { setCustomElementsManifest } from "@storybook/web-components-vite"
1
+ import {
2
+ setCustomElementsManifest,
3
+ type Preview,
4
+ } from "@storybook/web-components-vite"
4
5
  import customElemenents from "../dist/custom-elements.json"
5
6
 
6
7
  setCustomElementsManifest(customElemenents)
7
8
 
8
- const preview = {
9
+ const preview: Preview = {
9
10
  tags: ["autodocs"],
10
11
 
11
12
  parameters: {
@@ -15,6 +16,7 @@ const preview = {
15
16
  color: /(background|color)$/i,
16
17
  },
17
18
  },
19
+ docs: { codePanel: true, source: { language: "html" } },
18
20
  options: {
19
21
  storySort: {
20
22
  order: [
@@ -0,0 +1,5 @@
1
+ p {
2
+ font: var(--leu-t-curve-regular-regular-font);
3
+ margin: 0 0 var(--leu-t-curve-regular-regular-spacing) 0;
4
+ color: var(--leu-color-black-60);
5
+ }
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,35 @@
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
+
10
+ ## [0.28.0](https://github.com/statistikZH/leu/compare/leu-v0.27.0...leu-v0.28.0) (2026-04-09)
11
+
12
+
13
+ ### ⚠ BREAKING CHANGES
14
+
15
+ * **button:** The `fluid` property is removed. The underlying <button> or <a> element now takes up the whole width of the host element. The width of the host element can be controlled with css from the outside. The only exception are configurations that only show an icon and therefore should be displayed with an aspect ratio of 1.
16
+
17
+ ### Features
18
+
19
+ * **button:** add href property so that the component can be used as a link ([18be699](https://github.com/statistikZH/leu/commit/18be6998e9faa21254717f429c79ac72275bd428))
20
+ * **tabs:** add leu-tab-group, leu-tab and leu-tab-panel components ([9565a9f](https://github.com/statistikZH/leu/commit/9565a9f27aa1bef2daf097a93adee525ef19f040))
21
+
22
+
23
+ ### Bug Fixes
24
+
25
+ * fix vulnerabilities ([f22cf81](https://github.com/statistikZH/leu/commit/f22cf815dc4607b318751dba8987baa36422c8a6))
26
+ * **select:** remove deprecated fluid property from leu-button ([18be699](https://github.com/statistikZH/leu/commit/18be6998e9faa21254717f429c79ac72275bd428))
27
+
28
+
29
+ ### Code Refactoring
30
+
31
+ * **button:** remove `fluid` property ([18be699](https://github.com/statistikZH/leu/commit/18be6998e9faa21254717f429c79ac72275bd428))
32
+
3
33
  ## [0.27.0](https://github.com/statistikZH/leu/compare/leu-v0.26.0...leu-v0.27.0) (2026-04-02)
4
34
 
5
35
 
@@ -1,4 +1,4 @@
1
- import { t as LeuElement } from "./LeuElement-k4RjIeoG.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";
@@ -1,4 +1,4 @@
1
- import { t as LeuElement } from "./LeuElement-pJFU18Xm.js";
1
+ import { t as LeuElement } from "./LeuElement-DK1jntuu.js";
2
2
  import * as lit_html0 from "lit-html";
3
3
 
4
4
  //#region src/components/accordion/Accordion.d.ts
package/dist/Accordion.js CHANGED
@@ -1,3 +1,3 @@
1
- import "./LeuElement-k4RjIeoG.js";
2
- import { t as LeuAccordion } from "./Accordion-DLsqXcK8.js";
1
+ import "./LeuElement-C_lcHzQI.js";
2
+ import { t as LeuAccordion } from "./Accordion-CwkI7sfx.js";
3
3
  export { LeuAccordion };