@contentful/experiences-sdk-react 3.1.0 → 3.1.1-dev-20250811T1043-028392b.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.
@@ -18,7 +18,7 @@ const ExperienceRoot = ({ locale, experience, visualEditorMode = VisualEditorMod
18
18
  mode,
19
19
  });
20
20
  if (mode === StudioCanvasMode.EDITOR || mode === StudioCanvasMode.READ_ONLY) {
21
- return (jsx(VisualEditorRoot, { experience: experienceObject, visualEditorMode: visualEditorMode, initialLocale: locale }));
21
+ return (jsx(VisualEditorRoot, { experience: experienceObject, visualEditorMode: visualEditorMode, initialLocale: locale, canvasMode: mode }));
22
22
  }
23
23
  if (!experienceObject)
24
24
  return null;
@@ -1 +1 @@
1
- {"version":3,"file":"ExperienceRoot.js","sources":["../../src/ExperienceRoot.tsx"],"sourcesContent":["'use client';\nimport React from 'react';\nimport {\n VisualEditorMode,\n createExperience,\n validateExperienceBuilderConfig,\n debug as cfDebug,\n} from '@contentful/experiences-core';\nimport { EntityStore } from '@contentful/experiences-core';\nimport type { Experience } from '@contentful/experiences-core/types';\nimport { PreviewDeliveryRoot } from './blocks/preview/PreviewDeliveryRoot';\nimport VisualEditorRoot from './blocks/editor/VisualEditorRoot';\nimport { useDetectCanvasMode } from './hooks/useDetectCanvasMode';\nimport { StudioCanvasMode } from '@contentful/experiences-core/constants';\n\ntype ExperienceRootProps = {\n experience?: Experience<EntityStore> | string | null;\n locale: string;\n visualEditorMode?: VisualEditorMode;\n /** Enables extra logging in the SDK to support troubleshooting.\n * This option is not recommended for production environments as it\n * will result in too many unnecessary logs being produced during runtime.\n * Default: false\n */\n debug?: boolean;\n};\n\nexport const ExperienceRoot = ({\n locale,\n experience,\n visualEditorMode = VisualEditorMode.LazyLoad,\n debug,\n}: ExperienceRootProps) => {\n const mode = useDetectCanvasMode();\n\n if (typeof debug === 'boolean') {\n cfDebug.setEnabled(debug);\n }\n\n //If experience is passed in as a JSON string, recreate it to an experience object\n const experienceObject =\n typeof experience === 'string' ? createExperience(experience) : experience;\n\n validateExperienceBuilderConfig({\n locale,\n mode,\n });\n\n if (mode === StudioCanvasMode.EDITOR || mode === StudioCanvasMode.READ_ONLY) {\n return (\n <VisualEditorRoot\n experience={experienceObject as Experience<EntityStore> | undefined}\n visualEditorMode={visualEditorMode}\n initialLocale={locale}\n />\n );\n }\n\n if (!experienceObject) return null;\n\n return <PreviewDeliveryRoot locale={locale} experience={experienceObject} />;\n};\n"],"names":[],"mappings":";;;;;;;;AA2Ba;AAMX;AAEA;AACE;;;AAIF;AAGA;;;AAGC;AAED;AACE;;AASF;AAAuB;;AAGzB;;"}
1
+ {"version":3,"file":"ExperienceRoot.js","sources":["../../src/ExperienceRoot.tsx"],"sourcesContent":["'use client';\nimport React from 'react';\nimport {\n VisualEditorMode,\n createExperience,\n validateExperienceBuilderConfig,\n debug as cfDebug,\n} from '@contentful/experiences-core';\nimport { EntityStore } from '@contentful/experiences-core';\nimport type { Experience } from '@contentful/experiences-core/types';\nimport { PreviewDeliveryRoot } from './blocks/preview/PreviewDeliveryRoot';\nimport VisualEditorRoot from './blocks/editor/VisualEditorRoot';\nimport { useDetectCanvasMode } from './hooks/useDetectCanvasMode';\nimport { StudioCanvasMode } from '@contentful/experiences-core/constants';\n\ntype ExperienceRootProps = {\n experience?: Experience<EntityStore> | string | null;\n locale: string;\n visualEditorMode?: VisualEditorMode;\n /** Enables extra logging in the SDK to support troubleshooting.\n * This option is not recommended for production environments as it\n * will result in too many unnecessary logs being produced during runtime.\n * Default: false\n */\n debug?: boolean;\n};\n\nexport const ExperienceRoot = ({\n locale,\n experience,\n visualEditorMode = VisualEditorMode.LazyLoad,\n debug,\n}: ExperienceRootProps) => {\n const mode = useDetectCanvasMode();\n\n if (typeof debug === 'boolean') {\n cfDebug.setEnabled(debug);\n }\n\n //If experience is passed in as a JSON string, recreate it to an experience object\n const experienceObject =\n typeof experience === 'string' ? createExperience(experience) : experience;\n\n validateExperienceBuilderConfig({\n locale,\n mode,\n });\n\n if (mode === StudioCanvasMode.EDITOR || mode === StudioCanvasMode.READ_ONLY) {\n return (\n <VisualEditorRoot\n experience={experienceObject as Experience<EntityStore> | undefined}\n visualEditorMode={visualEditorMode}\n initialLocale={locale}\n canvasMode={mode}\n />\n );\n }\n\n if (!experienceObject) return null;\n\n return <PreviewDeliveryRoot locale={locale} experience={experienceObject} />;\n};\n"],"names":[],"mappings":";;;;;;;;AA2Ba;AAMX;AAEA;AACE;;;AAIF;AAGA;;;AAGC;AAED;;;AAWA;AAAuB;;AAGzB;;"}
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { useState, useEffect } from 'react';
3
3
  import { VisualEditorMode, inMemoryEntitiesStore } from '@contentful/experiences-core';
4
4
 
