hr-design-system-handlebars 1.11.10 → 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 (114) 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 +17 -0
  6. package/dist/assets/index.css +11 -3
  7. package/package.json +20 -13
  8. package/src/assets/css/custom-utilities.css +3 -3
  9. package/src/stories/BrandColors.data.js +42 -0
  10. package/src/stories/BrandColors.mdx +25 -0
  11. package/src/stories/{Colors.stories.mdx → Colors.data.js} +2 -18
  12. package/src/stories/Colors.mdx +19 -0
  13. package/src/stories/Example.mdx +56 -0
  14. package/src/stories/Example.stories.js +57 -0
  15. package/src/stories/{Fixtures.stories.mdx → Fixtures.mdx} +3 -5
  16. package/src/stories/{InstallAndUpdate.stories.mdx → InstallAndUpdate.mdx} +0 -2
  17. package/src/stories/Introduction.mdx +3 -0
  18. package/src/stories/{SvgOptimization.stories.mdx → SvgOptimization.mdx} +0 -2
  19. package/src/stories/{Typography.stories.mdx → Typography.mdx} +13 -14
  20. package/src/stories/{conventions-and-datastructure.stories.mdx → conventions-and-datastructure.mdx} +7 -9
  21. package/src/stories/views/components/Button.mdx +30 -0
  22. package/src/stories/views/components/Button_.stories.js +77 -0
  23. package/src/stories/views/components/event/calendar/{event_calendar_components.stories.mdx → event_calendar_components.mdx} +31 -87
  24. package/src/stories/views/components/event/calendar/event_calendar_components.stories.js +129 -0
  25. package/src/stories/views/components/geoTag/geoTag.mdx +32 -0
  26. package/src/stories/views/components/geoTag/geoTag.stories.js +35 -0
  27. package/src/stories/views/components/grid/grid.mdx +210 -0
  28. package/src/stories/views/components/grid/grid.stories.js +148 -0
  29. package/src/stories/views/components/label/label.mdx +54 -0
  30. package/src/stories/views/components/label/label.stories.js +183 -0
  31. package/src/stories/views/components/page/page.data.js +17 -0
  32. package/src/stories/views/components/page/page.mdx +110 -0
  33. package/src/stories/views/components/page/page.stories.js +50 -0
  34. package/src/stories/views/components/page/page_pagination.data.js +8 -0
  35. package/src/stories/views/components/page/page_pagination.mdx +8 -0
  36. package/src/stories/views/components/page/page_pagination.stories.js +34 -0
  37. package/src/stories/views/components/page/page_player.mdx +21 -0
  38. package/src/stories/views/components/page/page_player.stories.js +34 -0
  39. package/src/stories/views/components/site_header/{header.stories.mdx → header.mdx} +218 -152
  40. package/src/stories/views/components/site_header/header.stories.js +62 -0
  41. package/src/stories/views/components/teaser/cluster/teaser_cluster.mdx +32 -0
  42. package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.js +146 -0
  43. package/src/stories/views/components/teaser/components/teaser_byline.mdx +97 -0
  44. package/src/stories/views/components/teaser/components/teaser_byline.stories.js +30 -0
  45. package/src/stories/views/components/teaser/components/teaser_heading.mdx +96 -0
  46. package/src/stories/views/components/teaser/components/teaser_heading.stories.js +158 -0
  47. package/src/stories/views/components/teaser/components/teaser_text.mdx +36 -0
  48. package/src/stories/views/components/teaser/components/teaser_text.stories.js +74 -0
  49. package/src/stories/views/components/teaser/components/teaser_title.mdx +42 -0
  50. package/src/stories/views/components/teaser/components/teaser_title.stories.js +85 -0
  51. package/src/stories/views/components/teaser/components/teaser_topline.mdx +29 -0
  52. package/src/stories/views/components/teaser/components/teaser_topline.stories.js +27 -0
  53. package/src/stories/views/components/teaser/content_nav/teaser_content_nav.mdx +54 -0
  54. package/src/stories/views/components/teaser/content_nav/{teaser_content_nav.stories.mdx → teaser_content_nav.stories.js} +80 -61
  55. package/src/stories/views/components/teaser/group_teaser/group.mdx +18 -0
  56. package/src/stories/views/components/teaser/group_teaser/group.stories.js +85 -0
  57. package/src/stories/views/components/teaser/podcast/podcast.mdx +11 -0
  58. package/src/stories/views/components/teaser/podcast/{podcast.stories.mdx → podcast.stories.js} +50 -39
  59. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.mdx +10 -0
  60. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.js +51 -0
  61. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.mdx +10 -0
  62. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.js +40 -0
  63. package/src/stories/views/components/teaser/teaser_alternativ.mdx +76 -0
  64. package/src/stories/views/components/teaser/teaser_alternativ.stories.js +126 -0
  65. package/src/stories/views/components/teaser/teaser_alternativ_av.mdx +75 -0
  66. package/src/stories/views/components/teaser/teaser_alternativ_av.stories.js +111 -0
  67. package/src/stories/views/components/teaser/teaser_event_calendar.mdx +57 -0
  68. package/src/stories/views/components/teaser/teaser_event_calendar.stories.js +92 -0
  69. package/src/stories/views/components/teaser/teaser_indextext.mdx +35 -0
  70. package/src/stories/views/components/teaser/teaser_indextext.stories.js +85 -0
  71. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.mdx +23 -0
  72. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.js +36 -0
  73. package/src/stories/views/components/teaser/teaser_poster.mdx +95 -0
  74. package/src/stories/views/components/teaser/teaser_poster.stories.js +67 -0
  75. package/src/stories/views/components/teaser/teaser_stage.mdx +15 -0
  76. package/src/stories/views/components/teaser/teaser_stage.stories.js +60 -0
  77. package/src/stories/views/components/teaser/teaser_standard.mdx +129 -0
  78. package/src/stories/views/components/teaser/teaser_standard.stories.js +166 -0
  79. package/src/stories/views/components/teaser/teaser_standard_av.mdx +38 -0
  80. package/src/stories/views/components/teaser/teaser_standard_av.stories.js +117 -0
  81. package/src/stories/views/components/teaser/teaser_standard_event.mdx +103 -0
  82. package/src/stories/views/components/teaser/teaser_standard_event.stories.js +119 -0
  83. package/src/stories/views/components/teaser/ticker/teaser_ticker.mdx +10 -0
  84. package/src/stories/views/components/teaser/ticker/{teaser_ticker.stories.mdx → teaser_ticker.stories.js} +25 -24
  85. package/.storybook/withThemeDecorator.js +0 -12
  86. package/src/stories/BrandColors.stories.mdx +0 -39
  87. package/src/stories/Example.stories.mdx +0 -93
  88. package/src/stories/Introduction.stories.mdx +0 -211
  89. package/src/stories/views/components/Button.stories.mdx +0 -82
  90. package/src/stories/views/components/geoTag/geoTag.stories.mdx +0 -61
  91. package/src/stories/views/components/grid/grid.stories.mdx +0 -275
  92. package/src/stories/views/components/label/label.stories.mdx +0 -200
  93. package/src/stories/views/components/page/page.stories.mdx +0 -144
  94. package/src/stories/views/components/page/page_pagination.stories.mdx +0 -36
  95. package/src/stories/views/components/page/page_player.stories.mdx +0 -43
  96. package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.mdx +0 -97
  97. package/src/stories/views/components/teaser/components/teaser_byline.stories.mdx +0 -78
  98. package/src/stories/views/components/teaser/components/teaser_heading.stories.mdx +0 -219
  99. package/src/stories/views/components/teaser/components/teaser_text.stories.mdx +0 -94
  100. package/src/stories/views/components/teaser/components/teaser_title.stories.mdx +0 -124
  101. package/src/stories/views/components/teaser/components/teaser_topline.stories.mdx +0 -63
  102. package/src/stories/views/components/teaser/group_teaser/group.stories.mdx +0 -85
  103. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.mdx +0 -52
  104. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.mdx +0 -39
  105. package/src/stories/views/components/teaser/teaser_alternativ.stories.mdx +0 -163
  106. package/src/stories/views/components/teaser/teaser_alternativ_av.stories.mdx +0 -142
  107. package/src/stories/views/components/teaser/teaser_event_calendar.stories.mdx +0 -131
  108. package/src/stories/views/components/teaser/teaser_indextext.stories.mdx +0 -111
  109. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.mdx +0 -39
  110. package/src/stories/views/components/teaser/teaser_poster.stories.mdx +0 -130
  111. package/src/stories/views/components/teaser/teaser_stage.stories.mdx +0 -53
  112. package/src/stories/views/components/teaser/teaser_standard.stories.mdx +0 -170
  113. package/src/stories/views/components/teaser/teaser_standard_av.stories.mdx +0 -95
  114. package/src/stories/views/components/teaser/teaser_standard_event.stories.mdx +0 -150
