@remkoj/optimizely-cms-react 4.3.0 → 5.0.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.
Files changed (56) hide show
  1. package/dist/components/cms-content/get-content.js +23 -21
  2. package/dist/components/cms-content/get-content.js.map +1 -1
  3. package/dist/components/cms-content/resolve-component.d.ts +4 -4
  4. package/dist/components/cms-content/resolve-component.js +14 -14
  5. package/dist/components/cms-content/resolve-component.js.map +1 -1
  6. package/dist/components/cms-content/rsc.d.ts +2 -2
  7. package/dist/components/cms-content/rsc.js +14 -7
  8. package/dist/components/cms-content/rsc.js.map +1 -1
  9. package/dist/components/cms-content/types.d.ts +11 -4
  10. package/dist/components/cms-content-area/index.d.ts +3 -10
  11. package/dist/components/cms-content-area/index.js +35 -51
  12. package/dist/components/cms-content-area/index.js.map +1 -1
  13. package/dist/components/cms-content-area/types.d.ts +49 -57
  14. package/dist/components/cms-editable/index.d.ts +48 -13
  15. package/dist/components/cms-editable/index.js +41 -5
  16. package/dist/components/cms-editable/index.js.map +1 -1
  17. package/dist/components/rich-text/components.d.ts +8 -7
  18. package/dist/components/rich-text/components.js +27 -22
  19. package/dist/components/rich-text/components.js.map +1 -1
  20. package/dist/components/rich-text/index.d.ts +4 -4
  21. package/dist/components/rich-text/index.js +19 -20
  22. package/dist/components/rich-text/index.js.map +1 -1
  23. package/dist/components/rich-text/types.d.ts +7 -15
  24. package/dist/components/rsc.d.ts +12 -12
  25. package/dist/components/rsc.js +17 -16
  26. package/dist/components/rsc.js.map +1 -1
  27. package/dist/components/type-utils.d.ts +13 -0
  28. package/dist/components/visual-builder/functions.js +1 -1
  29. package/dist/components/visual-builder/functions.js.map +1 -1
  30. package/dist/components/visual-builder/index.d.ts +1 -1
  31. package/dist/components/visual-builder/index.js +11 -9
  32. package/dist/components/visual-builder/index.js.map +1 -1
  33. package/dist/components/visual-builder/types.d.ts +3 -3
  34. package/dist/components/visual-builder/types.js.map +1 -1
  35. package/dist/components.d.ts +1 -1
  36. package/dist/context/client.d.ts +16 -4
  37. package/dist/context/client.js +38 -12
  38. package/dist/context/client.js.map +1 -1
  39. package/dist/context/rsc.d.ts +26 -9
  40. package/dist/context/rsc.js +84 -18
  41. package/dist/context/rsc.js.map +1 -1
  42. package/dist/context/shared.d.ts +3 -0
  43. package/dist/context/shared.js +7 -0
  44. package/dist/context/shared.js.map +1 -0
  45. package/dist/context/types.d.ts +24 -2
  46. package/dist/factory/default.js +16 -16
  47. package/dist/factory/default.js.map +1 -1
  48. package/dist/index.d.ts +4 -5
  49. package/dist/index.js +6 -2
  50. package/dist/index.js.map +1 -1
  51. package/dist/rsc.d.ts +2 -4
  52. package/dist/rsc.js +3 -1
  53. package/dist/rsc.js.map +1 -1
  54. package/dist/types.d.ts +5 -0
  55. package/dist/version.json +3 -0
  56. package/package.json +7 -7
@@ -1,15 +1,15 @@
1
- import "server-only";
1
+ import 'server-only';
2
2
  import { type ReactNode, type ComponentType } from 'react';
3
- import { type PropsWithContext } from '../context/types.js';
3
+ import { type PropsWithContext, type PropsWithOptionalContext } from '../context/types.js';
4
4
  import { type CmsContentAreaComponent } from './cms-content-area/index.js';
5
5
  import { type CmsEditableComponent } from './cms-editable/index.js';
6
6
  import { type CmsContentComponent } from './cms-content/rsc.js';
7
7
  import { type OptimizelyCompositionComponent } from './visual-builder/index.js';
8
8
  import { type RichTextComponent } from './rich-text/index.js';
9
- export type { BaseStyleDefinition, ElementStyleDefinition, LayoutProps, LayoutPropsSetting, LayoutPropsSettingChoices, LayoutPropsSettingKeys, LayoutPropsSettingValues, NodeStyleDefinition, StyleDefinition, StyleSetting } from "./cms-styles/index.js";
10
- export { extractSettings, readSetting } from "./cms-styles/index.js";
11
- export * from "./cms-styles/index.js";
12
- export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElementNode } from "./visual-builder/functions.js";
9
+ export type { BaseStyleDefinition, ElementStyleDefinition, LayoutProps, LayoutPropsSetting, LayoutPropsSettingChoices, LayoutPropsSettingKeys, LayoutPropsSettingValues, NodeStyleDefinition, StyleDefinition, StyleSetting, } from './cms-styles/index.js';
10
+ export { extractSettings, readSetting } from './cms-styles/index.js';
11
+ export * from './cms-styles/index.js';
12
+ export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElementNode, } from './visual-builder/functions.js';
13
13
  /**
14
14
  * Fallback while RSC hasn't been moved from Canary to Main
15
15
  */
