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/README.md +3 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +5 -4
- package/dist/cli.js.map +1 -1
- package/dist/esbuild.d.ts.map +1 -1
- package/dist/esbuild.js +5 -2
- package/dist/esbuild.js.map +1 -1
- package/dist/exporter.d.ts +11 -3
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +62 -85
- package/dist/exporter.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +255 -190
- package/dist/framer.js.map +1 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +2 -2
- package/dist/react.js.map +1 -1
- package/esm/cli.d.ts.map +1 -1
- package/esm/cli.js +4 -3
- package/esm/cli.js.map +1 -1
- package/esm/esbuild.d.ts.map +1 -1
- package/esm/esbuild.js +5 -2
- package/esm/esbuild.js.map +1 -1
- package/esm/exporter.d.ts +11 -3
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +64 -86
- package/esm/exporter.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +249 -187
- package/esm/framer.js.map +1 -1
- package/esm/react.d.ts.map +1 -1
- package/esm/react.js +2 -2
- package/esm/react.js.map +1 -1
- package/package.json +18 -18
- package/src/cli.tsx +7 -5
- package/src/esbuild.ts +5 -2
- package/src/exporter.ts +86 -103
- package/src/framer.js +265 -205
- package/src/react.tsx +3 -5
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.
|
|
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
|
-
|
|
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((
|
|
526876
|
-
|
|
526877
|
-
return
|
|
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
|
|
536384
|
-
if (
|
|
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
|
|
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
|
-
}, [
|
|
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
|
-
|
|
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(
|
|
539859
|
-
|
|
539860
|
-
|
|
539861
|
-
children: /* @__PURE__ */ jsx(
|
|
539862
|
-
children: /* @__PURE__ */ jsx(
|
|
539863
|
-
|
|
539864
|
-
|
|
539865
|
-
|
|
539866
|
-
|
|
539867
|
-
|
|
539868
|
-
|
|
539869
|
-
|
|
539870
|
-
|
|
539871
|
-
|
|
539872
|
-
|
|
539873
|
-
|
|
539874
|
-
|
|
539875
|
-
|
|
539876
|
-
|
|
539877
|
-
|
|
539878
|
-
|
|
539879
|
-
|
|
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
|
-
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
541677
|
+
isSynchronous &&= when.isSynchronous;
|
|
541665
541678
|
referencedFields.merge(then.referencedFields);
|
|
541666
541679
|
referencedOuterFields.merge(then.referencedOuterFields);
|
|
541667
|
-
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
|
|
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
|
|
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
|
|
544951
|
+
const map2 = useConstant2(() => /* @__PURE__ */ new Map());
|
|
544939
544952
|
return React4.useCallback((key7) => {
|
|
544940
|
-
const existing =
|
|
544953
|
+
const existing = map2.get(key7);
|
|
544941
544954
|
if (existing)
|
|
544942
544955
|
return existing;
|
|
544943
544956
|
const ref = createRef();
|
|
544944
|
-
|
|
544957
|
+
map2.set(key7, ref);
|
|
544945
544958
|
return ref;
|
|
544946
|
-
}, [
|
|
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(
|
|
545172
|
-
if (
|
|
545173
|
-
return
|
|
545174
|
-
if (variant in
|
|
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
|
|
545210
|
+
return map2.default;
|
|
545177
545211
|
}
|
|
545178
545212
|
function useOnVariantChange(variant, callbackMap) {
|
|
545179
|
-
const
|
|
545180
|
-
if (
|
|
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
|
|
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 =
|
|
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
|
-
}, [
|
|
545609
|
-
const
|
|
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
|
-
|
|
545618
|
-
|
|
545619
|
-
|
|
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
|
-
|
|
545637
|
-
|
|
545638
|
-
|
|
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
|
-
|
|
545655
|
-
|
|
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
|
|
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
|
|
549147
|
-
const
|
|
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
|
|
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
|
|
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
|
|
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
|