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
@@ -0,0 +1,32 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as TeaserClusterStories from './teaser_cluster.stories'
3
+
4
+ <Meta of={TeaserClusterStories} />
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 cluster({ brand, ...args })
12
+ }
13
+
14
+ <Canvas withToolbar>
15
+ <Story of={TeaserClusterStories.Kurzmeldungen100} />
16
+ <Story of={TeaserClusterStories.Kurzmeldungen50} />
17
+ <Story of={TeaserClusterStories.Kurzmeldungen33} />
18
+ <Story of={TeaserClusterStories.SchlagzeilenMitGenrebild100} />
19
+ <Story of={TeaserClusterStories.SchlagzeilenMitGenrebild50} />
20
+ <Story of={TeaserClusterStories.SchlagzeilenMitGenrebild33} />
21
+ <Story of={TeaserClusterStories.SchlagzeilenMitTeaserbild100} />
22
+ <Story of={TeaserClusterStories.SchlagzeilenMitTeaserbild50} />
23
+ <Story of={TeaserClusterStories.SchlagzeilenMitTeaserbild33} />
24
+ <Story of={TeaserClusterStories.MeistgeklicktWanda100} />
25
+ <Story of={TeaserClusterStories.MeistgeklicktWanda50} />
26
+ <Story of={TeaserClusterStories.MeistgeklicktWanda33} />
27
+ <Story of={TeaserClusterStories.TagesschauSportschau100} />
28
+ <Story of={TeaserClusterStories.TagesschauSportschau50} />
29
+ <Story of={TeaserClusterStories.TagesschauSportschau33} />
30
+ <Story of={TeaserClusterStories.PodcastEpisodenClusterTeaser} />
31
+ <Story of={TeaserClusterStories.MeistgeklicktBoxMitLangemTitel} />
32
+ </Canvas>
@@ -0,0 +1,146 @@
1
+ import cluster from './teaser_cluster.hbs'
2
+ import clusterTeaser100 from '../fixtures/cluster_teaser_100.json'
3
+ import clusterTeaser50 from '../fixtures/cluster_teaser_50.json'
4
+ import clusterTeaser33 from '../fixtures/cluster_teaser_33.json'
5
+ import clusterTeaserOrdered100 from '../fixtures/cluster_teaser_ordered_100.json'
6
+ import clusterTeaserOrdered50 from '../fixtures/cluster_teaser_ordered_50.json'
7
+ import clusterTeaserOrdered33 from '../fixtures/cluster_teaser_ordered_33.json'
8
+ import clusterTeaserExtern100 from '../fixtures/cluster_teaser_extern_100.json'
9
+ import clusterTeaserExtern50 from '../fixtures/cluster_teaser_extern_50.json'
10
+ import clusterTeaserExtern33 from '../fixtures/cluster_teaser_extern_33.json'
11
+ import clusterTeaserGenre100 from '../fixtures/cluster_teaser_100_genre.json'
12
+ import clusterTeaserGenre50 from '../fixtures/cluster_teaser_50_genre.json'
13
+ import clusterTeaserGenre33 from '../fixtures/cluster_teaser_33_genre.json'
14
+ import clusterTeaserImage100 from '../fixtures/cluster_teaser_100_image.json'
15
+ import clusterTeaserImage50 from '../fixtures/cluster_teaser_50_image.json'
16
+ import clusterTeaserImage33 from '../fixtures/cluster_teaser_33_image.json'
17
+ import PodcastChannelClusterTeaser from '../fixtures/cluster_teaser_Podcast_Channel.json'
18
+ import clusterTeaserOrdered33LongTitle from '../fixtures/cluster_teaser_33_long_title.json'
19
+
20
+ const Template = (args, { globals: { customConditionalToolbar } }) => {
21
+ // You can either use a function to create DOM elements or use a plain html string!
22
+ // return `<div>${label}</div>`;
23
+ let brand =
24
+ undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
25
+ return cluster({ brand, ...args })
26
+ }
27
+
28
+ export default {
29
+ title: 'Komponenten/Teaser/Cluster',
30
+
31
+ parameters: {
32
+ layout: '',
33
+ },
34
+
35
+ argTypes: {},
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 Kurzmeldungen100 = {
47
+ render: Template.bind({}),
48
+ name: 'Kurzmeldungen 100',
49
+ args: clusterTeaser100,
50
+ }
51
+
52
+ export const Kurzmeldungen50 = {
53
+ render: Template.bind({}),
54
+ name: 'Kurzmeldungen 50',
55
+ args: clusterTeaser50,
56
+ }
57
+
58
+ export const Kurzmeldungen33 = {
59
+ render: Template.bind({}),
60
+ name: 'Kurzmeldungen 33',
61
+ args: clusterTeaser33,
62
+ }
63
+
64
+ export const SchlagzeilenMitGenrebild100 = {
65
+ render: Template.bind({}),
66
+ name: 'Schlagzeilen mit Genrebild 100',
67
+ args: clusterTeaserGenre100,
68
+ }
69
+
70
+ export const SchlagzeilenMitGenrebild50 = {
71
+ render: Template.bind({}),
72
+ name: 'Schlagzeilen mit Genrebild 50',
73
+ args: clusterTeaserGenre50,
74
+ }
75
+
76
+ export const SchlagzeilenMitGenrebild33 = {
77
+ render: Template.bind({}),
78
+ name: 'Schlagzeilen mit Genrebild 33',
79
+ args: clusterTeaserGenre33,
80
+ }
81
+
82
+ export const SchlagzeilenMitTeaserbild100 = {
83
+ render: Template.bind({}),
84
+ name: 'Schlagzeilen mit Teaserbild 100',
85
+ args: clusterTeaserImage100,
86
+ }
87
+
88
+ export const SchlagzeilenMitTeaserbild50 = {
89
+ render: Template.bind({}),
90
+ name: 'Schlagzeilen mit Teaserbild 50',
91
+ args: clusterTeaserImage50,
92
+ }
93
+
94
+ export const SchlagzeilenMitTeaserbild33 = {
95
+ render: Template.bind({}),
96
+ name: 'Schlagzeilen mit Teaserbild 33',
97
+ args: clusterTeaserImage33,
98
+ }
99
+
100
+ export const MeistgeklicktWanda100 = {
101
+ render: Template.bind({}),
102
+ name: 'Meistgeklickt/Wanda 100',
103
+ args: clusterTeaserOrdered100,
104
+ }
105
+
106
+ export const MeistgeklicktWanda50 = {
107
+ render: Template.bind({}),
108
+ name: 'Meistgeklickt/Wanda 50',
109
+ args: clusterTeaserOrdered50,
110
+ }
111
+
112
+ export const MeistgeklicktWanda33 = {
113
+ render: Template.bind({}),
114
+ name: 'Meistgeklickt/Wanda 33',
115
+ args: clusterTeaserOrdered33,
116
+ }
117
+
118
+ export const TagesschauSportschau100 = {
119
+ render: Template.bind({}),
120
+ name: 'tagesschau/sportschau 100',
121
+ args: clusterTeaserExtern100,
122
+ }
123
+
124
+ export const TagesschauSportschau50 = {
125
+ render: Template.bind({}),
126
+ name: 'tagesschau/sportschau 50',
127
+ args: clusterTeaserExtern50,
128
+ }
129
+
130
+ export const TagesschauSportschau33 = {
131
+ render: Template.bind({}),
132
+ name: 'tagesschau/sportschau 33',
133
+ args: clusterTeaserExtern33,
134
+ }
135
+
136
+ export const PodcastEpisodenClusterTeaser = {
137
+ render: Template.bind({}),
138
+ name: 'PodcastEpisoden ClusterTeaser',
139
+ args: PodcastChannelClusterTeaser,
140
+ }
141
+
142
+ export const MeistgeklicktBoxMitLangemTitel = {
143
+ render: Template.bind({}),
144
+ name: 'Meistgeklickt-Box mit langem Titel',
145
+ args: clusterTeaserOrdered33LongTitle,
146
+ }
@@ -0,0 +1,97 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as TeaserBylineStories from './teaser_byline.stories'
3
+
4
+ <Meta of={TeaserBylineStories} />
5
+
6
+ # Byline
7
+
8
+ ## Beschreibung
9
+
10
+ In der Byline-Komponente werden folgende Teaser-Zusatzinformationen angezeigt:
11
+
12
+ <ul>
13
+ <li>
14
+ <b>Datum</b> (mit oder ohne Uhrzeit)
15
+ </li>
16
+ <li>
17
+ <b>Strukturknoten</b> (Rubrik)
18
+ </li>
19
+ <li>
20
+ <b>Autor(en)</b>
21
+ </li>
22
+ <li>
23
+ <b>Link zu den Kommentaren des Artikels</b> (mit aktueller Kommentar-Anzahl)
24
+ </li>
25
+ </ul>
26
+
27
+ Alle Informationen sind optional. Der Kommentar-Link wird per SSI eingebunden und ist in components/teaser/components/teaser_comments.hbs implementiert.
28
+
29
+ ## Sub-Komponenten
30
+
31
+ Die Byline-Komponente inkludiert folgende Komponenten:
32
+
33
+ <ul>
34
+ <li>
35
+ components/base/<b>loadSSI</b>
36
+ </li>
37
+
38
+ <li>
39
+ components/teaser/components/<b>teaser\_comments</b>
40
+ </li>
41
+ </ul>
42
+
43
+ ## Props
44
+
45
+ Die Byline-Komponente benötigt die folgenden json-Daten (enthalten im Teaser-Json im Objekt <b>logicItem.includeModel</b>):
46
+
47
+ <ul>
48
+ <li>
49
+ <b>teaserInfo</b>
50
+ </li>
51
+ <li>
52
+ <b>teaserInfo.showTeaserInfo</b>
53
+ </li>
54
+ <li>
55
+ <b>teaserInfo.showTeaserInfoDate</b>
56
+ </li>
57
+ <li>
58
+ <b>teaserInfo.showTeaserInfoDateTime</b>
59
+ </li>
60
+ <li>
61
+ <b>teaserInfo.showTeaserInfoSection</b>
62
+ </li>
63
+ <li>
64
+ <b>teaserDate</b>
65
+ </li>
66
+ <li>
67
+ <b>teaserDate.htmlDateTime</b>
68
+ </li>
69
+ <li>
70
+ <b>teaserDate.date</b>
71
+ </li>
72
+ <li>
73
+ <b>teaserDate.dateSeparatorTime</b>
74
+ </li>
75
+ <li>
76
+ <b>documentSection</b>
77
+ </li>
78
+ <li>
79
+ <b>profiles</b>
80
+ </li>
81
+ </ul>
82
+
83
+ ## Verwendung
84
+
85
+ Die Byline-Komponente wird in handlebars wie folgt eingebaut:
86
+
87
+ ```html
88
+ {{> components/teaser/components/teaser_byline}}
89
+ ```
90
+
91
+ <Canvas withToolbar>
92
+ <Story of={TeaserBylineStories.Default} />
93
+ <Story of={TeaserBylineStories.WithComments} />
94
+ <Story of={TeaserBylineStories.CommentsOnly} />
95
+ </Canvas>
96
+
97
+ <ArgsTable story="default" />
@@ -0,0 +1,30 @@
1
+ import byline from './teaser_byline.hbs'
2
+ import teaserWithoutComments from '../fixtures/teaser_standard_hero_serif.json'
3
+ import teaserWithComments from '../fixtures/teaser_standard_hero_serif_comments.json'
4
+ import teaserWithoutTeaserinfo from '../fixtures/teaser_comments_without_teaserinfo.json'
5
+
6
+ const Template = ({ ...args }) => {
7
+ return byline({ ...args })
8
+ }
9
+
10
+ export default {
11
+ title: 'Komponenten/Teaser/Komponenten/Byline',
12
+ }
13
+
14
+ export const Default = {
15
+ render: Template.bind({}),
16
+ name: 'default',
17
+ args: teaserWithoutComments.logicItem.includeModel,
18
+ }
19
+
20
+ export const WithComments = {
21
+ render: Template.bind({}),
22
+ name: 'with comments',
23
+ args: teaserWithComments.logicItem.includeModel,
24
+ }
25
+
26
+ export const CommentsOnly = {
27
+ render: Template.bind({}),
28
+ name: 'comments only',
29
+ args: teaserWithoutTeaserinfo.logicItem.includeModel,
30
+ }
@@ -0,0 +1,96 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as TeaserHeadingStories from './teaser_heading.stories'
3
+
4
+ <Meta of={TeaserHeadingStories} />
5
+
6
+ # Teaser-Heading
7
+
8
+ Die `Dachzeile` (topline) und der `Titel` (title) werden im folgenden als Teaser-Heading bezeichnet, also der einleitende "Kopf" eines Teasers.
9
+
10
+ Zubuchbar sind ein `Label` (an der Position der Dachzeile) und ein `erweiterter Titel` (extendedTitle) der den normalen Titel ersetzt.
11
+
12
+ # Teil-Komponenten (siehe dazu Label, Topline, Titel)
13
+
14
+ ## Label (optional wenn vorhanden)
15
+
16
+ Die Komponente wird in Form eines Handlebar Partials eingebunden.
17
+
18
+ ```html
19
+ {{> components/label/label_old _type=this.type _text=(loca this.loca) _bylineCss=../_labelCss}}
20
+ ```
21
+
22
+ Durchgereichte Parameter:
23
+
24
+ | Parameter | Typ | Mögliche Werte | Erläuterung |
25
+ | :---------------- | :------- | :----------------- | :--------------------------- |
26
+ | **\_type** | `String` | "media","event"... | Typ des Labels |
27
+ | **\_\_text** | `String` | ... | Inhalt des Labels |
28
+ | **\_\_bylineCss** | `String` | ... | spezifische Style-Selektoren |
29
+
30
+ ## Dachzeile (topline)
31
+
32
+ ## Einbindung
33
+
34
+ Die Komponente wird in Form eines Handlebar Partials eingebunden.
35
+
36
+ ```html
37
+ {{> components/teaser/components/teaser_topline _css=(if _toplineCss _toplineCss "") _text=_topline
38
+ _readMore=_readMore _teaserType=_teaserType}}
39
+ ```
40
+
41
+ Durchgereichte Parameter:
42
+
43
+ | Parameter | Typ | Mögliche Werte | Erläuterung |
44
+ | :----------------- | :------- | :--------------------- | :---------------------------------------------------------------- |
45
+ | **\_css** | `String` | ... | spezifische Style-Selektoren |
46
+ | **\_\_text** | `String` | ... | Inhalt der Dachzeile |
47
+ | **\_\_readMore** | `String` | ... | \ |
48
+ | **\_\_teaserType** | `String` | "standard, alternativ" | Der Teaser-Typ gibt die Anordnung des Bildes und der Elemente vor |
49
+
50
+ ## Titel (title)
51
+
52
+ ## Einbindung
53
+
54
+ Die Komponente wird in Form eines Handlebar Partials eingebunden.
55
+
56
+ ```html
57
+ {{> components/teaser/components/teaser_title_old _css=(if _titleCss _titleCss "") _text=_title
58
+ _fontVariant=_fontVariant _size=_size _teaserType=_teaserType _isMobile1to1=_isMobile1to1
59
+ _firstItem=_firstItem _ordered=_ordered}}
60
+ ```
61
+
62
+ Durchgereichte Parameter:
63
+
64
+ | Parameter | Typ | Mögliche Werte | Erläuterung |
65
+ | :------------------ | :------- | :--------------------- | :--------------------------------------------------------------------- |
66
+ | **\_css** | `String` | ... | spezifische Style-Selektoren |
67
+ | **\_\_text** | `String` | ... | Inhalt des Titels |
68
+ | **\_\_fontVariant** | `String` | serif, sans-serif | Bei Hessenschau wird für den Titel eine andere Schriftfamilie gewählt. |
69
+ | **\_\_size** | `String` | hero, 100, 50, 33, 25 | Die Größe des Teasers |
70
+ | **\_\_teaserType** | `String` | "standard, alternativ" | Der Teaser-Typ gibt die Anordnung des Bildes und der Elemente vor |
71
+
72
+ ## Teaser-Heading Serif Hero
73
+
74
+ <Canvas>
75
+ <Story of={TeaserHeadingStories.SerifHero} />
76
+ </Canvas>
77
+
78
+ <ArgsTable story="Serif Hero" />
79
+
80
+ ## Teaser-Heading Serif 50%
81
+
82
+ <Canvas>
83
+ <Story of={TeaserHeadingStories.Serif50} />
84
+ </Canvas>
85
+
86
+ ## Teaser-Heading Serif 33%
87
+
88
+ <Canvas>
89
+ <Story of={TeaserHeadingStories.Serif33} />
90
+ </Canvas>
91
+
92
+ ## Teaser-Heading Serif 25%
93
+
94
+ <Canvas>
95
+ <Story of={TeaserHeadingStories.Serif25} />
96
+ </Canvas>
@@ -0,0 +1,158 @@
1
+ import teaserHeading from './teaser_heading.hbs'
2
+
3
+ const Template = ({ _topline, ...args }) => {
4
+ // You can either use a function to create DOM elements or use a plain html string!
5
+ // return `<div>${label}</div>`;
6
+ return teaserHeading({ _topline, ...args })
7
+ }
8
+
9
+ export default {
10
+ title: 'Komponenten/Teaser/Komponenten/Teaserheading',
11
+
12
+ argTypes: {
13
+ _topline: {
14
+ control: 'text',
15
+ description: 'Text der Dachzeile',
16
+ },
17
+
18
+ _title: {
19
+ control: 'text',
20
+ description: 'Text der Überschrift',
21
+ },
22
+
23
+ _headlineTag: {
24
+ control: {
25
+ type: 'select',
26
+ options: ['span', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
27
+ },
28
+
29
+ description: 'HTML-Tag der Überschrift',
30
+
31
+ table: {
32
+ defaultValue: {
33
+ summary: 'span',
34
+ },
35
+ },
36
+ },
37
+
38
+ _fontVariant: {
39
+ description: 'Schriftvariante',
40
+
41
+ control: {
42
+ type: 'inline-radio',
43
+ options: ['serif', 'sans-serif'],
44
+ },
45
+
46
+ table: {
47
+ defaultValue: {
48
+ summary: 'serif',
49
+ },
50
+ },
51
+ },
52
+
53
+ _size: {
54
+ options: ['hero', '100', '50', '33', '25'],
55
+
56
+ control: {
57
+ type: 'select',
58
+ },
59
+
60
+ description: 'Größe der Überschrift',
61
+
62
+ table: {
63
+ defaultValue: {
64
+ summary: 'hero',
65
+ },
66
+ },
67
+ },
68
+ },
69
+ }
70
+
71
+ export const SerifHero = {
72
+ render: Template.bind({}),
73
+ name: 'Serif Hero',
74
+
75
+ parameters: {
76
+ docs: {
77
+ source: {
78
+ code: ``,
79
+ },
80
+ },
81
+ },
82
+
83
+ args: {
84
+ _topline: 'Das ist eine wirklich sehr lange Topline',
85
+ _title: 'Das ist eine wirklich sehr lange Headline',
86
+ _extendedTitle: 'Das ist ein erweiterter Titel',
87
+ _headlineTag: 'h1',
88
+ _fontVariant: 'serif',
89
+ _size: 'hero',
90
+ _teaserType: 'standard',
91
+ },
92
+ }
93
+
94
+ export const Serif50 = {
95
+ render: Template.bind({}),
96
+ name: 'Serif 50',
97
+
98
+ parameters: {
99
+ docs: {
100
+ source: {
101
+ code: ``,
102
+ },
103
+ },
104
+ },
105
+
106
+ args: {
107
+ _topline: 'Das ist eine wirklich sehr lange Topline',
108
+ _title: 'Das ist eine wirklich sehr lange Headline',
109
+ _headlineTag: 'h1',
110
+ _fontVariant: 'serif',
111
+ _size: '50',
112
+ _teaserType: 'standard',
113
+ },
114
+ }
115
+
116
+ export const Serif33 = {
117
+ render: Template.bind({}),
118
+ name: 'Serif 33',
119
+
120
+ parameters: {
121
+ docs: {
122
+ source: {
123
+ code: ``,
124
+ },
125
+ },
126
+ },
127
+
128
+ args: {
129
+ _topline: 'Das ist eine wirklich sehr lange Topline',
130
+ _title: 'Das ist eine wirklich sehr lange Headline',
131
+ _headlineTag: 'h1',
132
+ _fontVariant: 'serif',
133
+ _size: '33',
134
+ _teaserType: 'standard',
135
+ },
136
+ }
137
+
138
+ export const Serif25 = {
139
+ render: Template.bind({}),
140
+ name: 'Serif 25',
141
+
142
+ parameters: {
143
+ docs: {
144
+ source: {
145
+ code: ``,
146
+ },
147
+ },
148
+ },
149
+
150
+ args: {
151
+ _topline: 'Das ist eine wirklich sehr lange Topline',
152
+ _title: 'Das ist eine wirklich sehr lange Headline',
153
+ _headlineTag: 'h1',
154
+ _fontVariant: 'serif',
155
+ _size: '25',
156
+ _teaserType: 'standard',
157
+ },
158
+ }
@@ -0,0 +1,36 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as TeaserTextStories from './teaser_text.stories'
3
+
4
+ <Meta of={TeaserTextStories} />
5
+
6
+ # Teaser-Text
7
+
8
+ Im Teaser folgt nach dem Heading der Text. Diesem beigefügt ein "Mehr"-Link oder ein Link auf eine externe Seite.
9
+
10
+ # Teil-Komponenten
11
+
12
+ N/A
13
+
14
+ ## Teaser-Text Hero
15
+
16
+ <Canvas>
17
+ <Story of={TeaserTextStories.TeasertextHero} />
18
+ </Canvas>
19
+
20
+ ## Teaser-Text 50%
21
+
22
+ <Canvas>
23
+ <Story of={TeaserTextStories.Teasertext50} />
24
+ </Canvas>
25
+
26
+ ## Teaser-Text 33%
27
+
28
+ <Canvas>
29
+ <Story of={TeaserTextStories.Teasertext33} />
30
+ </Canvas>
31
+
32
+ ## Teaser-Text 25%
33
+
34
+ <Canvas>
35
+ <Story of={TeaserTextStories.Teasertext25} />
36
+ </Canvas>
@@ -0,0 +1,74 @@
1
+ import teaserText from './teaser_text.hbs'
2
+
3
+ const Template = ({ _text, ...args }) => {
4
+ return teaserText({ _text, ...args })
5
+ }
6
+
7
+ export default {
8
+ title: 'Komponenten/Teaser/Komponenten/Teasertext',
9
+
10
+ argTypes: {
11
+ _text: {
12
+ control: 'text',
13
+ description: 'teaserText',
14
+ },
15
+
16
+ _size: {
17
+ options: ['hero', '100', '50', '33', '25'],
18
+
19
+ control: {
20
+ type: 'inline-radio',
21
+ },
22
+ },
23
+
24
+ _font: {
25
+ table: {
26
+ disable: true,
27
+ },
28
+ },
29
+ },
30
+ }
31
+
32
+ export const TeasertextHero = {
33
+ render: Template.bind({}),
34
+ name: 'Teasertext Hero',
35
+
36
+ args: {
37
+ _text: 'Woibbadinga i moan scho aa hallelujah sog i, luja, boarischer. Wiesn resch ja, wo samma denn etza, resch. Auffisteign a Hoiwe woaß, koa. Leonhardifahrt Weißwiaschd Baamwach hob liberalitas Bavariae ham hogg di hera.',
38
+ _size: 'hero',
39
+ _font: 'md:text-base md:leading-4 lg:leading-5',
40
+ },
41
+ }
42
+
43
+ export const Teasertext50 = {
44
+ render: Template.bind({}),
45
+ name: 'Teasertext 50',
46
+
47
+ args: {
48
+ _text: 'Woibbadinga i moan scho aa hallelujah sog i, luja, boarischer. Wiesn resch ja, wo samma denn etza, resch. Auffisteign a Hoiwe woaß, koa. Leonhardifahrt Weißwiaschd Baamwach hob liberalitas Bavariae ham hogg di hera.',
49
+ _size: '50',
50
+ _font: 'md:text-base md:leading-4 lg:leading-5',
51
+ },
52
+ }
53
+
54
+ export const Teasertext33 = {
55
+ render: Template.bind({}),
56
+ name: 'Teasertext 33',
57
+
58
+ args: {
59
+ _text: 'Woibbadinga i moan scho aa hallelujah sog i, luja, boarischer. Wiesn resch ja, wo samma denn etza, resch. Auffisteign a Hoiwe woaß, koa. Leonhardifahrt Weißwiaschd Baamwach hob liberalitas Bavariae ham hogg di hera.',
60
+ _size: '33',
61
+ _font: 'md:text-base md:leading-4 lg:leading-5',
62
+ },
63
+ }
64
+
65
+ export const Teasertext25 = {
66
+ render: Template.bind({}),
67
+ name: 'Teasertext 25',
68
+
69
+ args: {
70
+ _text: 'Woibbadinga i moan scho aa hallelujah sog i, luja, boarischer. Wiesn resch ja, wo samma denn etza, resch. Auffisteign a Hoiwe woaß, koa. Leonhardifahrt Weißwiaschd Baamwach hob liberalitas Bavariae ham hogg di hera.',
71
+ _size: '25',
72
+ _font: 'md:text-base md:leading-4 lg:leading-5',
73
+ },
74
+ }