webstudio 0.212.0 → 0.214.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 +230 -210
- package/package.json +23 -23
- package/templates/cloudflare/package.json +2 -2
- package/templates/defaults/app/root.tsx +6 -2
- package/templates/defaults/app/route-templates/html.tsx +1 -1
- package/templates/defaults/package.json +11 -11
- package/templates/react-router/app/root.tsx +6 -2
- package/templates/react-router/app/route-templates/html.tsx +1 -1
- package/templates/react-router/package.json +10 -10
- package/templates/react-router-docker/package.json +2 -2
- package/templates/react-router-netlify/package.json +2 -2
- package/templates/react-router-vercel/package.json +1 -1
- package/templates/ssg/package.json +7 -7
- package/templates/ssg/renderer/+onRenderHtml.tsx +13 -5
package/lib/cli.js
CHANGED
|
@@ -2445,7 +2445,7 @@ var Json = z.object({
|
|
|
2445
2445
|
type: z.literal("json"),
|
|
2446
2446
|
defaultValue: z.unknown().optional()
|
|
2447
2447
|
});
|
|
2448
|
-
var Date = z.object({
|
|
2448
|
+
var Date$1 = z.object({
|
|
2449
2449
|
...common,
|
|
2450
2450
|
control: z.literal("date"),
|
|
2451
2451
|
// @todo not sure what type should be here
|
|
@@ -2490,7 +2490,7 @@ var PropMeta = z.union([
|
|
|
2490
2490
|
File,
|
|
2491
2491
|
Url,
|
|
2492
2492
|
Json,
|
|
2493
|
-
Date,
|
|
2493
|
+
Date$1,
|
|
2494
2494
|
Action,
|
|
2495
2495
|
TextContent,
|
|
2496
2496
|
AnimationAction
|
|
@@ -2617,19 +2617,36 @@ var defaultStates = [
|
|
|
2617
2617
|
{ selector: ":focus-visible", label: "Focus Visible" },
|
|
2618
2618
|
{ selector: ":focus-within", label: "Focus Within" }
|
|
2619
2619
|
];
|
|
2620
|
+
var ContentModel = z.object({
|
|
2621
|
+
/*
|
|
2622
|
+
* instance - accepted by any parent with "instance" in children categories
|
|
2623
|
+
* none - accepted by parents with this component name in children categories
|
|
2624
|
+
*/
|
|
2625
|
+
category: z.union([z.literal("instance"), z.literal("none")]),
|
|
2626
|
+
/**
|
|
2627
|
+
* transparent - pass through possible children from parent
|
|
2628
|
+
* rich-text - can be edited as rich text
|
|
2629
|
+
* instance - other instances accepted
|
|
2630
|
+
* empty - no children accepted
|
|
2631
|
+
* ComponentName - accept specific components with none category
|
|
2632
|
+
*/
|
|
2633
|
+
children: z.array(
|
|
2634
|
+
z.string()
|
|
2635
|
+
)
|
|
2636
|
+
});
|
|
2620
2637
|
z.object({
|
|
2621
2638
|
category: z.enum(componentCategories).optional(),
|
|
2622
2639
|
// container - can accept other components with dnd or be edited as text
|
|
2623
2640
|
// control - usually form controls like inputs, without children
|
|
2624
2641
|
// embed - images, videos or other embeddable components, without children
|
|
2625
|
-
|
|
2626
|
-
type: z.enum(["container", "control", "embed", "rich-text-child"]),
|
|
2642
|
+
type: z.enum(["container", "control", "embed"]),
|
|
2627
2643
|
/**
|
|
2628
2644
|
* a property used as textual placeholder when no content specified while in builder
|
|
2629
2645
|
* also signals to not insert components inside unless dropped explicitly
|
|
2630
2646
|
*/
|
|
2631
2647
|
placeholder: z.string().optional(),
|
|
2632
2648
|
constraints: Matchers.optional(),
|
|
2649
|
+
contentModel: ContentModel.optional(),
|
|
2633
2650
|
// when this field is specified component receives
|
|
2634
2651
|
// prop with index of same components withiin specified ancestor
|
|
2635
2652
|
// important to automatically enumerate collections without
|
|
@@ -2685,37 +2702,32 @@ var descendantMeta = {
|
|
|
2685
2702
|
type: "control",
|
|
2686
2703
|
label: "Descendant",
|
|
2687
2704
|
icon: PaintBrushIcon,
|
|
2705
|
+
contentModel: {
|
|
2706
|
+
category: "none",
|
|
2707
|
+
children: ["empty"]
|
|
2708
|
+
},
|
|
2688
2709
|
// @todo infer possible presets
|
|
2689
|
-
presetStyle: {}
|
|
2690
|
-
constraints: {
|
|
2691
|
-
relation: "parent",
|
|
2692
|
-
component: { $in: ["HtmlEmbed", "MarkdownEmbed"] }
|
|
2693
|
-
}
|
|
2710
|
+
presetStyle: {}
|
|
2694
2711
|
};
|
|
2695
2712
|
var blockComponent = "ws:block";
|
|
2696
2713
|
var blockTemplateComponent = "ws:block-template";
|
|
2697
2714
|
var blockTemplateMeta = {
|
|
2698
2715
|
type: "container",
|
|
2699
2716
|
icon: AddTemplateInstanceIcon,
|
|
2700
|
-
|
|
2701
|
-
|
|
2702
|
-
|
|
2717
|
+
contentModel: {
|
|
2718
|
+
category: "none",
|
|
2719
|
+
children: ["instance"]
|
|
2703
2720
|
}
|
|
2704
2721
|
};
|
|
2705
2722
|
var blockMeta = {
|
|
2706
2723
|
type: "container",
|
|
2707
2724
|
label: "Content Block",
|
|
2708
2725
|
icon: ContentBlockIcon,
|
|
2709
|
-
|
|
2710
|
-
|
|
2711
|
-
|
|
2712
|
-
|
|
2713
|
-
|
|
2714
|
-
{
|
|
2715
|
-
relation: "child",
|
|
2716
|
-
component: { $eq: blockTemplateComponent }
|
|
2717
|
-
}
|
|
2718
|
-
]
|
|
2726
|
+
contentModel: {
|
|
2727
|
+
category: "instance",
|
|
2728
|
+
children: [blockTemplateComponent, "instance"]
|
|
2729
|
+
// @todo prevent deleting block template
|
|
2730
|
+
}
|
|
2719
2731
|
};
|
|
2720
2732
|
var coreMetas = {
|
|
2721
2733
|
[rootComponent]: rootMeta,
|
|
@@ -4654,7 +4666,7 @@ const e$5 = {
|
|
|
4654
4666
|
icon: SlotComponentIcon,
|
|
4655
4667
|
order: 5
|
|
4656
4668
|
};
|
|
4657
|
-
const o$
|
|
4669
|
+
const o$5 = {
|
|
4658
4670
|
type: "container",
|
|
4659
4671
|
icon: ""
|
|
4660
4672
|
};
|
|
@@ -4668,25 +4680,29 @@ const e$4 = {
|
|
|
4668
4680
|
type: "boolean"
|
|
4669
4681
|
}
|
|
4670
4682
|
};
|
|
4671
|
-
const
|
|
4672
|
-
div: [
|
|
4673
|
-
{
|
|
4674
|
-
property: "display",
|
|
4675
|
-
value: { type: "keyword", value: "contents" }
|
|
4676
|
-
},
|
|
4677
|
-
{
|
|
4678
|
-
property: "white-space-collapse",
|
|
4679
|
-
value: { type: "keyword", value: "collapse" }
|
|
4680
|
-
}
|
|
4681
|
-
]
|
|
4682
|
-
}, a$d = {
|
|
4683
|
+
const r$b = {
|
|
4683
4684
|
category: "general",
|
|
4684
|
-
type: "
|
|
4685
|
+
type: "container",
|
|
4685
4686
|
label: "HTML Embed",
|
|
4686
4687
|
description: "Used to add HTML code to the page, such as an SVG or script.",
|
|
4687
4688
|
icon: EmbedIcon,
|
|
4688
|
-
|
|
4689
|
-
|
|
4689
|
+
order: 2,
|
|
4690
|
+
contentModel: {
|
|
4691
|
+
category: "instance",
|
|
4692
|
+
children: [descendantComponent]
|
|
4693
|
+
},
|
|
4694
|
+
presetStyle: {
|
|
4695
|
+
div: [
|
|
4696
|
+
{
|
|
4697
|
+
property: "display",
|
|
4698
|
+
value: { type: "keyword", value: "contents" }
|
|
4699
|
+
},
|
|
4700
|
+
{
|
|
4701
|
+
property: "white-space-collapse",
|
|
4702
|
+
value: { type: "keyword", value: "collapse" }
|
|
4703
|
+
}
|
|
4704
|
+
]
|
|
4705
|
+
}
|
|
4690
4706
|
};
|
|
4691
4707
|
({
|
|
4692
4708
|
props: {
|
|
@@ -4709,9 +4725,13 @@ const i$4 = {
|
|
|
4709
4725
|
},
|
|
4710
4726
|
initialProps: ["className", "clientOnly", "executeScriptOnCanvas"]
|
|
4711
4727
|
});
|
|
4712
|
-
const
|
|
4713
|
-
type: "
|
|
4728
|
+
const a$b = {
|
|
4729
|
+
type: "container",
|
|
4714
4730
|
icon: MarkdownEmbedIcon,
|
|
4731
|
+
contentModel: {
|
|
4732
|
+
category: "instance",
|
|
4733
|
+
children: [descendantComponent]
|
|
4734
|
+
},
|
|
4715
4735
|
presetStyle: {
|
|
4716
4736
|
div: [
|
|
4717
4737
|
{
|
|
@@ -4763,13 +4783,13 @@ var h3 = div;
|
|
|
4763
4783
|
var h4 = div;
|
|
4764
4784
|
var h5 = div;
|
|
4765
4785
|
var h6 = div;
|
|
4766
|
-
var i$
|
|
4786
|
+
var i$2 = div;
|
|
4767
4787
|
var img = div;
|
|
4768
|
-
var a$
|
|
4788
|
+
var a$a = div;
|
|
4769
4789
|
var li = div;
|
|
4770
4790
|
var ul = div;
|
|
4771
4791
|
var ol = div;
|
|
4772
|
-
var p$
|
|
4792
|
+
var p$9 = div;
|
|
4773
4793
|
var span = div;
|
|
4774
4794
|
var body = [
|
|
4775
4795
|
{ property: "margin-top", value: { type: "unit", unit: "number", value: 0 } },
|
|
@@ -5080,7 +5100,7 @@ var button = [
|
|
|
5080
5100
|
{ property: "text-transform", value: { type: "keyword", value: "none" } }
|
|
5081
5101
|
];
|
|
5082
5102
|
var select = button;
|
|
5083
|
-
const a$
|
|
5103
|
+
const a$9 = {
|
|
5084
5104
|
body: [
|
|
5085
5105
|
...body,
|
|
5086
5106
|
{
|
|
@@ -5096,7 +5116,7 @@ const a$b = {
|
|
|
5096
5116
|
type: "container",
|
|
5097
5117
|
icon: BodyIcon,
|
|
5098
5118
|
states: defaultStates,
|
|
5099
|
-
presetStyle: a$
|
|
5119
|
+
presetStyle: a$9
|
|
5100
5120
|
};
|
|
5101
5121
|
const v$2 = {
|
|
5102
5122
|
category: "general",
|
|
@@ -5118,7 +5138,7 @@ const v$2 = {
|
|
|
5118
5138
|
},
|
|
5119
5139
|
order: 0
|
|
5120
5140
|
};
|
|
5121
|
-
const s$
|
|
5141
|
+
const s$6 = {
|
|
5122
5142
|
type: "container",
|
|
5123
5143
|
icon: TextIcon,
|
|
5124
5144
|
states: defaultStates,
|
|
@@ -5146,18 +5166,18 @@ const d$6 = {
|
|
|
5146
5166
|
h6
|
|
5147
5167
|
}
|
|
5148
5168
|
};
|
|
5149
|
-
const p$
|
|
5150
|
-
p: p$
|
|
5169
|
+
const p$8 = {
|
|
5170
|
+
p: p$9
|
|
5151
5171
|
}, n$6 = {
|
|
5152
5172
|
type: "container",
|
|
5153
5173
|
placeholder: "Paragraph",
|
|
5154
5174
|
icon: TextAlignLeftIcon,
|
|
5155
5175
|
states: defaultStates,
|
|
5156
|
-
presetStyle: p$
|
|
5176
|
+
presetStyle: p$8
|
|
5157
5177
|
};
|
|
5158
|
-
const a$
|
|
5178
|
+
const a$8 = {
|
|
5159
5179
|
a: [
|
|
5160
|
-
...a$
|
|
5180
|
+
...a$a,
|
|
5161
5181
|
{
|
|
5162
5182
|
property: "display",
|
|
5163
5183
|
value: { type: "keyword", value: "inline-block" }
|
|
@@ -5167,7 +5187,7 @@ const a$a = {
|
|
|
5167
5187
|
type: "container",
|
|
5168
5188
|
placeholder: "Link",
|
|
5169
5189
|
icon: LinkIcon,
|
|
5170
|
-
presetStyle: a$
|
|
5190
|
+
presetStyle: a$8,
|
|
5171
5191
|
states: [
|
|
5172
5192
|
...defaultStates,
|
|
5173
5193
|
{
|
|
@@ -5181,47 +5201,47 @@ const a$a = {
|
|
|
5181
5201
|
}
|
|
5182
5202
|
]
|
|
5183
5203
|
};
|
|
5184
|
-
const
|
|
5204
|
+
const o$4 = {
|
|
5185
5205
|
...n$5,
|
|
5186
|
-
type: "
|
|
5206
|
+
type: "container"
|
|
5187
5207
|
};
|
|
5188
|
-
const s$
|
|
5208
|
+
const s$5 = {
|
|
5189
5209
|
span
|
|
5190
|
-
},
|
|
5191
|
-
type: "
|
|
5210
|
+
}, n$4 = {
|
|
5211
|
+
type: "container",
|
|
5192
5212
|
label: "Text",
|
|
5193
5213
|
icon: PaintBrushIcon,
|
|
5194
5214
|
states: defaultStates,
|
|
5195
|
-
presetStyle: s$
|
|
5215
|
+
presetStyle: s$5
|
|
5196
5216
|
};
|
|
5197
|
-
const p$
|
|
5217
|
+
const p$7 = {
|
|
5198
5218
|
b: b$8
|
|
5199
5219
|
}, l$6 = {
|
|
5200
|
-
type: "
|
|
5220
|
+
type: "container",
|
|
5201
5221
|
label: "Bold Text",
|
|
5202
5222
|
icon: BoldIcon,
|
|
5203
5223
|
states: defaultStates,
|
|
5204
|
-
presetStyle: p$
|
|
5224
|
+
presetStyle: p$7
|
|
5205
5225
|
};
|
|
5206
|
-
const
|
|
5226
|
+
const i$1 = {
|
|
5207
5227
|
i: [
|
|
5208
|
-
...i$
|
|
5228
|
+
...i$2,
|
|
5209
5229
|
{
|
|
5210
5230
|
property: "font-style",
|
|
5211
5231
|
value: { type: "keyword", value: "italic" }
|
|
5212
5232
|
}
|
|
5213
5233
|
]
|
|
5214
|
-
}, c$
|
|
5215
|
-
type: "
|
|
5234
|
+
}, c$7 = {
|
|
5235
|
+
type: "container",
|
|
5216
5236
|
label: "Italic Text",
|
|
5217
5237
|
icon: TextItalicIcon,
|
|
5218
5238
|
states: defaultStates,
|
|
5219
|
-
presetStyle:
|
|
5239
|
+
presetStyle: i$1
|
|
5220
5240
|
};
|
|
5221
5241
|
const e$3 = {
|
|
5222
5242
|
sup
|
|
5223
|
-
},
|
|
5224
|
-
type: "
|
|
5243
|
+
}, c$6 = {
|
|
5244
|
+
type: "container",
|
|
5225
5245
|
label: "Superscript Text",
|
|
5226
5246
|
icon: SuperscriptIcon,
|
|
5227
5247
|
states: defaultStates,
|
|
@@ -5229,8 +5249,8 @@ const e$3 = {
|
|
|
5229
5249
|
};
|
|
5230
5250
|
const e$2 = {
|
|
5231
5251
|
sub
|
|
5232
|
-
},
|
|
5233
|
-
type: "
|
|
5252
|
+
}, c$5 = {
|
|
5253
|
+
type: "container",
|
|
5234
5254
|
label: "Subscript Text",
|
|
5235
5255
|
icon: SubscriptIcon,
|
|
5236
5256
|
states: defaultStates,
|
|
@@ -5238,7 +5258,7 @@ const e$2 = {
|
|
|
5238
5258
|
};
|
|
5239
5259
|
const l$5 = {
|
|
5240
5260
|
button
|
|
5241
|
-
}, p$
|
|
5261
|
+
}, p$6 = {
|
|
5242
5262
|
icon: ButtonElementIcon,
|
|
5243
5263
|
type: "container",
|
|
5244
5264
|
presetStyle: l$5,
|
|
@@ -5248,7 +5268,7 @@ const l$5 = {
|
|
|
5248
5268
|
{ selector: ":enabled", label: "Enabled" }
|
|
5249
5269
|
]
|
|
5250
5270
|
};
|
|
5251
|
-
const r$
|
|
5271
|
+
const r$a = {
|
|
5252
5272
|
input: [
|
|
5253
5273
|
...input,
|
|
5254
5274
|
{
|
|
@@ -5256,13 +5276,13 @@ const r$c = {
|
|
|
5256
5276
|
value: { type: "keyword", value: "block" }
|
|
5257
5277
|
}
|
|
5258
5278
|
]
|
|
5259
|
-
}, c$
|
|
5279
|
+
}, c$4 = {
|
|
5260
5280
|
category: "forms",
|
|
5261
5281
|
type: "control",
|
|
5262
5282
|
label: "Text Input",
|
|
5263
5283
|
description: "A single-line text input for collecting string data from your users.",
|
|
5264
5284
|
icon: FormTextFieldIcon,
|
|
5265
|
-
presetStyle: r$
|
|
5285
|
+
presetStyle: r$a,
|
|
5266
5286
|
order: 3,
|
|
5267
5287
|
states: [
|
|
5268
5288
|
...defaultStates,
|
|
@@ -5278,7 +5298,7 @@ const r$c = {
|
|
|
5278
5298
|
//{ selector: ":read-write", label: "Read Write" },
|
|
5279
5299
|
]
|
|
5280
5300
|
};
|
|
5281
|
-
const c$
|
|
5301
|
+
const c$3 = {
|
|
5282
5302
|
label: "Webhook Form",
|
|
5283
5303
|
icon: WebhookFormIcon,
|
|
5284
5304
|
type: "container",
|
|
@@ -5290,22 +5310,22 @@ const c$4 = {
|
|
|
5290
5310
|
{ selector: "[data-state=success]", label: "Success" }
|
|
5291
5311
|
]
|
|
5292
5312
|
};
|
|
5293
|
-
const s$
|
|
5313
|
+
const s$4 = {
|
|
5294
5314
|
form: [
|
|
5295
5315
|
...form,
|
|
5296
5316
|
{ property: "min-height", value: { type: "unit", unit: "px", value: 20 } }
|
|
5297
5317
|
]
|
|
5298
|
-
}, n$
|
|
5318
|
+
}, n$3 = {
|
|
5299
5319
|
category: "forms",
|
|
5300
5320
|
type: "container",
|
|
5301
5321
|
label: "Form",
|
|
5302
5322
|
description: "Create filters, surveys, searches and more.",
|
|
5303
5323
|
icon: FormIcon,
|
|
5304
5324
|
states: defaultStates,
|
|
5305
|
-
presetStyle: s$
|
|
5325
|
+
presetStyle: s$4,
|
|
5306
5326
|
order: 0
|
|
5307
5327
|
};
|
|
5308
|
-
const a$
|
|
5328
|
+
const a$7 = {
|
|
5309
5329
|
img: [
|
|
5310
5330
|
...img,
|
|
5311
5331
|
// Otherwise on new image insert onto canvas it can overfit screen size multiple times
|
|
@@ -5333,10 +5353,10 @@ const a$6 = {
|
|
|
5333
5353
|
description: "Add an image asset to the page. Webstudio automatically converts images to WebP or AVIF format and makes them responsive for best performance.",
|
|
5334
5354
|
icon: ImageIcon,
|
|
5335
5355
|
states: defaultStates,
|
|
5336
|
-
presetStyle: a$
|
|
5356
|
+
presetStyle: a$7,
|
|
5337
5357
|
order: 0
|
|
5338
5358
|
};
|
|
5339
|
-
const r$
|
|
5359
|
+
const r$9 = {
|
|
5340
5360
|
blockquote: [
|
|
5341
5361
|
{
|
|
5342
5362
|
property: "margin-top",
|
|
@@ -5383,14 +5403,14 @@ const r$b = {
|
|
|
5383
5403
|
value: { type: "rgb", r: 226, g: 226, b: 226, alpha: 1 }
|
|
5384
5404
|
}
|
|
5385
5405
|
]
|
|
5386
|
-
}, i
|
|
5406
|
+
}, i = {
|
|
5387
5407
|
type: "container",
|
|
5388
5408
|
placeholder: "Blockquote",
|
|
5389
5409
|
icon: BlockquoteIcon,
|
|
5390
5410
|
states: defaultStates,
|
|
5391
|
-
presetStyle: r$
|
|
5411
|
+
presetStyle: r$9
|
|
5392
5412
|
};
|
|
5393
|
-
const a$
|
|
5413
|
+
const a$6 = {
|
|
5394
5414
|
ol: [
|
|
5395
5415
|
...ol,
|
|
5396
5416
|
{
|
|
@@ -5425,9 +5445,9 @@ const a$5 = {
|
|
|
5425
5445
|
type: "container",
|
|
5426
5446
|
icon: ListIcon,
|
|
5427
5447
|
states: defaultStates,
|
|
5428
|
-
presetStyle: a$
|
|
5448
|
+
presetStyle: a$6
|
|
5429
5449
|
};
|
|
5430
|
-
const a$
|
|
5450
|
+
const a$5 = {
|
|
5431
5451
|
type: "container",
|
|
5432
5452
|
placeholder: "List item",
|
|
5433
5453
|
icon: ListItemIcon,
|
|
@@ -5436,7 +5456,7 @@ const a$4 = {
|
|
|
5436
5456
|
li
|
|
5437
5457
|
}
|
|
5438
5458
|
};
|
|
5439
|
-
const p$
|
|
5459
|
+
const p$5 = {
|
|
5440
5460
|
hr: [
|
|
5441
5461
|
...hr,
|
|
5442
5462
|
{
|
|
@@ -5464,16 +5484,16 @@ const p$6 = {
|
|
|
5464
5484
|
value: { type: "keyword", value: "none" }
|
|
5465
5485
|
}
|
|
5466
5486
|
]
|
|
5467
|
-
}, n$
|
|
5487
|
+
}, n$2 = {
|
|
5468
5488
|
category: "general",
|
|
5469
5489
|
type: "embed",
|
|
5470
5490
|
description: "Used to visually divide sections of content, helping to improve readability and organization within a webpage.",
|
|
5471
5491
|
icon: MinusIcon,
|
|
5472
5492
|
states: defaultStates,
|
|
5473
|
-
presetStyle: p$
|
|
5493
|
+
presetStyle: p$5,
|
|
5474
5494
|
order: 3
|
|
5475
5495
|
};
|
|
5476
|
-
const p$
|
|
5496
|
+
const p$4 = {
|
|
5477
5497
|
code: [
|
|
5478
5498
|
...code,
|
|
5479
5499
|
{
|
|
@@ -5507,10 +5527,10 @@ const p$5 = {
|
|
|
5507
5527
|
description: "Use this component when you want to display code as text on the page.",
|
|
5508
5528
|
icon: BracesIcon,
|
|
5509
5529
|
states: defaultStates,
|
|
5510
|
-
presetStyle: p$
|
|
5530
|
+
presetStyle: p$4,
|
|
5511
5531
|
order: 5
|
|
5512
5532
|
};
|
|
5513
|
-
const a$
|
|
5533
|
+
const a$4 = {
|
|
5514
5534
|
label: [
|
|
5515
5535
|
...label,
|
|
5516
5536
|
{ property: "display", value: { type: "keyword", value: "block" } }
|
|
@@ -5520,7 +5540,7 @@ const a$3 = {
|
|
|
5520
5540
|
label: "Input Label",
|
|
5521
5541
|
icon: LabelIcon,
|
|
5522
5542
|
states: defaultStates,
|
|
5523
|
-
presetStyle: a$
|
|
5543
|
+
presetStyle: a$4
|
|
5524
5544
|
};
|
|
5525
5545
|
const l$3 = {
|
|
5526
5546
|
textarea: [
|
|
@@ -5532,7 +5552,7 @@ const l$3 = {
|
|
|
5532
5552
|
value: { type: "keyword", value: "block" }
|
|
5533
5553
|
}
|
|
5534
5554
|
]
|
|
5535
|
-
}, c$
|
|
5555
|
+
}, c$2 = {
|
|
5536
5556
|
category: "forms",
|
|
5537
5557
|
type: "control",
|
|
5538
5558
|
label: "Text Area",
|
|
@@ -5554,7 +5574,7 @@ const l$3 = {
|
|
|
5554
5574
|
//{ selector: ":read-write", label: "Read Write" },
|
|
5555
5575
|
]
|
|
5556
5576
|
};
|
|
5557
|
-
const a$
|
|
5577
|
+
const a$3 = {
|
|
5558
5578
|
input: [
|
|
5559
5579
|
...radio,
|
|
5560
5580
|
{
|
|
@@ -5562,11 +5582,11 @@ const a$2 = {
|
|
|
5562
5582
|
value: { type: "unit", unit: "em", value: 0.5 }
|
|
5563
5583
|
}
|
|
5564
5584
|
]
|
|
5565
|
-
}, s$
|
|
5585
|
+
}, s$3 = {
|
|
5566
5586
|
type: "control",
|
|
5567
5587
|
label: "Radio",
|
|
5568
5588
|
icon: RadioCheckedIcon,
|
|
5569
|
-
presetStyle: a$
|
|
5589
|
+
presetStyle: a$3,
|
|
5570
5590
|
states: [
|
|
5571
5591
|
...defaultStates,
|
|
5572
5592
|
{ selector: ":checked", label: "Checked" },
|
|
@@ -5602,72 +5622,76 @@ const o$3 = {
|
|
|
5602
5622
|
{ selector: ":read-write", label: "Read Write" }
|
|
5603
5623
|
]
|
|
5604
5624
|
};
|
|
5605
|
-
const
|
|
5606
|
-
div
|
|
5607
|
-
}, c$2 = {
|
|
5625
|
+
const m$2 = {
|
|
5608
5626
|
type: "container",
|
|
5609
5627
|
icon: VimeoIcon,
|
|
5610
5628
|
states: defaultStates,
|
|
5611
|
-
|
|
5612
|
-
|
|
5613
|
-
|
|
5614
|
-
|
|
5629
|
+
contentModel: {
|
|
5630
|
+
category: "instance",
|
|
5631
|
+
children: [
|
|
5632
|
+
"instance",
|
|
5633
|
+
"VimeoSpinner",
|
|
5634
|
+
"VimeoPlayButton",
|
|
5635
|
+
"VimeoPreviewImage"
|
|
5636
|
+
]
|
|
5637
|
+
},
|
|
5638
|
+
presetStyle: {
|
|
5639
|
+
div
|
|
5615
5640
|
}
|
|
5616
5641
|
};
|
|
5617
|
-
const
|
|
5618
|
-
div
|
|
5619
|
-
}, c$1 = {
|
|
5642
|
+
const p$3 = {
|
|
5620
5643
|
type: "container",
|
|
5621
5644
|
icon: YoutubeIcon,
|
|
5622
5645
|
states: defaultStates,
|
|
5623
|
-
|
|
5624
|
-
|
|
5625
|
-
|
|
5626
|
-
|
|
5646
|
+
contentModel: {
|
|
5647
|
+
category: "instance",
|
|
5648
|
+
children: [
|
|
5649
|
+
"instance",
|
|
5650
|
+
"VimeoSpinner",
|
|
5651
|
+
"VimeoPlayButton",
|
|
5652
|
+
"VimeoPreviewImage"
|
|
5653
|
+
]
|
|
5654
|
+
},
|
|
5655
|
+
presetStyle: {
|
|
5656
|
+
div
|
|
5627
5657
|
}
|
|
5628
5658
|
};
|
|
5629
|
-
const
|
|
5659
|
+
const a$2 = {
|
|
5630
5660
|
...l$4,
|
|
5631
5661
|
category: "hidden",
|
|
5632
5662
|
label: "Preview Image",
|
|
5633
|
-
|
|
5634
|
-
|
|
5635
|
-
|
|
5663
|
+
contentModel: {
|
|
5664
|
+
category: "none",
|
|
5665
|
+
children: ["empty"]
|
|
5636
5666
|
}
|
|
5637
5667
|
};
|
|
5638
|
-
const
|
|
5639
|
-
button
|
|
5640
|
-
}, p$4 = {
|
|
5668
|
+
const s$2 = {
|
|
5641
5669
|
category: "hidden",
|
|
5642
5670
|
type: "container",
|
|
5643
|
-
constraints: [
|
|
5644
|
-
{
|
|
5645
|
-
relation: "ancestor",
|
|
5646
|
-
component: { $in: ["Vimeo", "YouTube"] }
|
|
5647
|
-
},
|
|
5648
|
-
{
|
|
5649
|
-
relation: "ancestor",
|
|
5650
|
-
component: { $neq: "Button" }
|
|
5651
|
-
}
|
|
5652
|
-
],
|
|
5653
5671
|
label: "Play Button",
|
|
5654
5672
|
icon: ButtonElementIcon,
|
|
5655
|
-
|
|
5656
|
-
|
|
5673
|
+
states: defaultStates,
|
|
5674
|
+
contentModel: {
|
|
5675
|
+
category: "none",
|
|
5676
|
+
children: ["instance"]
|
|
5677
|
+
},
|
|
5678
|
+
presetStyle: {
|
|
5679
|
+
button
|
|
5680
|
+
}
|
|
5657
5681
|
};
|
|
5658
|
-
const
|
|
5659
|
-
div
|
|
5660
|
-
}, m$2 = {
|
|
5682
|
+
const s$1 = {
|
|
5661
5683
|
type: "container",
|
|
5662
|
-
constraints: {
|
|
5663
|
-
relation: "ancestor",
|
|
5664
|
-
component: { $in: ["Vimeo", "YouTube"] }
|
|
5665
|
-
},
|
|
5666
5684
|
icon: BoxIcon,
|
|
5667
5685
|
states: defaultStates,
|
|
5668
|
-
presetStyle: n$2,
|
|
5669
5686
|
category: "hidden",
|
|
5670
|
-
label: "Spinner"
|
|
5687
|
+
label: "Spinner",
|
|
5688
|
+
contentModel: {
|
|
5689
|
+
category: "none",
|
|
5690
|
+
children: ["instance"]
|
|
5691
|
+
},
|
|
5692
|
+
presetStyle: {
|
|
5693
|
+
div
|
|
5694
|
+
}
|
|
5671
5695
|
};
|
|
5672
5696
|
const e$1 = {
|
|
5673
5697
|
category: "xml",
|
|
@@ -5701,7 +5725,7 @@ const r$7 = {
|
|
|
5701
5725
|
value: { type: "keyword", value: "block" }
|
|
5702
5726
|
}
|
|
5703
5727
|
]
|
|
5704
|
-
}, c = {
|
|
5728
|
+
}, c$1 = {
|
|
5705
5729
|
type: "container",
|
|
5706
5730
|
icon: SelectIcon,
|
|
5707
5731
|
presetStyle: r$7,
|
|
@@ -5749,42 +5773,36 @@ const r$5 = {
|
|
|
5749
5773
|
icon: HeaderIcon,
|
|
5750
5774
|
type: "container",
|
|
5751
5775
|
description: "Inserts children into the head of the document",
|
|
5752
|
-
|
|
5753
|
-
|
|
5754
|
-
|
|
5755
|
-
|
|
5756
|
-
},
|
|
5757
|
-
{
|
|
5758
|
-
relation: "child",
|
|
5759
|
-
component: { $in: ["HeadLink", "HeadMeta", "HeadTitle"] }
|
|
5760
|
-
}
|
|
5761
|
-
]
|
|
5776
|
+
contentModel: {
|
|
5777
|
+
category: "instance",
|
|
5778
|
+
children: ["HeadLink", "HeadMeta", "HeadTitle"]
|
|
5779
|
+
}
|
|
5762
5780
|
};
|
|
5763
|
-
const p$
|
|
5781
|
+
const p$2 = {
|
|
5764
5782
|
category: "hidden",
|
|
5765
5783
|
icon: ResourceIcon,
|
|
5766
5784
|
type: "embed",
|
|
5767
|
-
|
|
5768
|
-
|
|
5769
|
-
|
|
5785
|
+
contentModel: {
|
|
5786
|
+
category: "none",
|
|
5787
|
+
children: ["empty"]
|
|
5770
5788
|
}
|
|
5771
5789
|
};
|
|
5772
|
-
const p$
|
|
5790
|
+
const p$1 = {
|
|
5773
5791
|
category: "hidden",
|
|
5774
5792
|
icon: WindowInfoIcon,
|
|
5775
5793
|
type: "embed",
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5794
|
+
contentModel: {
|
|
5795
|
+
category: "none",
|
|
5796
|
+
children: ["empty"]
|
|
5779
5797
|
}
|
|
5780
5798
|
};
|
|
5781
|
-
const
|
|
5799
|
+
const c = {
|
|
5782
5800
|
category: "hidden",
|
|
5783
5801
|
icon: WindowTitleIcon,
|
|
5784
5802
|
type: "container",
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5803
|
+
contentModel: {
|
|
5804
|
+
category: "none",
|
|
5805
|
+
children: ["text"]
|
|
5788
5806
|
}
|
|
5789
5807
|
};
|
|
5790
5808
|
const r$4 = {
|
|
@@ -5801,51 +5819,51 @@ const r$4 = {
|
|
|
5801
5819
|
};
|
|
5802
5820
|
const baseComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
5803
5821
|
__proto__: null,
|
|
5804
|
-
Blockquote: i
|
|
5822
|
+
Blockquote: i,
|
|
5805
5823
|
Body: n$7,
|
|
5806
5824
|
Bold: l$6,
|
|
5807
5825
|
Box: v$2,
|
|
5808
|
-
Button: p$
|
|
5826
|
+
Button: p$6,
|
|
5809
5827
|
Checkbox: d$3,
|
|
5810
5828
|
CodeText: d$4,
|
|
5811
|
-
Form: c$
|
|
5812
|
-
Fragment: o$
|
|
5813
|
-
HeadLink: p$
|
|
5814
|
-
HeadMeta: p$
|
|
5829
|
+
Form: c$3,
|
|
5830
|
+
Fragment: o$5,
|
|
5831
|
+
HeadLink: p$2,
|
|
5832
|
+
HeadMeta: p$1,
|
|
5815
5833
|
HeadSlot: r$5,
|
|
5816
|
-
HeadTitle:
|
|
5834
|
+
HeadTitle: c,
|
|
5817
5835
|
Heading: d$6,
|
|
5818
|
-
HtmlEmbed:
|
|
5836
|
+
HtmlEmbed: r$b,
|
|
5819
5837
|
Image: l$4,
|
|
5820
|
-
Input: c$
|
|
5821
|
-
Italic: c$
|
|
5838
|
+
Input: c$4,
|
|
5839
|
+
Italic: c$7,
|
|
5822
5840
|
Label: m$3,
|
|
5823
5841
|
Link: n$5,
|
|
5824
5842
|
List: d$5,
|
|
5825
|
-
ListItem: a$
|
|
5826
|
-
MarkdownEmbed:
|
|
5843
|
+
ListItem: a$5,
|
|
5844
|
+
MarkdownEmbed: a$b,
|
|
5827
5845
|
Option: r$6,
|
|
5828
5846
|
Paragraph: n$6,
|
|
5829
|
-
RadioButton: s$
|
|
5830
|
-
RemixForm: n$
|
|
5831
|
-
RichTextLink:
|
|
5832
|
-
Select: c,
|
|
5833
|
-
Separator: n$
|
|
5847
|
+
RadioButton: s$3,
|
|
5848
|
+
RemixForm: n$3,
|
|
5849
|
+
RichTextLink: o$4,
|
|
5850
|
+
Select: c$1,
|
|
5851
|
+
Separator: n$2,
|
|
5834
5852
|
Slot: e$5,
|
|
5835
|
-
Span:
|
|
5836
|
-
Subscript:
|
|
5837
|
-
Superscript:
|
|
5838
|
-
Text: s$
|
|
5839
|
-
Textarea: c$
|
|
5853
|
+
Span: n$4,
|
|
5854
|
+
Subscript: c$5,
|
|
5855
|
+
Superscript: c$6,
|
|
5856
|
+
Text: s$6,
|
|
5857
|
+
Textarea: c$2,
|
|
5840
5858
|
Time: s,
|
|
5841
5859
|
Video: r$4,
|
|
5842
|
-
Vimeo:
|
|
5843
|
-
VimeoPlayButton:
|
|
5844
|
-
VimeoPreviewImage:
|
|
5845
|
-
VimeoSpinner:
|
|
5860
|
+
Vimeo: m$2,
|
|
5861
|
+
VimeoPlayButton: s$2,
|
|
5862
|
+
VimeoPreviewImage: a$2,
|
|
5863
|
+
VimeoSpinner: s$1,
|
|
5846
5864
|
XmlNode: e$1,
|
|
5847
5865
|
XmlTime: a$1,
|
|
5848
|
-
YouTube:
|
|
5866
|
+
YouTube: p$3
|
|
5849
5867
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
5850
5868
|
const o$2 = {
|
|
5851
5869
|
category: "animations",
|
|
@@ -5921,10 +5939,10 @@ const animationComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Ob
|
|
|
5921
5939
|
const remixComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
5922
5940
|
__proto__: null,
|
|
5923
5941
|
Body: n$7,
|
|
5924
|
-
Form: c$
|
|
5942
|
+
Form: c$3,
|
|
5925
5943
|
Link: n$5,
|
|
5926
|
-
RemixForm: n$
|
|
5927
|
-
RichTextLink:
|
|
5944
|
+
RemixForm: n$3,
|
|
5945
|
+
RichTextLink: o$4
|
|
5928
5946
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
5929
5947
|
const r = (t2) => new Proxy(
|
|
5930
5948
|
{},
|
|
@@ -6069,7 +6087,7 @@ const S$1 = {
|
|
|
6069
6087
|
}, h$1 = {
|
|
6070
6088
|
type: "container",
|
|
6071
6089
|
presetStyle: {
|
|
6072
|
-
p: p$
|
|
6090
|
+
p: p$9
|
|
6073
6091
|
},
|
|
6074
6092
|
icon: TextIcon,
|
|
6075
6093
|
constraints: {
|
|
@@ -6799,10 +6817,10 @@ const createFramework$2 = async () => {
|
|
|
6799
6817
|
const reactRouterComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
6800
6818
|
__proto__: null,
|
|
6801
6819
|
Body: n$7,
|
|
6802
|
-
Form: c$
|
|
6820
|
+
Form: c$3,
|
|
6803
6821
|
Link: n$5,
|
|
6804
|
-
RemixForm: n$
|
|
6805
|
-
RichTextLink:
|
|
6822
|
+
RemixForm: n$3,
|
|
6823
|
+
RichTextLink: o$4
|
|
6806
6824
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
6807
6825
|
const createFramework$1 = async () => {
|
|
6808
6826
|
const routeTemplatesDir = join("app", "route-templates");
|
|
@@ -7340,6 +7358,10 @@ Please check webstudio --help for more details`
|
|
|
7340
7358
|
import { useResource, useVariableState } from "@webstudio-is/react-sdk/runtime";
|
|
7341
7359
|
${componentImports}
|
|
7342
7360
|
|
|
7361
|
+
export const projectId = "${siteData.build.projectId}";
|
|
7362
|
+
|
|
7363
|
+
export const lastPublished = "${new Date(siteData.build.createdAt).toISOString()}";
|
|
7364
|
+
|
|
7343
7365
|
export const siteName = ${JSON.stringify(projectMeta == null ? void 0 : projectMeta.siteName)};
|
|
7344
7366
|
|
|
7345
7367
|
export const breakpoints = ${JSON.stringify(breakpoints)};
|
|
@@ -7403,8 +7425,6 @@ Please check webstudio --help for more details`
|
|
|
7403
7425
|
|
|
7404
7426
|
${generateRemixParams(page.path)}
|
|
7405
7427
|
|
|
7406
|
-
export const projectId = "${siteData.build.projectId}";
|
|
7407
|
-
|
|
7408
7428
|
export const contactEmail = ${JSON.stringify(contactEmail)};
|
|
7409
7429
|
`;
|
|
7410
7430
|
const generatedBasename = generateRemixRoute(pagePath);
|
|
@@ -7622,7 +7642,7 @@ const getDeploymentInstructions = (deployTarget) => {
|
|
|
7622
7642
|
}
|
|
7623
7643
|
};
|
|
7624
7644
|
const name = "webstudio";
|
|
7625
|
-
const version = "0.
|
|
7645
|
+
const version = "0.214.0";
|
|
7626
7646
|
const description = "Webstudio CLI";
|
|
7627
7647
|
const author = "Webstudio <github@webstudio.is>";
|
|
7628
7648
|
const homepage = "https://webstudio.is";
|
|
@@ -7670,15 +7690,15 @@ const dependencies = {
|
|
|
7670
7690
|
zod: "^3.24.2"
|
|
7671
7691
|
};
|
|
7672
7692
|
const devDependencies = {
|
|
7673
|
-
"@netlify/vite-plugin-react-router": "^1.0.
|
|
7674
|
-
"@react-router/dev": "^7.
|
|
7675
|
-
"@react-router/fs-routes": "^7.
|
|
7676
|
-
"@remix-run/cloudflare": "^2.16.
|
|
7677
|
-
"@remix-run/cloudflare-pages": "^2.16.
|
|
7678
|
-
"@remix-run/dev": "^2.16.
|
|
7679
|
-
"@remix-run/node": "^2.16.
|
|
7680
|
-
"@remix-run/react": "^2.16.
|
|
7681
|
-
"@remix-run/server-runtime": "^2.16.
|
|
7693
|
+
"@netlify/vite-plugin-react-router": "^1.0.1",
|
|
7694
|
+
"@react-router/dev": "^7.5.0",
|
|
7695
|
+
"@react-router/fs-routes": "^7.5.0",
|
|
7696
|
+
"@remix-run/cloudflare": "^2.16.4",
|
|
7697
|
+
"@remix-run/cloudflare-pages": "^2.16.4",
|
|
7698
|
+
"@remix-run/dev": "^2.16.4",
|
|
7699
|
+
"@remix-run/node": "^2.16.4",
|
|
7700
|
+
"@remix-run/react": "^2.16.4",
|
|
7701
|
+
"@remix-run/server-runtime": "^2.16.4",
|
|
7682
7702
|
"@types/react": "^18.2.70",
|
|
7683
7703
|
"@types/react-dom": "^18.2.25",
|
|
7684
7704
|
"@types/yargs": "^17.0.33",
|
|
@@ -7700,9 +7720,9 @@ const devDependencies = {
|
|
|
7700
7720
|
prettier: "3.5.3",
|
|
7701
7721
|
react: "18.3.0-canary-14898b6a9-20240318",
|
|
7702
7722
|
"react-dom": "18.3.0-canary-14898b6a9-20240318",
|
|
7703
|
-
"react-router": "^7.
|
|
7723
|
+
"react-router": "^7.5.0",
|
|
7704
7724
|
"ts-expect": "^1.3.0",
|
|
7705
|
-
vike: "^0.4.
|
|
7725
|
+
vike: "^0.4.228",
|
|
7706
7726
|
vite: "^5.4.11",
|
|
7707
7727
|
vitest: "^3.0.8",
|
|
7708
7728
|
wrangler: "^3.63.2"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "webstudio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.214.0",
|
|
4
4
|
"description": "Webstudio CLI",
|
|
5
5
|
"author": "Webstudio <github@webstudio.is>",
|
|
6
6
|
"homepage": "https://webstudio.is",
|
|
@@ -43,15 +43,15 @@
|
|
|
43
43
|
"zod": "^3.24.2"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@netlify/vite-plugin-react-router": "^1.0.
|
|
47
|
-
"@react-router/dev": "^7.
|
|
48
|
-
"@react-router/fs-routes": "^7.
|
|
49
|
-
"@remix-run/cloudflare": "^2.16.
|
|
50
|
-
"@remix-run/cloudflare-pages": "^2.16.
|
|
51
|
-
"@remix-run/dev": "^2.16.
|
|
52
|
-
"@remix-run/node": "^2.16.
|
|
53
|
-
"@remix-run/react": "^2.16.
|
|
54
|
-
"@remix-run/server-runtime": "^2.16.
|
|
46
|
+
"@netlify/vite-plugin-react-router": "^1.0.1",
|
|
47
|
+
"@react-router/dev": "^7.5.0",
|
|
48
|
+
"@react-router/fs-routes": "^7.5.0",
|
|
49
|
+
"@remix-run/cloudflare": "^2.16.4",
|
|
50
|
+
"@remix-run/cloudflare-pages": "^2.16.4",
|
|
51
|
+
"@remix-run/dev": "^2.16.4",
|
|
52
|
+
"@remix-run/node": "^2.16.4",
|
|
53
|
+
"@remix-run/react": "^2.16.4",
|
|
54
|
+
"@remix-run/server-runtime": "^2.16.4",
|
|
55
55
|
"@types/react": "^18.2.70",
|
|
56
56
|
"@types/react-dom": "^18.2.25",
|
|
57
57
|
"@types/yargs": "^17.0.33",
|
|
@@ -62,23 +62,23 @@
|
|
|
62
62
|
"prettier": "3.5.3",
|
|
63
63
|
"react": "18.3.0-canary-14898b6a9-20240318",
|
|
64
64
|
"react-dom": "18.3.0-canary-14898b6a9-20240318",
|
|
65
|
-
"react-router": "^7.
|
|
65
|
+
"react-router": "^7.5.0",
|
|
66
66
|
"ts-expect": "^1.3.0",
|
|
67
|
-
"vike": "^0.4.
|
|
67
|
+
"vike": "^0.4.228",
|
|
68
68
|
"vite": "^5.4.11",
|
|
69
69
|
"vitest": "^3.0.8",
|
|
70
70
|
"wrangler": "^3.63.2",
|
|
71
|
-
"@webstudio-is/
|
|
72
|
-
"@webstudio-is/
|
|
73
|
-
"@webstudio-is/
|
|
74
|
-
"@webstudio-is/
|
|
75
|
-
"@webstudio-is/sdk": "0.
|
|
76
|
-
"@webstudio-is/sdk-components-
|
|
77
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
78
|
-
"@webstudio-is/sdk-components-react-
|
|
79
|
-
"@webstudio-is/sdk-components-react-
|
|
80
|
-
"@webstudio-is/
|
|
81
|
-
"@webstudio-is/
|
|
71
|
+
"@webstudio-is/http-client": "0.214.0",
|
|
72
|
+
"@webstudio-is/image": "0.214.0",
|
|
73
|
+
"@webstudio-is/react-sdk": "0.214.0",
|
|
74
|
+
"@webstudio-is/sdk": "0.214.0",
|
|
75
|
+
"@webstudio-is/sdk-components-animation": "0.214.0",
|
|
76
|
+
"@webstudio-is/sdk-components-react": "0.214.0",
|
|
77
|
+
"@webstudio-is/sdk-components-react-radix": "0.214.0",
|
|
78
|
+
"@webstudio-is/sdk-components-react-remix": "0.214.0",
|
|
79
|
+
"@webstudio-is/sdk-components-react-router": "0.214.0",
|
|
80
|
+
"@webstudio-is/tsconfig": "1.0.7",
|
|
81
|
+
"@webstudio-is/css-engine": "0.214.0"
|
|
82
82
|
},
|
|
83
83
|
"scripts": {
|
|
84
84
|
"typecheck": "tsc",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"build-cf-types": "wrangler types"
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@remix-run/cloudflare": "2.16.
|
|
16
|
-
"@remix-run/cloudflare-pages": "2.16.
|
|
15
|
+
"@remix-run/cloudflare": "2.16.4",
|
|
16
|
+
"@remix-run/cloudflare-pages": "2.16.4"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
19
|
"@cloudflare/workers-types": "^4.20240620.0",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Links, Meta, Outlet, useMatches } from "@remix-run/react";
|
|
4
4
|
// @todo think about how to make __generated__ typeable
|
|
5
5
|
// @ts-ignore
|
|
6
|
-
import { CustomCode } from "./__generated__/_index";
|
|
6
|
+
import { CustomCode, projectId, lastPublished } from "./__generated__/_index";
|
|
7
7
|
|
|
8
8
|
const Root = () => {
|
|
9
9
|
// Get language from matches
|
|
@@ -19,7 +19,11 @@ const Root = () => {
|
|
|
19
19
|
const lang = lastMatchWithLanguage?.data?.pageMeta?.language ?? "en";
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
|
-
<html
|
|
22
|
+
<html
|
|
23
|
+
lang={lang}
|
|
24
|
+
data-ws-project={projectId}
|
|
25
|
+
data-ws-last-published={lastPublished}
|
|
26
|
+
>
|
|
23
27
|
<head>
|
|
24
28
|
<meta charSet="utf-8" />
|
|
25
29
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
@@ -23,6 +23,7 @@ import {
|
|
|
23
23
|
PageSettingsCanonicalLink,
|
|
24
24
|
} from "@webstudio-is/react-sdk/runtime";
|
|
25
25
|
import {
|
|
26
|
+
projectId,
|
|
26
27
|
Page,
|
|
27
28
|
siteName,
|
|
28
29
|
favIconAsset,
|
|
@@ -34,7 +35,6 @@ import {
|
|
|
34
35
|
getResources,
|
|
35
36
|
getPageMeta,
|
|
36
37
|
getRemixParams,
|
|
37
|
-
projectId,
|
|
38
38
|
contactEmail,
|
|
39
39
|
} from "__SERVER__";
|
|
40
40
|
import { assetBaseUrl, imageLoader } from "__CONSTANTS__";
|
|
@@ -8,22 +8,22 @@
|
|
|
8
8
|
"typecheck": "tsc"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@remix-run/node": "2.16.
|
|
12
|
-
"@remix-run/react": "2.16.
|
|
13
|
-
"@remix-run/server-runtime": "2.16.
|
|
14
|
-
"@webstudio-is/image": "0.
|
|
15
|
-
"@webstudio-is/react-sdk": "0.
|
|
16
|
-
"@webstudio-is/sdk": "0.
|
|
17
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
18
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
19
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
20
|
-
"@webstudio-is/sdk-components-react-remix": "0.
|
|
11
|
+
"@remix-run/node": "2.16.4",
|
|
12
|
+
"@remix-run/react": "2.16.4",
|
|
13
|
+
"@remix-run/server-runtime": "2.16.4",
|
|
14
|
+
"@webstudio-is/image": "0.214.0",
|
|
15
|
+
"@webstudio-is/react-sdk": "0.214.0",
|
|
16
|
+
"@webstudio-is/sdk": "0.214.0",
|
|
17
|
+
"@webstudio-is/sdk-components-react": "0.214.0",
|
|
18
|
+
"@webstudio-is/sdk-components-animation": "0.214.0",
|
|
19
|
+
"@webstudio-is/sdk-components-react-radix": "0.214.0",
|
|
20
|
+
"@webstudio-is/sdk-components-react-remix": "0.214.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"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@remix-run/dev": "2.16.
|
|
26
|
+
"@remix-run/dev": "2.16.4",
|
|
27
27
|
"@types/react": "^18.2.70",
|
|
28
28
|
"@types/react-dom": "^18.2.25",
|
|
29
29
|
"typescript": "5.8.2",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Links, Meta, Outlet, useMatches } from "react-router";
|
|
4
4
|
// @todo think about how to make __generated__ typeable
|
|
5
5
|
// @ts-ignore
|
|
6
|
-
import { CustomCode } from "./__generated__/_index";
|
|
6
|
+
import { CustomCode, projectId, lastPublished } from "./__generated__/_index";
|
|
7
7
|
|
|
8
8
|
const Root = () => {
|
|
9
9
|
// Get language from matches
|
|
@@ -19,7 +19,11 @@ const Root = () => {
|
|
|
19
19
|
const lang = lastMatchWithLanguage?.data?.pageMeta?.language ?? "en";
|
|
20
20
|
|
|
21
21
|
return (
|
|
22
|
-
<html
|
|
22
|
+
<html
|
|
23
|
+
lang={lang}
|
|
24
|
+
data-ws-project={projectId}
|
|
25
|
+
data-ws-last-published={lastPublished}
|
|
26
|
+
>
|
|
23
27
|
<head>
|
|
24
28
|
<meta charSet="utf-8" />
|
|
25
29
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|
|
@@ -22,6 +22,7 @@ import {
|
|
|
22
22
|
PageSettingsTitle,
|
|
23
23
|
} from "@webstudio-is/react-sdk/runtime";
|
|
24
24
|
import {
|
|
25
|
+
projectId,
|
|
25
26
|
Page,
|
|
26
27
|
siteName,
|
|
27
28
|
favIconAsset,
|
|
@@ -33,7 +34,6 @@ import {
|
|
|
33
34
|
getResources,
|
|
34
35
|
getPageMeta,
|
|
35
36
|
getRemixParams,
|
|
36
|
-
projectId,
|
|
37
37
|
contactEmail,
|
|
38
38
|
} from "__SERVER__";
|
|
39
39
|
import { assetBaseUrl, imageLoader } from "__CONSTANTS__";
|
|
@@ -8,19 +8,19 @@
|
|
|
8
8
|
"typecheck": "tsc"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@react-router/dev": "^7.
|
|
12
|
-
"@react-router/fs-routes": "^7.
|
|
13
|
-
"@webstudio-is/image": "0.
|
|
14
|
-
"@webstudio-is/react-sdk": "0.
|
|
15
|
-
"@webstudio-is/sdk": "0.
|
|
16
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
17
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
18
|
-
"@webstudio-is/sdk-components-react-router": "0.
|
|
19
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
11
|
+
"@react-router/dev": "^7.5.0",
|
|
12
|
+
"@react-router/fs-routes": "^7.5.0",
|
|
13
|
+
"@webstudio-is/image": "0.214.0",
|
|
14
|
+
"@webstudio-is/react-sdk": "0.214.0",
|
|
15
|
+
"@webstudio-is/sdk": "0.214.0",
|
|
16
|
+
"@webstudio-is/sdk-components-animation": "0.214.0",
|
|
17
|
+
"@webstudio-is/sdk-components-react-radix": "0.214.0",
|
|
18
|
+
"@webstudio-is/sdk-components-react-router": "0.214.0",
|
|
19
|
+
"@webstudio-is/sdk-components-react": "0.214.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",
|
|
23
|
-
"react-router": "^7.
|
|
23
|
+
"react-router": "^7.5.0",
|
|
24
24
|
"vite": "^5.4.11"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
@@ -8,15 +8,15 @@
|
|
|
8
8
|
"typecheck": "tsc"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@webstudio-is/image": "0.
|
|
12
|
-
"@webstudio-is/react-sdk": "0.
|
|
13
|
-
"@webstudio-is/sdk": "0.
|
|
14
|
-
"@webstudio-is/sdk-components-react": "0.
|
|
15
|
-
"@webstudio-is/sdk-components-animation": "0.
|
|
16
|
-
"@webstudio-is/sdk-components-react-radix": "0.
|
|
11
|
+
"@webstudio-is/image": "0.214.0",
|
|
12
|
+
"@webstudio-is/react-sdk": "0.214.0",
|
|
13
|
+
"@webstudio-is/sdk": "0.214.0",
|
|
14
|
+
"@webstudio-is/sdk-components-react": "0.214.0",
|
|
15
|
+
"@webstudio-is/sdk-components-animation": "0.214.0",
|
|
16
|
+
"@webstudio-is/sdk-components-react-radix": "0.214.0",
|
|
17
17
|
"react": "18.3.0-canary-14898b6a9-20240318",
|
|
18
18
|
"react-dom": "18.3.0-canary-14898b6a9-20240318",
|
|
19
|
-
"vike": "^0.4.
|
|
19
|
+
"vike": "^0.4.228"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@types/react": "^18.2.70",
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { renderToString } from "react-dom/server";
|
|
2
2
|
import { dangerouslySkipEscape, escapeInject } from "vike/server";
|
|
3
3
|
import type { OnRenderHtmlSync } from "vike/types";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
import {
|
|
5
|
+
CustomCode,
|
|
6
|
+
projectId,
|
|
7
|
+
lastPublished,
|
|
8
|
+
// @todo think about how to make __generated__ typeable
|
|
9
|
+
/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
} from "../app/__generated__/_index";
|
|
8
12
|
|
|
9
13
|
export const onRenderHtml: OnRenderHtmlSync = (pageContext) => {
|
|
10
14
|
const lang = pageContext.data.pageMeta.language || "en";
|
|
@@ -12,7 +16,11 @@ export const onRenderHtml: OnRenderHtmlSync = (pageContext) => {
|
|
|
12
16
|
const Page = pageContext.Page ?? (() => <></>);
|
|
13
17
|
const html = dangerouslySkipEscape(
|
|
14
18
|
renderToString(
|
|
15
|
-
<html
|
|
19
|
+
<html
|
|
20
|
+
lang={lang}
|
|
21
|
+
data-ws-project={projectId}
|
|
22
|
+
data-ws-last-published={lastPublished}
|
|
23
|
+
>
|
|
16
24
|
<head>
|
|
17
25
|
<meta charSet="UTF-8" />
|
|
18
26
|
<meta name="viewport" content="width=device-width,initial-scale=1" />
|