@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.
@@ -778,25 +778,56 @@ var getRepeatItemData = ({
778
778
  }));
779
779
  return repeatArray;
780
780
  };
781
+ var applyDefaults = (shouldReceiveBuilderProps) => {
782
+ return {
783
+ // once we bump to a major version, toggle this to `false`.
784
+ builderBlock: true,
785
+ // once we bump to a major version, toggle this to `false`.
786
+ builderContext: true,
787
+ builderComponents: false,
788
+ builderLinkComponent: false,
789
+ ...shouldReceiveBuilderProps
790
+ };
791
+ };
781
792
  var provideLinkComponent = (block, linkComponent) => {
782
- return block && (block.isRSC && TARGET === "rsc" || ["Core:Button", "Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
793
+ if (!block)
794
+ return {};
795
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderLinkComponent;
796
+ if (!shouldReceiveProp)
797
+ return {};
798
+ return {
783
799
  builderLinkComponent: linkComponent
784
- } : {};
800
+ };
785
801
  };
786
802
  var provideRegisteredComponents = (block, registeredComponents) => {
787
- return block && (block.isRSC && TARGET === "rsc" || ["Symbol", "Columns", "Form:Form", "Builder: Tabs", "Builder:Accordion"].includes(block.name)) ? {
803
+ if (!block)
804
+ return {};
805
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderComponents;
806
+ if (!shouldReceiveProp)
807
+ return {};
808
+ return {
788
809
  builderComponents: registeredComponents
789
- } : {};
810
+ };
790
811
  };
791
812
  var provideBuilderBlock = (block, builderBlock) => {
792
- return block && (block.isRSC && TARGET === "rsc" || TARGET === "reactNative" && block.name === "Text" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Image", "Video"].includes(block.name)) ? {
813
+ if (!block)
814
+ return {};
815
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderBlock;
816
+ if (!shouldReceiveProp)
817
+ return {};
818
+ return {
793
819
  builderBlock
794
- } : {};
820
+ };
795
821
  };
796
822
  var provideBuilderContext = (block, context) => {
797
- return block && (block.isRSC && TARGET === "rsc" || ["Builder:Accordion", "Columns", "Form:Form", "Builder: Tabs", "Symbol", "Slot"].includes(block.name)) ? {
823
+ if (!block)
824
+ return {};
825
+ const shouldReceiveProp = applyDefaults(block.shouldReceiveBuilderProps).builderContext;
826
+ if (!shouldReceiveProp)
827
+ return {};
828
+ return {
798
829
  builderContext: context
799
- } : {};
830
+ };
800
831
  };
801
832
 
802
833
  // src/constants/device-sizes.ts
@@ -2246,7 +2277,13 @@ var componentInfo = {
2246
2277
  options.set("items", []);
2247
2278
  }
2248
2279
  }
2249
- }]
2280
+ }],
2281
+ shouldReceiveBuilderProps: {
2282
+ builderBlock: true,
2283
+ builderContext: true,
2284
+ builderComponents: true,
2285
+ builderLinkComponent: true
2286
+ }
2250
2287
  };
2251
2288
 
2252
2289
  // src/blocks/accordion/helpers.ts
@@ -2469,7 +2506,13 @@ var componentInfo2 = {
2469
2506
  friendlyName: "Open link in new tab"
2470
2507
  }],
2471
2508
  static: true,
2472
- noWrap: true
2509
+ noWrap: true,
2510
+ shouldReceiveBuilderProps: {
2511
+ builderBlock: false,
2512
+ builderContext: false,
2513
+ builderComponents: false,
2514
+ builderLinkComponent: true
2515
+ }
2473
2516
  };
2474
2517
 
2475
2518
  // src/blocks/columns/component-info.ts
@@ -2689,11 +2732,23 @@ var componentInfo3 = {
2689
2732
  defaultValue: false,
2690
2733
  helperText: "When stacking columns for mobile devices, reverse the ordering",
2691
2734
  advanced: true
2692
- }]
2735
+ }],
2736
+ shouldReceiveBuilderProps: {
2737
+ builderBlock: true,
2738
+ builderContext: true,
2739
+ builderComponents: true,
2740
+ builderLinkComponent: true
2741
+ }
2693
2742
  };
