unframer 2.7.11 → 2.9.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 (58) hide show
  1. package/dist/cli.d.ts +10 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +10 -4
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cli.test.js +8 -0
  6. package/dist/cli.test.js.map +1 -1
  7. package/dist/exporter.d.ts +5 -1
  8. package/dist/exporter.d.ts.map +1 -1
  9. package/dist/exporter.js +75 -14
  10. package/dist/exporter.js.map +1 -1
  11. package/dist/framer.d.ts.map +1 -1
  12. package/dist/framer.js +116 -92
  13. package/dist/framer.js.map +1 -1
  14. package/dist/index.d.ts +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/react.d.ts +10 -0
  19. package/dist/react.d.ts.map +1 -1
  20. package/dist/react.js +7 -0
  21. package/dist/react.js.map +1 -1
  22. package/dist/utils.d.ts +1 -0
  23. package/dist/utils.d.ts.map +1 -1
  24. package/dist/utils.js +9 -0
  25. package/dist/utils.js.map +1 -1
  26. package/esm/cli.d.ts +10 -0
  27. package/esm/cli.d.ts.map +1 -1
  28. package/esm/cli.js +11 -5
  29. package/esm/cli.js.map +1 -1
  30. package/esm/cli.test.js +9 -1
  31. package/esm/cli.test.js.map +1 -1
  32. package/esm/exporter.d.ts +5 -1
  33. package/esm/exporter.d.ts.map +1 -1
  34. package/esm/exporter.js +75 -14
  35. package/esm/exporter.js.map +1 -1
  36. package/esm/framer.d.ts.map +1 -1
  37. package/esm/framer.js +113 -92
  38. package/esm/framer.js.map +1 -1
  39. package/esm/index.d.ts +1 -1
  40. package/esm/index.d.ts.map +1 -1
  41. package/esm/index.js +1 -1
  42. package/esm/index.js.map +1 -1
  43. package/esm/react.d.ts +10 -0
  44. package/esm/react.d.ts.map +1 -1
  45. package/esm/react.js +14 -0
  46. package/esm/react.js.map +1 -1
  47. package/esm/utils.d.ts +1 -0
  48. package/esm/utils.d.ts.map +1 -1
  49. package/esm/utils.js +8 -0
  50. package/esm/utils.js.map +1 -1
  51. package/package.json +7 -4
  52. package/src/cli.test.ts +20 -3
  53. package/src/cli.tsx +25 -5
  54. package/src/exporter.ts +94 -18
  55. package/src/framer.js +122 -93
  56. package/src/index.ts +1 -1
  57. package/src/react.tsx +46 -1
  58. package/src/utils.ts +9 -0
package/dist/framer.js CHANGED
@@ -49,7 +49,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
49
49
  exports.LayoutGroupContext = exports.DeprecatedLayoutGroupContext = exports.DeprecatedFrameWithEvents = exports.DeprecatedComponentContainer = exports.defaultDeviceProps = exports.DataObserverContext = exports.DataObserver = exports.DataContext = exports.Data = exports.CycleVariantState = exports.CustomCursorHost = exports.createBox = exports.ConvertColor = exports.ControlType = exports.Container = exports.ConstraintValues = exports.ConstraintMask = exports.ComponentViewportProvider = exports.ComponentContainerContext = exports.complex = exports.combinedCSSRulesForPreview = exports.ColorMixModelType = exports.ColorFormat = exports.color = exports.Color = exports.clamp = exports.circOut = exports.circInOut = exports.circIn = exports.cancelSync = exports.cancelFrame = exports.callEach = exports.BoxShadow = exports.BezierAnimator = exports.backOut = exports.backInOut = exports.backIn = exports.BackgroundImage = exports.AnyInterpolation = exports.anticipate = exports.animations = exports.AnimateSharedLayout = exports.AnimatePresence = exports.animateMini = exports.animate = exports.Animatable = exports.AnchorLinkTarget = exports.addPointerInfo = exports.AcceleratedAnimation = exports.combinedCSSRules = void 0;
50
50
  exports.LazyValue = exports.LayoutIdContext = exports.LayoutGroup = exports.Layer = exports.isMotionValue = exports.isBrowser = exports.invariant = exports.InternalID = exports.Image = exports.GeneratedComponentContext = exports.GamepadContext = exports.FrameWithMotion = exports.frameSteps = exports.FramerEventSession = exports.FramerEventListener = exports.FramerEvent = exports.framerCSSMarker = exports.framerAppearTransformTemplateToken = exports.framerAppearIdKey = exports.framerAppearEffects = exports.framerAppearAnimationScriptKey = exports.FramerAnimation = exports.frameFromElements = exports.frameFromElement = exports.frameData = exports.frame = exports.Frame = exports.FormSelect = exports.FormPlainTextInput = exports.FormContainer = exports.FormBooleanInput = exports.fontStore = exports.FontSourceNames = exports.FlatTree = exports.Fetcher = exports.environment = exports.easeOut = exports.easeInOut = exports.easeIn = exports.Draggable = exports.DragControls = exports.domMin = exports.domMax = exports.domAnimation = exports.DOM = exports.distance = exports.dispatchKeyDownEvent = exports.DimensionType = exports.devicePresets = exports.DeviceCodeComponent = void 0;
