@slicemachine/adapter-next 0.3.15-dev-next-release.1 → 0.3.15-dev-next-release.2

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.
@@ -0,0 +1,921 @@
1
+ import { SharedSliceContent } from "@prismicio/types-internal/lib/content";
2
+ import { SharedSlice } from "@prismicio/types-internal/lib/customtypes";
3
+ import { stripIndent } from "common-tags";
4
+ import { pascalCase } from "../../lib/pascalCase";
5
+
6
+ export const mocks: SharedSliceContent[] = [
7
+ {
8
+ __TYPE__: "SharedSliceContent",
9
+ variation: "default",
10
+ primary: {
11
+ title: {
12
+ __TYPE__: "StructuredTextContent",
13
+ value: [
14
+ {
15
+ type: "heading1",
16
+ content: {
17
+ text: "Alternate like a star",
18
+ spans: [],
19
+ },
20
+ direction: "ltr",
21
+ },
22
+ ],
23
+ },
24
+ description: {
25
+ __TYPE__: "StructuredTextContent",
26
+ value: [
27
+ {
28
+ type: "paragraph",
29
+ content: {
30
+ text: "A predesigned AlternateGrid component, that you can use to list your skills or features of a product.",
31
+ spans: [
32
+ {
33
+ type: "strong",
34
+ start: 44,
35
+ end: 47,
36
+ },
37
+ ],
38
+ },
39
+ direction: "ltr",
40
+ },
41
+ ],
42
+ },
43
+ eyebrowHeadline: {
44
+ __TYPE__: "FieldContent",
45
+ type: "Text",
46
+ value: "Eyebrow",
47
+ },
48
+ image: {
49
+ origin: {
50
+ id: "main",
51
+ url: "https://images.unsplash.com/photo-1486312338219-ce68d2c6f44d",
52
+ width: 4076,
53
+ height: 2712,
54
+ },
55
+ url: "https://images.unsplash.com/photo-1486312338219-ce68d2c6f44d",
56
+ width: 4076,
57
+ height: 2712,
58
+ edit: {
59
+ zoom: 1,
60
+ crop: {
61
+ x: 0,
62
+ y: 0,
63
+ },
64
+ background: "transparent",
65
+ },
66
+ credits: null,
67
+ alt: "Image of computer",
68
+ __TYPE__: "ImageContent",
69
+ thumbnails: {},
70
+ },
71
+ },
72
+ items: [
73
+ {
74
+ __TYPE__: "GroupItemContent",
75
+ value: [
76
+ [
77
+ "title",
78
+ {
79
+ __TYPE__: "StructuredTextContent",
80
+ value: [
81
+ {
82
+ type: "heading3",
83
+ content: {
84
+ text: "Integrate with the SliceZone",
85
+ spans: [],
86
+ },
87
+ direction: "ltr",
88
+ },
89
+ ],
90
+ },
91
+ ],
92
+ [
93
+ "description",
94
+ {
95
+ __TYPE__: "StructuredTextContent",
96
+ value: [
97
+ {
98
+ type: "paragraph",
99
+ content: {
100
+ text: "This component has been matched by the SliceZone. Its model has been fetched from SliceMachine next-adapter!",
101
+ spans: [],
102
+ },
103
+ direction: "ltr",
104
+ },
105
+ ],
106
+ },
107
+ ],
108
+ ],
109
+ },
110
+ {
111
+ __TYPE__: "GroupItemContent",
112
+ value: [
113
+ [
114
+ "title",
115
+ {
116
+ __TYPE__: "StructuredTextContent",
117
+ value: [
118
+ {
119
+ type: "heading3",
120
+ content: {
121
+ text: "Create your own",
122
+ spans: [],
123
+ },
124
+ direction: "ltr",
125
+ },
126
+ ],
127
+ },
128
+ ],
129
+ [
130
+ "description",
131
+ {
132
+ __TYPE__: "StructuredTextContent",
133
+ value: [
134
+ {
135
+ type: "paragraph",
136
+ content: {
137
+ text: "Feel free to use this component fully, or use it as an example! We're adding templates as often as we can.",
138
+ spans: [],
139
+ },
140
+ direction: "ltr",
141
+ },
142
+ ],
143
+ },
144
+ ],
145
+ ],
146
+ },
147
+ {
148
+ __TYPE__: "GroupItemContent",
149
+ value: [
150
+ [
151
+ "title",
152
+ {
153
+ __TYPE__: "StructuredTextContent",
154
+ value: [
155
+ {
156
+ type: "heading3",
157
+ content: {
158
+ text: "Add a variation",
159
+ spans: [],
160
+ },
161
+ direction: "ltr",
162
+ },
163
+ ],
164
+ },
165
+ ],
166
+ [
167
+ "description",
168
+ {
169
+ __TYPE__: "StructuredTextContent",
170
+ value: [
171
+ {
172
+ type: "paragraph",
173
+ content: {
174
+ text: 'This slice comes with a "Image Right" variation, which means editors can switch text/image direction!',
175
+ spans: [],
176
+ },
177
+ direction: "ltr",
178
+ },
179
+ ],
180
+ },
181
+ ],
182
+ ],
183
+ },
184
+ ],
185
+ },
186
+ {
187
+ __TYPE__: "SharedSliceContent",
188
+ variation: "imageRight",
189
+ primary: {
190
+ eyebrowHeadline: {
191
+ __TYPE__: "FieldContent",
192
+ value: "activity",
193
+ type: "Text",
194
+ },
195
+ title: {
196
+ __TYPE__: "StructuredTextContent",
197
+ value: [
198
+ {
199
+ type: "heading1",
200
+ content: {
201
+ text: "Alternate like a star",
202
+ spans: [],
203
+ },
204
+ direction: "ltr",
205
+ },
206
+ ],
207
+ },
208
+ description: {
209
+ __TYPE__: "StructuredTextContent",
210
+ value: [
211
+ {
212
+ type: "paragraph",
213
+ content: {
214
+ text: "A predesigned AlternateGrid component, that you can use to list your skills or features of a product.",
215
+ spans: [
216
+ {
217
+ type: "strong",
218
+ start: 44,
219
+ end: 47,
220
+ },
221
+ ],
222
+ },
223
+ direction: "ltr",
224
+ },
225
+ ],
226
+ },
227
+ image: {
228
+ origin: {
229
+ id: "main",
230
+ url: "https://images.unsplash.com/photo-1499951360447-b19be8fe80f5",
231
+ width: 5848,
232
+ height: 3899,
233
+ },
234
+ url: "https://images.unsplash.com/photo-1499951360447-b19be8fe80f5",
235
+ width: 5848,
236
+ height: 3899,
237
+ edit: {
238
+ zoom: 1,
239
+ crop: {
240
+ x: 0,
241
+ y: 0,
242
+ },
243
+ background: "transparent",
244
+ },
245
+ credits: null,
246
+ alt: "Image of computer",
247
+ __TYPE__: "ImageContent",
248
+ thumbnails: {},
249
+ },
250
+ },
251
+ items: [
252
+ {
253
+ __TYPE__: "GroupItemContent",
254
+ value: [
255
+ [
256
+ "title",
257
+ {
258
+ __TYPE__: "StructuredTextContent",
259
+ value: [
260
+ {
261
+ type: "heading3",
262
+ content: {
263
+ text: "Create a unique, high-performing site",
264
+ spans: [
265
+ {
266
+ type: "strong",
267
+ start: 9,
268
+ end: 15,
269
+ },
270
+ ],
271
+ },
272
+ direction: "ltr",
273
+ },
274
+ ],
275
+ },
276
+ ],
277
+ [
278
+ "description",
279
+ {
280
+ __TYPE__: "StructuredTextContent",
281
+ value: [
282
+ {
283
+ type: "paragraph",
284
+ content: {
285
+ text: "Prismic is the headless website builder designed to help developers and marketers create unique, high-performing websites that are easy to edit.",
286
+ spans: [],
287
+ },
288
+ direction: "ltr",
289
+ },
290
+ ],
291
+ },
292
+ ],
293
+ ],
294
+ },
295
+ ],
296
+ },
297
+ ];
298
+
299
+ export const model: SharedSlice = {
300
+ id: "alternate_grid",
301
+ type: "SharedSlice",
302
+ name: "AlternateGrid",
303
+ description: "AlternateGrid",
304
+ variations: [
305
+ {
306
+ id: "default",
307
+ name: "Default",
308
+ docURL: "...",
309
+ version: "initial",
310
+ description: "Default",
311
+ imageUrl: "",
312
+ primary: {
313
+ eyebrowHeadline: {
314
+ type: "Text",
315
+ config: {
316
+ label: "eyebrowHeadline",
317
+ placeholder: "Eyebrow",
318
+ },
319
+ },
320
+ title: {
321
+ type: "StructuredText",
322
+ config: {
323
+ label: "title",
324
+ placeholder: "",
325
+ allowTargetBlank: true,
326
+ single:
327
+ "heading1,heading2,heading3,heading4,heading5,heading6,strong,em",
328
+ },
329
+ },
330
+ description: {
331
+ type: "StructuredText",
332
+ config: {
333
+ label: "description",
334
+ placeholder: "",
335
+ allowTargetBlank: true,
336
+ multi:
337
+ "paragraph,preformatted,hyperlink,embed,rtl,strong,em,list-item,o-list-item",
338
+ },
339
+ },
340
+ image: {
341
+ type: "Image",
342
+ config: {
343
+ label: "image",
344
+ constraint: {},
345
+ thumbnails: [],
346
+ },
347
+ },
348
+ },
349
+ items: {
350
+ title: {
351
+ type: "StructuredText",
352
+ config: {
353
+ label: "title",
354
+ placeholder: "",
355
+ allowTargetBlank: true,
356
+ single: "heading2,heading3,heading4,heading5,heading6,strong,em",
357
+ },
358
+ },
359
+ description: {
360
+ type: "StructuredText",
361
+ config: {
362
+ label: "description",
363
+ placeholder: "",
364
+ allowTargetBlank: true,
365
+ multi:
366
+ "paragraph,preformatted,hyperlink,strong,em,list-item,o-list-item,rtl",
367
+ },
368
+ },
369
+ },
370
+ },
371
+ {
372
+ id: "imageRight",
373
+ name: "Image Right",
374
+ docURL: "...",
375
+ version: "initial",
376
+ description: "Default",
377
+ imageUrl: "",
378
+ primary: {
379
+ eyebrowHeadline: {
380
+ type: "Text",
381
+ config: {
382
+ label: "eyebrowHeadline",
383
+ placeholder: "Eyebrow",
384
+ },
385
+ },
386
+ title: {
387
+ type: "StructuredText",
388
+ config: {
389
+ label: "title",
390
+ placeholder: "",
391
+ allowTargetBlank: true,
392
+ single:
393
+ "heading1,heading2,heading3,heading4,heading5,heading6,strong,em",
394
+ },
395
+ },
396
+ description: {
397
+ type: "StructuredText",
398
+ config: {
399
+ label: "description",
400
+ placeholder: "",
401
+ allowTargetBlank: true,
402
+ multi:
403
+ "paragraph,preformatted,hyperlink,embed,rtl,strong,em,list-item,o-list-item",
404
+ },
405
+ },
406
+ image: {
407
+ type: "Image",
408
+ config: {
409
+ label: "image",
410
+ constraint: {},
411
+ thumbnails: [],
412
+ },
413
+ },
414
+ },
415
+ items: {
416
+ title: {
417
+ type: "StructuredText",
418
+ config: {
419
+ label: "title",
420
+ placeholder: "",
421
+ allowTargetBlank: true,
422
+ single: "heading2,heading3,heading4,heading5,heading6,strong,em",
423
+ },
424
+ },
425
+ description: {
426
+ type: "StructuredText",
427
+ config: {
428
+ label: "description",
429
+ placeholder: "",
430
+ allowTargetBlank: true,
431
+ multi:
432
+ "paragraph,preformatted,hyperlink,strong,em,list-item,o-list-item,rtl",
433
+ },
434
+ },
435
+ },
436
+ },
437
+ ],
438
+ };
439
+
440
+ export const screenshotPaths = {
441
+ default: "AlternateGrid/screenshot-default.png",
442
+ imageRight: "AlternateGrid/screenshot-imageRight.png",
443
+ };
444
+
445
+ export const createComponentContents = (
446
+ model: SharedSlice,
447
+ isTypeScriptProject: boolean,
448
+ ): string => {
449
+ const pascalName = pascalCase(model.name);
450
+ if (isTypeScriptProject) {
451
+ return stripIndent`
452
+ import { Content, isFilled } from "@prismicio/client";
453
+ import {
454
+ SliceComponentProps,
455
+ PrismicRichText,
456
+ PrismicImage,
457
+ } from "@prismicio/react";
458
+
459
+ export type ${pascalName}Props = SliceComponentProps<Content.${pascalName}Slice>;
460
+
461
+ const ${pascalName} = ({ slice }: ${pascalName}Props): JSX.Element => {
462
+ return (
463
+ <section
464
+ data-slice-type={slice.slice_type}
465
+ data-slice-variation={slice.variation}
466
+ className="essential-slice es-bounded es-alternate-grid"
467
+ >
468
+ <div
469
+ className={\`
470
+ es-bounded__content
471
+ es-alternate-grid__content
472
+ \${isFilled.image(slice.primary.image) ? "es-alternate-grid__content--with-image" : ""}
473
+ \`}
474
+ >
475
+ {isFilled.image(slice.primary.image) && (
476
+ <PrismicImage
477
+ field={slice.primary.image}
478
+ className={\`
479
+ es-alternate-grid__image
480
+ \${
481
+ slice.variation === "imageRight"
482
+ ? "es-alternate-grid__image--right"
483
+ : "es-alternate-grid__image--left"
484
+ }
485
+ \`}
486
+ />
487
+ )}
488
+ <div className="es-alternate-grid__primary-content">
489
+ <div className="es-alternate-grid__primary-content__intro">
490
+ {isFilled.keyText(slice.primary.eyebrowHeadline) && (
491
+ <p className="es-alternate-grid__primary-content__intro__eyebrow">
492
+ {slice.primary.eyebrowHeadline}
493
+ </p>
494
+ )}
495
+ {isFilled.richText(slice.primary.title) && (
496
+ <div className="es-alternate-grid__primary-content__intro__headline">
497
+ <PrismicRichText field={slice.primary.title} />
498
+ </div>
499
+ )}
500
+ {isFilled.richText(slice.primary.description) && (
501
+ <div className="es-alternate-grid__primary-content__intro__description">
502
+ <PrismicRichText field={slice.primary.description} />
503
+ </div>
504
+ )}
505
+ </div>
506
+ {slice.items.length > 0 && (
507
+ <div className="es-alternate-grid__primary-content__items">
508
+ {slice.items.map((item, i) => (
509
+ <div key={\`item-\${i + 1}\`} className="es-alternate-grid__item">
510
+ {isFilled.richText(item.title) && (
511
+ <div className="es-alternate-grid__item__heading">
512
+ <PrismicRichText field={item.title} />
513
+ </div>
514
+ )}
515
+ {isFilled.richText(item.description) && (
516
+ <div className="es-alternate-grid__item__description">
517
+ <PrismicRichText field={item.description} />
518
+ </div>
519
+ )}
520
+ </div>
521
+ ))}
522
+ </div>
523
+ )}
524
+ </div>
525
+ </div>
526
+
527
+ <style>
528
+ {\`
529
+ .es-bounded {
530
+ margin: 0px;
531
+ min-width: 0px;
532
+ position: relative;
533
+ padding: 8vw 1.25rem;
534
+ }
535
+ .es-bounded-content {
536
+ min-width: 0px;
537
+ max-width: 90%;
538
+ margin: 0px auto;
539
+ }
540
+ .es-alternate-grid {
541
+ font-family: system-ui, sans-serif;
542
+ background-color: #fff;
543
+ color: #333;
544
+ }
545
+
546
+ .es-alternate-grid__content {
547
+ display: grid;
548
+ gap: 1.5rem;
549
+ grid-auto-flow: dense;
550
+ }
551
+
552
+ @media (min-width: 640px) {
553
+ .es-alternate-grid__content--with-image {
554
+ grid-template-columns: repeat(2, 1fr);
555
+ }
556
+ }
557
+
558
+ @media (min-width: 1200px) {
559
+ .es-alternate-grid__content--with-image {
560
+ grid-template-columns: repeat(2, 1fr);
561
+ }
562
+ }
563
+
564
+ .es-alternate-grid__image {
565
+ width: auto;
566
+ height: auto;
567
+ max-width: 100%;
568
+ align-self: center;
569
+ }
570
+
571
+ .es-alternate-grid__image--left {
572
+ grid-column: 1;
573
+ }
574
+
575
+ .es-alternate-grid__image--right {
576
+ grid-column: 2;
577
+ }
578
+
579
+ .es-alternate-grid__primary-content {
580
+ display: grid;
581
+ gap: 2rem;
582
+ }
583
+
584
+ .es-alternate-grid__primary-content__intro {
585
+ display: grid;
586
+ gap: 0.5rem;
587
+ }
588
+
589
+ .es-alternate-grid__primary-content__intro__eyebrow {
590
+ color: #8592e0;
591
+ font-size: 1.15rem;
592
+ font-weight: 500;
593
+ margin: 0;
594
+ }
595
+
596
+ .es-alternate-grid__primary-content__intro__headline {
597
+ font-size: 1.625rem;
598
+ font-weight: 700;
599
+ }
600
+
601
+ .es-alternate-grid__primary-content__intro__headline > * {
602
+ margin: 0;
603
+ }
604
+
605
+ @media (min-width: 640px) {
606
+ .es-alternate-grid__primary-content__intro__headline {
607
+ font-size: 2rem;
608
+ }
609
+ }
610
+
611
+ @media (min-width: 1024px) {
612
+ .es-alternate-grid__primary-content__intro__headline {
613
+ font-size: 2.5rem;
614
+ }
615
+ }
616
+
617
+ @media (min-width: 1200px) {
618
+ .es-alternate-grid__primary-content__intro__headline {
619
+ font-size: 2.75rem;
620
+ }
621
+ }
622
+
623
+ .es-alternate-grid__primary-content__intro__description {
624
+ font-size: 1.15rem;
625
+ max-width: 38rem;
626
+ }
627
+
628
+ .es-alternate-grid__primary-content__intro__description > p {
629
+ margin: 0;
630
+ }
631
+
632
+ @media (min-width: 1200px) {
633
+ .es-alternate-grid__primary-content__intro__description {
634
+ font-size: 1.4rem;
635
+ }
636
+ }
637
+
638
+ .es-alternate-grid__primary-content__items {
639
+ display: grid;
640
+ gap: 2rem;
641
+ }
642
+
643
+ @media (min-width: 640px) {
644
+ .es-alternate-grid__primary-content__items {
645
+ grid-template-columns: repeat(2, 1fr);
646
+ }
647
+ }
648
+
649
+ .es-alternate-grid__item {
650
+ display: grid;
651
+ align-content: start;
652
+ }
653
+
654
+ .es-alternate-grid__item__icon {
655
+ max-height: 3rem;
656
+ }
657
+
658
+ .es-alternate-grid__item__heading {
659
+ font-weight: 700;
660
+ font-size: 1.17rem;
661
+ margin-top: 0;
662
+ margin-bottom: .5rem;
663
+ }
664
+ .es-alternate-grid__item__heading > * {
665
+ margin: 0;
666
+ }
667
+
668
+ .es-alternate-grid__item__description {
669
+ font-size: 0.9rem;
670
+ }
671
+
672
+ .es-alternate-grid__item__description > * {
673
+ margin: 0;
674
+ }
675
+
676
+ \`}
677
+ </style>
678
+ </section>
679
+ );
680
+ };
681
+
682
+ export default ${pascalName};
683
+
684
+ `;
685
+ }
686
+
687
+ return stripIndent`
688
+ import { isFilled } from "@prismicio/client";
689
+ import {
690
+ PrismicRichText,
691
+ PrismicImage,
692
+ } from "@prismicio/react";
693
+
694
+ /**
695
+ * @typedef {import("@prismicio/client").Content.${pascalName}Slice} ${pascalName}Slice
696
+ * @typedef {import("@prismicio/react").SliceComponentProps<${pascalName}Slice>} ${pascalName}Props
697
+ * @param {${pascalName}Props}
698
+ */
699
+ const ${pascalName} = ({ slice }) => {
700
+ return (
701
+ <section
702
+ data-slice-type={slice.slice_type}
703
+ data-slice-variation={slice.variation}
704
+ className="essential-slice es-bounded es-alternate-grid"
705
+ >
706
+ <div
707
+ className={\`
708
+ es-bounded__content
709
+ es-alternate-grid__content
710
+ \${isFilled.image(slice.primary.image) ? "es-alternate-grid__content--with-image" : ""}
711
+ \`}
712
+ >
713
+ {isFilled.image(slice.primary.image) && (
714
+ <PrismicImage
715
+ field={slice.primary.image}
716
+ className={\`
717
+ es-alternate-grid__image
718
+ \${
719
+ slice.variation === "imageRight"
720
+ ? "es-alternate-grid__image--right"
721
+ : "es-alternate-grid__image--left"
722
+ }
723
+ \`}
724
+ />
725
+ )}
726
+ <div className="es-alternate-grid__primary-content">
727
+ <div className="es-alternate-grid__primary-content__intro">
728
+ {isFilled.keyText(slice.primary.eyebrowHeadline) && (
729
+ <p className="es-alternate-grid__primary-content__intro__eyebrow">
730
+ {slice.primary.eyebrowHeadline}
731
+ </p>
732
+ )}
733
+ {isFilled.richText(slice.primary.title) && (
734
+ <div className="es-alternate-grid__primary-content__intro__headline">
735
+ <PrismicRichText field={slice.primary.title} />
736
+ </div>
737
+ )}
738
+ {isFilled.richText(slice.primary.description) && (
739
+ <div className="es-alternate-grid__primary-content__intro__description">
740
+ <PrismicRichText field={slice.primary.description} />
741
+ </div>
742
+ )}
743
+ </div>
744
+ {slice.items.length > 0 && (
745
+ <div className="es-alternate-grid__primary-content__items">
746
+ {slice.items.map((item, i) => (
747
+ <div key={\`item-\${i + 1}\`} className="es-alternate-grid__item">
748
+ {isFilled.richText(item.title) && (
749
+ <div className="es-alternate-grid__item__heading">
750
+ <PrismicRichText field={item.title} />
751
+ </div>
752
+ )}
753
+ {isFilled.richText(item.description) && (
754
+ <div className="es-alternate-grid__item__description">
755
+ <PrismicRichText field={item.description} />
756
+ </div>
757
+ )}
758
+ </div>
759
+ ))}
760
+ </div>
761
+ )}
762
+ </div>
763
+ </div>
764
+
765
+ <style>
766
+ {\`
767
+ .es-bounded {
768
+ margin: 0px;
769
+ min-width: 0px;
770
+ position: relative;
771
+ padding: 8vw 1.25rem;
772
+ }
773
+ .es-bounded-content {
774
+ min-width: 0px;
775
+ max-width: 90%;
776
+ margin: 0px auto;
777
+ }
778
+ .es-alternate-grid {
779
+ font-family: system-ui, sans-serif;
780
+ background-color: #fff;
781
+ color: #333;
782
+ }
783
+
784
+ .es-alternate-grid__content {
785
+ display: grid;
786
+ gap: 1.5rem;
787
+ grid-auto-flow: dense;
788
+ }
789
+
790
+ @media (min-width: 640px) {
791
+ .es-alternate-grid__content--with-image {
792
+ grid-template-columns: repeat(2, 1fr);
793
+ }
794
+ }
795
+
796
+ @media (min-width: 1200px) {
797
+ .es-alternate-grid__content--with-image {
798
+ grid-template-columns: repeat(2, 1fr);
799
+ }
800
+ }
801
+
802
+ .es-alternate-grid__image {
803
+ max-width: 100%;
804
+ align-self: center;
805
+ }
806
+
807
+ .es-alternate-grid__image--left {
808
+ grid-column: 1;
809
+ }
810
+
811
+ .es-alternate-grid__image--right {
812
+ grid-column: 2;
813
+ }
814
+
815
+ .es-alternate-grid__primary-content {
816
+ display: grid;
817
+ gap: 2rem;
818
+ }
819
+
820
+ .es-alternate-grid__primary-content__intro {
821
+ display: grid;
822
+ gap: 0.5rem;
823
+ }
824
+
825
+ .es-alternate-grid__primary-content__intro__eyebrow {
826
+ color: #8592e0;
827
+ font-size: 1.15rem;
828
+ font-weight: 500;
829
+ margin: 0;
830
+ }
831
+
832
+ .es-alternate-grid__primary-content__intro__headline {
833
+ font-size: 1.625rem;
834
+ font-weight: 700;
835
+ }
836
+
837
+ .es-alternate-grid__primary-content__intro__headline > * {
838
+ margin: 0;
839
+ }
840
+
841
+ @media (min-width: 640px) {
842
+ .es-alternate-grid__primary-content__intro__headline {
843
+ font-size: 2rem;
844
+ }
845
+ }
846
+
847
+ @media (min-width: 1024px) {
848
+ .es-alternate-grid__primary-content__intro__headline {
849
+ font-size: 2.5rem;
850
+ }
851
+ }
852
+
853
+ @media (min-width: 1200px) {
854
+ .es-alternate-grid__primary-content__intro__headline {
855
+ font-size: 2.75rem;
856
+ }
857
+ }
858
+
859
+ .es-alternate-grid__primary-content__intro__description {
860
+ font-size: 1.15rem;
861
+ max-width: 38rem;
862
+ }
863
+
864
+ .es-alternate-grid__primary-content__intro__description > p {
865
+ margin: 0;
866
+ }
867
+
868
+ @media (min-width: 1200px) {
869
+ .es-alternate-grid__primary-content__intro__description {
870
+ font-size: 1.4rem;
871
+ }
872
+ }
873
+
874
+ .es-alternate-grid__primary-content__items {
875
+ display: grid;
876
+ gap: 2rem;
877
+ }
878
+
879
+ @media (min-width: 640px) {
880
+ .es-alternate-grid__primary-content__items {
881
+ grid-template-columns: repeat(2, 1fr);
882
+ }
883
+ }
884
+
885
+ .es-alternate-grid__item {
886
+ display: grid;
887
+ align-content: start;
888
+ }
889
+
890
+ .es-alternate-grid__item__icon {
891
+ max-height: 3rem;
892
+ }
893
+
894
+ .es-alternate-grid__item__heading {
895
+ font-weight: 700;
896
+ font-size: 1.17rem;
897
+ margin-top: 0;
898
+ margin-bottom: .5rem;
899
+ }
900
+ .es-alternate-grid__item__heading > * {
901
+ margin: 0;
902
+ }
903
+
904
+ .es-alternate-grid__item__description {
905
+ font-size: 0.9rem;
906
+ }
907
+
908
+ .es-alternate-grid__item__description > * {
909
+ margin: 0;
910
+ }
911
+
912
+ \`}
913
+ </style>
914
+ </section>
915
+ );
916
+ };
917
+
918
+ export default ${pascalName};
919
+
920
+ `;
921
+ };