hr-design-system-handlebars 1.11.9 → 1.11.11
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/.babelrc.json +14 -0
- package/.storybook/main.js +34 -52
- package/.storybook/preview-head.html +4 -1
- package/.storybook/preview.js +25 -35
- package/CHANGELOG.md +30 -0
- package/dist/assets/index.css +11 -3
- package/dist/views/components/base/load_dynamic.hbs +3 -0
- package/dist/views/components/teaser/ticker/teaser_ticker.hbs +29 -0
- package/package.json +20 -13
- package/src/assets/css/custom-utilities.css +3 -3
- package/src/assets/fixtures/teaser/teaser_ticker.inc.json +121 -0
- package/src/assets/fixtures/teaser/ticker_teaser_standard_100.json +25 -0
- package/src/assets/images/sportschau-image-5708_v-16to9.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-16to9__medium.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-16to9__retina.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-16to9__small.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1__large.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1__medium.jpg +0 -0
- package/src/assets/images/sportschau-image-5708_v-1to1__small.jpg +0 -0
- package/src/stories/BrandColors.data.js +42 -0
- package/src/stories/BrandColors.mdx +25 -0
- package/src/stories/{Colors.stories.mdx → Colors.data.js} +2 -18
- package/src/stories/Colors.mdx +19 -0
- package/src/stories/Example.mdx +56 -0
- package/src/stories/Example.stories.js +57 -0
- package/src/stories/{Fixtures.stories.mdx → Fixtures.mdx} +3 -5
- package/src/stories/{InstallAndUpdate.stories.mdx → InstallAndUpdate.mdx} +0 -2
- package/src/stories/Introduction.mdx +3 -0
- package/src/stories/{SvgOptimization.stories.mdx → SvgOptimization.mdx} +0 -2
- package/src/stories/{Typography.stories.mdx → Typography.mdx} +13 -14
- package/src/stories/{conventions-and-datastructure.stories.mdx → conventions-and-datastructure.mdx} +7 -9
- package/src/stories/views/components/Button.mdx +30 -0
- package/src/stories/views/components/Button_.stories.js +77 -0
- package/src/stories/views/components/base/load_dynamic.hbs +3 -0
- package/src/stories/views/components/event/calendar/{event_calendar_components.stories.mdx → event_calendar_components.mdx} +31 -87
- package/src/stories/views/components/event/calendar/event_calendar_components.stories.js +129 -0
- package/src/stories/views/components/geoTag/geoTag.mdx +32 -0
- package/src/stories/views/components/geoTag/geoTag.stories.js +35 -0
- package/src/stories/views/components/grid/grid.mdx +210 -0
- package/src/stories/views/components/grid/grid.stories.js +148 -0
- package/src/stories/views/components/label/label.mdx +54 -0
- package/src/stories/views/components/label/label.stories.js +183 -0
- package/src/stories/views/components/page/page.data.js +17 -0
- package/src/stories/views/components/page/page.mdx +110 -0
- package/src/stories/views/components/page/page.stories.js +50 -0
- package/src/stories/views/components/page/page_pagination.data.js +8 -0
- package/src/stories/views/components/page/page_pagination.mdx +8 -0
- package/src/stories/views/components/page/page_pagination.stories.js +34 -0
- package/src/stories/views/components/page/page_player.mdx +21 -0
- package/src/stories/views/components/page/page_player.stories.js +34 -0
- package/src/stories/views/components/site_header/{header.stories.mdx → header.mdx} +218 -152
- package/src/stories/views/components/site_header/header.stories.js +62 -0
- package/src/stories/views/components/teaser/cluster/teaser_cluster.mdx +32 -0
- package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.js +146 -0
- package/src/stories/views/components/teaser/components/teaser_byline.mdx +97 -0
- package/src/stories/views/components/teaser/components/teaser_byline.stories.js +30 -0
- package/src/stories/views/components/teaser/components/teaser_heading.mdx +96 -0
- package/src/stories/views/components/teaser/components/teaser_heading.stories.js +158 -0
- package/src/stories/views/components/teaser/components/teaser_text.mdx +36 -0
- package/src/stories/views/components/teaser/components/teaser_text.stories.js +74 -0
- package/src/stories/views/components/teaser/components/teaser_title.mdx +42 -0
- package/src/stories/views/components/teaser/components/teaser_title.stories.js +85 -0
- package/src/stories/views/components/teaser/components/teaser_topline.mdx +29 -0
- package/src/stories/views/components/teaser/components/teaser_topline.stories.js +27 -0
- package/src/stories/views/components/teaser/content_nav/teaser_content_nav.mdx +54 -0
- package/src/stories/views/components/teaser/content_nav/{teaser_content_nav.stories.mdx → teaser_content_nav.stories.js} +80 -61
- package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_100.json +1 -0
- package/src/stories/views/components/teaser/group_teaser/group.mdx +18 -0
- package/src/stories/views/components/teaser/group_teaser/group.stories.js +85 -0
- package/src/stories/views/components/teaser/podcast/podcast.mdx +11 -0
- package/src/stories/views/components/teaser/podcast/{podcast.stories.mdx → podcast.stories.js} +50 -39
- package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.mdx +10 -0
- package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.js +51 -0
- package/src/stories/views/components/teaser/tabbox/teaser_tabbox.mdx +10 -0
- package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.js +40 -0
- package/src/stories/views/components/teaser/teaser_alternativ.mdx +76 -0
- package/src/stories/views/components/teaser/teaser_alternativ.stories.js +126 -0
- package/src/stories/views/components/teaser/teaser_alternativ_av.mdx +75 -0
- package/src/stories/views/components/teaser/teaser_alternativ_av.stories.js +111 -0
- package/src/stories/views/components/teaser/teaser_event_calendar.mdx +57 -0
- package/src/stories/views/components/teaser/teaser_event_calendar.stories.js +92 -0
- package/src/stories/views/components/teaser/teaser_indextext.mdx +35 -0
- package/src/stories/views/components/teaser/teaser_indextext.stories.js +85 -0
- package/src/stories/views/components/teaser/teaser_logic/teaser_logic.mdx +23 -0
- package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.js +36 -0
- package/src/stories/views/components/teaser/teaser_poster.mdx +95 -0
- package/src/stories/views/components/teaser/teaser_poster.stories.js +67 -0
- package/src/stories/views/components/teaser/teaser_stage.mdx +15 -0
- package/src/stories/views/components/teaser/teaser_stage.stories.js +60 -0
- package/src/stories/views/components/teaser/teaser_standard.mdx +129 -0
- package/src/stories/views/components/teaser/teaser_standard.stories.js +166 -0
- package/src/stories/views/components/teaser/teaser_standard_av.mdx +38 -0
- package/src/stories/views/components/teaser/teaser_standard_av.stories.js +117 -0
- package/src/stories/views/components/teaser/teaser_standard_event.mdx +103 -0
- package/src/stories/views/components/teaser/teaser_standard_event.stories.js +119 -0
- package/src/stories/views/components/teaser/ticker/teaser_ticker.hbs +29 -0
- package/src/stories/views/components/teaser/ticker/teaser_ticker.mdx +10 -0
- package/src/stories/views/components/teaser/ticker/teaser_ticker.stories.js +34 -0
- package/.storybook/withThemeDecorator.js +0 -12
- package/src/stories/BrandColors.stories.mdx +0 -39
- package/src/stories/Example.stories.mdx +0 -93
- package/src/stories/Introduction.stories.mdx +0 -211
- package/src/stories/views/components/Button.stories.mdx +0 -82
- package/src/stories/views/components/geoTag/geoTag.stories.mdx +0 -61
- package/src/stories/views/components/grid/grid.stories.mdx +0 -275
- package/src/stories/views/components/label/label.stories.mdx +0 -200
- package/src/stories/views/components/page/page.stories.mdx +0 -144
- package/src/stories/views/components/page/page_pagination.stories.mdx +0 -36
- package/src/stories/views/components/page/page_player.stories.mdx +0 -43
- package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.mdx +0 -97
- package/src/stories/views/components/teaser/components/teaser_byline.stories.mdx +0 -78
- package/src/stories/views/components/teaser/components/teaser_heading.stories.mdx +0 -219
- package/src/stories/views/components/teaser/components/teaser_text.stories.mdx +0 -94
- package/src/stories/views/components/teaser/components/teaser_title.stories.mdx +0 -124
- package/src/stories/views/components/teaser/components/teaser_topline.stories.mdx +0 -63
- package/src/stories/views/components/teaser/group_teaser/group.stories.mdx +0 -85
- package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.mdx +0 -52
- package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.mdx +0 -39
- package/src/stories/views/components/teaser/teaser_alternativ.stories.mdx +0 -163
- package/src/stories/views/components/teaser/teaser_alternativ_av.stories.mdx +0 -142
- package/src/stories/views/components/teaser/teaser_event_calendar.stories.mdx +0 -131
- package/src/stories/views/components/teaser/teaser_indextext.stories.mdx +0 -111
- package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.mdx +0 -39
- package/src/stories/views/components/teaser/teaser_poster.stories.mdx +0 -130
- package/src/stories/views/components/teaser/teaser_stage.stories.mdx +0 -53
- package/src/stories/views/components/teaser/teaser_standard.stories.mdx +0 -170
- package/src/stories/views/components/teaser/teaser_standard_av.stories.mdx +0 -95
- package/src/stories/views/components/teaser/teaser_standard_event.stories.mdx +0 -150
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
|
|
2
|
+
import * as TeaserTitleStories from './teaser_title.stories'
|
|
3
|
+
|
|
4
|
+
<Meta of={TeaserTitleStories} />
|
|
5
|
+
|
|
6
|
+
# Titel
|
|
7
|
+
|
|
8
|
+
## Beschreibung
|
|
9
|
+
|
|
10
|
+
In der Titel-Komponente wird der Titel des Artikels dargestellt. Textgröße und Schriftart werden
|
|
11
|
+
anhand der Parameter <b>teaserType</b> und <b>fontVariant</b> in der inkludierten Sub-Komponente <b>teaser_title_classes</b> ermitelt.
|
|
12
|
+
|
|
13
|
+
## Sub-Komponenten
|
|
14
|
+
|
|
15
|
+
Die Titel-Komponente inkludiert folgende Komponenten:
|
|
16
|
+
|
|
17
|
+
<ul>
|
|
18
|
+
<li>
|
|
19
|
+
components/teaser/components/<b>teaser\_title\_classes</b>
|
|
20
|
+
</li>
|
|
21
|
+
</ul>
|
|
22
|
+
|
|
23
|
+
## Parameter
|
|
24
|
+
|
|
25
|
+
Die Titel-Komponente benötigt folgende Parameter:
|
|
26
|
+
|
|
27
|
+
<ArgsTable story="Titel Serif - Hero" />
|
|
28
|
+
|
|
29
|
+
## Verwendung
|
|
30
|
+
|
|
31
|
+
Die Titel-Komponente wird in handlebars wie folgt eingebaut:
|
|
32
|
+
|
|
33
|
+
```html
|
|
34
|
+
{{> components/teaser/components/teaser_title text=title fontVariant=fontVariant size=size
|
|
35
|
+
teaserType=teaserType}}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
<Canvas withToolbar>
|
|
39
|
+
<Story of={TeaserTitleStories.TitelSerifHero} />
|
|
40
|
+
<Story of={TeaserTitleStories.TitelSerifNormal} />
|
|
41
|
+
<Story of={TeaserTitleStories.TitelSerifSmall} />
|
|
42
|
+
</Canvas>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import titleComponent from './teaser_title.hbs'
|
|
2
|
+
|
|
3
|
+
const Template = ({ _text, ...args }) => {
|
|
4
|
+
// You can either use a function to create DOM elements or use a plain html string!
|
|
5
|
+
// return `<span>${title}</span>`;
|
|
6
|
+
return titleComponent({ _text, ...args })
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
title: 'Komponenten/Teaser/Komponenten/Titel',
|
|
11
|
+
|
|
12
|
+
argTypes: {
|
|
13
|
+
_text: {
|
|
14
|
+
control: 'text',
|
|
15
|
+
description: 'Titel',
|
|
16
|
+
},
|
|
17
|
+
|
|
18
|
+
_size: {
|
|
19
|
+
options: ['hero', '100', '50', '33', '25'],
|
|
20
|
+
|
|
21
|
+
control: {
|
|
22
|
+
type: 'select',
|
|
23
|
+
},
|
|
24
|
+
|
|
25
|
+
description: 'Größe der Überschrift',
|
|
26
|
+
|
|
27
|
+
table: {
|
|
28
|
+
defaultValue: {
|
|
29
|
+
summary: 'hero',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
_fontVariant: {
|
|
35
|
+
description: 'Schriftvariante',
|
|
36
|
+
|
|
37
|
+
control: {
|
|
38
|
+
type: 'inline-radio',
|
|
39
|
+
options: ['serif', 'sans-serif'],
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
table: {
|
|
43
|
+
defaultValue: {
|
|
44
|
+
summary: 'serif',
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const TitelSerifHero = {
|
|
52
|
+
render: Template.bind({}),
|
|
53
|
+
name: 'Titel Serif - Hero',
|
|
54
|
+
|
|
55
|
+
args: {
|
|
56
|
+
_text: 'Dies ist der Titel eines 100%-Teasers',
|
|
57
|
+
_size: 'hero',
|
|
58
|
+
_fontVariant: 'serif',
|
|
59
|
+
_teaserType: 'standard',
|
|
60
|
+
},
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const TitelSerifNormal = {
|
|
64
|
+
render: Template.bind({}),
|
|
65
|
+
name: 'Titel Serif - normal',
|
|
66
|
+
|
|
67
|
+
args: {
|
|
68
|
+
_text: 'Dies ist der Titel eines 66%-, 50%- oder 33%-Teasers',
|
|
69
|
+
_size: '33',
|
|
70
|
+
_fontVariant: 'serif',
|
|
71
|
+
_teaserType: 'standard',
|
|
72
|
+
},
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const TitelSerifSmall = {
|
|
76
|
+
render: Template.bind({}),
|
|
77
|
+
name: 'Titel Serif - small',
|
|
78
|
+
|
|
79
|
+
args: {
|
|
80
|
+
_text: 'Dies ist der Titel eines 25%-Teasers',
|
|
81
|
+
_size: '25',
|
|
82
|
+
_fontVariant: 'serif',
|
|
83
|
+
_teaserType: 'standard',
|
|
84
|
+
},
|
|
85
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
|
|
2
|
+
import * as TeaserToplineStories from './teaser_topline.stories'
|
|
3
|
+
|
|
4
|
+
<Meta of={TeaserToplineStories} />
|
|
5
|
+
|
|
6
|
+
# Topline
|
|
7
|
+
|
|
8
|
+
## Beschreibung
|
|
9
|
+
|
|
10
|
+
In der Topline-Komponente wird die Dachzeile des Artikels dargestellt.
|
|
11
|
+
|
|
12
|
+
## Parameter
|
|
13
|
+
|
|
14
|
+
Die Topline-Komponente benötigt folgende Parameter:
|
|
15
|
+
|
|
16
|
+
<ArgsTable story="default" />
|
|
17
|
+
|
|
18
|
+
## Verwendung
|
|
19
|
+
|
|
20
|
+
Die Topline-Komponente wird in handlebars wie folgt eingebaut:
|
|
21
|
+
|
|
22
|
+
```html
|
|
23
|
+
{{> components/teaser/components/teaser_topline text=topline readMore=readMore
|
|
24
|
+
teaserType=teaserType}}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
<Canvas withToolbar>
|
|
28
|
+
<Story of={TeaserToplineStories.Default} />
|
|
29
|
+
</Canvas>
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import topline from './teaser_topline.hbs'
|
|
2
|
+
|
|
3
|
+
const Template = ({ _text, ...args }) => {
|
|
4
|
+
// You can either use a function to create DOM elements or use a plain html string!
|
|
5
|
+
// return `<span>${topline}</span>`;
|
|
6
|
+
return topline({ _text, ...args })
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export default {
|
|
10
|
+
title: 'Komponenten/Teaser/Komponenten/Topline',
|
|
11
|
+
|
|
12
|
+
argTypes: {
|
|
13
|
+
_text: {
|
|
14
|
+
control: 'text',
|
|
15
|
+
description: 'Dachzeilentext',
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export const Default = {
|
|
21
|
+
render: Template.bind({}),
|
|
22
|
+
name: 'default',
|
|
23
|
+
|
|
24
|
+
args: {
|
|
25
|
+
_text: 'Dies ist die Dachzeile',
|
|
26
|
+
},
|
|
27
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/blocks'
|
|
2
|
+
import * as TeaserContentNavStories from './teaser_content_nav.stories'
|
|
3
|
+
|
|
4
|
+
<Meta of={TeaserContentNavStories} />
|
|
5
|
+
|
|
6
|
+
export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
7
|
+
// You can either use a function to create DOM elements or use a plain html string!
|
|
8
|
+
// return `<div>${label}</div>`;
|
|
9
|
+
let brand =
|
|
10
|
+
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
11
|
+
return teaser({ brand, ...args })
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
# Content-Navi-Teaser
|
|
15
|
+
|
|
16
|
+
## Beschreibung
|
|
17
|
+
|
|
18
|
+
### Liste
|
|
19
|
+
|
|
20
|
+
<Canvas withToolbar>
|
|
21
|
+
<Story of={TeaserContentNavStories.Liste} />
|
|
22
|
+
</Canvas>
|
|
23
|
+
### Liste mit Filter
|
|
24
|
+
<Canvas withToolbar>
|
|
25
|
+
<Story of={TeaserContentNavStories.ListeMitFilter} />
|
|
26
|
+
</Canvas>
|
|
27
|
+
### Fluß
|
|
28
|
+
<Canvas withToolbar>
|
|
29
|
+
<Story of={TeaserContentNavStories.Fluss} />
|
|
30
|
+
</Canvas>
|
|
31
|
+
### Fluss mit Filter
|
|
32
|
+
<Canvas withToolbar>
|
|
33
|
+
<Story of={TeaserContentNavStories.FlussMitFilter} />
|
|
34
|
+
</Canvas>
|
|
35
|
+
### Gemischt
|
|
36
|
+
<Canvas withToolbar>
|
|
37
|
+
<Story of={TeaserContentNavStories.Gemischt} />
|
|
38
|
+
</Canvas>
|
|
39
|
+
### Gemischt mit Filter
|
|
40
|
+
<Canvas withToolbar>
|
|
41
|
+
<Story of={TeaserContentNavStories.GemischtMitFilter} />
|
|
42
|
+
</Canvas>
|
|
43
|
+
### Dropdown
|
|
44
|
+
<Canvas withToolbar>
|
|
45
|
+
<Story of={TeaserContentNavStories.Dropdown} />
|
|
46
|
+
</Canvas>
|
|
47
|
+
### Dropdown mit Filter
|
|
48
|
+
<Canvas withToolbar>
|
|
49
|
+
<Story of={TeaserContentNavStories.DropdownMitFilter} />
|
|
50
|
+
</Canvas>
|
|
51
|
+
### Dropdown mit Subgruppen
|
|
52
|
+
<Canvas withToolbar>
|
|
53
|
+
<Story of={TeaserContentNavStories.DropdownMitSubgruppen} />
|
|
54
|
+
</Canvas>
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
|
-
import 'core-js/actual/structured-clone'
|
|
3
1
|
import { addLabel, removeLabel, changeTeaserSize } from '../labelHelper'
|
|
4
2
|
import { addCommentLink } from '../jsonHelper'
|
|
5
3
|
|
|
@@ -16,102 +14,123 @@ import contentNavDropdown_autosuggest from '../fixtures/teaser_content_nav_dropd
|
|
|
16
14
|
import contentNavDropdown from '../fixtures/teaser_content_nav_dropdown_100.json'
|
|
17
15
|
import contentNavDropdown_subgroups from '../fixtures/teaser_content_nav_dropdown_subgroups.json'
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
18
|
+
// You can either use a function to create DOM elements or use a plain html string!
|
|
19
|
+
// return `<div>${label}</div>`;
|
|
20
|
+
let brand =
|
|
21
|
+
undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
|
|
22
|
+
return teaser({ brand, ...args })
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default {
|
|
26
|
+
title: 'Komponenten/Teaser/Content-Navi',
|
|
27
|
+
|
|
28
|
+
parameters: {
|
|
22
29
|
layout: 'fullscreen',
|
|
30
|
+
|
|
23
31
|
chromatic: {
|
|
24
32
|
viewports: [360, 768, 1024],
|
|
25
33
|
},
|
|
26
|
-
}
|
|
27
|
-
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
argTypes: {
|
|
28
37
|
realTeaserSize: {
|
|
29
38
|
control: {
|
|
30
39
|
type: 'select',
|
|
31
40
|
options: ['100', '66', '50', '33', '25'],
|
|
32
41
|
},
|
|
42
|
+
|
|
33
43
|
description: 'Teaser Größe',
|
|
44
|
+
|
|
34
45
|
table: {
|
|
35
46
|
defaultValue: {
|
|
36
47
|
summary: '100',
|
|
37
48
|
},
|
|
38
49
|
},
|
|
39
50
|
},
|
|
51
|
+
|
|
40
52
|
contentNav: {
|
|
41
53
|
table: {
|
|
42
54
|
expanded: false,
|
|
43
55
|
disable: false,
|
|
44
56
|
},
|
|
45
57
|
},
|
|
58
|
+
|
|
46
59
|
teaserSize: {
|
|
47
60
|
control: {
|
|
48
61
|
type: 'select',
|
|
49
62
|
options: ['100', '66', '50', '33', '25'],
|
|
50
63
|
},
|
|
64
|
+
|
|
51
65
|
description: 'Teaser Größe',
|
|
66
|
+
|
|
52
67
|
table: {
|
|
53
68
|
defaultValue: {
|
|
54
69
|
summary: '100',
|
|
55
70
|
},
|
|
56
71
|
},
|
|
57
72
|
},
|
|
58
|
-
}
|
|
59
|
-
|
|
73
|
+
},
|
|
74
|
+
|
|
75
|
+
decorators: [
|
|
60
76
|
(Story) => {
|
|
61
77
|
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
62
|
-
|
|
63
|
-
|
|
78
|
+
${Story()}
|
|
79
|
+
</div></div>`
|
|
64
80
|
},
|
|
65
|
-
]
|
|
66
|
-
|
|
81
|
+
],
|
|
82
|
+
}
|
|
67
83
|
|
|
68
|
-
export const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
84
|
+
export const Liste = {
|
|
85
|
+
render: Template.bind({}),
|
|
86
|
+
name: 'Liste',
|
|
87
|
+
args: contentNavList,
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export const ListeMitFilter = {
|
|
91
|
+
render: Template.bind({}),
|
|
92
|
+
name: 'Liste mit Filter',
|
|
93
|
+
args: contentNavList_autosuggest,
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export const Fluss = {
|
|
97
|
+
render: Template.bind({}),
|
|
98
|
+
name: 'Fluss',
|
|
99
|
+
args: contentNavFlow,
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export const FlussMitFilter = {
|
|
103
|
+
render: Template.bind({}),
|
|
104
|
+
name: 'Fluss mit Filter',
|
|
105
|
+
args: contentNavFlow_autosuggest,
|
|
74
106
|
}
|
|
75
107
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<b>Dropdown</b>
|
|
106
|
-
<Story name="Dropdown" args={contentNavDropdown}>
|
|
107
|
-
{Template.bind({})}
|
|
108
|
-
</Story>
|
|
109
|
-
<b>Dropdown mit Filter</b>
|
|
110
|
-
<Story name="Dropdown mit Filter" args={contentNavDropdown_autosuggest}>
|
|
111
|
-
{Template.bind({})}
|
|
112
|
-
</Story>
|
|
113
|
-
<b>Dropdown mit Subgruppen</b>
|
|
114
|
-
<Story name="Dropdown mit Subgruppen" args={contentNavDropdown_subgroups}>
|
|
115
|
-
{Template.bind({})}
|
|
116
|
-
</Story>
|
|
117
|
-
</Preview>
|
|
108
|
+
export const Gemischt = {
|
|
109
|
+
render: Template.bind({}),
|
|
110
|
+
name: 'Gemischt',
|
|
111
|
+
args: contentNavMixed,
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export const GemischtMitFilter = {
|
|
115
|
+
render: Template.bind({}),
|
|
116
|
+
name: 'Gemischt mit Filter',
|
|
117
|
+
args: contentNavMixed_autosuggest,
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export const Dropdown = {
|
|
121
|
+
render: Template.bind({}),
|
|
122
|
+
name: 'Dropdown',
|
|
123
|
+
args: contentNavDropdown,
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export const DropdownMitFilter = {
|
|
127
|
+
render: Template.bind({}),
|
|
128
|
+
name: 'Dropdown mit Filter',
|
|
129
|
+
args: contentNavDropdown_autosuggest,
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
export const DropdownMitSubgruppen = {
|
|
133
|
+
render: Template.bind({}),
|
|
134
|
+
name: 'Dropdown mit Subgruppen',
|
|
135
|
+
args: contentNavDropdown_subgroups,
|
|
136
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"isSsi":true,"logicItem":{"includePath":"components/teaser/ticker/teaser_ticker","includeModel":{"byline":"Byline","title":"Eintracht: +++ Eintracht-Halbfinale terminiert +++ Frankfurter Gala in Barcelona jährt sich +++ Berichte: Aouar in Gesprächen mit AS Rom +++","topline":"","headingFontVariant":"serif","extendedTitle":"","teaserType":"standard","teaserSize":"100","realTeaserSize":"100","isMobile1to1":false,"teaserDate":{"htmlDateTime":"2022-04-17T19:30+0200","htmlDate":"20.02.1983","date":"17.04.22","dateSeparatorTime":"17.04.22, 19:30"},"hasByline":false,"teaserInfo":{"showTeaserInfo":false,"showTeaserInfoSection":true,"showTeaserInfoChannel":false,"showTeaserInfoAll":false,"showTeaserInfoDate":false,"showTeaserInfoDateTime":true,"showTeaserInfoProgramRef":false},"teaserImage":{"alttext":"Lorem ipsum","copyrightWithLinks":"Vorname Nachname","responsiveImage":{"asPicture":false,"asImage":true,"fallback":"images/sportschau-image-5708_v-16to9__medium.jpg","sources":[{"sizes":"(min-width: 1024px) 960px, (min-width: 640px) calc(100vw - 4rem), 100vw","srcset":"images/sportschau-image-5708_v-16to9__small.jpg 320w, images/sportschau-image-5708_v-16to9__medium.jpg 480w, images/sportschau-image-5708_v-16to9__medium__extended.jpg 640w, images/sportschau-image-5708_v-16to9.jpg 960w, images/sportschau-image-5708_v-16to9__retina.jpg 1920w"}]}},"displayTeaserBodyAsImageOverlay":false,"hasMediaButtons":false,"dontLazyload":true,"isStandardTeaser":true,"isHeroTeaser":true,"isMediaTeaser":false,"isGuide":false,"isProgram":false,"isEvent":false,"isTicker":true,"isAudio":false,"isVideo":false,"isPodcast":false,"isPodcastEpisode":false,"isExtOrBrandLink":false,"isAuthor":false,"copyright":"Copyright Text","audioAuthor":"Audio Author","hasStatus":false,"hasTeaserItem":true,"moreThenOneEvent":false,"moreThenTwoEvents":false,"firstInstant":{"startDate":{"monthNameShort":"APR","weekdayNameShort":"Do","day":"9"}},"lastInstant":{"startDate":{"monthNameShort":"APR","weekdayNameShort":"Fr","day":"10"}},"allowAVConsumption":false,"displayEpgInfos":false,"aspectRatio":"ar--teaserTop","hideGeotag":false,"hideEditableByline":true,"doTracking":true,"trackingForArdMediatheksLink":false,"showMediatheksLink":false,"showAirdate":false,"showProfileInfoAsByline":false,"obsolet_brandOfTeaser":"hessenschau","documentSection":"Gesellschaft","headlineTag":"h1","icon":"ortsmarke","imageVariant":"topteaser","shorttext":"Hier bekommen Sie immer die neuesten Nachrichten über Eintracht Frankfurt.","hideBylineAndShorttext":false,"sophoraId":"rueckkehr-nach-abschiebung-wolfhagen--100","profiles":"","teaserLead":{"avDocument":"","image":""},"geotag":[{"title":"Frankfurt"}],"link":{"url":"/teaser1","webviewUrl":"/teaser1#webview","isTargetBlank":false,"hasIcon":false,"iconName":"iconName","readMoreText":{"readMoreScreenreader":"Zum Artikel","readMore":"mehr","readMoreLong":"read More Long"}},"label":{"type":"ticker","loca":"label_ticker","byline":{"bylineSsi":"BylineText aus ssi","bylineText":"BylineText"}}}}}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
|
|
2
|
+
import * as GroupStories from './group.stories'
|
|
3
|
+
|
|
4
|
+
<Meta of={GroupStories} />
|
|
5
|
+
|
|
6
|
+
# Button
|
|
7
|
+
|
|
8
|
+
Ein toller Einleitungstext für unsere `Teaser Gruppen` Komponente:
|
|
9
|
+
|
|
10
|
+
<Canvas withToolbar>
|
|
11
|
+
<Story of={GroupStories.$100GruppeMitUberschrift} />
|
|
12
|
+
<Story of={GroupStories.$100GruppeMitUberschriftHighlight1} />
|
|
13
|
+
<Story of={GroupStories.$100GruppeMitUberschriftHighlight2} />
|
|
14
|
+
<Story of={GroupStories.$100GruppeMitContentNavigationAufklapp} />
|
|
15
|
+
<Story of={GroupStories.$100GruppeMitRelatedContent} />
|
|
16
|
+
</Canvas>
|
|
17
|
+
|
|
18
|
+
<ArgsTable story="main" />
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import groupTeaser from './group_teaser.hbs'
|
|
2
|
+
import groupTeaserAccented from './group_teaser_accented.hbs'
|
|
3
|
+
import teaserGroup100 from '../fixtures/teaser_group_100.json'
|
|
4
|
+
import teaserGroupRelatedContent100 from '../fixtures/teaser_group_related_content_100.json'
|
|
5
|
+
import teaserGroup100highlight from '../fixtures/teaser_group_100_highlight.json'
|
|
6
|
+
import teaserGroup100highlight2 from '../fixtures/teaser_group_100_highlight_2.json'
|
|
7
|
+
|
|
8
|
+
import teaserGroup100contentnav from '../fixtures/teaser_group_100_contentnav.json'
|
|
9
|
+
|
|
10
|
+
const groupTeaserTemplate = ({ text, ...args }) => {
|
|
11
|
+
// You can either use a function to create DOM elements or use a plain html string!
|
|
12
|
+
// return `<div>${label}</div>`;
|
|
13
|
+
return groupTeaser({ text, ...args })
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
const groupTeaserAccentedTemplate = ({ text, ...args }) => {
|
|
17
|
+
// You can either use a function to create DOM elements or use a plain html string!
|
|
18
|
+
// return `<div>${label}</div>`;
|
|
19
|
+
return groupTeaserAccented({ text, ...args })
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export default {
|
|
23
|
+
title: 'Komponenten/Teaser/Gruppen',
|
|
24
|
+
|
|
25
|
+
argTypes: {
|
|
26
|
+
teaserSize: {
|
|
27
|
+
control: {
|
|
28
|
+
type: 'select',
|
|
29
|
+
options: ['100', '66', '50', '33', '25'],
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
description: 'Teaser Größe',
|
|
33
|
+
|
|
34
|
+
table: {
|
|
35
|
+
defaultValue: {
|
|
36
|
+
summary: '100',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
|
|
42
|
+
parameters: {
|
|
43
|
+
layout: 'fullscreen',
|
|
44
|
+
},
|
|
45
|
+
|
|
46
|
+
decorators: [
|
|
47
|
+
(Story) => {
|
|
48
|
+
return `<div class="grid my-5 grid-page">
|
|
49
|
+
<div class="grid grid-cols-12 py-6 bg-white sm:px-9.5 col-full sm:col-main gap-x-6 md:gap-y-14 gap-y-6">
|
|
50
|
+
${Story()}
|
|
51
|
+
</div>
|
|
52
|
+
</div>`
|
|
53
|
+
},
|
|
54
|
+
],
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const $100GruppeMitUberschrift = {
|
|
58
|
+
render: groupTeaserTemplate.bind({}),
|
|
59
|
+
name: '100% Gruppe mit Überschrift',
|
|
60
|
+
args: teaserGroup100.includeModel,
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export const $100GruppeMitUberschriftHighlight1 = {
|
|
64
|
+
render: groupTeaserTemplate.bind({}),
|
|
65
|
+
name: '100% Gruppe mit Überschrift Highlight 1',
|
|
66
|
+
args: teaserGroup100highlight.includeModel,
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export const $100GruppeMitUberschriftHighlight2 = {
|
|
70
|
+
render: groupTeaserTemplate.bind({}),
|
|
71
|
+
name: '100% Gruppe mit Überschrift Highlight 2',
|
|
72
|
+
args: teaserGroup100highlight2.includeModel,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export const $100GruppeMitContentNavigationAufklapp = {
|
|
76
|
+
render: groupTeaserAccentedTemplate.bind({}),
|
|
77
|
+
name: '100% Gruppe mit Content Navigation Aufklapp',
|
|
78
|
+
args: teaserGroup100contentnav.includeModel,
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export const $100GruppeMitRelatedContent = {
|
|
82
|
+
render: groupTeaserTemplate.bind({}),
|
|
83
|
+
name: '100% Gruppe mit Related Content',
|
|
84
|
+
args: teaserGroupRelatedContent100.includeModel,
|
|
85
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/blocks'
|
|
2
|
+
import * as PodcastStories from './podcast.stories'
|
|
3
|
+
|
|
4
|
+
<Meta of={PodcastStories} />
|
|
5
|
+
|
|
6
|
+
<Canvas withToolbar>
|
|
7
|
+
<Story of={PodcastStories.$100EpisodePlayer} />
|
|
8
|
+
<Story of={PodcastStories.$50EpisodePlayer} />
|
|
9
|
+
<Story of={PodcastStories.$100ChannelPlayer} />
|
|
10
|
+
<Story of={PodcastStories.$50ChannelPlayer} />
|
|
11
|
+
</Canvas>
|
package/src/stories/views/components/teaser/podcast/{podcast.stories.mdx → podcast.stories.js}
RENAMED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
|
-
|
|
3
1
|
import podcast from './podcast.hbs'
|
|
4
2
|
import podcastPlaylist from './podcast-playlist.hbs'
|
|
5
3
|
import episodeJson from '../fixtures/teaser_podcast.json'
|
|
@@ -7,28 +5,7 @@ import episodeJson50 from '../fixtures/teaser_podcast_50.json'
|
|
|
7
5
|
import playlistJson100 from '../fixtures/teaser_podcast_playlist.json'
|
|
8
6
|
import playlistJson50 from '../fixtures/teaser_podcast_playlist_50.json'
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
title="Komponenten/Teaser/Podcast"
|
|
12
|
-
parameters={{
|
|
13
|
-
chromatic: {
|
|
14
|
-
viewports: [360, 768, 1024],
|
|
15
|
-
diffThreshold: 0.5,
|
|
16
|
-
},
|
|
17
|
-
layout: 'fullscreen',
|
|
18
|
-
}}
|
|
19
|
-
argTypes={{}}
|
|
20
|
-
decorators={[
|
|
21
|
-
(Story) => {
|
|
22
|
-
return `<div class="grid grid-page">
|
|
23
|
-
<div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
24
|
-
${Story()}
|
|
25
|
-
</div>
|
|
26
|
-
</div>`
|
|
27
|
-
},
|
|
28
|
-
]}
|
|
29
|
-
/>
|
|
30
|
-
|
|
31
|
-
export const episodeTemplate = (args, { globals: { customConditionalToolbar } }) => {
|
|
8
|
+
const episodeTemplate = (args, { globals: { customConditionalToolbar } }) => {
|
|
32
9
|
// You can either use a function to create DOM elements or use a plain html string!
|
|
33
10
|
// return `<div>${label}</div>`;
|
|
34
11
|
let brand =
|
|
@@ -36,7 +13,7 @@ export const episodeTemplate = (args, { globals: { customConditionalToolbar } })
|
|
|
36
13
|
return podcast({ brand, ...args })
|
|
37
14
|
}
|
|
38
15
|
|
|
39
|
-
|
|
16
|
+
const playlistTemplate = (args, { globals: { customConditionalToolbar } }) => {
|
|
40
17
|
// You can either use a function to create DOM elements or use a plain html string!
|
|
41
18
|
// return `<div>${label}</div>`;
|
|
42
19
|
let brand =
|
|
@@ -44,17 +21,51 @@ export const playlistTemplate = (args, { globals: { customConditionalToolbar } }
|
|
|
44
21
|
return podcastPlaylist({ brand, ...args })
|
|
45
22
|
}
|
|
46
23
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
24
|
+
export default {
|
|
25
|
+
title: 'Komponenten/Teaser/Podcast',
|
|
26
|
+
|
|
27
|
+
parameters: {
|
|
28
|
+
chromatic: {
|
|
29
|
+
viewports: [360, 768, 1024],
|
|
30
|
+
diffThreshold: 0.5,
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
layout: 'fullscreen',
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
argTypes: {},
|
|
37
|
+
|
|
38
|
+
decorators: [
|
|
39
|
+
(Story) => {
|
|
40
|
+
return `<div class="grid grid-page">
|
|
41
|
+
<div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
42
|
+
${Story()}
|
|
43
|
+
</div>
|
|
44
|
+
</div>`
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export const $100EpisodePlayer = {
|
|
50
|
+
render: episodeTemplate.bind({}),
|
|
51
|
+
name: '100% Episode Player',
|
|
52
|
+
args: episodeJson.logicItem.includeModel,
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export const $50EpisodePlayer = {
|
|
56
|
+
render: episodeTemplate.bind({}),
|
|
57
|
+
name: '50% Episode Player',
|
|
58
|
+
args: episodeJson50.logicItem.includeModel,
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export const $100ChannelPlayer = {
|
|
62
|
+
render: playlistTemplate.bind({}),
|
|
63
|
+
name: '100% Channel Player',
|
|
64
|
+
args: playlistJson100.logicItem.includeModel,
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export const $50ChannelPlayer = {
|
|
68
|
+
render: playlistTemplate.bind({}),
|
|
69
|
+
name: '50% Channel Player',
|
|
70
|
+
args: playlistJson50.logicItem.includeModel,
|
|
71
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/blocks'
|
|
2
|
+
import { resetComponents } from '@storybook/components'
|
|
3
|
+
import * as PodcastSubscribeButtonStories from './podcast_subscribe_button.stories'
|
|
4
|
+
|
|
5
|
+
<Meta of={PodcastSubscribeButtonStories} />
|
|
6
|
+
|
|
7
|
+
<Canvas withToolbar>
|
|
8
|
+
<Story of={PodcastSubscribeButtonStories.SubscribeButtonClose} />
|
|
9
|
+
<Story of={PodcastSubscribeButtonStories.SubscribeButtonOpen} />
|
|
10
|
+
</Canvas>
|