51
51
  exports.SpringAnimator = exports.Size = exports.sharedSVGManager = exports.Shadow = exports.Scroll = exports.RichText = exports.reverseEasing = exports.ResolveLinks = exports.RenderTarget = exports.Rect = exports.RadialGradient = exports.QueryEngine = exports.px = exports.PropertyStore = exports.PropertyOverrides = exports.progress = exports.PresenceContext = exports.Polygon = exports.pipe = exports.PathVariablesContext = exports.PathSegment = exports.pathDefaults = exports.ParentSizeState = exports.Page = exports.optimizedAppearDataAttribute = exports.optimizeAppearTransformTemplate = exports.optimizeAppear = exports.ObservableObject = exports.NotFoundError = exports.nestedLinksCollector = exports.NavigationTransitionType = exports.NavigationConsumer = exports.NavigationCallbackProvider = exports.NavigateTo = exports.Reorder = exports.MotionValue = exports.MotionGlobalConfig = exports.MotionContext = exports.MotionConfigContext = exports.motion = exports.mirrorEasing = exports.makeUseVisualState = exports.MainLoop = exports.m = exports.localPackageFallbackIdentifier = exports.loadFont = exports.Link = exports.LinearGradient = exports.Line = exports.LibraryFeaturesProvider = void 0;
52
- exports.wrap = exports.withVariantFX = exports.withVariantAppearEffect = exports.withStyleAppearEffect = exports.withParallaxTransform = exports.withMeasuredSize = exports.withGeneratedLayoutId = exports.withFX = exports.withCSS = exports.WindowContext = exports.warning = exports.visualElementStore = exports.VisualElement = exports.version = exports.VectorGroup = exports.Vector = exports.VariantSelector = exports.ValueInterpolation = exports.useProvidedWindow = exports.useIsomorphicLayoutEffect = exports.useAnimation = exports.Text = exports.systemFontFamilyName = exports.sync = exports.SwitchLayoutGroupContext = exports.StyleSheetContext = exports.Stack = exports.SSRVariants = void 0;
52
+ exports.FormContext = exports.FetchClientProvider = exports.wrap = exports.withVariantFX = exports.withVariantAppearEffect = exports.withStyleAppearEffect = exports.withParallaxTransform = exports.withMeasuredSize = exports.withGeneratedLayoutId = exports.withFX = exports.withCSS = exports.WindowContext = exports.warning = exports.visualElementStore = exports.VisualElement = exports.version = exports.VectorGroup = exports.Vector = exports.VariantSelector = exports.ValueInterpolation = exports.useProvidedWindow = exports.useIsomorphicLayoutEffect = exports.useAnimation = exports.Text = exports.systemFontFamilyName = exports.sync = exports.SwitchLayoutGroupContext = exports.StyleSheetContext = exports.Stack = exports.SSRVariants = void 0;
53
53
  exports._injectRuntime = _injectRuntime;
54
54
  exports.addActionControls = addActionControls;
55
55
  exports.addFonts = addFonts;
@@ -194,6 +194,7 @@ exports.useBreakpointVariants = useBreakpointVariants;
194
194
  exports.useComponentViewport = useComponentViewport;
195
195
  exports.useConstant = useConstant2;
196
196
  exports.useCurrentPathVariables = useCurrentPathVariables;
197
+ exports.useCurrentRoute = useCurrentRoute;
197
198
  exports.useCurrentRouteId = useCurrentRouteId;
198
199
  exports.useCustomCursors = useCustomCursors;
199
200
  exports.useCycle = useCycle;
@@ -265,6 +266,7 @@ exports.WithOverride = WithOverride;
265
266
  exports.withPath = withPath;
266
267
  exports.withPerformanceMarks = withPerformanceMarks;
267
268
  exports.withShape = withShape;
269
+ exports.Router = Router;
268
270
  var __defProp = Object.defineProperty;
269
271
  var __getOwnPropNames = Object.getOwnPropertyNames;
270
272
  var __esm = (fn, res) => function __init() {
@@ -14630,7 +14632,7 @@ function steps(numSteps, direction = 'end') {
14630
14632
  return clamp(0, 1, rounded / numSteps);
14631
14633
  };
14632
14634
  }
14633
- // https :https://app.framerstatic.com/framer.ZONHQAMM.mjs
14635
+ // https :https://app.framerstatic.com/framer.K3G2LCX5.mjs
14634
14636
  init_chunk_QLPHEVXG();
14635
14637
  const react_11 = __importDefault(require("react"));
14636
14638
  const react_12 = require("react");
@@ -16530,11 +16532,11 @@ function lazy(factory) {
16530
16532
  const LazyComponent = react_11.default.lazy(factory);
16531
16533
  let factoryPromise;
16532
16534
  let LoadedComponent;
16533
- const Component15 = react_11.default.forwardRef(function LazyWithPreload(props, ref) {
16535
+ const Component16 = react_11.default.forwardRef(function LazyWithPreload(props, ref) {
16534
16536
  return react_11.default.createElement(LoadedComponent !== null && LoadedComponent !== void 0 ? LoadedComponent : LazyComponent, ref
16535
16537
  ? Object.assign({ ref }, props) : props);
16536
16538
  });
16537
- Component15.preload = () => {
16539
+ Component16.preload = () => {
16538
16540
  if (!factoryPromise) {
16539
16541
  factoryPromise = factory().then((module) => {
16540
16542
  LoadedComponent = module.default;
@@ -16543,7 +16545,7 @@ function lazy(factory) {
16543
16545
  }
16544
16546
  return factoryPromise;
16545
16547
  };
16546
- return Component15;
16548
+ return Component16;
16547
16549
  }
16548
16550
  function getRouteElementId(route, hash2) {
16549
16551
  if (hash2 && route) {
@@ -17140,8 +17142,7 @@ function pushRouteState(routeId_1, route_1, _j) {
17140
17142
  pathVariables,
17141
17143
  localeId,
17142
17144
  }, newPath, enableAsyncURLUpdate, isNavigationTransition);
17143
- if (!enableAsyncURLUpdate)
17144
- yield urlUpdatePromise;
17145
+ return yield urlUpdatePromise;
17145
17146
  }
17146
17147
  catch (_k) { }
17147
17148
  });
@@ -17263,6 +17264,7 @@ function usePopStateHandler(currentRouteId, setCurrentRouteId) {
17263
17264
  reject,
17264
17265
  };
17265
17266
  });
17267
+ viewTransitionReady.current = void 0;
17266
17268
  });
