webstudio 0.0.0-4f7bf18 → 0.0.0-bd48788

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 (22) hide show
  1. package/lib/cli.js +36 -63
  2. package/package.json +16 -16
  3. package/templates/defaults/package.json +8 -8
  4. package/templates/react-router/package.json +34 -0
  5. package/templates/react-router-docker/Dockerfile +6 -11
  6. package/templates/react-router-docker/package.json +4 -32
  7. package/templates/react-router-netlify/app/constants.mjs +29 -0
  8. package/templates/react-router-netlify/netlify.toml +6 -0
  9. package/templates/react-router-netlify/package.json +10 -0
  10. package/templates/react-router-netlify/vite.config.ts +7 -0
  11. package/templates/ssg/package.json +7 -7
  12. /package/templates/{react-router-docker → react-router}/app/extension.ts +0 -0
  13. /package/templates/{react-router-docker → react-router}/app/root.tsx +0 -0
  14. /package/templates/{react-router-docker → react-router}/app/route-templates/default-sitemap.tsx +0 -0
  15. /package/templates/{react-router-docker → react-router}/app/route-templates/html.tsx +0 -0
  16. /package/templates/{react-router-docker → react-router}/app/route-templates/redirect.tsx +0 -0
  17. /package/templates/{react-router-docker → react-router}/app/route-templates/xml.tsx +0 -0
  18. /package/templates/{react-router-docker → react-router}/app/routes/[robots.txt].tsx +0 -0
  19. /package/templates/{react-router-docker → react-router}/app/routes.ts +0 -0
  20. /package/templates/{react-router-docker → react-router}/public/favicon.ico +0 -0
  21. /package/templates/{react-router-docker → react-router}/tsconfig.json +0 -0
  22. /package/templates/{react-router-docker → react-router}/vite.config.ts +0 -0
package/lib/cli.js CHANGED
@@ -28,7 +28,6 @@ import { kebabCase, camelCase } from "change-case";
28
28
  import "nanoid";
29
29
  import { parseExpressionAt } from "acorn";
30
30
  import { simple } from "acorn-walk";
31
- import warnOnce from "warn-once";
32
31
  import reservedIdentifiers from "reserved-identifiers";
33
32
  import hash from "@emotion/hash";
34
33
  import { x } from "tinyexec";
@@ -77,7 +76,21 @@ const PROJECT_TEMPLATES = [
77
76
  label: "Vanilla",
78
77
  expand: ["defaults"]
79
78
  },
80
- { value: "vercel", label: "Vercel", expand: ["defaults", "vercel"] },
79
+ {
80
+ value: "docker",
81
+ label: "Docker",
82
+ expand: ["react-router", "react-router-docker"]
83
+ },
84
+ {
85
+ value: "vercel",
86
+ label: "Vercel",
87
+ expand: ["defaults", "vercel"]
88
+ },
89
+ {
90
+ value: "netlify",
91
+ label: "Netlify",
92
+ expand: ["react-router", "react-router-netlify"]
93
+ },
81
94
  {
82
95
  value: "netlify-functions",
83
96
  label: "Netlify Functions",
@@ -88,7 +101,10 @@ const PROJECT_TEMPLATES = [
88
101
  label: "Netlify Edge Functions",
89
102
  expand: ["defaults", "netlify-edge-functions"]
90
103
  },
91
- { value: "ssg", label: "Static Site Generation (SSG)" },
104
+ {
105
+ value: "ssg",
106
+ label: "Static Site Generation (SSG)"
107
+ },
92
108
  {
93
109
  value: "ssg-netlify",
94
110
  label: "Static Site Generation (SSG) Netlify",
@@ -105,11 +121,6 @@ const INTERNAL_TEMPLATES = [
105
121
  value: "cloudflare",
106
122
  label: "Cloudflare",
107
123
  expand: ["defaults", "cloudflare"]
108
- },
109
- {
110
- value: "react-router-docker",
111
- label: "Dokcer",
112
- expand: ["react-router-docker"]
113
124
  }
114
125
  ];
115
126
  const isFileExists = async (filePath) => {
@@ -2490,6 +2501,7 @@ const generateExpression = ({
2490
2501
  usedDataSources == null ? void 0 : usedDataSources.set(dep.id, dep);
2491
2502
  return scope.getName(dep.id, dep.name);
2492
2503
  }
2504
+ return "undefined";
2493
2505
  }
2494
2506
  });