@@ -21,7 +21,7 @@ type ReactServerComponentType<P = any> = ComponentType<P> | ((props: P) => Promi
21
21
  * @param component The component where the `ctx` parameter must be fulfilled
22
22
  * @returns The component, without CTX parameter
23
23
  */
24
- export declare function serverContextAware<P = any>(component: ReactServerComponentType<PropsWithContext<P>>): ComponentType<P>;
24
+ export declare function serverContextAware<P extends PropsWithContext>(component: ReactServerComponentType<P>): ComponentType<PropsWithOptionalContext<Omit<P, 'ctx'>>>;
25
25
  /**
26
26
  * Client side Optimizely CMS Editable
27
27
  */
@@ -31,13 +31,13 @@ export declare const CmsEditable: CmsEditableComponent;
31
31
  * content type and content data when needed
32
32
  */
33
33
  export declare const CmsContent: CmsContentComponent;
34
- export type { CmsContentComponent, CmsContentProps } from "./cms-content/rsc.js";
34
+ export type { CmsContentComponent, CmsContentProps } from './cms-content/rsc.js';
35
35
  /**
36
36
  * Client side Optimizely CMS Content Area, leveraging the CMS Context to infer
37
37
  * the connection to Optimizely Graph and component dictionary.
38
38
  */
39
39
  export declare const CmsContentArea: CmsContentAreaComponent;
40
- export type { CmsContentAreaClassMapper, CmsContentAreaComponent, CmsContentAreaProps, ContentAreaItemDefinition } from "./cms-content-area/index.js";
40
+ export type { CmsContentAreaClassMapper, CmsContentAreaComponent, CmsContentAreaProps, ContentAreaItemDefinition, } from './cms-content-area/index.js';
41
41
  /**
42
42
  * Client side Optimizely Composition (e.g. Visual Builder), leveraging the CMS
43
43
  * Context to infer the connection to Optimizely Graph and component
@@ -48,6 +48,6 @@ export declare const OptimizelyComposition: OptimizelyCompositionComponent;
48
48
  * Client side renderer for Rich Text
49
49
  */
50
50
  export declare const RichText: RichTextComponent;
51
- export type { RichTextComponent, RichTextProps, RichTextNode, StringNode, TypedNode, NodeInput } from "./rich-text/index.js";
52
- export { DefaultComponents as RichTextComponentDictionary, createHtmlComponent } from './rich-text/components.js';
53
- export { isNodeInput, isNonEmptyString, isRichTextNode, isStringNode, isText, isTypedNode } from "./rich-text/utils.js";
51
+ export type { RichTextComponent, RichTextProps, RichTextNode, StringNode, TypedNode, NodeInput, } from './rich-text/index.js';
52
+ export { DefaultComponents as RichTextComponentDictionary, createHtmlComponent, } from './rich-text/components.js';
53
+ export { isNodeInput, isNonEmptyString, isRichTextNode, isStringNode, isText, isTypedNode, } from './rich-text/utils.js';
@@ -1,16 +1,16 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import "server-only";
2
+ import 'server-only';
3
3
  import { getServerContext } from '../context/rsc.js';
4
4
  import { cmsContentAware } from './cms-content/utils.js';
5
- import { CmsContentArea as BaseContentArea } from './cms-content-area/index.js'; // Both RSC & Client capable
6
- import { CmsEditable as BaseEditable } from './cms-editable/index.js'; // Both RSC & Client capable
7
- import { CmsContent as BaseCmsContent } from './cms-content/rsc.js'; // Different components for RSC & Client
8
- import { OptimizelyComposition as BaseOptimizelyComposition } from './visual-builder/index.js'; // Both RSC & Client capable
9
- import { RichText as BaseRichText } from './rich-text/index.js';
10
- export { extractSettings, readSetting } from "./cms-styles/index.js";
11
- export * from "./cms-styles/index.js";
5
+ import { CmsContentArea as BaseContentArea, } from './cms-content-area/index.js'; // Both RSC & Client capable
6
+ import { CmsEditable as BaseEditable, } from './cms-editable/index.js'; // Both RSC & Client capable
7
+ import { CmsContent as BaseCmsContent, } from './cms-content/rsc.js'; // Different components for RSC & Client
8
+ import { OptimizelyComposition as BaseOptimizelyComposition, } from './visual-builder/index.js'; // Both RSC & Client capable
9
+ import { RichText as BaseRichText, } from './rich-text/index.js';
10
+ export { extractSettings, readSetting } from './cms-styles/index.js';
11
+ export * from './cms-styles/index.js';
12
12
  // Visual Builder items
13
- export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElementNode } from "./visual-builder/functions.js";
13
+ export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElementNode, } from './visual-builder/functions.js';
14
14
  /**
15
15
  * Wrapper function to turn context dependant components into easy to use
16
16
  * server components
@@ -20,13 +20,14 @@ export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElem
20
20
  */
