@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/dev.js CHANGED
@@ -3930,25 +3930,56 @@ var getRepeatItemData = ({
3930
3930
  }));
3931
3931
  return repeatArray;
3932
3932
  };
3933
+ var applyDefaults = (shouldReceiveBuilderProps) => {
3934
+ return {
3935
+ // once we bump to a major version, toggle this to `false`.
3936
+ builderBlock: true,
3937
+ // once we bump to a major version, toggle this to `false`.
3938
+ builderContext: true,
3939
+ builderComponents: false,
3940
+ builderLinkComponent: false,
3941
+ ...shouldReceiveBuilderProps
3942
+ };
3943
+ };
3933
3944
  var provideLinkComponent = (block, linkComponent) => {
3934
- return block && (block.isRSC && TARGET === "rsc" || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
3945
+ if (!block)
3946
+ return {};
3947
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderLinkComponent;
3948
+ if (!shouldReceiveProp)
3949
+ return {};
3950
+ return {
3935
3951
  builderLinkComponent: linkComponent
3936
- } : {};
3952
+ };
3937
3953
  };
3938
3954
  var provideRegisteredComponents = (block, registeredComponents) => {
3939
- return block && (block.isRSC && TARGET === "rsc" || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
3955
+ if (!block)
3956
+ return {};
3957
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderComponents;
3958
+ if (!shouldReceiveProp)
3959
+ return {};
3960
+ return {
3940
3961
  builderComponents: registeredComponents
3941
- } : {};
3962
+ };
3942
3963
  };
3943
3964
  var provideBuilderBlock = (block, builderBlock) => {
3944
- return block && (block.isRSC && TARGET === "rsc" || TARGET === "reactNative" && block.name === "Text" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Image", "Video"].includes(block.name)) ? {
3965
+ if (!block)
3966
+ return {};
3967
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderBlock;
3968
+ if (!shouldReceiveProp)
3969
+ return {};
3970
+ return {
3945
3971
  builderBlock
3946
- } : {};
3972
+ };
3947
3973
  };
3948
3974
  var provideBuilderContext = (block, context) => {
3949
- return block && (block.isRSC && TARGET === "rsc" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Slot"].includes(block.name)) ? {
3975
+ if (!block)
3976
+ return {};
3977
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderContext;
3978
+ if (!shouldReceiveProp)
3979
+ return {};
3980
+ return {
3950
3981
  builderContext: context
3951
- } : {};
3982
+ };
3952
3983
  };
3953
3984
 
3954
3985
  // src/constants/device-sizes.ts
@@ -5399,7 +5430,13 @@ var componentInfo = {
5399
5430
  options.set("items", []);
5400
5431
  }
5401
5432
  }
5402
- }]
5433
+ }],
5434
+ shouldReceiveBuilderProps: {
5435
+ builderBlock: true,
5436
+ builderContext: true,
5437
+ builderComponents: true,
5438
+ builderLinkComponent: true
5439
+ }
5403
5440
  };
5404
5441
 
5405
5442
  // src/blocks/accordion/helpers.ts
@@ -5622,7 +5659,13 @@ var componentInfo2 = {
5622
5659
  friendlyName: "Open link in new tab"
5623
5660
  }],
5624
5661
  static: true,
5625
- noWrap: true
5662
+ noWrap: true,
5663
+ shouldReceiveBuilderProps: {
5664
+ builderBlock: false,
5665
+ builderContext: false,
5666
+ builderComponents: false,
5667
+ builderLinkComponent: true
5668
+ }
5626
5669
  };
5627
5670
 
5628
5671
  // src/blocks/columns/component-info.ts
@@ -5842,11 +5885,23 @@ var componentInfo3 = {
5842
5885
  defaultValue: false,
5843
5886
  helperText: "When stacking columns for mobile devices, reverse the ordering",
5844
5887
  advanced: true
5845
- }]
5888
+ }],
5889
+ shouldReceiveBuilderProps: {
5890
+ builderBlock: true,
5891
+ builderContext: true,
5892
+ builderComponents: true,
5893
+ builderLinkComponent: true
5894
+ }
5846
5895
  };