2495
2507
  };
@@ -3637,47 +3649,6 @@ const generateWebstudioComponent = ({
3637
3649
  `;
3638
3650
  return generatedComponent;
3639
3651
  };
3640
- const imageSizes = [16, 32, 48, 64, 96, 128, 256, 384];
3641
- const deviceSizes = [640, 750, 828, 1080, 1200, 1920, 2048, 3840];
3642
- const allSizes = [...imageSizes, ...deviceSizes];
3643
- const NON_EXISTING_DOMAIN = "https://a3cbcbec-cdb1-4ea4-ad60-43c795308ddc.ddc";
3644
- const joinPath = (...segments) => {
3645
- return segments.filter((segment) => segment !== "").map((segment) => segment.replace(/(^\/+|\/+$)/g, "")).join("/");
3646
- };
3647
- const encodePathFragment = (fragment) => {
3648
- return encodeURIComponent(fragment).replace(/%2F/g, "/");
3649
- };
3650
- const wsImageLoader = (props2) => {
3651
- const width = props2.format === "raw" ? 16 : props2.width;
3652
- const quality = props2.format === "raw" ? 100 : props2.quality;
3653
- if (process.env.NODE_ENV !== "production") {
3654
- warnOnce(
3655
- allSizes.includes(width) === false,
3656
- "Width must be only from allowed values"
3657
- );
3658
- }
3659
- let src = props2.src;
3660
- if (src.startsWith("/cgi/asset")) {
3661
- src = src.slice("/cgi/asset".length);
3662
- }
3663
- const resultUrl = new URL("/cgi/image/", NON_EXISTING_DOMAIN);
3664
- if (props2.format !== "raw") {
3665
- resultUrl.searchParams.set("width", width.toString());
3666
- resultUrl.searchParams.set("quality", quality.toString());
3667
- if (props2.height != null) {
3668
- resultUrl.searchParams.set("height", props2.height.toString());
3669
- }
3670
- if (props2.fit != null) {
3671
- resultUrl.searchParams.set("fit", props2.fit);
3672
- }
3673
- }
3674
- resultUrl.searchParams.set("format", props2.format ?? "auto");
3675
- resultUrl.pathname = joinPath(resultUrl.pathname, encodePathFragment(src));
3676
- if (resultUrl.href.startsWith(NON_EXISTING_DOMAIN)) {
3677
- return `${resultUrl.pathname}?${resultUrl.searchParams.toString()}`;
3678
- }
3679
- return resultUrl.href;
3680
- };
3681
3652
  const BOOLEAN_ATTRIBUTES = /* @__PURE__ */ new Set([
3682
3653
  "async",
3683
3654
  "autofocus",
@@ -5871,6 +5842,11 @@ const copyTemplates = async (template) => {
5871
5842
  const importFrom = (importee, importer) => {
5872
5843
  return relative(dirname(importer), importee).replaceAll("\\", "/");
5873
5844
  };
5845
+ const npmrc = `force=true
5846
+ loglevel=error
5847
+ audit=false
5848
+ fund=false
5849
+ `;
5874
5850
  const prebuild = async (options) => {
5875
5851
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
5876
5852
  if (options.template.length === 0) {
@@ -5898,14 +5874,14 @@ Please check webstudio --help for more details`
5898
5874
  await rm(generatedDir, { recursive: true, force: true });
5899
5875
  const routesDir = join(appRoot, "routes");
5900
5876
  await rm(routesDir, { recursive: true, force: true });
5901
- await writeFile(join(cwd(), ".npmrc"), "force=true");
5877
+ await writeFile(join(cwd(), ".npmrc"), npmrc);
5902
5878
  for (const template of options.template) {
5903
5879
  await copyTemplates(template);
5904
5880
  }
5905
5881
  let framework;
5906
5882
  if (options.template.includes("ssg")) {
5907
5883
  framework = await createFramework();
5908
- } else if (options.template.includes("react-router-docker")) {
5884
+ } else if (options.template.includes("react-router")) {
5909
5885
  framework = await createFramework$1();
5910
5886
  } else {
5911
5887
  framework = await createFramework$2();
@@ -6021,14 +5997,10 @@ Please check webstudio --help for more details`
6021
5997
  const assetOrigin = siteData.origin;
6022
5998
  for (const asset of siteData.assets) {
6023
5999
  if (asset.type === "image") {
6024
- const imagePath = wsImageLoader({
6025
- src: asset.name,
6026
- format: "raw"
6027
- });
6028
6000
  assetsToDownload.push(
6029
6001
  limit(
6030
6002
  () => downloadAsset(
6031
- `${assetOrigin}${imagePath}`,
6003
+ `${assetOrigin}/cgi/image/${asset.name}?format=raw`,
6032
6004
  asset.name,
6033
6005
  assetBaseUrl
6034
6006
  )
@@ -6445,6 +6417,7 @@ const getDeploymentInstructions = (deployTarget) => {
6445
6417
  switch (deployTarget) {
6446
6418
  case "vercel":
6447
6419
  return `Run ${pc.dim("npx vercel")} to publish on Vercel.`;
6420
+ case "netlify":
6448
6421
  case "netlify-functions":
6449
6422
  case "netlify-edge-functions":
6450
6423
  return [
@@ -6459,7 +6432,7 @@ const getDeploymentInstructions = (deployTarget) => {
6459
6432
  }
6460
6433
  };
6461
6434
  const name = "webstudio";
6462
- const version = "0.0.0-4f7bf18";
6435
+ const version = "0.0.0-bd48788";
6463
6436
  const description = "Webstudio CLI";
6464
6437
  const author = "Webstudio <github@webstudio.is>";
6465
6438
  const homepage = "https://webstudio.is";
@@ -6501,18 +6474,17 @@ const dependencies = {
6501
6474
  "p-limit": "^6.2.0",
6502
6475
  parse5: "7.2.1",
6503
6476
  picocolors: "^1.1.1",
6504
- react: "18.3.0-canary-14898b6a9-20240318",
6505
6477
  "reserved-identifiers": "^1.0.0",
6506
6478
  tinyexec: "^0.3.2",
6507
- "warn-once": "^0.1.1",
6508
6479
  yargs: "^17.7.2",
6509
6480
  zod: "^3.22.4"
6510
6481
  };
6511
6482
  const devDependencies = {
6512
6483
  "@netlify/remix-adapter": "^2.5.1",
6513
6484
  "@netlify/remix-edge-adapter": "3.4.2",
6514
- "@react-router/dev": "^7.1.3",
6515
- "@react-router/fs-routes": "^7.1.3",
6485
+ "@netlify/vite-plugin-react-router": "^1.0.0",
6486
+ "@react-router/dev": "^7.1.4",
6487
+ "@react-router/fs-routes": "^7.1.4",
6516
6488
  "@remix-run/cloudflare": "^2.15.2",
6517
6489
  "@remix-run/cloudflare-pages": "^2.15.2",
6518
6490
  "@remix-run/dev": "^2.15.2",
@@ -6536,10 +6508,11 @@ const devDependencies = {
6536
6508
  h3: "^1.14.0",
6537
6509
  ipx: "^3.0.1",
6538
6510
  prettier: "3.4.2",
6511
+ react: "18.3.0-canary-14898b6a9-20240318",
6539
6512
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
6540
- "react-router": "^7.1.3",
6513
+ "react-router": "^7.1.4",
6541
6514
  "ts-expect": "^1.3.0",
6542
- vike: "^0.4.218",
6515
+ vike: "^0.4.220",
6543
6516
  vite: "^5.4.11",
6544
6517
  vitest: "^3.0.2",
6545
6518
  wrangler: "^3.63.2"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webstudio",
3
- "version": "0.0.0-4f7bf18",
3
+ "version": "0.0.0-bd48788",
4
4
  "description": "Webstudio CLI",
5
5
  "author": "Webstudio <github@webstudio.is>",
6
6
  "homepage": "https://webstudio.is",
@@ -37,18 +37,17 @@
37
37
  "p-limit": "^6.2.0",
38
38
  "parse5": "7.2.1",
39
39
  "picocolors": "^1.1.1",
40
- "react": "18.3.0-canary-14898b6a9-20240318",
41
40
  "reserved-identifiers": "^1.0.0",
42
41
  "tinyexec": "^0.3.2",
43
- "warn-once": "^0.1.1",
44
42
  "yargs": "^17.7.2",
45
43
  "zod": "^3.22.4"
46
44
  },
47
45
  "devDependencies": {
48
46
  "@netlify/remix-adapter": "^2.5.1",
49
47
  "@netlify/remix-edge-adapter": "3.4.2",
50
- "@react-router/dev": "^7.1.3",
51
- "@react-router/fs-routes": "^7.1.3",
48
+ "@netlify/vite-plugin-react-router": "^1.0.0",
49
+ "@react-router/dev": "^7.1.4",
50
+ "@react-router/fs-routes": "^7.1.4",
52
51
  "@remix-run/cloudflare": "^2.15.2",
53
52
  "@remix-run/cloudflare-pages": "^2.15.2",
54
53
  "@remix-run/dev": "^2.15.2",
@@ -62,22 +61,23 @@
62
61
  "h3": "^1.14.0",
63
62
  "ipx": "^3.0.1",
64
63
  "prettier": "3.4.2",
64
+ "react": "18.3.0-canary-14898b6a9-20240318",
65
65
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
66
- "react-router": "^7.1.3",
66
+ "react-router": "^7.1.4",
67
67
  "ts-expect": "^1.3.0",
68
- "vike": "^0.4.218",
68
+ "vike": "^0.4.220",
69
69
  "vite": "^5.4.11",
70
70
  "vitest": "^3.0.2",
71
71
  "wrangler": "^3.63.2",
72
- "@webstudio-is/http-client": "0.0.0-4f7bf18",
73
- "@webstudio-is/image": "0.0.0-4f7bf18",
74
- "@webstudio-is/react-sdk": "0.0.0-4f7bf18",
75
- "@webstudio-is/sdk": "0.0.0-4f7bf18",
76
- "@webstudio-is/sdk-components-animation": "0.0.0-4f7bf18",
77
- "@webstudio-is/sdk-components-react": "0.0.0-4f7bf18",
78
- "@webstudio-is/sdk-components-react-radix": "0.0.0-4f7bf18",
79
- "@webstudio-is/sdk-components-react-remix": "0.0.0-4f7bf18",
80
- "@webstudio-is/sdk-components-react-router": "0.0.0-4f7bf18",
72
+ "@webstudio-is/http-client": "0.0.0-bd48788",
73
+ "@webstudio-is/image": "0.0.0-bd48788",
74
+ "@webstudio-is/react-sdk": "0.0.0-bd48788",
75
+ "@webstudio-is/sdk": "0.0.0-bd48788",
76
+ "@webstudio-is/sdk-components-animation": "0.0.0-bd48788",
77
+ "@webstudio-is/sdk-components-react": "0.0.0-bd48788",
78
+ "@webstudio-is/sdk-components-react-radix": "0.0.0-bd48788",
79
+ "@webstudio-is/sdk-components-react-remix": "0.0.0-bd48788",
80
+ "@webstudio-is/sdk-components-react-router": "0.0.0-bd48788",
81
81
  "@webstudio-is/tsconfig": "1.0.7"
82
82
  },
83
83
  "scripts": {
@@ -11,14 +11,14 @@
11
11
  "@remix-run/node": "2.15.2",
12
12
  "@remix-run/react": "2.15.2",
13
13
  "@remix-run/server-runtime": "2.15.2",
14
- "@webstudio-is/image": "0.0.0-4f7bf18",
15
- "@webstudio-is/react-sdk": "0.0.0-4f7bf18",
16
- "@webstudio-is/sdk": "0.0.0-4f7bf18",
17
- "@webstudio-is/sdk-components-react": "0.0.0-4f7bf18",
18
- "@webstudio-is/sdk-components-animation": "0.0.0-4f7bf18",
19
- "@webstudio-is/sdk-components-react-radix": "0.0.0-4f7bf18",
20
- "@webstudio-is/sdk-components-react-remix": "0.0.0-4f7bf18",
21
- "isbot": "^5.1.19",
14
+ "@webstudio-is/image": "0.0.0-bd48788",
15
+ "@webstudio-is/react-sdk": "0.0.0-bd48788",
16
+ "@webstudio-is/sdk": "0.0.0-bd48788",
17
+ "@webstudio-is/sdk-components-react": "0.0.0-bd48788",
18
+ "@webstudio-is/sdk-components-animation": "0.0.0-bd48788",
19
+ "@webstudio-is/sdk-components-react-radix": "0.0.0-bd48788",
20
+ "@webstudio-is/sdk-components-react-remix": "0.0.0-bd48788",
21
+ "isbot": "^5.1.22",
22
22
  "react": "18.3.0-canary-14898b6a9-20240318",
23
23
  "react-dom": "18.3.0-canary-14898b6a9-20240318"
24
24
  },
@@ -0,0 +1,34 @@
1
+ {
2
+ "type": "module",
3
+ "private": true,
4
+ "sideEffects": false,
5
+ "scripts": {
6
+ "build": "react-router build",
7
+ "dev": "react-router dev",
8
+ "typecheck": "tsc"
9
+ },
10
+ "dependencies": {
11
+ "@react-router/dev": "^7.1.4",
12
+ "@react-router/fs-routes": "^7.1.4",
13
+ "@webstudio-is/image": "0.0.0-bd48788",
14
+ "@webstudio-is/react-sdk": "0.0.0-bd48788",
15
+ "@webstudio-is/sdk": "0.0.0-bd48788",
16
+ "@webstudio-is/sdk-components-animation": "0.0.0-bd48788",
17
+ "@webstudio-is/sdk-components-react-radix": "0.0.0-bd48788",
18
+ "@webstudio-is/sdk-components-react-router": "0.0.0-bd48788",
19
+ "@webstudio-is/sdk-components-react": "0.0.0-bd48788",
20
+ "isbot": "^5.1.22",
21
+ "react": "18.3.0-canary-14898b6a9-20240318",
22
+ "react-dom": "18.3.0-canary-14898b6a9-20240318",
23
+ "react-router": "^7.1.4",
24
+ "vite": "^5.4.11"
25
+ },
26
+ "devDependencies": {
27
+ "@types/react": "^18.2.70",
28
+ "@types/react-dom": "^18.2.25",
29
+ "typescript": "5.7.3"
30
+ },
31
+ "engines": {
32
+ "node": ">=20.0.0"
33
+ }
34
+ }
@@ -1,22 +1,17 @@
1
- FROM node:22-alpine AS development-dependencies-env
2
- COPY . /app
3
- WORKDIR /app
4
- RUN npm install
5
-
6
- FROM node:22-alpine AS production-dependencies-env
7
- COPY .npmrc ./package.json /app/
1
+ FROM node:22-alpine AS dependencies-env
2
+ COPY .npmrc package.json /app/
8
3
  WORKDIR /app
9
4
  RUN npm install --omit=dev
10
5
 
11
- FROM node:22-alpine AS build-env
6
+ FROM dependencies-env AS build-env
12
7
  COPY . /app/
13
- COPY --from=development-dependencies-env /app/node_modules /app/node_modules
14
8
  WORKDIR /app
9
+ RUN npm install
15
10
  RUN npm run build
16
11
 
17
12
  FROM node:22-alpine
18
- COPY .npmrc ./package.json /app/
19
- COPY --from=production-dependencies-env /app/node_modules /app/node_modules
13
+ COPY .npmrc package.json /app/
14
+ COPY --from=dependencies-env /app/node_modules /app/node_modules
20
15
  COPY --from=build-env /app/build /app/build
21
16
  COPY --from=build-env /app/public /app/public
22
17
  WORKDIR /app
@@ -1,39 +1,11 @@
1
1
  {
2
- "type": "module",
3
- "private": true,
4
- "sideEffects": false,
5
2
  "scripts": {
6
- "build": "react-router build",
7
- "dev": "react-router dev",
8
- "start": "react-router-serve ./build/server/index.js",
9
- "typecheck": "tsc"
3
+ "start": "react-router-serve ./build/server/index.js"
10
4
  },
11
5
  "dependencies": {
12
- "@react-router/dev": "^7.1.3",
13
- "@react-router/fs-routes": "^7.1.3",
14
- "@react-router/node": "^7.1.3",
15
- "@react-router/serve": "^7.1.3",
16
- "@webstudio-is/image": "0.0.0-4f7bf18",
17
- "@webstudio-is/react-sdk": "0.0.0-4f7bf18",
18
- "@webstudio-is/sdk": "0.0.0-4f7bf18",
19
- "@webstudio-is/sdk-components-animation": "0.0.0-4f7bf18",
20
- "@webstudio-is/sdk-components-react-radix": "0.0.0-4f7bf18",
21
- "@webstudio-is/sdk-components-react-router": "0.0.0-4f7bf18",
22
- "@webstudio-is/sdk-components-react": "0.0.0-4f7bf18",
6
+ "@react-router/node": "^7.1.4",
7
+ "@react-router/serve": "^7.1.4",
23
8
  "h3": "^1.14.0",
24
- "ipx": "^3.0.1",
25
- "isbot": "^5.1.19",
26
- "react": "18.3.0-canary-14898b6a9-20240318",
27
- "react-dom": "18.3.0-canary-14898b6a9-20240318",
28
- "react-router": "^7.1.3",
29
- "vite": "^5.4.11"
30
- },
31
- "devDependencies": {
32
- "@types/react": "^18.2.70",
33
- "@types/react-dom": "^18.2.25",
34
- "typescript": "5.7.3"
35
- },
36
- "engines": {
37
- "node": ">=20.0.0"
9
+ "ipx": "^3.0.1"
38
10
  }
39
11
  }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * We use mjs extension as constants in this file is shared with the build script
3
+ * and we use `node --eval` to extract the constants.
4
+ */
5
+ export const assetBaseUrl = "/assets/";
6
+
7
+ /**
8
+ * @type {import("@webstudio-is/image").ImageLoader}
9
+ */
10
+ export const imageLoader = (props) => {
11
+ if (import.meta.env.DEV) {
12
+ return props.src;
13
+ }
14
+
15
+ if (props.format === "raw") {
16
+ return props.src;
17
+ }
18
+
19
+ // https://docs.netlify.com/image-cdn/overview/
20
+ const searchParams = new URLSearchParams();
21
+ searchParams.set("url", props.src);
22
+ searchParams.set("w", props.width.toString());
23
+ if (props.height) {
24
+ searchParams.set("h", props.height.toString());
25
+ }
26
+ searchParams.set("q", props.quality.toString());
27
+ // fit=contain by default
28
+ return `/.netlify/images?${searchParams}`;
29
+ };
@@ -0,0 +1,6 @@
1
+ [build]
2
+ command = "react-router build"
3
+ publish = "build/client"
4
+
5
+ [dev]
6
+ command = "react-router dev"
@@ -0,0 +1,10 @@
1
+ {
2
+ "scripts": {
3
+ "start": "npx netlify-cli serve",
4
+ "deploy": "npx netlify-cli deploy --build --prod"
5
+ },
6
+ "dependencies": {
7
+ "@netlify/vite-plugin-react-router": "^1.0.0",
8
+ "@react-router/node": "^7.1.4"
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ import { reactRouter } from "@react-router/dev/vite";
2
+ import { defineConfig } from "vite";
3
+ import netlifyPlugin from "@netlify/vite-plugin-react-router";
4
+
5
+ export default defineConfig({
6
+ plugins: [reactRouter(), netlifyPlugin()],
7
+ });
@@ -8,15 +8,15 @@
8
8
  "typecheck": "tsc"
9
9
  },
10
10
  "dependencies": {
11
- "@webstudio-is/image": "0.0.0-4f7bf18",
12
- "@webstudio-is/react-sdk": "0.0.0-4f7bf18",
13
- "@webstudio-is/sdk": "0.0.0-4f7bf18",
14
- "@webstudio-is/sdk-components-react": "0.0.0-4f7bf18",
15
- "@webstudio-is/sdk-components-animation": "0.0.0-4f7bf18",
16
- "@webstudio-is/sdk-components-react-radix": "0.0.0-4f7bf18",
11
+ "@webstudio-is/image": "0.0.0-bd48788",
12
+ "@webstudio-is/react-sdk": "0.0.0-bd48788",
13
+ "@webstudio-is/sdk": "0.0.0-bd48788",
14
+ "@webstudio-is/sdk-components-react": "0.0.0-bd48788",
15
+ "@webstudio-is/sdk-components-animation": "0.0.0-bd48788",
16
+ "@webstudio-is/sdk-components-react-radix": "0.0.0-bd48788",
17
17
  "react": "18.3.0-canary-14898b6a9-20240318",
18
18
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
19
- "vike": "^0.4.218"
19
+ "vike": "^0.4.220"
20
20
  },
21
21
  "devDependencies": {
22
22
  "@types/react": "^18.2.70",