@webstudio-is/sdk 0.204.0 → 0.206.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/__generated__/normalize.css.js +247 -151
- package/lib/core-templates.js +5 -5
- package/lib/index.js +741 -307
- 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 +6 -5
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(),
|
|
@@ -221,20 +221,25 @@ var DataSource = z4.union([
|
|
|
221
221
|
z4.object({
|
|
222
222
|
type: z4.literal("variable"),
|
|
223
223
|
id: DataSourceId,
|
|
224
|
-
|
|
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(),
|
|
225
230
|
name: z4.string(),
|
|
226
231
|
value: DataSourceVariableValue
|
|
227
232
|
}),
|
|
228
233
|
z4.object({
|
|
229
234
|
type: z4.literal("parameter"),
|
|
230
235
|
id: DataSourceId,
|
|
231
|
-
scopeInstanceId: z4.string(),
|
|
236
|
+
scopeInstanceId: z4.string().optional(),
|
|
232
237
|
name: z4.string()
|
|
233
238
|
}),
|
|
234
239
|
z4.object({
|
|
235
240
|
type: z4.literal("resource"),
|
|
236
241
|
id: DataSourceId,
|
|
237
|
-
scopeInstanceId: z4.string(),
|
|
242
|
+
scopeInstanceId: z4.string().optional(),
|
|
238
243
|
name: z4.string(),
|
|
239
244
|
resourceId: z4.string()
|
|
240
245
|
})
|
|
@@ -277,98 +282,261 @@ var ResourceRequest = z5.object({
|
|
|
277
282
|
var Resources = z5.map(ResourceId, Resource);
|
|
278
283
|
|
|
279
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";
|
|
280
289
|
import { z as z6 } from "zod";
|
|
281
|
-
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();
|
|
282
445
|
var baseProp = {
|
|
283
446
|
id: PropId,
|
|
284
|
-
instanceId:
|
|
285
|
-
name:
|
|
286
|
-
required:
|
|
447
|
+
instanceId: z7.string(),
|
|
448
|
+
name: z7.string(),
|
|
449
|
+
required: z7.optional(z7.boolean())
|
|
287
450
|
};
|
|
288
|
-
var Prop =
|
|
289
|
-
|
|
451
|
+
var Prop = z7.union([
|
|
452
|
+
z7.object({
|
|
290
453
|
...baseProp,
|
|
291
|
-
type:
|
|
292
|
-
value:
|
|
454
|
+
type: z7.literal("number"),
|
|
455
|
+
value: z7.number()
|
|
293
456
|
}),
|
|
294
|
-
|
|
457
|
+
z7.object({
|
|
295
458
|
...baseProp,
|
|
296
|
-
type:
|
|
297
|
-
value:
|
|
459
|
+
type: z7.literal("string"),
|
|
460
|
+
value: z7.string()
|
|
298
461
|
}),
|
|
299
|
-
|
|
462
|
+
z7.object({
|
|
300
463
|
...baseProp,
|
|
301
|
-
type:
|
|
302
|
-
value:
|
|
464
|
+
type: z7.literal("boolean"),
|
|
465
|
+
value: z7.boolean()
|
|
303
466
|
}),
|
|
304
|
-
|
|
467
|
+
z7.object({
|
|
305
468
|
...baseProp,
|
|
306
|
-
type:
|
|
307
|
-
value:
|
|
469
|
+
type: z7.literal("json"),
|
|
470
|
+
value: z7.unknown()
|
|
308
471
|
}),
|
|
309
|
-
|
|
472
|
+
z7.object({
|
|
310
473
|
...baseProp,
|
|
311
|
-
type:
|
|
312
|
-
value:
|
|
474
|
+
type: z7.literal("asset"),
|
|
475
|
+
value: z7.string()
|
|
313
476
|
// asset id
|
|
314
477
|
}),
|
|
315
|
-
|
|
478
|
+
z7.object({
|
|
316
479
|
...baseProp,
|
|
317
|
-
type:
|
|
318
|
-
value:
|
|
319
|
-
|
|
480
|
+
type: z7.literal("page"),
|
|
481
|
+
value: z7.union([
|
|
482
|
+
z7.string(),
|
|
320
483
|
// page id
|
|
321
|
-
|
|
322
|
-
pageId:
|
|
323
|
-
instanceId:
|
|
484
|
+
z7.object({
|
|
485
|
+
pageId: z7.string(),
|
|
486
|
+
instanceId: z7.string()
|
|
324
487
|
})
|
|
325
488
|
])
|
|
326
489
|
}),
|
|
327
|
-
|
|
490
|
+
z7.object({
|
|
328
491
|
...baseProp,
|
|
329
|
-
type:
|
|
330
|
-
value:
|
|
492
|
+
type: z7.literal("string[]"),
|
|
493
|
+
value: z7.array(z7.string())
|
|
331
494
|
}),
|
|
332
|
-
|
|
495
|
+
z7.object({
|
|
333
496
|
...baseProp,
|
|
334
|
-
type:
|
|
497
|
+
type: z7.literal("parameter"),
|
|
335
498
|
// data source id
|
|
336
|
-
value:
|
|
499
|
+
value: z7.string()
|
|
337
500
|
}),
|
|
338
|
-
|
|
501
|
+
z7.object({
|
|
339
502
|
...baseProp,
|
|
340
|
-
type:
|
|
503
|
+
type: z7.literal("resource"),
|
|
341
504
|
// resource id
|
|
342
|
-
value:
|
|
505
|
+
value: z7.string()
|
|
343
506
|
}),
|
|
344
|
-
|
|
507
|
+
z7.object({
|
|
345
508
|
...baseProp,
|
|
346
|
-
type:
|
|
509
|
+
type: z7.literal("expression"),
|
|
347
510
|
// expression code
|
|
348
|
-
value:
|
|
511
|
+
value: z7.string()
|
|
349
512
|
}),
|
|
350
|
-
|
|
513
|
+
z7.object({
|
|
351
514
|
...baseProp,
|
|
352
|
-
type:
|
|
353
|
-
value:
|
|
354
|
-
|
|
355
|
-
type:
|
|
356
|
-
args:
|
|
357
|
-
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()
|
|
358
521
|
})
|
|
359
522
|
)
|
|
523
|
+
}),
|
|
524
|
+
z7.object({
|
|
525
|
+
...baseProp,
|
|
526
|
+
type: z7.literal("animationAction"),
|
|
527
|
+
value: animationActionSchema
|
|
360
528
|
})
|
|
361
529
|
]);
|
|
362
|
-
var Props =
|
|
530
|
+
var Props = z7.map(PropId, Prop);
|
|
363
531
|
|
|
364
532
|
// src/schema/breakpoints.ts
|
|
365
|
-
import { z as
|
|
366
|
-
var BreakpointId =
|
|
367
|
-
var Breakpoint =
|
|
533
|
+
import { z as z8 } from "zod";
|
|
534
|
+
var BreakpointId = z8.string();
|
|
535
|
+
var Breakpoint = z8.object({
|
|
368
536
|
id: BreakpointId,
|
|
369
|
-
label:
|
|
370
|
-
minWidth:
|
|
371
|
-
maxWidth:
|
|
537
|
+
label: z8.string(),
|
|
538
|
+
minWidth: z8.number().optional(),
|
|
539
|
+
maxWidth: z8.number().optional()
|
|
372
540
|
}).refine(({ minWidth, maxWidth }) => {
|
|
373
541
|
return (
|
|
374
542
|
// Either min or max width have to be defined
|
|
@@ -376,7 +544,7 @@ var Breakpoint = z7.object({
|
|
|
376
544
|
minWidth === void 0 && maxWidth === void 0
|
|
377
545
|
);
|
|
378
546
|
}, "Either minWidth or maxWidth should be defined");
|
|
379
|
-
var Breakpoints =
|
|
547
|
+
var Breakpoints = z8.map(BreakpointId, Breakpoint);
|
|
380
548
|
var initialBreakpoints = [
|
|
381
549
|
{ id: "placeholder", label: "Base" },
|
|
382
550
|
{ id: "placeholder", label: "Tablet", maxWidth: 991 },
|
|
@@ -385,52 +553,51 @@ var initialBreakpoints = [
|
|
|
385
553
|
];
|
|
386
554
|
|
|
387
555
|
// src/schema/style-sources.ts
|
|
388
|
-
import { z as
|
|
389
|
-
var StyleSourceId =
|
|
390
|
-
var StyleSourceToken =
|
|
391
|
-
type:
|
|
556
|
+
import { z as z9 } from "zod";
|
|
557
|
+
var StyleSourceId = z9.string();
|
|
558
|
+
var StyleSourceToken = z9.object({
|
|
559
|
+
type: z9.literal("token"),
|
|
392
560
|
id: StyleSourceId,
|
|
393
|
-
name:
|
|
561
|
+
name: z9.string()
|
|
394
562
|
});
|
|
395
|
-
var StyleSourceLocal =
|
|
396
|
-
type:
|
|
563
|
+
var StyleSourceLocal = z9.object({
|
|
564
|
+
type: z9.literal("local"),
|
|
397
565
|
id: StyleSourceId
|
|
398
566
|
});
|
|
399
|
-
var StyleSource =
|
|
400
|
-
var StyleSources =
|
|
567
|
+
var StyleSource = z9.union([StyleSourceToken, StyleSourceLocal]);
|
|
568
|
+
var StyleSources = z9.map(StyleSourceId, StyleSource);
|
|
401
569
|
|
|
402
570
|
// src/schema/style-source-selections.ts
|
|
403
|
-
import { z as
|
|
404
|
-
var InstanceId2 =
|
|
405
|
-
var StyleSourceId2 =
|
|
406
|
-
var StyleSourceSelection =
|
|
571
|
+
import { z as z10 } from "zod";
|
|
572
|
+
var InstanceId2 = z10.string();
|
|
573
|
+
var StyleSourceId2 = z10.string();
|
|
574
|
+
var StyleSourceSelection = z10.object({
|
|
407
575
|
instanceId: InstanceId2,
|
|
408
|
-
values:
|
|
576
|
+
values: z10.array(StyleSourceId2)
|
|
409
577
|
});
|
|
410
|
-
var StyleSourceSelections =
|
|
578
|
+
var StyleSourceSelections = z10.map(InstanceId2, StyleSourceSelection);
|
|
411
579
|
|
|
412
580
|
// src/schema/styles.ts
|
|
413
|
-
import { z as
|
|
414
|
-
import { StyleValue } from "@webstudio-is/css-engine";
|
|
415
|
-
var StyleDeclRaw =
|
|
416
|
-
styleSourceId:
|
|
417
|
-
breakpointId:
|
|
418
|
-
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()),
|
|
419
587
|
// @todo can't figure out how to make property to be enum
|
|
420
|
-
property:
|
|
421
|
-
value:
|
|
422
|
-
listed:
|
|
588
|
+
property: z11.string(),
|
|
589
|
+
value: StyleValue2,
|
|
590
|
+
listed: z11.boolean().optional()
|
|
423
591
|
});
|
|
424
592
|
var StyleDecl = StyleDeclRaw;
|
|
425
593
|
var getStyleDeclKey = (styleDecl) => {
|
|
426
594
|
return `${styleDecl.styleSourceId}:${styleDecl.breakpointId}:${styleDecl.property}:${styleDecl.state ?? ""}`;
|
|
427
595
|
};
|
|
428
|
-
var Styles =
|
|
596
|
+
var Styles = z11.map(z11.string(), StyleDecl);
|
|
429
597
|
|
|
430
598
|
// src/schema/deployment.ts
|
|
431
|
-
import { z as
|
|
432
|
-
var Templates =
|
|
433
|
-
"vanilla",
|
|
599
|
+
import { z as z12 } from "zod";
|
|
600
|
+
var Templates = z12.enum([
|
|
434
601
|
"docker",
|
|
435
602
|
"vercel",
|
|
436
603
|
"netlify",
|
|
@@ -438,179 +605,185 @@ var Templates = z11.enum([
|
|
|
438
605
|
"ssg-netlify",
|
|
439
606
|
"ssg-vercel"
|
|
440
607
|
]);
|
|
441
|
-
var Deployment =
|
|
442
|
-
|
|
443
|
-
destination:
|
|
444
|
-
name:
|
|
445
|
-
assetsDomain:
|
|
608
|
+
var Deployment = z12.union([
|
|
609
|
+
z12.object({
|
|
610
|
+
destination: z12.literal("static"),
|
|
611
|
+
name: z12.string(),
|
|
612
|
+
assetsDomain: z12.string(),
|
|
446
613
|
// Must be validated very strictly
|
|
447
|
-
templates:
|
|
614
|
+
templates: z12.array(Templates)
|
|
448
615
|
}),
|
|
449
|
-
|
|
450
|
-
destination:
|
|
451
|
-
domains:
|
|
452
|
-
assetsDomain:
|
|
616
|
+
z12.object({
|
|
617
|
+
destination: z12.literal("saas").optional(),
|
|
618
|
+
domains: z12.array(z12.string()),
|
|
619
|
+
assetsDomain: z12.string().optional(),
|
|
453
620
|
/**
|
|
454
621
|
* @deprecated This field is deprecated, use `domains` instead.
|
|
455
622
|
*/
|
|
456
|
-
projectDomain:
|
|
457
|
-
excludeWstdDomainFromSearch:
|
|
623
|
+
projectDomain: z12.string().optional(),
|
|
624
|
+
excludeWstdDomainFromSearch: z12.boolean().optional()
|
|
458
625
|
})
|
|
459
626
|
]);
|
|
460
627
|
|
|
461
628
|
// src/schema/webstudio.ts
|
|
462
|
-
import { z as
|
|
463
|
-
var WebstudioFragment =
|
|
464
|
-
children:
|
|
465
|
-
instances:
|
|
466
|
-
assets:
|
|
467
|
-
dataSources:
|
|
468
|
-
resources:
|
|
469
|
-
props:
|
|
470
|
-
breakpoints:
|
|
471
|
-
styleSourceSelections:
|
|
472
|
-
styleSources:
|
|
473
|
-
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)
|
|
474
641
|
});
|
|
475
642
|
|
|
476
643
|
// src/schema/prop-meta.ts
|
|
477
|
-
import { z as
|
|
644
|
+
import { z as z14 } from "zod";
|
|
478
645
|
var common = {
|
|
479
|
-
label:
|
|
480
|
-
description:
|
|
481
|
-
required:
|
|
646
|
+
label: z14.string().optional(),
|
|
647
|
+
description: z14.string().optional(),
|
|
648
|
+
required: z14.boolean()
|
|
482
649
|
};
|
|
483
|
-
var Number =
|
|
650
|
+
var Number = z14.object({
|
|
484
651
|
...common,
|
|
485
|
-
control:
|
|
486
|
-
type:
|
|
487
|
-
defaultValue:
|
|
652
|
+
control: z14.literal("number"),
|
|
653
|
+
type: z14.literal("number"),
|
|
654
|
+
defaultValue: z14.number().optional()
|
|
488
655
|
});
|
|
489
|
-
var Range =
|
|
656
|
+
var Range = z14.object({
|
|
490
657
|
...common,
|
|
491
|
-
control:
|
|
492
|
-
type:
|
|
493
|
-
defaultValue:
|
|
658
|
+
control: z14.literal("range"),
|
|
659
|
+
type: z14.literal("number"),
|
|
660
|
+
defaultValue: z14.number().optional()
|
|
494
661
|
});
|
|
495
|
-
var Text =
|
|
662
|
+
var Text = z14.object({
|
|
496
663
|
...common,
|
|
497
|
-
control:
|
|
498
|
-
type:
|
|
499
|
-
defaultValue:
|
|
664
|
+
control: z14.literal("text"),
|
|
665
|
+
type: z14.literal("string"),
|
|
666
|
+
defaultValue: z14.string().optional(),
|
|
500
667
|
/**
|
|
501
668
|
* The number of rows in <textarea>. If set to 0 an <input> will be used instead.
|
|
502
669
|
* In line with Storybook team's plan: https://github.com/storybookjs/storybook/issues/21100
|
|
503
670
|
*/
|
|
504
|
-
rows:
|
|
671
|
+
rows: z14.number().optional()
|
|
505
672
|
});
|
|
506
|
-
var Code =
|
|
673
|
+
var Code = z14.object({
|
|
507
674
|
...common,
|
|
508
|
-
control:
|
|
509
|
-
type:
|
|
510
|
-
language:
|
|
511
|
-
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()
|
|
512
679
|
});
|
|
513
|
-
var CodeText =
|
|
680
|
+
var CodeText = z14.object({
|
|
514
681
|
...common,
|
|
515
|
-
control:
|
|
516
|
-
type:
|
|
517
|
-
defaultValue:
|
|
682
|
+
control: z14.literal("codetext"),
|
|
683
|
+
type: z14.literal("string"),
|
|
684
|
+
defaultValue: z14.string().optional()
|
|
518
685
|
});
|
|
519
|
-
var Color =
|
|
686
|
+
var Color = z14.object({
|
|
520
687
|
...common,
|
|
521
|
-
control:
|
|
522
|
-
type:
|
|
523
|
-
defaultValue:
|
|
688
|
+
control: z14.literal("color"),
|
|
689
|
+
type: z14.literal("string"),
|
|
690
|
+
defaultValue: z14.string().optional()
|
|
524
691
|
});
|
|
525
|
-
var Boolean =
|
|
692
|
+
var Boolean = z14.object({
|
|
526
693
|
...common,
|
|
527
|
-
control:
|
|
528
|
-
type:
|
|
529
|
-
defaultValue:
|
|
694
|
+
control: z14.literal("boolean"),
|
|
695
|
+
type: z14.literal("boolean"),
|
|
696
|
+
defaultValue: z14.boolean().optional()
|
|
530
697
|
});
|
|
531
|
-
var Radio =
|
|
698
|
+
var Radio = z14.object({
|
|
532
699
|
...common,
|
|
533
|
-
control:
|
|
534
|
-
type:
|
|
535
|
-
defaultValue:
|
|
536
|
-
options:
|
|
700
|
+
control: z14.literal("radio"),
|
|
701
|
+
type: z14.literal("string"),
|
|
702
|
+
defaultValue: z14.string().optional(),
|
|
703
|
+
options: z14.array(z14.string())
|
|
537
704
|
});
|
|
538
|
-
var InlineRadio =
|
|
705
|
+
var InlineRadio = z14.object({
|
|
539
706
|
...common,
|
|
540
|
-
control:
|
|
541
|
-
type:
|
|
542
|
-
defaultValue:
|
|
543
|
-
options:
|
|
707
|
+
control: z14.literal("inline-radio"),
|
|
708
|
+
type: z14.literal("string"),
|
|
709
|
+
defaultValue: z14.string().optional(),
|
|
710
|
+
options: z14.array(z14.string())
|
|
544
711
|
});
|
|
545
|
-
var Select =
|
|
712
|
+
var Select = z14.object({
|
|
546
713
|
...common,
|
|
547
|
-
control:
|
|
548
|
-
type:
|
|
549
|
-
defaultValue:
|
|
550
|
-
options:
|
|
714
|
+
control: z14.literal("select"),
|
|
715
|
+
type: z14.literal("string"),
|
|
716
|
+
defaultValue: z14.string().optional(),
|
|
717
|
+
options: z14.array(z14.string())
|
|
551
718
|
});
|
|
552
|
-
var Check =
|
|
719
|
+
var Check = z14.object({
|
|
553
720
|
...common,
|
|
554
|
-
control:
|
|
555
|
-
type:
|
|
556
|
-
defaultValue:
|
|
557
|
-
options:
|
|
721
|
+
control: z14.literal("check"),
|
|
722
|
+
type: z14.literal("string[]"),
|
|
723
|
+
defaultValue: z14.array(z14.string()).optional(),
|
|
724
|
+
options: z14.array(z14.string())
|
|
558
725
|
});
|
|
559
|
-
var InlineCheck =
|
|
726
|
+
var InlineCheck = z14.object({
|
|
560
727
|
...common,
|
|
561
|
-
control:
|
|
562
|
-
type:
|
|
563
|
-
defaultValue:
|
|
564
|
-
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())
|
|
565
732
|
});
|
|
566
|
-
var MultiSelect =
|
|
733
|
+
var MultiSelect = z14.object({
|
|
567
734
|
...common,
|
|
568
|
-
control:
|
|
569
|
-
type:
|
|
570
|
-
defaultValue:
|
|
571
|
-
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())
|
|
572
739
|
});
|
|
573
|
-
var File =
|
|
740
|
+
var File = z14.object({
|
|
574
741
|
...common,
|
|
575
|
-
control:
|
|
576
|
-
type:
|
|
577
|
-
defaultValue:
|
|
742
|
+
control: z14.literal("file"),
|
|
743
|
+
type: z14.literal("string"),
|
|
744
|
+
defaultValue: z14.string().optional(),
|
|
578
745
|
/** https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#accept */
|
|
579
|
-
accept:
|
|
746
|
+
accept: z14.string().optional()
|
|
580
747
|
});
|
|
581
|
-
var Url =
|
|
748
|
+
var Url = z14.object({
|
|
582
749
|
...common,
|
|
583
|
-
control:
|
|
584
|
-
type:
|
|
585
|
-
defaultValue:
|
|
750
|
+
control: z14.literal("url"),
|
|
751
|
+
type: z14.literal("string"),
|
|
752
|
+
defaultValue: z14.string().optional()
|
|
586
753
|
});
|
|
587
|
-
var Json =
|
|
754
|
+
var Json = z14.object({
|
|
588
755
|
...common,
|
|
589
|
-
control:
|
|
590
|
-
type:
|
|
591
|
-
defaultValue:
|
|
756
|
+
control: z14.literal("json"),
|
|
757
|
+
type: z14.literal("json"),
|
|
758
|
+
defaultValue: z14.unknown().optional()
|
|
592
759
|
});
|
|
593
|
-
var Date =
|
|
760
|
+
var Date = z14.object({
|
|
594
761
|
...common,
|
|
595
|
-
control:
|
|
762
|
+
control: z14.literal("date"),
|
|
596
763
|
// @todo not sure what type should be here
|
|
597
764
|
// (we don't support Date yet, added for completeness)
|
|
598
|
-
type:
|
|
599
|
-
defaultValue:
|
|
765
|
+
type: z14.literal("string"),
|
|
766
|
+
defaultValue: z14.string().optional()
|
|
600
767
|
});
|
|
601
|
-
var Action =
|
|
768
|
+
var Action = z14.object({
|
|
602
769
|
...common,
|
|
603
|
-
control:
|
|
604
|
-
type:
|
|
605
|
-
defaultValue:
|
|
770
|
+
control: z14.literal("action"),
|
|
771
|
+
type: z14.literal("action"),
|
|
772
|
+
defaultValue: z14.undefined().optional()
|
|
606
773
|
});
|
|
607
|
-
var TextContent =
|
|
774
|
+
var TextContent = z14.object({
|
|
608
775
|
...common,
|
|
609
|
-
control:
|
|
610
|
-
type:
|
|
611
|
-
defaultValue:
|
|
776
|
+
control: z14.literal("textContent"),
|
|
777
|
+
type: z14.literal("string"),
|
|
778
|
+
defaultValue: z14.string().optional()
|
|
612
779
|
});
|
|
613
|
-
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([
|
|
614
787
|
Number,
|
|
615
788
|
Range,
|
|
616
789
|
Text,
|
|
@@ -629,104 +802,112 @@ var PropMeta = z13.union([
|
|
|
629
802
|
Json,
|
|
630
803
|
Date,
|
|
631
804
|
Action,
|
|
632
|
-
TextContent
|
|
805
|
+
TextContent,
|
|
806
|
+
AnimationAction
|
|
633
807
|
]);
|
|
634
808
|
|
|
635
809
|
// src/schema/embed-template.ts
|
|
636
|
-
import { z as
|
|
637
|
-
import { StyleValue as
|
|
638
|
-
var EmbedTemplateText =
|
|
639
|
-
type:
|
|
640
|
-
value:
|
|
641
|
-
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()
|
|
642
816
|
});
|
|
643
|
-
var EmbedTemplateExpression =
|
|
644
|
-
type:
|
|
645
|
-
value:
|
|
817
|
+
var EmbedTemplateExpression = z15.object({
|
|
818
|
+
type: z15.literal("expression"),
|
|
819
|
+
value: z15.string()
|
|
646
820
|
});
|
|
647
|
-
var EmbedTemplateVariable =
|
|
648
|
-
alias:
|
|
649
|
-
initialValue:
|
|
821
|
+
var EmbedTemplateVariable = z15.object({
|
|
822
|
+
alias: z15.optional(z15.string()),
|
|
823
|
+
initialValue: z15.unknown()
|
|
650
824
|
});
|
|
651
|
-
var EmbedTemplateProp =
|
|
652
|
-
|
|
653
|
-
type:
|
|
654
|
-
name:
|
|
655
|
-
value:
|
|
825
|
+
var EmbedTemplateProp = z15.union([
|
|
826
|
+
z15.object({
|
|
827
|
+
type: z15.literal("number"),
|
|
828
|
+
name: z15.string(),
|
|
829
|
+
value: z15.number()
|
|
656
830
|
}),
|
|
657
|
-
|
|
658
|
-
type:
|
|
659
|
-
name:
|
|
660
|
-
value:
|
|
831
|
+
z15.object({
|
|
832
|
+
type: z15.literal("string"),
|
|
833
|
+
name: z15.string(),
|
|
834
|
+
value: z15.string()
|
|
661
835
|
}),
|
|
662
|
-
|
|
663
|
-
type:
|
|
664
|
-
name:
|
|
665
|
-
value:
|
|
836
|
+
z15.object({
|
|
837
|
+
type: z15.literal("boolean"),
|
|
838
|
+
name: z15.string(),
|
|
839
|
+
value: z15.boolean()
|
|
666
840
|
}),
|
|
667
|
-
|
|
668
|
-
type:
|
|
669
|
-
name:
|
|
670
|
-
value:
|
|
841
|
+
z15.object({
|
|
842
|
+
type: z15.literal("string[]"),
|
|
843
|
+
name: z15.string(),
|
|
844
|
+
value: z15.array(z15.string())
|
|
671
845
|
}),
|
|
672
|
-
|
|
673
|
-
type:
|
|
674
|
-
name:
|
|
675
|
-
value:
|
|
846
|
+
z15.object({
|
|
847
|
+
type: z15.literal("json"),
|
|
848
|
+
name: z15.string(),
|
|
849
|
+
value: z15.unknown()
|
|
676
850
|
}),
|
|
677
|
-
|
|
678
|
-
type:
|
|
679
|
-
name:
|
|
680
|
-
code:
|
|
851
|
+
z15.object({
|
|
852
|
+
type: z15.literal("expression"),
|
|
853
|
+
name: z15.string(),
|
|
854
|
+
code: z15.string()
|
|
681
855
|
}),
|
|
682
|
-
|
|
683
|
-
type:
|
|
684
|
-
name:
|
|
685
|
-
variableName:
|
|
686
|
-
variableAlias:
|
|
856
|
+
z15.object({
|
|
857
|
+
type: z15.literal("parameter"),
|
|
858
|
+
name: z15.string(),
|
|
859
|
+
variableName: z15.string(),
|
|
860
|
+
variableAlias: z15.optional(z15.string())
|
|
687
861
|
}),
|
|
688
|
-
|
|
689
|
-
type:
|
|
690
|
-
name:
|
|
691
|
-
value:
|
|
692
|
-
|
|
693
|
-
type:
|
|
694
|
-
args:
|
|
695
|
-
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()
|
|
696
870
|
})
|
|
697
871
|
)
|
|
698
872
|
})
|
|
699
873
|
]);
|
|
700
|
-
var EmbedTemplateStyleDeclRaw =
|
|
874
|
+
var EmbedTemplateStyleDeclRaw = z15.object({
|
|
701
875
|
// State selector, e.g. :hover
|
|
702
|
-
state:
|
|
703
|
-
property:
|
|
704
|
-
value:
|
|
876
|
+
state: z15.optional(z15.string()),
|
|
877
|
+
property: z15.string(),
|
|
878
|
+
value: StyleValue3
|
|
705
879
|
});
|
|
706
880
|
var EmbedTemplateStyleDecl = EmbedTemplateStyleDeclRaw;
|
|
707
|
-
var EmbedTemplateInstance =
|
|
708
|
-
() =>
|
|
709
|
-
type:
|
|
710
|
-
component:
|
|
711
|
-
label:
|
|
712
|
-
variables:
|
|
713
|
-
props:
|
|
714
|
-
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)),
|
|
715
889
|
children: WsEmbedTemplate
|
|
716
890
|
})
|
|
717
891
|
);
|
|
718
|
-
var WsEmbedTemplate =
|
|
719
|
-
() =>
|
|
720
|
-
|
|
892
|
+
var WsEmbedTemplate = z15.lazy(
|
|
893
|
+
() => z15.array(
|
|
894
|
+
z15.union([EmbedTemplateInstance, EmbedTemplateText, EmbedTemplateExpression])
|
|
721
895
|
)
|
|
722
896
|
);
|
|
723
897
|
|
|
724
898
|
// src/schema/component-meta.ts
|
|
725
|
-
import { z as
|
|
726
|
-
|
|
727
|
-
|
|
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),
|
|
728
909
|
// Props that will be always visible in properties panel.
|
|
729
|
-
initialProps:
|
|
910
|
+
initialProps: z16.array(z16.string()).optional()
|
|
730
911
|
});
|
|
731
912
|
var componentCategories = [
|
|
732
913
|
"general",
|
|
@@ -741,10 +922,10 @@ var componentCategories = [
|
|
|
741
922
|
"internal"
|
|
742
923
|
];
|
|
743
924
|
var stateCategories = ["states", "component-states"];
|
|
744
|
-
var ComponentState =
|
|
745
|
-
category:
|
|
746
|
-
selector:
|
|
747
|
-
label:
|
|
925
|
+
var ComponentState = z16.object({
|
|
926
|
+
category: z16.enum(stateCategories).optional(),
|
|
927
|
+
selector: z16.string(),
|
|
928
|
+
label: z16.string()
|
|
748
929
|
});
|
|
749
930
|
var defaultStates = [
|
|
750
931
|
{ selector: ":hover", label: "Hover" },
|
|
@@ -753,28 +934,31 @@ var defaultStates = [
|
|
|
753
934
|
{ selector: ":focus-visible", label: "Focus Visible" },
|
|
754
935
|
{ selector: ":focus-within", label: "Focus Within" }
|
|
755
936
|
];
|
|
756
|
-
var WsComponentMeta =
|
|
757
|
-
category:
|
|
937
|
+
var WsComponentMeta = z16.object({
|
|
938
|
+
category: z16.enum(componentCategories).optional(),
|
|
758
939
|
// container - can accept other components with dnd or be edited as text
|
|
759
940
|
// control - usually form controls like inputs, without children
|
|
760
941
|
// embed - images, videos or other embeddable components, without children
|
|
761
942
|
// rich-text-child - formatted text fragment, not listed in components list
|
|
762
|
-
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(),
|
|
763
949
|
constraints: Matchers.optional(),
|
|
764
950
|
// when this field is specified component receives
|
|
765
951
|
// prop with index of same components withiin specified ancestor
|
|
766
952
|
// important to automatically enumerate collections without
|
|
767
953
|
// naming every item manually
|
|
768
|
-
indexWithinAncestor:
|
|
769
|
-
label:
|
|
770
|
-
description:
|
|
771
|
-
icon:
|
|
772
|
-
presetStyle:
|
|
773
|
-
|
|
774
|
-
),
|
|
775
|
-
|
|
776
|
-
template: z15.optional(WsEmbedTemplate),
|
|
777
|
-
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()
|
|
778
962
|
});
|
|
779
963
|
|
|
780
964
|
// src/core-metas.ts
|
|
@@ -789,18 +973,18 @@ import {
|
|
|
789
973
|
// src/__generated__/normalize.css.ts
|
|
790
974
|
var html = [
|
|
791
975
|
{ property: "display", value: { type: "keyword", value: "grid" } },
|
|
792
|
-
{ property: "
|
|
976
|
+
{ property: "min-height", value: { type: "unit", unit: "%", value: 100 } },
|
|
793
977
|
{
|
|
794
|
-
property: "
|
|
978
|
+
property: "font-family",
|
|
795
979
|
value: { type: "fontFamily", value: ["Arial", "Roboto", "sans-serif"] }
|
|
796
980
|
},
|
|
797
|
-
{ property: "
|
|
981
|
+
{ property: "font-size", value: { type: "unit", unit: "px", value: 16 } },
|
|
798
982
|
{
|
|
799
|
-
property: "
|
|
983
|
+
property: "line-height",
|
|
800
984
|
value: { type: "unit", unit: "number", value: 1.2 }
|
|
801
985
|
},
|
|
802
986
|
{
|
|
803
|
-
property: "
|
|
987
|
+
property: "white-space-collapse",
|
|
804
988
|
value: { type: "keyword", value: "preserve" }
|
|
805
989
|
}
|
|
806
990
|
];
|
|
@@ -967,6 +1151,51 @@ var parseComponentName = (componentName) => {
|
|
|
967
1151
|
}
|
|
968
1152
|
return [namespace, name];
|
|
969
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
|
+
};
|
|
970
1199
|
|
|
971
1200
|
// src/expression.ts
|
|
972
1201
|
import {
|
|
@@ -974,6 +1203,13 @@ import {
|
|
|
974
1203
|
parseExpressionAt
|
|
975
1204
|
} from "acorn";
|
|
976
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
|
+
};
|
|
977
1213
|
var lintExpression = ({
|
|
978
1214
|
expression,
|
|
979
1215
|
availableVariables = /* @__PURE__ */ new Set(),
|
|
@@ -1225,11 +1461,17 @@ var generateObjectExpression = (map) => {
|
|
|
1225
1461
|
return generated;
|
|
1226
1462
|
};
|
|
1227
1463
|
var dataSourceVariablePrefix = "$ws$dataSource$";
|
|
1228
|
-
var
|
|
1464
|
+
var encodeDataVariableId = (id) => {
|
|
1465
|
+
if (id === SYSTEM_VARIABLE_ID) {
|
|
1466
|
+
return "$ws$system";
|
|
1467
|
+
}
|
|
1229
1468
|
const encoded = id.replaceAll("-", "__DASH__");
|
|
1230
1469
|
return `${dataSourceVariablePrefix}${encoded}`;
|
|
1231
1470
|
};
|
|
1232
|
-
var
|
|
1471
|
+
var decodeDataVariableId = (name) => {
|
|
1472
|
+
if (name === "$ws$system") {
|
|
1473
|
+
return SYSTEM_VARIABLE_ID;
|
|
1474
|
+
}
|
|
1233
1475
|
if (name.startsWith(dataSourceVariablePrefix)) {
|
|
1234
1476
|
const encoded = name.slice(dataSourceVariablePrefix.length);
|
|
1235
1477
|
return encoded.replaceAll("__DASH__", "-");
|
|
@@ -1246,8 +1488,11 @@ var generateExpression = ({
|
|
|
1246
1488
|
expression,
|
|
1247
1489
|
executable: true,
|
|
1248
1490
|
replaceVariable: (identifier) => {
|
|
1249
|
-
const depId =
|
|
1250
|
-
|
|
1491
|
+
const depId = decodeDataVariableId(identifier);
|
|
1492
|
+
let dep = depId ? dataSources.get(depId) : void 0;
|
|
1493
|
+
if (depId === SYSTEM_VARIABLE_ID) {
|
|
1494
|
+
dep = systemParameter;
|
|
1495
|
+
}
|
|
1251
1496
|
if (dep) {
|
|
1252
1497
|
usedDataSources?.set(dep.id, dep);
|
|
1253
1498
|
return scope.getName(dep.id, dep.name);
|
|
@@ -1439,12 +1684,11 @@ var generateResources = ({
|
|
|
1439
1684
|
`;
|
|
1440
1685
|
}
|
|
1441
1686
|
if (dataSource.type === "parameter") {
|
|
1442
|
-
if (dataSource.id
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
const name = scope.getName(dataSource.id, dataSource.name);
|
|
1446
|
-
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
|
|
1447
1690
|
`;
|
|
1691
|
+
}
|
|
1448
1692
|
}
|
|
1449
1693
|
}
|
|
1450
1694
|
let generated = "";
|
|
@@ -1641,7 +1885,7 @@ var generatePageMeta = ({
|
|
|
1641
1885
|
continue;
|
|
1642
1886
|
}
|
|
1643
1887
|
if (dataSource.type === "parameter") {
|
|
1644
|
-
if (dataSource.id === page.systemDataSourceId) {
|
|
1888
|
+
if (dataSource.id === page.systemDataSourceId || dataSource.id === SYSTEM_VARIABLE_ID) {
|
|
1645
1889
|
const valueName = localScope.getName(dataSource.id, dataSource.name);
|
|
1646
1890
|
generated += ` let ${valueName} = system
|
|
1647
1891
|
`;
|
|
@@ -1685,6 +1929,182 @@ var generatePageMeta = ({
|
|
|
1685
1929
|
`;
|
|
1686
1930
|
return generated;
|
|
1687
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
|
+
};
|
|
1688
2108
|
export {
|
|
1689
2109
|
Asset,
|
|
1690
2110
|
Assets,
|
|
@@ -1720,15 +2140,18 @@ export {
|
|
|
1720
2140
|
PageRedirect,
|
|
1721
2141
|
PageTitle,
|
|
1722
2142
|
Pages,
|
|
2143
|
+
PresetStyleDecl,
|
|
1723
2144
|
ProjectNewRedirectPath,
|
|
1724
2145
|
Prop,
|
|
1725
2146
|
PropMeta,
|
|
1726
2147
|
Props,
|
|
2148
|
+
RANGE_UNITS,
|
|
1727
2149
|
ROOT_FOLDER_ID,
|
|
1728
2150
|
ROOT_INSTANCE_ID,
|
|
1729
2151
|
Resource,
|
|
1730
2152
|
ResourceRequest,
|
|
1731
2153
|
Resources,
|
|
2154
|
+
SYSTEM_VARIABLE_ID,
|
|
1732
2155
|
StyleDecl,
|
|
1733
2156
|
StyleSource,
|
|
1734
2157
|
StyleSourceSelection,
|
|
@@ -1740,6 +2163,9 @@ export {
|
|
|
1740
2163
|
WebstudioFragment,
|
|
1741
2164
|
WsComponentMeta,
|
|
1742
2165
|
WsEmbedTemplate,
|
|
2166
|
+
addFontRules,
|
|
2167
|
+
animationActionSchema,
|
|
2168
|
+
animationKeyframeSchema,
|
|
1743
2169
|
blockComponent,
|
|
1744
2170
|
blockTemplateComponent,
|
|
1745
2171
|
blockTemplateMeta,
|
|
@@ -1747,28 +2173,32 @@ export {
|
|
|
1747
2173
|
componentCategories,
|
|
1748
2174
|
coreMetas,
|
|
1749
2175
|
corePropsMetas,
|
|
2176
|
+
createImageValueTransformer,
|
|
1750
2177
|
createScope,
|
|
1751
|
-
decodeDataSourceVariable,
|
|
1752
|
-
|
|
2178
|
+
decodeDataVariableId as decodeDataSourceVariable,
|
|
2179
|
+
decodeDataVariableId,
|
|
1753
2180
|
defaultStates,
|
|
1754
2181
|
descendantComponent,
|
|
1755
2182
|
documentTypes,
|
|
1756
|
-
encodeDataSourceVariable,
|
|
1757
|
-
|
|
2183
|
+
encodeDataVariableId as encodeDataSourceVariable,
|
|
2184
|
+
encodeDataVariableId,
|
|
1758
2185
|
executeExpression,
|
|
1759
2186
|
findPageByIdOrPath,
|
|
1760
2187
|
findParentFolderByChildId,
|
|
1761
2188
|
findTreeInstanceIds,
|
|
1762
2189
|
findTreeInstanceIdsExcludingSlotDescendants,
|
|
2190
|
+
generateCss,
|
|
1763
2191
|
generateExpression,
|
|
1764
2192
|
generateObjectExpression,
|
|
1765
2193
|
generatePageMeta,
|
|
1766
2194
|
generateResources,
|
|
1767
2195
|
getExpressionIdentifiers,
|
|
2196
|
+
getIndexesWithinAncestors,
|
|
1768
2197
|
getPagePath,
|
|
1769
2198
|
getStaticSiteMapXml,
|
|
1770
2199
|
getStyleDeclKey,
|
|
1771
2200
|
initialBreakpoints,
|
|
2201
|
+
insetUnitValueSchema,
|
|
1772
2202
|
isCoreComponent,
|
|
1773
2203
|
isLiteralExpression,
|
|
1774
2204
|
isPathnamePattern,
|
|
@@ -1778,8 +2208,12 @@ export {
|
|
|
1778
2208
|
parseComponentName,
|
|
1779
2209
|
parseObjectExpression,
|
|
1780
2210
|
portalComponent,
|
|
2211
|
+
rangeUnitValueSchema,
|
|
1781
2212
|
replaceFormActionsWithResources,
|
|
1782
2213
|
rootComponent,
|
|
2214
|
+
scrollAnimationSchema,
|
|
1783
2215
|
stateCategories,
|
|
1784
|
-
|
|
2216
|
+
systemParameter,
|
|
2217
|
+
transpileExpression,
|
|
2218
|
+
viewAnimationSchema
|
|
1785
2219
|
};
|