hr-design-system-handlebars 1.11.10 → 1.11.12

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 (130) 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 +29 -0
  6. package/dist/assets/index.css +11 -3
  7. package/dist/views/components/page/page_pagination.hbs +1 -1
  8. package/dist/views/components/pagination/pagination.hbs +15 -14
  9. package/dist/views/components/pagination/pagination_current_page_invalid.hbs +1 -1
  10. package/dist/views/components/pagination/pagination_current_page_valid.hbs +2 -1
  11. package/dist/views/components/pagination/pagination_more_than_three_pages.hbs +3 -3
  12. package/dist/views/components/pagination/pagination_only_three_pages.hbs +7 -7
  13. package/dist/views/components/pagination/pagination_only_two_pages.hbs +2 -2
  14. package/package.json +20 -13
  15. package/src/assets/css/custom-utilities.css +3 -3
  16. package/src/assets/fixtures/page/page_pagination.json +15 -14
  17. package/src/stories/BrandColors.data.js +42 -0
  18. package/src/stories/BrandColors.mdx +25 -0
  19. package/src/stories/{Colors.stories.mdx → Colors.data.js} +2 -18
  20. package/src/stories/Colors.mdx +19 -0
  21. package/src/stories/Example.mdx +56 -0
  22. package/src/stories/Example.stories.js +57 -0
  23. package/src/stories/{Fixtures.stories.mdx → Fixtures.mdx} +3 -5
  24. package/src/stories/{InstallAndUpdate.stories.mdx → InstallAndUpdate.mdx} +0 -2
  25. package/src/stories/Introduction.mdx +3 -0
  26. package/src/stories/{SvgOptimization.stories.mdx → SvgOptimization.mdx} +0 -2
  27. package/src/stories/{Typography.stories.mdx → Typography.mdx} +13 -14
  28. package/src/stories/{conventions-and-datastructure.stories.mdx → conventions-and-datastructure.mdx} +7 -9
  29. package/src/stories/views/components/Button.mdx +30 -0
  30. package/src/stories/views/components/Button_.stories.js +77 -0
  31. package/src/stories/views/components/event/calendar/{event_calendar_components.stories.mdx → event_calendar_components.mdx} +31 -87
  32. package/src/stories/views/components/event/calendar/event_calendar_components.stories.js +129 -0
  33. package/src/stories/views/components/geoTag/geoTag.mdx +32 -0
  34. package/src/stories/views/components/geoTag/geoTag.stories.js +35 -0
  35. package/src/stories/views/components/grid/grid.mdx +210 -0
  36. package/src/stories/views/components/grid/grid.stories.js +148 -0
  37. package/src/stories/views/components/label/label.mdx +54 -0
  38. package/src/stories/views/components/label/label.stories.js +183 -0
  39. package/src/stories/views/components/page/fixtures/page_pagination.json +1 -1
  40. package/src/stories/views/components/page/page.data.js +17 -0
  41. package/src/stories/views/components/page/page.mdx +110 -0
  42. package/src/stories/views/components/page/page.stories.js +50 -0
  43. package/src/stories/views/components/page/page_pagination.data.js +8 -0
  44. package/src/stories/views/components/page/page_pagination.hbs +1 -1
  45. package/src/stories/views/components/page/page_pagination.mdx +8 -0
  46. package/src/stories/views/components/page/page_pagination.stories.js +34 -0
  47. package/src/stories/views/components/page/page_player.mdx +21 -0
  48. package/src/stories/views/components/page/page_player.stories.js +34 -0
  49. package/src/stories/views/components/pagination/pagination.hbs +15 -14
  50. package/src/stories/views/components/pagination/pagination_current_page_invalid.hbs +1 -1
  51. package/src/stories/views/components/pagination/pagination_current_page_valid.hbs +2 -1
  52. package/src/stories/views/components/pagination/pagination_more_than_three_pages.hbs +3 -3
  53. package/src/stories/views/components/pagination/pagination_only_three_pages.hbs +7 -7
  54. package/src/stories/views/components/pagination/pagination_only_two_pages.hbs +2 -2
  55. package/src/stories/views/components/site_header/{header.stories.mdx → header.mdx} +218 -152
  56. package/src/stories/views/components/site_header/header.stories.js +62 -0
  57. package/src/stories/views/components/teaser/cluster/teaser_cluster.mdx +32 -0
  58. package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.js +146 -0
  59. package/src/stories/views/components/teaser/components/teaser_byline.mdx +97 -0
  60. package/src/stories/views/components/teaser/components/teaser_byline.stories.js +30 -0
  61. package/src/stories/views/components/teaser/components/teaser_heading.mdx +96 -0
  62. package/src/stories/views/components/teaser/components/teaser_heading.stories.js +158 -0
  63. package/src/stories/views/components/teaser/components/teaser_text.mdx +36 -0
  64. package/src/stories/views/components/teaser/components/teaser_text.stories.js +74 -0
  65. package/src/stories/views/components/teaser/components/teaser_title.mdx +42 -0
  66. package/src/stories/views/components/teaser/components/teaser_title.stories.js +85 -0
  67. package/src/stories/views/components/teaser/components/teaser_topline.mdx +29 -0
  68. package/src/stories/views/components/teaser/components/teaser_topline.stories.js +27 -0
  69. package/src/stories/views/components/teaser/content_nav/teaser_content_nav.mdx +54 -0
  70. package/src/stories/views/components/teaser/content_nav/{teaser_content_nav.stories.mdx → teaser_content_nav.stories.js} +80 -61
  71. package/src/stories/views/components/teaser/group_teaser/group.mdx +18 -0
  72. package/src/stories/views/components/teaser/group_teaser/group.stories.js +85 -0
  73. package/src/stories/views/components/teaser/podcast/podcast.mdx +11 -0
  74. package/src/stories/views/components/teaser/podcast/{podcast.stories.mdx → podcast.stories.js} +50 -39
  75. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.mdx +10 -0
  76. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.js +51 -0
  77. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.mdx +10 -0
  78. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.js +40 -0
  79. package/src/stories/views/components/teaser/teaser_alternativ.mdx +76 -0
  80. package/src/stories/views/components/teaser/teaser_alternativ.stories.js +126 -0
  81. package/src/stories/views/components/teaser/teaser_alternativ_av.mdx +75 -0
  82. package/src/stories/views/components/teaser/teaser_alternativ_av.stories.js +111 -0
  83. package/src/stories/views/components/teaser/teaser_event_calendar.mdx +57 -0
  84. package/src/stories/views/components/teaser/teaser_event_calendar.stories.js +92 -0
  85. package/src/stories/views/components/teaser/teaser_indextext.mdx +35 -0
  86. package/src/stories/views/components/teaser/teaser_indextext.stories.js +85 -0
  87. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.mdx +23 -0
  88. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.js +36 -0
  89. package/src/stories/views/components/teaser/teaser_poster.mdx +95 -0
  90. package/src/stories/views/components/teaser/teaser_poster.stories.js +67 -0
  91. package/src/stories/views/components/teaser/teaser_stage.mdx +15 -0
  92. package/src/stories/views/components/teaser/teaser_stage.stories.js +60 -0
  93. package/src/stories/views/components/teaser/teaser_standard.mdx +129 -0
  94. package/src/stories/views/components/teaser/teaser_standard.stories.js +166 -0
  95. package/src/stories/views/components/teaser/teaser_standard_av.mdx +38 -0
  96. package/src/stories/views/components/teaser/teaser_standard_av.stories.js +117 -0
  97. package/src/stories/views/components/teaser/teaser_standard_event.mdx +103 -0
  98. package/src/stories/views/components/teaser/teaser_standard_event.stories.js +119 -0
  99. package/src/stories/views/components/teaser/ticker/teaser_ticker.mdx +10 -0
  100. package/src/stories/views/components/teaser/ticker/{teaser_ticker.stories.mdx → teaser_ticker.stories.js} +25 -24
  101. package/.storybook/withThemeDecorator.js +0 -12
  102. package/src/stories/BrandColors.stories.mdx +0 -39
  103. package/src/stories/Example.stories.mdx +0 -93
  104. package/src/stories/Introduction.stories.mdx +0 -211
  105. package/src/stories/views/components/Button.stories.mdx +0 -82
  106. package/src/stories/views/components/geoTag/geoTag.stories.mdx +0 -61
  107. package/src/stories/views/components/grid/grid.stories.mdx +0 -275
  108. package/src/stories/views/components/label/label.stories.mdx +0 -200
  109. package/src/stories/views/components/page/page.stories.mdx +0 -144
  110. package/src/stories/views/components/page/page_pagination.stories.mdx +0 -36
  111. package/src/stories/views/components/page/page_player.stories.mdx +0 -43
  112. package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.mdx +0 -97
  113. package/src/stories/views/components/teaser/components/teaser_byline.stories.mdx +0 -78
  114. package/src/stories/views/components/teaser/components/teaser_heading.stories.mdx +0 -219
  115. package/src/stories/views/components/teaser/components/teaser_text.stories.mdx +0 -94
  116. package/src/stories/views/components/teaser/components/teaser_title.stories.mdx +0 -124
  117. package/src/stories/views/components/teaser/components/teaser_topline.stories.mdx +0 -63
  118. package/src/stories/views/components/teaser/group_teaser/group.stories.mdx +0 -85
  119. package/src/stories/views/components/teaser/podcast/podcast_subscribe_button.stories.mdx +0 -52
  120. package/src/stories/views/components/teaser/tabbox/teaser_tabbox.stories.mdx +0 -39
  121. package/src/stories/views/components/teaser/teaser_alternativ.stories.mdx +0 -163
  122. package/src/stories/views/components/teaser/teaser_alternativ_av.stories.mdx +0 -142
  123. package/src/stories/views/components/teaser/teaser_event_calendar.stories.mdx +0 -131
  124. package/src/stories/views/components/teaser/teaser_indextext.stories.mdx +0 -111
  125. package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.mdx +0 -39
  126. package/src/stories/views/components/teaser/teaser_poster.stories.mdx +0 -130
  127. package/src/stories/views/components/teaser/teaser_stage.stories.mdx +0 -53
  128. package/src/stories/views/components/teaser/teaser_standard.stories.mdx +0 -170
  129. package/src/stories/views/components/teaser/teaser_standard_av.stories.mdx +0 -95
  130. package/src/stories/views/components/teaser/teaser_standard_event.stories.mdx +0 -150