2694
2743
 
2695
2744
  // src/blocks/fragment/component-info.ts
2696
2745
  var componentInfo4 = {
2746
+ shouldReceiveBuilderProps: {
2747
+ builderBlock: false,
2748
+ builderContext: false,
2749
+ builderComponents: false,
2750
+ builderLinkComponent: false
2751
+ },
2697
2752
  name: "Fragment",
2698
2753
  static: true,
2699
2754
  hidden: true,
@@ -2825,11 +2880,23 @@ var componentInfo5 = {
2825
2880
  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",
2826
2881
  advanced: true,
2827
2882
  defaultValue: 0.7041
2828
- }]
2883
+ }],
2884
+ shouldReceiveBuilderProps: {
2885
+ builderBlock: true,
2886
+ builderContext: false,
2887
+ builderComponents: false,
2888
+ builderLinkComponent: false
2889
+ }
2829
2890
  };
2830
2891
 
2831
2892
  // src/blocks/section/component-info.ts
2832
2893
  var componentInfo6 = {
2894
+ shouldReceiveBuilderProps: {
2895
+ builderBlock: false,
2896
+ builderContext: false,
2897
+ builderComponents: false,
2898
+ builderLinkComponent: false
2899
+ },
2833
2900
  name: "Core:Section",
2834
2901
  static: true,
2835
2902
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F682efef23ace49afac61748dd305c70a",
@@ -2883,7 +2950,13 @@ var componentInfo7 = {
2883
2950
  type: "string",
2884
2951
  required: true,
2885
2952
  defaultValue: "children"
2886
- }]
2953
+ }],
2954
+ shouldReceiveBuilderProps: {
2955
+ builderBlock: false,
2956
+ builderContext: true,
2957
+ builderComponents: false,
2958
+ builderLinkComponent: false
2959
+ }
2887
2960
  };
2888
2961
  var _tmpl$8 = /* @__PURE__ */ template(`<div>`);
2889
2962
  function Slot(props) {
@@ -2945,7 +3018,13 @@ var componentInfo8 = {
2945
3018
  name: "useChildren",
2946
3019
  hideFromUI: true,
2947
3020
  type: "boolean"
2948
- }]
3021
+ }],
3022
+ shouldReceiveBuilderProps: {
3023
+ builderBlock: true,
3024
+ builderContext: true,
3025
+ builderComponents: true,
3026
+ builderLinkComponent: true
3027
+ }
2949
3028
  };
2950
3029
 
2951
3030
  // src/blocks/tabs/component-info.ts
@@ -3085,7 +3164,13 @@ var componentInfo9 = {
3085
3164
  label: "Right",
3086
3165
  value: "flex-end"
3087
3166
  }]
3088
- }]
3167
+ }],
3168
+ shouldReceiveBuilderProps: {
3169
+ builderBlock: true,
3170
+ builderContext: true,
3171
+ builderComponents: true,
3172
+ builderLinkComponent: true
3173
+ }
3089
3174
  };
3090
3175
  var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
3091
3176
  var _tmpl$25 = /* @__PURE__ */ template(`<div><div class=builder-tabs-wrap>`);
@@ -3188,6 +3273,12 @@ delegateEvents(["click"]);
3188
3273
 
3189
3274
  // src/blocks/text/component-info.ts
