hr-design-system-handlebars 1.1.4 → 1.1.5
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.
- package/CHANGELOG.md +12 -0
- package/dist/assets/index.css +77 -29
- package/dist/assets/js/components/event/filtererDs.feature.js +42 -38
- package/dist/views/components/event/calendar/event_calendar_event_teaser.hbs +2 -2
- package/dist/views/components/grid/grid_group_highlight.hbs +1 -1
- package/dist/views/components/grid/grid_group_tabbed.hbs +1 -1
- package/dist/views/components/grid/grid_group_wrapper_classes.hbs +1 -1
- package/dist/views/components/teaser/teaser_stage.hbs +1 -1
- package/package.json +1 -1
- package/src/assets/css/custom-utilities.css +46 -33
- package/src/stories/views/components/event/calendar/event_calendar_components.stories.mdx +1 -1
- package/src/stories/views/components/event/calendar/event_calendar_event_teaser.hbs +2 -2
- package/src/stories/views/components/event/filtererDs.feature.js +42 -38
- package/src/stories/views/components/grid/grid_group_highlight.hbs +1 -1
- package/src/stories/views/components/grid/grid_group_tabbed.hbs +1 -1
- package/src/stories/views/components/grid/grid_group_wrapper_classes.hbs +1 -1
- package/src/stories/views/components/teaser/cluster/teaser_cluster.stories.mdx +10 -12
- package/src/stories/views/components/teaser/content_nav/teaser_content_nav.stories.mdx +4 -5
- package/src/stories/views/components/teaser/group_teaser/group.stories.mdx +51 -59
- package/src/stories/views/components/teaser/podcast/podcast.stories.mdx +26 -28
- package/src/stories/views/components/teaser/teaser_alternativ.stories.mdx +15 -6
- package/src/stories/views/components/teaser/teaser_alternativ_av.stories.mdx +1 -1
- package/src/stories/views/components/teaser/teaser_event_calendar.stories.mdx +1 -1
- package/src/stories/views/components/teaser/teaser_indextext.stories.mdx +26 -14
- package/src/stories/views/components/teaser/teaser_logic/teaser_logic.stories.mdx +17 -17
- package/src/stories/views/components/teaser/teaser_poster.stories.mdx +38 -19
- package/src/stories/views/components/teaser/teaser_stage.hbs +1 -1
- package/src/stories/views/components/teaser/teaser_standard.stories.mdx +40 -26
- package/src/stories/views/components/teaser/teaser_standard_av.stories.mdx +3 -3
- package/src/stories/views/components/teaser/teaser_standard_event.stories.mdx +3 -3
- package/tailwind.config.js +1 -0
|
@@ -38,7 +38,7 @@ import dataTeserIndextext50Accented from './fixtures/teaser_indextext_50_accente
|
|
|
38
38
|
}}
|
|
39
39
|
decorators={[
|
|
40
40
|
(Story) => {
|
|
41
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-
|
|
41
|
+
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">
|
|
42
42
|
${Story()}
|
|
43
43
|
</div></div>`
|
|
44
44
|
},
|
|
@@ -53,47 +53,59 @@ export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
|
53
53
|
return teaser({ brand, ...args })
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
# Indextext-Teaser
|
|
56
|
+
# Indextext-Teaser
|
|
57
57
|
|
|
58
58
|
## Beschreibung
|
|
59
59
|
|
|
60
|
-
|
|
61
60
|
## Props
|
|
62
61
|
|
|
63
62
|
Die Indextext-Teaser-Komponente benötigt die folgenden json-Daten (enthalten im Teaser-Json im Objekt <b>logicItem.includeModel</b>):
|
|
64
63
|
|
|
65
64
|
<ul>
|
|
66
|
-
<li
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<li
|
|
65
|
+
<li>
|
|
66
|
+
<b>title</b>
|
|
67
|
+
</li>
|
|
68
|
+
<li>
|
|
69
|
+
<b>shorttext</b>
|
|
70
|
+
</li>
|
|
71
|
+
<li>
|
|
72
|
+
<b>teaserSize</b>
|
|
73
|
+
</li>
|
|
74
|
+
<li>
|
|
75
|
+
<b>teaserType</b>
|
|
76
|
+
</li>
|
|
70
77
|
</ul>
|
|
71
78
|
|
|
72
|
-
|
|
73
79
|
## Verwendung
|
|
74
80
|
|
|
75
81
|
Die Indextext-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
76
82
|
|
|
77
83
|
```html
|
|
78
|
-
{{> components/teaser/teaser_indextext}}
|
|
84
|
+
{{> components/teaser/teaser_indextext}}
|
|
79
85
|
```
|
|
80
86
|
|
|
81
|
-
|
|
82
87
|
<Preview withToolbar>
|
|
83
|
-
<Story
|
|
88
|
+
<Story
|
|
89
|
+
name="Text mit Hintergrund 100"
|
|
90
|
+
args={dataTeserIndextext100Accented.logicItem.includeModel}
|
|
91
|
+
>
|
|
84
92
|
{Template.bind({})}
|
|
85
93
|
</Story>
|
|
86
94
|
<Story name="Text mit Box 100" args={dataTeserIndextext100Boxed.logicItem.includeModel}>
|
|
87
95
|
{Template.bind({})}
|
|
88
96
|
</Story>
|
|
89
97
|
<Story
|
|
90
|
-
name="Hintergrund orange 100"
|
|
98
|
+
name="Hintergrund orange 100"
|
|
99
|
+
args={dataTeserIndextext100Highlighted.logicItem.includeModel}
|
|
91
100
|
>
|
|
92
101
|
{Template.bind({})}
|
|
93
102
|
</Story>
|
|
94
|
-
<Story
|
|
103
|
+
<Story
|
|
104
|
+
name="Text mit Hintergrund 50"
|
|
105
|
+
args={dataTeserIndextext50Accented.logicItem.includeModel}
|
|
106
|
+
>
|
|
95
107
|
{Template.bind({})}
|
|
96
108
|
</Story>
|
|
97
109
|
</Preview>
|
|
98
110
|
|
|
99
|
-
<ArgsTable story="Text mit Hintergrund 100" />
|
|
111
|
+
<ArgsTable story="Text mit Hintergrund 100" />
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { ArgsTable, Meta, Story, Canvas, Preview } from '@storybook/addon-docs'
|
|
2
2
|
|
|
3
3
|
import teaser from './teaser_logic.hbs'
|
|
4
|
-
import index_site from '../fixtures/teaser_index.json'
|
|
4
|
+
import index_site from '../fixtures/teaser_index.json'
|
|
5
5
|
|
|
6
|
-
<Meta
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<div class="grid grid-cols-12 py-6 bg-white sm:px-
|
|
6
|
+
<Meta
|
|
7
|
+
title="Komponenten/Teaser/Logic"
|
|
8
|
+
parameters={{
|
|
9
|
+
layout: 'fullscreen',
|
|
10
|
+
}}
|
|
11
|
+
argTypes={{}}
|
|
12
|
+
decorators={[
|
|
13
|
+
(Story) => {
|
|
14
|
+
return `<div class="grid bg-white grid-page">
|
|
15
|
+
<div class="grid grid-cols-12 py-6 bg-white sm:px-9.5 col-full sm:col-main gap-x-6 gap-y-6">
|
|
16
16
|
${Story()}
|
|
17
17
|
</div>
|
|
18
18
|
</div>`
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
},
|
|
20
|
+
]}
|
|
21
|
+
/>
|
|
22
22
|
|
|
23
23
|
export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
24
24
|
// You can either use a function to create DOM elements or use a plain html string!
|
|
@@ -33,7 +33,7 @@ export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
|
33
33
|
Ein toller Einleitungstext für unsere `Teaser` Komponente:
|
|
34
34
|
|
|
35
35
|
<Preview withToolbar>
|
|
36
|
-
<Story
|
|
37
|
-
{Template.bind({})}
|
|
38
|
-
</Story>
|
|
36
|
+
<Story name="logic" args={index_site}>
|
|
37
|
+
{Template.bind({})}
|
|
38
|
+
</Story>
|
|
39
39
|
</Preview>
|
|
@@ -9,7 +9,7 @@ import teserPosterMdLabel from './fixtures/teaser_poster_md_label.json'
|
|
|
9
9
|
parameters={{
|
|
10
10
|
layout: 'fullscreen',
|
|
11
11
|
chromatic: {
|
|
12
|
-
diffThreshold: 0.5
|
|
12
|
+
diffThreshold: 0.5,
|
|
13
13
|
},
|
|
14
14
|
}}
|
|
15
15
|
argTypes={{
|
|
@@ -28,7 +28,7 @@ import teserPosterMdLabel from './fixtures/teaser_poster_md_label.json'
|
|
|
28
28
|
}}
|
|
29
29
|
decorators={[
|
|
30
30
|
(Story) => {
|
|
31
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-
|
|
31
|
+
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
32
32
|
${Story()}
|
|
33
33
|
</div></div>`
|
|
34
34
|
},
|
|
@@ -43,7 +43,7 @@ export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
|
43
43
|
return teaser({ brand, ...args })
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
# Poster-Teaser
|
|
46
|
+
# Poster-Teaser
|
|
47
47
|
|
|
48
48
|
## Beschreibung
|
|
49
49
|
|
|
@@ -60,40 +60,59 @@ Inhalt dieses spans: Zusatztext + ": " + Titel
|
|
|
60
60
|
|
|
61
61
|
Der Poster-Teaser soll nur als 50%- bzw. 33%-Teaser verwendet werden. Diese Restriktion muss cms-seitig implementiert werden.
|
|
62
62
|
|
|
63
|
-
|
|
64
63
|
## Sub-Komponenten
|
|
65
64
|
|
|
66
65
|
Die Poster-Teaser-Komponente inkludiert folgende Komponenten:
|
|
67
66
|
|
|
68
67
|
<ul>
|
|
69
|
-
<li>
|
|
70
|
-
|
|
71
|
-
|
|
68
|
+
<li>
|
|
69
|
+
components/base/image/<b>responsive_image</b>
|
|
70
|
+
</li>
|
|
71
|
+
<li>
|
|
72
|
+
components/base/<b>link</b>
|
|
73
|
+
</li>
|
|
74
|
+
<li>
|
|
75
|
+
components/teaser/components/<b>teaser_heading</b>
|
|
76
|
+
</li>
|
|
72
77
|
</ul>
|
|
73
78
|
|
|
74
|
-
|
|
75
79
|
## Props
|
|
76
80
|
|
|
77
81
|
Die Poster-Teaser-Komponente benötigt die folgenden json-Daten (enthalten im Teaser-Json im Objekt <b>logicItem.includeModel</b>):
|
|
78
82
|
|
|
79
83
|
<ul>
|
|
80
|
-
<li
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
<li
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
<li
|
|
87
|
-
|
|
84
|
+
<li>
|
|
85
|
+
<b>topline</b>
|
|
86
|
+
</li>
|
|
87
|
+
<li>
|
|
88
|
+
<b>title</b>
|
|
89
|
+
</li>
|
|
90
|
+
<li>
|
|
91
|
+
<b>teaserSize</b>
|
|
92
|
+
</li>
|
|
93
|
+
<li>
|
|
94
|
+
<b>teaserType</b>
|
|
95
|
+
</li>
|
|
96
|
+
<li>
|
|
97
|
+
<b>teaserImage</b>
|
|
98
|
+
</li>
|
|
99
|
+
<li>
|
|
100
|
+
<b>content.imageVariant</b>
|
|
101
|
+
</li>
|
|
102
|
+
<li>
|
|
103
|
+
<b>isSerifHeading</b>
|
|
104
|
+
</li>
|
|
105
|
+
<li>
|
|
106
|
+
<b>link.readMoreText.readMoreLong</b>
|
|
107
|
+
</li>
|
|
88
108
|
</ul>
|
|
89
109
|
|
|
90
|
-
|
|
91
110
|
## Verwendung
|
|
92
111
|
|
|
93
112
|
Die Poster-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
94
113
|
|
|
95
114
|
```html
|
|
96
|
-
{{> components/teaser/teaser_poster}}
|
|
115
|
+
{{> components/teaser/teaser_poster}}
|
|
97
116
|
```
|
|
98
117
|
|
|
99
118
|
<Preview withToolbar>
|
|
@@ -108,4 +127,4 @@ Die Poster-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
|
108
127
|
</Story>
|
|
109
128
|
</Preview>
|
|
110
129
|
|
|
111
|
-
<ArgsTable story="Poster 50" />
|
|
130
|
+
<ArgsTable story="Poster 50" />
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
{{> components/base/image/responsive_image this.teaserImage _type="stage" _variant="default" _addClassImg="w-full blur-2xl"}}
|
|
7
7
|
</div>
|
|
8
8
|
{{/unless}}
|
|
9
|
-
<div class="col-full lg:col-main lg:px-
|
|
9
|
+
<div class="col-full lg:col-main lg:px-9.5 relative">
|
|
10
10
|
<div class="relative max-h-stage overflow-visible before:content-[''] before:block before:w-full before:pt-3/4 sm:before:pt-stage">
|
|
11
11
|
<div class="{{#if this.isWide}}lg:absolute lg:h-full lg:w-full-hd lg:left-1/2 lg:top-0 lg:-ml-240{{else}}absolute h-full w-full top-0{{/if}}">
|
|
12
12
|
{{#if this.isWide}}
|
|
@@ -22,10 +22,10 @@ import teaser33LongGeotag from './fixtures/teaser_standard_33_long_geotag.json'
|
|
|
22
22
|
title="Komponenten/Teaser/Standard"
|
|
23
23
|
parameters={{
|
|
24
24
|
layout: 'fullscreen',
|
|
25
|
-
|
|
25
|
+
chromatic: {
|
|
26
26
|
viewports: [360, 1024],
|
|
27
|
-
diffThreshold: 0.5
|
|
28
|
-
}
|
|
27
|
+
diffThreshold: 0.5,
|
|
28
|
+
},
|
|
29
29
|
}}
|
|
30
30
|
argTypes={{
|
|
31
31
|
teaserSize: {
|
|
@@ -43,7 +43,7 @@ import teaser33LongGeotag from './fixtures/teaser_standard_33_long_geotag.json'
|
|
|
43
43
|
}}
|
|
44
44
|
decorators={[
|
|
45
45
|
(Story) => {
|
|
46
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-
|
|
46
|
+
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-9.5 sm:col-main">
|
|
47
47
|
${Story()}
|
|
48
48
|
</div></div>`
|
|
49
49
|
},
|
|
@@ -58,35 +58,44 @@ export const Template = (args, { globals: { customConditionalToolbar } }) => {
|
|
|
58
58
|
return teaser({ brand, ...args })
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
# Standard-Teaser
|
|
61
|
+
# Standard-Teaser
|
|
62
62
|
|
|
63
63
|
## Beschreibung
|
|
64
64
|
|
|
65
|
-
|
|
66
65
|
Der Standard-Teaser besteht aus 2 Hauptelemente: <b>Bild</b> und <b>Text</b> (Label, Dachzeile, Titel, Teasertext, Zusatzinformationen)
|
|
67
66
|
|
|
68
|
-
<b>Standard Hero:</b> <br/>
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
<b>Standard Hero:</b> <br />
|
|
68
|
+
Desktop = Text unter dem Bild <br />
|
|
69
|
+
Mobile = Text unter dem Bild <b>ohne</b> Teasertext <br />
|
|
71
70
|
|
|
72
|
-
<b>Standard 100%, 50%, 33%:</b> <br/>
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
<b>Standard 100%, 50%, 33%:</b> <br />
|
|
72
|
+
Desktop = Text unter dem Bild <br />
|
|
73
|
+
Mobile = Text unter dem Bild ohne Teasertext <br />
|
|
75
74
|
|
|
76
|
-
<b>Standard 25%:</b> <br/>
|
|
77
|
-
|
|
78
|
-
|
|
75
|
+
<b>Standard 25%:</b> <br />
|
|
76
|
+
Desktop = Text unter dem Bild ohne Teasertext <br />
|
|
77
|
+
Mobile = Bild(1x1) neben Text ohne Teasertext <br />
|
|
79
78
|
|
|
80
79
|
## Sub-Komponenten
|
|
81
80
|
|
|
82
81
|
Die Standard-Teaser-Komponente inkludiert folgende Komponenten:
|
|
83
82
|
|
|
84
83
|
<ul>
|
|
85
|
-
<li>
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
<li>
|
|
89
|
-
|
|
84
|
+
<li>
|
|
85
|
+
components/teaser/components/<b>teaser_lead</b>
|
|
86
|
+
</li>
|
|
87
|
+
<li>
|
|
88
|
+
components/base/<b>link</b>
|
|
89
|
+
</li>
|
|
90
|
+
<li>
|
|
91
|
+
components/teaser/components/<b>teaser_heading</b>
|
|
92
|
+
</li>
|
|
93
|
+
<li>
|
|
94
|
+
components/teaser/components/<b>teaser_text</b>
|
|
95
|
+
</li>
|
|
96
|
+
<li>
|
|
97
|
+
components/teaser/components/<b>teaser_byline</b>
|
|
98
|
+
</li>
|
|
90
99
|
</ul>
|
|
91
100
|
|
|
92
101
|
## Verwendung
|
|
@@ -94,7 +103,7 @@ Die Standard-Teaser-Komponente inkludiert folgende Komponenten:
|
|
|
94
103
|
Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
95
104
|
|
|
96
105
|
```html
|
|
97
|
-
{{> components/teaser/teaser_standard}}
|
|
106
|
+
{{> components/teaser/teaser_standard}}
|
|
98
107
|
```
|
|
99
108
|
|
|
100
109
|
<Preview withToolbar>
|
|
@@ -119,16 +128,19 @@ Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
|
119
128
|
<Story name="Standard 100 mit externem Link" args={teaser100Link.logicItem.includeModel}>
|
|
120
129
|
{Template.bind({})}
|
|
121
130
|
</Story>
|
|
122
|
-
|
|
131
|
+
<Story name="Standard 100 mit Sendungsdokument" args={teaser100Program.logicItem.includeModel}>
|
|
123
132
|
{Template.bind({})}
|
|
124
133
|
</Story>
|
|
125
134
|
<Story name="Standard 50" args={teaser50Serif.logicItem.includeModel}>
|
|
126
135
|
{Template.bind({})}
|
|
127
136
|
</Story>
|
|
128
|
-
<Story
|
|
137
|
+
<Story
|
|
138
|
+
name="Standard 50 ohne Teaserbild"
|
|
139
|
+
args={teaser50SerifWithoutTeaserImage.logicItem.includeModel}
|
|
140
|
+
>
|
|
129
141
|
{Template.bind({})}
|
|
130
142
|
</Story>
|
|
131
|
-
|
|
143
|
+
<Story name="Standard 50 mit externem Link" args={teaser50Link.logicItem.includeModel}>
|
|
132
144
|
{Template.bind({})}
|
|
133
145
|
</Story>
|
|
134
146
|
<Story name="Standard 33" args={teaser33Serif.logicItem.includeModel}>
|
|
@@ -140,7 +152,10 @@ Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
|
140
152
|
<Story name="Standard 25" args={teaser25Serif.logicItem.includeModel}>
|
|
141
153
|
{Template.bind({})}
|
|
142
154
|
</Story>
|
|
143
|
-
<Story
|
|
155
|
+
<Story
|
|
156
|
+
name="Standard 25 ohne Teaserbild"
|
|
157
|
+
args={teaser25SerifWithoutTeaserimage.logicItem.includeModel}
|
|
158
|
+
>
|
|
144
159
|
{Template.bind({})}
|
|
145
160
|
</Story>
|
|
146
161
|
<Story name="Standard 25 mit externem Link" args={teaser25Link.logicItem.includeModel}>
|
|
@@ -153,4 +168,3 @@ Die Standard-Teaser-Komponente wird in handlebars wie folgt eingebaut:
|
|
|
153
168
|
{Template.bind({})}
|
|
154
169
|
</Story>
|
|
155
170
|
</Preview>
|
|
156
|
-
|
|
@@ -17,8 +17,8 @@ import teaser25live from './fixtures/teaser_standard_25_serif_live.json'
|
|
|
17
17
|
parameters={{
|
|
18
18
|
layout: 'fullscreen',
|
|
19
19
|
chromatic: {
|
|
20
|
-
diffThreshold: 0.5
|
|
21
|
-
}
|
|
20
|
+
diffThreshold: 0.5,
|
|
21
|
+
},
|
|
22
22
|
}}
|
|
23
23
|
argTypes={{
|
|
24
24
|
teaserSize: {
|
|
@@ -36,7 +36,7 @@ import teaser25live from './fixtures/teaser_standard_25_serif_live.json'
|
|
|
36
36
|
}}
|
|
37
37
|
decorators={[
|
|
38
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-
|
|
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
40
|
${Story()}
|
|
41
41
|
</div></div>`
|
|
42
42
|
},
|
|
@@ -15,8 +15,8 @@ import teaserAlternative100TwoEventsSerif from './fixtures/teaser_alternative_10
|
|
|
15
15
|
parameters={{
|
|
16
16
|
layout: 'fullscreen',
|
|
17
17
|
chromatic: {
|
|
18
|
-
diffThreshold: 0.5
|
|
19
|
-
}
|
|
18
|
+
diffThreshold: 0.5,
|
|
19
|
+
},
|
|
20
20
|
}}
|
|
21
21
|
argTypes={{
|
|
22
22
|
teaserSize: {
|
|
@@ -34,7 +34,7 @@ import teaserAlternative100TwoEventsSerif from './fixtures/teaser_alternative_10
|
|
|
34
34
|
}}
|
|
35
35
|
decorators={[
|
|
36
36
|
(Story) => {
|
|
37
|
-
return `<div class="grid grid-page"><div class="grid grid-cols-12 py-6 col-full gap-x-6 gap-y-6 sm:px-
|
|
37
|
+
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">
|
|
38
38
|
${Story()}
|
|
39
39
|
</div></div>`
|
|
40
40
|
},
|