webstudio 0.210.0 → 0.212.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/cli.js CHANGED
@@ -1657,6 +1657,7 @@ var FormTextFieldIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" vie
1657
1657
  var FormIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M13.184 5.5h.731a.75.75 0 0 0 .75-.75v-1.5a.75.75 0 0 0-.75-.75H2.085a.75.75 0 0 0-.75.75v1.5c0 .414.336.75.75.75h11.099ZM13.184 10.5h.732a.75.75 0 0 0 .75-.75v-1.5a.75.75 0 0 0-.75-.75H2.084a.75.75 0 0 0-.75.75v1.5c0 .414.336.75.75.75h11.099Z"/><path fill="currentColor" d="M6.613 14.5h.222a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5h-5.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5H6.613Z"/></svg>`;
1658
1658
  var HeaderIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12.667 2H3.333C2.597 2 2 2.597 2 3.333v9.334C2 13.403 2.597 14 3.333 14h9.334c.736 0 1.333-.597 1.333-1.333V3.333C14 2.597 13.403 2 12.667 2ZM4 4h8"/></svg>`;
1659
1659
  var HeadingIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M4 8h8M4 13.333V2.667M12 13.333V2.667"/></svg>`;
1660
+ var HtmlElementIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M13.556 2H3.444C2.647 2 2 2.647 2 3.444v10.112C2 14.353 2.647 15 3.444 15h10.112c.797 0 1.444-.647 1.444-1.444V3.444C15 2.647 14.353 2 13.556 2Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M10.5 10 12 8.5 10.5 7M6 7 4.5 8.5 6 10m3.188-4.5-1.876 6"/></svg>`;
1660
1661
  var ImageIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12.667 2H3.333C2.597 2 2 2.597 2 3.333v9.334C2 13.403 2.597 14 3.333 14h9.334c.736 0 1.333-.597 1.333-1.333V3.333C14 2.597 13.403 2 12.667 2Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M6 7.333a1.333 1.333 0 1 0 0-2.666 1.333 1.333 0 0 0 0 2.666ZM14 10l-2.057-2.057a1.333 1.333 0 0 0-1.886 0L4 14"/></svg>`;
1661
1662
  var ItemIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M2 6h.007M5.333 10H14M5.333 6H14"/></svg>`;
1662
1663
  var LabelIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12.667 2H3.333C2.597 2 2 2.597 2 3.333v9.334C2 13.403 2.597 14 3.333 14h9.334c.736 0 1.333-.597 1.333-1.333V3.333C14 2.597 13.403 2 12.667 2Z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M6.476 11.074V4.926m0 6.148h3.77v-.615m-3.77.615h-.722m.722-6.148h.632m-.632 0h-.722"/></svg>`;
@@ -1687,12 +1688,14 @@ var TextItalicIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBo
1687
1688
  var TextIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M2.667 4.667v-2h10.666v2M6 13.333h4M8 2.667v10.666"/></svg>`;
1688
1689
  var TooltipIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="#000" stroke-linecap="round" stroke-linejoin="round" d="M14 10a1.333 1.333 0 0 1-1.333 1.333h-8L2 14V3.333A1.333 1.333 0 0 1 3.333 2h9.334A1.333 1.333 0 0 1 14 3.333V10Z"/></svg>`;
1689
1690
  var TriggerIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M11.915 7.354v-.647a1.294 1.294 0 1 0-2.587 0"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M9.328 6.707V6.06a1.294 1.294 0 1 0-2.587 0v.647"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M6.74 6.383V2.826a1.293 1.293 0 1 0-2.586 0v6.467"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M11.914 7.353a1.293 1.293 0 0 1 2.587 0v1.94a5.174 5.174 0 0 1-5.174 5.174H8.034c-1.81 0-2.91-.556-3.874-1.513l-2.328-2.328a1.293 1.293 0 0 1 1.83-1.824L4.8 9.94"/></svg>`;
1691
+ var VideoIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path fill="currentColor" fill-rule="evenodd" d="M1.833 5.333c0-.46.373-.833.834-.833h6.666c.46 0 .834.373.834.833v5.334c0 .46-.374.833-.834.833H2.667a.833.833 0 0 1-.834-.833V5.333ZM2.667 3.5C1.654 3.5.833 4.32.833 5.333v5.334c0 1.012.821 1.833 1.834 1.833h6.666c1.013 0 1.834-.82 1.834-1.833V9.6l2.704 1.803a.833.833 0 0 0 1.296-.693V5.247a.833.833 0 0 0-1.254-.72l-2.746 1.602v-.796c0-1.012-.821-1.833-1.834-1.833H2.667Zm8.5 3.787V8.4l3 2V5.537l-3 1.75Z" clip-rule="evenodd"/></svg>`;
1690
1692
  var ViewportIcon = `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" fill="currentColor" width="100%" height="100%" style="display: block;"><path fill-rule="evenodd" d="M5.173 1.35h.157a.65.65 0 0 1 0 1.3H5.2c-.57 0-.96 0-1.26.025-.294.024-.446.068-.553.122a1.35 1.35 0 0 0-.59.59c-.054.107-.098.259-.122.552-.025.301-.025.69-.025 1.261v.13a.65.65 0 0 1-1.3 0v-.157c0-.537 0-.98.03-1.34.03-.373.095-.715.259-1.036a2.65 2.65 0 0 1 1.158-1.158c.32-.164.663-.229 1.036-.26.36-.029.803-.029 1.34-.029Zm6.888 1.325c-.301-.024-.69-.025-1.261-.025h-.13a.65.65 0 1 1 0-1.3h.157c.537 0 .98 0 1.34.03.373.03.715.095 1.036.259.499.254.904.66 1.158 1.158.164.32.229.663.26 1.036.029.36.029.803.029 1.34v.157a.65.65 0 1 1-1.3 0V5.2c0-.57 0-.96-.025-1.26-.024-.294-.068-.446-.122-.553a1.35 1.35 0 0 0-.59-.59c-.107-.054-.26-.098-.552-.122ZM2 10.02a.65.65 0 0 1 .65.65v.13c0 .57 0 .96.025 1.26.024.294.068.446.122.553.13.254.336.46.59.59.107.054.259.098.552.122.301.025.69.025 1.261.025h.13a.65.65 0 1 1 0 1.3h-.157c-.537 0-.98 0-1.34-.03-.373-.03-.715-.095-1.036-.259a2.65 2.65 0 0 1-1.158-1.158c-.164-.32-.23-.663-.26-1.037-.029-.36-.029-.802-.029-1.34v-.156a.65.65 0 0 1 .65-.65Zm12 0a.65.65 0 0 1 .65.65v.157c0 .537 0 .98-.03 1.34-.03.373-.095.715-.259 1.036a2.65 2.65 0 0 1-1.158 1.158c-.32.164-.663.23-1.037.26-.36.029-.802.029-1.34.029h-.156a.65.65 0 1 1 0-1.3h.13c.57 0 .96 0 1.26-.025.294-.024.446-.068.553-.122.254-.13.46-.336.59-.59.054-.107.098-.259.122-.552.025-.301.025-.69.025-1.261v-.13a.65.65 0 0 1 .65-.65ZM8 10.033a2.033 2.033 0 1 0 0-4.066 2.033 2.033 0 0 0 0 4.066Zm0 1.3a3.333 3.333 0 1 0 0-6.666 3.333 3.333 0 0 0 0 6.666Z" clip-rule="evenodd"/></svg>`;
1691
1693
  var VimeoIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M14.993 4.801c-.062 1.363-1.014 3.228-2.855 5.597-1.903 2.473-3.514 3.71-4.83 3.71-.817 0-1.508-.753-2.072-2.26l-1.13-4.143c-.419-1.506-.868-2.259-1.349-2.26a4.332 4.332 0 0 0-1.099.66L1 5.257c.69-.607 1.372-1.214 2.043-1.822.921-.796 1.613-1.215 2.074-1.257 1.09-.105 1.76.64 2.012 2.234.272 1.72.461 2.79.566 3.208.315 1.427.66 2.14 1.038 2.14.292 0 .733-.463 1.32-1.39.586-.925.9-1.63.942-2.113.084-.798-.23-1.198-.942-1.199-.357.005-.71.084-1.036.23.688-2.253 2.002-3.349 3.942-3.285 1.439.042 2.117.975 2.034 2.798Z"/></svg>`;