@@ -0,0 +1,42 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as TeaserTitleStories from './teaser_title.stories'
3
+
4
+ <Meta of={TeaserTitleStories} />
5
+
6
+ # Titel
7
+
8
+ ## Beschreibung
9
+
10
+ In der Titel-Komponente wird der Titel des Artikels dargestellt. Textgröße und Schriftart werden
11
+ anhand der Parameter <b>teaserType</b> und <b>fontVariant</b> in der inkludierten Sub-Komponente <b>teaser_title_classes</b> ermitelt.
12
+
13
+ ## Sub-Komponenten
14
+
15
+ Die Titel-Komponente inkludiert folgende Komponenten:
16
+
17
+ <ul>
18
+ <li>
19
+ components/teaser/components/<b>teaser\_title\_classes</b>
20
+ </li>
21
+ </ul>
22
+
23
+ ## Parameter
24
+
25
+ Die Titel-Komponente benötigt folgende Parameter:
26
+
27
+ <ArgsTable story="Titel Serif - Hero" />
28
+
29
+ ## Verwendung
30
+
31
+ Die Titel-Komponente wird in handlebars wie folgt eingebaut:
32
+
33
+ ```html
34
+ {{> components/teaser/components/teaser_title text=title fontVariant=fontVariant size=size
35
+ teaserType=teaserType}}
36
+ ```
37
+
38
+ <Canvas withToolbar>
39
+ <Story of={TeaserTitleStories.TitelSerifHero} />
40
+ <Story of={TeaserTitleStories.TitelSerifNormal} />
41
+ <Story of={TeaserTitleStories.TitelSerifSmall} />
42
+ </Canvas>
@@ -0,0 +1,85 @@
1
+ import titleComponent from './teaser_title.hbs'
2
+
3
+ const Template = ({ _text, ...args }) => {
4
+ // You can either use a function to create DOM elements or use a plain html string!
5
+ // return `<span>${title}</span>`;
6
+ return titleComponent({ _text, ...args })
7
+ }
8
+
9
+ export default {
10
+ title: 'Komponenten/Teaser/Komponenten/Titel',
11
+
12
+ argTypes: {
13
+ _text: {
14
+ control: 'text',
15
+ description: 'Titel',
16
+ },
17
+
18
+ _size: {
19
+ options: ['hero', '100', '50', '33', '25'],
20
+
21
+ control: {
22
+ type: 'select',
23
+ },
24
+
25
+ description: 'Größe der Überschrift',
26
+
27
+ table: {
28
+ defaultValue: {
29
+ summary: 'hero',
30
+ },
31
+ },
32
+ },
33
+
34
+ _fontVariant: {
35
+ description: 'Schriftvariante',
36
+
37
+ control: {
38
+ type: 'inline-radio',
39
+ options: ['serif', 'sans-serif'],
40
+ },
41
+
42
+ table: {
43
+ defaultValue: {
44
+ summary: 'serif',
45
+ },
46
+ },
47
+ },
48
+ },
49
+ }
50
+
51
+ export const TitelSerifHero = {
52
+ render: Template.bind({}),
53
+ name: 'Titel Serif - Hero',
54
+
55
+ args: {
56
+ _text: 'Dies ist der Titel eines 100%-Teasers',
57
+ _size: 'hero',
58
+ _fontVariant: 'serif',
59
+ _teaserType: 'standard',
60
+ },
61
+ }
62
+
63
+ export const TitelSerifNormal = {
64
+ render: Template.bind({}),
65
+ name: 'Titel Serif - normal',
66
+
67
+ args: {
68
+ _text: 'Dies ist der Titel eines 66%-, 50%- oder 33%-Teasers',
69
+ _size: '33',
70
+ _fontVariant: 'serif',
71
+ _teaserType: 'standard',
72
+ },
73
+ }
74
+
75
+ export const TitelSerifSmall = {
76
+ render: Template.bind({}),
77
+ name: 'Titel Serif - small',
78
+
79
+ args: {
80
+ _text: 'Dies ist der Titel eines 25%-Teasers',
81
+ _size: '25',
82
+ _fontVariant: 'serif',
83
+ _teaserType: 'standard',
84
+ },
85
+ }
@@ -0,0 +1,29 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as TeaserToplineStories from './teaser_topline.stories'
3
+
4
+ <Meta of={TeaserToplineStories} />
5
+
6
+ # Topline
7
+
8
+ ## Beschreibung
9
+
10
+ In der Topline-Komponente wird die Dachzeile des Artikels dargestellt.
11
+
12
+ ## Parameter
13
+
14
+ Die Topline-Komponente benötigt folgende Parameter:
15
+
16
+ <ArgsTable story="default" />
17
+
18
+ ## Verwendung
19
+
20
+ Die Topline-Komponente wird in handlebars wie folgt eingebaut:
21
+
22
+ ```html
23
+ {{> components/teaser/components/teaser_topline text=topline readMore=readMore
24
+ teaserType=teaserType}}
25
+ ```
26
+
27
+ <Canvas withToolbar>
28
+ <Story of={TeaserToplineStories.Default} />
29
+ </Canvas>
@@ -0,0 +1,27 @@
1
+ import topline from './teaser_topline.hbs'
2
+
3
+ const Template = ({ _text, ...args }) => {
4
+ // You can either use a function to create DOM elements or use a plain html string!
5
+ // return `<span>${topline}</span>`;
6
+ return topline({ _text, ...args })
7
+ }
8
+
9
+ export default {
10
+ title: 'Komponenten/Teaser/Komponenten/Topline',
11
+
12
+ argTypes: {
13
+ _text: {
14
+ control: 'text',
15
+ description: 'Dachzeilentext',
16
+ },
17
+ },
18
+ }
19
+
20
+ export const Default = {
21
+ render: Template.bind({}),
22
+ name: 'default',
23
+
24
+ args: {
25
+ _text: 'Dies ist die Dachzeile',
26
+ },
27
+ }
@@ -0,0 +1,54 @@
1
+ import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/blocks'
2
+ import * as TeaserContentNavStories from './teaser_content_nav.stories'
3
+
4
+ <Meta of={TeaserContentNavStories} />
5
+
6
+ export const Template = (args, { globals: { customConditionalToolbar } }) => {
7
+ // You can either use a function to create DOM elements or use a plain html string!
8
+ // return `<div>${label}</div>`;
9
+ let brand =
10
+ undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
11
+ return teaser({ brand, ...args })
12
+ }
13
+
14
+ # Content-Navi-Teaser
15
+
16
+ ## Beschreibung
17
+
18
+ ### Liste
19
+
20
+ <Canvas withToolbar>
21
+ <Story of={TeaserContentNavStories.Liste} />
22
+ </Canvas>
23
+ ### Liste mit Filter
24
+ <Canvas withToolbar>
25
+ <Story of={TeaserContentNavStories.ListeMitFilter} />
26
+ </Canvas>
27
+ ### Fluß
28
+ <Canvas withToolbar>
29
+ <Story of={TeaserContentNavStories.Fluss} />
30
+ </Canvas>
31
+ ### Fluss mit Filter
32
+ <Canvas withToolbar>
33
+ <Story of={TeaserContentNavStories.FlussMitFilter} />
34
+ </Canvas>
35
+ ### Gemischt
36
+ <Canvas withToolbar>
37
+ <Story of={TeaserContentNavStories.Gemischt} />
38
+ </Canvas>
39
+ ### Gemischt mit Filter
40
+ <Canvas withToolbar>
41
+ <Story of={TeaserContentNavStories.GemischtMitFilter} />
42
+ </Canvas>
43
+ ### Dropdown
44
+ <Canvas withToolbar>
45
+ <Story of={TeaserContentNavStories.Dropdown} />
46
+ </Canvas>
47
+ ### Dropdown mit Filter
48
+ <Canvas withToolbar>
49
+ <Story of={TeaserContentNavStories.DropdownMitFilter} />
50
+ </Canvas>
51
+ ### Dropdown mit Subgruppen
52
+ <Canvas withToolbar>
53
+ <Story of={TeaserContentNavStories.DropdownMitSubgruppen} />
54
+ </Canvas>
@@ -1,5 +1,3 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
- import 'core-js/actual/structured-clone'
3
1
  import { addLabel, removeLabel, changeTeaserSize } from '../labelHelper'
