@builder.io/sdk-solid 1.0.35 → 1.1.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/edge/index.js CHANGED
@@ -3924,25 +3924,56 @@ var getRepeatItemData = ({
3924
3924
  }));
3925
3925
  return repeatArray;
3926
3926
  };
3927
+ var applyDefaults = (shouldReceiveBuilderProps) => {
3928
+ return {
3929
+ // once we bump to a major version, toggle this to `false`.
3930
+ builderBlock: true,
3931
+ // once we bump to a major version, toggle this to `false`.
3932
+ builderContext: true,
3933
+ builderComponents: false,
3934
+ builderLinkComponent: false,
3935
+ ...shouldReceiveBuilderProps
3936
+ };
3937
+ };
3927
3938
  var provideLinkComponent = (block, linkComponent) => {
3928
- return block && (block.isRSC && TARGET === "rsc" || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
3939
+ if (!block)
3940
+ return {};
3941
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderLinkComponent;
3942
+ if (!shouldReceiveProp)
3943
+ return {};
3944
+ return {
3929
3945
  builderLinkComponent: linkComponent
3930
- } : {};
3946
+ };
3931
3947
  };
3932
3948
  var provideRegisteredComponents = (block, registeredComponents) => {
3933
- return block && (block.isRSC && TARGET === "rsc" || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
3949
+ if (!block)
3950
+ return {};
3951
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderComponents;
3952
+ if (!shouldReceiveProp)
3953
+ return {};
3954
+ return {
3934
3955
  builderComponents: registeredComponents
3935
- } : {};
3956
+ };
3936
3957
  };
3937
3958
  var provideBuilderBlock = (block, builderBlock) => {
3938
- return block && (block.isRSC && TARGET === "rsc" || TARGET === "reactNative" && block.name === "Text" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Image", "Video"].includes(block.name)) ? {
3959
+ if (!block)
3960
+ return {};
3961
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderBlock;
3962
+ if (!shouldReceiveProp)
3963
+ return {};
3964
+ return {
3939
3965
  builderBlock
3940
- } : {};
3966
+ };
3941
3967
  };
3942
3968
  var provideBuilderContext = (block, context) => {
3943
- return block && (block.isRSC && TARGET === "rsc" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Slot"].includes(block.name)) ? {
3969
+ if (!block)
3970
+ return {};
3971
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderContext;
3972
+ if (!shouldReceiveProp)
3973
+ return {};
3974
+ return {
3944
3975
  builderContext: context
3945
- } : {};
3976
+ };
3946
3977
  };
3947
3978
 
3948
3979
  // src/constants/device-sizes.ts
@@ -5392,7 +5423,13 @@ var componentInfo = {
5392
5423
  options.set("items", []);
5393
5424
  }
5394
5425
  }
5395
- }]
5426
+ }],
5427
+ shouldReceiveBuilderProps: {
5428
+ builderBlock: true,
5429
+ builderContext: true,
5430
+ builderComponents: true,
5431
+ builderLinkComponent: true
5432
+ }
5396
5433
  };
5397
5434
 
5398
5435
  // src/blocks/accordion/helpers.ts
@@ -5615,7 +5652,13 @@ var componentInfo2 = {
5615
5652
  friendlyName: "Open link in new tab"
5616
5653
  }],
5617
5654
  static: true,
5618
- noWrap: true
5655
+ noWrap: true,
5656
+ shouldReceiveBuilderProps: {
5657
+ builderBlock: false,
5658
+ builderContext: false,
5659
+ builderComponents: false,
5660
+ builderLinkComponent: true
5661
+ }
5619
5662
  };
5620
5663
 
5621
5664
  // src/blocks/columns/component-info.ts
@@ -5835,11 +5878,23 @@ var componentInfo3 = {
5835
5878
  defaultValue: false,
5836
5879
  helperText: "When stacking columns for mobile devices, reverse the ordering",
5837
5880
  advanced: true
5838
- }]
5881
+ }],
5882
+ shouldReceiveBuilderProps: {
5883
+ builderBlock: true,
5884
+ builderContext: true,
5885
+ builderComponents: true,
5886
+ builderLinkComponent: true
5887
+ }
5839
5888
  };
