unframer 2.11.2 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/exporter.d.ts +3 -0
- package/dist/exporter.d.ts.map +1 -1
- package/dist/exporter.js +54 -30
- package/dist/exporter.js.map +1 -1
- package/dist/exporter.test.js +3 -0
- package/dist/exporter.test.js.map +1 -1
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +840 -488
- package/dist/framer.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -5
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +15 -6
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +66 -3
- package/dist/react.js.map +1 -1
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js.map +1 -1
- package/esm/exporter.d.ts +3 -0
- package/esm/exporter.d.ts.map +1 -1
- package/esm/exporter.js +55 -32
- package/esm/exporter.js.map +1 -1
- package/esm/exporter.test.js +4 -1
- package/esm/exporter.test.js.map +1 -1
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +837 -488
- package/esm/framer.js.map +1 -1
- package/esm/index.d.ts +3 -1
- package/esm/index.d.ts.map +1 -1
- package/esm/index.js +3 -1
- package/esm/index.js.map +1 -1
- package/esm/react.d.ts +15 -6
- package/esm/react.d.ts.map +1 -1
- package/esm/react.js +65 -5
- package/esm/react.js.map +1 -1
- package/esm/utils.d.ts +1 -1
- package/esm/utils.d.ts.map +1 -1
- package/esm/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/exporter.test.ts +6 -1
- package/src/exporter.ts +68 -33
- package/src/framer.js +891 -494
- package/src/index.ts +7 -1
- package/src/react.tsx +98 -16
- package/src/utils.ts +1 -1
package/esm/framer.js
CHANGED
|
@@ -14597,7 +14597,7 @@ function steps(numSteps, direction = 'end') {
|
|
|
14597
14597
|
return clamp(0, 1, rounded / numSteps);
|
|
14598
14598
|
};
|
|
14599
14599
|
}
|
|
14600
|
-
// https :https://app.framerstatic.com/framer.
|
|
14600
|
+
// https :https://app.framerstatic.com/framer.W2IMDDH5.mjs
|
|
14601
14601
|
init_chunk_QLPHEVXG();
|
|
14602
14602
|
import React4 from 'react';
|
|
14603
14603
|
import { startTransition as startTransition2, } from 'react';
|
|
@@ -16264,9 +16264,9 @@ function renderPage(Page4, defaultPageStyle) {
|
|
|
16264
16264
|
}
|
|
16265
16265
|
var NotFoundError = class extends Error {
|
|
16266
16266
|
};
|
|
16267
|
-
var
|
|
16267
|
+
var NotFoundErrorBoundaryCaughtError = class extends Error {
|
|
16268
16268
|
};
|
|
16269
|
-
var
|
|
16269
|
+
var NotFoundErrorBoundary = class extends Component {
|
|
16270
16270
|
constructor(props) {
|
|
16271
16271
|
super(props);
|
|
16272
16272
|
this.state = {
|
|
@@ -16297,7 +16297,7 @@ var ErrorBoundary = class extends Component {
|
|
|
16297
16297
|
return this.props.children;
|
|
16298
16298
|
}
|
|
16299
16299
|
if (!(this.state.error instanceof NotFoundError)) {
|
|
16300
|
-
const error = new
|
|
16300
|
+
const error = new NotFoundErrorBoundaryCaughtError();
|
|
16301
16301
|
error.cause = this.state.error;
|
|
16302
16302
|
throw error;
|
|
16303
16303
|
}
|
|
@@ -16308,6 +16308,159 @@ var ErrorBoundary = class extends Component {
|
|
|
16308
16308
|
return renderPage(notFoundPage, defaultPageStyle);
|
|
16309
16309
|
}
|
|
16310
16310
|
};
|
|
16311
|
+
function isObject(value) {
|
|
16312
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
16313
|
+
}
|
|
16314
|
+
function isString(value) {
|
|
16315
|
+
return typeof value === 'string';
|
|
16316
|
+
}
|
|
16317
|
+
var preloadKey = 'preload';
|
|
16318
|
+
function isLazyComponentType(componentType) {
|
|
16319
|
+
return typeof componentType === 'object' && componentType !== null && !React4.isValidElement(componentType) &&
|
|
16320
|
+
preloadKey in componentType;
|
|
16321
|
+
}
|
|
16322
|
+
function lazy(factory) {
|
|
16323
|
+
const LazyComponent = React4.lazy(factory);
|
|
16324
|
+
let factoryPromise;
|
|
16325
|
+
let LoadedComponent;
|
|
16326
|
+
const Component18 = React4.forwardRef(function LazyWithPreload(props, ref) {
|
|
16327
|
+
return React4.createElement(LoadedComponent !== null && LoadedComponent !== void 0 ? LoadedComponent : LazyComponent, ref
|
|
16328
|
+
? {
|
|
16329
|
+
ref,
|
|
16330
|
+
...props,
|
|
16331
|
+
}
|
|
16332
|
+
: props);
|
|
16333
|
+
});
|
|
16334
|
+
Component18.preload = () => {
|
|
16335
|
+
if (!factoryPromise) {
|
|
16336
|
+
factoryPromise = factory().then((module) => {
|
|
16337
|
+
LoadedComponent = module.default;
|
|
16338
|
+
return LoadedComponent;
|
|
16339
|
+
});
|
|
16340
|
+
}
|
|
16341
|
+
return factoryPromise;
|
|
16342
|
+
};
|
|
16343
|
+
return Component18;
|
|
16344
|
+
}
|
|
16345
|
+
function getRouteElementId(route, hash2) {
|
|
16346
|
+
if (hash2 && route) {
|
|
16347
|
+
if (route.elements && hash2 in route.elements) {
|
|
16348
|
+
return route.elements[hash2];
|
|
16349
|
+
}
|
|
16350
|
+
else {
|
|
16351
|
+
return hash2;
|
|
16352
|
+
}
|
|
16353
|
+
}
|
|
16354
|
+
return void 0;
|
|
16355
|
+
}
|
|
16356
|
+
function isBot(userAgent) {
|
|
16357
|
+
return /bot|-google|google-|yandex|ia_archiver/iu.test(userAgent);
|
|
16358
|
+
}
|
|
16359
|
+
function yieldToMain(options) {
|
|
16360
|
+
if ('scheduler' in window) {
|
|
16361
|
+
if ('yield' in scheduler)
|
|
16362
|
+
return scheduler.yield(options);
|
|
16363
|
+
if ('postTask' in scheduler)
|
|
16364
|
+
return scheduler.postTask(() => { }, options);
|
|
16365
|
+
}
|
|
16366
|
+
if ((options === null || options === void 0 ? void 0 : options.priority) === 'user-blocking') {
|
|
16367
|
+
return Promise.resolve();
|
|
16368
|
+
}
|
|
16369
|
+
return new Promise((resolve) => {
|
|
16370
|
+
setTimeout(resolve);
|
|
16371
|
+
});
|
|
16372
|
+
}
|
|
16373
|
+
async function yieldBefore(fn, options) {
|
|
16374
|
+
await yieldToMain(options);
|
|
16375
|
+
return fn();
|
|
16376
|
+
}
|
|
16377
|
+
function interactionResponse(options) {
|
|
16378
|
+
return new Promise((resolve) => {
|
|
16379
|
+
setTimeout(resolve, 100);
|
|
16380
|
+
requestAnimationFrame(() => {
|
|
16381
|
+
void yieldBefore(resolve, options);
|
|
16382
|
+
});
|
|
16383
|
+
});
|
|
16384
|
+
}
|
|
16385
|
+
function useAfterPaintEffect(effectFn, deps, opts, useEffectFn = useLayoutEffect) {
|
|
16386
|
+
useEffectFn(() => {
|
|
16387
|
+
const runAfterPaint = async (fn) => {
|
|
16388
|
+
await interactionResponse(opts);
|
|
16389
|
+
return fn();
|
|
16390
|
+
};
|
|
16391
|
+
const runPromise = runAfterPaint(effectFn);
|
|
16392
|
+
return () => {
|
|
16393
|
+
void (async () => {
|
|
16394
|
+
const cleanup = await runPromise;
|
|
16395
|
+
if (!cleanup)
|
|
16396
|
+
return;
|
|
16397
|
+
void runAfterPaint(cleanup);
|
|
16398
|
+
})();
|
|
16399
|
+
};
|
|
16400
|
+
}, deps);
|
|
16401
|
+
}
|
|
16402
|
+
var noop2 = () => { };
|
|
16403
|
+
var EMPTY_ARRAY = [];
|
|
16404
|
+
var ErrorBoundaryCaughtError = class extends NotFoundErrorBoundaryCaughtError {
|
|
16405
|
+
constructor() {
|
|
16406
|
+
super(...arguments);
|
|
16407
|
+
this.caught = true;
|
|
16408
|
+
}
|
|
16409
|
+
};
|
|
16410
|
+
var GracefullyDegradingErrorBoundary = class extends Component {
|
|
16411
|
+
constructor() {
|
|
16412
|
+
super(...arguments);
|
|
16413
|
+
this.state = {
|
|
16414
|
+
error: void 0,
|
|
16415
|
+
};
|
|
16416
|
+
this.message = 'Made UI non-interactive due to the error above. We\'ve logged it, but also please report this to the Framer team.';
|
|
16417
|
+
}
|
|
16418
|
+
static getDerivedStateFromError(error) {
|
|
16419
|
+
return {
|
|
16420
|
+
error,
|
|
16421
|
+
};
|
|
16422
|
+
}
|
|
16423
|
+
componentDidCatch(error) {
|
|
16424
|
+
var _a;
|
|
16425
|
+
if ('cause' in error) {
|
|
16426
|
+
error = error.cause;
|
|
16427
|
+
}
|
|
16428
|
+
console.error(this.message);
|
|
16429
|
+
if (Math.random() > 0.01)
|
|
16430
|
+
return;
|
|
16431
|
+
const stack = error instanceof Error && typeof error.stack === 'string' ? error.stack : null;
|
|
16432
|
+
(_a = window.__framer_events) === null || _a === void 0 ? void 0 : _a.push(['published_site_load_error', {
|
|
16433
|
+
message: String(error),
|
|
16434
|
+
stack,
|
|
16435
|
+
},]);
|
|
16436
|
+
}
|
|
16437
|
+
render() {
|
|
16438
|
+
var _a;
|
|
16439
|
+
const error = this.state.error;
|
|
16440
|
+
if (!error)
|
|
16441
|
+
return this.props.children;
|
|
16442
|
+
if (!isBot(navigator.userAgent)) {
|
|
16443
|
+
const fatalError = new ErrorBoundaryCaughtError();
|
|
16444
|
+
fatalError.cause = 'cause' in error ? error.cause : error;
|
|
16445
|
+
console.error(this.message, fatalError.cause);
|
|
16446
|
+
throw fatalError;
|
|
16447
|
+
}
|
|
16448
|
+
return (
|
|
16449
|
+
// This has the caveat that we will slightly modify the DOM, but it appears to be fine in this case.
|
|
16450
|
+
// 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.
|
|
16451
|
+
jsx('div', {
|
|
16452
|
+
style: {
|
|
16453
|
+
display: 'contents',
|
|
16454
|
+
},
|
|
16455
|
+
suppressHydrationWarning: true,
|
|
16456
|
+
// biome-ignore lint/security/noDangerouslySetInnerHtml: React would unmount the root on errors, but we must ensure that bots can still read the SSR'd content.
|
|
16457
|
+
dangerouslySetInnerHTML: {
|
|
16458
|
+
__html: '<!-- DOM replaced by GracefullyDegradingErrorBoundary -->' +
|
|
16459
|
+
(((_a = document.getElementById('main')) === null || _a === void 0 ? void 0 : _a.innerHTML) || ''),
|
|
16460
|
+
},
|
|
16461
|
+
}));
|
|
16462
|
+
}
|
|
16463
|
+
};
|
|
16311
16464
|
var pathVariablesRegExpRaw = ':([a-z]\\w*)';
|
|
16312
16465
|
var pathVariablesRegExp = /* @__PURE__ */ new RegExp(pathVariablesRegExpRaw, 'gi');
|
|
16313
16466
|
function fillPathVariables(path, variables) {
|
|
@@ -16481,99 +16634,6 @@ function forwardQueryParams(queryParamsString, href) {
|
|
|
16481
16634
|
}
|
|
16482
16635
|
return hrefWithoutHash.substring(0, startOfSearch + 1) + newSearchParams.toString() + hash2;
|
|
16483
16636
|
}
|
|
16484
|
-
function isObject(value) {
|
|
16485
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
16486
|
-
}
|
|
16487
|
-
function isString(value) {
|
|
16488
|
-
return typeof value === 'string';
|
|
16489
|
-
}
|
|
16490
|
-
var preloadKey = 'preload';
|
|
16491
|
-
function isLazyComponentType(componentType) {
|
|
16492
|
-
return typeof componentType === 'object' && componentType !== null && !React4.isValidElement(componentType) &&
|
|
16493
|
-
preloadKey in componentType;
|
|
16494
|
-
}
|
|
16495
|
-
function lazy(factory) {
|
|
16496
|
-
const LazyComponent = React4.lazy(factory);
|
|
16497
|
-
let factoryPromise;
|
|
16498
|
-
let LoadedComponent;
|
|
16499
|
-
const Component16 = React4.forwardRef(function LazyWithPreload(props, ref) {
|
|
16500
|
-
return React4.createElement(LoadedComponent !== null && LoadedComponent !== void 0 ? LoadedComponent : LazyComponent, ref
|
|
16501
|
-
? {
|
|
16502
|
-
ref,
|
|
16503
|
-
...props,
|
|
16504
|
-
}
|
|
16505
|
-
: props);
|
|
16506
|
-
});
|
|
16507
|
-
Component16.preload = () => {
|
|
16508
|
-
if (!factoryPromise) {
|
|
16509
|
-
factoryPromise = factory().then((module) => {
|
|
16510
|
-
LoadedComponent = module.default;
|
|
16511
|
-
return LoadedComponent;
|
|
16512
|
-
});
|
|
16513
|
-
}
|
|
16514
|
-
return factoryPromise;
|
|
16515
|
-
};
|
|
16516
|
-
return Component16;
|
|
16517
|
-
}
|
|
16518
|
-
function getRouteElementId(route, hash2) {
|
|
16519
|
-
if (hash2 && route) {
|
|
16520
|
-
if (route.elements && hash2 in route.elements) {
|
|
16521
|
-
return route.elements[hash2];
|
|
16522
|
-
}
|
|
16523
|
-
else {
|
|
16524
|
-
return hash2;
|
|
16525
|
-
}
|
|
16526
|
-
}
|
|
16527
|
-
return void 0;
|
|
16528
|
-
}
|
|
16529
|
-
function isBot(userAgent) {
|
|
16530
|
-
return /bot|-google|google-|yandex|ia_archiver/iu.test(userAgent);
|
|
16531
|
-
}
|
|
16532
|
-
function yieldToMain(options) {
|
|
16533
|
-
if ('scheduler' in window) {
|
|
16534
|
-
if ('yield' in scheduler)
|
|
16535
|
-
return scheduler.yield(options);
|
|
16536
|
-
if ('postTask' in scheduler)
|
|
16537
|
-
return scheduler.postTask(() => { }, options);
|
|
16538
|
-
}
|
|
16539
|
-
if ((options === null || options === void 0 ? void 0 : options.priority) === 'user-blocking') {
|
|
16540
|
-
return Promise.resolve();
|
|
16541
|
-
}
|
|
16542
|
-
return new Promise((resolve) => {
|
|
16543
|
-
setTimeout(resolve);
|
|
16544
|
-
});
|
|
16545
|
-
}
|
|
16546
|
-
async function yieldBefore(fn, options) {
|
|
16547
|
-
await yieldToMain(options);
|
|
16548
|
-
return fn();
|
|
16549
|
-
}
|
|
16550
|
-
function interactionResponse(options) {
|
|
16551
|
-
return new Promise((resolve) => {
|
|
16552
|
-
setTimeout(resolve, 100);
|
|
16553
|
-
requestAnimationFrame(() => {
|
|
16554
|
-
void yieldBefore(resolve, options);
|
|
16555
|
-
});
|
|
16556
|
-
});
|
|
16557
|
-
}
|
|
16558
|
-
function useAfterPaintEffect(effectFn, deps, opts, useEffectFn = useLayoutEffect) {
|
|
16559
|
-
useEffectFn(() => {
|
|
16560
|
-
const runAfterPaint = async (fn) => {
|
|
16561
|
-
await interactionResponse(opts);
|
|
16562
|
-
return fn();
|
|
16563
|
-
};
|
|
16564
|
-
const runPromise = runAfterPaint(effectFn);
|
|
16565
|
-
return () => {
|
|
16566
|
-
void (async () => {
|
|
16567
|
-
const cleanup = await runPromise;
|
|
16568
|
-
if (!cleanup)
|
|
16569
|
-
return;
|
|
16570
|
-
void runAfterPaint(cleanup);
|
|
16571
|
-
})();
|
|
16572
|
-
};
|
|
16573
|
-
}, deps);
|
|
16574
|
-
}
|
|
16575
|
-
var noop2 = () => { };
|
|
16576
|
-
var EMPTY_ARRAY = [];
|
|
16577
16637
|
async function replacePathVariables(path, currentLocale, nextLocale, defaultLocale, collectionId, pathVariables, collectionUtils) {
|
|
16578
16638
|
var _a, _b, _c;
|
|
16579
16639
|
let resultPath = path;
|
|
@@ -17633,8 +17693,8 @@ var SuspenseErrorBoundary = class extends Component {
|
|
|
17633
17693
|
};
|
|
17634
17694
|
}
|
|
17635
17695
|
static getDerivedStateFromError(error) {
|
|
17636
|
-
if (!(error instanceof
|
|
17637
|
-
console.error('Derived error in SuspenseErrorBoundary', error);
|
|
17696
|
+
if (!(error instanceof NotFoundErrorBoundaryCaughtError)) {
|
|
17697
|
+
console.error('Derived error in SuspenseErrorBoundary:\n', error);
|
|
17638
17698
|
}
|
|
17639
17699
|
return {
|
|
17640
17700
|
error,
|
|
@@ -17642,26 +17702,25 @@ var SuspenseErrorBoundary = class extends Component {
|
|
|
17642
17702
|
}
|
|
17643
17703
|
componentDidCatch(error, errorInfo) {
|
|
17644
17704
|
var _a;
|
|
17645
|
-
if (error instanceof
|
|
17705
|
+
if (error instanceof NotFoundErrorBoundaryCaughtError) {
|
|
17646
17706
|
return;
|
|
17647
17707
|
}
|
|
17648
17708
|
const componentStack = errorInfo === null || errorInfo === void 0 ? void 0 : errorInfo.componentStack;
|
|
17649
|
-
console.error('Caught error in SuspenseErrorBoundary', error, componentStack);
|
|
17650
|
-
|
|
17651
|
-
|
|
17652
|
-
|
|
17653
|
-
|
|
17654
|
-
|
|
17655
|
-
|
|
17656
|
-
|
|
17657
|
-
},]);
|
|
17658
|
-
}
|
|
17709
|
+
console.error('Caught error in SuspenseErrorBoundary:\n', error, componentStack);
|
|
17710
|
+
const stack = error instanceof Error && typeof error.stack === 'string' ? error.stack : null;
|
|
17711
|
+
(_a = window.__framer_events) === null || _a === void 0 ? void 0 : _a.push(['published_site_load_recoverable_error', {
|
|
17712
|
+
message: String(error),
|
|
17713
|
+
stack,
|
|
17714
|
+
// only log componentStack if we don't have a stack
|
|
17715
|
+
componentStack: stack ? void 0 : componentStack,
|
|
17716
|
+
},]);
|
|
17659
17717
|
}
|
|
17660
17718
|
render() {
|
|
17661
|
-
|
|
17719
|
+
const error = this.state.error;
|
|
17720
|
+
if (error === void 0)
|
|
17662
17721
|
return this.props.children;
|
|
17663
|
-
if (
|
|
17664
|
-
throw
|
|
17722
|
+
if (error instanceof NotFoundErrorBoundaryCaughtError) {
|
|
17723
|
+
throw error.cause;
|
|
17665
17724
|
}
|
|
17666
17725
|
window.__framer_STPD_OPT_OUT__ = true;
|
|
17667
17726
|
return jsx(Suspense2, {
|
|
@@ -17969,39 +18028,41 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
|
|
|
17969
18028
|
? fillPathVariables(current.path, currentPathVariables)
|
|
17970
18029
|
: current.path;
|
|
17971
18030
|
const remountKey = String(currentLocaleId) + pathWithFilledVariables;
|
|
17972
|
-
return jsx(
|
|
17973
|
-
|
|
17974
|
-
|
|
17975
|
-
|
|
17976
|
-
|
|
17977
|
-
children:
|
|
17978
|
-
|
|
17979
|
-
|
|
17980
|
-
|
|
17981
|
-
|
|
17982
|
-
|
|
17983
|
-
|
|
17984
|
-
|
|
17985
|
-
|
|
17986
|
-
children:
|
|
17987
|
-
|
|
17988
|
-
|
|
17989
|
-
|
|
17990
|
-
?
|
|
17991
|
-
|
|
17992
|
-
|
|
17993
|
-
|
|
17994
|
-
|
|
17995
|
-
|
|
17996
|
-
|
|
17997
|
-
|
|
17998
|
-
|
|
18031
|
+
return jsx(GracefullyDegradingErrorBoundary, {
|
|
18032
|
+
children: jsx(RouterAPIProvider, {
|
|
18033
|
+
api,
|
|
18034
|
+
children: jsx(LocaleInfoContext.Provider, {
|
|
18035
|
+
value: localeInfo,
|
|
18036
|
+
children: jsxs(SuspenseThatPreservesDom, {
|
|
18037
|
+
children: [
|
|
18038
|
+
jsx(NotFoundErrorBoundary, {
|
|
18039
|
+
notFoundPage,
|
|
18040
|
+
defaultPageStyle,
|
|
18041
|
+
forceUpdateKey: dep,
|
|
18042
|
+
children: jsx(WithLayoutTemplate, {
|
|
18043
|
+
LayoutTemplate,
|
|
18044
|
+
routeId: currentRouteId,
|
|
18045
|
+
children: jsxs(Fragment, {
|
|
18046
|
+
children: [
|
|
18047
|
+
jsx(MarkSuspenseEffects.Start, {}),
|
|
18048
|
+
pageExistsInCurrentLocale
|
|
18049
|
+
? renderPage(current.page, LayoutTemplate
|
|
18050
|
+
? {
|
|
18051
|
+
...defaultPageStyle,
|
|
18052
|
+
display: 'content',
|
|
18053
|
+
}
|
|
18054
|
+
: defaultPageStyle)
|
|
18055
|
+
: // LAYOUT_TEMPLATE @TODO: display: content for not found page?
|
|
18056
|
+
notFoundPage && renderPage(notFoundPage, defaultPageStyle),
|
|
18057
|
+
],
|
|
18058
|
+
}, remountKey),
|
|
18059
|
+
}),
|
|
17999
18060
|
}),
|
|
18000
|
-
|
|
18001
|
-
|
|
18002
|
-
|
|
18003
|
-
|
|
18004
|
-
|
|
18061
|
+
jsx(TurnOnReactEventHandling, {}),
|
|
18062
|
+
jsx(MarkSuspenseEffects.End, {}),
|
|
18063
|
+
editorBar,
|
|
18064
|
+
],
|
|
18065
|
+
}),
|
|
18005
18066
|
}),
|
|
18006
18067
|
}),
|
|
18007
18068
|
});
|
|
@@ -20435,6 +20496,7 @@ var mockWindow = {
|
|
|
20435
20496
|
scrollY: 0,
|
|
20436
20497
|
location: {
|
|
20437
20498
|
href: '',
|
|
20499
|
+
pathname: '',
|
|
20438
20500
|
},
|
|
20439
20501
|
document: {
|
|
20440
20502
|
cookie: '',
|
|
@@ -20463,6 +20525,7 @@ var mockWindow = {
|
|
|
20463
20525
|
innerWidth: 0,
|
|
20464
20526
|
SVGSVGElement: {},
|
|
20465
20527
|
open: function (_url, _target, _features) { },
|
|
20528
|
+
__framer_events: [],
|
|
20466
20529
|
};
|
|
20467
20530
|
var safeWindow = typeof window === 'undefined' ? mockWindow : window;
|
|
20468
20531
|
var _raf = (f) => {
|
|
@@ -21414,7 +21477,7 @@ function getColorsFromTheme(theme, type) {
|
|
|
21414
21477
|
screenColor: isDarkTheme ? '#333' : '#eee',
|
|
21415
21478
|
};
|
|
21416
21479
|
}
|
|
21417
|
-
var
|
|
21480
|
+
var ErrorBoundary = class extends Component {
|
|
21418
21481
|
constructor() {
|
|
21419
21482
|
super(...arguments);
|
|
21420
21483
|
__publicField(this, 'state', {});
|
|
@@ -21560,7 +21623,7 @@ function Device({ canResize = false, children, ResizeObserver: ResizeObserver2 =
|
|
|
21560
21623
|
ref: screenRef,
|
|
21561
21624
|
children: /* @__PURE__ */ jsx(MotionConfig, {
|
|
21562
21625
|
transformPagePoint: invertScale2,
|
|
21563
|
-
children: /* @__PURE__ */ jsx(
|
|
21626
|
+
children: /* @__PURE__ */ jsx(ErrorBoundary, {
|
|
21564
21627
|
children,
|
|
21565
21628
|
}),
|
|
21566
21629
|
}),
|
|
@@ -26250,7 +26313,7 @@ function useMeasuredSize(ref) {
|
|
|
26250
26313
|
return size.current;
|
|
26251
26314
|
}
|
|
26252
26315
|
var SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE = 'data-framer-size-compatibility-wrapper';
|
|
26253
|
-
var withMeasuredSize = (
|
|
26316
|
+
var withMeasuredSize = (Component18) => (props) => {
|
|
26254
26317
|
const ref = React4.useRef(null);
|
|
26255
26318
|
const size = useMeasuredSize(ref);
|
|
26256
26319
|
const dataProps = {
|
|
@@ -26267,7 +26330,7 @@ var withMeasuredSize = (Component16) => (props) => {
|
|
|
26267
26330
|
},
|
|
26268
26331
|
ref,
|
|
26269
26332
|
...dataProps,
|
|
26270
|
-
children: shouldRender && /* @__PURE__ */ jsx(
|
|
26333
|
+
children: shouldRender && /* @__PURE__ */ jsx(Component18, {
|
|
26271
26334
|
...props,
|
|
26272
26335
|
width: (size == null ? void 0 : size.width) ?? fallbackWidth,
|
|
26273
26336
|
height: (size == null ? void 0 : size.height) ?? fallbackHeight,
|
|
@@ -27771,7 +27834,7 @@ var clamp2 = (value, a, b) => {
|
|
|
27771
27834
|
var DraggingContext = /* @__PURE__ */ React4.createContext({
|
|
27772
27835
|
dragging: false,
|
|
27773
27836
|
});
|
|
27774
|
-
function WithDragging(
|
|
27837
|
+
function WithDragging(Component18) {
|
|
27775
27838
|
const _WithDraggingHOC = class extends React4.Component {
|
|
27776
27839
|
constructor(props, defaultProps) {
|
|
27777
27840
|
super(props, defaultProps);
|
|
@@ -28340,7 +28403,7 @@ function WithDragging(Component16) {
|
|
|
28340
28403
|
value: {
|
|
28341
28404
|
dragging: this.state.isDragging,
|
|
28342
28405
|
},
|
|
28343
|
-
children: /* @__PURE__ */ jsx(
|
|
28406
|
+
children: /* @__PURE__ */ jsx(Component18, {
|
|
28344
28407
|
...originalProps,
|
|
28345
28408
|
}),
|
|
28346
28409
|
});
|
|
@@ -28378,9 +28441,9 @@ function WithDragging(Component16) {
|
|
|
28378
28441
|
constraints: {},
|
|
28379
28442
|
mouseWheel: false,
|
|
28380
28443
|
});
|
|
28381
|
-
__publicField(WithDraggingHOC, 'defaultProps', Object.assign({},
|
|
28444
|
+
__publicField(WithDraggingHOC, 'defaultProps', Object.assign({}, Component18.defaultProps, _WithDraggingHOC.draggingDefaultProps));
|
|
28382
28445
|
const withDragging = WithDraggingHOC;
|
|
28383
|
-
(0, import_hoist_non_react_statics.default)(withDragging,
|
|
28446
|
+
(0, import_hoist_non_react_statics.default)(withDragging, Component18);
|
|
28384
28447
|
return withDragging;
|
|
28385
28448
|
}
|
|
28386
28449
|
var hoverProps = {
|
|
@@ -31156,7 +31219,7 @@ function useInfiniteScroll({ ref: elementRef, loadMore, rootMargin = '0px', thre
|
|
|
31156
31219
|
};
|
|
31157
31220
|
}, [elementRef, callback, rootMargin, threshold, paginationInfo.currentPage,]);
|
|
31158
31221
|
}
|
|
31159
|
-
function withInfiniteScroll(
|
|
31222
|
+
function withInfiniteScroll(Component18) {
|
|
31160
31223
|
return React4.forwardRef(({ __paginationInfo, __loadMore, ...props }, ref) => {
|
|
31161
31224
|
const backupRef = React4.useRef(null);
|
|
31162
31225
|
const infiniteScrollRef = ref ?? backupRef;
|
|
@@ -31166,7 +31229,7 @@ function withInfiniteScroll(Component16) {
|
|
|
31166
31229
|
ref: infiniteScrollRef,
|
|
31167
31230
|
paginationInfo: __paginationInfo,
|
|
31168
31231
|
});
|
|
31169
|
-
return /* @__PURE__ */ jsx(
|
|
31232
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
31170
31233
|
...props,
|
|
31171
31234
|
ref: infiniteScrollRef,
|
|
31172
31235
|
});
|
|
@@ -33943,20 +34006,20 @@ function convertColorProps(props) {
|
|
|
33943
34006
|
}
|
|
33944
34007
|
return props;
|
|
33945
34008
|
}
|
|
33946
|
-
function WithOverride(
|
|
34009
|
+
function WithOverride(Component18, override) {
|
|
33947
34010
|
const useOverride = typeof override === 'function' ? (props) => override(convertColorProps(props)) : () => convertColorProps(override);
|
|
33948
34011
|
const ComponentWithOverride = function (props) {
|
|
33949
34012
|
useContext(DataObserverContext);
|
|
33950
34013
|
const overrideProps = useOverride(props);
|
|
33951
34014
|
const { style, ...rest } = props;
|
|
33952
|
-
return /* @__PURE__ */ jsx(
|
|
34015
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
33953
34016
|
...rest,
|
|
33954
34017
|
...overrideProps,
|
|
33955
34018
|
_initialStyle: style,
|
|
33956
34019
|
});
|
|
33957
34020
|
};
|
|
33958
|
-
(0, import_hoist_non_react_statics4.default)(ComponentWithOverride,
|
|
33959
|
-
ComponentWithOverride['displayName'] = `WithOverride(${
|
|
34021
|
+
(0, import_hoist_non_react_statics4.default)(ComponentWithOverride, Component18);
|
|
34022
|
+
ComponentWithOverride['displayName'] = `WithOverride(${Component18.displayName || Component18.name})`;
|
|
33960
34023
|
return ComponentWithOverride;
|
|
33961
34024
|
}
|
|
33962
34025
|
var prefix = '__framer__';
|
|
@@ -34760,10 +34823,10 @@ function addMotionValueStyle(style, values) {
|
|
|
34760
34823
|
function isVariantOrVariantList(value) {
|
|
34761
34824
|
return isString2(value) || Array.isArray(value);
|
|
34762
34825
|
}
|
|
34763
|
-
var withFX = (
|
|
34826
|
+
var withFX = (Component18) => React4.forwardRef((props, forwardedRef) => {
|
|
34764
34827
|
var _a;
|
|
34765
34828
|
if (props.__withFX) {
|
|
34766
|
-
return /* @__PURE__ */ jsx(
|
|
34829
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
34767
34830
|
...props,
|
|
34768
34831
|
animate: void 0,
|
|
34769
34832
|
initial: void 0,
|
|
@@ -34774,7 +34837,7 @@ var withFX = (Component16) => React4.forwardRef((props, forwardedRef) => {
|
|
|
34774
34837
|
if (RenderTarget.current() === RenderTarget.canvas) {
|
|
34775
34838
|
const animate4 = isVariantOrVariantList(props.animate) ? props.animate : void 0;
|
|
34776
34839
|
const initial2 = isVariantOrVariantList(props.initial) ? props.initial : void 0;
|
|
34777
|
-
return /* @__PURE__ */ jsx(
|
|
34840
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
34778
34841
|
...props,
|
|
34779
34842
|
animate: animate4,
|
|
34780
34843
|
initial: initial2,
|
|
@@ -34852,7 +34915,7 @@ var withFX = (Component16) => React4.forwardRef((props, forwardedRef) => {
|
|
|
34852
34915
|
exit,
|
|
34853
34916
|
}
|
|
34854
34917
|
: {};
|
|
34855
|
-
return /* @__PURE__ */ jsx(
|
|
34918
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
34856
34919
|
...forwardedProps,
|
|
34857
34920
|
...motionGestures,
|
|
34858
34921
|
__withFX: true,
|
|
@@ -34975,7 +35038,7 @@ var ComponentViewportContext = /* @__PURE__ */ React4.createContext({});
|
|
|
34975
35038
|
function useComponentViewport() {
|
|
34976
35039
|
return React4.useContext(ComponentViewportContext);
|
|
34977
35040
|
}
|
|
34978
|
-
var ComponentViewportProvider = /* @__PURE__ */ React4.forwardRef(({ width, height, y, children, ...rest }, ref)
|
|
35041
|
+
var ComponentViewportProvider = /* @__PURE__ */ React4.forwardRef(function ComponentViewportProvider2({ width, height, y, children, ...rest }, ref) {
|
|
34979
35042
|
const componentViewport = React4.useMemo(() => {
|
|
34980
35043
|
return {
|
|
34981
35044
|
width,
|
|
@@ -34989,9 +35052,9 @@ var ComponentViewportProvider = /* @__PURE__ */ React4.forwardRef(({ width, heig
|
|
|
34989
35052
|
children: cloneWithPropsAndRef(children, rest),
|
|
34990
35053
|
});
|
|
34991
35054
|
});
|
|
34992
|
-
var withGeneratedLayoutId = (
|
|
35055
|
+
var withGeneratedLayoutId = (Component18) => React4.forwardRef((props, ref) => {
|
|
34993
35056
|
const layoutId = useLayoutId2(props);
|
|
34994
|
-
return /* @__PURE__ */ jsx(
|
|
35057
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
34995
35058
|
layoutId,
|
|
34996
35059
|
...props,
|
|
34997
35060
|
layoutIdKey: void 0,
|
|
@@ -34999,7 +35062,84 @@ var withGeneratedLayoutId = (Component16) => React4.forwardRef((props, ref) => {
|
|
|
34999
35062
|
ref,
|
|
35000
35063
|
});
|
|
35001
35064
|
});
|
|
35002
|
-
|
|
35065
|
+
function collectErrorToAnalytics(error, errorInfo) {
|
|
35066
|
+
var _a;
|
|
35067
|
+
if (typeof window === 'undefined')
|
|
35068
|
+
return;
|
|
35069
|
+
if (Math.random() > 0.01)
|
|
35070
|
+
return;
|
|
35071
|
+
const stack = error instanceof Error && typeof error.stack === 'string' ? error.stack : null;
|
|
35072
|
+
const componentStack = errorInfo == null ? void 0 : errorInfo.componentStack;
|
|
35073
|
+
(_a = safeWindow.__framer_events) == null ? void 0 : _a.push(['published_site_load_recoverable_error', {
|
|
35074
|
+
message: String(error),
|
|
35075
|
+
stack,
|
|
35076
|
+
// only log componentStack if we don't have a stack
|
|
35077
|
+
componentStack: stack ? void 0 : componentStack,
|
|
35078
|
+
},]);
|
|
35079
|
+
}
|
|
35080
|
+
function logError(...args) {
|
|
35081
|
+
if (false)
|
|
35082
|
+
return;
|
|
35083
|
+
console.error(...args);
|
|
35084
|
+
}
|
|
35085
|
+
function shouldEnableCodeBoundaries() {
|
|
35086
|
+
return RenderTarget.current() !== RenderTarget.canvas;
|
|
35087
|
+
}
|
|
35088
|
+
function CodeComponentBoundary({ errorMessage, fallback, children, }) {
|
|
35089
|
+
if (!shouldEnableCodeBoundaries()) {
|
|
35090
|
+
return children;
|
|
35091
|
+
}
|
|
35092
|
+
return /* @__PURE__ */ jsx(ClientSideErrorBoundary, {
|
|
35093
|
+
fallback,
|
|
35094
|
+
errorMessage,
|
|
35095
|
+
children: /* @__PURE__ */ jsx(ServerSideErrorBoundary, {
|
|
35096
|
+
fallback,
|
|
35097
|
+
children,
|
|
35098
|
+
}),
|
|
35099
|
+
});
|
|
35100
|
+
}
|
|
35101
|
+
var ClientSideErrorBoundary = class extends Component {
|
|
35102
|
+
constructor() {
|
|
35103
|
+
super(...arguments);
|
|
35104
|
+
__publicField(this, 'state', {
|
|
35105
|
+
hasError: false,
|
|
35106
|
+
});
|
|
35107
|
+
}
|
|
35108
|
+
static getDerivedStateFromError() {
|
|
35109
|
+
return {
|
|
35110
|
+
hasError: true,
|
|
35111
|
+
};
|
|
35112
|
+
}
|
|
35113
|
+
componentDidCatch(error, errorInfo) {
|
|
35114
|
+
logError(this.props.errorMessage, errorInfo == null ? void 0 : errorInfo.componentStack);
|
|
35115
|
+
collectErrorToAnalytics(error, errorInfo);
|
|
35116
|
+
}
|
|
35117
|
+
render() {
|
|
35118
|
+
const { children, fallback = null, } = this.props;
|
|
35119
|
+
const { hasError, } = this.state;
|
|
35120
|
+
return hasError ? fallback : children;
|
|
35121
|
+
}
|
|
35122
|
+
};
|
|
35123
|
+
function ServerSideErrorBoundary({ children, fallback = null, }) {
|
|
35124
|
+
return typeof window === 'undefined'
|
|
35125
|
+
? // On the server, Suspense fallback is activated by errors. So we use the actual Suspense,
|
|
35126
|
+
// and render the actual error fallback if Suspense activates.
|
|
35127
|
+
/* @__PURE__ */
|
|
35128
|
+
jsx(Suspense2, {
|
|
35129
|
+
fallback,
|
|
35130
|
+
children,
|
|
35131
|
+
})
|
|
35132
|
+
: // On the client, Suspense fallback is activated by data fetching. So we use SuspenseThatPreservesDom,
|
|
35133
|
+
// because we don’t want to render a fallback if the boundary gets inadvertently activated.
|
|
35134
|
+
//
|
|
35135
|
+
// “Why won’t you just render plain children without Suspense?” Because that would cause a hydration mismatch
|
|
35136
|
+
// (the server has Suspense, the client doesn’t).
|
|
35137
|
+
/* @__PURE__ */
|
|
35138
|
+
jsx(SuspenseThatPreservesDom, {
|
|
35139
|
+
children,
|
|
35140
|
+
});
|
|
35141
|
+
}
|
|
35142
|
+
var DeprecatedContainerErrorBoundary = class extends Component {
|
|
35003
35143
|
constructor() {
|
|
35004
35144
|
super(...arguments);
|
|
35005
35145
|
__publicField(this, 'state', {
|
|
@@ -35009,21 +35149,12 @@ var ContainerErrorBoundary = class extends Component {
|
|
|
35009
35149
|
// We use `componentDidCatch` instead of `static getDerivedStateFromError()` because the latter could also catch hydration errors.
|
|
35010
35150
|
// Hydration errors are recoverable by React, so we don't want to hide the coponent in that case (since the tree will not unmount).
|
|
35011
35151
|
componentDidCatch(error, errorInfo) {
|
|
35012
|
-
var _a;
|
|
35013
35152
|
const componentStack = errorInfo == null ? void 0 : errorInfo.componentStack;
|
|
35014
35153
|
console.error('Error in component (see previous log). This component has been hidden. Please check any custom code or code overrides to fix.', componentStack);
|
|
35015
35154
|
this.setState({
|
|
35016
35155
|
hasError: true,
|
|
35017
35156
|
});
|
|
35018
|
-
|
|
35019
|
-
const stack = error instanceof Error && typeof error.stack === 'string' ? error.stack : null;
|
|
35020
|
-
(_a = window.__framer_events) == null ? void 0 : _a.push(['published_site_load_recoverable_error', {
|
|
35021
|
-
message: String(error),
|
|
35022
|
-
stack,
|
|
35023
|
-
// only log componentStack if we don't have a stack
|
|
35024
|
-
componentStack: stack ? void 0 : componentStack,
|
|
35025
|
-
},]);
|
|
35026
|
-
}
|
|
35157
|
+
collectErrorToAnalytics(error, errorInfo);
|
|
35027
35158
|
}
|
|
35028
35159
|
render() {
|
|
35029
35160
|
const { children, } = this.props;
|
|
@@ -35031,9 +35162,63 @@ var ContainerErrorBoundary = class extends Component {
|
|
|
35031
35162
|
return hasError ? null : children;
|
|
35032
35163
|
}
|
|
35033
35164
|
};
|
|
35034
|
-
var
|
|
35165
|
+
var CRASH_ERROR_MESSAGE_PREFIX = 'code-crash:';
|
|
35166
|
+
function formatCodeCrashLocationFromSourceNode(scopeId, nodeId) {
|
|
35167
|
+
return `${CRASH_ERROR_MESSAGE_PREFIX}${scopeId}:${nodeId}`;
|
|
35168
|
+
}
|
|
35169
|
+
function getErrorMessageForComponent(scopeId, nodeId) {
|
|
35170
|
+
return getErrorMessageFor('component', scopeId, nodeId);
|
|
35171
|
+
}
|
|
35172
|
+
function getErrorMessageForOverride(scopeId, nodeId) {
|
|
35173
|
+
return getErrorMessageFor('override', scopeId, nodeId);
|
|
35174
|
+
}
|
|
35175
|
+
function getErrorMessageFor(element, scopeId, nodeId) {
|
|
35176
|
+
return `A code ${element} crashed while rendering due to the error above. To find and fix it, open the project in the editor \u2192 open Quick Actions (press Cmd+K or Ctrl+K) \u2192 paste this: ${formatCodeCrashLocationFromSourceNode(scopeId, nodeId)} \u2192 click \u201CShow Layer\u201D.`;
|
|
35177
|
+
}
|
|
35178
|
+
var IsInExternalComponentContext = /* @__PURE__ */ (() => React4.createContext(0))();
|
|
35179
|
+
function useExternalComponentNestingLevel() {
|
|
35180
|
+
return React4.useContext(IsInExternalComponentContext);
|
|
35181
|
+
}
|
|
35182
|
+
function IsExternalComponent({ children, }) {
|
|
35183
|
+
const count = React4.useContext(IsInExternalComponentContext);
|
|
35184
|
+
return /* @__PURE__ */ jsx(IsInExternalComponentContext.Provider, {
|
|
35185
|
+
value: count + 1,
|
|
35186
|
+
children,
|
|
35187
|
+
});
|
|
35188
|
+
}
|
|
35189
|
+
function shouldWrapComponentWithBoundary(externalModuleNestingLevel, isAuthoredByUser, isExternalComponent, inComponentSlot) {
|
|
35190
|
+
const isLocalComponentInstance =
|
|
35191
|
+
// We know a component instance is local when it’s not nested inside any external component...
|
|
35192
|
+
externalModuleNestingLevel === 0 ||
|
|
35193
|
+
// ...or – “Ticker edge case” – when it’s nested inside an external component during React rendering,
|
|
35194
|
+
// but is actually defined in a slot that’s passed into the component. (This is the “Ticker edge case”:
|
|
35195
|
+
// if a site has a Ticker (or any other component with slots), and something in a Ticker’s slot crashes,
|
|
35196
|
+
// we want to disable that something, not the whole ticker.)
|
|
35197
|
+
externalModuleNestingLevel === 1 && inComponentSlot;
|
|
35198
|
+
return (isAuthoredByUser || isExternalComponent) && isLocalComponentInstance;
|
|
35199
|
+
}
|
|
35200
|
+
function shouldWrapOverrideWithBoundary(externalModuleNestingLevel, inComponentSlot) {
|
|
35201
|
+
const isWrappingFrameLocalToProject =
|
|
35202
|
+
// We know a frame is local when it’s not nested inside any external component...
|
|
35203
|
+
externalModuleNestingLevel === 0 ||
|
|
35204
|
+
// ...or – “Ticker edge case” – when it’s nested inside an external component during React rendering,
|
|
35205
|
+
// but is actually defined in a slot that’s passed into the component. (This is the “Ticker edge case”:
|
|
35206
|
+
// if a site has a Ticker (or any other component with slots), and an override in a Ticker’s slot crashes,
|
|
35207
|
+
// we want to disable that override, not the whole ticker.)
|
|
35208
|
+
externalModuleNestingLevel === 1 && inComponentSlot;
|
|
35209
|
+
return isWrappingFrameLocalToProject;
|
|
35210
|
+
}
|
|
35211
|
+
var ContainerInner = /* @__PURE__ */ React4.forwardRef(({ children, layoutId, as, scopeId, nodeId, isAuthoredByUser, isModuleExternal, inComponentSlot, ...props }, ref) => {
|
|
35035
35212
|
const outerLayoutId = useConstant2(() => layoutId ? `${layoutId}-container` : void 0);
|
|
35036
35213
|
const MotionComponent = htmlElementAsMotionComponent(as);
|
|
35214
|
+
const clonedChildren = React4.Children.map(children, (child) => {
|
|
35215
|
+
return React4.isValidElement(child)
|
|
35216
|
+
? React4.cloneElement(child, {
|
|
35217
|
+
layoutId,
|
|
35218
|
+
})
|
|
35219
|
+
: child;
|
|
35220
|
+
});
|
|
35221
|
+
const childrenWithCodeBoundary = useWrapWithCodeBoundary(clonedChildren, scopeId, nodeId, isAuthoredByUser, isModuleExternal, inComponentSlot);
|
|
35037
35222
|
return /* @__PURE__ */ jsx(MotionComponent, {
|
|
35038
35223
|
layoutId: outerLayoutId,
|
|
35039
35224
|
...props,
|
|
@@ -35045,21 +35230,62 @@ var Providers = /* @__PURE__ */ React4.forwardRef(({ children, layoutId, as, ...
|
|
|
35045
35230
|
children: /* @__PURE__ */ jsx(LayoutGroup, {
|
|
35046
35231
|
id: layoutId ?? '',
|
|
35047
35232
|
inherit: 'id',
|
|
35048
|
-
children:
|
|
35049
|
-
children: React4.Children.map(children, (child) => {
|
|
35050
|
-
return React4.isValidElement(child)
|
|
35051
|
-
? React4.cloneElement(child, {
|
|
35052
|
-
layoutId,
|
|
35053
|
-
})
|
|
35054
|
-
: child;
|
|
35055
|
-
}),
|
|
35056
|
-
}),
|
|
35233
|
+
children: childrenWithCodeBoundary,
|
|
35057
35234
|
}),
|
|
35058
35235
|
}),
|
|
35059
35236
|
}),
|
|
35060
35237
|
});
|
|
35061
35238
|
});
|
|
35062
|
-
var Container = /* @__PURE__ */ withGeneratedLayoutId(
|
|
35239
|
+
var Container = /* @__PURE__ */ withGeneratedLayoutId(ContainerInner);
|
|
35240
|
+
var SmartComponentScopedContainer = /* @__PURE__ */ React4.forwardRef((props, ref) => {
|
|
35241
|
+
const { as, layoutId, scopeId, nodeId, isAuthoredByUser, rendersWithMotion, isModuleExternal, inComponentSlot, style, children, ...renderableProps } = props;
|
|
35242
|
+
const childrenWithCodeBoundary = useWrapWithCodeBoundary(children, scopeId, nodeId, isAuthoredByUser, isModuleExternal, inComponentSlot);
|
|
35243
|
+
const tagName = props.as ?? 'div';
|
|
35244
|
+
if (props.rendersWithMotion) {
|
|
35245
|
+
const Component18 = htmlElementAsMotionComponent(tagName);
|
|
35246
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
35247
|
+
ref,
|
|
35248
|
+
style: props.style,
|
|
35249
|
+
...renderableProps,
|
|
35250
|
+
children: childrenWithCodeBoundary,
|
|
35251
|
+
});
|
|
35252
|
+
}
|
|
35253
|
+
else {
|
|
35254
|
+
const Component18 = tagName;
|
|
35255
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
35256
|
+
ref,
|
|
35257
|
+
style: props.style,
|
|
35258
|
+
...renderableProps,
|
|
35259
|
+
children: childrenWithCodeBoundary,
|
|
35260
|
+
});
|
|
35261
|
+
}
|
|
35262
|
+
});
|
|
35263
|
+
function useWrapWithCodeBoundary(children, scopeId, nodeId, isAuthoredByUser, isExternalComponent, inComponentSlot) {
|
|
35264
|
+
const externalModuleNestingLevel = useExternalComponentNestingLevel();
|
|
35265
|
+
if (
|
|
35266
|
+
// Those props will either be all undefined, which means the Container wasn’t codegenned yet,
|
|
35267
|
+
// and we should use the old ContainerErrorBoundary –
|
|
35268
|
+
// or all defined, which means we have enough information to use the new boundary.
|
|
35269
|
+
isUndefined(scopeId) || isUndefined(nodeId)) {
|
|
35270
|
+
return /* @__PURE__ */ jsx(DeprecatedContainerErrorBoundary, {
|
|
35271
|
+
children,
|
|
35272
|
+
});
|
|
35273
|
+
}
|
|
35274
|
+
const shouldWrapWithBoundary = shouldWrapComponentWithBoundary(externalModuleNestingLevel, isAuthoredByUser ?? false, isExternalComponent ?? false, inComponentSlot ?? false);
|
|
35275
|
+
if (shouldWrapWithBoundary) {
|
|
35276
|
+
children = /* @__PURE__ */ jsx(CodeComponentBoundary, {
|
|
35277
|
+
errorMessage: getErrorMessageForComponent(scopeId, nodeId),
|
|
35278
|
+
fallback: null,
|
|
35279
|
+
children,
|
|
35280
|
+
});
|
|
35281
|
+
}
|
|
35282
|
+
if (isExternalComponent) {
|
|
35283
|
+
children = /* @__PURE__ */ jsx(IsExternalComponent, {
|
|
35284
|
+
children,
|
|
35285
|
+
});
|
|
35286
|
+
}
|
|
35287
|
+
return children;
|
|
35288
|
+
}
|
|
35063
35289
|
var StyleSheetContext = /* @__PURE__ */ React4.createContext(void 0);
|
|
35064
35290
|
var framerPostSSRCSSSelector = 'style[data-framer-css-ssr-minified]';
|
|
35065
35291
|
var componentsWithServerRenderedStyles = /* @__PURE__ */ (() => {
|
|
@@ -35074,7 +35300,7 @@ var componentsWithServerRenderedStyles = /* @__PURE__ */ (() => {
|
|
|
35074
35300
|
return new Set(componentsWithSSRStylesAttr.split(' '));
|
|
35075
35301
|
})();
|
|
35076
35302
|
var framerCSSMarker = 'data-framer-css-ssr';
|
|
35077
|
-
var withCSS = (
|
|
35303
|
+
var withCSS = (Component18, escapedCSS, componentSerializationId) => React4.forwardRef((props, ref) => {
|
|
35078
35304
|
const { sheet, cache: cache2, } = React4.useContext(StyleSheetContext) ?? {};
|
|
35079
35305
|
if (!isBrowser2()) {
|
|
35080
35306
|
if (isFunction(escapedCSS))
|
|
@@ -35091,7 +35317,7 @@ var withCSS = (Component16, escapedCSS, componentSerializationId) => React4.forw
|
|
|
35091
35317
|
__html: concatenatedCSS,
|
|
35092
35318
|
},
|
|
35093
35319
|
}),
|
|
35094
|
-
/* @__PURE__ */ jsx(
|
|
35320
|
+
/* @__PURE__ */ jsx(Component18, {
|
|
35095
35321
|
...props,
|
|
35096
35322
|
ref,
|
|
35097
35323
|
}),
|
|
@@ -35108,7 +35334,7 @@ var withCSS = (Component16, escapedCSS, componentSerializationId) => React4.forw
|
|
|
35108
35334
|
: escapedCSS.split('\n');
|
|
35109
35335
|
css2.forEach((rule) => rule && injectCSSRule(rule, sheet, cache2));
|
|
35110
35336
|
}, []);
|
|
35111
|
-
return /* @__PURE__ */ jsx(
|
|
35337
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
35112
35338
|
...props,
|
|
35113
35339
|
ref,
|
|
35114
35340
|
});
|
|
@@ -36080,10 +36306,10 @@ function ChildrenCanSuspend({ children, }) {
|
|
|
36080
36306
|
children,
|
|
36081
36307
|
});
|
|
36082
36308
|
}
|
|
36083
|
-
function withChildrenCanSuspend(
|
|
36309
|
+
function withChildrenCanSuspend(Component18) {
|
|
36084
36310
|
return forwardRef(function withChildrenCanSuspendInner(props, ref) {
|
|
36085
36311
|
return /* @__PURE__ */ jsx(ChildrenCanSuspend, {
|
|
36086
|
-
children: /* @__PURE__ */ jsx(
|
|
36312
|
+
children: /* @__PURE__ */ jsx(Component18, {
|
|
36087
36313
|
...props,
|
|
36088
36314
|
ref,
|
|
36089
36315
|
}),
|
|
@@ -36634,7 +36860,7 @@ function getRouteFromPageLink(pageLink, router, currentRoute) {
|
|
|
36634
36860
|
const { webPageId, } = pageLink;
|
|
36635
36861
|
return (_a = router.getRoute) == null ? void 0 : _a.call(router, webPageId);
|
|
36636
36862
|
}
|
|
36637
|
-
var Link = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ forwardRef(({ children, href, openInNewTab, smoothScroll, nodeId, ...restProps }, forwardedRef)
|
|
36863
|
+
var Link = /* @__PURE__ */ withChildrenCanSuspend(/* @__PURE__ */ forwardRef(function Link2({ children, href, openInNewTab, smoothScroll, nodeId, ...restProps }, forwardedRef) {
|
|
36638
36864
|
const router = useRouter();
|
|
36639
36865
|
const currentRoute = useCurrentRoute();
|
|
36640
36866
|
const implicitPathVariables = useImplicitPathVariables();
|
|
@@ -37653,12 +37879,8 @@ function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariabl
|
|
|
37653
37879
|
},
|
|
37654
37880
|
preserveQueryParams,
|
|
37655
37881
|
enableAsyncURLUpdates,
|
|
37656
|
-
editorBar:
|
|
37657
|
-
|
|
37658
|
-
children: /* @__PURE__ */ jsx(EditorBar, {
|
|
37659
|
-
framerSiteId,
|
|
37660
|
-
}),
|
|
37661
|
-
}),
|
|
37882
|
+
editorBar: /* @__PURE__ */ jsx(EditorBarLauncher, {
|
|
37883
|
+
EditorBar,
|
|
37662
37884
|
}),
|
|
37663
37885
|
}),
|
|
37664
37886
|
}),
|
|
@@ -37683,6 +37905,24 @@ function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariabl
|
|
|
37683
37905
|
});
|
|
37684
37906
|
}
|
|
37685
37907
|
}
|
|
37908
|
+
function EditorBarLauncher({ EditorBar, }) {
|
|
37909
|
+
const [mounted, setMounted,] = useState(false);
|
|
37910
|
+
const framerSiteId = useContext(FormContext);
|
|
37911
|
+
useEffect(() => {
|
|
37912
|
+
startTransition2(() => {
|
|
37913
|
+
setMounted(true);
|
|
37914
|
+
});
|
|
37915
|
+
}, []);
|
|
37916
|
+
if (!EditorBar || !framerSiteId || !mounted)
|
|
37917
|
+
return null;
|
|
37918
|
+
return /* @__PURE__ */ jsx(IgnoreErrors, {
|
|
37919
|
+
children: /* @__PURE__ */ jsx(Suspense2, {
|
|
37920
|
+
children: /* @__PURE__ */ jsx(EditorBar, {
|
|
37921
|
+
framerSiteId,
|
|
37922
|
+
}),
|
|
37923
|
+
}),
|
|
37924
|
+
});
|
|
37925
|
+
}
|
|
37686
37926
|
function cloneChildrenWithProps(children, props, asNode) {
|
|
37687
37927
|
const cloned = React2.Children.map(children, (child) => {
|
|
37688
37928
|
if (React2.isValidElement(child)) {
|
|
@@ -38276,61 +38516,61 @@ var DatabaseValue = {
|
|
|
38276
38516
|
* Checks if the left value is equal to the right value. Returns false if
|
|
38277
38517
|
* the values are not of the same type.
|
|
38278
38518
|
*/
|
|
38279
|
-
equal(left, right,
|
|
38519
|
+
equal(left, right, collation11) {
|
|
38280
38520
|
if ((left == null ? void 0 : left.type) !== (right == null ? void 0 : right.type)) {
|
|
38281
38521
|
return false;
|
|
38282
38522
|
}
|
|
38283
|
-
return compare(left, right,
|
|
38523
|
+
return compare(left, right, collation11) === 0;
|
|
38284
38524
|
},
|
|
38285
38525
|
/**
|
|
38286
38526
|
* Checks if the left value is less than the right value. Returns false if
|
|
38287
38527
|
* the values are not of the same type.
|
|
38288
38528
|
*/
|
|
38289
|
-
lessThan(left, right,
|
|
38529
|
+
lessThan(left, right, collation11) {
|
|
38290
38530
|
if ((left == null ? void 0 : left.type) !== (right == null ? void 0 : right.type)) {
|
|
38291
38531
|
return false;
|
|
38292
38532
|
}
|
|
38293
|
-
return compare(left, right,
|
|
38533
|
+
return compare(left, right, collation11) < 0;
|
|
38294
38534
|
},
|
|
38295
38535
|
/**
|
|
38296
38536
|
* Checks if the left value is less than or equal to the right value.
|
|
38297
38537
|
* Returns false if the values are not of the same type.
|
|
38298
38538
|
*/
|
|
38299
|
-
lessThanOrEqual(left, right,
|
|
38539
|
+
lessThanOrEqual(left, right, collation11) {
|
|
38300
38540
|
if ((left == null ? void 0 : left.type) !== (right == null ? void 0 : right.type)) {
|
|
38301
38541
|
return false;
|
|
38302
38542
|
}
|
|
38303
|
-
return compare(left, right,
|
|
38543
|
+
return compare(left, right, collation11) <= 0;
|
|
38304
38544
|
},
|
|
38305
38545
|
/**
|
|
38306
38546
|
* Checks if the left value is greater than the right value. Returns false
|
|
38307
38547
|
* if the values are not of the same type.
|
|
38308
38548
|
*/
|
|
38309
|
-
greaterThan(left, right,
|
|
38549
|
+
greaterThan(left, right, collation11) {
|
|
38310
38550
|
if ((left == null ? void 0 : left.type) !== (right == null ? void 0 : right.type)) {
|
|
38311
38551
|
return false;
|
|
38312
38552
|
}
|
|
38313
|
-
return compare(left, right,
|
|
38553
|
+
return compare(left, right, collation11) > 0;
|
|
38314
38554
|
},
|
|
38315
38555
|
/**
|
|
38316
38556
|
* Checks if the left value is greater than or equal to the right value.
|
|
38317
38557
|
* Returns false if the values are not of the same type.
|
|
38318
38558
|
*/
|
|
38319
|
-
greaterThanOrEqual(left, right,
|
|
38559
|
+
greaterThanOrEqual(left, right, collation11) {
|
|
38320
38560
|
if ((left == null ? void 0 : left.type) !== (right == null ? void 0 : right.type)) {
|
|
38321
38561
|
return false;
|
|
38322
38562
|
}
|
|
38323
|
-
return compare(left, right,
|
|
38563
|
+
return compare(left, right, collation11) >= 0;
|
|
38324
38564
|
},
|
|
38325
38565
|
/**
|
|
38326
38566
|
* Checks if the left value is in the right value. Returns false if the
|
|
38327
38567
|
* right value is not an array.
|
|
38328
38568
|
*/
|
|
38329
|
-
in(left, right,
|
|
38569
|
+
in(left, right, collation11) {
|
|
38330
38570
|
if ((right == null ? void 0 : right.type) !== 'array')
|
|
38331
38571
|
return false;
|
|
38332
38572
|
return right.value.some((item) => {
|
|
38333
|
-
return DatabaseValue.equal(item, left,
|
|
38573
|
+
return DatabaseValue.equal(item, left, collation11);
|
|
38334
38574
|
});
|
|
38335
38575
|
},
|
|
38336
38576
|
/**
|
|
@@ -38338,47 +38578,47 @@ var DatabaseValue = {
|
|
|
38338
38578
|
*
|
|
38339
38579
|
* If source has duplicates, the index of the first occurrence is always returned.
|
|
38340
38580
|
*/
|
|
38341
|
-
indexOf(source, target,
|
|
38581
|
+
indexOf(source, target, collation11) {
|
|
38342
38582
|
if ((source == null ? void 0 : source.type) !== 'array')
|
|
38343
38583
|
return -1;
|
|
38344
38584
|
return source.value.findIndex((item) => {
|
|
38345
|
-
return DatabaseValue.equal(item, target,
|
|
38585
|
+
return DatabaseValue.equal(item, target, collation11);
|
|
38346
38586
|
});
|
|
38347
38587
|
},
|
|
38348
|
-
contains(source, target,
|
|
38588
|
+
contains(source, target, collation11) {
|
|
38349
38589
|
let sourceValue = toString(source);
|
|
38350
38590
|
let targetValue = toString(target);
|
|
38351
38591
|
if (isNull(sourceValue))
|
|
38352
38592
|
return false;
|
|
38353
38593
|
if (isNull(targetValue))
|
|
38354
38594
|
return false;
|
|
38355
|
-
if (
|
|
38595
|
+
if (collation11.type === 0) {
|
|
38356
38596
|
sourceValue = sourceValue.toLowerCase();
|
|
38357
38597
|
targetValue = targetValue.toLowerCase();
|
|
38358
38598
|
}
|
|
38359
38599
|
return sourceValue.includes(targetValue);
|
|
38360
38600
|
},
|
|
38361
|
-
startsWith(source, target,
|
|
38601
|
+
startsWith(source, target, collation11) {
|
|
38362
38602
|
let sourceValue = toString(source);
|
|
38363
38603
|
let targetValue = toString(target);
|
|
38364
38604
|
if (isNull(sourceValue))
|
|
38365
38605
|
return false;
|
|
38366
38606
|
if (isNull(targetValue))
|
|
38367
38607
|
return false;
|
|
38368
|
-
if (
|
|
38608
|
+
if (collation11.type === 0) {
|
|
38369
38609
|
sourceValue = sourceValue.toLowerCase();
|
|
38370
38610
|
targetValue = targetValue.toLowerCase();
|
|
38371
38611
|
}
|
|
38372
38612
|
return sourceValue.startsWith(targetValue);
|
|
38373
38613
|
},
|
|
38374
|
-
endsWith(source, target,
|
|
38614
|
+
endsWith(source, target, collation11) {
|
|
38375
38615
|
let sourceValue = toString(source);
|
|
38376
38616
|
let targetValue = toString(target);
|
|
38377
38617
|
if (isNull(sourceValue))
|
|
38378
38618
|
return false;
|
|
38379
38619
|
if (isNull(targetValue))
|
|
38380
38620
|
return false;
|
|
38381
|
-
if (
|
|
38621
|
+
if (collation11.type === 0) {
|
|
38382
38622
|
sourceValue = sourceValue.toLowerCase();
|
|
38383
38623
|
targetValue = targetValue.toLowerCase();
|
|
38384
38624
|
}
|
|
@@ -38424,7 +38664,7 @@ var DatabaseValue = {
|
|
|
38424
38664
|
}
|
|
38425
38665
|
},
|
|
38426
38666
|
};
|
|
38427
|
-
function compare(left, right,
|
|
38667
|
+
function compare(left, right, collation11) {
|
|
38428
38668
|
if (isNull(left) || isNull(right)) {
|
|
38429
38669
|
assert(left === right);
|
|
38430
38670
|
return 0;
|
|
@@ -38443,7 +38683,7 @@ function compare(left, right, collation10) {
|
|
|
38443
38683
|
const rightItem = right.value[i];
|
|
38444
38684
|
assert(!isUndefined(leftItem), 'Left item must exist');
|
|
38445
38685
|
assert(!isUndefined(rightItem), 'Right item must exist');
|
|
38446
|
-
const result = compare(leftItem, rightItem,
|
|
38686
|
+
const result = compare(leftItem, rightItem, collation11);
|
|
38447
38687
|
if (result !== 0)
|
|
38448
38688
|
return result;
|
|
38449
38689
|
}
|
|
@@ -38530,7 +38770,7 @@ function compare(left, right, collation10) {
|
|
|
38530
38770
|
const rightValue = right.value[rightKey];
|
|
38531
38771
|
assert(!isUndefined(leftValue), 'Left value must exist');
|
|
38532
38772
|
assert(!isUndefined(rightValue), 'Right value must exist');
|
|
38533
|
-
const result = compare(leftValue, rightValue,
|
|
38773
|
+
const result = compare(leftValue, rightValue, collation11);
|
|
38534
38774
|
if (result !== 0)
|
|
38535
38775
|
return result;
|
|
38536
38776
|
}
|
|
@@ -38560,7 +38800,7 @@ function compare(left, right, collation10) {
|
|
|
38560
38800
|
assert(left.type === right.type);
|
|
38561
38801
|
let leftValue = left.value;
|
|
38562
38802
|
let rightValue = right.value;
|
|
38563
|
-
if (
|
|
38803
|
+
if (collation11.type === 0) {
|
|
38564
38804
|
leftValue = left.value.toLowerCase();
|
|
38565
38805
|
rightValue = right.value.toLowerCase();
|
|
38566
38806
|
}
|
|
@@ -38579,6 +38819,208 @@ var unknownDefinition = {
|
|
|
38579
38819
|
type: 'unknown',
|
|
38580
38820
|
isNullable: true,
|
|
38581
38821
|
};
|
|
38822
|
+
function getNetworkLatency() {
|
|
38823
|
+
return 25;
|
|
38824
|
+
}
|
|
38825
|
+
function getNetworkSpeed() {
|
|
38826
|
+
return 100 * 125;
|
|
38827
|
+
}
|
|
38828
|
+
var KB = 1e3;
|
|
38829
|
+
var Cost = class {
|
|
38830
|
+
constructor(network) {
|
|
38831
|
+
this.network = network;
|
|
38832
|
+
}
|
|
38833
|
+
static estimate(totalRequests, transferredBytes) {
|
|
38834
|
+
const latency = getNetworkLatency();
|
|
38835
|
+
const speed = getNetworkSpeed();
|
|
38836
|
+
const network = totalRequests * latency + transferredBytes / speed;
|
|
38837
|
+
return new Cost(network);
|
|
38838
|
+
}
|
|
38839
|
+
static max(left, right) {
|
|
38840
|
+
const network = Math.max(left.network, right.network);
|
|
38841
|
+
return new Cost(network);
|
|
38842
|
+
}
|
|
38843
|
+
static compare(left, right) {
|
|
38844
|
+
if (left.network < right.network)
|
|
38845
|
+
return -1;
|
|
38846
|
+
if (left.network > right.network)
|
|
38847
|
+
return 1;
|
|
38848
|
+
return 0;
|
|
38849
|
+
}
|
|
38850
|
+
add(cost) {
|
|
38851
|
+
this.network += cost.network;
|
|
38852
|
+
return this;
|
|
38853
|
+
}
|
|
38854
|
+
toString() {
|
|
38855
|
+
return `${this.network}ms`;
|
|
38856
|
+
}
|
|
38857
|
+
};
|
|
38858
|
+
function GroupId(id3) {
|
|
38859
|
+
return id3;
|
|
38860
|
+
}
|
|
38861
|
+
var Group = class {
|
|
38862
|
+
constructor(id3, relational) {
|
|
38863
|
+
this.id = id3;
|
|
38864
|
+
this.relational = relational;
|
|
38865
|
+
__publicField(this, 'nodes', []);
|
|
38866
|
+
__publicField(this, 'winners', /* @__PURE__ */ new Map());
|
|
38867
|
+
}
|
|
38868
|
+
/**
|
|
38869
|
+
* Adds a node to the group. Throws an error if the node is already in a
|
|
38870
|
+
* group.
|
|
38871
|
+
*/
|
|
38872
|
+
addNode(node) {
|
|
38873
|
+
this.nodes.push(node);
|
|
38874
|
+
node.setGroup(this);
|
|
38875
|
+
}
|
|
38876
|
+
/**
|
|
38877
|
+
* Returns the winner for the given required physical props. The winner
|
|
38878
|
+
* stores the best node and its cost. This is used to find the best node in
|
|
38879
|
+
* the group.
|
|
38880
|
+
*/
|
|
38881
|
+
getWinner(required) {
|
|
38882
|
+
const hash2 = required.getHash();
|
|
38883
|
+
const existing = this.winners.get(hash2);
|
|
38884
|
+
if (existing)
|
|
38885
|
+
return existing;
|
|
38886
|
+
const winner = new Winner();
|
|
38887
|
+
this.winners.set(hash2, winner);
|
|
38888
|
+
return winner;
|
|
38889
|
+
}
|
|
38890
|
+
/**
|
|
38891
|
+
* Returns the optimized version of the node. The optimized version is the
|
|
38892
|
+
* node with the lowest cost with all children replaced with their optimized
|
|
38893
|
+
* versions. This is used to create the final optimized query plan.
|
|
38894
|
+
*/
|
|
38895
|
+
getOptimized(required) {
|
|
38896
|
+
const winner = this.getWinner(required);
|
|
38897
|
+
assert(winner.node, 'Group not optimized');
|
|
38898
|
+
const optimizer = winner.node.getOptimized(required);
|
|
38899
|
+
optimizer.setGroup(this);
|
|
38900
|
+
return optimizer;
|
|
38901
|
+
}
|
|
38902
|
+
};
|
|
38903
|
+
var Winner = class {
|
|
38904
|
+
constructor() {
|
|
38905
|
+
__publicField(this, 'node');
|
|
38906
|
+
__publicField(this, 'cost', new Cost(Infinity));
|
|
38907
|
+
__publicField(this, 'nodes', []);
|
|
38908
|
+
}
|
|
38909
|
+
update(node, cost) {
|
|
38910
|
+
this.nodes.push(node);
|
|
38911
|
+
if (Cost.compare(cost, this.cost) < 0) {
|
|
38912
|
+
this.node = node;
|
|
38913
|
+
this.cost = cost;
|
|
38914
|
+
}
|
|
38915
|
+
}
|
|
38916
|
+
};
|
|
38917
|
+
function evaluateSync(generator) {
|
|
38918
|
+
const state2 = generator.next();
|
|
38919
|
+
assert(state2.done, 'Generator must not yield');
|
|
38920
|
+
return state2.value;
|
|
38921
|
+
}
|
|
38922
|
+
async function evaluateAsync(generator, state2 = generator.next()) {
|
|
38923
|
+
while (!state2.done) {
|
|
38924
|
+
const value = await state2.value;
|
|
38925
|
+
state2 = generator.next(value);
|
|
38926
|
+
}
|
|
38927
|
+
return state2.value;
|
|
38928
|
+
}
|
|
38929
|
+
function* evaluateObject(values) {
|
|
38930
|
+
const result = {};
|
|
38931
|
+
const keys3 = Object.keys(values);
|
|
38932
|
+
const promises = [];
|
|
38933
|
+
for (const key7 of keys3) {
|
|
38934
|
+
const generator = values[key7];
|
|
38935
|
+
if (isGenerator2(generator)) {
|
|
38936
|
+
const state2 = generator.next();
|
|
38937
|
+
if (state2.done) {
|
|
38938
|
+
result[key7] = state2.value;
|
|
38939
|
+
}
|
|
38940
|
+
else {
|
|
38941
|
+
promises.push(evaluateAsync(generator, state2).then((value) => {
|
|
38942
|
+
result[key7] = value;
|
|
38943
|
+
}));
|
|
38944
|
+
}
|
|
38945
|
+
}
|
|
38946
|
+
else {
|
|
38947
|
+
result[key7] = generator;
|
|
38948
|
+
}
|
|
38949
|
+
}
|
|
38950
|
+
if (promises.length > 0) {
|
|
38951
|
+
yield Promise.all(promises);
|
|
38952
|
+
}
|
|
38953
|
+
return result;
|
|
38954
|
+
}
|
|
38955
|
+
function* evaluateArray(values) {
|
|
38956
|
+
const result = [];
|
|
38957
|
+
const keys3 = values.keys();
|
|
38958
|
+
const promises = [];
|
|
38959
|
+
for (const key7 of keys3) {
|
|
38960
|
+
const generator = values[key7];
|
|
38961
|
+
if (isGenerator2(generator)) {
|
|
38962
|
+
const state2 = generator.next();
|
|
38963
|
+
if (state2.done) {
|
|
38964
|
+
result[key7] = state2.value;
|
|
38965
|
+
}
|
|
38966
|
+
else {
|
|
38967
|
+
promises.push(evaluateAsync(generator, state2).then((value) => {
|
|
38968
|
+
result[key7] = value;
|
|
38969
|
+
}));
|
|
38970
|
+
}
|
|
38971
|
+
}
|
|
38972
|
+
else {
|
|
38973
|
+
result[key7] = generator;
|
|
38974
|
+
}
|
|
38975
|
+
}
|
|
38976
|
+
if (promises.length > 0) {
|
|
38977
|
+
yield Promise.all(promises);
|
|
38978
|
+
}
|
|
38979
|
+
return result;
|
|
38980
|
+
}
|
|
38981
|
+
var AbstractNode = class {
|
|
38982
|
+
constructor(isSynchronous) {
|
|
38983
|
+
this.isSynchronous = isSynchronous;
|
|
38984
|
+
}
|
|
38985
|
+
};
|
|
38986
|
+
var RelationalNode = class extends AbstractNode {
|
|
38987
|
+
constructor() {
|
|
38988
|
+
super(...arguments);
|
|
38989
|
+
__publicField(this, 'group');
|
|
38990
|
+
}
|
|
38991
|
+
/**
|
|
38992
|
+
* Returns the group that the node belongs to. Throws an error if the node
|
|
38993
|
+
* is not in a group. This should only happen in the constructor because
|
|
38994
|
+
* every node is added to a group right after creation.
|
|
38995
|
+
*/
|
|
38996
|
+
getGroup() {
|
|
38997
|
+
assert(this.group, 'Node must be in a group');
|
|
38998
|
+
return this.group;
|
|
38999
|
+
}
|
|
39000
|
+
/**
|
|
39001
|
+
* Adds the node to the given group. Throws an error if the node is already
|
|
39002
|
+
* in a group.
|
|
39003
|
+
*/
|
|
39004
|
+
setGroup(group) {
|
|
39005
|
+
assert(!this.group, 'Node is already in a group');
|
|
39006
|
+
this.group = group;
|
|
39007
|
+
}
|
|
39008
|
+
/**
|
|
39009
|
+
* Evaluates the node and all children synchronously. Throws an error if the
|
|
39010
|
+
* node is not synchronous.
|
|
39011
|
+
*/
|
|
39012
|
+
evaluateSync() {
|
|
39013
|
+
const generator = this.evaluate(void 0);
|
|
39014
|
+
return evaluateSync(generator);
|
|
39015
|
+
}
|
|
39016
|
+
/**
|
|
39017
|
+
* Evaluates the node and all children asynchronously.
|
|
39018
|
+
*/
|
|
39019
|
+
evaluateAsync() {
|
|
39020
|
+
const generator = this.evaluate(void 0);
|
|
39021
|
+
return evaluateAsync(generator);
|
|
39022
|
+
}
|
|
39023
|
+
};
|
|
38582
39024
|
function Hash(value) {
|
|
38583
39025
|
return value;
|
|
38584
39026
|
}
|
|
@@ -38587,6 +39029,16 @@ function isHashable(value) {
|
|
|
38587
39029
|
}
|
|
38588
39030
|
function calculateHash(name, ...values) {
|
|
38589
39031
|
const hashes = values.map((value) => {
|
|
39032
|
+
const isCollectionMetadata = value instanceof CollectionMetadata;
|
|
39033
|
+
assert(!isCollectionMetadata, 'Pass CollectionMetadata.id instead');
|
|
39034
|
+
const isFieldMetadata = value instanceof FieldMetadata;
|
|
39035
|
+
assert(!isFieldMetadata, 'Pass FieldMetadata.id instead');
|
|
39036
|
+
const isIndexMetadata = value instanceof IndexMetadata;
|
|
39037
|
+
assert(!isIndexMetadata, 'Pass IndexMetadata.id instead');
|
|
39038
|
+
const isRelationalNode = value instanceof RelationalNode;
|
|
39039
|
+
assert(!isRelationalNode, 'Pass RelationalNode.group.id instead');
|
|
39040
|
+
const isGroup = value instanceof Group;
|
|
39041
|
+
assert(!isGroup, 'Pass Group.id instead');
|
|
38590
39042
|
if (isHashable(value)) {
|
|
38591
39043
|
return value.getHash();
|
|
38592
39044
|
}
|
|
@@ -38711,106 +39163,6 @@ var Fields = class extends Metadata {
|
|
|
38711
39163
|
__publicField(this, 'name', 'Fields');
|
|
38712
39164
|
}
|
|
38713
39165
|
};
|
|
38714
|
-
function getNetworkLatency() {
|
|
38715
|
-
return 25;
|
|
38716
|
-
}
|
|
38717
|
-
function getNetworkSpeed() {
|
|
38718
|
-
return 100 * 125;
|
|
38719
|
-
}
|
|
38720
|
-
var KB = 1e3;
|
|
38721
|
-
var Cost = class {
|
|
38722
|
-
constructor(network) {
|
|
38723
|
-
this.network = network;
|
|
38724
|
-
}
|
|
38725
|
-
static estimate(totalRequests, transferredBytes) {
|
|
38726
|
-
const latency = getNetworkLatency();
|
|
38727
|
-
const speed = getNetworkSpeed();
|
|
38728
|
-
const network = totalRequests * latency + transferredBytes / speed;
|
|
38729
|
-
return new Cost(network);
|
|
38730
|
-
}
|
|
38731
|
-
static max(left, right) {
|
|
38732
|
-
const network = Math.max(left.network, right.network);
|
|
38733
|
-
return new Cost(network);
|
|
38734
|
-
}
|
|
38735
|
-
static compare(left, right) {
|
|
38736
|
-
if (left.network < right.network)
|
|
38737
|
-
return -1;
|
|
38738
|
-
if (left.network > right.network)
|
|
38739
|
-
return 1;
|
|
38740
|
-
return 0;
|
|
38741
|
-
}
|
|
38742
|
-
add(cost) {
|
|
38743
|
-
this.network += cost.network;
|
|
38744
|
-
return this;
|
|
38745
|
-
}
|
|
38746
|
-
toString() {
|
|
38747
|
-
return `${this.network}ms`;
|
|
38748
|
-
}
|
|
38749
|
-
};
|
|
38750
|
-
function evaluateSync(generator) {
|
|
38751
|
-
const state2 = generator.next();
|
|
38752
|
-
assert(state2.done, 'Generator must not yield');
|
|
38753
|
-
return state2.value;
|
|
38754
|
-
}
|
|
38755
|
-
async function evaluateAsync(generator, state2 = generator.next()) {
|
|
38756
|
-
while (!state2.done) {
|
|
38757
|
-
const value = await state2.value;
|
|
38758
|
-
state2 = generator.next(value);
|
|
38759
|
-
}
|
|
38760
|
-
return state2.value;
|
|
38761
|
-
}
|
|
38762
|
-
function* evaluateObject(values) {
|
|
38763
|
-
const result = {};
|
|
38764
|
-
const keys3 = Object.keys(values);
|
|
38765
|
-
const promises = [];
|
|
38766
|
-
for (const key7 of keys3) {
|
|
38767
|
-
const generator = values[key7];
|
|
38768
|
-
if (isGenerator2(generator)) {
|
|
38769
|
-
const state2 = generator.next();
|
|
38770
|
-
if (state2.done) {
|
|
38771
|
-
result[key7] = state2.value;
|
|
38772
|
-
}
|
|
38773
|
-
else {
|
|
38774
|
-
promises.push(evaluateAsync(generator, state2).then((value) => {
|
|
38775
|
-
result[key7] = value;
|
|
38776
|
-
}));
|
|
38777
|
-
}
|
|
38778
|
-
}
|
|
38779
|
-
else {
|
|
38780
|
-
result[key7] = generator;
|
|
38781
|
-
}
|
|
38782
|
-
}
|
|
38783
|
-
if (promises.length > 0) {
|
|
38784
|
-
yield Promise.all(promises);
|
|
38785
|
-
}
|
|
38786
|
-
return result;
|
|
38787
|
-
}
|
|
38788
|
-
function* evaluateArray(values) {
|
|
38789
|
-
const result = [];
|
|
38790
|
-
const keys3 = values.keys();
|
|
38791
|
-
const promises = [];
|
|
38792
|
-
for (const key7 of keys3) {
|
|
38793
|
-
const generator = values[key7];
|
|
38794
|
-
if (isGenerator2(generator)) {
|
|
38795
|
-
const state2 = generator.next();
|
|
38796
|
-
if (state2.done) {
|
|
38797
|
-
result[key7] = state2.value;
|
|
38798
|
-
}
|
|
38799
|
-
else {
|
|
38800
|
-
promises.push(evaluateAsync(generator, state2).then((value) => {
|
|
38801
|
-
result[key7] = value;
|
|
38802
|
-
}));
|
|
38803
|
-
}
|
|
38804
|
-
}
|
|
38805
|
-
else {
|
|
38806
|
-
result[key7] = generator;
|
|
38807
|
-
}
|
|
38808
|
-
}
|
|
38809
|
-
if (promises.length > 0) {
|
|
38810
|
-
yield Promise.all(promises);
|
|
38811
|
-
}
|
|
38812
|
-
return result;
|
|
38813
|
-
}
|
|
38814
39166
|
var RequiredProps = class {
|
|
38815
39167
|
constructor(ordering, resolvedFields) {
|
|
38816
39168
|
this.ordering = ordering;
|
|
@@ -38863,8 +39215,11 @@ var Tuple = class {
|
|
|
38863
39215
|
__publicField(this, 'values', /* @__PURE__ */ new Map());
|
|
38864
39216
|
}
|
|
38865
39217
|
getKey() {
|
|
38866
|
-
const
|
|
38867
|
-
|
|
39218
|
+
const result = [];
|
|
39219
|
+
for (const [collection, pointer,] of this.pointers) {
|
|
39220
|
+
result.push(`${collection.id}-${pointer}`);
|
|
39221
|
+
}
|
|
39222
|
+
return result.sort().join('-');
|
|
38868
39223
|
}
|
|
38869
39224
|
addValue(field, value) {
|
|
38870
39225
|
this.values.set(field, value);
|
|
@@ -38961,49 +39316,6 @@ var Relation = class {
|
|
|
38961
39316
|
return result;
|
|
38962
39317
|
}
|
|
38963
39318
|
};
|
|
38964
|
-
var AbstractNode = class {
|
|
38965
|
-
constructor(isSynchronous) {
|
|
38966
|
-
this.isSynchronous = isSynchronous;
|
|
38967
|
-
}
|
|
38968
|
-
};
|
|
38969
|
-
var RelationalNode = class extends AbstractNode {
|
|
38970
|
-
constructor() {
|
|
38971
|
-
super(...arguments);
|
|
38972
|
-
__publicField(this, 'group');
|
|
38973
|
-
}
|
|
38974
|
-
/**
|
|
38975
|
-
* Returns the group that the node belongs to. Throws an error if the node
|
|
38976
|
-
* is not in a group. This should only happen in the constructor because
|
|
38977
|
-
* every node is added to a group right after creation.
|
|
38978
|
-
*/
|
|
38979
|
-
getGroup() {
|
|
38980
|
-
assert(this.group, 'Node must be in a group');
|
|
38981
|
-
return this.group;
|
|
38982
|
-
}
|
|
38983
|
-
/**
|
|
38984
|
-
* Adds the node to the given group. Throws an error if the node is already
|
|
38985
|
-
* in a group.
|
|
38986
|
-
*/
|
|
38987
|
-
setGroup(group) {
|
|
38988
|
-
assert(!this.group, 'Node is already in a group');
|
|
38989
|
-
this.group = group;
|
|
38990
|
-
}
|
|
38991
|
-
/**
|
|
38992
|
-
* Evaluates the node and all children synchronously. Throws an error if the
|
|
38993
|
-
* node is not synchronous.
|
|
38994
|
-
*/
|
|
38995
|
-
evaluateSync() {
|
|
38996
|
-
const generator = this.evaluate(void 0);
|
|
38997
|
-
return evaluateSync(generator);
|
|
38998
|
-
}
|
|
38999
|
-
/**
|
|
39000
|
-
* Evaluates the node and all children asynchronously.
|
|
39001
|
-
*/
|
|
39002
|
-
evaluateAsync() {
|
|
39003
|
-
const generator = this.evaluate(void 0);
|
|
39004
|
-
return evaluateAsync(generator);
|
|
39005
|
-
}
|
|
39006
|
-
};
|
|
39007
39319
|
var ProjectionField = class {
|
|
39008
39320
|
constructor(input, field) {
|
|
39009
39321
|
this.input = input;
|
|
@@ -39036,7 +39348,16 @@ var RelationalProject = class extends RelationalNode {
|
|
|
39036
39348
|
}
|
|
39037
39349
|
return fields;
|
|
39038
39350
|
}
|
|
39039
|
-
canProvideOrdering() {
|
|
39351
|
+
canProvideOrdering(ordering) {
|
|
39352
|
+
const projectionFields = new Fields();
|
|
39353
|
+
for (const projection of this.projections) {
|
|
39354
|
+
projectionFields.add(projection.field);
|
|
39355
|
+
}
|
|
39356
|
+
for (const { field, } of ordering.fields) {
|
|
39357
|
+
if (projectionFields.has(field)) {
|
|
39358
|
+
return false;
|
|
39359
|
+
}
|
|
39360
|
+
}
|
|
39040
39361
|
return true;
|
|
39041
39362
|
}
|
|
39042
39363
|
canProvideResolvedFields() {
|
|
@@ -40089,21 +40410,19 @@ var RelationalLeftJoin = class extends RelationalNode {
|
|
|
40089
40410
|
return new RelationalLeftJoin(left, right, constraint);
|
|
40090
40411
|
}
|
|
40091
40412
|
/** Optimized path for equality constraints that runs in O(n + m) time. */
|
|
40092
|
-
*evaluateScalarEquals(
|
|
40093
|
-
const { left, right, } = yield* evaluateObject({
|
|
40094
|
-
left: this.left.evaluate(context),
|
|
40095
|
-
right: this.right.evaluate(context),
|
|
40096
|
-
});
|
|
40413
|
+
*evaluateScalarEquals(left, right, leftConstraint, rightConstraint, context) {
|
|
40097
40414
|
const joinKeyMap = /* @__PURE__ */ new Map();
|
|
40098
40415
|
for (const rightTuple of right.tuples) {
|
|
40099
|
-
const rightValue = yield*
|
|
40416
|
+
const rightValue = yield* rightConstraint.evaluate(context, rightTuple);
|
|
40100
40417
|
const key7 = JSON.stringify((rightValue == null ? void 0 : rightValue.value) ?? null);
|
|
40101
40418
|
const tuplesForKey = joinKeyMap.get(key7) ?? [];
|
|
40102
40419
|
tuplesForKey.push(rightTuple);
|
|
40103
40420
|
joinKeyMap.set(key7, tuplesForKey);
|
|
40104
40421
|
}
|
|
40422
|
+
const outputFields = this.getOutputFields();
|
|
40423
|
+
const result = new Relation(outputFields);
|
|
40105
40424
|
for (const leftTuple of left.tuples) {
|
|
40106
|
-
const leftValue = yield*
|
|
40425
|
+
const leftValue = yield* leftConstraint.evaluate(context, leftTuple);
|
|
40107
40426
|
const key7 = JSON.stringify((leftValue == null ? void 0 : leftValue.value) ?? null);
|
|
40108
40427
|
const matches = joinKeyMap.get(key7) ?? [];
|
|
40109
40428
|
if (matches.length === 0) {
|
|
@@ -40121,16 +40440,22 @@ var RelationalLeftJoin = class extends RelationalNode {
|
|
|
40121
40440
|
return result;
|
|
40122
40441
|
}
|
|
40123
40442
|
*evaluate(context) {
|
|
40124
|
-
const outputFields = this.getOutputFields();
|
|
40125
|
-
const result = new Relation(outputFields);
|
|
40126
|
-
if (this.constraint instanceof ScalarEquals) {
|
|
40127
|
-
yield* this.evaluateScalarEquals(result.tuples, this.constraint, context);
|
|
40128
|
-
return result;
|
|
40129
|
-
}
|
|
40130
40443
|
const { left, right, } = yield* evaluateObject({
|
|
40131
40444
|
left: this.left.evaluate(context),
|
|
40132
40445
|
right: this.right.evaluate(context),
|
|
40133
40446
|
});
|
|
40447
|
+
if (this.constraint instanceof ScalarEquals) {
|
|
40448
|
+
if (this.constraint.left.referencedFields.subsetOf(this.leftGroup.relational.outputFields) &&
|
|
40449
|
+
this.constraint.right.referencedFields.subsetOf(this.rightGroup.relational.outputFields)) {
|
|
40450
|
+
return yield* this.evaluateScalarEquals(left, right, this.constraint.left, this.constraint.right, context);
|
|
40451
|
+
}
|
|
40452
|
+
if (this.constraint.right.referencedFields.subsetOf(this.leftGroup.relational.outputFields) &&
|
|
40453
|
+
this.constraint.left.referencedFields.subsetOf(this.rightGroup.relational.outputFields)) {
|
|
40454
|
+
return yield* this.evaluateScalarEquals(left, right, this.constraint.right, this.constraint.left, context);
|
|
40455
|
+
}
|
|
40456
|
+
}
|
|
40457
|
+
const outputFields = this.getOutputFields();
|
|
40458
|
+
const result = new Relation(outputFields);
|
|
40134
40459
|
for (const leftTuple of left.tuples) {
|
|
40135
40460
|
let hasMatch = false;
|
|
40136
40461
|
for (const rightTuple of right.tuples) {
|
|
@@ -40207,21 +40532,19 @@ var RelationalRightJoin = class extends RelationalNode {
|
|
|
40207
40532
|
return new RelationalRightJoin(left, right, constraint);
|
|
40208
40533
|
}
|
|
40209
40534
|
/** Optimized path for equality constraints that runs in O(n + m) time. */
|
|
40210
|
-
*evaluateScalarEquals(
|
|
40211
|
-
const { left, right, } = yield* evaluateObject({
|
|
40212
|
-
left: this.left.evaluate(context),
|
|
40213
|
-
right: this.right.evaluate(context),
|
|
40214
|
-
});
|
|
40535
|
+
*evaluateScalarEquals(left, right, leftConstraint, rightConstraint, context) {
|
|
40215
40536
|
const joinKeyMap = /* @__PURE__ */ new Map();
|
|
40216
40537
|
for (const leftTuple of left.tuples) {
|
|
40217
|
-
const leftValue = yield*
|
|
40538
|
+
const leftValue = yield* leftConstraint.evaluate(context, leftTuple);
|
|
40218
40539
|
const key7 = JSON.stringify((leftValue == null ? void 0 : leftValue.value) ?? null);
|
|
40219
40540
|
const tuplesForKey = joinKeyMap.get(key7) ?? [];
|
|
40220
40541
|
tuplesForKey.push(leftTuple);
|
|
40221
40542
|
joinKeyMap.set(key7, tuplesForKey);
|
|
40222
40543
|
}
|
|
40544
|
+
const outputFields = this.getOutputFields();
|
|
40545
|
+
const result = new Relation(outputFields);
|
|
40223
40546
|
for (const rightTuple of right.tuples) {
|
|
40224
|
-
const rightValue = yield*
|
|
40547
|
+
const rightValue = yield* rightConstraint.evaluate(context, rightTuple);
|
|
40225
40548
|
const key7 = JSON.stringify((rightValue == null ? void 0 : rightValue.value) ?? null);
|
|
40226
40549
|
const matches = joinKeyMap.get(key7) ?? [];
|
|
40227
40550
|
if (matches.length === 0) {
|
|
@@ -40239,16 +40562,22 @@ var RelationalRightJoin = class extends RelationalNode {
|
|
|
40239
40562
|
return result;
|
|
40240
40563
|
}
|
|
40241
40564
|
*evaluate(context) {
|
|
40242
|
-
const outputFields = this.getOutputFields();
|
|
40243
|
-
const result = new Relation(outputFields);
|
|
40244
|
-
if (this.constraint instanceof ScalarEquals) {
|
|
40245
|
-
yield* this.evaluateScalarEquals(result.tuples, this.constraint, context);
|
|
40246
|
-
return result;
|
|
40247
|
-
}
|
|
40248
40565
|
const { left, right, } = yield* evaluateObject({
|
|
40249
40566
|
left: this.left.evaluate(context),
|
|
40250
40567
|
right: this.right.evaluate(context),
|
|
40251
40568
|
});
|
|
40569
|
+
if (this.constraint instanceof ScalarEquals) {
|
|
40570
|
+
if (this.constraint.left.referencedFields.subsetOf(this.leftGroup.relational.outputFields) &&
|
|
40571
|
+
this.constraint.right.referencedFields.subsetOf(this.rightGroup.relational.outputFields)) {
|
|
40572
|
+
return yield* this.evaluateScalarEquals(left, right, this.constraint.left, this.constraint.right, context);
|
|
40573
|
+
}
|
|
40574
|
+
if (this.constraint.right.referencedFields.subsetOf(this.leftGroup.relational.outputFields) &&
|
|
40575
|
+
this.constraint.left.referencedFields.subsetOf(this.rightGroup.relational.outputFields)) {
|
|
40576
|
+
return yield* this.evaluateScalarEquals(left, right, this.constraint.right, this.constraint.left, context);
|
|
40577
|
+
}
|
|
40578
|
+
}
|
|
40579
|
+
const outputFields = this.getOutputFields();
|
|
40580
|
+
const result = new Relation(outputFields);
|
|
40252
40581
|
for (const rightTuple of right.tuples) {
|
|
40253
40582
|
let hasMatch = false;
|
|
40254
40583
|
for (const leftTuple of left.tuples) {
|
|
@@ -40846,7 +41175,7 @@ var Explorer = class {
|
|
|
40846
41175
|
explore(before) {
|
|
40847
41176
|
const group = before.getGroup();
|
|
40848
41177
|
if (before instanceof RelationalLeftJoin) {
|
|
40849
|
-
const after = new RelationalRightJoin(before.
|
|
41178
|
+
const after = new RelationalRightJoin(before.right, before.left, before.constraint);
|
|
40850
41179
|
this.memo.addRelational(after, group);
|
|
40851
41180
|
}
|
|
40852
41181
|
if (before instanceof RelationalFilter) {
|
|
@@ -40983,63 +41312,6 @@ function createIndexQueryAll(length) {
|
|
|
40983
41312
|
};
|
|
40984
41313
|
return new Array(length).fill(lookup);
|
|
40985
41314
|
}
|
|
40986
|
-
function GroupId(id3) {
|
|
40987
|
-
return id3;
|
|
40988
|
-
}
|
|
40989
|
-
var Group = class {
|
|
40990
|
-
constructor(id3, relational) {
|
|
40991
|
-
this.id = id3;
|
|
40992
|
-
this.relational = relational;
|
|
40993
|
-
__publicField(this, 'nodes', []);
|
|
40994
|
-
__publicField(this, 'winners', /* @__PURE__ */ new Map());
|
|
40995
|
-
}
|
|
40996
|
-
/**
|
|
40997
|
-
* Adds a node to the group. Throws an error if the node is already in a
|
|
40998
|
-
* group.
|
|
40999
|
-
*/
|
|
41000
|
-
addNode(node) {
|
|
41001
|
-
this.nodes.push(node);
|
|
41002
|
-
node.setGroup(this);
|
|
41003
|
-
}
|
|
41004
|
-
/**
|
|
41005
|
-
* Returns the winner for the given required physical props. The winner
|
|
41006
|
-
* stores the best node and its cost. This is used to find the best node in
|
|
41007
|
-
* the group.
|
|
41008
|
-
*/
|
|
41009
|
-
getWinner(required) {
|
|
41010
|
-
const hash2 = required.getHash();
|
|
41011
|
-
const existing = this.winners.get(hash2);
|
|
41012
|
-
if (existing)
|
|
41013
|
-
return existing;
|
|
41014
|
-
const winner = new Winner();
|
|
41015
|
-
this.winners.set(hash2, winner);
|
|
41016
|
-
return winner;
|
|
41017
|
-
}
|
|
41018
|
-
/**
|
|
41019
|
-
* Returns the optimized version of the node. The optimized version is the
|
|
41020
|
-
* node with the lowest cost with all children replaced with their optimized
|
|
41021
|
-
* versions. This is used to create the final optimized query plan.
|
|
41022
|
-
*/
|
|
41023
|
-
getOptimized(required) {
|
|
41024
|
-
const winner = this.getWinner(required);
|
|
41025
|
-
assert(winner.node, 'Group not optimized');
|
|
41026
|
-
const optimizer = winner.node.getOptimized(required);
|
|
41027
|
-
optimizer.setGroup(this);
|
|
41028
|
-
return optimizer;
|
|
41029
|
-
}
|
|
41030
|
-
};
|
|
41031
|
-
var Winner = class {
|
|
41032
|
-
constructor() {
|
|
41033
|
-
__publicField(this, 'node');
|
|
41034
|
-
__publicField(this, 'cost', new Cost(Infinity));
|
|
41035
|
-
}
|
|
41036
|
-
update(node, cost) {
|
|
41037
|
-
if (Cost.compare(cost, this.cost) < 0) {
|
|
41038
|
-
this.node = node;
|
|
41039
|
-
this.cost = cost;
|
|
41040
|
-
}
|
|
41041
|
-
}
|
|
41042
|
-
};
|
|
41043
41315
|
var RelationalProps = class {
|
|
41044
41316
|
constructor(outputFields) {
|
|
41045
41317
|
this.outputFields = outputFields;
|
|
@@ -41206,9 +41478,11 @@ var EnforcerSort = class extends EnforcerNode {
|
|
|
41206
41478
|
getInputRequiredProps(required) {
|
|
41207
41479
|
const resolvedFields = new Fields(required.resolvedFields);
|
|
41208
41480
|
for (const { field, } of this.ordering.fields) {
|
|
41209
|
-
if (field.name
|
|
41210
|
-
|
|
41211
|
-
|
|
41481
|
+
if (field.name === VIRTUAL_INDEX_FIELD)
|
|
41482
|
+
continue;
|
|
41483
|
+
if (isUndefined(field.collection))
|
|
41484
|
+
continue;
|
|
41485
|
+
resolvedFields.add(field);
|
|
41212
41486
|
}
|
|
41213
41487
|
const ordering = new Ordering();
|
|
41214
41488
|
return new RequiredProps(ordering, resolvedFields);
|
|
@@ -41399,6 +41673,8 @@ var ScalarArray = class extends ScalarNode {
|
|
|
41399
41673
|
const resolvedFields = new Fields();
|
|
41400
41674
|
const fields = Object.values(this.namedFields);
|
|
41401
41675
|
for (const field of fields) {
|
|
41676
|
+
if (isUndefined(field.collection))
|
|
41677
|
+
continue;
|
|
41402
41678
|
resolvedFields.add(field);
|
|
41403
41679
|
}
|
|
41404
41680
|
return new RequiredProps(this.ordering, resolvedFields);
|
|
@@ -41485,7 +41761,9 @@ var ScalarFlatArray = class extends ScalarNode {
|
|
|
41485
41761
|
}
|
|
41486
41762
|
getInputRequiredProps() {
|
|
41487
41763
|
const resolvedFields = new Fields();
|
|
41488
|
-
|
|
41764
|
+
if (!isUndefined(this.field.collection)) {
|
|
41765
|
+
resolvedFields.add(this.field);
|
|
41766
|
+
}
|
|
41489
41767
|
return new RequiredProps(this.ordering, resolvedFields);
|
|
41490
41768
|
}
|
|
41491
41769
|
optimize(optimizer) {
|
|
@@ -41513,7 +41791,7 @@ var ScalarFlatArray = class extends ScalarNode {
|
|
|
41513
41791
|
};
|
|
41514
41792
|
}
|
|
41515
41793
|
};
|
|
41516
|
-
var
|
|
41794
|
+
var collation8 = {
|
|
41517
41795
|
type: 0,
|
|
41518
41796
|
/* CaseInsensitive */
|
|
41519
41797
|
};
|
|
@@ -41557,11 +41835,11 @@ var ScalarIn = class extends ScalarNode {
|
|
|
41557
41835
|
});
|
|
41558
41836
|
return {
|
|
41559
41837
|
type: 'boolean',
|
|
41560
|
-
value: DatabaseValue.in(left, right,
|
|
41838
|
+
value: DatabaseValue.in(left, right, collation8),
|
|
41561
41839
|
};
|
|
41562
41840
|
}
|
|
41563
41841
|
};
|
|
41564
|
-
var
|
|
41842
|
+
var collation9 = {
|
|
41565
41843
|
type: 1,
|
|
41566
41844
|
/* CaseSensitive */
|
|
41567
41845
|
};
|
|
@@ -41605,7 +41883,7 @@ var ScalarIndexOf = class extends ScalarNode {
|
|
|
41605
41883
|
});
|
|
41606
41884
|
return {
|
|
41607
41885
|
type: 'number',
|
|
41608
|
-
value: DatabaseValue.indexOf(source, target,
|
|
41886
|
+
value: DatabaseValue.indexOf(source, target, collation9),
|
|
41609
41887
|
};
|
|
41610
41888
|
}
|
|
41611
41889
|
};
|
|
@@ -41669,7 +41947,7 @@ var ScalarNot = class extends ScalarNode {
|
|
|
41669
41947
|
};
|
|
41670
41948
|
}
|
|
41671
41949
|
};
|
|
41672
|
-
var
|
|
41950
|
+
var collation10 = {
|
|
41673
41951
|
type: 0,
|
|
41674
41952
|
/* CaseInsensitive */
|
|
41675
41953
|
};
|
|
@@ -41713,7 +41991,7 @@ var ScalarNotIn = class extends ScalarNode {
|
|
|
41713
41991
|
});
|
|
41714
41992
|
return {
|
|
41715
41993
|
type: 'boolean',
|
|
41716
|
-
value: !DatabaseValue.in(left, right,
|
|
41994
|
+
value: !DatabaseValue.in(left, right, collation10),
|
|
41717
41995
|
};
|
|
41718
41996
|
}
|
|
41719
41997
|
};
|
|
@@ -42091,6 +42369,11 @@ var Optimizer = class {
|
|
|
42091
42369
|
this.explorer.explore(node);
|
|
42092
42370
|
}
|
|
42093
42371
|
}
|
|
42372
|
+
if (false) {
|
|
42373
|
+
assert(winner.node, 'Group not optimized');
|
|
42374
|
+
const cache2 = /* @__PURE__ */ new Map();
|
|
42375
|
+
winner.node = new RelationalAssert(winner.node, required, cache2);
|
|
42376
|
+
}
|
|
42094
42377
|
return winner.cost;
|
|
42095
42378
|
}
|
|
42096
42379
|
createEnforcer(winner, node, required) {
|
|
@@ -42366,7 +42649,7 @@ var AnimationCollector = class {
|
|
|
42366
42649
|
};
|
|
42367
42650
|
_variantHashes = /* @__PURE__ */ new WeakMap();
|
|
42368
42651
|
var framerAppearEffects = /* @__PURE__ */ new AnimationCollector();
|
|
42369
|
-
function withOptimizedAppearEffect(
|
|
42652
|
+
function withOptimizedAppearEffect(Component18) {
|
|
42370
42653
|
return React4.forwardRef(({ optimized, ...props }, ref) => {
|
|
42371
42654
|
const generatedComponentContext = React4.useContext(GeneratedComponentContext);
|
|
42372
42655
|
const variants = React4.useContext(SSRParentVariantsContext);
|
|
@@ -42380,7 +42663,7 @@ function withOptimizedAppearEffect(Component16) {
|
|
|
42380
42663
|
// should not be optimized.
|
|
42381
42664
|
optimized ? props : null, generatedComponentContext);
|
|
42382
42665
|
}
|
|
42383
|
-
return /* @__PURE__ */ jsx(
|
|
42666
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
42384
42667
|
ref,
|
|
42385
42668
|
...props,
|
|
42386
42669
|
});
|
|
@@ -42941,49 +43224,49 @@ function usePrototypeNavigate({ preload, } = {}) {
|
|
|
42941
43224
|
navigation.goBack();
|
|
42942
43225
|
return false;
|
|
42943
43226
|
}
|
|
42944
|
-
const
|
|
43227
|
+
const Component18 = typeof target === 'string'
|
|
42945
43228
|
? await componentForRoute(getRoute == null ? void 0 : getRoute(target)).catch(() => { })
|
|
42946
43229
|
: React4.isValidElement(target)
|
|
42947
43230
|
? target
|
|
42948
43231
|
: null;
|
|
42949
|
-
if (!
|
|
43232
|
+
if (!Component18)
|
|
42950
43233
|
return;
|
|
42951
43234
|
const { appearsFrom, backdropColor, animation, } = options;
|
|
42952
43235
|
const transitionType = options.transition || 'instant';
|
|
42953
43236
|
switch (transitionType) {
|
|
42954
43237
|
case 'instant':
|
|
42955
|
-
navigation.instant(
|
|
43238
|
+
navigation.instant(Component18);
|
|
42956
43239
|
break;
|
|
42957
43240
|
case 'fade':
|
|
42958
|
-
navigation.fade(
|
|
43241
|
+
navigation.fade(Component18, {
|
|
42959
43242
|
animation,
|
|
42960
43243
|
});
|
|
42961
43244
|
break;
|
|
42962
43245
|
case 'push':
|
|
42963
|
-
navigation.push(
|
|
43246
|
+
navigation.push(Component18, {
|
|
42964
43247
|
appearsFrom,
|
|
42965
43248
|
animation,
|
|
42966
43249
|
});
|
|
42967
43250
|
break;
|
|
42968
43251
|
case 'flip':
|
|
42969
|
-
navigation.flip(
|
|
43252
|
+
navigation.flip(Component18, {
|
|
42970
43253
|
appearsFrom,
|
|
42971
43254
|
animation,
|
|
42972
43255
|
});
|
|
42973
43256
|
break;
|
|
42974
43257
|
case 'magicMotion':
|
|
42975
|
-
navigation.magicMotion(
|
|
43258
|
+
navigation.magicMotion(Component18, {
|
|
42976
43259
|
animation,
|
|
42977
43260
|
});
|
|
42978
43261
|
break;
|
|
42979
43262
|
case 'modal':
|
|
42980
|
-
navigation.modal(
|
|
43263
|
+
navigation.modal(Component18, {
|
|
42981
43264
|
backdropColor,
|
|
42982
43265
|
animation,
|
|
42983
43266
|
});
|
|
42984
43267
|
break;
|
|
42985
43268
|
case 'overlay':
|
|
42986
|
-
navigation.overlay(
|
|
43269
|
+
navigation.overlay(Component18, {
|
|
42987
43270
|
appearsFrom,
|
|
42988
43271
|
backdropColor,
|
|
42989
43272
|
animation,
|
|
@@ -43355,6 +43638,71 @@ function useVariantState({ variant, defaultVariant: externalDefaultVariant, tran
|
|
|
43355
43638
|
variantClassNames,
|
|
43356
43639
|
]);
|
|
43357
43640
|
}
|
|
43641
|
+
function withCodeBoundaryForOverrides(Component18, { scopeId, nodeId, override, inComponentSlot, }) {
|
|
43642
|
+
if (!shouldEnableCodeBoundaries()) {
|
|
43643
|
+
return override(Component18);
|
|
43644
|
+
}
|
|
43645
|
+
const appliedOverride = tryToApplyOverride(Component18, override);
|
|
43646
|
+
let hasErrorBeenLogged = false;
|
|
43647
|
+
function CodeBoundaryForOverrides(props, ref) {
|
|
43648
|
+
const externalComponentNestingLevel = useExternalComponentNestingLevel();
|
|
43649
|
+
const shouldWrapWithBoundary = shouldWrapOverrideWithBoundary(externalComponentNestingLevel, inComponentSlot ?? false);
|
|
43650
|
+
if (shouldWrapWithBoundary) {
|
|
43651
|
+
if (appliedOverride.status === 'success') {
|
|
43652
|
+
return /* @__PURE__ */ jsx(CodeComponentBoundary, {
|
|
43653
|
+
errorMessage: getErrorMessageForOverride(scopeId, nodeId),
|
|
43654
|
+
fallback: /* @__PURE__ */ jsx(Component18, {
|
|
43655
|
+
...props,
|
|
43656
|
+
ref,
|
|
43657
|
+
}),
|
|
43658
|
+
children: /* @__PURE__ */ jsx(appliedOverride.Component, {
|
|
43659
|
+
...props,
|
|
43660
|
+
ref,
|
|
43661
|
+
}),
|
|
43662
|
+
});
|
|
43663
|
+
}
|
|
43664
|
+
else {
|
|
43665
|
+
if (!hasErrorBeenLogged) {
|
|
43666
|
+
logError(appliedOverride.error);
|
|
43667
|
+
logError(getErrorMessageForOverride(scopeId, nodeId));
|
|
43668
|
+
collectErrorToAnalytics(appliedOverride.error);
|
|
43669
|
+
hasErrorBeenLogged = true;
|
|
43670
|
+
}
|
|
43671
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
43672
|
+
...props,
|
|
43673
|
+
ref,
|
|
43674
|
+
});
|
|
43675
|
+
}
|
|
43676
|
+
}
|
|
43677
|
+
else {
|
|
43678
|
+
if (appliedOverride.status === 'success') {
|
|
43679
|
+
return /* @__PURE__ */ jsx(appliedOverride.Component, {
|
|
43680
|
+
...props,
|
|
43681
|
+
ref,
|
|
43682
|
+
});
|
|
43683
|
+
}
|
|
43684
|
+
else {
|
|
43685
|
+
throw appliedOverride.error;
|
|
43686
|
+
}
|
|
43687
|
+
}
|
|
43688
|
+
}
|
|
43689
|
+
return React4.forwardRef(CodeBoundaryForOverrides);
|
|
43690
|
+
}
|
|
43691
|
+
function tryToApplyOverride(Component18, override) {
|
|
43692
|
+
try {
|
|
43693
|
+
const ComponentWithOverrides = override(Component18);
|
|
43694
|
+
return {
|
|
43695
|
+
status: 'success',
|
|
43696
|
+
Component: ComponentWithOverrides,
|
|
43697
|
+
};
|
|
43698
|
+
}
|
|
43699
|
+
catch (error) {
|
|
43700
|
+
return {
|
|
43701
|
+
status: 'error',
|
|
43702
|
+
error,
|
|
43703
|
+
};
|
|
43704
|
+
}
|
|
43705
|
+
}
|
|
43358
43706
|
function extractMappingFromInfo(info) {
|
|
43359
43707
|
var _a;
|
|
43360
43708
|
const json = (_a = info.__FramerMetadata__.exports.default.annotations) == null ? void 0 : _a.framerVariables;
|
|
@@ -43367,14 +43715,14 @@ function extractMappingFromInfo(info) {
|
|
|
43367
43715
|
return void 0;
|
|
43368
43716
|
}
|
|
43369
43717
|
}
|
|
43370
|
-
function withMappedReactProps(
|
|
43718
|
+
function withMappedReactProps(Component18, info) {
|
|
43371
43719
|
return (rawProps) => {
|
|
43372
43720
|
const props = {};
|
|
43373
43721
|
const mapping = extractMappingFromInfo(info);
|
|
43374
43722
|
for (const key7 in rawProps) {
|
|
43375
43723
|
asRecord(props)[(mapping == null ? void 0 : mapping[key7]) ?? key7] = rawProps[key7];
|
|
43376
43724
|
}
|
|
43377
|
-
return /* @__PURE__ */ jsx(
|
|
43725
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
43378
43726
|
...props,
|
|
43379
43727
|
});
|
|
43380
43728
|
};
|
|
@@ -43417,9 +43765,9 @@ function createInputOutputRanges2(transformTargets, threshold, exitTarget) {
|
|
|
43417
43765
|
outputRange: [-1, -1, ...outputRange,],
|
|
43418
43766
|
};
|
|
43419
43767
|
}
|
|
43420
|
-
var withVariantAppearEffect = (
|
|
43768
|
+
var withVariantAppearEffect = (Component18) => React4.forwardRef((props, forwardedRef) => {
|
|
43421
43769
|
if (RenderTarget.current() === RenderTarget.canvas) {
|
|
43422
|
-
return /* @__PURE__ */ jsx(
|
|
43770
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
43423
43771
|
...props,
|
|
43424
43772
|
ref: forwardedRef,
|
|
43425
43773
|
});
|
|
@@ -43504,26 +43852,26 @@ var withVariantAppearEffect = (Component16) => React4.forwardRef((props, forward
|
|
|
43504
43852
|
repeat: !animateOnce,
|
|
43505
43853
|
});
|
|
43506
43854
|
if (!('variantAppearEffectEnabled' in options) || variantAppearEffectEnabled === true) {
|
|
43507
|
-
return /* @__PURE__ */ jsx(
|
|
43855
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
43508
43856
|
...rest,
|
|
43509
43857
|
variant: activeVariant ?? props.variant,
|
|
43510
43858
|
ref: observerRef,
|
|
43511
43859
|
});
|
|
43512
43860
|
}
|
|
43513
43861
|
else {
|
|
43514
|
-
return /* @__PURE__ */ jsx(
|
|
43862
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
43515
43863
|
...rest,
|
|
43516
43864
|
});
|
|
43517
43865
|
}
|
|
43518
43866
|
});
|
|
43519
|
-
var withVariantFX = (
|
|
43867
|
+
var withVariantFX = (Component18) => React4.forwardRef(({ initial, animate: animate3, exit, ...props }, forwardedRef) => {
|
|
43520
43868
|
const observerRef = useObserverRef(forwardedRef);
|
|
43521
43869
|
const effect = usePresenceAnimation({
|
|
43522
43870
|
initial,
|
|
43523
43871
|
animate: animate3,
|
|
43524
43872
|
exit,
|
|
43525
43873
|
}, observerRef, true);
|
|
43526
|
-
return /* @__PURE__ */ jsx(
|
|
43874
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
43527
43875
|
...props,
|
|
43528
43876
|
style: {
|
|
43529
43877
|
...(props == null ? void 0 : props.style),
|
|
@@ -46980,10 +47328,10 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
|
|
|
46980
47328
|
if (layoutId) {
|
|
46981
47329
|
rest.layout = 'preserve-aspect';
|
|
46982
47330
|
}
|
|
46983
|
-
const
|
|
47331
|
+
const Component18 = htmlElementAsMotionComponent(props.as);
|
|
46984
47332
|
if (isString2(props.viewBox)) {
|
|
46985
47333
|
if (props.as !== void 0) {
|
|
46986
|
-
return /* @__PURE__ */ jsx(
|
|
47334
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
46987
47335
|
...rest,
|
|
46988
47336
|
ref: containerRef,
|
|
46989
47337
|
style: containerStyle,
|
|
@@ -47017,7 +47365,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
|
|
|
47017
47365
|
});
|
|
47018
47366
|
}
|
|
47019
47367
|
}
|
|
47020
|
-
return /* @__PURE__ */ jsx(
|
|
47368
|
+
return /* @__PURE__ */ jsx(Component18, {
|
|
47021
47369
|
...rest,
|
|
47022
47370
|
ref: containerRef,
|
|
47023
47371
|
style: containerStyle,
|
|
@@ -49421,7 +49769,7 @@ MotionValue.prototype.addChild = function ({ transformer = (v) => v, }) {
|
|
|
49421
49769
|
if (false) {
|
|
49422
49770
|
MainLoop2.start();
|
|
49423
49771
|
}
|
|
49424
|
-
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, 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, 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, withCSS, withFX, withGeneratedLayoutId, withInfiniteScroll, withMappedReactProps, withMeasuredSize, WithNavigator, withOpacity, withOptimizedAppearEffect, WithOverride, withParallaxTransform, withPath, withPerformanceMarks, withShape, withStyleAppearEffect, withVariantAppearEffect, withVariantFX, wrap, };
|
|
49772
|
+
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, 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, };
|
|
49425
49773
|
/**
|
|
49426
49774
|
* @license Emotion v11.0.0
|
|
49427
49775
|
* MIT License
|
|
@@ -49468,5 +49816,6 @@ if (typeof document !== 'undefined') {
|
|
|
49468
49816
|
}
|
|
49469
49817
|
document.head.appendChild(fragment);
|
|
49470
49818
|
}
|
|
49471
|
-
export {
|
|
49819
|
+
export { Link as FramerLink };
|
|
49820
|
+
export { Router, FetchClientProvider, FormContext, LocaleInfoContext };
|
|
49472
49821
|
//# sourceMappingURL=framer.js.map
|