@builder.io/sdk-qwik 0.12.3 → 0.12.5

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.
Files changed (27) hide show
  1. package/lib/browser/index.qwik.cjs +273 -125
  2. package/lib/browser/index.qwik.mjs +275 -127
  3. package/lib/edge/index.qwik.cjs +306 -158
  4. package/lib/edge/index.qwik.mjs +308 -160
  5. package/lib/node/index.qwik.cjs +308 -160
  6. package/lib/node/index.qwik.mjs +309 -161
  7. package/package.json +1 -1
  8. package/types/src/blocks/button/button.types.d.ts +2 -1
  9. package/types/src/blocks/columns/columns.d.ts +1 -1
  10. package/types/src/blocks/columns/columns.types.d.ts +3 -3
  11. package/types/src/blocks/symbol/symbol.types.d.ts +2 -2
  12. package/types/src/components/block/block.d.ts +1 -0
  13. package/types/src/components/block/components/block-wrapper.d.ts +1 -0
  14. package/types/src/components/block/components/component-ref/component-ref.helpers.d.ts +2 -2
  15. package/types/src/components/block/components/repeated-block.d.ts +3 -5
  16. package/types/src/components/blocks/blocks.types.d.ts +1 -0
  17. package/types/src/components/content-variants/content-variants.types.d.ts +6 -2
  18. package/types/src/constants/sdk-version.d.ts +1 -1
  19. package/types/src/functions/evaluate/should-force-browser-runtime-in-node.d.ts +1 -0
  20. package/types/src/functions/get-block-properties.d.ts +1 -2
  21. package/types/src/functions/get-class-prop-name.d.ts +1 -0
  22. package/types/src/functions/get-style.d.ts +12 -0
  23. package/types/src/functions/transform-block-properties.d.ts +2 -2
  24. package/types/src/functions/transform-style-property.d.ts +7 -0
  25. package/types/src/helpers/omit.d.ts +1 -0
  26. package/types/src/types/builder-block.d.ts +1 -0
  27. package/types/src/types/builder-props.d.ts +3 -0
@@ -2,39 +2,87 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const qwik = require("@builder.io/qwik");
4
4
  const jsxRuntime = require("@builder.io/qwik/jsx-runtime");
5
- const nodeEvaluate = require("./node-evaluate-4014c795.cjs");
6
5
  const build = require("@builder.io/qwik/build");
6
+ const nodeEvaluate = require("./node-evaluate-4014c795.cjs");
7
7
  require("node:module");
8
- const Button = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl((props) => {
8
+ const EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set([
9
+ "area",
10
+ "base",
11
+ "br",
12
+ "col",
13
+ "embed",
14
+ "hr",
15
+ "img",
16
+ "input",
17
+ "keygen",
18
+ "link",
19
+ "meta",
20
+ "param",
21
+ "source",
22
+ "track",
23
+ "wbr"
24
+ ]);
25
+ const isEmptyElement = (tagName) => {
26
+ return typeof tagName === "string" && EMPTY_HTML_ELEMENTS.has(tagName.toLowerCase());
27
+ };
28
+ const DynamicRenderer = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl((props) => {
29
+ qwik._jsxBranch();
9
30
  return /* @__PURE__ */ qwik._jsxC(jsxRuntime.Fragment, {
10
- children: props.link ? /* @__PURE__ */ qwik._jsxS("a", {
31
+ children: !isEmptyElement(props.TagName) ? typeof props.TagName === "string" ? /* @__PURE__ */ qwik._jsxC(props.TagName, {
11
32
  ...props.attributes,
12
- children: qwik._fnSignal((p0) => p0.text, [
13
- props
14
- ], "p0.text")
15
- }, {
16
- href: qwik._fnSignal((p0) => p0.link, [
17
- props
18
- ], "p0.link"),
19
- role: "button",
20
- target: qwik._fnSignal((p0) => p0.openLinkInNewTab ? "_blank" : void 0, [
21
- props
22
- ], 'p0.openLinkInNewTab?"_blank":undefined')
23
- }, 0, "jc_0") : /* @__PURE__ */ qwik._jsxS("button", {
33
+ ...props.actionAttributes,
34
+ children: /* @__PURE__ */ qwik._jsxC(qwik.Slot, null, 3, "yW_0")
35
+ }, 0, "yW_1") : /* @__PURE__ */ qwik._jsxC(props.TagName, {
24
36
  ...props.attributes,
25
- children: qwik._fnSignal((p0) => p0.text, [
26
- props
27
- ], "p0.text")
28
- }, {
29
- class: qwik._fnSignal((p0) => `builder-button ${p0.attributes.class}`, [
30
- props
31
- ], "`builder-button ${p0.attributes.class}`"),
32
- role: "button",
33
- style: qwik._fnSignal((p0) => p0.attributes.style, [
37
+ ...props.actionAttributes,
38
+ children: /* @__PURE__ */ qwik._jsxC(qwik.Slot, null, 3, "yW_2")
39
+ }, 0, "yW_3") : /* @__PURE__ */ qwik._jsxC(props.TagName, {
40
+ ...props.attributes,
41
+ ...props.actionAttributes
42
+ }, 0, "yW_4")
43
+ }, 1, "yW_5");
44
+ }, "DynamicRenderer_component_1Co0xkmyAfQ"));
45
+ const TARGET = "qwik";
46
+ const getClassPropName = () => {
47
+ switch (TARGET) {
48
+ case "react":
49
+ case "reactNative":
50
+ case "rsc":
51
+ return "className";
52
+ case "svelte":
53
+ case "vue":
54
+ case "solid":
55
+ case "qwik":
56
+ return "class";
57
+ }
58
+ };
59
+ const Button = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl((props) => {
60
+ return /* @__PURE__ */ qwik._jsxC(DynamicRenderer, {
61
+ get TagName() {
62
+ return props.link ? props.builderLinkComponent || "a" : "button";
63
+ },
64
+ actionAttributes: {},
65
+ attributes: {
66
+ ...props.attributes,
67
+ [getClassPropName()]: `${props.link ? "" : "builder-button"} ${props.attributes[getClassPropName()] || ""}`,
68
+ ...props.link ? {
69
+ href: props.link,
70
+ target: props.openLinkInNewTab ? "_blank" : void 0,
71
+ role: "link"
72
+ } : {
73
+ role: "button"
74
+ }
75
+ },
76
+ children: qwik._fnSignal((p0) => p0.text, [
77
+ props
78
+ ], "p0.text"),
79
+ [qwik._IMMUTABLE]: {
80
+ TagName: qwik._fnSignal((p0) => p0.link ? p0.builderLinkComponent || "a" : "button", [
34
81
  props
35
- ], "p0.attributes.style")
36
- }, 0, null)
37
- }, 1, "jc_1");
82
+ ], 'p0.link?p0.builderLinkComponent||"a":"button"'),
83
+ actionAttributes: qwik._IMMUTABLE
84
+ }
85
+ }, 3, "jc_0");
38
86
  }, "Button_component_gJoMUICXoUQ"));
