@builder.io/sdk-solid 1.0.30 → 1.0.32

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
+ } : {};
3930
3926
  };
3931
- var shouldPassRegisteredComponents = (block) => {
3932
- return block && (block.isRSC || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name));
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
+ } : {};
3931
+ };
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",
@@ -7674,7 +7682,7 @@ function isFromTrustedHost(trustedHosts, e) {
7674
7682
  }
7675
7683
 
7676
7684
  // src/constants/sdk-version.ts
7677
- var SDK_VERSION = "1.0.30";
7685
+ var SDK_VERSION = "1.0.32";
7678
7686
 
7679
7687
  // src/functions/register.ts
7680
7688
  var registry = {};
@@ -8350,6 +8358,7 @@ function ContentComponent(props) {
8350
8358
  }),
8351
8359
  rootSetState: contentSetState,
8352
8360
  context: props.context || {},
8361
+ canTrack: props.canTrack,
8353
8362
  apiKey: props.apiKey,
8354
8363
  apiVersion: props.apiVersion,
8355
8364
  componentInfos: [
@@ -8389,7 +8398,6 @@ function ContentComponent(props) {
8389
8398
  builderContextSignal={builderContextSignal()}
8390
8399
  contentWrapper={props.contentWrapper}
8391
8400
  contentWrapperProps={props.contentWrapperProps}
8392
- linkComponent={props.linkComponent}
8393
8401
  trustedHosts={props.trustedHosts}
8394
8402
  {...{
8395
8403
  setBuilderContextSignal
@@ -8587,6 +8595,7 @@ function Symbol2(props) {
8587
8595
  ...props.builderContext.localState,
8588
8596
  ...contentToUse()?.data?.state
8589
8597
  }}
8598
+ canTrack={props.builderContext.canTrack}
8590
8599
  model={props.symbol?.model}
8591
8600
  content={contentToUse()}
8592
8601
  linkComponent={props.builderLinkComponent}
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",
@@ -5178,7 +5191,7 @@ function isFromTrustedHost(trustedHosts, e) {
5178
5191
  }
5179
5192
 
5180
5193
  // src/constants/sdk-version.ts
5181
- var SDK_VERSION = "1.0.30";
5194
+ var SDK_VERSION = "1.0.32";
5182
5195
 
5183
5196
  // src/functions/register.ts
5184
5197
  var registry = {};
@@ -5833,6 +5846,7 @@ function ContentComponent(props) {
5833
5846
  }),
5834
5847
  rootSetState: contentSetState,
5835
5848
  context: props.context || {},
5849
+ canTrack: props.canTrack,
5836
5850
  apiKey: props.apiKey,
5837
5851
  apiVersion: props.apiVersion,
5838
5852
  componentInfos: [...getDefaultRegisteredComponents(), ...props.customComponents || []].reduce((acc, {
@@ -5896,9 +5910,6 @@ function ContentComponent(props) {
5896
5910
  get contentWrapperProps() {
5897
5911
  return props.contentWrapperProps;
5898
5912
  },
5899
- get linkComponent() {
5900
- return props.linkComponent;
5901
- },
5902
5913
  get trustedHosts() {
5903
5914
  return props.trustedHosts;
5904
5915
  }
@@ -6226,6 +6237,9 @@ function Symbol(props) {
6226
6237
  ...contentToUse()?.data?.state
6227
6238
  };
6228
6239
  },
6240
+ get canTrack() {
6241
+ return props.builderContext.canTrack;
6242
+ },
6229
6243
  get model() {
6230
6244
  return props.symbol?.model;
6231
6245
  },
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",
@@ -4691,7 +4706,7 @@ function isFromTrustedHost(trustedHosts, e) {
4691
4706
  }
4692
4707
 
4693
4708
  // src/constants/sdk-version.ts
4694
- var SDK_VERSION = "1.0.30";
4709
+ var SDK_VERSION = "1.0.32";
4695
4710
 
4696
4711
  // src/functions/register.ts
4697
4712
  var registry = {};
@@ -5369,6 +5384,7 @@ function ContentComponent(props) {
5369
5384
  }),
5370
5385
  rootSetState: contentSetState,
5371
5386
  context: props.context || {},
5387
+ canTrack: props.canTrack,
5372
5388
  apiKey: props.apiKey,
5373
5389
  apiVersion: props.apiVersion,
5374
5390
  componentInfos: [
@@ -5408,7 +5424,6 @@ function ContentComponent(props) {
5408
5424
  builderContextSignal={builderContextSignal()}
5409
5425
  contentWrapper={props.contentWrapper}
5410
5426
  contentWrapperProps={props.contentWrapperProps}
5411
- linkComponent={props.linkComponent}
5412
5427
  trustedHosts={props.trustedHosts}
5413
5428
  {...{
5414
5429
  setBuilderContextSignal
@@ -5606,6 +5621,7 @@ function Symbol(props) {
5606
5621
  ...props.builderContext.localState,
5607
5622
  ...contentToUse()?.data?.state
5608
5623
  }}
5624
+ canTrack={props.builderContext.canTrack}
5609
5625
  model={props.symbol?.model}
5610
5626
  content={contentToUse()}
5611
5627
  linkComponent={props.builderLinkComponent}
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",
@@ -5163,7 +5176,7 @@ function isFromTrustedHost(trustedHosts, e) {
5163
5176
  }
5164
5177
 
5165
5178
  // src/constants/sdk-version.ts
5166
- var SDK_VERSION = "1.0.30";
5179
+ var SDK_VERSION = "1.0.32";
5167
5180
 
5168
5181
  // src/functions/register.ts
5169
5182
  var registry = {};
@@ -5816,6 +5829,7 @@ function ContentComponent(props) {
5816
5829
  }),
5817
5830
  rootSetState: contentSetState,
5818
5831
  context: props.context || {},
5832
+ canTrack: props.canTrack,
5819
5833
  apiKey: props.apiKey,
5820
5834
  apiVersion: props.apiVersion,
5821
5835
  componentInfos: [...getDefaultRegisteredComponents(), ...props.customComponents || []].reduce((acc, {
@@ -5879,9 +5893,6 @@ function ContentComponent(props) {
5879
5893
  get contentWrapperProps() {
5880
5894
  return props.contentWrapperProps;
5881
5895
  },
5882
- get linkComponent() {
5883
- return props.linkComponent;
5884
- },
5885
5896
  get trustedHosts() {
5886
5897
  return props.trustedHosts;
5887
5898
  }
@@ -6209,6 +6220,9 @@ function Symbol(props) {
6209
6220
  ...contentToUse()?.data?.state
6210
6221
  };
6211
6222
  },
6223
+ get canTrack() {
6224
+ return props.builderContext.canTrack;
6225
+ },
6212
6226
  get model() {
6213
6227
  return props.symbol?.model;
6214
6228
  },