5840
5889
 
5841
5890
  // src/blocks/fragment/component-info.ts
5842
5891
  var componentInfo4 = {
5892
+ shouldReceiveBuilderProps: {
5893
+ builderBlock: false,
5894
+ builderContext: false,
5895
+ builderComponents: false,
5896
+ builderLinkComponent: false
5897
+ },
5843
5898
  name: "Fragment",
5844
5899
  static: true,
5845
5900
  hidden: true,
@@ -5971,11 +6026,23 @@ var componentInfo5 = {
5971
6026
  helperText: "This is the ratio of height/width, e.g. set to 1.5 for a 300px wide and 200px tall photo. Set to 0 to not force the image to maintain it's aspect ratio",
5972
6027
  advanced: true,
5973
6028
  defaultValue: 0.7041
5974
- }]
6029
+ }],
6030
+ shouldReceiveBuilderProps: {
6031
+ builderBlock: true,
6032
+ builderContext: false,
6033
+ builderComponents: false,
6034
+ builderLinkComponent: false
6035
+ }
5975
6036
  };
5976
6037
 
5977
6038
  // src/blocks/section/component-info.ts
5978
6039
  var componentInfo6 = {
6040
+ shouldReceiveBuilderProps: {
6041
+ builderBlock: false,
6042
+ builderContext: false,
6043
+ builderComponents: false,
6044
+ builderLinkComponent: false
6045
+ },
5979
6046
  name: "Core:Section",
5980
6047
  static: true,
5981
6048
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a",
@@ -6029,7 +6096,13 @@ var componentInfo7 = {
6029
6096
  type: "string",
6030
6097
  required: true,
6031
6098
  defaultValue: "children"
6032
- }]
6099
+ }],
6100
+ shouldReceiveBuilderProps: {
6101
+ builderBlock: false,
6102
+ builderContext: true,
6103
+ builderComponents: false,
6104
+ builderLinkComponent: false
6105
+ }
6033
6106
  };
6034
6107
  var _tmpl$8 = /* @__PURE__ */ template(`<div>`);
6035
6108
  function Slot(props) {
@@ -6091,7 +6164,13 @@ var componentInfo8 = {
6091
6164
  name: "useChildren",
6092
6165
  hideFromUI: true,
6093
6166
  type: "boolean"
6094
- }]
6167
+ }],
6168
+ shouldReceiveBuilderProps: {
6169
+ builderBlock: true,
6170
+ builderContext: true,
6171
+ builderComponents: true,
6172
+ builderLinkComponent: true
6173
+ }
6095
6174
  };
6096
6175
 
6097
6176
  // src/blocks/tabs/component-info.ts
@@ -6231,7 +6310,13 @@ var componentInfo9 = {
6231
6310
  label: "Right",
6232
6311
  value: "flex-end"
6233
6312
  }]
6234
- }]
6313
+ }],
6314
+ shouldReceiveBuilderProps: {
6315
+ builderBlock: true,
6316
+ builderContext: true,
6317
+ builderComponents: true,
6318
+ builderLinkComponent: true
6319
+ }
6235
6320
  };
6236
6321
  var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
6237
6322
  var _tmpl$25 = /* @__PURE__ */ template(`<div><div class=builder-tabs-wrap>`);
@@ -6334,6 +6419,12 @@ delegateEvents(["click"]);
6334
6419
 
6335
6420
  // src/blocks/text/component-info.ts
