@uniformdev/canvas-next-rsc 19.204.0 → 19.205.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.
@@ -64,4 +64,4 @@ type ResolveComponentsOptions = {
64
64
  mode: UniformCompositionProps['mode'];
65
65
  };
66
66
 
67
- export { type ResolveComponentFunction as R, type UniformCompositionProps as U, UniformComposition as a, type ResolveComponentResult as b, resolveComposition as r };
67
+ export { type ResolveComponentFunction as R, type UniformCompositionProps as U, type ResolveComponentResult as a, UniformComposition as b, resolveComposition as r };
@@ -64,4 +64,4 @@ type ResolveComponentsOptions = {
64
64
  mode: UniformCompositionProps['mode'];
65
65
  };
66
66
 
67
- export { type ResolveComponentFunction as R, type UniformCompositionProps as U, UniformComposition as a, type ResolveComponentResult as b, resolveComposition as r };
67
+ export { type ResolveComponentFunction as R, type UniformCompositionProps as U, type ResolveComponentResult as a, UniformComposition as b, resolveComposition as r };
@@ -1,13 +1,13 @@
1
1
  import { ComponentProps, CompositionContext, SlotDefinition } from '@uniformdev/canvas-next-rsc-shared';
2
2
  export { ComponentProps, CompositionContext } from '@uniformdev/canvas-next-rsc-shared';
3
3
  import React__default, { PropsWithChildren, ReactNode, Key } from 'react';
4
- export { R as ResolveComponentFunction, b as ResolveComponentResult } from './UniformComposition-Dw55RFP6.mjs';
4
+ export { R as ResolveComponentFunction, a as ResolveComponentResult } from './UniformComposition-B8budr-b.mjs';
5
5
  import { ComponentInstance } from '@uniformdev/canvas';
6
6
  import { RichTextNode } from '@uniformdev/richtext';
7
7
  import { PureUniformTextProps } from '@uniformdev/canvas-react/core';
8
8
  export { ClientContextComponent, createClientUniformContext, useInitUniformContext, useUniformContext } from '@uniformdev/canvas-next-rsc-client';
9
9
 
10
- declare const DefaultNotImplementedComponent: ({ component }: ComponentProps) => React__default.JSX.Element;
10
+ declare const DefaultNotImplementedComponent: ({ component }: ComponentProps) => React__default.JSX.Element | null;
11
11
 
12
12
  type RichTextComponentProps<TNode extends RichTextNode = RichTextNode> = {
13
13
  node: TNode;
@@ -71,7 +71,7 @@ declare const UniformRichText: React__default.ForwardRefExoticComponent<{
71
71
  placeholder?: string | ((parameter: {
72
72
  id: string;
73
73
  }) => string | undefined);
74
- } & Omit<React__default.HTMLAttributes<HTMLDivElement>, "placeholder" | "children"> & React__default.RefAttributes<unknown>>;
74
+ } & Omit<React__default.HTMLAttributes<HTMLDivElement>, "children" | "placeholder"> & React__default.RefAttributes<unknown>>;
75
75
 
