@webstudio-is/react-sdk 0.28.0 → 0.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/lib/app/custom-components/index.js +12 -6
  2. package/lib/app/custom-components/shared/remix-link.js +14 -8
  3. package/lib/app/root.js +0 -2
  4. package/lib/cjs/app/custom-components/index.cjs +12 -6
  5. package/lib/cjs/app/custom-components/shared/remix-link.cjs +14 -8
  6. package/lib/cjs/app/root.cjs +0 -2
  7. package/lib/cjs/components/__generated__/body.props.json +557 -305
  8. package/lib/cjs/components/__generated__/bold.props.json +557 -305
  9. package/lib/cjs/components/__generated__/box.props.json +577 -320
  10. package/lib/cjs/components/__generated__/button.props.json +616 -339
  11. package/lib/cjs/components/__generated__/form.props.json +597 -329
  12. package/lib/cjs/components/__generated__/heading.props.json +566 -309
  13. package/lib/cjs/components/__generated__/image.props.json +638 -352
  14. package/lib/cjs/components/__generated__/input.props.json +725 -405
  15. package/lib/cjs/components/__generated__/italic.props.json +557 -305
  16. package/lib/cjs/components/__generated__/link.props.json +616 -343
  17. package/lib/cjs/components/__generated__/paragraph.props.json +557 -305
  18. package/lib/cjs/components/__generated__/rich-text-link.props.json +616 -343
  19. package/lib/cjs/components/__generated__/span.props.json +557 -305
  20. package/lib/cjs/components/__generated__/subscript.props.json +557 -305
  21. package/lib/cjs/components/__generated__/superscript.props.json +557 -305
  22. package/lib/cjs/components/__generated__/text-block.props.json +557 -305
  23. package/lib/cjs/components/body.ws.cjs +6 -3
  24. package/lib/cjs/components/bold.ws.cjs +7 -4
  25. package/lib/cjs/components/box.ws.cjs +8 -4
  26. package/lib/cjs/components/button.ws.cjs +8 -4
  27. package/lib/cjs/components/component-type.cjs +21 -56
  28. package/lib/cjs/components/form.ws.cjs +7 -4
  29. package/lib/cjs/components/heading.ws.cjs +8 -4
  30. package/lib/cjs/components/image.ws.cjs +11 -5
  31. package/lib/cjs/components/index.cjs +165 -111
  32. package/lib/cjs/components/input.ws.cjs +7 -4
  33. package/lib/cjs/components/italic.ws.cjs +7 -4
  34. package/lib/cjs/components/link.ws.cjs +8 -4
  35. package/lib/cjs/components/paragraph.ws.cjs +7 -4
  36. package/lib/cjs/components/rich-text-link.ws.cjs +7 -4
  37. package/lib/cjs/components/span.ws.cjs +7 -4
  38. package/lib/cjs/components/subscript.ws.cjs +7 -4
  39. package/lib/cjs/components/superscript.ws.cjs +7 -4
  40. package/lib/cjs/components/text-block.ws.cjs +7 -4
  41. package/lib/cjs/index.cjs +3 -2
  42. package/lib/cjs/tree/session-storage-polyfill.cjs +1 -1
  43. package/lib/components/__generated__/body.props.json +557 -305
  44. package/lib/components/__generated__/bold.props.json +557 -305
  45. package/lib/components/__generated__/box.props.json +577 -320
  46. package/lib/components/__generated__/button.props.json +616 -339
  47. package/lib/components/__generated__/form.props.json +597 -329
  48. package/lib/components/__generated__/heading.props.json +566 -309
  49. package/lib/components/__generated__/image.props.json +638 -352
  50. package/lib/components/__generated__/input.props.json +725 -405
  51. package/lib/components/__generated__/italic.props.json +557 -305
  52. package/lib/components/__generated__/link.props.json +616 -343
  53. package/lib/components/__generated__/paragraph.props.json +557 -305
  54. package/lib/components/__generated__/rich-text-link.props.json +616 -343
  55. package/lib/components/__generated__/span.props.json +557 -305
  56. package/lib/components/__generated__/subscript.props.json +557 -305
  57. package/lib/components/__generated__/superscript.props.json +557 -305
  58. package/lib/components/__generated__/text-block.props.json +557 -305
  59. package/lib/components/body.ws.js +6 -3
  60. package/lib/components/bold.ws.js +7 -4
  61. package/lib/components/box.ws.js +8 -4
  62. package/lib/components/button.ws.js +8 -4
  63. package/lib/components/component-type.js +21 -56
  64. package/lib/components/form.ws.js +7 -4
  65. package/lib/components/heading.ws.js +8 -4
  66. package/lib/components/image.ws.js +11 -5
  67. package/lib/components/index.js +117 -57
  68. package/lib/components/input.ws.js +7 -4
  69. package/lib/components/italic.ws.js +7 -4
  70. package/lib/components/link.ws.js +8 -4
  71. package/lib/components/paragraph.ws.js +7 -4
  72. package/lib/components/rich-text-link.ws.js +7 -4
  73. package/lib/components/span.ws.js +7 -4
  74. package/lib/components/subscript.ws.js +7 -4
  75. package/lib/components/superscript.ws.js +7 -4
  76. package/lib/components/text-block.ws.js +7 -4
  77. package/lib/index.js +5 -3
  78. package/lib/tree/session-storage-polyfill.js +1 -1
  79. package/package.json +8 -8
  80. package/src/app/custom-components/image.tsx +2 -2
  81. package/src/app/custom-components/index.ts +11 -5
  82. package/src/app/custom-components/shared/remix-link.tsx +26 -7
  83. package/src/app/root.tsx +0 -2
  84. package/src/components/__generated__/body.props.json +557 -305
  85. package/src/components/__generated__/bold.props.json +557 -305
  86. package/src/components/__generated__/box.props.json +577 -320
  87. package/src/components/__generated__/button.props.json +616 -339
  88. package/src/components/__generated__/form.props.json +597 -329
  89. package/src/components/__generated__/heading.props.json +566 -309
  90. package/src/components/__generated__/image.props.json +638 -352
  91. package/src/components/__generated__/input.props.json +725 -405
  92. package/src/components/__generated__/italic.props.json +557 -305
  93. package/src/components/__generated__/link.props.json +616 -343
  94. package/src/components/__generated__/paragraph.props.json +557 -305
  95. package/src/components/__generated__/rich-text-link.props.json +616 -343
  96. package/src/components/__generated__/span.props.json +557 -305
  97. package/src/components/__generated__/subscript.props.json +557 -305
  98. package/src/components/__generated__/superscript.props.json +557 -305
  99. package/src/components/__generated__/text-block.props.json +557 -305
  100. package/src/components/body.ws.tsx +5 -4
  101. package/src/components/bold.ws.tsx +5 -4
  102. package/src/components/box.ws.ts +6 -4
  103. package/src/components/button.ws.tsx +6 -4
  104. package/src/components/component-type.ts +23 -63
  105. package/src/components/form.ws.tsx +5 -4
  106. package/src/components/heading.ws.tsx +6 -4
  107. package/src/components/image.ws.tsx +9 -5
  108. package/src/components/index.test.ts +2 -24
  109. package/src/components/index.ts +155 -81
  110. package/src/components/input.ws.tsx +5 -4
  111. package/src/components/italic.ws.tsx +5 -4
  112. package/src/components/link.ws.tsx +6 -4
  113. package/src/components/paragraph.ws.tsx +5 -4
  114. package/src/components/rich-text-link.ws.tsx +5 -4
  115. package/src/components/span.ws.tsx +5 -4
  116. package/src/components/subscript.ws.tsx +5 -4
  117. package/src/components/superscript.ws.tsx +5 -4
  118. package/src/components/text-block.ws.tsx +5 -4
  119. package/src/css/breakpoints.ts +1 -1
  120. package/src/index.ts +6 -2
  121. package/src/props.ts +1 -1
  122. package/src/tree/create-elements-tree.tsx +3 -3
  123. package/src/tree/session-storage-polyfill.tsx +1 -1
