@builder.io/sdk-solid 0.12.3 → 0.12.4

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
@@ -1,5 +1,5 @@
1
1
  import { createComponent, spread, mergeProps, insert, effect, setAttribute, className, style, template, Dynamic, memo, use } from 'solid-js/web';
2
- import { createContext, Show, useContext, For, createSignal, onMount, createEffect, on } from 'solid-js';
2
+ import { createContext, useContext, Show, For, createSignal, onMount, createEffect, on } from 'solid-js';
3
3
  import { css } from 'solid-styled-components';
4
4
 
5
5
  var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
@@ -9,42 +9,97 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
9
9
  return require.apply(this, arguments);
10
10
  throw Error('Dynamic require of "' + x + '" is not supported');
11
11
  });
12
- var _tmpl$ = /* @__PURE__ */ template(`<a>`);
13
- var _tmpl$2 = /* @__PURE__ */ template(`<button role=button>`);
14
- function Button(props) {
12
+
13
+ // src/components/dynamic-renderer/dynamic-renderer.helpers.ts
14
+ var EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
15
+ var isEmptyElement = (tagName) => {
16
+ return typeof tagName === "string" && EMPTY_HTML_ELEMENTS.has(tagName.toLowerCase());
17
+ };
18
+
19
+ // src/components/dynamic-renderer/dynamic-renderer.tsx
20
+ function DynamicRenderer(props) {
15
21
  return createComponent(Show, {
16
22
  get fallback() {
17
- return (() => {
18
- const _el$2 = _tmpl$2();
19
- spread(_el$2, mergeProps({
20
- get ["class"]() {
21
- return `builder-button ${props.attributes.class}`;
22
- }
23
- }, {}, () => props.attributes, {
24
- get style() {
25
- return props.attributes.style;
26
- }
27
- }), false, true);
28
- insert(_el$2, () => props.text);
29
- return _el$2;
30
- })();
23
+ return createComponent(Dynamic, mergeProps(() => props.attributes, () => props.actionAttributes, {
24
+ get component() {
25
+ return props.TagName;
26
+ }
27
+ }));
31
28
  },
32
29
  get when() {
33
- return props.link;
30
+ return !isEmptyElement(props.TagName);
34
31
  },
35
32
  get children() {
36
- const _el$ = _tmpl$();
37
- spread(_el$, mergeProps({}, () => props.attributes, {
38
- get href() {
39
- return props.link;
33
+ return createComponent(Show, {
34
+ get fallback() {
35
+ return createComponent(Dynamic, mergeProps(() => props.attributes, () => props.actionAttributes, {
36
+ get component() {
37
+ return props.TagName;
38
+ },
39
+ get children() {
40
+ return props.children;
41
+ }
42
+ }));
40
43
  },
41
- get target() {
42
- return props.openLinkInNewTab ? "_blank" : void 0;
44
+ get when() {
45
+ return typeof props.TagName === "string";
43
46
  },
44
- "role": "button"
45
- }), false, true);
46
- insert(_el$, () => props.text);
47
- return _el$;
47
+ get children() {
48
+ return createComponent(Dynamic, mergeProps(() => props.attributes, () => props.actionAttributes, {
49
+ get component() {
50
+ return props.TagName;
51
+ },
52
+ get children() {
53
+ return props.children;
54
+ }
55
+ }));
56
+ }
57
+ });
58
+ }
59
+ });
60
+ }
61
+ var dynamic_renderer_default = DynamicRenderer;
62
+
63
+ // src/constants/target.ts
64
+ var TARGET = "solid";
65
+
66
+ // src/functions/get-class-prop-name.ts
67
+ var getClassPropName = () => {
68
+ switch (TARGET) {
69
+ case "react":
70
+ case "reactNative":
71
+ case "rsc":
72
+ return "className";
73
+ case "svelte":
74
+ case "vue":
75
+ case "solid":
76
+ case "qwik":
77
+ return "class";
78
+ }
79
+ };
80
+
81
+ // src/blocks/button/button.tsx
82
+ function Button(props) {
83
+ return createComponent(dynamic_renderer_default, {
84
+ get TagName() {
85
+ return props.link ? props.builderLinkComponent || "a" : "button";
86
+ },
87
+ get attributes() {
88
+ return {
89
+ ...props.attributes,
90
+ [getClassPropName()]: `${props.link ? "" : "builder-button"} ${props.attributes[getClassPropName()] || ""}`,
91
+ ...props.link ? {
92
+ href: props.link,
93
+ target: props.openLinkInNewTab ? "_blank" : void 0,
94
+ role: "link"
95
+ } : {
96
+ role: "button"
97
+ }
98
+ };
99
+ },
100
+ actionAttributes: {},
101
+ get children() {
102
+ return props.text;
48
103
  }
49
104
  });
50
105
  }
@@ -90,9 +145,6 @@ function isBrowser() {
90
145
  return typeof window !== "undefined" && typeof document !== "undefined";
91
146
  }
92
147
 
93
- // src/constants/target.ts
94
- var TARGET = "solid";
95
-
96
148
  // src/functions/is-iframe.ts
97
149
  function isIframe() {
98
150
  return isBrowser() && window.self !== window.top;
@@ -3627,10 +3679,10 @@ var createCssClass = ({
3627
3679
  return cssClass;
3628
3680
  }
3629
3681
  };
3630
- var _tmpl$3 = /* @__PURE__ */ template(`<style>`);
3682
+ var _tmpl$ = /* @__PURE__ */ template(`<style>`);
3631
3683
  function InlinedStyles(props) {
3632
3684
  return (() => {
3633
- const _el$ = _tmpl$3();
3685
+ const _el$ = _tmpl$();
3634
3686
  effect((_p$) => {
3635
3687
  const _v$ = props.styles, _v$2 = props.id;
3636
3688
  _v$ !== _p$._v$ && (_el$.innerHTML = _p$._v$ = _v$);
@@ -3756,6 +3808,38 @@ function getBlockActions(options) {
3756
3808
  return obj;
3757
3809
  }
3758
3810
 
3811
+ // src/functions/transform-style-property.ts
3812
+ function transformStyleProperty({
3813
+ style
3814
+ }) {
3815
+ return style;
3816
+ }
3817
+
3818
+ // src/functions/get-style.ts
3819
+ var getStyle = ({
3820
+ block,
3821
+ context
3822
+ }) => {
3823
+ return mapStyleObjToStrIfNeeded(transformStyleProperty({
3824
+ style: block.style || {},
3825
+ context,
3826
+ block
3827
+ }));
3828
+ };
3829
+ function mapStyleObjToStrIfNeeded(style) {
3830
+ switch (TARGET) {
3831
+ case "svelte":
3832
+ case "vue":
3833
+ case "solid":
3834
+ return convertStyleMapToCSSArray(style).join(" ");
3835
+ case "qwik":
3836
+ case "reactNative":
3837
+ case "react":
3838
+ case "rsc":
3839
+ return style;
3840
+ }
3841
+ }
3842
+
3759
3843
  // src/functions/transform-block-properties.ts
3760
3844
  function transformBlockProperties({
3761
3845
  properties
@@ -3777,8 +3861,11 @@ function getBlockProperties({
3777
3861
  ...extractRelevantRootBlockProperties(block),
3778
3862
  ...block.properties,
3779
3863
  "builder-id": block.id,
3780
- style: block.style ? getStyleAttribute(block.style) : void 0,
3781
- class: [block.id, "builder-block", block.class, block.properties?.class].filter(Boolean).join(" ")
3864
+ style: getStyle({
3865
+ block,
3866
+ context
3867
+ }),
3868
+ [getClassPropName()]: [block.id, "builder-block", block.class, block.properties?.class].filter(Boolean).join(" ")
3782
3869
  };
3783
3870
  return transformBlockProperties({
3784
3871
  properties,
@@ -3786,69 +3873,6 @@ function getBlockProperties({
3786
3873
  block
3787
3874
  });
3788
3875
  }
3789
- function getStyleAttribute(style) {
3790
- switch (TARGET) {
3791
- case "svelte":
3792
- case "vue":
3793
- case "solid":
3794
- return convertStyleMapToCSSArray(style).join(" ");
3795
- case "qwik":
3796
- case "reactNative":
3797
- case "react":
3798
- case "rsc":
3799
- return style;
3800
- }
3801
- }
3802
-
3803
- // src/components/dynamic-renderer/dynamic-renderer.helpers.ts
3804
- var EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "meta", "param", "source", "track", "wbr"]);
3805
- var isEmptyElement = (tagName) => {
3806
- return typeof tagName === "string" && EMPTY_HTML_ELEMENTS.has(tagName.toLowerCase());
3807
- };
3808
-
3809
- // src/components/dynamic-renderer/dynamic-renderer.tsx
3810
- function DynamicRenderer(props) {
3811
- return createComponent(Show, {
3812
- get fallback() {
3813
- return createComponent(Dynamic, mergeProps(() => props.attributes, () => props.actionAttributes, {
3814
- get component() {
3815
- return props.TagName;
3816
- }
3817
- }));
3818
- },
3819
- get when() {
3820
- return !isEmptyElement(props.TagName);
3821
- },
3822
- get children() {
3823
- return createComponent(Show, {
3824
- get fallback() {
3825
- return createComponent(Dynamic, mergeProps(() => props.attributes, () => props.actionAttributes, {
3826
- get component() {
3827
- return props.TagName;
3828
- },
3829
- get children() {
3830
- return props.children;
3831
- }
3832
- }));
3833
- },
3834
- get when() {
3835
- return typeof props.TagName === "string";
3836
- },
3837
- get children() {
3838
- return createComponent(Dynamic, mergeProps(() => props.attributes, () => props.actionAttributes, {
3839
- get component() {
3840
- return props.TagName;
3841
- },
3842
- get children() {
3843
- return props.children;
3844
- }
3845
- }));
3846
- }
3847
- });
3848
- }
3849
- });
3850
- }
3851
- var dynamic_renderer_default = DynamicRenderer;
3852
3876
 
3853
3877
  // src/components/block/components/block-wrapper.tsx
3854
3878
  function BlockWrapper(props) {
@@ -3951,6 +3975,7 @@ function ComponentRef(props) {
3951
3975
  builderBlock: props.builderBlock,
3952
3976
  context: props.context,
3953
3977
  componentRef: props.componentRef,
3978
+ linkComponent: props.linkComponent,
3954
3979
  includeBlockProps: props.includeBlockProps,
3955
3980
  isInteractive: props.isInteractive,
3956
3981
  contextValue: props.context
@@ -3975,6 +4000,9 @@ function ComponentRef(props) {
3975
4000
  },
3976
4001
  get registeredComponents() {
3977
4002
  return props.registeredComponents;
4003
+ },
4004
+ get linkComponent() {
4005
+ return props.linkComponent;
3978
4006
  }
3979
4007
  });
3980
4008
  }
@@ -4001,6 +4029,9 @@ function RepeatedBlock(props) {
4001
4029
  },
4002
4030
  get registeredComponents() {
4003
4031
  return props.registeredComponents;
4032
+ },
4033
+ get linkComponent() {
4034
+ return props.linkComponent;
4004
4035
  }
4005
4036
  });
4006
4037
  }
@@ -4035,6 +4066,10 @@ function Block(props) {
4035
4066
  });
4036
4067
  }
4037
4068
  function Tag() {
4069
+ const shouldUseLink = props.block.tagName === "a" || processedBlock().properties?.href || processedBlock().href;
4070
+ if (shouldUseLink) {
4071
+ return props.linkComponent || "a";
4072
+ }
4038
4073
  return props.block.tagName || "div";
4039
4074
  }
4040
4075
  function canShowBlock() {
@@ -4058,11 +4093,15 @@ function Block(props) {
4058
4093
  componentOptions: {
4059
4094
  ...getBlockComponentOptions(processedBlock()),
4060
4095
  builderContext: props.context,
4096
+ ...blockComponent()?.name === "Core:Button" || blockComponent()?.name === "Symbol" || blockComponent()?.name === "Columns" ? {
4097
+ builderLinkComponent: props.linkComponent
4098
+ } : {},
4061
4099
  ...blockComponent()?.name === "Symbol" || blockComponent()?.name === "Columns" ? {
4062
4100
  builderComponents: props.registeredComponents
4063
4101
  } : {}
4064
4102
  },
4065
4103
  context: childrenContext(),
4104
+ linkComponent: props.linkComponent,
4066
4105
  registeredComponents: props.registeredComponents,
4067
4106
  builderBlock: processedBlock(),
4068
4107
  includeBlockProps: blockComponent()?.noWrap === true,
@@ -4099,6 +4138,9 @@ function Block(props) {
4099
4138
  get registeredComponents() {
4100
4139
  return componentRefProps().registeredComponents;
4101
4140
  },
4141
+ get linkComponent() {
4142
+ return componentRefProps().linkComponent;
4143
+ },
4102
4144
  get builderBlock() {
4103
4145
  return componentRefProps().builderBlock;
4104
4146
  },
@@ -4132,6 +4174,9 @@ function Block(props) {
4132
4174
  },
4133
4175
  get registeredComponents() {
4134
4176
  return props.registeredComponents;
4177
+ },
4178
+ get linkComponent() {
4179
+ return props.linkComponent;
4135
4180
  }
4136
4181
  });
4137
4182
  }
@@ -4151,6 +4196,9 @@ function Block(props) {
4151
4196
  get context() {
4152
4197
  return props.context;
4153
4198
  },
4199
+ get linkComponent() {
4200
+ return props.linkComponent;
4201
+ },
4154
4202
  get children() {
4155
4203
  return [createComponent(component_ref_default, {
4156
4204
  get componentRef() {
@@ -4168,6 +4216,9 @@ function Block(props) {
4168
4216
  get registeredComponents() {
4169
4217
  return componentRefProps().registeredComponents;
4170
4218
  },
4219
+ get linkComponent() {
4220
+ return componentRefProps().linkComponent;
4221
+ },
4171
4222
  get builderBlock() {
4172
4223
  return componentRefProps().builderBlock;
4173
4224
  },
@@ -4193,6 +4244,9 @@ function Block(props) {
4193
4244
  },
4194
4245
  get registeredComponents() {
4195
4246
  return props.registeredComponents;
4247
+ },
4248
+ get linkComponent() {
4249
+ return props.linkComponent;
4196
4250
  }
4197
4251
  });
4198
4252
  }
@@ -4305,6 +4359,9 @@ function Blocks(props) {
4305
4359
  return block.id;
4306
4360
  },
4307
4361
  block,
4362
+ get linkComponent() {
4363
+ return props.linkComponent;
4364
+ },
4308
4365
  get context() {
4309
4366
  return props.context || builderContext;
4310
4367
  },
@@ -4322,7 +4379,7 @@ function Blocks(props) {
4322
4379
  var blocks_default = Blocks;
4323
4380
 
4324
4381
  // src/blocks/columns/columns.tsx
4325
- var _tmpl$4 = /* @__PURE__ */ template(`<div>`);
4382
+ var _tmpl$2 = /* @__PURE__ */ template(`<div>`);
4326
4383
  function Columns(props) {
4327
4384
  const [gutterSize, setGutterSize] = createSignal(typeof props.space === "number" ? props.space || 0 : 20);
4328
4385
  const [cols, setCols] = createSignal(props.columns || []);
@@ -4363,7 +4420,13 @@ function Columns(props) {
4363
4420
  const mobileWidth = "100%";
4364
4421
  const mobileMarginLeft = 0;
4365
4422
  const marginLeftKey = "margin-left";
4423
+ const sharedStyles = {
4424
+ display: "flex",
4425
+ flexDirection: "column",
4426
+ alignItems: "stretch"
4427
+ };
4366
4428
  return {
4429
+ ...sharedStyles,
4367
4430
  width,
4368
4431
  [marginLeftKey]: gutterPixels,
4369
4432
  "--column-width-mobile": getMobileStyle({
@@ -4416,7 +4479,7 @@ function Columns(props) {
4416
4479
  `;
4417
4480
  }
4418
4481
  return (() => {
4419
- const _el$ = _tmpl$4();
4482
+ const _el$ = _tmpl$2();
4420
4483
  spread(_el$, mergeProps({
4421
4484
  get ["class"]() {
4422
4485
  return `builder-columns ${props.builderBlock.id}-breakpoints ` + css({
@@ -4444,52 +4507,56 @@ function Columns(props) {
4444
4507
  },
4445
4508
  children: (column, _index) => {
4446
4509
  const index = _index();
4447
- return (() => {
4448
- const _el$2 = _tmpl$4();
4449
- spread(_el$2, mergeProps({
4450
- get ["class"]() {
4451
- return "builder-column " + css({
4452
- display: "flex",
4453
- flexDirection: "column",
4454
- alignItems: "stretch"
4455
- });
4456
- },
4457
- get style() {
4458
- return columnCssVars(index);
4459
- }
4460
- }, {}, {
4461
- "key": index
4462
- }), false, true);
4463
- insert(_el$2, createComponent(blocks_default, {
4464
- path: `component.options.columns.${index}.blocks`,
4465
- get parent() {
4466
- return props.builderBlock.id;
4467
- },
4468
- styleProp: {
4469
- flexGrow: "1"
4470
- },
4471
- get context() {
4472
- return props.builderContext;
4473
- },
4474
- get registeredComponents() {
4475
- return props.builderComponents;
4476
- },
4477
- get blocks() {
4478
- return column.blocks;
4479
- }
4480
- }));
4481
- return _el$2;
4482
- })();
4510
+ return createComponent(dynamic_renderer_default, {
4511
+ key: index,
4512
+ get TagName() {
4513
+ return column.link ? props.builderLinkComponent || "a" : "div";
4514
+ },
4515
+ actionAttributes: {},
4516
+ get attributes() {
4517
+ return {
4518
+ ...{},
4519
+ ...column.link ? {
4520
+ href: column.link
4521
+ } : {},
4522
+ [getClassPropName()]: "builder-column",
4523
+ style: mapStyleObjToStrIfNeeded(columnCssVars(index))
4524
+ };
4525
+ },
4526
+ get children() {
4527
+ return createComponent(blocks_default, {
4528
+ path: `component.options.columns.${index}.blocks`,
4529
+ get parent() {
4530
+ return props.builderBlock.id;
4531
+ },
4532
+ styleProp: {
4533
+ flexGrow: "1"
4534
+ },
4535
+ get context() {
4536
+ return props.builderContext;
4537
+ },
4538
+ get registeredComponents() {
4539
+ return props.builderComponents;
4540
+ },
4541
+ get linkComponent() {
4542
+ return props.builderLinkComponent;
4543
+ },
4544
+ get blocks() {
4545
+ return column.blocks;
4546
+ }
4547
+ });
4548
+ }
4549
+ });
4483
4550
  }
4484
4551
  }), null);
4485
4552
  return _el$;
4486
4553
  })();
4487
4554
  }
4488
4555
  var columns_default = Columns;
4489
- var _tmpl$5 = /* @__PURE__ */ template(`<span>`);
4556
+ var _tmpl$3 = /* @__PURE__ */ template(`<span>`);
4490
4557
  function FragmentComponent(props) {
4491
4558
  return (() => {
4492
- const _el$ = _tmpl$5();
4559
+ const _el$ = _tmpl$3();
4493
4560
  insert(_el$, () => props.children);
4494
4561
  return _el$;
4495
4562
  })();
@@ -4544,7 +4611,7 @@ function getSrcSet(url) {
4544
4611
  }
4545
4612
 
4546
4613
  // src/blocks/image/image.tsx
4547
- var _tmpl$6 = /* @__PURE__ */ template(`<source type=image/webp>`);
4614
+ var _tmpl$4 = /* @__PURE__ */ template(`<source type=image/webp>`);
4548
4615
  var _tmpl$22 = /* @__PURE__ */ template(`<picture><img loading=lazy>`);
4549
4616
  var _tmpl$32 = /* @__PURE__ */ template(`<div>`);
4550
4617
  function Image(props) {
@@ -4590,7 +4657,7 @@ function Image(props) {
4590
4657
  return webpSrcSet();
4591
4658
  },
4592
4659
  get children() {
4593
- const _el$2 = _tmpl$6();
4660
+ const _el$2 = _tmpl$4();
4594
4661
  effect(() => setAttribute(_el$2, "srcset", webpSrcSet()));
4595
4662
  return _el$2;
4596
4663
  }
@@ -4672,10 +4739,10 @@ function Image(props) {
4672
4739
  })];
4673
4740
  }
4674
4741
  var image_default = Image;
4675
- var _tmpl$7 = /* @__PURE__ */ template(`<section>`);
4742
+ var _tmpl$5 = /* @__PURE__ */ template(`<section>`);
4676
4743
  function SectionComponent(props) {
4677
4744
  return (() => {
4678
- const _el$ = _tmpl$7();
4745
+ const _el$ = _tmpl$5();
4679
4746
  spread(_el$, mergeProps({}, () => props.attributes, {
4680
4747
  get style() {
4681
4748
  return {
@@ -5169,7 +5236,7 @@ var componentInfo3 = {
5169
5236
  advanced: true
5170
5237
  }]
5171
5238
  };
5172
- var _tmpl$8 = /* @__PURE__ */ template(`<div>`);
5239
+ var _tmpl$6 = /* @__PURE__ */ template(`<div>`);
5173
5240
  function CustomCode(props) {
5174
5241
  const [scriptsInserted, setScriptsInserted] = createSignal([]);
5175
5242
  const [scriptsRun, setScriptsRun] = createSignal([]);
@@ -5203,7 +5270,7 @@ function CustomCode(props) {
5203
5270
  }
5204
5271
  });
5205
5272
  return (() => {
5206
- const _el$ = _tmpl$8();
5273
+ const _el$ = _tmpl$6();
5207
5274
  const _ref$ = elementRef;
5208
5275
  typeof _ref$ === "function" ? use(_ref$, _el$) : elementRef = _el$;
5209
5276
  effect((_p$) => {
@@ -5263,7 +5330,7 @@ var SCRIPT_MIME_TYPES = ["text/javascript", "application/javascript", "applicati
5263
5330
  var isJsScript = (script) => SCRIPT_MIME_TYPES.includes(script.type);
5264
5331
 
5265
5332
  // src/blocks/embed/embed.tsx
5266
- var _tmpl$9 = /* @__PURE__ */ template(`<div class=builder-embed>`);
5333
+ var _tmpl$7 = /* @__PURE__ */ template(`<div class=builder-embed>`);
5267
5334
  function Embed(props) {
5268
5335
  const [scriptsInserted, setScriptsInserted] = createSignal([]);
5269
5336
  const [scriptsRun, setScriptsRun] = createSignal([]);
@@ -5298,7 +5365,7 @@ function Embed(props) {
5298
5365
  }
5299
5366
  createEffect(on(() => [elem, ranInitFn()], onUpdateFn_0));
5300
5367
  return (() => {
5301
- const _el$ = _tmpl$9();
5368
+ const _el$ = _tmpl$7();
5302
5369
  const _ref$ = elem;
5303
5370
  typeof _ref$ === "function" ? use(_ref$, _el$) : elem = _el$;
5304
5371
  effect(() => _el$.innerHTML = props.content);
@@ -5454,10 +5521,10 @@ var componentInfo7 = {
5454
5521
  noWrap: true,
5455
5522
  static: true
5456
5523
  };
5457
- var _tmpl$10 = /* @__PURE__ */ template(`<img>`);
5524
+ var _tmpl$8 = /* @__PURE__ */ template(`<img>`);
5458
5525
  function ImgComponent(props) {
5459
5526
  return (() => {
5460
- const _el$ = _tmpl$10();
5527
+ const _el$ = _tmpl$8();
5461
5528
  spread(_el$, mergeProps({
5462
5529
  get style() {
5463
5530
  return {
@@ -5537,10 +5604,10 @@ var componentInfo9 = {
5537
5604
  defaultValue: "children"
5538
5605
  }]
5539
5606
  };
5540
- var _tmpl$11 = /* @__PURE__ */ template(`<div>`);
5607
+ var _tmpl$9 = /* @__PURE__ */ template(`<div>`);
5541
5608
  function Slot(props) {
5542
5609
  return (() => {
5543
- const _el$ = _tmpl$11();
5610
+ const _el$ = _tmpl$9();
5544
5611
  _el$.style.setProperty("pointer-events", "auto");
5545
5612
  spread(_el$, mergeProps(() => !props.builderContext.context?.symbolId && {
5546
5613
  "builder-slot": props.name
@@ -5620,10 +5687,10 @@ var componentInfo11 = {
5620
5687
  textAlign: "center"
5621
5688
  }
5622
5689
  };
5623
- var _tmpl$12 = /* @__PURE__ */ template(`<div class=builder-text>`);
5690
+ var _tmpl$10 = /* @__PURE__ */ template(`<div class=builder-text>`);
5624
5691
  function Text(props) {
5625
5692
  return (() => {
5626
- const _el$ = _tmpl$12();
5693
+ const _el$ = _tmpl$10();
5627
5694
  _el$.style.setProperty("outline", "none");
5628
5695
  effect(() => _el$.innerHTML = props.text?.toString() || "");
5629
5696
  return _el$;
@@ -5714,7 +5781,7 @@ var componentInfo12 = {
5714
5781
  advanced: true
5715
5782
  }]
5716
5783
  };
5717
- var _tmpl$13 = /* @__PURE__ */ template(`<source type=video/mp4>`);
5784
+ var _tmpl$11 = /* @__PURE__ */ template(`<source type=video/mp4>`);
5718
5785
  var _tmpl$23 = /* @__PURE__ */ template(`<div>`);
5719
5786
  var _tmpl$33 = /* @__PURE__ */ template(`<div><video class=builder-video>`);
5720
5787
  function Video(props) {
@@ -5777,7 +5844,7 @@ function Video(props) {
5777
5844
  return !props.lazyLoad;
5778
5845
  },
5779
5846
  get children() {
5780
- const _el$3 = _tmpl$13();
5847
+ const _el$3 = _tmpl$11();
5781
5848
  effect(() => setAttribute(_el$3, "src", props.video));
5782
5849
  return _el$3;
5783
5850
  }
@@ -5939,10 +6006,10 @@ var getUpdateVariantVisibilityScript = ({
5939
6006
  }) => `window.${UPDATE_VARIANT_VISIBILITY_SCRIPT_FN_NAME}(
5940
6007
  "${variationId}", "${contentId}", ${isHydrationTarget}
5941
6008
  )`;
5942
- var _tmpl$14 = /* @__PURE__ */ template(`<script>`);
6009
+ var _tmpl$12 = /* @__PURE__ */ template(`<script>`);
5943
6010
  function InlinedScript(props) {
5944
6011
  return (() => {
5945
- const _el$ = _tmpl$14();
6012
+ const _el$ = _tmpl$12();
5946
6013
  effect((_p$) => {
5947
6014
  const _v$ = props.scriptStr, _v$2 = props.id || "";
5948
6015
  _v$ !== _p$._v$ && (_el$.innerHTML = _p$._v$ = _v$);
@@ -6444,7 +6511,7 @@ var getInteractionPropertiesForEvent = (event) => {
6444
6511
  };
6445
6512
 
6446
6513
  // src/constants/sdk-version.ts
6447
- var SDK_VERSION = "0.12.3";
6514
+ var SDK_VERSION = "0.12.4";
6448
6515
 
6449
6516
  // src/functions/register.ts
6450
6517
  var registry = {};
@@ -7131,6 +7198,9 @@ function ContentComponent(props) {
7131
7198
  get contentWrapperProps() {
7132
7199
  return props.contentWrapperProps;
7133
7200
  },
7201
+ get linkComponent() {
7202
+ return props.linkComponent;
7203
+ },
7134
7204
  get trustedHosts() {
7135
7205
  return props.trustedHosts;
7136
7206
  }
@@ -7173,6 +7243,9 @@ function ContentComponent(props) {
7173
7243
  },
7174
7244
  get registeredComponents() {
7175
7245
  return registeredComponents();
7246
+ },
7247
+ get linkComponent() {
7248
+ return props.linkComponent;
7176
7249
  }
7177
7250
  })];
7178
7251
  }
@@ -7266,6 +7339,9 @@ function ContentVariants(props) {
7266
7339
  get customComponents() {
7267
7340
  return props.customComponents;
7268
7341
  },
7342
+ get linkComponent() {
7343
+ return props.linkComponent;
7344
+ },
7269
7345
  get canTrack() {
7270
7346
  return props.canTrack;
7271
7347
  },
@@ -7323,6 +7399,9 @@ function ContentVariants(props) {
7323
7399
  get customComponents() {
7324
7400
  return props.customComponents;
7325
7401
  },
7402
+ get linkComponent() {
7403
+ return props.linkComponent;
7404
+ },
7326
7405
  get canTrack() {
7327
7406
  return props.canTrack;
7328
7407
  },
@@ -7382,11 +7461,11 @@ var fetchSymbolContent = async ({
7382
7461
  };
7383
7462
 
7384
7463
  // src/blocks/symbol/symbol.tsx
7385
- var _tmpl$15 = /* @__PURE__ */ template(`<div>`);
7464
+ var _tmpl$13 = /* @__PURE__ */ template(`<div>`);
7386
7465
  function Symbol2(props) {
7387
7466
  const [contentToUse, setContentToUse] = createSignal(props.symbol?.content);
7388
7467
  function className() {
7389
- return [...[props.attributes.class], "builder-symbol", props.symbol?.inline ? "builder-inline-symbol" : void 0, props.symbol?.dynamic || props.dynamic ? "builder-dynamic-symbol" : void 0].filter(Boolean).join(" ");
7468
+ return [...[props.attributes[getClassPropName()]], "builder-symbol", props.symbol?.inline ? "builder-inline-symbol" : void 0, props.symbol?.dynamic || props.dynamic ? "builder-dynamic-symbol" : void 0].filter(Boolean).join(" ");
7390
7469
  }
7391
7470
  function setContent() {
7392
7471
  if (contentToUse())
@@ -7408,7 +7487,7 @@ function Symbol2(props) {
7408
7487
  }
7409
7488
  createEffect(on(() => [props.symbol], onUpdateFn_0));
7410
7489
  return (() => {
7411
- const _el$ = _tmpl$15();
7490
+ const _el$ = _tmpl$13();
7412
7491
  spread(_el$, mergeProps({
7413
7492
  get ["class"]() {
7414
7493
  return className();
@@ -7443,6 +7522,9 @@ function Symbol2(props) {
7443
7522
  },
7444
7523
  get content() {
7445
7524
  return contentToUse();
7525
+ },
7526
+ get linkComponent() {
7527
+ return props.builderLinkComponent;
7446
7528
  }
7447
7529
  }));
7448
7530
  return _el$;