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

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,549 @@
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: null,
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: null,
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
+ justify-self: \${alignment};
250
+ }
251
+
252
+ .es-call-to-action__content {
253
+ display: grid;
254
+ gap: 1rem;
255
+ justify-items: \${alignment};
256
+ }
257
+
258
+ .es-call-to-action__content__heading {
259
+ font-size: 2rem;
260
+ font-weight: 700;
261
+ text-align: \${alignment};
262
+ }
263
+
264
+ .es-call-to-action__content__paragraph {
265
+ font-size: 1.15rem;
266
+ max-width: 38rem;
267
+ text-align: \${alignment};
268
+ }
269
+
270
+ .es-call-to-action__button {
271
+ justify-self: \${alignment};
272
+ border-radius: 0.25rem;
273
+ display: inline-block;
274
+ font-size: 0.875rem;
275
+ line-height: 1.3;
276
+ padding: 1rem 2.625rem;
277
+ text-align: \${alignment};
278
+ transition: background-color 100ms linear;
279
+ background-color: #16745f;
280
+ color: #fff;
281
+ }
282
+
283
+ .es-call-to-action__button:hover {
284
+ background-color: #0d5e4c;
285
+ }
286
+ \`}
287
+ </style>
288
+ </section>
289
+ );
290
+ };
291
+
292
+ export default ${pascalName};
293
+ `;
294
+ }
295
+ return stripIndent`
296
+ import { isFilled } from "@prismicio/client";
297
+ import { PrismicNextLink, PrismicNextImage } from "@prismicio/next";
298
+ import {
299
+ PrismicRichText,
300
+ PrismicText,
301
+ SliceComponentProps
302
+ } from "@prismicio/react";
303
+
304
+ /**
305
+ * @typedef {import("@prismicio/client").Content.${pascalName}Slice} ${pascalName}Slice
306
+ * @typedef {import("@prismicio/react").SliceComponentProps<${pascalName}Slice>} ${pascalName}Props
307
+ * @param {${pascalName}Props}
308
+ */
309
+ const ${pascalName} = ({ slice }) => {
310
+ const alignment = slice.variation === "alignLeft" ? "left" : "center";
311
+
312
+ return (
313
+ <section
314
+ data-slice-type={slice.slice_type}
315
+ data-slice-variation={slice.variation}
316
+ className="es-bounded es-call-to-action"
317
+ >
318
+ <div className="es-bounded__content es-call-to-action__content">
319
+ {isFilled.image(slice.primary.image) && (
320
+ <PrismicNextImage
321
+ className="es-call-to-action__image"
322
+ field={slice.primary.image}
323
+ />
324
+ )}
325
+ <div className="es-call-to-action__content">
326
+ {isFilled.richText(slice.primary.title) && (
327
+ <h2 className="es-call-to-action__content__heading">
328
+ <PrismicText field={slice.primary.title} />
329
+ </h2>
330
+ )}
331
+ {isFilled.richText(slice.primary.paragraph) && (
332
+ <div className="es-call-to-action__content__paragraph">
333
+ <PrismicRichText field={slice.primary.paragraph} />
334
+ </div>
335
+ )}
336
+ </div>
337
+ {isFilled.link(slice.primary.buttonLink) && (
338
+ <PrismicNextLink
339
+ className="es-call-to-action__button"
340
+ field={slice.primary.buttonLink}
341
+ >
342
+ {slice.primary.buttonLabel || "Learn more…"}
343
+ </PrismicNextLink>
344
+ )}
345
+ </div>
346
+ <style>
347
+ {\`
348
+ .es-bounded {
349
+ padding: 8vw 2rem;
350
+ }
351
+
352
+ .es-bounded__content {
353
+ margin-left: auto;
354
+ margin-right: auto;
355
+ }
356
+
357
+ @media screen and (min-width: 640px) {
358
+ .es-bounded__content {
359
+ max-width: 90%;
360
+ }
361
+ }
362
+
363
+ @media screen and (min-width: 896px) {
364
+ .es-bounded__content {
365
+ max-width: 80%;
366
+ }
367
+ }
368
+
369
+ @media screen and (min-width: 1280px) {
370
+ .es-bounded__content {
371
+ max-width: 75%;
372
+ }
373
+ }
374
+
375
+ .es-call-to-action {
376
+ background-color: #fff;
377
+ color: #333;
378
+ }
379
+
380
+ .es-call-to-action__content {
381
+ display: grid;
382
+ gap: 2rem;
383
+ }
384
+
385
+ .es-call-to-action__image {
386
+ max-width: 14rem;
387
+ justify-self: \${alignment};
388
+ }
389
+
390
+ .es-call-to-action__content {
391
+ display: grid;
392
+ gap: 1rem;
393
+ justify-items: \${alignment};
394
+ }
395
+
396
+ .es-call-to-action__content__heading {
397
+ font-size: 2rem;
398
+ font-weight: 700;
399
+ text-align: \${alignment};
400
+ }
401
+
402
+ .es-call-to-action__content__paragraph {
403
+ font-size: 1.15rem;
404
+ max-width: 38rem;
405
+ text-align: \${alignment};
406
+ }
407
+
408
+ .es-call-to-action__button {
409
+ justify-self: \${alignment};
410
+ border-radius: 0.25rem;
411
+ display: inline-block;
412
+ font-size: 0.875rem;
413
+ line-height: 1.3;
414
+ padding: 1rem 2.625rem;
415
+ text-align: \${alignment};
416
+ transition: background-color 100ms linear;
417
+ background-color: #16745f;
418
+ color: #fff;
419
+ }
420
+
421
+ .es-call-to-action__button:hover {
422
+ background-color: #0d5e4c;
423
+ }
424
+ \`}
425
+ </style>
426
+ </section>
427
+ );
428
+ };
429
+
430
+ export default ${pascalName};
431
+ `;
432
+ };
433
+ const model = {
434
+ id: "call_to_action",
435
+ type: "SharedSlice",
436
+ name: "CallToAction",
437
+ description: "CallToAction",
438
+ variations: [
439
+ {
440
+ id: "default",
441
+ name: "Default",
442
+ docURL: "...",
443
+ version: "initial",
444
+ description: "Default",
445
+ imageUrl: "",
446
+ primary: {
447
+ image: {
448
+ type: "Image",
449
+ config: { label: "Image", constraint: {}, thumbnails: [] }
450
+ },
451
+ title: {
452
+ type: "StructuredText",
453
+ config: {
454
+ label: "title",
455
+ placeholder: "",
456
+ allowTargetBlank: true,
457
+ single: "heading1,heading2,heading3,heading4,heading5,heading6"
458
+ }
459
+ },
460
+ paragraph: {
461
+ type: "StructuredText",
462
+ config: {
463
+ label: "paragraph",
464
+ placeholder: "",
465
+ allowTargetBlank: true,
466
+ single: "paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl"
467
+ }
468
+ },
469
+ buttonLink: {
470
+ type: "Link",
471
+ config: {
472
+ label: "buttonLink",
473
+ placeholder: "Redirect URL for CTA button",
474
+ allowTargetBlank: true,
475
+ select: null
476
+ }
477
+ },
478
+ buttonLabel: {
479
+ type: "Text",
480
+ config: {
481
+ label: "buttonLabel",
482
+ placeholder: "Label for CTA button"
483
+ }
484
+ }
485
+ },
486
+ items: {}
487
+ },
488
+ {
489
+ id: "alignLeft",
490
+ name: "AlignLeft",
491
+ docURL: "...",
492
+ version: "initial",
493
+ description: "Default",
494
+ imageUrl: "",
495
+ primary: {
496
+ image: {
497
+ type: "Image",
498
+ config: { label: "Image", constraint: {}, thumbnails: [] }
499
+ },
500
+ title: {
501
+ type: "StructuredText",
502
+ config: {
503
+ label: "title",
504
+ placeholder: "",
505
+ allowTargetBlank: true,
506
+ single: "heading1,heading2,heading3,heading4,heading5,heading6"
507
+ }
508
+ },
509
+ paragraph: {
510
+ type: "StructuredText",
511
+ config: {
512
+ label: "paragraph",
513
+ placeholder: "",
514
+ allowTargetBlank: true,
515
+ single: "paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl"
516
+ }
517
+ },
518
+ buttonLink: {
519
+ type: "Link",
520
+ config: {
521
+ label: "buttonLink",
522
+ placeholder: "Redirect URL for CTA button",
523
+ allowTargetBlank: true,
524
+ select: null
525
+ }
526
+ },
527
+ buttonLabel: {
528
+ type: "Text",
529
+ config: {
530
+ label: "buttonLabel",
531
+ placeholder: "Label for CTA button"
532
+ }
533
+ }
534
+ },
535
+ items: {}
536
+ }
537
+ ]
538
+ };
539
+ const screenshotPaths = {
540
+ default: "CallToAction/screenshot-default.png",
541
+ alignLeft: "CallToAction/screenshot-alignLeft.png"
542
+ };
543
+ export {
544
+ createComponentContents,
545
+ mocks,
546
+ model,
547
+ screenshotPaths
548
+ };
549
+ //# 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: null,\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: null,\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\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\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.6",
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.6",
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": "1cd91130089d87b133f64a5ab67c8a8315a79bfe"
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
+ };