4
2
  import { addCommentLink } from '../jsonHelper'
5
3
 
@@ -16,102 +14,123 @@ import contentNavDropdown_autosuggest from '../fixtures/teaser_content_nav_dropd
16
14
  import contentNavDropdown from '../fixtures/teaser_content_nav_dropdown_100.json'
17
15
  import contentNavDropdown_subgroups from '../fixtures/teaser_content_nav_dropdown_subgroups.json'
18
16
 
19
- <Meta
20
- title="Komponenten/Teaser/Content-Navi"
21
- parameters={{
17
+ const Template = (args, { globals: { customConditionalToolbar } }) => {
18
+ // You can either use a function to create DOM elements or use a plain html string!
19
+ // return `<div>${label}</div>`;
20
+ let brand =
21
+ undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
22
+ return teaser({ brand, ...args })
23
+ }
24
+
25
+ export default {
26
+ title: 'Komponenten/Teaser/Content-Navi',
27
+
28
+ parameters: {
22
29
  layout: 'fullscreen',
30
+
23
31
  chromatic: {
24
32
  viewports: [360, 768, 1024],
25
33
  },
26
- }}
27
- argTypes={{
34
+ },
35
+
36
+ argTypes: {
28
37
  realTeaserSize: {
29
38
  control: {
30
39
  type: 'select',
31
40
  options: ['100', '66', '50', '33', '25'],
32
41
  },
42
+
33
43
  description: 'Teaser Größe',
44
+
34
45
  table: {
35
46
  defaultValue: {
36
47
  summary: '100',
37
48
  },
38
49
  },
39
50
  },
51
+
40
52
  contentNav: {
41
53
  table: {
42
54
  expanded: false,
43
55
  disable: false,
44
56
  },
45
57
  },
58
+
46
59
  teaserSize: {
47
60
  control: {
48
61
  type: 'select',
49
62
  options: ['100', '66', '50', '33', '25'],
50
63
  },
64
+
51
65
  description: 'Teaser Größe',
66
+
52
67
  table: {
53
68
  defaultValue: {
54
69
  summary: '100',
55
70
  },
56
71
  },
57
72
  },
58
- }}
59
- decorators={[
73
+ },
74
+
75
+ decorators: [
60
76
  (Story) => {
61
77
  return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
62
- ${Story()}
63
- </div></div>`
78
+ ${Story()}
79
+ </div></div>`
64
80
  },
65
- ]}
66
- />
81
+ ],
82
+ }
67
83
 
