unframer 2.16.2 → 2.17.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.
package/esm/framer.js CHANGED
@@ -516613,7 +516613,7 @@ function steps(numSteps, direction = 'end') {
516613
516613
  return clamp(0, 1, rounded / numSteps);
516614
516614
  };
516615
516615
  }
516616
- // /:https://app.framerstatic.com/framer.5IYC6IGH.mjs
516616
+ // /:https://app.framerstatic.com/framer.43KQGWBL.mjs
516617
516617
  init_chunk_QLPHEVXG();
516618
516618
  import React4 from 'react';
516619
516619
  import { Suspense as Suspense3, } from 'react';
@@ -519337,7 +519337,10 @@ function getHashForRoute(hash2, route, hashVariables) {
519337
519337
  const variables = Object.assign({}, route == null ? void 0 : route.elements, hashVariables);
519338
519338
  return resolvedHash.replace(pathVariablesRegExp, (m2, p1) => String(variables[p1] ?? m2));
519339
519339
  }
519340
- function getPathForRoute(route, { currentRoutePath, currentPathVariables, hash: hash2, pathVariables, hashVariables, relative: relative2 = true, preserveQueryParams, }) {
519340
+ function getPathForRoute(route, { currentRoutePath, currentPathVariables, hash: hash2, pathVariables, hashVariables, relative: relative2 = true, preserveQueryParams, onlyHash = false, }) {
519341
+ const resolvedHash = getHashForRoute(hash2, route, hashVariables);
519342
+ if (onlyHash)
519343
+ return resolvedHash ?? '';
519341
519344
  let currentPath = currentRoutePath ?? '/';
519342
519345
  if (currentPathVariables) {
519343
519346
  currentPath = currentPath.replace(pathVariablesRegExp, (m2, p1) => String(currentPathVariables[p1] || m2));
@@ -519347,7 +519350,6 @@ function getPathForRoute(route, { currentRoutePath, currentPathVariables, hash:
519347
519350
  if (pathVariables) {
519348
519351
  path = path.replace(pathVariablesRegExp, (m2, p1) => String(pathVariables[p1] || m2));
519349
519352
  }
519350
- const resolvedHash = getHashForRoute(hash2, route, hashVariables);
519351
519353
  const isSamePageHashNavigation = currentPath === path && resolvedHash;
519352
519354
  if (relative2) {
519353
519355
  path = computeRelativePath(currentPath, path);
@@ -520099,6 +520101,9 @@ function Point(x, y) {
520099
520101
  };
520100
520102
  }
520101
520103
  ((Point2) => {
520104
+ Point2.isQuadrilateralPoints = (points) => {
520105
+ return (points == null ? void 0 : points.length) === 4;
520106
+ };
520102
520107
  Point2.add = (...args) => {
520103
520108
  return args.reduce((previousValue, currentValue) => {
520104
520109
  return {
@@ -520209,9 +520214,11 @@ function Point(x, y) {
520209
520214
  const angles = /* @__PURE__ */ new Map();
520210
520215
  for (let i = 0; i < points.length; i++) {
520211
520216
  const point2 = points[i];
520212
- angles.set(point2, Math.atan2(point2.x - centerPoint.x, point2.y - centerPoint.y));
520217
+ if (!point2)
520218
+ continue;
520219
+ angles.set(point2, Math.atan2(point2.y - centerPoint.y, point2.x - centerPoint.x));
520213
520220
  }
520214
- return points.sort((a, b) => angles.get(a) - angles.get(b));
520221
+ return points.sort((a, b) => (angles.get(a) ?? 0) - (angles.get(b) ?? 0));
520215
520222
  }
520216
520223
  Point2.sortClockwise = sortClockwise;
520217
520224
  })(Point || (Point = {}));
@@ -526872,9 +526879,9 @@ var deviceCodeComponentPresetIds = [
526872
526879
  '1440p',
526873
526880
  '4k',
526874
526881
  ];
526875
- var devicePresetsMap = /* @__PURE__ */ devicePresets.reduce((map, preset) => {
526876
- map[preset.id] = preset;
526877
- return map;
526882
+ var devicePresetsMap = /* @__PURE__ */ devicePresets.reduce((map2, preset) => {
526883
+ map2[preset.id] = preset;
526884
+ return map2;
526878
526885
  }, {});
526879
526886
  function getDevicePreset(presetId) {
526880
526887
  return devicePresetsMap[presetId] ?? devicePresetsMap[defaultPresetId];
@@ -535648,6 +535655,10 @@ function useFXValues(values, enabled) {
535648
535655
  }, [effect, enabled,]);
535649
535656
  return effect;
535650
535657
  }
535658
+ function useIsStaticRenderer() {
535659
+ const currentTarget = RenderTarget.current();
535660
+ return currentTarget === RenderTarget.canvas || currentTarget === RenderTarget.export;
535661
+ }
535651
535662
  var loopOptionsKeys = /* @__PURE__ */ new Set(['loopEffectEnabled', 'loopTransition', 'loop', 'loopRepeatType', 'loopRepeatDelay',]);
535652
535663
  var useDelay = () => {
535653
535664
  const timeoutRef = useRef();
@@ -536380,8 +536391,8 @@ var withFX = (Component18) => React4.forwardRef((props, forwardedRef) => {
536380
536391
  ref: forwardedRef,
536381
536392
  });
536382
536393
  }
536383
- const currentTarget = RenderTarget.current();
536384
- if (currentTarget === RenderTarget.canvas || currentTarget === RenderTarget.export) {
536394
+ const isRenderingStaticContent = useIsStaticRenderer();
536395
+ if (isRenderingStaticContent) {
536385
536396
  const animate4 = isVariantOrVariantList(props.animate) ? props.animate : void 0;
536386
536397
  const initial2 = isVariantOrVariantList(props.initial) ? props.initial : void 0;
536387
536398
  return /* @__PURE__ */ jsx(Component18, {
@@ -537280,7 +537291,7 @@ var Polygon = {
537280
537291
  if (d === 0)
537281
537292
  continue;
537282
537293
  const localSign = d > 0;
537283
- sign ?? (sign = localSign);
537294
+ sign ??= localSign;
537284
537295
  if (sign !== localSign)
537285
537296
  return false;
537286
537297
  }
@@ -537837,6 +537848,74 @@ function Floating({ alignment, placement, safeArea, offsetX, offsetY, anchorRef,
537837
537848
  }), getPortalContainer(portalSelector, inComponent));
537838
537849
  }
537839
537850
  var GeneratedComponentContext = /* @__PURE__ */ React4.createContext(void 0);
537851
+ var LibraryFeaturesContext = /* @__PURE__ */ React4.createContext(void 0);
537852
+ var LibraryFeaturesProvider = /* @__PURE__ */ (() => LibraryFeaturesContext.Provider)();
537853
+ var useLibraryFeatures = () => {
537854
+ const context = React4.useContext(LibraryFeaturesContext);
537855
+ return context ?? {};
537856
+ };
537857
+ var GracefullyDegradingErrorBoundary = class extends Component {
537858
+ constructor() {
537859
+ super(...arguments);
537860
+ __publicField(this, 'state', {
537861
+ error: void 0,
537862
+ });
537863
+ __publicField(this, 'message', 'Made UI non-interactive due to an error');
537864
+ __publicField(this, 'messageReport', 'If you are the author of this website, please report this issue to the Framer team via https://www.framer.community/');
537865
+ }
537866
+ static getDerivedStateFromError(error) {
537867
+ return {
537868
+ error,
537869
+ };
537870
+ }
537871
+ componentDidCatch(error) {
537872
+ var _a, _b;
537873
+ window.__framer_hadFatalError = true;
537874
+ if ('cause' in error) {
537875
+ error = error.cause;
537876
+ }
537877
+ console.error(`${this.message} (see above). ${this.messageReport}.`);
537878
+ const sampleRate = Math.random();
537879
+ if (!((_a = this.context) == null ? void 0 : _a.codeBoundaries) && sampleRate > 0.01)
537880
+ return;
537881
+ if (sampleRate > 0.25)
537882
+ return;
537883
+ const stack = error instanceof Error && typeof error.stack === 'string' ? error.stack : null;
537884
+ (_b = window.__framer_events) == null ? void 0 : _b.push(['published_site_load_error', {
537885
+ message: String(error),
537886
+ stack,
537887
+ },]);
537888
+ }
537889
+ render() {
537890
+ var _a, _b;
537891
+ const error = this.state.error;
537892
+ if (!error)
537893
+ return this.props.children;
537894
+ const unwrappedError = 'cause' in error ? error.cause : error;
537895
+ const closingHTMLComment = /-->/gu;
537896
+ const closingHTMLCommentReplacement = '--!>';
537897
+ const dom = isBot(navigator.userAgent) ? ((_a = document.getElementById('main')) == null ? void 0 : _a.innerHTML) || '' : // @FIXME: We should have a UI for fatal error recovery.
537898
+ // We don't have a UI for fatal error recovery currently, so we just render nothing for regular users. If we were to throw, React would unmount too.
537899
+ // We do render instead of throwing, so that:
537900
+ // - `componentDidCatch` runs (if we throw here, it does not)
537901
+ // - we can skip logging `Recoverable error during hydration`, because we know it was fatal.
537902
+ '';
537903
+ return (
537904
+ // This has the caveat that we will slightly modify the DOM, but it appears to be fine in this case.
537905
+ // The alternative would be to queue a new task that runs after and then set the innerHTML (= avoids the dummy-div), but that means we'll have DOM -> no DOM -> DOM transitions. With the div, we have DOM -> DOM and remove possible race-conditions.
537906
+ /* @__PURE__ */
537907
+ jsx('div', {
537908
+ style: {
537909
+ display: 'contents',
537910
+ },
537911
+ suppressHydrationWarning: true,
537912
+ dangerouslySetInnerHTML: {
537913
+ __html: `<!-- DOM replaced by GracefullyDegradingErrorBoundary due to "${unwrappedError.message.replace(closingHTMLComment, closingHTMLCommentReplacement)}". ${this.messageReport}: --><!-- Stack: ${(_b = error.stack) == null ? void 0 : _b.replace(closingHTMLComment, '--!>')} -->` + dom,
537914
+ },
537915
+ }));
537916
+ }
537917
+ };
537918
+ __publicField(GracefullyDegradingErrorBoundary, 'contextType', LibraryFeaturesContext);
537840
537919
  var LazyValue = class {
537841
537920
  constructor(resolver) {
537842
537921
  this.resolver = resolver;
@@ -537891,12 +537970,6 @@ var LazyValue = class {
537891
537970
  }
537892
537971
  }
537893
537972
  };
537894
- var LibraryFeaturesContext = /* @__PURE__ */ React4.createContext(void 0);
537895
- var LibraryFeaturesProvider = /* @__PURE__ */ (() => LibraryFeaturesContext.Provider)();
537896
- var useLibraryFeatures = () => {
537897
- const context = React4.useContext(LibraryFeaturesContext);
537898
- return context ?? {};
537899
- };
537900
537973
  function findAnchorElement(target, withinElement) {
537901
537974
  if (target instanceof HTMLAnchorElement) {
537902
537975
  return target;
@@ -538621,13 +538694,13 @@ function useReplaceNestedLinks(nodeId, href, propsAddedByLink) {
538621
538694
  if (isOnFramerCanvas || !shouldReplaceLink || !isValidLink)
538622
538695
  return;
538623
538696
  node.dataset.hydrated = 'true';
538624
- }, [isOnFramerCanvas, isValidLink, shouldReplaceLink,]);
538697
+ }, [isValidLink, shouldReplaceLink,]);
538625
538698
  return [getChildren, refCallback,];
538626
538699
  }
538627
538700
  function resolveLink(href, router, implicitPathVariables) {
538628
538701
  return resolveLinkInternal(href, router, implicitPathVariables);
538629
538702
  }
538630
- function resolveLinkInternal(href, router, implicitPathVariables, resolveSlugs2) {
538703
+ function resolveLinkInternal(href, router, implicitPathVariables, onlyHash, resolveSlugs2) {
538631
538704
  const pageLink = isLinkToWebPage(href) ? href : linkFromFramerPageLink(href);
538632
538705
  if (!isLinkToWebPage(pageLink))
538633
538706
  return isString(href) ? propsForLink(href).href : void 0;
@@ -538649,6 +538722,7 @@ function resolveLinkInternal(href, router, implicitPathVariables, resolveSlugs2)
538649
538722
  hashVariables: combinedHashVariables,
538650
538723
  relative: false,
538651
538724
  preserveQueryParams: router.preserveQueryParams,
538725
+ onlyHash,
538652
538726
  });
538653
538727
  }
538654
538728
  function resolvePageScope(pageLink, router) {
@@ -539785,69 +539859,7 @@ function usePrefetch() {
539785
539859
  }
539786
539860
  return React2.useCallback((request) => fetchClient.prefetch(request), [fetchClient,]);
539787
539861
  }
539788
- var GracefullyDegradingErrorBoundary = class extends Component {
539789
- constructor() {
539790
- super(...arguments);
539791
- __publicField(this, 'state', {
539792
- error: void 0,
539793
- });
539794
- __publicField(this, 'message', 'Made UI non-interactive due to an error');
539795
- __publicField(this, 'messageReport', 'If you are the author of this website, please report this issue to the Framer team via https://www.framer.community/');
539796
- }
539797
- static getDerivedStateFromError(error) {
539798
- return {
539799
- error,
539800
- };
539801
- }
539802
- componentDidCatch(error) {
539803
- var _a, _b;
539804
- window.__framer_hadFatalError = true;
539805
- if ('cause' in error) {
539806
- error = error.cause;
539807
- }
539808
- console.error(`${this.message} (see above). ${this.messageReport}.`);
539809
- const sampleRate = Math.random();
539810
- if (!((_a = this.context) == null ? void 0 : _a.codeBoundaries) && sampleRate > 0.01)
539811
- return;
539812
- if (sampleRate > 0.25)
539813
- return;
539814
- const stack = error instanceof Error && typeof error.stack === 'string' ? error.stack : null;
539815
- (_b = window.__framer_events) == null ? void 0 : _b.push(['published_site_load_error', {
539816
- message: String(error),
539817
- stack,
539818
- },]);
539819
- }
539820
- render() {
539821
- var _a, _b;
539822
- const error = this.state.error;
539823
- if (!error)
539824
- return this.props.children;
539825
- const unwrappedError = 'cause' in error ? error.cause : error;
539826
- const closingHTMLComment = /-->/gu;
539827
- const closingHTMLCommentReplacement = '--!>';
539828
- const dom = isBot(navigator.userAgent) ? ((_a = document.getElementById('main')) == null ? void 0 : _a.innerHTML) || '' : // @FIXME: We should have a UI for fatal error recovery.
539829
- // We don't have a UI for fatal error recovery currently, so we just render nothing for regular users. If we were to throw, React would unmount too.
539830
- // We do render instead of throwing, so that:
539831
- // - `componentDidCatch` runs (if we throw here, it does not)
539832
- // - we can skip logging `Recoverable error during hydration`, because we know it was fatal.
539833
- '';
539834
- return (
539835
- // This has the caveat that we will slightly modify the DOM, but it appears to be fine in this case.
539836
- // The alternative would be to queue a new task that runs after and then set the innerHTML (= avoids the dummy-div), but that means we'll have DOM -> no DOM -> DOM transitions. With the div, we have DOM -> DOM and remove possible race-conditions.
539837
- /* @__PURE__ */
539838
- jsx('div', {
539839
- style: {
539840
- display: 'contents',
539841
- },
539842
- suppressHydrationWarning: true,
539843
- dangerouslySetInnerHTML: {
539844
- __html: `<!-- DOM replaced by GracefullyDegradingErrorBoundary due to "${unwrappedError.message.replace(closingHTMLComment, closingHTMLCommentReplacement)}". ${this.messageReport}: --><!-- Stack: ${(_b = error.stack) == null ? void 0 : _b.replace(closingHTMLComment, '--!>')} -->` + dom,
539845
- },
539846
- }));
539847
- }
539848
- };
539849
- __publicField(GracefullyDegradingErrorBoundary, 'contextType', LibraryFeaturesContext);
539850
- function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariables, routes, collectionUtils, notFoundPage, isReducedMotion = false, includeDataObserver = false, localeId, locales, preserveQueryParams, EditorBar, LayoutTemplate, }) {
539862
+ function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariables, routes, collectionUtils, notFoundPage, isReducedMotion = false, includeDataObserver = false, localeId, locales, preserveQueryParams, EditorBar, defaultPageStyle, disableHistory, LayoutTemplate, }) {
539851
539863
  const { enableAsyncURLUpdates, } = useLibraryFeatures();
539852
539864
  React4.useEffect(() => {
539853
539865
  if (isWebsite)
@@ -539855,32 +539867,31 @@ function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariabl
539855
539867
  MainLoop.start();
539856
539868
  }, []);
539857
539869
  if (isWebsite) {
539858
- return /* @__PURE__ */ jsx(GracefullyDegradingErrorBoundary, {
539859
- children: /* @__PURE__ */ jsx(MotionConfig, {
539860
- reducedMotion: isReducedMotion ? 'user' : 'never',
539861
- children: /* @__PURE__ */ jsx(FetchClientProvider, {
539862
- children: /* @__PURE__ */ jsx(CustomCursorHost, {
539863
- children: /* @__PURE__ */ jsx(FormContext.Provider, {
539864
- value: framerSiteId,
539865
- children: /* @__PURE__ */ jsx(Router, {
539866
- initialRoute: routeId,
539867
- initialPathVariables: pathVariables,
539868
- initialLocaleId: localeId,
539869
- routes,
539870
- collectionUtils,
539871
- notFoundPage,
539872
- locales,
539873
- defaultPageStyle: {
539874
- minHeight: '100vh',
539875
- width: 'auto',
539876
- },
539877
- preserveQueryParams,
539878
- enableAsyncURLUpdates,
539879
- editorBar: /* @__PURE__ */ jsx(EditorBarLauncher, {
539880
- EditorBar,
539881
- }),
539882
- LayoutTemplate,
539870
+ return /* @__PURE__ */ jsx(MotionConfig, {
539871
+ reducedMotion: isReducedMotion ? 'user' : 'never',
539872
+ children: /* @__PURE__ */ jsx(FetchClientProvider, {
539873
+ children: /* @__PURE__ */ jsx(CustomCursorHost, {
539874
+ children: /* @__PURE__ */ jsx(FormContext.Provider, {
539875
+ value: framerSiteId,
539876
+ children: /* @__PURE__ */ jsx(Router, {
539877
+ initialRoute: routeId,
539878
+ initialPathVariables: pathVariables,
539879
+ initialLocaleId: localeId,
539880
+ routes,
539881
+ collectionUtils,
539882
+ notFoundPage,
539883
+ locales,
539884
+ defaultPageStyle: defaultPageStyle ?? {
539885
+ minHeight: '100vh',
539886
+ width: 'auto',
539887
+ },
539888
+ preserveQueryParams,
539889
+ enableAsyncURLUpdates,
539890
+ editorBar: /* @__PURE__ */ jsx(EditorBarLauncher, {
539891
+ EditorBar,
539883
539892
  }),
539893
+ disableHistory,
539894
+ LayoutTemplate,
539884
539895
  }),
539885
539896
  }),
539886
539897
  }),
@@ -540106,7 +540117,9 @@ var ResolveLinks = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ forwar
540106
540117
  const cloneWithPropsAndRef = useCloneChildrenWithPropsAndRef(ref);
540107
540118
  const promises = [];
540108
540119
  const resolvedLinks = links.map((link) => {
540109
- return resolveLinkInternal(link.href, router, link.implicitPathVariables, (unresolvedPathSlugs, unresolvedHashslugs) => {
540120
+ if (!link)
540121
+ return void 0;
540122
+ return resolveLinkInternal(link.href, router, link.implicitPathVariables, link.refKey, (unresolvedPathSlugs, unresolvedHashSlugs) => {
540110
540123
  function handleSlugs(slugs) {
540111
540124
  const result = {};
540112
540125
  for (const slugKey in slugs) {
@@ -540129,7 +540142,7 @@ var ResolveLinks = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ forwar
540129
540142
  }
540130
540143
  return {
540131
540144
  path: handleSlugs(unresolvedPathSlugs),
540132
- hash: handleSlugs(unresolvedHashslugs),
540145
+ hash: handleSlugs(unresolvedHashSlugs),
540133
540146
  };
540134
540147
  });
540135
540148
  });
@@ -541064,7 +541077,7 @@ var RichText = class {
541064
541077
  __publicField(this, 'cached');
541065
541078
  }
541066
541079
  resolve() {
541067
- this.cached ?? (this.cached = this.data.resolveRichText(this.pointer));
541080
+ this.cached ??= this.data.resolveRichText(this.pointer);
541068
541081
  return this.cached;
541069
541082
  }
541070
541083
  };
@@ -541524,7 +541537,7 @@ var RelationalProject = class extends RelationalNode {
541524
541537
  constructor(input, projections, passthrough) {
541525
541538
  let isSynchronous = input.isSynchronous;
541526
541539
  for (const projection of projections) {
541527
- isSynchronous && (isSynchronous = projection.input.isSynchronous);
541540
+ isSynchronous &&= projection.input.isSynchronous;
541528
541541
  }
541529
541542
  super(isSynchronous);
541530
541543
  this.input = input;
@@ -541656,20 +541669,20 @@ var ScalarCase = class extends ScalarNode {
541656
541669
  if (input) {
541657
541670
  referencedFields.merge(input.referencedFields);
541658
541671
  referencedOuterFields.merge(input.referencedOuterFields);
541659
- isSynchronous && (isSynchronous = input.isSynchronous);
541672
+ isSynchronous &&= input.isSynchronous;
541660
541673
  }
541661
541674
  for (const { when, then, } of conditions) {
541662
541675
  referencedFields.merge(when.referencedFields);
541663
541676
  referencedOuterFields.merge(when.referencedOuterFields);
541664
- isSynchronous && (isSynchronous = when.isSynchronous);
541677
+ isSynchronous &&= when.isSynchronous;
541665
541678
  referencedFields.merge(then.referencedFields);
541666
541679
  referencedOuterFields.merge(then.referencedOuterFields);
541667
- isSynchronous && (isSynchronous = then.isSynchronous);
541680
+ isSynchronous &&= then.isSynchronous;
541668
541681
  }
541669
541682
  if (otherwise) {
541670
541683
  referencedFields.merge(otherwise.referencedFields);
541671
541684
  referencedOuterFields.merge(otherwise.referencedOuterFields);
541672
- isSynchronous && (isSynchronous = otherwise.isSynchronous);
541685
+ isSynchronous &&= otherwise.isSynchronous;
541673
541686
  }
541674
541687
  super(referencedFields, referencedOuterFields, isSynchronous);
541675
541688
  this.input = input;
@@ -543363,7 +543376,7 @@ var Memo = class {
543363
543376
  this.nodes.set(hash2, node);
543364
543377
  const outputFields = node.getOutputFields();
543365
543378
  const relational = new RelationalProps(outputFields);
543366
- group ?? (group = this.addGroup(relational));
543379
+ group ??= this.addGroup(relational);
543367
543380
  group.addNode(node);
543368
543381
  assert(relational.isCompatible(group.relational), 'Group has inconsistent relational props');
543369
543382
  return node;
@@ -544935,15 +544948,36 @@ function useDataRecord(collection, variables) {
544935
544948
  }, [collection, variables,]);
544936
544949
  }
544937
544950
  function useDynamicRefs() {
544938
- const map = useConstant2(() => /* @__PURE__ */ new Map());
544951
+ const map2 = useConstant2(() => /* @__PURE__ */ new Map());
544939
544952
  return React4.useCallback((key7) => {
544940
- const existing = map.get(key7);
544953
+ const existing = map2.get(key7);
544941
544954
  if (existing)
544942
544955
  return existing;
544943
544956
  const ref = createRef();
544944
- map.set(key7, ref);
544957
+ map2.set(key7, ref);
544945
544958
  return ref;
544946
- }, [map,]);
544959
+ }, []);
544960
+ }
544961
+ var map = /* @__PURE__ */ new Map();
544962
+ function useSiteRefs() {
544963
+ const route = useCurrentRoute();
544964
+ const path = useMemo(() => {
544965
+ return getPathForRoute(route, {
544966
+ currentRoutePath: route == null ? void 0 : route.path,
544967
+ currentPathVariables: route == null ? void 0 : route.pathVariables,
544968
+ preserveQueryParams: false,
544969
+ relative: false,
544970
+ });
544971
+ }, [route,]);
544972
+ return React4.useCallback((key7) => {
544973
+ const computedKey = `${path}-${key7}`;
544974
+ const existing = map.get(computedKey);
544975
+ if (existing)
544976
+ return existing;
544977
+ const ref = createRef();
544978
+ map.set(computedKey, ref);
544979
+ return ref;
544980
+ }, [path,]);
544947
544981
  }
544948
544982
  function isFramerGamepadKeydownData(value) {
544949
544983
  return isObject(value) && value.mapping !== void 0;
@@ -545168,16 +545202,16 @@ function useNavigate() {
545168
545202
  return false;
545169
545203
  };
545170
545204
  }
545171
- function callbackForVariant(map, variant) {
545172
- if (map[variant])
545173
- return map[variant];
545174
- if (variant in map)
545205
+ function callbackForVariant(map2, variant) {
545206
+ if (map2[variant])
545207
+ return map2[variant];
545208
+ if (variant in map2)
545175
545209
  return void 0;
545176
- return map.default;
545210
+ return map2.default;
545177
545211
  }
545178
545212
  function useOnVariantChange(variant, callbackMap) {
545179
- const isOnFramerCanvas = useIsOnFramerCanvas();
545180
- if (isOnFramerCanvas)
545213
+ const isRenderingStaticContent = useIsStaticRenderer();
545214
+ if (isRenderingStaticContent)
545181
545215
  return;
545182
545216
  const isActiveScreenRef = React4.useRef(true);
545183
545217
  const callbackMapRef = React4.useRef(callbackMap);
@@ -545577,12 +545611,55 @@ function safeBaseVariant(targetVariant, fallbackVariant, validBaseVariants) {
545577
545611
  return fallbackVariant;
545578
545612
  }
545579
545613
  var CycleVariantState = /* @__PURE__ */ Symbol('cycle');
545614
+ function useRunCallbackIfPageIsVisible() {
545615
+ const listenerRef = useRef();
545616
+ const callbackRef = useRef();
545617
+ const clean = useCallback(() => {
545618
+ if (!listenerRef.current)
545619
+ return;
545620
+ document.removeEventListener('visibilitychange', listenerRef.current);
545621
+ listenerRef.current = void 0;
545622
+ callbackRef.current = void 0;
545623
+ }, []);
545624
+ useEffect(() => {
545625
+ return () => {
545626
+ clean();
545627
+ };
545628
+ }, [clean,]);
545629
+ return useCallback((callback) => {
545630
+ if (!document.hidden) {
545631
+ callback();
545632
+ clean();
545633
+ return;
545634
+ }
545635
+ callbackRef.current = callback;
545636
+ if (listenerRef.current)
545637
+ return;
545638
+ const listenerFn = () => {
545639
+ var _a;
545640
+ if (document.hidden)
545641
+ return;
545642
+ (_a = callbackRef.current) == null ? void 0 : _a.call(callbackRef);
545643
+ clean();
545644
+ };
545645
+ listenerRef.current = listenerFn;
545646
+ document.addEventListener('visibilitychange', listenerFn);
545647
+ }, [clean,]);
545648
+ }
545580
545649
  function useVariantState({ variant, defaultVariant: externalDefaultVariant, transitions: externalTransitions, enabledGestures: externalEnabledGestures, cycleOrder: externalCycleOrder = [], variantProps: variantProps2 = {}, variantClassNames = {}, }) {
545581
545650
  const forceUpdate = useForceUpdate2();
545582
545651
  const isCanvas = useIsOnFramerCanvas();
545583
545652
  const validBaseVariants = useConstant2(() => new Set(externalCycleOrder));
545584
545653
  const { wrapUpdatesInTransitions, } = useLibraryFeatures();
545585
- const internalState = React4.useRef({
545654
+ const update = useCallback((useTransition) => {
545655
+ if (useTransition) {
545656
+ startTransition2(() => void forceUpdate());
545657
+ return;
545658
+ }
545659
+ forceUpdate();
545660
+ }, [forceUpdate,]);
545661
+ const runUpdateIfPageIsVisible = useRunCallbackIfPageIsVisible();
545662
+ const internalState = useRef({
545586
545663
  isHovered: false,
545587
545664
  isPressed: false,
545588
545665
  isError: false,
@@ -545599,14 +545676,24 @@ function useVariantState({ variant, defaultVariant: externalDefaultVariant, tran
545599
545676
  cycleOrder: externalCycleOrder,
545600
545677
  transitions: externalTransitions,
545601
545678
  });
545602
- const resolveNextVariant = React4.useCallback((targetBaseVariant) => {
545679
+ const resolveNextVariant = useCallback((targetBaseVariant) => {
545603
545680
  const { isHovered: isHovered2, isPressed: isPressed2, isError: isError2, enabledGestures: enabledGestures2, defaultVariant: defaultVariant2, } = internalState.current;
545604
545681
  const nextBaseVariant = safeBaseVariant(targetBaseVariant, defaultVariant2, validBaseVariants);
545605
545682
  const gesture = getGesture(enabledGestures2 == null ? void 0 : enabledGestures2[nextBaseVariant], isHovered2, isPressed2, false, isError2);
545606
545683
  const nextGestureVariant = gesture ? createGestureVariant(nextBaseVariant, gesture) : void 0;
545607
545684
  return [nextBaseVariant, nextGestureVariant,];
545608
- }, [validBaseVariants,]);
545609
- const setGestureState = React4.useCallback(({ isHovered: isHovered2, isPressed: isPressed2, isError: isError2, }) => {
545685
+ }, []);
545686
+ const updateIfNeeded = useCallback((baseVariant2, gestureVariant2, defaultVariant2, nextBaseVariant, isError2 = false, clearError = false) => {
545687
+ const [nextBase, nextGesture,] = resolveNextVariant(nextBaseVariant);
545688
+ if (nextBase === baseVariant2 && nextGesture === gestureVariant2)
545689
+ return;
545690
+ if (clearError)
545691
+ internalState.current.isError = false;
545692
+ internalState.current.baseVariant = nextBase || defaultVariant2;
545693
+ internalState.current.gestureVariant = nextGesture;
545694
+ runUpdateIfPageIsVisible(() => update(wrapUpdatesInTransitions || isError2));
545695
+ }, [resolveNextVariant, runUpdateIfPageIsVisible, wrapUpdatesInTransitions, update,]);
545696
+ const setGestureState = useCallback(({ isHovered: isHovered2, isPressed: isPressed2, isError: isError2, }) => {
545610
545697
  if (isHovered2 !== void 0)
545611
545698
  internalState.current.isHovered = isHovered2;
545612
545699
  if (isPressed2 !== void 0)
@@ -545614,47 +545701,20 @@ function useVariantState({ variant, defaultVariant: externalDefaultVariant, tran
545614
545701
  if (isError2 !== void 0)
545615
545702
  internalState.current.isError = isError2;
545616
545703
  const { baseVariant: baseVariant2, gestureVariant: gestureVariant2, defaultVariant: defaultVariant2, } = internalState.current;
545617
- const [nextBase, nextGesture,] = resolveNextVariant(baseVariant2);
545618
- if (nextBase !== baseVariant2 || nextGesture !== gestureVariant2) {
545619
- internalState.current.baseVariant = nextBase || defaultVariant2;
545620
- internalState.current.gestureVariant = nextGesture;
545621
- if (isError2 || wrapUpdatesInTransitions) {
545622
- React4.startTransition(() => {
545623
- forceUpdate();
545624
- });
545625
- }
545626
- else {
545627
- forceUpdate();
545628
- }
545629
- }
545630
- }, [resolveNextVariant, forceUpdate, wrapUpdatesInTransitions,]);
545631
- const setVariant = React4.useCallback((proposedVariant) => {
545704
+ updateIfNeeded(baseVariant2, gestureVariant2, defaultVariant2, baseVariant2, isError2);
545705
+ }, [updateIfNeeded,]);
545706
+ const setVariant = useCallback((proposedVariant) => {
545632
545707
  const { defaultVariant: defaultVariant2, cycleOrder, baseVariant: baseVariant2, gestureVariant: gestureVariant2, } = internalState.current;
545633
545708
  const nextBaseVariant = proposedVariant === CycleVariantState
545634
545709
  ? nextVariant(cycleOrder || [], baseVariant2 || defaultVariant2)
545635
545710
  : proposedVariant;
545636
- const [nextBase, nextGesture,] = resolveNextVariant(nextBaseVariant);
545637
- if (nextBase !== baseVariant2 || nextGesture !== gestureVariant2) {
545638
- internalState.current.isError = false;
545639
- internalState.current.baseVariant = nextBase || defaultVariant2;
545640
- internalState.current.gestureVariant = nextGesture;
545641
- if (wrapUpdatesInTransitions) {
545642
- React4.startTransition(() => {
545643
- forceUpdate();
545644
- });
545645
- }
545646
- else {
545647
- forceUpdate();
545648
- }
545649
- }
545650
- }, [resolveNextVariant, wrapUpdatesInTransitions, forceUpdate,]);
545651
- const clearLoadingGesture = React4.useCallback(() => {
545711
+ updateIfNeeded(baseVariant2, gestureVariant2, defaultVariant2, nextBaseVariant, false, true);
545712
+ }, [updateIfNeeded,]);
545713
+ const clearLoadingGesture = useCallback(() => {
545652
545714
  const { baseVariant: baseVariant2, } = internalState.current;
545653
545715
  internalState.current.loadedBaseVariant[baseVariant2] = true;
545654
- React4.startTransition(() => {
545655
- forceUpdate();
545656
- });
545657
- }, [forceUpdate,]);
545716
+ runUpdateIfPageIsVisible(() => update(true));
545717
+ }, [runUpdateIfPageIsVisible, update,]);
545658
545718
  if (variant !== internalState.current.lastVariant) {
545659
545719
  const [nextBase, nextGesture,] = resolveNextVariant(variant);
545660
545720
  internalState.current.lastVariant = nextBase;
@@ -545665,7 +545725,7 @@ function useVariantState({ variant, defaultVariant: externalDefaultVariant, tran
545665
545725
  }
545666
545726
  const { baseVariant, gestureVariant, defaultVariant, enabledGestures, isHovered, isPressed, isError, loadedBaseVariant, } = internalState.current;
545667
545727
  const addVariantProps = useAddVariantProps(internalState.current.baseVariant, internalState.current.gestureVariant, variantProps2);
545668
- return React4.useMemo(() => {
545728
+ return useMemo(() => {
545669
545729
  var _a;
545670
545730
  const variants = [];
545671
545731
  if (baseVariant !== defaultVariant)
@@ -545725,6 +545785,14 @@ function useVariantState({ variant, defaultVariant: externalDefaultVariant, tran
545725
545785
  variantClassNames,
545726
545786
  ]);
545727
545787
  }
545788
+ var reUnsafeCharacters = /[}{<>&;]/u;
545789
+ function safeCSSValue(value) {
545790
+ if (!isString(value))
545791
+ return 'none';
545792
+ if (reUnsafeCharacters.test(value))
545793
+ return 'none';
545794
+ return value;
545795
+ }
545728
545796
  function withCodeBoundaryForOverrides(Component18, { scopeId, nodeId, override, inComponentSlot, }) {
545729
545797
  if (!shouldEnableCodeBoundaries()) {
545730
545798
  return override(Component18);
@@ -547817,13 +547885,6 @@ var FontStore = class {
547817
547885
  }
547818
547886
  };
547819
547887
  var fontStore = /* @__PURE__ */ new FontStore();
547820
- Promise.allSettled = Promise.allSettled || ((promises) => Promise.all(promises.map((p) => p.then((v) => ({
547821
- status: 'fulfilled',
547822
- value: v,
547823
- })).catch((e) => ({
547824
- status: 'rejected',
547825
- reason: e,
547826
- })))));
547827
547888
  function CustomProperties({ children, customProperties, }) {
547828
547889
  return /* @__PURE__ */ jsx('div', {
547829
547890
  style: customProperties,
@@ -549143,10 +549204,8 @@ function getInitialEffectStyle(canPlay, canAnimate2, effect) {
549143
549204
  }
549144
549205
  function useTextEffect(config, ref, preview) {
549145
549206
  const elements = useConstant2(() => /* @__PURE__ */ new Set());
549146
- const isOnCanvas = useIsOnFramerCanvas();
549147
- const isOnExport = RenderTarget.current() === RenderTarget.export;
549148
- const isOnCanvasOrExport = isOnCanvas || isOnExport;
549149
- const canPlay = preview || !isOnCanvasOrExport;
549207
+ const isRenderingStaticContent = useIsStaticRenderer();
549208
+ const canPlay = preview || !isRenderingStaticContent;
549150
549209
  const state2 = React2.useRef({
549151
549210
  hasMounted: false,
549152
549211
  hasAnimatedOnce: false,
@@ -549394,7 +549453,10 @@ function createLineGroups(elements) {
549394
549453
  return groups2;
549395
549454
  }
549396
549455
  var FitText = /* @__PURE__ */ forwardRef(({ viewBoxScale, viewBox, children, ...props }, ref) => {
549397
- return /* @__PURE__ */ jsx(motion.svg, {
549456
+ return (
549457
+ // biome-ignore lint/a11y/noSvgWithoutTitle: FIXME: FitText might be inaccessible to screen readers because it’s wrapped in an svg
549458
+ /* @__PURE__ */
549459
+ jsx(motion.svg, {
549398
549460
  ref,
549399
549461
  ...props,
549400
549462
  viewBox,
@@ -549409,7 +549471,7 @@ var FitText = /* @__PURE__ */ forwardRef(({ viewBoxScale, viewBox, children, ...
549409
549471
  },
549410
549472
  children,
549411
549473
  }),
549412
- });
549474
+ }));
549413
549475
  });
549414
549476
  var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
549415
549477
  const { __fromCanvasComponent = false, _forwardedOverrideId, _forwardedOverrides, _usesDOMRect, anchorLinkOffsetY, as: _as, bottom, center, children, environment: environment2 = RenderTarget.current, fonts = [], height, isEditable = false, left, name, opacity, positionSticky, positionStickyBottom, positionStickyLeft, positionStickyRight, positionStickyTop, right, rotation = 0, style, _initialStyle, stylesPresetsClassNames, text: plainText, top, verticalAlignment = 'top', visible = true, width, willChangeTransform, withExternalLayout = false, viewBox, viewBoxScale = 1, effect, ...rest } = props;
@@ -549497,7 +549559,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
549497
549559
  style: containerStyle,
549498
549560
  layoutId,
549499
549561
  transformTemplate: template,
549500
- 'data-framer-name': name,
549562
+ 'data-framer-name': rest['data-framer-name'] ?? name,
549501
549563
  'data-framer-component-type': 'RichTextContainer',
549502
549564
  children: /* @__PURE__ */ jsx(FitText, {
549503
549565
  viewBox,
@@ -549519,7 +549581,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
549519
549581
  viewBox,
549520
549582
  viewBoxScale,
549521
549583
  transformTemplate: template,
549522
- 'data-framer-name': name,
549584
+ 'data-framer-name': rest['data-framer-name'] ?? name,
549523
549585
  'data-framer-component-type': 'RichTextContainer',
549524
549586
  children: processedChildren,
549525
549587
  });
@@ -549531,7 +549593,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
549531
549593
  style: containerStyle,
549532
549594
  layoutId,
549533
549595
  transformTemplate: template,
549534
- 'data-framer-name': name,
549596
+ 'data-framer-name': rest['data-framer-name'] ?? name,
549535
549597
  'data-framer-component-type': 'RichTextContainer',
549536
549598
  children: processedChildren,
549537
549599
  });
@@ -549765,7 +549827,7 @@ function imagePatternPropsForFill(fill, frame2, id3, includeTransform) {
549765
549827
  const validScaleX = realWidth / frame2.width;
549766
549828
  const validScaleY = realHeight / frame2.height;
549767
549829
  if (fit === 'tile') {
549768
- fill.backgroundSize ?? (fill.backgroundSize = 1);
549830
+ fill.backgroundSize ??= 1;
549769
549831
  width = Math.round(fill.backgroundSize * (imageWidth / 2));
549770
549832
  height = Math.round(fill.backgroundSize * (imageHeight / 2));
549771
549833
  const layerPositionX = frame2.x ?? 0;
@@ -549938,7 +550000,7 @@ var supportsNativeParseHTML = /* @__PURE__ */ (() =>
549938
550000
  function domParser(html, type) {
549939
550001
  if (supportsNativeParseHTML && !type)
549940
550002
  return Document.parseHTMLUnsafe(html);
549941
- parser ?? (parser = new DOMParser());
550003
+ parser ??= new DOMParser();
549942
550004
  return parser.parseFromString(html, type ?? 'text/html');
549943
550005
  }
549944
550006
  var useDOM = /* @__PURE__ */ isBrowser2();
@@ -550626,7 +550688,7 @@ var TextComponent = /* @__PURE__ */ (() => {
550626
550688
  }
550627
550689
  const dataProps = {
550628
550690
  'data-framer-component-type': 'Text',
550629
- 'data-framer-name': name,
550691
+ 'data-framer-name': rest['data-framer-name'] ?? name,
550630
550692
  };
550631
550693
  if (autoSize) {
550632
550694
  asRecord(dataProps)['data-framer-component-text-autosized'] = 'true';
@@ -551933,7 +551995,7 @@ MotionValue.prototype.addChild = function ({ transformer = (v) => v, }) {
551933
551995
  if (false) {
551934
551996
  MainLoop2.start();
551935
551997
  }
551936
- export { _injectRuntime, AcceleratedAnimation, addActionControls, addFonts, addPointerEvent, addPointerInfo, addPropertyControls, addScaleCorrector, AnchorLinkTarget, Animatable, animate2 as animate, animateMini, AnimatePresence, AnimateSharedLayout, animateValue, animateVisualElement, animationControls, animations, annotateTypeOnStringify, anticipate, AnyInterpolation, AutomaticLayoutIds, BackgroundImage, backgroundImageFromProps, backIn, backInOut, backOut, BezierAnimator, BoxShadow, buildTransform, calcLength, calculateRect, callEach, cancelFrame, cancelSync, ChildrenCanSuspend, circIn, circInOut, circOut, clamp, collectVisualStyleFromProps, Color, color, ColorFormat, ColorMixModelType, combinedCSSRulesForPreview, complex, ComponentContainerContext, ComponentPresetsConsumer, ComponentPresetsProvider, ComponentViewportProvider, ConstraintMask, constraintsEnabled, ConstraintValues, Container, ControlType, ConvertColor, convertPresentationTree, convertPropsToDeviceOptions, createBox, createData, createFramerPageLink, createRendererMotionComponent, createScopedAnimate, cssBackgroundSize, cubicBezier, CustomCursorHost, CustomProperties, cx, CycleVariantState, Data, DataContext, DataObserver, DataObserverContext, debounce, defaultDeviceProps, degreesToRadians, delay, DeprecatedComponentContainer, DeprecatedFrameWithEvents, DeprecatedLayoutGroupContext, DeprecatedLayoutGroupContext as LayoutGroupContext, Device, DeviceCodeComponent, devicePresets, DimensionType, disableInstantTransitions, dispatchKeyDownEvent, distance, distance2D, DOM, domAnimation, domMax, domMin, DragControls, Draggable, easeIn, easeInOut, easeOut, EmptyState, environment, ErrorPlaceholder, executeInRenderEnvironment, Fetcher, filterProps, findSpring, finiteNumber, FlatTree, Floating, FontSourceNames, fontStore, forceLayerBackingWithCSSProperties, FormBooleanInput, FormContainer, FormPlainTextInput2 as FormPlainTextInput, FormSelect, fraction, Frame, frame, frameData, frameFromElement, frameFromElements, FramerAnimation, framerAppearAnimationScriptKey, framerAppearEffects, framerAppearIdKey, framerAppearTransformTemplateToken, framerCSSMarker, FramerEvent, FramerEventListener, FramerEventSession, frameSteps, FrameWithMotion, GamepadContext, GeneratedComponentContext, getComponentSize, getDevicePreset, getFonts, getFontsFromComponentPreset, getFontsFromSharedStyle, getLoadingLazyAtYPosition, getMeasurableCodeComponentChildren, getPropertyControls, getWhereExpressionFromPathVariables, gradientForShape, Image2 as Image, imagePatternPropsForFill, imageUrlForAsset, inertia, inferInitialRouteFromPath, injectComponentCSSRules, installFlexboxGapWorkaroundIfNeeded, InternalID, interpolate, invariant, inView, isAnimatable2 as isAnimatable, isBrowser, isDesignDefinition, isDragActive, isEqual, isFiniteNumber, isFractionDimension, isFramerGamepadKeydownData, isFramerPageLink, isGapEnabled, isMotionComponent, isMotionValue2 as isMotionValue, isOfAnnotatedType, isOverride, isReactDefinition, isRelativeNumber, isShallowEqualArray, isStraightCurve, isValidMotionProp, keyframes, Layer, LayoutGroup, LayoutIdContext, lazy, LazyMotion, LazyValue, LibraryFeaturesProvider, Line, LinearGradient, Link, loadFont, loadJSON, localPackageFallbackIdentifier, localShadowFrame, m, MainLoop, makePaddingString, makeUseVisualState, markHydrationStart, memoize2 as memoize, mirrorEasing, mix, modulate, motion, MotionConfig, MotionConfigContext, MotionContext, MotionGlobalConfig, MotionSetup, MotionValue, motionValue, namespace_exports as Reorder, NavigateTo, NavigationCallbackProvider, NavigationConsumer, NavigationTransitionType, NavigationWrapper as Navigation, nestedLinksCollector, NotFoundError, ObservableObject, optimizeAppear, optimizeAppearTransformTemplate, optimizedAppearDataAttribute, paddingFromProps, Page3 as Page, PageEffectsProvider, PageRoot, ParentSizeState, parseFramerPageLink, pathDefaults, PathSegment, PathVariablesContext, pipe, Point, Polygon, preloadImage, PresenceContext, print, progress, PropertyOverrides2 as PropertyOverrides, PropertyStore, propsForLink, pushLoadMoreHistory, px, QueryEngine, RadialGradient, Rect, removeHiddenBreakpointLayers, removeHiddenBreakpointLayersV2, RenderTarget, resolveLink, ResolveLinks, resolveMotionValue, resolvePageScope, reverseEasing, RichText2 as RichText, roundedNumber, roundedNumberString, roundWithOffset, Scroll, scroll, scrollInfo, setGlobalRenderEnvironment, setInitialHydrationState, Shadow, sharedSVGManager, shouldOpenLinkInNewTab, Size, SmartComponentScopedContainer, spring, SpringAnimator, SSRVariants, Stack, stagger, startAnimation, startOptimizedAppearAnimation, steps, StyleSheetContext, SVG, SwitchLayoutGroupContext, sync, systemFontFamilyName, Text2 as Text, throttle, toFlexDirection, toJustifyOrAlignment, toSVGPath, transform, transformString2 as transformString, transformTemplate, turnOffReactEventHandling, unwrapMotionComponent, useActiveTargetCallback, useActiveVariantCallback, useAddVariantProps, useAnimate, useAnimatedState, useAnimatedState as useDeprecatedAnimatedState, useAnimateMini, useAnimation, useAnimationControls, useAnimationFrame, useBreakpointVariants, useComponentViewport, useConstant2 as useConstant, useCurrentPathVariables, useCurrentRoute, useCurrentRouteId, useCustomCursors, useCycle, useDataRecord, useDomEvent, useDragControls, useDynamicRefs, useElementScroll, useForceUpdate, useGamepad, useHotkey, useHydratedBreakpointVariants, useInitialRouteComponent, useInstantLayoutTransition, useInstantTransition, useInvertedScale, useInvertedScale as useDeprecatedInvertedScale, useInView, useIsInCurrentNavigationTarget, useIsomorphicLayoutEffect, useIsOnFramerCanvas, useIsPresent, useLoadMorePaginatedQuery, useLoadMorePagination, useLocale, useLocaleCode, useLocaleInfo, useLocalizationInfo, useMeasureLayout, useMotionTemplate, useMotionValue, useMotionValueEvent, useNavigate, useNavigation, useObserveData, useOnAppear, useOnCurrentTargetChange, useOnVariantChange, useOverlayState, usePageEffects, usePrefetch, usePreloadQuery, usePresence, usePrototypeNavigate, useProvidedWindow, useQueryData, useReducedMotion, useReducedMotionConfig, useRenderEnvironment, useResetProjection, useRoute, useRouteAnchor, useRouteElementId, useRouteHandler, useRouter, useScroll, useSpring, useTime, useTransform, useUnmountEffect, useVariantState, useVelocity, useViewportScroll, useWillChange, ValueInterpolation, valueToDimensionType, VariantSelector, Vector, VectorGroup, version, VisualElement, visualElementStore, warning, WindowContext, withCodeBoundaryForOverrides, withCSS, withFX, withGeneratedLayoutId, withInfiniteScroll, withMappedReactProps, withMeasuredSize, WithNavigator, withOpacity, withOptimizedAppearEffect, WithOverride, withParallaxTransform, withPath, withPerformanceMarks, withShape, withStyleAppearEffect, withVariantAppearEffect, withVariantFX, wrap, };
551998
+ export { _injectRuntime, AcceleratedAnimation, addActionControls, addFonts, addPointerEvent, addPointerInfo, addPropertyControls, addScaleCorrector, AnchorLinkTarget, Animatable, animate2 as animate, animateMini, AnimatePresence, AnimateSharedLayout, animateValue, animateVisualElement, animationControls, animations, annotateTypeOnStringify, anticipate, AnyInterpolation, AutomaticLayoutIds, BackgroundImage, backgroundImageFromProps, backIn, backInOut, backOut, BezierAnimator, BoxShadow, buildTransform, calcLength, calculateRect, callEach, cancelFrame, cancelSync, ChildrenCanSuspend, circIn, circInOut, circOut, clamp, collectVisualStyleFromProps, Color, color, ColorFormat, ColorMixModelType, combinedCSSRulesForPreview, complex, ComponentContainerContext, ComponentPresetsConsumer, ComponentPresetsProvider, ComponentViewportProvider, ConstraintMask, constraintsEnabled, ConstraintValues, Container, ControlType, ConvertColor, convertPresentationTree, convertPropsToDeviceOptions, createBox, createData, createFramerPageLink, createRendererMotionComponent, createScopedAnimate, cssBackgroundSize, cubicBezier, CustomCursorHost, CustomProperties, cx, CycleVariantState, Data, DataContext, DataObserver, DataObserverContext, debounce, defaultDeviceProps, degreesToRadians, delay, DeprecatedComponentContainer, DeprecatedFrameWithEvents, DeprecatedLayoutGroupContext, DeprecatedLayoutGroupContext as LayoutGroupContext, Device, DeviceCodeComponent, devicePresets, DimensionType, disableInstantTransitions, dispatchKeyDownEvent, distance, distance2D, DOM, domAnimation, domMax, domMin, DragControls, Draggable, easeIn, easeInOut, easeOut, EmptyState, environment, ErrorPlaceholder, executeInRenderEnvironment, Fetcher, filterProps, findSpring, finiteNumber, FlatTree, Floating, FontSourceNames, fontStore, forceLayerBackingWithCSSProperties, FormBooleanInput, FormContainer, FormPlainTextInput2 as FormPlainTextInput, FormSelect, fraction, Frame, frame, frameData, frameFromElement, frameFromElements, FramerAnimation, framerAppearAnimationScriptKey, framerAppearEffects, framerAppearIdKey, framerAppearTransformTemplateToken, framerCSSMarker, FramerEvent, FramerEventListener, FramerEventSession, frameSteps, FrameWithMotion, GamepadContext, GeneratedComponentContext, getComponentSize, getDevicePreset, getFonts, getFontsFromComponentPreset, getFontsFromSharedStyle, getLoadingLazyAtYPosition, getMeasurableCodeComponentChildren, getPropertyControls, getWhereExpressionFromPathVariables, GracefullyDegradingErrorBoundary, gradientForShape, Image2 as Image, imagePatternPropsForFill, imageUrlForAsset, inertia, inferInitialRouteFromPath, injectComponentCSSRules, installFlexboxGapWorkaroundIfNeeded, InternalID, interpolate, invariant, inView, isAnimatable2 as isAnimatable, isBrowser, isDesignDefinition, isDragActive, isEqual, isFiniteNumber, isFractionDimension, isFramerGamepadKeydownData, isFramerPageLink, isGapEnabled, isMotionComponent, isMotionValue2 as isMotionValue, isOfAnnotatedType, isOverride, isReactDefinition, isRelativeNumber, isShallowEqualArray, isStraightCurve, isValidMotionProp, keyframes, Layer, LayoutGroup, LayoutIdContext, lazy, LazyMotion, LazyValue, LibraryFeaturesProvider, Line, LinearGradient, Link, loadFont, loadJSON, localPackageFallbackIdentifier, localShadowFrame, m, MainLoop, makePaddingString, makeUseVisualState, markHydrationStart, memoize2 as memoize, mirrorEasing, mix, modulate, motion, MotionConfig, MotionConfigContext, MotionContext, MotionGlobalConfig, MotionSetup, MotionValue, motionValue, namespace_exports as Reorder, NavigateTo, NavigationCallbackProvider, NavigationConsumer, NavigationTransitionType, NavigationWrapper as Navigation, nestedLinksCollector, NotFoundError, ObservableObject, optimizeAppear, optimizeAppearTransformTemplate, optimizedAppearDataAttribute, paddingFromProps, Page3 as Page, PageEffectsProvider, PageRoot, ParentSizeState, parseFramerPageLink, pathDefaults, PathSegment, PathVariablesContext, pipe, Point, Polygon, preloadImage, PresenceContext, print, progress, PropertyOverrides2 as PropertyOverrides, PropertyStore, propsForLink, pushLoadMoreHistory, px, QueryEngine, RadialGradient, Rect, removeHiddenBreakpointLayers, removeHiddenBreakpointLayersV2, RenderTarget, resolveLink, ResolveLinks, resolveMotionValue, resolvePageScope, reverseEasing, RichText2 as RichText, roundedNumber, roundedNumberString, roundWithOffset, safeCSSValue, Scroll, scroll, scrollInfo, setGlobalRenderEnvironment, setInitialHydrationState, Shadow, sharedSVGManager, shouldOpenLinkInNewTab, Size, SmartComponentScopedContainer, spring, SpringAnimator, SSRVariants, Stack, stagger, startAnimation, startOptimizedAppearAnimation, steps, StyleSheetContext, SVG, SwitchLayoutGroupContext, sync, systemFontFamilyName, Text2 as Text, throttle, toFlexDirection, toJustifyOrAlignment, toSVGPath, transform, transformString2 as transformString, transformTemplate, turnOffReactEventHandling, unwrapMotionComponent, useActiveTargetCallback, useActiveVariantCallback, useAddVariantProps, useAnimate, useAnimatedState, useAnimatedState as useDeprecatedAnimatedState, useAnimateMini, useAnimation, useAnimationControls, useAnimationFrame, useBreakpointVariants, useComponentViewport, useConstant2 as useConstant, useCurrentPathVariables, useCurrentRoute, useCurrentRouteId, useCustomCursors, useCycle, useDataRecord, useDomEvent, useDragControls, useDynamicRefs, useElementScroll, useForceUpdate, useGamepad, useHotkey, useHydratedBreakpointVariants, useInitialRouteComponent, useInstantLayoutTransition, useInstantTransition, useInvertedScale, useInvertedScale as useDeprecatedInvertedScale, useInView, useIsInCurrentNavigationTarget, useIsomorphicLayoutEffect, useIsOnFramerCanvas, useIsPresent, useLoadMorePaginatedQuery, useLoadMorePagination, useLocale, useLocaleCode, useLocaleInfo, useLocalizationInfo, useMeasureLayout, useMotionTemplate, useMotionValue, useMotionValueEvent, useNavigate, useNavigation, useObserveData, useOnAppear, useOnCurrentTargetChange, useOnVariantChange, useOverlayState, usePageEffects, usePrefetch, usePreloadQuery, usePresence, usePrototypeNavigate, useProvidedWindow, useQueryData, useReducedMotion, useReducedMotionConfig, useRenderEnvironment, useResetProjection, useRoute, useRouteAnchor, useRouteElementId, useRouteHandler, useRouter, useScroll, useSiteRefs, useSpring, useTime, useTransform, useUnmountEffect, useVariantState, useVelocity, useViewportScroll, useWillChange, ValueInterpolation, valueToDimensionType, VariantSelector, Vector, VectorGroup, version, VisualElement, visualElementStore, warning, WindowContext, withCodeBoundaryForOverrides, withCSS, withFX, withGeneratedLayoutId, withInfiniteScroll, withMappedReactProps, withMeasuredSize, WithNavigator, withOpacity, withOptimizedAppearEffect, WithOverride, withParallaxTransform, withPath, withPerformanceMarks, withShape, withStyleAppearEffect, withVariantAppearEffect, withVariantFX, wrap, };
551937
551999
  /**
551938
552000
  * @license Emotion v11.0.0
551939
552001
  * MIT License