@builder.io/sdk-solid 0.7.0 → 0.7.1-1

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.
@@ -1,4 +1,4 @@
1
- import { delegateEvents, createComponent, spread, mergeProps, insert, effect, setAttribute, className, style, template, memo, Dynamic, use } from 'solid-js/web';
1
+ import { createComponent, spread, mergeProps, insert, effect, setAttribute, className, style, template, memo, Dynamic, use } from 'solid-js/web';
2
2
  import { createContext, Show, useContext, For, createSignal, onMount, createEffect, on } from 'solid-js';
3
3
  import { css } from 'solid-styled-components';
4
4
 
@@ -183,6 +183,19 @@ var getFunctionArguments = ({
183
183
  event
184
184
  });
185
185
  };
186
+ var getBuilderGlobals = () => ({
187
+ isEditing: isEditing(),
188
+ isBrowser: isBrowser(),
189
+ isServer: !isBrowser(),
190
+ getUserAttributes: () => getUserAttributes()
191
+ });
192
+ var parseCode = (code, {
193
+ isExpression = true
194
+ }) => {
195
+ const useReturn = isExpression && !(code.includes(";") || code.includes(" return ") || code.trim().startsWith("return "));
196
+ const useCode = useReturn ? `return (${code});` : code;
197
+ return useCode;
198
+ };
186
199
 
187
200
  // src/functions/evaluate/browser-runtime/browser.js
188
201
  var runInBrowser = ({
@@ -224,6 +237,9 @@ function flattenState(rootState, localState, rootSetState) {
224
237
  });
225
238
  }
226
239
 
240
+ // src/functions/evaluate/choose-eval.js
241
+ var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInBrowser(args);
242
+
227
243
  // src/functions/evaluate/evaluate.js
