@makeswift/runtime 0.5.5 → 0.6.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.
Files changed (129) hide show
  1. package/dist/Box.cjs.js +11 -6
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +12 -7
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +2 -1
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +2 -1
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +2 -1
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +2 -1
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +2 -1
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +2 -1
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +2 -1
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +2 -1
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/EditableText.cjs.js +359 -0
  22. package/dist/EditableText.cjs.js.map +1 -0
  23. package/dist/EditableText.es.js +352 -0
  24. package/dist/EditableText.es.js.map +1 -0
  25. package/dist/Embed.cjs.js +2 -1
  26. package/dist/Embed.cjs.js.map +1 -1
  27. package/dist/Embed.es.js +2 -1
  28. package/dist/Embed.es.js.map +1 -1
  29. package/dist/Form.cjs.js +2 -1
  30. package/dist/Form.cjs.js.map +1 -1
  31. package/dist/Form.es.js +2 -1
  32. package/dist/Form.es.js.map +1 -1
  33. package/dist/Image.cjs.js +2 -1
  34. package/dist/Image.cjs.js.map +1 -1
  35. package/dist/Image.es.js +2 -1
  36. package/dist/Image.es.js.map +1 -1
  37. package/dist/LiveProvider.cjs.js +3 -11
  38. package/dist/LiveProvider.cjs.js.map +1 -1
  39. package/dist/LiveProvider.es.js +6 -14
  40. package/dist/LiveProvider.es.js.map +1 -1
  41. package/dist/Navigation.cjs.js +2 -1
  42. package/dist/Navigation.cjs.js.map +1 -1
  43. package/dist/Navigation.es.js +2 -1
  44. package/dist/Navigation.es.js.map +1 -1
  45. package/dist/PreviewProvider.cjs.js +6 -3
  46. package/dist/PreviewProvider.cjs.js.map +1 -1
  47. package/dist/PreviewProvider.es.js +8 -5
  48. package/dist/PreviewProvider.es.js.map +1 -1
  49. package/dist/ReadOnlyText.cjs.js +206 -0
  50. package/dist/ReadOnlyText.cjs.js.map +1 -0
  51. package/dist/ReadOnlyText.es.js +204 -0
  52. package/dist/ReadOnlyText.es.js.map +1 -0
  53. package/dist/Root.cjs.js +4 -3
  54. package/dist/Root.cjs.js.map +1 -1
  55. package/dist/Root.es.js +3 -2
  56. package/dist/Root.es.js.map +1 -1
  57. package/dist/SocialLinks.cjs.js +2 -1
  58. package/dist/SocialLinks.cjs.js.map +1 -1
  59. package/dist/SocialLinks.es.js +2 -1
  60. package/dist/SocialLinks.es.js.map +1 -1
  61. package/dist/Text.cjs.js +26 -405
  62. package/dist/Text.cjs.js.map +1 -1
  63. package/dist/Text.es.js +23 -405
  64. package/dist/Text.es.js.map +1 -1
  65. package/dist/Video.cjs.js +2 -1
  66. package/dist/Video.cjs.js.map +1 -1
  67. package/dist/Video.es.js +2 -1
  68. package/dist/Video.es.js.map +1 -1
  69. package/dist/actions.cjs.js.map +1 -1
  70. package/dist/actions.es.js.map +1 -1
  71. package/dist/components.cjs.js +2 -5
  72. package/dist/components.cjs.js.map +1 -1
  73. package/dist/components.es.js +2 -5
  74. package/dist/components.es.js.map +1 -1
  75. package/dist/constants.cjs.js +45 -26
  76. package/dist/constants.cjs.js.map +1 -1
  77. package/dist/constants.es.js +36 -20
  78. package/dist/constants.es.js.map +1 -1
  79. package/dist/index.cjs.js +78 -310
  80. package/dist/index.cjs.js.map +1 -1
  81. package/dist/index.cjs2.js +20 -21
  82. package/dist/index.cjs2.js.map +1 -1
  83. package/dist/index.cjs5.js +141 -0
  84. package/dist/index.cjs5.js.map +1 -0
  85. package/dist/index.es.js +77 -308
  86. package/dist/index.es.js.map +1 -1
  87. package/dist/index.es2.js +23 -24
  88. package/dist/index.es2.js.map +1 -1
  89. package/dist/index.es3.js +1 -1
  90. package/dist/index.es5.js +139 -0
  91. package/dist/index.es5.js.map +1 -0
  92. package/dist/next.cjs.js +2 -1
  93. package/dist/next.cjs.js.map +1 -1
  94. package/dist/next.es.js +3 -2
  95. package/dist/next.es.js.map +1 -1
  96. package/dist/react.cjs.js +2 -1
  97. package/dist/react.cjs.js.map +1 -1
  98. package/dist/react.es.js +2 -1
  99. package/dist/react.es.js.map +1 -1
  100. package/dist/types/src/api/react.d.ts.map +1 -1
  101. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -1
  102. package/dist/types/src/components/builtin/Box/animations.d.ts +1 -1
  103. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -1
  104. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +1 -1
  105. package/dist/types/src/components/builtin/Text/EditableText.d.ts +16 -0
  106. package/dist/types/src/components/builtin/Text/EditableText.d.ts.map +1 -0
  107. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts +11 -0
  108. package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +1 -0
  109. package/dist/types/src/components/builtin/Text/Text.d.ts +3 -7
  110. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -1
  111. package/dist/types/src/components/builtin/register.d.ts.map +1 -1
  112. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -1
  113. package/dist/types/src/next/document.d.ts.map +1 -1
  114. package/dist/types/src/runtimes/react/components/LiveProvider.d.ts.map +1 -1
  115. package/dist/types/src/runtimes/react/element-imperative-handle.d.ts +12 -0
  116. package/dist/types/src/runtimes/react/element-imperative-handle.d.ts.map +1 -0
  117. package/dist/types/src/runtimes/react/find-dom-node.d.ts +1 -1
  118. package/dist/types/src/runtimes/react/find-dom-node.d.ts.map +1 -1
  119. package/dist/types/src/runtimes/react/index.d.ts +4 -2
  120. package/dist/types/src/runtimes/react/index.d.ts.map +1 -1
  121. package/dist/types/src/state/actions.d.ts +4 -3
  122. package/dist/types/src/state/actions.d.ts.map +1 -1
  123. package/dist/types/src/state/modules/is-preview.d.ts +6 -0
  124. package/dist/types/src/state/modules/is-preview.d.ts.map +1 -0
  125. package/dist/types/src/state/react-builder-preview.d.ts +1 -0
  126. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -1
  127. package/dist/types/src/state/react-page.d.ts +2 -0
  128. package/dist/types/src/state/react-page.d.ts.map +1 -1
  129. package/package.json +4 -1