5
- const VisualEditorLoader = ({ visualEditorMode, experience, }) => {
5
+ const VisualEditorLoader = ({ visualEditorMode, experience, canvasMode, }) => {
6
6
  const [VisualEditor, setVisualEditor] = useState(null);
7
7
  useEffect(() => {
8
8
  // Dynamically import the visual editor based on the configured mode
@@ -21,7 +21,7 @@ const VisualEditorLoader = ({ visualEditorMode, experience, }) => {
21
21
  }, [visualEditorMode]);
22
22
  if (!VisualEditor)
23
23
  return null;
24
- return jsx(VisualEditor, { experience: experience, inMemoryEntitiesStore: inMemoryEntitiesStore });
24
+ return (jsx(VisualEditor, { experience: experience, inMemoryEntitiesStore: inMemoryEntitiesStore, canvasMode: canvasMode }));
25
25
  };
26
26
 
27
27
  export { VisualEditorLoader, VisualEditorLoader as default };
@@ -1 +1 @@
1
- {"version":3,"file":"VisualEditorLoader.js","sources":["../../../../src/blocks/editor/VisualEditorLoader.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n type InMemoryEntitiesStore,\n type EntityStore,\n inMemoryEntitiesStore,\n VisualEditorMode,\n} from '@contentful/experiences-core';\nimport type { Experience } from '@contentful/experiences-core/types';\n\ntype VisualEditorLoaderProps = {\n visualEditorMode: VisualEditorMode;\n experience?: Experience<EntityStore>;\n};\n\nexport const VisualEditorLoader: React.FC<VisualEditorLoaderProps> = ({\n visualEditorMode,\n experience,\n}) => {\n const [VisualEditor, setVisualEditor] = useState<React.ComponentType<{\n experience?: Experience<EntityStore>;\n inMemoryEntitiesStore?: InMemoryEntitiesStore;\n }> | null>(null);\n\n useEffect(() => {\n // Dynamically import the visual editor based on the configured mode\n switch (visualEditorMode) {\n case VisualEditorMode.InjectScript:\n import('./VisualEditorInjectScript').then((module) => {\n setVisualEditor(() => module.default);\n });\n break;\n\n // VisualEditorMode.LazyLoad:\n default:\n import('@contentful/experiences-visual-editor-react').then((module) => {\n setVisualEditor(() => module.default);\n });\n }\n }, [visualEditorMode]);\n\n if (!VisualEditor) return null;\n\n return <VisualEditor experience={experience} inMemoryEntitiesStore={inMemoryEntitiesStore} />;\n};\n\nexport default VisualEditorLoader;\n"],"names":["_jsx"],"mappings":";;;;AAca,MAAA,kBAAkB,GAAsC,CAAC,EACpE,gBAAgB,EAChB,UAAU,GACX,KAAI;IACH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAGrC,IAAI,CAAC,CAAC;IAEjB,SAAS,CAAC,MAAK;;QAEb,QAAQ,gBAAgB;YACtB,KAAK,gBAAgB,CAAC,YAAY;gBAChC,OAAO,+BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;oBACnD,eAAe,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,iBAAC,CAAC,CAAC;gBACH,MAAM;;AAGR,YAAA;gBACE,OAAO,6CAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;oBACpE,eAAe,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,iBAAC,CAAC,CAAC;SACN;AACH,KAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEvB,IAAA,IAAI,CAAC,YAAY;AAAE,QAAA,OAAO,IAAI,CAAC;IAE/B,OAAOA,GAAA,CAAC,YAAY,EAAA,EAAC,UAAU,EAAE,UAAU,EAAE,qBAAqB,EAAE,qBAAqB,EAAA,CAAI,CAAC;AAChG;;;;"}
1
+ {"version":3,"file":"VisualEditorLoader.js","sources":["../../../../src/blocks/editor/VisualEditorLoader.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport {\n type InMemoryEntitiesStore,\n type EntityStore,\n inMemoryEntitiesStore,\n VisualEditorMode,\n} from '@contentful/experiences-core';\nimport type { Experience } from '@contentful/experiences-core/types';\nimport type { StudioCanvasMode } from '@contentful/experiences-core/constants';\n\ntype VisualEditorLoaderProps = {\n visualEditorMode: VisualEditorMode;\n canvasMode?: StudioCanvasMode;\n experience?: Experience<EntityStore>;\n};\n\nexport const VisualEditorLoader: React.FC<VisualEditorLoaderProps> = ({\n visualEditorMode,\n experience,\n canvasMode,\n}) => {\n const [VisualEditor, setVisualEditor] = useState<React.ComponentType<{\n experience?: Experience<EntityStore>;\n inMemoryEntitiesStore?: InMemoryEntitiesStore;\n canvasMode?: StudioCanvasMode;\n }> | null>(null);\n\n useEffect(() => {\n // Dynamically import the visual editor based on the configured mode\n switch (visualEditorMode) {\n case VisualEditorMode.InjectScript:\n import('./VisualEditorInjectScript').then((module) => {\n setVisualEditor(() => module.default);\n });\n break;\n\n // VisualEditorMode.LazyLoad:\n default:\n import('@contentful/experiences-visual-editor-react').then((module) => {\n setVisualEditor(() => module.default);\n });\n }\n }, [visualEditorMode]);\n\n if (!VisualEditor) return null;\n\n return (\n <VisualEditor\n experience={experience}\n inMemoryEntitiesStore={inMemoryEntitiesStore}\n canvasMode={canvasMode}\n />\n );\n};\n\nexport default VisualEditorLoader;\n"],"names":["_jsx"],"mappings":";;;;AAgBO,MAAM,kBAAkB,GAAsC,CAAC,EACpE,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,KAAI;IACH,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAIrC,IAAI,CAAC,CAAC;IAEjB,SAAS,CAAC,MAAK;;QAEb,QAAQ,gBAAgB;YACtB,KAAK,gBAAgB,CAAC,YAAY;gBAChC,OAAO,+BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;oBACnD,eAAe,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,iBAAC,CAAC,CAAC;gBACH,MAAM;;AAGR,YAAA;gBACE,OAAO,6CAA6C,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAI;oBACpE,eAAe,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;AACxC,iBAAC,CAAC,CAAC;SACN;AACH,KAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAEvB,IAAA,IAAI,CAAC,YAAY;AAAE,QAAA,OAAO,IAAI,CAAC;AAE/B,IAAA,QACEA,GAAC,CAAA,YAAY,EACX,EAAA,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,UAAU,EAAE,UAAU,EAAA,CACtB,EACF;AACJ;;;;"}
@@ -4,13 +4,13 @@ import { ErrorBoundary } from '../../components/ErrorBoundary.js';
4
4
  import { useInitializeVisualEditor } from '../../hooks/useInitializeVisualEditor.js';
5
5
 
6
6
  const VisualEditorLoader = React.lazy(() => import('./VisualEditorLoader.js'));
7
- const VisualEditorRoot = ({ visualEditorMode, experience, initialLocale, }) => {
7
+ const VisualEditorRoot = ({ visualEditorMode, canvasMode, experience, initialLocale, }) => {
8
8
  const initialEntities = experience?.entityStore?.entities || [];
9
9
  useInitializeVisualEditor({
10
10
  initialLocale,
11
11
  initialEntities,
12
12
  });
13
- return (jsx(ErrorBoundary, { children: jsx(Suspense, { fallback: jsx("div", { children: "Loading..." }), children: jsx(VisualEditorLoader, { experience: experience, visualEditorMode: visualEditorMode }) }) }));
13
+ return (jsx(ErrorBoundary, { children: jsx(Suspense, { fallback: jsx("div", { children: "Loading..." }), children: jsx(VisualEditorLoader, { experience: experience, visualEditorMode: visualEditorMode, canvasMode: canvasMode }) }) }));
14
14
  };
15
15
 
16
16
  export { VisualEditorRoot, VisualEditorRoot as default };
@@ -1 +1 @@
1
- {"version":3,"file":"VisualEditorRoot.js","sources":["../../../../src/blocks/editor/VisualEditorRoot.tsx"],"sourcesContent":["import React, { Suspense } from 'react';\nimport { EntityStore, VisualEditorMode } from '@contentful/experiences-core';\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { useInitializeVisualEditor } from '../../hooks/useInitializeVisualEditor';\nimport type { Experience } from '@contentful/experiences-core/types';\n\nconst VisualEditorLoader = React.lazy(() => import('./VisualEditorLoader'));\n\ntype VisualEditorRootProps = {\n visualEditorMode: VisualEditorMode;\n experience?: Experience<EntityStore>;\n initialLocale: string;\n};\n\nexport const VisualEditorRoot: React.FC<VisualEditorRootProps> = ({\n visualEditorMode,\n experience,\n initialLocale,\n}) => {\n const initialEntities = experience?.entityStore?.entities || [];\n\n useInitializeVisualEditor({\n initialLocale,\n initialEntities,\n });\n\n return (\n <ErrorBoundary>\n <Suspense fallback={<div>Loading...</div>}>\n <VisualEditorLoader experience={experience} visualEditorMode={visualEditorMode} />\n </Suspense>\n </ErrorBoundary>\n );\n};\n\nexport default VisualEditorRoot;\n"],"names":["_jsx"],"mappings":";;;;;AAMA,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,yBAAsB,CAAC,CAAC,CAAC;AAQrE,MAAM,gBAAgB,GAAoC,CAAC,EAChE,gBAAgB,EAChB,UAAU,EACV,aAAa,GACd,KAAI;IACH,MAAM,eAAe,GAAG,UAAU,EAAE,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;AAEhE,IAAA,yBAAyB,CAAC;QACxB,aAAa;QACb,eAAe;AAChB,KAAA,CAAC,CAAC;IAEH,QACEA,GAAC,CAAA,aAAa,EACZ,EAAA,QAAA,EAAAA,GAAA,CAAC,QAAQ,EAAC,EAAA,QAAQ,EAAEA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAAqB,EACvC,QAAA,EAAAA,GAAA,CAAC,kBAAkB,EAAC,EAAA,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,gBAAgB,EAAI,CAAA,EAAA,CACzE,EACG,CAAA,EAChB;AACJ;;;;"}
1
+ {"version":3,"file":"VisualEditorRoot.js","sources":["../../../../src/blocks/editor/VisualEditorRoot.tsx"],"sourcesContent":["import React, { Suspense } from 'react';\nimport { EntityStore, VisualEditorMode } from '@contentful/experiences-core';\nimport { ErrorBoundary } from '../../components/ErrorBoundary';\nimport { useInitializeVisualEditor } from '../../hooks/useInitializeVisualEditor';\nimport type { Experience } from '@contentful/experiences-core/types';\nimport type { StudioCanvasMode } from '@contentful/experiences-core/constants';\n\nconst VisualEditorLoader = React.lazy(() => import('./VisualEditorLoader'));\n\ntype VisualEditorRootProps = {\n visualEditorMode: VisualEditorMode;\n canvasMode?: StudioCanvasMode;\n experience?: Experience<EntityStore>;\n initialLocale: string;\n};\n\nexport const VisualEditorRoot: React.FC<VisualEditorRootProps> = ({\n visualEditorMode,\n canvasMode,\n experience,\n initialLocale,\n}) => {\n const initialEntities = experience?.entityStore?.entities || [];\n\n useInitializeVisualEditor({\n initialLocale,\n initialEntities,\n });\n\n return (\n <ErrorBoundary>\n <Suspense fallback={<div>Loading...</div>}>\n <VisualEditorLoader\n experience={experience}\n visualEditorMode={visualEditorMode}\n canvasMode={canvasMode}\n />\n </Suspense>\n </ErrorBoundary>\n );\n};\n\nexport default VisualEditorRoot;\n"],"names":["_jsx"],"mappings":";;;;;AAOA,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,OAAO,yBAAsB,CAAC,CAAC,CAAC;AASrE,MAAM,gBAAgB,GAAoC,CAAC,EAChE,gBAAgB,EAChB,UAAU,EACV,UAAU,EACV,aAAa,GACd,KAAI;IACH,MAAM,eAAe,GAAG,UAAU,EAAE,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC;AAEhE,IAAA,yBAAyB,CAAC;QACxB,aAAa;QACb,eAAe;AAChB,KAAA,CAAC,CAAC;AAEH,IAAA,QACEA,GAAA,CAAC,aAAa,EAAA,EAAA,QAAA,EACZA,GAAC,CAAA,QAAQ,EAAC,EAAA,QAAQ,EAAEA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,YAAA,EAAA,CAAqB,EACvC,QAAA,EAAAA,GAAA,CAAC,kBAAkB,EAAA,EACjB,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,UAAU,EAAA,CACtB,EACO,CAAA,EAAA,CACG,EAChB;AACJ;;;;"}
@@ -18,7 +18,6 @@ const deserializePatternNode = ({ node, componentInstanceVariables, componentSet
18
18
  componentSettings,
19
19
  componentValueKey,
20
20
  parameters: parameters,
21
- variable: instanceProperty,
22
21
  });
23
22
  const path = resolvePrebindingPath({
24
23
  componentSettings,
@@ -41,7 +40,9 @@ const deserializePatternNode = ({ node, componentInstanceVariables, componentSet
41
40
  };
42
41
  }
43
42
  else if (instanceProperty?.type === 'NoValue') {
44
- variables[variableName] = instanceProperty;
43
+ throw new Error(`Unexpected NoValue for variable "${variableName}" when deserializing pattern "${node.definitionId}". ` +
44
+ `This can only happen if you created experience in pre-release version of prebinding and experience contains NoValue properties. ` +
45
+ `Resave experience to fix this issue.`);
45
46
  }
46
47
  else if (instanceProperty?.type === 'BoundValue') {
47
48
  variables[variableName] = {
@@ -1 +1 @@
1
- {"version":3,"file":"assemblyUtils.js","sources":["../../../../src/core/preview/assemblyUtils.ts"],"sourcesContent":["import { EntityStore, mergeDesignValuesByBreakpoint } from '@contentful/experiences-core';\nimport md5 from 'md5';\nimport type {\n ComponentPropertyValue,\n ComponentTreeNode,\n DesignValue,\n ExperienceComponentSettings,\n Parameter,\n} from '@contentful/experiences-core/types';\nimport { resolvePrebindingPath, shouldUsePrebinding } from '../../utils/prebindingUtils';\nimport { PATTERN_PROPERTY_DIVIDER } from '@contentful/experiences-core/constants';\n\n/** While unfolding the pattern definition on the instance, this function will replace all\n * ComponentValue in the definitions tree with the actual value on the instance. */\nexport const deserializePatternNode = ({\n node,\n componentInstanceVariables,\n componentSettings,\n parameters,\n entityStore,\n}: {\n node: ComponentTreeNode;\n componentInstanceVariables: ComponentTreeNode['variables'];\n componentSettings: ExperienceComponentSettings;\n parameters: Record<string, Parameter>;\n entityStore: EntityStore;\n}): ComponentTreeNode => {\n const variables: Record<string, ComponentPropertyValue> = {};\n\n for (const [variableName, variable] of Object.entries(node.variables)) {\n variables[variableName] = variable;\n if (variable.type === 'ComponentValue') {\n const componentValueKey = variable.key;\n const instanceProperty = componentInstanceVariables[componentValueKey];\n const variableDefinition = componentSettings.variableDefinitions?.[componentValueKey];\n const defaultValue = variableDefinition?.defaultValue;\n\n const usePrebinding = shouldUsePrebinding({\n componentSettings,\n componentValueKey,\n parameters: parameters,\n variable: instanceProperty,\n });\n const path = resolvePrebindingPath({\n componentSettings,\n componentValueKey,\n parameters: parameters,\n entityStore,\n });\n\n if (usePrebinding && path) {\n variables[variableName] = {\n type: 'BoundValue',\n path,\n };\n\n // For assembly, we look up the variable in the assembly instance and\n // replace the ComponentValue with that one.\n } else if (instanceProperty?.type === 'UnboundValue') {\n variables[variableName] = {\n type: 'UnboundValue',\n key: instanceProperty.key,\n };\n } else if (instanceProperty?.type === 'NoValue') {\n variables[variableName] = instanceProperty;\n } else if (instanceProperty?.type === 'BoundValue') {\n variables[variableName] = {\n type: 'BoundValue',\n path: instanceProperty.path,\n };\n } else if (instanceProperty?.type === 'HyperlinkValue') {\n variables[variableName] = {\n type: 'HyperlinkValue',\n linkTargetKey: instanceProperty.linkTargetKey,\n };\n } else if (instanceProperty?.type === 'DesignValue') {\n variables[variableName] = mergeDesignValuesByBreakpoint(\n defaultValue as DesignValue | undefined,\n instanceProperty,\n );\n } else if (!instanceProperty && defaultValue) {\n // So far, we only automatically fallback to the defaultValue for design properties\n if (variableDefinition.group === 'style') {\n variables[variableName] = {\n type: 'DesignValue',\n valuesByBreakpoint: (defaultValue as DesignValue).valuesByBreakpoint,\n };\n }\n }\n }\n }\n\n const children: ComponentTreeNode[] = node.children.map((child) =>\n deserializePatternNode({\n node: child,\n componentInstanceVariables,\n componentSettings,\n parameters,\n entityStore,\n }),\n );\n\n return {\n definitionId: node.definitionId,\n id: node.id,\n variables,\n children,\n slotId: node.slotId,\n displayName: node.displayName,\n parameters: node.parameters,\n };\n};\n\nexport const resolvePattern = ({\n node,\n parentParameters,\n patternRootNodeIdsChain,\n entityStore,\n}: {\n node: ComponentTreeNode;\n entityStore: EntityStore;\n parentParameters: Record<string, Parameter>;\n patternRootNodeIdsChain: string;\n}) => {\n const componentId = node.definitionId as string;\n const assembly = entityStore.usedComponents?.find(\n (component) => component.sys.id === componentId,\n );\n\n if (!assembly || !('fields' in assembly)) {\n return node;\n }\n\n const parameters: Record<string, Parameter> = {};\n\n const allParameters = {\n ...parentParameters,\n ...(node.parameters || {}),\n };\n\n for (const [parameterKey, parameter] of Object.entries(allParameters)) {\n /**\n * Bubbled up pattern properties are a concatenation of the node id\n * and the pattern property definition id. We need to split them so\n * that the node only uses the pattern property definition id.\n */\n const [hashKey, parameterId] = parameterKey.split(PATTERN_PROPERTY_DIVIDER);\n\n const hashedNodeChain = md5(patternRootNodeIdsChain || '');\n\n const isMatchingNode = hashKey === hashedNodeChain;\n\n if (!isMatchingNode) continue;\n\n parameters[parameterId] = parameter;\n }\n\n const componentFields = assembly.fields;\n\n const deserializedNode = deserializePatternNode({\n node: {\n definitionId: node.definitionId,\n id: node.id,\n variables: node.variables,\n children: componentFields.componentTree.children,\n parameters: parameters,\n },\n componentInstanceVariables: node.variables,\n componentSettings: componentFields.componentSettings!,\n parameters: parameters,\n entityStore,\n });\n\n entityStore.addAssemblyUnboundValues(componentFields.unboundValues);\n\n return deserializedNode;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assemblyUtils.js","sources":["../../../../src/core/preview/assemblyUtils.ts"],"sourcesContent":["import { EntityStore, mergeDesignValuesByBreakpoint } from '@contentful/experiences-core';\nimport md5 from 'md5';\nimport type {\n ComponentPropertyValue,\n ComponentTreeNode,\n DesignValue,\n ExperienceComponentSettings,\n Parameter,\n} from '@contentful/experiences-core/types';\nimport { resolvePrebindingPath, shouldUsePrebinding } from '../../utils/prebindingUtils';\nimport { PATTERN_PROPERTY_DIVIDER } from '@contentful/experiences-core/constants';\n\n/** While unfolding the pattern definition on the instance, this function will replace all\n * ComponentValue in the definitions tree with the actual value on the instance. */\nexport const deserializePatternNode = ({\n node,\n componentInstanceVariables,\n componentSettings,\n parameters,\n entityStore,\n}: {\n node: ComponentTreeNode;\n componentInstanceVariables: ComponentTreeNode['variables'];\n componentSettings: ExperienceComponentSettings;\n parameters: Record<string, Parameter>;\n entityStore: EntityStore;\n}): ComponentTreeNode => {\n const variables: Record<string, ComponentPropertyValue> = {};\n\n for (const [variableName, variable] of Object.entries(node.variables)) {\n variables[variableName] = variable;\n if (variable.type === 'ComponentValue') {\n const componentValueKey = variable.key;\n const instanceProperty = componentInstanceVariables[componentValueKey];\n const variableDefinition = componentSettings.variableDefinitions?.[componentValueKey];\n const defaultValue = variableDefinition?.defaultValue;\n\n const usePrebinding = shouldUsePrebinding({\n componentSettings,\n componentValueKey,\n parameters: parameters,\n });\n const path = resolvePrebindingPath({\n componentSettings,\n componentValueKey,\n parameters: parameters,\n entityStore,\n });\n\n if (usePrebinding && path) {\n variables[variableName] = {\n type: 'BoundValue',\n path,\n };\n\n // For assembly, we look up the variable in the assembly instance and\n // replace the ComponentValue with that one.\n } else if (instanceProperty?.type === 'UnboundValue') {\n variables[variableName] = {\n type: 'UnboundValue',\n key: instanceProperty.key,\n };\n } else if (instanceProperty?.type === 'NoValue') {\n throw new Error(\n `Unexpected NoValue for variable \"${variableName}\" when deserializing pattern \"${node.definitionId}\". ` +\n `This can only happen if you created experience in pre-release version of prebinding and experience contains NoValue properties. ` +\n `Resave experience to fix this issue.`,\n );\n } else if (instanceProperty?.type === 'BoundValue') {\n variables[variableName] = {\n type: 'BoundValue',\n path: instanceProperty.path,\n };\n } else if (instanceProperty?.type === 'HyperlinkValue') {\n variables[variableName] = {\n type: 'HyperlinkValue',\n linkTargetKey: instanceProperty.linkTargetKey,\n };\n } else if (instanceProperty?.type === 'DesignValue') {\n variables[variableName] = mergeDesignValuesByBreakpoint(\n defaultValue as DesignValue | undefined,\n instanceProperty,\n );\n } else if (!instanceProperty && defaultValue) {\n // So far, we only automatically fallback to the defaultValue for design properties\n if (variableDefinition.group === 'style') {\n variables[variableName] = {\n type: 'DesignValue',\n valuesByBreakpoint: (defaultValue as DesignValue).valuesByBreakpoint,\n };\n }\n }\n }\n }\n\n const children: ComponentTreeNode[] = node.children.map((child) =>\n deserializePatternNode({\n node: child,\n componentInstanceVariables,\n componentSettings,\n parameters,\n entityStore,\n }),\n );\n\n return {\n definitionId: node.definitionId,\n id: node.id,\n variables,\n children,\n slotId: node.slotId,\n displayName: node.displayName,\n parameters: node.parameters,\n };\n};\n\nexport const resolvePattern = ({\n node,\n parentParameters,\n patternRootNodeIdsChain,\n entityStore,\n}: {\n node: ComponentTreeNode;\n entityStore: EntityStore;\n parentParameters: Record<string, Parameter>;\n patternRootNodeIdsChain: string;\n}) => {\n const componentId = node.definitionId as string;\n const assembly = entityStore.usedComponents?.find(\n (component) => component.sys.id === componentId,\n );\n\n if (!assembly || !('fields' in assembly)) {\n return node;\n }\n\n const parameters: Record<string, Parameter> = {};\n\n const allParameters = {\n ...parentParameters,\n ...(node.parameters || {}),\n };\n\n for (const [parameterKey, parameter] of Object.entries(allParameters)) {\n /**\n * Bubbled up pattern properties are a concatenation of the node id\n * and the pattern property definition id. We need to split them so\n * that the node only uses the pattern property definition id.\n */\n const [hashKey, parameterId] = parameterKey.split(PATTERN_PROPERTY_DIVIDER);\n\n const hashedNodeChain = md5(patternRootNodeIdsChain || '');\n\n const isMatchingNode = hashKey === hashedNodeChain;\n\n if (!isMatchingNode) continue;\n\n parameters[parameterId] = parameter;\n }\n\n const componentFields = assembly.fields;\n\n const deserializedNode = deserializePatternNode({\n node: {\n definitionId: node.definitionId,\n id: node.id,\n variables: node.variables,\n children: componentFields.componentTree.children,\n parameters: parameters,\n },\n componentInstanceVariables: node.variables,\n componentSettings: componentFields.componentSettings!,\n parameters: parameters,\n entityStore,\n });\n\n entityStore.addAssemblyUnboundValues(componentFields.unboundValues);\n\n return deserializedNode;\n};\n"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -9,7 +9,7 @@ import * as _contentful_experiences_core_constants from '@contentful/experiences
9
9
  export { CF_STYLE_ATTRIBUTES, CONTENTFUL_COMPONENTS, LATEST_SCHEMA_VERSION } from '@contentful/experiences-core/constants';
10
10
  import { ContentfulClientApi } from 'contentful';
11
11
 
12
- declare const SDK_VERSION = "3.1.0";
12
+ declare const SDK_VERSION = "3.1.1-dev-20250811T1043-028392b.0";
13
13
 
14
14
  type ExperienceRootProps = {
15
15
  experience?: Experience<EntityStore> | string | null;
@@ -1,4 +1,4 @@
1
- const SDK_VERSION = '3.1.0';
1
+ const SDK_VERSION = '3.1.1-dev-20250811T1043-028392b.0';
2
2
 
3
3
  export { SDK_VERSION };
4
4
  //# sourceMappingURL=sdkVersion.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sdkVersion.js","sources":["../../src/sdkVersion.ts"],"sourcesContent":["export const SDK_VERSION = '3.1.0';\n"],"names":[],"mappings":"AAAO,MAAM,WAAW,GAAG;;;;"}
1
+ {"version":3,"file":"sdkVersion.js","sources":["../../src/sdkVersion.ts"],"sourcesContent":["export const SDK_VERSION = '3.1.1-dev-20250811T1043-028392b.0';\n"],"names":[],"mappings":"AAAO,MAAM,WAAW,GAAG;;;;"}
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import { type EntityStore, VisualEditorMode } from '@contentful/experiences-core';
3
3
  import type { Experience } from '@contentful/experiences-core/types';
4
+ import type { StudioCanvasMode } from '@contentful/experiences-core/constants';
4
5
  type VisualEditorLoaderProps = {
5
6
  visualEditorMode: VisualEditorMode;
7
+ canvasMode?: StudioCanvasMode;
6
8
  experience?: Experience<EntityStore>;
7
9
  };
8
10
  export declare const VisualEditorLoader: React.FC<VisualEditorLoaderProps>;
@@ -1,8 +1,10 @@
1
1
  import React from 'react';
2
2
  import { EntityStore, VisualEditorMode } from '@contentful/experiences-core';
3
3
  import type { Experience } from '@contentful/experiences-core/types';
4
+ import type { StudioCanvasMode } from '@contentful/experiences-core/constants';
4
5
  type VisualEditorRootProps = {
5
6
  visualEditorMode: VisualEditorMode;
7
+ canvasMode?: StudioCanvasMode;
6
8
  experience?: Experience<EntityStore>;
7
9
  initialLocale: string;
8
10
  };
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "3.1.0";
1
+ export declare const SDK_VERSION = "3.1.1-dev-20250811T1043-028392b.0";
@@ -1,10 +1,9 @@
1
1
  import { type EntityStore } from '@contentful/experiences-core';
2
- import { ComponentPropertyValue, ExperienceComponentSettings, Parameter } from '@contentful/experiences-validators';
3
- export declare const shouldUsePrebinding: ({ componentValueKey, componentSettings, parameters, variable, }: {
2
+ import { ExperienceComponentSettings, Parameter } from '@contentful/experiences-validators';
3
+ export declare const shouldUsePrebinding: ({ componentValueKey, componentSettings, parameters, }: {
4
4
  componentValueKey: string;
5
5
  componentSettings: ExperienceComponentSettings;
6
6
  parameters: Record<string, Parameter>;
7
- variable: ComponentPropertyValue;
8
7
  }) => boolean;
9
8
  export declare const resolvePrebindingPath: ({ componentValueKey, componentSettings, parameters, entityStore, }: {
10
9
  componentValueKey: string;
@@ -1,14 +1,19 @@
1
1
  import { isLink } from '@contentful/experiences-core';
2
2
  import { SIDELOADED_PREFIX } from '@contentful/experiences-core/constants';
3
3
 
4
- const shouldUsePrebinding = ({ componentValueKey, componentSettings, parameters, variable, }) => {
4
+ const shouldUsePrebinding = ({ componentValueKey, componentSettings, parameters, }) => {
5
5
  const { prebindingDefinitions } = componentSettings;
6
- const { parameterDefinitions, variableMappings } = prebindingDefinitions?.[0] || {};
6
+ const { parameterDefinitions, variableMappings, allowedVariableOverrides } = prebindingDefinitions?.[0] || {};
7
7
  const variableMapping = variableMappings?.[componentValueKey];
8
8
  const parameterDefinition = parameterDefinitions?.[variableMapping?.parameterId || ''];
9
9
  const parameter = parameters?.[variableMapping?.parameterId || ''];
10
- const isValidForPrebinding = !!parameterDefinition && !!parameter && !!variableMapping;
11
- return isValidForPrebinding && variable?.type === 'NoValue';
10
+ const isValidForPrebinding = !!parameterDefinition &&
11
+ !!parameter &&
12
+ !!variableMapping &&
13
+ !!allowedVariableOverrides &&
14
+ Array.isArray(allowedVariableOverrides);
15
+ const isForDirectBindingOnly = (allowedVariableOverrides) => allowedVariableOverrides.includes(componentValueKey); // removed 'NoValue' check
16
+ return isValidForPrebinding && !isForDirectBindingOnly(allowedVariableOverrides);
12
17
  };
13
18
  const resolvePrebindingPath = ({ componentValueKey, componentSettings, parameters, entityStore, }) => {
14
19
  const prebindingDefinition = componentSettings.prebindingDefinitions?.[0];
@@ -1 +1 @@
1
- {"version":3,"file":"prebindingUtils.js","sources":["../../../src/utils/prebindingUtils.ts"],"sourcesContent":["import { type EntityStore, isLink } from '@contentful/experiences-core';\nimport { SIDELOADED_PREFIX } from '@contentful/experiences-core/constants';\nimport {\n ComponentPropertyValue,\n ExperienceComponentSettings,\n Parameter,\n} from '@contentful/experiences-validators';\n\nexport const shouldUsePrebinding = ({\n componentValueKey,\n componentSettings,\n parameters,\n variable,\n}: {\n componentValueKey: string;\n componentSettings: ExperienceComponentSettings;\n parameters: Record<string, Parameter>;\n variable: ComponentPropertyValue;\n}) => {\n const { prebindingDefinitions } = componentSettings;\n const { parameterDefinitions, variableMappings } = prebindingDefinitions?.[0] || {};\n\n const variableMapping = variableMappings?.[componentValueKey];\n\n const parameterDefinition = parameterDefinitions?.[variableMapping?.parameterId || ''];\n const parameter = parameters?.[variableMapping?.parameterId || ''];\n\n const isValidForPrebinding = !!parameterDefinition && !!parameter && !!variableMapping;\n\n return isValidForPrebinding && variable?.type === 'NoValue';\n};\n\nexport const resolvePrebindingPath = ({\n componentValueKey,\n componentSettings,\n parameters,\n entityStore,\n}: {\n componentValueKey: string;\n componentSettings: ExperienceComponentSettings;\n parameters: Record<string, Parameter>;\n entityStore: EntityStore;\n}) => {\n const prebindingDefinition = componentSettings.prebindingDefinitions?.[0];\n if (!prebindingDefinition) return '';\n\n const variableMapping = prebindingDefinition.variableMappings?.[componentValueKey];\n\n if (!variableMapping) return '';\n\n const parameter = parameters?.[variableMapping.parameterId];\n\n if (!parameter) return '';\n\n const dataSourceKey = parameter.path.split('/')[1];\n\n const entityLink = entityStore.dataSource[dataSourceKey];\n if (!entityLink) return '';\n\n const entity = entityStore.getEntityFromLink(entityLink);\n if (!entity || entity.sys.type === 'Asset') return '';\n\n const contentType = entity.sys.contentType.sys.id;\n\n const fieldPath = variableMapping?.pathsByContentType?.[contentType]?.path;\n\n if (!fieldPath) return '';\n\n return parameter.path + fieldPath;\n};\n\nexport const resolveMaybePrebindingDefaultValuePath = ({\n componentValueKey,\n entityStore,\n}: {\n componentValueKey: string;\n entityStore: EntityStore;\n}): string | undefined => {\n const variableMapping = entityStore.hoistedVariableMappings[componentValueKey];\n if (!variableMapping) return;\n\n const pdID = variableMapping.parameterId;\n const prebindingDefinition = entityStore.hoistedParameterDefinitions[pdID];\n\n if (!prebindingDefinition) {\n // probably shouldn't happen, as if ppd is not defined, then variableMapping should not be defined either\n return;\n }\n if (!prebindingDefinition.defaultSource) {\n // pretty normal, prebinding definitions are not required to have default source\n return;\n }\n\n const { contentTypeId, link: defaultEntryLink } = prebindingDefinition.defaultSource;\n\n if (!isLink(defaultEntryLink)) {\n // just extra safety check, defaultEntryLink should always be a link\n return;\n }\n\n if (contentTypeId in prebindingDefinition.contentTypes) {\n const entity = entityStore.getEntityFromLink(defaultEntryLink);\n if (!entity) {\n // looks like sideloading of the prebinding default value didn't work as expected.\n // And didn't sideload the entry into entityStore (and didn't add it's sideloaded_dsKey to the entityStore.dataSource)\n return;\n }\n\n const fieldPath = variableMapping.pathsByContentType[contentTypeId].path;\n if (!fieldPath) {\n // Path not found or degenerate shape (e.g. empty string '')\n return;\n }\n\n const fullDefaultValuePath = `/${SIDELOADED_PREFIX}${defaultEntryLink.sys.id}${fieldPath}`;\n return fullDefaultValuePath;\n }\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prebindingUtils.js","sources":["../../../src/utils/prebindingUtils.ts"],"sourcesContent":["import { type EntityStore, isLink } from '@contentful/experiences-core';\nimport { SIDELOADED_PREFIX } from '@contentful/experiences-core/constants';\nimport { ExperienceComponentSettings, Parameter } from '@contentful/experiences-validators';\n\nexport const shouldUsePrebinding = ({\n componentValueKey,\n componentSettings,\n parameters,\n}: {\n componentValueKey: string;\n componentSettings: ExperienceComponentSettings;\n parameters: Record<string, Parameter>;\n}) => {\n const { prebindingDefinitions } = componentSettings;\n const { parameterDefinitions, variableMappings, allowedVariableOverrides } =\n prebindingDefinitions?.[0] || {};\n\n const variableMapping = variableMappings?.[componentValueKey];\n\n const parameterDefinition = parameterDefinitions?.[variableMapping?.parameterId || ''];\n const parameter = parameters?.[variableMapping?.parameterId || ''];\n\n const isValidForPrebinding =\n !!parameterDefinition &&\n !!parameter &&\n !!variableMapping &&\n !!allowedVariableOverrides &&\n Array.isArray(allowedVariableOverrides);\n\n const isForDirectBindingOnly = (allowedVariableOverrides: string[]) =>\n allowedVariableOverrides.includes(componentValueKey); // removed 'NoValue' check\n\n return isValidForPrebinding && !isForDirectBindingOnly(allowedVariableOverrides);\n};\n\nexport const resolvePrebindingPath = ({\n componentValueKey,\n componentSettings,\n parameters,\n entityStore,\n}: {\n componentValueKey: string;\n componentSettings: ExperienceComponentSettings;\n parameters: Record<string, Parameter>;\n entityStore: EntityStore;\n}) => {\n const prebindingDefinition = componentSettings.prebindingDefinitions?.[0];\n if (!prebindingDefinition) return '';\n\n const variableMapping = prebindingDefinition.variableMappings?.[componentValueKey];\n\n if (!variableMapping) return '';\n\n const parameter = parameters?.[variableMapping.parameterId];\n\n if (!parameter) return '';\n\n const dataSourceKey = parameter.path.split('/')[1];\n\n const entityLink = entityStore.dataSource[dataSourceKey];\n if (!entityLink) return '';\n\n const entity = entityStore.getEntityFromLink(entityLink);\n if (!entity || entity.sys.type === 'Asset') return '';\n\n const contentType = entity.sys.contentType.sys.id;\n\n const fieldPath = variableMapping?.pathsByContentType?.[contentType]?.path;\n\n if (!fieldPath) return '';\n\n return parameter.path + fieldPath;\n};\n\nexport const resolveMaybePrebindingDefaultValuePath = ({\n componentValueKey,\n entityStore,\n}: {\n componentValueKey: string;\n entityStore: EntityStore;\n}): string | undefined => {\n const variableMapping = entityStore.hoistedVariableMappings[componentValueKey];\n if (!variableMapping) return;\n\n const pdID = variableMapping.parameterId;\n const prebindingDefinition = entityStore.hoistedParameterDefinitions[pdID];\n\n if (!prebindingDefinition) {\n // probably shouldn't happen, as if ppd is not defined, then variableMapping should not be defined either\n return;\n }\n if (!prebindingDefinition.defaultSource) {\n // pretty normal, prebinding definitions are not required to have default source\n return;\n }\n\n const { contentTypeId, link: defaultEntryLink } = prebindingDefinition.defaultSource;\n\n if (!isLink(defaultEntryLink)) {\n // just extra safety check, defaultEntryLink should always be a link\n return;\n }\n\n if (contentTypeId in prebindingDefinition.contentTypes) {\n const entity = entityStore.getEntityFromLink(defaultEntryLink);\n if (!entity) {\n // looks like sideloading of the prebinding default value didn't work as expected.\n // And didn't sideload the entry into entityStore (and didn't add it's sideloaded_dsKey to the entityStore.dataSource)\n return;\n }\n\n const fieldPath = variableMapping.pathsByContentType[contentTypeId].path;\n if (!fieldPath) {\n // Path not found or degenerate shape (e.g. empty string '')\n return;\n }\n\n const fullDefaultValuePath = `/${SIDELOADED_PREFIX}${defaultEntryLink.sys.id}${fieldPath}`;\n return fullDefaultValuePath;\n }\n};\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@contentful/experiences-sdk-react",
3
- "version": "3.1.0",
3
+ "version": "3.1.1-dev-20250811T1043-028392b.0",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.js",
6
6
  "typings": "./dist/src/index.d.ts",
@@ -41,10 +41,10 @@
41
41
  "depcruise": "depcruise src"
42
42
  },
43
43
  "dependencies": {
44
- "@contentful/experiences-components-react": "3.1.0",
45
- "@contentful/experiences-core": "3.1.0",
46
- "@contentful/experiences-validators": "3.1.0",
47
- "@contentful/experiences-visual-editor-react": "3.1.0",
44
+ "@contentful/experiences-components-react": "3.1.1-dev-20250811T1043-028392b.0",
45
+ "@contentful/experiences-core": "3.1.1-dev-20250811T1043-028392b.0",
46
+ "@contentful/experiences-validators": "3.1.1-dev-20250811T1043-028392b.0",
47
+ "@contentful/experiences-visual-editor-react": "3.1.1-dev-20250811T1043-028392b.0",
48
48
  "@contentful/rich-text-types": "^17.0.0",
49
49
  "classnames": "^2.3.2",
50
50
  "csstype": "^3.1.2",
@@ -99,5 +99,5 @@
99
99
  "dist",
100
100
  "package.json"
101
101
  ],
102
- "gitHead": "6684943ec3415bb224ea4913e3b17ac900c01138"
102
+ "gitHead": "917b20c47e77790fe725d17ee11df9519577ee7e"
103
103
  }