5847
5896
 
5848
5897
  // src/blocks/fragment/component-info.ts
5849
5898
  var componentInfo4 = {
5899
+ shouldReceiveBuilderProps: {
5900
+ builderBlock: false,
5901
+ builderContext: false,
5902
+ builderComponents: false,
5903
+ builderLinkComponent: false
5904
+ },
5850
5905
  name: "Fragment",
5851
5906
  static: true,
5852
5907
  hidden: true,
@@ -5979,11 +6034,23 @@ var componentInfo5 = {
5979
6034
  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",
5980
6035
  advanced: true,
5981
6036
  defaultValue: 0.7041
5982
- }]
6037
+ }],
6038
+ shouldReceiveBuilderProps: {
6039
+ builderBlock: true,
6040
+ builderContext: false,
6041
+ builderComponents: false,
6042
+ builderLinkComponent: false
6043
+ }
5983
6044
  };
5984
6045
 
5985
6046
  // src/blocks/section/component-info.ts
5986
6047
  var componentInfo6 = {
6048
+ shouldReceiveBuilderProps: {
6049
+ builderBlock: false,
6050
+ builderContext: false,
6051
+ builderComponents: false,
6052
+ builderLinkComponent: false
6053
+ },
5987
6054
  name: "Core:Section",
5988
6055
  static: true,
5989
6056
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a",
@@ -6037,7 +6104,13 @@ var componentInfo7 = {
6037
6104
  type: "string",
6038
6105
  required: true,
6039
6106
  defaultValue: "children"
6040
- }]
6107
+ }],
6108
+ shouldReceiveBuilderProps: {
6109
+ builderBlock: false,
6110
+ builderContext: true,
6111
+ builderComponents: false,
6112
+ builderLinkComponent: false
6113
+ }
6041
6114
  };
6042
6115
  var _tmpl$8 = /* @__PURE__ */ template(`<div>`);
6043
6116
  function Slot(props) {
@@ -6099,7 +6172,13 @@ var componentInfo8 = {
6099
6172
  name: "useChildren",
6100
6173
  hideFromUI: true,
6101
6174
  type: "boolean"
6102
- }]
6175
+ }],
6176
+ shouldReceiveBuilderProps: {
6177
+ builderBlock: true,
6178
+ builderContext: true,
6179
+ builderComponents: true,
6180
+ builderLinkComponent: true
6181
+ }
6103
6182
  };
6104
6183
 
6105
6184
  // src/blocks/tabs/component-info.ts
@@ -6239,7 +6318,13 @@ var componentInfo9 = {
6239
6318
  label: "Right",
6240
6319
  value: "flex-end"
6241
6320
  }]
6242
- }]
6321
+ }],
6322
+ shouldReceiveBuilderProps: {
6323
+ builderBlock: true,
6324
+ builderContext: true,
6325
+ builderComponents: true,
6326
+ builderLinkComponent: true
6327
+ }
6243
6328
  };
6244
6329
  var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
6245
6330
  var _tmpl$25 = /* @__PURE__ */ template(`<div><div class=builder-tabs-wrap>`);
@@ -6342,6 +6427,12 @@ delegateEvents(["click"]);
6342
6427
 
6343
6428
  // src/blocks/text/component-info.ts