6336
6421
  var componentInfo10 = {
6422
+ shouldReceiveBuilderProps: {
6423
+ builderBlock: TARGET === "reactNative" ? true : false,
6424
+ builderContext: false,
6425
+ builderComponents: false,
6426
+ builderLinkComponent: false
6427
+ },
6337
6428
  name: "Text",
6338
6429
  static: true,
6339
6430
  isRSC: true,
@@ -6365,6 +6456,12 @@ var text_default = Text;
6365
6456
 
6366
6457
  // src/blocks/custom-code/component-info.ts
6367
6458
  var componentInfo11 = {
6459
+ shouldReceiveBuilderProps: {
6460
+ builderBlock: false,
6461
+ builderContext: false,
6462
+ builderComponents: false,
6463
+ builderLinkComponent: false
6464
+ },
6368
6465
  name: "Custom Code",
6369
6466
  static: true,
6370
6467
  requiredPermissions: ["editCode"],
@@ -6440,6 +6537,12 @@ var custom_code_default = CustomCode;
6440
6537
 
6441
6538
  // src/blocks/embed/component-info.ts
6442
6539
  var componentInfo12 = {
6540
+ shouldReceiveBuilderProps: {
6541
+ builderBlock: false,
6542
+ builderContext: false,
6543
+ builderComponents: false,
6544
+ builderLinkComponent: false
6545
+ },
6443
6546
  name: "Embed",
6444
6547
  static: true,
6445
6548
  inputs: [{
@@ -6758,7 +6861,13 @@ var componentInfo13 = {
6758
6861
  text: "Submit"
6759
6862
  }
6760
6863
  }
6761
- }]
6864
+ }],
6865
+ shouldReceiveBuilderProps: {
6866
+ builderBlock: true,
6867
+ builderContext: true,
6868
+ builderComponents: true,
6869
+ builderLinkComponent: true
6870
+ }
6762
6871
  };
6763
6872
 
6764
6873
  // src/functions/get-env.ts
@@ -7078,6 +7187,12 @@ var form_default = FormComponent;
7078
7187
 
7079
7188
  // src/blocks/form/input/component-info.ts