17267
17269
  },
17268
17270
  scroll: 'after-transition',
@@ -17795,15 +17797,6 @@ function useNavigationTransition(enableAsyncURLUpdates) {
17795
17797
  transitionFn(signal);
17796
17798
  return nextRender;
17797
17799
  }
17798
- transitionFn(signal);
17799
- yield interactionResponse({
17800
- priority: 'user-visible',
17801
- signal,
17802
- }).catch(noop2);
17803
- yield interactionResponse({
17804
- priority: 'user-visible',
17805
- signal,
17806
- }).catch(noop2);
17807
17800
  let resolveNavigationPromise;
17808
17801
  const navigationPromise = new Promise((resolve, reject) => {
17809
17802
  resolveNavigationPromise = resolve;
@@ -17812,13 +17805,18 @@ function useNavigationTransition(enableAsyncURLUpdates) {
17812
17805
  else
17813
17806
  signal === null || signal === void 0 ? void 0 : signal.addEventListener('abort', reject);
17814
17807
  });
17808
+ yield interactionResponse({
17809
+ priority: 'user-blocking',
17810
+ signal,
17811
+ }).catch(noop2);
17812
+ transitionFn(signal);
17815
17813
  startNativeSpinner(navigationPromise, updateURL, controller);
17816
17814
  return nextRender.then(() => {
17817
17815
  resolveNavigationPromise();
17818
17816
  });
17819
17817
  }), [enableAsyncURLUpdates, monitorNextPaintAfterRender, startNativeSpinner,]);
17820
17818
  }
17821
- function Router({ defaultPageStyle, disableHistory, initialPathVariables, initialRoute, notFoundPage, collectionUtils, routes, initialLocaleId, locales = EMPTY_ARRAY, preserveQueryParams = false, enableAsyncURLUpdates = false, LayoutTemplate, }) {
17819
+ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initialRoute, notFoundPage, collectionUtils, routes, initialLocaleId, locales = EMPTY_ARRAY, preserveQueryParams = false, enableAsyncURLUpdates = false, LayoutTemplate, editorBar, }) {
17822
17820
  useMarkRouterEffects();
17823
17821
  useReplaceInitialState({
17824
17822
  disabled: disableHistory,
@@ -17954,22 +17952,20 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
17954
17952
  routeId,
17955
17953
  pathVariables,
17956
17954
  })) {
17957
- updateScrollPosition(routeElementId, smoothScroll, false);
17958
17955
  const route = routes[routeId];
17959
- if (((_b = window.history.state) === null || _b === void 0 ? void 0 : _b.hash) === hash2 || disableHistory || !route)
17960
- return;
17961
- const updateURLPromise = pushRouteState(routeId, route, {
17962
- currentRoutePath: route.path,
17963
- currentPathVariables: currentPathVariables2,
17964
- pathVariables,
17965
- hash: hash2,
17966
- localeId: currentRouteLocaleId,
17967
- preserveQueryParams,
17968
- },
17969
- // we want to yield as this is called synchronusly from an user interaction.
17970
- enableAsyncURLUpdates);
17971
- if (!enableAsyncURLUpdates)
17972
- return yield updateURLPromise;
17956
+ if (((_b = window.history.state) === null || _b === void 0 ? void 0 : _b.hash) !== hash2 && !disableHistory && route) {
17957
+ yield pushRouteState(routeId, route, {
17958
+ currentRoutePath: route.path,
17959
+ currentPathVariables: currentPathVariables2,
17960
+ pathVariables,
17961
+ hash: hash2,
17962
+ localeId: currentRouteLocaleId,
17963
+ preserveQueryParams,
17964
+ },
17965
+ // we want to yield as this is called synchronusly from an user interaction.
17966
+ enableAsyncURLUpdates);
17967
+ }
17968
+ updateScrollPosition(routeElementId, smoothScroll, false);
17973
17969
  return;
17974
17970
  }
17975
17971
  if (!newRoute)
@@ -18037,6 +18033,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
18037
18033
  }),
18038
18034
  (0, jsx_runtime_1.jsx)(TurnOnReactEventHandling, {}),
18039
18035
  (0, jsx_runtime_1.jsx)(MarkSuspenseEffects.End, {}),
18036
+ editorBar,
18040
18037
  ],
18041
18038
  }),
18042
18039
  }),
@@ -18926,7 +18923,7 @@ var SpringCurveValueConverter = {
18926
18923
  };
18927
18924
  const initialGuess = 5 / duration;
18928
18925
  const undampedFrequency = approximateRoot2(envelope, derivative, initialGuess);