6344
6429
  var componentInfo10 = {
6430
+ shouldReceiveBuilderProps: {
6431
+ builderBlock: TARGET === "reactNative" ? true : false,
6432
+ builderContext: false,
6433
+ builderComponents: false,
6434
+ builderLinkComponent: false
6435
+ },
6345
6436
  name: "Text",
6346
6437
  static: true,
6347
6438
  isRSC: true,
@@ -6373,6 +6464,12 @@ var text_default = Text;
6373
6464
 
6374
6465
  // src/blocks/custom-code/component-info.ts
6375
6466
  var componentInfo11 = {
6467
+ shouldReceiveBuilderProps: {
6468
+ builderBlock: false,
6469
+ builderContext: false,
6470
+ builderComponents: false,
6471
+ builderLinkComponent: false
6472
+ },
6376
6473
  name: "Custom Code",
6377
6474
  static: true,
6378
6475
  requiredPermissions: ["editCode"],
@@ -6449,6 +6546,12 @@ var custom_code_default = CustomCode;
6449
6546
 
6450
6547
  // src/blocks/embed/component-info.ts
6451
6548
  var componentInfo12 = {
6549
+ shouldReceiveBuilderProps: {
6550
+ builderBlock: false,
6551
+ builderContext: false,
6552
+ builderComponents: false,
6553
+ builderLinkComponent: false
6554
+ },
6452
6555
  name: "Embed",
6453
6556
  static: true,
6454
6557
  inputs: [{
@@ -6768,7 +6871,13 @@ var componentInfo13 = {
6768
6871
  text: "Submit"
6769
6872
  }
6770
6873
  }
6771
- }]
6874
+ }],
6875
+ shouldReceiveBuilderProps: {
6876
+ builderBlock: true,
6877
+ builderContext: true,
6878
+ builderComponents: true,
6879
+ builderLinkComponent: true
6880
+ }
6772
6881
  };
6773
6882
 
6774
6883
  // src/functions/get-env.ts
@@ -7088,6 +7197,12 @@ var form_default = FormComponent;
7088
7197
 
7089
7198
  // src/blocks/form/input/component-info.ts