7080
7189
  var componentInfo14 = {
7190
+ shouldReceiveBuilderProps: {
7191
+ builderBlock: false,
7192
+ builderContext: false,
7193
+ builderComponents: false,
7194
+ builderLinkComponent: false
7195
+ },
7081
7196
  name: "Form:Input",
7082
7197
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca",
7083
7198
  inputs: [
@@ -7163,6 +7278,12 @@ var input_default = FormInputComponent;
7163
7278
 
7164
7279
  // src/blocks/form/select/component-info.ts
7165
7280
  var componentInfo15 = {
7281
+ shouldReceiveBuilderProps: {
7282
+ builderBlock: false,
7283
+ builderContext: false,
7284
+ builderComponents: false,
7285
+ builderLinkComponent: false
7286
+ },
7166
7287
  name: "Form:Select",
7167
7288
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045",
7168
7289
  defaultStyles: {
@@ -7222,6 +7343,9 @@ function SelectComponent(props) {
7222
7343
  },
7223
7344
  get name() {
7224
7345
  return props.name;
7346
+ },
7347
+ get required() {
7348
+ return props.required;
7225
7349
  }
7226
7350
  }), false, true);
7227
7351
  insert(_el$, createComponent(For, {
@@ -7246,6 +7370,12 @@ var select_default = SelectComponent;
7246
7370
 
7247
7371
  // src/blocks/form/submit-button/component-info.ts
7248
7372
  var componentInfo16 = {
7373
+ shouldReceiveBuilderProps: {
7374
+ builderBlock: false,
7375
+ builderContext: false,
7376
+ builderComponents: false,
7377
+ builderLinkComponent: false
7378
+ },
7249
7379
  name: "Form:SubmitButton",
7250
7380
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98",
7251
7381
  defaultStyles: {
@@ -7282,8 +7412,84 @@ function SubmitButton(props) {
7282
7412
  }
7283
7413
  var submit_button_default = SubmitButton;
7284
7414
 
7285
- // src/blocks/img/component-info.ts
7415
+ // src/blocks/form/textarea/component-info.ts
7286
7416
  var componentInfo17 = {
7417
+ shouldReceiveBuilderProps: {
7418
+ builderBlock: false,
7419
+ builderContext: false,
7420
+ builderComponents: false,
7421
+ builderLinkComponent: false
7422
+ },
7423
+ name: "Form:TextArea",
7424
+ image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3",
7425
+ inputs: [{
7426
+ advanced: true,
7427
+ name: "value",
7428
+ type: "string"
7429
+ }, {
7430
+ name: "name",
7431
+ type: "string",
7432
+ required: true,
7433
+ helperText: 'Every input in a form needs a unique name describing what it gets, e.g. "email"'
7434
+ }, {
7435
+ name: "defaultValue",
7436
+ type: "string"
7437
+ }, {
7438
+ name: "placeholder",
7439
+ type: "string",
7440
+ defaultValue: "Hello there"
7441
+ }, {
7442
+ name: "required",
7443
+ type: "boolean",
7444
+ defaultValue: false
7445
+ }],
7446
+ defaultStyles: {
7447
+ paddingTop: "10px",
7448
+ paddingBottom: "10px",
7449
+ paddingLeft: "10px",
7450
+ paddingRight: "10px",
7451
+ borderRadius: "3px",
7452
+ borderWidth: "1px",
7453
+ borderStyle: "solid",
7454
+ borderColor: "#ccc"
7455
+ },
7456
+ static: true,
7457
+ noWrap: true
7458
+ };
7459
+ var _tmpl$17 = /* @__PURE__ */ template(`<textarea>`);
7460
+ function Textarea(props) {
7461
+ return (() => {
7462
+ const _el$ = _tmpl$17();
7463
+ spread(_el$, mergeProps({}, () => props.attributes, {
7464
+ get placeholder() {
7465
+ return props.placeholder;
7466
+ },
7467
+ get name() {
7468
+ return props.name;
7469
+ },
7470
+ get value() {
7471
+ return props.value;
7472
+ },
7473
+ get defaultValue() {
7474
+ return props.defaultValue;
7475
+ },
7476
+ get required() {
7477
+ return props.required;
7478
+ }
7479
+ }), false, false);
7480
+ return _el$;
7481
+ })();
7482
+ }
7483
+ var textarea_default = Textarea;
7484
+
7485
+ // src/blocks/img/component-info.ts
7486
+ var componentInfo18 = {
7487
+ shouldReceiveBuilderProps: {
7488
+ builderBlock: false,
7489
+ builderContext: false,
7490
+ builderComponents: false,
7491
+ builderLinkComponent: false
7492
+ },
7287
7493
  // friendlyName?
7288
7494
  name: "Raw:Img",
7289
7495
  hideFromInsertMenu: true,
@@ -7298,10 +7504,10 @@ var componentInfo17 = {
7298
7504
  noWrap: true,
7299
7505
  static: true
7300
7506
  };
7301
- var _tmpl$17 = /* @__PURE__ */ template(`<img>`);
7507
+ var _tmpl$18 = /* @__PURE__ */ template(`<img>`);
7302
7508
  function ImgComponent(props) {
7303
7509
  return (() => {
7304
- const _el$ = _tmpl$17();
7510
+ const _el$ = _tmpl$18();
7305
7511
  spread(_el$, mergeProps({
7306
7512
  get style() {
7307
7513
  return {
@@ -7325,7 +7531,7 @@ function ImgComponent(props) {
7325
7531
  var img_default = ImgComponent;
7326
7532
 
7327
7533
  // src/blocks/video/component-info.ts
7328
- var componentInfo18 = {
7534
+ var componentInfo19 = {
7329
7535
  name: "Video",
7330
7536
  canHaveChildren: true,
7331
7537
  defaultStyles: {
@@ -7405,9 +7611,15 @@ var componentInfo18 = {
7405
7611
  helperText: 'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',
7406
7612
  defaultValue: true,
7407
7613
  advanced: true
7408
- }]
7614
+ }],
7615
+ shouldReceiveBuilderProps: {
7616
+ builderBlock: true,
7617
+ builderContext: false,
7618
+ builderComponents: false,
7619
+ builderLinkComponent: false
7620
+ }
7409
7621
  };
7410
- var _tmpl$18 = /* @__PURE__ */ template(`<source type=video/mp4>`);
7622
+ var _tmpl$19 = /* @__PURE__ */ template(`<source type=video/mp4>`);
7411
7623
  var _tmpl$28 = /* @__PURE__ */ template(`<div>`);
7412
7624
  var _tmpl$35 = /* @__PURE__ */ template(`<div><video class=builder-video>`);
7413
7625
  function Video(props) {
@@ -7470,7 +7682,7 @@ function Video(props) {
7470
7682
  return !props.lazyLoad;
7471
7683
  },
7472
7684
  get children() {
7473
- const _el$3 = _tmpl$18();
7685
+ const _el$3 = _tmpl$19();
7474
7686
  effect(() => setAttribute(_el$3, "src", props.video));
7475
7687
  return _el$3;
7476
7688
  }
@@ -7544,12 +7756,15 @@ var getExtraComponents = () => [{
7544
7756
  }, {
7545
7757
  component: select_default,
7546
7758
  ...componentInfo15
7759
+ }, {
7760
+ component: textarea_default,
7761
+ ...componentInfo17
7547
7762
  }], {
7548
7763
  component: img_default,
7549
- ...componentInfo17
7764
+ ...componentInfo18
7550
7765
  }, {
7551
7766
  component: video_default,
7552
- ...componentInfo18
7767
+ ...componentInfo19
7553
7768
  }];
7554
7769
 
7555
7770
  // src/constants/builder-registered-components.ts
@@ -7652,10 +7867,10 @@ var getUpdateVariantVisibilityScript = ({
7652
7867
  }) => `window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME}(
7653
7868
  "${variationId}", "${contentId}", ${isHydrationTarget}
7654
7869
  )`;
7655
- var _tmpl$19 = /* @__PURE__ */ template(`<script>`);
7870
+ var _tmpl$20 = /* @__PURE__ */ template(`<script>`);
7656
7871
  function InlinedScript(props) {
7657
7872
  return (() => {
7658
- const _el$ = _tmpl$19();
7873
+ const _el$ = _tmpl$20();
7659
7874
  effect((_p$) => {
7660
7875
  const _v$ = props.scriptStr, _v$2 = props.id;
7661
7876
  _v$ !== _p$._v$ && (_el$.innerHTML = _p$._v$ = _v$);
@@ -8164,7 +8379,7 @@ function isFromTrustedHost(trustedHosts, e) {
8164
8379
  }
8165
8380
 
8166
8381
  // src/constants/sdk-version.ts
8167
- var SDK_VERSION = "1.0.35";
8382
+ var SDK_VERSION = "1.1.0";
8168
8383
 
8169
8384
  // src/functions/register.ts
8170
8385
  var registry = {};
@@ -9146,7 +9361,7 @@ var fetchSymbolContent = async ({
9146
9361
  };
9147
9362
 
9148
9363
  // src/blocks/symbol/symbol.tsx
9149
- var _tmpl$20 = /* @__PURE__ */ template(`<div>`);
9364
+ var _tmpl$21 = /* @__PURE__ */ template(`<div>`);
9150
9365
  function Symbol2(props) {
9151
9366
  const [contentToUse, setContentToUse] = createSignal(props.symbol?.content);
9152
9367
  const blocksWrapper = createMemo(() => {
@@ -9178,7 +9393,7 @@ function Symbol2(props) {
9178
9393
  }
9179
9394
  createEffect(on(() => [onUpdateFn_0_props_symbol()], onUpdateFn_0));
9180
9395
  return (() => {
9181
- const _el$ = _tmpl$20();
9396
+ const _el$ = _tmpl$21();
9182
9397
  spread(_el$, mergeProps({
9183
9398
  get ["class"]() {
9184
9399
  return className();