1692
1694
  var WebhookFormIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12 11.32H8.007c-.734 0-1.3.627-1.654 1.267a2.666 2.666 0 0 1-5.02-1.254A2.62 2.62 0 0 1 1.713 10"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M4 11.333 6.087 7.48c.353-.647.066-1.453-.334-2.067a2.667 2.667 0 1 1 4.594-2.706"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="m8 4 2.087 3.82c.353.647 1.18.847 1.913.847A2.667 2.667 0 0 1 12 14"/></svg>`;
1693
1695
  var WindowInfoIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12.667 2H3.333C2.597 2 2 2.597 2 3.333v9.334C2 13.403 2.597 14 3.333 14h9.334c.736 0 1.333-.597 1.333-1.333V3.333C14 2.597 13.403 2 12.667 2ZM8 11.516V7.853"/><rect width="1.4" height="1.4" x="7.3" y="4.484" fill="currentColor" rx=".7"/></svg>`;
1694
1696
  var WindowTitleIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12.667 4H3.333C2.597 4 2 4.497 2 5.111v7.778C2 13.503 2.597 14 3.333 14h9.334c.736 0 1.333-.498 1.333-1.111V5.11C14 4.497 13.403 4 12.667 4ZM4 2h8"/></svg>`;
1695
1697
  var XmlIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M12.163 9.02v-4L8.83 1.686h-5.5A1.333 1.333 0 0 0 1.997 3.02v6"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M8.164 2.186v1.667a1.333 1.333 0 0 0 1.333 1.333h2.667M1.997 11.314l3 3M4.997 11.314l-3 3M6.997 14.314v-3l1.5 1.523 1.5-1.523v3M12.163 11.314v3h1.84"/></svg>`;
1698
+ var Youtube1cIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path fill-rule="evenodd" d="M13.47 3.299a1.771 1.771 0 0 1 1.238 1.263C15 5.675 15 8 15 8s0 2.325-.293 3.438a1.771 1.771 0 0 1-1.238 1.263C12.38 13 8 13 8 13s-4.378 0-5.47-.299a1.771 1.771 0 0 1-1.237-1.263C1 10.325 1 8 1 8s0-2.325.293-3.438A1.771 1.771 0 0 1 2.53 3.299C3.622 3 8 3 8 3s4.378 0 5.47.299Zm-3.232 4.7L6.6 10.144V5.857L10.238 8Z" clip-rule="evenodd"/></svg>`;
1696
1699
  var YoutubeIcon = `<svg xmlns="http://www.w3.org/2000/svg" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" viewBox="0 0 16 16" width="100%" height="100%" style="display: block;"><path d="M.892 11.528a18.047 18.047 0 0 1 0-7.482A1.496 1.496 0 0 1 1.94 3a37.082 37.082 0 0 1 12.12 0 1.497 1.497 0 0 1 1.048 1.047 18.046 18.046 0 0 1 0 7.482 1.497 1.497 0 0 1-1.048 1.048 37.077 37.077 0 0 1-12.12 0 1.497 1.497 0 0 1-1.048-1.048Z"/><path d="m6.5 10.3 4-2.4-4-2.4v4.8Z"/></svg>`;
1697
1700
  var AssetId = z.string();