18929
- if (!isNaN(undampedFrequency)) {
18926
+ if (!Number.isNaN(undampedFrequency)) {
18930
18927
  result.tension = Math.pow(undampedFrequency, 2) * mass;
18931
18928
  result.friction = dampingRatio * 2 * Math.sqrt(mass * result.tension);
18932
18929
  }
@@ -19355,7 +19352,7 @@ function modulate(value, rangeA, rangeB, limit = false) {
19355
19352
  return result;
19356
19353
  }
19357
19354
  function isNumeric(value) {
19358
- return !isNaN(value) && isFinite(value);
19355
+ return !Number.isNaN(value) && Number.isFinite(value);
19359
19356
  }
19360
19357
  function percentToFraction(val) {
19361
19358
  const digits = numberFromString(val);
@@ -20167,7 +20164,7 @@ function correctAlpha(alphaValue) {
20167
20164
  if (alphaValue < 0) {
20168
20165
  alphaValue = 0;
20169
20166
  }
20170
- if (isNaN(alphaValue) || alphaValue > 1) {
20167
+ if (Number.isNaN(alphaValue) || alphaValue > 1) {
20171
20168
  alphaValue = 1;
20172
20169
  }
20173
20170
  return alphaValue;
@@ -21605,7 +21602,7 @@ function getDeviceStyle({ scaleTo, deviceOptions, overrideTheme, } = {}) {
21605
21602
  };
21606
21603
  }
21607
21604
  function isFiniteNumber(value) {
21608
- return typeof value === 'number' && isFinite(value);
21605
+ return Number.isFinite(value);
21609
21606
  }
21610
21607
  function finiteNumber(value) {
21611
21608
  return isFiniteNumber(value) ? value : void 0;
@@ -22037,10 +22034,10 @@ var Rect = {
22037
22034
  if (point2.y > Rect.maxY(rect)) {
22038
22035
  return false;
22039
22036
  }
22040
- if (isNaN(rect.x)) {
22037
+ if (Number.isNaN(rect.x)) {
22041
22038
  return false;
22042
22039
  }
22043
- if (isNaN(rect.y)) {
22040
+ if (Number.isNaN(rect.y)) {
22044
22041
  return false;
22045
22042
  }
22046
22043
  return true;
@@ -23864,7 +23861,7 @@ function isNullish2(value) {
23864
23861
  return value == null;
23865
23862
  }
23866
23863
  function isValidDate(value) {
23867
- return value instanceof Date && !isNaN(value.getTime());
23864
+ return value instanceof Date && !Number.isNaN(value.getTime());
23868
23865
  }
23869
23866
  function isGenerator2(value) {
23870
23867
  return isObject2(value) && isFunction(value.return);
@@ -26074,7 +26071,7 @@ function useMeasuredSize(ref) {
26074
26071
  return size.current;
26075
26072
  }
26076
26073
  var SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE = 'data-framer-size-compatibility-wrapper';
26077
- var withMeasuredSize = (Component15) => (props) => {
26074
+ var withMeasuredSize = (Component16) => (props) => {
26078
26075
  var _j, _k, _l, _m;
26079
26076
  const ref = react_11.default.useRef(null);
26080
26077
  const size = useMeasuredSize(ref);
@@ -26088,7 +26085,7 @@ var withMeasuredSize = (Component15) => (props) => {
26088
26085
  width: '100%',
26089
26086
  height: '100%',
26090
26087
  pointerEvents: 'none',
26091
- }, ref }, dataProps), { children: shouldRender && /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { width: (_l = (size == null ? void 0 : size.width)) !== null && _l !== void 0 ? _l : fallbackWidth, height: (_m = (size == null ? void 0 : size.height)) !== null && _m !== void 0 ? _m : fallbackHeight })) }));
26088
+ }, ref }, dataProps), { children: shouldRender && /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { width: (_l = (size == null ? void 0 : size.width)) !== null && _l !== void 0 ? _l : fallbackWidth, height: (_m = (size == null ? void 0 : size.height)) !== null && _m !== void 0 ? _m : fallbackHeight })) }));
26092
26089
  };
26093
26090
  exports.withMeasuredSize = withMeasuredSize;
26094
26091
  function getMeasurableCodeComponentChildren(element) {
@@ -27568,7 +27565,7 @@ var clamp2 = (value, a, b) => {
27568
27565
  var DraggingContext = /* @__PURE__ */ react_11.default.createContext({
27569
27566
  dragging: false,
27570
27567
  });
27571
- function WithDragging(Component15) {
27568
+ function WithDragging(Component16) {
27572
27569
  const _WithDraggingHOC = class extends react_11.default.Component {
27573
27570
  constructor(props, defaultProps) {
27574
27571
  super(props, defaultProps);
@@ -28129,7 +28126,7 @@ function WithDragging(Component15) {
28129
28126
  value: {
28130
28127
  dragging: this.state.isDragging,
28131
28128
  },
28132
- children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign({}, originalProps)),
28129
+ children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign({}, originalProps)),
28133
28130
  });
28134
28131
  }
28135
28132
  };
@@ -28165,9 +28162,9 @@ function WithDragging(Component15) {
28165
28162
  constraints: {},
28166
28163
  mouseWheel: false,
28167
28164
  });
28168
- __publicField(WithDraggingHOC, 'defaultProps', Object.assign({}, Component15.defaultProps, _WithDraggingHOC.draggingDefaultProps));
28165
+ __publicField(WithDraggingHOC, 'defaultProps', Object.assign({}, Component16.defaultProps, _WithDraggingHOC.draggingDefaultProps));
28169
28166
  const withDragging = WithDraggingHOC;
28170
- (0, import_hoist_non_react_statics.default)(withDragging, Component15);
28167
+ (0, import_hoist_non_react_statics.default)(withDragging, Component16);
28171
28168
  return withDragging;
28172
28169
  }