@@ -0,0 +1,210 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as GridStories from './grid.stories';
3
+
4
+ import grid_group_100_item_100 from './grid_group_100_item_100.hbs'
5
+ import grid_group_100_item_100_with_background from './grid_group_100_item_100_with_background.hbs'
6
+ import grid_group_100_item_50 from './grid_group_100_item_50.hbs'
7
+ import grid_group_100_item_33 from './grid_group_100_item_33.hbs'
8
+ import grid_group_100_item_25 from './grid_group_100_item_25.hbs'
9
+ import grid_group_66_item_100 from './grid_group_66_item_100.hbs'
10
+ import grid_group_50_item_100 from './grid_group_50_item_100.hbs'
11
+ import grid_group_33_item_100 from './grid_group_33_item_100.hbs'
12
+ import grid_group_100_tabbed_50 from './grid_group_100_tabbed_50.hbs'
13
+ import grid_group_100_tabbed_33 from './grid_group_100_tabbed_33.hbs'
14
+ import grid_group_100_tabbed_25 from './grid_group_100_tabbed_25.hbs'
15
+
16
+ <Meta of={GridStories} />
17
+
18
+ export const Template01 = ({ text, ...args }) => {
19
+ // You can either use a function to create DOM elements or use a plain html string!
20
+ // return `<div>${label}</div>`;
21
+ return grid_group_100_item_100({ text, ...args })
22
+ }
23
+ export const Template02 = ({ text, ...args }) => {
24
+ // You can either use a function to create DOM elements or use a plain html string!
25
+ // return `<div>${label}</div>`;
26
+ return grid_group_100_item_100_with_background({ text, ...args })
27
+ }
28
+ export const Template03 = ({ text, ...args }) => {
29
+ // You can either use a function to create DOM elements or use a plain html string!
30
+ // return `<div>${label}</div>`;
31
+ return grid_group_100_item_50({ text, ...args })
32
+ }
33
+ export const Template04 = ({ text, ...args }) => {
34
+ // You can either use a function to create DOM elements or use a plain html string!
35
+ // return `<div>${label}</div>`;
36
+ return grid_group_100_item_33({ text, ...args })
37
+ }
38
+ export const Template05 = ({ text, ...args }) => {
39
+ // You can either use a function to create DOM elements or use a plain html string!
40
+ // return `<div>${label}</div>`;
41
+ return grid_group_100_item_25({ text, ...args })
42
+ }
43
+ export const Template06 = ({ text, ...args }) => {
44
+ // You can either use a function to create DOM elements or use a plain html string!
45
+ // return `<div>${label}</div>`;
46
+ return grid_group_66_item_100({ text, ...args })
47
+ }
48
+ export const Template07 = ({ text, ...args }) => {
49
+ // You can either use a function to create DOM elements or use a plain html string!
50
+ // return `<div>${label}</div>`;
51
+ return grid_group_50_item_100({ text, ...args })
52
+ }
53
+ export const Template08 = ({ text, ...args }) => {
54
+ // You can either use a function to create DOM elements or use a plain html string!
55
+ // return `<div>${label}</div>`;
56
+ return grid_group_33_item_100({ text, ...args })
57
+ }
58
+ export const Template09 = ({ text, ...args }) => {
59
+ // You can either use a function to create DOM elements or use a plain html string!
60
+ // return `<div>${label}</div>`;
61
+ return grid_group_100_tabbed_50({ text, ...args })
62
+ }
63
+ export const Template10 = ({ text, ...args }) => {
64
+ // You can either use a function to create DOM elements or use a plain html string!
65
+ // return `<div>${label}</div>`;
66
+ return grid_group_100_tabbed_33({ text, ...args })
67
+ }
68
+ export const Template11 = ({ text, ...args }) => {
69
+ // You can either use a function to create DOM elements or use a plain html string!
70
+ // return `<div>${label}</div>`;
71
+ return grid_group_100_tabbed_25({ text, ...args })
72
+ }
73
+
74
+ # Grid
75
+
76
+ Das sog. "Grid" (engl.: Netz) bildet das Layout-Raster für eine Übersichtsseite und
77
+ beschreibt die Einteilung einer Seite in horizontale - Zeilen - und vertikale - Spalten - Einheiten.
78
+ Neben der Anordnung dr Elemente wird dabei auch explizit deren Dimensionierung vorgenommen.
79
+
80
+ # Grundaufbau
81
+
82
+ Um ein Grid für ein Template zu erzeugen muß zunächst das ein umschließendes Wrapper-Markup gebaut werden:
83
+
84
+ ```html
85
+ <div class="grid grid-page">
86
+ <div class="{{> components/grid/grid_group_wrapper_classes }}">...</div>
87
+ </div>
88
+ ```
89
+
90
+ # Gruppe (grid-group)
91
+
92
+ Im Wrapper wird eine sog. "Gruppe" erzeugt. Sie entspricht im Raster einer Zeile.
93
+ Bei der Größe (\_size) sind auch kleinere Werte als "100" (siehe "Grid-Aufbau invers") zulässig. Finden jedoch keinen Anwendungsfall.
94
+
95
+ Zusätzlich kann der Gruppe eine Hintergrund-Farbe vergeben werden.
96
+
97
+ ## Einbindung
98
+
99
+ Die Komponente wird in Form eines Handlebar Partials eingebunden.
100
+
101
+ ```html
102
+ {{#>components/grid/grid_group _size="100"}}
103
+ ```
104
+
105
+ Mit folgenden Parametern kann die Komponente konfiguriert werden.
106
+
107
+ | Parameter | Typ | Mögliche Werte | Erläuterung |
108
+ | :---------------------- | :----- | :----------------- | :------------------------------------------------- | ---------------------------- |
109
+ | **\_size** | `Zahl` | Teilbare Vielfache | Entpsrechung des prozentualen Wertes (100% = 100) |
110
+ | **\_\_backgroundColor** | `Zahl` | 1,2,3... | Definierte Farbwerte die der Zahl beigeordnet sind | Die Beschriftung des Labels. |
111
+
112
+ # Objekt (grid-item)
113
+
114
+ In einer Gruppe werden ein oder mehrerer sog. "Objekte" - Items - angelegt. Sie entsprechen im Raster einer oder mehrerer Spalten.
115
+ Bei der Größe (\_size) wird hier keine prozentuale Entsprechung, wie bei der Gruppe angegeben, sondern dem Tailwind-Schema 12/12 = 100%,
116
+ was einer `_size = 12` entspricht.
117
+ Um 50% (6/12) zu realisieren gibt man bei `_size = 6` ein usf.
118
+
119
+ ## Einbindung
120
+
121
+ Die Komponente wird in Form eines Handlebar Partials eingebunden.
122
+
123
+ ```html
124
+ {{#>components/grid/grid_item _size="6"}}
125
+ ```
126
+
127
+ Mit folgenden Parametern kann die Komponente konfiguriert werden.
128
+
129
+ | Parameter | Typ | Mögliche Werte | Erläuterung |
130
+ | :--------- | :----- | :----------------- | :--------------------------------------------- |
131
+ | **\_size** | `Zahl` | Teilbare Vielfache | Entsprechung nach Tailwind-Schema 12/12 = 100% |
132
+
133
+ # Anwendungsbeispiele
134
+
135
+ ### Grid 100%
136
+
137
+ <Canvas>
138
+ <Story of={GridStories.Grid100} />
139
+ </Canvas>
140
+
141
+ ### Grid 100% mit Hintergrund
142
+
143
+ <Canvas>
144
+ <Story of={GridStories.Grid100MitHintergrund} />
145
+ </Canvas>
146
+
147
+ ### Grid 50%
148
+
149
+ <Canvas>
150
+ <Story of={GridStories.Grid50} />
151
+ </Canvas>
152
+
153
+ ### Grid 33%
154
+
155
+ <Canvas>
156
+ <Story of={GridStories.Grid33} />
157
+ </Canvas>
158
+
159
+ ### Grid 25%
160
+
161
+ <Canvas>
162
+ <Story of={GridStories.Grid25} />
163
+ </Canvas>
164
+
165
+ ### Grid Tabbed 50%
166
+
167
+ <Canvas>
168
+ <Story of={GridStories.GridTabbed50} />
169
+ </Canvas>
170
+
171
+ ### Grid Tabbed 33%
172
+
173
+ <Canvas>
174
+ <Story of={GridStories.GridTabbed33} />
175
+ </Canvas>
176
+
177
+ ### Grid Tabbed 25%
178
+
179
+ <Canvas>
180
+ <Story of={GridStories.GridTabbed25} />
181
+ </Canvas>
182
+
183
+ # Grid Aufbau invers
184
+
185
+ Reguläre spannt sich die Gruppe zu 100% auf und die Größe der Objekte sind teilbare Vielfache davon:
186
+ 100 / 2 Objekte = 50 % pro Objekt oder 66% + 33,3%
187
+ 100 / 3 Objekte = 33,3 % pro Objekt
188
+ 100 / 4 Objekte = 25 % pro Objekt
189
+ Mit inversem Aufbau ist gemeint, das die Gruppe die Größe vorgibt und die Objekte immer 100% haben:
190
+ 66 % / 2 Objekte = 100 % pro Objekt
191
+
192
+ ### Grid 66%
193
+
194
+ <Canvas>
195
+ <Story of={GridStories.$66} />
196
+ </Canvas>
197
+
198
+ ### Grid 50%
199
+
200
+ <Canvas>
201
+ <Story of={GridStories.$50} />
202
+ </Canvas>
203
+
204
+ ### Grid 33%
205
+
206
+ <Canvas>
207
+ <Story of={GridStories.$33} />
208
+ </Canvas>
209
+
210
+ <ArgsTable story="Grid" />
@@ -0,0 +1,148 @@
1
+ import grid_group_100_item_100 from './grid_group_100_item_100.hbs'
2
+ import grid_group_100_item_100_with_background from './grid_group_100_item_100_with_background.hbs'
3
+ import grid_group_100_item_50 from './grid_group_100_item_50.hbs'
4
+ import grid_group_100_item_33 from './grid_group_100_item_33.hbs'
5
+ import grid_group_100_item_25 from './grid_group_100_item_25.hbs'
6
+ import grid_group_66_item_100 from './grid_group_66_item_100.hbs'
7
+ import grid_group_50_item_100 from './grid_group_50_item_100.hbs'
8
+ import grid_group_33_item_100 from './grid_group_33_item_100.hbs'
9
+ import grid_group_100_tabbed_50 from './grid_group_100_tabbed_50.hbs'
10
+ import grid_group_100_tabbed_33 from './grid_group_100_tabbed_33.hbs'
11
+ import grid_group_100_tabbed_25 from './grid_group_100_tabbed_25.hbs'
12
+
13
+ const Template01 = ({ text, ...args }) => {
14
+ // You can either use a function to create DOM elements or use a plain html string!
15
+ // return `<div>${label}</div>`;
16
+ return grid_group_100_item_100({ text, ...args })
17
+ }
18
+
19
+ const Template02 = ({ text, ...args }) => {
20
+ // You can either use a function to create DOM elements or use a plain html string!
21
+ // return `<div>${label}</div>`;
22
+ return grid_group_100_item_100_with_background({ text, ...args })
23
+ }
24
+
25
+ const Template03 = ({ text, ...args }) => {
26
+ // You can either use a function to create DOM elements or use a plain html string!
27
+ // return `<div>${label}</div>`;
28
+ return grid_group_100_item_50({ text, ...args })
29
+ }
30
+
31
+ const Template04 = ({ text, ...args }) => {
32
+ // You can either use a function to create DOM elements or use a plain html string!
33
+ // return `<div>${label}</div>`;
34
+ return grid_group_100_item_33({ text, ...args })
35
+ }
36
+
37
+ const Template05 = ({ text, ...args }) => {
38
+ // You can either use a function to create DOM elements or use a plain html string!
39
+ // return `<div>${label}</div>`;
40
+ return grid_group_100_item_25({ text, ...args })
41
+ }
42
+
43
+ const Template06 = ({ text, ...args }) => {
44
+ // You can either use a function to create DOM elements or use a plain html string!
45
+ // return `<div>${label}</div>`;
46
+ return grid_group_66_item_100({ text, ...args })
47
+ }
48
+
49
+ const Template07 = ({ text, ...args }) => {
50
+ // You can either use a function to create DOM elements or use a plain html string!
51
+ // return `<div>${label}</div>`;
52
+ return grid_group_50_item_100({ text, ...args })
53
+ }
54
+
55
+ const Template08 = ({ text, ...args }) => {
56
+ // You can either use a function to create DOM elements or use a plain html string!
57
+ // return `<div>${label}</div>`;
58
+ return grid_group_33_item_100({ text, ...args })
59
+ }
60
+
61
+ const Template09 = ({ text, ...args }) => {
62
+ // You can either use a function to create DOM elements or use a plain html string!
63
+ // return `<div>${label}</div>`;
64
+ return grid_group_100_tabbed_50({ text, ...args })
65
+ }
66
+
67
+ const Template10 = ({ text, ...args }) => {
68
+ // You can either use a function to create DOM elements or use a plain html string!
69
+ // return `<div>${label}</div>`;
70
+ return grid_group_100_tabbed_33({ text, ...args })
71
+ }
72
+
73
+ const Template11 = ({ text, ...args }) => {
74
+ // You can either use a function to create DOM elements or use a plain html string!
75
+ // return `<div>${label}</div>`;
76
+ return grid_group_100_tabbed_25({ text, ...args })
77
+ }
78
+
79
+ export default {
80
+ title: 'Komponenten/grid',
81
+ argTypes: {},
82
+ }
83
+
84
+ export const Grid100 = {
85
+ render: Template01.bind({}),
86
+ name: 'Grid 100%',
87
+ args: {},
88
+ }
89
+
90
+ export const Grid100MitHintergrund = {
91
+ render: Template02.bind({}),
92
+ name: 'Grid 100% mit Hintergrund',
93
+ args: {},
94
+ }
95
+
96
+ export const Grid50 = {
97
+ render: Template03.bind({}),
98
+ name: 'Grid 50%',
99
+ args: {},
100
+ }
101
+
102
+ export const Grid33 = {
103
+ render: Template04.bind({}),
104
+ name: 'Grid 33%',
105
+ args: {},
106
+ }
107
+
108
+ export const Grid25 = {
109
+ render: Template05.bind({}),
110
+ name: 'Grid 25%',
111
+ args: {},
112
+ }
113
+
114
+ export const GridTabbed50 = {
115
+ render: Template09.bind({}),
116
+ name: 'Grid Tabbed 50%',
117
+ args: {},
118
+ }
119
+
120
+ export const GridTabbed33 = {
121
+ render: Template10.bind({}),
122
+ name: 'Grid Tabbed 33%',
123
+ args: {},
124
+ }
125
+
126
+ export const GridTabbed25 = {
127
+ render: Template11.bind({}),
128
+ name: 'Grid Tabbed 25%',
129
+ args: {},
130
+ }
131
+
132
+ export const $66 = {
133
+ render: Template06.bind({}),
134
+ name: '66%',
135
+ args: {},
136
+ }
137
+
138
+ export const $50 = {
139
+ render: Template07.bind({}),
140
+ name: '50%',
141
+ args: {},
142
+ }
143
+
144
+ export const $33 = {
145
+ render: Template08.bind({}),
146
+ name: '33%',
147
+ args: {},
148
+ }
@@ -0,0 +1,54 @@
1
+ import { ArgsTable, Meta, Story, Canvas, ColorPalette, ColorItem } from '@storybook/blocks'
2
+ import * as LabelStories from './label.stories';
3
+
4
+ import label from './label.hbs'
5
+
6
+ <Meta of={LabelStories} />
7
+
8
+ export const Template = ({ _type, ...args }) => {
9
+ // You can either use a function to create DOM elements or use a plain html string!
10
+ // return `<div>${label}</div>`;
11
+ return label({ _type, ...args })
12
+ }
13
+
14
+ # Label
15
+
16
+ Teaser auf Übersichtsseiten können mit Hilfe von Labels optisch hervorgehoben werden (z.B. als Kommentar, Liveticker, Eilmeldung, etc.).
17
+ Folgende Ausprägungen von Labels stehen hierfür zur Verfügung:
18
+
19
+ <Canvas withToolbar>
20
+ <Story of={LabelStories.Download} />
21
+
22
+ <Story of={LabelStories.Eilmeldung} />
23
+
24
+ <Story of={LabelStories.Event} />
25
+
26
+ <Story of={LabelStories.Infografik} />
27
+
28
+ <Story of={LabelStories.Kommentar} />
29
+
30
+ <Story of={LabelStories.Liveticker} />
31
+
32
+ <Story of={LabelStories.Media} />
33
+
34
+ <Story of={LabelStories.Pressemitteilung} />
35
+
36
+ <Story of={LabelStories.Sendung} />
37
+
38
+ <Story of={LabelStories.Kurzmeldung} />
39
+ </Canvas>
40
+
41
+ ## Einbindung
42
+
43
+ Die Komponente wird in Form eines Handlebar Partials eingebunden.
44
+
45
+ ```html
46
+ {{> components/label/label.hbs type="liveticker" text="Liveticker"}}
47
+ ```
48
+
49
+ Mit folgenden Parametern kann die Komponente konfiguriert werden.
50
+
51
+ | Parameter | Typ | Mögliche Werte | Erläuterung |
52
+ | :--------- | :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------- |
53
+ | **\_text** | `String` | Beliebiger Text | Die Beschriftung des Labels. |
54
+ | **\_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. |
@@ -0,0 +1,183 @@
1
+ import label from './label.hbs'
2
+
3
+ const Template = ({ _type, ...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 label({ _type, ...args })
7
+ }
8
+
9
+ export default {
10
+ title: 'Komponenten/Label',
11
+
12
+ argTypes: {
13
+ _type: {
14
+ control: {
15
+ type: 'select',
16
+
17
+ labels: {
18
+ 'analysis': 'Analyse',
19
+ 'event': 'Event',
20
+ 'comment': 'Kommentar',
21
+ 'media': 'Medieninhalte',
22
+ 'breakingnews': 'Eilmeldung',
23
+ 'der-tag-in-hessen': 'Der Tag in Hessen',
24
+ 'glosse': 'Glosse',
25
+ 'fragen-und-antworten': 'Fragen und Antworten',
26
+ 'infografik': 'Infografik',
27
+ 'interaktiv': 'Interaktiv',
28
+ 'program': 'Sendung',
29
+ 'download': 'Download',
30
+ 'pm': 'Pressemitteilung',
31
+ 'liveticker': 'Liveticker',
32
+ 'ticker': 'Ticker',
33
+ 'livestream': 'Livestream',
34
+ 'live': 'Live',
35
+ 'livechat': 'Livechat',
36
+ 'buliticker': 'Bundesliga-Ticker',
37
+ 'social-tv': 'Social-TV',
38
+ 'blog': 'Blog',
39
+ 'kurzmeldung': 'Kurzmeldung',
40
+ },
41
+
42
+ options: [
43
+ '',
44
+ 'analysis',
45
+ 'blog',
46
+ 'buliticker',
47
+ 'der-tag-in-hessen',
48
+ 'download',
49
+ 'breakingnews',
50
+ 'event',
51
+ 'fragen-und-antworten',
52
+ 'glosse',
53
+ 'infografik',
54
+ 'interaktiv',
55
+ 'comment',
56
+ 'live',
57
+ 'livechat',
58
+ 'livestream',
59
+ 'liveticker',
60
+ 'media',
61
+ 'pm',
62
+ 'program',
63
+ 'social-tv',
64
+ 'ticker',
65
+ 'kurzmeldung',
66
+ ],
67
+ },
68
+
69
+ description: 'Art des Labels',
70
+
71
+ table: {
72
+ defaultValue: {
73
+ summary: 'media',
74
+ },
75
+ },
76
+ },
77
+
78
+ _text: {
79
+ control: 'text',
80
+ description: 'Beschriftung des Labels',
81
+ },
82
+ },
83
+ }
84
+
85
+ export const Download = {
86
+ render: Template.bind({}),
87
+ name: 'Download',
88
+
89
+ args: {
90
+ _type: 'download',
91
+ _text: 'Download',
92
+ },
93
+ }
94
+
95
+ export const Eilmeldung = {
96
+ render: Template.bind({}),
97
+ name: 'Eilmeldung',
98
+
99
+ args: {
100
+ _type: 'breakingnews',
101
+ _text: 'Eilmeldung',
102
+ },
103
+ }
104
+
105
+ export const Event = {
106
+ render: Template.bind({}),
107
+ name: 'Event',
108
+
109
+ args: {
110
+ _type: 'event',
111
+ _text: 'Event',
112
+ },
113
+ }
114
+
115
+ export const Infografik = {
116
+ render: Template.bind({}),
117
+ name: 'Infografik',
118
+
119
+ args: {
120
+ _type: 'infografik',
121
+ _text: 'Infografik',
122
+ },
123
+ }
124
+
125
+ export const Kommentar = {
126
+ render: Template.bind({}),
127
+ name: 'Kommentar',
128
+
129
+ args: {
130
+ _type: 'comment',
131
+ _text: 'Kommentar',
132
+ },
133
+ }
134
+
135
+ export const Liveticker = {
136
+ render: Template.bind({}),
137
+ name: 'Liveticker',
138
+
139
+ args: {
140
+ _type: 'liveticker',
141
+ _text: 'Liveticker',
142
+ },
143
+ }
144
+
145
+ export const Media = {
146
+ render: Template.bind({}),
147
+ name: 'Media',
148
+
149
+ args: {
150
+ _type: 'media',
151
+ _text: 'Media',
152
+ },
153
+ }
154
+
155
+ export const Pressemitteilung = {
156
+ render: Template.bind({}),
157
+ name: 'Pressemitteilung',
158
+
159
+ args: {
160
+ _type: 'pm',
161
+ _text: 'Pressemitteilung',
162
+ },
163
+ }
164
+
165
+ export const Sendung = {
166
+ render: Template.bind({}),
167
+ name: 'Sendung',
168
+
169
+ args: {
170
+ _type: 'program',
171
+ _text: 'Sendung',
172
+ },
173
+ }
174
+
175
+ export const Kurzmeldung = {
176
+ render: Template.bind({}),
177
+ name: 'Kurzmeldung',
178
+
179
+ args: {
180
+ _type: 'kurzmeldung',
181
+ _text: 'Kurzmeldung',
182
+ },
183
+ }
@@ -0,0 +1,17 @@
1
+ import structuredClone from 'core-js-pure/actual/structured-clone'
2
+ import NavigationData from '../site_header/fixtures/site_header_default.json'
3
+ import NavigationData2 from '../site_header/fixtures/site_header_mit_warnung.json'
4
+ import NavigationData3 from '../site_header/fixtures/site_header_mit_submenu.json'
5
+
6
+ import hero_teaser from '../teaser/fixtures/teaser_standard_hero_serif.json'
7
+ const NavigationDataWithTeaser = structuredClone(
8
+ Object.assign({}, NavigationData, hero_teaser.logicItem.includeModel)
9
+ )
10
+ const NavigationDataWithTeaser2 = structuredClone(
11
+ Object.assign({}, NavigationData2, hero_teaser.logicItem.includeModel)
12
+ )
13
+ const NavigationDataWithTeaser3 = structuredClone(
14
+ Object.assign({}, NavigationData3, hero_teaser.logicItem.includeModel)
15
+ )
16
+
17
+ export { NavigationDataWithTeaser, NavigationDataWithTeaser2, NavigationDataWithTeaser3 }