1698
1701
  var baseAsset = {
@@ -1778,10 +1781,7 @@ var HomePage = z.object({
1778
1781
  ...commonPageFields,
1779
1782
  path: HomePagePath
1780
1783
  });
1781
- var PagePath = z.string().refine((path) => path !== "", "Can't be empty").refine((path) => path !== "/", "Can't be just a /").refine(
1782
- (path) => path === "" || path.startsWith("/"),
1783
- "Must start with a / or a full URL e.g. https://website.org"
1784
- ).refine((path) => path.endsWith("/") === false, "Can't end with a /").refine((path) => path.includes("//") === false, "Can't contain repeating /").refine(
1784
+ var DefaultPagePage = z.string().refine((path) => path !== "", "Can't be empty").refine((path) => path !== "/", "Can't be just a /").refine((path) => path.endsWith("/") === false, "Can't end with a /").refine((path) => path.includes("//") === false, "Can't contain repeating /").refine(
1785
1785
  (path) => /^[-_a-z0-9*:?\\/.]*$/.test(path),
1786
1786
  "Only a-z, 0-9, -, _, /, :, ?, . and * are allowed"
1787
1787
  ).refine(
@@ -1794,6 +1794,14 @@ var PagePath = z.string().refine((path) => path !== "", "Can't be empty").refine
1794
1794
  (path) => path !== "/build" && path.startsWith("/build/") === false,
1795
1795
  "/build prefix is reserved for the system"
1796
1796
  );
1797
+ var PagePath = DefaultPagePage.refine(
1798
+ (path) => path === "" || path.startsWith("/"),
1799
+ "Must start with a / or a full URL e.g. https://website.org"
1800
+ );
1801
+ DefaultPagePage.refine(
1802
+ (path) => path === "" || path.startsWith("/"),
1803
+ "Must start with a / and it must be full path e.g. /project/id"
1804
+ );
1797
1805
  var Page = z.object({
1798
1806
  ...commonPageFields,
1799
1807
  path: PagePath
@@ -1854,6 +1862,7 @@ var Instance = z.object({
1854
1862
  type: z.literal("instance"),
1855
1863
  id: InstanceId,
1856
1864
  component: z.string(),
1865
+ tag: z.string().optional(),
1857
1866
  label: z.string().optional(),
1858
1867
  children: z.array(InstanceChild)
1859
1868
  });
@@ -2024,6 +2033,23 @@ var rangeUnitValueSchema = z.union([
2024
2033
  z.object({
2025
2034
  type: z.literal("unparsed"),
2026
2035
  value: z.string()
2036
+ }),
2037
+ z.object({
2038
+ type: z.literal("var"),
2039
+ value: z.string()
2040
+ })
2041
+ ]);
2042
+ var TIME_UNITS = ["ms", "s"];
2043
+ var timeUnitSchema = literalUnion(TIME_UNITS);
2044
+ var durationUnitValueSchema = z.union([
2045
+ z.object({
2046
+ type: z.literal("unit"),
2047
+ value: z.number(),
2048
+ unit: timeUnitSchema
2049
+ }),
2050
+ z.object({
2051
+ type: z.literal("var"),
2052
+ value: z.string()
2027
2053
  })
2028
2054
  ]);
2029
2055
  var insetUnitValueSchema = z.union([
@@ -2045,8 +2071,9 @@ var keyframeEffectOptionsSchema = z.object({
2045
2071
  z.literal("forwards"),
2046
2072
  z.literal("backwards"),
2047
2073
  z.literal("both")
2048
- ]).optional()
2074
+ ]).optional(),
2049
2075
  // FillMode
2076
+ duration: durationUnitValueSchema.optional()
2050
2077
  });
2051
2078
  var scrollNamedRangeSchema = z.union([
2052
2079
  z.literal("start"),
@@ -2295,6 +2322,13 @@ var common = {
2295
2322
  description: z.string().optional(),
2296
2323
  required: z.boolean()
2297
2324
  };
2325
+ var Tag = z.object({
2326
+ ...common,
2327
+ control: z.literal("tag"),
2328
+ type: z.literal("string"),
2329
+ defaultValue: z.undefined().optional(),
2330
+ options: z.array(z.string())
2331
+ });
2298
2332
  var Number = z.object({
2299
2333
  ...common,
2300
2334
  control: z.literal("number"),
@@ -2438,6 +2472,7 @@ var AnimationAction = z.object({
2438
2472
  defaultValue: z.undefined().optional()
2439
2473
  });
2440
2474
  var PropMeta = z.union([
2475
+ Tag,
2441
2476
  Number,
2442
2477
  Range,
2443
2478
  Text,
@@ -2633,6 +2668,12 @@ var rootMeta = {
2633
2668
  html
2634
2669
  }
2635
2670
  };
2671
+ var elementComponent = "ws:element";
2672
+ var elementMeta = {
2673
+ type: "container",
2674
+ label: "Element",
2675
+ icon: HtmlElementIcon
2676
+ };
2636
2677
  var collectionComponent = "ws:collection";
2637
2678
  var collectionMeta = {
2638
2679
  type: "container",
@@ -2678,12 +2719,13 @@ var blockMeta = {
2678
2719
  };
2679
2720
  var coreMetas = {
2680
2721
  [rootComponent]: rootMeta,
2722
+ [elementComponent]: elementMeta,
2681
2723
  [collectionComponent]: collectionMeta,
2682
2724
  [descendantComponent]: descendantMeta,
2683
2725
  [blockComponent]: blockMeta,
2684
2726
  [blockTemplateComponent]: blockTemplateMeta
2685
2727
  };
2686
- var isCoreComponent = (component) => component === rootComponent || component === collectionComponent || component === descendantComponent || component === blockComponent || component === blockTemplateComponent;
2728
+ var isCoreComponent = (component) => component === rootComponent || component === elementComponent || component === collectionComponent || component === descendantComponent || component === blockComponent || component === blockTemplateComponent;
2687
2729
  var ROOT_INSTANCE_ID = ":root";
2688
2730
  var traverseInstances = (instances, instanceId, callback) => {
2689
2731
  const instance = instances.get(instanceId);
@@ -3428,6 +3470,8 @@ ${userSheet.cssText}`,
3428
3470
  classes
3429
3471
  };
3430
3472
  };
3473
+ var tagProperty = "data-ws-tag";
3474
+ var indexProperty = "data-ws-index";
3431
3475
  var getRemixSegment = (segment) => {
3432
3476
  var _a2, _b2;
3433
3477
  if (segment === "*") {
@@ -3575,7 +3619,6 @@ var normalizeProps = ({
3575
3619
  return newProps;
3576
3620
  };
3577
3621
  var showAttribute = "data-ws-show";
3578
- var indexAttribute = "data-ws-index";
3579
3622
  var attributeNameStartChar = "A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD";
3580
3623
  var attributeNameChar = attributeNameStartChar + ":\\-0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040";
3581
3624
  var validAttributeNameRegex = new RegExp(
@@ -3598,6 +3641,502 @@ var isAttributeNameSafe = (attributeName) => {
3598
3641
  illegalAttributeNameCache.set(attributeName, true);
3599
3642
  return false;
3600
3643
  };
3644
+ var standardAttributesToReactProps = {
3645
+ // HTML
3646
+ accept: "accept",
3647
+ acceptcharset: "acceptCharset",
3648
+ "accept-charset": "acceptCharset",
3649
+ accesskey: "accessKey",
3650
+ action: "action",
3651
+ allowfullscreen: "allowFullScreen",
3652
+ alt: "alt",
3653
+ as: "as",
3654
+ async: "async",
3655
+ autocapitalize: "autoCapitalize",
3656
+ autocomplete: "autoComplete",
3657
+ autocorrect: "autoCorrect",
3658
+ autofocus: "autoFocus",
3659
+ autoplay: "autoPlay",
3660
+ autosave: "autoSave",
3661
+ capture: "capture",
3662
+ cellpadding: "cellPadding",
3663
+ cellspacing: "cellSpacing",
3664
+ challenge: "challenge",
3665
+ charset: "charSet",
3666
+ checked: "checked",
3667
+ children: "children",
3668
+ cite: "cite",
3669
+ class: "className",
3670
+ classid: "classID",
3671
+ classname: "className",
3672
+ cols: "cols",
3673
+ colspan: "colSpan",
3674
+ content: "content",
3675
+ contenteditable: "contentEditable",
3676
+ contextmenu: "contextMenu",
3677
+ controls: "controls",
3678
+ controlslist: "controlsList",
3679
+ coords: "coords",
3680
+ crossorigin: "crossOrigin",
3681
+ dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
3682
+ data: "data",
3683
+ datetime: "dateTime",
3684
+ default: "default",
3685
+ defaultchecked: "defaultChecked",
3686
+ defaultvalue: "defaultValue",
3687
+ defer: "defer",
3688
+ dir: "dir",
3689
+ disabled: "disabled",
3690
+ disablepictureinpicture: "disablePictureInPicture",
3691
+ disableremoteplayback: "disableRemotePlayback",
3692
+ download: "download",
3693
+ draggable: "draggable",
3694
+ enctype: "encType",
3695
+ enterkeyhint: "enterKeyHint",
3696
+ fetchpriority: "fetchPriority",
3697
+ for: "htmlFor",
3698
+ form: "form",
3699
+ formmethod: "formMethod",
3700
+ formaction: "formAction",
3701
+ formenctype: "formEncType",
3702
+ formnovalidate: "formNoValidate",
3703
+ formtarget: "formTarget",
3704
+ frameborder: "frameBorder",
3705
+ headers: "headers",
3706
+ height: "height",
3707
+ hidden: "hidden",
3708
+ high: "high",
3709
+ href: "href",
3710
+ hreflang: "hrefLang",
3711
+ htmlfor: "htmlFor",
3712
+ httpequiv: "httpEquiv",
3713
+ "http-equiv": "httpEquiv",
3714
+ icon: "icon",
3715
+ id: "id",
3716
+ imagesizes: "imageSizes",
3717
+ imagesrcset: "imageSrcSet",
3718
+ inert: "inert",
3719
+ innerhtml: "innerHTML",
3720
+ inputmode: "inputMode",
3721
+ integrity: "integrity",
3722
+ is: "is",
3723
+ itemid: "itemID",
3724
+ itemprop: "itemProp",
3725
+ itemref: "itemRef",
3726
+ itemscope: "itemScope",
3727
+ itemtype: "itemType",
3728
+ keyparams: "keyParams",
3729
+ keytype: "keyType",
3730
+ kind: "kind",
3731
+ label: "label",
3732
+ lang: "lang",
3733
+ list: "list",
3734
+ loop: "loop",
3735
+ low: "low",
3736
+ manifest: "manifest",
3737
+ marginwidth: "marginWidth",
3738
+ marginheight: "marginHeight",
3739
+ max: "max",
3740
+ maxlength: "maxLength",
3741
+ media: "media",
3742
+ mediagroup: "mediaGroup",
3743
+ method: "method",
3744
+ min: "min",
3745
+ minlength: "minLength",
3746
+ multiple: "multiple",
3747
+ muted: "muted",
3748
+ name: "name",
3749
+ nomodule: "noModule",
3750
+ nonce: "nonce",
3751
+ novalidate: "noValidate",
3752
+ open: "open",
3753
+ optimum: "optimum",
3754
+ pattern: "pattern",
3755
+ placeholder: "placeholder",
3756
+ playsinline: "playsInline",
3757
+ poster: "poster",
3758
+ preload: "preload",
3759
+ profile: "profile",
3760
+ radiogroup: "radioGroup",
3761
+ readonly: "readOnly",
3762
+ referrerpolicy: "referrerPolicy",
3763
+ rel: "rel",
3764
+ required: "required",
3765
+ reversed: "reversed",
3766
+ role: "role",
3767
+ rows: "rows",
3768
+ rowspan: "rowSpan",
3769
+ sandbox: "sandbox",
3770
+ scope: "scope",
3771
+ scoped: "scoped",
3772
+ scrolling: "scrolling",
3773
+ seamless: "seamless",
3774
+ selected: "selected",
3775
+ shape: "shape",
3776
+ size: "size",
3777
+ sizes: "sizes",
3778
+ span: "span",
3779
+ spellcheck: "spellCheck",
3780
+ src: "src",
3781
+ srcdoc: "srcDoc",
3782
+ srclang: "srcLang",
3783
+ srcset: "srcSet",
3784
+ start: "start",
3785
+ step: "step",
3786
+ style: "style",
3787
+ summary: "summary",
3788
+ tabindex: "tabIndex",
3789
+ target: "target",
3790
+ title: "title",
3791
+ type: "type",
3792
+ usemap: "useMap",
3793
+ value: "value",
3794
+ width: "width",
3795
+ wmode: "wmode",
3796
+ wrap: "wrap",
3797
+ // SVG
3798
+ about: "about",
3799
+ accentheight: "accentHeight",
3800
+ "accent-height": "accentHeight",
3801
+ accumulate: "accumulate",
3802
+ additive: "additive",
3803
+ alignmentbaseline: "alignmentBaseline",
3804
+ "alignment-baseline": "alignmentBaseline",
3805
+ allowreorder: "allowReorder",
3806
+ alphabetic: "alphabetic",
3807
+ amplitude: "amplitude",
3808
+ arabicform: "arabicForm",
3809
+ "arabic-form": "arabicForm",
3810
+ ascent: "ascent",
3811
+ attributename: "attributeName",
3812
+ attributetype: "attributeType",
3813
+ autoreverse: "autoReverse",
3814
+ azimuth: "azimuth",
3815
+ basefrequency: "baseFrequency",
3816
+ baselineshift: "baselineShift",
3817
+ "baseline-shift": "baselineShift",
3818
+ baseprofile: "baseProfile",
3819
+ bbox: "bbox",
3820
+ begin: "begin",
3821
+ bias: "bias",
3822
+ by: "by",
3823
+ calcmode: "calcMode",
3824
+ capheight: "capHeight",
3825
+ "cap-height": "capHeight",
3826
+ clip: "clip",
3827
+ clippath: "clipPath",
3828
+ "clip-path": "clipPath",
3829
+ clippathunits: "clipPathUnits",
3830
+ cliprule: "clipRule",
3831
+ "clip-rule": "clipRule",
3832
+ color: "color",
3833
+ colorinterpolation: "colorInterpolation",
3834
+ "color-interpolation": "colorInterpolation",
3835
+ colorinterpolationfilters: "colorInterpolationFilters",
3836
+ "color-interpolation-filters": "colorInterpolationFilters",
3837
+ colorprofile: "colorProfile",
3838
+ "color-profile": "colorProfile",
3839
+ colorrendering: "colorRendering",
3840
+ "color-rendering": "colorRendering",
3841
+ contentscripttype: "contentScriptType",
3842
+ contentstyletype: "contentStyleType",
3843
+ cursor: "cursor",
3844
+ cx: "cx",
3845
+ cy: "cy",
3846
+ d: "d",
3847
+ datatype: "datatype",
3848
+ decelerate: "decelerate",
3849
+ descent: "descent",
3850
+ diffuseconstant: "diffuseConstant",
3851
+ direction: "direction",
3852
+ display: "display",
3853
+ divisor: "divisor",
3854
+ dominantbaseline: "dominantBaseline",
3855
+ "dominant-baseline": "dominantBaseline",
3856
+ dur: "dur",
3857
+ dx: "dx",
3858
+ dy: "dy",
3859
+ edgemode: "edgeMode",
3860
+ elevation: "elevation",
3861
+ enablebackground: "enableBackground",
3862
+ "enable-background": "enableBackground",
3863
+ end: "end",
3864
+ exponent: "exponent",
3865
+ externalresourcesrequired: "externalResourcesRequired",
3866
+ fill: "fill",
3867
+ fillopacity: "fillOpacity",
3868
+ "fill-opacity": "fillOpacity",
3869
+ fillrule: "fillRule",
3870
+ "fill-rule": "fillRule",
3871
+ filter: "filter",
3872
+ filterres: "filterRes",
3873
+ filterunits: "filterUnits",
3874
+ floodopacity: "floodOpacity",
3875
+ "flood-opacity": "floodOpacity",
3876
+ floodcolor: "floodColor",
3877
+ "flood-color": "floodColor",
3878
+ focusable: "focusable",
3879
+ fontfamily: "fontFamily",
3880
+ "font-family": "fontFamily",
3881
+ fontsize: "fontSize",
3882
+ "font-size": "fontSize",
3883
+ fontsizeadjust: "fontSizeAdjust",
3884
+ "font-size-adjust": "fontSizeAdjust",
3885
+ fontstretch: "fontStretch",
3886
+ "font-stretch": "fontStretch",
3887
+ fontstyle: "fontStyle",
3888
+ "font-style": "fontStyle",
3889
+ fontvariant: "fontVariant",
3890
+ "font-variant": "fontVariant",
3891
+ fontweight: "fontWeight",
3892
+ "font-weight": "fontWeight",
3893
+ format: "format",
3894
+ from: "from",
3895
+ fx: "fx",
3896
+ fy: "fy",
3897
+ g1: "g1",
3898
+ g2: "g2",
3899
+ glyphname: "glyphName",
3900
+ "glyph-name": "glyphName",
3901
+ glyphorientationhorizontal: "glyphOrientationHorizontal",
3902
+ "glyph-orientation-horizontal": "glyphOrientationHorizontal",
3903
+ glyphorientationvertical: "glyphOrientationVertical",
3904
+ "glyph-orientation-vertical": "glyphOrientationVertical",
3905
+ glyphref: "glyphRef",
3906
+ gradienttransform: "gradientTransform",
3907
+ gradientunits: "gradientUnits",
3908
+ hanging: "hanging",
3909
+ horizadvx: "horizAdvX",
3910
+ "horiz-adv-x": "horizAdvX",
3911
+ horizoriginx: "horizOriginX",
3912
+ "horiz-origin-x": "horizOriginX",
3913
+ ideographic: "ideographic",
3914
+ imagerendering: "imageRendering",
3915
+ "image-rendering": "imageRendering",
3916
+ in2: "in2",
3917
+ in: "in",
3918
+ inlist: "inlist",
3919
+ intercept: "intercept",
3920
+ k1: "k1",
3921
+ k2: "k2",
3922
+ k3: "k3",
3923
+ k4: "k4",
3924
+ k: "k",
3925
+ kernelmatrix: "kernelMatrix",
3926
+ kernelunitlength: "kernelUnitLength",
3927
+ kerning: "kerning",
3928
+ keypoints: "keyPoints",
3929
+ keysplines: "keySplines",
3930
+ keytimes: "keyTimes",
3931
+ lengthadjust: "lengthAdjust",
3932
+ letterspacing: "letterSpacing",
3933
+ "letter-spacing": "letterSpacing",
3934
+ lightingcolor: "lightingColor",
3935
+ "lighting-color": "lightingColor",
3936
+ limitingconeangle: "limitingConeAngle",
3937
+ local: "local",
3938
+ markerend: "markerEnd",
3939
+ "marker-end": "markerEnd",
3940
+ markerheight: "markerHeight",
3941
+ markermid: "markerMid",
3942
+ "marker-mid": "markerMid",
3943
+ markerstart: "markerStart",
3944
+ "marker-start": "markerStart",
3945
+ markerunits: "markerUnits",
3946
+ markerwidth: "markerWidth",
3947
+ mask: "mask",
3948
+ maskcontentunits: "maskContentUnits",
3949
+ maskunits: "maskUnits",
3950
+ mathematical: "mathematical",
3951
+ mode: "mode",
3952
+ numoctaves: "numOctaves",
3953
+ offset: "offset",
3954
+ opacity: "opacity",
3955
+ operator: "operator",
3956
+ order: "order",
3957
+ orient: "orient",
3958
+ orientation: "orientation",
3959
+ origin: "origin",
3960
+ overflow: "overflow",
3961
+ overlineposition: "overlinePosition",
3962
+ "overline-position": "overlinePosition",
3963
+ overlinethickness: "overlineThickness",
3964
+ "overline-thickness": "overlineThickness",
3965
+ paintorder: "paintOrder",
3966
+ "paint-order": "paintOrder",
3967
+ panose1: "panose1",
3968
+ "panose-1": "panose1",
3969
+ pathlength: "pathLength",
3970
+ patterncontentunits: "patternContentUnits",
3971
+ patterntransform: "patternTransform",
3972
+ patternunits: "patternUnits",
3973
+ pointerevents: "pointerEvents",
3974
+ "pointer-events": "pointerEvents",
3975
+ points: "points",
3976
+ pointsatx: "pointsAtX",
3977
+ pointsaty: "pointsAtY",
3978
+ pointsatz: "pointsAtZ",
3979
+ popover: "popover",
3980
+ popovertarget: "popoverTarget",
3981
+ popovertargetaction: "popoverTargetAction",
3982
+ prefix: "prefix",
3983
+ preservealpha: "preserveAlpha",
3984
+ preserveaspectratio: "preserveAspectRatio",
3985
+ primitiveunits: "primitiveUnits",
3986
+ property: "property",
3987
+ r: "r",
3988
+ radius: "radius",
3989
+ refx: "refX",
3990
+ refy: "refY",
3991
+ renderingintent: "renderingIntent",
3992
+ "rendering-intent": "renderingIntent",
3993
+ repeatcount: "repeatCount",
3994
+ repeatdur: "repeatDur",
3995
+ requiredextensions: "requiredExtensions",
3996
+ requiredfeatures: "requiredFeatures",
3997
+ resource: "resource",
3998
+ restart: "restart",
3999
+ result: "result",
4000
+ results: "results",
4001
+ rotate: "rotate",
4002
+ rx: "rx",
4003
+ ry: "ry",
4004
+ scale: "scale",
4005
+ security: "security",
4006
+ seed: "seed",
4007
+ shaperendering: "shapeRendering",
4008
+ "shape-rendering": "shapeRendering",
4009
+ slope: "slope",
4010
+ spacing: "spacing",
4011
+ specularconstant: "specularConstant",
4012
+ specularexponent: "specularExponent",
4013
+ speed: "speed",
4014
+ spreadmethod: "spreadMethod",
4015
+ startoffset: "startOffset",
4016
+ stddeviation: "stdDeviation",
4017
+ stemh: "stemh",
4018
+ stemv: "stemv",
4019
+ stitchtiles: "stitchTiles",
4020
+ stopcolor: "stopColor",
4021
+ "stop-color": "stopColor",
4022
+ stopopacity: "stopOpacity",
4023
+ "stop-opacity": "stopOpacity",
4024
+ strikethroughposition: "strikethroughPosition",
4025
+ "strikethrough-position": "strikethroughPosition",
4026
+ strikethroughthickness: "strikethroughThickness",
4027
+ "strikethrough-thickness": "strikethroughThickness",
4028
+ string: "string",
4029
+ stroke: "stroke",
4030
+ strokedasharray: "strokeDasharray",
4031
+ "stroke-dasharray": "strokeDasharray",
4032
+ strokedashoffset: "strokeDashoffset",
4033
+ "stroke-dashoffset": "strokeDashoffset",
4034
+ strokelinecap: "strokeLinecap",
4035
+ "stroke-linecap": "strokeLinecap",
4036
+ strokelinejoin: "strokeLinejoin",
4037
+ "stroke-linejoin": "strokeLinejoin",
4038
+ strokemiterlimit: "strokeMiterlimit",
4039
+ "stroke-miterlimit": "strokeMiterlimit",
4040
+ strokewidth: "strokeWidth",
4041
+ "stroke-width": "strokeWidth",
4042
+ strokeopacity: "strokeOpacity",
4043
+ "stroke-opacity": "strokeOpacity",
4044
+ suppresscontenteditablewarning: "suppressContentEditableWarning",
4045
+ suppresshydrationwarning: "suppressHydrationWarning",
4046
+ surfacescale: "surfaceScale",
4047
+ systemlanguage: "systemLanguage",
4048
+ tablevalues: "tableValues",
4049
+ targetx: "targetX",
4050
+ targety: "targetY",
4051
+ textanchor: "textAnchor",
4052
+ "text-anchor": "textAnchor",
4053
+ textdecoration: "textDecoration",
4054
+ "text-decoration": "textDecoration",
4055
+ textlength: "textLength",
4056
+ textrendering: "textRendering",
4057
+ "text-rendering": "textRendering",
4058
+ to: "to",
4059
+ transform: "transform",
4060
+ transformorigin: "transformOrigin",
4061
+ "transform-origin": "transformOrigin",
4062
+ typeof: "typeof",
4063
+ u1: "u1",
4064
+ u2: "u2",
4065
+ underlineposition: "underlinePosition",
4066
+ "underline-position": "underlinePosition",
4067
+ underlinethickness: "underlineThickness",
4068
+ "underline-thickness": "underlineThickness",
4069
+ unicode: "unicode",
4070
+ unicodebidi: "unicodeBidi",
4071
+ "unicode-bidi": "unicodeBidi",
4072
+ unicoderange: "unicodeRange",
4073
+ "unicode-range": "unicodeRange",
4074
+ unitsperem: "unitsPerEm",
4075
+ "units-per-em": "unitsPerEm",
4076
+ unselectable: "unselectable",
4077
+ valphabetic: "vAlphabetic",
4078
+ "v-alphabetic": "vAlphabetic",
4079
+ values: "values",
4080
+ vectoreffect: "vectorEffect",
4081
+ "vector-effect": "vectorEffect",
4082
+ version: "version",
4083
+ vertadvy: "vertAdvY",
4084
+ "vert-adv-y": "vertAdvY",
4085
+ vertoriginx: "vertOriginX",
4086
+ "vert-origin-x": "vertOriginX",
4087
+ vertoriginy: "vertOriginY",
4088
+ "vert-origin-y": "vertOriginY",
4089
+ vhanging: "vHanging",
4090
+ "v-hanging": "vHanging",
4091
+ videographic: "vIdeographic",
4092
+ "v-ideographic": "vIdeographic",
4093
+ viewbox: "viewBox",
4094
+ viewtarget: "viewTarget",
4095
+ visibility: "visibility",
4096
+ vmathematical: "vMathematical",
4097
+ "v-mathematical": "vMathematical",
4098
+ vocab: "vocab",
4099
+ widths: "widths",
4100
+ wordspacing: "wordSpacing",
4101
+ "word-spacing": "wordSpacing",
4102
+ writingmode: "writingMode",
4103
+ "writing-mode": "writingMode",
4104
+ x1: "x1",
4105
+ x2: "x2",
4106
+ x: "x",
4107
+ xchannelselector: "xChannelSelector",
4108
+ xheight: "xHeight",
4109
+ "x-height": "xHeight",
4110
+ xlinkactuate: "xlinkActuate",
4111
+ "xlink:actuate": "xlinkActuate",
4112
+ xlinkarcrole: "xlinkArcrole",
4113
+ "xlink:arcrole": "xlinkArcrole",
4114
+ xlinkhref: "xlinkHref",
4115
+ "xlink:href": "xlinkHref",
4116
+ xlinkrole: "xlinkRole",
4117
+ "xlink:role": "xlinkRole",
4118
+ xlinkshow: "xlinkShow",
4119
+ "xlink:show": "xlinkShow",
4120
+ xlinktitle: "xlinkTitle",
4121
+ "xlink:title": "xlinkTitle",
4122
+ xlinktype: "xlinkType",
4123
+ "xlink:type": "xlinkType",
4124
+ xmlbase: "xmlBase",
4125
+ "xml:base": "xmlBase",
4126
+ xmllang: "xmlLang",
4127
+ "xml:lang": "xmlLang",
4128
+ xmlns: "xmlns",
4129
+ "xml:space": "xmlSpace",
4130
+ xmlnsxlink: "xmlnsXlink",
4131
+ "xmlns:xlink": "xmlnsXlink",
4132
+ xmlspace: "xmlSpace",
4133
+ y1: "y1",
4134
+ y2: "y2",
4135
+ y: "y",
4136
+ ychannelselector: "yChannelSelector",
4137
+ z: "z",
4138
+ zoomandpan: "zoomAndPan"
4139
+ };
3601
4140
  var generateAction = ({
3602
4141
  scope,
3603
4142
  prop,
@@ -3704,7 +4243,11 @@ var generateJsxElement = ({
3704
4243
  const index = indexesWithinAncestors.get(instance.id);
3705
4244
  if (index !== void 0) {
3706
4245
  generatedProps += `
3707
- ${indexAttribute}="${index}"`;
4246
+ ${indexProperty}="${index}"`;
4247
+ }
4248
+ if (instance.tag !== void 0 && instance.component !== elementComponent) {
4249
+ generatedProps += `
4250
+ ${tagProperty}=${JSON.stringify(instance.tag)}`;
3708
4251
  }
3709
4252
  let conditionValue;
3710
4253
  let collectionDataValue;
@@ -3723,6 +4266,10 @@ ${indexAttribute}="${index}"`;
3723
4266
  if (isAttributeNameSafe(prop.name) === false) {
3724
4267
  continue;
3725
4268
  }
4269
+ let name2 = prop.name;
4270
+ if (instance.component === elementComponent) {
4271
+ name2 = standardAttributesToReactProps[prop.name] ?? prop.name;
4272
+ }
3726
4273
  if (prop.name === showAttribute) {
3727
4274
  if (propValue === "true") {
3728
4275
  continue;
@@ -3742,13 +4289,13 @@ ${indexAttribute}="${index}"`;
3742
4289
  }
3743
4290
  continue;
3744
4291
  }
3745
- if (prop.name === "className" && propValue !== void 0) {
4292
+ if (name2 === "className" && propValue !== void 0) {
3746
4293
  classNameValue = propValue;
3747
4294
  continue;
3748
4295
  }
3749
4296
  if (propValue !== void 0) {
3750
4297
  generatedProps += `
3751
- ${prop.name}={${propValue}}`;
4298
+ ${name2}={${propValue}}`;
3752
4299
  }
3753
4300
  }
3754
4301
  const classMapArray = classesMap == null ? void 0 : classesMap.get(instance.id);
@@ -3782,6 +4329,18 @@ ${prop.name}={${propValue}}`;
3782
4329
  `;
3783
4330
  } else if (instance.component === blockComponent) {
3784
4331
  generatedElement += children;
4332
+ } else if (instance.component === elementComponent) {
4333
+ const tagName = instance.tag ?? "div";
4334
+ if (instance.children.length === 0) {
4335
+ generatedElement += `<${tagName}${generatedProps} />
4336
+ `;
4337
+ } else {
4338
+ generatedElement += `<${tagName}${generatedProps}>
4339
+ `;
4340
+ generatedElement += children;
4341
+ generatedElement += `</${tagName}>
4342
+ `;
4343
+ }
3785
4344
  } else {
3786
4345
  const [_namespace, shortName] = parseComponentName(instance.component);
3787
4346
  const componentVariable = scope.getName(instance.component, shortName);
@@ -4120,7 +4679,7 @@ const i$4 = {
4120
4679
  value: { type: "keyword", value: "collapse" }
4121
4680
  }
4122
4681
  ]
4123
- }, a$c = {
4682
+ }, a$d = {
4124
4683
  category: "general",
4125
4684
  type: "embed",
4126
4685
  label: "HTML Embed",
@@ -4206,7 +4765,7 @@ var h5 = div;
4206
4765
  var h6 = div;
4207
4766
  var i$3 = div;
4208
4767
  var img = div;
4209
- var a$b = div;
4768
+ var a$c = div;
4210
4769
  var li = div;
4211
4770
  var ul = div;
4212
4771
  var ol = div;
@@ -4521,7 +5080,7 @@ var button = [
4521
5080
  { property: "text-transform", value: { type: "keyword", value: "none" } }
4522
5081
  ];
4523
5082
  var select = button;
4524
- const a$a = {
5083
+ const a$b = {
4525
5084
  body: [
4526
5085
  ...body,
4527
5086
  {
@@ -4533,59 +5092,59 @@ const a$a = {
4533
5092
  value: { type: "keyword", value: "grayscale" }
4534
5093
  }
4535
5094
  ]
4536
- }, n$9 = {
5095
+ }, n$7 = {
4537
5096
  type: "container",
4538
5097
  icon: BodyIcon,
4539
5098
  states: defaultStates,
4540
- presetStyle: a$a
4541
- };
4542
- const g$3 = {
4543
- div,
4544
- address,
4545
- article,
4546
- aside,
4547
- figure,
4548
- footer,
4549
- header,
4550
- main: main$1,
4551
- nav,
4552
- section
4553
- }, v$2 = {
5099
+ presetStyle: a$b
5100
+ };
5101
+ const v$2 = {
4554
5102
  category: "general",
4555
5103
  type: "container",
4556
5104
  description: "A container for content. By default this is a Div, but the tag can be changed in settings.",
4557
5105
  icon: BoxIcon,
4558
5106
  states: defaultStates,
4559
- presetStyle: g$3,
5107
+ presetStyle: {
5108
+ div,
5109
+ address,
5110
+ article,
5111
+ aside,
5112
+ figure,
5113
+ footer,
5114
+ header,
5115
+ main: main$1,
5116
+ nav,
5117
+ section
5118
+ },
4560
5119
  order: 0
4561
5120
  };
4562
- const r$d = {
4563
- div: [
4564
- ...div,
4565
- {
4566
- property: "min-height",
4567
- value: { type: "unit", unit: "em", value: 1 }
4568
- }
4569
- ]
4570
- }, n$8 = {
5121
+ const s$4 = {
4571
5122
  type: "container",
4572
5123
  icon: TextIcon,
4573
5124
  states: defaultStates,
4574
- presetStyle: r$d
5125
+ presetStyle: {
5126
+ div: [
5127
+ ...div,
5128
+ {
5129
+ property: "min-height",
5130
+ value: { type: "unit", unit: "em", value: 1 }
5131
+ }
5132
+ ]
5133
+ }
4575
5134
  };
4576
- const n$7 = {
4577
- h1,
4578
- h2,
4579
- h3,
4580
- h4,
4581
- h5,
4582
- h6
4583
- }, f$1 = {
5135
+ const d$6 = {
4584
5136
  type: "container",
4585
5137
  placeholder: "Heading",
4586
5138
  icon: HeadingIcon,
4587
5139
  states: defaultStates,
4588
- presetStyle: n$7
5140
+ presetStyle: {
5141
+ h1,
5142
+ h2,
5143
+ h3,
5144
+ h4,
5145
+ h5,
5146
+ h6
5147
+ }
4589
5148
  };
4590
5149
  const p$9 = {
4591
5150
  p: p$a
@@ -4596,9 +5155,9 @@ const p$9 = {
4596
5155
  states: defaultStates,
4597
5156
  presetStyle: p$9
4598
5157
  };
4599
- const a$9 = {
5158
+ const a$a = {
4600
5159
  a: [
4601
- ...a$b,
5160
+ ...a$c,
4602
5161
  {
4603
5162
  property: "display",
4604
5163
  value: { type: "keyword", value: "inline-block" }
@@ -4608,7 +5167,7 @@ const a$9 = {
4608
5167
  type: "container",
4609
5168
  placeholder: "Link",
4610
5169
  icon: LinkIcon,
4611
- presetStyle: a$9,
5170
+ presetStyle: a$a,
4612
5171
  states: [
4613
5172
  ...defaultStates,
4614
5173
  {
@@ -4622,7 +5181,7 @@ const a$9 = {
4622
5181
  }
4623
5182
  ]
4624
5183
  };
4625
- const a$8 = {
5184
+ const a$9 = {
4626
5185
  ...n$5,
4627
5186
  type: "rich-text-child"
4628
5187
  };
@@ -4644,7 +5203,7 @@ const p$8 = {
4644
5203
  states: defaultStates,
4645
5204
  presetStyle: p$8
4646
5205
  };
4647
- const r$c = {
5206
+ const r$d = {
4648
5207
  i: [
4649
5208
  ...i$3,
4650
5209
  {
@@ -4657,11 +5216,11 @@ const r$c = {
4657
5216
  label: "Italic Text",
4658
5217
  icon: TextItalicIcon,
4659
5218
  states: defaultStates,
4660
- presetStyle: r$c
5219
+ presetStyle: r$d
4661
5220
  };
4662
5221
  const e$3 = {
4663
5222
  sup
4664
- }, a$7 = {
5223
+ }, a$8 = {
4665
5224
  type: "rich-text-child",
4666
5225
  label: "Superscript Text",
4667
5226
  icon: SuperscriptIcon,
@@ -4670,7 +5229,7 @@ const e$3 = {
4670
5229
  };
4671
5230
  const e$2 = {
4672
5231
  sub
4673
- }, a$6 = {
5232
+ }, a$7 = {
4674
5233
  type: "rich-text-child",
4675
5234
  label: "Subscript Text",
4676
5235
  icon: SubscriptIcon,
@@ -4689,7 +5248,7 @@ const l$5 = {
4689
5248
  { selector: ":enabled", label: "Enabled" }
4690
5249
  ]
4691
5250
  };
4692
- const r$b = {
5251
+ const r$c = {
4693
5252
  input: [
4694
5253
  ...input,
4695
5254
  {
@@ -4703,7 +5262,7 @@ const r$b = {
4703
5262
  label: "Text Input",
4704
5263
  description: "A single-line text input for collecting string data from your users.",
4705
5264
  icon: FormTextFieldIcon,
4706
- presetStyle: r$b,
5265
+ presetStyle: r$c,
4707
5266
  order: 3,
4708
5267
  states: [
4709
5268
  ...defaultStates,
@@ -4746,7 +5305,7 @@ const s$2 = {
4746
5305
  presetStyle: s$2,
4747
5306
  order: 0
4748
5307
  };
4749
- const a$5 = {
5308
+ const a$6 = {
4750
5309
  img: [
4751
5310
  ...img,
4752
5311
  // Otherwise on new image insert onto canvas it can overfit screen size multiple times
@@ -4774,10 +5333,10 @@ const a$5 = {
4774
5333
  description: "Add an image asset to the page. Webstudio automatically converts images to WebP or AVIF format and makes them responsive for best performance.",
4775
5334
  icon: ImageIcon,
4776
5335
  states: defaultStates,
4777
- presetStyle: a$5,
5336
+ presetStyle: a$6,
4778
5337
  order: 0
4779
5338
  };
4780
- const r$a = {
5339
+ const r$b = {
4781
5340
  blockquote: [
4782
5341
  {
4783
5342
  property: "margin-top",
@@ -4829,9 +5388,9 @@ const r$a = {
4829
5388
  placeholder: "Blockquote",
4830
5389
  icon: BlockquoteIcon,
4831
5390
  states: defaultStates,
4832
- presetStyle: r$a
5391
+ presetStyle: r$b
4833
5392
  };
4834
- const a$4 = {
5393
+ const a$5 = {
4835
5394
  ol: [
4836
5395
  ...ol,
4837
5396
  {
@@ -4866,9 +5425,9 @@ const a$4 = {
4866
5425
  type: "container",
4867
5426
  icon: ListIcon,
4868
5427
  states: defaultStates,
4869
- presetStyle: a$4
5428
+ presetStyle: a$5
4870
5429
  };
4871
- const a$3 = {
5430
+ const a$4 = {
4872
5431
  type: "container",
4873
5432
  placeholder: "List item",
4874
5433
  icon: ListItemIcon,
@@ -4951,7 +5510,7 @@ const p$5 = {
4951
5510
  presetStyle: p$5,
4952
5511
  order: 5
4953
5512
  };
4954
- const a$2 = {
5513
+ const a$3 = {
4955
5514
  label: [
4956
5515
  ...label,
4957
5516
  { property: "display", value: { type: "keyword", value: "block" } }
@@ -4961,7 +5520,7 @@ const a$2 = {
4961
5520
  label: "Input Label",
4962
5521
  icon: LabelIcon,
4963
5522
  states: defaultStates,
4964
- presetStyle: a$2
5523
+ presetStyle: a$3
4965
5524
  };
4966
5525
  const l$3 = {
4967
5526
  textarea: [
@@ -4995,7 +5554,7 @@ const l$3 = {
4995
5554
  //{ selector: ":read-write", label: "Read Write" },
4996
5555
  ]
4997
5556
  };
4998
- const a$1 = {
5557
+ const a$2 = {
4999
5558
  input: [
5000
5559
  ...radio,
5001
5560
  {
@@ -5007,7 +5566,7 @@ const a$1 = {
5007
5566
  type: "control",
5008
5567
  label: "Radio",
5009
5568
  icon: RadioCheckedIcon,
5010
- presetStyle: a$1,
5569
+ presetStyle: a$2,
5011
5570
  states: [
5012
5571
  ...defaultStates,
5013
5572
  { selector: ":checked", label: "Checked" },
@@ -5043,13 +5602,13 @@ const o$3 = {
5043
5602
  { selector: ":read-write", label: "Read Write" }
5044
5603
  ]
5045
5604
  };
5046
- const r$9 = {
5605
+ const r$a = {
5047
5606
  div
5048
5607
  }, c$2 = {
5049
5608
  type: "container",
5050
5609
  icon: VimeoIcon,
5051
5610
  states: defaultStates,
5052
- presetStyle: r$9,
5611
+ presetStyle: r$a,
5053
5612
  constraints: {
5054
5613
  relation: "ancestor",
5055
5614
  component: { $nin: ["Button", "Link", "Heading"] }
@@ -5076,7 +5635,7 @@ const i = {
5076
5635
  component: { $in: ["Vimeo", "YouTube"] }
5077
5636
  }
5078
5637
  };
5079
- const r$8 = {
5638
+ const r$9 = {
5080
5639
  button
5081
5640
  }, p$4 = {
5082
5641
  category: "hidden",
@@ -5093,7 +5652,7 @@ const r$8 = {
5093
5652
  ],
5094
5653
  label: "Play Button",
5095
5654
  icon: ButtonElementIcon,
5096
- presetStyle: r$8,
5655
+ presetStyle: r$9,
5097
5656
  states: defaultStates
5098
5657
  };
5099
5658
  const n$2 = {
@@ -5117,14 +5676,14 @@ const e$1 = {
5117
5676
  icon: XmlIcon,
5118
5677
  description: "XML Node"
5119
5678
  };
5120
- const a = {
5679
+ const a$1 = {
5121
5680
  category: "xml",
5122
5681
  type: "container",
5123
5682
  description: "Converts machine-readable date and time to ISO format.",
5124
5683
  icon: CalendarIcon,
5125
5684
  order: 7
5126
5685
  };
5127
- const r$7 = {
5686
+ const r$8 = {
5128
5687
  time
5129
5688
  }, s = {
5130
5689
  category: "localization",
@@ -5132,9 +5691,9 @@ const r$7 = {
5132
5691
  description: "Converts machine-readable date and time to a human-readable format.",
5133
5692
  icon: CalendarIcon,
5134
5693
  states: defaultStates,
5135
- presetStyle: r$7
5694
+ presetStyle: r$8
5136
5695
  };
5137
- const r$6 = {
5696
+ const r$7 = {
5138
5697
  select: [
5139
5698
  ...select,
5140
5699
  {
@@ -5145,7 +5704,7 @@ const r$6 = {
5145
5704
  }, c = {
5146
5705
  type: "container",
5147
5706
  icon: SelectIcon,
5148
- presetStyle: r$6,
5707
+ presetStyle: r$7,
5149
5708
  states: [
5150
5709
  ...defaultStates,
5151
5710
  { selector: "::placeholder", label: "Placeholder" },
@@ -5169,7 +5728,7 @@ const l$2 = {
5169
5728
  }
5170
5729
  }
5171
5730
  ]
5172
- }, r$5 = {
5731
+ }, r$6 = {
5173
5732
  category: "hidden",
5174
5733
  type: "control",
5175
5734
  description: "An item within a drop-down menu that users can select as their chosen value.",
@@ -5186,7 +5745,7 @@ const l$2 = {
5186
5745
  { selector: ":disabled", label: "Disabled" }
5187
5746
  ]
5188
5747
  };
5189
- const r$4 = {
5748
+ const r$5 = {
5190
5749
  icon: HeaderIcon,
5191
5750
  type: "container",
5192
5751
  description: "Inserts children into the head of the document",
@@ -5228,10 +5787,22 @@ const p$1 = {
5228
5787
  component: { $eq: "HeadSlot" }
5229
5788
  }
5230
5789
  };
5790
+ const r$4 = {
5791
+ type: "control",
5792
+ icon: VideoIcon,
5793
+ presetStyle: {
5794
+ video: [
5795
+ {
5796
+ property: "max-width",
5797
+ value: { type: "unit", unit: "%", value: 100 }
5798
+ }
5799
+ ]
5800
+ }
5801
+ };
5231
5802
  const baseComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5232
5803
  __proto__: null,
5233
5804
  Blockquote: i$2,
5234
- Body: n$9,
5805
+ Body: n$7,
5235
5806
  Bold: l$6,
5236
5807
  Box: v$2,
5237
5808
  Button: p$7,
@@ -5241,38 +5812,39 @@ const baseComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.
5241
5812
  Fragment: o$4,
5242
5813
  HeadLink: p$3,
5243
5814
  HeadMeta: p$2,
5244
- HeadSlot: r$4,
5815
+ HeadSlot: r$5,
5245
5816
  HeadTitle: p$1,
5246
- Heading: f$1,
5247
- HtmlEmbed: a$c,
5817
+ Heading: d$6,
5818
+ HtmlEmbed: a$d,
5248
5819
  Image: l$4,
5249
5820
  Input: c$5,
5250
5821
  Italic: c$6,
5251
5822
  Label: m$3,
5252
5823
  Link: n$5,
5253
5824
  List: d$5,
5254
- ListItem: a$3,
5825
+ ListItem: a$4,
5255
5826
  MarkdownEmbed: t$1,
5256
- Option: r$5,
5827
+ Option: r$6,
5257
5828
  Paragraph: n$6,
5258
5829
  RadioButton: s$1,
5259
5830
  RemixForm: n$4,
5260
- RichTextLink: a$8,
5831
+ RichTextLink: a$9,
5261
5832
  Select: c,
5262
5833
  Separator: n$3,
5263
5834
  Slot: e$5,
5264
5835
  Span: c$7,
5265
- Subscript: a$6,
5266
- Superscript: a$7,
5267
- Text: n$8,
5836
+ Subscript: a$7,
5837
+ Superscript: a$8,
5838
+ Text: s$4,
5268
5839
  Textarea: c$3,
5269
5840
  Time: s,
5841
+ Video: r$4,
5270
5842
  Vimeo: c$2,
5271
5843
  VimeoPlayButton: p$4,
5272
5844
  VimeoPreviewImage: i,
5273
5845
  VimeoSpinner: m$2,
5274
5846
  XmlNode: e$1,
5275
- XmlTime: a,
5847
+ XmlTime: a$1,
5276
5848
  YouTube: c$1
5277
5849
  }, Symbol.toStringTag, { value: "Module" }));
5278
5850
  const o$2 = {
@@ -5327,19 +5899,32 @@ const r$1 = {
5327
5899
  }
5328
5900
  ]
5329
5901
  };
5902
+ const a = {
5903
+ type: "container",
5904
+ icon: Youtube1cIcon,
5905
+ label: "Video Animation",
5906
+ constraints: [
5907
+ { relation: "parent", component: { $eq: r$3.AnimateChildren } },
5908
+ {
5909
+ relation: "child",
5910
+ text: false
5911
+ }
5912
+ ]
5913
+ };
5330
5914
  const animationComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5331
5915
  __proto__: null,
5332
5916
  AnimateChildren: o$2,
5333
5917
  AnimateText: r$2,
5334
- StaggerAnimation: r$1
5918
+ StaggerAnimation: r$1,
5919
+ VideoAnimation: a
5335
5920
  }, Symbol.toStringTag, { value: "Module" }));
5336
5921
  const remixComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
5337
5922
  __proto__: null,
5338
- Body: n$9,
5923
+ Body: n$7,
5339
5924
  Form: c$4,
5340
5925
  Link: n$5,
5341
5926
  RemixForm: n$4,
5342
- RichTextLink: a$8
5927
+ RichTextLink: a$9
5343
5928
  }, Symbol.toStringTag, { value: "Module" }));
5344
5929
  const r = (t2) => new Proxy(
5345
5930
  {},
@@ -6213,11 +6798,11 @@ const createFramework$2 = async () => {
6213
6798
  };
6214
6799
  const reactRouterComponentMetas = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6215
6800
  __proto__: null,
6216
- Body: n$9,
6801
+ Body: n$7,
6217
6802
  Form: c$4,
6218
6803
  Link: n$5,
6219
6804
  RemixForm: n$4,
6220
- RichTextLink: a$8
6805
+ RichTextLink: a$9
6221
6806
  }, Symbol.toStringTag, { value: "Module" }));
6222
6807
  const createFramework$1 = async () => {
6223
6808
  const routeTemplatesDir = join("app", "route-templates");
@@ -7037,7 +7622,7 @@ const getDeploymentInstructions = (deployTarget) => {
7037
7622
  }
7038
7623
  };
7039
7624
  const name = "webstudio";
7040
- const version = "0.210.0";
7625
+ const version = "0.212.0";
7041
7626
  const description = "Webstudio CLI";
7042
7627
  const author = "Webstudio <github@webstudio.is>";
7043
7628
  const homepage = "https://webstudio.is";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webstudio",
3
- "version": "0.210.0",
3
+ "version": "0.212.0",
4
4
  "description": "Webstudio CLI",
5
5
  "author": "Webstudio <github@webstudio.is>",
6
6
  "homepage": "https://webstudio.is",
@@ -68,17 +68,17 @@
68
68
  "vite": "^5.4.11",
69
69
  "vitest": "^3.0.8",
70
70
  "wrangler": "^3.63.2",
71
- "@webstudio-is/css-engine": "0.210.0",
72
- "@webstudio-is/http-client": "0.210.0",
73
- "@webstudio-is/react-sdk": "0.210.0",
74
- "@webstudio-is/sdk-components-animation": "0.210.0",
75
- "@webstudio-is/sdk": "0.210.0",
76
- "@webstudio-is/image": "0.210.0",
77
- "@webstudio-is/sdk-components-react": "0.210.0",
78
- "@webstudio-is/sdk-components-react-radix": "0.210.0",
79
- "@webstudio-is/sdk-components-react-remix": "0.210.0",
80
- "@webstudio-is/tsconfig": "1.0.7",
81
- "@webstudio-is/sdk-components-react-router": "0.210.0"
71
+ "@webstudio-is/css-engine": "0.212.0",
72
+ "@webstudio-is/http-client": "0.212.0",
73
+ "@webstudio-is/image": "0.212.0",
74
+ "@webstudio-is/react-sdk": "0.212.0",
75
+ "@webstudio-is/sdk": "0.212.0",
76
+ "@webstudio-is/sdk-components-animation": "0.212.0",
77
+ "@webstudio-is/sdk-components-react": "0.212.0",
78
+ "@webstudio-is/sdk-components-react-radix": "0.212.0",
79
+ "@webstudio-is/sdk-components-react-remix": "0.212.0",
80
+ "@webstudio-is/sdk-components-react-router": "0.212.0",
81
+ "@webstudio-is/tsconfig": "1.0.7"
82
82
  },
83
83
  "scripts": {
84
84
  "typecheck": "tsc",
@@ -11,13 +11,13 @@
11
11
  "@remix-run/node": "2.16.2",
12
12
  "@remix-run/react": "2.16.2",
13
13
  "@remix-run/server-runtime": "2.16.2",
14
- "@webstudio-is/image": "0.210.0",
15
- "@webstudio-is/react-sdk": "0.210.0",
16
- "@webstudio-is/sdk": "0.210.0",
17
- "@webstudio-is/sdk-components-react": "0.210.0",
18
- "@webstudio-is/sdk-components-animation": "0.210.0",
19
- "@webstudio-is/sdk-components-react-radix": "0.210.0",
20
- "@webstudio-is/sdk-components-react-remix": "0.210.0",
14
+ "@webstudio-is/image": "0.212.0",
15
+ "@webstudio-is/react-sdk": "0.212.0",
16
+ "@webstudio-is/sdk": "0.212.0",
17
+ "@webstudio-is/sdk-components-react": "0.212.0",
18
+ "@webstudio-is/sdk-components-animation": "0.212.0",
19
+ "@webstudio-is/sdk-components-react-radix": "0.212.0",
20
+ "@webstudio-is/sdk-components-react-remix": "0.212.0",
21
21
  "isbot": "^5.1.25",
22
22
  "react": "18.3.0-canary-14898b6a9-20240318",
23
23
  "react-dom": "18.3.0-canary-14898b6a9-20240318"
@@ -10,13 +10,13 @@
10
10
  "dependencies": {
11
11
  "@react-router/dev": "^7.4.0",
12
12
  "@react-router/fs-routes": "^7.4.0",
13
- "@webstudio-is/image": "0.210.0",
14
- "@webstudio-is/react-sdk": "0.210.0",
15
- "@webstudio-is/sdk": "0.210.0",
16
- "@webstudio-is/sdk-components-animation": "0.210.0",
17
- "@webstudio-is/sdk-components-react-radix": "0.210.0",
18
- "@webstudio-is/sdk-components-react-router": "0.210.0",
19
- "@webstudio-is/sdk-components-react": "0.210.0",
13
+ "@webstudio-is/image": "0.212.0",
14
+ "@webstudio-is/react-sdk": "0.212.0",
15
+ "@webstudio-is/sdk": "0.212.0",
16
+ "@webstudio-is/sdk-components-animation": "0.212.0",
17
+ "@webstudio-is/sdk-components-react-radix": "0.212.0",
18
+ "@webstudio-is/sdk-components-react-router": "0.212.0",
19
+ "@webstudio-is/sdk-components-react": "0.212.0",
20
20
  "isbot": "^5.1.25",
21
21
  "react": "18.3.0-canary-14898b6a9-20240318",
22
22
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
@@ -8,12 +8,12 @@
8
8
  "typecheck": "tsc"
9
9
  },
10
10
  "dependencies": {
11
- "@webstudio-is/image": "0.210.0",
12
- "@webstudio-is/react-sdk": "0.210.0",
13
- "@webstudio-is/sdk": "0.210.0",
14
- "@webstudio-is/sdk-components-react": "0.210.0",
15
- "@webstudio-is/sdk-components-animation": "0.210.0",
16
- "@webstudio-is/sdk-components-react-radix": "0.210.0",
11
+ "@webstudio-is/image": "0.212.0",
12
+ "@webstudio-is/react-sdk": "0.212.0",
13
+ "@webstudio-is/sdk": "0.212.0",
14
+ "@webstudio-is/sdk-components-react": "0.212.0",
15
+ "@webstudio-is/sdk-components-animation": "0.212.0",
16
+ "@webstudio-is/sdk-components-react-radix": "0.212.0",
17
17
  "react": "18.3.0-canary-14898b6a9-20240318",
18
18
  "react-dom": "18.3.0-canary-14898b6a9-20240318",
19
19
  "vike": "^0.4.227"