@remkoj/optimizely-cms-react 6.0.0-pre9 → 6.0.0-rc.3

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 (53) hide show
  1. package/AGENTS.md +168 -0
  2. package/README.md +3 -4
  3. package/dist/components/client.js.map +1 -1
  4. package/dist/components/cms-content/get-content-type.js +1 -1
  5. package/dist/components/cms-content/get-content-type.js.map +1 -1
  6. package/dist/components/cms-content/get-content.js +1 -1
  7. package/dist/components/cms-content/get-content.js.map +1 -1
  8. package/dist/components/cms-content/resolve-component.js +3 -9
  9. package/dist/components/cms-content/resolve-component.js.map +1 -1
  10. package/dist/components/cms-content/resolve-content-type.js.map +1 -1
  11. package/dist/components/cms-content/types.d.ts +38 -2
  12. package/dist/components/cms-content-area/types.d.ts +51 -10
  13. package/dist/components/cms-editable/index.d.ts +82 -19
  14. package/dist/components/cms-editable/index.js +10 -6
  15. package/dist/components/cms-editable/index.js.map +1 -1
  16. package/dist/components/cms-styles/index.js.map +1 -1
  17. package/dist/components/rich-text/components.d.ts +1 -1
  18. package/dist/components/rich-text/index.d.ts +2 -1
  19. package/dist/components/rich-text/index.js +6 -3
  20. package/dist/components/rich-text/index.js.map +1 -1
  21. package/dist/components/rich-text/utils.js.map +1 -1
  22. package/dist/components/rsc-components.d.ts +154 -5
  23. package/dist/components/rsc-components.js +153 -5
  24. package/dist/components/rsc-components.js.map +1 -1
  25. package/dist/components/visual-builder/functions.js +7 -14
  26. package/dist/components/visual-builder/functions.js.map +1 -1
  27. package/dist/components/visual-builder/index.d.ts +3 -1
  28. package/dist/components/visual-builder/index.js +15 -16
  29. package/dist/components/visual-builder/index.js.map +1 -1
  30. package/dist/context/client.d.ts +12 -12
  31. package/dist/context/client.js +8 -0
  32. package/dist/context/client.js.map +1 -1
  33. package/dist/context/rsc.js +6 -1
  34. package/dist/context/rsc.js.map +1 -1
  35. package/dist/data/queries.js.map +1 -1
  36. package/dist/errors.js +1 -0
  37. package/dist/errors.js.map +1 -1
  38. package/dist/factory/default.d.ts +20 -3
  39. package/dist/factory/default.js +45 -25
  40. package/dist/factory/default.js.map +1 -1
  41. package/dist/factory/index.js.map +1 -1
  42. package/dist/factory/types.d.ts +24 -4
  43. package/dist/factory/undef.d.ts +7 -5
  44. package/dist/factory/undef.js +10 -4
  45. package/dist/factory/undef.js.map +1 -1
  46. package/dist/rsc-utilities.js.map +1 -1
  47. package/dist/rsc.d.ts +24 -0
  48. package/dist/rsc.js +24 -0
  49. package/dist/rsc.js.map +1 -1
  50. package/dist/utilities.d.ts +2 -2
  51. package/dist/utilities.js +12 -7
  52. package/dist/utilities.js.map +1 -1
  53. package/package.json +22 -15
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-editable/index.tsx"],"names":[],"mappings":";AAsFA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,WAAW,GAA6B,CAAyB,EAC5E,GAAG,EACH,UAAU,GAAG,KAAK,EAClB,EAAE,EACF,KAAK,GAAG,IAAI,EACZ,YAAY,GAAG,IAAI,EACnB,QAAQ,EACR,GAAG,EACH,YAAY,GAAG,KAAK,EACpB,OAAO,GAAG,IAAI,EACd,cAAc,EACd,QAAQ,GAAG,IAAI,EACf,GAAG,KAAK,EAC+B,EAAE,EAAE;IAC3C,MAAM,EACJ,UAAU,EACV,oBAAoB,EACpB,OAAO,EACP,eAAe,EACf,2BAA2B,GAC5B,GAAG,GAAG,IAAI;QACT,UAAU,EAAE,KAAK;QACjB,OAAO,EAAE,IAAI;QACb,oBAAoB,EAAE,IAAI;QAC1B,2BAA2B,EAAE,KAAK;KACnC,CAAA;IACD,MAAM,cAAc,GAAG,EAAE,IAAI,KAAK,CAAA;IAElC,IAAI,oBAAoB,IAAI,UAAU,IAAI,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC;QAClE,OAAO,CAAC,IAAI,CACV,4FAA4F,CAC7F,CAAA;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QACrC,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,UAAU;QAC7B,CAAC,CAAC,cAAc;YACd,CAAC,CAAC,eAAe,EAAE,GAAG,IAAI,cAAc,CAAC,GAAG;YAC5C,CAAC,CAAC,IAAI;QACR,CAAC,CAAC,KAAK,CAAA;IAET,uFAAuF;IACvF,uFAAuF;IACvF,iCAAiC;IACjC,MAAM,mBAAmB,GAAG,2BAA2B;QACrD,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,CAAC,YAAY,IAAI,SAAS,CAAC,CAAA;IAE/B,MAAM,WAAW,GACf,KAAK,IAAI,KAAK,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,mBAAmB,CAAC,CAAA;IACxE,MAAM,aAAa,GACjB,KAAK,EAAE,MAAM,IAAI,EAAE,IAAI,CAAC,YAAY,IAAI,CAAC,mBAAmB,CAAC,CAAA;IAE/D,MAAM,SAAS,GAAwB,YAAY;QACjD,CAAC,CAAC;YACE,GAAG,KAAK;YACR,oFAAoF;YACpF,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACpD,0DAA0D;YAC1D,qBAAqB,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACxD,gDAAgD;YAChD,wBAAwB,EAAE,mBAAmB;YAC7C,gDAAgD;YAChD,eAAe,EAAE,mBAAmB;YACpC,iDAAiD;YACjD,4BAA4B,EAAE,QAAQ,IAAI,SAAS;SACpD;QACH,CAAC,CAAC;YACE,GAAG,KAAK;SACT,CAAA;IAEL,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,UAAU,KAAK,IAAI;YAAE,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;QAC/C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC;YACzD,SAAS,CAAC,UAAU,CAAC,GAAG,GAAG,CAAA;IAC/B,CAAC;IAED,OAAO,KAAC,cAAc,OAAK,SAAS,YAAG,QAAQ,GAAkB,CAAA;AACnE,CAAC,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-editable/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-styles/index.tsx"],"names":[],"mappings":"AA0CA;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAIzB,IAAmB,EAAE,WAAc,EAAE,YAAiB;IAGpD,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;IACtE,OAAO,CAAC,EAAE,IAAI,YAAY,CAAO,CAAA;AACrC,CAAC;AAED,MAAM,UAAU,eAAe,CAA6B,IAAmB;IAG3E,IAAI,CAAC,IAAI;QACL,OAAO,EAAQ,CAAA;IACnB,MAAM,SAAS,GAAiB,EAAE,CAAA;IAClC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC5B,IAAI,GAAG,CAAC,KAAK;YACT,SAAS,CAAC,GAAG,CAAC,GAAe,CAAC,GAAG,GAAG,CAAC,KAAqB,CAAA;IAClE,CAAC,CAAC,CAAA;IACF,OAAO,SAAe,CAAA;AAC1B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/cms-styles/index.tsx"],"names":[],"mappings":"AA0CA;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAIzB,IAAmB,EAAE,WAAc,EAAE,YAAiB;IAGtD,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAA;IACtE,OAAO,CAAC,EAAE,IAAI,YAAY,CAAO,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,eAAe,CAA6B,IAAmB;IAG7E,IAAI,CAAC,IAAI;QACP,OAAO,EAAQ,CAAA;IACjB,MAAM,SAAS,GAAiB,EAAE,CAAA;IAClC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,IAAI,GAAG,CAAC,KAAK;YACX,SAAS,CAAC,GAAG,CAAC,GAAe,CAAC,GAAG,GAAG,CAAC,KAAqB,CAAA;IAC9D,CAAC,CAAC,CAAA;IACF,OAAO,SAAe,CAAA;AACxB,CAAC"}
@@ -19,7 +19,7 @@ import { type PropsWithOptionalContext } from '../../context/types.js';
19
19
  */