28173
28170
  var hoverProps = {
@@ -28445,7 +28442,7 @@ function hasRadius(props) {
28445
28442
  }
28446
28443
  function getRadiusValue(value) {
28447
28444
  let num = Number(value);
28448
- if (typeof value === 'string' && isNaN(num)) {
28445
+ if (typeof value === 'string' && Number.isNaN(Number(num))) {
28449
28446
  return value;
28450
28447
  }
28451
28448
  else if (isAnimatable2(value)) {
@@ -30765,7 +30762,7 @@ function useInfiniteScroll({ ref: elementRef, loadMore, rootMargin = '0px', thre
30765
30762
  };
30766
30763
  }, [elementRef, callback, rootMargin, threshold, paginationInfo.currentPage,]);
30767
30764
  }
30768
- function withInfiniteScroll(Component15) {
30765
+ function withInfiniteScroll(Component16) {
30769
30766
  return react_11.default.forwardRef((_j, ref) => {
30770
30767
  var { __paginationInfo, __loadMore } = _j, props = __rest(_j, ["__paginationInfo", "__loadMore"]);
30771
30768
  const backupRef = react_11.default.useRef(null);
@@ -30776,7 +30773,7 @@ function withInfiniteScroll(Component15) {
30776
30773
  ref: infiniteScrollRef,
30777
30774
  paginationInfo: __paginationInfo,
30778
30775
  });
30779
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { ref: infiniteScrollRef }));
30776
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { ref: infiniteScrollRef }));
30780
30777
  });
30781
30778
  }
30782
30779
  var import_process2 = __toESM(require_browser(), 1);
@@ -33410,7 +33407,7 @@ var DataObserverContext = /* @__PURE__ */ react_11.default.createContext({
33410
33407
  exports.DataObserverContext = DataObserverContext;
33411
33408
  function useObserveData() {
33412
33409
  const context = react_11.default.useContext(DataObserverContext);
33413
- return !isNaN(context.update);
33410
+ return !Number.isNaN(context.update);
33414
33411
  }
33415
33412
  var DataObserver = class extends react_7.Component {
33416
33413
  constructor() {
@@ -33479,16 +33476,16 @@ function convertColorProps(props) {
33479
33476
  }
33480
33477
  return props;
33481
33478
  }
33482
- function WithOverride(Component15, override) {
33479
+ function WithOverride(Component16, override) {
33483
33480
  const useOverride = typeof override === 'function' ? (props) => override(convertColorProps(props)) : () => convertColorProps(override);
33484
33481
  const ComponentWithOverride = function (props) {
33485
33482
  (0, react_2.useContext)(DataObserverContext);
33486
33483
  const overrideProps = useOverride(props);
33487
33484
  const { style } = props, rest = __rest(props, ["style"]);
33488
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign(Object.assign({}, rest), overrideProps), { _initialStyle: style }));
33485
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign(Object.assign({}, rest), overrideProps), { _initialStyle: style }));
33489
33486
  };
33490
- (0, import_hoist_non_react_statics4.default)(ComponentWithOverride, Component15);
33491
- ComponentWithOverride['displayName'] = `WithOverride(${Component15.displayName || Component15.name})`;
33487
+ (0, import_hoist_non_react_statics4.default)(ComponentWithOverride, Component16);
33488
+ ComponentWithOverride['displayName'] = `WithOverride(${Component16.displayName || Component16.name})`;
33492
33489
  return ComponentWithOverride;
33493
33490
  }
33494
33491
  var prefix = '__framer__';
@@ -34289,15 +34286,15 @@ function addMotionValueStyle(style, values) {
34289
34286
  function isVariantOrVariantList(value) {
34290
34287
  return isString2(value) || Array.isArray(value);
34291
34288
  }
34292
- var withFX = (Component15) => react_11.default.forwardRef((props, forwardedRef) => {
34289
+ var withFX = (Component16) => react_11.default.forwardRef((props, forwardedRef) => {
34293
34290
  var _a;
34294
34291
  if (props.__withFX) {
34295
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { animate: void 0, initial: void 0, exit: void 0, ref: forwardedRef }));
34292
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { animate: void 0, initial: void 0, exit: void 0, ref: forwardedRef }));
34296
34293
  }
34297
34294
  if (RenderTarget.current() === RenderTarget.canvas) {
34298
34295
  const animate4 = isVariantOrVariantList(props.animate) ? props.animate : void 0;
34299
34296
  const initial2 = isVariantOrVariantList(props.initial) ? props.initial : void 0;
34300
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { animate: animate4, initial: initial2, exit: void 0, ref: forwardedRef }));
34297
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { animate: animate4, initial: initial2, exit: void 0, ref: forwardedRef }));
34301
34298
  }
34302
34299
  const { parallax = {}, styleAppear = {}, styleTransform = {}, presence = {}, loop = {}, forwardedProps, } = extractFXOptions(props);
34303
34300
  const { __targetOpacity: targetOpacityValue, __perspectiveFX: withPerspective, __smartComponentFX: inSmartComponent = false, } = props;
@@ -34369,7 +34366,7 @@ var withFX = (Component15) => react_11.default.forwardRef((props, forwardedRef)
34369
34366
  exit,
34370
34367
  }
34371
34368
  : {};
34372
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign(Object.assign({}, forwardedProps), motionGestures), { __withFX: true, style: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, props.style), parallaxStyle), scrollStyle), loopStyle), motionValueStyle), values: presenceEffectValues, ref: observerRef }));
34369
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign(Object.assign({}, forwardedProps), motionGestures), { __withFX: true, style: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, props.style), parallaxStyle), scrollStyle), loopStyle), motionValueStyle), values: presenceEffectValues, ref: observerRef }));
34373
34370
  });
