@statistikzh/leu 0.25.0 → 0.26.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 (125) hide show
  1. package/.release-please-manifest.json +1 -1
  2. package/CHANGELOG.md +7 -0
  3. package/CONTRIBUTING.md +19 -8
  4. package/dist/{Accordion-CDNyrB8d.js → Accordion-B04QkmHz.js} +1 -1
  5. package/dist/Accordion.js +2 -2
  6. package/dist/{Button-DSGPIcjm.d.ts → Button-BgNUxmo_.d.ts} +6 -0
  7. package/dist/{Button-EdS9xr2J.js → Button-BkhqVjug.js} +57 -17
  8. package/dist/Button.d.ts +1 -1
  9. package/dist/Button.js +5 -4
  10. package/dist/{ButtonGroup-BQqf8o_d.js → ButtonGroup-B8U9fDvM.js} +2 -2
  11. package/dist/ButtonGroup.js +6 -5
  12. package/dist/{ChartWrapper-LiNHTNRw.js → ChartWrapper-CSMFwz9e.js} +3 -3
  13. package/dist/ChartWrapper.d.ts +2 -2
  14. package/dist/ChartWrapper.js +3 -3
  15. package/dist/{Checkbox-BtDWmPab.js → Checkbox-Dd1QLpfn.js} +3 -3
  16. package/dist/Checkbox.js +4 -4
  17. package/dist/{CheckboxGroup-C8MbwW9u.js → CheckboxGroup-Bz2eWEFL.js} +2 -2
  18. package/dist/CheckboxGroup.js +5 -5
  19. package/dist/{Chip-Ch09jjYi.js → Chip-XAQIIsXq.js} +1 -1
  20. package/dist/Chip.js +2 -2
  21. package/dist/{ChipGroup-PvqVW-tm.js → ChipGroup-DLqfK2kn.js} +1 -1
  22. package/dist/ChipGroup.js +3 -3
  23. package/dist/ChipLink.js +2 -2
  24. package/dist/ChipRemovable.js +3 -3
  25. package/dist/ChipSelectable.js +2 -2
  26. package/dist/{Dialog-CV1JTkCn.js → Dialog-DHuXR_oo.js} +3 -3
  27. package/dist/Dialog.d.ts +1 -1
  28. package/dist/Dialog.js +3 -3
  29. package/dist/{Dropdown-DpFdFbA1.js → Dropdown-DtFTePbc.js} +6 -6
  30. package/dist/Dropdown.d.ts +2 -2
  31. package/dist/Dropdown.js +9 -8
  32. package/dist/{FileInput-5apX17JT.js → FileInput-b8sbLDPI.js} +5 -5
  33. package/dist/FileInput.d.ts +1 -1
  34. package/dist/FileInput.js +7 -6
  35. package/dist/{Icon-DhAvH0XM.js → Icon-C_yYuynf.js} +1 -1
  36. package/dist/Icon.js +2 -2
  37. package/dist/{Input-CnEz-2dK.js → Input-DEOVocTa.js} +3 -3
  38. package/dist/Input.js +4 -4
  39. package/dist/{LeuElement-B7NJzWwP.js → LeuElement-BeFrgKes.js} +1 -1
  40. package/dist/{Menu-DpiheIPk.js → Menu-BeqqtCw6.js} +2 -2
  41. package/dist/Menu.js +4 -4
  42. package/dist/{MenuItem-CZTqGg5R.js → MenuItem-DVg8-1Bq.js} +2 -2
  43. package/dist/MenuItem.js +3 -3
  44. package/dist/{Message-J4Kj7yHE.js → Message-BhknWvAF.js} +3 -3
  45. package/dist/Message.js +3 -3
  46. package/dist/{Pagination-Be8TcBoC.d.ts → Pagination-CqkHh-Vd.d.ts} +1 -1
  47. package/dist/{Pagination-CWqgusWZ.js → Pagination-DJI5MIi_.js} +4 -4
  48. package/dist/Pagination.d.ts +1 -1
  49. package/dist/Pagination.js +7 -6
  50. package/dist/{Placeholder-DMN6sMbp.js → Placeholder-BJybFwSg.js} +1 -1
  51. package/dist/Placeholder.js +2 -2
  52. package/dist/{Popup-JQjuj26v.js → Popup-DNlm_9AA.js} +1 -1
  53. package/dist/Popup.js +2 -2
  54. package/dist/{ProgressBar-CzN3fqiH.js → ProgressBar-B0wYj1KF.js} +1 -1
  55. package/dist/ProgressBar.js +2 -2
  56. package/dist/{Radio-CX8aCsff.js → Radio-DMCL8c4D.js} +1 -1
  57. package/dist/Radio.js +2 -2
  58. package/dist/{RadioGroup-CgEWQnC4.js → RadioGroup-CM6IyBlq.js} +2 -2
  59. package/dist/RadioGroup.js +3 -3
  60. package/dist/{Range-DoW_ZdKm.js → Range-B72rtfln.js} +1 -1
  61. package/dist/Range.js +2 -2
  62. package/dist/{ScrollTop-DxChetWq.js → ScrollTop-BFAqBVDR.js} +3 -3
  63. package/dist/ScrollTop.d.ts +1 -1
  64. package/dist/ScrollTop.js +6 -5
  65. package/dist/{Select-BCx79gOH.js → Select-vxl3BvD4.js} +8 -8
  66. package/dist/Select.d.ts +2 -2
  67. package/dist/Select.js +10 -9
  68. package/dist/{Spinner-DJR4gv3Y.js → Spinner-DDTqijTO.js} +1 -1
  69. package/dist/Spinner.d.ts +1 -1
  70. package/dist/Spinner.js +2 -2
  71. package/dist/{Table-DZz1ic3j.js → Table-BgCxfBcm.js} +3 -3
  72. package/dist/Table.d.ts +1 -1
  73. package/dist/Table.js +8 -7
  74. package/dist/{Tag-DsZS_8pl.js → Tag-DK2KkPIQ.js} +1 -1
  75. package/dist/Tag.js +2 -2
  76. package/dist/{VisuallyHidden-BkllVjlz.js → VisuallyHidden-pll3amXE.js} +1 -1
  77. package/dist/VisuallyHidden.js +2 -2
  78. package/dist/index.d.ts +3 -3
  79. package/dist/index.js +31 -31
  80. package/dist/leu-accordion.js +2 -2
  81. package/dist/leu-button-group.js +6 -5
  82. package/dist/leu-button.d.ts +1 -1
  83. package/dist/leu-button.js +5 -4
  84. package/dist/leu-chart-wrapper.js +3 -3
  85. package/dist/leu-checkbox-group.js +5 -5
  86. package/dist/leu-checkbox.js +4 -4
  87. package/dist/leu-chip-group.js +3 -3
  88. package/dist/leu-chip-link.js +2 -2
  89. package/dist/leu-chip-removable.js +3 -3
  90. package/dist/leu-chip-selectable.js +2 -2
  91. package/dist/leu-dialog.js +3 -3
  92. package/dist/leu-dropdown.js +9 -8
  93. package/dist/leu-file-input.js +7 -6
  94. package/dist/leu-icon.js +2 -2
  95. package/dist/leu-input.js +4 -4
  96. package/dist/leu-menu-item.js +3 -3
  97. package/dist/leu-menu.js +4 -4
  98. package/dist/leu-message.js +3 -3
  99. package/dist/leu-pagination.d.ts +1 -1
  100. package/dist/leu-pagination.js +7 -6
  101. package/dist/leu-placeholder.js +2 -2
  102. package/dist/leu-popup.js +2 -2
  103. package/dist/leu-progress-bar.js +2 -2
  104. package/dist/leu-radio-group.js +3 -3
  105. package/dist/leu-radio.js +2 -2
  106. package/dist/leu-range.js +2 -2
  107. package/dist/leu-scroll-top.js +6 -5
  108. package/dist/leu-select.js +10 -9
  109. package/dist/leu-spinner.d.ts +1 -1
  110. package/dist/leu-spinner.js +2 -2
  111. package/dist/leu-table.js +8 -7
  112. package/dist/leu-tag.js +2 -2
  113. package/dist/leu-visually-hidden.js +2 -2
  114. package/dist/vscode.html-custom-data.json +5 -0
  115. package/dist/vue/index.d.ts +2 -0
  116. package/dist/web-types.json +11 -1
  117. package/package.json +1 -1
  118. package/src/components/button/Button.ts +15 -3
  119. package/src/components/button/button.css +37 -9
  120. package/src/components/button/stories/button.stories.ts +23 -0
  121. package/src/components/button/test/button.test.ts +30 -3
  122. /package/dist/{FormAssociatedMixin-BbFlza53.js → FormAssociatedMixin-DLPvFtbT.js} +0 -0
  123. /package/dist/{Spinner-CMo_o6Fy.d.ts → Spinner-CrM1enM0.d.ts} +0 -0
  124. /package/dist/{hasSlotController-DjdfnOQp.js → hasSlotController-DSBCVzPD.js} +0 -0
  125. /package/dist/{hasSlotController-BLtZurRh.d.ts → hasSlotController-DWPyZ52b.d.ts} +0 -0
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Chip-Ch09jjYi.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Chip-XAQIIsXq.js";
3
3
  import { LeuChipLink } from "./ChipLink.js";