7090
7199
  var componentInfo14 = {
7200
+ shouldReceiveBuilderProps: {
7201
+ builderBlock: false,
7202
+ builderContext: false,
7203
+ builderComponents: false,
7204
+ builderLinkComponent: false
7205
+ },
7091
7206
  name: "Form:Input",
7092
7207
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca",
7093
7208
  inputs: [
@@ -7173,6 +7288,12 @@ var input_default = FormInputComponent;
7173
7288
 
7174
7289
  // src/blocks/form/select/component-info.ts
7175
7290
  var componentInfo15 = {
7291
+ shouldReceiveBuilderProps: {
7292
+ builderBlock: false,
7293
+ builderContext: false,
7294
+ builderComponents: false,
7295
+ builderLinkComponent: false
7296
+ },
7176
7297
  name: "Form:Select",
7177
7298
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045",
7178
7299
  defaultStyles: {
@@ -7232,6 +7353,9 @@ function SelectComponent(props) {
7232
7353
  },
7233
7354
  get name() {
7234
7355
  return props.name;
7356
+ },
7357
+ get required() {
7358
+ return props.required;
7235
7359
  }
7236
7360
  }), false, true);
7237
7361
  insert(_el$, createComponent(For, {
@@ -7256,6 +7380,12 @@ var select_default = SelectComponent;
7256
7380
 
7257
7381
  // src/blocks/form/submit-button/component-info.ts
7258
7382
  var componentInfo16 = {
7383
+ shouldReceiveBuilderProps: {
7384
+ builderBlock: false,
7385
+ builderContext: false,
7386
+ builderComponents: false,
7387
+ builderLinkComponent: false
7388
+ },
7259
7389
  name: "Form:SubmitButton",
7260
7390
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98",
7261
7391
  defaultStyles: {
@@ -7292,8 +7422,84 @@ function SubmitButton(props) {
7292
7422
  }
7293
7423
  var submit_button_default = SubmitButton;
7294
7424
 
7295
- // src/blocks/img/component-info.ts
7425
+ // src/blocks/form/textarea/component-info.ts
7296
7426
  var componentInfo17 = {
7427
+ shouldReceiveBuilderProps: {
7428
+ builderBlock: false,
7429
+ builderContext: false,
7430
+ builderComponents: false,
7431
+ builderLinkComponent: false
7432
+ },
7433
+ name: "Form:TextArea",
7434
+ image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3",
7435
+ inputs: [{
7436
+ advanced: true,
7437
+ name: "value",
7438
+ type: "string"
7439
+ }, {
7440
+ name: "name",
7441
+ type: "string",
7442
+ required: true,
7443
+ helperText: 'Every input in a form needs a unique name describing what it gets, e.g. "email"'
7444
+ }, {
7445
+ name: "defaultValue",
7446
+ type: "string"
7447
+ }, {
7448
+ name: "placeholder",
7449
+ type: "string",
7450
+ defaultValue: "Hello there"
7451
+ }, {
7452
+ name: "required",
7453
+ type: "boolean",
7454
+ defaultValue: false
7455
+ }],
7456
+ defaultStyles: {
7457
+ paddingTop: "10px",
7458
+ paddingBottom: "10px",
7459
+ paddingLeft: "10px",
7460
+ paddingRight: "10px",
7461
+ borderRadius: "3px",
7462
+ borderWidth: "1px",
7463
+ borderStyle: "solid",
7464
+ borderColor: "#ccc"
7465
+ },
7466
+ static: true,
7467
+ noWrap: true
7468
+ };
7469
+ var _tmpl$17 = /* @__PURE__ */ template(`<textarea>`);
7470
+ function Textarea(props) {
7471
+ return (() => {
7472
+ const _el$ = _tmpl$17();
7473
+ spread(_el$, mergeProps({}, () => props.attributes, {
7474
+ get placeholder() {
7475
+ return props.placeholder;
7476
+ },
7477
+ get name() {
7478
+ return props.name;
7479
+ },
7480
+ get value() {
7481
+ return props.value;
7482
+ },
7483
+ get defaultValue() {
7484
+ return props.defaultValue;
7485
+ },
7486
+ get required() {
7487
+ return props.required;
7488
+ }
7489
+ }), false, false);
7490
+ return _el$;
7491
+ })();
7492
+ }
7493
+ var textarea_default = Textarea;
7494
+
7495
+ // src/blocks/img/component-info.ts
7496
+ var componentInfo18 = {
7497
+ shouldReceiveBuilderProps: {
7498
+ builderBlock: false,
7499
+ builderContext: false,
7500
+ builderComponents: false,
7501
+ builderLinkComponent: false
7502
+ },
7297
7503
  // friendlyName?
7298
7504
  name: "Raw:Img",
7299
7505
  hideFromInsertMenu: true,
@@ -7308,10 +7514,10 @@ var componentInfo17 = {
7308
7514
  noWrap: true,
7309
7515
  static: true
7310
7516
  };
7311
- var _tmpl$17 = /* @__PURE__ */ template(`<img>`);
7517
+ var _tmpl$18 = /* @__PURE__ */ template(`<img>`);
7312
7518
  function ImgComponent(props) {
7313
7519
  return (() => {
7314
- const _el$ = _tmpl$17();
7520
+ const _el$ = _tmpl$18();
7315
7521
  spread(_el$, mergeProps({
7316
7522
  get style() {
7317
7523
  return {
@@ -7335,7 +7541,7 @@ function ImgComponent(props) {
7335
7541
  var img_default = ImgComponent;
7336
7542
 
7337
7543
  // src/blocks/video/component-info.ts
7338
- var componentInfo18 = {
7544
+ var componentInfo19 = {
7339
7545
  name: "Video",
7340
7546
  canHaveChildren: true,
7341
7547
  defaultStyles: {
@@ -7415,9 +7621,15 @@ var componentInfo18 = {
7415
7621
  helperText: 'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',
7416
7622
  defaultValue: true,
7417
7623
  advanced: true
7418
- }]
7624
+ }],
7625
+ shouldReceiveBuilderProps: {
7626
+ builderBlock: true,
7627
+ builderContext: false,
7628
+ builderComponents: false,
7629
+ builderLinkComponent: false
7630
+ }
7419
7631
  };
7420
- var _tmpl$18 = /* @__PURE__ */ template(`<source type=video/mp4>`);
7632
+ var _tmpl$19 = /* @__PURE__ */ template(`<source type=video/mp4>`);
7421
7633
  var _tmpl$28 = /* @__PURE__ */ template(`<div>`);
7422
7634
  var _tmpl$35 = /* @__PURE__ */ template(`<div><video class=builder-video>`);
7423
7635
  function Video(props) {
@@ -7480,7 +7692,7 @@ function Video(props) {
7480
7692
  return !props.lazyLoad;
7481
7693
  },
7482
7694
  get children() {
7483
- const _el$3 = _tmpl$18();
7695
+ const _el$3 = _tmpl$19();
7484
7696
  effect(() => setAttribute(_el$3, "src", props.video));
7485
7697
  return _el$3;
7486
7698
  }
@@ -7554,12 +7766,15 @@ var getExtraComponents = () => [{
7554
7766
  }, {
7555
7767
  component: select_default,
7556
7768
  ...componentInfo15
7769
+ }, {
7770
+ component: textarea_default,
7771
+ ...componentInfo17
7557
7772
  }], {
7558
7773
  component: img_default,
7559
- ...componentInfo17
7774
+ ...componentInfo18
7560
7775
  }, {
7561
7776
  component: video_default,
7562
- ...componentInfo18
7777
+ ...componentInfo19
7563
7778
  }];
7564
7779
 
7565
7780
  // src/constants/builder-registered-components.ts
@@ -7662,10 +7877,10 @@ var getUpdateVariantVisibilityScript = ({
7662
7877
  }) => `window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME}(
7663
7878
  "${variationId}", "${contentId}", ${isHydrationTarget}
7664
7879
  )`;
7665
- var _tmpl$19 = /* @__PURE__ */ template(`<script>`);
7880
+ var _tmpl$20 = /* @__PURE__ */ template(`<script>`);
7666
7881
  function InlinedScript(props) {
7667
7882
  return (() => {
7668
- const _el$ = _tmpl$19();
7883
+ const _el$ = _tmpl$20();
7669
7884
  effect((_p$) => {
7670
7885
  const _v$ = props.scriptStr, _v$2 = props.id;
7671
7886
  _v$ !== _p$._v$ && (_el$.innerHTML = _p$._v$ = _v$);
@@ -8179,7 +8394,7 @@ function isFromTrustedHost(trustedHosts, e) {
8179
8394
  }
8180
8395
 
8181
8396
  // src/constants/sdk-version.ts
8182
- var SDK_VERSION = "1.0.35";
8397
+ var SDK_VERSION = "1.1.0";
8183
8398
 
8184
8399
  // src/functions/register.ts
8185
8400
  var registry = {};
@@ -9163,7 +9378,7 @@ var fetchSymbolContent = async ({
9163
9378
  };
9164
9379
 
9165
9380
  // src/blocks/symbol/symbol.tsx
9166
- var _tmpl$20 = /* @__PURE__ */ template(`<div>`);
9381
+ var _tmpl$21 = /* @__PURE__ */ template(`<div>`);
9167
9382
  function Symbol2(props) {
9168
9383
  const [contentToUse, setContentToUse] = createSignal(props.symbol?.content);
9169
9384
  const blocksWrapper = createMemo(() => {
@@ -9195,7 +9410,7 @@ function Symbol2(props) {
9195
9410
  }
9196
9411
  createEffect(on(() => [onUpdateFn_0_props_symbol()], onUpdateFn_0));
9197
9412
  return (() => {
9198
- const _el$ = _tmpl$20();
9413
+ const _el$ = _tmpl$21();
9199
9414
  spread(_el$, mergeProps({
9200
9415
  get ["class"]() {
9201
9416
  return className();