package/dist/index.cjs.js CHANGED
@@ -42,13 +42,14 @@ var dynamic = require("next/dynamic");
42
42
  var constants = require("./constants.cjs.js");
43
43
  var actions = require("./actions.cjs.js");
44
44
  var css = require("@emotion/css");
45
+ var serialize = require("@emotion/serialize");
46
+ var utils = require("@emotion/utils");
45
47
  var jsxRuntime = require("react/jsx-runtime");
46
48
  var slot = require("./slot.cjs.js");
47
49
  var textInput = require("./text-input.cjs.js");
48
50
  var combobox = require("./combobox.cjs.js");
49
51
  var control = require("./control.cjs.js");
50
52
  var shim = require("use-sync-external-store/shim");
51
- var slate = require("slate");
52
53
  var redux = require("redux");
53
54
  var thunk = require("redux-thunk");
54
55
  var types = require("./types.cjs.js");
@@ -656,7 +657,6 @@ class MakeswiftClient {
656
657
  async prefetch(element) {
657
658
  const introspectionData = await introspect(element, this, storeContextDefaultValue);
658
659
  await this.makeswiftApiClient.dispatch(fetchIntrospectedResources(introspectionData));
659
- slate.KeyUtils.resetGenerator();
660
660
  return getSerializedState(this.makeswiftApiClient.getState());
661
661
  }
662
662
  readSwatch(swatchId) {
@@ -1050,7 +1050,6 @@ if (originalUrl.searchParams.has(searchParamName)) {
1050
1050
  class Document$1 extends NextDocument__default["default"] {
1051
1051
  static async getInitialProps(ctx) {
1052
1052
  const initialProps = await NextDocument__default["default"].getInitialProps(ctx);
1053
- slate.KeyUtils.resetGenerator();
1054
1053
  const {
1055
1054
  extractCritical
1056
1055
  } = createEmotionServer__default["default"](css.cache);
@@ -1084,7 +1083,7 @@ class Document$1 extends NextDocument__default["default"] {
1084
1083
  });
1085
1084
  }
1086
1085
  }
1087
- const version = "0.5.5";
1086
+ const version = "0.6.0";
1088
1087
  function isErrorWithMessage(error) {
1089
1088
  return typeof error === "object" && error !== null && "message" in error && typeof error.message === "string";
1090
1089
  }
@@ -2367,279 +2366,20 @@ function registerBuiltinComponents(runtime) {
2367
2366
  unregisterRootComponent();
2368
2367
  unregisterSocialLinksComponent();
2369
2368
  unregisterTextComponent();
2370
- unregisterTextComponent();
2371
2369
  unregisterVideoComponent();
2372
2370
  };
2373
2371
  }
2374
- function murmur2(str) {
2375
- var h = 0;
2376
- var k, i = 0, len = str.length;
2377
- for (; len >= 4; ++i, len -= 4) {
2378
- k = str.charCodeAt(i) & 255 | (str.charCodeAt(++i) & 255) << 8 | (str.charCodeAt(++i) & 255) << 16 | (str.charCodeAt(++i) & 255) << 24;
2379
- k = (k & 65535) * 1540483477 + ((k >>> 16) * 59797 << 16);
2380
- k ^= k >>> 24;
2381
- h = (k & 65535) * 1540483477 + ((k >>> 16) * 59797 << 16) ^ (h & 65535) * 1540483477 + ((h >>> 16) * 59797 << 16);
2382
- }
2383
- switch (len) {
2384
- case 3:
2385
- h ^= (str.charCodeAt(i + 2) & 255) << 16;
2386
- case 2:
2387
- h ^= (str.charCodeAt(i + 1) & 255) << 8;
2388
- case 1:
2389
- h ^= str.charCodeAt(i) & 255;
2390
- h = (h & 65535) * 1540483477 + ((h >>> 16) * 59797 << 16);
2391
- }
2392
- h ^= h >>> 13;
2393
- h = (h & 65535) * 1540483477 + ((h >>> 16) * 59797 << 16);
2394
- return ((h ^ h >>> 15) >>> 0).toString(36);
2395
- }
2396
- var unitlessKeys = {
2397
- animationIterationCount: 1,
2398
- borderImageOutset: 1,
2399
- borderImageSlice: 1,
2400
- borderImageWidth: 1,
2401
- boxFlex: 1,
2402
- boxFlexGroup: 1,
2403
- boxOrdinalGroup: 1,
2404
- columnCount: 1,
2405
- columns: 1,
2406
- flex: 1,
2407
- flexGrow: 1,
2408
- flexPositive: 1,
2409
- flexShrink: 1,
2410
- flexNegative: 1,
2411
- flexOrder: 1,
2412
- gridRow: 1,
2413
- gridRowEnd: 1,
2414
- gridRowSpan: 1,
2415
- gridRowStart: 1,
2416
- gridColumn: 1,
2417
- gridColumnEnd: 1,
2418
- gridColumnSpan: 1,
2419
- gridColumnStart: 1,
2420
- msGridRow: 1,
2421
- msGridRowSpan: 1,
2422
- msGridColumn: 1,
2423
- msGridColumnSpan: 1,
2424
- fontWeight: 1,
2425
- lineHeight: 1,
2426
- opacity: 1,
2427
- order: 1,
2428
- orphans: 1,
2429
- tabSize: 1,
2430
- widows: 1,
2431
- zIndex: 1,
2432
- zoom: 1,
2433
- WebkitLineClamp: 1,
2434
- fillOpacity: 1,
2435
- floodOpacity: 1,
2436
- stopOpacity: 1,
2437
- strokeDasharray: 1,
2438
- strokeDashoffset: 1,
2439
- strokeMiterlimit: 1,
2440
- strokeOpacity: 1,
2441
- strokeWidth: 1
2442
- };
2443
- function memoize(fn) {
2444
- var cache = /* @__PURE__ */ Object.create(null);
2445
- return function(arg) {
2446
- if (cache[arg] === void 0)
2447
- cache[arg] = fn(arg);
2448
- return cache[arg];
2449
- };
2450
- }
2451
- var hyphenateRegex = /[A-Z]|^ms/g;
2452
- var animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;
2453
- var isCustomProperty = function isCustomProperty2(property) {
2454
- return property.charCodeAt(1) === 45;
2455
- };
2456
- var isProcessableValue = function isProcessableValue2(value) {
2457
- return value != null && typeof value !== "boolean";
2458
- };
2459
- var processStyleName = /* @__PURE__ */ memoize(function(styleName) {
2460
- return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, "-$&").toLowerCase();
2461
- });
2462
- var processStyleValue = function processStyleValue2(key, value) {
2463
- switch (key) {
2464
- case "animation":
2465
- case "animationName": {
2466
- if (typeof value === "string") {
2467
- return value.replace(animationRegex, function(match, p1, p2) {
2468
- cursor = {
2469
- name: p1,
2470
- styles: p2,
2471
- next: cursor
2472
- };
2473
- return p1;
2474
- });
2475
- }
2476
- }
2477
- }
2478
- if (unitlessKeys[key] !== 1 && !isCustomProperty(key) && typeof value === "number" && value !== 0) {
2479
- return value + "px";
2480
- }
2481
- return value;
2482
- };
2483
- function handleInterpolation(mergedProps, registered, interpolation) {
2484
- if (interpolation == null) {
2485
- return "";
2486
- }
2487
- if (interpolation.__emotion_styles !== void 0) {
2488
- return interpolation;
2489
- }
2490
- switch (typeof interpolation) {
2491
- case "boolean": {
2492
- return "";
2493
- }
2494
- case "object": {
2495
- if (interpolation.anim === 1) {
2496
- cursor = {
2497
- name: interpolation.name,
2498
- styles: interpolation.styles,
2499
- next: cursor
2500
- };
2501
- return interpolation.name;
2502
- }
2503
- if (interpolation.styles !== void 0) {
2504
- var next = interpolation.next;
2505
- if (next !== void 0) {
2506
- while (next !== void 0) {
2507
- cursor = {
2508
- name: next.name,
2509
- styles: next.styles,
2510
- next: cursor
2511
- };
2512
- next = next.next;
2513
- }
2514
- }
2515
- var styles = interpolation.styles + ";";
2516
- return styles;
2517
- }
2518
- return createStringFromObject(mergedProps, registered, interpolation);
2519
- }
2520
- case "function": {
2521
- if (mergedProps !== void 0) {
2522
- var previousCursor = cursor;
2523
- var result = interpolation(mergedProps);
2524
- cursor = previousCursor;
2525
- return handleInterpolation(mergedProps, registered, result);
2526
- }
2527
- break;
2528
- }
2529
- }
2530
- if (registered == null) {
2531
- return interpolation;
2532
- }
2533
- var cached = registered[interpolation];
2534
- return cached !== void 0 ? cached : interpolation;
2535
- }
2536
- function createStringFromObject(mergedProps, registered, obj) {
2537
- var string = "";
2538
- if (Array.isArray(obj)) {
2539
- for (var i = 0; i < obj.length; i++) {
2540
- string += handleInterpolation(mergedProps, registered, obj[i]) + ";";
2541
- }
2542
- } else {
2543
- for (var _key in obj) {
2544
- var value = obj[_key];
2545
- if (typeof value !== "object") {
2546
- if (registered != null && registered[value] !== void 0) {
2547
- string += _key + "{" + registered[value] + "}";
2548
- } else if (isProcessableValue(value)) {
2549
- string += processStyleName(_key) + ":" + processStyleValue(_key, value) + ";";
2550
- }
2551
- } else {
2552
- if (_key === "NO_COMPONENT_SELECTOR" && false) {
2553
- throw new Error("Component selectors can only be used in conjunction with @emotion/babel-plugin.");
2554
- }
2555
- if (Array.isArray(value) && typeof value[0] === "string" && (registered == null || registered[value[0]] === void 0)) {
2556
- for (var _i = 0; _i < value.length; _i++) {
2557
- if (isProcessableValue(value[_i])) {
2558
- string += processStyleName(_key) + ":" + processStyleValue(_key, value[_i]) + ";";
2559
- }
2560
- }
2561
- } else {
2562
- var interpolated = handleInterpolation(mergedProps, registered, value);
2563
- switch (_key) {
2564
- case "animation":
2565
- case "animationName": {
2566
- string += processStyleName(_key) + ":" + interpolated + ";";
2567
- break;
2568
- }
2569
- default: {
2570
- string += _key + "{" + interpolated + "}";
2571
- }
2572
- }
2573
- }
2574
- }
2575
- }
2576
- }
2577
- return string;
2578
- }
2579
- var labelPattern = /label:\s*([^\s;\n{]+)\s*(;|$)/g;
2580
- var cursor;
2581
- var serializeStyles = function serializeStyles2(args, registered, mergedProps) {
2582
- if (args.length === 1 && typeof args[0] === "object" && args[0] !== null && args[0].styles !== void 0) {
2583
- return args[0];
2584
- }
2585
- var stringMode = true;
2586
- var styles = "";
2587
- cursor = void 0;
2588
- var strings = args[0];
2589
- if (strings == null || strings.raw === void 0) {
2590
- stringMode = false;
2591
- styles += handleInterpolation(mergedProps, registered, strings);
2592
- } else {
2593
- styles += strings[0];
2594
- }
2595
- for (var i = 1; i < args.length; i++) {
2596
- styles += handleInterpolation(mergedProps, registered, args[i]);
2597
- if (stringMode) {
2598
- styles += strings[i];
2599
- }
2600
- }
2601
- labelPattern.lastIndex = 0;
2602
- var identifierName = "";
2603
- var match;
2604
- while ((match = labelPattern.exec(styles)) !== null) {
2605
- identifierName += "-" + match[1];
2606
- }
2607
- var name = murmur2(styles) + identifierName;
2608
- return {
2609
- name,
2610
- styles,
2611
- next: cursor
2612
- };
2613
- };
2614
- var isBrowser = true;
2615
- var registerStyles = function registerStyles2(cache, serialized, isStringTag) {
2616
- var className = cache.key + "-" + serialized.name;
2617
- if ((isStringTag === false || isBrowser === false) && cache.registered[className] === void 0) {
2618
- cache.registered[className] = serialized.styles;
2619
- }
2620
- };
2621
- var insertStyles = function insertStyles2(cache, serialized, isStringTag) {
2622
- registerStyles(cache, serialized, isStringTag);
2623
- var className = cache.key + "-" + serialized.name;
2624
- if (cache.inserted[serialized.name] === void 0) {
2625
- var current = serialized;
2626
- do {
2627
- cache.insert(serialized === current ? "." + className : "", current, cache.sheet, true);
2628
- current = current.next;
2629
- } while (current !== void 0);
2630
- }
2631
- };
2632
2372
  const isServer = typeof window === "undefined";
2633
2373
  const useInsertionEffectSpecifier = "useInsertionEffect";
2634
2374
  const useInsertionEffect = (_c = React__namespace[useInsertionEffectSpecifier]) != null ? _c : React__namespace.useLayoutEffect;
2635
2375
  function useStyle(style) {
2636
- const serialized = serializeStyles([style], css.cache.registered);
2637
- registerStyles(css.cache, serialized, false);
2376
+ const serialized = serialize.serializeStyles([style], css.cache.registered);
2377
+ utils.registerStyles(css.cache, serialized, false);
2638
2378
  useInsertionEffect(() => {
2639
- insertStyles(css.cache, serialized, false);
2379
+ utils.insertStyles(css.cache, serialized, false);
2640
2380
  });
2641
2381
  if (isServer)
2642
- insertStyles(css.cache, serialized, false);
2382
+ utils.insertStyles(css.cache, serialized, false);
2643
2383
  return `${css.cache.key}-${serialized.name}`;
2644
2384
  }
2645
2385
  var _path;
@@ -3740,22 +3480,9 @@ function suppressWarningAndFindDomNode(instance) {
3740
3480
  return foundDomNode;
3741
3481
  }
3742
3482
  class FindDomNodeClassComponent extends React.Component {
3743
- componentDidMount() {
3744
- this.setInnerRef(suppressWarningAndFindDomNode(this));
3745
- }
3746
- componentDidUpdate() {
3747
- this.setInnerRef(suppressWarningAndFindDomNode(this));
3748
- }
3749
- setInnerRef(current) {
3750
- const {
3751
- innerRef
3752
- } = this.props;
3753
- if (innerRef == null)
3754
- return;
3755
- if (typeof innerRef === "function")
3756
- innerRef(current);
3757
- else
3758
- innerRef.current = current;
3483
+ constructor(props) {
3484
+ super(props);
3485
+ this.props.innerRef.current = () => suppressWarningAndFindDomNode(this);
3759
3486
  }
3760
3487
  render() {
3761
3488
  return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
@@ -3764,10 +3491,39 @@ class FindDomNodeClassComponent extends React.Component {
3764
3491
  }
3765
3492
  }
3766
3493
  const FindDomNode = React.forwardRef(function FindDomNode2(props, ref) {
3494
+ const findDomNodeRef = React.useRef(null);
3495
+ React.useImperativeHandle(ref, () => () => {
3496
+ var _a, _b;
3497
+ return (_b = (_a = findDomNodeRef.current) == null ? void 0 : _a.call(findDomNodeRef)) != null ? _b : null;
3498
+ }, []);
3767
3499
  return /* @__PURE__ */ jsxRuntime.jsx(FindDomNodeClassComponent, __spreadProps(__spreadValues({}, props), {
3768
- innerRef: ref
3500
+ innerRef: findDomNodeRef
3769
3501
  }));
3770
3502
  });
3503
+ class ElementImperativeHandle {
3504
+ constructor() {
3505
+ __publicField(this, "getCurrent", () => null);
3506
+ __publicField(this, "lastPropControllers", null);
3507
+ }
3508
+ callback(getCurrent) {
3509
+ const current = this.getCurrent();
3510
+ if (current === null)
3511
+ this.setPropControllers(null);
3512
+ else if (this.lastPropControllers !== null)
3513
+ this.setPropControllers(this.lastPropControllers);
3514
+ this.getCurrent = getCurrent;
3515
+ }
3516
+ getBoxModel() {
3517
+ const current = this.getCurrent();
3518
+ return boxModels.isMeasurable(current) ? boxModels.measure(current) : null;
3519
+ }
3520
+ setPropControllers(propControllers) {
3521
+ const current = this.getCurrent();
3522
+ if (constants.isPropControllersHandle(current))
3523
+ current.setPropControllers(propControllers);
3524
+ this.lastPropControllers = propControllers;
3525
+ }
3526
+ }
3771
3527
  const storeContextDefaultValue = constants.configureStore();
3772
3528
  function createReactRuntime(store) {
3773
3529
  return {
@@ -3854,6 +3610,9 @@ function useDocument(documentKey) {
3854
3610
  function useIsInBuilder() {
3855
3611
  return useSelector((state) => constants.getIsInBuilder(state));
3856
3612
  }
3613
+ function useIsPreview() {
3614
+ return useSelector((state) => constants.getIsPreview(state));
3615
+ }
3857
3616
  function useDispatch() {
3858
3617
  const store = React.useContext(StoreContext);
3859
3618
  return store.dispatch;
@@ -3875,26 +3634,20 @@ const ElementData = React.memo(React.forwardRef(function ElementData2({
3875
3634
  elementData
3876
3635
  }, ref) {
3877
3636
  const Component = useComponent(elementData.type);
3878
- const [handle, setHandle] = React.useState(null);
3879
- const [foundDomNode, setFoundDomNode] = React.useState(null);
3880
- React.useImperativeHandle(ref, () => handle != null ? handle : foundDomNode, [handle, foundDomNode]);
3881
3637
  suppressRefWarning(`\`ForwardRef(${ElementData2.name})\``);
3882
3638
  if (Component == null) {
3883
3639
  return /* @__PURE__ */ jsxRuntime.jsx(FallbackComponent, {
3884
- ref: setHandle,
3640
+ ref,
3885
3641
  text: "Component not found"
3886
3642
  });
3887
3643
  }
3888
3644
  return /* @__PURE__ */ jsxRuntime.jsx(React.Suspense, {
3889
- children: /* @__PURE__ */ jsxRuntime.jsx(FindDomNode, {
3890
- ref: setFoundDomNode,
3891
- children: /* @__PURE__ */ jsxRuntime.jsx(PropsValue, {
3892
- element: elementData,
3893
- children: (props) => /* @__PURE__ */ React.createElement(Component, __spreadProps(__spreadValues({}, props), {
3894
- key: elementData.key,
3895
- ref: setHandle
3896
- }))
3897
- })
3645
+ children: /* @__PURE__ */ jsxRuntime.jsx(PropsValue, {
3646
+ element: elementData,
3647
+ children: (props) => /* @__PURE__ */ React.createElement(Component, __spreadProps(__spreadValues({}, props), {
3648
+ key: elementData.key,
3649
+ ref
3650
+ }))
3898
3651
  })
3899
3652
  });
3900
3653
  }));
@@ -3928,26 +3681,42 @@ const Element = React.memo(React.forwardRef(function Element2({
3928
3681
  const elementKey = element.key;
3929
3682
  const dispatch = useDispatch();
3930
3683
  const documentKey = useDocumentKey();
3931
- const [handle, setHandle] = React.useState(null);
3684
+ const useFindDomNodeRef = React.useRef(true);
3685
+ const imperativeHandleRef = React.useRef(new ElementImperativeHandle());
3686
+ const findDomNodeCallbackRef = React.useCallback((current) => {
3687
+ if (useFindDomNodeRef.current === true) {
3688
+ imperativeHandleRef.current.callback(() => {
3689
+ var _a;
3690
+ return (_a = current == null ? void 0 : current()) != null ? _a : null;
3691
+ });
3692
+ }
3693
+ }, []);
3694
+ const elementCallbackRef = React.useCallback((current) => {
3695
+ useFindDomNodeRef.current = false;
3696
+ imperativeHandleRef.current.callback(() => current);
3697
+ }, []);
3932
3698
  const isRegisterElementDisabled = React.useContext(DisableRegisterElement);
3933
- React.useImperativeHandle(ref, () => handle, [handle]);
3699
+ React.useImperativeHandle(ref, () => imperativeHandleRef.current, []);
3934
3700
  React.useEffect(() => {
3935
3701
  if (documentKey == null || isRegisterElementDisabled)
3936
3702
  return;
3937
- return dispatch(actions.registerComponentHandleEffect(documentKey, elementKey, handle));
3938
- }, [dispatch, documentKey, elementKey, handle, isRegisterElementDisabled]);
3703
+ return dispatch(actions.registerComponentHandleEffect(documentKey, elementKey, imperativeHandleRef.current));
3704
+ }, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
3939
3705
  React.useEffect(() => {
3940
3706
  if (documentKey == null || isRegisterElementDisabled)
3941
3707
  return;
3942
3708
  return dispatch(actions.mountComponentEffect(documentKey, elementKey));
3943
3709
  }, [dispatch, documentKey, elementKey, isRegisterElementDisabled]);
3944
- return constants.isElementReference(element) ? /* @__PURE__ */ jsxRuntime.jsx(ElementReference, {
3945
- ref: setHandle,
3946
- elementReference: element
3947
- }, elementKey) : /* @__PURE__ */ jsxRuntime.jsx(ElementData, {
3948
- ref: setHandle,
3949
- elementData: element
3950
- }, elementKey);
3710
+ return /* @__PURE__ */ jsxRuntime.jsx(FindDomNode, {
3711
+ ref: findDomNodeCallbackRef,
3712
+ children: constants.isElementReference(element) ? /* @__PURE__ */ jsxRuntime.jsx(ElementReference, {
3713
+ ref: elementCallbackRef,
3714
+ elementReference: element
3715
+ }, elementKey) : /* @__PURE__ */ jsxRuntime.jsx(ElementData, {
3716
+ ref: elementCallbackRef,
3717
+ elementData: element
3718
+ }, elementKey)
3719
+ });
3951
3720
  }));
3952
3721
  const Document = React.memo(React.forwardRef(function Document2({
3953
3722
  document: document2
@@ -4009,12 +3778,10 @@ exports.forwardNextDynamicRef = forwardNextDynamicRef;
4009
3778
  exports.getServerSideProps = getServerSideProps;
4010
3779
  exports.getStaticPaths = getStaticPaths;
4011
3780
  exports.getStaticProps = getStaticProps;
4012
- exports.insertStyles = insertStyles;
4013
3781
  exports.responsiveGridItem = responsiveGridItem;
4014
3782
  exports.responsiveStyle = responsiveStyle;
4015
3783
  exports.responsiveTextStyle = responsiveTextStyle;
4016
3784
  exports.responsiveWidth = responsiveWidth;
4017
- exports.serializeStyles = serializeStyles;
4018
3785
  exports.shallowMergeFallbacks = shallowMergeFallbacks;
4019
3786
  exports.storeContextDefaultValue = storeContextDefaultValue;
4020
3787
  exports.useBorder = useBorder;
@@ -4024,6 +3791,7 @@ exports.useFile = useFile;
4024
3791
  exports.useFiles = useFiles;
4025
3792
  exports.useFormContext = useFormContext;
4026
3793
  exports.useIsInBuilder = useIsInBuilder;
3794
+ exports.useIsPreview = useIsPreview;
4027
3795
  exports.useMakeswiftClient = useMakeswiftClient;
4028
3796
  exports.useMediaQuery = useMediaQuery;
4029
3797
  exports.usePageId = usePageId;