4
4
  //#region src/components/chip/leu-chip-link.ts
5
5
  LeuChipLink.define("leu-chip-link");
@@ -1,6 +1,6 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./Chip-Ch09jjYi.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./Chip-XAQIIsXq.js";
4
4
  import { LeuChipRemovable } from "./ChipRemovable.js";
5
5
  //#region src/components/chip/leu-chip-removable.ts
6
6
  LeuChipRemovable.define("leu-chip-removable");
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Chip-Ch09jjYi.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Chip-XAQIIsXq.js";
3
3
  import { LeuChipSelectable } from "./ChipSelectable.js";
4
4
  //#region src/components/chip/leu-chip-selectable.ts
5
5
  LeuChipSelectable.define("leu-chip-selectable");
@@ -1,6 +1,6 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import { t as LeuDialog } from "./Dialog-CV1JTkCn.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import { t as LeuDialog } from "./Dialog-DHuXR_oo.js";
4
4
  //#region src/components/dialog/leu-dialog.ts
5
5
  LeuDialog.define("leu-dialog");
6
6
  //#endregion
@@ -1,11 +1,12 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./Button-EdS9xr2J.js";
4
- import "./FormAssociatedMixin-BbFlza53.js";
5
- import "./MenuItem-CZTqGg5R.js";
6
- import "./Menu-DpiheIPk.js";
7
- import "./Popup-JQjuj26v.js";
8
- import { t as LeuDropdown } from "./Dropdown-DpFdFbA1.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./Spinner-DDTqijTO.js";
4
+ import "./Button-BkhqVjug.js";
5
+ import "./FormAssociatedMixin-DLPvFtbT.js";
6
+ import "./MenuItem-DVg8-1Bq.js";
7
+ import "./Menu-BeqqtCw6.js";
8
+ import "./Popup-DNlm_9AA.js";
9
+ import { t as LeuDropdown } from "./Dropdown-DtFTePbc.js";
9
10
  //#region src/components/dropdown/leu-dropdown.ts
