webstudio 0.230.0 → 0.232.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/cli.js CHANGED
@@ -3538,6 +3538,17 @@ var transpileExpression = ({
3538
3538
  const dotIndex = expression.indexOf("[", node.object.end);
3539
3539
  replacements.push([dotIndex, dotIndex, "?."]);
3540
3540
  }
3541
+ },
3542
+ CallExpression(node) {
3543
+ if (executable === false || node.optional) {
3544
+ return;
3545
+ }
3546
+ if (node.callee.type === "MemberExpression") {
3547
+ const openParenIndex = expression.indexOf("(", node.callee.end);
3548
+ if (openParenIndex !== -1) {
3549
+ replacements.push([openParenIndex, openParenIndex, "?."]);
3550
+ }
3551
+ }
3541
3552
  }
3542
3553
  });
3543
3554
  replacements.sort(([leftStart], [rightStart]) => rightStart - leftStart);
@@ -5009,7 +5020,7 @@ const e$u = {
5009
5020
  required: false,
5010
5021
  control: "text",
5011
5022
  type: "string",
5012
- description: "Classes to which the element belongs"
5023
+ description: ""
5013
5024
  },
5014
5025
  clientOnly: { required: false, control: "boolean", type: "boolean" },
5015
5026
  code: { required: true, control: "text", type: "string" },
@@ -6484,7 +6495,7 @@ const e$f = {
6484
6495
  required: false,
6485
6496
  control: "text",
6486
6497
  type: "string",
6487
- description: "Document base URL"
6498
+ description: "Address of the hyperlink"
6488
6499
  },
6489
6500
  hreflang: {
6490
6501
  required: false,
@@ -6749,6 +6760,14 @@ const e$d = {
6749
6760
  defaultValue: "medium",
6750
6761
  options: ["full", "long", "medium", "short", "none"]
6751
6762
  },
6763
+ format: {
6764
+ description: `Custom format template string. When provided, overrides Date Style and Time Style.
6765
+ Supports tokens: YYYY, YY, MM, M, DD, D, HH, H, mm, m, ss, s.
6766
+ Example: "YYYY-MM-DD HH:mm:ss" displays as "2025-11-03 18:47:25"`,
6767
+ required: false,
6768
+ control: "text",
6769
+ type: "string"
6770
+ },
6752
6771
  language: {
6753
6772
  required: false,
6754
6773
  control: "select",
@@ -6846,7 +6865,14 @@ const r$9 = {
6846
6865
  presetStyle: {
6847
6866
  time
6848
6867
  },
6849
- initialProps: ["datetime", "language", "country", "dateStyle", "timeStyle"],
6868
+ initialProps: [
6869
+ "datetime",
6870
+ "language",
6871
+ "country",
6872
+ "dateStyle",
6873
+ "timeStyle",
6874
+ "format"
6875
+ ],
6850
6876
  props: e$d
6851
6877
  };
6852
6878
  const o$k = {};
@@ -7039,13 +7065,13 @@ const l$1 = (n2) => new Proxy({}, { get(w2, t2) {
7039
7065
  - (1..n]: Animates multiple parts of the text within the sliding window.`, required: false, control: "number", type: "number", defaultValue: 5 }, splitBy: { description: "Defines how the text is split for animation (e.g., by character, space, or symbol).", required: false, control: "select", type: "string", defaultValue: "char", options: ["char", "space", 'symbol "#"', 'symbol "~"'] } }, p$1 = { category: "animations", description: "Text animation allows you to split text by char or by word to animate it.", icon: TextAnimationIcon, order: 1, label: "Text Animation", contentModel: { category: "none", children: ["instance"] }, presetStyle: { div }, initialProps: ["slidingWindow", "easing", "splitBy"], props: d$2 }, m$5 = { className: { required: false, control: "text", type: "string", description: "Classes to which the element belongs" }, easing: { description: "Easing function applied within the sliding window.", required: false, control: "select", type: "string", defaultValue: "linear", options: ["linear", "easeIn", "easeInCubic", "easeInQuart", "easeOut", "easeOutCubic", "easeOutQuart", "ease", "easeInOutCubic", "easeInOutQuart"] }, slidingWindow: { description: `Size of the sliding window for the animation:
7040
7066
  - 0: Typewriter effect (no animation).
7041
7067
  - (0..1]: Animates one child at a time.
7042
- - (1..n]: Animates multiple children within the sliding window.`, required: false, control: "number", type: "number", defaultValue: 1 } }, u$1 = { category: "animations", description: "Stagger animation allows you to animate children elements with a sliding window.", icon: StaggerAnimationIcon, order: 4, label: "Stagger Animation", contentModel: { category: "none", children: ["instance"] }, presetStyle: { div }, initialProps: ["slidingWindow", "easing"], props: m$5 }, g$2 = { timeline: { required: false, control: "boolean", type: "boolean" } }, h$3 = { icon: PlayIcon, label: "Video Animation", contentModel: { category: "none", children: ["instance"] }, presetStyle: { div }, props: g$2, initialProps: ["timeline"] };
7068
+ - (1..n]: Animates multiple children within the sliding window.`, required: false, control: "number", type: "number", defaultValue: 1 } }, u$1 = { category: "animations", description: "Stagger animation allows you to animate children elements with a sliding window.", icon: StaggerAnimationIcon, order: 4, label: "Stagger Animation", contentModel: { category: "none", children: ["instance"] }, presetStyle: { div }, initialProps: ["slidingWindow", "easing"], props: m$5 }, g$2 = { timeline: { required: false, control: "boolean", type: "boolean" } }, h$2 = { icon: PlayIcon, label: "Video Animation", contentModel: { category: "none", children: ["instance"] }, presetStyle: { div }, props: g$2, initialProps: ["timeline"] };
7043
7069
  const animationComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
7044
7070
  __proto__: null,
7045
7071
  AnimateChildren: c,
7046
7072
  AnimateText: p$1,
7047
7073
  StaggerAnimation: u$1,
7048
- VideoAnimation: h$3
7074
+ VideoAnimation: h$2
7049
7075
  }, Symbol.toStringTag, { value: "Module" }));