21
21
  export function serverContextAware(component) {
22
22
  const BaseComponent = component;
23
- const ServerContextInjector = (props) => {
24
- const ctx = getServerContext();
23
+ const ServerContextInjector = ({ ctx, ...props }) => {
25
24
  if (!ctx)
26
- console.log(`🔴 [ServerContextAware] Context for context aware component ${BaseComponent.displayName ?? BaseComponent.name ?? '[ANONYMOUS]'} is not defined!`, ctx);
27
- return _jsx(BaseComponent, { ctx: ctx, ...props });
25
+ console.error(`🔴 [ServerContextAware] Context for context aware component ${BaseComponent.displayName ?? BaseComponent.name ?? '[ANONYMOUS]'} is not defined!`);
26
+ const cmpCtx = ctx || getServerContext();
27
+ const componentProps = { ...props, ctx: cmpCtx };
28
+ return _jsx(BaseComponent, { ...componentProps });
28
29
  };
29
- ServerContextInjector.displayName = "Server Context Injector";
30
+ ServerContextInjector.displayName = 'Server Context Injector';
30
31
  return ServerContextInjector;
31
32
  }
32
33
  /**
@@ -53,6 +54,6 @@ export const OptimizelyComposition = cmsContentAware(serverContextAware(BaseOpti
53
54
  * Client side renderer for Rich Text
54
55
  */
55
56
  export const RichText = serverContextAware(BaseRichText);
56
- export { DefaultComponents as RichTextComponentDictionary, createHtmlComponent } from './rich-text/components.js';
57
- export { isNodeInput, isNonEmptyString, isRichTextNode, isStringNode, isText, isTypedNode } from "./rich-text/utils.js";
57
+ export { DefaultComponents as RichTextComponentDictionary, createHtmlComponent, } from './rich-text/components.js';
58
+ export { isNodeInput, isNonEmptyString, isRichTextNode, isStringNode, isText, isTypedNode, } from './rich-text/utils.js';
58
59
  //# sourceMappingURL=rsc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../src/components/rsc.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AAGpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EAAE,cAAc,IAAI,eAAe,EAAgC,MAAM,6BAA6B,CAAA,CAAC,4BAA4B;AAC1I,OAAO,EAAE,WAAW,IAAI,YAAY,EAA6B,MAAM,yBAAyB,CAAA,CAAC,4BAA4B;AAC7H,OAAO,EAAE,UAAU,IAAI,cAAc,EAA0D,MAAM,sBAAsB,CAAA,CAAC,wCAAwC;AACpK,OAAO,EAAE,qBAAqB,IAAI,yBAAyB,EAAuC,MAAM,2BAA2B,CAAA,CAAC,4BAA4B;AAChK,OAAO,EAAE,QAAQ,IAAI,YAAY,EAA0B,MAAM,sBAAsB,CAAA;AAIvF,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACpE,cAAc,uBAAuB,CAAA;AAErC,uBAAuB;AACvB,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAA;AAO9H;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAU,SAAwD;IAEhG,MAAM,aAAa,GAAG,SAA+C,CAAA;IACrE,MAAM,qBAAqB,GAAsB,CAAC,KAAQ,EAAE,EAAE;QAC1D,MAAM,GAAG,GAAG,gBAAgB,EAAE,CAAA;QAC9B,IAAI,CAAC,GAAG;YACJ,OAAO,CAAC,GAAG,CAAC,+DAAgE,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,kBAAkB,EAAE,GAAG,CAAC,CAAA;QACxK,OAAO,KAAC,aAAa,IAAC,GAAG,EAAE,GAAG,KAAO,KAAK,GAAK,CAAA;IACnD,CAAC,CAAA;IACD,qBAAqB,CAAC,WAAW,GAAG,yBAAyB,CAAA;IAC7D,OAAO,qBAAqB,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC,YAAY,CAAyB,CAAA;AAGnF;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAAC,cAAoD,CAAwB,CAAA;AAGzH;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE,UAAU,CAA4B,CAAA;AAGzH;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC,kBAAkB,CAAC,yBAAyB,CAAC,EAAE,UAAU,CAAmC,CAAA;AAEjJ;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAsB,CAAA;AAE7E,OAAO,EAAE,iBAAiB,IAAI,2BAA2B,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACjH,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,EAAG,MAAM,sBAAsB,CAAA"}
1
+ {"version":3,"file":"rsc.js","sourceRoot":"","sources":["../../src/components/rsc.tsx"],"names":[],"mappings":";AAAA,OAAO,aAAa,CAAA;AAMpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,OAAO,EACL,cAAc,IAAI,eAAe,GAElC,MAAM,6BAA6B,CAAA,CAAC,4BAA4B;AACjE,OAAO,EACL,WAAW,IAAI,YAAY,GAE5B,MAAM,yBAAyB,CAAA,CAAC,4BAA4B;AAC7D,OAAO,EACL,UAAU,IAAI,cAAc,GAG7B,MAAM,sBAAsB,CAAA,CAAC,wCAAwC;AACtE,OAAO,EACL,qBAAqB,IAAI,yBAAyB,GAEnD,MAAM,2BAA2B,CAAA,CAAC,4BAA4B;AAC/D,OAAO,EACL,QAAQ,IAAI,YAAY,GAEzB,MAAM,sBAAsB,CAAA;AAe7B,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACpE,cAAc,uBAAuB,CAAA;AAErC,uBAAuB;AACvB,OAAO,EACL,MAAM,EACN,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,+BAA+B,CAAA;AAStC;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAsC;IAEtC,MAAM,aAAa,GAAG,SAA6B,CAAA;IAEnD,MAAM,qBAAqB,GAEvB,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;QACxB,IAAI,CAAC,GAAG;YACN,OAAO,CAAC,KAAK,CACX,+DAA+D,aAAa,CAAC,WAAW,IAAI,aAAa,CAAC,IAAI,IAAI,aAAa,kBAAkB,CAClJ,CAAA;QACH,MAAM,MAAM,GAAG,GAAG,IAAI,gBAAgB,EAAE,CAAA;QACxC,MAAM,cAAc,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,MAAM,EAAO,CAAA;QACrD,OAAO,KAAC,aAAa,OAAK,cAAc,GAAI,CAAA;IAC9C,CAAC,CAAA;IACD,qBAAqB,CAAC,WAAW,GAAG,yBAAyB,CAAA;IAC7D,OAAO,qBAAqB,CAAA;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAC3C,YAAY,CACW,CAAA;AAEzB;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAC1C,cAAoD,CAC9B,CAAA;AAGxB;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAC3C,kBAAkB,CAAC,eAAe,CAAC,EACnC,UAAU,CACgB,CAAA;AAQ5B;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAClD,kBAAkB,CAAC,yBAAyB,CAAC,EAC7C,UAAU,CACuB,CAAA;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,YAAY,CAAsB,CAAA;AAS7E,OAAO,EACL,iBAAiB,IAAI,2BAA2B,EAChD,mBAAmB,GACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,MAAM,EACN,WAAW,GACZ,MAAM,sBAAsB,CAAA"}
@@ -1,3 +1,4 @@
1
+ import { GenericContext } from "../rsc.js";
1
2
  /**
2
3
  * Tests if K is a property of T - if so: it is the type of
3
4
  * T[K]; if not: it is equal to never
@@ -22,9 +23,21 @@ export type ElementProps<T extends ElementType> = T extends keyof JSX.IntrinsicE
22
23
  export type ElementChildrenProps<T extends ElementType> = keyof {
23
24
  [P in keyof ElementProps<T> as React.ReactElement[] extends ElementProps<T>[P] ? P : never]: ElementProps<T>[P];
24
25
  };
26
+ export type GenericContextProps<T extends ElementType> = keyof {
27
+ [P in keyof ElementProps<T> as GenericContext extends ElementProps<T>[P] ? P : never]: ElementProps<T>[P];
28
+ };
25
29
  /**
26
30
  * Define an element as a React Component, React ExoticComponent or string name
27
31
  * representing a HTML Element (e.g. "div", "a", etc...), this value can be used
28
32
  * as first argument of React.createElement()
29
33
  */
30
34
  export type ElementType = (React.ComponentType<any>) | (React.ExoticComponent<any>) | (keyof JSX.IntrinsicElements);
35
+ /**
36
+ * Reserved Element properties that may not be passed to CmsContentArea wrappers, as these are auto-injected
37
+ */
38
+ export type ReservedKeys = "data-epi-edit" | "data-epi-property-name" | "data-epi-property-render" | "data-epi-property-edittype" | "data-epi-block-id" | "data-displayoption" | "data-tag" | "data-component";
39
+ export type WithAs<Base, CT extends ElementType> = Base & {
40
+ as?: CT;
41
+ children?: PropTypeIfPropExists<CT, 'children'>;
42
+ key: PropTypeIfPropExists<CT, 'key'>;
43
+ } & Omit<ElementProps<CT>, keyof Base>;
@@ -47,7 +47,7 @@ export const defaultPropsFactory = (node) => {
47
47
  if (!isContentType(contentType))
48
48
  throw new Error("Invalid content type: " + JSON.stringify(contentType));
49
49
  const contentLink = {
50
- key: node.component?._metadata?.key || node.key || undefined,
50
+ key: node.key || node.component?._metadata?.key || undefined,
51
51
  version: node.component?._metadata?.version,
52
52
  locale: node.component?._metadata?.locale
53
53
  };
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/components/visual-builder/functions.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,5 @@ export type * from './types.js';
7
7
  * @param param0
8
8
  * @returns The
9
9
  */
10
- export declare function OptimizelyComposition({ node, leafPropsFactory, nodePropsFactory, ctx, cmsContent: CmsContent }: BaseOptimizelyCompositionProps): ReactNode;
10
+ export declare function OptimizelyComposition({ node, leafPropsFactory, nodePropsFactory, ctx, cmsContent: CmsContent, }: BaseOptimizelyCompositionProps): ReactNode;
11
11
  export default OptimizelyComposition;
@@ -1,35 +1,37 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { isComponentNode, defaultNodePropsFactory, defaultPropsFactory } from './functions.js';
2
+ import { isComponentNode, defaultNodePropsFactory, defaultPropsFactory, } from './functions.js';
3
3
  /**
4
4
  * Render the composition as made available through Optimizely Graph for Visual Builder
5
5
  *
6
6
  * @param param0
7
7
  * @returns The
8
8
  */
9
- export function OptimizelyComposition({ node, leafPropsFactory = defaultPropsFactory, nodePropsFactory = defaultNodePropsFactory, ctx, cmsContent: CmsContent }) {
9
+ export function OptimizelyComposition({ node, leafPropsFactory = defaultPropsFactory, nodePropsFactory = defaultNodePropsFactory, ctx, cmsContent: CmsContent, }) {
10
10
  const { factory, isDebug } = ctx;
11
11
  // Render the element
12
12
  if (isComponentNode(node)) {
13
13
  if (isDebug)
14
14
  console.log(`⚪ [VisualBuilder] Rendering element node ${JSON.stringify(node)}`);
15
15
  const [contentLink, contentType, fragmentData, layoutProps] = leafPropsFactory(node);
16
- return _jsx(CmsContent, { contentLink: contentLink, contentType: contentType, fragmentData: fragmentData, layoutProps: layoutProps });
16
+ return (_jsx(CmsContent, { contentLink: contentLink, contentType: contentType, fragmentData: fragmentData, layoutProps: layoutProps, ctx: ctx }));
17
17
  }
18
18
  // Debug
19
19
  if (isDebug)
20
20
  console.log(`⚪ [VisualBuilder] Rendering structure node ${JSON.stringify(node)}`);
21
21
  // Ensure we've got a factory
22
22
  if (!factory)
23
- throw new Error("🟡 [VisualBuilder] [OptimizelyComposition] The factory must be defined within the serverContext");
23
+ throw new Error('🟡 [VisualBuilder] [OptimizelyComposition] The factory must be defined within the serverContext');
24
24
  const [contentLink, contentTypes, fragmentData, layoutProps] = nodePropsFactory(node);
25
- const firstExistingType = contentTypes.map(ct => factory.has([...ct].reverse())).indexOf(true);
25
+ const firstExistingType = contentTypes
26
+ .map((ct) => factory.has([...ct].reverse()))
27
+ .indexOf(true);
26
28
  const contentType = contentTypes[firstExistingType];
27
29
  if (!contentType)
28
- throw new Error(`🟡 [VisualBuilder] [OptimizelyComposition] The factory must have a definition for one of these types: ${contentTypes.map(x => x.join('/')).join(', ')}`);
29
- return _jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: fragmentData, layoutProps: layoutProps, noDataLoad: true, children: (node.nodes ?? []).map((child) => {
30
+ throw new Error(`🟡 [VisualBuilder] [OptimizelyComposition] The factory must have a definition for one of these types: ${contentTypes.map((x) => x.join('/')).join(', ')}`);
31
+ return (_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: fragmentData, layoutProps: layoutProps, noDataLoad: true, ctx: ctx, children: (node.nodes ?? []).map((child) => {
30
32
  const childKey = child.key ? child.key : `vb::${JSON.stringify(child)}`;
31
- return _jsx(OptimizelyComposition, { node: child, leafPropsFactory: leafPropsFactory, nodePropsFactory: nodePropsFactory, ctx: ctx, cmsContent: CmsContent }, childKey);
32
- }) });
33
+ return (_jsx(OptimizelyComposition, { node: child, leafPropsFactory: leafPropsFactory, nodePropsFactory: nodePropsFactory, ctx: ctx, cmsContent: CmsContent }, childKey));
34
+ }) }));
33
35
  }