20
20
  export declare function createHtmlComponent<E extends keyof JSX.IntrinsicElements>(element: E, ignoreChildren?: boolean, defaultProps?: JSX.IntrinsicElements[E] & Record<string, string>): ({ children, node, ctx, ...props }: PropsWithOptionalContext<PropsWithChildren<JSX.IntrinsicElements[E] & {
21
21
  node: TypedNode;
22
- }>>) => import("react/jsx-runtime").JSX.Element;
22
+ }>>) => JSX.Element;
23
23
  export declare const DefaultTextNode: FunctionComponent<PropsWithOptionalContext<{
24
24
  node: TextNode;
25
25
  }>>;
@@ -1,4 +1,5 @@
1
+ import type { JSX, ReactNode } from 'react';
1
2
  import type { RichTextImplProps } from './types.js';
2
3
  import type { ElementWithChildrenType } from '../type-utils.js';
3
4
  export * from './types.js';
4
- export declare const RichText: <ET extends ElementWithChildrenType>({ factory, text, className, as: Wrapper, debug, noWrapper, cmsFieldName, cmsId, ctx, children, ...props }: RichTextImplProps<ET>) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const RichText: <ET extends ElementWithChildrenType>({ factory, text, className, as: Wrapper, debug, noWrapper, cmsFieldName, cmsId, ctx, children, ...props }: RichTextImplProps<ET>) => string | number | bigint | boolean | JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | import("react").ReactPortal | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null | undefined;
@@ -14,10 +14,13 @@ export const RichText = ({ factory, text = '{ "type": "richText" }', className =
14
14
  const elementId = id + '::' + idx;
15
15
  return (_jsx(RichTextElement, { factory: richTextFactory, node: child, idPrefix: elementId + '::', ctx: ctx }, elementId));
16
16
  }) || children;