10
11
  LeuDropdown.define("leu-dropdown");
11
12
  //#endregion
@@ -1,9 +1,10 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./Button-EdS9xr2J.js";
4
- import "./FormAssociatedMixin-BbFlza53.js";
5
- import { t as LeuFileInput } from "./FileInput-5apX17JT.js";
6
- import "./VisuallyHidden-BkllVjlz.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./Spinner-DDTqijTO.js";
4
+ import "./Button-BkhqVjug.js";
5
+ import "./FormAssociatedMixin-DLPvFtbT.js";
6
+ import { t as LeuFileInput } from "./FileInput-b8sbLDPI.js";
7
+ import "./VisuallyHidden-pll3amXE.js";
7
8
  //#region src/components/file-input/leu-file-input.ts
8
9
  LeuFileInput.define("leu-file-input");
9
10
  //#endregion
package/dist/leu-icon.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuIcon } from "./Icon-DhAvH0XM.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuIcon } from "./Icon-C_yYuynf.js";
3
3
  //#region src/components/icon/leu-icon.ts
4
4
  LeuIcon.define("leu-icon");
5
5
  //#endregion
package/dist/leu-input.js CHANGED
@@ -1,7 +1,7 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./FormAssociatedMixin-BbFlza53.js";
4
- import { t as LeuInput } from "./Input-CnEz-2dK.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./FormAssociatedMixin-DLPvFtbT.js";
4
+ import { t as LeuInput } from "./Input-DEOVocTa.js";
5
5
  //#region src/components/input/leu-input.ts
