@builder.io/sdk-solid 1.0.31 → 1.0.33

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.
@@ -117,11 +117,7 @@ import { Show as Show4, For as For2, onMount, createMemo as createMemo5 } from "
117
117
  function getBlockComponentOptions(block) {
118
118
  return {
119
119
  ...block.component?.options,
120
- ...block.options,
121
- /**
122
- * Our built-in components frequently make use of the block, so we provide all of it under `builderBlock`
123
- */
124
- builderBlock: block
120
+ ...block.options
125
121
  };
126
122
  }
127
123
 
@@ -3446,17 +3442,10 @@ theFunction();
3446
3442
  });
3447
3443
  interpreter.setProperty(globalObject, "setRootState", interpreter.createNativeFunction(setRootState));
3448
3444
  };
3449
- try {
3450
- const myInterpreter = new acorn_interpreter_default(transformed, initFunc);
3451
- myInterpreter.run();
3452
- const output = myInterpreter.pseudoToNative(myInterpreter.value);
3453
- return output;
3454
- } catch (e) {
3455
- logger.warn("Custom code error in edge runtime. NOTE: your code must be ES5 JavaScript.", {
3456
- e
3457
- });
3458
- return;
3459
- }
3445
+ const myInterpreter = new acorn_interpreter_default(transformed, initFunc);
3446
+ myInterpreter.run();
3447
+ const output = myInterpreter.pseudoToNative(myInterpreter.value);
3448
+ return output;
3460
3449
  };
3461
3450
 
3462
3451
  // src/helpers/nullable.ts
@@ -3925,11 +3914,25 @@ var getRepeatItemData = ({
3925
3914
  }));
3926
3915
  return repeatArray;
3927
3916
  };
