Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: prismicio/slice-machine
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: @slicemachine/adapter-next@0.3.66
Choose a base ref
...
head repository: prismicio/slice-machine
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: @slicemachine/adapter-next@0.3.67
Choose a head ref
  • 4 commits
  • 46 files changed
  • 7 contributors

Commits on Feb 12, 2025

  1. fix(adapter-nuxt): add removed wrappers (#1548)

    Co-authored-by: lihbr <lihbr@users.noreply.github.com>
    lihbr and lihbr authored Feb 12, 2025

    Verified

    This commit was signed with the committer’s verified signature.
    phillebaba Philip Laine
    Copy the full SHA
    9fc958a View commit details

Commits on Feb 18, 2025

  1. fix: fix team env login (#1549)

    xrutayisire authored Feb 18, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    17973e9 View commit details

Commits on Feb 24, 2025

  1. feat: table field (#1538)

    Co-authored-by: Levi Mykel Gable <9385378+levimykel@users.noreply.github.com>
    Co-authored-by: Xavier Rutayisire <xavier.rutayisire@gmail.com>
    Co-authored-by: Chris Eckert <chriseckert.ce@gmail.com>
    4 people authored Feb 24, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    e3149f2 View commit details
  2. release: 9 new packages

    xrutayisire committed Feb 24, 2025

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    24fa997 View commit details
Showing with 743 additions and 511 deletions.
  1. +0 −1 package.json
  2. +4 −4 packages/adapter-next/package.json
  3. +13 −0 packages/adapter-next/src/hooks/snippet-read.ts
  4. +4 −4 packages/adapter-next/test/__snapshots__/plugin-documentation-read.test.ts.snap
  5. +6 −3 packages/adapter-next/test/plugin-snippet-read.test.ts
  6. +4 −4 packages/adapter-nuxt/package.json
  7. +4 −0 packages/adapter-nuxt/public/AlternateGrid/javascript.vue
  8. +4 −0 packages/adapter-nuxt/public/AlternateGrid/typescript.vue
  9. +13 −0 packages/adapter-nuxt/src/hooks/snippet-read.ts
  10. +6 −3 packages/adapter-nuxt/test/plugin-snippet-read.test.ts
  11. +4 −4 packages/adapter-nuxt2/package.json
  12. +13 −0 packages/adapter-nuxt2/src/hooks/snippet-read.ts
  13. +6 −3 packages/adapter-nuxt2/test/plugin-snippet-read.test.ts
  14. +4 −4 packages/adapter-sveltekit/package.json
  15. +13 −0 packages/adapter-sveltekit/src/hooks/snippet-read.ts
  16. +6 −3 packages/adapter-sveltekit/test/plugin-snippet-read.test.ts
  17. +1 −1 packages/init/package.json
  18. +1 −3 packages/init/test/SliceMachineInitProcess-run.test.ts
  19. +1 −3 packages/init/test/SliceMachineInitProcess-syncDataWithPrismic.test.ts
  20. +5 −5 packages/manager/package.json
  21. +1 −4 packages/manager/test/SliceMachineManager-customTypes-deleteCustomType.test.ts
  22. +5 −6 packages/manager/test/SliceMachineManager-customTypes-pushCustomType.test.ts
  23. +2 −3 packages/manager/test/SliceMachineManager-customTypes-readCustomType.test.ts
  24. +2 −4 packages/manager/test/SliceMachineManager-prismicRepository-pushChanges.test.ts
  25. +1 −2 packages/manager/test/SliceMachineManager-slices-deleteSlice.test.ts
  26. +5 −5 packages/plugin-kit/package.json
  27. +10 −9 packages/slice-machine/package.json
  28. +16 −6 packages/slice-machine/src/domain/fields.ts
  29. +3 −1 packages/slice-machine/src/domain/slice.ts
  30. +8 −0 packages/slice-machine/src/features/builder/useTableFieldExperiment.ts
  31. +21 −17 packages/slice-machine/src/legacy/components/Simulator/index.tsx
  32. +8 −1 packages/slice-machine/src/legacy/lib/builders/CustomTypeBuilder/TabZone/index.tsx
  33. +13 −3 packages/slice-machine/src/legacy/lib/builders/SliceBuilder/FieldZones/index.tsx
  34. +12 −3 packages/slice-machine/src/legacy/lib/models/common/widgets/Group/index.tsx
  35. +5 −5 packages/slice-machine/src/legacy/lib/models/common/widgets/Link/components.tsx
  36. +17 −8 packages/slice-machine/src/legacy/lib/models/common/widgets/NestedGroup/index.tsx
  37. +52 −0 packages/slice-machine/src/legacy/lib/models/common/widgets/Table/index.ts
  38. +2 −0 packages/slice-machine/src/legacy/lib/models/common/widgets/nonGroupWidgets.ts
  39. +17 −7 packages/slice-machine/src/legacy/lib/utils/preferWroomBase.ts
  40. +3 −3 packages/start-slicemachine/package.json
  41. +6 −5 playwright/README.md
  42. +1 −1 playwright/package.json
  43. +2 −1 playwright/pages/components/AddFieldDropdown.ts
  44. +28 −0 playwright/tests/fields/table.spec.ts
  45. +10 −0 scripts/play.ts
  46. +381 −372 yarn.lock
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -69,7 +69,6 @@
"resolutions": {
"connected-next-router/react-redux": "8.0.7",
"react-beautiful-dnd/react-redux": "8.0.7",
"@prismicio/types-internal": "3.3.0",
"express": "4.20.0"
},
"workspaces": [
8 changes: 4 additions & 4 deletions packages/adapter-next/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@slicemachine/adapter-next",
"version": "0.3.66",
"version": "0.3.67",
"description": "Slice Machine adapter for Next.js.",
"keywords": [
"typescript",
@@ -67,7 +67,7 @@
},
"dependencies": {
"@prismicio/simulator": "^0.1.4",
"@prismicio/types-internal": "3.3.0",
"@prismicio/types-internal": "3.6.0",
"@slicemachine/plugin-kit": "workspace:*",
"common-tags": "^1.8.2",
"fp-ts": "^2.13.1",
@@ -79,7 +79,7 @@
"pascal-case": "^3.1.2"
},
"devDependencies": {
"@prismicio/mock": "0.2.0",
"@prismicio/mock": "0.7.1",
"@size-limit/preset-small-lib": "8.2.4",
"@types/common-tags": "1.8.1",
"@types/react": "18.0.28",
@@ -95,7 +95,7 @@
"next": "14.1.3",
"prettier": "3.0.3",
"prettier-plugin-jsdoc": "1.1.1",
"prismic-ts-codegen": "0.1.23",
"prismic-ts-codegen": "0.1.25",
"react": "18.2.0",
"rollup-plugin-preserve-directives": "0.2.0",
"size-limit": "8.2.4",
13 changes: 13 additions & 0 deletions packages/adapter-next/src/hooks/snippet-read.ts
Original file line number Diff line number Diff line change
@@ -128,6 +128,19 @@ export const snippetRead: SnippetReadHook<PluginOptions> = async (
};
}

case "Table": {
return {
label,
language: "tsx",
code: await format(
stripIndent`
<PrismicTable field={${dotPath(fieldPath)}} />
`,
helpers,
),
};
}

case "Group": {
// We cannot use `format` since this snippet contains invalid syntax.
// Please ensure this snippet is manually formatted correctly.
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

exports[`PageSnippet > App Router > return a snippet with JavaScript 1`] = `
{
"content": "## Create your Foo Bar's page component
"content": "## Create your Foobar's page component
Add a new route by creating an \`app/[uid]/page.js\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \`app/marketing/[uid]/page.js\`.)
@@ -63,7 +63,7 @@ Make sure all of your import paths are correct. See the [install guide](https://
exports[`PageSnippet > App Router > return a snippet with TypeScript for TypeScript projects 1`] = `
{
"content": "## Create your Foo Bar's page component
"content": "## Create your Foobar's page component
Add a new route by creating an \`app/[uid]/page.tsx\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \`app/marketing/[uid]/page.tsx\`.)
@@ -131,7 +131,7 @@ Make sure all of your import paths are correct. See the [install guide](https://
exports[`PageSnippet > Pages Router > return a snippet with JavaScript 1`] = `
{
"content": "## Create your Foo Bar's page component
"content": "## Create your Foobar's page component
Add a new route by creating a \`pages/[uid].js\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \`pages/marketing/[uid].js\`.)
@@ -203,7 +203,7 @@ Make sure all of your import paths are correct. See the [install guide](https://
exports[`PageSnippet > Pages Router > return a snippet with TypeScript for TypeScript projects 1`] = `
{
"content": "## Create your Foo Bar's page component
"content": "## Create your Foobar's page component
Add a new route by creating a \`pages/[uid].tsx\` file. (If the route should be nested in a child directory, you can create the file in a directory, like \`pages/marketing/[uid].tsx\`.)
9 changes: 6 additions & 3 deletions packages/adapter-next/test/plugin-snippet-read.test.ts
Original file line number Diff line number Diff line change
@@ -23,14 +23,15 @@ const model = mock.model.customType({
geoPoint: mock.model.geoPoint(),
group: mock.model.group(),
image: mock.model.image(),
integrationFields: mock.model.integrationFields(),
integrationFields: mock.model.integration(),
keyText: mock.model.keyText(),
link: mock.model.link(),
linkToMedia: mock.model.linkToMedia(),
link: mock.model.link({ repeat: false, allowText: false }),
linkToMedia: mock.model.linkToMedia({ allowText: false }),
number: mock.model.number(),
richText: mock.model.richText(),
select: mock.model.select(),
sliceZone: mock.model.sliceZone(),
table: mock.model.table(),
timestamp: mock.model.timestamp(),
title: mock.model.title(),
uid: mock.model.uid(),
@@ -160,6 +161,8 @@ testSnippet(
`<SliceZone slices={${model.id}.data.sliceZone} components={components} />`,
);

testSnippet("table", `<PrismicTable field={${model.id}.data.table} />`);

testSnippet("timestamp", `{${model.id}.data.timestamp}`, { format: false });

testSnippet("title", [
8 changes: 4 additions & 4 deletions packages/adapter-nuxt/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@slicemachine/adapter-nuxt",
"version": "0.3.66",
"version": "0.3.67",
"description": "Slice Machine adapter for Nuxt 3.",
"keywords": [
"typescript",
@@ -60,7 +60,7 @@
},
"dependencies": {
"@prismicio/simulator": "^0.1.4",
"@prismicio/types-internal": "3.3.0",
"@prismicio/types-internal": "3.6.0",
"@slicemachine/plugin-kit": "workspace:*",
"common-tags": "^1.8.2",
"fp-ts": "^2.13.1",
@@ -72,7 +72,7 @@
"pascal-case": "^3.1.2"
},
"devDependencies": {
"@prismicio/mock": "0.2.0",
"@prismicio/mock": "0.7.1",
"@size-limit/preset-small-lib": "8.2.4",
"@types/common-tags": "1.8.1",
"@typescript-eslint/eslint-plugin": "5.55.0",
@@ -86,7 +86,7 @@
"nuxt": "3.3.3",
"prettier": "3.0.3",
"prettier-plugin-jsdoc": "1.1.1",
"prismic-ts-codegen": "0.1.23",
"prismic-ts-codegen": "0.1.25",
"size-limit": "8.2.4",
"ts-morph": "17.0.1",
"typescript": "4.9.5",
4 changes: 4 additions & 0 deletions packages/adapter-nuxt/public/AlternateGrid/javascript.vue
Original file line number Diff line number Diff line change
@@ -40,11 +40,13 @@ defineProps(getSliceComponentProps(["slice", "index", "slices", "context"]));
v-if="isFilled.richText(slice.primary.title)"
:field="slice.primary.title"
class="es-alternate-grid__primary-content__intro__headline"
wrapper="div"
/>
<PrismicRichText
v-if="isFilled.richText(slice.primary.description)"
:field="slice.primary.description"
class="es-alternate-grid__primary-content__intro__description"
wrapper="div"
/>
</div>
<div
@@ -60,11 +62,13 @@ defineProps(getSliceComponentProps(["slice", "index", "slices", "context"]));
v-if="isFilled.richText(item.title)"
:field="item.title"
class="es-alternate-grid__item__heading"
wrapper="div"
/>
<PrismicRichText
v-if="isFilled.richText(item.description)"
:field="item.description"
class="es-alternate-grid__item__description"
wrapper="div"
/>
</div>
</div>
4 changes: 4 additions & 0 deletions packages/adapter-nuxt/public/AlternateGrid/typescript.vue
Original file line number Diff line number Diff line change
@@ -47,11 +47,13 @@ defineProps(
v-if="isFilled.richText(slice.primary.title)"
:field="slice.primary.title"
class="es-alternate-grid__primary-content__intro__headline"
wrapper="div"
/>
<PrismicRichText
v-if="isFilled.richText(slice.primary.description)"
:field="slice.primary.description"
class="es-alternate-grid__primary-content__intro__description"
wrapper="div"
/>
</div>
<div
@@ -67,11 +69,13 @@ defineProps(
v-if="isFilled.richText(item.title)"
:field="item.title"
class="es-alternate-grid__item__heading"
wrapper="div"
/>
<PrismicRichText
v-if="isFilled.richText(item.description)"
:field="item.description"
class="es-alternate-grid__item__description"
wrapper="div"
/>
</div>
</div>
13 changes: 13 additions & 0 deletions packages/adapter-nuxt/src/hooks/snippet-read.ts
Original file line number Diff line number Diff line change
@@ -112,6 +112,19 @@ export const snippetRead: SnippetReadHook<PluginOptions> = async (
};
}

case "Table": {
return {
label,
language: "vue",
code: await format(
stripIndent`
<PrismicTable :field="${dotPath(fieldPath)}" />
`,
helpers,
),
};
}

case "Embed": {
return {
label,
9 changes: 6 additions & 3 deletions packages/adapter-nuxt/test/plugin-snippet-read.test.ts
Original file line number Diff line number Diff line change
@@ -23,14 +23,15 @@ const model = mock.model.customType({
geoPoint: mock.model.geoPoint(),
group: mock.model.group(),
image: mock.model.image(),
integrationFields: mock.model.integrationFields(),
integrationFields: mock.model.integration(),
keyText: mock.model.keyText(),
link: mock.model.link(),
linkToMedia: mock.model.linkToMedia(),
link: mock.model.link({ repeat: false, allowText: false }),
linkToMedia: mock.model.linkToMedia({ allowText: false }),
number: mock.model.number(),
richText: mock.model.richText(),
select: mock.model.select(),
sliceZone: mock.model.sliceZone(),
table: mock.model.table(),
timestamp: mock.model.timestamp(),
title: mock.model.title(),
uid: mock.model.uid(),
@@ -138,6 +139,8 @@ testSnippet(
`<SliceZone :slices="${model.id}.data.sliceZone" :components="components" />`,
);

testSnippet("table", `<PrismicTable :field="${model.id}.data.table" />`);

testSnippet("timestamp", `{{${model.id}.data.timestamp}}`);

testSnippet("title", [
8 changes: 4 additions & 4 deletions packages/adapter-nuxt2/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@slicemachine/adapter-nuxt2",
"version": "0.3.66",
"version": "0.3.67",
"description": "Slice Machine adapter for Nuxt 2.",
"keywords": [
"typescript",
@@ -60,7 +60,7 @@
},
"dependencies": {
"@prismicio/simulator": "^0.1.4",
"@prismicio/types-internal": "3.3.0",
"@prismicio/types-internal": "3.6.0",
"@slicemachine/plugin-kit": "workspace:*",
"common-tags": "^1.8.2",
"fp-ts": "^2.13.1",
@@ -72,7 +72,7 @@
"pascal-case": "^3.1.2"
},
"devDependencies": {
"@prismicio/mock": "0.2.0",
"@prismicio/mock": "0.7.1",
"@size-limit/preset-small-lib": "8.2.4",
"@typescript-eslint/eslint-plugin": "5.55.0",
"@typescript-eslint/parser": "5.55.0",
@@ -85,7 +85,7 @@
"nuxt": "2.16.3",
"prettier": "3.0.3",
"prettier-plugin-jsdoc": "1.1.1",
"prismic-ts-codegen": "0.1.23",
"prismic-ts-codegen": "0.1.25",
"size-limit": "8.2.4",
"ts-morph": "17.0.1",
"typescript": "4.9.5",
13 changes: 13 additions & 0 deletions packages/adapter-nuxt2/src/hooks/snippet-read.ts
Original file line number Diff line number Diff line change
@@ -112,6 +112,19 @@ export const snippetRead: SnippetReadHook<PluginOptions> = async (
};
}

case "Table": {
return {
label,
language: "vue",
code: await format(
stripIndent`
<PrismicTable :field="${dotPath(fieldPath)}" />
`,
helpers,
),
};
}

case "Embed": {
return {
label,
9 changes: 6 additions & 3 deletions packages/adapter-nuxt2/test/plugin-snippet-read.test.ts
Original file line number Diff line number Diff line change
@@ -23,14 +23,15 @@ const model = mock.model.customType({
geoPoint: mock.model.geoPoint(),
group: mock.model.group(),
image: mock.model.image(),
integrationFields: mock.model.integrationFields(),
integrationFields: mock.model.integration(),
keyText: mock.model.keyText(),
link: mock.model.link(),
linkToMedia: mock.model.linkToMedia(),
link: mock.model.link({ repeat: false, allowText: false }),
linkToMedia: mock.model.linkToMedia({ allowText: false }),
number: mock.model.number(),
richText: mock.model.richText(),
select: mock.model.select(),
sliceZone: mock.model.sliceZone(),
table: mock.model.table(),
timestamp: mock.model.timestamp(),
title: mock.model.title(),
uid: mock.model.uid(),
@@ -138,6 +139,8 @@ testSnippet(
`<SliceZone :slices="${model.id}.data.sliceZone" :components="components" />`,
);

testSnippet("table", `<PrismicTable :field="${model.id}.data.table" />`);

testSnippet("timestamp", `{{${model.id}.data.timestamp}}`);

testSnippet("title", [
8 changes: 4 additions & 4 deletions packages/adapter-sveltekit/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@slicemachine/adapter-sveltekit",
"version": "0.3.66",
"version": "0.3.67",
"description": "Slice Machine adapter for SvelteKit.",
"keywords": [
"typescript",
@@ -63,7 +63,7 @@
},
"dependencies": {
"@prismicio/simulator": "^0.1.4",
"@prismicio/types-internal": "3.3.0",
"@prismicio/types-internal": "3.6.0",
"@slicemachine/plugin-kit": "workspace:*",
"common-tags": "^1.8.2",
"fp-ts": "^2.13.1",
@@ -75,7 +75,7 @@
"prettier-plugin-svelte": "^3.0.3"
},
"devDependencies": {
"@prismicio/mock": "0.2.0",
"@prismicio/mock": "0.7.1",
"@size-limit/preset-small-lib": "8.2.4",
"@sveltejs/kit": "2.0.0",
"@sveltejs/package": "2.2.1",
@@ -93,7 +93,7 @@
"eslint-plugin-tsdoc": "0.2.17",
"prettier": "3.0.3",
"prettier-plugin-jsdoc": "1.1.1",
"prismic-ts-codegen": "0.1.23",
"prismic-ts-codegen": "0.1.25",
"size-limit": "8.2.4",
"svelte": "4.2.0",
"typescript": "4.9.5",
Loading