6
6
  LeuInput.define("leu-input");
7
7
  //#endregion
@@ -1,6 +1,6 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import { t as LeuMenuItem } from "./MenuItem-CZTqGg5R.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import { t as LeuMenuItem } from "./MenuItem-DVg8-1Bq.js";
4
4
  //#region src/components/menu/leu-menu-item.ts
5
5
  LeuMenuItem.define("leu-menu-item");
6
6
  //#endregion
package/dist/leu-menu.js CHANGED
@@ -1,7 +1,7 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./MenuItem-CZTqGg5R.js";
4
- import { t as LeuMenu } from "./Menu-DpiheIPk.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./MenuItem-DVg8-1Bq.js";
4
+ import { t as LeuMenu } from "./Menu-BeqqtCw6.js";
5
5
  //#region src/components/menu/leu-menu.ts
6
6
  LeuMenu.define("leu-menu");
7
7
  //#endregion
@@ -1,6 +1,6 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import { t as LeuMessage } from "./Message-J4Kj7yHE.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import { t as LeuMessage } from "./Message-BhknWvAF.js";
4
4
  //#region src/components/message/leu-message.ts
5
5
  LeuMessage.define("leu-message");
6
6
  //#endregion
@@ -1,4 +1,4 @@
1
- import { t as LeuPagination } from "./Pagination-Be8TcBoC.js";
1
+ import { t as LeuPagination } from "./Pagination-CqkHh-Vd.js";
2
2
 
3
3
  //#region src/components/pagination/leu-pagination.d.ts
4
4
  declare global {
@@ -1,9 +1,10 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./Button-EdS9xr2J.js";
4
- import "./FormAssociatedMixin-BbFlza53.js";
5
- import "./VisuallyHidden-BkllVjlz.js";
6
- import { t as LeuPagination } from "./Pagination-CWqgusWZ.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./Spinner-DDTqijTO.js";
4
+ import "./Button-BkhqVjug.js";
5
+ import "./FormAssociatedMixin-DLPvFtbT.js";
6
+ import "./VisuallyHidden-pll3amXE.js";
7
+ import { t as LeuPagination } from "./Pagination-DJI5MIi_.js";
7
8
  //#region src/components/pagination/leu-pagination.ts
8
9
  LeuPagination.define("leu-pagination");
9
10
  //#endregion
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuPlaceholder } from "./Placeholder-DMN6sMbp.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuPlaceholder } from "./Placeholder-BJybFwSg.js";
3
3
  //#region src/components/placeholder/leu-placeholder.ts
4
4
  LeuPlaceholder.define("leu-placeholder");
5
5
  //#endregion
package/dist/leu-popup.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuPopup } from "./Popup-JQjuj26v.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuPopup } from "./Popup-DNlm_9AA.js";
3
3
  //#region src/components/popup/leu-popup.ts
4
4
  LeuPopup.define("leu-popup");
5
5
  //#endregion
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuProgressBar } from "./ProgressBar-CzN3fqiH.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuProgressBar } from "./ProgressBar-B0wYj1KF.js";
3
3
  //#region src/components/progress-bar/leu-progress-bar.ts
4
4
  LeuProgressBar.define("leu-progress-bar");
5
5
  //#endregion
@@ -1,6 +1,6 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Radio-CX8aCsff.js";
3
- import { t as LeuRadioGroup } from "./RadioGroup-CgEWQnC4.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Radio-DMCL8c4D.js";
3
+ import { t as LeuRadioGroup } from "./RadioGroup-CM6IyBlq.js";
4
4
  //#region src/components/radio/leu-radio-group.ts
5
5
  LeuRadioGroup.define("leu-radio-group");
6
6
  //#endregion
package/dist/leu-radio.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuRadio } from "./Radio-CX8aCsff.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuRadio } from "./Radio-DMCL8c4D.js";
3
3
  //#region src/components/radio/leu-radio.ts
4
4
  LeuRadio.define("leu-radio");