3190
3275
  var componentInfo10 = {
3276
+ shouldReceiveBuilderProps: {
3277
+ builderBlock: TARGET === "reactNative" ? true : false,
3278
+ builderContext: false,
3279
+ builderComponents: false,
3280
+ builderLinkComponent: false
3281
+ },
3191
3282
  name: "Text",
3192
3283
  static: true,
3193
3284
  isRSC: true,
@@ -3219,6 +3310,12 @@ var text_default = Text;
3219
3310
 
3220
3311
  // src/blocks/custom-code/component-info.ts
3221
3312
  var componentInfo11 = {
3313
+ shouldReceiveBuilderProps: {
3314
+ builderBlock: false,
3315
+ builderContext: false,
3316
+ builderComponents: false,
3317
+ builderLinkComponent: false
3318
+ },
3222
3319
  name: "Custom Code",
3223
3320
  static: true,
3224
3321
  requiredPermissions: ["editCode"],
@@ -3294,6 +3391,12 @@ var custom_code_default = CustomCode;
3294
3391
 
3295
3392
  // src/blocks/embed/component-info.ts
3296
3393
  var componentInfo12 = {
3394
+ shouldReceiveBuilderProps: {
3395
+ builderBlock: false,
3396
+ builderContext: false,
3397
+ builderComponents: false,
3398
+ builderLinkComponent: false
3399
+ },
3297
3400
  name: "Embed",
3298
3401
  static: true,
3299
3402
  inputs: [{
@@ -3612,7 +3715,13 @@ var componentInfo13 = {
3612
3715
  text: "Submit"
3613
3716
  }
3614
3717
  }
3615
- }]
3718
+ }],
3719
+ shouldReceiveBuilderProps: {
3720
+ builderBlock: true,
3721
+ builderContext: true,
3722
+ builderComponents: true,
3723
+ builderLinkComponent: true
3724
+ }
3616
3725
  };
3617
3726
 
3618
3727
  // src/functions/get-env.ts
@@ -3932,6 +4041,12 @@ var form_default = FormComponent;
3932
4041
 
3933
4042
  // src/blocks/form/input/component-info.ts