3928
- var shouldPassLinkComponent = (block) => {
3929
- return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
3917
+ var provideLinkComponent = (block, linkComponent) => {
3918
+ return block && (block.isRSC && TARGET === "rsc" || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
3919
+ builderLinkComponent: linkComponent
3920
+ } : {};
3921
+ };
3922
+ var provideRegisteredComponents = (block, registeredComponents) => {
3923
+ return block && (block.isRSC && TARGET === "rsc" || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
3924
+ builderComponents: registeredComponents
3925
+ } : {};
3926
+ };
3927
+ var provideBuilderBlock = (block, builderBlock) => {
3928
+ return block && (block.isRSC && TARGET === "rsc" || TARGET === "reactNative" && block.name === "Text" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Image", "Video"].includes(block.name)) ? {
3929
+ builderBlock
3930
+ } : {};
3930
3931
  };
3931
- var shouldPassRegisteredComponents = (block) => {
3932
- return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
3932
+ var provideBuilderContext = (block, context) => {
3933
+ return block && (block.isRSC && TARGET === "rsc" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Slot"].includes(block.name)) ? {
3934
+ builderContext: context
3935
+ } : {};
3933
3936
  };
3934
3937
 
3935
3938
  // src/components/block/components/block-styles.tsx
@@ -4332,13 +4335,13 @@ function Block(props) {
4332
4335
  componentRef: blockComponent()?.component,
4333
4336
  componentOptions: {
4334
4337
  ...getBlockComponentOptions(processedBlock()),
4335
- builderContext: props.context,
4336
- ...shouldPassLinkComponent(blockComponent()) ? {
4337
- builderLinkComponent: props.linkComponent
4338
- } : {},
4339
- ...shouldPassRegisteredComponents(blockComponent()) ? {
4340
- builderComponents: props.registeredComponents
4341
- } : {}
4338
+ ...provideBuilderBlock(blockComponent(), processedBlock()),
4339
+ ...provideBuilderContext(blockComponent(), props.context),
4340
+ ...provideLinkComponent(blockComponent(), props.linkComponent),
4341
+ ...provideRegisteredComponents(
4342
+ blockComponent(),
4343
+ props.registeredComponents
4344
+ )
4342
4345
  },
4343
4346
  context: props.context,
4344
4347
  linkComponent: props.linkComponent,
@@ -4391,7 +4394,6 @@ function Block(props) {
4391
4394
  Wrapper={Tag()}
4392
4395
  block={processedBlock()}
4393
4396
  context={props.context}
4394
- linkComponent={props.linkComponent}
4395
4397
  >
4396
4398
  <Component_ref_default
4397
4399
  componentRef={componentRefProps().componentRef}
@@ -4758,7 +4760,8 @@ function Image(props) {
4758
4760
  opacity: "1",
4759
4761
  transition: "opacity 0.2s ease-in-out"
4760
4762
  })}
4761
- loading="lazy"
4763
+ loading={props.highPriority ? "eager" : "lazy"}
4764
+ fetchpriority={props.highPriority ? "high" : "auto"}
4762
4765
  alt={props.altText}
4763
4766
  role={props.altText ? void 0 : "presentation"}
4764
4767
  style={{
@@ -5675,6 +5678,11 @@ var componentInfo5 = {
5675
5678
  type: "boolean",
5676
5679
  helperText: "When child blocks are provided, fit to them instead of using the image's aspect ratio",
5677
5680
  defaultValue: true
5681
+ }, {
5682
+ name: "highPriority",
5683
+ type: "boolean",
5684
+ advanced: true,
5685
+ helperText: "Mark this image as high priority compared to other images on the page. This prevents lazy loading of the image and tells the browser to load this image before others on the page."
5678
5686
  }, {
5679
5687
  name: "aspectRatio",
5680
5688
  type: "number",
@@ -7669,12 +7677,15 @@ var getInteractionPropertiesForEvent = (event) => {
7669
7677
  // src/functions/is-from-trusted-host.ts
7670
7678
  var DEFAULT_TRUSTED_HOSTS = ["*.beta.builder.io", "beta.builder.io", "builder.io", "localhost", "qa.builder.io"];
7671
7679
  function isFromTrustedHost(trustedHosts, e) {
7680
+ if (!e.origin.startsWith("http") && !e.origin.startsWith("https")) {
7681
+ return false;
7682
+ }
7672
7683
  const url = new URL(e.origin), hostname = url.hostname;
7673
7684
  return (trustedHosts || DEFAULT_TRUSTED_HOSTS).findIndex((trustedHost) => trustedHost.startsWith("*.") ? hostname.endsWith(trustedHost.slice(1)) : trustedHost === hostname) > -1;
7674
7685
  }
7675
7686
 
7676
7687
  // src/constants/sdk-version.ts
7677
- var SDK_VERSION = "1.0.31";
7688
+ var SDK_VERSION = "1.0.33";
7678
7689
 
7679
7690
  // src/functions/register.ts
7680
7691
  var registry = {};
@@ -8390,7 +8401,6 @@ function ContentComponent(props) {
8390
8401
  builderContextSignal={builderContextSignal()}
8391
8402
  contentWrapper={props.contentWrapper}
8392
8403
  contentWrapperProps={props.contentWrapperProps}
8393
- linkComponent={props.linkComponent}
8394
8404
  trustedHosts={props.trustedHosts}
8395
8405
  {...{
8396
8406
  setBuilderContextSignal
package/lib/node/dev.js CHANGED
@@ -123,11 +123,7 @@ var components_context_default = createContext({ registeredComponents: {} });
123
123
  function getBlockComponentOptions(block) {
124
124
  return {
125
125
  ...block.component?.options,
126
- ...block.options,
127
- /**
128
- * Our built-in components frequently make use of the block, so we provide all of it under `builderBlock`
129
- */
130
- builderBlock: block
126
+ ...block.options
131
127
  };
132
128
  }
133
129
 
@@ -944,11 +940,25 @@ var getRepeatItemData = ({
944
940
  }));
945
941
  return repeatArray;
946
942
  };
947
- var shouldPassLinkComponent = (block) => {
948
- return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
943
+ var provideLinkComponent = (block, linkComponent) => {
944
+ return block && (block.isRSC && TARGET === "rsc" || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
945
+ builderLinkComponent: linkComponent
946
+ } : {};
947
+ };
948
+ var provideRegisteredComponents = (block, registeredComponents) => {
949
+ return block && (block.isRSC && TARGET === "rsc" || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
950
+ builderComponents: registeredComponents
951
+ } : {};
952
+ };
953
+ var provideBuilderBlock = (block, builderBlock) => {
954
+ return block && (block.isRSC && TARGET === "rsc" || TARGET === "reactNative" && block.name === "Text" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Image", "Video"].includes(block.name)) ? {
955
+ builderBlock
956
+ } : {};
949
957
  };
950
- var shouldPassRegisteredComponents = (block) => {
951
- return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
958
+ var provideBuilderContext = (block, context) => {
959
+ return block && (block.isRSC && TARGET === "rsc" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Slot"].includes(block.name)) ? {
960
+ builderContext: context
961
+ } : {};
952
962
  };
953
963
 
954
964
  // src/constants/device-sizes.ts
@@ -1397,13 +1407,10 @@ function Block(props) {
1397
1407
  componentRef: blockComponent()?.component,
1398
1408
  componentOptions: {
1399
1409
  ...getBlockComponentOptions(processedBlock()),
1400
- builderContext: props.context,
1401
- ...shouldPassLinkComponent(blockComponent()) ? {
1402
- builderLinkComponent: props.linkComponent
1403
- } : {},
1404
- ...shouldPassRegisteredComponents(blockComponent()) ? {
1405
- builderComponents: props.registeredComponents
1406
- } : {}
1410
+ ...provideBuilderBlock(blockComponent(), processedBlock()),
1411
+ ...provideBuilderContext(blockComponent(), props.context),
1412
+ ...provideLinkComponent(blockComponent(), props.linkComponent),
1413
+ ...provideRegisteredComponents(blockComponent(), props.registeredComponents)
1407
1414
  },
1408
1415
  context: props.context,
1409
1416
  linkComponent: props.linkComponent,
@@ -1511,9 +1518,6 @@ function Block(props) {
1511
1518
  get context() {
1512
1519
  return props.context;
1513
1520
  },
1514
- get linkComponent() {
1515
- return props.linkComponent;
1516
- },
1517
1521
  get children() {
1518
1522
  return [createComponent(component_ref_default, {
1519
1523
  get componentRef() {
@@ -1939,7 +1943,7 @@ function getSrcSet(url) {
1939
1943
 
1940
1944
  // src/blocks/image/image.tsx
1941
1945
  var _tmpl$4 = /* @__PURE__ */ template(`<source type=image/webp>`);
1942
- var _tmpl$22 = /* @__PURE__ */ template(`<picture><img loading=lazy>`);
1946
+ var _tmpl$22 = /* @__PURE__ */ template(`<picture><img>`);
1943
1947
  var _tmpl$32 = /* @__PURE__ */ template(`<div>`);
1944
1948
  function Image(props) {
1945
1949
  const srcSetToUse = createMemo(() => {
@@ -1994,18 +1998,20 @@ function Image(props) {
1994
1998
  const _v$ = "builder-image" + (props.className ? " " + props.className : "") + " " + css({
1995
1999
  opacity: "1",
1996
2000
  transition: "opacity 0.2s ease-in-out"
1997
- }), _v$2 = props.altText, _v$3 = props.altText ? void 0 : "presentation", _v$4 = {
2001
+ }), _v$2 = props.highPriority ? "eager" : "lazy", _v$3 = props.highPriority ? "high" : "auto", _v$4 = props.altText, _v$5 = props.altText ? void 0 : "presentation", _v$6 = {
1998
2002
  "object-position": props.backgroundPosition || "center",
1999
2003
  "object-fit": props.backgroundSize || "cover",
2000
2004
  ...aspectRatioCss()
2001
- }, _v$5 = props.image, _v$6 = srcSetToUse(), _v$7 = props.sizes;
2005
+ }, _v$7 = props.image, _v$8 = srcSetToUse(), _v$9 = props.sizes;
2002
2006
  _v$ !== _p$._v$ && className(_el$3, _p$._v$ = _v$);
2003
- _v$2 !== _p$._v$2 && setAttribute(_el$3, "alt", _p$._v$2 = _v$2);
2004
- _v$3 !== _p$._v$3 && setAttribute(_el$3, "role", _p$._v$3 = _v$3);
2005
- _p$._v$4 = style(_el$3, _v$4, _p$._v$4);
2006
- _v$5 !== _p$._v$5 && setAttribute(_el$3, "src", _p$._v$5 = _v$5);
2007
- _v$6 !== _p$._v$6 && setAttribute(_el$3, "srcset", _p$._v$6 = _v$6);
2008
- _v$7 !== _p$._v$7 && setAttribute(_el$3, "sizes", _p$._v$7 = _v$7);
2007
+ _v$2 !== _p$._v$2 && setAttribute(_el$3, "loading", _p$._v$2 = _v$2);
2008
+ _v$3 !== _p$._v$3 && setAttribute(_el$3, "fetchpriority", _p$._v$3 = _v$3);
2009
+ _v$4 !== _p$._v$4 && setAttribute(_el$3, "alt", _p$._v$4 = _v$4);
2010
+ _v$5 !== _p$._v$5 && setAttribute(_el$3, "role", _p$._v$5 = _v$5);
2011
+ _p$._v$6 = style(_el$3, _v$6, _p$._v$6);
2012
+ _v$7 !== _p$._v$7 && setAttribute(_el$3, "src", _p$._v$7 = _v$7);
2013
+ _v$8 !== _p$._v$8 && setAttribute(_el$3, "srcset", _p$._v$8 = _v$8);
2014
+ _v$9 !== _p$._v$9 && setAttribute(_el$3, "sizes", _p$._v$9 = _v$9);
2009
2015
  return _p$;
2010
2016
  }, {
2011
2017
  _v$: void 0,
@@ -2014,7 +2020,9 @@ function Image(props) {
2014
2020
  _v$4: void 0,
2015
2021
  _v$5: void 0,
2016
2022
  _v$6: void 0,
2017
- _v$7: void 0
2023
+ _v$7: void 0,
2024
+ _v$8: void 0,
2025
+ _v$9: void 0
2018
2026
  });
2019
2027
  return _el$;
2020
2028
  })(), createComponent(Show, {
@@ -2024,17 +2032,17 @@ function Image(props) {
2024
2032
  get children() {
2025
2033
  const _el$4 = _tmpl$32();
2026
2034
  effect((_p$) => {
2027
- const _v$8 = "builder-image-sizer " + css({
2035
+ const _v$10 = "builder-image-sizer " + css({
2028
2036
  width: "100%",
2029
2037
  pointerEvents: "none",
2030
2038
  fontSize: "0"
2031
- }), _v$9 = props.aspectRatio * 100 + "%";
2032
- _v$8 !== _p$._v$8 && className(_el$4, _p$._v$8 = _v$8);
2033
- _v$9 !== _p$._v$9 && ((_p$._v$9 = _v$9) != null ? _el$4.style.setProperty("padding-top", _v$9) : _el$4.style.removeProperty("padding-top"));
2039
+ }), _v$11 = props.aspectRatio * 100 + "%";
2040
+ _v$10 !== _p$._v$10 && className(_el$4, _p$._v$10 = _v$10);
2041
+ _v$11 !== _p$._v$11 && ((_p$._v$11 = _v$11) != null ? _el$4.style.setProperty("padding-top", _v$11) : _el$4.style.removeProperty("padding-top"));
2034
2042
  return _p$;
2035
2043
  }, {
2036
- _v$8: void 0,
2037
- _v$9: void 0
2044
+ _v$10: void 0,
2045
+ _v$11: void 0
2038
2046
  });
2039
2047
  return _el$4;
2040
2048
  }
@@ -2975,6 +2983,11 @@ var componentInfo5 = {
2975
2983
  type: "boolean",
2976
2984
  helperText: "When child blocks are provided, fit to them instead of using the image's aspect ratio",
2977
2985
  defaultValue: true
2986
+ }, {
2987
+ name: "highPriority",
2988
+ type: "boolean",
2989
+ advanced: true,
2990
+ helperText: "Mark this image as high priority compared to other images on the page. This prevents lazy loading of the image and tells the browser to load this image before others on the page."
2978
2991
  }, {
2979
2992
  name: "aspectRatio",
2980
2993
  type: "number",
@@ -5173,12 +5186,15 @@ var getInteractionPropertiesForEvent = (event) => {
5173
5186
  // src/functions/is-from-trusted-host.ts
5174
5187
  var DEFAULT_TRUSTED_HOSTS = ["*.beta.builder.io", "beta.builder.io", "builder.io", "localhost", "qa.builder.io"];
5175
5188
  function isFromTrustedHost(trustedHosts, e) {
5189
+ if (!e.origin.startsWith("http") && !e.origin.startsWith("https")) {
5190
+ return false;
5191
+ }
5176
5192
  const url = new URL(e.origin), hostname = url.hostname;
5177
5193
  return (trustedHosts || DEFAULT_TRUSTED_HOSTS).findIndex((trustedHost) => trustedHost.startsWith("*.") ? hostname.endsWith(trustedHost.slice(1)) : trustedHost === hostname) > -1;
5178
5194
  }
5179
5195
 
5180
5196
  // src/constants/sdk-version.ts
5181
- var SDK_VERSION = "1.0.31";
5197
+ var SDK_VERSION = "1.0.33";
5182
5198
 
5183
5199
  // src/functions/register.ts
5184
5200
  var registry = {};
@@ -5897,9 +5913,6 @@ function ContentComponent(props) {
5897
5913
  get contentWrapperProps() {
5898
5914
  return props.contentWrapperProps;
5899
5915
  },
5900
- get linkComponent() {
5901
- return props.linkComponent;
5902
- },
5903
5916
  get trustedHosts() {
5904
5917
  return props.trustedHosts;
5905
5918
  }
package/lib/node/dev.jsx CHANGED
@@ -109,11 +109,7 @@ import { Show as Show4, For as For2, onMount, createMemo as createMemo5 } from "
109
109
  function getBlockComponentOptions(block) {
110
110
  return {
111
111
  ...block.component?.options,
112
- ...block.options,
113
- /**
114
- * Our built-in components frequently make use of the block, so we provide all of it under `builderBlock`
115
- */
116
- builderBlock: block
112
+ ...block.options
117
113
  };
118
114
  }
119
115
 
@@ -933,11 +929,25 @@ var getRepeatItemData = ({
933
929
  }));
934
930
  return repeatArray;
935
931
  };
936
- var shouldPassLinkComponent = (block) => {
937
- return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
932
+ var provideLinkComponent = (block, linkComponent) => {
933
+ return block && (block.isRSC && TARGET === "rsc" || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
934
+ builderLinkComponent: linkComponent
935
+ } : {};
936
+ };
937
+ var provideRegisteredComponents = (block, registeredComponents) => {
938
+ return block && (block.isRSC && TARGET === "rsc" || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
939
+ builderComponents: registeredComponents
940
+ } : {};
938
941
  };
939
- var shouldPassRegisteredComponents = (block) => {
940
- return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
942
+ var provideBuilderBlock = (block, builderBlock) => {
943
+ return block && (block.isRSC && TARGET === "rsc" || TARGET === "reactNative" && block.name === "Text" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Image", "Video"].includes(block.name)) ? {
944
+ builderBlock
945
+ } : {};
946
+ };
947
+ var provideBuilderContext = (block, context) => {
948
+ return block && (block.isRSC && TARGET === "rsc" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Slot"].includes(block.name)) ? {
949
+ builderContext: context
950
+ } : {};
941
951
  };
942
952
 
943
953
  // src/components/block/components/block-styles.tsx
@@ -1340,13 +1350,13 @@ function Block(props) {
1340
1350
  componentRef: blockComponent()?.component,
1341
1351
  componentOptions: {
1342
1352
  ...getBlockComponentOptions(processedBlock()),
1343
- builderContext: props.context,
1344
- ...shouldPassLinkComponent(blockComponent()) ? {
1345
- builderLinkComponent: props.linkComponent
1346
- } : {},
1347
- ...shouldPassRegisteredComponents(blockComponent()) ? {
1348
- builderComponents: props.registeredComponents
1349
- } : {}
1353
+ ...provideBuilderBlock(blockComponent(), processedBlock()),
1354
+ ...provideBuilderContext(blockComponent(), props.context),
1355
+ ...provideLinkComponent(blockComponent(), props.linkComponent),
1356
+ ...provideRegisteredComponents(
1357
+ blockComponent(),
1358
+ props.registeredComponents
1359
+ )
1350
1360
  },
1351
1361
  context: props.context,
1352
1362
  linkComponent: props.linkComponent,
@@ -1399,7 +1409,6 @@ function Block(props) {
1399
1409
  Wrapper={Tag()}
1400
1410
  block={processedBlock()}
1401
1411
  context={props.context}
1402
- linkComponent={props.linkComponent}
1403
1412
  >
1404
1413
  <Component_ref_default
1405
1414
  componentRef={componentRefProps().componentRef}
@@ -1767,7 +1776,8 @@ function Image(props) {
1767
1776
  opacity: "1",
1768
1777
  transition: "opacity 0.2s ease-in-out"
1769
1778
  })}
1770
- loading="lazy"
1779
+ loading={props.highPriority ? "eager" : "lazy"}
1780
+ fetchpriority={props.highPriority ? "high" : "auto"}
1771
1781
  alt={props.altText}
1772
1782
  role={props.altText ? void 0 : "presentation"}
1773
1783
  style={{
@@ -2685,6 +2695,11 @@ var componentInfo5 = {
2685
2695
  type: "boolean",
2686
2696
  helperText: "When child blocks are provided, fit to them instead of using the image's aspect ratio",
2687
2697
  defaultValue: true
2698
+ }, {
2699
+ name: "highPriority",
2700
+ type: "boolean",
2701
+ advanced: true,
2702
+ helperText: "Mark this image as high priority compared to other images on the page. This prevents lazy loading of the image and tells the browser to load this image before others on the page."
2688
2703
  }, {
2689
2704
  name: "aspectRatio",
2690
2705
  type: "number",
@@ -4686,12 +4701,15 @@ var getInteractionPropertiesForEvent = (event) => {
4686
4701
  // src/functions/is-from-trusted-host.ts
4687
4702
  var DEFAULT_TRUSTED_HOSTS = ["*.beta.builder.io", "beta.builder.io", "builder.io", "localhost", "qa.builder.io"];
4688
4703
  function isFromTrustedHost(trustedHosts, e) {
4704
+ if (!e.origin.startsWith("http") && !e.origin.startsWith("https")) {
4705
+ return false;
4706
+ }
4689
4707
  const url = new URL(e.origin), hostname = url.hostname;
4690
4708
  return (trustedHosts || DEFAULT_TRUSTED_HOSTS).findIndex((trustedHost) => trustedHost.startsWith("*.") ? hostname.endsWith(trustedHost.slice(1)) : trustedHost === hostname) > -1;
4691
4709
  }
4692
4710
 
4693
4711
  // src/constants/sdk-version.ts
4694
- var SDK_VERSION = "1.0.31";
4712
+ var SDK_VERSION = "1.0.33";
4695
4713
 
4696
4714
  // src/functions/register.ts
4697
4715
  var registry = {};
@@ -5409,7 +5427,6 @@ function ContentComponent(props) {
5409
5427
  builderContextSignal={builderContextSignal()}
5410
5428
  contentWrapper={props.contentWrapper}
5411
5429
  contentWrapperProps={props.contentWrapperProps}
5412
- linkComponent={props.linkComponent}
5413
5430
  trustedHosts={props.trustedHosts}
5414
5431
  {...{
5415
5432
  setBuilderContextSignal
package/lib/node/index.js CHANGED
@@ -123,11 +123,7 @@ var components_context_default = createContext({ registeredComponents: {} });
123
123
  function getBlockComponentOptions(block) {
124
124
  return {
125
125
  ...block.component?.options,
126
- ...block.options,
127
- /**
128
- * Our built-in components frequently make use of the block, so we provide all of it under `builderBlock`
129
- */
130
- builderBlock: block
126
+ ...block.options
131
127
  };
132
128
  }
133
129
 
@@ -938,11 +934,25 @@ var getRepeatItemData = ({
938
934
  }));
939
935
  return repeatArray;
940
936
  };
941
- var shouldPassLinkComponent = (block) => {
942
- return block && (block.isRSC || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
937
+ var provideLinkComponent = (block, linkComponent) => {
938
+ return block && (block.isRSC && TARGET === "rsc" || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
939
+ builderLinkComponent: linkComponent
940
+ } : {};
941
+ };
942
+ var provideRegisteredComponents = (block, registeredComponents) => {
943
+ return block && (block.isRSC && TARGET === "rsc" || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
944
+ builderComponents: registeredComponents
945
+ } : {};
946
+ };
947
+ var provideBuilderBlock = (block, builderBlock) => {
948
+ return block && (block.isRSC && TARGET === "rsc" || TARGET === "reactNative" && block.name === "Text" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Image", "Video"].includes(block.name)) ? {
949
+ builderBlock
950
+ } : {};
943
951
  };
944
- var shouldPassRegisteredComponents = (block) => {
945
- return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
952
+ var provideBuilderContext = (block, context) => {
953
+ return block && (block.isRSC && TARGET === "rsc" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Slot"].includes(block.name)) ? {
954
+ builderContext: context
955
+ } : {};
946
956
  };
947
957
 
948
958
  // src/constants/device-sizes.ts
@@ -1391,13 +1401,10 @@ function Block(props) {
1391
1401
  componentRef: blockComponent()?.component,
1392
1402
  componentOptions: {
1393
1403
  ...getBlockComponentOptions(processedBlock()),
1394
- builderContext: props.context,
1395
- ...shouldPassLinkComponent(blockComponent()) ? {
1396
- builderLinkComponent: props.linkComponent
1397
- } : {},
1398
- ...shouldPassRegisteredComponents(blockComponent()) ? {
1399
- builderComponents: props.registeredComponents
1400
- } : {}
1404
+ ...provideBuilderBlock(blockComponent(), processedBlock()),
1405
+ ...provideBuilderContext(blockComponent(), props.context),
1406
+ ...provideLinkComponent(blockComponent(), props.linkComponent),
1407
+ ...provideRegisteredComponents(blockComponent(), props.registeredComponents)
1401
1408
  },
1402
1409
  context: props.context,
1403
1410
  linkComponent: props.linkComponent,
@@ -1505,9 +1512,6 @@ function Block(props) {
1505
1512
  get context() {
1506
1513
  return props.context;
1507
1514
  },
1508
- get linkComponent() {
1509
- return props.linkComponent;
1510
- },
1511
1515
  get children() {
1512
1516
  return [createComponent(component_ref_default, {
1513
1517
  get componentRef() {
@@ -1933,7 +1937,7 @@ function getSrcSet(url) {
1933
1937
 
1934
1938
  // src/blocks/image/image.tsx
1935
1939
  var _tmpl$4 = /* @__PURE__ */ template(`<source type=image/webp>`);
1936
- var _tmpl$22 = /* @__PURE__ */ template(`<picture><img loading=lazy>`);
1940
+ var _tmpl$22 = /* @__PURE__ */ template(`<picture><img>`);
1937
1941
  var _tmpl$32 = /* @__PURE__ */ template(`<div>`);
1938
1942
  function Image(props) {
1939
1943
  const srcSetToUse = createMemo(() => {
@@ -1987,18 +1991,20 @@ function Image(props) {
1987
1991
  const _v$ = "builder-image" + (props.className ? " " + props.className : "") + " " + css({
1988
1992
  opacity: "1",
1989
1993
  transition: "opacity 0.2s ease-in-out"
1990
- }), _v$2 = props.altText, _v$3 = props.altText ? void 0 : "presentation", _v$4 = {
1994
+ }), _v$2 = props.highPriority ? "eager" : "lazy", _v$3 = props.highPriority ? "high" : "auto", _v$4 = props.altText, _v$5 = props.altText ? void 0 : "presentation", _v$6 = {
1991
1995
  "object-position": props.backgroundPosition || "center",
1992
1996
  "object-fit": props.backgroundSize || "cover",
1993
1997
  ...aspectRatioCss()
1994
- }, _v$5 = props.image, _v$6 = srcSetToUse(), _v$7 = props.sizes;
1998
+ }, _v$7 = props.image, _v$8 = srcSetToUse(), _v$9 = props.sizes;
1995
1999
  _v$ !== _p$._v$ && className(_el$3, _p$._v$ = _v$);
1996
- _v$2 !== _p$._v$2 && setAttribute(_el$3, "alt", _p$._v$2 = _v$2);
1997
- _v$3 !== _p$._v$3 && setAttribute(_el$3, "role", _p$._v$3 = _v$3);
1998
- _p$._v$4 = style(_el$3, _v$4, _p$._v$4);
1999
- _v$5 !== _p$._v$5 && setAttribute(_el$3, "src", _p$._v$5 = _v$5);
2000
- _v$6 !== _p$._v$6 && setAttribute(_el$3, "srcset", _p$._v$6 = _v$6);
2001
- _v$7 !== _p$._v$7 && setAttribute(_el$3, "sizes", _p$._v$7 = _v$7);
2000
+ _v$2 !== _p$._v$2 && setAttribute(_el$3, "loading", _p$._v$2 = _v$2);
2001
+ _v$3 !== _p$._v$3 && setAttribute(_el$3, "fetchpriority", _p$._v$3 = _v$3);
2002
+ _v$4 !== _p$._v$4 && setAttribute(_el$3, "alt", _p$._v$4 = _v$4);
2003
+ _v$5 !== _p$._v$5 && setAttribute(_el$3, "role", _p$._v$5 = _v$5);
2004
+ _p$._v$6 = style(_el$3, _v$6, _p$._v$6);
2005
+ _v$7 !== _p$._v$7 && setAttribute(_el$3, "src", _p$._v$7 = _v$7);
2006
+ _v$8 !== _p$._v$8 && setAttribute(_el$3, "srcset", _p$._v$8 = _v$8);
2007
+ _v$9 !== _p$._v$9 && setAttribute(_el$3, "sizes", _p$._v$9 = _v$9);
2002
2008
  return _p$;
2003
2009
  }, {
2004
2010
  _v$: void 0,
@@ -2007,7 +2013,9 @@ function Image(props) {
2007
2013
  _v$4: void 0,
2008
2014
  _v$5: void 0,
2009
2015
  _v$6: void 0,
2010
- _v$7: void 0
2016
+ _v$7: void 0,
2017
+ _v$8: void 0,
2018
+ _v$9: void 0
2011
2019
  });
2012
2020
  return _el$;
2013
2021
  })(), createComponent(Show, {
@@ -2017,17 +2025,17 @@ function Image(props) {
2017
2025
  get children() {
2018
2026
  const _el$4 = _tmpl$32();
2019
2027
  effect((_p$) => {
2020
- const _v$8 = "builder-image-sizer " + css({
2028
+ const _v$10 = "builder-image-sizer " + css({
2021
2029
  width: "100%",
2022
2030
  pointerEvents: "none",
2023
2031
  fontSize: "0"
2024
- }), _v$9 = props.aspectRatio * 100 + "%";
2025
- _v$8 !== _p$._v$8 && className(_el$4, _p$._v$8 = _v$8);
2026
- _v$9 !== _p$._v$9 && ((_p$._v$9 = _v$9) != null ? _el$4.style.setProperty("padding-top", _v$9) : _el$4.style.removeProperty("padding-top"));
2032
+ }), _v$11 = props.aspectRatio * 100 + "%";
2033
+ _v$10 !== _p$._v$10 && className(_el$4, _p$._v$10 = _v$10);
2034
+ _v$11 !== _p$._v$11 && ((_p$._v$11 = _v$11) != null ? _el$4.style.setProperty("padding-top", _v$11) : _el$4.style.removeProperty("padding-top"));
2027
2035
  return _p$;
2028
2036
  }, {
2029
- _v$8: void 0,
2030
- _v$9: void 0
2037
+ _v$10: void 0,
2038
+ _v$11: void 0
2031
2039
  });
2032
2040
  return _el$4;
2033
2041
  }
@@ -2967,6 +2975,11 @@ var componentInfo5 = {
2967
2975
  type: "boolean",
2968
2976
  helperText: "When child blocks are provided, fit to them instead of using the image's aspect ratio",
2969
2977
  defaultValue: true
2978
+ }, {
2979
+ name: "highPriority",
2980
+ type: "boolean",
2981
+ advanced: true,
2982
+ helperText: "Mark this image as high priority compared to other images on the page. This prevents lazy loading of the image and tells the browser to load this image before others on the page."
2970
2983
  }, {
2971
2984
  name: "aspectRatio",
2972
2985
  type: "number",
@@ -5158,12 +5171,15 @@ var getInteractionPropertiesForEvent = (event) => {
5158
5171
  // src/functions/is-from-trusted-host.ts
5159
5172
  var DEFAULT_TRUSTED_HOSTS = ["*.beta.builder.io", "beta.builder.io", "builder.io", "localhost", "qa.builder.io"];
5160
5173
  function isFromTrustedHost(trustedHosts, e) {
5174
+ if (!e.origin.startsWith("http") && !e.origin.startsWith("https")) {
5175
+ return false;
5176
+ }
5161
5177
  const url = new URL(e.origin), hostname = url.hostname;
5162
5178
  return (trustedHosts || DEFAULT_TRUSTED_HOSTS).findIndex((trustedHost) => trustedHost.startsWith("*.") ? hostname.endsWith(trustedHost.slice(1)) : trustedHost === hostname) > -1;
5163
5179
  }
5164
5180
 
5165
5181
  // src/constants/sdk-version.ts
5166
- var SDK_VERSION = "1.0.31";
5182
+ var SDK_VERSION = "1.0.33";
5167
5183
 
5168
5184
  // src/functions/register.ts
5169
5185
  var registry = {};
@@ -5880,9 +5896,6 @@ function ContentComponent(props) {
5880
5896
  get contentWrapperProps() {
5881
5897
  return props.contentWrapperProps;
5882
5898
  },
5883
- get linkComponent() {
5884
- return props.linkComponent;
5885
- },
5886
5899
  get trustedHosts() {
5887
5900
  return props.trustedHosts;
5888
5901
  }