@@ -1,12 +1,13 @@
1
1
  import { Link2Icon } from "@webstudio-is/icons";
2
- import type { WsComponentMeta, MetaProps } from "./component-type";
2
+ import { type WsComponentMeta, WsComponentPropsMeta } from "./component-type";
3
3
  import props from "./__generated__/rich-text-link.props.json";
4
4
 
5
- const meta: WsComponentMeta = {
5
+ export const meta: WsComponentMeta = {
6
6
  type: "rich-text-child",
7
7
  label: "Link",
8
8
  Icon: Link2Icon,
9
- props: props as MetaProps,
10
9
  };
11
10
 
12
- export default meta;
11
+ export const propsMeta = WsComponentPropsMeta.parse({
12
+ props,
13
+ });
@@ -1,12 +1,13 @@
1
1
  import { BrushIcon } from "@webstudio-is/icons";
2
- import type { WsComponentMeta, MetaProps } from "./component-type";
2
+ import { type WsComponentMeta, WsComponentPropsMeta } from "./component-type";
3
3
  import props from "./__generated__/span.props.json";
4
4
 
5
- const meta: WsComponentMeta = {
5
+ export const meta: WsComponentMeta = {
6
6
  type: "rich-text-child",
7
7
  label: "Styled Text",
8
8
  Icon: BrushIcon,
9
- props: props as MetaProps,
10
9
  };
11
10
 
12
- export default meta;
11
+ export const propsMeta = WsComponentPropsMeta.parse({
12
+ props,
13
+ });
@@ -1,12 +1,13 @@
1
1
  import { SubscriptIcon } from "@webstudio-is/icons";
2
- import type { WsComponentMeta, MetaProps } from "./component-type";
2
+ import { type WsComponentMeta, WsComponentPropsMeta } from "./component-type";
3
3
  import props from "./__generated__/subscript.props.json";
4
4
 
5
- const meta: WsComponentMeta = {
5
+ export const meta: WsComponentMeta = {
6
6
  type: "rich-text-child",
7
7
  label: "Subscript Text",
8
8
  Icon: SubscriptIcon,
9
- props: props as MetaProps,
10
9
  };
11
10
 
12
- export default meta;
11
+ export const propsMeta = WsComponentPropsMeta.parse({
12
+ props,
13
+ });
@@ -1,12 +1,13 @@
1
1
  import { SuperscriptIcon } from "@webstudio-is/icons";
2
- import type { WsComponentMeta, MetaProps } from "./component-type";
2
+ import { type WsComponentMeta, WsComponentPropsMeta } from "./component-type";
3
3
  import props from "./__generated__/superscript.props.json";
4
4
 
5
- const meta: WsComponentMeta = {
5
+ export const meta: WsComponentMeta = {
6
6
  type: "rich-text-child",
7
7
  label: "Superscript Text",
8
8
  Icon: SuperscriptIcon,
9
- props: props as MetaProps,
10
9
  };
11
10
 
12
- export default meta;
11
+ export const propsMeta = WsComponentPropsMeta.parse({
12
+ props,
13
+ });
@@ -1,5 +1,5 @@
1
1
  import { TextIcon } from "@webstudio-is/icons";
2
- import type { WsComponentMeta, MetaProps } from "./component-type";
2
+ import { type WsComponentMeta, WsComponentPropsMeta } from "./component-type";
3
3
  import props from "./__generated__/text-block.props.json";
4
4
 
5
5
  const presetStyle = {
@@ -10,13 +10,14 @@ const presetStyle = {
10
10
  },
11
11
  } as const;
12
12
 
13
- const meta: WsComponentMeta = {
13
+ export const meta: WsComponentMeta = {
14
14
  type: "rich-text",
15
15
  label: "Text Block",
16
16
  Icon: TextIcon,
17
17
  presetStyle,
18
18
  children: ["Block of text you can edit"],
19
- props: props as MetaProps,
20
19
  };
21
20
 
22
- export default meta;
21
+ export const propsMeta = WsComponentPropsMeta.parse({
22
+ props,
23
+ });
@@ -1,4 +1,4 @@
1
- import type { Breakpoint } from "@webstudio-is/css-data";
1
+ import type { Breakpoint } from "@webstudio-is/project-build";
2
2
 
3
3
  export type BaseBreakpoint = Pick<Breakpoint, "label" | "minWidth">;
4
4
 
package/src/index.ts CHANGED
@@ -5,6 +5,10 @@ export * from "./pubsub";
5
5
  export * from "./app";
6
6
  export {
7
7
  customComponents,
8
- customComponentsMeta,
8
+ customComponentMetas,
9
+ customComponentPropsMetas,
9
10
  } from "./app/custom-components";
10
- export type { MetaProps, WsComponentMeta } from "./components/component-type";
11
+ export type {
12
+ WsComponentPropsMeta,
13
+ WsComponentMeta,
14
+ } from "./components/component-type";
package/src/props.ts CHANGED
@@ -39,7 +39,7 @@ export const useInstanceProps = (instanceId: Instance["id"]) => {
39
39
  return instancePropsObject;
40
40
  };
41
41
 
42
- // this utility is be used for image component in both designer and preview
42
+ // this utility is be used for image component in both builder and preview
43
43
  // so need to optimize rerenders with computed
44
44
  export const usePropAsset = (instanceId: Instance["id"], name: string) => {
45
45
  const { propsByInstanceIdStore, assetsStore } = useContext(ReactSdkContext);
@@ -1,10 +1,10 @@
1
1
  import { type ComponentProps, Fragment } from "react";
2
- import { ReadableAtom } from "nanostores";
2
+ import type { ReadableAtom } from "nanostores";
3
3
  import { Scripts, ScrollRestoration } from "@remix-run/react";
4
4
  import type { Instance } from "@webstudio-is/project-build";
5
5
  import { ReactSdkContext } from "../context";
6
- import { Assets, PropsByInstanceId } from "../props";
7
- import { WrapperComponent } from "./wrapper-component";
6
+ import type { Assets, PropsByInstanceId } from "../props";
7
+ import type { WrapperComponent } from "./wrapper-component";
8
8
  import { SessionStoragePolyfill } from "./session-storage-polyfill";
9
9
 
10
10
  export type ChildrenUpdates = Array<
@@ -8,7 +8,7 @@ const polyfill = function () {
8
8
  sessionStorage.removeItem(key); // cleanup
9
9
  } catch (error) {
10
10
  alert(
11
- 'It looks like you have disabled cookies in your browser. Webstudio designer may not work properly.\n\nTo enable cookies, go to "Setting" > "Privacy and security" > "Cookies and other site data", and make sure neither "Block all cookies" nor "Block third-party cookies" are selected.\n\nRead more at https://support.google.com/chrome/answer/95647'
11
+ 'It looks like you have disabled cookies in your browser. Webstudio builder may not work properly.\n\nTo enable cookies, go to "Setting" > "Privacy and security" > "Cookies and other site data", and make sure neither "Block all cookies" nor "Block third-party cookies" are selected.\n\nRead more at https://support.google.com/chrome/answer/95647'
12
12
  );
13
13
  const data = new Map();
14
14
  Object.defineProperty(window, "sessionStorage", {