5
5
  //#endregion
package/dist/leu-range.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuRange } from "./Range-DoW_ZdKm.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuRange } from "./Range-B72rtfln.js";
3
3
  //#region src/components/range/leu-range.ts
4
4
  LeuRange.define("leu-range");
5
5
  //#endregion
@@ -1,8 +1,9 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./Button-EdS9xr2J.js";
4
- import "./FormAssociatedMixin-BbFlza53.js";
5
- import { t as LeuScrollTop } from "./ScrollTop-DxChetWq.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./Spinner-DDTqijTO.js";
4
+ import "./Button-BkhqVjug.js";
5
+ import "./FormAssociatedMixin-DLPvFtbT.js";
6
+ import { t as LeuScrollTop } from "./ScrollTop-BFAqBVDR.js";
6
7
  //#region src/components/scroll-top/leu-scroll-top.ts
7
8
  LeuScrollTop.define("leu-scroll-top");
8
9
  //#endregion
@@ -1,12 +1,13 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./Button-EdS9xr2J.js";
4
- import "./FormAssociatedMixin-BbFlza53.js";
5
- import "./MenuItem-CZTqGg5R.js";
6
- import "./Menu-DpiheIPk.js";
7
- import "./Popup-JQjuj26v.js";
8
- import "./Input-CnEz-2dK.js";
9
- import { t as LeuSelect } from "./Select-BCx79gOH.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./Spinner-DDTqijTO.js";
4
+ import "./Button-BkhqVjug.js";
5
+ import "./FormAssociatedMixin-DLPvFtbT.js";
6
+ import "./MenuItem-DVg8-1Bq.js";
7
+ import "./Menu-BeqqtCw6.js";
8
+ import "./Popup-DNlm_9AA.js";
9
+ import "./Input-DEOVocTa.js";
10
+ import { t as LeuSelect } from "./Select-vxl3BvD4.js";
10
11
  //#region src/components/select/leu-select.ts
11
12
  LeuSelect.define("leu-select");
12
13
  //#endregion
@@ -1,4 +1,4 @@
1
- import { t as LeuSpinner } from "./Spinner-CMo_o6Fy.js";
1
+ import { t as LeuSpinner } from "./Spinner-CrM1enM0.js";
2
2
 
3
3
  //#region src/components/spinner/leu-spinner.d.ts
4
4
  declare global {
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuSpinner } from "./Spinner-DJR4gv3Y.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuSpinner } from "./Spinner-DDTqijTO.js";
3
3
  //#region src/components/spinner/leu-spinner.ts
4
4
  LeuSpinner.define("leu-spinner");
5
5
  //#endregion
package/dist/leu-table.js CHANGED
@@ -1,10 +1,11 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import "./Icon-DhAvH0XM.js";
3
- import "./Button-EdS9xr2J.js";
4
- import "./FormAssociatedMixin-BbFlza53.js";
5
- import "./VisuallyHidden-BkllVjlz.js";
6
- import "./Pagination-CWqgusWZ.js";
7
- import { t as LeuTable } from "./Table-DZz1ic3j.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import "./Icon-C_yYuynf.js";
3
+ import "./Spinner-DDTqijTO.js";
4
+ import "./Button-BkhqVjug.js";
5
+ import "./FormAssociatedMixin-DLPvFtbT.js";
6
+ import "./VisuallyHidden-pll3amXE.js";
7
+ import "./Pagination-DJI5MIi_.js";
8
+ import { t as LeuTable } from "./Table-BgCxfBcm.js";
8
9
  //#region src/components/table/leu-table.ts
9
10
  LeuTable.define("leu-table");
10
11
  //#endregion
package/dist/leu-tag.js CHANGED
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuTag } from "./Tag-DsZS_8pl.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuTag } from "./Tag-DK2KkPIQ.js";
3
3
  //#region src/components/tag/leu-tag.ts
4
4
  LeuTag.define("leu-tag");
5
5
  //#endregion
@@ -1,5 +1,5 @@
1
- import "./LeuElement-B7NJzWwP.js";
2
- import { t as LeuVisuallyHidden } from "./VisuallyHidden-BkllVjlz.js";
1
+ import "./LeuElement-BeFrgKes.js";
2
+ import { t as LeuVisuallyHidden } from "./VisuallyHidden-pll3amXE.js";
3
3
  //#region src/components/visually-hidden/leu-visually-hidden.ts
