@webstudio-is/react-sdk 0.68.0 → 0.69.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/cjs/components/__generated__/image.props.js +6 -3
- package/lib/cjs/components/__generated__/text-block.props.js +7 -0
- package/lib/cjs/components/blockquote.ws.js +9 -2
- package/lib/cjs/components/box.ws.js +2 -1
- package/lib/cjs/components/button.ws.js +3 -1
- package/lib/cjs/components/checkbox-field.ws.js +12 -6
- package/lib/cjs/components/checkbox.ws.js +1 -0
- package/lib/cjs/components/code-text.ws.js +8 -1
- package/lib/cjs/components/component-meta.js +6 -3
- package/lib/cjs/components/components-utils.js +0 -28
- package/lib/cjs/components/form.ws.js +32 -25
- package/lib/cjs/components/fragment.ws.js +2 -1
- package/lib/cjs/components/heading.ws.js +10 -3
- package/lib/cjs/components/html-embed.ws.js +3 -1
- package/lib/cjs/components/image.js +27 -19
- package/lib/cjs/components/image.ws.js +4 -2
- package/lib/cjs/components/index.js +1 -29
- package/lib/cjs/components/input.ws.js +1 -0
- package/lib/cjs/components/label.ws.js +8 -1
- package/lib/cjs/components/link-block.ws.js +2 -1
- package/lib/cjs/components/link.ws.js +8 -1
- package/lib/cjs/components/list-item.ws.js +11 -4
- package/lib/cjs/components/list.ws.js +2 -2
- package/lib/cjs/components/paragraph.ws.js +10 -3
- package/lib/cjs/components/radio-button-field.ws.js +12 -6
- package/lib/cjs/components/radio-button.ws.js +1 -0
- package/lib/cjs/components/rich-text-link.ws.js +1 -1
- package/lib/cjs/components/separator.ws.js +1 -1
- package/lib/cjs/components/slot.ws.js +3 -1
- package/lib/cjs/components/text-block.js +5 -2
- package/lib/cjs/components/text-block.ws.js +11 -3
- package/lib/cjs/components/textarea.ws.js +1 -0
- package/lib/cjs/embed-template.js +2 -1
- package/lib/cjs/index.js +4 -5
- package/lib/cjs/tree/create-elements-tree.js +8 -8
- package/lib/cjs/tree/root.js +2 -6
- package/lib/cjs/tree/webstudio-component.js +2 -2
- package/lib/components/__generated__/image.props.js +6 -3
- package/lib/components/__generated__/text-block.props.js +7 -0
- package/lib/components/blockquote.ws.js +9 -2
- package/lib/components/box.ws.js +2 -1
- package/lib/components/button.ws.js +3 -1
- package/lib/components/checkbox-field.ws.js +12 -6
- package/lib/components/checkbox.ws.js +1 -0
- package/lib/components/code-text.ws.js +8 -1
- package/lib/components/component-meta.js +6 -3
- package/lib/components/components-utils.js +0 -14
- package/lib/components/form.ws.js +32 -25
- package/lib/components/fragment.ws.js +2 -1
- package/lib/components/heading.ws.js +10 -3
- package/lib/components/html-embed.ws.js +3 -1
- package/lib/components/image.js +34 -20
- package/lib/components/image.ws.js +4 -2
- package/lib/components/index.js +1 -29
- package/lib/components/input.ws.js +1 -0
- package/lib/components/label.ws.js +8 -1
- package/lib/components/link-block.ws.js +2 -1
- package/lib/components/link.ws.js +8 -1
- package/lib/components/list-item.ws.js +11 -4
- package/lib/components/list.ws.js +2 -2
- package/lib/components/paragraph.ws.js +10 -3
- package/lib/components/radio-button-field.ws.js +12 -6
- package/lib/components/radio-button.ws.js +1 -0
- package/lib/components/rich-text-link.ws.js +1 -1
- package/lib/components/separator.ws.js +1 -1
- package/lib/components/slot.ws.js +3 -1
- package/lib/components/text-block.js +9 -3
- package/lib/components/text-block.ws.js +11 -3
- package/lib/components/textarea.ws.js +1 -0
- package/lib/embed-template.js +2 -1
- package/lib/index.js +4 -9
- package/lib/tree/create-elements-tree.js +8 -8
- package/lib/tree/root.js +2 -6
- package/lib/tree/webstudio-component.js +2 -2
- package/lib/types/components/component-meta.d.ts +363 -1356
- package/lib/types/components/components-utils.d.ts +2 -17
- package/lib/types/components/image.d.ts +5 -1
- package/lib/types/components/image.stories.d.ts +10 -2
- package/lib/types/components/index.d.ts +0 -15
- package/lib/types/components/text-block.d.ts +6 -2
- package/lib/types/components/text-block.stories.d.ts +6 -2
- package/lib/types/css/css.d.ts +14 -4
- package/lib/types/css/global-rules.d.ts +14 -4
- package/lib/types/css/normalize.d.ts +611 -611
- package/lib/types/css/style-rules.d.ts +2 -187
- package/lib/types/embed-template.d.ts +543 -167
- package/lib/types/index.d.ts +2 -2
- package/lib/types/props.d.ts +44 -18
- package/lib/types/tree/create-elements-tree.d.ts +4 -4
- package/lib/types/tree/root.d.ts +3 -5
- package/lib/types/tree/webstudio-component.d.ts +3 -3
- package/package.json +24 -13
- package/src/components/__generated__/image.props.ts +5 -2
- package/src/components/__generated__/text-block.props.ts +7 -0
- package/src/components/blockquote.ws.tsx +9 -2
- package/src/components/box.tsx +1 -1
- package/src/components/box.ws.ts +1 -0
- package/src/components/button.ws.tsx +2 -0
- package/src/components/checkbox-field.ws.tsx +12 -6
- package/src/components/checkbox.ws.tsx +1 -0
- package/src/components/code-text.ws.tsx +8 -1
- package/src/components/component-meta.ts +6 -3
- package/src/components/components-utils.ts +2 -31
- package/src/components/form.ws.tsx +32 -25
- package/src/components/fragment.ws.ts +1 -0
- package/src/components/heading.tsx +1 -1
- package/src/components/heading.ws.tsx +9 -2
- package/src/components/html-embed.ws.ts +2 -0
- package/src/components/image.tsx +54 -26
- package/src/components/image.ws.tsx +5 -1
- package/src/components/index.ts +0 -48
- package/src/components/input.ws.tsx +1 -0
- package/src/components/label.ws.tsx +8 -1
- package/src/components/link-block.ws.tsx +1 -0
- package/src/components/link.ws.tsx +8 -1
- package/src/components/list-item.ws.tsx +10 -3
- package/src/components/list.ws.tsx +2 -2
- package/src/components/paragraph.ws.tsx +9 -2
- package/src/components/radio-button-field.ws.tsx +12 -6
- package/src/components/radio-button.ws.tsx +1 -0
- package/src/components/rich-text-link.ws.tsx +1 -1
- package/src/components/separator.ws.tsx +1 -1
- package/src/components/slot.ws.ts +2 -0
- package/src/components/text-block.tsx +16 -5
- package/src/components/text-block.ws.tsx +10 -2
- package/src/components/textarea.ws.tsx +1 -0
- package/src/embed-template.ts +11 -3
- package/src/index.ts +2 -5
- package/src/props.test.ts +0 -1
- package/src/tree/create-elements-tree.tsx +12 -12
- package/src/tree/root.ts +4 -9
- package/src/tree/webstudio-component.tsx +4 -4
- package/lib/app/custom-components/__generated__/form.props.js +0 -411
- package/lib/app/custom-components/__generated__/image.props.js +0 -442
- package/lib/app/custom-components/__generated__/link-block.props.js +0 -432
- package/lib/app/custom-components/__generated__/link.props.js +0 -432
- package/lib/app/custom-components/__generated__/rich-text-link.props.js +0 -432
- package/lib/app/custom-components/form.js +0 -65
- package/lib/app/custom-components/form.ws.js +0 -81
- package/lib/app/custom-components/image.js +0 -40
- package/lib/app/custom-components/index.js +0 -29
- package/lib/app/custom-components/link-block.js +0 -6
- package/lib/app/custom-components/link.js +0 -6
- package/lib/app/custom-components/rich-text-link.js +0 -6
- package/lib/app/custom-components/shared/remix-link.js +0 -22
- package/lib/cjs/app/custom-components/__generated__/form.props.js +0 -431
- package/lib/cjs/app/custom-components/__generated__/image.props.js +0 -462
- package/lib/cjs/app/custom-components/__generated__/link-block.props.js +0 -452
- package/lib/cjs/app/custom-components/__generated__/link.props.js +0 -452
- package/lib/cjs/app/custom-components/__generated__/rich-text-link.props.js +0 -452
- package/lib/cjs/app/custom-components/form.js +0 -81
- package/lib/cjs/app/custom-components/form.ws.js +0 -101
- package/lib/cjs/app/custom-components/image.js +0 -54
- package/lib/cjs/app/custom-components/index.js +0 -49
- package/lib/cjs/app/custom-components/link-block.js +0 -26
- package/lib/cjs/app/custom-components/link.js +0 -26
- package/lib/cjs/app/custom-components/rich-text-link.js +0 -26
- package/lib/cjs/app/custom-components/shared/remix-link.js +0 -42
- package/lib/types/app/custom-components/__generated__/form.props.d.ts +0 -2
- package/lib/types/app/custom-components/__generated__/image.props.d.ts +0 -2
- package/lib/types/app/custom-components/__generated__/link-block.props.d.ts +0 -2
- package/lib/types/app/custom-components/__generated__/link.props.d.ts +0 -2
- package/lib/types/app/custom-components/__generated__/rich-text-link.props.d.ts +0 -2
- package/lib/types/app/custom-components/form.d.ts +0 -5
- package/lib/types/app/custom-components/form.ws.d.ts +0 -3
- package/lib/types/app/custom-components/image.d.ts +0 -6
- package/lib/types/app/custom-components/index.d.ts +0 -31
- package/lib/types/app/custom-components/link-block.d.ts +0 -6
- package/lib/types/app/custom-components/link.d.ts +0 -6
- package/lib/types/app/custom-components/rich-text-link.d.ts +0 -6
- package/lib/types/app/custom-components/shared/remix-link.d.ts +0 -10
- package/src/app/custom-components/__generated__/form.props.ts +0 -456
- package/src/app/custom-components/__generated__/image.props.ts +0 -487
- package/src/app/custom-components/__generated__/link-block.props.ts +0 -477
- package/src/app/custom-components/__generated__/link.props.ts +0 -477
- package/src/app/custom-components/__generated__/rich-text-link.props.ts +0 -477
- package/src/app/custom-components/form.tsx +0 -111
- package/src/app/custom-components/form.ws.tsx +0 -86
- package/src/app/custom-components/image.tsx +0 -55
- package/src/app/custom-components/index.ts +0 -28
- package/src/app/custom-components/link-block.tsx +0 -4
- package/src/app/custom-components/link.tsx +0 -4
- package/src/app/custom-components/rich-text-link.tsx +0 -4
- package/src/app/custom-components/shared/remix-link.tsx +0 -28
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
forwardRef,
|
|
3
|
-
useMemo,
|
|
4
|
-
type ComponentPropsWithoutRef,
|
|
5
|
-
type ElementRef,
|
|
6
|
-
} from "react";
|
|
7
|
-
import {
|
|
8
|
-
Image as WebstudioImage,
|
|
9
|
-
createImageLoader,
|
|
10
|
-
} from "@webstudio-is/image";
|
|
11
|
-
import { Image as SdkImage } from "../../components/image";
|
|
12
|
-
import { usePropAsset, getInstanceIdFromComponentProps } from "../../props";
|
|
13
|
-
import { getParams } from "../params";
|
|
14
|
-
|
|
15
|
-
const defaultTag = "img";
|
|
16
|
-
|
|
17
|
-
type Props = ComponentPropsWithoutRef<typeof WebstudioImage>;
|
|
18
|
-
|
|
19
|
-
export const Image = forwardRef<ElementRef<typeof defaultTag>, Props>(
|
|
20
|
-
(props, ref) => {
|
|
21
|
-
const asset = usePropAsset(getInstanceIdFromComponentProps(props), "src");
|
|
22
|
-
|
|
23
|
-
const loader = useMemo(() => {
|
|
24
|
-
const params = getParams();
|
|
25
|
-
return createImageLoader({ imageBaseUrl: params.imageBaseUrl });
|
|
26
|
-
}, []);
|
|
27
|
-
|
|
28
|
-
const src = asset?.name ?? props.src;
|
|
29
|
-
|
|
30
|
-
if (asset == null || loader == null) {
|
|
31
|
-
return <SdkImage key={src} {...props} src={src} ref={ref} />;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return (
|
|
35
|
-
<WebstudioImage
|
|
36
|
-
/**
|
|
37
|
-
* `key` is needed to recreate the image in case of asset change in builder,
|
|
38
|
-
* this gives immediate feedback when an asset is changed.
|
|
39
|
-
* Also, it visually fixes image distortion when another asset has a seriously different aspectRatio
|
|
40
|
-
* (we change aspectRatio CSS prop on asset change)
|
|
41
|
-
*
|
|
42
|
-
* In non-builder mode, key on images are usually also a good idea,
|
|
43
|
-
* prevents showing outdated images on route change.
|
|
44
|
-
**/
|
|
45
|
-
key={src}
|
|
46
|
-
{...props}
|
|
47
|
-
loader={loader}
|
|
48
|
-
src={src}
|
|
49
|
-
ref={ref}
|
|
50
|
-
/>
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
Image.displayName = "Image";
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { imageProps } from "@webstudio-is/image";
|
|
2
|
-
import type { WsComponentPropsMeta } from "../../components/component-meta";
|
|
3
|
-
import { Image } from "./image";
|
|
4
|
-
import { Link } from "./link";
|
|
5
|
-
import { LinkBlock } from "./link-block";
|
|
6
|
-
import { RichTextLink } from "./rich-text-link";
|
|
7
|
-
import { Form } from "./form";
|
|
8
|
-
import { meta as formMeta, propsMeta as formPropsMeta } from "./form.ws";
|
|
9
|
-
|
|
10
|
-
export const customComponents = {
|
|
11
|
-
Image,
|
|
12
|
-
Link,
|
|
13
|
-
RichTextLink,
|
|
14
|
-
LinkBlock,
|
|
15
|
-
Form,
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
export const customComponentPropsMetas: Record<string, WsComponentPropsMeta> = {
|
|
19
|
-
Image: {
|
|
20
|
-
props: imageProps,
|
|
21
|
-
initialProps: ["src", "width", "height", "alt", "loading"],
|
|
22
|
-
},
|
|
23
|
-
Form: formPropsMeta,
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
export const customComponentMetas = {
|
|
27
|
-
Form: formMeta,
|
|
28
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { NavLink as RemixLink } from "@remix-run/react";
|
|
2
|
-
import type { ComponentPropsWithoutRef } from "react";
|
|
3
|
-
import { forwardRef } from "react";
|
|
4
|
-
import type { Link } from "../../../components/link";
|
|
5
|
-
import { usePropUrl, getInstanceIdFromComponentProps } from "../../../props";
|
|
6
|
-
|
|
7
|
-
type LinkComponent = typeof Link;
|
|
8
|
-
type LinkProps = ComponentPropsWithoutRef<LinkComponent>;
|
|
9
|
-
|
|
10
|
-
export const wrapLinkComponent = (BaseLink: LinkComponent) => {
|
|
11
|
-
const Component: LinkComponent = forwardRef((props: LinkProps, ref) => {
|
|
12
|
-
const href = usePropUrl(getInstanceIdFromComponentProps(props), "href");
|
|
13
|
-
|
|
14
|
-
if (href?.type === "page") {
|
|
15
|
-
let to = href.page.path === "" ? "/" : href.page.path;
|
|
16
|
-
if (href.hash !== undefined) {
|
|
17
|
-
to += `#${href.hash}`;
|
|
18
|
-
}
|
|
19
|
-
return <RemixLink {...props} to={to} ref={ref} />;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return <BaseLink {...props} ref={ref} />;
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
Component.displayName = BaseLink.displayName;
|
|
26
|
-
|
|
27
|
-
return Component;
|
|
28
|
-
};
|