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,200 +0,0 @@
1
- import {
2
- ArgsTable,
3
- Meta,
4
- Story,
5
- Canvas,
6
- Preview,
7
- ColorPalette,
8
- ColorItem,
9
- } from '@storybook/addon-docs'
10
-
11
- import label from './label.hbs'
12
-
13
- <Meta
14
- title="Komponenten/Label"
15
- argTypes={{
16
- _type: {
17
- control: {
18
- type: 'select',
19
- labels: {
20
- 'analysis': 'Analyse',
21
- 'event': 'Event',
22
- 'comment': 'Kommentar',
23
- 'media': 'Medieninhalte',
24
- 'breakingnews': 'Eilmeldung',
25
- 'der-tag-in-hessen': 'Der Tag in Hessen',
26
- 'glosse': 'Glosse',
27
- 'fragen-und-antworten': 'Fragen und Antworten',
28
- 'infografik': 'Infografik',
29
- 'interaktiv': 'Interaktiv',
30
- 'program': 'Sendung',
31
- 'download': 'Download',
32
- 'pm': 'Pressemitteilung',
33
- 'liveticker': 'Liveticker',
34
- 'ticker': 'Ticker',
35
- 'livestream': 'Livestream',
36
- 'live': 'Live',
37
- 'livechat': 'Livechat',
38
- 'buliticker': 'Bundesliga-Ticker',
39
- 'social-tv': 'Social-TV',
40
- 'blog': 'Blog',
41
- 'kurzmeldung': 'Kurzmeldung',
42
- },
43
- options: [
44
- '',
45
- 'analysis',
46
- 'blog',
47
- 'buliticker',
48
- 'der-tag-in-hessen',
49
- 'download',
50
- 'breakingnews',
51
- 'event',
52
- 'fragen-und-antworten',
53
- 'glosse',
54
- 'infografik',
55
- 'interaktiv',
56
- 'comment',
57
- 'live',
58
- 'livechat',
59
- 'livestream',
60
- 'liveticker',
61
- 'media',
62
- 'pm',
63
- 'program',
64
- 'social-tv',
65
- 'ticker',
66
- 'kurzmeldung',
67
- ],
68
- },
69
- description: 'Art des Labels',
70
- table: {
71
- defaultValue: {
72
- summary: 'media',
73
- },
74
- },
75
- },
76
- _text: {
77
- control: 'text',
78
- description: 'Beschriftung des Labels',
79
- },
80
- }}
81
- />
82
-
83
- export const Template = ({ _type, ...args }) => {
84
- // You can either use a function to create DOM elements or use a plain html string!
85
- // return `<div>${label}</div>`;
86
- return label({ _type, ...args })
87
- }
88
-
89
- # Label
90
-
91
- Teaser auf Übersichtsseiten können mit Hilfe von Labels optisch hervorgehoben werden (z.B. als Kommentar, Liveticker, Eilmeldung, etc.).
92
- Folgende Ausprägungen von Labels stehen hierfür zur Verfügung:
93
-
94
- <Preview withToolbar>
95
- <Story
96
- name="Download"
97
- args={{
98
- _type: 'download',
99
- _text: 'Download',
100
- }}
101
- >
102
- {Template.bind({})}
103
- </Story>
104
- <Story
105
- name="Eilmeldung"
106
- args={{
107
- _type: 'breakingnews',
108
- _text: 'Eilmeldung',
109
- }}
110
- >
111
- {Template.bind({})}
112
- </Story>
113
- <Story
114
- name="Event"
115
- args={{
116
- _type: 'event',
117
- _text: 'Event',
118
- }}
119
- >
120
- {Template.bind({})}
121
- </Story>
122
- <Story
123
- name="Infografik"
124
- args={{
125
- _type: 'infografik',
126
- _text: 'Infografik',
127
- }}
128
- >
129
- {Template.bind({})}
130
- </Story>
131
- <Story
132
- name="Kommentar"
133
- args={{
134
- _type: 'comment',
135
- _text: 'Kommentar',
136
- }}
137
- >
138
- {Template.bind({})}
139
- </Story>
140
- <Story
141
- name="Liveticker"
142
- args={{
143
- _type: 'liveticker',
144
- _text: 'Liveticker',
145
- }}
146
- >
147
- {Template.bind({})}
148
- </Story>
149
- <Story
150
- name="Media"
151
- args={{
152
- _type: 'media',
153
- _text: 'Media',
154
- }}
155
- >
156
- {Template.bind({})}
157
- </Story>
158
- <Story
159
- name="Pressemitteilung"
160
- args={{
161
- _type: 'pm',
162
- _text: 'Pressemitteilung',
163
- }}
164
- >
165
- {Template.bind({})}
166
- </Story>
167
- <Story
168
- name="Sendung"
169
- args={{
170
- _type: 'program',
171
- _text: 'Sendung',
172
- }}
173
- >
174
- {Template.bind({})}
175
- </Story>
176
- <Story
177
- name="Kurzmeldung"
178
- args={{
179
- _type: 'kurzmeldung',
180
- _text: 'Kurzmeldung',
181
- }}
182
- >
183
- {Template.bind({})}
184
- </Story>
185
- </Preview>
186
-
187
- ## Einbindung
188
-
189
- Die Komponente wird in Form eines Handlebar Partials eingebunden.
190
-
191
- ```html
192
- {{> components/label/label.hbs type="liveticker" text="Liveticker"}}
193
- ```
194
-
195
- Mit folgenden Parametern kann die Komponente konfiguriert werden.
196
-
197
- | Parameter | Typ | Mögliche Werte | Erläuterung |
198
- | :--------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------- |
199
- | **\_text** | `String` | Beliebiger Text | Die Beschriftung des Labels. |
200
- | **\_type** | `String` | `analysis`, `blog`, `bulitiker`, `der-tag-in-hessen`, `download`, `brealingnews`, `event`, `fragen-und-antworten`, `glosse`,`infografik`, `interaktiv`, `comment`, `live`, `livechat`, `livestream`, `liveticker`, `media`, `pm`, `program`, `social-tv`, `ticker` | Hiermit wird das Aussehen des Labels festgelegt. |
@@ -1,144 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import 'core-js/actual/structured-clone'
3
- import page from './page.hbs'
4
- import NavigationData from '../site_header/fixtures/site_header_default.json'
5
- import NavigationData2 from '../site_header/fixtures/site_header_mit_warnung.json'
6
- import NavigationData3 from '../site_header/fixtures/site_header_mit_submenu.json'
7
- //import NavigationData4 from '../site_header/fixtures/site_header_mit_submenu_service_selected.json'
8
-
9
- import hero_teaser from '../teaser/fixtures/teaser_standard_hero_serif.json'
10
- import audio_player_teaser from '../teaser/fixtures/teaser_standard_50_serif_audio.json'
11
- const NavigationDataWithTeaser = structuredClone(
12
- Object.assign({}, NavigationData, hero_teaser.logicItem.includeModel)
13
- )
14
- const NavigationDataWithTeaser2 = structuredClone(
15
- Object.assign({}, NavigationData2, hero_teaser.logicItem.includeModel)
16
- )
17
- const NavigationDataWithTeaser3 = structuredClone(
18
- Object.assign({}, NavigationData3, hero_teaser.logicItem.includeModel)
19
- )
20
-
21
- <Meta
22
- title="Komponenten/Page/Page"
23
- argTypes={{}}
24
- parameters={{
25
- chromatic: {
26
- viewports: [360, 768, 1024]
27
- },
28
- layout: 'fullscreen',
29
- docs: { inlineStories : false, iframeHeight: 400 }
30
- }}
31
- />
32
-
33
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
34
- // You can either use a function to create DOM elements or use a plain html string!
35
- // return `<div>${label}</div>`;
36
- let brand =
37
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
38
- return page({ brand, ...args })
39
- }
40
-
41
- # Page (allgemein)
42
-
43
- Das Grundgerüst für das HTML-Markup einer Seite (in diesem Fall eine Index-Seite bzw. Übersichtsseite).
44
- Stand 2023: Inhaltsseiten werden derzeit noch nicht berücksichtigt.
45
- Für gemischte Inhalte siehe ```Player-Interaktion```
46
-
47
- # Grundaufbau
48
- Um eine Seite zu erzeugen ist ein initiales HTML-Markup notwendig. Der Kopf ```<head>``` ist dabei statisch,
49
- Inhalte werden im ```<body>```-Tag abgelegt. Der Kopf entspricht einem klassischen HTML-Kopf mit Titel und Metadaten-Angaben.
50
-
51
- ## Markup im Kopf
52
- ```html
53
- <!DOCTYPE html>
54
- <html
55
- class="no-js no-js-burgerMenu preload noMicroInteraction"
56
- data-theme="hessenschau"
57
- lang="de"
58
- >
59
- <head>
60
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
61
- <meta http-equiv="X-UA-Compatible" content="IE=Edge"/>
62
- <title>hessenschau.de | Nachrichten aus Hessen</title>
63
- <meta name="application-name" content="hessenschau.de" />
64
- <meta name="copyright" content="Hessischer Rundfunk, Frankfurt, Germany" />
65
- <meta name="author" content="hessenschau.de, Frankfurt, Germany" />
66
- <meta name="publisher" content="hessenschau.de" />
67
- <meta name="language" content="Deutsch" />
68
- </head>
69
-
70
- <body itemscope itemtype="http://schema.org/WebPage">
71
- <div class="js-pageSwap">
72
-
73
- MARKUP FÜR INHALTE ...
74
-
75
- <div>
76
- </body>
77
- </html>
78
- ```
79
- ## Markup für Inhalte
80
-
81
- Initial wird die Seitennavigation - das Menü - der Seite eingefügt. Wahlweise Abwandlungen der Seitennavigation
82
- (mit Subnavigation oder Unwetterwarnung), die über unterschiedlichen Daten-JSONS ausgeformt werden. Die Daten-JSONS hierfür liegen
83
- unter ```components/site_header/fixtures``` und die Komponente selber:
84
-
85
- ```html
86
- {{> components/site_header/header }}
87
- ```
88
- Dann folgen die Inhalte in diesem Fall Teaser, die über das Grid-Layout angeordnet werden. Die Komponenten für die Teaser
89
- liegen unter ```components/teaser/``` und lauten auf ```teaser_``` und dessen Ausprägung:
90
- <ul>
91
- <li>standard (Standard => Bild oben, Text darunter)</li>
92
- <li>alternativ (Alternativ => Bild links, Text rechts)</li>
93
- <li>event_calendar (Event-Kalender)</li>
94
- <li>poster (Poster => Text auf Bild)</li>
95
- <li>indextext (Nur Text)</li>
96
- <li>stage (Stage => Sonderform über die ganze Seite)</li>
97
- </ul>
98
-
99
- Auch hier bestimmen die Daten-JSONS, das Bild und den Text. Die Daten-JSONS hierfür liegen
100
- unter ```components/teaser/fixtures``` der Aufruf der Komponente selber:
101
-
102
- ```html
103
- {{> components/teaser/teaser_standard }}
104
- ```
105
- Gekapselt wird die Teaser-Komponente in einer ```<section>```. Es können beliebig viele Sections mit entsprechenden Teaser-Komponenten
106
- in das folgende Markup angelegt werden:
107
-
108
- ```html
109
- <main onclick="void(0)" role="main" id="content" class="flex items-center justify-center">
110
- <div class="grid grid-page">
111
- <div class="{{> components/grid/grid_group_wrapper_classes }}">
112
-
113
- <section class="grid items-start content-start grid-cols-12 col-span-12 bg-white gap-x-6 gap-y-6 ">
114
- {{> components/teaser/teaser_standard }}
115
- </section>
116
- WEITERE TEASER...
117
- </div>
118
- </div>
119
- </main>
120
-
121
- </div>
122
- ```
123
- Die Ausformung der Teaser basiert immer auf dem selben Daten-JSON, d.h. Bild und Texte sind immer identisch, lediglich die Größe und der
124
- Teaser-Typ variieren.
125
-
126
- <Canvas withToolbar>
127
- <Story name="Default" args={NavigationDataWithTeaser}>
128
- {Template.bind({})}
129
- </Story>
130
- </Canvas>
131
-
132
- <Canvas>
133
- <Story name="Mit Warnung" args={NavigationDataWithTeaser2}>
134
- {Template.bind({})}
135
- </Story>
136
- </Canvas>
137
-
138
- <Canvas>
139
- <Story name="Mit Subnavigation" args={NavigationDataWithTeaser3}>
140
- {Template.bind({})}
141
- </Story>
142
- </Canvas>
143
-
144
- <ArgsTable story="Default" />
@@ -1,36 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import 'core-js/actual/structured-clone'
3
- import page from './page_pagination.hbs'
4
- import navigationData from '../site_header/fixtures/site_header_default.json'
5
- import mixedContent from '../page/fixtures/page_pagination.json'
6
- const NavigationDataWithMixedContent = structuredClone(
7
- Object.assign({}, navigationData, mixedContent)
8
- )
9
-
10
- <Meta
11
- title="Komponenten/Page/Page"
12
- argTypes={{}}
13
- parameters={{
14
- chromatic: {
15
- viewports: [360, 768, 1024]
16
- },
17
- layout: 'fullscreen',
18
- docs: { inlineStories : false, iframeHeight: 400 }
19
- }}
20
- />
21
-
22
-
23
-
24
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
25
- // You can either use a function to create DOM elements or use a plain html string!
26
- // return `<div>${label}</div>`;
27
- let brand = undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
28
- return page({brand,...args})
29
- }
30
-
31
- <Canvas withToolbar>
32
- <Story name="Mit Pagination" args={NavigationDataWithMixedContent}>
33
- {Template.bind({})}
34
- </Story>
35
- </Canvas>
36
-
@@ -1,43 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import 'core-js/actual/structured-clone'
3
- import page from './page_players.hbs'
4
- import AudioDataMixed from '../page/fixtures/page.json'
5
-
6
- <Meta
7
- title="Komponenten/Page/Page"
8
- argTypes={{}}
9
- parameters={{
10
- chromatic: {
11
- viewports: [360, 768, 1024]
12
- },
13
- layout: 'fullscreen',
14
- docs: { inlineStories : false, iframeHeight: 400 }
15
- }}
16
- />
17
-
18
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
19
- // You can either use a function to create DOM elements or use a plain html string!
20
- // return `<div>${label}</div>`;
21
- let brand = undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
22
- return page({brand,...args})
23
- }
24
-
25
-
26
- # Page (gemischte Inhalte)
27
-
28
- Hier werden nur gemischte Inhalte betrachtet. Hierfür werden Daten-JSONS unterschiedlicher
29
- Ausprägung (Audio, Podcast) gemischt und herangezogen. Um einer Komponente diese spezifische Inhalte zu übergeben
30
- wird sie wie folgt aufgerufen:
31
-
32
- ```html
33
- {{> components/teaser/teaser_standard this.teaser_standard_50_audio.logicItem.includeModel}}
34
- {{> components/teaser/podcast/podcast this.teaser_podcast_50.logicItem.includeModel}}
35
- ```
36
-
37
- <Canvas>
38
- <Story name="Player-Interaktion" args={AudioDataMixed}>
39
- {Template.bind({})}
40
- </Story>
41
- </Canvas>
42
-
43
- <ArgsTable story="Default" />
@@ -1,97 +0,0 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
-
3
- import cluster from './teaser_cluster.hbs'
4
- import clusterTeaser100 from '../fixtures/cluster_teaser_100.json'
5
- import clusterTeaser50 from '../fixtures/cluster_teaser_50.json'
6
- import clusterTeaser33 from '../fixtures/cluster_teaser_33.json'
7
- import clusterTeaserOrdered100 from '../fixtures/cluster_teaser_ordered_100.json'
8
- import clusterTeaserOrdered50 from '../fixtures/cluster_teaser_ordered_50.json'
9
- import clusterTeaserOrdered33 from '../fixtures/cluster_teaser_ordered_33.json'
10
- import clusterTeaserExtern100 from '../fixtures/cluster_teaser_extern_100.json'
11
- import clusterTeaserExtern50 from '../fixtures/cluster_teaser_extern_50.json'
12
- import clusterTeaserExtern33 from '../fixtures/cluster_teaser_extern_33.json'
13
- import clusterTeaserGenre100 from '../fixtures/cluster_teaser_100_genre.json'
14
- import clusterTeaserGenre50 from '../fixtures/cluster_teaser_50_genre.json'
15
- import clusterTeaserGenre33 from '../fixtures/cluster_teaser_33_genre.json'
16
- import clusterTeaserImage100 from '../fixtures/cluster_teaser_100_image.json'
17
- import clusterTeaserImage50 from '../fixtures/cluster_teaser_50_image.json'
18
- import clusterTeaserImage33 from '../fixtures/cluster_teaser_33_image.json'
19
- import PodcastChannelClusterTeaser from '../fixtures/cluster_teaser_Podcast_Channel.json'
20
- import clusterTeaserOrdered33LongTitle from '../fixtures/cluster_teaser_33_long_title.json'
21
-
22
- <Meta
23
- title="Komponenten/Teaser/Cluster"
24
- parameters={{
25
- layout: '',
26
- }}
27
- argTypes={{}}
28
- decorators={[
29
- (Story) => {
30
- 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">
31
- ${Story()}
32
- </div></div>`
33
- },
34
- ]}
35
- />
36
-
37
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
38
- // You can either use a function to create DOM elements or use a plain html string!
39
- // return `<div>${label}</div>`;
40
- let brand =
41
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
42
- return cluster({ brand, ...args })
43
- }
44
-
45
- <Preview withToolbar>
46
- <Story name="Kurzmeldungen 100" args={clusterTeaser100}>
47
- {Template.bind({})}
48
- </Story>
49
- <Story name="Kurzmeldungen 50" args={clusterTeaser50}>
50
- {Template.bind({})}
51
- </Story>
52
- <Story name="Kurzmeldungen 33" args={clusterTeaser33}>
53
- {Template.bind({})}
54
- </Story>
55
- <Story name="Schlagzeilen mit Genrebild 100" args={clusterTeaserGenre100}>
56
- {Template.bind({})}
57
- </Story>
58
- <Story name="Schlagzeilen mit Genrebild 50" args={clusterTeaserGenre50}>
59
- {Template.bind({})}
60
- </Story>
61
- <Story name="Schlagzeilen mit Genrebild 33" args={clusterTeaserGenre33}>
62
- {Template.bind({})}
63
- </Story>
64
- <Story name="Schlagzeilen mit Teaserbild 100" args={clusterTeaserImage100}>
65
- {Template.bind({})}
66
- </Story>
67
- <Story name="Schlagzeilen mit Teaserbild 50" args={clusterTeaserImage50}>
68
- {Template.bind({})}
69
- </Story>
70
- <Story name="Schlagzeilen mit Teaserbild 33" args={clusterTeaserImage33}>
71
- {Template.bind({})}
72
- </Story>
73
- <Story name="Meistgeklickt/Wanda 100" args={clusterTeaserOrdered100}>
74
- {Template.bind({})}
75
- </Story>
76
- <Story name="Meistgeklickt/Wanda 50" args={clusterTeaserOrdered50}>
77
- {Template.bind({})}
78
- </Story>
79
- <Story name="Meistgeklickt/Wanda 33" args={clusterTeaserOrdered33}>
80
- {Template.bind({})}
81
- </Story>
82
- <Story name="tagesschau/sportschau 100" args={clusterTeaserExtern100}>
83
- {Template.bind({})}
84
- </Story>
85
- <Story name="tagesschau/sportschau 50" args={clusterTeaserExtern50}>
86
- {Template.bind({})}
87
- </Story>
88
- <Story name="tagesschau/sportschau 33" args={clusterTeaserExtern33}>
89
- {Template.bind({})}
90
- </Story>
91
- <Story name="PodcastEpisoden ClusterTeaser" args={PodcastChannelClusterTeaser}>
92
- {Template.bind({})}
93
- </Story>
94
- <Story name="Meistgeklickt-Box mit langem Titel" args={clusterTeaserOrdered33LongTitle}>
95
- {Template.bind({})}
96
- </Story>
97
- </Preview>
@@ -1,78 +0,0 @@
1
- import { ArgsTable, Meta, Story, Preview } from '@storybook/addon-docs'
2
- import byline from './teaser_byline.hbs'
3
- import teaserWithoutComments from '../fixtures/teaser_standard_hero_serif.json'
4
- import teaserWithComments from '../fixtures/teaser_standard_hero_serif_comments.json'
5
- import teaserWithoutTeaserinfo from '../fixtures/teaser_comments_without_teaserinfo.json'
6
-
7
- <Meta title="Komponenten/Teaser/Komponenten/Byline" />
8
-
9
- export const Template = ({ ...args }) => {
10
- return byline({ ...args })
11
- }
12
-
13
- # Byline
14
-
15
- ## Beschreibung
16
-
17
- In der Byline-Komponente werden folgende Teaser-Zusatzinformationen angezeigt:
18
-
19
- <ul>
20
- <li><b>Datum</b> (mit oder ohne Uhrzeit)</li>
21
- <li><b>Strukturknoten</b> (Rubrik)</li>
22
- <li><b>Autor(en)</b></li>
23
- <li><b>Link zu den Kommentaren des Artikels</b> (mit aktueller Kommentar-Anzahl)</li>
24
- </ul>
25
-
26
- Alle Informationen sind optional. Der Kommentar-Link wird per SSI eingebunden und ist in components/teaser/components/teaser_comments.hbs implementiert.
27
-
28
- ## Sub-Komponenten
29
-
30
- Die Byline-Komponente inkludiert folgende Komponenten:
31
-
32
- <ul>
33
- <li>components/base/<b>loadSSI</b></li>
34
- <li>components/teaser/components/<b>teaser_comments</b></li>
35
- </ul>
36
-
37
-
38
- ## Props
39
-
40
- Die Byline-Komponente benötigt die folgenden json-Daten (enthalten im Teaser-Json im Objekt <b>logicItem.includeModel</b>):
41
-
42
- <ul>
43
- <li><b>teaserInfo</b></li>
44
- <li><b>teaserInfo.showTeaserInfo</b></li>
45
- <li><b>teaserInfo.showTeaserInfoDate</b></li>
46
- <li><b>teaserInfo.showTeaserInfoDateTime</b></li>
47
- <li><b>teaserInfo.showTeaserInfoSection</b></li>
48
- <li><b>teaserDate</b></li>
49
- <li><b>teaserDate.htmlDateTime</b></li>
50
- <li><b>teaserDate.date</b></li>
51
- <li><b>teaserDate.dateSeparatorTime</b></li>
52
- <li><b>documentSection</b></li>
53
- <li><b>profiles</b></li>
54
- </ul>
55
-
56
-
57
- ## Verwendung
58
-
59
- Die Byline-Komponente wird in handlebars wie folgt eingebaut:
60
-
61
- ```html
62
- {{> components/teaser/components/teaser_byline}}
63
- ```
64
-
65
-
66
- <Preview withToolbar>
67
- <Story name="default" args={teaserWithoutComments.logicItem.includeModel}>
68
- {Template.bind({})}
69
- </Story>
70
- <Story name="with comments" args={teaserWithComments.logicItem.includeModel}>
71
- {Template.bind({})}
72
- </Story>
73
- <Story name="comments only" args={teaserWithoutTeaserinfo.logicItem.includeModel}>
74
- {Template.bind({})}
75
- </Story>
76
- </Preview>
77
-
78
- <ArgsTable story="default" />