4
4
  LeuVisuallyHidden.define("leu-visually-hidden");
5
5
  //#endregion
@@ -100,6 +100,11 @@
100
100
  "name": "fluid",
101
101
  "description": "Alters the shape of the button to be full width of its parent container",
102
102
  "values": []
103
+ },
104
+ {
105
+ "name": "loading",
106
+ "description": "Replaces the content with a spinner",
107
+ "values": []
103
108
  }
104
109
  ],
105
110
  "references": [
@@ -72,6 +72,8 @@ If it is set, the icon will either show an expanded or collapsed state. */
72
72
  expanded?: LeuButton["expanded"];
73
73
  /** Alters the shape of the button to be full width of its parent container */
74
74
  fluid?: LeuButton["fluid"];
75
+ /** Replaces the content with a spinner */
76
+ loading?: LeuButton["loading"];
75
77
  };
76
78
 
77
79
  type LeuButtonGroupProps = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "@statistikzh/leu",
4
- "version": "0.25.0",
4
+ "version": "0.26.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -133,6 +133,11 @@
133
133
  "name": "fluid",
134
134
  "description": "Alters the shape of the button to be full width of its parent container",
135
135
  "value": { "type": "boolean", "default": "false" }
136
+ },
137
+ {
138
+ "name": "loading",
139
+ "description": "Replaces the content with a spinner",
140
+ "value": { "type": "boolean", "default": "false" }
136
141
  }
137
142
  ],
138
143
  "slots": [
@@ -206,6 +211,11 @@
206
211
  "name": "fluid",
207
212
  "description": "Alters the shape of the button to be full width of its parent container",
208
213
  "type": "boolean"
214
+ },
215
+ {
216
+ "name": "loading",
217
+ "description": "Replaces the content with a spinner",
218
+ "type": "boolean"
209
219
  }
210
220
  ],
211
221
  "events": []
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "UI component library of the canton of zurich",
4
4
  "license": "MIT",
5
5
  "author": "statistikzh",
6
- "version": "0.25.0",
6
+ "version": "0.26.0",
7
7
  "type": "module",
8
8
  "main": "dist/index.js",
9
9
  "module": "dist/index.js",
@@ -4,6 +4,7 @@ import { ifDefined } from "lit/directives/if-defined.js"
4
4
  import { property, query } from "lit/decorators.js"
5
5
 
6
6
  import { LeuIcon } from "../icon/Icon.js"
7
+ import { LeuSpinner } from "../spinner/Spinner.js"
7
8
  import { LeuElement } from "../../lib/LeuElement.js"
8
9
  import { HasSlotController } from "../../lib/hasSlotController.js"
9
10
  import { ARIA_CHECKED_ROLES, ARIA_SELECTED_ROLES } from "../../lib/a11y.js"