76
76
  type UniformRichTextNodeProps = {
77
77
  node: RichTextNode;
@@ -1,13 +1,13 @@
1
1
  import { ComponentProps, CompositionContext, SlotDefinition } from '@uniformdev/canvas-next-rsc-shared';
2
2
  export { ComponentProps, CompositionContext } from '@uniformdev/canvas-next-rsc-shared';
3
3
  import React__default, { PropsWithChildren, ReactNode, Key } from 'react';
4
- export { R as ResolveComponentFunction, b as ResolveComponentResult } from './UniformComposition-Dw55RFP6.js';
4
+ export { R as ResolveComponentFunction, a as ResolveComponentResult } from './UniformComposition-B8budr-b.js';
5
5
  import { ComponentInstance } from '@uniformdev/canvas';
6
6
  import { RichTextNode } from '@uniformdev/richtext';
7
7
  import { PureUniformTextProps } from '@uniformdev/canvas-react/core';
8
8
  export { ClientContextComponent, createClientUniformContext, useInitUniformContext, useUniformContext } from '@uniformdev/canvas-next-rsc-client';
9
9
 
10
- declare const DefaultNotImplementedComponent: ({ component }: ComponentProps) => React__default.JSX.Element;
10
+ declare const DefaultNotImplementedComponent: ({ component }: ComponentProps) => React__default.JSX.Element | null;
11
11
 
12
12
  type RichTextComponentProps<TNode extends RichTextNode = RichTextNode> = {
13
13
  node: TNode;
@@ -71,7 +71,7 @@ declare const UniformRichText: React__default.ForwardRefExoticComponent<{
71
71
  placeholder?: string | ((parameter: {
72
72
  id: string;
73
73
  }) => string | undefined);
74
- } & Omit<React__default.HTMLAttributes<HTMLDivElement>, "placeholder" | "children"> & React__default.RefAttributes<unknown>>;
74
+ } & Omit<React__default.HTMLAttributes<HTMLDivElement>, "children" | "placeholder"> & React__default.RefAttributes<unknown>>;
75
75
 
76
76
  type UniformRichTextNodeProps = {
77
77
  node: RichTextNode;
package/dist/component.js CHANGED
@@ -43,8 +43,78 @@ module.exports = __toCommonJS(component_exports);
43
43
 
44
44
  // src/components/DefaultNotImplementedComponent.tsx
45
45
  var import_react = __toESM(require("react"));
46
+ var wrapperStyles = {
47
+ display: "flex",
48
+ flexDirection: "column",
49
+ gap: "0.5rem",
50
+ borderLeft: "4px solid #e42535",
51
+ padding: "16px",
52
+ fontSize: "16px",
53
+ borderRadius: "0 8px 8px 0",
54
+ margin: "8px",
55
+ backgroundColor: "rgba(255, 255, 255, 0.45)",
56
+ color: "#1d3557"
57
+ };
46
58
  var DefaultNotImplementedComponent = ({ component }) => {
47
- return /* @__PURE__ */ import_react.default.createElement("div", null, "The component of type ", component.type, " not been implemented yet.");
59
+ var _a, _b;
60
+ const componentType = component == null ? void 0 : component.type;
61
+ if (!componentType) {
62
+ return null;
63
+ }
64
+ const proposedFileName = `${componentType[0].toUpperCase()}${componentType.substring(1)}`;
65
+ const probableProps = Object.keys((_a = component.parameters) != null ? _a : {});
66
+ const probableSlots = Object.keys((_b = component.slots) != null ? _b : {});
67
+ const resolvedParameters = probableProps.map((prop) => {
68
+ var _a2;
69
+ const propType = (_a2 = component.parameters) == null ? void 0 : _a2[prop];
70
+ const propTypeValue = (propType == null ? void 0 : propType.type) === "text" ? "string" : "unknown";
71
+ return ` ${prop}: ${propTypeValue}`;
72
+ }).join("\n");
73
+ return /* @__PURE__ */ import_react.default.createElement("div", { style: wrapperStyles }, /* @__PURE__ */ import_react.default.createElement("h2", { style: { fontSize: "1.2rem" } }, "Unknown Component"), /* @__PURE__ */ import_react.default.createElement("p", null, "Received request from Uniform to render a component with the public ID: ", /* @__PURE__ */ import_react.default.createElement("code", null, componentType), "."), /* @__PURE__ */ import_react.default.createElement("p", null, /* @__PURE__ */ import_react.default.createElement("code", null, "<UniformComposition />"), " does not have ", /* @__PURE__ */ import_react.default.createElement("code", null, componentType), " mapped to a React component yet."), /* @__PURE__ */ import_react.default.createElement(
74
+ "ul",
75
+ {
76
+ style: {
77
+ listStyleType: "disc",
78
+ marginLeft: "1rem",
79
+ display: "flex",
80
+ flexDirection: "column",
81
+ gap: "0.5rem"
82
+ }
83
+ },
84
+ /* @__PURE__ */ import_react.default.createElement("li", null, "Create a React component and register it with Uniform, for example", /* @__PURE__ */ import_react.default.createElement("pre", null, `
85
+ import {
86
+ ComponentProps,
87
+ UniformSlot,
88
+ } from '@uniformdev/canvas-next-rsc/component';
89
+
90
+ type ${proposedFileName}Parameters = {
91
+ ${resolvedParameters}
92
+ };
93
+ type ${proposedFileName}Slots = ${probableSlots.map((slot) => `'${slot}'`).join(" | ")};
94
+ type ${proposedFileName}Props = ComponentProps<${proposedFileName}Parameters, ${proposedFileName}Slots>;
95
+
96
+ export const ${proposedFileName}Component = (props: ${proposedFileName}Props) => {
97
+ return (
98
+ <div>
99
+ <div>
100
+ ${probableSlots.map((slot) => `<UniformSlot data={props.component} context={props.context} slot={props.slots.${slot}} />`).join("\n")}
101
+ </div>
102
+ </div>
103
+ );
104
+ };
105
+
106
+ Add this component mapping to your resolveComponent function on UniformComposition.`)),
107
+ /* @__PURE__ */ import_react.default.createElement("li", null, "Import the component into the file where ", /* @__PURE__ */ import_react.default.createElement("code", null, "<UniformComposition />"), " is defined, for example ", /* @__PURE__ */ import_react.default.createElement("pre", null, `import "../../components/${proposedFileName}.tsx"`))
108
+ ), " ", /* @__PURE__ */ import_react.default.createElement("p", null, "Need more help?", " ", /* @__PURE__ */ import_react.default.createElement(
109
+ "a",
110
+ {
111
+ href: "https://docs.uniform.app/docs/learn/tutorials/nextjs-app-router",
112
+ target: "_blank",
113
+ rel: "noreferrer",
114
+ style: { textDecoration: "underline" }
115
+ },
116
+ "Check out the documentation."
117
+ )));
48
118
  };
49
119
 
50
120
  // src/components/UniformRichText.tsx
@@ -1,7 +1,77 @@
1
1
  // src/components/DefaultNotImplementedComponent.tsx
2
2
  import React from "react";
3
+ var wrapperStyles = {
4
+ display: "flex",
5
+ flexDirection: "column",
6
+ gap: "0.5rem",
7
+ borderLeft: "4px solid #e42535",
8
+ padding: "16px",
9
+ fontSize: "16px",
10
+ borderRadius: "0 8px 8px 0",
11
+ margin: "8px",
12
+ backgroundColor: "rgba(255, 255, 255, 0.45)",
13
+ color: "#1d3557"
14
+ };
3
15
  var DefaultNotImplementedComponent = ({ component }) => {
4
- return /* @__PURE__ */ React.createElement("div", null, "The component of type ", component.type, " not been implemented yet.");
16
+ var _a, _b;
17
+ const componentType = component == null ? void 0 : component.type;
18
+ if (!componentType) {
19
+ return null;
20
+ }
21
+ const proposedFileName = `${componentType[0].toUpperCase()}${componentType.substring(1)}`;
22
+ const probableProps = Object.keys((_a = component.parameters) != null ? _a : {});
23
+ const probableSlots = Object.keys((_b = component.slots) != null ? _b : {});
24
+ const resolvedParameters = probableProps.map((prop) => {
25
+ var _a2;
26
+ const propType = (_a2 = component.parameters) == null ? void 0 : _a2[prop];
27
+ const propTypeValue = (propType == null ? void 0 : propType.type) === "text" ? "string" : "unknown";
28
+ return ` ${prop}: ${propTypeValue}`;
29
+ }).join("\n");
30
+ return /* @__PURE__ */ React.createElement("div", { style: wrapperStyles }, /* @__PURE__ */ React.createElement("h2", { style: { fontSize: "1.2rem" } }, "Unknown Component"), /* @__PURE__ */ React.createElement("p", null, "Received request from Uniform to render a component with the public ID: ", /* @__PURE__ */ React.createElement("code", null, componentType), "."), /* @__PURE__ */ React.createElement("p", null, /* @__PURE__ */ React.createElement("code", null, "<UniformComposition />"), " does not have ", /* @__PURE__ */ React.createElement("code", null, componentType), " mapped to a React component yet."), /* @__PURE__ */ React.createElement(
31
+ "ul",
32
+ {
33
+ style: {
34
+ listStyleType: "disc",
35
+ marginLeft: "1rem",
36
+ display: "flex",
37
+ flexDirection: "column",
38
+ gap: "0.5rem"
39
+ }
40
+ },
41
+ /* @__PURE__ */ React.createElement("li", null, "Create a React component and register it with Uniform, for example", /* @__PURE__ */ React.createElement("pre", null, `
42
+ import {
43
+ ComponentProps,
44
+ UniformSlot,
45
+ } from '@uniformdev/canvas-next-rsc/component';
46
+
47
+ type ${proposedFileName}Parameters = {
48
+ ${resolvedParameters}
49
+ };
50
+ type ${proposedFileName}Slots = ${probableSlots.map((slot) => `'${slot}'`).join(" | ")};
51
+ type ${proposedFileName}Props = ComponentProps<${proposedFileName}Parameters, ${proposedFileName}Slots>;
52
+
53
+ export const ${proposedFileName}Component = (props: ${proposedFileName}Props) => {
54
+ return (
55
+ <div>
56
+ <div>
57
+ ${probableSlots.map((slot) => `<UniformSlot data={props.component} context={props.context} slot={props.slots.${slot}} />`).join("\n")}
58
+ </div>
59
+ </div>
60
+ );
61
+ };
62
+
63
+ Add this component mapping to your resolveComponent function on UniformComposition.`)),
64
+ /* @__PURE__ */ React.createElement("li", null, "Import the component into the file where ", /* @__PURE__ */ React.createElement("code", null, "<UniformComposition />"), " is defined, for example ", /* @__PURE__ */ React.createElement("pre", null, `import "../../components/${proposedFileName}.tsx"`))
65
+ ), " ", /* @__PURE__ */ React.createElement("p", null, "Need more help?", " ", /* @__PURE__ */ React.createElement(
66
+ "a",
67
+ {
68
+ href: "https://docs.uniform.app/docs/learn/tutorials/nextjs-app-router",
69
+ target: "_blank",
70
+ rel: "noreferrer",
71
+ style: { textDecoration: "underline" }
72
+ },
73
+ "Check out the documentation."
74
+ )));
5
75
  };
6
76
 
7
77
  // src/components/UniformRichText.tsx
package/dist/handler.js CHANGED
@@ -84,8 +84,8 @@ var createPreviewGETRouteHandler = (options) => {
84
84
  pathToRedirectTo = options.playgroundPath;
85
85
  }
86
86
  const id = getQueryParam(request, compositionQueryParam.id);
87
- const slug = getQueryParam(request, compositionQueryParam.slug);
88
87
  const path = getQueryParam(request, compositionQueryParam.path);
88
+ const slug = getQueryParam(request, compositionQueryParam.slug);
89
89
  const locale = getQueryParam(request, compositionQueryParam.locale);
90
90
  const disable = getQueryParam(request, "disable");
91
91
  const secret = getQueryParam(request, import_canvas.SECRET_QUERY_STRING_PARAM);
@@ -110,7 +110,7 @@ var createPreviewGETRouteHandler = (options) => {
110
110
  (0, import_headers.draftMode)().enable();
111
111
  const redirectionUrl = new URL(pathToRedirectTo, BASE_URL_EXAMPLE);
112
112
  assignRequestQueryToSearchParams(redirectionUrl.searchParams, searchParams);
113
- if (isPlayground) {
113
+ if (isPlayground || (options == null ? void 0 : options.playgroundPath) && pathToRedirectTo === options.playgroundPath) {
114
114
  redirectionUrl.searchParams.set("id", searchParams.get("id") || "");
115
115
  }
116
116
  if (!isUniformContextualEditing) {
@@ -363,7 +363,7 @@ var isSvixMessage = async (request) => {
363
363
  const wh = new import_svix.Webhook(process.env.UNIFORM_WEBHOOK_SECRET);
364
364
  try {
365
365
  wh.verify(payload, headers);
366
- } catch (err) {
366
+ } catch (e) {
367
367
  return {
368
368
  looksLikeMessage: true,
369
369
  validation: false
package/dist/handler.mjs CHANGED
@@ -51,8 +51,8 @@ var createPreviewGETRouteHandler = (options) => {
51
51
  pathToRedirectTo = options.playgroundPath;
52
52
  }
53
53
  const id = getQueryParam(request, compositionQueryParam.id);
54
- const slug = getQueryParam(request, compositionQueryParam.slug);
55
54
  const path = getQueryParam(request, compositionQueryParam.path);
55
+ const slug = getQueryParam(request, compositionQueryParam.slug);
56
56
  const locale = getQueryParam(request, compositionQueryParam.locale);
57
57
  const disable = getQueryParam(request, "disable");
58
58
  const secret = getQueryParam(request, SECRET_QUERY_STRING_PARAM);
@@ -77,7 +77,7 @@ var createPreviewGETRouteHandler = (options) => {
77
77
  draftMode().enable();
78
78
  const redirectionUrl = new URL(pathToRedirectTo, BASE_URL_EXAMPLE);
79
79
  assignRequestQueryToSearchParams(redirectionUrl.searchParams, searchParams);
80
- if (isPlayground) {
80
+ if (isPlayground || (options == null ? void 0 : options.playgroundPath) && pathToRedirectTo === options.playgroundPath) {
81
81
  redirectionUrl.searchParams.set("id", searchParams.get("id") || "");
82
82
  }
83
83
  if (!isUniformContextualEditing) {
@@ -330,7 +330,7 @@ var isSvixMessage = async (request) => {
330
330
  const wh = new Webhook(process.env.UNIFORM_WEBHOOK_SECRET);
331
331
  try {
332
332
  wh.verify(payload, headers);
333
- } catch (err) {
333
+ } catch (e) {
334
334
  return {
335
335
  looksLikeMessage: true,
336
336
  validation: false
package/dist/index.d.mts CHANGED
@@ -5,8 +5,8 @@ import { ManifestClient } from '@uniformdev/context/api';
5
5
  import { ProjectMapClient, ProjectMapNode } from '@uniformdev/project-map';
6
6
  import { ContextState, ContextOptions } from '@uniformdev/context';
7
7
  import React__default, { PropsWithChildren } from 'react';
8
- import { U as UniformCompositionProps } from './UniformComposition-Dw55RFP6.mjs';
9
- export { a as UniformComposition, r as resolveComposition } from './UniformComposition-Dw55RFP6.mjs';
8
+ import { U as UniformCompositionProps } from './UniformComposition-B8budr-b.mjs';
9
+ export { b as UniformComposition, r as resolveComposition } from './UniformComposition-B8budr-b.mjs';
10
10
  import { ClientContextComponent } from '@uniformdev/canvas-next-rsc-client';
11
11
 
12
12
  type GetCanvasClientOptions = {
package/dist/index.d.ts CHANGED
@@ -5,8 +5,8 @@ import { ManifestClient } from '@uniformdev/context/api';
5
5
  import { ProjectMapClient, ProjectMapNode } from '@uniformdev/project-map';
6
6
  import { ContextState, ContextOptions } from '@uniformdev/context';
7
7
  import React__default, { PropsWithChildren } from 'react';
8
- import { U as UniformCompositionProps } from './UniformComposition-Dw55RFP6.js';
9
- export { a as UniformComposition, r as resolveComposition } from './UniformComposition-Dw55RFP6.js';
8
+ import { U as UniformCompositionProps } from './UniformComposition-B8budr-b.js';
9
+ export { b as UniformComposition, r as resolveComposition } from './UniformComposition-B8budr-b.js';
10
10
  import { ClientContextComponent } from '@uniformdev/canvas-next-rsc-client';
11
11
 
12
12
  type GetCanvasClientOptions = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@uniformdev/canvas-next-rsc",
3
- "version": "19.204.0",
3
+ "version": "19.205.0",
4
4
  "license": "SEE LICENSE IN LICENSE.txt",
5
5
  "scripts": {
6
6
  "build": "tsup",
@@ -13,9 +13,9 @@
13
13
  "types": "dist/index.d.ts",
14
14
  "exports": {
15
15
  ".": {
16
+ "types": "./dist/index.d.ts",
16
17
  "require": "./dist/index.js",
17
- "import": "./dist/index.esm.js",
18
- "types": "./dist/index.d.ts"
18
+ "import": "./dist/index.esm.js"
19
19
  },
20
20
  "./handler": {
21
21
  "require": "./dist/handler.js",
@@ -23,14 +23,14 @@
23
23
  "types": "./dist/handler.d.ts"
24
24
  },
25
25
  "./config": {
26
+ "types": "./dist/config.d.ts",
26
27
  "require": "./dist/config.js",
27
- "import": "./dist/config.mjs",
28
- "types": "./dist/config.d.ts"
28
+ "import": "./dist/config.mjs"
29
29
  },
30
30
  "./component": {
31
+ "types": "./dist/component.d.ts",
31
32
  "require": "./dist/component.js",
32
- "import": "./dist/component.mjs",
33
- "types": "./dist/component.d.ts"
33
+ "import": "./dist/component.mjs"
34
34
  }
35
35
  },
36
36
  "typesVersions": {
@@ -53,23 +53,23 @@
53
53
  "/dist"
54
54
  ],
55
55
  "devDependencies": {
56
- "@types/node": "20.10.6",
57
- "@types/react": "18.3.3",
56
+ "@types/node": "22.7.8",
57
+ "@types/react": "18.3.11",
58
58
  "eslint": "9.9.0",
59
59
  "next": "^14.0.0",
60
60
  "react": "18.3.1",
61
61
  "react-dom": "18.3.1"
62
62
  },
63
63
  "dependencies": {
64
- "@uniformdev/canvas": "19.204.0",
65
- "@uniformdev/canvas-next-rsc-client": "^19.204.0",
66
- "@uniformdev/canvas-next-rsc-shared": "^19.204.0",
67
- "@uniformdev/canvas-react": "19.204.0",
68
- "@uniformdev/context": "19.204.0",
69
- "@uniformdev/project-map": "19.204.0",
70
- "@uniformdev/redirect": "19.204.0",
71
- "@uniformdev/richtext": "19.204.0",
72
- "@uniformdev/webhooks": "19.204.0",
64
+ "@uniformdev/canvas": "19.205.0",
65
+ "@uniformdev/canvas-next-rsc-client": "^19.205.0",
66
+ "@uniformdev/canvas-next-rsc-shared": "^19.205.0",
67
+ "@uniformdev/canvas-react": "19.205.0",
68
+ "@uniformdev/context": "19.205.0",
69
+ "@uniformdev/project-map": "19.205.0",
70
+ "@uniformdev/redirect": "19.205.0",
71
+ "@uniformdev/richtext": "19.205.0",
72
+ "@uniformdev/webhooks": "19.205.0",
73
73
  "@vercel/edge-config": "^0.4.0",
74
74
  "encoding": "^0.1.13",
75
75
  "server-only": "^0.0.1",
@@ -86,5 +86,5 @@
86
86
  "publishConfig": {
87
87
  "access": "public"
88
88
  },
89
- "gitHead": "526d22d188132e5d47dc117808be6ead40532cb1"
89
+ "gitHead": "48fe1b75ba979c894fe8d3d3a9bae43c0f8fbc1e"
90
90
  }