3934
4043
  var componentInfo14 = {
4044
+ shouldReceiveBuilderProps: {
4045
+ builderBlock: false,
4046
+ builderContext: false,
4047
+ builderComponents: false,
4048
+ builderLinkComponent: false
4049
+ },
3935
4050
  name: "Form:Input",
3936
4051
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fad6f37889d9e40bbbbc72cdb5875d6ca",
3937
4052
  inputs: [
@@ -4017,6 +4132,12 @@ var input_default = FormInputComponent;
4017
4132
 
4018
4133
  // src/blocks/form/select/component-info.ts
4019
4134
  var componentInfo15 = {
4135
+ shouldReceiveBuilderProps: {
4136
+ builderBlock: false,
4137
+ builderContext: false,
4138
+ builderComponents: false,
4139
+ builderLinkComponent: false
4140
+ },
4020
4141
  name: "Form:Select",
4021
4142
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2F83acca093fb24aaf94dee136e9a4b045",
4022
4143
  defaultStyles: {
@@ -4076,6 +4197,9 @@ function SelectComponent(props) {
4076
4197
  },
4077
4198
  get name() {
4078
4199
  return props.name;
4200
+ },
4201
+ get required() {
4202
+ return props.required;
4079
4203
  }
4080
4204
  }), false, true);
4081
4205
  insert(_el$, createComponent(For, {
@@ -4100,6 +4224,12 @@ var select_default = SelectComponent;
4100
4224
 
4101
4225
  // src/blocks/form/submit-button/component-info.ts
4102
4226
  var componentInfo16 = {
4227
+ shouldReceiveBuilderProps: {
4228
+ builderBlock: false,
4229
+ builderContext: false,
4230
+ builderComponents: false,
4231
+ builderLinkComponent: false
4232
+ },
4103
4233
  name: "Form:SubmitButton",
4104
4234
  image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Fdf2820ffed1f4349a94c40b3221f5b98",
4105
4235
  defaultStyles: {
@@ -4136,8 +4266,84 @@ function SubmitButton(props) {
4136
4266
  }
4137
4267
  var submit_button_default = SubmitButton;
4138
4268
 
4139
- // src/blocks/img/component-info.ts
4269
+ // src/blocks/form/textarea/component-info.ts
4140
4270
  var componentInfo17 = {
4271
+ shouldReceiveBuilderProps: {
4272
+ builderBlock: false,
4273
+ builderContext: false,
4274
+ builderComponents: false,
4275
+ builderLinkComponent: false
4276
+ },
4277
+ name: "Form:TextArea",
4278
+ image: "https://cdn.builder.io/api/v1/image/assets%2FIsxPKMo2gPRRKeakUztj1D6uqed2%2Ff74a2f3de58c4c3e939204e5b6b8f6c3",
4279
+ inputs: [{
4280
+ advanced: true,
4281
+ name: "value",
4282
+ type: "string"
4283
+ }, {
4284
+ name: "name",
4285
+ type: "string",
4286
+ required: true,
4287
+ helperText: 'Every input in a form needs a unique name describing what it gets, e.g. "email"'
4288
+ }, {
4289
+ name: "defaultValue",
4290
+ type: "string"
4291
+ }, {
4292
+ name: "placeholder",
4293
+ type: "string",
4294
+ defaultValue: "Hello there"
4295
+ }, {
4296
+ name: "required",
4297
+ type: "boolean",
4298
+ defaultValue: false
4299
+ }],
4300
+ defaultStyles: {
4301
+ paddingTop: "10px",
4302
+ paddingBottom: "10px",
4303
+ paddingLeft: "10px",
4304
+ paddingRight: "10px",
4305
+ borderRadius: "3px",
4306
+ borderWidth: "1px",
4307
+ borderStyle: "solid",
4308
+ borderColor: "#ccc"
4309
+ },
4310
+ static: true,
4311
+ noWrap: true
4312
+ };
4313
+ var _tmpl$17 = /* @__PURE__ */ template(`<textarea>`);
4314
+ function Textarea(props) {
4315
+ return (() => {
4316
+ const _el$ = _tmpl$17();
4317
+ spread(_el$, mergeProps({}, () => props.attributes, {
4318
+ get placeholder() {
4319
+ return props.placeholder;
4320
+ },
4321
+ get name() {
4322
+ return props.name;
4323
+ },
4324
+ get value() {
4325
+ return props.value;
4326
+ },
4327
+ get defaultValue() {
4328
+ return props.defaultValue;
4329
+ },
4330
+ get required() {
4331
+ return props.required;
4332
+ }
4333
+ }), false, false);
4334
+ return _el$;
4335
+ })();
4336
+ }
4337
+ var textarea_default = Textarea;
4338
+
4339
+ // src/blocks/img/component-info.ts
4340
+ var componentInfo18 = {
4341
+ shouldReceiveBuilderProps: {
4342
+ builderBlock: false,
4343
+ builderContext: false,
4344
+ builderComponents: false,
4345
+ builderLinkComponent: false
4346
+ },
4141
4347
  // friendlyName?
4142
4348
  name: "Raw:Img",
4143
4349
  hideFromInsertMenu: true,
@@ -4152,10 +4358,10 @@ var componentInfo17 = {
4152
4358
  noWrap: true,
4153
4359
  static: true
4154
4360
  };
4155
- var _tmpl$17 = /* @__PURE__ */ template(`<img>`);
4361
+ var _tmpl$18 = /* @__PURE__ */ template(`<img>`);
4156
4362
  function ImgComponent(props) {
4157
4363
  return (() => {
4158
- const _el$ = _tmpl$17();
4364
+ const _el$ = _tmpl$18();
4159
4365
  spread(_el$, mergeProps({
4160
4366
  get style() {
4161
4367
  return {
@@ -4179,7 +4385,7 @@ function ImgComponent(props) {
4179
4385
  var img_default = ImgComponent;
4180
4386
 
4181
4387
  // src/blocks/video/component-info.ts
4182
- var componentInfo18 = {
4388
+ var componentInfo19 = {
4183
4389
  name: "Video",
4184
4390
  canHaveChildren: true,
4185
4391
  defaultStyles: {
@@ -4259,9 +4465,15 @@ var componentInfo18 = {
4259
4465
  helperText: 'Load this video "lazily" - as in only when a user scrolls near the video. Recommended for optmized performance and bandwidth consumption',
4260
4466
  defaultValue: true,
4261
4467
  advanced: true
4262
- }]
4468
+ }],
4469
+ shouldReceiveBuilderProps: {
4470
+ builderBlock: true,
4471
+ builderContext: false,
4472
+ builderComponents: false,
4473
+ builderLinkComponent: false
4474
+ }
4263
4475
  };
4264
- var _tmpl$18 = /* @__PURE__ */ template(`<source type=video/mp4>`);
4476
+ var _tmpl$19 = /* @__PURE__ */ template(`<source type=video/mp4>`);
4265
4477
  var _tmpl$28 = /* @__PURE__ */ template(`<div>`);
4266
4478
  var _tmpl$35 = /* @__PURE__ */ template(`<div><video class=builder-video>`);
4267
4479
  function Video(props) {
@@ -4324,7 +4536,7 @@ function Video(props) {
4324
4536
  return !props.lazyLoad;
4325
4537
  },
4326
4538
  get children() {
4327
- const _el$3 = _tmpl$18();
4539
+ const _el$3 = _tmpl$19();
4328
4540
  effect(() => setAttribute(_el$3, "src", props.video));
4329
4541
  return _el$3;
4330
4542
  }
@@ -4398,12 +4610,15 @@ var getExtraComponents = () => [{
4398
4610
  }, {
4399
4611
  component: select_default,
4400
4612
  ...componentInfo15
4613
+ }, {
4614
+ component: textarea_default,
4615
+ ...componentInfo17
4401
4616
  }], {
4402
4617
  component: img_default,
4403
- ...componentInfo17
4618
+ ...componentInfo18
4404
4619
  }, {
4405
4620
  component: video_default,
4406
- ...componentInfo18
4621
+ ...componentInfo19
4407
4622
  }];
4408
4623
 
4409
4624
  // src/constants/builder-registered-components.ts
@@ -4506,10 +4721,10 @@ var getUpdateVariantVisibilityScript = ({
4506
4721
  }) => `window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME}(
4507
4722
  "${variationId}", "${contentId}", ${isHydrationTarget}
4508
4723
  )`;
4509
- var _tmpl$19 = /* @__PURE__ */ template(`<script>`);
4724
+ var _tmpl$20 = /* @__PURE__ */ template(`<script>`);
4510
4725
  function InlinedScript(props) {
4511
4726
  return (() => {
4512
- const _el$ = _tmpl$19();
4727
+ const _el$ = _tmpl$20();
4513
4728
  effect((_p$) => {
4514
4729
  const _v$ = props.scriptStr, _v$2 = props.id;
4515
4730
  _v$ !== _p$._v$ && (_el$.innerHTML = _p$._v$ = _v$);
@@ -5018,7 +5233,7 @@ function isFromTrustedHost(trustedHosts, e) {
5018
5233
  }
5019
5234
 
5020
5235
  // src/constants/sdk-version.ts
5021
- var SDK_VERSION = "1.0.35";
5236
+ var SDK_VERSION = "1.1.0";
5022
5237
 
5023
5238
  // src/functions/register.ts
5024
5239
  var registry = {};
@@ -6000,7 +6215,7 @@ var fetchSymbolContent = async ({
6000
6215
  };
6001
6216
 
6002
6217
  // src/blocks/symbol/symbol.tsx
6003
- var _tmpl$20 = /* @__PURE__ */ template(`<div>`);
6218
+ var _tmpl$21 = /* @__PURE__ */ template(`<div>`);
6004
6219
  function Symbol(props) {
6005
6220
  const [contentToUse, setContentToUse] = createSignal(props.symbol?.content);
6006
6221
  const blocksWrapper = createMemo(() => {
@@ -6032,7 +6247,7 @@ function Symbol(props) {
6032
6247
  }
6033
6248
  createEffect(on(() => [onUpdateFn_0_props_symbol()], onUpdateFn_0));
6034
6249
  return (() => {
6035
- const _el$ = _tmpl$20();
6250
+ const _el$ = _tmpl$21();
6036
6251
  spread(_el$, mergeProps({
6037
6252
  get ["class"]() {
6038
6253
  return className();