228
244
  function evaluate({
229
245
  code,
@@ -238,17 +254,11 @@ function evaluate({
238
254
  logger.warn("Skipping evaluation of empty code block.");
239
255
  return;
240
256
  }
241
- const builder = {
242
- isEditing: isEditing(),
243
- isBrowser: isBrowser(),
244
- isServer: !isBrowser(),
245
- getUserAttributes: () => getUserAttributes()
246
- };
247
- const useReturn = isExpression && !(code.includes(";") || code.includes(" return ") || code.trim().startsWith("return "));
248
- const useCode = useReturn ? `return (${code});` : code;
249
257
  const args = {
250
- code: useCode,
251
- builder,
258
+ code: parseCode(code, {
259
+ isExpression
260
+ }),
261
+ builder: getBuilderGlobals(),
252
262
  context,
253
263
  event,
254
264
  rootSetState,
@@ -256,7 +266,7 @@ function evaluate({
256
266
  localState
257
267
  };
258
268
  try {
259
- return runInBrowser(args);
269
+ return chooseBrowserOrServerEval(args);
260
270
  } catch (e) {
261
271
  logger.error("Failed code evaluation: " + e.message, {
262
272
  code
@@ -2668,41 +2678,39 @@ var _tmpl$13 = /* @__PURE__ */ template(`<div>`);
2668
2678
  function CustomCode(props) {
2669
2679
  const [scriptsInserted, setScriptsInserted] = createSignal([]);
2670
2680
  const [scriptsRun, setScriptsRun] = createSignal([]);
2671
- function findAndRunScripts() {
2672
- if (elem && elem.getElementsByTagName && typeof window !== "undefined") {
2673
- const scripts = elem.getElementsByTagName("script");
2674
- for (let i = 0; i < scripts.length; i++) {
2675
- const script = scripts[i];
2676
- if (script.src) {
2677
- if (scriptsInserted().includes(script.src)) {
2678
- continue;
2679
- }
2680
- scriptsInserted().push(script.src);
2681
- const newScript = document.createElement("script");
2682
- newScript.async = true;
2683
- newScript.src = script.src;
2684
- document.head.appendChild(newScript);
2685
- } else if (!script.type || ["text/javascript", "application/javascript", "application/ecmascript"].includes(script.type)) {
2686
- if (scriptsRun().includes(script.innerText)) {
2687
- continue;
2688
- }
2689
- try {
2690
- scriptsRun().push(script.innerText);
2691
- new Function(script.innerText)();
2692
- } catch (error) {
2693
- }
2681
+ let elementRef;
2682
+ onMount(() => {
2683
+ if (!elementRef?.getElementsByTagName || typeof window === "undefined") {
2684
+ return;
2685
+ }
2686
+ const scripts = elementRef.getElementsByTagName("script");
2687
+ for (let i = 0; i < scripts.length; i++) {
2688
+ const script = scripts[i];
2689
+ if (script.src) {
2690
+ if (scriptsInserted().includes(script.src)) {
2691
+ continue;
2692
+ }
2693
+ scriptsInserted().push(script.src);
2694
+ const newScript = document.createElement("script");
2695
+ newScript.async = true;
2696
+ newScript.src = script.src;
2697
+ document.head.appendChild(newScript);
2698
+ } else if (!script.type || ["text/javascript", "application/javascript", "application/ecmascript"].includes(script.type)) {
2699
+ if (scriptsRun().includes(script.innerText)) {
2700
+ continue;
2701
+ }
2702
+ try {
2703
+ scriptsRun().push(script.innerText);
2704
+ new Function(script.innerText)();
2705
+ } catch (error) {
2694
2706
  }
2695
2707
  }
2696
2708
  }
2697
- }
2698
- let elem;
2699
- onMount(() => {
2700
- findAndRunScripts();
2701
2709
  });
2702
2710
  return (() => {
2703
2711
  const _el$ = _tmpl$13();
2704
- const _ref$ = elem;
2705
- typeof _ref$ === "function" ? use(_ref$, _el$) : elem = _el$;
2712
+ const _ref$ = elementRef;
2713
+ typeof _ref$ === "function" ? use(_ref$, _el$) : elementRef = _el$;
2706
2714
  effect((_p$) => {
2707
2715
  const _v$ = "builder-custom-code" + (props.replaceNodes ? " replace-nodes" : ""), _v$2 = props.code;
2708
2716
  _v$ !== _p$._v$ && className(_el$, _p$._v$ = _v$);
@@ -3360,7 +3368,7 @@ var track = (args) => _track(__spreadProps9(__spreadValues12({}, args), {
3360
3368
  }));
3361
3369
 
3362
3370
  // src/constants/sdk-version.js
3363
- var SDK_VERSION = "0.7.0";
3371
+ var SDK_VERSION = "0.7.1-1";
3364
3372
 
3365
3373
  // src/functions/register.js
3366
3374
  var registry = {};
@@ -3813,6 +3821,7 @@ var __spreadValues15 = (a, b) => {
3813
3821
  }
3814
3822
  return a;
3815
3823
  };
3824
+ var isPositiveNumber = (thing) => typeof thing === "number" && !isNaN(thing) && thing >= 0;
3816
3825
  var generateContentUrl = (options) => {
3817
3826
  let {
3818
3827
  noTraverse = false
@@ -3826,7 +3835,14 @@ var generateContentUrl = (options) => {
3826
3835
  includeRefs = true,
3827
3836
  enrich,
3828
3837
  locale,
3829
- apiVersion = DEFAULT_API_VERSION
3838
+ apiVersion = DEFAULT_API_VERSION,
3839
+ fields,
3840
+ omit,
3841
+ offset,
3842
+ cacheSeconds,
3843
+ staleCacheSeconds,
3844
+ sort,
3845
+ includeUnpublished
3830
3846
  } = options;
3831
3847
  if (!apiKey) {
3832
3848
  throw new Error("Missing API key");
@@ -3838,6 +3854,30 @@ var generateContentUrl = (options) => {
3838
3854
  noTraverse = true;
3839
3855
  }
3840
3856
  const url = new URL(`https://cdn.builder.io/api/${apiVersion}/content/${model}?apiKey=${apiKey}&limit=${limit}&noTraverse=${noTraverse}&includeRefs=${includeRefs}${locale ? `&locale=${locale}` : ""}${enrich ? `&enrich=${enrich}` : ""}`);
3857
+ url.searchParams.set("omit", omit || "meta.componentsUsed");
3858
+ if (fields) {
3859
+ url.searchParams.set("fields", fields);
3860
+ }
3861
+ if (Number.isFinite(offset) && offset > -1) {
3862
+ url.searchParams.set("offset", String(Math.floor(offset)));
3863
+ }
3864
+ if (typeof includeUnpublished === "boolean") {
3865
+ url.searchParams.set("includeUnpublished", String(includeUnpublished));
3866
+ }
3867
+ if (cacheSeconds && isPositiveNumber(cacheSeconds)) {
3868
+ url.searchParams.set("cacheSeconds", String(cacheSeconds));
3869
+ }
3870
+ if (staleCacheSeconds && isPositiveNumber(staleCacheSeconds)) {
3871
+ url.searchParams.set("staleCacheSeconds", String(staleCacheSeconds));
3872
+ }
3873
+ if (sort) {
3874
+ const flattened2 = flatten({
3875
+ sort
3876
+ });
3877
+ for (const key in flattened2) {
3878
+ url.searchParams.set(key, JSON.stringify(flattened2[key]));
3879
+ }
3880
+ }
3841
3881
  const queryOptions = __spreadValues15(__spreadValues15({}, getBuilderSearchParamsFromWindow()), normalizeSearchParams(options.options || {}));
3842
3882
  const flattened = flatten(queryOptions);
3843
3883
  for (const key in flattened) {
@@ -4127,11 +4167,8 @@ function EnableEditor(props) {
4127
4167
  }
4128
4168
  let elementRef;
4129
4169
  onMount(() => {
4130
- if (!props.apiKey) {
4131
- logger.error("No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
4132
- }
4133
4170
  if (isBrowser()) {
4134
- if (isEditing()) {
4171
+ if (isEditing() && true) {
4135
4172
  setForceReRenderCount(forceReRenderCount() + 1);
4136
4173
  window.addEventListener("message", processMessage);
4137
4174
  registerInsertMenu();
@@ -4152,18 +4189,20 @@ function EnableEditor(props) {
4152
4189
  });
4153
4190
  window.addEventListener("builder:component:stateChangeListenerActivated", emitStateUpdate);
4154
4191
  }
4155
- if (props.builderContextSignal.content) {
4192
+ const shouldTrackImpression = props.builderContextSignal.content && getDefaultCanTrack(props.canTrack);
4193
+ if (shouldTrackImpression) {
4156
4194
  const variationId = props.builderContextSignal.content?.testVariationId;
4157
4195
  const contentId = props.builderContextSignal.content?.id;
4196
+ const apiKeyProp = props.apiKey;
4158
4197
  _track({
4159
4198
  type: "impression",
4160
- canTrack: getDefaultCanTrack(props.canTrack),
4199
+ canTrack: true,
4161
4200
  contentId,
4162
- apiKey: props.apiKey,
4201
+ apiKey: apiKeyProp,
4163
4202
  variationId: variationId !== contentId ? variationId : void 0
4164
4203
  });
4165
4204
  }
4166
- if (isPreviewing()) {
4205
+ if (isPreviewing() && true) {
4167
4206
  const searchParams = new URL(location.href).searchParams;
4168
4207
  const searchParamPreviewModel = searchParams.get("builder.preview");
4169
4208
  const searchParamPreviewId = searchParams.get(`builder.preview.${searchParamPreviewModel}`);
@@ -4180,11 +4219,16 @@ function EnableEditor(props) {
4180
4219
  });
4181
4220
  }
4182
4221
  }
4183
- evaluateJsCode();
4184
- runHttpRequests();
4185
- emitStateUpdate();
4186
4222
  }
4187
4223
  });
4224
+ onMount(() => {
4225
+ if (!props.apiKey) {
4226
+ logger.error("No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop.");
4227
+ }
4228
+ evaluateJsCode();
4229
+ runHttpRequests();
4230
+ emitStateUpdate();
4231
+ });
4188
4232
  function onUpdateFn_0() {
4189
4233
  if (props.content) {
4190
4234
  mergeNewContent(props.content);
@@ -4217,16 +4261,17 @@ function EnableEditor(props) {
4217
4261
  },
4218
4262
  get children() {
4219
4263
  const _el$ = _tmpl$14();
4220
- _el$.$$click = (event) => onClick(event);
4221
4264
  const _ref$ = elementRef;
4222
4265
  typeof _ref$ === "function" ? use(_ref$, _el$) : elementRef = _el$;
4223
4266
  spread(_el$, mergeProps({
4224
4267
  get ["class"]() {
4225
4268
  return props.classNameProp;
4226
- },
4269
+ }
4270
+ }, {}, {
4227
4271
  get key() {
4228
4272
  return forceReRenderCount();
4229
4273
  },
4274
+ "onClick": (event) => onClick(event),
4230
4275
  get ["builder-content-id"]() {
4231
4276
  return props.builderContextSignal.content?.id;
4232
4277
  },
@@ -4245,7 +4290,6 @@ function EnableEditor(props) {
4245
4290
  });
4246
4291
  }
4247
4292
  var enable_editor_default = EnableEditor;
4248
- delegateEvents(["click"]);
4249
4293
  var _tmpl$15 = /* @__PURE__ */ template(`<script>`);
4250
4294
  function InlinedScript(props) {
4251
4295
  return (() => {
@@ -170,6 +170,19 @@ var getFunctionArguments = ({
170
170
  event
171
171
  });
172
172
  };
173
+ var getBuilderGlobals = () => ({
174
+ isEditing: isEditing(),
175
+ isBrowser: isBrowser(),
176
+ isServer: !isBrowser(),
177
+ getUserAttributes: () => getUserAttributes()
178
+ });
179
+ var parseCode = (code, {
180
+ isExpression = true
181
+ }) => {
182
+ const useReturn = isExpression && !(code.includes(";") || code.includes(" return ") || code.trim().startsWith("return "));
183
+ const useCode = useReturn ? `return (${code});` : code;
184
+ return useCode;
185
+ };
173
186
 
174
187
  // src/functions/evaluate/browser-runtime/browser.js
175
188
  var runInBrowser = ({
@@ -211,6 +224,9 @@ function flattenState(rootState, localState, rootSetState) {
211
224
  });
212
225
  }
213
226
 
227
+ // src/functions/evaluate/choose-eval.js
228
+ var chooseBrowserOrServerEval = (args) => isBrowser() ? runInBrowser(args) : runInBrowser(args);
229
+
214
230
  // src/functions/evaluate/evaluate.js
215
231
  function evaluate({
216
232
  code,
@@ -225,17 +241,11 @@ function evaluate({
225
241
  logger.warn("Skipping evaluation of empty code block.");
226
242
  return;
227
243
  }
228
- const builder = {
229
- isEditing: isEditing(),
230
- isBrowser: isBrowser(),
231
- isServer: !isBrowser(),
232
- getUserAttributes: () => getUserAttributes()
233
- };
234
- const useReturn = isExpression && !(code.includes(";") || code.includes(" return ") || code.trim().startsWith("return "));
235
- const useCode = useReturn ? `return (${code});` : code;
236
244
  const args = {
237
- code: useCode,
238
- builder,
245
+ code: parseCode(code, {
246
+ isExpression
247
+ }),
248
+ builder: getBuilderGlobals(),
239
249
  context,
240
250
  event,
241
251
  rootSetState,
@@ -243,7 +253,7 @@ function evaluate({
243
253
  localState
244
254
  };
245
255
  try {
246
- return runInBrowser(args);
256
+ return chooseBrowserOrServerEval(args);
247
257
  } catch (e) {
248
258
  logger.error("Failed code evaluation: " + e.message, {
249
259
  code
@@ -2402,44 +2412,42 @@ import { onMount, createSignal as createSignal10 } from "solid-js";
2402
2412
  function CustomCode(props) {
2403
2413
  const [scriptsInserted, setScriptsInserted] = createSignal10([]);
2404
2414
  const [scriptsRun, setScriptsRun] = createSignal10([]);
2405
- function findAndRunScripts() {
2406
- if (elem && elem.getElementsByTagName && typeof window !== "undefined") {
2407
- const scripts = elem.getElementsByTagName("script");
2408
- for (let i = 0; i < scripts.length; i++) {
2409
- const script = scripts[i];
2410
- if (script.src) {
2411
- if (scriptsInserted().includes(script.src)) {
2412
- continue;
2413
- }
2414
- scriptsInserted().push(script.src);
2415
- const newScript = document.createElement("script");
2416
- newScript.async = true;
2417
- newScript.src = script.src;
2418
- document.head.appendChild(newScript);
2419
- } else if (!script.type || [
2420
- "text/javascript",
2421
- "application/javascript",
2422
- "application/ecmascript"
2423
- ].includes(script.type)) {
2424
- if (scriptsRun().includes(script.innerText)) {
2425
- continue;
2426
- }
2427
- try {
2428
- scriptsRun().push(script.innerText);
2429
- new Function(script.innerText)();
2430
- } catch (error) {
2431
- }
2415
+ let elementRef;
2416
+ onMount(() => {
2417
+ if (!elementRef?.getElementsByTagName || typeof window === "undefined") {
2418
+ return;
2419
+ }
2420
+ const scripts = elementRef.getElementsByTagName("script");
2421
+ for (let i = 0; i < scripts.length; i++) {
2422
+ const script = scripts[i];
2423
+ if (script.src) {
2424
+ if (scriptsInserted().includes(script.src)) {
2425
+ continue;
2426
+ }
2427
+ scriptsInserted().push(script.src);
2428
+ const newScript = document.createElement("script");
2429
+ newScript.async = true;
2430
+ newScript.src = script.src;
2431
+ document.head.appendChild(newScript);
2432
+ } else if (!script.type || [
2433
+ "text/javascript",
2434
+ "application/javascript",
2435
+ "application/ecmascript"
2436
+ ].includes(script.type)) {
2437
+ if (scriptsRun().includes(script.innerText)) {
2438
+ continue;
2439
+ }
2440
+ try {
2441
+ scriptsRun().push(script.innerText);
2442
+ new Function(script.innerText)();
2443
+ } catch (error) {
2432
2444
  }
2433
2445
  }
2434
2446
  }
2435
- }
2436
- let elem;
2437
- onMount(() => {
2438
- findAndRunScripts();
2439
2447
  });
2440
2448
  return <div
2441
2449
  class={"builder-custom-code" + (props.replaceNodes ? " replace-nodes" : "")}
2442
- ref={elem}
2450
+ ref={elementRef}
2443
2451
  innerHTML={props.code}
2444
2452
  />;
2445
2453
  }
@@ -3092,7 +3100,7 @@ var track = (args) => _track(__spreadProps9(__spreadValues12({}, args), {
3092
3100
  }));
3093
3101
 
3094
3102
  // src/constants/sdk-version.js
3095
- var SDK_VERSION = "0.7.0";
3103
+ var SDK_VERSION = "0.7.1-1";
3096
3104
 
3097
3105
  // src/functions/register.js
3098
3106
  var registry = {};
@@ -3545,6 +3553,7 @@ var __spreadValues15 = (a, b) => {
3545
3553
  }
3546
3554
  return a;
3547
3555
  };
3556
+ var isPositiveNumber = (thing) => typeof thing === "number" && !isNaN(thing) && thing >= 0;
3548
3557
  var generateContentUrl = (options) => {
3549
3558
  let {
3550
3559
  noTraverse = false
@@ -3558,7 +3567,14 @@ var generateContentUrl = (options) => {
3558
3567
  includeRefs = true,
3559
3568
  enrich,
3560
3569
  locale,
3561
- apiVersion = DEFAULT_API_VERSION
3570
+ apiVersion = DEFAULT_API_VERSION,
3571
+ fields,
3572
+ omit,
3573
+ offset,
3574
+ cacheSeconds,
3575
+ staleCacheSeconds,
3576
+ sort,
3577
+ includeUnpublished
3562
3578
  } = options;
3563
3579
  if (!apiKey) {
3564
3580
  throw new Error("Missing API key");
@@ -3570,6 +3586,30 @@ var generateContentUrl = (options) => {
3570
3586
  noTraverse = true;
3571
3587
  }
3572
3588
  const url = new URL(`https://cdn.builder.io/api/${apiVersion}/content/${model}?apiKey=${apiKey}&limit=${limit}&noTraverse=${noTraverse}&includeRefs=${includeRefs}${locale ? `&locale=${locale}` : ""}${enrich ? `&enrich=${enrich}` : ""}`);
3589
+ url.searchParams.set("omit", omit || "meta.componentsUsed");
3590
+ if (fields) {
3591
+ url.searchParams.set("fields", fields);
3592
+ }
3593
+ if (Number.isFinite(offset) && offset > -1) {
3594
+ url.searchParams.set("offset", String(Math.floor(offset)));
3595
+ }
3596
+ if (typeof includeUnpublished === "boolean") {
3597
+ url.searchParams.set("includeUnpublished", String(includeUnpublished));
3598
+ }
3599
+ if (cacheSeconds && isPositiveNumber(cacheSeconds)) {
3600
+ url.searchParams.set("cacheSeconds", String(cacheSeconds));
3601
+ }
3602
+ if (staleCacheSeconds && isPositiveNumber(staleCacheSeconds)) {
3603
+ url.searchParams.set("staleCacheSeconds", String(staleCacheSeconds));
3604
+ }
3605
+ if (sort) {
3606
+ const flattened2 = flatten({
3607
+ sort
3608
+ });
3609
+ for (const key in flattened2) {
3610
+ url.searchParams.set(key, JSON.stringify(flattened2[key]));
3611
+ }
3612
+ }
3573
3613
  const queryOptions = __spreadValues15(__spreadValues15({}, getBuilderSearchParamsFromWindow()), normalizeSearchParams(options.options || {}));
3574
3614
  const flattened = flatten(queryOptions);
3575
3615
  for (const key in flattened) {
@@ -3855,13 +3895,8 @@ function EnableEditor(props) {
3855
3895
  }
3856
3896
  let elementRef;
3857
3897
  onMount2(() => {
3858
- if (!props.apiKey) {
3859
- logger.error(
3860
- "No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop."
3861
- );
3862
- }
3863
3898
  if (isBrowser()) {
3864
- if (isEditing()) {
3899
+ if (isEditing() && true) {
3865
3900
  setForceReRenderCount(forceReRenderCount() + 1);
3866
3901
  window.addEventListener("message", processMessage);
3867
3902
  registerInsertMenu();
@@ -3887,18 +3922,20 @@ function EnableEditor(props) {
3887
3922
  emitStateUpdate
3888
3923
  );
3889
3924
  }
3890
- if (props.builderContextSignal.content) {
3925
+ const shouldTrackImpression = props.builderContextSignal.content && getDefaultCanTrack(props.canTrack);
3926
+ if (shouldTrackImpression) {
3891
3927
  const variationId = props.builderContextSignal.content?.testVariationId;
3892
3928
  const contentId = props.builderContextSignal.content?.id;
3929
+ const apiKeyProp = props.apiKey;
3893
3930
  _track({
3894
3931
  type: "impression",
3895
- canTrack: getDefaultCanTrack(props.canTrack),
3932
+ canTrack: true,
3896
3933
  contentId,
3897
- apiKey: props.apiKey,
3934
+ apiKey: apiKeyProp,
3898
3935
  variationId: variationId !== contentId ? variationId : void 0
3899
3936
  });
3900
3937
  }
3901
- if (isPreviewing()) {
3938
+ if (isPreviewing() && true) {
3902
3939
  const searchParams = new URL(location.href).searchParams;
3903
3940
  const searchParamPreviewModel = searchParams.get("builder.preview");
3904
3941
  const searchParamPreviewId = searchParams.get(
@@ -3917,11 +3954,18 @@ function EnableEditor(props) {
3917
3954
  });
3918
3955
  }
3919
3956
  }
3920
- evaluateJsCode();
3921
- runHttpRequests();
3922
- emitStateUpdate();
3923
3957
  }
3924
3958
  });
3959
+ onMount2(() => {
3960
+ if (!props.apiKey) {
3961
+ logger.error(
3962
+ "No API key provided to `RenderContent` component. This can cause issues. Please provide an API key using the `apiKey` prop."
3963
+ );
3964
+ }
3965
+ evaluateJsCode();
3966
+ runHttpRequests();
3967
+ emitStateUpdate();
3968
+ });
3925
3969
  function onUpdateFn_0() {
3926
3970
  if (props.content) {
3927
3971
  mergeNewContent(props.content);
@@ -3958,6 +4002,7 @@ function EnableEditor(props) {
3958
4002
  createEffect2(on2(() => [props.builderContextSignal.rootState], onUpdateFn_4));
3959
4003
  return <stdin_default.Provider value={props.builderContextSignal}><Show9 when={props.builderContextSignal.content}><div
3960
4004
  class={props.classNameProp}
4005
+ {...{}}
3961
4006
  key={forceReRenderCount()}
3962
4007
  ref={elementRef}
3963
4008
  onClick={(event) => onClick(event)}