34
36
  export default OptimizelyComposition;
35
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/visual-builder/index.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAI9F;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,gBAAgB,GAAG,mBAAmB,EAAE,gBAAgB,GAAG,uBAAuB,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAkC;IAE3L,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IAEhC,qBAAqB;IACrB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,IAAI,OAAO;YACP,OAAO,CAAC,GAAG,CAAC,4CAA6C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;QACrF,MAAM,CAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACtF,OAAO,KAAC,UAAU,IAAC,WAAW,EAAG,WAAW,EAAG,WAAW,EAAG,WAAW,EAAG,YAAY,EAAG,YAAY,EAAG,WAAW,EAAG,WAAW,GAAK,CAAA;IAC3I,CAAC;IAED,QAAQ;IACR,IAAI,OAAO;QACP,OAAO,CAAC,GAAG,CAAC,8CAA+C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAE,EAAE,CAAC,CAAA;IAEvF,6BAA6B;IAC7B,IAAI,CAAC,OAAO;QACR,MAAM,IAAI,KAAK,CAAC,iGAAiG,CAAC,CAAA;IAEtH,MAAM,CAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACvF,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9F,MAAM,WAAW,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAA;IACnD,IAAI,CAAC,WAAW;QACZ,MAAM,IAAI,KAAK,CAAC,yGAA0G,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAE9K,OAAO,KAAC,UAAU,IAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,kBAClI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAQ,IAAI,CAAC,SAAS,CAAE,KAAK,CAAE,EAAE,CAAA;YAC1E,OAAO,KAAC,qBAAqB,IAAkB,IAAI,EAAG,KAAK,EAAG,gBAAgB,EAAG,gBAAgB,EAAG,gBAAgB,EAAG,gBAAgB,EAAG,GAAG,EAAG,GAAG,EAAG,UAAU,EAAG,UAAU,IAAzI,QAAQ,CAAqI,CAAA;QACrL,CAAC,CAAC,GACO,CAAA;AACjB,CAAC;AAED,eAAe,qBAAqB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/visual-builder/index.tsx"],"names":[],"mappings":";AACA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,mBAAmB,GACpB,MAAM,gBAAgB,CAAA;AAIvB;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,IAAI,EACJ,gBAAgB,GAAG,mBAAmB,EACtC,gBAAgB,GAAG,uBAAuB,EAC1C,GAAG,EACH,UAAU,EAAE,UAAU,GACS;IAC/B,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IAEhC,qBAAqB;IACrB,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO;YACT,OAAO,CAAC,GAAG,CACT,4CAA4C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACnE,CAAA;QACH,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,CAAC,GACzD,gBAAgB,CAAC,IAAI,CAAC,CAAA;QACxB,OAAO,CACL,KAAC,UAAU,IACT,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,GAAG,EAAE,GAAG,GACR,CACH,CAAA;IACH,CAAC;IAED,QAAQ;IACR,IAAI,OAAO;QACT,OAAO,CAAC,GAAG,CACT,8CAA8C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CACrE,CAAA;IAEH,6BAA6B;IAC7B,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAA;IAEH,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,CAAC,GAC1D,gBAAgB,CAAC,IAAI,CAAC,CAAA;IACxB,MAAM,iBAAiB,GAAG,YAAY;SACnC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SAC3C,OAAO,CAAC,IAAI,CAAC,CAAA;IAChB,MAAM,WAAW,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAA;IACnD,IAAI,CAAC,WAAW;QACd,MAAM,IAAI,KAAK,CACb,yGAAyG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC3J,CAAA;IAEH,OAAO,CACL,KAAC,UAAU,IACT,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,UAAU,QACV,GAAG,EAAE,GAAG,YAEP,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAA;YACvE,OAAO,CACL,KAAC,qBAAqB,IAEpB,IAAI,EAAE,KAAK,EACX,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,UAAU,IALjB,QAAQ,CAMb,CACH,CAAA;QACH,CAAC,CAAC,GACS,CACd,CAAA;AACH,CAAC;AAED,eAAe,qBAAqB,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import { type ComponentType, type PropsWithChildren } from "react";
2
2
  import { type InlineContentLinkWithLocale, type ContentLinkWithLocale } from "@remkoj/optimizely-graph-client";
