@webstudio-is/react-sdk 0.58.0 → 0.60.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.
- package/lib/app/custom-components/shared/remix-link.js +2 -2
- package/lib/app/index.js +0 -1
- package/lib/cjs/app/custom-components/shared/remix-link.js +2 -2
- package/lib/cjs/app/index.js +0 -1
- package/lib/cjs/components/__generated__/blockquote.props.js +5 -0
- package/lib/cjs/components/__generated__/body.props.js +5 -0
- package/lib/cjs/components/__generated__/bold.props.js +5 -0
- package/lib/cjs/components/__generated__/box.props.js +5 -0
- package/lib/cjs/components/__generated__/button.props.js +5 -1
- package/lib/cjs/components/__generated__/code.props.js +5 -0
- package/lib/cjs/components/__generated__/form.props.js +5 -0
- package/lib/cjs/components/__generated__/heading.props.js +5 -0
- package/lib/cjs/components/__generated__/image.props.js +5 -0
- package/lib/cjs/components/__generated__/input.props.js +11 -2
- package/lib/cjs/components/__generated__/italic.props.js +5 -0
- package/lib/cjs/components/__generated__/link-block.props.js +5 -1
- package/lib/cjs/components/__generated__/link.props.js +5 -1
- package/lib/cjs/components/__generated__/list-item.props.js +5 -0
- package/lib/cjs/components/__generated__/list.props.js +5 -0
- package/lib/cjs/components/__generated__/paragraph.props.js +5 -0
- package/lib/cjs/components/__generated__/rich-text-link.props.js +5 -1
- package/lib/cjs/components/__generated__/separator.props.js +5 -0
- package/lib/cjs/components/__generated__/span.props.js +5 -0
- package/lib/cjs/components/__generated__/subscript.props.js +5 -0
- package/lib/cjs/components/__generated__/superscript.props.js +5 -0
- package/lib/cjs/components/__generated__/text-block.props.js +5 -0
- package/lib/cjs/components/body.ws.js +0 -8
- package/lib/cjs/components/component-meta.js +6 -0
- package/lib/cjs/components/link-block.ws.js +1 -0
- package/lib/cjs/components/link.js +1 -1
- package/lib/cjs/components/link.ws.js +1 -0
- package/lib/components/__generated__/blockquote.props.js +5 -0
- package/lib/components/__generated__/body.props.js +5 -0
- package/lib/components/__generated__/bold.props.js +5 -0
- package/lib/components/__generated__/box.props.js +5 -0
- package/lib/components/__generated__/button.props.js +5 -1
- package/lib/components/__generated__/code.props.js +5 -0
- package/lib/components/__generated__/form.props.js +5 -0
- package/lib/components/__generated__/heading.props.js +5 -0
- package/lib/components/__generated__/image.props.js +5 -0
- package/lib/components/__generated__/input.props.js +11 -2
- package/lib/components/__generated__/italic.props.js +5 -0
- package/lib/components/__generated__/link-block.props.js +5 -1
- package/lib/components/__generated__/link.props.js +5 -1
- package/lib/components/__generated__/list-item.props.js +5 -0
- package/lib/components/__generated__/list.props.js +5 -0
- package/lib/components/__generated__/paragraph.props.js +5 -0
- package/lib/components/__generated__/rich-text-link.props.js +5 -1
- package/lib/components/__generated__/separator.props.js +5 -0
- package/lib/components/__generated__/span.props.js +5 -0
- package/lib/components/__generated__/subscript.props.js +5 -0
- package/lib/components/__generated__/superscript.props.js +5 -0
- package/lib/components/__generated__/text-block.props.js +5 -0
- package/lib/components/body.ws.js +0 -8
- package/lib/components/component-meta.js +6 -0
- package/lib/components/link-block.ws.js +2 -1
- package/lib/components/link.js +1 -1
- package/lib/components/link.ws.js +1 -0
- package/lib/types/app/index.d.ts +0 -1
- package/lib/types/components/component-meta.d.ts +29 -0
- package/lib/types/index.d.ts +1 -1
- package/package.json +13 -17
- package/src/app/custom-components/shared/remix-link.tsx +2 -2
- package/src/app/index.ts +0 -1
- package/src/components/__generated__/blockquote.props.ts +5 -0
- package/src/components/__generated__/body.props.ts +5 -0
- package/src/components/__generated__/bold.props.ts +5 -0
- package/src/components/__generated__/box.props.ts +5 -0
- package/src/components/__generated__/button.props.ts +5 -1
- package/src/components/__generated__/code.props.ts +5 -0
- package/src/components/__generated__/form.props.ts +5 -0
- package/src/components/__generated__/heading.props.ts +5 -0
- package/src/components/__generated__/image.props.ts +5 -0
- package/src/components/__generated__/input.props.ts +11 -2
- package/src/components/__generated__/italic.props.ts +5 -0
- package/src/components/__generated__/link-block.props.ts +5 -1
- package/src/components/__generated__/link.props.ts +5 -1
- package/src/components/__generated__/list-item.props.ts +5 -0
- package/src/components/__generated__/list.props.ts +5 -0
- package/src/components/__generated__/paragraph.props.ts +5 -0
- package/src/components/__generated__/rich-text-link.props.ts +5 -1
- package/src/components/__generated__/separator.props.ts +5 -0
- package/src/components/__generated__/span.props.ts +5 -0
- package/src/components/__generated__/subscript.props.ts +5 -0
- package/src/components/__generated__/superscript.props.ts +5 -0
- package/src/components/__generated__/text-block.props.ts +5 -0
- package/src/components/body.ws.tsx +0 -10
- package/src/components/component-meta.ts +8 -0
- package/src/components/link-block.ws.tsx +2 -1
- package/src/components/link.tsx +1 -1
- package/src/components/link.ws.tsx +1 -0
- package/src/index.ts +1 -0
- package/lib/app/handle-request.server.js +0 -16
- package/lib/cjs/app/handle-request.server.js +0 -36
- package/lib/types/app/handle-request.server.d.ts +0 -2
- package/src/app/handle-request.server.tsx +0 -21
|
@@ -17,6 +17,7 @@ export const props: Record<string, PropMeta> = {
|
|
|
17
17
|
type: "boolean",
|
|
18
18
|
},
|
|
19
19
|
accessKey: { required: false, control: "text", type: "string" },
|
|
20
|
+
autoFocus: { required: false, control: "boolean", type: "boolean" },
|
|
20
21
|
className: { required: false, control: "text", type: "string" },
|
|
21
22
|
contentEditable: { required: false, control: "text", type: "string" },
|
|
22
23
|
contextMenu: { required: false, control: "text", type: "string" },
|
|
@@ -25,6 +26,7 @@ export const props: Record<string, PropMeta> = {
|
|
|
25
26
|
hidden: { required: false, control: "boolean", type: "boolean" },
|
|
26
27
|
id: { required: false, control: "text", type: "string" },
|
|
27
28
|
lang: { required: false, control: "text", type: "string" },
|
|
29
|
+
nonce: { required: false, control: "text", type: "string" },
|
|
28
30
|
placeholder: { required: false, control: "text", type: "string" },
|
|
29
31
|
spellCheck: { required: false, control: "boolean", type: "boolean" },
|
|
30
32
|
tabIndex: { required: false, control: "number", type: "number" },
|
|
@@ -37,11 +39,14 @@ export const props: Record<string, PropMeta> = {
|
|
|
37
39
|
radioGroup: { required: false, control: "text", type: "string" },
|
|
38
40
|
role: { required: false, control: "text", type: "string" },
|
|
39
41
|
about: { required: false, control: "text", type: "string" },
|
|
42
|
+
content: { required: false, control: "text", type: "string" },
|
|
40
43
|
datatype: { required: false, control: "text", type: "string" },
|
|
41
44
|
inlist: { required: false, control: "text", type: "string" },
|
|
42
45
|
prefix: { required: false, control: "text", type: "string" },
|
|
43
46
|
property: { required: false, control: "text", type: "string" },
|
|
47
|
+
rel: { required: false, control: "text", type: "string" },
|
|
44
48
|
resource: { required: false, control: "text", type: "string" },
|
|
49
|
+
rev: { required: false, control: "text", type: "string" },
|
|
45
50
|
typeof: { required: false, control: "text", type: "string" },
|
|
46
51
|
vocab: { required: false, control: "text", type: "string" },
|
|
47
52
|
autoCapitalize: { required: false, control: "text", type: "string" },
|
|
@@ -17,6 +17,7 @@ export const props: Record<string, PropMeta> = {
|
|
|
17
17
|
type: "boolean",
|
|
18
18
|
},
|
|
19
19
|
accessKey: { required: false, control: "text", type: "string" },
|
|
20
|
+
autoFocus: { required: false, control: "boolean", type: "boolean" },
|
|
20
21
|
className: { required: false, control: "text", type: "string" },
|
|
21
22
|
contentEditable: { required: false, control: "text", type: "string" },
|
|
22
23
|
contextMenu: { required: false, control: "text", type: "string" },
|
|
@@ -25,6 +26,7 @@ export const props: Record<string, PropMeta> = {
|
|
|
25
26
|
hidden: { required: false, control: "boolean", type: "boolean" },
|
|
26
27
|
id: { required: false, control: "text", type: "string" },
|
|
27
28
|
lang: { required: false, control: "text", type: "string" },
|
|
29
|
+
nonce: { required: false, control: "text", type: "string" },
|
|
28
30
|
placeholder: { required: false, control: "text", type: "string" },
|
|
29
31
|
spellCheck: { required: false, control: "boolean", type: "boolean" },
|
|
30
32
|
tabIndex: { required: false, control: "number", type: "number" },
|
|
@@ -37,11 +39,14 @@ export const props: Record<string, PropMeta> = {
|
|
|
37
39
|
radioGroup: { required: false, control: "text", type: "string" },
|
|
38
40
|
role: { required: false, control: "text", type: "string" },
|
|
39
41
|
about: { required: false, control: "text", type: "string" },
|
|
42
|
+
content: { required: false, control: "text", type: "string" },
|
|
40
43
|
datatype: { required: false, control: "text", type: "string" },
|
|
41
44
|
inlist: { required: false, control: "text", type: "string" },
|
|
42
45
|
prefix: { required: false, control: "text", type: "string" },
|
|
43
46
|
property: { required: false, control: "text", type: "string" },
|
|
47
|
+
rel: { required: false, control: "text", type: "string" },
|
|
44
48
|
resource: { required: false, control: "text", type: "string" },
|
|
49
|
+
rev: { required: false, control: "text", type: "string" },
|
|
45
50
|
typeof: { required: false, control: "text", type: "string" },
|
|
46
51
|
vocab: { required: false, control: "text", type: "string" },
|
|
47
52
|
autoCapitalize: { required: false, control: "text", type: "string" },
|
|
@@ -17,6 +17,7 @@ export const props: Record<string, PropMeta> = {
|
|
|
17
17
|
type: "boolean",
|
|
18
18
|
},
|
|
19
19
|
accessKey: { required: false, control: "text", type: "string" },
|
|
20
|
+
autoFocus: { required: false, control: "boolean", type: "boolean" },
|
|
20
21
|
className: { required: false, control: "text", type: "string" },
|
|
21
22
|
contentEditable: { required: false, control: "text", type: "string" },
|
|
22
23
|
contextMenu: { required: false, control: "text", type: "string" },
|
|
@@ -25,6 +26,7 @@ export const props: Record<string, PropMeta> = {
|
|
|
25
26
|
hidden: { required: false, control: "boolean", type: "boolean" },
|
|
26
27
|
id: { required: false, control: "text", type: "string" },
|
|
27
28
|
lang: { required: false, control: "text", type: "string" },
|
|
29
|
+
nonce: { required: false, control: "text", type: "string" },
|
|
28
30
|
placeholder: { required: false, control: "text", type: "string" },
|
|
29
31
|
spellCheck: { required: false, control: "boolean", type: "boolean" },
|
|
30
32
|
tabIndex: { required: false, control: "number", type: "number" },
|
|
@@ -37,11 +39,14 @@ export const props: Record<string, PropMeta> = {
|
|
|
37
39
|
radioGroup: { required: false, control: "text", type: "string" },
|
|
38
40
|
role: { required: false, control: "text", type: "string" },
|
|
39
41
|
about: { required: false, control: "text", type: "string" },
|
|
42
|
+
content: { required: false, control: "text", type: "string" },
|
|
40
43
|
datatype: { required: false, control: "text", type: "string" },
|
|
41
44
|
inlist: { required: false, control: "text", type: "string" },
|
|
42
45
|
prefix: { required: false, control: "text", type: "string" },
|
|
43
46
|
property: { required: false, control: "text", type: "string" },
|
|
47
|
+
rel: { required: false, control: "text", type: "string" },
|
|
44
48
|
resource: { required: false, control: "text", type: "string" },
|
|
49
|
+
rev: { required: false, control: "text", type: "string" },
|
|
45
50
|
typeof: { required: false, control: "text", type: "string" },
|
|
46
51
|
vocab: { required: false, control: "text", type: "string" },
|
|
47
52
|
autoCapitalize: { required: false, control: "text", type: "string" },
|
|
@@ -15,11 +15,6 @@ const presetStyle = {
|
|
|
15
15
|
value: 100,
|
|
16
16
|
},
|
|
17
17
|
|
|
18
|
-
backgroundColor: {
|
|
19
|
-
type: "keyword",
|
|
20
|
-
value: "white",
|
|
21
|
-
},
|
|
22
|
-
|
|
23
18
|
fontFamily: {
|
|
24
19
|
type: "keyword",
|
|
25
20
|
value: "Arial",
|
|
@@ -36,11 +31,6 @@ const presetStyle = {
|
|
|
36
31
|
unit: "number",
|
|
37
32
|
value: 1.5,
|
|
38
33
|
},
|
|
39
|
-
|
|
40
|
-
color: {
|
|
41
|
-
type: "keyword",
|
|
42
|
-
value: "#232323",
|
|
43
|
-
},
|
|
44
34
|
},
|
|
45
35
|
} as const satisfies Record<typeof defaultTag, Style>;
|
|
46
36
|
|
|
@@ -23,6 +23,13 @@ export const componentCategories = [
|
|
|
23
23
|
"forms",
|
|
24
24
|
] as const;
|
|
25
25
|
|
|
26
|
+
export const ComponentState = z.object({
|
|
27
|
+
selector: z.string(),
|
|
28
|
+
label: z.string(),
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
export type ComponentState = z.infer<typeof ComponentState>;
|
|
32
|
+
|
|
26
33
|
const WsComponentMeta = z.object({
|
|
27
34
|
category: z.enum(componentCategories).optional(),
|
|
28
35
|
// container - can accept other components with dnd
|
|
@@ -40,6 +47,7 @@ const WsComponentMeta = z.object({
|
|
|
40
47
|
label: z.string(),
|
|
41
48
|
Icon: z.function(),
|
|
42
49
|
presetStyle: z.optional(z.any()),
|
|
50
|
+
states: z.optional(z.array(ComponentState)),
|
|
43
51
|
children: z.optional(z.array(z.string())),
|
|
44
52
|
});
|
|
45
53
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BoxLinkIcon } from "@webstudio-is/icons";
|
|
2
2
|
import type { WsComponentMeta, WsComponentPropsMeta } from "./component-meta";
|
|
3
3
|
import { props } from "./__generated__/link-block.props";
|
|
4
|
-
import { propsMeta as linkPropsMeta } from "./link.ws";
|
|
4
|
+
import { meta as linkMeta, propsMeta as linkPropsMeta } from "./link.ws";
|
|
5
5
|
import type { defaultTag } from "./link-block";
|
|
6
6
|
import type { Style } from "@webstudio-is/css-data";
|
|
7
7
|
import { a } from "../css/normalize";
|
|
@@ -21,6 +21,7 @@ export const meta: WsComponentMeta = {
|
|
|
21
21
|
type: "container",
|
|
22
22
|
label: "Link Block",
|
|
23
23
|
Icon: BoxLinkIcon,
|
|
24
|
+
states: linkMeta.states,
|
|
24
25
|
presetStyle,
|
|
25
26
|
};
|
|
26
27
|
|
package/src/components/link.tsx
CHANGED
|
@@ -23,7 +23,7 @@ export const Link = forwardRef<HTMLAnchorElement, Props>((props, ref) => {
|
|
|
23
23
|
|
|
24
24
|
switch (href?.type) {
|
|
25
25
|
case "page":
|
|
26
|
-
url = href.page.path;
|
|
26
|
+
url = href.page.path === "" ? "/" : href.page.path;
|
|
27
27
|
if (href.hash !== undefined) {
|
|
28
28
|
url += `#${href.hash}`;
|
|
29
29
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { renderToString } from "react-dom/server";
|
|
3
|
-
import { RemixServer } from "@remix-run/react";
|
|
4
|
-
const handleRequest = (request, responseStatusCode, responseHeaders, remixContext) => {
|
|
5
|
-
const markup = renderToString(
|
|
6
|
-
/* @__PURE__ */ jsx(RemixServer, { context: remixContext, url: request.url })
|
|
7
|
-
);
|
|
8
|
-
responseHeaders.set("Content-Type", "text/html");
|
|
9
|
-
return new Response(`<!DOCTYPE html>${markup}`, {
|
|
10
|
-
status: responseStatusCode,
|
|
11
|
-
headers: responseHeaders
|
|
12
|
-
});
|
|
13
|
-
};
|
|
14
|
-
export {
|
|
15
|
-
handleRequest
|
|
16
|
-
};
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var handle_request_server_exports = {};
|
|
20
|
-
__export(handle_request_server_exports, {
|
|
21
|
-
handleRequest: () => handleRequest
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(handle_request_server_exports);
|
|
24
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
25
|
-
var import_server = require("react-dom/server");
|
|
26
|
-
var import_react = require("@remix-run/react");
|
|
27
|
-
const handleRequest = (request, responseStatusCode, responseHeaders, remixContext) => {
|
|
28
|
-
const markup = (0, import_server.renderToString)(
|
|
29
|
-
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.RemixServer, { context: remixContext, url: request.url })
|
|
30
|
-
);
|
|
31
|
-
responseHeaders.set("Content-Type", "text/html");
|
|
32
|
-
return new Response(`<!DOCTYPE html>${markup}`, {
|
|
33
|
-
status: responseStatusCode,
|
|
34
|
-
headers: responseHeaders
|
|
35
|
-
});
|
|
36
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { renderToString } from "react-dom/server";
|
|
2
|
-
import { RemixServer } from "@remix-run/react";
|
|
3
|
-
import type { EntryContext } from "@remix-run/node";
|
|
4
|
-
|
|
5
|
-
export const handleRequest = (
|
|
6
|
-
request: Request,
|
|
7
|
-
responseStatusCode: number,
|
|
8
|
-
responseHeaders: Headers,
|
|
9
|
-
remixContext: EntryContext
|
|
10
|
-
) => {
|
|
11
|
-
const markup = renderToString(
|
|
12
|
-
<RemixServer context={remixContext} url={request.url} />
|
|
13
|
-
);
|
|
14
|
-
|
|
15
|
-
responseHeaders.set("Content-Type", "text/html");
|
|
16
|
-
|
|
17
|
-
return new Response(`<!DOCTYPE html>${markup}`, {
|
|
18
|
-
status: responseStatusCode,
|
|
19
|
-
headers: responseHeaders,
|
|
20
|
-
});
|
|
21
|
-
};
|