34374
34371
  exports.withFX = withFX;
34375
34372
  var withParallaxTransform = withFX;
@@ -34495,9 +34492,9 @@ var ComponentViewportProvider = /* @__PURE__ */ react_11.default.forwardRef((_j,
34495
34492
  });
34496
34493
  });
34497
34494
  exports.ComponentViewportProvider = ComponentViewportProvider;
34498
- var withGeneratedLayoutId = (Component15) => react_11.default.forwardRef((props, ref) => {
34495
+ var withGeneratedLayoutId = (Component16) => react_11.default.forwardRef((props, ref) => {
34499
34496
  const layoutId = useLayoutId2(props);
34500
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({ layoutId }, props), { layoutIdKey: void 0, duplicatedFrom: void 0, ref }));
34497
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({ layoutId }, props), { layoutIdKey: void 0, duplicatedFrom: void 0, ref }));
34501
34498
  });
34502
34499
  exports.withGeneratedLayoutId = withGeneratedLayoutId;
34503
34500
  var ContainerErrorBoundary = class extends react_7.Component {
@@ -34574,7 +34571,7 @@ var componentsWithServerRenderedStyles = /* @__PURE__ */ (() => {
34574
34571
  })();
34575
34572
  var framerCSSMarker = 'data-framer-css-ssr';
34576
34573
  exports.framerCSSMarker = framerCSSMarker;
34577
- var withCSS = (Component15, escapedCSS, componentSerializationId) => react_11.default.forwardRef((props, ref) => {
34574
+ var withCSS = (Component16, escapedCSS, componentSerializationId) => react_11.default.forwardRef((props, ref) => {
34578
34575
  var _j;
34579
34576
  const { sheet, cache: cache2, } = (_j = react_11.default.useContext(StyleSheetContext)) !== null && _j !== void 0 ? _j : {};
34580
34577
  if (!isBrowser2()) {
@@ -34588,7 +34585,7 @@ var withCSS = (Component15, escapedCSS, componentSerializationId) => react_11.de
34588
34585
  }, { 'data-framer-component': componentSerializationId, dangerouslySetInnerHTML: {
34589
34586
  __html: concatenatedCSS,
34590
34587
  } })),
34591
- /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { ref })),
34588
+ /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { ref })),
34592
34589
  ],
34593
34590
  });
34594
34591
  }
@@ -34602,7 +34599,7 @@ var withCSS = (Component15, escapedCSS, componentSerializationId) => react_11.de
34602
34599
  : escapedCSS.split('\n');
34603
34600
  css2.forEach((rule) => rule && injectCSSRule(rule, sheet, cache2));
34604
34601
  }, []);
34605
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { ref }));
34602
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { ref }));
34606
34603
  });
34607
34604
  exports.withCSS = withCSS;
34608
34605
  var CustomCursorContext = /* @__PURE__ */ (0, react_1.createContext)({
@@ -35574,10 +35571,10 @@ function ChildrenCanSuspend({ children, }) {
35574
35571
  children,
35575
35572
  });
35576
35573
  }
35577
- function withChildrenCanSuspend(Component15) {
35574
+ function withChildrenCanSuspend(Component16) {
35578
35575
  return (0, react_4.forwardRef)(function withChildrenCanSuspendInner(props, ref) {
35579
35576
  return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(ChildrenCanSuspend, {
35580
- children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { ref })),
35577
+ children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { ref })),
35581
35578
  });
35582
35579
  });
35583
35580
  }
@@ -36324,6 +36321,24 @@ function maybeReplaceAnchorWithSpan(component) {
36324
36321
  return motion.span;
36325
36322
  return component;
36326
36323
  }
36324
+ var IgnoreErrors = class extends react_7.Component {
36325
+ constructor() {
36326
+ super(...arguments);
36327
+ __publicField(this, 'state', {
36328
+ error: void 0,
36329
+ });
36330
+ }
36331
+ static getDerivedStateFromError(error) {
36332
+ return {
36333
+ error,
36334
+ };
36335
+ }
36336
+ render() {
36337
+ if (this.state.error)
36338
+ return null;
36339
+ return this.props.children;
36340
+ }
36341
+ };
36327
36342
  var salt = 'framer';
36328
36343
  var difficulty = 3;
36329
36344
  var tokenLength = 30;
@@ -36440,6 +36455,7 @@ function openExternalLinkInCurrentTab(link, formRef) {
36440
36455
  linkElement.remove();
36441
36456
  }
36442
36457
  var FormContext = react_11.default.createContext(void 0);