39
87
  const builderContext = qwik.createContextId("Builder");
40
88
  const ComponentsContext = qwik.createContextId("Components");
@@ -56,18 +104,9 @@ const logger = {
56
104
  warn: (...message) => console.warn(MSG_PREFIX, ...message),
57
105
  debug: (...message) => console.debug(MSG_PREFIX, ...message)
58
106
  };
59
- const fastClone = (obj) => JSON.parse(JSON.stringify(obj));
60
- const set = (obj, _path, value) => {
61
- if (Object(obj) !== obj)
62
- return obj;
63
- const path = Array.isArray(_path) ? _path : _path.toString().match(/[^.[\]]+/g);
64
- path.slice(0, -1).reduce((a, c, i) => Object(a[c]) === a[c] ? a[c] : a[c] = Math.abs(Number(path[i + 1])) >> 0 === +path[i + 1] ? [] : {}, obj)[path[path.length - 1]] = value;
65
- return obj;
66
- };
67
107
  function isBrowser() {
68
108
  return typeof window !== "undefined" && typeof document !== "undefined";
69
109
  }
70
- const TARGET = "qwik";
71
110
  function isIframe() {
72
111
  return isBrowser() && window.self !== window.top;
73
112
  }
@@ -140,6 +179,41 @@ const parseCode = (code, { isExpression = true }) => {
140
179
  const useCode = useReturn ? `return (${code});` : code;
141
180
  return useCode;
142
181
  };
182
+ const runInBrowser = ({ code, builder, context, event, localState, rootSetState, rootState }) => {
183
+ const functionArgs = getFunctionArguments({
184
+ builder,
185
+ context,
186
+ event,
187
+ state: flattenState(rootState, localState, rootSetState)
188
+ });
189
+ return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
190
+ };
191
+ function flattenState(rootState, localState, rootSetState) {
192
+ if (rootState === localState)
193
+ throw new Error("rootState === localState");
194
+ return new Proxy(rootState, {
195
+ get: (_, prop) => {
196
+ if (localState && prop in localState)
197
+ return localState[prop];
198
+ return rootState[prop];
199
+ },
200
+ set: (_, prop, value) => {
201
+ if (localState && prop in localState)
202
+ throw new Error("Writing to local state is not allowed as it is read-only.");
203
+ rootState[prop] = value;
204
+ rootSetState == null ? void 0 : rootSetState(rootState);
205
+ return true;
206
+ }
207
+ });
208
+ }
209
+ const fastClone = (obj) => JSON.parse(JSON.stringify(obj));
210
+ const set = (obj, _path, value) => {
211
+ if (Object(obj) !== obj)
212
+ return obj;
213
+ const path = Array.isArray(_path) ? _path : _path.toString().match(/[^.[\]]+/g);
214
+ path.slice(0, -1).reduce((a, c, i) => Object(a[c]) === a[c] ? a[c] : a[c] = Math.abs(Number(path[i + 1])) >> 0 === +path[i + 1] ? [] : {}, obj)[path[path.length - 1]] = value;
215
+ return obj;
216
+ };
143
217
  const ivm = nodeEvaluate.safeDynamicRequire("isolated-vm");