3
3
  import { type ContentType } from "../../types.js";
4
- import { type PropsWithContext } from "../../context/types.js";
4
+ import { type PropsWithContext, type PropsWithOptionalContext } from "../../context/types.js";
5
5
  import { type PropsWithCmsContent } from "../cms-content/types.js";
6
6
  export declare enum StructureNodeTypes {
7
7
  Experience = "experience",
@@ -36,7 +36,7 @@ export type CompositionComponentType<NT extends CompositionNode> = ComponentType
36
36
  }>>;
37
37
  export type LeafPropsFactory = <ET extends Record<string, any>, LT = string>(node: CompositionComponentNode<ET>) => [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, ContentType, ET] | [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, ContentType, ET, Record<string, any>];
38
38
  export type NodePropsFactory = <ET extends Record<string, any>, LT = string>(node: CompositionStructureNode) => [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, Array<ContentType>, ET] | [ContentLinkWithLocale<LT> | InlineContentLinkWithLocale<LT>, Array<ContentType>, ET, Record<string, any>];
39
- export type OptimizelyCompositionProps = JSX.IntrinsicAttributes & {
39
+ export type OptimizelyCompositionProps = PropsWithOptionalContext<JSX.IntrinsicAttributes & {
40
40
  /**
41
41
  * The Visual Builder node to start rendering from
42
42
  */
@@ -51,7 +51,7 @@ export type OptimizelyCompositionProps = JSX.IntrinsicAttributes & {
51
51
  * Optimizely Graph into properties for a structure node.
52
52
  */
53
53
  nodePropsFactory?: NodePropsFactory;
54
- };
54
+ }>;
55
55
  export type BaseOptimizelyCompositionProps = PropsWithCmsContent<PropsWithContext<OptimizelyCompositionProps>>;
56
56
  export type OptimizelyCompositionComponent = ComponentType<OptimizelyCompositionProps>;
57
57
  export type OptimizelyCompositionBaseComponent = ComponentType<BaseOptimizelyCompositionProps>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/visual-builder/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC1B,+CAAyB,CAAA;IACzB,yCAAmB,CAAA;IACnB,iCAAW,CAAA;IACX,uCAAiB,CAAA;AACrB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/components/visual-builder/types.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,kBAKX;AALD,WAAY,kBAAkB;IAC5B,+CAAyB,CAAA;IACzB,yCAAmB,CAAA;IACnB,iCAAW,CAAA;IACX,uCAAiB,CAAA;AACnB,CAAC,EALW,kBAAkB,KAAlB,kBAAkB,QAK7B"}
@@ -6,7 +6,7 @@
6
6
  * deprecated, use either `@remkoj/optimizely-cms-react` or
7
7
  * `@remkoj/optimizely-cms-react/rsc`, dependingn on your context
8
8
  */
9
- export declare const RichText: import("react").ComponentType<import("./rsc.js").RichTextProps>;
9
+ export declare const RichText: import("react").ComponentType<import("./rsc.js").PropsWithOptionalContext<Omit<import("./rsc.js").PropsWithContext<import("./rsc.js").RichTextProps>, "ctx">>>;
10
10
  /**
11
11
  * @deprecated The `@remkoj/optimizely-cms-react/components` export has been deprecated
12
12
  */
@@ -1,7 +1,7 @@
1
- import { type FunctionComponent, type PropsWithChildren, type Dispatch, type SetStateAction } from "react";
2
- import { type OptimizelyGraphConfig, type IOptiGraphClient } from "@remkoj/optimizely-graph-client";
3
- import { type GenericContext } from "./types.js";
4
- import { type ComponentTypeDictionary, type ComponentFactory } from "../factory/index.js";
1
+ import { type FunctionComponent, type PropsWithChildren, type Dispatch, type SetStateAction } from 'react';
2
+ import { type OptimizelyGraphConfig, type IOptiGraphClient } from '@remkoj/optimizely-graph-client';
3
+ import { type GenericContext, type TransferrableContext } from './types.js';
4
+ import { type ComponentTypeDictionary, type ComponentFactory } from '../factory/index.js';
5
5
  export declare const enum OptimizelyCmsMode {
6
6
  default = "default",
7
7
  edit = "edit",
@@ -11,6 +11,17 @@ export interface ClientContext extends GenericContext {
11
11
  setLocale: Dispatch<SetStateAction<string | undefined>>;
12
12
  setMode: Dispatch<SetStateAction<OptimizelyCmsMode>>;
13
13
  }
14
+ export declare class ClientContextInstance implements GenericContext {
15
+ readonly client?: IOptiGraphClient | undefined;
16
+ readonly factory: ComponentFactory;
17
+ readonly locale?: string | undefined;
18
+ readonly inEditMode: boolean;
19
+ readonly inPreviewMode: boolean;
20
+ readonly isDevelopment: boolean;
21
+ readonly isDebug: boolean;
22
+ readonly isDebugOrDevelopment: boolean;
23
+ constructor(cfg: TransferrableContext, components: ComponentTypeDictionary);
24
+ }
14
25
  export type OptimizelyCmsProps = {
15
26
  /**
16
27
  * The Optimizely Graph Client to use, provide either an instance of the
@@ -68,3 +79,4 @@ export type OptimizelyCmsProps = {
68
79
  });
69
80
  export declare const OptimizelyCms: FunctionComponent<PropsWithChildren<OptimizelyCmsProps>>;
70
81
  export declare const useOptimizelyCms: () => ClientContext;
82
+ export declare function fromTransferrableContext(serialized: TransferrableContext, components: ComponentTypeDictionary): GenericContext;
@@ -1,15 +1,28 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { createContext, useContext, useState, useMemo } from "react";
4
- import { isOptiGraphClient, isOptiGraphConfig, createClient } from "@remkoj/optimizely-graph-client";
5
- import { getFactory } from "../factory/index.js";
6
- import { UndefinedComponentFactory } from "../factory/undef.js";
3
+ import { createContext, useContext, useState, useMemo, } from 'react';
4
+ import { isOptiGraphClient, isOptiGraphConfig, createClient, } from '@remkoj/optimizely-graph-client';
5
+ import { getFactory, DefaultComponentFactory, } from '../factory/index.js';
6
+ import { UndefinedComponentFactory } from '../factory/undef.js';
7
+ import { isTransferrableContext } from './shared.js';
7
8
  export var OptimizelyCmsMode;
8
9
  (function (OptimizelyCmsMode) {
9
10
  OptimizelyCmsMode["default"] = "default";
10
11
  OptimizelyCmsMode["edit"] = "edit";
11
12
  OptimizelyCmsMode["preview"] = "preview";
12
13
  })(OptimizelyCmsMode || (OptimizelyCmsMode = {}));
14
+ export class ClientContextInstance {
15
+ constructor(cfg, components) {
16
+ if (cfg.clientConfig)
17
+ this.client = createClient(cfg.clientConfig);
18
+ this.factory = new DefaultComponentFactory(components);
19
+ this.inEditMode = cfg.inEditMode;
20
+ this.inPreviewMode = cfg.inPreviewMode;
21
+ this.isDebug = cfg.isDebug;
22
+ this.isDebugOrDevelopment = cfg.isDebugOrDevelopment;
23
+ this.isDevelopment = cfg.isDevelopment;
24
+ }
25
+ }
13
26
  const _clientContext = createContext({
14
27
  factory: new UndefinedComponentFactory(),
15
28
  inEditMode: false,
@@ -17,11 +30,15 @@ const _clientContext = createContext({
17
30
  isDebug: false,
18
31
  isDebugOrDevelopment: false,
19
32
  isDevelopment: false,
20
- setLocale: () => { throw new Error("Not implemented"); },
21
- setMode: () => { throw new Error("Not implemented"); }
33
+ setLocale: () => {
34
+ throw new Error('Not implemented');
35
+ },
36
+ setMode: () => {
37
+ throw new Error('Not implemented');
38
+ },
22
39
  });
23
- _clientContext.displayName = "Optimizely CMS Provider";
24
- export const OptimizelyCms = ({ factory, client, clientToken, children, isDebug, isDevelopment, initialMode = OptimizelyCmsMode.default, initialComponents = [] }) => {
40
+ _clientContext.displayName = 'Optimizely CMS Provider';
41
+ export const OptimizelyCms = ({ factory, client, clientToken, children, isDebug, isDevelopment, initialMode = OptimizelyCmsMode.default, initialComponents = [], }) => {
25
42
  const CtxProvider = _clientContext.Provider;
26
43
  //#region React State
27
44
  const [locale, setLocale] = useState();
@@ -29,15 +46,19 @@ export const OptimizelyCms = ({ factory, client, clientToken, children, isDebug,
29
46
  //#endregion
30
47
  //#region Memoized Optimizely Graph Client
31
48
  const graphClient = useMemo(() => {
32
- const gc = isOptiGraphClient(client) ? client : createClient(isOptiGraphConfig(client) ? client : undefined);
49
+ const gc = isOptiGraphClient(client)
50
+ ? client
51
+ : createClient(isOptiGraphConfig(client) ? client : undefined);
33
52
  if (clientToken)
34
53
  gc.updateAuthentication(clientToken);
35
54
  return gc;
36
55
  }, [client, clientToken]);
37
56
  //#endregion
38
57
  //#region Memoized Debug and Development flags
39
- const isDev = useMemo(() => isDevelopment == undefined ? getNodeEnv() == 'development' : isDevelopment, [isDevelopment]);
40
- const isDbg = useMemo(() => isDebug == undefined ? graphClient.debug : isDebug, [isDebug, graphClient]);
58
+ const isDev = useMemo(() => isDevelopment == undefined
59
+ ? getNodeEnv() == 'development'
60
+ : isDevelopment, [isDevelopment]);
61
+ const isDbg = useMemo(() => (isDebug == undefined ? graphClient.debug : isDebug), [isDebug, graphClient]);
41
62
  //#endregion
42
63
  //#region Memoized Component Factory
43
64
  const ctxFactory = useMemo(() => {
@@ -58,13 +79,18 @@ export const OptimizelyCms = ({ factory, client, clientToken, children, isDebug,
58
79
  inPreviewMode: mode == OptimizelyCmsMode.preview,
59
80
  locale,
60
81
  setLocale,
61
- setMode
82
+ setMode,
62
83
  };
63
84
  return _jsx(CtxProvider, { value: ctxValue, children: children });
64
85
  };
65
86
  export const useOptimizelyCms = () => {
66
87
  return useContext(_clientContext);
67
88
  };
89
+ export function fromTransferrableContext(serialized, components) {
90
+ if (!isTransferrableContext(serialized))
91
+ throw new Error('Unable to restore from serialized data');
92
+ return new ClientContextInstance(serialized, components);
93
+ }
68
94
  function getNodeEnv() {
69
95
  let env;
70
96
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/context/client.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/context/client.tsx"],"names":[],"mappings":"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"}
@@ -1,14 +1,16 @@
1
1
  import 'server-only';
2
2
  import { type IOptiGraphClient, type ContentLink } from '@remkoj/optimizely-graph-client';
3
- import { type GenericContext } from './types.js';
4
- import { type ComponentFactory } from '../factory/index.js';
5
- export * from "./types.js";
6
- type ServerContextArgs = {
7
- factory?: ComponentFactory;
3
+ import { type GenericContext, type RenderMode, type TransferrableContext } from './types.js';
4
+ import { type ComponentFactory, type ComponentTypeDictionary } from '../factory/index.js';
5
+ export * from './types.js';
6
+ export type ServerContextArgs = {
7
+ factory?: ComponentFactory | ComponentTypeDictionary;
8
8
  client?: IOptiGraphClient;
9
9
  locale?: string;
10
+ mode?: RenderMode;
11
+ editableContent?: ContentLink;
10
12
  };
11
- declare class ServerContext implements GenericContext {
13
+ export declare class ServerContext implements GenericContext {
12
14
  private _mode;
13
15
  private _locale;
14
16
  private _client;
@@ -22,13 +24,14 @@ declare class ServerContext implements GenericContext {
22
24
  get isDevelopment(): boolean;
23
25
  get isDebug(): boolean;
24
26
  get isDebugOrDevelopment(): boolean;
25
- get editableContent(): ContentLink | undefined;
26
- constructor({ factory, client, locale }: ServerContextArgs);
27
+ get editableContent(): GenericContext['editableContent'];
28
+ constructor({ factory, client, locale, mode, editableContent, }: ServerContextArgs);
27
29
  setMode(mode: 'edit' | 'preview' | 'public'): ServerContext;
28
30
  setLocale(locale: string): ServerContext;
29
31
  setOptimizelyGraphClient(client: IOptiGraphClient | ((currentClient: IOptiGraphClient | undefined) => IOptiGraphClient | undefined)): void;
30
32
  setComponentFactory(factory: ComponentFactory | ((currentClient: ComponentFactory | undefined) => ComponentFactory)): void;
31
- setEditableContentId(link: ContentLink): void;
33
+ setEditableContentId(link: GenericContext['editableContent']): void;
34
+ toJSON(key?: string): TransferrableContext;
32
35
  }
33
36
  /**
34
37
  * Obtain an instance of the servercontext, this either uses `React.cache`,
@@ -37,5 +40,19 @@ declare class ServerContext implements GenericContext {
37
40
  *
38
41
  * It the cache fallback will notify in development or debug mode when it is in
39
42
  * use.
43
+ *
44
+ * @deprecated Use the context handed down through the CmsContentArea and CmsContent
45
+ * components
40
46
  */
41
47
  export declare const getServerContext: () => ServerContext;
48
+ /**
49
+ * Update the shared server context from the provided context. This is compatibility
50
+ * method to ensure that the value returned by `getServerContext` can be retrieved and
51
+ * updated.
52
+ *
53
+ * @deprecated Use the context handed down through the CmsContentArea and CmsContent
54
+ * components
55
+ * @param currentCtx The current context to apply to the server context
56
+ * @returns The updated shared server context
57
+ */
58
+ export declare function updateSharedServerContext(currentCtx: GenericContext): ServerContext;