36458
+ exports.FormContext = FormContext;
36443
36459
  var FormContainer = /* @__PURE__ */ react_11.default.forwardRef(function FormContainer2(_j, forwardedRef) {
36444
36460
  var { action, children, redirectUrl, onSuccess, onError, onLoading } = _j, props = __rest(_j, ["action", "children", "redirectUrl", "onSuccess", "onError", "onLoading"]);
36445
36461
  const fallbackRef = react_11.default.useRef(null);
@@ -36499,18 +36515,18 @@ var FormContainer = /* @__PURE__ */ react_11.default.forwardRef(function FormCon
36499
36515
  try {
36500
36516
  (_b = (_a = callbacks.current).onLoading) == null ? void 0 : _b.call(_a);
36501
36517
  yield submitForm(action, data2, projectHash);
36502
- dispatch({
36518
+ (0, react_12.startTransition)(() => dispatch({
36503
36519
  type: 'success',
36504
- });
36520
+ }));
36505
36521
  (_d = (_c = callbacks.current).onSuccess) == null ? void 0 : _d.call(_c);
36506
36522
  if (redirectUrl) {
36507
36523
  yield redirectTo(redirectUrl);
36508
36524
  }
36509
36525
  }
36510
36526
  catch (error) {
36511
- dispatch({
36527
+ (0, react_12.startTransition)(() => dispatch({
36512
36528
  type: 'error',
36513
- });
36529
+ }));
36514
36530
  (_f = (_e = callbacks.current).onError) == null ? void 0 : _f.call(_e);
36515
36531
  console.error(error);
36516
36532
  }
@@ -36624,7 +36640,7 @@ var loadingFetchResult = {
36624
36640
  data: void 0,
36625
36641
  };
36626
36642
  function isNumberString(value) {
36627
- return isString2(value) && !isNaN(Number(value));
36643
+ return isString2(value) && !Number.isNaN(Number(value));
36628
36644
  }
36629
36645
  function isValidFetchDataValueResult(type, value) {
36630
36646
  switch (type) {
@@ -36947,6 +36963,7 @@ var FetchClientProvider = ({ children, client: initialClient, }) => {
36947
36963
  }),
36948
36964
  });
36949
36965
  };
36966
+ exports.FetchClientProvider = FetchClientProvider;
36950
36967
  var _subscriptions;
36951
36968
  var _subscribers2;
36952
36969
  var _results;
@@ -37098,7 +37115,7 @@ function usePrefetch() {
37098
37115
  }
37099
37116
  return React2.useCallback((request) => fetchClient.prefetch(request), [fetchClient,]);
37100
37117
  }
37101
- function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariables, routes, collectionUtils, notFoundPage, isReducedMotion = false, includeDataObserver = false, localeId, locales, preserveQueryParams, }) {
37118
+ function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariables, routes, collectionUtils, notFoundPage, isReducedMotion = false, includeDataObserver = false, localeId, locales, preserveQueryParams, EditorBar, }) {
37102
37119
  const { enableAsyncURLUpdates, } = useLibraryFeatures();
37103
37120
  react_11.default.useEffect(() => {
37104
37121
  if (isWebsite)
@@ -37126,6 +37143,13 @@ function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariabl
37126
37143
  },
37127
37144
  preserveQueryParams,
37128
37145
  enableAsyncURLUpdates,
37146
+ editorBar: EditorBar && framerSiteId && /* @__PURE__ */ (0, jsx_runtime_1.jsx)(IgnoreErrors, {
37147
+ children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(react_13.Suspense, {
37148
+ children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(EditorBar, {
37149
+ framerSiteId,
37150
+ }),
37151
+ }),
37152
+ }),
37129
37153
  }),
37130
37154
  }),
37131
37155
  }),
@@ -41857,7 +41881,7 @@ var AnimationCollector = class {
41857
41881
  _variantHashes = /* @__PURE__ */ new WeakMap();
41858
41882
  var framerAppearEffects = /* @__PURE__ */ new AnimationCollector();
41859
41883
  exports.framerAppearEffects = framerAppearEffects;
41860
- function withOptimizedAppearEffect(Component15) {
41884
+ function withOptimizedAppearEffect(Component16) {
41861
41885
  return react_11.default.forwardRef((_j, ref) => {
41862
41886
  var { optimized } = _j, props = __rest(_j, ["optimized"]);
41863
41887
  const generatedComponentContext = react_11.default.useContext(GeneratedComponentContext);
@@ -41872,7 +41896,7 @@ function withOptimizedAppearEffect(Component15) {
41872
41896
  // should not be optimized.
41873
41897
  optimized ? props : null, generatedComponentContext);
41874
41898
  }
41875
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign({ ref }, props));
41899
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign({ ref }, props));
41876
41900
  });
41877
41901
  }
