@slicemachine/adapter-next 0.3.14-dev-next-release.4 → 0.3.14-dev-slice-tenplate-feature-2.0

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,489 @@
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, asText } from "@prismicio/client";
156
+ import { SliceComponentProps, PrismicRichText } from "@prismicio/react";
157
+
158
+ /**
159
+ * Props for \`${pascalName}\`.
160
+ */
161
+ export type ${pascalName}Props = SliceComponentProps<Content.${pascalName}Slice>;
162
+
163
+ /**
164
+ * Component for "${model2.name}" Slices.
165
+ */
166
+ const ${pascalName} = ({ slice }: ${pascalName}Props): JSX.Element => {
167
+ const alignment = slice.variation === "alignLeft" ? "left" : "center";
168
+
169
+ return (
170
+ <section
171
+ data-slice-type={slice.slice_type}
172
+ data-slice-variation={slice.variation}
173
+ className="es-bounded es-call-to-action"
174
+ >
175
+ <div className="es-bounded__content es-call-to-action__content">
176
+ {slice.primary.image?.url && (
177
+ <img
178
+ height={600}
179
+ width={800}
180
+ src={slice.primary.image.url}
181
+ alt={slice.primary.image.alt ?? undefined}
182
+ className="es-call-to-action__image"
183
+ />
184
+ )}
185
+ <div className="es-call-to-action__content">
186
+ {isFilled.richText(slice.primary.title) && (
187
+ <h2 className="es-call-to-action__content__heading">
188
+ {asText(slice.primary.title)}
189
+ </h2>
190
+ )}
191
+ {isFilled.richText(slice.primary.paragraph) && (
192
+ <div className="es-call-to-action__content__paragraph">
193
+ <PrismicRichText field={slice.primary.paragraph} />
194
+ </div>
195
+ )}
196
+ </div>
197
+ <button
198
+ field={slice.primary.buttonLink}
199
+ className="es-call-to-action__button"
200
+ >
201
+ {slice.primary.buttonLabel || "Learn more…"}
202
+ </button>
203
+ </div>
204
+ <style>
205
+ {\`
206
+ .es-call-to-action {
207
+ background-color: #fff;
208
+ color: #333;
209
+ padding: 8vw 2rem;
210
+ }
211
+
212
+ .es-call-to-action__content {
213
+ display: grid;
214
+ gap: 2rem;
215
+ }
216
+
217
+ .es-call-to-action__image {
218
+ max-width: 14rem;
219
+ justify-self: \${alignment};
220
+ }
221
+
222
+ .es-call-to-action__content {
223
+ display: grid;
224
+ gap: 1rem;
225
+ justify-items: \${alignment};
226
+ }
227
+
228
+ .es-call-to-action__content__heading {
229
+ font-size: 2rem;
230
+ font-weight: 700;
231
+ text-align: \${alignment};
232
+ }
233
+
234
+ .es-call-to-action__content__paragraph {
235
+ font-size: 1.15rem;
236
+ max-width: 38rem;
237
+ text-align: \${alignment};
238
+ }
239
+
240
+ .es-call-to-action__button {
241
+ justify-self: \${alignment};
242
+ border-radius: 0.25rem;
243
+ display: inline-block;
244
+ font-size: 0.875rem;
245
+ line-height: 1.3;
246
+ padding: 1rem 2.625rem;
247
+ text-align: \${alignment};
248
+ transition: background-color 100ms linear;
249
+ background-color: #16745f;
250
+ color: #fff;
251
+ }
252
+
253
+ .es-call-to-action__button:hover {
254
+ background-color: #0d5e4c;
255
+ }
256
+ \`}
257
+ </style>
258
+ </section>
259
+ );
260
+ };
261
+
262
+ export default ${pascalName};
263
+ `;
264
+ }
265
+ return stripIndent`
266
+ import { PrismicRichText } from "@prismicio/react";
267
+ import { isFilled, asText } from "@prismicio/client";
268
+
269
+ /**
270
+ * @typedef {import("@prismicio/client").Content.${pascalName}Slice} ${pascalName}Slice
271
+ * @typedef {import("@prismicio/react").SliceComponentProps<${pascalName}Slice>} ${pascalName}Props
272
+ * @param {${pascalName}Props}
273
+ */
274
+ const ${pascalName} = ({ slice }) => {
275
+ const alignment = slice.variation === "alignLeft" ? "left" : "center";
276
+
277
+ return (
278
+ <section
279
+ data-slice-type={slice.slice_type}
280
+ data-slice-variation={slice.variation}
281
+ className="es-bounded es-call-to-action"
282
+ >
283
+ <div className="es-bounded__content es-call-to-action__content">
284
+ {slice.primary.image?.url && (
285
+ <img
286
+ height={600}
287
+ width={800}
288
+ src={slice.primary.image.url}
289
+ alt={slice.primary.image.alt ?? undefined}
290
+ className="es-call-to-action__image"
291
+ />
292
+ )}
293
+ <div className="es-call-to-action__content">
294
+ {isFilled.richText(slice.primary.title) && (
295
+ <h2 className="es-call-to-action__content__heading">
296
+ {asText(slice.primary.title)}
297
+ </h2>
298
+ )}
299
+ {isFilled.richText(slice.primary.paragraph) && (
300
+ <div className="es-call-to-action__content__paragraph">
301
+ <PrismicRichText field={slice.primary.paragraph} />
302
+ </div>
303
+ )}
304
+ </div>
305
+ <button
306
+ field={slice.primary.buttonLink}
307
+ className="es-call-to-action__button"
308
+ >
309
+ {slice.primary.buttonLabel || "Learn more…"}
310
+ </button>
311
+ </div>
312
+ <style>
313
+ {\`
314
+ .es-call-to-action {
315
+ background-color: #fff;
316
+ color: #333;
317
+ padding: 8vw 2rem;
318
+ }
319
+
320
+ .es-call-to-action__content {
321
+ display: grid;
322
+ gap: 2rem;
323
+ }
324
+
325
+ .es-call-to-action__image {
326
+ max-width: 14rem;
327
+ justify-self: \${alignment};
328
+ }
329
+
330
+ .es-call-to-action__content {
331
+ display: grid;
332
+ gap: 1rem;
333
+ justify-items: \${alignment};
334
+ }
335
+
336
+ .es-call-to-action__content__heading {
337
+ font-size: 2rem;
338
+ font-weight: 700;
339
+ text-align: \${alignment};
340
+ }
341
+
342
+ .es-call-to-action__content__paragraph {
343
+ font-size: 1.15rem;
344
+ max-width: 38rem;
345
+ text-align: \${alignment};
346
+ }
347
+
348
+ .es-call-to-action__button {
349
+ justify-self: \${alignment};
350
+ border-radius: 0.25rem;
351
+ display: inline-block;
352
+ font-size: 0.875rem;
353
+ line-height: 1.3;
354
+ padding: 1rem 2.625rem;
355
+ text-align: \${alignment};
356
+ transition: background-color 100ms linear;
357
+ background-color: #16745f;
358
+ color: #fff;
359
+ }
360
+
361
+ .es-call-to-action__button:hover {
362
+ background-color: #0d5e4c;
363
+ }
364
+ \`}
365
+ </style>
366
+ </section>
367
+ );
368
+ };
369
+
370
+ export default ${pascalName};
371
+ `;
372
+ };
373
+ const model = {
374
+ id: "call_to_action",
375
+ type: "SharedSlice",
376
+ name: "CallToAction",
377
+ description: "CallToAction",
378
+ variations: [
379
+ {
380
+ id: "default",
381
+ name: "Default",
382
+ docURL: "...",
383
+ version: "initial",
384
+ description: "Default",
385
+ imageUrl: "",
386
+ primary: {
387
+ image: {
388
+ type: "Image",
389
+ config: { label: "Image", constraint: {}, thumbnails: [] }
390
+ },
391
+ title: {
392
+ type: "StructuredText",
393
+ config: {
394
+ label: "title",
395
+ placeholder: "",
396
+ allowTargetBlank: true,
397
+ single: "heading1,heading2,heading3,heading4,heading5,heading6"
398
+ }
399
+ },
400
+ paragraph: {
401
+ type: "StructuredText",
402
+ config: {
403
+ label: "paragraph",
404
+ placeholder: "",
405
+ allowTargetBlank: true,
406
+ single: "paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl"
407
+ }
408
+ },
409
+ buttonlink: {
410
+ type: "Link",
411
+ config: {
412
+ label: "buttonLink",
413
+ placeholder: "Redirect URL for CTA button",
414
+ allowTargetBlank: true,
415
+ select: null
416
+ }
417
+ },
418
+ buttonLabel: {
419
+ type: "Text",
420
+ config: {
421
+ label: "buttonLabel",
422
+ placeholder: "Label for CTA button"
423
+ }
424
+ }
425
+ },
426
+ items: {}
427
+ },
428
+ {
429
+ id: "alignLeft",
430
+ name: "AlignLeft",
431
+ docURL: "...",
432
+ version: "initial",
433
+ description: "Default",
434
+ imageUrl: "",
435
+ primary: {
436
+ image: {
437
+ type: "Image",
438
+ config: { label: "Image", constraint: {}, thumbnails: [] }
439
+ },
440
+ title: {
441
+ type: "StructuredText",
442
+ config: {
443
+ label: "title",
444
+ placeholder: "",
445
+ allowTargetBlank: true,
446
+ single: "heading1,heading2,heading3,heading4,heading5,heading6"
447
+ }
448
+ },
449
+ paragraph: {
450
+ type: "StructuredText",
451
+ config: {
452
+ label: "paragraph",
453
+ placeholder: "",
454
+ allowTargetBlank: true,
455
+ single: "paragraph,preformatted,strong,em,hyperlink,image,embed,list-item,o-list-item,rtl"
456
+ }
457
+ },
458
+ buttonlink: {
459
+ type: "Link",
460
+ config: {
461
+ label: "buttonLink",
462
+ placeholder: "Redirect URL for CTA button",
463
+ allowTargetBlank: true,
464
+ select: null
465
+ }
466
+ },
467
+ buttonLabel: {
468
+ type: "Text",
469
+ config: {
470
+ label: "buttonLabel",
471
+ placeholder: "Label for CTA button"
472
+ }
473
+ }
474
+ },
475
+ items: {}
476
+ }
477
+ ]
478
+ };
479
+ const screenshotPaths = {
480
+ default: "CallToAction/screenshot-default.png",
481
+ alignLeft: "CallToAction/screenshot-alignLeft.png"
482
+ };
483
+ export {
484
+ createComponentContents,
485
+ mocks,
486
+ model,
487
+ screenshotPaths
488
+ };
489
+ //# 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, asText } from \"@prismicio/client\";\n\t\t\timport { SliceComponentProps, PrismicRichText } 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{slice.primary.image?.url && (\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\theight={600}\n\t\t\t\t\t\t\t\t\twidth={800}\n\t\t\t\t\t\t\t\t\tsrc={slice.primary.image.url}\n\t\t\t\t\t\t\t\t\talt={slice.primary.image.alt ?? undefined}\n\t\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__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{asText(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<button\n\t\t\t\t\t\t\t\tfield={slice.primary.buttonLink}\n\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{slice.primary.buttonLabel || \"Learn more…\"}\n\t\t\t\t\t\t\t</button>\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-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\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-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\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\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 { PrismicRichText } from \"@prismicio/react\";\n\t\t\timport { isFilled, asText } from \"@prismicio/client\";\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{slice.primary.image?.url && (\n\t\t\t\t\t\t\t\t<img\n\t\t\t\t\t\t\t\t\theight={600}\n\t\t\t\t\t\t\t\t\twidth={800}\n\t\t\t\t\t\t\t\t\tsrc={slice.primary.image.url}\n\t\t\t\t\t\t\t\t\talt={slice.primary.image.alt ?? undefined}\n\t\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__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{asText(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<button\n\t\t\t\t\t\t\t\tfield={slice.primary.buttonLink}\n\t\t\t\t\t\t\t\tclassName=\"es-call-to-action__button\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{slice.primary.buttonLabel || \"Learn more…\"}\n\t\t\t\t\t\t\t</button>\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-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\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-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\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.4",
3
+ "version": "0.3.14-dev-slice-tenplate-feature-2.0",
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.4",
64
+ "@slicemachine/plugin-kit": "^0.4.14-dev-slice-tenplate-feature-2.0",
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": "3d3654dd6a15d9b16e65dc662550ba3bee9b095a"
107
+ "gitHead": "46a6fdd567ff49c7f2671fa042a473c32c3b939a"
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
+ };
package/src/plugin.ts CHANGED
@@ -29,6 +29,7 @@ import { documentationRead } from "./hooks/documentation-read";
29
29
  import { projectInit } from "./hooks/project-init";
30
30
  import { sliceCreate } from "./hooks/slice-create";
31
31
  import { sliceSimulatorSetupRead } from "./hooks/sliceSimulator-setup-read";
32
+ import { sliceTemplateLibraryRead } from "./hooks/sliceTemplateLibrary-read";
32
33
  import { snippetRead } from "./hooks/snippet-read";
33
34
 
34
35
  export const plugin = defineSliceMachinePlugin<PluginOptions>({
@@ -155,6 +156,12 @@ export const plugin = defineSliceMachinePlugin<PluginOptions>({
155
156
  });
156
157
  });
157
158
 
159
+ ////////////////////////////////////////////////////////////////
160
+ // slice-template-library:*
161
+ ////////////////////////////////////////////////////////////////
162
+
163
+ hook("slice-template-library:read", sliceTemplateLibraryRead);
164
+
158
165
  ////////////////////////////////////////////////////////////////
159
166
  // custom-type:*
160
167
  ////////////////////////////////////////////////////////////////