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.
Files changed (129) hide show
  1. package/.babelrc.json +14 -0
  2. package/.storybook/main.js +34 -52
  3. package/.storybook/preview-head.html +4 -1
  4. package/.storybook/preview.js +25 -35
  5. package/CHANGELOG.md +30 -0
  6. package/dist/assets/index.css +11 -3
  7. package/dist/views/components/base/load_dynamic.hbs +3 -0
  8. package/dist/views/components/teaser/ticker/teaser_ticker.hbs +29 -0
  9. package/package.json +20 -13
  10. package/src/assets/css/custom-utilities.css +3 -3
  11. package/src/assets/fixtures/teaser/teaser_ticker.inc.json +121 -0
  12. package/src/assets/fixtures/teaser/ticker_teaser_standard_100.json +25 -0
  13. package/src/assets/images/sportschau-image-5708_v-16to9.jpg +0 -0
  14. package/src/assets/images/sportschau-image-5708_v-16to9__medium.jpg +0 -0
  15. package/src/assets/images/sportschau-image-5708_v-16to9__retina.jpg +0 -0
  16. package/src/assets/images/sportschau-image-5708_v-16to9__small.jpg +0 -0
  17. package/src/assets/images/sportschau-image-5708_v-1to1.jpg +0 -0
  18. package/src/assets/images/sportschau-image-5708_v-1to1__large.jpg +0 -0
  19. package/src/assets/images/sportschau-image-5708_v-1to1__medium.jpg +0 -0
  20. package/src/assets/images/sportschau-image-5708_v-1to1__small.jpg +0 -0
  21. package/src/stories/BrandColors.data.js +42 -0
  22. package/src/stories/BrandColors.mdx +25 -0
  23. package/src/stories/{Colors.stories.mdx → Colors.data.js} +2 -18
  24. package/src/stories/Colors.mdx +19 -0
  25. package/src/stories/Example.mdx +56 -0
  26. package/src/stories/Example.stories.js +57 -0
  27. package/src/stories/{Fixtures.stories.mdx → Fixtures.mdx} +3 -5
  28. package/src/stories/{InstallAndUpdate.stories.mdx → InstallAndUpdate.mdx} +0 -2
  29. package/src/stories/Introduction.mdx +3 -0
  30. package/src/stories/{SvgOptimization.stories.mdx → SvgOptimization.mdx} +0 -2
  31. package/src/stories/{Typography.stories.mdx → Typography.mdx} +13 -14
  32. package/src/stories/{conventions-and-datastructure.stories.mdx → conventions-and-datastructure.mdx} +7 -9
  33. package/src/stories/views/components/Button.mdx +30 -0
  34. package/src/stories/views/components/Button_.stories.js +77 -0
  35. package/src/stories/views/components/base/load_dynamic.hbs +3 -0
  36. package/src/stories/views/components/event/calendar/{event_calendar_components.stories.mdx → event_calendar_components.mdx} +31 -87
  37. package/src/stories/views/components/event/calendar/event_calendar_components.stories.js +129 -0
  38. package/src/stories/views/components/geoTag/geoTag.mdx +32 -0
  39. package/src/stories/views/components/geoTag/geoTag.stories.js +35 -0
  40. package/src/stories/views/components/grid/grid.mdx +210 -0
  41. package/src/stories/views/components/grid/grid.stories.js +148 -0
  42. package/src/stories/views/components/label/label.mdx +54 -0
  43. package/src/stories/views/components/label/label.stories.js +183 -0
  44. package/src/stories/views/components/page/page.data.js +17 -0
  45. package/src/stories/views/components/page/page.mdx +110 -0
  46. package/src/stories/views/components/page/page.stories.js +50 -0
  47. package/src/stories/views/components/page/page_pagination.data.js +8 -0
  48. package/src/stories/views/components/page/page_pagination.mdx +8 -0
  49. package/src/stories/views/components/page/page_pagination.stories.js +34 -0
  50. package/src/stories/views/components/page/page_player.mdx +21 -0
  51. package/src/stories/views/components/page/page_player.stories.js +34 -0
  52. package/src/stories/views/components/site_header/{header.stories.mdx → header.mdx} +218 -152
  53. package/src/stories/views/components/site_header/header.stories.js +62 -0
  54. package/src/stories/views/components/teaser/cluster/teaser_cluster.mdx +32 -0
  55. package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.js +146 -0
  56. package/src/stories/views/components/teaser/components/teaser_byline.mdx +97 -0
  57. package/src/stories/views/components/teaser/components/teaser_byline.stories.js +30 -0
  58. package/src/stories/views/components/teaser/components/teaser_heading.mdx +96 -0
  59. package/src/stories/views/components/teaser/components/teaser_heading.stories.js +158 -0
  60. package/src/stories/views/components/teaser/components/teaser_text.mdx +36 -0
  61. package/src/stories/views/components/teaser/components/teaser_text.stories.js +74 -0
  62. package/src/stories/views/components/teaser/components/teaser_title.mdx +42 -0
  63. package/src/stories/views/components/teaser/components/teaser_title.stories.js +85 -0
  64. package/src/stories/views/components/teaser/components/teaser_topline.mdx +29 -0
  65. package/src/stories/views/components/teaser/components/teaser_topline.stories.js +27 -0
  66. package/src/stories/views/components/teaser/content_nav/teaser_content_nav.mdx +54 -0
  67. package/src/stories/views/components/teaser/content_nav/{teaser_content_nav.stories.mdx → teaser_content_nav.stories.js} +80 -61
  68. package/src/stories/views/components/teaser/fixtures/ticker_teaser_standard_100.json +1 -0
  69. package/src/stories/views/components/teaser/group_teaser/group.mdx +18 -0
  70. package/src/stories/views/components/teaser/group_teaser/group.stories.js +85 -0
  71. package/src/stories/views/components/teaser/podcast/podcast.mdx +11 -0
  72. package/src/stories/views/components/teaser/podcast/{podcast.stories.mdx → podcast.stories.js} +50 -39
  73. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.mdx +10 -0
  74. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.js +51 -0
  75. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.mdx +10 -0
  76. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.js +40 -0
  77. package/src/stories/views/components/teaser/teaser_alternativ.mdx +76 -0
  78. package/src/stories/views/components/teaser/teaser_alternativ.stories.js +126 -0
  79. package/src/stories/views/components/teaser/teaser_alternativ_av.mdx +75 -0
  80. package/src/stories/views/components/teaser/teaser_alternativ_av.stories.js +111 -0
  81. package/src/stories/views/components/teaser/teaser_event_calendar.mdx +57 -0
  82. package/src/stories/views/components/teaser/teaser_event_calendar.stories.js +92 -0
  83. package/src/stories/views/components/teaser/teaser_indextext.mdx +35 -0
  84. package/src/stories/views/components/teaser/teaser_indextext.stories.js +85 -0
  85. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.mdx +23 -0
  86. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.js +36 -0
  87. package/src/stories/views/components/teaser/teaser_poster.mdx +95 -0
  88. package/src/stories/views/components/teaser/teaser_poster.stories.js +67 -0
  89. package/src/stories/views/components/teaser/teaser_stage.mdx +15 -0
  90. package/src/stories/views/components/teaser/teaser_stage.stories.js +60 -0
  91. package/src/stories/views/components/teaser/teaser_standard.mdx +129 -0
  92. package/src/stories/views/components/teaser/teaser_standard.stories.js +166 -0
  93. package/src/stories/views/components/teaser/teaser_standard_av.mdx +38 -0
  94. package/src/stories/views/components/teaser/teaser_standard_av.stories.js +117 -0
  95. package/src/stories/views/components/teaser/teaser_standard_event.mdx +103 -0
  96. package/src/stories/views/components/teaser/teaser_standard_event.stories.js +119 -0
  97. package/src/stories/views/components/teaser/ticker/teaser_ticker.hbs +29 -0
  98. package/src/stories/views/components/teaser/ticker/teaser_ticker.mdx +10 -0
  99. package/src/stories/views/components/teaser/ticker/teaser_ticker.stories.js +34 -0
  100. package/.storybook/withThemeDecorator.js +0 -12
  101. package/src/stories/BrandColors.stories.mdx +0 -39
  102. package/src/stories/Example.stories.mdx +0 -93
  103. package/src/stories/Introduction.stories.mdx +0 -211
  104. package/src/stories/views/components/Button.stories.mdx +0 -82
  105. package/src/stories/views/components/geoTag/geoTag.stories.mdx +0 -61
  106. package/src/stories/views/components/grid/grid.stories.mdx +0 -275
  107. package/src/stories/views/components/label/label.stories.mdx +0 -200
  108. package/src/stories/views/components/page/page.stories.mdx +0 -144
  109. package/src/stories/views/components/page/page_pagination.stories.mdx +0 -36
  110. package/src/stories/views/components/page/page_player.stories.mdx +0 -43
  111. package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.mdx +0 -97
  112. package/src/stories/views/components/teaser/components/teaser_byline.stories.mdx +0 -78
  113. package/src/stories/views/components/teaser/components/teaser_heading.stories.mdx +0 -219
  114. package/src/stories/views/components/teaser/components/teaser_text.stories.mdx +0 -94
  115. package/src/stories/views/components/teaser/components/teaser_title.stories.mdx +0 -124
  116. package/src/stories/views/components/teaser/components/teaser_topline.stories.mdx +0 -63
  117. package/src/stories/views/components/teaser/group_teaser/group.stories.mdx +0 -85
  118. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.mdx +0 -52
  119. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.mdx +0 -39
  120. package/src/stories/views/components/teaser/teaser_alternativ.stories.mdx +0 -163
  121. package/src/stories/views/components/teaser/teaser_alternativ_av.stories.mdx +0 -142
  122. package/src/stories/views/components/teaser/teaser_event_calendar.stories.mdx +0 -131
  123. package/src/stories/views/components/teaser/teaser_indextext.stories.mdx +0 -111
  124. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.mdx +0 -39
  125. package/src/stories/views/components/teaser/teaser_poster.stories.mdx +0 -130
  126. package/src/stories/views/components/teaser/teaser_stage.stories.mdx +0 -53
  127. package/src/stories/views/components/teaser/teaser_standard.stories.mdx +0 -170
  128. package/src/stories/views/components/teaser/teaser_standard_av.stories.mdx +0 -95
  129. package/src/stories/views/components/teaser/teaser_standard_event.stories.mdx +0 -150
