@webstudio-is/sdk 0.0.0-bd48788 → 0.0.0-bdb8a58
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/__generated__/normalize.css.js +247 -151
- package/lib/core-templates.js +5 -5
- package/lib/index.js +745 -310
- package/lib/types/__generated__/normalize.css.d.ts +2 -2
- package/lib/types/core-metas.d.ts +35 -0
- package/lib/types/css.d.ts +31 -0
- package/lib/types/css.test.d.ts +1 -0
- package/lib/types/expression.d.ts +7 -5
- package/lib/types/index.d.ts +3 -0
- package/lib/types/instances-utils.d.ts +3 -0
- package/lib/types/schema/animation-schema.d.ts +22925 -0
- package/lib/types/schema/component-meta.d.ts +3978 -379
- package/lib/types/schema/data-sources.d.ts +18 -18
- package/lib/types/schema/deployment.d.ts +4 -4
- package/lib/types/schema/pages.d.ts +13 -13
- package/lib/types/schema/prop-meta.d.ts +21 -0
- package/lib/types/schema/props.d.ts +16186 -0
- package/lib/types/schema/webstudio.d.ts +9386 -15
- package/package.json +8 -7
package/lib/index.js
CHANGED
|
@@ -57,7 +57,7 @@ var commonPageFields = {
|
|
|
57
57
|
title: PageTitle,
|
|
58
58
|
history: z2.optional(z2.array(z2.string())),
|
|
59
59
|
rootInstanceId: z2.string(),
|
|
60
|
-
systemDataSourceId: z2.string(),
|
|
60
|
+
systemDataSourceId: z2.string().optional(),
|
|
61
61
|
meta: z2.object({
|
|
62
62
|
description: z2.string().optional(),
|
|
63
63
|
title: z2.string().optional(),
|
|
@@ -88,7 +88,10 @@ var HomePage = z2.object({
|
|
|
88
88
|
...commonPageFields,
|
|
89
89
|
path: HomePagePath
|
|
90
90
|
});
|
|
91
|
-
var PagePath = z2.string().refine((path) => path !== "", "Can't be empty").refine((path) => path !== "/", "Can't be just a /").refine(
|
|
91
|
+
var PagePath = z2.string().refine((path) => path !== "", "Can't be empty").refine((path) => path !== "/", "Can't be just a /").refine(
|
|
92
|
+
(path) => path === "" || path.startsWith("/"),
|
|
93
|
+
"Must start with a / or a full URL e.g. https://website.org"
|
|
94
|
+
).refine((path) => path.endsWith("/") === false, "Can't end with a /").refine((path) => path.includes("//") === false, "Can't contain repeating /").refine(
|
|
92
95
|
(path) => /^[-_a-z0-9*:?\\/.]*$/.test(path),
|
|
93
96
|
"Only a-z, 0-9, -, _, /, :, ?, . and * are allowed"
|
|
94
97
|
).refine(
|
|
@@ -218,20 +221,25 @@ var DataSource = z4.union([
|
|
|
218
221
|
z4.object({
|
|
219
222
|
type: z4.literal("variable"),
|
|
220
223
|
id: DataSourceId,
|
|
221
|
-
|
|
224
|
+
// The instance should always be specified for variables,
|
|
225
|
+
// however, there was a bug in the embed template
|
|
226
|
+
// which produced variables without an instance
|
|
227
|
+
// and these variables will fail validation
|
|
228
|
+
// if we make it required
|
|
229
|
+
scopeInstanceId: z4.string().optional(),
|
|
222
230
|
name: z4.string(),
|
|
223
231
|
value: DataSourceVariableValue
|
|
224
232
|
}),
|
|
225
233
|
z4.object({
|
|
226
234
|
type: z4.literal("parameter"),
|
|
227
235
|
id: DataSourceId,
|
|
228
|
-
scopeInstanceId: z4.string(),
|
|
236
|
+
scopeInstanceId: z4.string().optional(),
|
|
229
237
|
name: z4.string()
|
|
230
238
|
}),
|
|
231
239
|
z4.object({
|
|
232
240
|
type: z4.literal("resource"),
|
|
233
241
|
id: DataSourceId,
|
|
234
|
-
scopeInstanceId: z4.string(),
|
|
242
|
+
scopeInstanceId: z4.string().optional(),
|
|
235
243
|
name: z4.string(),
|
|
236
244
|
resourceId: z4.string()
|
|
237
245
|
})
|
|
@@ -274,98 +282,261 @@ var ResourceRequest = z5.object({
|
|
|
274
282
|
var Resources = z5.map(ResourceId, Resource);
|
|
275
283
|
|
|
276
284
|
// src/schema/props.ts
|
|
285
|
+
import { z as z7 } from "zod";
|
|
286
|
+
|
|
287
|
+
// src/schema/animation-schema.ts
|
|
288
|
+
import { StyleValue } from "@webstudio-is/css-engine";
|
|
277
289
|
import { z as z6 } from "zod";
|
|
278
|
-
var
|
|
290
|
+
var literalUnion = (arr) => z6.union(
|
|
291
|
+
arr.map((val) => z6.literal(val))
|
|
292
|
+
);
|
|
293
|
+
var RANGE_UNITS = [
|
|
294
|
+
"%",
|
|
295
|
+
"px",
|
|
296
|
+
"cm",
|
|
297
|
+
"mm",
|
|
298
|
+
"q",
|
|
299
|
+
"in",
|
|
300
|
+
"pt",
|
|
301
|
+
"pc",
|
|
302
|
+
"em",
|
|
303
|
+
"rem",
|
|
304
|
+
"ex",
|
|
305
|
+
"rex",
|
|
306
|
+
"cap",
|
|
307
|
+
"rcap",
|
|
308
|
+
"ch",
|
|
309
|
+
"rch",
|
|
310
|
+
"lh",
|
|
311
|
+
"rlh",
|
|
312
|
+
"vw",
|
|
313
|
+
"svw",
|
|
314
|
+
"lvw",
|
|
315
|
+
"dvw",
|
|
316
|
+
"vh",
|
|
317
|
+
"svh",
|
|
318
|
+
"lvh",
|
|
319
|
+
"dvh",
|
|
320
|
+
"vi",
|
|
321
|
+
"svi",
|
|
322
|
+
"lvi",
|
|
323
|
+
"dvi",
|
|
324
|
+
"vb",
|
|
325
|
+
"svb",
|
|
326
|
+
"lvb",
|
|
327
|
+
"dvb",
|
|
328
|
+
"vmin",
|
|
329
|
+
"svmin",
|
|
330
|
+
"lvmin",
|
|
331
|
+
"dvmin",
|
|
332
|
+
"vmax",
|
|
333
|
+
"svmax",
|
|
334
|
+
"lvmax",
|
|
335
|
+
"dvmax"
|
|
336
|
+
];
|
|
337
|
+
var rangeUnitSchema = literalUnion(RANGE_UNITS);
|
|
338
|
+
var rangeUnitValueSchema = z6.union([
|
|
339
|
+
z6.object({
|
|
340
|
+
type: z6.literal("unit"),
|
|
341
|
+
value: z6.number(),
|
|
342
|
+
unit: rangeUnitSchema
|
|
343
|
+
}),
|
|
344
|
+
z6.object({
|
|
345
|
+
type: z6.literal("unparsed"),
|
|
346
|
+
value: z6.string()
|
|
347
|
+
})
|
|
348
|
+
]);
|
|
349
|
+
var insetUnitValueSchema = z6.union([
|
|
350
|
+
rangeUnitValueSchema,
|
|
351
|
+
z6.object({
|
|
352
|
+
type: z6.literal("keyword"),
|
|
353
|
+
value: z6.literal("auto")
|
|
354
|
+
})
|
|
355
|
+
]);
|
|
356
|
+
var keyframeStylesSchema = z6.record(StyleValue);
|
|
357
|
+
var animationKeyframeSchema = z6.object({
|
|
358
|
+
offset: z6.number().optional(),
|
|
359
|
+
styles: keyframeStylesSchema
|
|
360
|
+
});
|
|
361
|
+
var keyframeEffectOptionsSchema = z6.object({
|
|
362
|
+
easing: z6.string().optional(),
|
|
363
|
+
fill: z6.union([
|
|
364
|
+
z6.literal("none"),
|
|
365
|
+
z6.literal("forwards"),
|
|
366
|
+
z6.literal("backwards"),
|
|
367
|
+
z6.literal("both")
|
|
368
|
+
]).optional()
|
|
369
|
+
// FillMode
|
|
370
|
+
});
|
|
371
|
+
var scrollNamedRangeSchema = z6.union([
|
|
372
|
+
z6.literal("start"),
|
|
373
|
+
z6.literal("end")
|
|
374
|
+
]);
|
|
375
|
+
var scrollRangeValueSchema = z6.tuple([
|
|
376
|
+
scrollNamedRangeSchema,
|
|
377
|
+
rangeUnitValueSchema
|
|
378
|
+
]);
|
|
379
|
+
var scrollRangeOptionsSchema = z6.object({
|
|
380
|
+
rangeStart: scrollRangeValueSchema.optional(),
|
|
381
|
+
rangeEnd: scrollRangeValueSchema.optional()
|
|
382
|
+
});
|
|
383
|
+
var animationAxisSchema = z6.union([
|
|
384
|
+
z6.literal("block"),
|
|
385
|
+
z6.literal("inline"),
|
|
386
|
+
z6.literal("x"),
|
|
387
|
+
z6.literal("y")
|
|
388
|
+
]);
|
|
389
|
+
var viewNamedRangeSchema = z6.union([
|
|
390
|
+
z6.literal("contain"),
|
|
391
|
+
z6.literal("cover"),
|
|
392
|
+
z6.literal("entry"),
|
|
393
|
+
z6.literal("exit"),
|
|
394
|
+
z6.literal("entry-crossing"),
|
|
395
|
+
z6.literal("exit-crossing")
|
|
396
|
+
]);
|
|
397
|
+
var viewRangeValueSchema = z6.tuple([
|
|
398
|
+
viewNamedRangeSchema,
|
|
399
|
+
rangeUnitValueSchema
|
|
400
|
+
]);
|
|
401
|
+
var viewRangeOptionsSchema = z6.object({
|
|
402
|
+
rangeStart: viewRangeValueSchema.optional(),
|
|
403
|
+
rangeEnd: viewRangeValueSchema.optional()
|
|
404
|
+
});
|
|
405
|
+
var baseAnimation = z6.object({
|
|
406
|
+
name: z6.string().optional(),
|
|
407
|
+
description: z6.string().optional(),
|
|
408
|
+
keyframes: z6.array(animationKeyframeSchema)
|
|
409
|
+
});
|
|
410
|
+
var scrollAnimationSchema = baseAnimation.merge(
|
|
411
|
+
z6.object({
|
|
412
|
+
timing: keyframeEffectOptionsSchema.merge(scrollRangeOptionsSchema)
|
|
413
|
+
})
|
|
414
|
+
);
|
|
415
|
+
var scrollActionSchema = z6.object({
|
|
416
|
+
type: z6.literal("scroll"),
|
|
417
|
+
source: z6.union([z6.literal("closest"), z6.literal("nearest"), z6.literal("root")]).optional(),
|
|
418
|
+
axis: animationAxisSchema.optional(),
|
|
419
|
+
animations: z6.array(scrollAnimationSchema),
|
|
420
|
+
isPinned: z6.boolean().optional(),
|
|
421
|
+
debug: z6.boolean().optional()
|
|
422
|
+
});
|
|
423
|
+
var viewAnimationSchema = baseAnimation.merge(
|
|
424
|
+
z6.object({
|
|
425
|
+
timing: keyframeEffectOptionsSchema.merge(viewRangeOptionsSchema)
|
|
426
|
+
})
|
|
427
|
+
);
|
|
428
|
+
var viewActionSchema = z6.object({
|
|
429
|
+
type: z6.literal("view"),
|
|
430
|
+
subject: z6.string().optional(),
|
|
431
|
+
axis: animationAxisSchema.optional(),
|
|
432
|
+
animations: z6.array(viewAnimationSchema),
|
|
433
|
+
insetStart: insetUnitValueSchema.optional(),
|
|
434
|
+
insetEnd: insetUnitValueSchema.optional(),
|
|
435
|
+
isPinned: z6.boolean().optional(),
|
|
436
|
+
debug: z6.boolean().optional()
|
|
437
|
+
});
|
|
438
|
+
var animationActionSchema = z6.discriminatedUnion("type", [
|
|
439
|
+
scrollActionSchema,
|
|
440
|
+
viewActionSchema
|
|
441
|
+
]);
|
|
442
|
+
|
|
443
|
+
// src/schema/props.ts
|
|
444
|
+
var PropId = z7.string();
|
|
279
445
|
var baseProp = {
|
|
280
446
|
id: PropId,
|
|
281
|
-
instanceId:
|
|
282
|
-
name:
|
|
283
|
-
required:
|
|
447
|
+
instanceId: z7.string(),
|
|
448
|
+
name: z7.string(),
|
|
449
|
+
required: z7.optional(z7.boolean())
|
|
284
450
|
};
|
|
285
|
-
var Prop =
|
|
286
|
-
|
|
451
|
+
var Prop = z7.union([
|
|
452
|
+
z7.object({
|
|
287
453
|
...baseProp,
|
|
288
|
-
type:
|
|
289
|
-
value:
|
|
454
|
+
type: z7.literal("number"),
|
|
455
|
+
value: z7.number()
|
|
290
456
|
}),
|
|
291
|
-
|
|
457
|
+
z7.object({
|
|
292
458
|
...baseProp,
|
|
293
|
-
type:
|
|
294
|
-
value:
|
|
459
|
+
type: z7.literal("string"),
|
|
460
|
+
value: z7.string()
|
|
295
461
|
}),
|
|
296
|
-
|
|
462
|
+
z7.object({
|
|
297
463
|
...baseProp,
|
|
298
|
-
type:
|
|
299
|
-
value:
|
|
464
|
+
type: z7.literal("boolean"),
|
|
465
|
+
value: z7.boolean()
|
|
300
466
|
}),
|
|
301
|
-
|
|
467
|
+
z7.object({
|
|
302
468
|
...baseProp,
|
|
303
|
-
type:
|
|
304
|
-
value:
|
|
469
|
+
type: z7.literal("json"),
|
|
470
|
+
value: z7.unknown()
|
|
305
471
|
}),
|
|
306
|
-
|
|
472
|
+
z7.object({
|
|
307
473
|
...baseProp,
|
|
308
|
-
type:
|
|
309
|
-
value:
|
|
474
|
+
type: z7.literal("asset"),
|
|
475
|
+
value: z7.string()
|
|
310
476
|
// asset id
|
|
311
477
|
}),
|
|
312
|
-
|
|
478
|
+
z7.object({
|
|
313
479
|
...baseProp,
|
|
314
|
-
type:
|
|
315
|
-
value:
|
|
316
|
-
|
|
480
|
+
type: z7.literal("page"),
|
|
481
|
+
value: z7.union([
|
|
482
|
+
z7.string(),
|
|
317
483
|
// page id
|
|
318
|
-
|
|
319
|
-
pageId:
|
|
320
|
-
instanceId:
|
|
484
|
+
z7.object({
|
|
485
|
+
pageId: z7.string(),
|
|
486
|
+
instanceId: z7.string()
|
|
321
487
|
})
|
|
322
488
|
])
|
|
323
489
|
}),
|
|
324
|
-
|
|
490
|
+
z7.object({
|
|
325
491
|
...baseProp,
|
|
326
|
-
type:
|
|
327
|
-
value:
|
|
492
|
+
type: z7.literal("string[]"),
|
|
493
|
+
value: z7.array(z7.string())
|
|
328
494
|
}),
|
|
329
|
-
|
|
495
|
+
z7.object({
|
|
330
496
|
...baseProp,
|
|
331
|
-
type:
|
|
497
|
+
type: z7.literal("parameter"),
|
|
332
498
|
// data source id
|
|
333
|
-
value:
|
|
499
|
+
value: z7.string()
|
|
334
500
|
}),
|
|
335
|
-
|
|
501
|
+
z7.object({
|
|
336
502
|
...baseProp,
|
|
337
|
-
type:
|
|
503
|
+
type: z7.literal("resource"),
|
|
338
504
|
// resource id
|
|
339
|
-
value:
|
|
505
|
+
value: z7.string()
|
|
340
506
|
}),
|
|
341
|
-
|
|
507
|
+
z7.object({
|
|
342
508
|
...baseProp,
|
|
343
|
-
type:
|
|
509
|
+
type: z7.literal("expression"),
|
|
344
510
|
// expression code
|
|
345
|
-
value:
|
|
511
|
+
value: z7.string()
|
|
346
512
|
}),
|
|
347
|
-
|
|
513
|
+
z7.object({
|
|
348
514
|
...baseProp,
|
|
349
|
-
type:
|
|
350
|
-
value:
|
|
351
|
-
|
|
352
|
-
type:
|
|
353
|
-
args:
|
|
354
|
-
code:
|
|
515
|
+
type: z7.literal("action"),
|
|
516
|
+
value: z7.array(
|
|
517
|
+
z7.object({
|
|
518
|
+
type: z7.literal("execute"),
|
|
519
|
+
args: z7.array(z7.string()),
|
|
520
|
+
code: z7.string()
|
|
355
521
|
})
|
|
356
522
|
)
|
|
523
|
+
}),
|
|
524
|
+
z7.object({
|
|
525
|
+
...baseProp,
|
|
526
|
+
type: z7.literal("animationAction"),
|
|
527
|
+
value: animationActionSchema
|
|
357
528
|
})
|
|
358
529
|
]);
|
|
359
|
-
var Props =
|
|
530
|
+
var Props = z7.map(PropId, Prop);
|
|
360
531
|
|
|
361
532
|
// src/schema/breakpoints.ts
|
|
362
|
-
import { z as
|
|
363
|
-
var BreakpointId =
|
|
364
|
-
var Breakpoint =
|
|
533
|
+
import { z as z8 } from "zod";
|
|
534
|
+
var BreakpointId = z8.string();
|
|
535
|
+
var Breakpoint = z8.object({
|
|
365
536
|
id: BreakpointId,
|
|
366
|
-
label:
|
|
367
|
-
minWidth:
|
|
368
|
-
maxWidth:
|
|
537
|
+
label: z8.string(),
|
|
538
|
+
minWidth: z8.number().optional(),
|
|
539
|
+
maxWidth: z8.number().optional()
|
|
369
540
|
}).refine(({ minWidth, maxWidth }) => {
|
|
370
541
|
return (
|
|
371
542
|
// Either min or max width have to be defined
|
|
@@ -373,7 +544,7 @@ var Breakpoint = z7.object({
|
|
|
373
544
|
minWidth === void 0 && maxWidth === void 0
|
|
374
545
|
);
|
|
375
546
|
}, "Either minWidth or maxWidth should be defined");
|
|
376
|
-
var Breakpoints =
|
|
547
|
+
var Breakpoints = z8.map(BreakpointId, Breakpoint);
|
|
377
548
|
var initialBreakpoints = [
|
|
378
549
|
{ id: "placeholder", label: "Base" },
|
|
379
550
|
{ id: "placeholder", label: "Tablet", maxWidth: 991 },
|
|
@@ -382,234 +553,237 @@ var initialBreakpoints = [
|
|
|
382
553
|
];
|
|
383
554
|
|
|
384
555
|
// src/schema/style-sources.ts
|
|
385
|
-
import { z as
|
|
386
|
-
var StyleSourceId =
|
|
387
|
-
var StyleSourceToken =
|
|
388
|
-
type:
|
|
556
|
+
import { z as z9 } from "zod";
|
|
557
|
+
var StyleSourceId = z9.string();
|
|
558
|
+
var StyleSourceToken = z9.object({
|
|
559
|
+
type: z9.literal("token"),
|
|
389
560
|
id: StyleSourceId,
|
|
390
|
-
name:
|
|
561
|
+
name: z9.string()
|
|
391
562
|
});
|
|
392
|
-
var StyleSourceLocal =
|
|
393
|
-
type:
|
|
563
|
+
var StyleSourceLocal = z9.object({
|
|
564
|
+
type: z9.literal("local"),
|
|
394
565
|
id: StyleSourceId
|
|
395
566
|
});
|
|
396
|
-
var StyleSource =
|
|
397
|
-
var StyleSources =
|
|
567
|
+
var StyleSource = z9.union([StyleSourceToken, StyleSourceLocal]);
|
|
568
|
+
var StyleSources = z9.map(StyleSourceId, StyleSource);
|
|
398
569
|
|
|
399
570
|
// src/schema/style-source-selections.ts
|
|
400
|
-
import { z as
|
|
401
|
-
var InstanceId2 =
|
|
402
|
-
var StyleSourceId2 =
|
|
403
|
-
var StyleSourceSelection =
|
|
571
|
+
import { z as z10 } from "zod";
|
|
572
|
+
var InstanceId2 = z10.string();
|
|
573
|
+
var StyleSourceId2 = z10.string();
|
|
574
|
+
var StyleSourceSelection = z10.object({
|
|
404
575
|
instanceId: InstanceId2,
|
|
405
|
-
values:
|
|
576
|
+
values: z10.array(StyleSourceId2)
|
|
406
577
|
});
|
|
407
|
-
var StyleSourceSelections =
|
|
578
|
+
var StyleSourceSelections = z10.map(InstanceId2, StyleSourceSelection);
|
|
408
579
|
|
|
409
580
|
// src/schema/styles.ts
|
|
410
|
-
import { z as
|
|
411
|
-
import { StyleValue } from "@webstudio-is/css-engine";
|
|
412
|
-
var StyleDeclRaw =
|
|
413
|
-
styleSourceId:
|
|
414
|
-
breakpointId:
|
|
415
|
-
state:
|
|
581
|
+
import { z as z11 } from "zod";
|
|
582
|
+
import { StyleValue as StyleValue2 } from "@webstudio-is/css-engine";
|
|
583
|
+
var StyleDeclRaw = z11.object({
|
|
584
|
+
styleSourceId: z11.string(),
|
|
585
|
+
breakpointId: z11.string(),
|
|
586
|
+
state: z11.optional(z11.string()),
|
|
416
587
|
// @todo can't figure out how to make property to be enum
|
|
417
|
-
property:
|
|
418
|
-
value:
|
|
419
|
-
listed:
|
|
588
|
+
property: z11.string(),
|
|
589
|
+
value: StyleValue2,
|
|
590
|
+
listed: z11.boolean().optional()
|
|
420
591
|
});
|
|
421
592
|
var StyleDecl = StyleDeclRaw;
|
|
422
593
|
var getStyleDeclKey = (styleDecl) => {
|
|
423
594
|
return `${styleDecl.styleSourceId}:${styleDecl.breakpointId}:${styleDecl.property}:${styleDecl.state ?? ""}`;
|
|
424
595
|
};
|
|
425
|
-
var Styles =
|
|
596
|
+
var Styles = z11.map(z11.string(), StyleDecl);
|
|
426
597
|
|
|
427
598
|
// src/schema/deployment.ts
|
|
428
|
-
import { z as
|
|
429
|
-
var Templates =
|
|
430
|
-
"vanilla",
|
|
599
|
+
import { z as z12 } from "zod";
|
|
600
|
+
var Templates = z12.enum([
|
|
431
601
|
"docker",
|
|
432
602
|
"vercel",
|
|
433
603
|
"netlify",
|
|
434
|
-
"netlify-functions",
|
|
435
|
-
"netlify-edge-functions",
|
|
436
604
|
"ssg",
|
|
437
605
|
"ssg-netlify",
|
|
438
606
|
"ssg-vercel"
|
|
439
607
|
]);
|
|
440
|
-
var Deployment =
|
|
441
|
-
|
|
442
|
-
destination:
|
|
443
|
-
name:
|
|
444
|
-
assetsDomain:
|
|
608
|
+
var Deployment = z12.union([
|
|
609
|
+
z12.object({
|
|
610
|
+
destination: z12.literal("static"),
|
|
611
|
+
name: z12.string(),
|
|
612
|
+
assetsDomain: z12.string(),
|
|
445
613
|
// Must be validated very strictly
|
|
446
|
-
templates:
|
|
614
|
+
templates: z12.array(Templates)
|
|
447
615
|
}),
|
|
448
|
-
|
|
449
|
-
destination:
|
|
450
|
-
domains:
|
|
451
|
-
assetsDomain:
|
|
616
|
+
z12.object({
|
|
617
|
+
destination: z12.literal("saas").optional(),
|
|
618
|
+
domains: z12.array(z12.string()),
|
|
619
|
+
assetsDomain: z12.string().optional(),
|
|
452
620
|
/**
|
|
453
621
|
* @deprecated This field is deprecated, use `domains` instead.
|
|
454
622
|
*/
|
|
455
|
-
projectDomain:
|
|
456
|
-
excludeWstdDomainFromSearch:
|
|
623
|
+
projectDomain: z12.string().optional(),
|
|
624
|
+
excludeWstdDomainFromSearch: z12.boolean().optional()
|
|
457
625
|
})
|
|
458
626
|
]);
|
|
459
627
|
|
|
460
628
|
// src/schema/webstudio.ts
|
|
461
|
-
import { z as
|
|
462
|
-
var WebstudioFragment =
|
|
463
|
-
children:
|
|
464
|
-
instances:
|
|
465
|
-
assets:
|
|
466
|
-
dataSources:
|
|
467
|
-
resources:
|
|
468
|
-
props:
|
|
469
|
-
breakpoints:
|
|
470
|
-
styleSourceSelections:
|
|
471
|
-
styleSources:
|
|
472
|
-
styles:
|
|
629
|
+
import { z as z13 } from "zod";
|
|
630
|
+
var WebstudioFragment = z13.object({
|
|
631
|
+
children: z13.array(InstanceChild),
|
|
632
|
+
instances: z13.array(Instance),
|
|
633
|
+
assets: z13.array(Asset),
|
|
634
|
+
dataSources: z13.array(DataSource),
|
|
635
|
+
resources: z13.array(Resource),
|
|
636
|
+
props: z13.array(Prop),
|
|
637
|
+
breakpoints: z13.array(Breakpoint),
|
|
638
|
+
styleSourceSelections: z13.array(StyleSourceSelection),
|
|
639
|
+
styleSources: z13.array(StyleSource),
|
|
640
|
+
styles: z13.array(StyleDecl)
|
|
473
641
|
});
|
|
474
642
|
|
|
475
643
|
// src/schema/prop-meta.ts
|
|
476
|
-
import { z as
|
|
644
|
+
import { z as z14 } from "zod";
|
|
477
645
|
var common = {
|
|
478
|
-
label:
|
|
479
|
-
description:
|
|
480
|
-
required:
|
|
646
|
+
label: z14.string().optional(),
|
|
647
|
+
description: z14.string().optional(),
|
|
648
|
+
required: z14.boolean()
|
|
481
649
|
};
|
|
482
|
-
var Number =
|
|
650
|
+
var Number = z14.object({
|
|
483
651
|
...common,
|
|
484
|
-
control:
|
|
485
|
-
type:
|
|
486
|
-
defaultValue:
|
|
652
|
+
control: z14.literal("number"),
|
|
653
|
+
type: z14.literal("number"),
|
|
654
|
+
defaultValue: z14.number().optional()
|
|
487
655
|
});
|
|
488
|
-
var Range =
|
|
656
|
+
var Range = z14.object({
|
|
489
657
|
...common,
|
|
490
|
-
control:
|
|
491
|
-
type:
|
|
492
|
-
defaultValue:
|
|
658
|
+
control: z14.literal("range"),
|
|
659
|
+
type: z14.literal("number"),
|
|
660
|
+
defaultValue: z14.number().optional()
|
|
493
661
|
});
|
|
494
|
-
var Text =
|
|
662
|
+
var Text = z14.object({
|
|
495
663
|
...common,
|
|
496
|
-
control:
|
|
497
|
-
type:
|
|
498
|
-
defaultValue:
|
|
664
|
+
control: z14.literal("text"),
|
|
665
|
+
type: z14.literal("string"),
|
|
666
|
+
defaultValue: z14.string().optional(),
|
|
499
667
|
/**
|
|
500
668
|
* The number of rows in <textarea>. If set to 0 an <input> will be used instead.
|
|
501
669
|
* In line with Storybook team's plan: https://github.com/storybookjs/storybook/issues/21100
|
|
502
670
|
*/
|
|
503
|
-
rows:
|
|
671
|
+
rows: z14.number().optional()
|
|
504
672
|
});
|
|
505
|
-
var Code =
|
|
673
|
+
var Code = z14.object({
|
|
506
674
|
...common,
|
|
507
|
-
control:
|
|
508
|
-
type:
|
|
509
|
-
language:
|
|
510
|
-
defaultValue:
|
|
675
|
+
control: z14.literal("code"),
|
|
676
|
+
type: z14.literal("string"),
|
|
677
|
+
language: z14.union([z14.literal("html"), z14.literal("markdown")]),
|
|
678
|
+
defaultValue: z14.string().optional()
|
|
511
679
|
});
|
|
512
|
-
var CodeText =
|
|
680
|
+
var CodeText = z14.object({
|
|
513
681
|
...common,
|
|
514
|
-
control:
|
|
515
|
-
type:
|
|
516
|
-
defaultValue:
|
|
682
|
+
control: z14.literal("codetext"),
|
|
683
|
+
type: z14.literal("string"),
|
|
684
|
+
defaultValue: z14.string().optional()
|
|
517
685
|
});
|
|
518
|
-
var Color =
|
|
686
|
+
var Color = z14.object({
|
|
519
687
|
...common,
|
|
520
|
-
control:
|
|
521
|
-
type:
|
|
522
|
-
defaultValue:
|
|
688
|
+
control: z14.literal("color"),
|
|
689
|
+
type: z14.literal("string"),
|
|
690
|
+
defaultValue: z14.string().optional()
|
|
523
691
|
});
|
|
524
|
-
var Boolean =
|
|
692
|
+
var Boolean = z14.object({
|
|
525
693
|
...common,
|
|
526
|
-
control:
|
|
527
|
-
type:
|
|
528
|
-
defaultValue:
|
|
694
|
+
control: z14.literal("boolean"),
|
|
695
|
+
type: z14.literal("boolean"),
|
|
696
|
+
defaultValue: z14.boolean().optional()
|
|
529
697
|
});
|
|
530
|
-
var Radio =
|
|
698
|
+
var Radio = z14.object({
|
|
531
699
|
...common,
|
|
532
|
-
control:
|
|
533
|
-
type:
|
|
534
|
-
defaultValue:
|
|
535
|
-
options:
|
|
700
|
+
control: z14.literal("radio"),
|
|
701
|
+
type: z14.literal("string"),
|
|
702
|
+
defaultValue: z14.string().optional(),
|
|
703
|
+
options: z14.array(z14.string())
|
|
536
704
|
});
|
|
537
|
-
var InlineRadio =
|
|
705
|
+
var InlineRadio = z14.object({
|
|
538
706
|
...common,
|
|
539
|
-
control:
|
|
540
|
-
type:
|
|
541
|
-
defaultValue:
|
|
542
|
-
options:
|
|
707
|
+
control: z14.literal("inline-radio"),
|
|
708
|
+
type: z14.literal("string"),
|
|
709
|
+
defaultValue: z14.string().optional(),
|
|
710
|
+
options: z14.array(z14.string())
|
|
543
711
|
});
|
|
544
|
-
var Select =
|
|
712
|
+
var Select = z14.object({
|
|
545
713
|
...common,
|
|
546
|
-
control:
|
|
547
|
-
type:
|
|
548
|
-
defaultValue:
|
|
549
|
-
options:
|
|
714
|
+
control: z14.literal("select"),
|
|
715
|
+
type: z14.literal("string"),
|
|
716
|
+
defaultValue: z14.string().optional(),
|
|
717
|
+
options: z14.array(z14.string())
|
|
550
718
|
});
|
|
551
|
-
var Check =
|
|
719
|
+
var Check = z14.object({
|
|
552
720
|
...common,
|
|
553
|
-
control:
|
|
554
|
-
type:
|
|
555
|
-
defaultValue:
|
|
556
|
-
options:
|
|
721
|
+
control: z14.literal("check"),
|
|
722
|
+
type: z14.literal("string[]"),
|
|
723
|
+
defaultValue: z14.array(z14.string()).optional(),
|
|
724
|
+
options: z14.array(z14.string())
|
|
557
725
|
});
|
|
558
|
-
var InlineCheck =
|
|
726
|
+
var InlineCheck = z14.object({
|
|
559
727
|
...common,
|
|
560
|
-
control:
|
|
561
|
-
type:
|
|
562
|
-
defaultValue:
|
|
563
|
-
options:
|
|
728
|
+
control: z14.literal("inline-check"),
|
|
729
|
+
type: z14.literal("string[]"),
|
|
730
|
+
defaultValue: z14.array(z14.string()).optional(),
|
|
731
|
+
options: z14.array(z14.string())
|
|
564
732
|
});
|
|
565
|
-
var MultiSelect =
|
|
733
|
+
var MultiSelect = z14.object({
|
|
566
734
|
...common,
|
|
567
|
-
control:
|
|
568
|
-
type:
|
|
569
|
-
defaultValue:
|
|
570
|
-
options:
|
|
735
|
+
control: z14.literal("multi-select"),
|
|
736
|
+
type: z14.literal("string[]"),
|
|
737
|
+
defaultValue: z14.array(z14.string()).optional(),
|
|
738
|
+
options: z14.array(z14.string())
|
|
571
739
|
});
|
|
572
|
-
var File =
|
|
740
|
+
var File = z14.object({
|
|
573
741
|
...common,
|
|
574
|
-
control:
|
|
575
|
-
type:
|
|
576
|
-
defaultValue:
|
|
742
|
+
control: z14.literal("file"),
|
|
743
|
+
type: z14.literal("string"),
|
|
744
|
+
defaultValue: z14.string().optional(),
|
|
577
745
|
/** https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept */
|
|
578
|
-
accept:
|
|
746
|
+
accept: z14.string().optional()
|
|
579
747
|
});
|
|
580
|
-
var Url =
|
|
748
|
+
var Url = z14.object({
|
|
581
749
|
...common,
|
|
582
|
-
control:
|
|
583
|
-
type:
|
|
584
|
-
defaultValue:
|
|
750
|
+
control: z14.literal("url"),
|
|
751
|
+
type: z14.literal("string"),
|
|
752
|
+
defaultValue: z14.string().optional()
|
|
585
753
|
});
|
|
586
|
-
var Json =
|
|
754
|
+
var Json = z14.object({
|
|
587
755
|
...common,
|
|
588
|
-
control:
|
|
589
|
-
type:
|
|
590
|
-
defaultValue:
|
|
756
|
+
control: z14.literal("json"),
|
|
757
|
+
type: z14.literal("json"),
|
|
758
|
+
defaultValue: z14.unknown().optional()
|
|
591
759
|
});
|
|
592
|
-
var Date =
|
|
760
|
+
var Date = z14.object({
|
|
593
761
|
...common,
|
|
594
|
-
control:
|
|
762
|
+
control: z14.literal("date"),
|
|
595
763
|
// @todo not sure what type should be here
|
|
596
764
|
// (we don't support Date yet, added for completeness)
|
|
597
|
-
type:
|
|
598
|
-
defaultValue:
|
|
765
|
+
type: z14.literal("string"),
|
|
766
|
+
defaultValue: z14.string().optional()
|
|
599
767
|
});
|
|
600
|
-
var Action =
|
|
768
|
+
var Action = z14.object({
|
|
601
769
|
...common,
|
|
602
|
-
control:
|
|
603
|
-
type:
|
|
604
|
-
defaultValue:
|
|
770
|
+
control: z14.literal("action"),
|
|
771
|
+
type: z14.literal("action"),
|
|
772
|
+
defaultValue: z14.undefined().optional()
|
|
605
773
|
});
|
|
606
|
-
var TextContent =
|
|
774
|
+
var TextContent = z14.object({
|
|
607
775
|
...common,
|
|
608
|
-
control:
|
|
609
|
-
type:
|
|
610
|
-
defaultValue:
|
|
776
|
+
control: z14.literal("textContent"),
|
|
777
|
+
type: z14.literal("string"),
|
|
778
|
+
defaultValue: z14.string().optional()
|
|
611
779
|
});
|
|
612
|
-
var
|
|
780
|
+
var AnimationAction = z14.object({
|
|
781
|
+
...common,
|
|
782
|
+
control: z14.literal("animationAction"),
|
|
783
|
+
type: z14.literal("animationAction"),
|
|
784
|
+
defaultValue: z14.undefined().optional()
|
|
785
|
+
});
|
|
786
|
+
var PropMeta = z14.union([
|
|
613
787
|
Number,
|
|
614
788
|
Range,
|
|
615
789
|
Text,
|
|
@@ -628,104 +802,112 @@ var PropMeta = z13.union([
|
|
|
628
802
|
Json,
|
|
629
803
|
Date,
|
|
630
804
|
Action,
|
|
631
|
-
TextContent
|
|
805
|
+
TextContent,
|
|
806
|
+
AnimationAction
|
|
632
807
|
]);
|
|
633
808
|
|
|
634
809
|
// src/schema/embed-template.ts
|
|
635
|
-
import { z as
|
|
636
|
-
import { StyleValue as
|
|
637
|
-
var EmbedTemplateText =
|
|
638
|
-
type:
|
|
639
|
-
value:
|
|
640
|
-
placeholder:
|
|
810
|
+
import { z as z15 } from "zod";
|
|
811
|
+
import { StyleValue as StyleValue3 } from "@webstudio-is/css-engine";
|
|
812
|
+
var EmbedTemplateText = z15.object({
|
|
813
|
+
type: z15.literal("text"),
|
|
814
|
+
value: z15.string(),
|
|
815
|
+
placeholder: z15.boolean().optional()
|
|
641
816
|
});
|
|
642
|
-
var EmbedTemplateExpression =
|
|
643
|
-
type:
|
|
644
|
-
value:
|
|
817
|
+
var EmbedTemplateExpression = z15.object({
|
|
818
|
+
type: z15.literal("expression"),
|
|
819
|
+
value: z15.string()
|
|
645
820
|
});
|
|
646
|
-
var EmbedTemplateVariable =
|
|
647
|
-
alias:
|
|
648
|
-
initialValue:
|
|
821
|
+
var EmbedTemplateVariable = z15.object({
|
|
822
|
+
alias: z15.optional(z15.string()),
|
|
823
|
+
initialValue: z15.unknown()
|
|
649
824
|
});
|
|
650
|
-
var EmbedTemplateProp =
|
|
651
|
-
|
|
652
|
-
type:
|
|
653
|
-
name:
|
|
654
|
-
value:
|
|
825
|
+
var EmbedTemplateProp = z15.union([
|
|
826
|
+
z15.object({
|
|
827
|
+
type: z15.literal("number"),
|
|
828
|
+
name: z15.string(),
|
|
829
|
+
value: z15.number()
|
|
655
830
|
}),
|
|
656
|
-
|
|
657
|
-
type:
|
|
658
|
-
name:
|
|
659
|
-
value:
|
|
831
|
+
z15.object({
|
|
832
|
+
type: z15.literal("string"),
|
|
833
|
+
name: z15.string(),
|
|
834
|
+
value: z15.string()
|
|
660
835
|
}),
|
|
661
|
-
|
|
662
|
-
type:
|
|
663
|
-
name:
|
|
664
|
-
value:
|
|
836
|
+
z15.object({
|
|
837
|
+
type: z15.literal("boolean"),
|
|
838
|
+
name: z15.string(),
|
|
839
|
+
value: z15.boolean()
|
|
665
840
|
}),
|
|
666
|
-
|
|
667
|
-
type:
|
|
668
|
-
name:
|
|
669
|
-
value:
|
|
841
|
+
z15.object({
|
|
842
|
+
type: z15.literal("string[]"),
|
|
843
|
+
name: z15.string(),
|
|
844
|
+
value: z15.array(z15.string())
|
|
670
845
|
}),
|
|
671
|
-
|
|
672
|
-
type:
|
|
673
|
-
name:
|
|
674
|
-
value:
|
|
846
|
+
z15.object({
|
|
847
|
+
type: z15.literal("json"),
|
|
848
|
+
name: z15.string(),
|
|
849
|
+
value: z15.unknown()
|
|
675
850
|
}),
|
|
676
|
-
|
|
677
|
-
type:
|
|
678
|
-
name:
|
|
679
|
-
code:
|
|
851
|
+
z15.object({
|
|
852
|
+
type: z15.literal("expression"),
|
|
853
|
+
name: z15.string(),
|
|
854
|
+
code: z15.string()
|
|
680
855
|
}),
|
|
681
|
-
|
|
682
|
-
type:
|
|
683
|
-
name:
|
|
684
|
-
variableName:
|
|
685
|
-
variableAlias:
|
|
856
|
+
z15.object({
|
|
857
|
+
type: z15.literal("parameter"),
|
|
858
|
+
name: z15.string(),
|
|
859
|
+
variableName: z15.string(),
|
|
860
|
+
variableAlias: z15.optional(z15.string())
|
|
686
861
|
}),
|
|
687
|
-
|
|
688
|
-
type:
|
|
689
|
-
name:
|
|
690
|
-
value:
|
|
691
|
-
|
|
692
|
-
type:
|
|
693
|
-
args:
|
|
694
|
-
code:
|
|
862
|
+
z15.object({
|
|
863
|
+
type: z15.literal("action"),
|
|
864
|
+
name: z15.string(),
|
|
865
|
+
value: z15.array(
|
|
866
|
+
z15.object({
|
|
867
|
+
type: z15.literal("execute"),
|
|
868
|
+
args: z15.optional(z15.array(z15.string())),
|
|
869
|
+
code: z15.string()
|
|
695
870
|
})
|
|
696
871
|
)
|
|
697
872
|
})
|
|
698
873
|
]);
|
|
699
|
-
var EmbedTemplateStyleDeclRaw =
|
|
874
|
+
var EmbedTemplateStyleDeclRaw = z15.object({
|
|
700
875
|
// State selector, e.g. :hover
|
|
701
|
-
state:
|
|
702
|
-
property:
|
|
703
|
-
value:
|
|
876
|
+
state: z15.optional(z15.string()),
|
|
877
|
+
property: z15.string(),
|
|
878
|
+
value: StyleValue3
|
|
704
879
|
});
|
|
705
880
|
var EmbedTemplateStyleDecl = EmbedTemplateStyleDeclRaw;
|
|
706
|
-
var EmbedTemplateInstance =
|
|
707
|
-
() =>
|
|
708
|
-
type:
|
|
709
|
-
component:
|
|
710
|
-
label:
|
|
711
|
-
variables:
|
|
712
|
-
props:
|
|
713
|
-
styles:
|
|
881
|
+
var EmbedTemplateInstance = z15.lazy(
|
|
882
|
+
() => z15.object({
|
|
883
|
+
type: z15.literal("instance"),
|
|
884
|
+
component: z15.string(),
|
|
885
|
+
label: z15.optional(z15.string()),
|
|
886
|
+
variables: z15.optional(z15.record(z15.string(), EmbedTemplateVariable)),
|
|
887
|
+
props: z15.optional(z15.array(EmbedTemplateProp)),
|
|
888
|
+
styles: z15.optional(z15.array(EmbedTemplateStyleDecl)),
|
|
714
889
|
children: WsEmbedTemplate
|
|
715
890
|
})
|
|
716
891
|
);
|
|
717
|
-
var WsEmbedTemplate =
|
|
718
|
-
() =>
|
|
719
|
-
|
|
892
|
+
var WsEmbedTemplate = z15.lazy(
|
|
893
|
+
() => z15.array(
|
|
894
|
+
z15.union([EmbedTemplateInstance, EmbedTemplateText, EmbedTemplateExpression])
|
|
720
895
|
)
|
|
721
896
|
);
|
|
722
897
|
|
|
723
898
|
// src/schema/component-meta.ts
|
|
724
|
-
import { z as
|
|
725
|
-
|
|
726
|
-
|
|
899
|
+
import { z as z16 } from "zod";
|
|
900
|
+
import { StyleValue as StyleValue4 } from "@webstudio-is/css-engine";
|
|
901
|
+
var PresetStyleDecl = z16.object({
|
|
902
|
+
// State selector, e.g. :hover
|
|
903
|
+
state: z16.optional(z16.string()),
|
|
904
|
+
property: z16.string(),
|
|
905
|
+
value: StyleValue4
|
|
906
|
+
});
|
|
907
|
+
var WsComponentPropsMeta = z16.object({
|
|
908
|
+
props: z16.record(PropMeta),
|
|
727
909
|
// Props that will be always visible in properties panel.
|
|
728
|
-
initialProps:
|
|
910
|
+
initialProps: z16.array(z16.string()).optional()
|
|
729
911
|
});
|
|
730
912
|
var componentCategories = [
|
|
731
913
|
"general",
|
|
@@ -740,10 +922,10 @@ var componentCategories = [
|
|
|
740
922
|
"internal"
|
|
741
923
|
];
|
|
742
924
|
var stateCategories = ["states", "component-states"];
|
|
743
|
-
var ComponentState =
|
|
744
|
-
category:
|
|
745
|
-
selector:
|
|
746
|
-
label:
|
|
925
|
+
var ComponentState = z16.object({
|
|
926
|
+
category: z16.enum(stateCategories).optional(),
|
|
927
|
+
selector: z16.string(),
|
|
928
|
+
label: z16.string()
|
|
747
929
|
});
|
|
748
930
|
var defaultStates = [
|
|
749
931
|
{ selector: ":hover", label: "Hover" },
|
|
@@ -752,28 +934,31 @@ var defaultStates = [
|
|
|
752
934
|
{ selector: ":focus-visible", label: "Focus Visible" },
|
|
753
935
|
{ selector: ":focus-within", label: "Focus Within" }
|
|
754
936
|
];
|
|
755
|
-
var WsComponentMeta =
|
|
756
|
-
category:
|
|
937
|
+
var WsComponentMeta = z16.object({
|
|
938
|
+
category: z16.enum(componentCategories).optional(),
|
|
757
939
|
// container - can accept other components with dnd or be edited as text
|
|
758
940
|
// control - usually form controls like inputs, without children
|
|
759
941
|
// embed - images, videos or other embeddable components, without children
|
|
760
942
|
// rich-text-child - formatted text fragment, not listed in components list
|
|
761
|
-
type:
|
|
943
|
+
type: z16.enum(["container", "control", "embed", "rich-text-child"]),
|
|
944
|
+
/**
|
|
945
|
+
* a property used as textual placeholder when no content specified while in builder
|
|
946
|
+
* also signals to not insert components inside unless dropped explicitly
|
|
947
|
+
*/
|
|
948
|
+
placeholder: z16.string().optional(),
|
|
762
949
|
constraints: Matchers.optional(),
|
|
763
950
|
// when this field is specified component receives
|
|
764
951
|
// prop with index of same components withiin specified ancestor
|
|
765
952
|
// important to automatically enumerate collections without
|
|
766
953
|
// naming every item manually
|
|
767
|
-
indexWithinAncestor:
|
|
768
|
-
label:
|
|
769
|
-
description:
|
|
770
|
-
icon:
|
|
771
|
-
presetStyle:
|
|
772
|
-
|
|
773
|
-
),
|
|
774
|
-
|
|
775
|
-
template: z15.optional(WsEmbedTemplate),
|
|
776
|
-
order: z15.number().optional()
|
|
954
|
+
indexWithinAncestor: z16.optional(z16.string()),
|
|
955
|
+
label: z16.optional(z16.string()),
|
|
956
|
+
description: z16.string().optional(),
|
|
957
|
+
icon: z16.string(),
|
|
958
|
+
presetStyle: z16.optional(z16.record(z16.string(), z16.array(PresetStyleDecl))),
|
|
959
|
+
states: z16.optional(z16.array(ComponentState)),
|
|
960
|
+
template: z16.optional(WsEmbedTemplate),
|
|
961
|
+
order: z16.number().optional()
|
|
777
962
|
});
|
|
778
963
|
|
|
779
964
|
// src/core-metas.ts
|
|
@@ -788,18 +973,18 @@ import {
|
|
|
788
973
|
// src/__generated__/normalize.css.ts
|
|
789
974
|
var html = [
|
|
790
975
|
{ property: "display", value: { type: "keyword", value: "grid" } },
|
|
791
|
-
{ property: "
|
|
976
|
+
{ property: "min-height", value: { type: "unit", unit: "%", value: 100 } },
|
|
792
977
|
{
|
|
793
|
-
property: "
|
|
978
|
+
property: "font-family",
|
|
794
979
|
value: { type: "fontFamily", value: ["Arial", "Roboto", "sans-serif"] }
|
|
795
980
|
},
|
|
796
|
-
{ property: "
|
|
981
|
+
{ property: "font-size", value: { type: "unit", unit: "px", value: 16 } },
|
|
797
982
|
{
|
|
798
|
-
property: "
|
|
983
|
+
property: "line-height",
|
|
799
984
|
value: { type: "unit", unit: "number", value: 1.2 }
|
|
800
985
|
},
|
|
801
986
|
{
|
|
802
|
-
property: "
|
|
987
|
+
property: "white-space-collapse",
|
|
803
988
|
value: { type: "keyword", value: "preserve" }
|
|
804
989
|
}
|
|
805
990
|
];
|
|
@@ -966,6 +1151,51 @@ var parseComponentName = (componentName) => {
|
|
|
966
1151
|
}
|
|
967
1152
|
return [namespace, name];
|
|
968
1153
|
};
|
|
1154
|
+
var getIndexesWithinAncestors = (metas, instances, rootIds) => {
|
|
1155
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
1156
|
+
for (const meta of metas.values()) {
|
|
1157
|
+
if (meta.indexWithinAncestor !== void 0) {
|
|
1158
|
+
ancestors.add(meta.indexWithinAncestor);
|
|
1159
|
+
}
|
|
1160
|
+
}
|
|
1161
|
+
const indexes = /* @__PURE__ */ new Map();
|
|
1162
|
+
const traverseInstances2 = (instances2, instanceId, latestIndexes2 = /* @__PURE__ */ new Map()) => {
|
|
1163
|
+
const instance = instances2.get(instanceId);
|
|
1164
|
+
if (instance === void 0) {
|
|
1165
|
+
return;
|
|
1166
|
+
}
|
|
1167
|
+
const meta = metas.get(instance.component);
|
|
1168
|
+
if (ancestors.has(instance.component)) {
|
|
1169
|
+
latestIndexes2 = new Map(latestIndexes2);
|
|
1170
|
+
latestIndexes2.set(instance.component, /* @__PURE__ */ new Map());
|
|
1171
|
+
}
|
|
1172
|
+
if (instance.component === blockTemplateComponent) {
|
|
1173
|
+
latestIndexes2 = new Map(latestIndexes2);
|
|
1174
|
+
for (const key of latestIndexes2.keys()) {
|
|
1175
|
+
latestIndexes2.set(key, /* @__PURE__ */ new Map());
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
if (meta?.indexWithinAncestor !== void 0) {
|
|
1179
|
+
const ancestorIndexes = latestIndexes2.get(meta.indexWithinAncestor);
|
|
1180
|
+
if (ancestorIndexes) {
|
|
1181
|
+
let index = ancestorIndexes.get(instance.component) ?? -1;
|
|
1182
|
+
index += 1;
|
|
1183
|
+
ancestorIndexes.set(instance.component, index);
|
|
1184
|
+
indexes.set(instance.id, index);
|
|
1185
|
+
}
|
|
1186
|
+
}
|
|
1187
|
+
for (const child of instance.children) {
|
|
1188
|
+
if (child.type === "id") {
|
|
1189
|
+
traverseInstances2(instances2, child.value, latestIndexes2);
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
};
|
|
1193
|
+
const latestIndexes = /* @__PURE__ */ new Map();
|
|
1194
|
+
for (const instanceId of rootIds) {
|
|
1195
|
+
traverseInstances2(instances, instanceId, latestIndexes);
|
|
1196
|
+
}
|
|
1197
|
+
return indexes;
|
|
1198
|
+
};
|
|
969
1199
|
|
|
970
1200
|
// src/expression.ts
|
|
971
1201
|
import {
|
|
@@ -973,6 +1203,13 @@ import {
|
|
|
973
1203
|
parseExpressionAt
|
|
974
1204
|
} from "acorn";
|
|
975
1205
|
import { simple } from "acorn-walk";
|
|
1206
|
+
var SYSTEM_VARIABLE_ID = ":system";
|
|
1207
|
+
var systemParameter = {
|
|
1208
|
+
id: SYSTEM_VARIABLE_ID,
|
|
1209
|
+
scopeInstanceId: ROOT_INSTANCE_ID,
|
|
1210
|
+
type: "parameter",
|
|
1211
|
+
name: "system"
|
|
1212
|
+
};
|
|
976
1213
|
var lintExpression = ({
|
|
977
1214
|
expression,
|
|
978
1215
|
availableVariables = /* @__PURE__ */ new Set(),
|
|
@@ -1224,11 +1461,17 @@ var generateObjectExpression = (map) => {
|
|
|
1224
1461
|
return generated;
|
|
1225
1462
|
};
|
|
1226
1463
|
var dataSourceVariablePrefix = "$ws$dataSource$";
|
|
1227
|
-
var
|
|
1464
|
+
var encodeDataVariableId = (id) => {
|
|
1465
|
+
if (id === SYSTEM_VARIABLE_ID) {
|
|
1466
|
+
return "$ws$system";
|
|
1467
|
+
}
|
|
1228
1468
|
const encoded = id.replaceAll("-", "__DASH__");
|
|
1229
1469
|
return `${dataSourceVariablePrefix}${encoded}`;
|
|
1230
1470
|
};
|
|
1231
|
-
var
|
|
1471
|
+
var decodeDataVariableId = (name) => {
|
|
1472
|
+
if (name === "$ws$system") {
|
|
1473
|
+
return SYSTEM_VARIABLE_ID;
|
|
1474
|
+
}
|
|
1232
1475
|
if (name.startsWith(dataSourceVariablePrefix)) {
|
|
1233
1476
|
const encoded = name.slice(dataSourceVariablePrefix.length);
|
|
1234
1477
|
return encoded.replaceAll("__DASH__", "-");
|
|
@@ -1245,8 +1488,11 @@ var generateExpression = ({
|
|
|
1245
1488
|
expression,
|
|
1246
1489
|
executable: true,
|
|
1247
1490
|
replaceVariable: (identifier) => {
|
|
1248
|
-
const depId =
|
|
1249
|
-
|
|
1491
|
+
const depId = decodeDataVariableId(identifier);
|
|
1492
|
+
let dep = depId ? dataSources.get(depId) : void 0;
|
|
1493
|
+
if (depId === SYSTEM_VARIABLE_ID) {
|
|
1494
|
+
dep = systemParameter;
|
|
1495
|
+
}
|
|
1250
1496
|
if (dep) {
|
|
1251
1497
|
usedDataSources?.set(dep.id, dep);
|
|
1252
1498
|
return scope.getName(dep.id, dep.name);
|
|
@@ -1438,12 +1684,11 @@ var generateResources = ({
|
|
|
1438
1684
|
`;
|
|
1439
1685
|
}
|
|
1440
1686
|
if (dataSource.type === "parameter") {
|
|
1441
|
-
if (dataSource.id
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
const name = scope.getName(dataSource.id, dataSource.name);
|
|
1445
|
-
generatedVariables += ` const ${name} = _props.system
|
|
1687
|
+
if (dataSource.id === page.systemDataSourceId || dataSource.id === SYSTEM_VARIABLE_ID) {
|
|
1688
|
+
const name = scope.getName(dataSource.id, dataSource.name);
|
|
1689
|
+
generatedVariables += ` const ${name} = _props.system
|
|
1446
1690
|
`;
|
|
1691
|
+
}
|
|
1447
1692
|
}
|
|
1448
1693
|
}
|
|
1449
1694
|
let generated = "";
|
|
@@ -1640,7 +1885,7 @@ var generatePageMeta = ({
|
|
|
1640
1885
|
continue;
|
|
1641
1886
|
}
|
|
1642
1887
|
if (dataSource.type === "parameter") {
|
|
1643
|
-
if (dataSource.id === page.systemDataSourceId) {
|
|
1888
|
+
if (dataSource.id === page.systemDataSourceId || dataSource.id === SYSTEM_VARIABLE_ID) {
|
|
1644
1889
|
const valueName = localScope.getName(dataSource.id, dataSource.name);
|
|
1645
1890
|
generated += ` let ${valueName} = system
|
|
1646
1891
|
`;
|
|
@@ -1684,6 +1929,182 @@ var generatePageMeta = ({
|
|
|
1684
1929
|
`;
|
|
1685
1930
|
return generated;
|
|
1686
1931
|
};
|
|
1932
|
+
|
|
1933
|
+
// src/css.ts
|
|
1934
|
+
import { kebabCase } from "change-case";
|
|
1935
|
+
import {
|
|
1936
|
+
createRegularStyleSheet,
|
|
1937
|
+
generateAtomic
|
|
1938
|
+
} from "@webstudio-is/css-engine";
|
|
1939
|
+
import { getFontFaces } from "@webstudio-is/fonts";
|
|
1940
|
+
var addFontRules = ({
|
|
1941
|
+
sheet,
|
|
1942
|
+
assets,
|
|
1943
|
+
assetBaseUrl
|
|
1944
|
+
}) => {
|
|
1945
|
+
const fontAssets = [];
|
|
1946
|
+
for (const asset of assets.values()) {
|
|
1947
|
+
if (asset.type === "font") {
|
|
1948
|
+
fontAssets.push(asset);
|
|
1949
|
+
}
|
|
1950
|
+
}
|
|
1951
|
+
const fontFaces = getFontFaces(fontAssets, { assetBaseUrl });
|
|
1952
|
+
for (const fontFace of fontFaces) {
|
|
1953
|
+
sheet.addFontFaceRule(fontFace);
|
|
1954
|
+
}
|
|
1955
|
+
};
|
|
1956
|
+
var createImageValueTransformer = (assets, { assetBaseUrl }) => (styleValue) => {
|
|
1957
|
+
if (styleValue.type === "image" && styleValue.value.type === "asset") {
|
|
1958
|
+
const asset = assets.get(styleValue.value.value);
|
|
1959
|
+
if (asset === void 0) {
|
|
1960
|
+
return { type: "keyword", value: "none" };
|
|
1961
|
+
}
|
|
1962
|
+
const url = `${assetBaseUrl}${asset.name}`;
|
|
1963
|
+
return {
|
|
1964
|
+
type: "image",
|
|
1965
|
+
value: {
|
|
1966
|
+
type: "url",
|
|
1967
|
+
url
|
|
1968
|
+
},
|
|
1969
|
+
hidden: styleValue.hidden
|
|
1970
|
+
};
|
|
1971
|
+
}
|
|
1972
|
+
};
|
|
1973
|
+
var normalizeClassName = (name) => kebabCase(name);
|
|
1974
|
+
var generateCss = ({
|
|
1975
|
+
assets,
|
|
1976
|
+
instances,
|
|
1977
|
+
props,
|
|
1978
|
+
breakpoints,
|
|
1979
|
+
styles,
|
|
1980
|
+
styleSourceSelections,
|
|
1981
|
+
componentMetas,
|
|
1982
|
+
assetBaseUrl,
|
|
1983
|
+
atomic
|
|
1984
|
+
}) => {
|
|
1985
|
+
const fontSheet = createRegularStyleSheet({ name: "ssr" });
|
|
1986
|
+
const presetSheet = createRegularStyleSheet({ name: "ssr" });
|
|
1987
|
+
const userSheet = createRegularStyleSheet({ name: "ssr" });
|
|
1988
|
+
addFontRules({ sheet: fontSheet, assets, assetBaseUrl });
|
|
1989
|
+
presetSheet.addMediaRule("presets");
|
|
1990
|
+
const presetClasses = /* @__PURE__ */ new Map();
|
|
1991
|
+
const scope = createScope([], normalizeClassName, "-");
|
|
1992
|
+
for (const [component, meta] of componentMetas) {
|
|
1993
|
+
const [_namespace, componentName] = parseComponentName(component);
|
|
1994
|
+
const className = `w-${scope.getName(component, meta.label ?? componentName)}`;
|
|
1995
|
+
const presetStyle = Object.entries(meta.presetStyle ?? {});
|
|
1996
|
+
if (presetStyle.length > 0) {
|
|
1997
|
+
presetClasses.set(component, className);
|
|
1998
|
+
}
|
|
1999
|
+
for (const [tag, styles2] of presetStyle) {
|
|
2000
|
+
const selector = component === rootComponent ? ":root" : `${tag}.${className}`;
|
|
2001
|
+
const rule = presetSheet.addNestingRule(selector);
|
|
2002
|
+
for (const declaration of styles2) {
|
|
2003
|
+
rule.setDeclaration({
|
|
2004
|
+
breakpoint: "presets",
|
|
2005
|
+
selector: declaration.state ?? "",
|
|
2006
|
+
property: declaration.property,
|
|
2007
|
+
value: declaration.value
|
|
2008
|
+
});
|
|
2009
|
+
}
|
|
2010
|
+
}
|
|
2011
|
+
}
|
|
2012
|
+
for (const breakpoint of breakpoints.values()) {
|
|
2013
|
+
userSheet.addMediaRule(breakpoint.id, breakpoint);
|
|
2014
|
+
}
|
|
2015
|
+
const imageValueTransformer = createImageValueTransformer(assets, {
|
|
2016
|
+
assetBaseUrl
|
|
2017
|
+
});
|
|
2018
|
+
userSheet.setTransformer(imageValueTransformer);
|
|
2019
|
+
for (const styleDecl of styles.values()) {
|
|
2020
|
+
const rule = userSheet.addMixinRule(styleDecl.styleSourceId);
|
|
2021
|
+
rule.setDeclaration({
|
|
2022
|
+
breakpoint: styleDecl.breakpointId,
|
|
2023
|
+
selector: styleDecl.state ?? "",
|
|
2024
|
+
property: styleDecl.property,
|
|
2025
|
+
value: styleDecl.value
|
|
2026
|
+
});
|
|
2027
|
+
}
|
|
2028
|
+
const classes = /* @__PURE__ */ new Map();
|
|
2029
|
+
const parentIdByInstanceId = /* @__PURE__ */ new Map();
|
|
2030
|
+
for (const instance of instances.values()) {
|
|
2031
|
+
const presetClass = presetClasses.get(instance.component);
|
|
2032
|
+
if (presetClass) {
|
|
2033
|
+
classes.set(instance.id, [presetClass]);
|
|
2034
|
+
}
|
|
2035
|
+
for (const child of instance.children) {
|
|
2036
|
+
if (child.type === "id") {
|
|
2037
|
+
parentIdByInstanceId.set(child.value, instance.id);
|
|
2038
|
+
}
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
const descendantSelectorByInstanceId = /* @__PURE__ */ new Map();
|
|
2042
|
+
for (const prop of props.values()) {
|
|
2043
|
+
if (prop.name === "selector" && prop.type === "string") {
|
|
2044
|
+
descendantSelectorByInstanceId.set(prop.instanceId, prop.value);
|
|
2045
|
+
}
|
|
2046
|
+
}
|
|
2047
|
+
const instanceByRule = /* @__PURE__ */ new Map();
|
|
2048
|
+
for (const selection of styleSourceSelections.values()) {
|
|
2049
|
+
let { instanceId } = selection;
|
|
2050
|
+
const { values } = selection;
|
|
2051
|
+
if (instanceId === ROOT_INSTANCE_ID) {
|
|
2052
|
+
const rule2 = userSheet.addNestingRule(`:root`);
|
|
2053
|
+
rule2.applyMixins(values);
|
|
2054
|
+
continue;
|
|
2055
|
+
}
|
|
2056
|
+
let descendantSuffix = "";
|
|
2057
|
+
const instance = instances.get(instanceId);
|
|
2058
|
+
if (instance === void 0) {
|
|
2059
|
+
continue;
|
|
2060
|
+
}
|
|
2061
|
+
if (instance.component === descendantComponent) {
|
|
2062
|
+
const parentId = parentIdByInstanceId.get(instanceId);
|
|
2063
|
+
const descendantSelector = descendantSelectorByInstanceId.get(instanceId);
|
|
2064
|
+
if (parentId && descendantSelector) {
|
|
2065
|
+
descendantSuffix = descendantSelector;
|
|
2066
|
+
instanceId = parentId;
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
2069
|
+
const meta = componentMetas.get(instance.component);
|
|
2070
|
+
const [_namespace, shortName] = parseComponentName(instance.component);
|
|
2071
|
+
const baseName = instance.label ?? meta?.label ?? shortName;
|
|
2072
|
+
const className = `w-${scope.getName(instanceId, baseName)}`;
|
|
2073
|
+
if (atomic === false) {
|
|
2074
|
+
let classList = classes.get(instanceId);
|
|
2075
|
+
if (classList === void 0) {
|
|
2076
|
+
classList = [];
|
|
2077
|
+
classes.set(instanceId, classList);
|
|
2078
|
+
}
|
|
2079
|
+
classList.push(className);
|
|
2080
|
+
}
|
|
2081
|
+
const rule = userSheet.addNestingRule(`.${className}`, descendantSuffix);
|
|
2082
|
+
rule.applyMixins(values);
|
|
2083
|
+
instanceByRule.set(rule, instanceId);
|
|
2084
|
+
}
|
|
2085
|
+
const fontCss = fontSheet.cssText;
|
|
2086
|
+
const presetCss = presetSheet.cssText.replaceAll(
|
|
2087
|
+
"@media all ",
|
|
2088
|
+
"@layer presets "
|
|
2089
|
+
);
|
|
2090
|
+
if (atomic) {
|
|
2091
|
+
const { cssText } = generateAtomic(userSheet, {
|
|
2092
|
+
getKey: (rule) => instanceByRule.get(rule),
|
|
2093
|
+
transformValue: imageValueTransformer,
|
|
2094
|
+
classes
|
|
2095
|
+
});
|
|
2096
|
+
return {
|
|
2097
|
+
cssText: `${fontCss}${presetCss}
|
|
2098
|
+
${cssText}`,
|
|
2099
|
+
classes
|
|
2100
|
+
};
|
|
2101
|
+
}
|
|
2102
|
+
return {
|
|
2103
|
+
cssText: `${fontCss}${presetCss}
|
|
2104
|
+
${userSheet.cssText}`,
|
|
2105
|
+
classes
|
|
2106
|
+
};
|
|
2107
|
+
};
|
|
1687
2108
|
export {
|
|
1688
2109
|
Asset,
|
|
1689
2110
|
Assets,
|
|
@@ -1719,15 +2140,18 @@ export {
|
|
|
1719
2140
|
PageRedirect,
|
|
1720
2141
|
PageTitle,
|
|
1721
2142
|
Pages,
|
|
2143
|
+
PresetStyleDecl,
|
|
1722
2144
|
ProjectNewRedirectPath,
|
|
1723
2145
|
Prop,
|
|
1724
2146
|
PropMeta,
|
|
1725
2147
|
Props,
|
|
2148
|
+
RANGE_UNITS,
|
|
1726
2149
|
ROOT_FOLDER_ID,
|
|
1727
2150
|
ROOT_INSTANCE_ID,
|
|
1728
2151
|
Resource,
|
|
1729
2152
|
ResourceRequest,
|
|
1730
2153
|
Resources,
|
|
2154
|
+
SYSTEM_VARIABLE_ID,
|
|
1731
2155
|
StyleDecl,
|
|
1732
2156
|
StyleSource,
|
|
1733
2157
|
StyleSourceSelection,
|
|
@@ -1739,6 +2163,9 @@ export {
|
|
|
1739
2163
|
WebstudioFragment,
|
|
1740
2164
|
WsComponentMeta,
|
|
1741
2165
|
WsEmbedTemplate,
|
|
2166
|
+
addFontRules,
|
|
2167
|
+
animationActionSchema,
|
|
2168
|
+
animationKeyframeSchema,
|
|
1742
2169
|
blockComponent,
|
|
1743
2170
|
blockTemplateComponent,
|
|
1744
2171
|
blockTemplateMeta,
|
|
@@ -1746,28 +2173,32 @@ export {
|
|
|
1746
2173
|
componentCategories,
|
|
1747
2174
|
coreMetas,
|
|
1748
2175
|
corePropsMetas,
|
|
2176
|
+
createImageValueTransformer,
|
|
1749
2177
|
createScope,
|
|
1750
|
-
decodeDataSourceVariable,
|
|
1751
|
-
|
|
2178
|
+
decodeDataVariableId as decodeDataSourceVariable,
|
|
2179
|
+
decodeDataVariableId,
|
|
1752
2180
|
defaultStates,
|
|
1753
2181
|
descendantComponent,
|
|
1754
2182
|
documentTypes,
|
|
1755
|
-
encodeDataSourceVariable,
|
|
1756
|
-
|
|
2183
|
+
encodeDataVariableId as encodeDataSourceVariable,
|
|
2184
|
+
encodeDataVariableId,
|
|
1757
2185
|
executeExpression,
|
|
1758
2186
|
findPageByIdOrPath,
|
|
1759
2187
|
findParentFolderByChildId,
|
|
1760
2188
|
findTreeInstanceIds,
|
|
1761
2189
|
findTreeInstanceIdsExcludingSlotDescendants,
|
|
2190
|
+
generateCss,
|
|
1762
2191
|
generateExpression,
|
|
1763
2192
|
generateObjectExpression,
|
|
1764
2193
|
generatePageMeta,
|
|
1765
2194
|
generateResources,
|
|
1766
2195
|
getExpressionIdentifiers,
|
|
2196
|
+
getIndexesWithinAncestors,
|
|
1767
2197
|
getPagePath,
|
|
1768
2198
|
getStaticSiteMapXml,
|
|
1769
2199
|
getStyleDeclKey,
|
|
1770
2200
|
initialBreakpoints,
|
|
2201
|
+
insetUnitValueSchema,
|
|
1771
2202
|
isCoreComponent,
|
|
1772
2203
|
isLiteralExpression,
|
|
1773
2204
|
isPathnamePattern,
|
|
@@ -1777,8 +2208,12 @@ export {
|
|
|
1777
2208
|
parseComponentName,
|
|
1778
2209
|
parseObjectExpression,
|
|
1779
2210
|
portalComponent,
|
|
2211
|
+
rangeUnitValueSchema,
|
|
1780
2212
|
replaceFormActionsWithResources,
|
|
1781
2213
|
rootComponent,
|
|
2214
|
+
scrollAnimationSchema,
|
|
1782
2215
|
stateCategories,
|
|
1783
|
-
|
|
2216
|
+
systemParameter,
|
|
2217
|
+
transpileExpression,
|
|
2218
|
+
viewAnimationSchema
|
|
1784
2219
|
};
|