@statistikzh/leu 0.3.0 → 0.5.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.
- package/.github/workflows/deploy-github-pages.yaml +33 -0
- package/.storybook/main.js +27 -1
- package/.storybook/manager-head.html +1 -0
- package/.storybook/manager.js +9 -0
- package/.storybook/preview-head.html +1 -1
- package/.storybook/preview.js +59 -6
- package/.storybook/static/logo.svg +19 -0
- package/.storybook/theme.js +7 -0
- package/CHANGELOG.md +54 -0
- package/README.md +1 -1
- package/custom-elements-manifest.config.js +46 -0
- package/dist/Accordion.d.ts +31 -0
- package/dist/Accordion.d.ts.map +1 -0
- package/dist/Accordion.js +257 -0
- package/dist/Breadcrumb.d.ts +69 -0
- package/dist/Breadcrumb.d.ts.map +1 -0
- package/dist/Breadcrumb.js +392 -0
- package/dist/Button-da11d064.d.ts +84 -0
- package/dist/Button-da11d064.d.ts.map +1 -0
- package/dist/Button-da11d064.js +542 -0
- package/dist/Button.d.ts +2 -0
- package/dist/Button.d.ts.map +1 -0
- package/dist/Button.js +6 -423
- package/dist/ButtonGroup.d.ts +24 -0
- package/dist/ButtonGroup.d.ts.map +1 -0
- package/dist/ButtonGroup.js +72 -43
- package/dist/Checkbox.d.ts +13 -0
- package/dist/Checkbox.d.ts.map +1 -0
- package/dist/Checkbox.js +101 -84
- package/dist/CheckboxGroup.d.ts +13 -0
- package/dist/CheckboxGroup.d.ts.map +1 -0
- package/dist/CheckboxGroup.js +41 -37
- package/dist/Chip.d.ts +5 -0
- package/dist/Chip.d.ts.map +1 -0
- package/dist/{Chip-5f70d04f.js → Chip.js} +21 -6
- package/dist/ChipGroup.d.ts +28 -0
- package/dist/ChipGroup.d.ts.map +1 -0
- package/dist/ChipGroup.js +64 -10
- package/dist/ChipLink.d.ts +15 -0
- package/dist/ChipLink.d.ts.map +1 -0
- package/dist/ChipLink.js +4 -7
- package/dist/ChipRemovable.d.ts +13 -0
- package/dist/ChipRemovable.d.ts.map +1 -0
- package/dist/ChipRemovable.js +5 -8
- package/dist/ChipSelectable.d.ts +22 -0
- package/dist/ChipSelectable.d.ts.map +1 -0
- package/dist/ChipSelectable.js +8 -11
- package/dist/Dropdown.d.ts +15 -0
- package/dist/Dropdown.d.ts.map +1 -0
- package/dist/Dropdown.js +73 -26
- package/dist/Input.d.ts +154 -0
- package/dist/Input.d.ts.map +1 -0
- package/dist/Input.js +42 -35
- package/dist/Menu.d.ts +8 -0
- package/dist/Menu.d.ts.map +1 -0
- package/dist/Menu.js +2 -5
- package/dist/MenuItem.d.ts +21 -0
- package/dist/MenuItem.d.ts.map +1 -0
- package/dist/MenuItem.js +32 -17
- package/dist/Pagination.d.ts +27 -0
- package/dist/Pagination.d.ts.map +1 -0
- package/dist/Pagination.js +121 -89
- package/dist/Popup.d.ts +18 -0
- package/dist/Popup.d.ts.map +1 -0
- package/dist/Popup.js +215 -0
- package/dist/Radio.d.ts +12 -0
- package/dist/Radio.d.ts.map +1 -0
- package/dist/Radio.js +9 -8
- package/dist/RadioGroup.d.ts +20 -0
- package/dist/RadioGroup.d.ts.map +1 -0
- package/dist/RadioGroup.js +41 -39
- package/dist/ScrollTop.d.ts +19 -0
- package/dist/ScrollTop.d.ts.map +1 -0
- package/dist/ScrollTop.js +122 -0
- package/dist/Select.d.ts +98 -0
- package/dist/Select.d.ts.map +1 -0
- package/dist/Select.js +79 -122
- package/dist/Table.d.ts +48 -0
- package/dist/Table.d.ts.map +1 -0
- package/dist/Table.js +141 -121
- package/dist/VisuallyHidden.d.ts +8 -0
- package/dist/VisuallyHidden.d.ts.map +1 -0
- package/dist/VisuallyHidden.js +28 -0
- package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts +3 -0
- package/dist/_rollupPluginBabelHelpers-20f659f4.d.ts.map +1 -0
- package/dist/{defineElement-ba770aed.js → _rollupPluginBabelHelpers-20f659f4.js} +1 -15
- package/dist/defineElement-40372b4b.d.ts +9 -0
- package/dist/defineElement-40372b4b.d.ts.map +1 -0
- package/dist/defineElement-40372b4b.js +15 -0
- package/dist/icon-03e86700.d.ts +11 -0
- package/dist/icon-03e86700.d.ts.map +1 -0
- package/dist/index.js.d.ts +21 -0
- package/dist/index.js.d.ts.map +1 -0
- package/dist/index.js.js +42 -0
- package/dist/leu-accordion.d.ts +3 -0
- package/dist/leu-accordion.d.ts.map +1 -0
- package/dist/leu-accordion.js +9 -0
- package/dist/leu-breadcrumb.d.ts +3 -0
- package/dist/leu-breadcrumb.d.ts.map +1 -0
- package/dist/leu-breadcrumb.js +23 -0
- package/dist/leu-button-group.d.ts +3 -0
- package/dist/leu-button-group.d.ts.map +1 -0
- package/dist/leu-button-group.js +6 -6
- package/dist/leu-button.d.ts +3 -0
- package/dist/leu-button.d.ts.map +1 -0
- package/dist/leu-button.js +7 -3
- package/dist/leu-checkbox-group.d.ts +3 -0
- package/dist/leu-checkbox-group.d.ts.map +1 -0
- package/dist/leu-checkbox-group.js +6 -3
- package/dist/leu-checkbox.d.ts +3 -0
- package/dist/leu-checkbox.d.ts.map +1 -0
- package/dist/leu-checkbox.js +6 -3
- package/dist/leu-chip-group.d.ts +3 -0
- package/dist/leu-chip-group.d.ts.map +1 -0
- package/dist/leu-chip-group.js +7 -3
- package/dist/leu-chip-link.d.ts +3 -0
- package/dist/leu-chip-link.d.ts.map +1 -0
- package/dist/leu-chip-link.js +7 -4
- package/dist/leu-chip-removable.d.ts +3 -0
- package/dist/leu-chip-removable.d.ts.map +1 -0
- package/dist/leu-chip-removable.js +7 -4
- package/dist/leu-chip-selectable.d.ts +3 -0
- package/dist/leu-chip-selectable.d.ts.map +1 -0
- package/dist/leu-chip-selectable.js +7 -4
- package/dist/leu-dropdown.d.ts +3 -0
- package/dist/leu-dropdown.d.ts.map +1 -0
- package/dist/leu-dropdown.js +15 -4
- package/dist/leu-input.d.ts +3 -0
- package/dist/leu-input.d.ts.map +1 -0
- package/dist/leu-input.js +7 -3
- package/dist/leu-menu-item.d.ts +3 -0
- package/dist/leu-menu-item.d.ts.map +1 -0
- package/dist/leu-menu-item.js +8 -3
- package/dist/leu-menu.d.ts +3 -0
- package/dist/leu-menu.d.ts.map +1 -0
- package/dist/leu-menu.js +6 -3
- package/dist/leu-pagination.d.ts +3 -0
- package/dist/leu-pagination.d.ts.map +1 -0
- package/dist/leu-pagination.js +12 -4
- package/dist/leu-popup.d.ts +3 -0
- package/dist/leu-popup.d.ts.map +1 -0
- package/dist/leu-popup.js +9 -0
- package/dist/leu-radio-group.d.ts +3 -0
- package/dist/leu-radio-group.d.ts.map +1 -0
- package/dist/leu-radio-group.js +6 -3
- package/dist/leu-radio.d.ts +3 -0
- package/dist/leu-radio.d.ts.map +1 -0
- package/dist/leu-radio.js +6 -3
- package/dist/leu-scroll-top.d.ts +3 -0
- package/dist/leu-scroll-top.d.ts.map +1 -0
- package/dist/leu-scroll-top.js +14 -0
- package/dist/leu-select.d.ts +3 -0
- package/dist/leu-select.d.ts.map +1 -0
- package/dist/leu-select.js +16 -4
- package/dist/leu-table.d.ts +3 -0
- package/dist/leu-table.d.ts.map +1 -0
- package/dist/leu-table.js +13 -4
- package/dist/leu-visually-hidden.d.ts +3 -0
- package/dist/leu-visually-hidden.d.ts.map +1 -0
- package/dist/leu-visually-hidden.js +8 -0
- package/dist/theme.css +386 -2
- package/dist/utils-65469421.d.ts +16 -0
- package/dist/utils-65469421.d.ts.map +1 -0
- package/dist/utils-65469421.js +35 -0
- package/index.js +3 -0
- package/package.json +47 -17
- package/postcss.config.cjs +2 -0
- package/rollup.config.js +21 -40
- package/scripts/generate-component/templates/[Name].js +0 -5
- package/scripts/generate-component/templates/[name].css +3 -3
- package/scripts/generate-component/templates/[namespace]-[name].js +5 -2
- package/scripts/postcss-leu-font-styles.cjs +160 -0
- package/src/components/accordion/Accordion.js +0 -6
- package/src/components/accordion/accordion.css +2 -2
- package/src/components/accordion/leu-accordion.js +5 -2
- package/src/components/accordion/stories/accordion.stories.js +8 -4
- package/src/components/accordion/test/accordion.test.js +95 -3
- package/src/components/breadcrumb/Breadcrumb.js +311 -0
- package/src/components/breadcrumb/breadcrumb.css +103 -0
- package/src/components/breadcrumb/leu-breadcrumb.js +6 -0
- package/src/components/breadcrumb/stories/breadcrumb.stories.js +73 -0
- package/src/components/breadcrumb/test/breadcrumb.test.js +141 -0
- package/src/components/button/Button.js +76 -20
- package/src/components/button/button.css +13 -5
- package/src/components/button/leu-button.js +5 -2
- package/src/components/button/stories/button.stories.js +79 -105
- package/src/components/button/test/button.test.js +184 -3
- package/src/components/button-group/ButtonGroup.js +76 -40
- package/src/components/button-group/leu-button-group.js +5 -2
- package/src/components/button-group/stories/button-group.stories.js +19 -6
- package/src/components/button-group/test/button-group.test.js +87 -4
- package/src/components/checkbox/Checkbox.js +6 -85
- package/src/components/checkbox/CheckboxGroup.js +8 -38
- package/src/components/checkbox/checkbox-group.css +29 -0
- package/src/components/checkbox/checkbox.css +76 -0
- package/src/components/checkbox/leu-checkbox-group.js +5 -2
- package/src/components/checkbox/leu-checkbox.js +5 -2
- package/src/components/checkbox/stories/checkbox-group.stories.js +44 -21
- package/src/components/checkbox/stories/checkbox.stories.js +7 -1
- package/src/components/checkbox/test/checkbox-group.test.js +124 -0
- package/src/components/checkbox/test/checkbox.test.js +72 -59
- package/src/components/chip/Chip.js +1 -0
- package/src/components/chip/ChipGroup.js +42 -7
- package/src/components/chip/ChipLink.js +1 -6
- package/src/components/chip/ChipRemovable.js +2 -7
- package/src/components/chip/ChipSelectable.js +5 -10
- package/src/components/chip/chip-group.css +12 -2
- package/src/components/chip/chip.css +14 -3
- package/src/components/chip/exports.js +4 -10
- package/src/components/chip/leu-chip-group.js +5 -2
- package/src/components/chip/leu-chip-link.js +5 -2
- package/src/components/chip/leu-chip-removable.js +5 -2
- package/src/components/chip/leu-chip-selectable.js +5 -2
- package/src/components/chip/stories/chip-group.stories.js +110 -44
- package/src/components/chip/stories/chip-link.stories.js +16 -4
- package/src/components/chip/stories/chip-removable.stories.js +15 -4
- package/src/components/chip/stories/chip-selectable.stories.js +13 -3
- package/src/components/chip/test/chip-group.test.js +124 -0
- package/src/components/chip/test/chip-link.test.js +58 -0
- package/src/components/chip/test/chip-removable.test.js +79 -0
- package/src/components/chip/test/chip-selectable.test.js +95 -0
- package/src/components/chip/test/chip.test.js +1 -1
- package/src/components/dropdown/Dropdown.js +72 -24
- package/src/components/dropdown/dropdown.css +1 -2
- package/src/components/dropdown/leu-dropdown.js +5 -2
- package/src/components/dropdown/stories/dropdown.stories.js +11 -5
- package/src/components/dropdown/test/dropdown.test.js +6 -6
- package/src/components/icon/icon.js +1 -1
- package/src/components/icon/test/icon.test.js +66 -0
- package/src/components/input/Input.js +25 -28
- package/src/components/input/input.css +11 -8
- package/src/components/input/leu-input.js +5 -2
- package/src/components/input/stories/input.stories.js +21 -2
- package/src/components/input/test/input.test.js +432 -4
- package/src/components/menu/Menu.js +0 -5
- package/src/components/menu/MenuItem.js +20 -13
- package/src/components/menu/leu-menu-item.js +5 -2
- package/src/components/menu/leu-menu.js +5 -2
- package/src/components/menu/menu-item.css +7 -4
- package/src/components/menu/stories/menu-item.stories.js +13 -4
- package/src/components/menu/stories/menu.stories.js +11 -5
- package/src/components/menu/test/menu-item.test.js +180 -0
- package/src/components/menu/test/menu.test.js +10 -2
- package/src/components/pagination/Pagination.js +118 -99
- package/src/components/pagination/leu-pagination.js +5 -2
- package/src/components/pagination/pagination.css +6 -1
- package/src/components/pagination/stories/pagination.stories.js +30 -9
- package/src/components/pagination/test/pagination.test.js +191 -5
- package/src/components/popup/Popup.js +200 -0
- package/src/components/popup/leu-popup.js +6 -0
- package/src/components/popup/popup.css +27 -0
- package/src/components/popup/stories/popup.stories.js +58 -0
- package/src/components/popup/test/popup.test.js +29 -0
- package/src/components/radio/Radio.js +2 -6
- package/src/components/radio/RadioGroup.js +6 -38
- package/src/components/radio/leu-radio-group.js +5 -2
- package/src/components/radio/leu-radio.js +5 -2
- package/src/components/radio/radio-group.css +29 -0
- package/src/components/radio/radio.css +1 -1
- package/src/components/radio/stories/radio-group.stories.js +38 -19
- package/src/components/radio/stories/radio.stories.js +7 -1
- package/src/components/radio/test/radio-group.test.js +86 -0
- package/src/components/radio/test/radio.test.js +108 -17
- package/src/components/scroll-top/ScrollTop.js +87 -0
- package/src/components/scroll-top/leu-scroll-top.js +6 -0
- package/src/components/scroll-top/scroll-top.css +34 -0
- package/src/components/scroll-top/stories/scroll-top.stories.js +217 -0
- package/src/components/scroll-top/test/scroll-top.test.js +22 -0
- package/src/components/select/Select.js +58 -37
- package/src/components/select/leu-select.js +5 -2
- package/src/components/select/select.css +15 -15
- package/src/components/select/stories/select.stories.js +15 -168
- package/src/components/select/test/fixtures.js +162 -0
- package/src/components/select/test/select.test.js +236 -12
- package/src/components/table/Table.js +43 -118
- package/src/components/table/leu-table.js +5 -2
- package/src/components/table/stories/table.stories.js +20 -10
- package/src/components/table/table.css +99 -0
- package/src/components/table/test/table.test.js +1 -1
- package/src/components/visually-hidden/VisuallyHidden.js +13 -0
- package/src/components/visually-hidden/leu-visually-hidden.js +6 -0
- package/src/components/visually-hidden/stories/visually-hidden.stories.js +22 -0
- package/src/components/visually-hidden/test/visually-hidden.test.js +36 -0
- package/src/components/visually-hidden/visually-hidden.css +10 -0
- package/src/lib/defineElement.js +1 -1
- package/src/lib/hasSlotController.js +5 -3
- package/src/lib/utils.js +35 -0
- package/src/styles/custom-properties.css +6 -2
- package/src/styles/font-definitions.json +202 -0
- package/stylelint.config.mjs +2 -0
- package/tsconfig.build.json +21 -0
- package/tsconfig.json +16 -0
- package/{web-dev-server-storybook.config.mjs → web-dev-server.config.mjs} +1 -2
- package/web-test-runner.config.mjs +15 -2
- package/dist/index.js +0 -26
|
@@ -1,40 +1,59 @@
|
|
|
1
1
|
import { html } from "lit"
|
|
2
2
|
import "../leu-radio.js"
|
|
3
3
|
import "../leu-radio-group.js"
|
|
4
|
+
import { ifDefined } from "lit/directives/if-defined.js"
|
|
4
5
|
|
|
5
6
|
export default {
|
|
6
7
|
title: "Radio/Group",
|
|
7
8
|
component: "leu-radio-group",
|
|
8
9
|
argTypes: {
|
|
9
|
-
|
|
10
|
+
label: { control: "text" },
|
|
10
11
|
orientation: {
|
|
11
12
|
options: ["VERTICAL", "HORIZONTAL"],
|
|
12
13
|
control: { type: "radio" },
|
|
13
14
|
},
|
|
14
15
|
},
|
|
16
|
+
parameters: {
|
|
17
|
+
design: {
|
|
18
|
+
type: "figma",
|
|
19
|
+
url: "https://www.figma.com/file/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?type=design&node-id=17340-81935&mode=design&t=lzVrtq8lxYVJU5TB-11",
|
|
20
|
+
},
|
|
21
|
+
},
|
|
15
22
|
}
|
|
16
23
|
|
|
17
|
-
function Template({
|
|
24
|
+
function Template({ label, orientation }) {
|
|
18
25
|
return html`
|
|
19
|
-
<leu-radio-group
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
>
|
|
26
|
+
<leu-radio-group
|
|
27
|
+
orientation=${ifDefined(orientation)}
|
|
28
|
+
label=${ifDefined(label)}
|
|
29
|
+
>
|
|
30
|
+
<leu-radio
|
|
31
|
+
identifier="1"
|
|
32
|
+
value="1"
|
|
33
|
+
name="radio-button"
|
|
34
|
+
label="Kurz"
|
|
35
|
+
disabled
|
|
36
|
+
></leu-radio>
|
|
37
|
+
<leu-radio
|
|
38
|
+
identifier="2"
|
|
39
|
+
value="2"
|
|
40
|
+
name="radio-button"
|
|
41
|
+
label="Etwas Länger"
|
|
42
|
+
></leu-radio>
|
|
43
|
+
<leu-radio
|
|
44
|
+
identifier="3"
|
|
45
|
+
value="3"
|
|
46
|
+
name="radio-button"
|
|
47
|
+
label="Ein langes Label um sicher ein umbruch zu erzwingen"
|
|
48
|
+
></leu-radio>
|
|
30
49
|
</leu-radio-group>
|
|
31
50
|
`
|
|
32
51
|
}
|
|
33
52
|
|
|
34
53
|
export const Horizontal = Template.bind({})
|
|
35
|
-
export const
|
|
36
|
-
|
|
37
|
-
|
|
54
|
+
export const HorizontalLabel = Template.bind({})
|
|
55
|
+
HorizontalLabel.args = {
|
|
56
|
+
label: "Anrede",
|
|
38
57
|
}
|
|
39
58
|
|
|
40
59
|
export const Vertical = Template.bind({})
|
|
@@ -42,8 +61,8 @@ Vertical.args = {
|
|
|
42
61
|
orientation: "VERTICAL",
|
|
43
62
|
}
|
|
44
63
|
|
|
45
|
-
export const
|
|
46
|
-
|
|
64
|
+
export const VerticalLabel = Template.bind({})
|
|
65
|
+
VerticalLabel.args = {
|
|
47
66
|
orientation: "VERTICAL",
|
|
48
|
-
|
|
67
|
+
label: "Anrede",
|
|
49
68
|
}
|
|
@@ -9,6 +9,12 @@ export default {
|
|
|
9
9
|
control: "text",
|
|
10
10
|
},
|
|
11
11
|
},
|
|
12
|
+
parameters: {
|
|
13
|
+
design: {
|
|
14
|
+
type: "figma",
|
|
15
|
+
url: "https://www.figma.com/file/d6Pv21UVUbnBs3AdcZijHmbN/KTZH-Design-System?type=design&node-id=17340-81935&mode=design&t=lzVrtq8lxYVJU5TB-11",
|
|
16
|
+
},
|
|
17
|
+
},
|
|
12
18
|
}
|
|
13
19
|
|
|
14
20
|
function Template({
|
|
@@ -23,8 +29,8 @@ function Template({
|
|
|
23
29
|
?checked=${checked}
|
|
24
30
|
?disabled=${disabled}
|
|
25
31
|
identifier=${"radio-1"}
|
|
32
|
+
label=${label}
|
|
26
33
|
>
|
|
27
|
-
${label}
|
|
28
34
|
</leu-radio>
|
|
29
35
|
`
|
|
30
36
|
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { html } from "lit"
|
|
2
|
+
import { fixture, expect } from "@open-wc/testing"
|
|
3
|
+
|
|
4
|
+
import "../leu-radio.js"
|
|
5
|
+
import "../leu-radio-group.js"
|
|
6
|
+
|
|
7
|
+
async function defaultFixture(args = {}) {
|
|
8
|
+
return fixture(html`
|
|
9
|
+
<leu-radio-group>
|
|
10
|
+
<span slot="legend">Legende</span>
|
|
11
|
+
<leu-radio
|
|
12
|
+
identifier="1"
|
|
13
|
+
value="1"
|
|
14
|
+
name="radio-button"
|
|
15
|
+
disabled
|
|
16
|
+
label="Kurz"
|
|
17
|
+
?checked=${args.checkedValue === "1"}
|
|
18
|
+
></leu-radio>
|
|
19
|
+
<leu-radio
|
|
20
|
+
identifier="2"
|
|
21
|
+
value="2"
|
|
22
|
+
name="radio-button"
|
|
23
|
+
label="Etwas Länger"
|
|
24
|
+
?checked=${args.checkedValue === "2"}
|
|
25
|
+
></leu-radio>
|
|
26
|
+
<leu-radio
|
|
27
|
+
identifier="3"
|
|
28
|
+
value="3"
|
|
29
|
+
name="radio-button"
|
|
30
|
+
label="Ein langes Label um sicher ein umbruch zu erzwingen"
|
|
31
|
+
?checked=${args.checkedValue === "3"}
|
|
32
|
+
></leu-radio>
|
|
33
|
+
</leu-radio-group>
|
|
34
|
+
`)
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
describe("LeuRadio", () => {
|
|
38
|
+
it("is a defined element", async () => {
|
|
39
|
+
const elRadioGroup = customElements.get("leu-radio-group")
|
|
40
|
+
|
|
41
|
+
await expect(elRadioGroup).not.to.be.undefined
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it("passes the a11y audit", async () => {
|
|
45
|
+
const el = await defaultFixture()
|
|
46
|
+
|
|
47
|
+
await expect(el).shadowDom.to.be.accessible()
|
|
48
|
+
})
|
|
49
|
+
|
|
50
|
+
it("has an empty default value", async () => {
|
|
51
|
+
const el = await defaultFixture()
|
|
52
|
+
|
|
53
|
+
expect(el.value).to.equal("")
|
|
54
|
+
})
|
|
55
|
+
|
|
56
|
+
it("updates the value when a radio button is checked", async () => {
|
|
57
|
+
const el = await defaultFixture()
|
|
58
|
+
const leuRadio = el.querySelector('leu-radio[value="2"]')
|
|
59
|
+
const radio = leuRadio.shadowRoot.querySelector("input")
|
|
60
|
+
|
|
61
|
+
radio.click()
|
|
62
|
+
|
|
63
|
+
expect(el.value).to.equal("2")
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
it("doesn't allow multiple radio buttons to be checked", async () => {
|
|
67
|
+
const el = await defaultFixture()
|
|
68
|
+
const leuRadio2 = el.querySelector('leu-radio[value="2"]')
|
|
69
|
+
const leuRadio3 = el.querySelector('leu-radio[value="3"]')
|
|
70
|
+
const radio2 = leuRadio2.shadowRoot.querySelector("input")
|
|
71
|
+
const radio3 = leuRadio3.shadowRoot.querySelector("input")
|
|
72
|
+
|
|
73
|
+
radio2.click()
|
|
74
|
+
radio3.click()
|
|
75
|
+
|
|
76
|
+
expect(el.value).to.equal("3")
|
|
77
|
+
expect(leuRadio2.checked).to.be.false
|
|
78
|
+
expect(leuRadio3.checked).to.be.true
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
it("has a default value that reflects the checked radio button", async () => {
|
|
82
|
+
const el = await defaultFixture({ checkedValue: "2" })
|
|
83
|
+
|
|
84
|
+
expect(el.value).to.deep.equal("2")
|
|
85
|
+
})
|
|
86
|
+
})
|
|
@@ -1,33 +1,25 @@
|
|
|
1
1
|
import { html } from "lit"
|
|
2
|
-
import { fixture, expect } from "@open-wc/testing"
|
|
2
|
+
import { fixture, expect, elementUpdated, oneEvent } from "@open-wc/testing"
|
|
3
|
+
import { sendKeys } from "@web/test-runner-commands"
|
|
3
4
|
|
|
4
5
|
import "../leu-radio.js"
|
|
5
|
-
import "../leu-radio-group.js"
|
|
6
6
|
|
|
7
7
|
async function defaultFixture() {
|
|
8
8
|
return fixture(html`
|
|
9
|
-
<leu-radio
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
>Etwas Länger</leu-radio
|
|
16
|
-
>
|
|
17
|
-
<leu-radio identifier="3" value="3" name="radio-button"
|
|
18
|
-
>Ein langes Label um sicher ein umbruch zu erzwingen</leu-radio
|
|
19
|
-
>
|
|
20
|
-
</leu-radio-group>
|
|
9
|
+
<leu-radio
|
|
10
|
+
identifier="b"
|
|
11
|
+
value="3"
|
|
12
|
+
name="radio-button"
|
|
13
|
+
label="Ein langes Label um sicher ein umbruch zu erzwingen"
|
|
14
|
+
></leu-radio>
|
|
21
15
|
`)
|
|
22
16
|
}
|
|
23
17
|
|
|
24
18
|
describe("LeuRadio", () => {
|
|
25
19
|
it("is a defined element", async () => {
|
|
26
|
-
const elRadio =
|
|
27
|
-
const elRadioGroup = await customElements.get("leu-radio-group")
|
|
20
|
+
const elRadio = customElements.get("leu-radio")
|
|
28
21
|
|
|
29
22
|
await expect(elRadio).not.to.be.undefined
|
|
30
|
-
await expect(elRadioGroup).not.to.be.undefined
|
|
31
23
|
})
|
|
32
24
|
|
|
33
25
|
it("passes the a11y audit", async () => {
|
|
@@ -35,4 +27,103 @@ describe("LeuRadio", () => {
|
|
|
35
27
|
|
|
36
28
|
await expect(el).shadowDom.to.be.accessible()
|
|
37
29
|
})
|
|
30
|
+
|
|
31
|
+
it("is not checked by default", async () => {
|
|
32
|
+
const el = await defaultFixture()
|
|
33
|
+
|
|
34
|
+
expect(el.checked).to.be.false
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
it("sets the checked property when the checkbox", async () => {
|
|
38
|
+
const el = await defaultFixture()
|
|
39
|
+
const checkbox = el.shadowRoot.querySelector("input")
|
|
40
|
+
|
|
41
|
+
checkbox.click()
|
|
42
|
+
await elementUpdated(el)
|
|
43
|
+
|
|
44
|
+
expect(el.checked).to.be.true
|
|
45
|
+
|
|
46
|
+
checkbox.click()
|
|
47
|
+
await elementUpdated(el)
|
|
48
|
+
|
|
49
|
+
expect(el.checked).to.be.true
|
|
50
|
+
})
|
|
51
|
+
|
|
52
|
+
it("sets the checked property when the checkbox", async () => {
|
|
53
|
+
const el = await defaultFixture()
|
|
54
|
+
const label = el.shadowRoot.querySelector("label")
|
|
55
|
+
|
|
56
|
+
label.click()
|
|
57
|
+
await elementUpdated(el)
|
|
58
|
+
|
|
59
|
+
expect(el.checked).to.be.true
|
|
60
|
+
|
|
61
|
+
label.click()
|
|
62
|
+
await elementUpdated(el)
|
|
63
|
+
|
|
64
|
+
expect(el.checked).to.be.true
|
|
65
|
+
})
|
|
66
|
+
|
|
67
|
+
it("does not set the checked property when disabled", async () => {
|
|
68
|
+
const el = await defaultFixture()
|
|
69
|
+
const checkbox = el.shadowRoot.querySelector("input")
|
|
70
|
+
const label = el.shadowRoot.querySelector("label")
|
|
71
|
+
|
|
72
|
+
el.disabled = true
|
|
73
|
+
await elementUpdated(el)
|
|
74
|
+
|
|
75
|
+
checkbox.click()
|
|
76
|
+
await elementUpdated(el)
|
|
77
|
+
|
|
78
|
+
expect(el.checked).to.be.false
|
|
79
|
+
|
|
80
|
+
label.click()
|
|
81
|
+
await elementUpdated(el)
|
|
82
|
+
|
|
83
|
+
expect(el.checked).to.be.false
|
|
84
|
+
})
|
|
85
|
+
|
|
86
|
+
it("toggles the checked property when the space key is pressed", async () => {
|
|
87
|
+
const el = await defaultFixture()
|
|
88
|
+
el.focus()
|
|
89
|
+
|
|
90
|
+
await sendKeys({
|
|
91
|
+
press: "Space",
|
|
92
|
+
})
|
|
93
|
+
|
|
94
|
+
expect(el.checked).to.be.true
|
|
95
|
+
|
|
96
|
+
await sendKeys({
|
|
97
|
+
press: "Space",
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
expect(el.checked).to.be.true
|
|
101
|
+
})
|
|
102
|
+
|
|
103
|
+
it("fires a change event when clicked", async () => {
|
|
104
|
+
const el = await defaultFixture()
|
|
105
|
+
const checkbox = el.shadowRoot.querySelector("input")
|
|
106
|
+
|
|
107
|
+
setTimeout(() => checkbox.click())
|
|
108
|
+
const event = await oneEvent(el, "change")
|
|
109
|
+
|
|
110
|
+
expect(event).to.exist
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
it("fires an input event when clicked", async () => {
|
|
114
|
+
const el = await defaultFixture()
|
|
115
|
+
const checkbox = el.shadowRoot.querySelector("input")
|
|
116
|
+
|
|
117
|
+
setTimeout(() => checkbox.click())
|
|
118
|
+
const event = await oneEvent(el, "input")
|
|
119
|
+
|
|
120
|
+
expect(event).to.exist
|
|
121
|
+
})
|
|
122
|
+
|
|
123
|
+
it("applies the identifier to the input and the label", async () => {
|
|
124
|
+
const el = await defaultFixture()
|
|
125
|
+
|
|
126
|
+
expect(el.shadowRoot.querySelector("input").id).to.equal("b")
|
|
127
|
+
expect(el.shadowRoot.querySelector("label").htmlFor).to.equal("b")
|
|
128
|
+
})
|
|
38
129
|
})
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { html, LitElement } from "lit"
|
|
2
|
+
import { classMap } from "lit/directives/class-map.js"
|
|
3
|
+
|
|
4
|
+
import styles from "./scroll-top.css"
|
|
5
|
+
import "../button/leu-button.js"
|
|
6
|
+
import { throttle } from "../../lib/utils.js"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @tagname leu-scroll-top
|
|
10
|
+
*/
|
|
11
|
+
export class LeuScrollTop extends LitElement {
|
|
12
|
+
static styles = styles
|
|
13
|
+
|
|
14
|
+
static properties = {
|
|
15
|
+
_showButton: { state: true },
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
constructor() {
|
|
19
|
+
super()
|
|
20
|
+
/** @internal */
|
|
21
|
+
this._prevYPos = 0
|
|
22
|
+
/** @internal */
|
|
23
|
+
this._showButton = false
|
|
24
|
+
/** @internal */
|
|
25
|
+
this._scrollDown = false
|
|
26
|
+
|
|
27
|
+
/** @internal */
|
|
28
|
+
this._scrollListener = undefined
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
scroll = () => {
|
|
32
|
+
const delta = window.scrollY - this._prevYPos
|
|
33
|
+
|
|
34
|
+
if (this._scrollDown) {
|
|
35
|
+
if (delta < 0) {
|
|
36
|
+
this._scrollDown = false
|
|
37
|
+
}
|
|
38
|
+
} else if (delta > 0) {
|
|
39
|
+
this._scrollDown = true
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Only show the button when
|
|
44
|
+
* ... the current scroll position is greater than the window height (below-the-fold) and when
|
|
45
|
+
* ... scrolling up
|
|
46
|
+
*/
|
|
47
|
+
this._showButton = window.scrollY > window.innerHeight && !this._scrollDown
|
|
48
|
+
this._prevYPos = window.scrollY
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
connectedCallback() {
|
|
52
|
+
super.connectedCallback()
|
|
53
|
+
this._scrollListener = throttle(this.scroll, 100)
|
|
54
|
+
document.addEventListener("scroll", this._scrollListener, true)
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
disconnectedCallback() {
|
|
58
|
+
document.removeEventListener("scroll", this._scrollListener, true)
|
|
59
|
+
super.disconnectedCallback()
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
static scrollToTop() {
|
|
63
|
+
window.scrollTo({
|
|
64
|
+
top: 0,
|
|
65
|
+
left: 0,
|
|
66
|
+
behavior: "smooth",
|
|
67
|
+
})
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
render() {
|
|
71
|
+
const cssClasses = {
|
|
72
|
+
"scroll-top": true,
|
|
73
|
+
hide: !this._showButton,
|
|
74
|
+
}
|
|
75
|
+
return html`
|
|
76
|
+
<div class=${classMap(cssClasses)}>
|
|
77
|
+
<leu-button
|
|
78
|
+
icon="arrowUp"
|
|
79
|
+
label="Zum Seitenanfang"
|
|
80
|
+
round
|
|
81
|
+
@click="${() => LeuScrollTop.scrollToTop()}"
|
|
82
|
+
>
|
|
83
|
+
</leu-button>
|
|
84
|
+
</div>
|
|
85
|
+
`
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
.scroll-top {
|
|
2
|
+
overflow: hidden;
|
|
3
|
+
position: fixed;
|
|
4
|
+
right: 1.5rem;
|
|
5
|
+
z-index: 1099;
|
|
6
|
+
bottom: 8.125rem;
|
|
7
|
+
|
|
8
|
+
/* show */
|
|
9
|
+
height: 50px;
|
|
10
|
+
pointer-events: auto;
|
|
11
|
+
transition: height, bottom 0.9s, 0.6s ease;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.hide {
|
|
15
|
+
height: 0;
|
|
16
|
+
pointer-events: none;
|
|
17
|
+
transition: height, top 0.9s, 0.6s ease;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@keyframes hide-animation {
|
|
21
|
+
0% {
|
|
22
|
+
transform: rotate(0deg);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
100% {
|
|
26
|
+
transform: rotate(90deg);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.hide leu-button {
|
|
31
|
+
animation-name: hide-animation;
|
|
32
|
+
animation-duration: 0.45s;
|
|
33
|
+
animation-timing-function: ease;
|
|
34
|
+
}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { html } from "lit"
|
|
2
|
+
import "../leu-scroll-top.js"
|
|
3
|
+
|
|
4
|
+
export default {
|
|
5
|
+
title: "ScrollTop",
|
|
6
|
+
component: "leu-scroll-top",
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function Template() {
|
|
10
|
+
return html`
|
|
11
|
+
<p>
|
|
12
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
|
13
|
+
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
14
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
15
|
+
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
16
|
+
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
|
17
|
+
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
|
|
18
|
+
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
|
19
|
+
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
|
|
20
|
+
sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
|
21
|
+
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
|
22
|
+
erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
|
23
|
+
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
|
|
24
|
+
dolor sit amet.
|
|
25
|
+
</p>
|
|
26
|
+
<p>
|
|
27
|
+
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
|
|
28
|
+
molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero
|
|
29
|
+
eros et accumsan et iusto odio dignissim qui blandit praesent luptatum
|
|
30
|
+
zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum
|
|
31
|
+
dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
|
|
32
|
+
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
|
|
33
|
+
</p>
|
|
34
|
+
<p>
|
|
35
|
+
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
|
|
36
|
+
suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel
|
|
37
|
+
eum iriure dolor in hendrerit in vulputate velit esse molestie consequat,
|
|
38
|
+
vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et
|
|
39
|
+
iusto odio dignissim qui blandit praesent luptatum zzril delenit augue
|
|
40
|
+
duis dolore te feugait nulla facilisi.
|
|
41
|
+
</p>
|
|
42
|
+
<p>
|
|
43
|
+
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet
|
|
44
|
+
doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit
|
|
45
|
+
amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod
|
|
46
|
+
tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad
|
|
47
|
+
minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis
|
|
48
|
+
nisl ut aliquip ex ea commodo consequat.
|
|
49
|
+
</p>
|
|
50
|
+
<p>
|
|
51
|
+
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
|
|
52
|
+
molestie consequat, vel illum dolore eu feugiat nulla facilisis.
|
|
53
|
+
</p>
|
|
54
|
+
<p>
|
|
55
|
+
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
|
56
|
+
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
|
57
|
+
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
|
58
|
+
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
59
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
60
|
+
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
61
|
+
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam
|
|
62
|
+
aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed
|
|
63
|
+
tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna
|
|
64
|
+
no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor
|
|
65
|
+
sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
|
66
|
+
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
|
67
|
+
erat.
|
|
68
|
+
</p>
|
|
69
|
+
<p>
|
|
70
|
+
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
|
|
71
|
+
labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
|
72
|
+
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
|
|
73
|
+
sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
|
|
74
|
+
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
|
75
|
+
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
|
76
|
+
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
|
|
77
|
+
sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
|
|
78
|
+
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
|
79
|
+
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
|
80
|
+
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
|
|
81
|
+
sea takimata sanctus.
|
|
82
|
+
</p>
|
|
83
|
+
<p>
|
|
84
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
|
85
|
+
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
86
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
87
|
+
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
88
|
+
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
|
89
|
+
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
|
|
90
|
+
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
|
91
|
+
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
|
|
92
|
+
sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
|
93
|
+
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
|
94
|
+
erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
|
95
|
+
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
|
|
96
|
+
dolor sit amet.
|
|
97
|
+
</p>
|
|
98
|
+
<p>
|
|
99
|
+
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
|
|
100
|
+
molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero
|
|
101
|
+
eros et accumsan et iusto odio dignissim qui blandit praesent luptatum
|
|
102
|
+
zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum
|
|
103
|
+
dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
|
|
104
|
+
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
|
|
105
|
+
</p>
|
|
106
|
+
<p>
|
|
107
|
+
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
|
|
108
|
+
suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel
|
|
109
|
+
eum iriure dolor in hendrerit in vulputate velit esse molestie consequat,
|
|
110
|
+
vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et
|
|
111
|
+
iusto odio dignissim qui blandit praesent luptatum zzril delenit augue
|
|
112
|
+
duis dolore te feugait nulla facilisi.
|
|
113
|
+
</p>
|
|
114
|
+
<p>
|
|
115
|
+
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet
|
|
116
|
+
doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit
|
|
117
|
+
amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod
|
|
118
|
+
tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad
|
|
119
|
+
minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis
|
|
120
|
+
nisl ut aliquip ex ea commodo consequat.
|
|
121
|
+
</p>
|
|
122
|
+
<p>
|
|
123
|
+
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
|
|
124
|
+
molestie consequat, vel illum dolore eu feugiat nulla facilisis.
|
|
125
|
+
</p>
|
|
126
|
+
<p>
|
|
127
|
+
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
|
128
|
+
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
|
129
|
+
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
|
130
|
+
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
131
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
132
|
+
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
133
|
+
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam
|
|
134
|
+
aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed
|
|
135
|
+
tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna
|
|
136
|
+
no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor
|
|
137
|
+
sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
|
138
|
+
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
|
139
|
+
erat.
|
|
140
|
+
</p>
|
|
141
|
+
<p>
|
|
142
|
+
Consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut
|
|
143
|
+
labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
|
144
|
+
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
|
|
145
|
+
sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
|
|
146
|
+
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
|
147
|
+
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
|
148
|
+
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
|
|
149
|
+
sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit
|
|
150
|
+
amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt
|
|
151
|
+
ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et
|
|
152
|
+
accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no
|
|
153
|
+
sea takimata sanctus.
|
|
154
|
+
</p>
|
|
155
|
+
<p>
|
|
156
|
+
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy
|
|
157
|
+
eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
158
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
159
|
+
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
160
|
+
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam
|
|
161
|
+
nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed
|
|
162
|
+
diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
|
|
163
|
+
Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor
|
|
164
|
+
sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
|
165
|
+
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
|
166
|
+
erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea
|
|
167
|
+
rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum
|
|
168
|
+
dolor sit amet.
|
|
169
|
+
</p>
|
|
170
|
+
<p>
|
|
171
|
+
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
|
|
172
|
+
molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero
|
|
173
|
+
eros et accumsan et iusto odio dignissim qui blandit praesent luptatum
|
|
174
|
+
zzril delenit augue duis dolore te feugait nulla facilisi. Lorem ipsum
|
|
175
|
+
dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh
|
|
176
|
+
euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.
|
|
177
|
+
</p>
|
|
178
|
+
<p>
|
|
179
|
+
Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper
|
|
180
|
+
suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel
|
|
181
|
+
eum iriure dolor in hendrerit in vulputate velit esse molestie consequat,
|
|
182
|
+
vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et
|
|
183
|
+
iusto odio dignissim qui blandit praesent luptatum zzril delenit augue
|
|
184
|
+
duis dolore te feugait nulla facilisi.
|
|
185
|
+
</p>
|
|
186
|
+
<p>
|
|
187
|
+
Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet
|
|
188
|
+
doming id quod mazim placerat facer possim assum. Lorem ipsum dolor sit
|
|
189
|
+
amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod
|
|
190
|
+
tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad
|
|
191
|
+
minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis
|
|
192
|
+
nisl ut aliquip ex ea commodo consequat.
|
|
193
|
+
</p>
|
|
194
|
+
<p>
|
|
195
|
+
Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse
|
|
196
|
+
molestie consequat, vel illum dolore eu feugiat nulla facilisis.
|
|
197
|
+
</p>
|
|
198
|
+
<p>
|
|
199
|
+
At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd
|
|
200
|
+
gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem
|
|
201
|
+
ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod
|
|
202
|
+
tempor invidunt ut labore et dolore magna aliquyam erat, sed diam
|
|
203
|
+
voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet
|
|
204
|
+
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit
|
|
205
|
+
amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, At accusam
|
|
206
|
+
aliquyam diam diam dolore dolores duo eirmod eos erat, et nonumy sed
|
|
207
|
+
tempor et et invidunt justo labore Stet clita ea et gubergren, kasd magna
|
|
208
|
+
no rebum. sanctus sea sed takimata ut vero voluptua. est Lorem ipsum dolor
|
|
209
|
+
sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed
|
|
210
|
+
diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
|
|
211
|
+
erat.
|
|
212
|
+
</p>
|
|
213
|
+
<leu-scroll-top />
|
|
214
|
+
`
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export const Regular = Template.bind({})
|