@statistikzh/leu 0.28.0 → 0.28.2
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.
- package/dist/{Accordion-D9kLsiBW.js → Accordion-CaDTUDJG.js} +1 -1
- package/dist/Accordion.js +2 -2
- package/dist/{Button-DyNVOHCd.js → Button-BF3_6xgs.js} +3 -3
- package/dist/Button.js +4 -4
- package/dist/{ButtonGroup-MEh4vb5a.js → ButtonGroup-grJiWGHI.js} +2 -2
- package/dist/ButtonGroup.js +5 -5
- package/dist/{ChartWrapper-DAl91BIN.js → ChartWrapper-CeolXijF.js} +2 -2
- package/dist/ChartWrapper.js +3 -3
- package/dist/{Checkbox-CGGyUW9U.js → Checkbox-DGUZ1XtB.js} +2 -2
- package/dist/Checkbox.js +3 -3
- package/dist/{CheckboxGroup-DXt5iMdj.js → CheckboxGroup-CGdyk_RP.js} +2 -2
- package/dist/CheckboxGroup.js +4 -4
- package/dist/{Chip-BGs71WGH.js → Chip-BpKH3_Nk.js} +1 -1
- package/dist/Chip.js +2 -2
- package/dist/{ChipGroup-BcGyusP-.js → ChipGroup-dSAMpfy1.js} +1 -1
- package/dist/ChipGroup.js +3 -3
- package/dist/ChipLink.js +2 -2
- package/dist/ChipRemovable.js +3 -3
- package/dist/ChipSelectable.js +2 -2
- package/dist/{Dialog-BzuyL1U3.js → Dialog-CC674l80.js} +2 -2
- package/dist/Dialog.js +3 -3
- package/dist/{Dropdown-plyBTM15.js → Dropdown-B9YTM5N_.js} +5 -5
- package/dist/Dropdown.d.ts +2 -2
- package/dist/Dropdown.js +8 -8
- package/dist/{FileInput-BT3Fe-0J.js → FileInput-D4kyWFkL.js} +8 -6
- package/dist/FileInput.d.ts +1 -1
- package/dist/FileInput.js +6 -6
- package/dist/{Icon-D83qesg5.js → Icon-DOcb_NlX.js} +1 -1
- package/dist/Icon.js +2 -2
- package/dist/{Input-D7zS50oz.js → Input-6Xu1N2sA.js} +2 -2
- package/dist/Input.js +3 -3
- package/dist/{LeuElement-DQI8cqZV.js → LeuElement-C3HedxlQ.js} +1 -1
- package/dist/{Menu-DRU1LiMM.js → Menu-CJtyuUvP.js} +2 -2
- package/dist/{Menu-Z2b7dsB5.d.ts → Menu-txbYINTW.d.ts} +1 -1
- package/dist/Menu.d.ts +1 -1
- package/dist/Menu.js +4 -4
- package/dist/{MenuItem-LY4TRIho.d.ts → MenuItem-9TTOrL0Z.d.ts} +1 -1
- package/dist/{MenuItem-DCttylRO.js → MenuItem-ClSE3auh.js} +2 -2
- package/dist/MenuItem.d.ts +1 -1
- package/dist/MenuItem.js +3 -3
- package/dist/{Message-0NxnKEqw.js → Message-C55ydBaU.js} +2 -2
- package/dist/Message.js +3 -3
- package/dist/{Pagination-CIy7YvWE.js → Pagination-BVwKLcd5.js} +4 -4
- package/dist/Pagination.js +6 -6
- package/dist/{Placeholder-Dol_X5Hp.js → Placeholder-DFNppiVf.js} +1 -1
- package/dist/Placeholder.js +2 -2
- package/dist/{Popup-nJrJHGSy.js → Popup-D91ZiFWh.js} +1 -1
- package/dist/Popup.js +2 -2
- package/dist/{ProgressBar-Dmq9veqU.js → ProgressBar-DQGO2we8.js} +1 -1
- package/dist/ProgressBar.js +2 -2
- package/dist/{Radio-W5ck_IJI.js → Radio-BetZNoUQ.js} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-De5x2YCO.js → RadioGroup-DzW5z_SD.js} +2 -2
- package/dist/RadioGroup.js +3 -3
- package/dist/{Range-NCdfDkeD.js → Range-9ijUzrty.js} +1 -1
- package/dist/Range.js +2 -2
- package/dist/{ScrollTop-DwcNIKmN.js → ScrollTop-uDL4K_C6.js} +3 -3
- package/dist/ScrollTop.js +5 -5
- package/dist/{Select-Bpicra9q.js → Select-ClGNTYfp.js} +7 -7
- package/dist/Select.d.ts +2 -2
- package/dist/Select.js +9 -9
- package/dist/{Spinner-BBiVZxFH.js → Spinner-B7ikVfUZ.js} +1 -1
- package/dist/Spinner.js +2 -2
- package/dist/{Tab-Ce9nrDok.js → Tab-CSHR71IX.js} +1 -1
- package/dist/Tab.js +2 -2
- package/dist/{TabGroup-C-cd4Wcx.js → TabGroup-D7YbKXm8.js} +3 -3
- package/dist/TabGroup.js +4 -4
- package/dist/{TabPanel-BW1ydVBT.js → TabPanel-D_RHF3lv.js} +1 -1
- package/dist/TabPanel.js +2 -2
- package/dist/{Table-DiYqIzBu.js → Table-CdosaNFb.js} +3 -3
- package/dist/Table.js +7 -7
- package/dist/{Tag-Ct8Hhv7W.js → Tag-BQBgkkAs.js} +1 -1
- package/dist/Tag.js +2 -2
- package/dist/{VisuallyHidden-CpYXyuC7.js → VisuallyHidden-CEBTA6hv.js} +1 -1
- package/dist/VisuallyHidden.js +2 -2
- package/dist/custom-elements.json +6445 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.js +30 -30
- package/dist/leu-accordion.js +2 -2
- package/dist/leu-button-group.js +5 -5
- package/dist/leu-button.js +4 -4
- package/dist/leu-chart-wrapper.js +3 -3
- package/dist/leu-checkbox-group.js +4 -4
- package/dist/leu-checkbox.js +3 -3
- package/dist/leu-chip-group.js +3 -3
- package/dist/leu-chip-link.js +2 -2
- package/dist/leu-chip-removable.js +3 -3
- package/dist/leu-chip-selectable.js +2 -2
- package/dist/leu-dialog.js +3 -3
- package/dist/leu-dropdown.js +8 -8
- package/dist/leu-file-input.js +6 -6
- package/dist/leu-icon.js +2 -2
- package/dist/leu-input.js +3 -3
- package/dist/leu-menu-item.d.ts +1 -1
- package/dist/leu-menu-item.js +3 -3
- package/dist/leu-menu.d.ts +1 -1
- package/dist/leu-menu.js +4 -4
- package/dist/leu-message.js +3 -3
- package/dist/leu-pagination.js +6 -6
- package/dist/leu-placeholder.js +2 -2
- package/dist/leu-popup.js +2 -2
- package/dist/leu-progress-bar.js +2 -2
- package/dist/leu-radio-group.js +3 -3
- package/dist/leu-radio.js +2 -2
- package/dist/leu-range.js +2 -2
- package/dist/leu-scroll-top.js +5 -5
- package/dist/leu-select.js +9 -9
- package/dist/leu-spinner.js +2 -2
- package/dist/leu-tab-group.js +4 -4
- package/dist/leu-tab-panel.js +2 -2
- package/dist/leu-tab.js +2 -2
- package/dist/leu-table.js +7 -7
- package/dist/leu-tag.js +2 -2
- package/dist/leu-visually-hidden.js +2 -2
- package/dist/web-types.json +1 -1
- package/package.json +9 -4
- package/.editorconfig +0 -29
- package/.github/workflows/ci.yml +0 -81
- package/.github/workflows/deploy-github-pages.yaml +0 -34
- package/.github/workflows/publish.yml +0 -30
- package/.github/workflows/release-please.yml +0 -19
- package/.husky/commit-msg +0 -1
- package/.husky/pre-commit +0 -1
- package/.nvmrc +0 -1
- package/.prettierignore +0 -2
- package/.release-please-manifest.json +0 -3
- package/.storybook/main.ts +0 -34
- package/.storybook/manager-head.html +0 -1
- package/.storybook/manager.ts +0 -6
- package/.storybook/preview.ts +0 -96
- package/.storybook/static/fonts/Inter-Black.woff2 +0 -0
- package/.storybook/static/fonts/Inter-Regular.woff2 +0 -0
- package/.storybook/static/fonts.css +0 -11
- package/.storybook/static/global.css +0 -5
- package/.storybook/static/logo.svg +0 -19
- package/.storybook/theme.ts +0 -8
- package/CHANGELOG.md +0 -594
- package/CODE_OF_CONDUCT.md +0 -128
- package/CONTRIBUTING.md +0 -42
- package/commitlint.config.cjs +0 -1
- package/custom-elements-manifest.config.js +0 -46
- package/eslint.config.mjs +0 -79
- package/postcss.config.cjs +0 -16
- package/release-please-config.json +0 -9
- package/scripts/generate-component/generate.js +0 -167
- package/scripts/generate-component/templates/[Name].ts +0 -31
- package/scripts/generate-component/templates/[name].css +0 -6
- package/scripts/generate-component/templates/[namespace]-[name].ts +0 -11
- package/scripts/generate-component/templates/stories/[name].stories.ts +0 -26
- package/scripts/generate-component/templates/test/[name].test.ts +0 -23
- package/scripts/postcss-leu-font-styles.cjs +0 -154
- package/src/components/accordion/Accordion.ts +0 -108
- package/src/components/accordion/accordion.css +0 -150
- package/src/components/accordion/leu-accordion.ts +0 -11
- package/src/components/accordion/stories/accordion.stories.ts +0 -62
- package/src/components/accordion/test/accordion.test.ts +0 -118
- package/src/components/button/Button.ts +0 -286
- package/src/components/button/button.css +0 -317
- package/src/components/button/leu-button.ts +0 -11
- package/src/components/button/stories/button.stories.ts +0 -366
- package/src/components/button/test/button.test.ts +0 -417
- package/src/components/button-group/ButtonGroup.ts +0 -97
- package/src/components/button-group/button-group.css +0 -5
- package/src/components/button-group/leu-button-group.ts +0 -11
- package/src/components/button-group/stories/button-group.stories.ts +0 -54
- package/src/components/button-group/test/button-group.test.ts +0 -105
- package/src/components/chart-wrapper/ChartWrapper.ts +0 -78
- package/src/components/chart-wrapper/chart-wrapper.css +0 -87
- package/src/components/chart-wrapper/leu-chart-wrapper.ts +0 -11
- package/src/components/chart-wrapper/stories/chart-wrapper.stories.ts +0 -58
- package/src/components/chart-wrapper/test/chart-wrapper.test.ts +0 -77
- package/src/components/checkbox/Checkbox.ts +0 -129
- package/src/components/checkbox/CheckboxGroup.ts +0 -57
- package/src/components/checkbox/checkbox-group.css +0 -29
- package/src/components/checkbox/checkbox.css +0 -81
- package/src/components/checkbox/leu-checkbox-group.ts +0 -11
- package/src/components/checkbox/leu-checkbox.ts +0 -11
- package/src/components/checkbox/stories/checkbox-group.stories.ts +0 -59
- package/src/components/checkbox/stories/checkbox.stories.ts +0 -72
- package/src/components/checkbox/test/checkbox-group.test.ts +0 -109
- package/src/components/checkbox/test/checkbox.test.ts +0 -247
- package/src/components/chip/Chip.ts +0 -19
- package/src/components/chip/ChipGroup.ts +0 -122
- package/src/components/chip/ChipLink.ts +0 -24
- package/src/components/chip/ChipRemovable.ts +0 -45
- package/src/components/chip/ChipSelectable.ts +0 -80
- package/src/components/chip/chip-group.css +0 -15
- package/src/components/chip/chip.css +0 -139
- package/src/components/chip/exports.ts +0 -4
- package/src/components/chip/leu-chip-group.ts +0 -11
- package/src/components/chip/leu-chip-link.ts +0 -11
- package/src/components/chip/leu-chip-removable.ts +0 -11
- package/src/components/chip/leu-chip-selectable.ts +0 -11
- package/src/components/chip/stories/chip-group.stories.ts +0 -159
- package/src/components/chip/stories/chip-link.stories.ts +0 -45
- package/src/components/chip/stories/chip-removable.stories.ts +0 -42
- package/src/components/chip/stories/chip-selectable.stories.ts +0 -54
- package/src/components/chip/test/chip-group.test.ts +0 -171
- package/src/components/chip/test/chip-link.test.ts +0 -54
- package/src/components/chip/test/chip-removable.test.ts +0 -105
- package/src/components/chip/test/chip-selectable.test.ts +0 -101
- package/src/components/chip/test/chip.test.ts +0 -22
- package/src/components/dialog/Dialog.ts +0 -86
- package/src/components/dialog/dialog.css +0 -157
- package/src/components/dialog/leu-dialog.ts +0 -11
- package/src/components/dialog/stories/dialog.stories.ts +0 -142
- package/src/components/dialog/test/dialog.test.ts +0 -85
- package/src/components/dropdown/Dropdown.ts +0 -152
- package/src/components/dropdown/dropdown.css +0 -16
- package/src/components/dropdown/leu-dropdown.ts +0 -11
- package/src/components/dropdown/stories/dropdown.stories.ts +0 -58
- package/src/components/dropdown/test/dropdown.test.ts +0 -59
- package/src/components/file-input/FileInput.ts +0 -322
- package/src/components/file-input/file-input.css +0 -118
- package/src/components/file-input/leu-file-input.ts +0 -11
- package/src/components/file-input/stories/file-input.stories.ts +0 -45
- package/src/components/file-input/test/file-input.test.ts +0 -38
- package/src/components/icon/Icon.ts +0 -47
- package/src/components/icon/icon.css +0 -10
- package/src/components/icon/leu-icon.ts +0 -11
- package/src/components/icon/paths.ts +0 -219
- package/src/components/icon/stories/icon.stories.ts +0 -79
- package/src/components/icon/test/icon.test.ts +0 -50
- package/src/components/input/Input.ts +0 -469
- package/src/components/input/input.css +0 -238
- package/src/components/input/leu-input.ts +0 -11
- package/src/components/input/stories/input.stories.ts +0 -204
- package/src/components/input/test/input.test.ts +0 -603
- package/src/components/menu/Menu.ts +0 -149
- package/src/components/menu/MenuItem.ts +0 -168
- package/src/components/menu/leu-menu-item.ts +0 -11
- package/src/components/menu/leu-menu.ts +0 -11
- package/src/components/menu/menu-item.css +0 -77
- package/src/components/menu/menu.css +0 -19
- package/src/components/menu/stories/menu-item.stories.ts +0 -81
- package/src/components/menu/stories/menu.stories.ts +0 -54
- package/src/components/menu/test/menu-item.test.ts +0 -210
- package/src/components/menu/test/menu.test.ts +0 -125
- package/src/components/message/Message.ts +0 -118
- package/src/components/message/leu-message.ts +0 -11
- package/src/components/message/message.css +0 -163
- package/src/components/message/stories/message.mdx +0 -76
- package/src/components/message/stories/message.stories.ts +0 -149
- package/src/components/message/test/message.test.ts +0 -96
- package/src/components/pagination/Pagination.ts +0 -192
- package/src/components/pagination/leu-pagination.ts +0 -11
- package/src/components/pagination/pagination.css +0 -54
- package/src/components/pagination/stories/pagination.stories.ts +0 -115
- package/src/components/pagination/test/pagination.test.ts +0 -210
- package/src/components/placeholder/Placeholder.ts +0 -33
- package/src/components/placeholder/leu-placeholder.ts +0 -11
- package/src/components/placeholder/placeholder.css +0 -59
- package/src/components/placeholder/stories/placeholder.stories.ts +0 -34
- package/src/components/placeholder/test/placeholder.test.ts +0 -31
- package/src/components/popup/Popup.ts +0 -264
- package/src/components/popup/leu-popup.ts +0 -11
- package/src/components/popup/popup.css +0 -24
- package/src/components/popup/stories/popup.stories.ts +0 -117
- package/src/components/popup/test/popup.test.ts +0 -90
- package/src/components/progress-bar/ProgressBar.ts +0 -52
- package/src/components/progress-bar/leu-progress-bar.ts +0 -11
- package/src/components/progress-bar/progress-bar.css +0 -97
- package/src/components/progress-bar/stories/progress-bar.stories.ts +0 -39
- package/src/components/progress-bar/test/progress-bar.test.ts +0 -61
- package/src/components/radio/Radio.ts +0 -59
- package/src/components/radio/RadioGroup.ts +0 -181
- package/src/components/radio/leu-radio-group.ts +0 -11
- package/src/components/radio/leu-radio.ts +0 -11
- package/src/components/radio/radio-group.css +0 -29
- package/src/components/radio/radio.css +0 -76
- package/src/components/radio/stories/radio-group.stories.ts +0 -54
- package/src/components/radio/stories/radio.stories.ts +0 -55
- package/src/components/radio/test/radio-group.test.ts +0 -83
- package/src/components/radio/test/radio.test.ts +0 -119
- package/src/components/range/Range.ts +0 -400
- package/src/components/range/leu-range.ts +0 -11
- package/src/components/range/range.css +0 -227
- package/src/components/range/stories/range.stories.ts +0 -185
- package/src/components/range/test/range.test.ts +0 -228
- package/src/components/scroll-top/ScrollTop.ts +0 -91
- package/src/components/scroll-top/leu-scroll-top.ts +0 -11
- package/src/components/scroll-top/scroll-top.css +0 -50
- package/src/components/scroll-top/stories/scroll-top.stories.ts +0 -217
- package/src/components/scroll-top/test/scroll-top.test.ts +0 -22
- package/src/components/select/Select.ts +0 -570
- package/src/components/select/leu-select.ts +0 -11
- package/src/components/select/select.css +0 -222
- package/src/components/select/stories/select.stories.ts +0 -173
- package/src/components/select/test/fixtures.ts +0 -162
- package/src/components/select/test/select.test.ts +0 -937
- package/src/components/spinner/Spinner.ts +0 -31
- package/src/components/spinner/leu-spinner.ts +0 -11
- package/src/components/spinner/spinner.css +0 -20
- package/src/components/spinner/stories/spinner.stories.ts +0 -29
- package/src/components/spinner/test/spinner.test.ts +0 -30
- package/src/components/tab/Tab.ts +0 -72
- package/src/components/tab/TabGroup.ts +0 -267
- package/src/components/tab/TabPanel.ts +0 -59
- package/src/components/tab/leu-tab-group.ts +0 -11
- package/src/components/tab/leu-tab-panel.ts +0 -11
- package/src/components/tab/leu-tab.ts +0 -11
- package/src/components/tab/stories/tab.stories.ts +0 -97
- package/src/components/tab/tab-group.css +0 -63
- package/src/components/tab/tab-panel.css +0 -10
- package/src/components/tab/tab.css +0 -54
- package/src/components/tab/test/tab-group.test.ts +0 -426
- package/src/components/tab/test/tab-panel.test.ts +0 -102
- package/src/components/tab/test/tab.test.ts +0 -139
- package/src/components/table/Table.ts +0 -253
- package/src/components/table/leu-table.ts +0 -11
- package/src/components/table/stories/table.stories.ts +0 -131
- package/src/components/table/table.css +0 -112
- package/src/components/table/test/table.test.ts +0 -37
- package/src/components/tag/Tag.ts +0 -28
- package/src/components/tag/leu-tag.ts +0 -11
- package/src/components/tag/stories/tag.stories.ts +0 -107
- package/src/components/tag/tag.css +0 -42
- package/src/components/tag/test/tag.test.ts +0 -28
- package/src/components/visually-hidden/VisuallyHidden.ts +0 -16
- package/src/components/visually-hidden/leu-visually-hidden.ts +0 -11
- package/src/components/visually-hidden/stories/visually-hidden.stories.ts +0 -22
- package/src/components/visually-hidden/test/visually-hidden.test.ts +0 -34
- package/src/components/visually-hidden/visually-hidden.css +0 -10
- package/src/docs/contributing.mdx +0 -154
- package/src/docs/installation.mdx +0 -35
- package/src/docs/theme.mdx +0 -400
- package/src/docs/usage.mdx +0 -73
- package/src/global.d.ts +0 -11
- package/src/index.ts +0 -29
- package/src/lib/LeuElement.ts +0 -43
- package/src/lib/a11y.ts +0 -26
- package/src/lib/hasSlotController.ts +0 -74
- package/src/lib/mixins/FormAssociatedMixin.ts +0 -115
- package/src/lib/styleMap.ts +0 -139
- package/src/lib/utils.ts +0 -45
- package/src/styles/common-styles.css +0 -14
- package/src/styles/custom-media.css +0 -6
- package/src/styles/font-definitions.json +0 -210
- package/src/styles/style.stories.ts +0 -64
- package/src/styles/theme.css +0 -90
- package/stat_zh.png +0 -0
- package/stylelint.config.mjs +0 -23
- package/tsconfig.build.json +0 -24
- package/tsconfig.json +0 -14
- package/tsdown.config.ts +0 -35
- package/web-test-runner.config.mjs +0 -102
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { html } from "lit"
|
|
2
|
-
import "../leu-dialog.js"
|
|
3
|
-
import "../../input/leu-input.js"
|
|
4
|
-
import "../../button/leu-button.js"
|
|
5
|
-
|
|
6
|
-
export default {
|
|
7
|
-
title: "Components/Dialog",
|
|
8
|
-
component: "leu-dialog",
|
|
9
|
-
parameters: {
|
|
10
|
-
design: {
|
|
11
|
-
type: "figma",
|
|
12
|
-
url: "https://www.figma.com/file/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?node-id=16052-88818&node-type=canvas&t=swv3JY6UIoCBUpXa-11",
|
|
13
|
-
},
|
|
14
|
-
},
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function openDialog() {
|
|
18
|
-
document.querySelector("leu-dialog").show()
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function closeDialog() {
|
|
22
|
-
document.querySelector("leu-dialog").close()
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
function OpenDialogButton() {
|
|
26
|
-
return html` <leu-button @click=${() => openDialog()}>
|
|
27
|
-
Open dialog
|
|
28
|
-
</leu-button>`
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function Template({ label, sublabel }) {
|
|
32
|
-
return html`
|
|
33
|
-
${OpenDialogButton()}
|
|
34
|
-
|
|
35
|
-
<leu-dialog label="${label}" sublabel="${sublabel}">
|
|
36
|
-
<leu-input label="Eingabe"></leu-input>
|
|
37
|
-
<br />
|
|
38
|
-
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
|
39
|
-
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
40
|
-
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
41
|
-
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
42
|
-
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
|
43
|
-
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
|
|
44
|
-
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
|
45
|
-
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
|
|
46
|
-
sit amet.
|
|
47
|
-
</leu-dialog>
|
|
48
|
-
`
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export const Regular = Template.bind({})
|
|
52
|
-
Regular.args = {
|
|
53
|
-
label: "Property: label",
|
|
54
|
-
rubric: "Property: sublabel",
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function ActionButtonsTemplate({ label, sublabel }) {
|
|
58
|
-
return html`
|
|
59
|
-
${OpenDialogButton()}
|
|
60
|
-
|
|
61
|
-
<leu-dialog label="${label}" sublabel="${sublabel}">
|
|
62
|
-
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
|
63
|
-
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
64
|
-
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
65
|
-
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
66
|
-
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
|
67
|
-
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
|
|
68
|
-
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
|
69
|
-
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
|
|
70
|
-
sit amet.
|
|
71
|
-
<slot slot="actionbar">
|
|
72
|
-
<leu-button
|
|
73
|
-
variant="secondary"
|
|
74
|
-
@click=${() => {
|
|
75
|
-
alert("Fenster wird geschlossen")
|
|
76
|
-
closeDialog()
|
|
77
|
-
}}
|
|
78
|
-
>
|
|
79
|
-
Abbrechen
|
|
80
|
-
</leu-button>
|
|
81
|
-
<leu-button
|
|
82
|
-
@click=${() => {
|
|
83
|
-
alert("Fenster wird offen gelassen")
|
|
84
|
-
}}
|
|
85
|
-
>
|
|
86
|
-
Anwenden
|
|
87
|
-
</leu-button>
|
|
88
|
-
</slot>
|
|
89
|
-
</leu-dialog>
|
|
90
|
-
`
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
export const ActionButtons = ActionButtonsTemplate.bind({})
|
|
94
|
-
ActionButtons.args = {
|
|
95
|
-
label: "Property: label",
|
|
96
|
-
sublabel: "Property: sublabel",
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
function SmallContentTemplate({ label, sublabel }) {
|
|
100
|
-
return html`
|
|
101
|
-
${OpenDialogButton()}
|
|
102
|
-
|
|
103
|
-
<leu-dialog label="${label}" sublabel="${sublabel}">
|
|
104
|
-
<p>Ein kurzer Text</p>
|
|
105
|
-
</leu-dialog>
|
|
106
|
-
`
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export const SmallContent = SmallContentTemplate.bind({})
|
|
110
|
-
SmallContent.args = {
|
|
111
|
-
label: "Dialog Titel",
|
|
112
|
-
sublabel: "Property: sublabel",
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
function ScrollablePageTemplate({ label, sublabel }) {
|
|
116
|
-
return html`
|
|
117
|
-
<div style="height: 200vh">
|
|
118
|
-
${OpenDialogButton()}
|
|
119
|
-
|
|
120
|
-
<leu-dialog label="${label}" sublabel="${sublabel}">
|
|
121
|
-
<leu-input label="Eingabe"></leu-input>
|
|
122
|
-
<br />
|
|
123
|
-
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
|
124
|
-
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
125
|
-
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
126
|
-
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
127
|
-
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
|
128
|
-
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat,
|
|
129
|
-
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
|
130
|
-
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem
|
|
131
|
-
ipsum dolor sit amet.
|
|
132
|
-
</leu-dialog>
|
|
133
|
-
</div>
|
|
134
|
-
<div style="height: 200vh">${OpenDialogButton()}</div>
|
|
135
|
-
`
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
export const ScrollablePage = ScrollablePageTemplate.bind({})
|
|
139
|
-
ScrollablePage.args = {
|
|
140
|
-
label: "Dialog Titel",
|
|
141
|
-
sublabel: "Property: sublabel",
|
|
142
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { html } from "lit"
|
|
2
|
-
import { fixture, expect } from "@open-wc/testing"
|
|
3
|
-
|
|
4
|
-
import "../leu-dialog.js"
|
|
5
|
-
|
|
6
|
-
async function defaultFixture() {
|
|
7
|
-
return fixture(
|
|
8
|
-
html`<leu-dialog label="Title" sublabel="Category">
|
|
9
|
-
This is the content of the dialog.
|
|
10
|
-
</leu-dialog>`,
|
|
11
|
-
)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
describe("LeuDialog", () => {
|
|
15
|
-
it("is a defined element", async () => {
|
|
16
|
-
const el = await customElements.get("leu-dialog")
|
|
17
|
-
|
|
18
|
-
expect(el).not.to.be.undefined
|
|
19
|
-
})
|
|
20
|
-
|
|
21
|
-
it("passes the a11y audit", async () => {
|
|
22
|
-
const el = await defaultFixture()
|
|
23
|
-
|
|
24
|
-
await expect(el).shadowDom.to.be.accessible()
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
it("passes the a11y audit when the modal is open", async () => {
|
|
28
|
-
const el = await defaultFixture()
|
|
29
|
-
|
|
30
|
-
el.show()
|
|
31
|
-
|
|
32
|
-
await expect(el).shadowDom.to.be.accessible()
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
it("opens the dialog when calling show()", async () => {
|
|
36
|
-
const el = await defaultFixture()
|
|
37
|
-
|
|
38
|
-
el.show()
|
|
39
|
-
|
|
40
|
-
const dialog = el.shadowRoot.querySelector("dialog")
|
|
41
|
-
|
|
42
|
-
expect(dialog.open).to.be.true
|
|
43
|
-
})
|
|
44
|
-
|
|
45
|
-
it("closes the dialog when calling close()", async () => {
|
|
46
|
-
const el = await defaultFixture()
|
|
47
|
-
|
|
48
|
-
el.show()
|
|
49
|
-
el.close()
|
|
50
|
-
|
|
51
|
-
const dialog = el.shadowRoot.querySelector("dialog")
|
|
52
|
-
|
|
53
|
-
expect(dialog.open).to.be.false
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
it("renders a label and a sublabel", async () => {
|
|
57
|
-
const el = await defaultFixture()
|
|
58
|
-
|
|
59
|
-
const label = el.shadowRoot.querySelector("h1")
|
|
60
|
-
const sublabel = el.shadowRoot.querySelector(".subtitle")
|
|
61
|
-
|
|
62
|
-
expect(label).to.have.text("Title")
|
|
63
|
-
expect(sublabel).to.have.text("Category")
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
it("renders a close button", async () => {
|
|
67
|
-
const el = await defaultFixture()
|
|
68
|
-
|
|
69
|
-
const closeButton = el.shadowRoot.querySelector(".close-button")
|
|
70
|
-
|
|
71
|
-
expect(closeButton).to.exist
|
|
72
|
-
})
|
|
73
|
-
|
|
74
|
-
it("closes the dialog when clicking the close button", async () => {
|
|
75
|
-
const el = await defaultFixture()
|
|
76
|
-
const dialog = el.shadowRoot.querySelector("dialog")
|
|
77
|
-
|
|
78
|
-
el.show()
|
|
79
|
-
|
|
80
|
-
const closeButton = el.shadowRoot.querySelector(".close-button")
|
|
81
|
-
expect(dialog.open).to.be.true
|
|
82
|
-
closeButton.click()
|
|
83
|
-
expect(dialog.open).to.be.false
|
|
84
|
-
})
|
|
85
|
-
})
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import { html, nothing } from "lit"
|
|
2
|
-
import { createRef, ref } from "lit/directives/ref.js"
|
|
3
|
-
import { property } from "lit/decorators.js"
|
|
4
|
-
|
|
5
|
-
import { LeuElement } from "../../lib/LeuElement.js"
|
|
6
|
-
import { HasSlotController } from "../../lib/hasSlotController.js"
|
|
7
|
-
|
|
8
|
-
import { LeuButton } from "../button/Button.js"
|
|
9
|
-
import { LeuMenu } from "../menu/Menu.js"
|
|
10
|
-
import { LeuMenuItem } from "../menu/MenuItem.js"
|
|
11
|
-
import { LeuPopup } from "../popup/Popup.js"
|
|
12
|
-
|
|
13
|
-
import styles from "./dropdown.css?inline"
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* @tagname leu-dropdown
|
|
17
|
-
*/
|
|
18
|
-
export class LeuDropdown extends LeuElement {
|
|
19
|
-
static dependencies = {
|
|
20
|
-
"leu-button": LeuButton,
|
|
21
|
-
"leu-menu": LeuMenu,
|
|
22
|
-
"leu-menu-item": LeuMenuItem,
|
|
23
|
-
"leu-popup": LeuPopup,
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
static styles = [LeuElement.styles, styles]
|
|
27
|
-
|
|
28
|
-
@property({ type: String, reflect: true })
|
|
29
|
-
label: string = ""
|
|
30
|
-
|
|
31
|
-
@property({ type: Boolean, reflect: true })
|
|
32
|
-
expanded: boolean = false
|
|
33
|
-
|
|
34
|
-
@property({ type: Boolean, reflect: true })
|
|
35
|
-
inverted: boolean = false
|
|
36
|
-
|
|
37
|
-
protected hasSlotController = new HasSlotController(this, ["icon"])
|
|
38
|
-
|
|
39
|
-
protected _toggleRef = createRef<HTMLButtonElement>()
|
|
40
|
-
|
|
41
|
-
connectedCallback() {
|
|
42
|
-
super.connectedCallback()
|
|
43
|
-
this.addEventListener("keyup", this._keyUpHandler)
|
|
44
|
-
document.addEventListener("click", this._documentClickHandler)
|
|
45
|
-
|
|
46
|
-
const menu = this._getMenu()
|
|
47
|
-
|
|
48
|
-
menu.addEventListener("keydown", this._keyDownMenuHandler)
|
|
49
|
-
menu.addEventListener("click", this._menuItemClickHandler)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
disconnectedCallback() {
|
|
53
|
-
super.disconnectedCallback()
|
|
54
|
-
this.removeEventListener("keyup", this._keyUpHandler)
|
|
55
|
-
document.removeEventListener("click", this._documentClickHandler)
|
|
56
|
-
|
|
57
|
-
const menu = this._getMenu()
|
|
58
|
-
|
|
59
|
-
menu.removeEventListener("keydown", this._keyDownMenuHandler)
|
|
60
|
-
menu.removeEventListener("click", this._menuItemClickHandler)
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
protected _documentClickHandler = (event: MouseEvent) => {
|
|
64
|
-
if (!event.composedPath().includes(this)) {
|
|
65
|
-
this.expanded = false
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
protected _keyUpHandler = (event: KeyboardEvent) => {
|
|
70
|
-
if (event.key === "Escape") {
|
|
71
|
-
this.expanded = false
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
protected async _keyDownToggleHandler(event: KeyboardEvent) {
|
|
76
|
-
if (["ArrowDown", "ArrowUp", "Home", "End"].includes(event.key)) {
|
|
77
|
-
event.preventDefault()
|
|
78
|
-
const menu = this._getMenu()
|
|
79
|
-
|
|
80
|
-
this.expanded = true
|
|
81
|
-
|
|
82
|
-
await this.updateComplete
|
|
83
|
-
|
|
84
|
-
if (event.key === "ArrowDown" || event.key === "Home") {
|
|
85
|
-
menu.focusItem(0)
|
|
86
|
-
} else if (event.key === "ArrowUp" || event.key === "End") {
|
|
87
|
-
menu.focusItem(-1)
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
protected _menuItemClickHandler = (
|
|
93
|
-
e: MouseEvent & { target: HTMLElement },
|
|
94
|
-
) => {
|
|
95
|
-
if (e.target.tagName.toLowerCase() === "leu-menu-item") {
|
|
96
|
-
this.expanded = false
|
|
97
|
-
this._toggleRef.value.focus()
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Close the dropdown when the user presses the Escape or the Tab key.
|
|
103
|
-
* Navigating the menu with the arrow keys is handled by the menu itself.
|
|
104
|
-
*/
|
|
105
|
-
protected _keyDownMenuHandler = (e: KeyboardEvent) => {
|
|
106
|
-
if (e.key === "Escape" || e.key === "Tab") {
|
|
107
|
-
e.preventDefault()
|
|
108
|
-
this.expanded = false
|
|
109
|
-
this._toggleRef.value.focus()
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
protected _handleToggleClick() {
|
|
114
|
-
this.expanded = !this.expanded
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
protected _getMenu() {
|
|
118
|
-
return this.querySelector<LeuMenu>("leu-menu")
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
render() {
|
|
122
|
-
const hasIcon = this.hasSlotController.test("icon")
|
|
123
|
-
return html`
|
|
124
|
-
<leu-popup
|
|
125
|
-
?active=${this.expanded}
|
|
126
|
-
placement="bottom-start"
|
|
127
|
-
shift
|
|
128
|
-
shiftPadding="8"
|
|
129
|
-
autoSize="width"
|
|
130
|
-
autoSizePadding="8"
|
|
131
|
-
>
|
|
132
|
-
<leu-button
|
|
133
|
-
ref=${ref(this._toggleRef)}
|
|
134
|
-
class="button"
|
|
135
|
-
slot="anchor"
|
|
136
|
-
variant="ghost"
|
|
137
|
-
expanded=${this.expanded ? "true" : "false"}
|
|
138
|
-
?active=${this.expanded}
|
|
139
|
-
?inverted=${this.inverted}
|
|
140
|
-
@click=${this._handleToggleClick}
|
|
141
|
-
@keydown=${this._keyDownToggleHandler}
|
|
142
|
-
>
|
|
143
|
-
${hasIcon ? html`<slot name="icon" slot="before"></slot>` : nothing}
|
|
144
|
-
${this.label}</leu-button
|
|
145
|
-
>
|
|
146
|
-
<div id="content" class="content" ?hidden=${!this.expanded}>
|
|
147
|
-
<slot></slot>
|
|
148
|
-
</div>
|
|
149
|
-
</leu-popup>
|
|
150
|
-
`
|
|
151
|
-
}
|
|
152
|
-
}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { html, nothing } from "lit"
|
|
2
|
-
import "../leu-dropdown.js"
|
|
3
|
-
import "../../icon/leu-icon.js"
|
|
4
|
-
|
|
5
|
-
import { paths as iconPaths } from "../../icon/paths.js"
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* @type {import("@storybook/web-components-vite").Meta}
|
|
9
|
-
*/
|
|
10
|
-
export default {
|
|
11
|
-
title: "Components/Dropdown",
|
|
12
|
-
component: "leu-dropdown",
|
|
13
|
-
parameters: {
|
|
14
|
-
design: {
|
|
15
|
-
type: "figma",
|
|
16
|
-
url: "https://www.figma.com/file/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?type=design&node-id=136815-217650&mode=design&t=lzVrtq8lxYVJU5TB-11",
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
argTypes: {
|
|
20
|
-
icon: {
|
|
21
|
-
control: "select",
|
|
22
|
-
options: Object.keys(iconPaths),
|
|
23
|
-
},
|
|
24
|
-
},
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
function Template({ label, expanded, icon, inverted }) {
|
|
28
|
-
return html` <leu-dropdown
|
|
29
|
-
label=${label}
|
|
30
|
-
?expanded=${expanded}
|
|
31
|
-
?inverted=${inverted}
|
|
32
|
-
>
|
|
33
|
-
${icon ? html`<leu-icon name=${icon} slot="icon"></leu-icon>` : nothing}
|
|
34
|
-
<leu-menu>
|
|
35
|
-
<leu-menu-item
|
|
36
|
-
href="https://www.web.statistik.zh.ch/ogd/daten/ressourcen/KTZH_00001120_00002165.csv"
|
|
37
|
-
>OGD Ressource</leu-menu-item
|
|
38
|
-
>
|
|
39
|
-
<leu-menu-item>Als CSV Tabelle</leu-menu-item>
|
|
40
|
-
<leu-menu-item>Als XLS Tabelle</leu-menu-item>
|
|
41
|
-
<hr />
|
|
42
|
-
<leu-menu-item>Als PNG exportieren</leu-menu-item>
|
|
43
|
-
<leu-menu-item>Als SVG exportieren</leu-menu-item>
|
|
44
|
-
<leu-menu-item disabled>Als PDF exportieren</leu-menu-item>
|
|
45
|
-
</leu-menu>
|
|
46
|
-
</leu-dropdown>`
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
export const Regular = Template.bind({})
|
|
50
|
-
Regular.args = {
|
|
51
|
-
label: "Download",
|
|
52
|
-
icon: "download",
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
export const WithoutIcon = Template.bind({})
|
|
56
|
-
WithoutIcon.args = {
|
|
57
|
-
label: "Download",
|
|
58
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { html } from "lit"
|
|
2
|
-
import { fixture, expect, elementUpdated } from "@open-wc/testing"
|
|
3
|
-
|
|
4
|
-
import "../leu-dropdown.js"
|
|
5
|
-
|
|
6
|
-
async function defaultFixture(args = { expanded: false, inverted: false }) {
|
|
7
|
-
return fixture(
|
|
8
|
-
html` <leu-dropdown
|
|
9
|
-
label="Download"
|
|
10
|
-
?expanded=${args.expanded}
|
|
11
|
-
?inverted=${args.inverted}
|
|
12
|
-
>
|
|
13
|
-
<leu-menu>
|
|
14
|
-
<leu-menu-item>Als CSV Tabelle</leu-menu-item>
|
|
15
|
-
<leu-menu-item>Als XLS Tabelle</leu-menu-item>
|
|
16
|
-
<hr />
|
|
17
|
-
<leu-menu-item>Als PNG exportieren</leu-menu-item>
|
|
18
|
-
<leu-menu-item>Als SVG exportieren</leu-menu-item>
|
|
19
|
-
<leu-menu-item>Als PDF exportieren</leu-menu-item>
|
|
20
|
-
</leu-menu>
|
|
21
|
-
</leu-dropdown>`,
|
|
22
|
-
)
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
describe("LeuDropdown", () => {
|
|
26
|
-
it("is a defined element", async () => {
|
|
27
|
-
const el = customElements.get("leu-dropdown")
|
|
28
|
-
|
|
29
|
-
await expect(el).not.to.be.undefined
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
it("passes the a11y audit", async () => {
|
|
33
|
-
const el = await defaultFixture()
|
|
34
|
-
|
|
35
|
-
await expect(el).shadowDom.to.be.accessible()
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
it("closes the popup when the document is clicked outside the component", async () => {
|
|
39
|
-
const el = await defaultFixture()
|
|
40
|
-
|
|
41
|
-
const toggleButton = el.shadowRoot.querySelector("leu-button")
|
|
42
|
-
toggleButton.click()
|
|
43
|
-
await elementUpdated(el)
|
|
44
|
-
|
|
45
|
-
expect(el.expanded).to.be.true
|
|
46
|
-
|
|
47
|
-
document.body.click()
|
|
48
|
-
|
|
49
|
-
expect(el.expanded).to.be.false
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
it("reflects the inverted property to the internal button", async () => {
|
|
53
|
-
const el = await defaultFixture({ inverted: true })
|
|
54
|
-
await elementUpdated(el)
|
|
55
|
-
|
|
56
|
-
const toggleButton = el.shadowRoot.querySelector("leu-button")
|
|
57
|
-
expect(toggleButton.inverted).to.be.true
|
|
58
|
-
})
|
|
59
|
-
})
|