@webstudio-is/sdk 0.203.0 → 0.205.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/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((path) => path === "" || path.startsWith("/"), "Must start with a /").refine((path) => path.endsWith("/") === false, "Can't end with a /").refine((path) => path.includes("//") === false, "Can't contain repeating /").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
- scopeInstanceId: z4.string(),
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 PropId = z6.string();
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: z6.string(),
282
- name: z6.string(),
283
- required: z6.optional(z6.boolean())
447
+ instanceId: z7.string(),
448
+ name: z7.string(),
449
+ required: z7.optional(z7.boolean())
284
450
  };
285
- var Prop = z6.union([
286
- z6.object({
451
+ var Prop = z7.union([
452
+ z7.object({
287
453
  ...baseProp,
288
- type: z6.literal("number"),
289
- value: z6.number()
454
+ type: z7.literal("number"),
455
+ value: z7.number()
290
456
  }),
291
- z6.object({
457
+ z7.object({
292
458
  ...baseProp,
293
- type: z6.literal("string"),
294
- value: z6.string()
459
+ type: z7.literal("string"),
460
+ value: z7.string()
295
461
  }),
296
- z6.object({
462
+ z7.object({
297
463
  ...baseProp,
298
- type: z6.literal("boolean"),
299
- value: z6.boolean()
464
+ type: z7.literal("boolean"),
465
+ value: z7.boolean()
300
466
  }),
301
- z6.object({
467
+ z7.object({
302
468
  ...baseProp,
303
- type: z6.literal("json"),
304
- value: z6.unknown()
469
+ type: z7.literal("json"),
470
+ value: z7.unknown()
305
471
  }),
306
- z6.object({
472
+ z7.object({
307
473
  ...baseProp,
308
- type: z6.literal("asset"),
309
- value: z6.string()
474
+ type: z7.literal("asset"),
475
+ value: z7.string()
310
476
  // asset id
311
477
  }),
312
- z6.object({
478
+ z7.object({
313
479
  ...baseProp,
314
- type: z6.literal("page"),
315
- value: z6.union([
316
- z6.string(),
480
+ type: z7.literal("page"),
481
+ value: z7.union([
482
+ z7.string(),
317
483
  // page id
318
- z6.object({
319
- pageId: z6.string(),
320
- instanceId: z6.string()
484
+ z7.object({
485
+ pageId: z7.string(),
486
+ instanceId: z7.string()
321
487
  })
322
488
  ])
323
489
  }),
324
- z6.object({
490
+ z7.object({
325
491
  ...baseProp,
326
- type: z6.literal("string[]"),
327
- value: z6.array(z6.string())
492
+ type: z7.literal("string[]"),
493
+ value: z7.array(z7.string())
328
494
  }),
329
- z6.object({
495
+ z7.object({
330
496
  ...baseProp,
331
- type: z6.literal("parameter"),
497
+ type: z7.literal("parameter"),
332
498
  // data source id
333
- value: z6.string()
499
+ value: z7.string()
334
500
  }),
335
- z6.object({
501
+ z7.object({
336
502
  ...baseProp,
337
- type: z6.literal("resource"),
503
+ type: z7.literal("resource"),
338
504
  // resource id
339
- value: z6.string()
505
+ value: z7.string()
340
506
  }),
341
- z6.object({
507
+ z7.object({
342
508
  ...baseProp,
343
- type: z6.literal("expression"),
509
+ type: z7.literal("expression"),
344
510
  // expression code
345
- value: z6.string()
511
+ value: z7.string()
346
512
  }),
347
- z6.object({
513
+ z7.object({
348
514
  ...baseProp,
349
- type: z6.literal("action"),
350
- value: z6.array(
351
- z6.object({
352
- type: z6.literal("execute"),
353
- args: z6.array(z6.string()),
354
- code: z6.string()
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 = z6.map(PropId, Prop);
530
+ var Props = z7.map(PropId, Prop);
360
531
 
361
532
  // src/schema/breakpoints.ts
362
- import { z as z7 } from "zod";
363
- var BreakpointId = z7.string();
364
- var Breakpoint = z7.object({
533
+ import { z as z8 } from "zod";
534
+ var BreakpointId = z8.string();
535
+ var Breakpoint = z8.object({
365
536
  id: BreakpointId,
366
- label: z7.string(),
367
- minWidth: z7.number().optional(),
368
- maxWidth: z7.number().optional()
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 = z7.map(BreakpointId, Breakpoint);
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 z8 } from "zod";
386
- var StyleSourceId = z8.string();
387
- var StyleSourceToken = z8.object({
388
- type: z8.literal("token"),
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: z8.string()
561
+ name: z9.string()
391
562
  });
392
- var StyleSourceLocal = z8.object({
393
- type: z8.literal("local"),
563
+ var StyleSourceLocal = z9.object({
564
+ type: z9.literal("local"),
394
565
  id: StyleSourceId
395
566
  });
396
- var StyleSource = z8.union([StyleSourceToken, StyleSourceLocal]);
397
- var StyleSources = z8.map(StyleSourceId, StyleSource);
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 z9 } from "zod";
401
- var InstanceId2 = z9.string();
402
- var StyleSourceId2 = z9.string();
403
- var StyleSourceSelection = z9.object({
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: z9.array(StyleSourceId2)
576
+ values: z10.array(StyleSourceId2)
406
577
  });
407
- var StyleSourceSelections = z9.map(InstanceId2, StyleSourceSelection);
578
+ var StyleSourceSelections = z10.map(InstanceId2, StyleSourceSelection);
408
579
 
409
580
  // src/schema/styles.ts
410
- import { z as z10 } from "zod";
411
- import { StyleValue } from "@webstudio-is/css-engine";
412
- var StyleDeclRaw = z10.object({
413
- styleSourceId: z10.string(),
414
- breakpointId: z10.string(),
415
- state: z10.optional(z10.string()),
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: z10.string(),
418
- value: StyleValue,
419
- listed: z10.boolean().optional()
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 = z10.map(z10.string(), StyleDecl);
596
+ var Styles = z11.map(z11.string(), StyleDecl);
426
597
 
427
598
  // src/schema/deployment.ts
428
- import { z as z11 } from "zod";
429
- var Templates = z11.enum([
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 = z11.union([
441
- z11.object({
442
- destination: z11.literal("static"),
443
- name: z11.string(),
444
- assetsDomain: z11.string(),
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: z11.array(Templates)
614
+ templates: z12.array(Templates)
447
615
  }),
448
- z11.object({
449
- destination: z11.literal("saas").optional(),
450
- domains: z11.array(z11.string()),
451
- assetsDomain: z11.string().optional(),
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: z11.string().optional(),
456
- excludeWstdDomainFromSearch: z11.boolean().optional()
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 z12 } from "zod";
462
- var WebstudioFragment = z12.object({
463
- children: z12.array(InstanceChild),
464
- instances: z12.array(Instance),
465
- assets: z12.array(Asset),
466
- dataSources: z12.array(DataSource),
467
- resources: z12.array(Resource),
468
- props: z12.array(Prop),
469
- breakpoints: z12.array(Breakpoint),
470
- styleSourceSelections: z12.array(StyleSourceSelection),
471
- styleSources: z12.array(StyleSource),
472
- styles: z12.array(StyleDecl)
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 z13 } from "zod";
644
+ import { z as z14 } from "zod";
477
645
  var common = {
478
- label: z13.string().optional(),
479
- description: z13.string().optional(),
480
- required: z13.boolean()
646
+ label: z14.string().optional(),
647
+ description: z14.string().optional(),
648
+ required: z14.boolean()
481
649
  };
482
- var Number = z13.object({
650
+ var Number = z14.object({
483
651
  ...common,
484
- control: z13.literal("number"),
485
- type: z13.literal("number"),
486
- defaultValue: z13.number().optional()
652
+ control: z14.literal("number"),
653
+ type: z14.literal("number"),
654
+ defaultValue: z14.number().optional()
487
655
  });
488
- var Range = z13.object({
656
+ var Range = z14.object({
489
657
  ...common,
490
- control: z13.literal("range"),
491
- type: z13.literal("number"),
492
- defaultValue: z13.number().optional()
658
+ control: z14.literal("range"),
659
+ type: z14.literal("number"),
660
+ defaultValue: z14.number().optional()
493
661
  });
494
- var Text = z13.object({
662
+ var Text = z14.object({
495
663
  ...common,
496
- control: z13.literal("text"),
497
- type: z13.literal("string"),
498
- defaultValue: z13.string().optional(),
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: z13.number().optional()
671
+ rows: z14.number().optional()
504
672
  });
505
- var Code = z13.object({
673
+ var Code = z14.object({
506
674
  ...common,
507
- control: z13.literal("code"),
508
- type: z13.literal("string"),
509
- language: z13.union([z13.literal("html"), z13.literal("markdown")]),
510
- defaultValue: z13.string().optional()
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 = z13.object({
680
+ var CodeText = z14.object({
513
681
  ...common,
514
- control: z13.literal("codetext"),
515
- type: z13.literal("string"),
516
- defaultValue: z13.string().optional()
682
+ control: z14.literal("codetext"),
683
+ type: z14.literal("string"),
684
+ defaultValue: z14.string().optional()
517
685
  });
518
- var Color = z13.object({
686
+ var Color = z14.object({
519
687
  ...common,
520
- control: z13.literal("color"),
521
- type: z13.literal("string"),
522
- defaultValue: z13.string().optional()
688
+ control: z14.literal("color"),
689
+ type: z14.literal("string"),
690
+ defaultValue: z14.string().optional()
523
691
  });
524
- var Boolean = z13.object({
692
+ var Boolean = z14.object({
525
693
  ...common,
526
- control: z13.literal("boolean"),
527
- type: z13.literal("boolean"),
528
- defaultValue: z13.boolean().optional()
694
+ control: z14.literal("boolean"),
695
+ type: z14.literal("boolean"),
696
+ defaultValue: z14.boolean().optional()
529
697
  });
530
- var Radio = z13.object({
698
+ var Radio = z14.object({
531
699
  ...common,
532
- control: z13.literal("radio"),
533
- type: z13.literal("string"),
534
- defaultValue: z13.string().optional(),
535
- options: z13.array(z13.string())
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 = z13.object({
705
+ var InlineRadio = z14.object({
538
706
  ...common,
539
- control: z13.literal("inline-radio"),
540
- type: z13.literal("string"),
541
- defaultValue: z13.string().optional(),
542
- options: z13.array(z13.string())
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 = z13.object({
712
+ var Select = z14.object({
545
713
  ...common,
546
- control: z13.literal("select"),
547
- type: z13.literal("string"),
548
- defaultValue: z13.string().optional(),
549
- options: z13.array(z13.string())
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 = z13.object({
719
+ var Check = z14.object({
552
720
  ...common,
553
- control: z13.literal("check"),
554
- type: z13.literal("string[]"),
555
- defaultValue: z13.array(z13.string()).optional(),
556
- options: z13.array(z13.string())
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 = z13.object({
726
+ var InlineCheck = z14.object({
559
727
  ...common,
560
- control: z13.literal("inline-check"),
561
- type: z13.literal("string[]"),
562
- defaultValue: z13.array(z13.string()).optional(),
563
- options: z13.array(z13.string())
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 = z13.object({
733
+ var MultiSelect = z14.object({
566
734
  ...common,
567
- control: z13.literal("multi-select"),
568
- type: z13.literal("string[]"),
569
- defaultValue: z13.array(z13.string()).optional(),
570
- options: z13.array(z13.string())
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 = z13.object({
740
+ var File = z14.object({
573
741
  ...common,
574
- control: z13.literal("file"),
575
- type: z13.literal("string"),
576
- defaultValue: z13.string().optional(),
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: z13.string().optional()
746
+ accept: z14.string().optional()
579
747
  });
580
- var Url = z13.object({
748
+ var Url = z14.object({
581
749
  ...common,
582
- control: z13.literal("url"),
583
- type: z13.literal("string"),
584
- defaultValue: z13.string().optional()
750
+ control: z14.literal("url"),
751
+ type: z14.literal("string"),
752
+ defaultValue: z14.string().optional()
585
753
  });
586
- var Json = z13.object({
754
+ var Json = z14.object({
587
755
  ...common,
588
- control: z13.literal("json"),
589
- type: z13.literal("json"),
590
- defaultValue: z13.unknown().optional()
756
+ control: z14.literal("json"),
757
+ type: z14.literal("json"),
758
+ defaultValue: z14.unknown().optional()
591
759
  });
592
- var Date = z13.object({
760
+ var Date = z14.object({
593
761
  ...common,
594
- control: z13.literal("date"),
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: z13.literal("string"),
598
- defaultValue: z13.string().optional()
765
+ type: z14.literal("string"),
766
+ defaultValue: z14.string().optional()
767
+ });
768
+ var Action = z14.object({
769
+ ...common,
770
+ control: z14.literal("action"),
771
+ type: z14.literal("action"),
772
+ defaultValue: z14.undefined().optional()
599
773
  });
600
- var Action = z13.object({
774
+ var TextContent = z14.object({
601
775
  ...common,
602
- control: z13.literal("action"),
603
- type: z13.literal("action"),
604
- defaultValue: z13.undefined().optional()
776
+ control: z14.literal("textContent"),
777
+ type: z14.literal("string"),
778
+ defaultValue: z14.string().optional()
605
779
  });
606
- var TextContent = z13.object({
780
+ var AnimationAction = z14.object({
607
781
  ...common,
608
- control: z13.literal("textContent"),
609
- type: z13.literal("string"),
610
- defaultValue: z13.string().optional()
782
+ control: z14.literal("animationAction"),
783
+ type: z14.literal("animationAction"),
784
+ defaultValue: z14.undefined().optional()
611
785
  });
612
- var PropMeta = z13.union([
786
+ var PropMeta = z14.union([
613
787
  Number,
614
788
  Range,
615
789
  Text,
@@ -628,104 +802,105 @@ 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 z14 } from "zod";
636
- import { StyleValue as StyleValue2 } from "@webstudio-is/css-engine";
637
- var EmbedTemplateText = z14.object({
638
- type: z14.literal("text"),
639
- value: z14.string(),
640
- placeholder: z14.boolean().optional()
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 = z14.object({
643
- type: z14.literal("expression"),
644
- value: z14.string()
817
+ var EmbedTemplateExpression = z15.object({
818
+ type: z15.literal("expression"),
819
+ value: z15.string()
645
820
  });
646
- var EmbedTemplateVariable = z14.object({
647
- alias: z14.optional(z14.string()),
648
- initialValue: z14.unknown()
821
+ var EmbedTemplateVariable = z15.object({
822
+ alias: z15.optional(z15.string()),
823
+ initialValue: z15.unknown()
649
824
  });
650
- var EmbedTemplateProp = z14.union([
651
- z14.object({
652
- type: z14.literal("number"),
653
- name: z14.string(),
654
- value: z14.number()
825
+ var EmbedTemplateProp = z15.union([
826
+ z15.object({
827
+ type: z15.literal("number"),
828
+ name: z15.string(),
829
+ value: z15.number()
655
830
  }),
656
- z14.object({
657
- type: z14.literal("string"),
658
- name: z14.string(),
659
- value: z14.string()
831
+ z15.object({
832
+ type: z15.literal("string"),
833
+ name: z15.string(),
834
+ value: z15.string()
660
835
  }),
661
- z14.object({
662
- type: z14.literal("boolean"),
663
- name: z14.string(),
664
- value: z14.boolean()
836
+ z15.object({
837
+ type: z15.literal("boolean"),
838
+ name: z15.string(),
839
+ value: z15.boolean()
665
840
  }),
666
- z14.object({
667
- type: z14.literal("string[]"),
668
- name: z14.string(),
669
- value: z14.array(z14.string())
841
+ z15.object({
842
+ type: z15.literal("string[]"),
843
+ name: z15.string(),
844
+ value: z15.array(z15.string())
670
845
  }),
671
- z14.object({
672
- type: z14.literal("json"),
673
- name: z14.string(),
674
- value: z14.unknown()
846
+ z15.object({
847
+ type: z15.literal("json"),
848
+ name: z15.string(),
849
+ value: z15.unknown()
675
850
  }),
676
- z14.object({
677
- type: z14.literal("expression"),
678
- name: z14.string(),
679
- code: z14.string()
851
+ z15.object({
852
+ type: z15.literal("expression"),
853
+ name: z15.string(),
854
+ code: z15.string()
680
855
  }),
681
- z14.object({
682
- type: z14.literal("parameter"),
683
- name: z14.string(),
684
- variableName: z14.string(),
685
- variableAlias: z14.optional(z14.string())
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
- z14.object({
688
- type: z14.literal("action"),
689
- name: z14.string(),
690
- value: z14.array(
691
- z14.object({
692
- type: z14.literal("execute"),
693
- args: z14.optional(z14.array(z14.string())),
694
- code: z14.string()
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 = z14.object({
874
+ var EmbedTemplateStyleDeclRaw = z15.object({
700
875
  // State selector, e.g. :hover
701
- state: z14.optional(z14.string()),
702
- property: z14.string(),
703
- value: StyleValue2
876
+ state: z15.optional(z15.string()),
877
+ property: z15.string(),
878
+ value: StyleValue3
704
879
  });
705
880
  var EmbedTemplateStyleDecl = EmbedTemplateStyleDeclRaw;
706
- var EmbedTemplateInstance = z14.lazy(
707
- () => z14.object({
708
- type: z14.literal("instance"),
709
- component: z14.string(),
710
- label: z14.optional(z14.string()),
711
- variables: z14.optional(z14.record(z14.string(), EmbedTemplateVariable)),
712
- props: z14.optional(z14.array(EmbedTemplateProp)),
713
- styles: z14.optional(z14.array(EmbedTemplateStyleDecl)),
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 = z14.lazy(
718
- () => z14.array(
719
- z14.union([EmbedTemplateInstance, EmbedTemplateText, EmbedTemplateExpression])
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 z15 } from "zod";
725
- var WsComponentPropsMeta = z15.object({
726
- props: z15.record(PropMeta),
899
+ import { z as z16 } from "zod";
900
+ var WsComponentPropsMeta = z16.object({
901
+ props: z16.record(PropMeta),
727
902
  // Props that will be always visible in properties panel.
728
- initialProps: z15.array(z15.string()).optional()
903
+ initialProps: z16.array(z16.string()).optional()
729
904
  });
730
905
  var componentCategories = [
731
906
  "general",
@@ -740,10 +915,10 @@ var componentCategories = [
740
915
  "internal"
741
916
  ];
742
917
  var stateCategories = ["states", "component-states"];
743
- var ComponentState = z15.object({
744
- category: z15.enum(stateCategories).optional(),
745
- selector: z15.string(),
746
- label: z15.string()
918
+ var ComponentState = z16.object({
919
+ category: z16.enum(stateCategories).optional(),
920
+ selector: z16.string(),
921
+ label: z16.string()
747
922
  });
748
923
  var defaultStates = [
749
924
  { selector: ":hover", label: "Hover" },
@@ -752,28 +927,33 @@ var defaultStates = [
752
927
  { selector: ":focus-visible", label: "Focus Visible" },
753
928
  { selector: ":focus-within", label: "Focus Within" }
754
929
  ];
755
- var WsComponentMeta = z15.object({
756
- category: z15.enum(componentCategories).optional(),
930
+ var WsComponentMeta = z16.object({
931
+ category: z16.enum(componentCategories).optional(),
757
932
  // container - can accept other components with dnd or be edited as text
758
933
  // control - usually form controls like inputs, without children
759
934
  // embed - images, videos or other embeddable components, without children
760
935
  // rich-text-child - formatted text fragment, not listed in components list
761
- type: z15.enum(["container", "control", "embed", "rich-text-child"]),
936
+ type: z16.enum(["container", "control", "embed", "rich-text-child"]),
937
+ /**
938
+ * a property used as textual placeholder when no content specified while in builder
939
+ * also signals to not insert components inside unless dropped explicitly
940
+ */
941
+ placeholder: z16.string().optional(),
762
942
  constraints: Matchers.optional(),
763
943
  // when this field is specified component receives
764
944
  // prop with index of same components withiin specified ancestor
765
945
  // important to automatically enumerate collections without
766
946
  // naming every item manually
767
- indexWithinAncestor: z15.optional(z15.string()),
768
- label: z15.optional(z15.string()),
769
- description: z15.string().optional(),
770
- icon: z15.string(),
771
- presetStyle: z15.optional(
772
- z15.record(z15.string(), z15.array(EmbedTemplateStyleDecl))
947
+ indexWithinAncestor: z16.optional(z16.string()),
948
+ label: z16.optional(z16.string()),
949
+ description: z16.string().optional(),
950
+ icon: z16.string(),
951
+ presetStyle: z16.optional(
952
+ z16.record(z16.string(), z16.array(EmbedTemplateStyleDecl))
773
953
  ),
774
- states: z15.optional(z15.array(ComponentState)),
775
- template: z15.optional(WsEmbedTemplate),
776
- order: z15.number().optional()
954
+ states: z16.optional(z16.array(ComponentState)),
955
+ template: z16.optional(WsEmbedTemplate),
956
+ order: z16.number().optional()
777
957
  });
778
958
 
779
959
  // src/core-metas.ts
@@ -973,6 +1153,13 @@ import {
973
1153
  parseExpressionAt
974
1154
  } from "acorn";
975
1155
  import { simple } from "acorn-walk";
1156
+ var SYSTEM_VARIABLE_ID = ":system";
1157
+ var systemParameter = {
1158
+ id: SYSTEM_VARIABLE_ID,
1159
+ scopeInstanceId: ROOT_INSTANCE_ID,
1160
+ type: "parameter",
1161
+ name: "system"
1162
+ };
976
1163
  var lintExpression = ({
977
1164
  expression,
978
1165
  availableVariables = /* @__PURE__ */ new Set(),
@@ -1224,11 +1411,17 @@ var generateObjectExpression = (map) => {
1224
1411
  return generated;
1225
1412
  };
1226
1413
  var dataSourceVariablePrefix = "$ws$dataSource$";
1227
- var encodeDataSourceVariable = (id) => {
1414
+ var encodeDataVariableId = (id) => {
1415
+ if (id === SYSTEM_VARIABLE_ID) {
1416
+ return "$ws$system";
1417
+ }
1228
1418
  const encoded = id.replaceAll("-", "__DASH__");
1229
1419
  return `${dataSourceVariablePrefix}${encoded}`;
1230
1420
  };
1231
- var decodeDataSourceVariable = (name) => {
1421
+ var decodeDataVariableId = (name) => {
1422
+ if (name === "$ws$system") {
1423
+ return SYSTEM_VARIABLE_ID;
1424
+ }
1232
1425
  if (name.startsWith(dataSourceVariablePrefix)) {
1233
1426
  const encoded = name.slice(dataSourceVariablePrefix.length);
1234
1427
  return encoded.replaceAll("__DASH__", "-");
@@ -1245,8 +1438,11 @@ var generateExpression = ({
1245
1438
  expression,
1246
1439
  executable: true,
1247
1440
  replaceVariable: (identifier) => {
1248
- const depId = decodeDataSourceVariable(identifier);
1249
- const dep = depId ? dataSources.get(depId) : void 0;
1441
+ const depId = decodeDataVariableId(identifier);
1442
+ let dep = depId ? dataSources.get(depId) : void 0;
1443
+ if (depId === SYSTEM_VARIABLE_ID) {
1444
+ dep = systemParameter;
1445
+ }
1250
1446
  if (dep) {
1251
1447
  usedDataSources?.set(dep.id, dep);
1252
1448
  return scope.getName(dep.id, dep.name);
@@ -1438,12 +1634,11 @@ var generateResources = ({
1438
1634
  `;
1439
1635
  }
1440
1636
  if (dataSource.type === "parameter") {
1441
- if (dataSource.id !== page.systemDataSourceId) {
1442
- continue;
1443
- }
1444
- const name = scope.getName(dataSource.id, dataSource.name);
1445
- generatedVariables += ` const ${name} = _props.system
1637
+ if (dataSource.id === page.systemDataSourceId || dataSource.id === SYSTEM_VARIABLE_ID) {
1638
+ const name = scope.getName(dataSource.id, dataSource.name);
1639
+ generatedVariables += ` const ${name} = _props.system
1446
1640
  `;
1641
+ }
1447
1642
  }
1448
1643
  }
1449
1644
  let generated = "";
@@ -1640,7 +1835,7 @@ var generatePageMeta = ({
1640
1835
  continue;
1641
1836
  }
1642
1837
  if (dataSource.type === "parameter") {
1643
- if (dataSource.id === page.systemDataSourceId) {
1838
+ if (dataSource.id === page.systemDataSourceId || dataSource.id === SYSTEM_VARIABLE_ID) {
1644
1839
  const valueName = localScope.getName(dataSource.id, dataSource.name);
1645
1840
  generated += ` let ${valueName} = system
1646
1841
  `;
@@ -1684,6 +1879,182 @@ var generatePageMeta = ({
1684
1879
  `;
1685
1880
  return generated;
1686
1881
  };
1882
+
1883
+ // src/css.ts
1884
+ import { kebabCase } from "change-case";
1885
+ import {
1886
+ createRegularStyleSheet,
1887
+ generateAtomic
1888
+ } from "@webstudio-is/css-engine";
1889
+ import { getFontFaces } from "@webstudio-is/fonts";
1890
+ var addFontRules = ({
1891
+ sheet,
1892
+ assets,
1893
+ assetBaseUrl
1894
+ }) => {
1895
+ const fontAssets = [];
1896
+ for (const asset of assets.values()) {
1897
+ if (asset.type === "font") {
1898
+ fontAssets.push(asset);
1899
+ }
1900
+ }
1901
+ const fontFaces = getFontFaces(fontAssets, { assetBaseUrl });
1902
+ for (const fontFace of fontFaces) {
1903
+ sheet.addFontFaceRule(fontFace);
1904
+ }
1905
+ };
1906
+ var createImageValueTransformer = (assets, { assetBaseUrl }) => (styleValue) => {
1907
+ if (styleValue.type === "image" && styleValue.value.type === "asset") {
1908
+ const asset = assets.get(styleValue.value.value);
1909
+ if (asset === void 0) {
1910
+ return { type: "keyword", value: "none" };
1911
+ }
1912
+ const url = `${assetBaseUrl}${asset.name}`;
1913
+ return {
1914
+ type: "image",
1915
+ value: {
1916
+ type: "url",
1917
+ url
1918
+ },
1919
+ hidden: styleValue.hidden
1920
+ };
1921
+ }
1922
+ };
1923
+ var normalizeClassName = (name) => kebabCase(name);
1924
+ var generateCss = ({
1925
+ assets,
1926
+ instances,
1927
+ props,
1928
+ breakpoints,
1929
+ styles,
1930
+ styleSourceSelections,
1931
+ componentMetas,
1932
+ assetBaseUrl,
1933
+ atomic
1934
+ }) => {
1935
+ const fontSheet = createRegularStyleSheet({ name: "ssr" });
1936
+ const presetSheet = createRegularStyleSheet({ name: "ssr" });
1937
+ const userSheet = createRegularStyleSheet({ name: "ssr" });
1938
+ addFontRules({ sheet: fontSheet, assets, assetBaseUrl });
1939
+ presetSheet.addMediaRule("presets");
1940
+ const presetClasses = /* @__PURE__ */ new Map();
1941
+ const scope = createScope([], normalizeClassName, "-");
1942
+ for (const [component, meta] of componentMetas) {
1943
+ const [_namespace, componentName] = parseComponentName(component);
1944
+ const className = `w-${scope.getName(component, meta.label ?? componentName)}`;
1945
+ const presetStyle = Object.entries(meta.presetStyle ?? {});
1946
+ if (presetStyle.length > 0) {
1947
+ presetClasses.set(component, className);
1948
+ }
1949
+ for (const [tag, styles2] of presetStyle) {
1950
+ const selector = component === rootComponent ? ":root" : `${tag}.${className}`;
1951
+ const rule = presetSheet.addNestingRule(selector);
1952
+ for (const declaration of styles2) {
1953
+ rule.setDeclaration({
1954
+ breakpoint: "presets",
1955
+ selector: declaration.state ?? "",
1956
+ property: declaration.property,
1957
+ value: declaration.value
1958
+ });
1959
+ }
1960
+ }
1961
+ }
1962
+ for (const breakpoint of breakpoints.values()) {
1963
+ userSheet.addMediaRule(breakpoint.id, breakpoint);
1964
+ }
1965
+ const imageValueTransformer = createImageValueTransformer(assets, {
1966
+ assetBaseUrl
1967
+ });
1968
+ userSheet.setTransformer(imageValueTransformer);
1969
+ for (const styleDecl of styles.values()) {
1970
+ const rule = userSheet.addMixinRule(styleDecl.styleSourceId);
1971
+ rule.setDeclaration({
1972
+ breakpoint: styleDecl.breakpointId,
1973
+ selector: styleDecl.state ?? "",
1974
+ property: styleDecl.property,
1975
+ value: styleDecl.value
1976
+ });
1977
+ }
1978
+ const classes = /* @__PURE__ */ new Map();
1979
+ const parentIdByInstanceId = /* @__PURE__ */ new Map();
1980
+ for (const instance of instances.values()) {
1981
+ const presetClass = presetClasses.get(instance.component);
1982
+ if (presetClass) {
1983
+ classes.set(instance.id, [presetClass]);
1984
+ }
1985
+ for (const child of instance.children) {
1986
+ if (child.type === "id") {
1987
+ parentIdByInstanceId.set(child.value, instance.id);
1988
+ }
1989
+ }
1990
+ }
1991
+ const descendantSelectorByInstanceId = /* @__PURE__ */ new Map();
1992
+ for (const prop of props.values()) {
1993
+ if (prop.name === "selector" && prop.type === "string") {
1994
+ descendantSelectorByInstanceId.set(prop.instanceId, prop.value);
1995
+ }
1996
+ }
1997
+ const instanceByRule = /* @__PURE__ */ new Map();
1998
+ for (const selection of styleSourceSelections.values()) {
1999
+ let { instanceId } = selection;
2000
+ const { values } = selection;
2001
+ if (instanceId === ROOT_INSTANCE_ID) {
2002
+ const rule2 = userSheet.addNestingRule(`:root`);
2003
+ rule2.applyMixins(values);
2004
+ continue;
2005
+ }
2006
+ let descendantSuffix = "";
2007
+ const instance = instances.get(instanceId);
2008
+ if (instance === void 0) {
2009
+ continue;
2010
+ }
2011
+ if (instance.component === descendantComponent) {
2012
+ const parentId = parentIdByInstanceId.get(instanceId);
2013
+ const descendantSelector = descendantSelectorByInstanceId.get(instanceId);
2014
+ if (parentId && descendantSelector) {
2015
+ descendantSuffix = descendantSelector;
2016
+ instanceId = parentId;
2017
+ }
2018
+ }
2019
+ const meta = componentMetas.get(instance.component);
2020
+ const [_namespace, shortName] = parseComponentName(instance.component);
2021
+ const baseName = instance.label ?? meta?.label ?? shortName;
2022
+ const className = `w-${scope.getName(instanceId, baseName)}`;
2023
+ if (atomic === false) {
2024
+ let classList = classes.get(instanceId);
2025
+ if (classList === void 0) {
2026
+ classList = [];
2027
+ classes.set(instanceId, classList);
2028
+ }
2029
+ classList.push(className);
2030
+ }
2031
+ const rule = userSheet.addNestingRule(`.${className}`, descendantSuffix);
2032
+ rule.applyMixins(values);
2033
+ instanceByRule.set(rule, instanceId);
2034
+ }
2035
+ const fontCss = fontSheet.cssText;
2036
+ const presetCss = presetSheet.cssText.replaceAll(
2037
+ "@media all ",
2038
+ "@layer presets "
2039
+ );
2040
+ if (atomic) {
2041
+ const { cssText } = generateAtomic(userSheet, {
2042
+ getKey: (rule) => instanceByRule.get(rule),
2043
+ transformValue: imageValueTransformer,
2044
+ classes
2045
+ });
2046
+ return {
2047
+ cssText: `${fontCss}${presetCss}
2048
+ ${cssText}`,
2049
+ classes
2050
+ };
2051
+ }
2052
+ return {
2053
+ cssText: `${fontCss}${presetCss}
2054
+ ${userSheet.cssText}`,
2055
+ classes
2056
+ };
2057
+ };
1687
2058
  export {
1688
2059
  Asset,
1689
2060
  Assets,
@@ -1723,11 +2094,13 @@ export {
1723
2094
  Prop,
1724
2095
  PropMeta,
1725
2096
  Props,
2097
+ RANGE_UNITS,
1726
2098
  ROOT_FOLDER_ID,
1727
2099
  ROOT_INSTANCE_ID,
1728
2100
  Resource,
1729
2101
  ResourceRequest,
1730
2102
  Resources,
2103
+ SYSTEM_VARIABLE_ID,
1731
2104
  StyleDecl,
1732
2105
  StyleSource,
1733
2106
  StyleSourceSelection,
@@ -1739,6 +2112,9 @@ export {
1739
2112
  WebstudioFragment,
1740
2113
  WsComponentMeta,
1741
2114
  WsEmbedTemplate,
2115
+ addFontRules,
2116
+ animationActionSchema,
2117
+ animationKeyframeSchema,
1742
2118
  blockComponent,
1743
2119
  blockTemplateComponent,
1744
2120
  blockTemplateMeta,
@@ -1746,19 +2122,21 @@ export {
1746
2122
  componentCategories,
1747
2123
  coreMetas,
1748
2124
  corePropsMetas,
2125
+ createImageValueTransformer,
1749
2126
  createScope,
1750
- decodeDataSourceVariable,
1751
- decodeDataSourceVariable as decodeDataVariableId,
2127
+ decodeDataVariableId as decodeDataSourceVariable,
2128
+ decodeDataVariableId,
1752
2129
  defaultStates,
1753
2130
  descendantComponent,
1754
2131
  documentTypes,
1755
- encodeDataSourceVariable,
1756
- encodeDataSourceVariable as encodeDataVariableId,
2132
+ encodeDataVariableId as encodeDataSourceVariable,
2133
+ encodeDataVariableId,
1757
2134
  executeExpression,
1758
2135
  findPageByIdOrPath,
1759
2136
  findParentFolderByChildId,
1760
2137
  findTreeInstanceIds,
1761
2138
  findTreeInstanceIdsExcludingSlotDescendants,
2139
+ generateCss,
1762
2140
  generateExpression,
1763
2141
  generateObjectExpression,
1764
2142
  generatePageMeta,
@@ -1768,6 +2146,7 @@ export {
1768
2146
  getStaticSiteMapXml,
1769
2147
  getStyleDeclKey,
1770
2148
  initialBreakpoints,
2149
+ insetUnitValueSchema,
1771
2150
  isCoreComponent,
1772
2151
  isLiteralExpression,
1773
2152
  isPathnamePattern,
@@ -1777,8 +2156,12 @@ export {
1777
2156
  parseComponentName,
1778
2157
  parseObjectExpression,
1779
2158
  portalComponent,
2159
+ rangeUnitValueSchema,
1780
2160
  replaceFormActionsWithResources,
1781
2161
  rootComponent,
2162
+ scrollAnimationSchema,
1782
2163
  stateCategories,
1783
- transpileExpression
2164
+ systemParameter,
2165
+ transpileExpression,
2166
+ viewAnimationSchema
1784
2167
  };