@slicemachine/adapter-next 0.3.14-dev-next-release.5 → 0.3.14-dev-next-release.7

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,553 @@
1
+ import { pascalCase } from "../../lib/pascalCase.js";
2
+ import { stripIndent } from "common-tags";
3
+ const mocks = [
4
+ {
5
+ __TYPE__: "SharedSliceContent",
6
+ variation: "default",
7
+ primary: {
8
+ title: {
9
+ __TYPE__: "StructuredTextContent",
10
+ value: [
11
+ {
12
+ type: "heading1",
13
+ content: {
14
+ text: "Collector Slices kit",
15
+ spans: []
16
+ },
17
+ direction: "ltr"
18
+ }
19
+ ]
20
+ },
21
+ paragraph: {
22
+ __TYPE__: "StructuredTextContent",
23
+ value: [
24
+ {
25
+ type: "paragraph",
26
+ content: {
27
+ text: "It’s very easy to create stylish and beautiful prototypes for your future projects, both graphical and dynamic.",
28
+ spans: []
29
+ },
30
+ direction: "ltr"
31
+ }
32
+ ]
33
+ },
34
+ buttonLink: {
35
+ __TYPE__: "LinkContent",
36
+ value: {
37
+ __TYPE__: "ExternalLink",
38
+ url: "https://twitter.com/prismicio"
39
+ }
40
+ },
41
+ buttonlabel: {
42
+ __TYPE__: "FieldContent",
43
+ type: "Text",
44
+ value: "Click here"
45
+ },
46
+ image: {
47
+ origin: {
48
+ id: "9aOswReDKPo",
49
+ url: "https://images.unsplash.com/photo-1523049673857-eb18f1d7b578?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwxOXx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85",
50
+ width: 8040,
51
+ height: 6024
52
+ },
53
+ url: "https://images.unsplash.com/photo-1523049673857-eb18f1d7b578?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwxOXx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85",
54
+ width: 8040,
55
+ height: 6024,
56
+ edit: {
57
+ background: "transparent",
58
+ zoom: 1,
59
+ crop: {
60
+ x: 0,
61
+ y: 0
62
+ }
63
+ },
64
+ credits: null,
65
+ alt: "Example Image",
66
+ __TYPE__: "ImageContent",
67
+ thumbnails: {}
68
+ },
69
+ buttonLabel: {
70
+ __TYPE__: "FieldContent",
71
+ type: "Text",
72
+ value: "Learn more"
73
+ }
74
+ },
75
+ items: []
76
+ },
77
+ {
78
+ __TYPE__: "SharedSliceContent",
79
+ variation: "alignLeft",
80
+ primary: {
81
+ image: {
82
+ origin: {
83
+ id: "euqiHwS38Rw",
84
+ url: "https://images.unsplash.com/photo-1595475207225-428b62bda831?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwyMHx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85",
85
+ width: 2500,
86
+ height: 2500
87
+ },
88
+ url: "https://images.unsplash.com/photo-1595475207225-428b62bda831?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwyMHx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85",
89
+ width: 2500,
90
+ height: 2500,
91
+ edit: {
92
+ background: "transparent",
93
+ zoom: 1,
94
+ crop: {
95
+ x: 0,
96
+ y: 0
97
+ }
98
+ },
99
+ credits: null,
100
+ alt: "Example Image",
101
+ __TYPE__: "ImageContent",
102
+ thumbnails: {}
103
+ },
104
+ title: {
105
+ __TYPE__: "StructuredTextContent",
106
+ value: [
107
+ {
108
+ type: "heading1",
109
+ content: {
110
+ text: "Collector Slices kit",
111
+ spans: []
112
+ },
113
+ direction: "ltr"
114
+ }
115
+ ]
116
+ },
117
+ paragraph: {
118
+ __TYPE__: "StructuredTextContent",
119
+ value: [
120
+ {
121
+ type: "paragraph",
122
+ content: {
123
+ text: "It’s very easy to create stylish and beautiful prototypes for your future projects, both graphical and dynamic.",
124
+ spans: []
125
+ },
126
+ direction: "ltr"
127
+ }
128
+ ]
129
+ },
130
+ buttonLink: {
131
+ __TYPE__: "LinkContent",
132
+ value: {
133
+ __TYPE__: "ExternalLink",
134
+ url: "https://prismic.io"
135
+ }
136
+ },
137
+ buttonLabel: {
138
+ __TYPE__: "FieldContent",
139
+ type: "Text",
140
+ value: "Learn more!"
141
+ }
142
+ },
143
+ items: [
144
+ {
145
+ __TYPE__: "GroupItemContent",
146
+ value: []
147
+ }
148
+ ]
149
+ }
150
+ ];
151
+ const createComponentContents = (model2, isTypeScriptProject) => {
152
+ const pascalName = pascalCase(model2.name);
153
+ if (isTypeScriptProject) {
154
+ return stripIndent`
155
+ import { Content, isFilled } from "@prismicio/client";
156
+ import { PrismicNextLink, PrismicNextImage } from "@prismicio/next";
157
+ import {
158
+ PrismicRichText,
159
+ PrismicText,
160
+ SliceComponentProps
161
+ } from "@prismicio/react";
162
+
163
+ /**
164
+ * Props for \`${pascalName}\`.
165
+ */
166
+ export type ${pascalName}Props = SliceComponentProps<Content.${pascalName}Slice>;
167
+
168
+ /**
169
+ * Component for "${model2.name}" Slices.
170
+ */
171
+ const ${pascalName} = ({ slice }: ${pascalName}Props): JSX.Element => {
172
+ const alignment = slice.variation === "alignLeft" ? "left" : "center";
173
+
174
+ return (
175
+ <section
176
+ data-slice-type={slice.slice_type}
177
+ data-slice-variation={slice.variation}
178
+ className="es-bounded es-call-to-action"
179
+ >
180
+ <div className="es-bounded__content es-call-to-action__content">
181
+ {isFilled.image(slice.primary.image) && (
182
+ <PrismicNextImage
183
+ className="es-call-to-action__image"
184
+ field={slice.primary.image}
185
+ />
186
+ )}
187
+ <div className="es-call-to-action__content">
188
+ {isFilled.richText(slice.primary.title) && (
189
+ <h2 className="es-call-to-action__content__heading">
190
+ <PrismicText field={slice.primary.title} />
191
+ </h2>
192
+ )}
193
+ {isFilled.richText(slice.primary.paragraph) && (
194
+ <div className="es-call-to-action__content__paragraph">
195
+ <PrismicRichText field={slice.primary.paragraph} />
196
+ </div>
197
+ )}
198
+ </div>
199
+ {isFilled.link(slice.primary.buttonLink) && (
200
+ <PrismicNextLink
201
+ className="es-call-to-action__button"
202
+ field={slice.primary.buttonLink}
203
+ >
204
+ {slice.primary.buttonLabel || "Learn more…"}
205
+ </PrismicNextLink>
206
+ )}
207
+ </div>
208
+ <style>
209
+ {\`
210
+ .es-bounded {
211
+ padding: 8vw 2rem;
212
+ }
213
+
214
+ .es-bounded__content {
215
+ margin-left: auto;
216
+ margin-right: auto;
217
+ }
218
+
219
+ @media screen and (min-width: 640px) {
220
+ .es-bounded__content {
221
+ max-width: 90%;
222
+ }
223
+ }
224
+
225
+ @media screen and (min-width: 896px) {
226
+ .es-bounded__content {
227
+ max-width: 80%;
228
+ }
229
+ }
230
+
231
+ @media screen and (min-width: 1280px) {
232
+ .es-bounded__content {
233
+ max-width: 75%;
234
+ }
235
+ }
236
+
237
+ .es-call-to-action {
238
+ background-color: #fff;
239
+ color: #333;
240
+ }
241
+
242
+ .es-call-to-action__content {
243
+ display: grid;
244
+ gap: 2rem;
245
+ }
246
+
247
+ .es-call-to-action__image {
248
+ max-width: 14rem;
249
+ height: auto;
250
+ width: auto;
251
+ justify-self: \${alignment};
252
+ }
253
+
254
+ .es-call-to-action__content {
255
+ display: grid;
256
+ gap: 1rem;
257
+ justify-items: \${alignment};
258
+ }
259
+
260
+ .es-call-to-action__content__heading {
261
+ font-size: 2rem;
262
+ font-weight: 700;
263
+ text-align: \${alignment};
264
+ }
265
+
266
+ .es-call-to-action__content__paragraph {
267
+ font-size: 1.15rem;
268
+ max-width: 38rem;
269
+ text-align: \${alignment};
270
+ }
271
+
272
+ .es-call-to-action__button {
273
+ justify-self: \${alignment};
274
+ border-radius: 0.25rem;
275
+ display: inline-block;
276
+ font-size: 0.875rem;
277
+ line-height: 1.3;
278
+ padding: 1rem 2.625rem;
279
+ text-align: \${alignment};
280
+ transition: background-color 100ms linear;
281
+ background-color: #16745f;
282
+ color: #fff;
283
+ }
284
+
285
+ .es-call-to-action__button:hover {
286
+ background-color: #0d5e4c;
287
+ }
288
+ \`}
289
+ </style>
290
+ </section>
291
+ );
292
+ };
293
+
294
+ export default ${pascalName};
295
+ `;
296
+ }
297
+ return stripIndent`
298
+ import { isFilled } from "@prismicio/client";
299
+ import { PrismicNextLink, PrismicNextImage } from "@prismicio/next";
300
+ import {
301
+ PrismicRichText,
302
+ PrismicText,
303
+ SliceComponentProps
304
+ } from "@prismicio/react";
305
+
306
+ /**
307
+ * @typedef {import("@prismicio/client").Content.${pascalName}Slice} ${pascalName}Slice
308
+ * @typedef {import("@prismicio/react").SliceComponentProps<${pascalName}Slice>} ${pascalName}Props
309
+ * @param {${pascalName}Props}
310
+ */
311
+ const ${pascalName} = ({ slice }) => {
312
+ const alignment = slice.variation === "alignLeft" ? "left" : "center";
313
+
314
+ return (
315
+ <section
316
+ data-slice-type={slice.slice_type}
317
+ data-slice-variation={slice.variation}
318
+ className="es-bounded es-call-to-action"
319
+ >
320
+ <div className="es-bounded__content es-call-to-action__content">
321
+ {isFilled.image(slice.primary.image) && (
322
+ <PrismicNextImage
323
+ className="es-call-to-action__image"
324
+ field={slice.primary.image}
325
+ />
326
+ )}
327
+ <div className="es-call-to-action__content">
328
+ {isFilled.richText(slice.primary.title) && (
329
+ <h2 className="es-call-to-action__content__heading">
330
+ <PrismicText field={slice.primary.title} />
331
+ </h2>
332
+ )}
333
+ {isFilled.richText(slice.primary.paragraph) && (
334
+ <div className="es-call-to-action__content__paragraph">
335
+ <PrismicRichText field={slice.primary.paragraph} />
336
+ </div>
337
+ )}
338
+ </div>
339
+ {isFilled.link(slice.primary.buttonLink) && (
340
+ <PrismicNextLink
341
+ className="es-call-to-action__button"
342
+ field={slice.primary.buttonLink}
343
+ >
344
+ {slice.primary.buttonLabel || "Learn more…"}
345
+ </PrismicNextLink>
346
+ )}
347
+ </div>
348
+ <style>
349
+ {\`
350
+ .es-bounded {
351
+ padding: 8vw 2rem;
352
+ }
353
+
354
+ .es-bounded__content {
355
+ margin-left: auto;
356
+ margin-right: auto;
357
+ }
358
+
359
+ @media screen and (min-width: 640px) {
360
+ .es-bounded__content {
361
+ max-width: 90%;
362
+ }
363
+ }
364
+
365
+ @media screen and (min-width: 896px) {
366
+ .es-bounded__content {
367
+ max-width: 80%;
368
+ }
369
+ }
370
+
371
+ @media screen and (min-width: 1280px) {
372
+ .es-bounded__content {
373
+ max-width: 75%;
374
+ }
375
+ }
376
+
377
+ .es-call-to-action {
378
+ background-color: #fff;
379
+ color: #333;
380
+ }
381
+
382
+ .es-call-to-action__content {
383
+ display: grid;
384
+ gap: 2rem;
385
+ }
386
+
387
+ .es-call-to-action__image {
388
+ max-width: 14rem;
389
+ height: auto;
390
+ width: auto;
391
+ justify-self: \${alignment};
392
+ }
393
+
394
+ .es-call-to-action__content {
395
+ display: grid;
396
+ gap: 1rem;
397
+ justify-items: \${alignment};
398
+ }
399
+
400
+ .es-call-to-action__content__heading {
401
+ font-size: 2rem;
402
+ font-weight: 700;
403
+ text-align: \${alignment};
404
+ }
405
+
406
+ .es-call-to-action__content__paragraph {
407
+ font-size: 1.15rem;
408
+ max-width: 38rem;
409
+ text-align: \${alignment};
410
+ }
411
+
412
+ .es-call-to-action__button {
413
+ justify-self: \${alignment};
414
+ border-radius: 0.25rem;
415
+ display: inline-block;
416
+ font-size: 0.875rem;
417
+ line-height: 1.3;
418
+ padding: 1rem 2.625rem;
419
+ text-align: \${alignment};
420
+ transition: background-color 100ms linear;
421
+ background-color: #16745f;
422
+ color: #fff;
423
+ }
424
+
425
+ .es-call-to-action__button:hover {
426
+ background-color: #0d5e4c;
427
+ }
428
+ \`}
429
+ </style>
430
+ </section>
431
+ );
432
+ };
433
+
434
+ export default ${pascalName};
435
+ `;
436
+ };
437
+ const model = {
438
+ id: "call_to_action",
439
+ type: "SharedSlice",
440
+ name: "CallToAction",
441
+ description: "CallToAction",
442
+ variations: [
443
+ {
444
+ id: "default",
445
+ name: "Default",
446
+ docURL: "...",
447
+ version: "initial",
448
+ description: "Default",
449
+ imageUrl: "",
450
+ primary: {
451
+ image: {
452
+ type: "Image",
453
+ config: { label: "Image", constraint: {}, thumbnails: [] }
454
+ },
455
+ title: {
456
+ type: "StructuredText",
457
+ config: {
458
+ label: "title",
459
+ placeholder: "",
460
+ allowTargetBlank: true,
461
+ single: "heading1,heading2,heading3,heading4,heading5,heading6"
462
+ }
463
+ },
464
+ paragraph: {
465
+ type: "StructuredText",
466
+ config: {
467
+ label: "paragraph",
468
+ placeholder: "",
469
+ allowTargetBlank: true,
470
+ single: "paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl"
471
+ }
472
+ },
473
+ buttonLink: {
474
+ type: "Link",
475
+ config: {
476
+ label: "buttonLink",
477
+ placeholder: "Redirect URL for CTA button",
478
+ allowTargetBlank: true,
479
+ select: null
480
+ }
481
+ },
482
+ buttonLabel: {
483
+ type: "Text",
484
+ config: {
485
+ label: "buttonLabel",
486
+ placeholder: "Label for CTA button"
487
+ }
488
+ }
489
+ },
490
+ items: {}
491
+ },
492
+ {
493
+ id: "alignLeft",
494
+ name: "AlignLeft",
495
+ docURL: "...",
496
+ version: "initial",
497
+ description: "Default",
498
+ imageUrl: "",
499
+ primary: {
500
+ image: {
501
+ type: "Image",
502
+ config: { label: "Image", constraint: {}, thumbnails: [] }
503
+ },
504
+ title: {
505
+ type: "StructuredText",
506
+ config: {
507
+ label: "title",
508
+ placeholder: "",
509
+ allowTargetBlank: true,
510
+ single: "heading1,heading2,heading3,heading4,heading5,heading6"
511
+ }
512
+ },
513
+ paragraph: {
514
+ type: "StructuredText",
515
+ config: {
516
+ label: "paragraph",
517
+ placeholder: "",
518
+ allowTargetBlank: true,
519
+ single: "paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl"
520
+ }
521
+ },
522
+ buttonLink: {
523
+ type: "Link",
524
+ config: {
525
+ label: "buttonLink",
526
+ placeholder: "Redirect URL for CTA button",
527
+ allowTargetBlank: true,
528
+ select: null
529
+ }
530
+ },
531
+ buttonLabel: {
532
+ type: "Text",
533
+ config: {
534
+ label: "buttonLabel",
535
+ placeholder: "Label for CTA button"
536
+ }
537
+ }
538
+ },
539
+ items: {}
540
+ }
541
+ ]
542
+ };
543
+ const screenshotPaths = {
544
+ default: "CallToAction/screenshot-default.png",
545
+ alignLeft: "CallToAction/screenshot-alignLeft.png"
546
+ };
547
+ export {
548
+ createComponentContents,
549
+ mocks,
550
+ model,
551
+ screenshotPaths
552
+ };
553
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/sliceTemplates/CallToAction/index.ts"],"sourcesContent":["import type { SharedSlice } from \"@prismicio/types-internal/lib/customtypes\";\nimport { SharedSliceContent } from \"@prismicio/types-internal/lib/content\";\n\nimport { pascalCase } from \"../../lib/pascalCase\";\n\nimport { stripIndent } from \"common-tags\";\n\nexport const mocks: SharedSliceContent[] = [\n\t{\n\t\t__TYPE__: \"SharedSliceContent\",\n\t\tvariation: \"default\",\n\t\tprimary: {\n\t\t\ttitle: {\n\t\t\t\t__TYPE__: \"StructuredTextContent\",\n\t\t\t\tvalue: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"heading1\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttext: \"Collector Slices kit\",\n\t\t\t\t\t\t\tspans: [],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tparagraph: {\n\t\t\t\t__TYPE__: \"StructuredTextContent\",\n\t\t\t\tvalue: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"paragraph\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttext: \"It’s very easy to create stylish and beautiful prototypes for your future projects, both graphical and dynamic.\",\n\t\t\t\t\t\t\tspans: [],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tbuttonLink: {\n\t\t\t\t__TYPE__: \"LinkContent\",\n\t\t\t\tvalue: {\n\t\t\t\t\t__TYPE__: \"ExternalLink\",\n\t\t\t\t\turl: \"https://twitter.com/prismicio\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tbuttonlabel: {\n\t\t\t\t__TYPE__: \"FieldContent\",\n\t\t\t\ttype: \"Text\",\n\t\t\t\tvalue: \"Click here\",\n\t\t\t},\n\t\t\timage: {\n\t\t\t\torigin: {\n\t\t\t\t\tid: \"9aOswReDKPo\",\n\t\t\t\t\turl: \"https://images.unsplash.com/photo-1523049673857-eb18f1d7b578?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwxOXx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85\",\n\t\t\t\t\twidth: 8040,\n\t\t\t\t\theight: 6024,\n\t\t\t\t},\n\t\t\t\turl: \"https://images.unsplash.com/photo-1523049673857-eb18f1d7b578?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwxOXx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85\",\n\t\t\t\twidth: 8040,\n\t\t\t\theight: 6024,\n\t\t\t\tedit: {\n\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\tzoom: 1,\n\t\t\t\t\tcrop: {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcredits: null,\n\t\t\t\talt: \"Example Image\",\n\t\t\t\t__TYPE__: \"ImageContent\",\n\t\t\t\tthumbnails: {},\n\t\t\t},\n\t\t\tbuttonLabel: {\n\t\t\t\t__TYPE__: \"FieldContent\",\n\t\t\t\ttype: \"Text\",\n\t\t\t\tvalue: \"Learn more\",\n\t\t\t},\n\t\t},\n\t\titems: [],\n\t},\n\t{\n\t\t__TYPE__: \"SharedSliceContent\",\n\t\tvariation: \"alignLeft\",\n\t\tprimary: {\n\t\t\timage: {\n\t\t\t\torigin: {\n\t\t\t\t\tid: \"euqiHwS38Rw\",\n\t\t\t\t\turl: \"https://images.unsplash.com/photo-1595475207225-428b62bda831?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwyMHx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85\",\n\t\t\t\t\twidth: 2500,\n\t\t\t\t\theight: 2500,\n\t\t\t\t},\n\t\t\t\turl: \"https://images.unsplash.com/photo-1595475207225-428b62bda831?crop=entropy&cs=srgb&fm=jpg&ixid=M3wzMzc0NjN8MHwxfHNlYXJjaHwyMHx8ZnJ1aXR8ZW58MHx8fHwxNjkzMjUxNTMxfDA&ixlib=rb-4.0.3&q=85\",\n\t\t\t\twidth: 2500,\n\t\t\t\theight: 2500,\n\t\t\t\tedit: {\n\t\t\t\t\tbackground: \"transparent\",\n\t\t\t\t\tzoom: 1,\n\t\t\t\t\tcrop: {\n\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\ty: 0,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tcredits: null,\n\t\t\t\talt: \"Example Image\",\n\t\t\t\t__TYPE__: \"ImageContent\",\n\t\t\t\tthumbnails: {},\n\t\t\t},\n\t\t\ttitle: {\n\t\t\t\t__TYPE__: \"StructuredTextContent\",\n\t\t\t\tvalue: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"heading1\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttext: \"Collector Slices kit\",\n\t\t\t\t\t\t\tspans: [],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tparagraph: {\n\t\t\t\t__TYPE__: \"StructuredTextContent\",\n\t\t\t\tvalue: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttype: \"paragraph\",\n\t\t\t\t\t\tcontent: {\n\t\t\t\t\t\t\ttext: \"It’s very easy to create stylish and beautiful prototypes for your future projects, both graphical and dynamic.\",\n\t\t\t\t\t\t\tspans: [],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tdirection: \"ltr\",\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t},\n\t\t\tbuttonLink: {\n\t\t\t\t__TYPE__: \"LinkContent\",\n\t\t\t\tvalue: {\n\t\t\t\t\t__TYPE__: \"ExternalLink\",\n\t\t\t\t\turl: \"https://prismic.io\",\n\t\t\t\t},\n\t\t\t},\n\t\t\tbuttonLabel: {\n\t\t\t\t__TYPE__: \"FieldContent\",\n\t\t\t\ttype: \"Text\",\n\t\t\t\tvalue: \"Learn more!\",\n\t\t\t},\n\t\t},\n\t\titems: [\n\t\t\t{\n\t\t\t\t__TYPE__: \"GroupItemContent\",\n\t\t\t\tvalue: [],\n\t\t\t},\n\t\t],\n\t},\n];\n\nexport const createComponentContents = (\n\tmodel: SharedSlice,\n\tisTypeScriptProject: boolean,\n): string => {\n\tconst pascalName = pascalCase(model.name);\n\n\tif (isTypeScriptProject) {\n\t\treturn stripIndent`\n\t\t\timport { Content, isFilled } from \"@prismicio/client\";\t\n\t\t\timport { PrismicNextLink, PrismicNextImage } from \"@prismicio/next\";\n\t\t\timport {\n\t\t\t\tPrismicRichText,\n\t\t\t\tPrismicText,\n\t\t\t\tSliceComponentProps\n\t\t\t} from \"@prismicio/react\";\n\t\t\t\n\t\t\t/**\n\t\t\t * Props for \\`${pascalName}\\`.\n\t\t\t */\n\t\t\texport type ${pascalName}Props = SliceComponentProps<Content.${pascalName}Slice>;\n\t\t\t\n\t\t\t/**\n\t\t\t * Component for \"${model.name}\" Slices.\n\t\t\t */\n\t\t\tconst ${pascalName} = ({ slice }: ${pascalName}Props): JSX.Element => {\n\t\t\t\tconst alignment = slice.variation === \"alignLeft\" ? \"left\" : \"center\";\n\t\t\t\n\t\t\t\treturn (\n\t\t\t\t\t<section\n\t\t\t\t\t\tdata-slice-type={slice.slice_type}\n\t\t\t\t\t\tdata-slice-variation={slice.variation}\n\t\t\t\t\t\tclassName=\"es-bounded es-call-to-action\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"es-bounded__content es-call-to-action__content\">\n\t\t\t\t\t\t\t{isFilled.image(slice.primary.image) && (\n\t\t\t\t\t\t\t\t<PrismicNextImage\n\t\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__image\"\n\t\t\t\t\t\t\t\t\tfield={slice.primary.image}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<div className=\"es-call-to-action__content\">\n\t\t\t\t\t\t\t\t{isFilled.richText(slice.primary.title) && (\n\t\t\t\t\t\t\t\t\t<h2 className=\"es-call-to-action__content__heading\">\n\t\t\t\t\t\t\t\t\t\t<PrismicText field={slice.primary.title} />\n\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{isFilled.richText(slice.primary.paragraph) && (\n\t\t\t\t\t\t\t\t\t<div className=\"es-call-to-action__content__paragraph\">\n\t\t\t\t\t\t\t\t\t\t<PrismicRichText field={slice.primary.paragraph} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{isFilled.link(slice.primary.buttonLink) && (\n\t\t\t\t\t\t\t\t<PrismicNextLink\n\t\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__button\"\n\t\t\t\t\t\t\t\t\tfield={slice.primary.buttonLink}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{slice.primary.buttonLabel || \"Learn more…\"}\n\t\t\t\t\t\t\t\t</PrismicNextLink>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t{\\`\n\t\t\t\t\t\t.es-bounded {\n\t\t\t\t\t\t\tpadding: 8vw 2rem;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\tmargin-left: auto;\n\t\t\t\t\t\t\tmargin-right: auto;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t@media screen and (min-width: 640px) {\n\t\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\t\tmax-width: 90%;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t@media screen and (min-width: 896px) {\n\t\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\t\tmax-width: 80%;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t@media screen and (min-width: 1280px) {\n\t\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\t\tmax-width: 75%;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action {\n\t\t\t\t\t\t\tbackground-color: #fff;\n\t\t\t\t\t\t\tcolor: #333;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content {\n\t\t\t\t\t\t\tdisplay: grid;\n\t\t\t\t\t\t\tgap: 2rem;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__image {\n\t\t\t\t\t\t\tmax-width: 14rem;\n\t\t\t\t\t\t\theight: auto;\n\t\t\t\t\t\t\twidth: auto;\n\t\t\t\t\t\t\tjustify-self: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content {\n\t\t\t\t\t\t\tdisplay: grid;\n\t\t\t\t\t\t\tgap: 1rem;\n\t\t\t\t\t\t\tjustify-items: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content__heading {\n\t\t\t\t\t\t\tfont-size: 2rem;\n\t\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t\t\ttext-align: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content__paragraph {\n\t\t\t\t\t\t\tfont-size: 1.15rem;\n\t\t\t\t\t\t\tmax-width: 38rem;\n\t\t\t\t\t\t\ttext-align: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__button {\n\t\t\t\t\t\t\tjustify-self: \\${alignment};\n\t\t\t\t\t\t\tborder-radius: 0.25rem;\n\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t\tfont-size: 0.875rem;\n\t\t\t\t\t\t\tline-height: 1.3;\n\t\t\t\t\t\t\tpadding: 1rem 2.625rem;\n\t\t\t\t\t\t\ttext-align: \\${alignment};\n\t\t\t\t\t\t\ttransition: background-color 100ms linear;\n\t\t\t\t\t\t\tbackground-color: #16745f;\n\t\t\t\t\t\t\tcolor: #fff;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__button:hover {\n\t\t\t\t\t\t\tbackground-color: #0d5e4c;\n\t\t\t\t\t\t}\n\t\t\t\t\t\\`}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t</section>\n\t\t\t\t);\n\t\t\t};\n\t\t\t\n\t\t\texport default ${pascalName};\n\t\t`;\n\t}\n\n\treturn stripIndent`\n\t\t\timport { isFilled } from \"@prismicio/client\";\n\t\t\timport { PrismicNextLink, PrismicNextImage } from \"@prismicio/next\";\n\t\t\timport {\n\t\t\t\tPrismicRichText,\n\t\t\t\tPrismicText,\n\t\t\t\tSliceComponentProps\n\t\t\t} from \"@prismicio/react\";\n\t\t\t\n\t\t\t/**\n\t\t\t * @typedef {import(\"@prismicio/client\").Content.${pascalName}Slice} ${pascalName}Slice\n\t\t\t * @typedef {import(\"@prismicio/react\").SliceComponentProps<${pascalName}Slice>} ${pascalName}Props\n\t\t\t * @param {${pascalName}Props}\n\t\t\t */\n\t\t\tconst ${pascalName} = ({ slice }) => {\n\t\t\t\tconst alignment = slice.variation === \"alignLeft\" ? \"left\" : \"center\";\n\t\t\t\n\t\t\t\treturn (\n\t\t\t\t\t<section\n\t\t\t\t\t\tdata-slice-type={slice.slice_type}\n\t\t\t\t\t\tdata-slice-variation={slice.variation}\n\t\t\t\t\t\tclassName=\"es-bounded es-call-to-action\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"es-bounded__content es-call-to-action__content\">\n\t\t\t\t\t\t\t{isFilled.image(slice.primary.image) && (\n\t\t\t\t\t\t\t\t<PrismicNextImage\n\t\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__image\"\n\t\t\t\t\t\t\t\t\tfield={slice.primary.image}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<div className=\"es-call-to-action__content\">\n\t\t\t\t\t\t\t\t{isFilled.richText(slice.primary.title) && (\n\t\t\t\t\t\t\t\t\t<h2 className=\"es-call-to-action__content__heading\">\n\t\t\t\t\t\t\t\t\t\t<PrismicText field={slice.primary.title} />\n\t\t\t\t\t\t\t\t\t</h2>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{isFilled.richText(slice.primary.paragraph) && (\n\t\t\t\t\t\t\t\t\t<div className=\"es-call-to-action__content__paragraph\">\n\t\t\t\t\t\t\t\t\t\t<PrismicRichText field={slice.primary.paragraph} />\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{isFilled.link(slice.primary.buttonLink) && (\n\t\t\t\t\t\t\t\t<PrismicNextLink\n\t\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__button\"\n\t\t\t\t\t\t\t\t\tfield={slice.primary.buttonLink}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{slice.primary.buttonLabel || \"Learn more…\"}\n\t\t\t\t\t\t\t\t</PrismicNextLink>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\t{\\`\n\t\t\t\t\t\t.es-bounded {\n\t\t\t\t\t\t\tpadding: 8vw 2rem;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\tmargin-left: auto;\n\t\t\t\t\t\t\tmargin-right: auto;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t@media screen and (min-width: 640px) {\n\t\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\t\tmax-width: 90%;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t@media screen and (min-width: 896px) {\n\t\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\t\tmax-width: 80%;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t@media screen and (min-width: 1280px) {\n\t\t\t\t\t\t\t.es-bounded__content {\n\t\t\t\t\t\t\t\tmax-width: 75%;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action {\n\t\t\t\t\t\t\tbackground-color: #fff;\n\t\t\t\t\t\t\tcolor: #333;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content {\n\t\t\t\t\t\t\tdisplay: grid;\n\t\t\t\t\t\t\tgap: 2rem;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__image {\n\t\t\t\t\t\t\tmax-width: 14rem;\n\t\t\t\t\t\t\theight: auto;\n\t\t\t\t\t\t\twidth: auto;\n\t\t\t\t\t\t\tjustify-self: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content {\n\t\t\t\t\t\t\tdisplay: grid;\n\t\t\t\t\t\t\tgap: 1rem;\n\t\t\t\t\t\t\tjustify-items: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content__heading {\n\t\t\t\t\t\t\tfont-size: 2rem;\n\t\t\t\t\t\t\tfont-weight: 700;\n\t\t\t\t\t\t\ttext-align: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__content__paragraph {\n\t\t\t\t\t\t\tfont-size: 1.15rem;\n\t\t\t\t\t\t\tmax-width: 38rem;\n\t\t\t\t\t\t\ttext-align: \\${alignment};\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__button {\n\t\t\t\t\t\t\tjustify-self: \\${alignment};\n\t\t\t\t\t\t\tborder-radius: 0.25rem;\n\t\t\t\t\t\t\tdisplay: inline-block;\n\t\t\t\t\t\t\tfont-size: 0.875rem;\n\t\t\t\t\t\t\tline-height: 1.3;\n\t\t\t\t\t\t\tpadding: 1rem 2.625rem;\n\t\t\t\t\t\t\ttext-align: \\${alignment};\n\t\t\t\t\t\t\ttransition: background-color 100ms linear;\n\t\t\t\t\t\t\tbackground-color: #16745f;\n\t\t\t\t\t\t\tcolor: #fff;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t.es-call-to-action__button:hover {\n\t\t\t\t\t\t\tbackground-color: #0d5e4c;\n\t\t\t\t\t\t}\n\t\t\t\t\t\\`}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t</section>\n\t\t\t\t);\n\t\t\t};\n\t\t\t\n\t\t\texport default ${pascalName};\n\t\t`;\n};\n\nexport const model: SharedSlice = {\n\tid: \"call_to_action\",\n\ttype: \"SharedSlice\",\n\tname: \"CallToAction\",\n\tdescription: \"CallToAction\",\n\tvariations: [\n\t\t{\n\t\t\tid: \"default\",\n\t\t\tname: \"Default\",\n\t\t\tdocURL: \"...\",\n\t\t\tversion: \"initial\",\n\t\t\tdescription: \"Default\",\n\t\t\timageUrl: \"\",\n\t\t\tprimary: {\n\t\t\t\timage: {\n\t\t\t\t\ttype: \"Image\",\n\t\t\t\t\tconfig: { label: \"Image\", constraint: {}, thumbnails: [] },\n\t\t\t\t},\n\t\t\t\ttitle: {\n\t\t\t\t\ttype: \"StructuredText\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"title\",\n\t\t\t\t\t\tplaceholder: \"\",\n\t\t\t\t\t\tallowTargetBlank: true,\n\t\t\t\t\t\tsingle: \"heading1,heading2,heading3,heading4,heading5,heading6\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tparagraph: {\n\t\t\t\t\ttype: \"StructuredText\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"paragraph\",\n\t\t\t\t\t\tplaceholder: \"\",\n\t\t\t\t\t\tallowTargetBlank: true,\n\t\t\t\t\t\tsingle:\n\t\t\t\t\t\t\t\"paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tbuttonLink: {\n\t\t\t\t\ttype: \"Link\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"buttonLink\",\n\t\t\t\t\t\tplaceholder: \"Redirect URL for CTA button\",\n\t\t\t\t\t\tallowTargetBlank: true,\n\t\t\t\t\t\tselect: null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tbuttonLabel: {\n\t\t\t\t\ttype: \"Text\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"buttonLabel\",\n\t\t\t\t\t\tplaceholder: \"Label for CTA button\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\titems: {},\n\t\t},\n\t\t{\n\t\t\tid: \"alignLeft\",\n\t\t\tname: \"AlignLeft\",\n\t\t\tdocURL: \"...\",\n\t\t\tversion: \"initial\",\n\t\t\tdescription: \"Default\",\n\t\t\timageUrl: \"\",\n\t\t\tprimary: {\n\t\t\t\timage: {\n\t\t\t\t\ttype: \"Image\",\n\t\t\t\t\tconfig: { label: \"Image\", constraint: {}, thumbnails: [] },\n\t\t\t\t},\n\t\t\t\ttitle: {\n\t\t\t\t\ttype: \"StructuredText\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"title\",\n\t\t\t\t\t\tplaceholder: \"\",\n\t\t\t\t\t\tallowTargetBlank: true,\n\t\t\t\t\t\tsingle: \"heading1,heading2,heading3,heading4,heading5,heading6\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tparagraph: {\n\t\t\t\t\ttype: \"StructuredText\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"paragraph\",\n\t\t\t\t\t\tplaceholder: \"\",\n\t\t\t\t\t\tallowTargetBlank: true,\n\t\t\t\t\t\tsingle:\n\t\t\t\t\t\t\t\"paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tbuttonLink: {\n\t\t\t\t\ttype: \"Link\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"buttonLink\",\n\t\t\t\t\t\tplaceholder: \"Redirect URL for CTA button\",\n\t\t\t\t\t\tallowTargetBlank: true,\n\t\t\t\t\t\tselect: null,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tbuttonLabel: {\n\t\t\t\t\ttype: \"Text\",\n\t\t\t\t\tconfig: {\n\t\t\t\t\t\tlabel: \"buttonLabel\",\n\t\t\t\t\t\tplaceholder: \"Label for CTA button\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\titems: {},\n\t\t},\n\t],\n};\n\nexport const screenshotPaths = {\n\tdefault: \"CallToAction/screenshot-default.png\",\n\talignLeft: \"CallToAction/screenshot-alignLeft.png\",\n};\n"],"names":["model"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@slicemachine/adapter-next",
3
- "version": "0.3.14-dev-next-release.5",
3
+ "version": "0.3.14-dev-next-release.7",
4
4
  "description": "Slice Machine adapter for Next.js.",
5
5
  "keywords": [
6
6
  "typescript",
@@ -61,7 +61,7 @@
61
61
  "dependencies": {
62
62
  "@prismicio/simulator": "^0.1.4",
63
63
  "@prismicio/types-internal": "^2.0.0",
64
- "@slicemachine/plugin-kit": "^0.4.14-dev-next-release.5",
64
+ "@slicemachine/plugin-kit": "^0.4.14-dev-next-release.7",
65
65
  "common-tags": "^1.8.2",
66
66
  "fp-ts": "^2.13.1",
67
67
  "io-ts": "^2.2.20",
@@ -104,5 +104,5 @@
104
104
  "engines": {
105
105
  "node": ">=14.15.0"
106
106
  },
107
- "gitHead": "493a6d41d5a40c65dce1e1adfb1a8e38db999804"
107
+ "gitHead": "4f7fe2ac99e0c940d011d8c49d50f4fbf5a89946"
108
108
  }
@@ -39,7 +39,9 @@ const createComponentFile = async ({
39
39
  options,
40
40
  });
41
41
 
42
- if (isTypeScriptProject) {
42
+ if (data.componentContents) {
43
+ contents = data.componentContents;
44
+ } else if (isTypeScriptProject) {
43
45
  contents = stripIndent`
44
46
  import { Content } from "@prismicio/client";
45
47
  import { SliceComponentProps } from "@prismicio/react";
@@ -0,0 +1,55 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+
5
+ import { SharedSlice } from "@prismicio/types-internal/lib/customtypes";
6
+ import type { SliceTemplateLibraryReadHook } from "@slicemachine/plugin-kit";
7
+
8
+ import { checkIsTypeScriptProject } from "../lib/checkIsTypeScriptProject";
9
+
10
+ import * as CallToAction from "../sliceTemplates/CallToAction";
11
+ import type { PluginOptions } from "../types";
12
+
13
+ const initialTemplates = [CallToAction];
14
+
15
+ export const sliceTemplateLibraryRead: SliceTemplateLibraryReadHook<
16
+ PluginOptions
17
+ > = async ({ templateIDs }, { helpers, options }) => {
18
+ const isTypeScriptProject = await checkIsTypeScriptProject({
19
+ helpers,
20
+ options,
21
+ });
22
+ const templates =
23
+ templateIDs && templateIDs.length
24
+ ? initialTemplates.filter((t) => templateIDs?.includes(t.model.id))
25
+ : initialTemplates;
26
+
27
+ const templatesPromises = templates.map(async (t) => {
28
+ const { mocks, model, createComponentContents, screenshotPaths } = t;
29
+
30
+ const screenshotEntries = Object.entries(screenshotPaths);
31
+ const screenshotPromises = screenshotEntries.map(([key, filePath]) => {
32
+ return fs
33
+ .readFile(
34
+ fileURLToPath(new URL(path.join("..", filePath), import.meta.url)),
35
+ )
36
+ .then((data) => [key, data]);
37
+ });
38
+ const readScreenshots = await Promise.all(screenshotPromises);
39
+ const screenshots = Object.fromEntries(readScreenshots);
40
+
41
+ return {
42
+ mocks,
43
+ model,
44
+ createComponentContents: (model: SharedSlice) =>
45
+ createComponentContents(model, isTypeScriptProject),
46
+ screenshots,
47
+ };
48
+ });
49
+
50
+ const resolvedTemplates = await Promise.all(templatesPromises);
51
+
52
+ return {
53
+ templates: resolvedTemplates,
54
+ };
55
+ };