144
218
  const getSyncValName = (key) => `bldr_${key}_sync`;
145
219
  const BUILDER_SET_STATE_NAME = "BUILDER_SET_STATE";
@@ -239,34 +313,28 @@ const runInNode = ({ code, builder, context, event, localState, rootSetState, ro
239
313
  return resultStr;
240
314
  }
241
315
  };
242
- const runInBrowser = ({ code, builder, context, event, localState, rootSetState, rootState }) => {
243
- const functionArgs = getFunctionArguments({
244
- builder,
245
- context,
246
- event,
247
- state: flattenState(rootState, localState, rootSetState)
248
- });
249
- return new Function(...functionArgs.map(([name]) => name), code)(...functionArgs.map(([, value]) => value));
250
- };
251
- function flattenState(rootState, localState, rootSetState) {
252
- if (rootState === localState)
253
- throw new Error("rootState === localState");
254
- return new Proxy(rootState, {
255
- get: (_, prop) => {
256
- if (localState && prop in localState)
257
- return localState[prop];
258
- return rootState[prop];
259
- },
260
- set: (_, prop, value) => {
261
- if (localState && prop in localState)
262
- throw new Error("Writing to local state is not allowed as it is read-only.");
263
- rootState[prop] = value;
264
- rootSetState == null ? void 0 : rootSetState(rootState);
265
- return true;
266
- }
267
- });
316
+ const checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
317
+ function isNodeRuntime() {
318
+ var _a;
319
+ return typeof process !== "undefined" && checkIsDefined((_a = process == null ? void 0 : process.versions) == null ? void 0 : _a.node);
268
320
  }
269
- const chooseBrowserOrServerEval = (args) => !build.isServer ? runInBrowser(args) : runInNode(args);
321
+ const shouldForceBrowserRuntimeInNode = () => {
322
+ var _a;
323
+ if (!isNodeRuntime())
324
+ return false;
325
+ const isArm64 = process.arch === "arm64";
326
+ const isNode20 = process.version.startsWith("v20");
327
+ const hasNoNodeSnapshotNodeOption = (_a = process.env.NODE_OPTIONS) == null ? void 0 : _a.includes("--no-node-snapshot");
328
+ if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
329
+ logger.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
330
+ If you would like to use the \`isolated-vm\` package on this machine, please provide the \`NODE_OPTIONS=--no-node-snapshot\` config to your Node process.
331
+ See https://github.com/BuilderIO/builder/blob/main/packages/sdks/README.md#node-v20--m1-macs-apple-silicon-support for more information.
332
+ `);
333
+ return true;
334
+ }
335
+ return false;
336
+ };
337
+ const chooseBrowserOrServerEval = (args) => build.isBrowser || shouldForceBrowserRuntimeInNode() ? runInBrowser(args) : runInNode(args);
270
338
  function evaluate({ code, context, localState, rootState, rootSetState, event, isExpression = true }) {
271
339
  if (code === "") {
272
340
  logger.warn("Skipping evaluation of empty code block.");
@@ -429,7 +497,6 @@ const getSizesForBreakpoints = ({ small, medium }) => {
429
497
  return newSizes;
430
498
  };
431
499
  const camelToKebabCase = (string) => string.replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, "$1-$2").toLowerCase();
432
- const checkIsDefined = (maybeT) => maybeT !== null && maybeT !== void 0;
433
500
  const convertStyleMapToCSSArray = (style) => {
434
501
  const cssProps = Object.entries(style).map(([key, value]) => {
435
502
  if (typeof value === "string")
@@ -577,6 +644,29 @@ function getBlockActions(options) {
577
644
  }
578
645
  return obj;
579
646
  }
647
+ function transformStyleProperty({ style }) {
648
+ return style;
649
+ }
650
+ const getStyle = ({ block, context }) => {
651
+ return mapStyleObjToStrIfNeeded(transformStyleProperty({
652
+ style: block.style || {},
653
+ context,
654
+ block
655
+ }));
656
+ };
657
+ function mapStyleObjToStrIfNeeded(style) {
658
+ switch (TARGET) {
659
+ case "svelte":
660
+ case "vue":
661
+ case "solid":
662
+ return convertStyleMapToCSSArray(style).join(" ");
663
+ case "qwik":
664
+ case "reactNative":
665
+ case "react":
666
+ case "rsc":
667
+ return style;
668
+ }
669
+ }
580
670
  function transformBlockProperties({ properties }) {
581
671
  return properties;
582
672
  }
@@ -591,8 +681,11 @@ function getBlockProperties({ block, context }) {
591
681
  ...extractRelevantRootBlockProperties(block),
592
682
  ...block.properties,
593
683
  "builder-id": block.id,
594
- style: block.style ? getStyleAttribute(block.style) : void 0,
595
- class: [
684
+ style: getStyle({
685
+ block,
686
+ context
687
+ }),
688
+ [getClassPropName()]: [
596
689
  block.id,
597
690
  "builder-block",
598
691
  block.class,
@@ -605,56 +698,6 @@ function getBlockProperties({ block, context }) {
605
698
  block
606
699
  });
607
700
  }
608
- function getStyleAttribute(style) {
609
- switch (TARGET) {
610
- case "svelte":
611
- case "vue":
612
- case "solid":
613
- return convertStyleMapToCSSArray(style).join(" ");
614
- case "qwik":
615
- case "reactNative":
616
- case "react":
617
- case "rsc":
618
- return style;
619
- }
620
- }
621
- const EMPTY_HTML_ELEMENTS = /* @__PURE__ */ new Set([
622
- "area",
623
- "base",
624
- "br",
625
- "col",
626
- "embed",
627
- "hr",
628
- "img",
629
- "input",
630
- "keygen",
631
- "link",
632
- "meta",
633
- "param",
634
- "source",
635
- "track",
636
- "wbr"
637
- ]);
638
- const isEmptyElement = (tagName) => {
639
- return typeof tagName === "string" && EMPTY_HTML_ELEMENTS.has(tagName.toLowerCase());
640
- };
641
- const DynamicRenderer = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl((props) => {
642
- qwik._jsxBranch();
643
- return /* @__PURE__ */ qwik._jsxC(jsxRuntime.Fragment, {
644
- children: !isEmptyElement(props.TagName) ? typeof props.TagName === "string" ? /* @__PURE__ */ qwik._jsxC(props.TagName, {
645
- ...props.attributes,
646
- ...props.actionAttributes,
647
- children: /* @__PURE__ */ qwik._jsxC(qwik.Slot, null, 3, "yW_0")
648
- }, 0, "yW_1") : /* @__PURE__ */ qwik._jsxC(props.TagName, {
649
- ...props.attributes,
650
- ...props.actionAttributes,
651
- children: /* @__PURE__ */ qwik._jsxC(qwik.Slot, null, 3, "yW_2")
652
- }, 0, "yW_3") : /* @__PURE__ */ qwik._jsxC(props.TagName, {
653
- ...props.attributes,
654
- ...props.actionAttributes
655
- }, 0, "yW_4")
656
- }, 1, "yW_5");
657
- }, "DynamicRenderer_component_1Co0xkmyAfQ"));
658
701
  const BlockWrapper = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl((props) => {
659
702
  return /* @__PURE__ */ qwik._jsxC(DynamicRenderer, {
660
703
  get TagName() {
@@ -733,6 +776,7 @@ const ComponentRef = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inli
733
776
  builderBlock: props.builderBlock,
734
777
  context: props.context,
735
778
  componentRef: props.componentRef,
779
+ linkComponent: props.linkComponent,
736
780
  includeBlockProps: props.includeBlockProps,
737
781
  isInteractive: props.isInteractive,
738
782
  contextValue: props.context
@@ -746,10 +790,16 @@ const ComponentRef = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inli
746
790
  get registeredComponents() {
747
791
  return props.registeredComponents;
748
792
  },
793
+ get linkComponent() {
794
+ return props.linkComponent;
795
+ },
749
796
  [qwik._IMMUTABLE]: {
750
797
  context: qwik._fnSignal((p0) => p0.context, [
751
798
  props
752
799
  ], "p0.context"),
800
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
801
+ props
802
+ ], "p0.linkComponent"),
753
803
  registeredComponents: qwik._fnSignal((p0) => p0.registeredComponents, [
754
804
  props
755
805
  ], "p0.registeredComponents")
@@ -774,6 +824,9 @@ const RepeatedBlock = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inl
774
824
  get registeredComponents() {
775
825
  return props.registeredComponents;
776
826
  },
827
+ get linkComponent() {
828
+ return props.linkComponent;
829
+ },
777
830
  [qwik._IMMUTABLE]: {
778
831
  block: qwik._fnSignal((p0) => p0.block, [
779
832
  props
@@ -781,6 +834,9 @@ const RepeatedBlock = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inl
781
834
  context: qwik._fnSignal((p0) => p0.store, [
782
835
  state
783
836
  ], "p0.store"),
837
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
838
+ props
839
+ ], "p0.linkComponent"),
784
840
  registeredComponents: qwik._fnSignal((p0) => p0.registeredComponents, [
785
841
  props
786
842
  ], "p0.registeredComponents")
@@ -827,9 +883,14 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
827
883
  props
828
884
  ]));
829
885
  const Tag = qwik.useComputedQrl(/* @__PURE__ */ qwik.inlinedQrl(() => {
830
- const [props2] = qwik.useLexicalScope();
886
+ var _a2;
887
+ const [processedBlock2, props2] = qwik.useLexicalScope();
888
+ const shouldUseLink = props2.block.tagName === "a" || ((_a2 = processedBlock2.value.properties) == null ? void 0 : _a2.href) || processedBlock2.value.href;
889
+ if (shouldUseLink)
890
+ return props2.linkComponent || "a";
831
891
  return props2.block.tagName || "div";
832
892
  }, "Block_component_Tag_useComputed_eQnDgbcBW2A", [
893
+ processedBlock,
833
894
  props
834
895
  ]));
835
896
  const canShowBlock = qwik.useComputedQrl(/* @__PURE__ */ qwik.inlinedQrl(() => {
@@ -859,7 +920,7 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
859
920
  repeatItem
860
921
  ]));
861
922
  const componentRefProps = qwik.useComputedQrl(/* @__PURE__ */ qwik.inlinedQrl(() => {
862
- var _a2, _b, _c, _d, _e;
923
+ var _a2, _b, _c, _d, _e, _f, _g, _h;
863
924
  const [blockComponent2, processedBlock2, props2, state2] = qwik.useLexicalScope();
864
925
  return {
865
926
  blockChildren: processedBlock2.value.children ?? [],
@@ -867,15 +928,19 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
867
928
  componentOptions: {
868
929
  ...getBlockComponentOptions(processedBlock2.value),
869
930
  builderContext: props2.context,
870
- ...((_b = blockComponent2.value) == null ? void 0 : _b.name) === "Symbol" || ((_c = blockComponent2.value) == null ? void 0 : _c.name) === "Columns" ? {
931
+ ...((_b = blockComponent2.value) == null ? void 0 : _b.name) === "Core:Button" || ((_c = blockComponent2.value) == null ? void 0 : _c.name) === "Symbol" || ((_d = blockComponent2.value) == null ? void 0 : _d.name) === "Columns" ? {
932
+ builderLinkComponent: props2.linkComponent
933
+ } : {},
934
+ ...((_e = blockComponent2.value) == null ? void 0 : _e.name) === "Symbol" || ((_f = blockComponent2.value) == null ? void 0 : _f.name) === "Columns" ? {
871
935
  builderComponents: props2.registeredComponents
872
936
  } : {}
873
937
  },
874
938
  context: state2.childrenContext,
939
+ linkComponent: props2.linkComponent,
875
940
  registeredComponents: props2.registeredComponents,
876
941
  builderBlock: processedBlock2.value,
877
- includeBlockProps: ((_d = blockComponent2.value) == null ? void 0 : _d.noWrap) === true,
878
- isInteractive: !((_e = blockComponent2.value) == null ? void 0 : _e.isRSC)
942
+ includeBlockProps: ((_g = blockComponent2.value) == null ? void 0 : _g.noWrap) === true,
943
+ isInteractive: !((_h = blockComponent2.value) == null ? void 0 : _h.isRSC)
879
944
  };
880
945
  }, "Block_component_componentRefProps_useComputed_Ikbl8VO04ho", [
881
946
  blockComponent,
@@ -912,6 +977,9 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
912
977
  get context() {
913
978
  return props.context;
914
979
  },
980
+ get linkComponent() {
981
+ return props.linkComponent;
982
+ },
915
983
  children: [
916
984
  /* @__PURE__ */ qwik._jsxC(ComponentRef, {
917
985
  get componentRef() {
@@ -929,6 +997,9 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
929
997
  get registeredComponents() {
930
998
  return componentRefProps.value.registeredComponents;
931
999
  },
1000
+ get linkComponent() {
1001
+ return componentRefProps.value.linkComponent;
1002
+ },
932
1003
  get builderBlock() {
933
1004
  return componentRefProps.value.builderBlock;
934
1005
  },
@@ -960,6 +1031,9 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
960
1031
  isInteractive: qwik._fnSignal((p0) => p0.value.isInteractive, [
961
1032
  componentRefProps
962
1033
  ], "p0.value.isInteractive"),
1034
+ linkComponent: qwik._fnSignal((p0) => p0.value.linkComponent, [
1035
+ componentRefProps
1036
+ ], "p0.value.linkComponent"),
963
1037
  registeredComponents: qwik._fnSignal((p0) => p0.value.registeredComponents, [
964
1038
  componentRefProps
965
1039
  ], "p0.value.registeredComponents")
@@ -974,10 +1048,16 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
974
1048
  get registeredComponents() {
975
1049
  return props.registeredComponents;
976
1050
  },
1051
+ get linkComponent() {
1052
+ return props.linkComponent;
1053
+ },
977
1054
  [qwik._IMMUTABLE]: {
978
1055
  context: qwik._fnSignal((p0) => p0.childrenContext, [
979
1056
  state
980
1057
  ], "p0.childrenContext"),
1058
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
1059
+ props
1060
+ ], "p0.linkComponent"),
981
1061
  registeredComponents: qwik._fnSignal((p0) => p0.registeredComponents, [
982
1062
  props
983
1063
  ], "p0.registeredComponents")
@@ -994,7 +1074,10 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
994
1074
  ], "p0.value"),
995
1075
  context: qwik._fnSignal((p0) => p0.context, [
996
1076
  props
997
- ], "p0.context")
1077
+ ], "p0.context"),
1078
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
1079
+ props
1080
+ ], "p0.linkComponent")
998
1081
  }
999
1082
  }, 1, "jN_2") : (repeatItem.value || []).map((data, index) => {
1000
1083
  return /* @__PURE__ */ qwik._jsxC(RepeatedBlock, {
@@ -1007,8 +1090,14 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
1007
1090
  get registeredComponents() {
1008
1091
  return props.registeredComponents;
1009
1092
  },
1093
+ get linkComponent() {
1094
+ return props.linkComponent;
1095
+ },
1010
1096
  [qwik._IMMUTABLE]: {
1011
1097
  block: qwik._wrapProp(data, "block"),
1098
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
1099
+ props
1100
+ ], "p0.linkComponent"),
1012
1101
  registeredComponents: qwik._fnSignal((p0) => p0.registeredComponents, [
1013
1102
  props
1014
1103
  ], "p0.registeredComponents"),
@@ -1031,6 +1120,9 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
1031
1120
  get registeredComponents() {
1032
1121
  return componentRefProps.value.registeredComponents;
1033
1122
  },
1123
+ get linkComponent() {
1124
+ return componentRefProps.value.linkComponent;
1125
+ },
1034
1126
  get builderBlock() {
1035
1127
  return componentRefProps.value.builderBlock;
1036
1128
  },
@@ -1062,6 +1154,9 @@ const Block = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl(
1062
1154
  isInteractive: qwik._fnSignal((p0) => p0.value.isInteractive, [
1063
1155
  componentRefProps
1064
1156
  ], "p0.value.isInteractive"),
1157
+ linkComponent: qwik._fnSignal((p0) => p0.value.linkComponent, [
1158
+ componentRefProps
1159
+ ], "p0.value.linkComponent"),
1065
1160
  registeredComponents: qwik._fnSignal((p0) => p0.value.registeredComponents, [
1066
1161
  componentRefProps
1067
1162
  ], "p0.value.registeredComponents")
@@ -1189,6 +1284,9 @@ const Blocks = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl
1189
1284
  children: props.blocks ? (props.blocks || []).map((block) => {
1190
1285
  return /* @__PURE__ */ qwik._jsxC(Block, {
1191
1286
  block,
1287
+ get linkComponent() {
1288
+ return props.linkComponent;
1289
+ },
1192
1290
  get context() {
1193
1291
  return props.context || builderContext$1;
1194
1292
  },
@@ -1200,6 +1298,9 @@ const Blocks = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl
1200
1298
  builderContext$1,
1201
1299
  props
1202
1300
  ], "p1.context||p0"),
1301
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
1302
+ props
1303
+ ], "p0.linkComponent"),
1203
1304
  registeredComponents: qwik._fnSignal((p0, p1) => p1.registeredComponents || p0.registeredComponents, [
1204
1305
  componentsContext,
1205
1306
  props
@@ -1259,7 +1360,13 @@ const columnCssVars = function columnCssVars2(props, state, index) {
1259
1360
  const mobileWidth = "100%";
1260
1361
  const mobileMarginLeft = 0;
1261
1362
  const marginLeftKey = "margin-left";
1363
+ const sharedStyles = {
1364
+ display: "flex",
1365
+ flexDirection: "column",
1366
+ alignItems: "stretch"
1367
+ };
1262
1368
  return {
1369
+ ...sharedStyles,
1263
1370
  width,
1264
1371
  [marginLeftKey]: gutterPixels,
1265
1372
  "--column-width-mobile": getMobileStyle(props, state, {
@@ -1357,40 +1464,56 @@ const Columns = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQr
1357
1464
  }
1358
1465
  }, 3, "c0_0"),
1359
1466
  (props.columns || []).map((column, index) => {
1360
- return /* @__PURE__ */ qwik.createElement("div", {
1361
- class: "builder-column div-Columns-2",
1362
- style: columnCssVars(props, state, index),
1363
- key: index
1364
- }, /* @__PURE__ */ qwik._jsxC(Blocks, {
1365
- path: `component.options.columns.${index}.blocks`,
1366
- get parent() {
1367
- return props.builderBlock.id;
1368
- },
1369
- get styleProp() {
1370
- return {
1371
- flexGrow: "1"
1372
- };
1373
- },
1374
- get context() {
1375
- return props.builderContext;
1467
+ return /* @__PURE__ */ qwik._jsxC(DynamicRenderer, {
1468
+ TagName: column.link ? props.builderLinkComponent || "a" : "div",
1469
+ actionAttributes: {},
1470
+ attributes: {
1471
+ ...column.link ? {
1472
+ href: column.link
1473
+ } : {},
1474
+ [getClassPropName()]: "builder-column",
1475
+ style: mapStyleObjToStrIfNeeded(columnCssVars(props, state, index))
1376
1476
  },
1377
- get registeredComponents() {
1378
- return props.builderComponents;
1379
- },
1380
- blocks: deoptSignal(column.blocks),
1477
+ children: /* @__PURE__ */ qwik._jsxC(Blocks, {
1478
+ path: `component.options.columns.${index}.blocks`,
1479
+ get parent() {
1480
+ return props.builderBlock.id;
1481
+ },
1482
+ get styleProp() {
1483
+ return {
1484
+ flexGrow: "1"
1485
+ };
1486
+ },
1487
+ get context() {
1488
+ return props.builderContext;
1489
+ },
1490
+ get registeredComponents() {
1491
+ return props.builderComponents;
1492
+ },
1493
+ get linkComponent() {
1494
+ return props.builderLinkComponent;
1495
+ },
1496
+ blocks: deoptSignal(column.blocks),
1497
+ [qwik._IMMUTABLE]: {
1498
+ context: qwik._fnSignal((p0) => p0.builderContext, [
1499
+ props
1500
+ ], "p0.builderContext"),
1501
+ linkComponent: qwik._fnSignal((p0) => p0.builderLinkComponent, [
1502
+ props
1503
+ ], "p0.builderLinkComponent"),
1504
+ parent: qwik._fnSignal((p0) => p0.builderBlock.id, [
1505
+ props
1506
+ ], "p0.builderBlock.id"),
1507
+ registeredComponents: qwik._fnSignal((p0) => p0.builderComponents, [
1508
+ props
1509
+ ], "p0.builderComponents"),
1510
+ styleProp: qwik._IMMUTABLE
1511
+ }
1512
+ }, 3, "c0_1"),
1381
1513
  [qwik._IMMUTABLE]: {
1382
- context: qwik._fnSignal((p0) => p0.builderContext, [
1383
- props
1384
- ], "p0.builderContext"),
1385
- parent: qwik._fnSignal((p0) => p0.builderBlock.id, [
1386
- props
1387
- ], "p0.builderBlock.id"),
1388
- registeredComponents: qwik._fnSignal((p0) => p0.builderComponents, [
1389
- props
1390
- ], "p0.builderComponents"),
1391
- styleProp: qwik._IMMUTABLE
1514
+ actionAttributes: qwik._IMMUTABLE
1392
1515
  }
1393
- }, 3, "c0_1"));
1516
+ }, 1, index);
1394
1517
  })
1395
1518
  ], 1, "c0_2");
1396
1519
  }, "Columns_component_7yLj4bxdI6c"));
@@ -1399,11 +1522,6 @@ const STYLES$1 = `
1399
1522
  display: flex;
1400
1523
  line-height: normal;
1401
1524
  }
1402
- .div-Columns-2 {
1403
- display: flex;
1404
- flex-direction: column;
1405
- align-items: stretch;
1406
- }
1407
1525
  `;
1408
1526
  const FragmentComponent = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQrl((props) => {
1409
1527
  return /* @__PURE__ */ qwik._jsxQ("span", null, null, /* @__PURE__ */ qwik._jsxC(qwik.Slot, null, 3, "oj_0"), 1, "oj_1");
@@ -3326,7 +3444,7 @@ const getInteractionPropertiesForEvent = (event) => {
3326
3444
  }
3327
3445
  };
3328
3446
  };
3329
- const SDK_VERSION = "0.12.3";
3447
+ const SDK_VERSION = "0.12.5";
3330
3448
  const registry = {};
3331
3449
  function register(type, info) {
3332
3450
  let typeList = registry[type];
@@ -4013,6 +4131,9 @@ const ContentComponent = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.
4013
4131
  get contentWrapperProps() {
4014
4132
  return props.contentWrapperProps;
4015
4133
  },
4134
+ get linkComponent() {
4135
+ return props.linkComponent;
4136
+ },
4016
4137
  get trustedHosts() {
4017
4138
  return props.trustedHosts;
4018
4139
  },
@@ -4072,6 +4193,9 @@ const ContentComponent = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.
4072
4193
  get registeredComponents() {
4073
4194
  return state.registeredComponents;
4074
4195
  },
4196
+ get linkComponent() {
4197
+ return props.linkComponent;
4198
+ },
4075
4199
  [qwik._IMMUTABLE]: {
4076
4200
  blocks: qwik._fnSignal((p0) => {
4077
4201
  var _a2, _b2;
@@ -4082,6 +4206,9 @@ const ContentComponent = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.
4082
4206
  context: qwik._fnSignal((p0) => p0.builderContextSignal, [
4083
4207
  state
4084
4208
  ], "p0.builderContextSignal"),
4209
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
4210
+ props
4211
+ ], "p0.linkComponent"),
4085
4212
  registeredComponents: qwik._fnSignal((p0) => p0.registeredComponents, [
4086
4213
  state
4087
4214
  ], "p0.registeredComponents")
@@ -4119,6 +4246,9 @@ const ContentComponent = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.
4119
4246
  includeRefs: qwik._fnSignal((p0) => p0.includeRefs, [
4120
4247
  props
4121
4248
  ], "p0.includeRefs"),
4249
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
4250
+ props
4251
+ ], "p0.linkComponent"),
4122
4252
  locale: qwik._fnSignal((p0) => p0.locale, [
4123
4253
  props
4124
4254
  ], "p0.locale"),
@@ -4236,6 +4366,9 @@ const ContentVariants = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.i
4236
4366
  get customComponents() {
4237
4367
  return props.customComponents;
4238
4368
  },
4369
+ get linkComponent() {
4370
+ return props.linkComponent;
4371
+ },
4239
4372
  get canTrack() {
4240
4373
  return props.canTrack;
4241
4374
  },
@@ -4306,6 +4439,9 @@ const ContentVariants = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.i
4306
4439
  isSsrAbTest: qwik._fnSignal((p0) => p0.shouldRenderVariants, [
4307
4440
  state
4308
4441
  ], "p0.shouldRenderVariants"),
4442
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
4443
+ props
4444
+ ], "p0.linkComponent"),
4309
4445
  locale: qwik._fnSignal((p0) => p0.locale, [
4310
4446
  props
4311
4447
  ], "p0.locale"),
@@ -4344,6 +4480,9 @@ const ContentVariants = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.i
4344
4480
  get customComponents() {
4345
4481
  return props.customComponents;
4346
4482
  },
4483
+ get linkComponent() {
4484
+ return props.linkComponent;
4485
+ },
4347
4486
  get canTrack() {
4348
4487
  return props.canTrack;
4349
4488
  },
@@ -4417,6 +4556,9 @@ const ContentVariants = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.i
4417
4556
  isSsrAbTest: qwik._fnSignal((p0) => p0.shouldRenderVariants, [
4418
4557
  state
4419
4558
  ], "p0.shouldRenderVariants"),
4559
+ linkComponent: qwik._fnSignal((p0) => p0.linkComponent, [
4560
+ props
4561
+ ], "p0.linkComponent"),
4420
4562
  locale: qwik._fnSignal((p0) => p0.locale, [
4421
4563
  props
4422
4564
  ], "p0.locale"),
@@ -4467,7 +4609,7 @@ const Symbol$1 = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQ
4467
4609
  var _a2, _b;
4468
4610
  const [props2] = qwik.useLexicalScope();
4469
4611
  return [
4470
- props2.attributes.class,
4612
+ props2.attributes[getClassPropName()],
4471
4613
  "builder-symbol",
4472
4614
  ((_a2 = props2.symbol) == null ? void 0 : _a2.inline) ? "builder-inline-symbol" : void 0,
4473
4615
  ((_b = props2.symbol) == null ? void 0 : _b.dynamic) || props2.dynamic ? "builder-dynamic-symbol" : void 0
@@ -4520,6 +4662,9 @@ const Symbol$1 = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQ
4520
4662
  get content() {
4521
4663
  return state.contentToUse;
4522
4664
  },
4665
+ get linkComponent() {
4666
+ return props.builderLinkComponent;
4667
+ },
4523
4668
  [qwik._IMMUTABLE]: {
4524
4669
  apiKey: qwik._fnSignal((p0) => p0.builderContext.apiKey, [
4525
4670
  props
@@ -4553,6 +4698,9 @@ const Symbol$1 = /* @__PURE__ */ qwik.componentQrl(/* @__PURE__ */ qwik.inlinedQ
4553
4698
  props,
4554
4699
  state
4555
4700
  ], "{...p0.symbol?.data,...p0.builderContext.localState,...p1.contentToUse?.data?.state}"),
4701
+ linkComponent: qwik._fnSignal((p0) => p0.builderLinkComponent, [
4702
+ props
4703
+ ], "p0.builderLinkComponent"),
4556
4704
  model: qwik._fnSignal((p0) => {
4557
4705
  var _a2;
4558
4706
  return (_a2 = p0.symbol) == null ? void 0 : _a2.model;