@@ -1,130 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import teaser from './teaser_poster.hbs'
3
- import teserPosterLg from './fixtures/teaser_poster_lg.json'
4
- import teserPosterMd from './fixtures/teaser_poster_md.json'
5
- import teserPosterMdLabel from './fixtures/teaser_poster_md_label.json'
6
-
7
- <Meta
8
- title="Komponenten/Teaser/Poster"
9
- parameters={{
10
- layout: 'fullscreen',
11
- chromatic: {
12
- diffThreshold: 0.5,
13
- },
14
- }}
15
- argTypes={{
16
- teaserSize: {
17
- control: {
18
- type: 'select',
19
- options: ['50', '33'],
20
- },
21
- description: 'Teaser Größe',
22
- table: {
23
- defaultValue: {
24
- summary: '50',
25
- },
26
- },
27
- },
28
- }}
29
- decorators={[
30
- (Story) => {
31
- 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">
32
- ${Story()}
33
- </div></div>`
34
- },
35
- ]}
36
- />
37
-
38
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
39
- // You can either use a function to create DOM elements or use a plain html string!
40
- // return `<div>${label}</div>`;
41
- let brand =
42
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
43
- return teaser({ brand, ...args })
44
- }
45
-
46
- # Poster-Teaser
47
-
48
- ## Beschreibung
49
-
50
- Der Poster-Teaser besteht aus 3 übereinanderliegenden Ebenen.
51
-
52
- Unterste-Ebene: <b>Bild (1:1)</b><br/>
53
- Mittlere Ebene: <b>Dachzeile und Titel</b> + <b>Farbverlauf</b> von schwarz nach transparent<br/>
54
- Oberste Ebene (verlinkt): <b>Zusatztext</b> ("zum Artikel" o.ä.)<br/>
55
-
56
- Alle Ebenen erstrecken sich über die komplette Größe des 1:1-Bilds.
57
-
58
- Alle enthaltenen Inhalte sind aria-hidden. Für screenreader wurde ein extra span eingebaut mit class="sr-only".<br/>
59
- Inhalt dieses spans: Zusatztext + ": " + Titel
60
-
61
- Der Poster-Teaser soll nur als 50%- bzw. 33%-Teaser verwendet werden. Diese Restriktion muss cms-seitig implementiert werden.
62
-
63
- ## Sub-Komponenten
64
-
65
- Die Poster-Teaser-Komponente inkludiert folgende Komponenten:
66
-
67
- <ul>
68
- <li>
69
- components/base/image/<b>responsive_image</b>
70
- </li>
71
- <li>
72
- components/base/<b>link</b>
73
- </li>
74
- <li>
75
- components/teaser/components/<b>teaser_heading</b>
76
- </li>
77
- </ul>
78
-
79
- ## Props
80
-
81
- Die Poster-Teaser-Komponente benötigt die folgenden json-Daten (enthalten im Teaser-Json im Objekt <b>logicItem.includeModel</b>):
82
-
83
- <ul>
84
- <li>
85
- <b>topline</b>
86
- </li>
87
- <li>
88
- <b>title</b>
89
- </li>
90
- <li>
91
- <b>teaserSize</b>
92
- </li>
93
- <li>
94
- <b>teaserType</b>
95
- </li>
96
- <li>
97
- <b>teaserImage</b>
98
- </li>
99
- <li>
100
- <b>content.imageVariant</b>
101
- </li>
102
- <li>
103
- <b>isSerifHeading</b>
104
- </li>
105
- <li>
106
- <b>link.readMoreText.readMoreLong</b>
107
- </li>
108
- </ul>
109
-
110
- ## Verwendung
111
-
112
- Die Poster-Teaser-Komponente wird in handlebars wie folgt eingebaut:
113
-
114
- ```html
115
- {{> components/teaser/teaser_poster}}
116
- ```
117
-
118
- <Preview withToolbar>
119
- <Story name="Poster 50" args={teserPosterLg.logicItem.includeModel}>
120
- {Template.bind({})}
121
- </Story>
122
- <Story name="Poster 33" args={teserPosterMd.logicItem.includeModel}>
123
- {Template.bind({})}
124
- </Story>
125
- <Story name="Poster 33 mit Label" args={teserPosterMdLabel.logicItem.includeModel}>
126
- {Template.bind({})}
127
- </Story>
128
- </Preview>
129
-
130
- <ArgsTable story="Poster 50" />
@@ -1,53 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import teaser from './teaser_stage.hbs'
3
- import stageTeaserData from './fixtures/stage_teaser.json'
4
- import stageTeaserWideData from './fixtures/stage_teaser_wide.json'
5
- import stageTeaserDataWithEventtag from './fixtures/stage_teaser_eventtag.json'
6
- import stageTeaserDataForProgram from './fixtures/stage_teaser_program.json'
7
-
8
- <Meta
9
- title="Komponenten/Teaser/Stage"
10
- parameters={{
11
- layout: 'fullscreen',
12
- chromatic: {
13
- viewports: [360, 768, 1024],
14
- diffThreshold: 0.5
15
- },
16
- }}
17
- argTypes={{}}
18
- decorators={[
19
- (Story) => {
20
- return `<div class="grid grid-page"><div class="col-full gap-x-6 gap-y-6">
21
- ${Story()}
22
- </div></div>`
23
- },
24
- ]}
25
- />
26
-
27
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
28
- // You can either use a function to create DOM elements or use a plain html string!
29
- // return `<div>${label}</div>`;
30
- let brand =
31
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
32
- return teaser({ brand, ...args })
33
- }
34
-
35
- # Stage-Teaser
36
-
37
- ## Beschreibung
38
-
39
- <Preview withToolbar>
40
- <b>Stage Teaser</b>
41
- <Story name="Stage Teaser" args={stageTeaserData}>
42
- {Template.bind({})}
43
- </Story>
44
- <Story name="Stage Teaser Wide" args={stageTeaserWideData}>
45
- {Template.bind({})}
46
- </Story>
47
- <Story name="Stage Teaser with Event" args={stageTeaserDataWithEventtag}>
48
- {Template.bind({})}
49
- </Story>
50
- <Story name="Stage Teaser Program" args={stageTeaserDataForProgram}>
51
- {Template.bind({})}
52
- </Story>
53
- </Preview>
@@ -1,170 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import teaser from './teaser_standard.hbs'
3
- import teaserHeroSerifWithLabel from './fixtures/teaser_standard_hero_serif_label.json'
4
- import teaserHeroSerifWithComments from './fixtures/teaser_standard_hero_serif_comments.json'
5
- import teaserHeroLink from './fixtures/teaser_standard_hero_serif_link.json'
6
- import teaserHeroSerif from './fixtures/teaser_standard_hero_serif.json'
7
- import teaser100Serif from './fixtures/teaser_standard_100_serif.json'
8
- import teaser50Serif from './fixtures/teaser_standard_50_serif.json'
9
- import teaser50SerifWithoutTeaserImage from './fixtures/teaser_standard_without_teaserimage_50_serif.json'
10
- import teaser33Serif from './fixtures/teaser_standard_33_serif.json'
11
- import teaser25Serif from './fixtures/teaser_standard_25_serif.json'
12
- import teaser25SerifWithoutTeaserimage from './fixtures/teaser_standard_without_teaserimage_25_serif.json'
13
- import teaser100Download from './fixtures/teaser_standard_100_serif_download.json'
14
- import teaser100Link from './fixtures/teaser_standard_100_serif_link.json'
15
- import teaser100Program from './fixtures/teaser_standard_100_serif_program.json'
16
- import teaser50Link from './fixtures/teaser_standard_50_serif_link.json'
17
- import teaser33Link from './fixtures/teaser_standard_33_serif_link.json'
18
- import teaser25Link from './fixtures/teaser_standard_25_serif_link.json'
19
- import teaser33LongGeotag from './fixtures/teaser_standard_33_long_geotag.json'
20
-
21
- <Meta
22
- title="Komponenten/Teaser/Standard"
23
- parameters={{
24
- layout: 'fullscreen',
25
- chromatic: {
26
- viewports: [360, 1024],
27
- diffThreshold: 0.5,
28
- },
29
- }}
30
- argTypes={{
31
- teaserSize: {
32
- control: {
33
- type: 'select',
34
- options: ['hero', '100', '50', '33', '25'],
35
- },
36
- description: 'Teaser Größe',
37
- table: {
38
- defaultValue: {
39
- summary: 'hero',
40
- },
41
- },
42
- },
43
- }}
44
- decorators={[
45
- (Story) => {
46
- 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">
47
- ${Story()}
48
- </div></div>`
49
- },
50
- ]}
51
- />
52
-
53
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
54
- // You can either use a function to create DOM elements or use a plain html string!
55
- // return `<div>${label}</div>`;
56
- let brand =
57
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
58
- return teaser({ brand, ...args })
59
- }
60
-
61
- # Standard-Teaser
62
-
63
- ## Beschreibung
64
-
65
- Der Standard-Teaser besteht aus 2 Hauptelemente: <b>Bild</b> und <b>Text</b> (Label, Dachzeile, Titel, Teasertext, Zusatzinformationen)
66
-
67
- <b>Standard Hero:</b> <br />
68
- Desktop = Text unter dem Bild <br />
69
- Mobile = Text unter dem Bild <b>ohne</b> Teasertext <br />
70
-
71
- <b>Standard 100%, 50%, 33%:</b> <br />
72
- Desktop = Text unter dem Bild <br />
73
- Mobile = Text unter dem Bild ohne Teasertext <br />
74
-
75
- <b>Standard 25%:</b> <br />
76
- Desktop = Text unter dem Bild ohne Teasertext <br />
77
- Mobile = Bild(1x1) neben Text ohne Teasertext <br />
78
-
79
- ## Sub-Komponenten
80
-
81
- Die Standard-Teaser-Komponente inkludiert folgende Komponenten:
82
-
83
- <ul>
84
- <li>
85
- components/teaser/components/<b>teaser_lead</b>
86
- </li>
87
- <li>
88
- components/base/<b>link</b>
89
- </li>
90
- <li>
91
- components/teaser/components/<b>teaser_heading</b>
92
- </li>
93
- <li>
94
- components/teaser/components/<b>teaser_text</b>
95
- </li>
96
- <li>
97
- components/teaser/components/<b>teaser_byline</b>
98
- </li>
99
- </ul>
100
-
101
- ## Verwendung
102
-
103
- Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
104
-
105
- ```html
106
- {{> components/teaser/teaser_standard}}
107
- ```
108
-
109
- <Preview withToolbar>
110
- <Story name="Standard Hero" args={teaserHeroSerif.logicItem.includeModel}>
111
- {Template.bind({})}
112
- </Story>
113
- <Story name="Standard Hero mit Label" args={teaserHeroSerifWithLabel.logicItem.includeModel}>
114
- {Template.bind({})}
115
- </Story>
116
- <Story
117
- name="Standard Hero Mit Kommentaren"
118
- args={teaserHeroSerifWithComments.logicItem.includeModel}
119
- >
120
- {Template.bind({})}
121
- </Story>
122
- <Story name="Standard Hero mit externem Link" args={teaserHeroLink.logicItem.includeModel}>
123
- {Template.bind({})}
124
- </Story>
125
- <Story name="Standard 100" args={teaser100Serif.logicItem.includeModel}>
126
- {Template.bind({})}
127
- </Story>
128
- <Story name="Standard 100 mit externem Link" args={teaser100Link.logicItem.includeModel}>
129
- {Template.bind({})}
130
- </Story>
131
- <Story name="Standard 100 mit Sendungsdokument" args={teaser100Program.logicItem.includeModel}>
132
- {Template.bind({})}
133
- </Story>
134
- <Story name="Standard 50" args={teaser50Serif.logicItem.includeModel}>
135
- {Template.bind({})}
136
- </Story>
137
- <Story
138
- name="Standard 50 ohne Teaserbild"
139
- args={teaser50SerifWithoutTeaserImage.logicItem.includeModel}
140
- >
141
- {Template.bind({})}
142
- </Story>
143
- <Story name="Standard 50 mit externem Link" args={teaser50Link.logicItem.includeModel}>
144
- {Template.bind({})}
145
- </Story>
146
- <Story name="Standard 33" args={teaser33Serif.logicItem.includeModel}>
147
- {Template.bind({})}
148
- </Story>
149
- <Story name="Standard 33 mit externem Link" args={teaser33Link.logicItem.includeModel}>
150
- {Template.bind({})}
151
- </Story>
152
- <Story name="Standard 25" args={teaser25Serif.logicItem.includeModel}>
153
- {Template.bind({})}
154
- </Story>
155
- <Story
156
- name="Standard 25 ohne Teaserbild"
157
- args={teaser25SerifWithoutTeaserimage.logicItem.includeModel}
158
- >
159
- {Template.bind({})}
160
- </Story>
161
- <Story name="Standard 25 mit externem Link" args={teaser25Link.logicItem.includeModel}>
162
- {Template.bind({})}
163
- </Story>
164
- <Story name="Standard 100 Mit Download" args={teaser100Download.logicItem.includeModel}>
165
- {Template.bind({})}
166
- </Story>
167
- <Story name="Standard 33 mit langer Ortsmarke" args={teaser33LongGeotag.logicItem.includeModel}>
168
- {Template.bind({})}
169
- </Story>
170
- </Preview>
@@ -1,95 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import teaser from './teaser_standard.hbs'
3
-
4
- import teaser50video from './fixtures/teaser_standard_50_serif_video.json'
5
- import teaser25video from './fixtures/teaser_standard_25_serif_video.json'
6
- import teaser50audio from './fixtures/teaser_standard_50_serif_audio.json'
7
- import teaser50podcast from './fixtures/teaser_standard_50_serif_podcast.json'
8
- import teaser25podcast from './fixtures/teaser_standard_25_serif_podcast.json'
9
- import teaser50audioLivestream from './fixtures/teaser_standard_50_serif_audio_livestream.json'
10
- import teaser25audio from './fixtures/teaser_standard_25_serif_audio.json'
11
- import teaser25audioLivestream from './fixtures/teaser_standard_25_serif_audio_livestream.json'
12
- import teaser50live from './fixtures/teaser_standard_50_serif_live.json'
13
- import teaser25live from './fixtures/teaser_standard_25_serif_live.json'
14
-
15
- <Meta
16
- title="Komponenten/Teaser/AV-Standard"
17
- parameters={{
18
- layout: 'fullscreen',
19
- chromatic: {
20
- diffThreshold: 0.5,
21
- },
22
- }}
23
- argTypes={{
24
- teaserSize: {
25
- control: {
26
- type: 'select',
27
- options: ['hero', '100', '50', '33', '25'],
28
- },
29
- description: 'Teaser Größe',
30
- table: {
31
- defaultValue: {
32
- summary: 'hero',
33
- },
34
- },
35
- },
36
- }}
37
- decorators={[
38
- (Story) => {
39
- 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">
40
- ${Story()}
41
- </div></div>`
42
- },
43
- ]}
44
- />
45
-
46
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
47
- // You can either use a function to create DOM elements or use a plain html string!
48
- // return `<div>${label}</div>`;
49
- let brand =
50
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
51
- return teaser({ brand, ...args })
52
- }
53
-
54
- # Header
55
-
56
- Ein toller Einleitungstext für unsere `Teaser` Komponente:
57
-
58
- <Preview withToolbar>
59
- <Story name="Standard 50% Video" args={teaser50video.logicItem.includeModel}>
60
- {Template.bind({})}
61
- </Story>
62
- <Story name="Standard 25% Video" args={teaser25video.logicItem.includeModel}>
63
- {Template.bind({})}
64
- </Story>
65
- <Story name="Standard 50% Video Livestream" args={teaser50live.logicItem.includeModel}>
66
- {Template.bind({})}
67
- </Story>
68
- <Story name="Standard 25% Video Livestream" args={teaser25live.logicItem.includeModel}>
69
- {Template.bind({})}
70
- </Story>
71
- <Story name="Standard 50% Audio" args={teaser50audio.logicItem.includeModel}>
72
- {Template.bind({})}
73
- </Story>
74
- <Story name="Standard 25% Audio" args={teaser25audio.logicItem.includeModel}>
75
- {Template.bind({})}
76
- </Story>
77
- <Story name="Standard 50% Podcast" args={teaser50podcast.logicItem.includeModel}>
78
- {Template.bind({})}
79
- </Story>
80
- <Story name="Standard 25% Podcast" args={teaser25podcast.logicItem.includeModel}>
81
- {Template.bind({})}
82
- </Story>
83
- <Story
84
- name="Standard 50% Audio Livestream"
85
- args={teaser50audioLivestream.logicItem.includeModel}
86
- >
87
- {Template.bind({})}
88
- </Story>
89
- <Story
90
- name="Standard 25% Audio Livestream"
91
- args={teaser25audioLivestream.logicItem.includeModel}
92
- >
93
- {Template.bind({})}
94
- </Story>
95
- </Preview>
@@ -1,150 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import teaser from './teaser_standard.hbs'
3
- import teaserAlternative from './teaser_alternativ.hbs'
4
- import teaser33SingleEventSerif from './fixtures/teaser_standard_33_serif_single_event.json'
5
- import teaser33SingleEventStatus from './fixtures/teaser_standard_33_serif_single_event_status.json'
6
- import teaser33TwoEventsSerif from './fixtures/teaser_standard_33_serif_two_events.json'
7
- import teaser33MultipleEventsSerif from './fixtures/teaser_standard_33_serif_multiple_events.json'
8
- import teaser50SingleEventSerif from './fixtures/teaser_standard_50_serif_single_event.json'
9
- import teaser100SingleEventSerif from './fixtures/teaser_standard_100_serif_single_event.json'
10
- import teaser100TwoEventsSerif from './fixtures/teaser_standard_100_serif_two_events.json'
11
- import teaserAlternative100SingleEventSerif from './fixtures/teaser_alternative_100_serif_single_event.json'
12
- import teaserAlternative100TwoEventsSerif from './fixtures/teaser_alternative_100_serif_two_events.json'
13
-
14
- <Meta
15
- title="Komponenten/Teaser/Event"
16
- parameters={{
17
- layout: 'fullscreen',
18
- chromatic: {
19
- viewports: [360, 1024],
20
- diffThreshold: 0.5,
21
- },
22
- }}
23
- argTypes={{
24
- teaserSize: {
25
- control: {
26
- type: 'select',
27
- options: ['33', '50', '100'],
28
- },
29
- description: 'Teaser Größe',
30
- table: {
31
- defaultValue: {
32
- summary: 'hero',
33
- },
34
- },
35
- },
36
- }}
37
- decorators={[
38
- (Story) => {
39
- 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">
40
- ${Story()}
41
- </div></div>`
42
- },
43
- ]}
44
- />
45
-
46
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
47
- // You can either use a function to create DOM elements or use a plain html string!
48
- // return `<div>${label}</div>`;
49
- let brand =
50
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
51
- return teaser({ brand, ...args })
52
- }
53
-
54
- export const TemplateAlternative = (args, { globals: { customConditionalToolbar } }) => {
55
- // You can either use a function to create DOM elements or use a plain html string!
56
- // return `<div>${label}</div>`;
57
- let brand =
58
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
59
- return teaserAlternative({ brand, ...args })
60
- }
61
-
62
- # Standard-Teaser
63
-
64
- ## Beschreibung
65
-
66
- Der Standard-Teaser besteht aus 2 Hauptelemente: <b>Bild</b> und <b>Text</b> (Label, Dachzeile, Titel, Teasertext, Zusatzinformationen)
67
-
68
- <b>Standard 33 Single Event:</b> <br />
69
- Desktop = Text unter dem Bild <br />
70
- Mobile = Text unter dem Bild mit Teasertext <br />
71
-
72
- <b>Standard 33 Two Events:</b> <br />
73
- Desktop = Text unter dem Bild <br />
74
- Mobile = Text unter dem Bild mit Teasertext <br />
75
-
76
- <b>Standard 33 Multiple Events:</b> <br />
77
- Desktop = Text unter dem Bild <br />
78
- Mobile = Text unter dem Bild mit Teasertext <br />{' '}
79
-
80
- ## Sub-Komponenten
81
-
82
- Die Standard-Teaser-Komponente inkludiert folgende Komponenten:
83
-
84
- <ul>
85
- <li>
86
- components/teaser/components/<b>teaser_lead</b>
87
- </li>
88
- <li>
89
- components/base/<b>link</b>
90
- </li>
91
- <li>
92
- components/teaser/components/<b>teaser_heading</b>
93
- </li>
94
- <li>
95
- components/teaser/components/<b>teaser_text</b>
96
- </li>
97
- <li>
98
- components/teaser/components/<b>teaser_byline</b>
99
- </li>
100
- </ul>
101
-
102
- ## Verwendung
103
-
104
- Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
105
-
106
- ```html
107
- {{> components/teaser/teaser_standard_event}}
108
- ```
109
-
110
- <Preview withToolbar>
111
- <Story name="Standard 33 Einzel-Event" args={teaser33SingleEventSerif.logicItem.includeModel}>
112
- {Template.bind({})}
113
- </Story>
114
- <Story
115
- name="Standard 33 Einzel-Event abgesagt"
116
- args={teaser33SingleEventStatus.logicItem.includeModel}
117
- >
118
- {Template.bind({})}
119
- </Story>
120
- <Story name="Standard 33 zwei Events" args={teaser33TwoEventsSerif.logicItem.includeModel}>
121
- {Template.bind({})}
122
- </Story>
123
- <Story
124
- name="Standard 33 mehrere Events"
125
- args={teaser33MultipleEventsSerif.logicItem.includeModel}
126
- >
127
- {Template.bind({})}
128
- </Story>
129
- <Story name="Standard 50 Einzel-Event" args={teaser50SingleEventSerif.logicItem.includeModel}>
130
- {Template.bind({})}
131
- </Story>
132
- <Story name="Standard 100 Einzel-Event" args={teaser100SingleEventSerif.logicItem.includeModel}>
133
- {Template.bind({})}
134
- </Story>
135
- <Story name="Standard 100 zwei Events" args={teaser100TwoEventsSerif.logicItem.includeModel}>
136
- {Template.bind({})}
137
- </Story>
138
- <Story
139
- name="Alternativ 100 Einzel-Event"
140
- args={teaserAlternative100SingleEventSerif.logicItem.includeModel}
141
- >
142
- {TemplateAlternative.bind({})}
143
- </Story>
144
- <Story
145
- name="Alternativ 100 zwei Events"
146
- args={teaserAlternative100TwoEventsSerif.logicItem.includeModel}
147
- >
148
- {TemplateAlternative.bind({})}
149
- </Story>
150
- </Preview>