7050
7076
  const r$6 = (t2) => new Proxy(
7051
7077
  {},
@@ -7292,7 +7318,7 @@ const C$3 = {
7292
7318
  },
7293
7319
  initialProps: ["side", "sideOffset", "align", "alignOffset"],
7294
7320
  props: t$5
7295
- }, h$2 = {
7321
+ }, h$1 = {
7296
7322
  icon: PopoverIcon,
7297
7323
  contentModel: {
7298
7324
  category: "instance",
@@ -7480,7 +7506,7 @@ const y = {
7480
7506
  },
7481
7507
  presetStyle: { div },
7482
7508
  props: e$6
7483
- }, f$3 = {
7509
+ }, f$2 = {
7484
7510
  icon: HeaderIcon,
7485
7511
  contentModel: {
7486
7512
  category: "none",
@@ -7599,7 +7625,7 @@ const v$1 = {
7599
7625
  presetStyle: { div },
7600
7626
  initialProps: ["value"],
7601
7627
  props: o$5
7602
- }, f$2 = {
7628
+ }, f$1 = {
7603
7629
  label: "Item Header",
7604
7630
  icon: HeaderIcon,
7605
7631
  contentModel: {
@@ -7695,7 +7721,7 @@ const L = {
7695
7721
  div
7696
7722
  },
7697
7723
  props: e$4
7698
- }, h$1 = {
7724
+ }, h = {
7699
7725
  icon: ListIcon,
7700
7726
  label: "Menu List",
7701
7727
  contentModel: {
@@ -7724,7 +7750,7 @@ const L = {
7724
7750
  div
7725
7751
  },
7726
7752
  props: o$4
7727
- }, k$2 = {
7753
+ }, k$3 = {
7728
7754
  icon: TriggerIcon,
7729
7755
  label: "Menu Trigger",
7730
7756
  contentModel: {
@@ -7877,7 +7903,7 @@ const b$1 = {
7877
7903
  },
7878
7904
  initialProps: ["name", "value", "open", "required"],
7879
7905
  props: e$3
7880
- }, f$1 = {
7906
+ }, f = {
7881
7907
  icon: TriggerIcon,
7882
7908
  contentModel: {
7883
7909
  category: "none",
@@ -7914,7 +7940,7 @@ const b$1 = {
7914
7940
  },
7915
7941
  presetStyle: { div },
7916
7942
  props: n
7917
- }, k$1 = {
7943
+ }, k$2 = {
7918
7944
  icon: ItemIcon,
7919
7945
  contentModel: {
7920
7946
  category: "none",
@@ -8018,7 +8044,7 @@ const m = {
8018
8044
  },
8019
8045
  initialProps: ["id", "class", "name", "value", "required", "checked"],
8020
8046
  props: e$1
8021
- }, k = {
8047
+ }, k$1 = {
8022
8048
  icon: TriggerIcon,
8023
8049
  contentModel: {
8024
8050
  category: "none",
@@ -8094,40 +8120,44 @@ const e = {
8094
8120
  description: "Current value of the element"
8095
8121
  }
8096
8122
  }, r = {};
8097
- const G = {
8123
+ const R = {
8098
8124
  icon: RadioGroupIcon,
8099
8125
  contentModel: {
8100
8126
  category: "instance",
8101
8127
  children: ["instance"],
8102
8128
  descendants: [n$4.RadioGroupItem]
8103
8129
  },
8104
- states: [
8105
- { label: "Checked", selector: "[data-state=checked]" },
8106
- { label: "Unchecked", selector: "[data-state=unchecked]" }
8107
- ],
8108
8130
  presetStyle: {
8109
8131
  div
8110
8132
  },
8111
8133
  initialProps: ["id", "class", "name", "value", "required"],
8112
8134
  props: e
8113
- }, h = {
8135
+ }, G = {
8114
8136
  icon: ItemIcon,
8115
8137
  contentModel: {
8116
8138
  category: "none",
8117
8139
  children: ["instance"],
8118
8140
  descendants: [n$4.RadioGroupIndicator]
8119
8141
  },
8142
+ states: [
8143
+ { label: "Checked", selector: "[data-state=checked]" },
8144
+ { label: "Unchecked", selector: "[data-state=unchecked]" }
8145
+ ],
8120
8146
  presetStyle: {
8121
8147
  button: [button, b$4].flat()
8122
8148
  },
8123
8149
  initialProps: ["value"],
8124
8150
  props: o
8125
- }, f = {
8151
+ }, k = {
8126
8152
  icon: TriggerIcon,
8127
8153
  contentModel: {
8128
8154
  category: "none",
8129
8155
  children: ["instance"]
8130
8156
  },
8157
+ states: [
8158
+ { label: "Checked", selector: "[data-state=checked]" },
8159
+ { label: "Unchecked", selector: "[data-state=unchecked]" }
8160
+ ],
8131
8161
  presetStyle: {
8132
8162
  span
8133
8163
  },
@@ -8137,11 +8167,11 @@ const radixComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object
8137
8167
  __proto__: null,
8138
8168
  Accordion: v$1,
8139
8169
  AccordionContent: H,
8140
- AccordionHeader: f$2,
8170
+ AccordionHeader: f$1,
8141
8171
  AccordionItem: x,
8142
8172
  AccordionTrigger: C$1,
8143
8173
  Checkbox: m,
8144
- CheckboxIndicator: k,
8174
+ CheckboxIndicator: k$1,
8145
8175
  Collapsible: g$1,
8146
8176
  CollapsibleContent: d$1,
8147
8177
  CollapsibleTrigger: m$4,
@@ -8157,29 +8187,29 @@ const radixComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object
8157
8187
  NavigationMenuContent: w$1,
8158
8188
  NavigationMenuItem: b$2,
8159
8189
  NavigationMenuLink: C,
8160
- NavigationMenuList: h$1,
8161
- NavigationMenuTrigger: k$2,
8190
+ NavigationMenuList: h,
8191
+ NavigationMenuTrigger: k$3,
8162
8192
  NavigationMenuViewport: S,
8163
- Popover: h$2,
8193
+ Popover: h$1,
8164
8194
  PopoverClose: u,
8165
8195
  PopoverContent: y$1,
8166
8196
  PopoverTrigger: C$3,
8167
- RadioGroup: G,
8168
- RadioGroupIndicator: f,
8169
- RadioGroupItem: h,
8197
+ RadioGroup: R,
8198
+ RadioGroupIndicator: k,
8199
+ RadioGroupItem: G,
8170
8200
  Select: b$1,
8171
8201
  SelectContent: v,
8172
- SelectItem: k$1,
8202
+ SelectItem: k$2,
8173
8203
  SelectItemIndicator: F,
8174
8204
  SelectItemText: q,
8175
- SelectTrigger: f$1,
8205
+ SelectTrigger: f,
8176
8206
  SelectValue: w,
8177
8207
  SelectViewport: P,
8178
8208
  Switch: m$1,
8179
8209
  SwitchThumb: b,
8180
8210
  Tabs: y,
8181
8211
  TabsContent: C$2,
8182
- TabsList: f$3,
8212
+ TabsList: f$2,
8183
8213
  TabsTrigger: x$1,
8184
8214
  Tooltip: m$3,
8185
8215
  TooltipContent: T,
@@ -9087,7 +9117,7 @@ const getDeploymentInstructions = (deployTarget) => {
9087
9117
  }
9088
9118
  };
9089
9119
  const name = "webstudio";
9090
- const version = "0.230.0";
9120
+ const version = "0.232.0";
9091
9121
  const description = "Webstudio CLI";
9092
9122
  const author = "Webstudio <github@webstudio.is>";
9093
9123
  const homepage = "https://webstudio.is";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webstudio",
3
- "version": "0.230.0",
3
+ "version": "0.232.0",
4
4
  "description": "Webstudio CLI",
5
5
  "author": "Webstudio <github@webstudio.is>",
6
6
  "homepage": "https://webstudio.is",
@@ -70,16 +70,16 @@
70
70
  "vite": "^6.3.4",
71
71
  "vitest": "^3.1.2",
72
72
  "wrangler": "^3.63.2",
73
- "@webstudio-is/css-engine": "0.230.0",
74
- "@webstudio-is/image": "0.230.0",
75
- "@webstudio-is/http-client": "0.230.0",
76
- "@webstudio-is/react-sdk": "0.230.0",
77
- "@webstudio-is/sdk": "0.230.0",
78
- "@webstudio-is/sdk-components-animation": "0.230.0",
79
- "@webstudio-is/sdk-components-react": "0.230.0",
80
- "@webstudio-is/sdk-components-react-radix": "0.230.0",
81
- "@webstudio-is/sdk-components-react-remix": "0.230.0",
82
- "@webstudio-is/sdk-components-react-router": "0.230.0",
73
+ "@webstudio-is/css-engine": "0.232.0",
74
+ "@webstudio-is/http-client": "0.232.0",
75
+ "@webstudio-is/image": "0.232.0",
76
+ "@webstudio-is/sdk": "0.232.0",
77
+ "@webstudio-is/sdk-components-animation": "0.232.0",
78
+ "@webstudio-is/sdk-components-react": "0.232.0",
79
+ "@webstudio-is/sdk-components-react-radix": "0.232.0",
80
+ "@webstudio-is/sdk-components-react-remix": "0.232.0",
81
+ "@webstudio-is/sdk-components-react-router": "0.232.0",
82
+ "@webstudio-is/react-sdk": "0.232.0",
83
83
  "@webstudio-is/tsconfig": "1.0.7"
84
84
  },
85
85
  "scripts": {
@@ -71,6 +71,7 @@ export const loader = async (arg: LoaderFunctionArgs) => {
71
71
  params,
72
72
  search: Object.fromEntries(url.searchParams),
73
73
  origin: url.origin,
74
+ pathname: url.pathname,
74
75
  };
75
76
 
76
77
  const resources = await loadResources(
@@ -204,6 +205,7 @@ export const action = async ({
204
205
  params: {},
205
206
  search: {},
206
207
  origin: url.origin,
208
+ pathname: url.pathname,
207
209
  };
208
210
 
209
211
  const resourceName = formData.get(formIdFieldName);
@@ -40,6 +40,7 @@ export const loader = async (arg: LoaderFunctionArgs) => {
40
40
  params,
41
41
  search: Object.fromEntries(url.searchParams),
42
42
  origin: url.origin,
43
+ pathname: url.pathname,
43
44
  };
44
45
 
45
46
  const resources = await loadResources(
@@ -11,13 +11,13 @@
11
11
  "@remix-run/node": "2.16.5",
12
12
  "@remix-run/react": "2.16.5",
13
13
  "@remix-run/server-runtime": "2.16.5",
14
- "@webstudio-is/image": "0.230.0",
15
- "@webstudio-is/react-sdk": "0.230.0",
16
- "@webstudio-is/sdk": "0.230.0",
17
- "@webstudio-is/sdk-components-react": "0.230.0",
18
- "@webstudio-is/sdk-components-animation": "0.230.0",
19
- "@webstudio-is/sdk-components-react-radix": "0.230.0",
20
- "@webstudio-is/sdk-components-react-remix": "0.230.0",
14
+ "@webstudio-is/image": "0.232.0",
15
+ "@webstudio-is/react-sdk": "0.232.0",
16
+ "@webstudio-is/sdk": "0.232.0",
17
+ "@webstudio-is/sdk-components-react": "0.232.0",
18
+ "@webstudio-is/sdk-components-animation": "0.232.0",
19
+ "@webstudio-is/sdk-components-react-radix": "0.232.0",
20
+ "@webstudio-is/sdk-components-react-remix": "0.232.0",
21
21
  "isbot": "^5.1.25",
22
22
  "react": "18.3.0-canary-14898b6a9-20240318",
23
23
  "react-dom": "18.3.0-canary-14898b6a9-20240318"
@@ -70,6 +70,7 @@ export const loader = async (arg: LoaderFunctionArgs) => {
70
70
  params,
71
71
  search: Object.fromEntries(url.searchParams),
72
72
  origin: url.origin,
73
+ pathname: url.pathname,
73
74
  };
74
75
 
75
76
  const resources = await loadResources(
@@ -203,6 +204,7 @@ export const action = async ({
203
204
  params: {},
204
205
  search: {},
205
206
  origin: url.origin,
207
+ pathname: url.pathname,
206
208
  };
207
209
 
208
210
  const resourceName = formData.get(formIdFieldName);
@@ -40,6 +40,7 @@ export const loader = async (arg: LoaderFunctionArgs) => {
40
40
  params,
41
41
  search: Object.fromEntries(url.searchParams),
42
42
  origin: url.origin,
43
+ pathname: url.pathname,
43
44
  };
44
45
 
45
46
  const resources = await loadResources(
@@ -10,13 +10,13 @@
10
10
  "dependencies": {
11
11
  "@react-router/dev": "^7.5.3",
12
12
  "@react-router/fs-routes": "^7.5.3",
13
- "@webstudio-is/image": "0.230.0",
14
- "@webstudio-is/react-sdk": "0.230.0",
15
- "@webstudio-is/sdk": "0.230.0",
16
- "@webstudio-is/sdk-components-animation": "0.230.0",
17
- "@webstudio-is/sdk-components-react-radix": "0.230.0",
18
- "@webstudio-is/sdk-components-react-router": "0.230.0",
19
- "@webstudio-is/sdk-components-react": "0.230.0",
13
+ "@webstudio-is/image": "0.232.0",
14
+ "@webstudio-is/react-sdk": "0.232.0",
15
+ "@webstudio-is/sdk": "0.232.0",
16
+ "@webstudio-is/sdk-components-animation": "0.232.0",
17
+ "@webstudio-is/sdk-components-react-radix": "0.232.0",
18
+ "@webstudio-is/sdk-components-react-router": "0.232.0",
19
+ "@webstudio-is/sdk-components-react": "0.232.0",
20
20
  "isbot": "^5.1.25",
21
21
  "react": "18.3.0-canary-14898b6a9-20240318",
22
22
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
@@ -15,6 +15,7 @@ export const data = async (pageContext: PageContextServer) => {
15
15
  params,
16
16
  search: Object.fromEntries(url.searchParams),
17
17
  origin: url.origin,
18
+ pathname: url.pathname,
18
19
  };
19
20
 
20
21
  const resources = await loadResources(fetch, getResources({ system }).data);
@@ -8,12 +8,12 @@
8
8
  "typecheck": "tsc"
9
9
  },
10
10
  "dependencies": {
11
- "@webstudio-is/image": "0.230.0",
12
- "@webstudio-is/react-sdk": "0.230.0",
13
- "@webstudio-is/sdk": "0.230.0",
14
- "@webstudio-is/sdk-components-react": "0.230.0",
15
- "@webstudio-is/sdk-components-animation": "0.230.0",
16
- "@webstudio-is/sdk-components-react-radix": "0.230.0",
11
+ "@webstudio-is/image": "0.232.0",
12
+ "@webstudio-is/react-sdk": "0.232.0",
13
+ "@webstudio-is/sdk": "0.232.0",
14
+ "@webstudio-is/sdk-components-react": "0.232.0",
15
+ "@webstudio-is/sdk-components-animation": "0.232.0",
16
+ "@webstudio-is/sdk-components-react-radix": "0.232.0",
17
17
  "react": "18.3.0-canary-14898b6a9-20240318",
18
18
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
19
19
  "vike": "^0.4.229"