68
- export const Template = (args, { globals: { customConditionalToolbar } }) => {
69
- // You can either use a function to create DOM elements or use a plain html string!
70
- // return `<div>${label}</div>`;
71
- let brand =
72
- undefined !== customConditionalToolbar ? customConditionalToolbar['brands'] : 'hessenschau'
73
- return teaser({ brand, ...args })
84
+ export const Liste = {
85
+ render: Template.bind({}),
86
+ name: 'Liste',
87
+ args: contentNavList,
88
+ }
89
+
90
+ export const ListeMitFilter = {
91
+ render: Template.bind({}),
92
+ name: 'Liste mit Filter',
93
+ args: contentNavList_autosuggest,
94
+ }
95
+
96
+ export const Fluss = {
97
+ render: Template.bind({}),
98
+ name: 'Fluss',
99
+ args: contentNavFlow,
100
+ }
101
+
102
+ export const FlussMitFilter = {
103
+ render: Template.bind({}),
104
+ name: 'Fluss mit Filter',
105
+ args: contentNavFlow_autosuggest,
74
106
  }
75
107
 
76
- # Content-Navi-Teaser
77
-
78
- ## Beschreibung
79
-
80
- <Preview withToolbar>
81
- <b>Liste</b>
82
- <Story name="Liste" args={contentNavList}>
83
- {Template.bind({})}
84
- </Story>
85
- <b>Liste mit Filter</b>
86
- <Story name="Liste mit Filter" args={contentNavList_autosuggest}>
87
- {Template.bind({})}
88
- </Story>
89
- <b>Fluss</b>
90
- <Story name="Fluss" args={contentNavFlow}>
91
- {Template.bind({})}
92
- </Story>
93
- <b>Fluss mit Filter</b>
94
- <Story name="Fluss mit Filter" args={contentNavFlow_autosuggest}>
95
- {Template.bind({})}
96
- </Story>
97
- <b>Gemischt</b>
98
- <Story name="Gemischt" args={contentNavMixed}>
99
- {Template.bind({})}
100
- </Story>
101
- <b>Gemischt mit Filter</b>
102
- <Story name="Gemischt mit Filter" args={contentNavMixed_autosuggest}>
103
- {Template.bind({})}
104
- </Story>
105
- <b>Dropdown</b>
106
- <Story name="Dropdown" args={contentNavDropdown}>
107
- {Template.bind({})}
108
- </Story>
109
- <b>Dropdown mit Filter</b>
110
- <Story name="Dropdown mit Filter" args={contentNavDropdown_autosuggest}>
111
- {Template.bind({})}
112
- </Story>
113
- <b>Dropdown mit Subgruppen</b>
114
- <Story name="Dropdown mit Subgruppen" args={contentNavDropdown_subgroups}>
115
- {Template.bind({})}
116
- </Story>
117
- </Preview>
108
+ export const Gemischt = {
109
+ render: Template.bind({}),
110
+ name: 'Gemischt',
111
+ args: contentNavMixed,
112
+ }
113
+
114
+ export const GemischtMitFilter = {
115
+ render: Template.bind({}),
116
+ name: 'Gemischt mit Filter',
117
+ args: contentNavMixed_autosuggest,
118
+ }
119
+
120
+ export const Dropdown = {
121
+ render: Template.bind({}),
122
+ name: 'Dropdown',
123
+ args: contentNavDropdown,
124
+ }
125
+
126
+ export const DropdownMitFilter = {
127
+ render: Template.bind({}),
128
+ name: 'Dropdown mit Filter',
129
+ args: contentNavDropdown_autosuggest,
130
+ }
131
+
132
+ export const DropdownMitSubgruppen = {
133
+ render: Template.bind({}),
134
+ name: 'Dropdown mit Subgruppen',
135
+ args: contentNavDropdown_subgroups,
136
+ }
@@ -0,0 +1,18 @@
1
+ import { ArgsTable, Meta, Story, Canvas } from '@storybook/blocks'
2
+ import * as GroupStories from './group.stories'
3
+
4
+ <Meta of={GroupStories} />
5
+
6
+ # Button
7
+
8
+ Ein toller Einleitungstext für unsere `Teaser Gruppen` Komponente:
9
+
10
+ <Canvas withToolbar>
11
+ <Story of={GroupStories.$100GruppeMitUberschrift} />
12
+ <Story of={GroupStories.$100GruppeMitUberschriftHighlight1} />
13
+ <Story of={GroupStories.$100GruppeMitUberschriftHighlight2} />
14
+ <Story of={GroupStories.$100GruppeMitContentNavigationAufklapp} />
15
+ <Story of={GroupStories.$100GruppeMitRelatedContent} />
16
+ </Canvas>
17
+
18
+ <ArgsTable story="main" />
@@ -0,0 +1,85 @@
1
+ import groupTeaser from './group_teaser.hbs'
2
+ import groupTeaserAccented from './group_teaser_accented.hbs'
3
+ import teaserGroup100 from '../fixtures/teaser_group_100.json'
4
+ import teaserGroupRelatedContent100 from '../fixtures/teaser_group_related_content_100.json'
5
+ import teaserGroup100highlight from '../fixtures/teaser_group_100_highlight.json'
6
+ import teaserGroup100highlight2 from '../fixtures/teaser_group_100_highlight_2.json'
7
+
8
+ import teaserGroup100contentnav from '../fixtures/teaser_group_100_contentnav.json'
9
+
10
+ const groupTeaserTemplate = ({ text, ...args }) => {
11
+ // You can either use a function to create DOM elements or use a plain html string!
12
+ // return `<div>${label}</div>`;
13
+ return groupTeaser({ text, ...args })
14
+ }
15
+
16
+ const groupTeaserAccentedTemplate = ({ text, ...args }) => {
17
+ // You can either use a function to create DOM elements or use a plain html string!
18
+ // return `<div>${label}</div>`;
19
+ return groupTeaserAccented({ text, ...args })
20
+ }
21
+
22
+ export default {
23
+ title: 'Komponenten/Teaser/Gruppen',
24
+
25
+ argTypes: {
26
+ teaserSize: {
27
+ control: {
28
+ type: 'select',
29
+ options: ['100', '66', '50', '33', '25'],
30
+ },
31
+
32
+ description: 'Teaser Größe',
33
+
34
+ table: {
35
+ defaultValue: {
36
+ summary: '100',
37
+ },
38
+ },
39
+ },
40
+ },
41
+
42
+ parameters: {
43
+ layout: 'fullscreen',
44
+ },
45
+
46
+ decorators: [
47
+ (Story) => {
48
+ return `<div class="grid my-5 grid-page">
49
+ <div class="grid grid-cols-12 py-6 bg-white sm:px-9.5 col-full sm:col-main gap-x-6 md:gap-y-14 gap-y-6">
50
+ ${Story()}
51
+ </div>
52
+ </div>`
53
+ },
54
+ ],
55
+ }
56
+
57
+ export const $100GruppeMitUberschrift = {
58
+ render: groupTeaserTemplate.bind({}),
59
+ name: '100% Gruppe mit Überschrift',
60
+ args: teaserGroup100.includeModel,
61
+ }
62
+
63
+ export const $100GruppeMitUberschriftHighlight1 = {
64
+ render: groupTeaserTemplate.bind({}),
65
+ name: '100% Gruppe mit Überschrift Highlight 1',
66
+ args: teaserGroup100highlight.includeModel,
67
+ }
68
+
69
+ export const $100GruppeMitUberschriftHighlight2 = {
70
+ render: groupTeaserTemplate.bind({}),
71
+ name: '100% Gruppe mit Überschrift Highlight 2',
72
+ args: teaserGroup100highlight2.includeModel,
73
+ }
74
+
75
+ export const $100GruppeMitContentNavigationAufklapp = {
76
+ render: groupTeaserAccentedTemplate.bind({}),
77
+ name: '100% Gruppe mit Content Navigation Aufklapp',
78
+ args: teaserGroup100contentnav.includeModel,
79
+ }
80
+
81
+ export const $100GruppeMitRelatedContent = {
82
+ render: groupTeaserTemplate.bind({}),
83
+ name: '100% Gruppe mit Related Content',
84
+ args: teaserGroupRelatedContent100.includeModel,
85
+ }
@@ -0,0 +1,11 @@
1
+ import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/blocks'
2
+ import * as PodcastStories from './podcast.stories'
3
+
4
+ <Meta of={PodcastStories} />
5
+
6
+ <Canvas withToolbar>
7
+ <Story of={PodcastStories.$100EpisodePlayer} />
8
+ <Story of={PodcastStories.$50EpisodePlayer} />
9
+ <Story of={PodcastStories.$100ChannelPlayer} />
10
+ <Story of={PodcastStories.$50ChannelPlayer} />
11
+ </Canvas>
@@ -1,5 +1,3 @@
1
- import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
2
-
3
1
  import podcast from './podcast.hbs'
4
2
  import podcastPlaylist from './podcast-playlist.hbs'
5
3
  import episodeJson from '../fixtures/teaser_podcast.json'
@@ -7,28 +5,7 @@ import episodeJson50 from '../fixtures/teaser_podcast_50.json'
7
5
  import playlistJson100 from '../fixtures/teaser_podcast_playlist.json'
8
6
  import playlistJson50 from '../fixtures/teaser_podcast_playlist_50.json'
9
7
 
10
- <Meta
11
- title="Komponenten/Teaser/Podcast"
12
- parameters={{
13
- chromatic: {
14
- viewports: [360, 768, 1024],
15
- diffThreshold: 0.5,
16
- },
17
- layout: 'fullscreen',
18
- }}
19
- argTypes={{}}
20
- decorators={[
21
- (Story) => {
22
- return `<div class="grid grid-page">
23
- <div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
24
- ${Story()}
25
- </div>
26
- </div>`
27
- },
28
- ]}
29
- />
30
-
31
- export const episodeTemplate = (args, { globals: { customConditionalToolbar } }) => {
8
+ const episodeTemplate = (args, { globals: { customConditionalToolbar } }) => {
32
9
  // You can either use a function to create DOM elements or use a plain html string!
33
10
  // return `<div>${label}</div>`;
34
11
  let brand =
@@ -36,7 +13,7 @@ export const episodeTemplate = (args, { globals: { customConditionalToolbar } })
36
13
  return podcast({ brand, ...args })
37
14
  }
38
15
 
39
- export const playlistTemplate = (args, { globals: { customConditionalToolbar } }) => {
16
+ const playlistTemplate = (args, { globals: { customConditionalToolbar } }) => {
40
17
  // You can either use a function to create DOM elements or use a plain html string!
41
18
  // return `<div>${label}</div>`;
42
19
  let brand =
@@ -44,17 +21,51 @@ export const playlistTemplate = (args, { globals: { customConditionalToolbar } }
44
21
  return podcastPlaylist({ brand, ...args })
45
22
  }
46
23
 
47
- <Preview withToolbar>
48
- <Story name="100% Episode Player" args={episodeJson.logicItem.includeModel}>
49
- {episodeTemplate.bind({})}
50
- </Story>
51
- <Story name="50% Episode Player" args={episodeJson50.logicItem.includeModel}>
52
- {episodeTemplate.bind({})}
53
- </Story>
54
- <Story name="100% Channel Player" args={playlistJson100.logicItem.includeModel}>
55
- {playlistTemplate.bind({})}
56
- </Story>
57
- <Story name="50% Channel Player" args={playlistJson50.logicItem.includeModel}>
58
- {playlistTemplate.bind({})}
59
- </Story>
60
- </Preview>
24
+ export default {
25
+ title: 'Komponenten/Teaser/Podcast',
26
+
27
+ parameters: {
28
+ chromatic: {
29
+ viewports: [360, 768, 1024],
30
+ diffThreshold: 0.5,
31
+ },
32
+
33
+ layout: 'fullscreen',
34
+ },
35
+
36
+ argTypes: {},
37
+
38
+ decorators: [
39
+ (Story) => {
40
+ return `<div class="grid grid-page">
41
+ <div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
42
+ ${Story()}
43
+ </div>
44
+ </div>`
45
+ },
46
+ ],
47
+ }
48
+
49
+ export const $100EpisodePlayer = {
50
+ render: episodeTemplate.bind({}),
51
+ name: '100% Episode Player',
52
+ args: episodeJson.logicItem.includeModel,
53
+ }
54
+
55
+ export const $50EpisodePlayer = {
56
+ render: episodeTemplate.bind({}),
57
+ name: '50% Episode Player',
58
+ args: episodeJson50.logicItem.includeModel,
59
+ }
60
+
61
+ export const $100ChannelPlayer = {
62
+ render: playlistTemplate.bind({}),
63
+ name: '100% Channel Player',
64
+ args: playlistJson100.logicItem.includeModel,
65
+ }
66
+
67
+ export const $50ChannelPlayer = {
68
+ render: playlistTemplate.bind({}),
69
+ name: '50% Channel Player',
70
+ args: playlistJson50.logicItem.includeModel,
71
+ }
@@ -0,0 +1,10 @@
1
+ import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/blocks'
2
+ import { resetComponents } from '@storybook/components'
3
+ import * as PodcastSubscribeButtonStories from './podcast_subscribe_button.stories'
4
+
5
+ <Meta of={PodcastSubscribeButtonStories} />
6
+
7
+ <Canvas withToolbar>
8
+ <Story of={PodcastSubscribeButtonStories.SubscribeButtonClose} />
9
+ <Story of={PodcastSubscribeButtonStories.SubscribeButtonOpen} />
10
+ </Canvas>