17
+ if (noWrapper || !Wrapper) {
18
+ if (isDebug)
19
+ console.warn('🟠 [Rich Text] Text without wrapper, make sure you add your own `CmsEditable` as one of the parents of this component');
20
+ return textContent;
21
+ }
17
22
  if (cmsId || cmsFieldName)
18
- return (_jsx(CmsEditable, { as: (Wrapper ?? 'div'), className: className, cmsId: cmsId || undefined, cmsFieldName: cmsFieldName || undefined, ctx: ctx, ...props, children: textContent }));
19
- if (noWrapper || !Wrapper)
20
- return _jsx(_Fragment, { children: textContent });
23
+ return (_jsx(CmsEditable, { as: Wrapper, className: className, cmsId: cmsId || undefined, cmsFieldName: cmsFieldName || undefined, ctx: ctx, ...props, children: textContent }));
21
24
  return (
22
25
  //@ts-expect-error
23
26
  _jsx(Wrapper, { className: className, ...props, children: textContent }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/rich-text/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/rich-text/index.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/rich-text/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,MAA+B;IAElD,OAAO,CACH,OAAO,MAAM,IAAI,QAAQ;QACzB,MAAM,IAAI,IAAI;QACd,CAAC,OAAQ,MAAmB,CAAC,IAAI,CAAC,IAAI,QAAQ;QAC7C,MAAmB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CACxC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAA+B;IAEvD,OAAO,CACH,OAAO,MAAM,IAAI,QAAQ;QACzB,MAAM,IAAI,IAAI;QACd,CAAC,OAAQ,MAAoB,CAAC,IAAI,CAAC,IAAI,QAAQ;QAC9C,MAAoB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CACxC,CAAA;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAW;IAEtC,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,CAAA;AAC3D,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAW;IAEpC,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAW;IAExC,OAAO,OAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAmC;IAEhE,IAAI,CAAC,KAAK;QACN,OAAO,SAAS,CAAA;IACpB,MAAM,UAAU,GAAG,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAA8B,CAAC,CAAC,CAAC,KAAK,CAAA;IACpG,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,IAAI,UAAU,EAAE,IAAI,IAAI,QAAQ;QAC9D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IAC3E,OAAO,UAAU,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,UAAU;IAElD,OAAO,GAAG,KAAK,KAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAE,EAAE,CAAA;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAW;IAEnC,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;AACzD,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/rich-text/utils.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,MAAM,CAAC,MAA+B;IAEpD,OAAO,CACL,OAAO,MAAM,IAAI,QAAQ;QACrB,MAAM,IAAI,IAAI;QACd,CAAC,OAAQ,MAAmB,CAAC,IAAI,CAAC,IAAI,QAAQ;QAC7C,MAAmB,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,CAC1C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAA+B;IAEzD,OAAO,CACL,OAAO,MAAM,IAAI,QAAQ;QACrB,MAAM,IAAI,IAAI;QACd,CAAC,OAAQ,MAAoB,CAAC,IAAI,CAAC,IAAI,QAAQ;QAC9C,MAAoB,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAC1C,CAAA;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAW;IAExC,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,UAAU,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAW;IAEtC,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,IAAI,QAAQ,CAAA;AACvD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAW;IAE1C,OAAO,OAAM,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAmC;IAElE,IAAI,CAAC,KAAK;QACR,OAAO,SAAS,CAAA;IAClB,MAAM,UAAU,GAAG,OAAO,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAA8B,CAAC,CAAC,CAAC,KAAK,CAAA;IACpG,IAAI,UAAU,EAAE,IAAI,IAAI,UAAU,IAAI,UAAU,EAAE,IAAI,IAAI,QAAQ;QAChE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAgB,UAAU;IAEpD,OAAO,GAAG,KAAK,KAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAE,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAW;IAErC,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;AACvD,CAAC"}
@@ -4,18 +4,167 @@ import { type CmsContentComponent } from './cms-content/rsc.js';
4
4
  import { type OptimizelyCompositionComponent } from './visual-builder/index.js';
5
5
  import { type RichTextComponent } from './rich-text/index.js';
6
6
  /**
7
- * Client side Optimizely CMS Editable
7
+ * Optimizely CMS editable marker wrapper for React Server Components.
8
+ *
9
+ * `CmsEditable` renders an element (default `div`) and conditionally injects
10
+ * Optimizely edit-mode attributes (`data-epi-*`) based on the current CMS
11
+ * context. In non-edit mode it behaves like a transparent wrapper.
12
+ *
13
+ * Key behavior:
14
+ * - Uses `ctx` from props when provided, otherwise resolves server context.
15
+ * - Injects edit attributes only when rendering in edit mode.
16
+ * - Supports custom wrapper elements/components via `as`.
17
+ * - Can forward `ctx` to custom components via `forwardCtx`.
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * import { CmsEditable } from '@remkoj/optimizely-cms-react/rsc'
22
+ *
23
+ * export function PageTitle({ title, id }: { title: string, id: string }) {
24
+ * return (
25
+ * <CmsEditable as="h1" cmsId={id} cmsFieldName="Title">
26
+ * {title}
27
+ * </CmsEditable>
28
+ * )
29
+ * }
30
+ * ```
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * import { CmsEditable } from '@remkoj/optimizely-cms-react/rsc'
35
+ *
36
+ * function Heading(props: { children: React.ReactNode, cmsCtx?: unknown }) {
37
+ * return <h2>{props.children}</h2>
38
+ * }
39
+ *
40
+ * export function Teaser({ id, title }: { id: string, title: string }) {
41
+ * return (
42
+ * <CmsEditable
43
+ * as={Heading}
44
+ * cmsId={id}
45
+ * cmsFieldName="Heading"
46
+ * forwardCtx="cmsCtx"
47
+ * >
48
+ * {title}
49
+ * </CmsEditable>
50
+ * )
51
+ * }
52
+ * ```
53
+ *
54
+ * @remarks
55
+ * For a full prop reference, see `CmsEditableProps`.
8
56
  */
9
57
  export declare const CmsEditable: CmsEditableComponent;
58
+ export type { CmsEditableComponent, CmsEditableProps } from './cms-editable/index.js';
10
59
  /**
11
- * Client side Optimizely CMS Content, leveraging the CMS Context to load the
12
- * content type and content data when needed
60
+ * Optimizely CMS content renderer for React Server Components.
61
+ *
62
+ * `CmsContent` resolves the component template for a content item and provides
63
+ * that template with loaded data and edit metadata.
64
+ *
65
+ * Key behavior:
66
+ * - Resolves content type from `contentType`, `fragmentData`, or Graph lookup.
67
+ * - Resolves template using context component dictionary and optional
68
+ * `contentTypePrefix` / `variant`.
69
+ * - Loads content data unless `noDataLoad` is set.
70
+ * - Passes `editProps` to resolved CMS templates for in-context editing.
71
+ *
72
+ * Required props:
73
+ * - `contentLink`
74
+ *
75
+ * Optional props:
76
+ * - `contentType`, `contentTypePrefix`, `variant`, `fragmentData`, `layoutProps`,
77
+ * `noDataLoad`, `editorComponentId`, `ctx`
78
+ *
79
+ * @example
80
+ * ```tsx
81
+ * import { CmsContent } from '@remkoj/optimizely-cms-react/rsc'
82
+ *
83
+ * export default async function Slot({ contentLink }: { contentLink: { key: string, locale?: string } }) {
84
+ * return (
85
+ * <CmsContent
86
+ * contentLink={contentLink}
87
+ * contentTypePrefix="Page"
88
+ * variant="default"
89
+ * />
90
+ * )
91
+ * }
92
+ * ```
93
+ *
94
+ * @example
95
+ * ```tsx
96
+ * import { CmsContent } from '@remkoj/optimizely-cms-react/rsc'
97
+ *
98
+ * export function PreloadedBlock({ contentLink, fragmentData }: { contentLink: { key: string }, fragmentData: Record<string, any> }) {
99
+ * return (
100
+ * <CmsContent
101
+ * contentLink={contentLink}
102
+ * fragmentData={fragmentData}
103
+ * contentType={["Component", "TeaserBlock"]}
104
+ * />
105
+ * )
106
+ * }
107
+ * ```
108
+ *
109
+ * @remarks
110
+ * For a full prop reference, see `CmsContentProps`.
13
111
  */
14
112
  export declare const CmsContent: CmsContentComponent;
15
113
  export type { CmsContentComponent, CmsContentProps } from './cms-content/rsc.js';
16
114
  /**
17
- * Client side Optimizely CMS Content Area, leveraging the CMS Context to infer
18
- * the connection to Optimizely Graph and component dictionary.
115
+ * Optimizely CMS Content Area renderer for React Server Components.
116
+ *
117
+ * `CmsContentArea` renders a list of content area items by delegating each item
118
+ * to `CmsContent`, with optional container and item-wrapper customization.
119
+ *
120
+ * Key behavior:
121
+ * - Renders each item as `CmsContent` with normalized content link and type.
122
+ * - Adds edit markers for the content area in edit mode when `fieldName` is set.
123
+ * - Supports optional wrappers (`as`, `itemWrapper`) or no wrappers.
124
+ * - Supports per-item suspense boundaries (`useSuspense`, `fallback`).
125
+ *
126
+ * Required props:
127
+ * - `items`
128
+ *
129
+ * Optional props:
130
+ * - `fieldName`, `variant`, `as`, `itemsProperty`, `className`, `classMapper`,
131
+ * `itemWrapper`, `noWrapper`, `useSuspense`, `fallback`, `ctx`
132
+ *
133
+ * @example
134
+ * ```tsx
135
+ * import { CmsContentArea } from '@remkoj/optimizely-cms-react/rsc'
136
+ *
137
+ * export function MainArea({ items }: { items: any[] }) {
138
+ * return (
139
+ * <CmsContentArea
140
+ * items={items}
141
+ * fieldName="MainContentArea"
142
+ * as="section"
143
+ * className="main-content-area"
144
+ * />
145
+ * )
146
+ * }
147
+ * ```
148
+ *
149
+ * @example
150
+ * ```tsx
151
+ * import { CmsContentArea } from '@remkoj/optimizely-cms-react/rsc'
152
+ *
153
+ * export function GridArea({ items }: { items: any[] }) {
154
+ * return (
155
+ * <CmsContentArea
156
+ * items={items}
157
+ * itemWrapper={{ as: 'article', className: 'grid-item' }}
158
+ * classMapper={(displayOption) => `display-${displayOption}`}
159
+ * useSuspense
160
+ * fallback={<div>Loading component…</div>}
161
+ * />
162
+ * )
163
+ * }
164
+ * ```
165
+ *
166
+ * @remarks
167
+ * For a full prop reference, see `CmsContentAreaProps`.
19
168
  */
20
169
  export declare const CmsContentArea: CmsContentAreaComponent;
21
170
  export type { CmsContentAreaClassMapper, CmsContentAreaComponent, CmsContentAreaProps, ContentAreaItemDefinition, } from './cms-content-area/index.js';
@@ -27,17 +27,165 @@ function serverContextAware(component) {
27
27
  return ServerContextInjector;
28
28
  }
29
29
  /**
30
- * Client side Optimizely CMS Editable
30
+ * Optimizely CMS editable marker wrapper for React Server Components.
31
+ *
32
+ * `CmsEditable` renders an element (default `div`) and conditionally injects
33
+ * Optimizely edit-mode attributes (`data-epi-*`) based on the current CMS
34
+ * context. In non-edit mode it behaves like a transparent wrapper.
35
+ *
36
+ * Key behavior:
37
+ * - Uses `ctx` from props when provided, otherwise resolves server context.
38
+ * - Injects edit attributes only when rendering in edit mode.
39
+ * - Supports custom wrapper elements/components via `as`.
40
+ * - Can forward `ctx` to custom components via `forwardCtx`.
41
+ *
42
+ * @example
43
+ * ```tsx
44
+ * import { CmsEditable } from '@remkoj/optimizely-cms-react/rsc'
45
+ *
46
+ * export function PageTitle({ title, id }: { title: string, id: string }) {
47
+ * return (
48
+ * <CmsEditable as="h1" cmsId={id} cmsFieldName="Title">
49
+ * {title}
50
+ * </CmsEditable>
51
+ * )
52
+ * }
53
+ * ```
54
+ *
55
+ * @example
56
+ * ```tsx
57
+ * import { CmsEditable } from '@remkoj/optimizely-cms-react/rsc'
58
+ *
59
+ * function Heading(props: { children: React.ReactNode, cmsCtx?: unknown }) {
60
+ * return <h2>{props.children}</h2>
61
+ * }
62
+ *
63
+ * export function Teaser({ id, title }: { id: string, title: string }) {
64
+ * return (
65
+ * <CmsEditable
66
+ * as={Heading}
67
+ * cmsId={id}
68
+ * cmsFieldName="Heading"
69
+ * forwardCtx="cmsCtx"
70
+ * >
71
+ * {title}
72
+ * </CmsEditable>
73
+ * )
74
+ * }
75
+ * ```
76
+ *
77
+ * @remarks
78
+ * For a full prop reference, see `CmsEditableProps`.
31
79
  */
32
80
  export const CmsEditable = serverContextAware(BaseEditable);
33
81
  /**
34
- * Client side Optimizely CMS Content, leveraging the CMS Context to load the
35
- * content type and content data when needed
82
+ * Optimizely CMS content renderer for React Server Components.
83
+ *
84
+ * `CmsContent` resolves the component template for a content item and provides
85
+ * that template with loaded data and edit metadata.
86
+ *
87
+ * Key behavior:
88
+ * - Resolves content type from `contentType`, `fragmentData`, or Graph lookup.
89
+ * - Resolves template using context component dictionary and optional
90
+ * `contentTypePrefix` / `variant`.
91
+ * - Loads content data unless `noDataLoad` is set.
92
+ * - Passes `editProps` to resolved CMS templates for in-context editing.
93
+ *
94
+ * Required props:
95
+ * - `contentLink`
96
+ *
97
+ * Optional props:
98
+ * - `contentType`, `contentTypePrefix`, `variant`, `fragmentData`, `layoutProps`,
99
+ * `noDataLoad`, `editorComponentId`, `ctx`
100
+ *
101
+ * @example
102
+ * ```tsx
103
+ * import { CmsContent } from '@remkoj/optimizely-cms-react/rsc'
104
+ *
105
+ * export default async function Slot({ contentLink }: { contentLink: { key: string, locale?: string } }) {
106
+ * return (
107
+ * <CmsContent
108
+ * contentLink={contentLink}
109
+ * contentTypePrefix="Page"
110
+ * variant="default"
111
+ * />
112
+ * )
113
+ * }
114
+ * ```
115
+ *
116
+ * @example
117
+ * ```tsx
118
+ * import { CmsContent } from '@remkoj/optimizely-cms-react/rsc'
119
+ *
120
+ * export function PreloadedBlock({ contentLink, fragmentData }: { contentLink: { key: string }, fragmentData: Record<string, any> }) {
121
+ * return (
122
+ * <CmsContent
123
+ * contentLink={contentLink}
124
+ * fragmentData={fragmentData}
125
+ * contentType={["Component", "TeaserBlock"]}
126
+ * />
127
+ * )
128
+ * }
129
+ * ```
130
+ *
131
+ * @remarks
132
+ * For a full prop reference, see `CmsContentProps`.
36
133
  */
37
134
  export const CmsContent = serverContextAware(BaseCmsContent);
38
135
  /**
39
- * Client side Optimizely CMS Content Area, leveraging the CMS Context to infer
40
- * the connection to Optimizely Graph and component dictionary.
136
+ * Optimizely CMS Content Area renderer for React Server Components.
137
+ *
138
+ * `CmsContentArea` renders a list of content area items by delegating each item
139
+ * to `CmsContent`, with optional container and item-wrapper customization.
140
+ *
141
+ * Key behavior:
142
+ * - Renders each item as `CmsContent` with normalized content link and type.
143
+ * - Adds edit markers for the content area in edit mode when `fieldName` is set.
144
+ * - Supports optional wrappers (`as`, `itemWrapper`) or no wrappers.
145
+ * - Supports per-item suspense boundaries (`useSuspense`, `fallback`).
146
+ *
147
+ * Required props:
148
+ * - `items`
149
+ *
150
+ * Optional props:
151
+ * - `fieldName`, `variant`, `as`, `itemsProperty`, `className`, `classMapper`,
152
+ * `itemWrapper`, `noWrapper`, `useSuspense`, `fallback`, `ctx`
153
+ *
154
+ * @example
155
+ * ```tsx
156
+ * import { CmsContentArea } from '@remkoj/optimizely-cms-react/rsc'
157
+ *
158
+ * export function MainArea({ items }: { items: any[] }) {
159
+ * return (
160
+ * <CmsContentArea
161
+ * items={items}
162
+ * fieldName="MainContentArea"
163
+ * as="section"
164
+ * className="main-content-area"
165
+ * />
166
+ * )
167
+ * }
168
+ * ```
169
+ *
170
+ * @example
171
+ * ```tsx
172
+ * import { CmsContentArea } from '@remkoj/optimizely-cms-react/rsc'
173
+ *
174
+ * export function GridArea({ items }: { items: any[] }) {
175
+ * return (
176
+ * <CmsContentArea
177
+ * items={items}
178
+ * itemWrapper={{ as: 'article', className: 'grid-item' }}
179
+ * classMapper={(displayOption) => `display-${displayOption}`}
180
+ * useSuspense
181
+ * fallback={<div>Loading component…</div>}
182
+ * />
183
+ * )
184
+ * }
185
+ * ```
186
+ *
187
+ * @remarks
188
+ * For a full prop reference, see `CmsContentAreaProps`.
41
189
  */
42
190
  export const CmsContentArea = cmsContentAware(serverContextAware(BaseContentArea), CmsContent);
43
191
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"rsc-components.js","sourceRoot":"","sources":["../../src/components/rsc-components.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAMZ,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;AAS7B;;;;;;GAMG;AACH,SAAS,kBAAkB,CACzB,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"}
1
+ {"version":3,"file":"rsc-components.js","sourceRoot":"","sources":["../../src/components/rsc-components.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAMZ,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;AAS7B;;;;;;GAMG;AACH,SAAS,kBAAkB,CACzB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAC3C,YAAY,CACW,CAAA;AAGzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,kBAAkB,CAC1C,cAAoD,CAC9B,CAAA;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;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"}
@@ -1,4 +1,4 @@
1
- import { isContentType } from '../../utilities.js';
1
+ import { isContentType, isNotNullOrUndefined } from '../../utilities.js';
2
2
  import { isContentLink, isInlineContentLink } from '@remkoj/optimizely-graph-client';
3
3
  /**
4
4
  * Test if the Node within VisualBuilder is an Element
@@ -63,20 +63,13 @@ export const defaultPropsFactory = (node) => {
63
63
  return [contentLink, contentType, node.key || undefined, node.component, layoutData];
64
64
  };
65
65
  export const defaultNodePropsFactory = (node) => {
66
+ const componentMainName = node.type ? (node.layoutType === 'experience' ? node.type + "Node" : node.type) : undefined;
66
67
  const componentTypes = [
67
- // New style logic
68
- node.template && [node.template, ucFirst(node.type), ucFirst(node.layoutType), "Content"].filter(x => x),
69
- [ucFirst(node.type), ucFirst(node.layoutType), "Content"].filter(x => x),
70
- node.template && [node.template, ucFirst(node.layoutType), "Content"].filter(x => x),
71
- node.template && [node.template, "Styles", ucFirst(node.layoutType), "Content"].filter(x => x),
72
- node.template && [node.template, ucFirst(node.layoutType), "Nodes", "Content"].filter(x => x),
73
- // Old style logic
74
- [node.template, ucFirst(node.type), ucFirst(node.layoutType), "Component", "Content"].filter(x => x),
75
- (node.template && node.type) ? [node.type ? ucFirst(node.type) : null, ucFirst(node.layoutType), "Component", "Content"].filter(x => x) : null,
76
- // Fallback
77
- ["Node", "Content"],
78
- ["Node", "Component", "Content"]
79
- ].filter(x => x);
68
+ componentMainName ? [componentMainName] : undefined,
69
+ node.template ? [node.template] : undefined,
70
+ [ucFirst(node.layoutType) + 'Node'],
71
+ ['Node']
72
+ ].filter(isNotNullOrUndefined);
80
73
  const contentLink = { key: node.key ?? '', isInline: true };
81
74
  const componentData = { __name: node.name, ...node.component };
82
75
  const layoutData = {
@@ -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":"AAAA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACxE,OAAO,EAAE,aAAa,EAAyB,mBAAmB,EAAE,MAAM,iCAAiC,CAAA;AAG3G;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAA0C;IACtE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAA0C;IACxE,OAAO,IAAI,CAAC,UAAU,IAAI,WAAW,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAiC,IAA0C,EAAE,IAA+C;IAC/J,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;QACxB,OAAO,KAAK,CAAA;IACd,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAA0C;IACxE,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AAC/B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,MAAW;IAChC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI;QAC/C,OAAO,KAAK,CAAA;IAEd,MAAM,SAAS,GAAG,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IACzE,MAAM,YAAY,GAAG,CAAC,OAAQ,MAA0B,CAAC,IAAI,IAAI,QAAQ,IAAI,CAAE,MAA0B,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAK,MAA0B,CAAC,IAAI,IAAI,IAAI,CAAA;IAC7K,MAAM,YAAY,GAAG,OAAQ,MAA0B,CAAC,UAAU,IAAI,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAE,MAA0B,CAAC,UAAU,CAAC,CAAA;IAE5I,OAAO,YAAY,IAAI,YAAY,CAAA;AACrC,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAqB,CAA8C,IAAkC,EAAE,EAAE;IACvI,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,CAAA;IACpD,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IAEzE,MAAM,WAAW,GAAuC;QACtD,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,SAAS;QAC5D,OAAO,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO;QAC3C,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM;QACzC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;KACxD,CAAA;IACD,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAA;IAEzE,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAA;IAED,OAAO,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;AACtF,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,uBAAuB,GAAqB,CAA8C,IAA8B,EAAE,EAAE;IACvI,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,UAAU,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACpH,MAAM,cAAc,GAAG;QACrB,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;QACnD,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,QAAQ,CAAE,CAAC,CAAC,CAAC,SAAS;QAC7C,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,GAAC,MAAM,CAAC;QACjC,CAAC,MAAM,CAAC;KACT,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC/B,MAAM,WAAW,GAA8B,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;IACtF,MAAM,aAAa,GAAO,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,EAAmB,CAAA;IACnF,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;KACxB,CAAA;IAED,IAAI,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAA;IAEjI,OAAO,CAAC,WAAW,EAAE,cAAc,EAAE,IAAI,CAAC,GAAG,IAAI,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAA;AACxF,CAAC,CAAA;AAED,MAAM,UAAU,OAAO,CAAC,KAAgC;IACtD,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAChD,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IACpD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -7,5 +7,7 @@ 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, isMaster }: BaseOptimizelyCompositionProps & {
11
+ isMaster: boolean;
12
+ }): ReactNode;
11
13
  export default OptimizelyComposition;
@@ -1,40 +1,39 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { isComponentNode, defaultNodePropsFactory, defaultPropsFactory, } from './functions.js';
2
+ import { isComponentNode, isStructureNode, 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, }) {
10
- const { factory, isDebug } = ctx;
9
+ export function OptimizelyComposition({ node, leafPropsFactory = defaultPropsFactory, nodePropsFactory = defaultNodePropsFactory, ctx, cmsContent: CmsContent, isMaster = true }) {
10
+ const { factory } = ctx;
11
+ // If this is the master composition and the node is a structure node with children, render
12
+ // the children directly to avoid unnecessary nesting
13
+ if (isMaster && isStructureNode(node) && Array.isArray(node.nodes) && node.nodes.length > 0) {
14
+ return node.nodes.map((child) => {
15
+ const childKey = child.key ? child.key : `vb::${JSON.stringify(child)}`;
16
+ return (_jsx(OptimizelyComposition, { node: child, leafPropsFactory: leafPropsFactory, nodePropsFactory: nodePropsFactory, ctx: ctx, cmsContent: CmsContent, isMaster: false }, childKey));
17
+ });
18
+ }
11
19
  // Render the element
12
20
  if (isComponentNode(node)) {
13
- /*if (isDebug)
14
- console.log(
15
- `⚪ [VisualBuilder] Rendering element node ${JSON.stringify(node)}`
16
- )*/
17
21
  const [contentLink, contentType, nodeId, fragmentData, layoutProps] = leafPropsFactory(node);
18
22
  return (_jsx(CmsContent, { contentLink: contentLink, contentType: contentType, fragmentData: fragmentData, layoutProps: layoutProps, editorComponentId: nodeId || contentLink.key || undefined, ctx: ctx }));
19
23
  }
20
- // Debug
21
- /*if (isDebug)
22
- console.log(
23
- `⚪ [VisualBuilder] Rendering structure node ${JSON.stringify(node)}`
24
- )*/
25
24
  // Ensure we've got a factory
26
25
  if (!factory)
27
- throw new Error('🟡 [VisualBuilder] [OptimizelyComposition] The factory must be defined within the serverContext');
26
+ throw new Error('🟡 [VisualBuilder] [OptimizelyComposition] The factory must be defined within the Context');
28
27
  const [contentLink, contentTypes, nodeId, fragmentData, layoutProps] = nodePropsFactory(node);
29
28
  const firstExistingType = contentTypes
30
- .map((ct) => factory.has([...ct].reverse()))
29
+ .map((ct) => factory.has(Array.isArray(ct) ? [...ct].reverse() : ct))
31
30
  .indexOf(true);
32
31
  const contentType = contentTypes[firstExistingType];
33
32
  if (!contentType)
34
- throw new Error(`🟡 [VisualBuilder] [OptimizelyComposition] The factory must have a definition for one of these types: ${contentTypes.map((x) => x.join('/')).join(', ')}`);
33
+ throw new Error(`🟡 [VisualBuilder] [OptimizelyComposition] The factory must have a definition for one of these types: ${contentTypes.map((x) => Array.isArray(x) ? x.join('/') : x).join(', ')}`);
35
34
  return (_jsx(CmsContent, { contentType: contentType, contentLink: contentLink, fragmentData: fragmentData, layoutProps: layoutProps, editorComponentId: nodeId || contentLink.key || undefined, noDataLoad: true, ctx: ctx, children: (node.nodes ?? []).map((child) => {
36
35
  const childKey = child.key ? child.key : `vb::${JSON.stringify(child)}`;
37
- return (_jsx(OptimizelyComposition, { node: child, leafPropsFactory: leafPropsFactory, nodePropsFactory: nodePropsFactory, ctx: ctx, cmsContent: CmsContent }, childKey));
36
+ return (_jsx(OptimizelyComposition, { node: child, leafPropsFactory: leafPropsFactory, nodePropsFactory: nodePropsFactory, ctx: ctx, cmsContent: CmsContent, isMaster: false }, childKey));
38
37
  }) }));
39
38
  }
40
39
  export default OptimizelyComposition;
@@ -1 +1 @@
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;;;aAGK;QACL,MAAM,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,GACjE,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,iBAAiB,EAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,SAAS,EACzD,GAAG,EAAE,GAAG,GACR,CACH,CAAA;IACH,CAAC;IAED,QAAQ;IACR;;;SAGK;IAEL,6BAA6B;IAC7B,IAAI,CAAC,OAAO;QACV,MAAM,IAAI,KAAK,CACb,iGAAiG,CAClG,CAAA;IAEH,MAAM,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,GAClE,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,iBAAiB,EAAE,MAAM,IAAI,WAAW,CAAC,GAAG,IAAI,SAAS,EACzD,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
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/visual-builder/index.tsx"],"names":[],"mappings":"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"}
@@ -57,25 +57,25 @@ export type OptimizelyCmsProps = {
57
57
  initialMode?: OptimizelyCmsMode;
58
58
  } & ({
59
59
  /**
60
- * The component factory to be used to resolve content within the scope
61
- * of this provider.
62
- */
60
+ * The component factory to be used to resolve content within the scope
61
+ * of this provider.
62
+ */
63
63
  factory: ComponentFactory;
64
64
  /**
65
- * The defaults components to apply when there's no factory provided. If a
66
- * factory is provided, these components will not be added to the factory.
67
- */
65
+ * The defaults components to apply when there's no factory provided. If a
66
+ * factory is provided, these components will not be added to the factory.
67
+ */
68
68
  initialComponents?: never;
69
69
  } | {
70
70
  /**
71
- * The component factory to be used to resolve content within the scope
72
- * of this provider.
73
- */
71
+ * The component factory to be used to resolve content within the scope
72
+ * of this provider.
73
+ */
74
74
  factory?: never;
75
75
  /**
76
- * The defaults components to apply when there's no factory provided. If a
77
- * factory is provided, these components will not be added to the factory.
78
- */
76
+ * The defaults components to apply when there's no factory provided. If a
77
+ * factory is provided, these components will not be added to the factory.
78
+ */
79
79
  initialComponents: ComponentTypeDictionary;
80
80
  });
81
81
  export declare const OptimizelyCms: FunctionComponent<PropsWithChildren<OptimizelyCmsProps>>;
@@ -12,6 +12,14 @@ export var OptimizelyCmsMode;
12
12
  OptimizelyCmsMode["preview"] = "preview";
13
13
  })(OptimizelyCmsMode || (OptimizelyCmsMode = {}));
14
14
  export class ClientContextInstance {
15
+ client;
16
+ factory;
17
+ locale;
18
+ inEditMode;
19
+ inPreviewMode;
20
+ isDevelopment;
21
+ isDebug;
22
+ isDebugOrDevelopment;
15
23
  constructor(cfg, components) {
16
24
  this.client = isOptiGraphClient(cfg.client)
17
25
  ? cfg.client