@@ -21,6 +22,7 @@ import { FormAssociatedMixin } from "../../lib/mixins/FormAssociatedMixin.js"
21
22
  export class LeuButton extends FormAssociatedMixin(LeuElement) {
22
23
  static dependencies = {
23
24
  "leu-icon": LeuIcon,
25
+ "leu-spinner": LeuSpinner,
24
26
  }
25
27
 
26
28
  static styles = [LeuElement.styles, styles]
@@ -110,6 +112,12 @@ export class LeuButton extends FormAssociatedMixin(LeuElement) {
110
112
  @property({ type: Boolean, reflect: true })
111
113
  fluid: boolean = false
112
114
 
115
+ /**
116
+ * Replaces the content with a spinner
117
+ */
118
+ @property({ type: Boolean, reflect: true })
119
+ loading: boolean = false
120
+
113
121
  @query(".button")
114
122
  private button!: HTMLButtonElement
115
123
 
@@ -166,7 +174,7 @@ export class LeuButton extends FormAssociatedMixin(LeuElement) {
166
174
  setFormValue() {}
167
175
 
168
176
  protected handleClick(e: PointerEvent) {
169
- if (this.disabled) {
177
+ if (this.disabled || this.loading) {
170
178
  e.preventDefault()
171
179
  e.stopImmediatePropagation()
172
180
  return
@@ -228,7 +236,9 @@ export class LeuButton extends FormAssociatedMixin(LeuElement) {
228
236
  "icon-after": hasIconAfter,
229
237
  round: this.round,
230
238
  active: this.active,
239
+ disabled: this.disabled,
231
240
  inverted: this.inverted,
241
+ loading: this.loading,
232
242
  [this.variant]: true,
233
243
  [this.size]: true,
234
244
  }
@@ -241,7 +251,7 @@ export class LeuButton extends FormAssociatedMixin(LeuElement) {
241
251
  aria-expanded=${ifDefined(this.expanded)}
242
252
  role=${ifDefined(aria.role)}
243
253
  class=${classMap(cssClasses)}
244
- ?disabled=${this.disabled}
254
+ ?disabled=${this.disabled || this.loading}
245
255
  type=${this.type}
246
256
  >
247
257
  <div class="icon-wrapper icon-wrapper--before">
@@ -251,7 +261,9 @@ export class LeuButton extends FormAssociatedMixin(LeuElement) {
251
261
  <div class="icon-wrapper icon-wrapper--after">
252
262
  <slot name="after" class="icon-wrapper__slot"></slot>
253
263
  </div>
254
-
264
+ ${this.loading
265
+ ? html`<leu-spinner class="spinner"></leu-spinner>`
266
+ : nothing}
255
267
  ${this.renderExpandingIcon()}
256
268
  </button>
257
269
  `
@@ -2,7 +2,12 @@
2
2
  display: inline-block;
3
3
  }
4
4
 
5
+ /*
6
+ * @todo : Disable hover styles for loading state
7
+ */
5
8
  button {
9
+ position: relative;
10
+
6
11
  font-family: var(--leu-font-family-black);
7
12
  text-align: center;
8
13
  appearance: none;
@@ -28,10 +33,14 @@ button.round {
28
33
  border-radius: 50%;
29
34
  }
30
35
 
31
- button:disabled {
36
+ button.disabled {
32
37
  cursor: not-allowed;
33
38
  }
34
39
 
40
+ button.loading {
41
+ cursor: wait;
42
+ }
43
+
35
44
  button:focus-visible {
36
45
  outline: 2px solid var(--leu-color-func-cyan);
37
46
  outline-offset: 2px;
@@ -46,6 +55,10 @@ button.inverted:focus-visible {
46
55
  justify-content: center;
47
56
  }
48
57
 
58
+ button.loading :where(.content, .icon-wrapper) {
59
+ visibility: hidden;
60
+ }
61
+
49
62
  /* size - regular */
50
63
  button.regular {
51
64
  padding: 12px 24px;
@@ -90,7 +103,7 @@ button.primary.active:hover {
90
103
  background: var(--leu-color-black-transp-80);
91
104
  }
92
105
 
93
- button.primary:disabled {
106
+ button.primary.disabled {
94
107
  color: var(--leu-color-black-0);
95
108
  background: var(--leu-color-black-transp-20);
96
109
  }
@@ -115,7 +128,7 @@ button.secondary.active:hover {
115
128
  background: var(--leu-color-black-transp-80);
116
129
  }
117
130
 
118
- button.secondary:disabled {
131
+ button.secondary.disabled {
119
132
  color: var(--leu-color-black-transp-20);
120
133
  background: var(--leu-color-black-transp-5);
121
134
  }
@@ -139,7 +152,7 @@ button.ghost.active {
139
152
  color: var(--leu-color-black-100);
140
153
  }
141
154
 
142
- button.ghost:disabled {
155
+ button.ghost.disabled {
143
156
  color: var(--leu-color-black-20);
144
157
  }
145
158
 
@@ -159,7 +172,7 @@ button.primary.inverted.active {
159
172
  background: var(--leu-color-black-100);
160
173
  }
161
174
 
162
- button.primary.inverted:disabled {
175
+ button.primary.inverted.disabled {
163
176
  color: var(--leu-color-black-40);
164
177
  background: var(--leu-color-white-transp-70);
165
178
  }
@@ -180,7 +193,7 @@ button.secondary.inverted.active {
180
193
  background: var(--leu-color-black-0);
181
194
  }
182
195
 
183
- button.secondary.inverted:disabled {
196
+ button.secondary.inverted.disabled {
184
197
  color: var(--leu-color-white-transp-70);
185
198
  background: var(--leu-color-black-transp-10);
186
199
  }
@@ -198,7 +211,7 @@ button.ghost.inverted.active {
198
211
  color: var(--leu-color-black-0);
199
212
  }
200
213
 
201
- button.ghost.inverted:disabled {
214
+ button.ghost.inverted.disabled {
202
215
  color: var(--leu-color-black-20);
203
216
  }
204
217
 
@@ -249,7 +262,7 @@ button.ghost.inverted:disabled {
249
262
  --_color: var(--leu-color-black-0);
250
263
  }
251
264
 
252
- .ghost:disabled .icon-wrapper {
265
+ .ghost.disabled .icon-wrapper {
253
266
  --_bg: var(--leu-color-black-transp-5);
254
267
  }
255
268
 
@@ -264,7 +277,7 @@ button.ghost.inverted:disabled {
264
277
  --_color: var(--leu-color-black-0);
265
278
  }
266
279
 
267
- .ghost.inverted:disabled .icon-wrapper {
280
+ .ghost.inverted.disabled .icon-wrapper {
268
281
  --_bg: var(--leu-color-black-transp-20);
269
282
  --_color: var(--leu-color-white-transp-70);
270
283
  }
@@ -286,3 +299,18 @@ button.ghost.inverted:disabled {
286
299
  :host([expanded="true"]) .icon-expanded {
287
300
  transform: rotate(180deg);
288
301
  }
302
+
303
+ .spinner {
304
+ --leu-spinner-size: 1.75rem;
305
+ padding: 0;
306
+ position: absolute;
307
+ top: 50%;
308
+ left: 50%;
309
+ transform: translate(-50%, -50%);
310
+ color: currentcolor;
311
+ display: block;
312
+ }
313
+
314
+ button.small .spinner {
315
+ --leu-spinner-size: 1.25rem;
316
+ }
@@ -41,6 +41,7 @@ function Template(args = {}) {
41
41
  ?active=${args.active}
42
42
  ?inverted=${args.inverted}
43
43
  ?disabled=${args.disabled}
44
+ ?loading=${args.loading}
44
45
  @click=${copyContent}
45
46
  >
46
47
  ${args.icon
@@ -87,6 +88,7 @@ Regular.argTypes = {
87
88
  disabled: { control: "boolean" },
88
89
  round: { control: "boolean" },
89
90
  active: { control: "boolean" },
91
+ loading: { control: "boolean" },
90
92
  }
91
93
  Regular.args = {
92
94
  content: "Click Mich...",
@@ -125,6 +127,22 @@ const items = [
125
127
  disabled: true,
126
128
  },
127
129
 
130
+ { content: "Normal", icon: "calendar", iconPosition: "after", loading: true },
131
+ {
132
+ content: "Active",
133
+ icon: "calendar",
134
+ iconPosition: "after",
135
+ active: true,
136
+ loading: true,
137
+ },
138
+ {
139
+ content: "Disabled",
140
+ icon: "calendar",
141
+ iconPosition: "after",
142
+ disabled: true,
143
+ loading: true,
144
+ },
145
+
128
146
  { icon: "calendar" },
129
147
  { icon: "calendar", active: true },
130
148
  { icon: "calendar", disabled: true },
@@ -132,6 +150,10 @@ const items = [
132
150
  { icon: "calendar", round: true },
133
151
  { icon: "calendar", round: true, active: true },
134
152
  { icon: "calendar", round: true, disabled: true },
153
+
154
+ { icon: "calendar", round: true, loading: true },
155
+ { icon: "calendar", round: true, active: true, loading: true },
156
+ { icon: "calendar", round: true, disabled: true, loading: true },
135
157
  ]
136
158
 
137
159
  const ghostItems = [
@@ -309,6 +331,7 @@ function TemplateOverview() {
309
331
  ?active=${item.active}
310
332
  ?disabled=${item.disabled}
311
333
  ?inverted=${group.inverted}
334
+ ?loading=${item.loading}
312
335
  @click=${copyContent}
313
336
  >
314
337
  ${item.icon