@webstudio-is/react-sdk 0.210.0 → 0.213.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
@@ -153,7 +153,6 @@ var idAttribute = "data-ws-id";
153
153
  var selectorIdAttribute = "data-ws-selector";
154
154
  var componentAttribute = "data-ws-component";
155
155
  var showAttribute = "data-ws-show";
156
- var indexAttribute = "data-ws-index";
157
156
  var collapsedAttribute = "data-ws-collapsed";
158
157
  var textContentAttribute = "data-ws-text-content";
159
158
  var animationCanPlayOnCanvasAttribute = "data-ws-animation-can-play-on-canvas";
@@ -411,8 +410,510 @@ import {
411
410
  blockTemplateComponent,
412
411
  collectionComponent,
413
412
  descendantComponent,
414
- getIndexesWithinAncestors
413
+ getIndexesWithinAncestors,
414
+ elementComponent
415
415
  } from "@webstudio-is/sdk";
416
+ import { indexProperty, tagProperty } from "@webstudio-is/sdk/runtime";
417
+
418
+ // src/standard-attributes.ts
419
+ var standardAttributesToReactProps = {
420
+ // HTML
421
+ accept: "accept",
422
+ acceptcharset: "acceptCharset",
423
+ "accept-charset": "acceptCharset",
424
+ accesskey: "accessKey",
425
+ action: "action",
426
+ allowfullscreen: "allowFullScreen",
427
+ alt: "alt",
428
+ as: "as",
429
+ async: "async",
430
+ autocapitalize: "autoCapitalize",
431
+ autocomplete: "autoComplete",
432
+ autocorrect: "autoCorrect",
433
+ autofocus: "autoFocus",
434
+ autoplay: "autoPlay",
435
+ autosave: "autoSave",
436
+ capture: "capture",
437
+ cellpadding: "cellPadding",
438
+ cellspacing: "cellSpacing",
439
+ challenge: "challenge",
440
+ charset: "charSet",
441
+ checked: "checked",
442
+ children: "children",
443
+ cite: "cite",
444
+ class: "className",
445
+ classid: "classID",
446
+ classname: "className",
447
+ cols: "cols",
448
+ colspan: "colSpan",
449
+ content: "content",
450
+ contenteditable: "contentEditable",
451
+ contextmenu: "contextMenu",
452
+ controls: "controls",
453
+ controlslist: "controlsList",
454
+ coords: "coords",
455
+ crossorigin: "crossOrigin",
456
+ dangerouslysetinnerhtml: "dangerouslySetInnerHTML",
457
+ data: "data",
458
+ datetime: "dateTime",
459
+ default: "default",
460
+ defaultchecked: "defaultChecked",
461
+ defaultvalue: "defaultValue",
462
+ defer: "defer",
463
+ dir: "dir",
464
+ disabled: "disabled",
465
+ disablepictureinpicture: "disablePictureInPicture",
466
+ disableremoteplayback: "disableRemotePlayback",
467
+ download: "download",
468
+ draggable: "draggable",
469
+ enctype: "encType",
470
+ enterkeyhint: "enterKeyHint",
471
+ fetchpriority: "fetchPriority",
472
+ for: "htmlFor",
473
+ form: "form",
474
+ formmethod: "formMethod",
475
+ formaction: "formAction",
476
+ formenctype: "formEncType",
477
+ formnovalidate: "formNoValidate",
478
+ formtarget: "formTarget",
479
+ frameborder: "frameBorder",
480
+ headers: "headers",
481
+ height: "height",
482
+ hidden: "hidden",
483
+ high: "high",
484
+ href: "href",
485
+ hreflang: "hrefLang",
486
+ htmlfor: "htmlFor",
487
+ httpequiv: "httpEquiv",
488
+ "http-equiv": "httpEquiv",
489
+ icon: "icon",
490
+ id: "id",
491
+ imagesizes: "imageSizes",
492
+ imagesrcset: "imageSrcSet",
493
+ inert: "inert",
494
+ innerhtml: "innerHTML",
495
+ inputmode: "inputMode",
496
+ integrity: "integrity",
497
+ is: "is",
498
+ itemid: "itemID",
499
+ itemprop: "itemProp",
500
+ itemref: "itemRef",
501
+ itemscope: "itemScope",
502
+ itemtype: "itemType",
503
+ keyparams: "keyParams",
504
+ keytype: "keyType",
505
+ kind: "kind",
506
+ label: "label",
507
+ lang: "lang",
508
+ list: "list",
509
+ loop: "loop",
510
+ low: "low",
511
+ manifest: "manifest",
512
+ marginwidth: "marginWidth",
513
+ marginheight: "marginHeight",
514
+ max: "max",
515
+ maxlength: "maxLength",
516
+ media: "media",
517
+ mediagroup: "mediaGroup",
518
+ method: "method",
519
+ min: "min",
520
+ minlength: "minLength",
521
+ multiple: "multiple",
522
+ muted: "muted",
523
+ name: "name",
524
+ nomodule: "noModule",
525
+ nonce: "nonce",
526
+ novalidate: "noValidate",
527
+ open: "open",
528
+ optimum: "optimum",
529
+ pattern: "pattern",
530
+ placeholder: "placeholder",
531
+ playsinline: "playsInline",
532
+ poster: "poster",
533
+ preload: "preload",
534
+ profile: "profile",
535
+ radiogroup: "radioGroup",
536
+ readonly: "readOnly",
537
+ referrerpolicy: "referrerPolicy",
538
+ rel: "rel",
539
+ required: "required",
540
+ reversed: "reversed",
541
+ role: "role",
542
+ rows: "rows",
543
+ rowspan: "rowSpan",
544
+ sandbox: "sandbox",
545
+ scope: "scope",
546
+ scoped: "scoped",
547
+ scrolling: "scrolling",
548
+ seamless: "seamless",
549
+ selected: "selected",
550
+ shape: "shape",
551
+ size: "size",
552
+ sizes: "sizes",
553
+ span: "span",
554
+ spellcheck: "spellCheck",
555
+ src: "src",
556
+ srcdoc: "srcDoc",
557
+ srclang: "srcLang",
558
+ srcset: "srcSet",
559
+ start: "start",
560
+ step: "step",
561
+ style: "style",
562
+ summary: "summary",
563
+ tabindex: "tabIndex",
564
+ target: "target",
565
+ title: "title",
566
+ type: "type",
567
+ usemap: "useMap",
568
+ value: "value",
569
+ width: "width",
570
+ wmode: "wmode",
571
+ wrap: "wrap",
572
+ // SVG
573
+ about: "about",
574
+ accentheight: "accentHeight",
575
+ "accent-height": "accentHeight",
576
+ accumulate: "accumulate",
577
+ additive: "additive",
578
+ alignmentbaseline: "alignmentBaseline",
579
+ "alignment-baseline": "alignmentBaseline",
580
+ allowreorder: "allowReorder",
581
+ alphabetic: "alphabetic",
582
+ amplitude: "amplitude",
583
+ arabicform: "arabicForm",
584
+ "arabic-form": "arabicForm",
585
+ ascent: "ascent",
586
+ attributename: "attributeName",
587
+ attributetype: "attributeType",
588
+ autoreverse: "autoReverse",
589
+ azimuth: "azimuth",
590
+ basefrequency: "baseFrequency",
591
+ baselineshift: "baselineShift",
592
+ "baseline-shift": "baselineShift",
593
+ baseprofile: "baseProfile",
594
+ bbox: "bbox",
595
+ begin: "begin",
596
+ bias: "bias",
597
+ by: "by",
598
+ calcmode: "calcMode",
599
+ capheight: "capHeight",
600
+ "cap-height": "capHeight",
601
+ clip: "clip",
602
+ clippath: "clipPath",
603
+ "clip-path": "clipPath",
604
+ clippathunits: "clipPathUnits",
605
+ cliprule: "clipRule",
606
+ "clip-rule": "clipRule",
607
+ color: "color",
608
+ colorinterpolation: "colorInterpolation",
609
+ "color-interpolation": "colorInterpolation",
610
+ colorinterpolationfilters: "colorInterpolationFilters",
611
+ "color-interpolation-filters": "colorInterpolationFilters",
612
+ colorprofile: "colorProfile",
613
+ "color-profile": "colorProfile",
614
+ colorrendering: "colorRendering",
615
+ "color-rendering": "colorRendering",
616
+ contentscripttype: "contentScriptType",
617
+ contentstyletype: "contentStyleType",
618
+ cursor: "cursor",
619
+ cx: "cx",
620
+ cy: "cy",
621
+ d: "d",
622
+ datatype: "datatype",
623
+ decelerate: "decelerate",
624
+ descent: "descent",
625
+ diffuseconstant: "diffuseConstant",
626
+ direction: "direction",
627
+ display: "display",
628
+ divisor: "divisor",
629
+ dominantbaseline: "dominantBaseline",
630
+ "dominant-baseline": "dominantBaseline",
631
+ dur: "dur",
632
+ dx: "dx",
633
+ dy: "dy",
634
+ edgemode: "edgeMode",
635
+ elevation: "elevation",
636
+ enablebackground: "enableBackground",
637
+ "enable-background": "enableBackground",
638
+ end: "end",
639
+ exponent: "exponent",
640
+ externalresourcesrequired: "externalResourcesRequired",
641
+ fill: "fill",
642
+ fillopacity: "fillOpacity",
643
+ "fill-opacity": "fillOpacity",
644
+ fillrule: "fillRule",
645
+ "fill-rule": "fillRule",
646
+ filter: "filter",
647
+ filterres: "filterRes",
648
+ filterunits: "filterUnits",
649
+ floodopacity: "floodOpacity",
650
+ "flood-opacity": "floodOpacity",
651
+ floodcolor: "floodColor",
652
+ "flood-color": "floodColor",
653
+ focusable: "focusable",
654
+ fontfamily: "fontFamily",
655
+ "font-family": "fontFamily",
656
+ fontsize: "fontSize",
657
+ "font-size": "fontSize",
658
+ fontsizeadjust: "fontSizeAdjust",
659
+ "font-size-adjust": "fontSizeAdjust",
660
+ fontstretch: "fontStretch",
661
+ "font-stretch": "fontStretch",
662
+ fontstyle: "fontStyle",
663
+ "font-style": "fontStyle",
664
+ fontvariant: "fontVariant",
665
+ "font-variant": "fontVariant",
666
+ fontweight: "fontWeight",
667
+ "font-weight": "fontWeight",
668
+ format: "format",
669
+ from: "from",
670
+ fx: "fx",
671
+ fy: "fy",
672
+ g1: "g1",
673
+ g2: "g2",
674
+ glyphname: "glyphName",
675
+ "glyph-name": "glyphName",
676
+ glyphorientationhorizontal: "glyphOrientationHorizontal",
677
+ "glyph-orientation-horizontal": "glyphOrientationHorizontal",
678
+ glyphorientationvertical: "glyphOrientationVertical",
679
+ "glyph-orientation-vertical": "glyphOrientationVertical",
680
+ glyphref: "glyphRef",
681
+ gradienttransform: "gradientTransform",
682
+ gradientunits: "gradientUnits",
683
+ hanging: "hanging",
684
+ horizadvx: "horizAdvX",
685
+ "horiz-adv-x": "horizAdvX",
686
+ horizoriginx: "horizOriginX",
687
+ "horiz-origin-x": "horizOriginX",
688
+ ideographic: "ideographic",
689
+ imagerendering: "imageRendering",
690
+ "image-rendering": "imageRendering",
691
+ in2: "in2",
692
+ in: "in",
693
+ inlist: "inlist",
694
+ intercept: "intercept",
695
+ k1: "k1",
696
+ k2: "k2",
697
+ k3: "k3",
698
+ k4: "k4",
699
+ k: "k",
700
+ kernelmatrix: "kernelMatrix",
701
+ kernelunitlength: "kernelUnitLength",
702
+ kerning: "kerning",
703
+ keypoints: "keyPoints",
704
+ keysplines: "keySplines",
705
+ keytimes: "keyTimes",
706
+ lengthadjust: "lengthAdjust",
707
+ letterspacing: "letterSpacing",
708
+ "letter-spacing": "letterSpacing",
709
+ lightingcolor: "lightingColor",
710
+ "lighting-color": "lightingColor",
711
+ limitingconeangle: "limitingConeAngle",
712
+ local: "local",
713
+ markerend: "markerEnd",
714
+ "marker-end": "markerEnd",
715
+ markerheight: "markerHeight",
716
+ markermid: "markerMid",
717
+ "marker-mid": "markerMid",
718
+ markerstart: "markerStart",
719
+ "marker-start": "markerStart",
720
+ markerunits: "markerUnits",
721
+ markerwidth: "markerWidth",
722
+ mask: "mask",
723
+ maskcontentunits: "maskContentUnits",
724
+ maskunits: "maskUnits",
725
+ mathematical: "mathematical",
726
+ mode: "mode",
727
+ numoctaves: "numOctaves",
728
+ offset: "offset",
729
+ opacity: "opacity",
730
+ operator: "operator",
731
+ order: "order",
732
+ orient: "orient",
733
+ orientation: "orientation",
734
+ origin: "origin",
735
+ overflow: "overflow",
736
+ overlineposition: "overlinePosition",
737
+ "overline-position": "overlinePosition",
738
+ overlinethickness: "overlineThickness",
739
+ "overline-thickness": "overlineThickness",
740
+ paintorder: "paintOrder",
741
+ "paint-order": "paintOrder",
742
+ panose1: "panose1",
743
+ "panose-1": "panose1",
744
+ pathlength: "pathLength",
745
+ patterncontentunits: "patternContentUnits",
746
+ patterntransform: "patternTransform",
747
+ patternunits: "patternUnits",
748
+ pointerevents: "pointerEvents",
749
+ "pointer-events": "pointerEvents",
750
+ points: "points",
751
+ pointsatx: "pointsAtX",
752
+ pointsaty: "pointsAtY",
753
+ pointsatz: "pointsAtZ",
754
+ popover: "popover",
755
+ popovertarget: "popoverTarget",
756
+ popovertargetaction: "popoverTargetAction",
757
+ prefix: "prefix",
758
+ preservealpha: "preserveAlpha",
759
+ preserveaspectratio: "preserveAspectRatio",
760
+ primitiveunits: "primitiveUnits",
761
+ property: "property",
762
+ r: "r",
763
+ radius: "radius",
764
+ refx: "refX",
765
+ refy: "refY",
766
+ renderingintent: "renderingIntent",
767
+ "rendering-intent": "renderingIntent",
768
+ repeatcount: "repeatCount",
769
+ repeatdur: "repeatDur",
770
+ requiredextensions: "requiredExtensions",
771
+ requiredfeatures: "requiredFeatures",
772
+ resource: "resource",
773
+ restart: "restart",
774
+ result: "result",
775
+ results: "results",
776
+ rotate: "rotate",
777
+ rx: "rx",
778
+ ry: "ry",
779
+ scale: "scale",
780
+ security: "security",
781
+ seed: "seed",
782
+ shaperendering: "shapeRendering",
783
+ "shape-rendering": "shapeRendering",
784
+ slope: "slope",
785
+ spacing: "spacing",
786
+ specularconstant: "specularConstant",
787
+ specularexponent: "specularExponent",
788
+ speed: "speed",
789
+ spreadmethod: "spreadMethod",
790
+ startoffset: "startOffset",
791
+ stddeviation: "stdDeviation",
792
+ stemh: "stemh",
793
+ stemv: "stemv",
794
+ stitchtiles: "stitchTiles",
795
+ stopcolor: "stopColor",
796
+ "stop-color": "stopColor",
797
+ stopopacity: "stopOpacity",
798
+ "stop-opacity": "stopOpacity",
799
+ strikethroughposition: "strikethroughPosition",
800
+ "strikethrough-position": "strikethroughPosition",
801
+ strikethroughthickness: "strikethroughThickness",
802
+ "strikethrough-thickness": "strikethroughThickness",
803
+ string: "string",
804
+ stroke: "stroke",
805
+ strokedasharray: "strokeDasharray",
806
+ "stroke-dasharray": "strokeDasharray",
807
+ strokedashoffset: "strokeDashoffset",
808
+ "stroke-dashoffset": "strokeDashoffset",
809
+ strokelinecap: "strokeLinecap",
810
+ "stroke-linecap": "strokeLinecap",
811
+ strokelinejoin: "strokeLinejoin",
812
+ "stroke-linejoin": "strokeLinejoin",
813
+ strokemiterlimit: "strokeMiterlimit",
814
+ "stroke-miterlimit": "strokeMiterlimit",
815
+ strokewidth: "strokeWidth",
816
+ "stroke-width": "strokeWidth",
817
+ strokeopacity: "strokeOpacity",
818
+ "stroke-opacity": "strokeOpacity",
819
+ suppresscontenteditablewarning: "suppressContentEditableWarning",
820
+ suppresshydrationwarning: "suppressHydrationWarning",
821
+ surfacescale: "surfaceScale",
822
+ systemlanguage: "systemLanguage",
823
+ tablevalues: "tableValues",
824
+ targetx: "targetX",
825
+ targety: "targetY",
826
+ textanchor: "textAnchor",
827
+ "text-anchor": "textAnchor",
828
+ textdecoration: "textDecoration",
829
+ "text-decoration": "textDecoration",
830
+ textlength: "textLength",
831
+ textrendering: "textRendering",
832
+ "text-rendering": "textRendering",
833
+ to: "to",
834
+ transform: "transform",
835
+ transformorigin: "transformOrigin",
836
+ "transform-origin": "transformOrigin",
837
+ typeof: "typeof",
838
+ u1: "u1",
839
+ u2: "u2",
840
+ underlineposition: "underlinePosition",
841
+ "underline-position": "underlinePosition",
842
+ underlinethickness: "underlineThickness",
843
+ "underline-thickness": "underlineThickness",
844
+ unicode: "unicode",
845
+ unicodebidi: "unicodeBidi",
846
+ "unicode-bidi": "unicodeBidi",
847
+ unicoderange: "unicodeRange",
848
+ "unicode-range": "unicodeRange",
849
+ unitsperem: "unitsPerEm",
850
+ "units-per-em": "unitsPerEm",
851
+ unselectable: "unselectable",
852
+ valphabetic: "vAlphabetic",
853
+ "v-alphabetic": "vAlphabetic",
854
+ values: "values",
855
+ vectoreffect: "vectorEffect",
856
+ "vector-effect": "vectorEffect",
857
+ version: "version",
858
+ vertadvy: "vertAdvY",
859
+ "vert-adv-y": "vertAdvY",
860
+ vertoriginx: "vertOriginX",
861
+ "vert-origin-x": "vertOriginX",
862
+ vertoriginy: "vertOriginY",
863
+ "vert-origin-y": "vertOriginY",
864
+ vhanging: "vHanging",
865
+ "v-hanging": "vHanging",
866
+ videographic: "vIdeographic",
867
+ "v-ideographic": "vIdeographic",
868
+ viewbox: "viewBox",
869
+ viewtarget: "viewTarget",
870
+ visibility: "visibility",
871
+ vmathematical: "vMathematical",
872
+ "v-mathematical": "vMathematical",
873
+ vocab: "vocab",
874
+ widths: "widths",
875
+ wordspacing: "wordSpacing",
876
+ "word-spacing": "wordSpacing",
877
+ writingmode: "writingMode",
878
+ "writing-mode": "writingMode",
879
+ x1: "x1",
880
+ x2: "x2",
881
+ x: "x",
882
+ xchannelselector: "xChannelSelector",
883
+ xheight: "xHeight",
884
+ "x-height": "xHeight",
885
+ xlinkactuate: "xlinkActuate",
886
+ "xlink:actuate": "xlinkActuate",
887
+ xlinkarcrole: "xlinkArcrole",
888
+ "xlink:arcrole": "xlinkArcrole",
889
+ xlinkhref: "xlinkHref",
890
+ "xlink:href": "xlinkHref",
891
+ xlinkrole: "xlinkRole",
892
+ "xlink:role": "xlinkRole",
893
+ xlinkshow: "xlinkShow",
894
+ "xlink:show": "xlinkShow",
895
+ xlinktitle: "xlinkTitle",
896
+ "xlink:title": "xlinkTitle",
897
+ xlinktype: "xlinkType",
898
+ "xlink:type": "xlinkType",
899
+ xmlbase: "xmlBase",
900
+ "xml:base": "xmlBase",
901
+ xmllang: "xmlLang",
902
+ "xml:lang": "xmlLang",
903
+ xmlns: "xmlns",
904
+ "xml:space": "xmlSpace",
905
+ xmlnsxlink: "xmlnsXlink",
906
+ "xmlns:xlink": "xmlnsXlink",
907
+ xmlspace: "xmlSpace",
908
+ y1: "y1",
909
+ y2: "y2",
910
+ y: "y",
911
+ ychannelselector: "yChannelSelector",
912
+ z: "z",
913
+ zoomandpan: "zoomAndPan"
914
+ };
915
+
916
+ // src/component-generator.ts
416
917
  var generateAction = ({
417
918
  scope,
418
919
  prop,
@@ -520,7 +1021,11 @@ var generateJsxElement = ({
520
1021
  const index = indexesWithinAncestors.get(instance.id);
521
1022
  if (index !== void 0) {
522
1023
  generatedProps += `
523
- ${indexAttribute}="${index}"`;
1024
+ ${indexProperty}="${index}"`;
1025
+ }
1026
+ if (instance.tag !== void 0 && instance.component !== elementComponent) {
1027
+ generatedProps += `
1028
+ ${tagProperty}=${JSON.stringify(instance.tag)}`;
524
1029
  }
525
1030
  let conditionValue;
526
1031
  let collectionDataValue;
@@ -539,6 +1044,10 @@ ${indexAttribute}="${index}"`;
539
1044
  if (isAttributeNameSafe(prop.name) === false) {
540
1045
  continue;
541
1046
  }
1047
+ let name = prop.name;
1048
+ if (instance.component === elementComponent) {
1049
+ name = standardAttributesToReactProps[prop.name] ?? prop.name;
1050
+ }
542
1051
  if (prop.name === showAttribute) {
543
1052
  if (propValue === "true") {
544
1053
  continue;
@@ -558,13 +1067,13 @@ ${indexAttribute}="${index}"`;
558
1067
  }
559
1068
  continue;
560
1069
  }
561
- if (prop.name === "className" && propValue !== void 0) {
1070
+ if (name === "className" && propValue !== void 0) {
562
1071
  classNameValue = propValue;
563
1072
  continue;
564
1073
  }
565
1074
  if (propValue !== void 0) {
566
1075
  generatedProps += `
567
- ${prop.name}={${propValue}}`;
1076
+ ${name}={${propValue}}`;
568
1077
  }
569
1078
  }
570
1079
  const classMapArray = classesMap?.get(instance.id);
@@ -598,6 +1107,18 @@ ${prop.name}={${propValue}}`;
598
1107
  `;
599
1108
  } else if (instance.component === blockComponent) {
600
1109
  generatedElement += children;
1110
+ } else if (instance.component === elementComponent) {
1111
+ const tagName = instance.tag ?? "div";
1112
+ if (instance.children.length === 0) {
1113
+ generatedElement += `<${tagName}${generatedProps} />
1114
+ `;
1115
+ } else {
1116
+ generatedElement += `<${tagName}${generatedProps}>
1117
+ `;
1118
+ generatedElement += children;
1119
+ generatedElement += `</${tagName}>
1120
+ `;
1121
+ }
601
1122
  } else {
602
1123
  const [_namespace, shortName] = parseComponentName(instance.component);
603
1124
  const componentVariable = scope.getName(instance.component, shortName);
@@ -805,7 +1326,6 @@ export {
805
1326
  generateRemixRoute,
806
1327
  generateWebstudioComponent,
807
1328
  idAttribute,
808
- indexAttribute,
809
1329
  isAttributeNameSafe,
810
1330
  normalizeProps,
811
1331
  selectorIdAttribute,
package/lib/runtime.js CHANGED
@@ -198,16 +198,12 @@ var PageSettingsCanonicalLink = (props) => {
198
198
 
199
199
  // src/runtime.ts
200
200
  var xmlNodeTagSuffix = "-ws-xml-node-fb77f896-8e96-40b9-b8f8-90a4e70d724a";
201
- var getIndexWithinAncestorFromComponentProps = (props) => {
202
- return props["data-ws-index"];
203
- };
204
201
  export {
205
202
  PageSettingsCanonicalLink,
206
203
  PageSettingsMeta,
207
204
  PageSettingsTitle,
208
205
  ReactSdkContext,
209
206
  getClosestInstance,
210
- getIndexWithinAncestorFromComponentProps,
211
207
  useResource,
212
208
  useVariableState,
213
209
  xmlNodeTagSuffix
@@ -702,6 +702,14 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
702
702
  timing: {
703
703
  fill?: "none" | "forwards" | "backwards" | "both" | undefined;
704
704
  easing?: string | undefined;
705
+ duration?: {
706
+ value: number;
707
+ type: "unit";
708
+ unit: "s" | "ms";
709
+ } | {
710
+ value: string;
711
+ type: "var";
712
+ } | undefined;
705
713
  rangeStart?: ["start" | "end", {
706
714
  value: number;
707
715
  type: "unit";
@@ -709,6 +717,9 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
709
717
  } | {
710
718
  value: string;
711
719
  type: "unparsed";
720
+ } | {
721
+ value: string;
722
+ type: "var";
712
723
  }] | undefined;
713
724
  rangeEnd?: ["start" | "end", {
714
725
  value: number;
@@ -717,6 +728,9 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
717
728
  } | {
718
729
  value: string;
719
730
  type: "unparsed";
731
+ } | {
732
+ value: string;
733
+ type: "var";
720
734
  }] | undefined;
721
735
  };
722
736
  name?: string | undefined;
@@ -1338,6 +1352,14 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
1338
1352
  timing: {
1339
1353
  fill?: "none" | "forwards" | "backwards" | "both" | undefined;
1340
1354
  easing?: string | undefined;
1355
+ duration?: {
1356
+ value: number;
1357
+ type: "unit";
1358
+ unit: "s" | "ms";
1359
+ } | {
1360
+ value: string;
1361
+ type: "var";
1362
+ } | undefined;
1341
1363
  rangeStart?: ["contain" | "cover" | "entry" | "exit" | "entry-crossing" | "exit-crossing", {
1342
1364
  value: number;
1343
1365
  type: "unit";
@@ -1345,6 +1367,9 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
1345
1367
  } | {
1346
1368
  value: string;
1347
1369
  type: "unparsed";
1370
+ } | {
1371
+ value: string;
1372
+ type: "var";
1348
1373
  }] | undefined;
1349
1374
  rangeEnd?: ["contain" | "cover" | "entry" | "exit" | "entry-crossing" | "exit-crossing", {
1350
1375
  value: number;
@@ -1353,6 +1378,9 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
1353
1378
  } | {
1354
1379
  value: string;
1355
1380
  type: "unparsed";
1381
+ } | {
1382
+ value: string;
1383
+ type: "var";
1356
1384
  }] | undefined;
1357
1385
  };
1358
1386
  name?: string | undefined;
@@ -1370,6 +1398,9 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
1370
1398
  } | {
1371
1399
  value: string;
1372
1400
  type: "unparsed";
1401
+ } | {
1402
+ value: string;
1403
+ type: "var";
1373
1404
  } | {
1374
1405
  value: "auto";
1375
1406
  type: "keyword";
@@ -1381,6 +1412,9 @@ export declare const normalizeProps: ({ props, assetBaseUrl, assets, uploadingIm
1381
1412
  } | {
1382
1413
  value: string;
1383
1414
  type: "unparsed";
1415
+ } | {
1416
+ value: string;
1417
+ type: "var";
1384
1418
  } | {
1385
1419
  value: "auto";
1386
1420
  type: "keyword";
@@ -1396,7 +1430,6 @@ export declare const idAttribute: "data-ws-id";
1396
1430
  export declare const selectorIdAttribute: "data-ws-selector";
1397
1431
  export declare const componentAttribute: "data-ws-component";
1398
1432
  export declare const showAttribute: "data-ws-show";
1399
- export declare const indexAttribute: "data-ws-index";
1400
1433
  export declare const collapsedAttribute: "data-ws-collapsed";
1401
1434
  export declare const textContentAttribute: "data-ws-text-content";
1402
1435
  export declare const animationCanPlayOnCanvasAttribute = "data-ws-animation-can-play-on-canvas";
@@ -9,4 +9,3 @@ export { PageSettingsCanonicalLink } from "./page-settings-canonical-link";
9
9
  * To render XML, we wrap it with an <svg> tag and add a suffix to avoid React's default behavior on these elements.
10
10
  */
11
11
  export declare const xmlNodeTagSuffix = "-ws-xml-node-fb77f896-8e96-40b9-b8f8-90a4e70d724a";
12
- export declare const getIndexWithinAncestorFromComponentProps: (props: Record<string, unknown>) => string | undefined;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
3
+ *
4
+ * This source code is licensed under the MIT license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ export declare const standardAttributesToReactProps: Record<string, string>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webstudio-is/react-sdk",
3
- "version": "0.210.0",
3
+ "version": "0.213.0",
4
4
  "description": "Webstudio JavaScript / TypeScript API",
5
5
  "author": "Webstudio <github@webstudio.is>",
6
6
  "homepage": "https://webstudio.is",
@@ -15,7 +15,7 @@
15
15
  "vitest": "^3.0.8",
16
16
  "zod": "^3.24.2",
17
17
  "@webstudio-is/tsconfig": "1.0.7",
18
- "@webstudio-is/template": "0.210.0"
18
+ "@webstudio-is/template": "0.213.0"
19
19
  },
20
20
  "peerDependencies": {
21
21
  "react": "18.3.0-canary-14898b6a9-20240318",
@@ -26,11 +26,11 @@
26
26
  "change-case": "^5.4.4",
27
27
  "html-tags": "^4.0.0",
28
28
  "nanoid": "^5.0.9",
29
- "@webstudio-is/fonts": "0.210.0",
30
- "@webstudio-is/icons": "^0.210.0",
31
- "@webstudio-is/image": "0.210.0",
32
- "@webstudio-is/css-engine": "0.210.0",
33
- "@webstudio-is/sdk": "0.210.0"
29
+ "@webstudio-is/css-engine": "0.213.0",
30
+ "@webstudio-is/icons": "^0.213.0",
31
+ "@webstudio-is/fonts": "0.213.0",
32
+ "@webstudio-is/image": "0.213.0",
33
+ "@webstudio-is/sdk": "0.213.0"
34
34
  },
35
35
  "exports": {
36
36
  ".": {