@slicemachine/adapter-next 0.3.39-beta.8 → 0.3.39

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.
Files changed (30) hide show
  1. package/dist/AlternateGrid/javascript.jsx +2 -2
  2. package/dist/AlternateGrid/typescript.tsx +2 -2
  3. package/dist/CustomerLogos/javascript.jsx +7 -7
  4. package/dist/CustomerLogos/typescript.tsx +7 -7
  5. package/dist/hooks/snippet-read.cjs +7 -4
  6. package/dist/hooks/snippet-read.cjs.map +1 -1
  7. package/dist/hooks/snippet-read.js +7 -4
  8. package/dist/hooks/snippet-read.js.map +1 -1
  9. package/dist/sliceTemplates/AlternateGrid/index.cjs +190 -170
  10. package/dist/sliceTemplates/AlternateGrid/index.cjs.map +1 -1
  11. package/dist/sliceTemplates/AlternateGrid/index.js +190 -170
  12. package/dist/sliceTemplates/AlternateGrid/index.js.map +1 -1
  13. package/dist/sliceTemplates/CallToAction/index.cjs +1 -6
  14. package/dist/sliceTemplates/CallToAction/index.cjs.map +1 -1
  15. package/dist/sliceTemplates/CallToAction/index.js +1 -6
  16. package/dist/sliceTemplates/CallToAction/index.js.map +1 -1
  17. package/dist/sliceTemplates/CustomerLogos/index.cjs +230 -220
  18. package/dist/sliceTemplates/CustomerLogos/index.cjs.map +1 -1
  19. package/dist/sliceTemplates/CustomerLogos/index.js +230 -220
  20. package/dist/sliceTemplates/CustomerLogos/index.js.map +1 -1
  21. package/dist/sliceTemplates/Hero/index.cjs +1 -6
  22. package/dist/sliceTemplates/Hero/index.cjs.map +1 -1
  23. package/dist/sliceTemplates/Hero/index.js +1 -6
  24. package/dist/sliceTemplates/Hero/index.js.map +1 -1
  25. package/package.json +4 -5
  26. package/src/hooks/snippet-read.ts +6 -3
  27. package/src/sliceTemplates/AlternateGrid/index.ts +187 -165
  28. package/src/sliceTemplates/CallToAction/index.ts +1 -6
  29. package/src/sliceTemplates/CustomerLogos/index.ts +229 -219
  30. package/src/sliceTemplates/Hero/index.ts +1 -6
@@ -58,9 +58,9 @@ const PascalNameToReplace = ({ slice }) => {
58
58
  </div>
59
59
  )}
60
60
  </div>