41878
41902
  var optimizeAppear = (prop, id3, animateTargetAndTransition, variantHash) => {
@@ -42438,49 +42462,49 @@ function usePrototypeNavigate({ preload, } = {}) {
42438
42462
  navigation.goBack();
42439
42463
  return false;
42440
42464
  }
42441
- const Component15 = typeof target === 'string'
42465
+ const Component16 = typeof target === 'string'
42442
42466
  ? yield componentForRoute(getRoute == null ? void 0 : getRoute(target)).catch(() => { })
42443
42467
  : react_11.default.isValidElement(target)
42444
42468
  ? target
42445
42469
  : null;
42446
- if (!Component15)
42470
+ if (!Component16)
42447
42471
  return;
42448
42472
  const { appearsFrom, backdropColor, animation, } = options;
42449
42473
  const transitionType = options.transition || 'instant';
42450
42474
  switch (transitionType) {
42451
42475
  case 'instant':
42452
- navigation.instant(Component15);
42476
+ navigation.instant(Component16);
42453
42477
  break;
42454
42478
  case 'fade':
42455
- navigation.fade(Component15, {
42479
+ navigation.fade(Component16, {
42456
42480
  animation,
42457
42481
  });
42458
42482
  break;
42459
42483
  case 'push':
42460
- navigation.push(Component15, {
42484
+ navigation.push(Component16, {
42461
42485
  appearsFrom,
42462
42486
  animation,
42463
42487
  });
42464
42488
  break;
42465
42489
  case 'flip':
42466
- navigation.flip(Component15, {
42490
+ navigation.flip(Component16, {
42467
42491
  appearsFrom,
42468
42492
  animation,
42469
42493
  });
42470
42494
  break;
42471
42495
  case 'magicMotion':
42472
- navigation.magicMotion(Component15, {
42496
+ navigation.magicMotion(Component16, {
42473
42497
  animation,
42474
42498
  });
42475
42499
  break;
42476
42500
  case 'modal':
42477
- navigation.modal(Component15, {
42501
+ navigation.modal(Component16, {
42478
42502
  backdropColor,
42479
42503
  animation,
42480
42504
  });
42481
42505
  break;
42482
42506
  case 'overlay':
42483
- navigation.overlay(Component15, {
42507
+ navigation.overlay(Component16, {
42484
42508
  appearsFrom,
42485
42509
  backdropColor,
42486
42510
  animation,
@@ -42855,7 +42879,7 @@ function extractMappingFromInfo(info) {
42855
42879
  return void 0;
42856
42880
  }
42857
42881
  }
42858
- function withMappedReactProps(Component15, info) {
42882
+ function withMappedReactProps(Component16, info) {
42859
42883
  return (rawProps) => {
42860
42884
  var _j;
42861
42885
  const props = {};
@@ -42863,7 +42887,7 @@ function withMappedReactProps(Component15, info) {
42863
42887
  for (const key7 in rawProps) {
42864
42888
  asRecord(props)[(_j = (mapping == null ? void 0 : mapping[key7])) !== null && _j !== void 0 ? _j : key7] = rawProps[key7];
42865
42889
  }
42866
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign({}, props));
42890
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign({}, props));
42867
42891
  };
42868
42892
  }
42869
42893
  var keys2 = /* @__PURE__ */ new Set([
@@ -42904,9 +42928,9 @@ function createInputOutputRanges2(transformTargets, threshold, exitTarget) {
42904
42928
  outputRange: [-1, -1, ...outputRange,],
42905
42929
  };
42906
42930
  }
42907
- var withVariantAppearEffect = (Component15) => react_11.default.forwardRef((props, forwardedRef) => {
42931
+ var withVariantAppearEffect = (Component16) => react_11.default.forwardRef((props, forwardedRef) => {
42908
42932
  if (RenderTarget.current() === RenderTarget.canvas) {
42909
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { ref: forwardedRef }));
42933
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { ref: forwardedRef }));
42910
42934
  }
42911
42935
  const { wrapUpdatesInTransitions, } = useLibraryFeatures();
42912
42936
  const [options, rest,] = extractPrefixedProps(props, keys2);
@@ -42989,14 +43013,14 @@ var withVariantAppearEffect = (Component15) => react_11.default.forwardRef((prop
42989
43013
  repeat: !animateOnce,
42990
43014
  });
42991
43015
  if (!('variantAppearEffectEnabled' in options) || variantAppearEffectEnabled === true) {
42992
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, rest), { variant: activeVariant !== null && activeVariant !== void 0 ? activeVariant : props.variant, ref: observerRef }));
43016
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, rest), { variant: activeVariant !== null && activeVariant !== void 0 ? activeVariant : props.variant, ref: observerRef }));
42993
43017
  }
42994
43018
  else {
42995
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign({}, rest));
43019
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign({}, rest));
42996
43020
  }
42997
43021
  });
42998
43022
  exports.withVariantAppearEffect = withVariantAppearEffect;
42999
- var withVariantFX = (Component15) => react_11.default.forwardRef((_j, forwardedRef) => {
43023
+ var withVariantFX = (Component16) => react_11.default.forwardRef((_j, forwardedRef) => {
43000
43024
  var { initial, animate: animate3, exit } = _j, props = __rest(_j, ["initial", "animate", "exit"]);
43001
43025
  const observerRef = useObserverRef(forwardedRef);
43002
43026
  const effect = usePresenceAnimation({
@@ -43004,7 +43028,7 @@ var withVariantFX = (Component15) => react_11.default.forwardRef((_j, forwardedR
43004
43028
  animate: animate3,
43005
43029
  exit,
43006
43030
  }, observerRef, true);
43007
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, props), { style: Object.assign(Object.assign({}, (props == null ? void 0 : props.style)), effect.values), ref: observerRef }));
43031
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, props), { style: Object.assign(Object.assign({}, (props == null ? void 0 : props.style)), effect.values), ref: observerRef }));
43008
43032
  });
43009
43033
  exports.withVariantFX = withVariantFX;
43010
43034
  var WindowContext = /* @__PURE__ */ react_11.default.createContext(void 0);
@@ -46354,10 +46378,10 @@ var RichTextContainer = /* @__PURE__ */ (0, react_4.forwardRef)((props, ref) =>
46354
46378
  if (layoutId) {
46355
46379
  rest.layout = 'preserve-aspect';
46356
46380
  }
46357
- const Component15 = htmlElementAsMotionComponent(props.as);
46381
+ const Component16 = htmlElementAsMotionComponent(props.as);
46358
46382
  if (isString2(props.viewBox)) {
46359
46383
  if (props.as !== void 0) {
46360
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(FitText, {
46384
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: /* @__PURE__ */ (0, jsx_runtime_1.jsx)(FitText, {
46361
46385
  viewBox,
46362
46386
  viewBoxScale,
46363
46387
  style: {
@@ -46373,7 +46397,7 @@ var RichTextContainer = /* @__PURE__ */ (0, react_4.forwardRef)((props, ref) =>
46373
46397
  viewBoxScale, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: processedChildren }));
46374
46398
  }
46375
46399
  }
46376
- return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component15, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: processedChildren }));
46400
+ return /* @__PURE__ */ (0, jsx_runtime_1.jsx)(Component16, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: processedChildren }));
46377
46401
  });
46378
46402
  function isFragment(element) {
46379
46403
  return element.type === react_8.Fragment;