61
- {slice.items.length > 0 && (
61
+ {slice.primary.items.length > 0 && (
62
62
  <div className="es-alternate-grid__primary-content__items">
63
- {slice.items.map((item, i) => (
63
+ {slice.primary.items.map((item, i) => (
64
64
  <div key={`item-${i + 1}`} className="es-alternate-grid__item">
65
65
  {isFilled.richText(item.title) && (
66
66
  <div className="es-alternate-grid__item__heading">
@@ -55,9 +55,9 @@ const PascalNameToReplace = ({
55
55
  </div>
56
56
  )}
57
57
  </div>
58
- {slice.items.length > 0 && (
58
+ {slice.primary.items.length > 0 && (
59
59
  <div className="es-alternate-grid__primary-content__items">
60
- {slice.items.map((item, i) => (
60
+ {slice.primary.items.map((item, i) => (
61
61
  <div key={`item-${i + 1}`} className="es-alternate-grid__item">
62
62
  {isFilled.richText(item.title) && (
63
63
  <div className="es-alternate-grid__item__heading">
@@ -22,15 +22,15 @@ const PascalNameToReplace = ({ slice }) => {
22
22
  <PrismicRichText field={slice.primary.eyebrowHeadline} />
23
23
  </div>
24
24
  )}
25
- {slice.items.length > 0 && (
25
+ {slice.primary.logos.length > 0 && (
26
26
  <ul className="es-customer-logos__logos">
27
- {slice.items.map(
28
- (item) =>
29
- isFilled.image(item.image) && (
30
- <li key={item.image.url} className="es-customer-logos__logo">
31
- <PrismicNextLink field={item.link}>
27
+ {slice.primary.logos.map(
28
+ (logo) =>
29
+ isFilled.image(logo.image) && (
30
+ <li key={logo.image.url} className="es-customer-logos__logo">
31
+ <PrismicNextLink field={logo.link}>
32
32
  <PrismicNextImage
33
- field={item.image}
33
+ field={logo.image}
34
34
  height={26}
35
35
  width={160}
36
36
  className="es-customer-logos__logo__link__image"
@@ -20,15 +20,15 @@ const PascalNameToReplace = ({
20
20
  <PrismicRichText field={slice.primary.eyebrowHeadline} />
21
21
  </div>
22
22
  )}
23
- {slice.items.length > 0 && (
23
+ {slice.primary.logos.length > 0 && (
24
24
  <ul className="es-customer-logos__logos">
25
- {slice.items.map(
26
- (item) =>
27
- isFilled.image(item.image) && (
28
- <li key={item.image.url} className="es-customer-logos__logo">
29
- <PrismicNextLink field={item.link}>
25
+ {slice.primary.logos.map(
26
+ (logo) =>
27
+ isFilled.image(logo.image) && (
28
+ <li key={logo.image.url} className="es-customer-logos__logo">
29
+ <PrismicNextLink field={logo.link}>
30
30
  <PrismicNextImage
31
- field={item.image}
31
+ field={logo.image}
32
32
  height={26}
33
33
  width={160}
34
34
  className="es-customer-logos__logo__link__image"
@@ -8,7 +8,8 @@ const format = async (input, helpers) => {
8
8
  const formattedInput = await helpers.format(input, void 0, {
9
9
  includeNewlineAtEnd: false,
10
10
  prettier: {
11
- parser: "typescript"
11
+ parser: "typescript",
12
+ printWidth: 60
12
13
  }
13
14
  });
14
15
  return formattedInput.endsWith(";") ? formattedInput.substring(0, formattedInput.length - 1) : formattedInput;
@@ -55,9 +56,11 @@ const snippetRead = async (data, { helpers }) => {
55
56
  }
56
57
  case "Group": {
57
58
  const code = await format(commonTags.stripIndent`
58
- <>{${dotPath(fieldPath)}.map(item => (
59
- <>{/* Render content for item */}</>
60
- ))}</>
59
+ <>
60
+ {${dotPath(fieldPath)}.map((item) => {
61
+ // Render the item
62
+ })}
63
+ </>
61
64
  `, helpers);
62
65
  return {
63
66
  label,
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-read.cjs","sources":["../../../src/hooks/snippet-read.ts"],"sourcesContent":["import type {\n\tSliceMachineHelpers,\n\tSnippetReadHook,\n} from \"@slicemachine/plugin-kit\";\nimport { stripIndent } from \"common-tags\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst dotPath = (...segments: (string | string[])[]): string => {\n\treturn segments.flat().join(\".\");\n};\n\nconst format = async (input: string, helpers: SliceMachineHelpers) => {\n\tconst formattedInput = await helpers.format(input, undefined, {\n\t\tincludeNewlineAtEnd: false,\n\t\tprettier: {\n\t\t\tparser: \"typescript\",\n\t\t},\n\t});\n\n\treturn formattedInput.endsWith(\";\")\n\t\t? formattedInput.substring(0, formattedInput.length - 1)\n\t\t: formattedInput;\n};\n\nexport const snippetRead: SnippetReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst { fieldPath } = data;\n\n\tconst label = \"React\";\n\n\tswitch (data.model.type) {\n\t\tcase \"StructuredText\": {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (components)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicRichText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (plain text)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<PrismicNextLink field={${dotPath(fieldPath)}}>Link</PrismicNextLink>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicNextImage field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>{${dotPath(fieldPath)}.map(item => (\n\t\t\t\t\t <>{/* Render content for item */}</>\n\t\t\t\t\t))}</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<SliceZone\n\t\t\t\t\t slices={${dotPath(fieldPath)}}\n\t\t\t\t\t components={components}\n\t\t\t\t\t/>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>{${dotPath(fieldPath, \"latitude\")}}, {${dotPath(fieldPath, \"longitude\")}}</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: ${dotPath(fieldPath, \"html\")} }} />\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<>{${dotPath(fieldPath)}}</>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t}\n};\n"],"names":["stripIndent"],"mappings":";;;AAQA,MAAM,UAAU,IAAI,aAA2C;AAC9D,SAAO,SAAS,KAAA,EAAO,KAAK,GAAG;AAChC;AAEA,MAAM,SAAS,OAAO,OAAe,YAAgC;AACpE,QAAM,iBAAiB,MAAM,QAAQ,OAAO,OAAO,QAAW;AAAA,IAC7D,qBAAqB;AAAA,IACrB,UAAU;AAAA,MACT,QAAQ;AAAA,IACR;AAAA,EAAA,CACD;AAEM,SAAA,eAAe,SAAS,GAAG,IAC/B,eAAe,UAAU,GAAG,eAAe,SAAS,CAAC,IACrD;AACJ;AAEO,MAAM,cAA8C,OAC1D,MACA,EAAE,cACC;AACG,QAAA,EAAE,UAAc,IAAA;AAEtB,QAAM,QAAQ;AAEN,UAAA,KAAK,MAAM,MAAM;AAAA,IACxB,KAAK,kBAAkB;AACf,aAAA;AAAA,QACN;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACXA;iCAC2B,QAAQ,SAAS;AAAA,SAE5C,OAAO;AAAA,QAER;AAAA,QACD;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACXA;6BACuB,QAAQ,SAAS;AAAA,SAExC,OAAO;AAAA,QAER;AAAA,MAAA;AAAA,IAEF;AAAA,IAED,KAAK,QAAQ;AACL,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACXA;gCAC2B,QAAQ,SAAS;AAAA,QAE5C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACN,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACXA;kCAC6B,QAAQ,SAAS;AAAA,SAE9C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClBA;UACM,QAAQ,SAAS;AAAA;AAAA;AAAA,OAIvB,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,UAAU;AACR,YAAA,OAAO,MAAM,OAClBA;;iBAEa,QAAQ,SAAS;AAAA;AAAA;AAAA,OAI9B,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,YAAY;AACV,YAAA,OAAO,MAAM,OAClBA;UACM,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,WAAW;AAAA,OAEzE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClBA;+CAC2C,QAAQ,WAAW,MAAM;AAAA,OAEpE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,SAAS;AACD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACXA;WACM,QAAQ,SAAS;AAAA,QAEvB,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,EACD;AACF;;"}
1
+ {"version":3,"file":"snippet-read.cjs","sources":["../../../src/hooks/snippet-read.ts"],"sourcesContent":["import type {\n\tSliceMachineHelpers,\n\tSnippetReadHook,\n} from \"@slicemachine/plugin-kit\";\nimport { stripIndent } from \"common-tags\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst dotPath = (...segments: (string | string[])[]): string => {\n\treturn segments.flat().join(\".\");\n};\n\nconst format = async (input: string, helpers: SliceMachineHelpers) => {\n\tconst formattedInput = await helpers.format(input, undefined, {\n\t\tincludeNewlineAtEnd: false,\n\t\tprettier: {\n\t\t\tparser: \"typescript\",\n\t\t\tprintWidth: 60,\n\t\t},\n\t});\n\n\treturn formattedInput.endsWith(\";\")\n\t\t? formattedInput.substring(0, formattedInput.length - 1)\n\t\t: formattedInput;\n};\n\nexport const snippetRead: SnippetReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst { fieldPath } = data;\n\n\tconst label = \"React\";\n\n\tswitch (data.model.type) {\n\t\tcase \"StructuredText\": {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (components)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicRichText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (plain text)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<PrismicNextLink field={${dotPath(fieldPath)}}>Link</PrismicNextLink>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicNextImage field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>\n\t\t\t\t\t\t{${dotPath(fieldPath)}.map((item) => {\n\t\t\t\t\t\t\t// Render the item\n\t\t\t\t\t\t})}\n\t\t\t\t\t</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<SliceZone\n\t\t\t\t\t slices={${dotPath(fieldPath)}}\n\t\t\t\t\t components={components}\n\t\t\t\t\t/>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>{${dotPath(fieldPath, \"latitude\")}}, {${dotPath(fieldPath, \"longitude\")}}</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: ${dotPath(fieldPath, \"html\")} }} />\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<>{${dotPath(fieldPath)}}</>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t}\n};\n"],"names":["stripIndent"],"mappings":";;;AAQA,MAAM,UAAU,IAAI,aAA2C;AAC9D,SAAO,SAAS,KAAA,EAAO,KAAK,GAAG;AAChC;AAEA,MAAM,SAAS,OAAO,OAAe,YAAgC;AACpE,QAAM,iBAAiB,MAAM,QAAQ,OAAO,OAAO,QAAW;AAAA,IAC7D,qBAAqB;AAAA,IACrB,UAAU;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,IACZ;AAAA,EAAA,CACD;AAEM,SAAA,eAAe,SAAS,GAAG,IAC/B,eAAe,UAAU,GAAG,eAAe,SAAS,CAAC,IACrD;AACJ;AAEO,MAAM,cAA8C,OAC1D,MACA,EAAE,cACC;AACG,QAAA,EAAE,UAAc,IAAA;AAEtB,QAAM,QAAQ;AAEN,UAAA,KAAK,MAAM,MAAM;AAAA,IACxB,KAAK,kBAAkB;AACf,aAAA;AAAA,QACN;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACXA;iCAC2B,QAAQ,SAAS;AAAA,SAE5C,OAAO;AAAA,QAER;AAAA,QACD;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACXA;6BACuB,QAAQ,SAAS;AAAA,SAExC,OAAO;AAAA,QAER;AAAA,MAAA;AAAA,IAEF;AAAA,IAED,KAAK,QAAQ;AACL,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACXA;gCAC2B,QAAQ,SAAS;AAAA,QAE5C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACN,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACXA;kCAC6B,QAAQ,SAAS;AAAA,SAE9C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClBA;;SAEK,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA,OAKtB,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,UAAU;AACR,YAAA,OAAO,MAAM,OAClBA;;iBAEa,QAAQ,SAAS;AAAA;AAAA;AAAA,OAI9B,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,YAAY;AACV,YAAA,OAAO,MAAM,OAClBA;UACM,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,WAAW;AAAA,OAEzE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClBA;+CAC2C,QAAQ,WAAW,MAAM;AAAA,OAEpE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,SAAS;AACD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACXA;WACM,QAAQ,SAAS;AAAA,QAEvB,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,EACD;AACF;;"}
@@ -6,7 +6,8 @@ const format = async (input, helpers) => {
6
6
  const formattedInput = await helpers.format(input, void 0, {
7
7
  includeNewlineAtEnd: false,
8
8
  prettier: {
9
- parser: "typescript"
9
+ parser: "typescript",
10
+ printWidth: 60
10
11
  }
11
12
  });
12
13
  return formattedInput.endsWith(";") ? formattedInput.substring(0, formattedInput.length - 1) : formattedInput;
@@ -53,9 +54,11 @@ const snippetRead = async (data, { helpers }) => {
53
54
  }
54
55
  case "Group": {
55
56
  const code = await format(stripIndent`
56
- <>{${dotPath(fieldPath)}.map(item => (
57
- <>{/* Render content for item */}</>
58
- ))}</>
57
+ <>
58
+ {${dotPath(fieldPath)}.map((item) => {
59
+ // Render the item
60
+ })}
61
+ </>
59
62
  `, helpers);
60
63
  return {
61
64
  label,
@@ -1 +1 @@
1
- {"version":3,"file":"snippet-read.js","sources":["../../../src/hooks/snippet-read.ts"],"sourcesContent":["import type {\n\tSliceMachineHelpers,\n\tSnippetReadHook,\n} from \"@slicemachine/plugin-kit\";\nimport { stripIndent } from \"common-tags\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst dotPath = (...segments: (string | string[])[]): string => {\n\treturn segments.flat().join(\".\");\n};\n\nconst format = async (input: string, helpers: SliceMachineHelpers) => {\n\tconst formattedInput = await helpers.format(input, undefined, {\n\t\tincludeNewlineAtEnd: false,\n\t\tprettier: {\n\t\t\tparser: \"typescript\",\n\t\t},\n\t});\n\n\treturn formattedInput.endsWith(\";\")\n\t\t? formattedInput.substring(0, formattedInput.length - 1)\n\t\t: formattedInput;\n};\n\nexport const snippetRead: SnippetReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst { fieldPath } = data;\n\n\tconst label = \"React\";\n\n\tswitch (data.model.type) {\n\t\tcase \"StructuredText\": {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (components)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicRichText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (plain text)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<PrismicNextLink field={${dotPath(fieldPath)}}>Link</PrismicNextLink>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicNextImage field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>{${dotPath(fieldPath)}.map(item => (\n\t\t\t\t\t <>{/* Render content for item */}</>\n\t\t\t\t\t))}</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<SliceZone\n\t\t\t\t\t slices={${dotPath(fieldPath)}}\n\t\t\t\t\t components={components}\n\t\t\t\t\t/>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>{${dotPath(fieldPath, \"latitude\")}}, {${dotPath(fieldPath, \"longitude\")}}</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: ${dotPath(fieldPath, \"html\")} }} />\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<>{${dotPath(fieldPath)}}</>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t}\n};\n"],"names":[],"mappings":";AAQA,MAAM,UAAU,IAAI,aAA2C;AAC9D,SAAO,SAAS,KAAA,EAAO,KAAK,GAAG;AAChC;AAEA,MAAM,SAAS,OAAO,OAAe,YAAgC;AACpE,QAAM,iBAAiB,MAAM,QAAQ,OAAO,OAAO,QAAW;AAAA,IAC7D,qBAAqB;AAAA,IACrB,UAAU;AAAA,MACT,QAAQ;AAAA,IACR;AAAA,EAAA,CACD;AAEM,SAAA,eAAe,SAAS,GAAG,IAC/B,eAAe,UAAU,GAAG,eAAe,SAAS,CAAC,IACrD;AACJ;AAEO,MAAM,cAA8C,OAC1D,MACA,EAAE,cACC;AACG,QAAA,EAAE,UAAc,IAAA;AAEtB,QAAM,QAAQ;AAEN,UAAA,KAAK,MAAM,MAAM;AAAA,IACxB,KAAK,kBAAkB;AACf,aAAA;AAAA,QACN;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACX;AAAA,iCAC2B,QAAQ,SAAS;AAAA,SAE5C,OAAO;AAAA,QAER;AAAA,QACD;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACX;AAAA,6BACuB,QAAQ,SAAS;AAAA,SAExC,OAAO;AAAA,QAER;AAAA,MAAA;AAAA,IAEF;AAAA,IAED,KAAK,QAAQ;AACL,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACX;AAAA,gCAC2B,QAAQ,SAAS;AAAA,QAE5C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACN,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACX;AAAA,kCAC6B,QAAQ,SAAS;AAAA,SAE9C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClB;AAAA,UACM,QAAQ,SAAS;AAAA;AAAA;AAAA,OAIvB,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,UAAU;AACR,YAAA,OAAO,MAAM,OAClB;AAAA;AAAA,iBAEa,QAAQ,SAAS;AAAA;AAAA;AAAA,OAI9B,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,YAAY;AACV,YAAA,OAAO,MAAM,OAClB;AAAA,UACM,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,WAAW;AAAA,OAEzE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClB;AAAA,+CAC2C,QAAQ,WAAW,MAAM;AAAA,OAEpE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,SAAS;AACD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACX;AAAA,WACM,QAAQ,SAAS;AAAA,QAEvB,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,EACD;AACF;"}
1
+ {"version":3,"file":"snippet-read.js","sources":["../../../src/hooks/snippet-read.ts"],"sourcesContent":["import type {\n\tSliceMachineHelpers,\n\tSnippetReadHook,\n} from \"@slicemachine/plugin-kit\";\nimport { stripIndent } from \"common-tags\";\n\nimport type { PluginOptions } from \"../types\";\n\nconst dotPath = (...segments: (string | string[])[]): string => {\n\treturn segments.flat().join(\".\");\n};\n\nconst format = async (input: string, helpers: SliceMachineHelpers) => {\n\tconst formattedInput = await helpers.format(input, undefined, {\n\t\tincludeNewlineAtEnd: false,\n\t\tprettier: {\n\t\t\tparser: \"typescript\",\n\t\t\tprintWidth: 60,\n\t\t},\n\t});\n\n\treturn formattedInput.endsWith(\";\")\n\t\t? formattedInput.substring(0, formattedInput.length - 1)\n\t\t: formattedInput;\n};\n\nexport const snippetRead: SnippetReadHook<PluginOptions> = async (\n\tdata,\n\t{ helpers },\n) => {\n\tconst { fieldPath } = data;\n\n\tconst label = \"React\";\n\n\tswitch (data.model.type) {\n\t\tcase \"StructuredText\": {\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (components)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicRichText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tlabel: `${label} (plain text)`,\n\t\t\t\t\tlanguage: \"tsx\",\n\t\t\t\t\tcode: await format(\n\t\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicText field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\t\thelpers,\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t];\n\t\t}\n\n\t\tcase \"Link\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<PrismicNextLink field={${dotPath(fieldPath)}}>Link</PrismicNextLink>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Image\": {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t\t<PrismicNextImage field={${dotPath(fieldPath)}} />\n\t\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\n\t\tcase \"Group\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>\n\t\t\t\t\t\t{${dotPath(fieldPath)}.map((item) => {\n\t\t\t\t\t\t\t// Render the item\n\t\t\t\t\t\t})}\n\t\t\t\t\t</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Slices\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<SliceZone\n\t\t\t\t\t slices={${dotPath(fieldPath)}}\n\t\t\t\t\t components={components}\n\t\t\t\t\t/>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"GeoPoint\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<>{${dotPath(fieldPath, \"latitude\")}}, {${dotPath(fieldPath, \"longitude\")}}</>\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tcase \"Embed\": {\n\t\t\tconst code = await format(\n\t\t\t\tstripIndent`\n\t\t\t\t\t<div dangerouslySetInnerHTML={{ __html: ${dotPath(fieldPath, \"html\")} }} />\n\t\t\t\t`,\n\t\t\t\thelpers,\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode,\n\t\t\t};\n\t\t}\n\n\t\tdefault: {\n\t\t\treturn {\n\t\t\t\tlabel,\n\t\t\t\tlanguage: \"tsx\",\n\t\t\t\tcode: await format(\n\t\t\t\t\tstripIndent`\n\t\t\t\t\t\t<>{${dotPath(fieldPath)}}</>\n\t\t\t\t\t`,\n\t\t\t\t\thelpers,\n\t\t\t\t),\n\t\t\t};\n\t\t}\n\t}\n};\n"],"names":[],"mappings":";AAQA,MAAM,UAAU,IAAI,aAA2C;AAC9D,SAAO,SAAS,KAAA,EAAO,KAAK,GAAG;AAChC;AAEA,MAAM,SAAS,OAAO,OAAe,YAAgC;AACpE,QAAM,iBAAiB,MAAM,QAAQ,OAAO,OAAO,QAAW;AAAA,IAC7D,qBAAqB;AAAA,IACrB,UAAU;AAAA,MACT,QAAQ;AAAA,MACR,YAAY;AAAA,IACZ;AAAA,EAAA,CACD;AAEM,SAAA,eAAe,SAAS,GAAG,IAC/B,eAAe,UAAU,GAAG,eAAe,SAAS,CAAC,IACrD;AACJ;AAEO,MAAM,cAA8C,OAC1D,MACA,EAAE,cACC;AACG,QAAA,EAAE,UAAc,IAAA;AAEtB,QAAM,QAAQ;AAEN,UAAA,KAAK,MAAM,MAAM;AAAA,IACxB,KAAK,kBAAkB;AACf,aAAA;AAAA,QACN;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACX;AAAA,iCAC2B,QAAQ,SAAS;AAAA,SAE5C,OAAO;AAAA,QAER;AAAA,QACD;AAAA,UACC,OAAO,GAAG;AAAA,UACV,UAAU;AAAA,UACV,MAAM,MAAM,OACX;AAAA,6BACuB,QAAQ,SAAS;AAAA,SAExC,OAAO;AAAA,QAER;AAAA,MAAA;AAAA,IAEF;AAAA,IAED,KAAK,QAAQ;AACL,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACX;AAAA,gCAC2B,QAAQ,SAAS;AAAA,QAE5C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACN,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACX;AAAA,kCAC6B,QAAQ,SAAS;AAAA,SAE9C,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClB;AAAA;AAAA,SAEK,QAAQ,SAAS;AAAA;AAAA;AAAA;AAAA,OAKtB,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,UAAU;AACR,YAAA,OAAO,MAAM,OAClB;AAAA;AAAA,iBAEa,QAAQ,SAAS;AAAA;AAAA;AAAA,OAI9B,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,YAAY;AACV,YAAA,OAAO,MAAM,OAClB;AAAA,UACM,QAAQ,WAAW,UAAU,QAAQ,QAAQ,WAAW,WAAW;AAAA,OAEzE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,KAAK,SAAS;AACP,YAAA,OAAO,MAAM,OAClB;AAAA,+CAC2C,QAAQ,WAAW,MAAM;AAAA,OAEpE,OAAO;AAGD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV;AAAA,MAAA;AAAA,IAED;AAAA,IAED,SAAS;AACD,aAAA;AAAA,QACN;AAAA,QACA,UAAU;AAAA,QACV,MAAM,MAAM,OACX;AAAA,WACM,QAAQ,SAAS;AAAA,QAEvB,OAAO;AAAA,MAAA;AAAA,IAGT;AAAA,EACD;AACF;"}
@@ -68,121 +68,125 @@ const mocks = [
68
68
  alt: "Image of computer",
69
69
  __TYPE__: "ImageContent",
70
70
  thumbnails: {}
71
- }
72
- },
73
- items: [
74
- {
75
- __TYPE__: "GroupItemContent",
71
+ },
72
+ items: {
73
+ __TYPE__: "GroupContentType",
76
74
  value: [
77
- [
78
- "title",
79
- {
80
- __TYPE__: "StructuredTextContent",
81
- value: [
75
+ {
76
+ __TYPE__: "GroupItemContent",
77
+ value: [
78
+ [
79
+ "title",
82
80
  {
83
- type: "heading3",
84
- content: {
85
- text: "Integrate with the SliceZone",
86
- spans: []
87
- },
88
- direction: "ltr"
81
+ __TYPE__: "StructuredTextContent",
82
+ value: [
83
+ {
84
+ type: "heading3",
85
+ content: {
86
+ text: "Integrate with the SliceZone",
87
+ spans: []
88
+ },
89
+ direction: "ltr"
90
+ }
91
+ ]
89
92
  }
90
- ]
91
- }
92
- ],
93
- [
94
- "description",
95
- {
96
- __TYPE__: "StructuredTextContent",
97
- value: [
93
+ ],
94
+ [
95
+ "description",
98
96
  {
99
- type: "paragraph",
100
- content: {
101
- text: "This component has been matched by the SliceZone. Its model has been fetched from SliceMachine next-adapter!",
102
- spans: []
103
- },
104
- direction: "ltr"
97
+ __TYPE__: "StructuredTextContent",
98
+ value: [
99
+ {
100
+ type: "paragraph",
101
+ content: {
102
+ text: "This component has been matched by the SliceZone. Its model has been fetched from SliceMachine next-adapter!",
103
+ spans: []
104
+ },
105
+ direction: "ltr"
106
+ }
107
+ ]
105
108
  }
106
109
  ]
107
- }
108
- ]
109
- ]
110
- },
111
- {
112
- __TYPE__: "GroupItemContent",
113
- value: [
114
- [
115
- "title",
116
- {
117
- __TYPE__: "StructuredTextContent",
118
- value: [
110
+ ]
111
+ },
112
+ {
113
+ __TYPE__: "GroupItemContent",
114
+ value: [
115
+ [
116
+ "title",
119
117
  {
120
- type: "heading3",
121
- content: {
122
- text: "Create your own",
123
- spans: []
124
- },
125
- direction: "ltr"
118
+ __TYPE__: "StructuredTextContent",
119
+ value: [
120
+ {
121
+ type: "heading3",
122
+ content: {
123
+ text: "Create your own",
124
+ spans: []
125
+ },
126
+ direction: "ltr"
127
+ }
128
+ ]
126
129
  }
127
- ]
128
- }
129
- ],
130
- [
131
- "description",
132
- {
133
- __TYPE__: "StructuredTextContent",
134
- value: [
130
+ ],
131
+ [
132
+ "description",
135
133
  {
136
- type: "paragraph",
137
- content: {
138
- text: "Feel free to use this component fully, or use it as an example! We're adding templates as often as we can.",
139
- spans: []
140
- },
141
- direction: "ltr"
134
+ __TYPE__: "StructuredTextContent",
135
+ value: [
136
+ {
137
+ type: "paragraph",
138
+ content: {
139
+ text: "Feel free to use this component fully, or use it as an example! We're adding templates as often as we can.",
140
+ spans: []
141
+ },
142
+ direction: "ltr"
143
+ }
144
+ ]
142
145
  }
143
146
  ]
144
- }
145
- ]
146
- ]
147
- },
148
- {
149
- __TYPE__: "GroupItemContent",
150
- value: [
151
- [
152
- "title",
153
- {
154
- __TYPE__: "StructuredTextContent",
155
- value: [
147
+ ]
148
+ },
149
+ {
150
+ __TYPE__: "GroupItemContent",
151
+ value: [
152
+ [
153
+ "title",
156
154
  {
157
- type: "heading3",
158
- content: {
159
- text: "Add a variation",
160
- spans: []
161
- },
162
- direction: "ltr"
155
+ __TYPE__: "StructuredTextContent",
156
+ value: [
157
+ {
158
+ type: "heading3",
159
+ content: {
160
+ text: "Add a variation",
161
+ spans: []
162
+ },
163
+ direction: "ltr"
164
+ }
165
+ ]
163
166
  }
164
- ]
165
- }
166
- ],
167
- [
168
- "description",
169
- {
170
- __TYPE__: "StructuredTextContent",
171
- value: [
167
+ ],
168
+ [
169
+ "description",
172
170
  {
173
- type: "paragraph",
174
- content: {
175
- text: 'This slice comes with a "Image Right" variation, which means editors can switch text/image direction!',
176
- spans: []
177
- },
178
- direction: "ltr"
171
+ __TYPE__: "StructuredTextContent",
172
+ value: [
173
+ {
174
+ type: "paragraph",
175
+ content: {
176
+ text: 'This slice comes with a "Image Right" variation, which means editors can switch text/image direction!',
177
+ spans: []
178
+ },
179
+ direction: "ltr"
180
+ }
181
+ ]
179
182
  }
180
183
  ]
181
- }
182
- ]
184
+ ]
185
+ }
183
186
  ]
184
187
  }
185
- ]
188
+ },
189
+ items: []
186
190
  },
187
191
  {
188
192
  __TYPE__: "SharedSliceContent",
@@ -247,53 +251,57 @@ const mocks = [
247
251
  alt: "Image of computer",
248
252
  __TYPE__: "ImageContent",
249
253
  thumbnails: {}
250
- }
251
- },
252
- items: [
253
- {
254
- __TYPE__: "GroupItemContent",
254
+ },
255
+ items: {
256
+ __TYPE__: "GroupContentType",
255
257
  value: [
256
- [
257
- "title",
258
- {
259
- __TYPE__: "StructuredTextContent",
260
- value: [
258
+ {
259
+ __TYPE__: "GroupItemContent",
260
+ value: [
261
+ [
262
+ "title",
261
263
  {
262
- type: "heading3",
263
- content: {
264
- text: "Create a unique, high-performing site",
265
- spans: [
266
- {
267
- type: "strong",
268
- start: 9,
269
- end: 15
270
- }
271
- ]
272
- },
273
- direction: "ltr"
264
+ __TYPE__: "StructuredTextContent",
265
+ value: [
266
+ {
267
+ type: "heading3",
268
+ content: {
269
+ text: "Create a unique, high-performing site",
270
+ spans: [
271
+ {
272
+ type: "strong",
273
+ start: 9,
274
+ end: 15
275
+ }
276
+ ]
277
+ },
278
+ direction: "ltr"
279
+ }
280
+ ]
274
281
  }
275
- ]
276
- }
277
- ],
278
- [
279
- "description",
280
- {
281
- __TYPE__: "StructuredTextContent",
282
- value: [
282
+ ],
283
+ [
284
+ "description",
283
285
  {
284
- type: "paragraph",
285
- content: {
286
- text: "Prismic is the headless website builder designed to help developers and marketers create unique, high-performing websites that are easy to edit.",
287
- spans: []
288
- },
289
- direction: "ltr"
286
+ __TYPE__: "StructuredTextContent",
287
+ value: [
288
+ {
289
+ type: "paragraph",
290
+ content: {
291
+ text: "Prismic is the headless website builder designed to help developers and marketers create unique, high-performing websites that are easy to edit.",
292
+ spans: []
293
+ },
294
+ direction: "ltr"
295
+ }
296
+ ]
290
297
  }
291
298
  ]
292
- }
293
- ]
299
+ ]
300
+ }
294
301
  ]
295
302
  }
296
- ]
303
+ },
304
+ items: []
297
305
  }
298
306
  ];
299
307
  const model = {
@@ -342,25 +350,31 @@ const model = {
342
350
  constraint: {},
343
351
  thumbnails: []
344
352
  }
345
- }
346
- },
347
- items: {
348
- title: {
349
- type: "StructuredText",
350
- config: {
351
- label: "title",
352
- placeholder: "",
353
- allowTargetBlank: true,
354
- single: "heading2,heading3,heading4,heading5,heading6,strong,em"
355
- }
356
353
  },
357
- description: {
358
- type: "StructuredText",
354
+ items: {
355
+ type: "Group",
359
356
  config: {
360
- label: "description",
361
- placeholder: "",
362
- allowTargetBlank: true,
363
- multi: "paragraph,preformatted,hyperlink,strong,em,list-item,o-list-item,rtl"
357
+ label: "items",
358
+ fields: {
359
+ title: {
360
+ type: "StructuredText",
361
+ config: {
362
+ label: "title",
363
+ placeholder: "",
364
+ allowTargetBlank: true,
365
+ single: "heading2,heading3,heading4,heading5,heading6,strong,em"
366
+ }
367
+ },
368
+ description: {
369
+ type: "StructuredText",
370
+ config: {
371
+ label: "description",
372
+ placeholder: "",
373
+ allowTargetBlank: true,
374
+ multi: "paragraph,preformatted,hyperlink,strong,em,list-item,o-list-item,rtl"
375
+ }
376
+ }
377
+ }
364
378
  }
365
379
  }
366
380
  }
@@ -405,25 +419,31 @@ const model = {
405
419
  constraint: {},
406
420
  thumbnails: []
407
421
  }
408
- }
409
- },
410
- items: {
411
- title: {
412
- type: "StructuredText",
413
- config: {
414
- label: "title",
415
- placeholder: "",
416
- allowTargetBlank: true,
417
- single: "heading2,heading3,heading4,heading5,heading6,strong,em"
418
- }
419
422
  },
420
- description: {
421
- type: "StructuredText",
423
+ items: {
424
+ type: "Group",
422
425
  config: {
423
- label: "description",
424
- placeholder: "",
425
- allowTargetBlank: true,
426
- multi: "paragraph,preformatted,hyperlink,strong,em,list-item,o-list-item,rtl"
426
+ label: "items",
427
+ fields: {
428
+ title: {
429
+ type: "StructuredText",
430
+ config: {
431
+ label: "title",
432
+ placeholder: "",
433
+ allowTargetBlank: true,
434
+ single: "heading2,heading3,heading4,heading5,heading6,strong,em"
435
+ }
436
+ },
437
+ description: {
438
+ type: "StructuredText",
439
+ config: {
440
+ label: "description",
441
+ placeholder: "",
442
+ allowTargetBlank: true,
443
+ multi: "paragraph,preformatted,hyperlink,strong,em,list-item,o-list-item,rtl"
444
+ }
445
+ }
446
+ }
427
447
  }
428
448
  }
429
449
  }