unframer 2.5.2 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esbuild.d.ts +2 -1
- package/dist/esbuild.d.ts.map +1 -1
- package/dist/esbuild.js +11 -2
- package/dist/esbuild.js.map +1 -1
- package/dist/framer.d.ts +274 -67
- package/dist/framer.d.ts.map +1 -1
- package/dist/framer.js +1817 -1170
- package/dist/framer.js.map +1 -1
- package/dist/react.d.ts +11 -1
- package/dist/react.d.ts.map +1 -1
- package/esm/esbuild.d.ts +2 -1
- package/esm/esbuild.d.ts.map +1 -1
- package/esm/esbuild.js +11 -2
- package/esm/esbuild.js.map +1 -1
- package/esm/framer.d.ts +274 -67
- package/esm/framer.d.ts.map +1 -1
- package/esm/framer.js +1808 -1163
- package/esm/framer.js.map +1 -1
- package/esm/react.d.ts +11 -1
- package/esm/react.d.ts.map +1 -1
- package/package.json +7 -2
- package/src/esbuild.ts +15 -1
- package/src/framer.d.ts +274 -67
- package/src/framer.js +1664 -905
package/src/framer.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// https :https://app.framerstatic.com/chunk-
|
|
1
|
+
// https :https://app.framerstatic.com/chunk-DUHOOT7P.js
|
|
2
2
|
import { createContext, } from 'react';
|
|
3
3
|
import { useEffect, useLayoutEffect, } from 'react';
|
|
4
4
|
import { jsx, jsxs, } from 'react/jsx-runtime';
|
|
@@ -146,7 +146,7 @@ var SwitchLayoutGroupContext = createContext({},);
|
|
|
146
146
|
var LazyContext = createContext({
|
|
147
147
|
strict: false,
|
|
148
148
|
},);
|
|
149
|
-
var Queue = class {
|
|
149
|
+
var Queue = /*#__PURE__*/ class {
|
|
150
150
|
constructor() {
|
|
151
151
|
this.order = [];
|
|
152
152
|
this.scheduled = /* @__PURE__ */ new Set();
|
|
@@ -1305,6 +1305,9 @@ function hslaToRgba({
|
|
|
1305
1305
|
alpha: alpha2,
|
|
1306
1306
|
};
|
|
1307
1307
|
}
|
|
1308
|
+
function mixImmediate(a, b,) {
|
|
1309
|
+
return (p) => p > 0 ? b : a;
|
|
1310
|
+
}
|
|
1308
1311
|
var mixLinearColor = (from, to, v,) => {
|
|
1309
1312
|
const fromExpo = from * from;
|
|
1310
1313
|
const expo = v * (to * to - fromExpo) + fromExpo;
|
|
@@ -1314,7 +1317,8 @@ var colorTypes = [hex, rgba, hsla,];
|
|
|
1314
1317
|
var getColorType = (v) => colorTypes.find((type) => type.test(v,));
|
|
1315
1318
|
function asRGBA(color2,) {
|
|
1316
1319
|
const type = getColorType(color2,);
|
|
1317
|
-
|
|
1320
|
+
warning(Boolean(type,), `'${color2}' is not an animatable color. Use the equivalent color code instead.`,);
|
|
1321
|
+
if (!Boolean(type,)) return false;
|
|
1318
1322
|
let model = type.parse(color2,);
|
|
1319
1323
|
if (type === hsla) {
|
|
1320
1324
|
model = hslaToRgba(model,);
|
|
@@ -1324,6 +1328,9 @@ function asRGBA(color2,) {
|
|
|
1324
1328
|
var mixColor = (from, to,) => {
|
|
1325
1329
|
const fromRGBA = asRGBA(from,);
|
|
1326
1330
|
const toRGBA = asRGBA(to,);
|
|
1331
|
+
if (!fromRGBA || !toRGBA) {
|
|
1332
|
+
return mixImmediate(from, to,);
|
|
1333
|
+
}
|
|
1327
1334
|
const blended = {
|
|
1328
1335
|
...fromRGBA,
|
|
1329
1336
|
};
|
|
@@ -1352,9 +1359,6 @@ function mixVisibility(origin, target,) {
|
|
|
1352
1359
|
return (p) => p >= 1 ? target : origin;
|
|
1353
1360
|
}
|
|
1354
1361
|
}
|
|
1355
|
-
function mixImmediate(a, b,) {
|
|
1356
|
-
return (p) => p > 0 ? b : a;
|
|
1357
|
-
}
|
|
1358
1362
|
function mixNumber2(a, b,) {
|
|
1359
1363
|
return (p) => mixNumber(a, b, p,);
|
|
1360
1364
|
}
|
|
@@ -1602,7 +1606,7 @@ function flushKeyframeResolvers() {
|
|
|
1602
1606
|
readAllKeyframes();
|
|
1603
1607
|
measureAllKeyframes();
|
|
1604
1608
|
}
|
|
1605
|
-
var KeyframeResolver = class {
|
|
1609
|
+
var KeyframeResolver = /*#__PURE__*/ class {
|
|
1606
1610
|
constructor(unresolvedKeyframes, onComplete, name, motionValue2, element, isAsync = false,) {
|
|
1607
1611
|
this.isComplete = false;
|
|
1608
1612
|
this.isAsync = false;
|
|
@@ -1874,7 +1878,7 @@ function getFinalKeyframe(keyframes2, {
|
|
|
1874
1878
|
const index = repeat && repeatType !== 'loop' && repeat % 2 === 1 ? 0 : resolvedKeyframes.length - 1;
|
|
1875
1879
|
return !index || finalKeyframe === void 0 ? resolvedKeyframes[index] : finalKeyframe;
|
|
1876
1880
|
}
|
|
1877
|
-
var BaseAnimation = class {
|
|
1881
|
+
var BaseAnimation = /*#__PURE__*/ class {
|
|
1878
1882
|
constructor({
|
|
1879
1883
|
autoplay = true,
|
|
1880
1884
|
delay: delay2 = 0,
|
|
@@ -2007,7 +2011,7 @@ var generators = {
|
|
|
2007
2011
|
spring,
|
|
2008
2012
|
};
|
|
2009
2013
|
var percentToProgress = (percent2) => percent2 / 100;
|
|
2010
|
-
var MainThreadAnimation = class extends BaseAnimation {
|
|
2014
|
+
var MainThreadAnimation = /*#__PURE__*/ class extends BaseAnimation {
|
|
2011
2015
|
constructor({
|
|
2012
2016
|
KeyframeResolver: KeyframeResolver$1 = KeyframeResolver,
|
|
2013
2017
|
...options
|
|
@@ -2487,7 +2491,7 @@ function makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, n
|
|
|
2487
2491
|
}
|
|
2488
2492
|
}
|
|
2489
2493
|
}
|
|
2490
|
-
var DOMKeyframesResolver = class extends KeyframeResolver {
|
|
2494
|
+
var DOMKeyframesResolver = /*#__PURE__*/ class extends KeyframeResolver {
|
|
2491
2495
|
constructor(unresolvedKeyframes, onComplete, name, motionValue2,) {
|
|
2492
2496
|
super(
|
|
2493
2497
|
unresolvedKeyframes,
|
|
@@ -2507,14 +2511,17 @@ var DOMKeyframesResolver = class extends KeyframeResolver {
|
|
|
2507
2511
|
if (!element.current) return;
|
|
2508
2512
|
super.readKeyframes();
|
|
2509
2513
|
for (let i = 0; i < unresolvedKeyframes.length; i++) {
|
|
2510
|
-
|
|
2511
|
-
if (typeof keyframe === 'string'
|
|
2512
|
-
|
|
2513
|
-
if (
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2514
|
+
let keyframe = unresolvedKeyframes[i];
|
|
2515
|
+
if (typeof keyframe === 'string') {
|
|
2516
|
+
keyframe = keyframe.trim();
|
|
2517
|
+
if (isCSSVariableToken(keyframe,)) {
|
|
2518
|
+
const resolved = getVariableValue(keyframe, element.current,);
|
|
2519
|
+
if (resolved !== void 0) {
|
|
2520
|
+
unresolvedKeyframes[i] = resolved;
|
|
2521
|
+
}
|
|
2522
|
+
if (i === unresolvedKeyframes.length - 1) {
|
|
2523
|
+
this.finalKeyframe = keyframe;
|
|
2524
|
+
}
|
|
2518
2525
|
}
|
|
2519
2526
|
}
|
|
2520
2527
|
}
|
|
@@ -2695,7 +2702,7 @@ function pregenerateKeyframes(keyframes2, options,) {
|
|
|
2695
2702
|
ease: 'linear',
|
|
2696
2703
|
};
|
|
2697
2704
|
}
|
|
2698
|
-
var AcceleratedAnimation = class extends BaseAnimation {
|
|
2705
|
+
var AcceleratedAnimation = /*#__PURE__*/ class extends BaseAnimation {
|
|
2699
2706
|
constructor(options,) {
|
|
2700
2707
|
super(options,);
|
|
2701
2708
|
const {
|
|
@@ -2967,7 +2974,7 @@ function moveItem([...arr], fromIndex, toIndex,) {
|
|
|
2967
2974
|
}
|
|
2968
2975
|
return arr;
|
|
2969
2976
|
}
|
|
2970
|
-
var SubscriptionManager = class {
|
|
2977
|
+
var SubscriptionManager = /*#__PURE__*/ class {
|
|
2971
2978
|
constructor() {
|
|
2972
2979
|
this.subscriptions = [];
|
|
2973
2980
|
}
|
|
@@ -3001,7 +3008,7 @@ var isFloat = (value) => {
|
|
|
3001
3008
|
var collectMotionValues = {
|
|
3002
3009
|
current: void 0,
|
|
3003
3010
|
};
|
|
3004
|
-
var MotionValue = class {
|
|
3011
|
+
var MotionValue = /*#__PURE__*/ class {
|
|
3005
3012
|
/**
|
|
3006
3013
|
* @param init - The initiating value
|
|
3007
3014
|
* @param config - Optional configuration options
|
|
@@ -3011,7 +3018,7 @@ var MotionValue = class {
|
|
|
3011
3018
|
* @internal
|
|
3012
3019
|
*/
|
|
3013
3020
|
constructor(init, options = {},) {
|
|
3014
|
-
this.version = '11.2.
|
|
3021
|
+
this.version = '11.2.10';
|
|
3015
3022
|
this.canTrackVelocity = null;
|
|
3016
3023
|
this.events = {};
|
|
3017
3024
|
this.updateAndNotify = (v, render = true,) => {
|
|
@@ -3318,6 +3325,95 @@ function isTransitionDefined({
|
|
|
3318
3325
|
function getValueTransition(transition, key7,) {
|
|
3319
3326
|
return transition[key7] || transition['default'] || transition;
|
|
3320
3327
|
}
|
|
3328
|
+
function observeTimeline(update, timeline,) {
|
|
3329
|
+
let prevProgress;
|
|
3330
|
+
const onFrame = () => {
|
|
3331
|
+
const {
|
|
3332
|
+
currentTime,
|
|
3333
|
+
} = timeline;
|
|
3334
|
+
const percentage = currentTime === null ? 0 : currentTime.value;
|
|
3335
|
+
const progress2 = percentage / 100;
|
|
3336
|
+
if (prevProgress !== progress2) {
|
|
3337
|
+
update(progress2,);
|
|
3338
|
+
}
|
|
3339
|
+
prevProgress = progress2;
|
|
3340
|
+
};
|
|
3341
|
+
frame.update(onFrame, true,);
|
|
3342
|
+
return () => cancelFrame(onFrame,);
|
|
3343
|
+
}
|
|
3344
|
+
var supportsScrollTimeline = memo(() => window.ScrollTimeline !== void 0);
|
|
3345
|
+
var GroupPlaybackControls = /*#__PURE__*/ class {
|
|
3346
|
+
constructor(animations2,) {
|
|
3347
|
+
this.stop = () => this.runAll('stop',);
|
|
3348
|
+
this.animations = animations2.filter(Boolean,);
|
|
3349
|
+
}
|
|
3350
|
+
then(onResolve, onReject,) {
|
|
3351
|
+
return Promise.all(this.animations,).then(onResolve,).catch(onReject,);
|
|
3352
|
+
}
|
|
3353
|
+
/**
|
|
3354
|
+
* TODO: Filter out cancelled or stopped animations before returning
|
|
3355
|
+
*/
|
|
3356
|
+
getAll(propName,) {
|
|
3357
|
+
return this.animations[0][propName];
|
|
3358
|
+
}
|
|
3359
|
+
setAll(propName, newValue,) {
|
|
3360
|
+
for (let i = 0; i < this.animations.length; i++) {
|
|
3361
|
+
this.animations[i][propName] = newValue;
|
|
3362
|
+
}
|
|
3363
|
+
}
|
|
3364
|
+
attachTimeline(timeline,) {
|
|
3365
|
+
const cancelAll = this.animations.map((animation) => {
|
|
3366
|
+
if (supportsScrollTimeline() && animation.attachTimeline) {
|
|
3367
|
+
animation.attachTimeline(timeline,);
|
|
3368
|
+
} else {
|
|
3369
|
+
animation.pause();
|
|
3370
|
+
return observeTimeline((progress2) => {
|
|
3371
|
+
animation.time = animation.duration * progress2;
|
|
3372
|
+
}, timeline,);
|
|
3373
|
+
}
|
|
3374
|
+
},);
|
|
3375
|
+
return () => {
|
|
3376
|
+
cancelAll.forEach((cancelTimeline, i,) => {
|
|
3377
|
+
if (cancelTimeline) cancelTimeline();
|
|
3378
|
+
this.animations[i].stop();
|
|
3379
|
+
},);
|
|
3380
|
+
};
|
|
3381
|
+
}
|
|
3382
|
+
get time() {
|
|
3383
|
+
return this.getAll('time',);
|
|
3384
|
+
}
|
|
3385
|
+
set time(time2,) {
|
|
3386
|
+
this.setAll('time', time2,);
|
|
3387
|
+
}
|
|
3388
|
+
get speed() {
|
|
3389
|
+
return this.getAll('speed',);
|
|
3390
|
+
}
|
|
3391
|
+
set speed(speed,) {
|
|
3392
|
+
this.setAll('speed', speed,);
|
|
3393
|
+
}
|
|
3394
|
+
get duration() {
|
|
3395
|
+
let max = 0;
|
|
3396
|
+
for (let i = 0; i < this.animations.length; i++) {
|
|
3397
|
+
max = Math.max(max, this.animations[i].duration,);
|
|
3398
|
+
}
|
|
3399
|
+
return max;
|
|
3400
|
+
}
|
|
3401
|
+
runAll(methodName,) {
|
|
3402
|
+
this.animations.forEach((controls) => controls[methodName]());
|
|
3403
|
+
}
|
|
3404
|
+
play() {
|
|
3405
|
+
this.runAll('play',);
|
|
3406
|
+
}
|
|
3407
|
+
pause() {
|
|
3408
|
+
this.runAll('pause',);
|
|
3409
|
+
}
|
|
3410
|
+
cancel() {
|
|
3411
|
+
this.runAll('cancel',);
|
|
3412
|
+
}
|
|
3413
|
+
complete() {
|
|
3414
|
+
this.runAll('complete',);
|
|
3415
|
+
}
|
|
3416
|
+
};
|
|
3321
3417
|
var animateMotionValue = (name, value, target, transition = {}, element, isHandoff,) => (onComplete) => {
|
|
3322
3418
|
const valueTransition = getValueTransition(transition, name,) || {};
|
|
3323
3419
|
const delay2 = valueTransition.delay || transition.delay || 0;
|
|
@@ -3377,7 +3473,7 @@ var animateMotionValue = (name, value, target, transition = {}, element, isHando
|
|
|
3377
3473
|
options.onUpdate(finalKeyframe,);
|
|
3378
3474
|
options.onComplete();
|
|
3379
3475
|
},);
|
|
3380
|
-
return;
|
|
3476
|
+
return new GroupPlaybackControls([],);
|
|
3381
3477
|
}
|
|
3382
3478
|
}
|
|
3383
3479
|
if (!isHandoff && AcceleratedAnimation.supports(options,)) {
|
|
@@ -3412,6 +3508,9 @@ function setTarget(visualElement, definition,) {
|
|
|
3412
3508
|
setMotionValue(visualElement, key7, value,);
|
|
3413
3509
|
}
|
|
3414
3510
|
}
|
|
3511
|
+
function getOptimisedAppearId(visualElement,) {
|
|
3512
|
+
return visualElement.getProps()[optimizedAppearDataAttribute];
|
|
3513
|
+
}
|
|
3415
3514
|
function shouldBlockAnimation({
|
|
3416
3515
|
protectedKeys,
|
|
3417
3516
|
needsAnimating,
|
|
@@ -3448,8 +3547,7 @@ function animateTarget(visualElement, targetAndTransition, {
|
|
|
3448
3547
|
};
|
|
3449
3548
|
let isHandoff = false;
|
|
3450
3549
|
if (window.HandoffAppearAnimations) {
|
|
3451
|
-
const
|
|
3452
|
-
const appearId = props[optimizedAppearDataAttribute];
|
|
3550
|
+
const appearId = getOptimisedAppearId(visualElement,);
|
|
3453
3551
|
if (appearId) {
|
|
3454
3552
|
const elapsed = window.HandoffAppearAnimations(appearId, key7, value, frame,);
|
|
3455
3553
|
if (elapsed !== null) {
|
|
@@ -3773,14 +3871,14 @@ function createState() {
|
|
|
3773
3871
|
exit: createTypeState(),
|
|
3774
3872
|
};
|
|
3775
3873
|
}
|
|
3776
|
-
var Feature = class {
|
|
3874
|
+
var Feature = /*#__PURE__*/ class {
|
|
3777
3875
|
constructor(node,) {
|
|
3778
3876
|
this.isMounted = false;
|
|
3779
3877
|
this.node = node;
|
|
3780
3878
|
}
|
|
3781
3879
|
update() {}
|
|
3782
3880
|
};
|
|
3783
|
-
var AnimationFeature = class extends Feature {
|
|
3881
|
+
var AnimationFeature = /*#__PURE__*/ class extends Feature {
|
|
3784
3882
|
/**
|
|
3785
3883
|
* We dynamically generate the AnimationState manager as it contains a reference
|
|
3786
3884
|
* to the underlying animation library. We only want to load that if we load this,
|
|
@@ -3819,7 +3917,7 @@ var AnimationFeature = class extends Feature {
|
|
|
3819
3917
|
unmount() {}
|
|
3820
3918
|
};
|
|
3821
3919
|
var id = 0;
|
|
3822
|
-
var ExitAnimationFeature = class extends Feature {
|
|
3920
|
+
var ExitAnimationFeature = /*#__PURE__*/ class extends Feature {
|
|
3823
3921
|
constructor() {
|
|
3824
3922
|
super(...arguments,);
|
|
3825
3923
|
this.id = id++;
|
|
@@ -3937,7 +4035,7 @@ function isPresent(context,) {
|
|
|
3937
4035
|
return context === null ? true : context.isPresent;
|
|
3938
4036
|
}
|
|
3939
4037
|
var compareByDepth = (a, b,) => a.depth - b.depth;
|
|
3940
|
-
var FlatTree = class {
|
|
4038
|
+
var FlatTree = /*#__PURE__*/ class {
|
|
3941
4039
|
constructor() {
|
|
3942
4040
|
this.children = [];
|
|
3943
4041
|
this.isDirty = false;
|
|
@@ -4003,8 +4101,8 @@ function updateMotionValuesFromProps(element, next, prev,) {
|
|
|
4003
4101
|
}
|
|
4004
4102
|
if (false) {
|
|
4005
4103
|
warnOnce(
|
|
4006
|
-
nextValue.version === '11.2.
|
|
4007
|
-
`Attempting to mix Framer Motion versions ${nextValue.version} with 11.2.
|
|
4104
|
+
nextValue.version === '11.2.10',
|
|
4105
|
+
`Attempting to mix Framer Motion versions ${nextValue.version} with 11.2.10 may not work as expected.`,
|
|
4008
4106
|
);
|
|
4009
4107
|
}
|
|
4010
4108
|
} else if (isMotionValue(prevValue,)) {
|
|
@@ -4059,7 +4157,7 @@ function getClosestProjectingNode(visualElement,) {
|
|
|
4059
4157
|
if (!visualElement) return void 0;
|
|
4060
4158
|
return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent,);
|
|
4061
4159
|
}
|
|
4062
|
-
var VisualElement = class {
|
|
4160
|
+
var VisualElement = /*#__PURE__*/ class {
|
|
4063
4161
|
/**
|
|
4064
4162
|
* This method takes React props and returns found MotionValues. For example, HTML
|
|
4065
4163
|
* MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.
|
|
@@ -4955,13 +5053,13 @@ function addHoverEvent(node, isActive,) {
|
|
|
4955
5053
|
passive: !node.getProps()[callbackName],
|
|
4956
5054
|
},);
|
|
4957
5055
|
}
|
|
4958
|
-
var HoverGesture = class extends Feature {
|
|
5056
|
+
var HoverGesture = /*#__PURE__*/ class extends Feature {
|
|
4959
5057
|
mount() {
|
|
4960
5058
|
this.unmount = pipe(addHoverEvent(this.node, true,), addHoverEvent(this.node, false,),);
|
|
4961
5059
|
}
|
|
4962
5060
|
unmount() {}
|
|
4963
5061
|
};
|
|
4964
|
-
var FocusGesture = class extends Feature {
|
|
5062
|
+
var FocusGesture = /*#__PURE__*/ class extends Feature {
|
|
4965
5063
|
constructor() {
|
|
4966
5064
|
super(...arguments,);
|
|
4967
5065
|
this.isActive = false;
|
|
@@ -5004,7 +5102,7 @@ function fireSyntheticPointerEvent(name, handler,) {
|
|
|
5004
5102
|
const syntheticPointerEvent = new PointerEvent('pointer' + name,);
|
|
5005
5103
|
handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent,),);
|
|
5006
5104
|
}
|
|
5007
|
-
var PressGesture = class extends Feature {
|
|
5105
|
+
var PressGesture = /*#__PURE__*/ class extends Feature {
|
|
5008
5106
|
constructor() {
|
|
5009
5107
|
super(...arguments,);
|
|
5010
5108
|
this.removeStartListeners = noop;
|
|
@@ -5159,7 +5257,7 @@ var thresholdNames = {
|
|
|
5159
5257
|
some: 0,
|
|
5160
5258
|
all: 1,
|
|
5161
5259
|
};
|
|
5162
|
-
var InViewFeature = class extends Feature {
|
|
5260
|
+
var InViewFeature = /*#__PURE__*/ class extends Feature {
|
|
5163
5261
|
constructor() {
|
|
5164
5262
|
super(...arguments,);
|
|
5165
5263
|
this.hasEnteredView = false;
|
|
@@ -5241,7 +5339,7 @@ var gestureAnimations = {
|
|
|
5241
5339
|
Feature: HoverGesture,
|
|
5242
5340
|
},
|
|
5243
5341
|
};
|
|
5244
|
-
var PanSession = class {
|
|
5342
|
+
var PanSession = /*#__PURE__*/ class {
|
|
5245
5343
|
constructor(event, handlers, {
|
|
5246
5344
|
transformPagePoint,
|
|
5247
5345
|
contextWindow,
|
|
@@ -5657,7 +5755,7 @@ var getContextWindow = ({
|
|
|
5657
5755
|
return current ? current.ownerDocument.defaultView : null;
|
|
5658
5756
|
};
|
|
5659
5757
|
var elementDragControls = /* @__PURE__ */ new WeakMap();
|
|
5660
|
-
var VisualElementDragControls = class {
|
|
5758
|
+
var VisualElementDragControls = /*#__PURE__*/ class {
|
|
5661
5759
|
constructor(visualElement,) {
|
|
5662
5760
|
this.openGlobalLock = null;
|
|
5663
5761
|
this.isDragging = false;
|
|
@@ -6097,7 +6195,7 @@ function getCurrentDirection(offset, lockThreshold = 10,) {
|
|
|
6097
6195
|
}
|
|
6098
6196
|
return direction;
|
|
6099
6197
|
}
|
|
6100
|
-
var DragGesture = class extends Feature {
|
|
6198
|
+
var DragGesture = /*#__PURE__*/ class extends Feature {
|
|
6101
6199
|
constructor(node,) {
|
|
6102
6200
|
super(node,);
|
|
6103
6201
|
this.removeGroupControls = noop;
|
|
@@ -6123,7 +6221,7 @@ var asyncHandler = (handler) => (event, info,) => {
|
|
|
6123
6221
|
frame.postRender(() => handler(event, info,));
|
|
6124
6222
|
}
|
|
6125
6223
|
};
|
|
6126
|
-
var PanGesture = class extends Feature {
|
|
6224
|
+
var PanGesture = /*#__PURE__*/ class extends Feature {
|
|
6127
6225
|
constructor() {
|
|
6128
6226
|
super(...arguments,);
|
|
6129
6227
|
this.removePointerDownListener = noop;
|
|
@@ -6215,7 +6313,7 @@ var correctBoxShadow = {
|
|
|
6215
6313
|
return template(shadow,);
|
|
6216
6314
|
},
|
|
6217
6315
|
};
|
|
6218
|
-
var MeasureLayoutWithContext = class extends Component {
|
|
6316
|
+
var MeasureLayoutWithContext = /*#__PURE__*/ class extends Component {
|
|
6219
6317
|
/**
|
|
6220
6318
|
* This only mounts projection nodes for components that
|
|
6221
6319
|
* need measuring, we might want to do it for all components
|
|
@@ -6439,7 +6537,7 @@ function boxEqualsRounded(a, b,) {
|
|
|
6439
6537
|
function aspectRatio(box,) {
|
|
6440
6538
|
return calcLength(box.x,) / calcLength(box.y,);
|
|
6441
6539
|
}
|
|
6442
|
-
var NodeStack = class {
|
|
6540
|
+
var NodeStack = /*#__PURE__*/ class {
|
|
6443
6541
|
constructor() {
|
|
6444
6542
|
this.members = [];
|
|
6445
6543
|
}
|
|
@@ -6603,6 +6701,22 @@ function resetDistortingTransform(key7, visualElement, values, sharedAnimationVa
|
|
|
6603
6701
|
}
|
|
6604
6702
|
}
|
|
6605
6703
|
}
|
|
6704
|
+
function isOptimisedAppearTree(projectionNode,) {
|
|
6705
|
+
projectionNode.hasCheckedOptimisedAppear = true;
|
|
6706
|
+
if (projectionNode.root === projectionNode) return false;
|
|
6707
|
+
const {
|
|
6708
|
+
visualElement,
|
|
6709
|
+
} = projectionNode.options;
|
|
6710
|
+
if (!visualElement) {
|
|
6711
|
+
return false;
|
|
6712
|
+
} else if (getOptimisedAppearId(visualElement,)) {
|
|
6713
|
+
return true;
|
|
6714
|
+
} else if (projectionNode.parent && !projectionNode.parent.hasCheckedOptimisedAppear) {
|
|
6715
|
+
return isOptimisedAppearTree(projectionNode.parent,);
|
|
6716
|
+
} else {
|
|
6717
|
+
return false;
|
|
6718
|
+
}
|
|
6719
|
+
}
|
|
6606
6720
|
function createProjectionNode({
|
|
6607
6721
|
attachResizeListener,
|
|
6608
6722
|
defaultParent,
|
|
@@ -6628,6 +6742,7 @@ function createProjectionNode({
|
|
|
6628
6742
|
this.isSVG = false;
|
|
6629
6743
|
this.needsReset = false;
|
|
6630
6744
|
this.shouldResetTransform = false;
|
|
6745
|
+
this.hasCheckedOptimisedAppear = false;
|
|
6631
6746
|
this.treeScale = {
|
|
6632
6747
|
x: 1,
|
|
6633
6748
|
y: 1,
|
|
@@ -6790,9 +6905,6 @@ function createProjectionNode({
|
|
|
6790
6905
|
startUpdate() {
|
|
6791
6906
|
if (this.isUpdateBlocked()) return;
|
|
6792
6907
|
this.isUpdating = true;
|
|
6793
|
-
if (window.HandoffCancelAllAnimations) {
|
|
6794
|
-
window.HandoffCancelAllAnimations();
|
|
6795
|
-
}
|
|
6796
6908
|
this.nodes && this.nodes.forEach(resetSkewAndRotation,);
|
|
6797
6909
|
this.animationId++;
|
|
6798
6910
|
}
|
|
@@ -6808,6 +6920,9 @@ function createProjectionNode({
|
|
|
6808
6920
|
this.options.onExitComplete && this.options.onExitComplete();
|
|
6809
6921
|
return;
|
|
6810
6922
|
}
|
|
6923
|
+
if (window.HandoffCancelAllAnimations && isOptimisedAppearTree(this,)) {
|
|
6924
|
+
window.HandoffCancelAllAnimations();
|
|
6925
|
+
}
|
|
6811
6926
|
!this.root.isUpdating && this.root.startUpdate();
|
|
6812
6927
|
if (this.isLayoutDirty) return;
|
|
6813
6928
|
this.isLayoutDirty = true;
|
|
@@ -7429,16 +7544,16 @@ function createProjectionNode({
|
|
|
7429
7544
|
if (!this.isVisible) {
|
|
7430
7545
|
return hiddenVisibility;
|
|
7431
7546
|
}
|
|
7432
|
-
const
|
|
7547
|
+
const styles4 = {
|
|
7433
7548
|
visibility: '',
|
|
7434
7549
|
};
|
|
7435
7550
|
const transformTemplate2 = this.getTransformTemplate();
|
|
7436
7551
|
if (this.needsReset) {
|
|
7437
7552
|
this.needsReset = false;
|
|
7438
|
-
|
|
7439
|
-
|
|
7440
|
-
|
|
7441
|
-
return
|
|
7553
|
+
styles4.opacity = '';
|
|
7554
|
+
styles4.pointerEvents = resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents,) || '';
|
|
7555
|
+
styles4.transform = transformTemplate2 ? transformTemplate2(this.latestValues, '',) : 'none';
|
|
7556
|
+
return styles4;
|
|
7442
7557
|
}
|
|
7443
7558
|
const lead = this.getLead();
|
|
7444
7559
|
if (!this.projectionDelta || !this.layout || !lead.target) {
|
|
@@ -7456,17 +7571,17 @@ function createProjectionNode({
|
|
|
7456
7571
|
}
|
|
7457
7572
|
const valuesToRender = lead.animationValues || lead.latestValues;
|
|
7458
7573
|
this.applyTransformsToTarget();
|
|
7459
|
-
|
|
7574
|
+
styles4.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender,);
|
|
7460
7575
|
if (transformTemplate2) {
|
|
7461
|
-
|
|
7576
|
+
styles4.transform = transformTemplate2(valuesToRender, styles4.transform,);
|
|
7462
7577
|
}
|
|
7463
7578
|
const {
|
|
7464
7579
|
x,
|
|
7465
7580
|
y,
|
|
7466
7581
|
} = this.projectionDelta;
|
|
7467
|
-
|
|
7582
|
+
styles4.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;
|
|
7468
7583
|
if (lead.animationValues) {
|
|
7469
|
-
|
|
7584
|
+
styles4.opacity = lead === this
|
|
7470
7585
|
? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0
|
|
7471
7586
|
? _b
|
|
7472
7587
|
: 1
|
|
@@ -7474,7 +7589,7 @@ function createProjectionNode({
|
|
|
7474
7589
|
? this.latestValues.opacity
|
|
7475
7590
|
: valuesToRender.opacityExit;
|
|
7476
7591
|
} else {
|
|
7477
|
-
|
|
7592
|
+
styles4.opacity = lead === this
|
|
7478
7593
|
? valuesToRender.opacity !== void 0 ? valuesToRender.opacity : ''
|
|
7479
7594
|
: valuesToRender.opacityExit !== void 0
|
|
7480
7595
|
? valuesToRender.opacityExit
|
|
@@ -7486,22 +7601,22 @@ function createProjectionNode({
|
|
|
7486
7601
|
correct,
|
|
7487
7602
|
applyTo,
|
|
7488
7603
|
} = scaleCorrectors[key7];
|
|
7489
|
-
const corrected =
|
|
7604
|
+
const corrected = styles4.transform === 'none' ? valuesToRender[key7] : correct(valuesToRender[key7], lead,);
|
|
7490
7605
|
if (applyTo) {
|
|
7491
7606
|
const num = applyTo.length;
|
|
7492
7607
|
for (let i = 0; i < num; i++) {
|
|
7493
|
-
|
|
7608
|
+
styles4[applyTo[i]] = corrected;
|
|
7494
7609
|
}
|
|
7495
7610
|
} else {
|
|
7496
|
-
|
|
7611
|
+
styles4[key7] = corrected;
|
|
7497
7612
|
}
|
|
7498
7613
|
}
|
|
7499
7614
|
if (this.options.layoutId) {
|
|
7500
|
-
|
|
7615
|
+
styles4.pointerEvents = lead === this
|
|
7501
7616
|
? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents,) || ''
|
|
7502
7617
|
: 'none';
|
|
7503
7618
|
}
|
|
7504
|
-
return
|
|
7619
|
+
return styles4;
|
|
7505
7620
|
}
|
|
7506
7621
|
clearSnapshot() {
|
|
7507
7622
|
this.resumeFrom = this.snapshot = void 0;
|
|
@@ -7727,7 +7842,7 @@ var drag = {
|
|
|
7727
7842
|
MeasureLayout,
|
|
7728
7843
|
},
|
|
7729
7844
|
};
|
|
7730
|
-
var DOMVisualElement = class extends VisualElement {
|
|
7845
|
+
var DOMVisualElement = /*#__PURE__*/ class extends VisualElement {
|
|
7731
7846
|
constructor() {
|
|
7732
7847
|
super(...arguments,);
|
|
7733
7848
|
this.KeyframeResolver = DOMKeyframesResolver;
|
|
@@ -7749,7 +7864,7 @@ var DOMVisualElement = class extends VisualElement {
|
|
|
7749
7864
|
function getComputedStyle2(element,) {
|
|
7750
7865
|
return window.getComputedStyle(element,);
|
|
7751
7866
|
}
|
|
7752
|
-
var HTMLVisualElement = class extends DOMVisualElement {
|
|
7867
|
+
var HTMLVisualElement = /*#__PURE__*/ class extends DOMVisualElement {
|
|
7753
7868
|
constructor() {
|
|
7754
7869
|
super(...arguments,);
|
|
7755
7870
|
this.type = 'html';
|
|
@@ -7793,7 +7908,7 @@ var HTMLVisualElement = class extends DOMVisualElement {
|
|
|
7793
7908
|
renderHTML(instance, renderState, styleProp, projection,);
|
|
7794
7909
|
}
|
|
7795
7910
|
};
|
|
7796
|
-
var SVGVisualElement = class extends DOMVisualElement {
|
|
7911
|
+
var SVGVisualElement = /*#__PURE__*/ class extends DOMVisualElement {
|
|
7797
7912
|
constructor() {
|
|
7798
7913
|
super(...arguments,);
|
|
7799
7914
|
this.type = 'svg';
|
|
@@ -7885,7 +8000,7 @@ function useForceUpdate() {
|
|
|
7885
8000
|
function useUnmountEffect(callback,) {
|
|
7886
8001
|
return useEffect(() => () => callback(), [],);
|
|
7887
8002
|
}
|
|
7888
|
-
var PopChildMeasure = class extends React2.Component {
|
|
8003
|
+
var PopChildMeasure = /*#__PURE__*/ class extends React2.Component {
|
|
7889
8004
|
getSnapshotBeforeUpdate(prevProps,) {
|
|
7890
8005
|
const element = this.props.childRef.current;
|
|
7891
8006
|
if (element && prevProps.isPresent && !this.props.isPresent) {
|
|
@@ -9000,7 +9115,7 @@ function useTime() {
|
|
|
9000
9115
|
useAnimationFrame((t) => time2.set(t,));
|
|
9001
9116
|
return time2;
|
|
9002
9117
|
}
|
|
9003
|
-
var WillChangeMotionValue = class extends MotionValue {
|
|
9118
|
+
var WillChangeMotionValue = /*#__PURE__*/ class extends MotionValue {
|
|
9004
9119
|
constructor() {
|
|
9005
9120
|
super(...arguments,);
|
|
9006
9121
|
this.members = [];
|
|
@@ -9131,97 +9246,6 @@ var wrap = (min, max, v,) => {
|
|
|
9131
9246
|
const rangeSize = max - min;
|
|
9132
9247
|
return ((v - min) % rangeSize + rangeSize) % rangeSize + min;
|
|
9133
9248
|
};
|
|
9134
|
-
function observeTimeline(update, timeline,) {
|
|
9135
|
-
let prevProgress;
|
|
9136
|
-
const onFrame = () => {
|
|
9137
|
-
const {
|
|
9138
|
-
currentTime,
|
|
9139
|
-
} = timeline;
|
|
9140
|
-
const percentage = currentTime === null ? 0 : currentTime.value;
|
|
9141
|
-
const progress2 = percentage / 100;
|
|
9142
|
-
if (prevProgress !== progress2) {
|
|
9143
|
-
update(progress2,);
|
|
9144
|
-
}
|
|
9145
|
-
prevProgress = progress2;
|
|
9146
|
-
};
|
|
9147
|
-
frame.update(onFrame, true,);
|
|
9148
|
-
return () => cancelFrame(onFrame,);
|
|
9149
|
-
}
|
|
9150
|
-
var supportsScrollTimeline = memo(() => window.ScrollTimeline !== void 0);
|
|
9151
|
-
var GroupPlaybackControls = class {
|
|
9152
|
-
constructor(animations2,) {
|
|
9153
|
-
this.animations = animations2.filter(Boolean,);
|
|
9154
|
-
}
|
|
9155
|
-
then(onResolve, onReject,) {
|
|
9156
|
-
return Promise.all(this.animations,).then(onResolve,).catch(onReject,);
|
|
9157
|
-
}
|
|
9158
|
-
/**
|
|
9159
|
-
* TODO: Filter out cancelled or stopped animations before returning
|
|
9160
|
-
*/
|
|
9161
|
-
getAll(propName,) {
|
|
9162
|
-
return this.animations[0][propName];
|
|
9163
|
-
}
|
|
9164
|
-
setAll(propName, newValue,) {
|
|
9165
|
-
for (let i = 0; i < this.animations.length; i++) {
|
|
9166
|
-
this.animations[i][propName] = newValue;
|
|
9167
|
-
}
|
|
9168
|
-
}
|
|
9169
|
-
attachTimeline(timeline,) {
|
|
9170
|
-
const cancelAll = this.animations.map((animation) => {
|
|
9171
|
-
if (supportsScrollTimeline() && animation.attachTimeline) {
|
|
9172
|
-
animation.attachTimeline(timeline,);
|
|
9173
|
-
} else {
|
|
9174
|
-
animation.pause();
|
|
9175
|
-
return observeTimeline((progress2) => {
|
|
9176
|
-
animation.time = animation.duration * progress2;
|
|
9177
|
-
}, timeline,);
|
|
9178
|
-
}
|
|
9179
|
-
},);
|
|
9180
|
-
return () => {
|
|
9181
|
-
cancelAll.forEach((cancelTimeline, i,) => {
|
|
9182
|
-
if (cancelTimeline) cancelTimeline();
|
|
9183
|
-
this.animations[i].stop();
|
|
9184
|
-
},);
|
|
9185
|
-
};
|
|
9186
|
-
}
|
|
9187
|
-
get time() {
|
|
9188
|
-
return this.getAll('time',);
|
|
9189
|
-
}
|
|
9190
|
-
set time(time2,) {
|
|
9191
|
-
this.setAll('time', time2,);
|
|
9192
|
-
}
|
|
9193
|
-
get speed() {
|
|
9194
|
-
return this.getAll('speed',);
|
|
9195
|
-
}
|
|
9196
|
-
set speed(speed,) {
|
|
9197
|
-
this.setAll('speed', speed,);
|
|
9198
|
-
}
|
|
9199
|
-
get duration() {
|
|
9200
|
-
let max = 0;
|
|
9201
|
-
for (let i = 0; i < this.animations.length; i++) {
|
|
9202
|
-
max = Math.max(max, this.animations[i].duration,);
|
|
9203
|
-
}
|
|
9204
|
-
return max;
|
|
9205
|
-
}
|
|
9206
|
-
runAll(methodName,) {
|
|
9207
|
-
this.animations.forEach((controls) => controls[methodName]());
|
|
9208
|
-
}
|
|
9209
|
-
play() {
|
|
9210
|
-
this.runAll('play',);
|
|
9211
|
-
}
|
|
9212
|
-
pause() {
|
|
9213
|
-
this.runAll('pause',);
|
|
9214
|
-
}
|
|
9215
|
-
stop() {
|
|
9216
|
-
this.runAll('stop',);
|
|
9217
|
-
}
|
|
9218
|
-
cancel() {
|
|
9219
|
-
this.runAll('cancel',);
|
|
9220
|
-
}
|
|
9221
|
-
complete() {
|
|
9222
|
-
this.runAll('complete',);
|
|
9223
|
-
}
|
|
9224
|
-
};
|
|
9225
9249
|
function isDOMKeyframes(keyframes2,) {
|
|
9226
9250
|
return typeof keyframes2 === 'object' && !Array.isArray(keyframes2,);
|
|
9227
9251
|
}
|
|
@@ -9616,7 +9640,7 @@ function useInView(ref, {
|
|
|
9616
9640
|
}, [root, ref, margin, once, amount,],);
|
|
9617
9641
|
return isInView;
|
|
9618
9642
|
}
|
|
9619
|
-
var DragControls = class {
|
|
9643
|
+
var DragControls = /*#__PURE__*/ class {
|
|
9620
9644
|
constructor() {
|
|
9621
9645
|
this.componentControls = /* @__PURE__ */ new Set();
|
|
9622
9646
|
}
|
|
@@ -9808,7 +9832,7 @@ function startOptimizedAppearAnimation(element, name, keyframes2, options, onRea
|
|
|
9808
9832
|
}
|
|
9809
9833
|
}
|
|
9810
9834
|
var createObject = () => ({});
|
|
9811
|
-
var StateVisualElement = class extends VisualElement {
|
|
9835
|
+
var StateVisualElement = /*#__PURE__*/ class extends VisualElement {
|
|
9812
9836
|
build() {}
|
|
9813
9837
|
measureInstanceViewportBox() {
|
|
9814
9838
|
return createBox();
|
|
@@ -9972,7 +9996,7 @@ var cancelSync = stepsOrder.reduce((acc, key7,) => {
|
|
|
9972
9996
|
return acc;
|
|
9973
9997
|
}, {},);
|
|
9974
9998
|
|
|
9975
|
-
// https :https://app.framerstatic.com/framer.
|
|
9999
|
+
// https :https://app.framerstatic.com/framer.VEJ3JK5Y.js
|
|
9976
10000
|
|
|
9977
10001
|
import React4 from 'react';
|
|
9978
10002
|
import { startTransition as startTransition2, } from 'react';
|
|
@@ -9987,7 +10011,7 @@ var require_hsluv = __commonJS({
|
|
|
9987
10011
|
value: true,
|
|
9988
10012
|
},);
|
|
9989
10013
|
exports.Hsluv = void 0;
|
|
9990
|
-
var Hsluv2 = class {
|
|
10014
|
+
var Hsluv2 = /*#__PURE__*/ class {
|
|
9991
10015
|
constructor() {
|
|
9992
10016
|
this.hex = '#000000';
|
|
9993
10017
|
this.rgb_r = 0;
|
|
@@ -11083,11 +11107,11 @@ var require_resize_observer_umd = __commonJS({
|
|
|
11083
11107
|
};
|
|
11084
11108
|
return Scheduler2;
|
|
11085
11109
|
}();
|
|
11086
|
-
var
|
|
11110
|
+
var scheduler2 = new Scheduler();
|
|
11087
11111
|
var updateCount = function (n,) {
|
|
11088
|
-
!watching && n > 0 &&
|
|
11112
|
+
!watching && n > 0 && scheduler2.start();
|
|
11089
11113
|
watching += n;
|
|
11090
|
-
!watching &&
|
|
11114
|
+
!watching && scheduler2.stop();
|
|
11091
11115
|
};
|
|
11092
11116
|
var skipNotifyOnElement = function (target,) {
|
|
11093
11117
|
return !isSVG(target,) && !isReplacedElement(target,) && getComputedStyle(target,).display === 'inline';
|
|
@@ -11145,7 +11169,7 @@ var require_resize_observer_umd = __commonJS({
|
|
|
11145
11169
|
firstObservation && resizeObservers.push(detail,);
|
|
11146
11170
|
detail.observationTargets.push(new ResizeObservation(target, options && options.box,),);
|
|
11147
11171
|
updateCount(1,);
|
|
11148
|
-
|
|
11172
|
+
scheduler2.schedule();
|
|
11149
11173
|
}
|
|
11150
11174
|
};
|
|
11151
11175
|
ResizeObserverController2.unobserve = function (resizeObserver, target,) {
|
|
@@ -11662,9 +11686,9 @@ function renderPage(Page4, defaultPageStyle,) {
|
|
|
11662
11686
|
};
|
|
11663
11687
|
return React4.isValidElement(Page4,) ? React4.cloneElement(Page4, style,) : React4.createElement(Page4, style,);
|
|
11664
11688
|
}
|
|
11665
|
-
var NotFoundError = class extends Error {};
|
|
11666
|
-
var ErrorBoundaryCaughtError = class extends Error {};
|
|
11667
|
-
var ErrorBoundary = class extends Component {
|
|
11689
|
+
var NotFoundError = /*#__PURE__*/ class extends Error {};
|
|
11690
|
+
var ErrorBoundaryCaughtError = /*#__PURE__*/ class extends Error {};
|
|
11691
|
+
var ErrorBoundary = /*#__PURE__*/ class extends Component {
|
|
11668
11692
|
constructor(props,) {
|
|
11669
11693
|
super(props,);
|
|
11670
11694
|
this.state = {
|
|
@@ -11884,14 +11908,12 @@ function lazy(factory,) {
|
|
|
11884
11908
|
const Component15 = React4.forwardRef(function LazyWithPreload(props, ref,) {
|
|
11885
11909
|
return React4.createElement(
|
|
11886
11910
|
LoadedComponent !== null && LoadedComponent !== void 0 ? LoadedComponent : LazyComponent,
|
|
11887
|
-
|
|
11888
|
-
|
|
11889
|
-
|
|
11890
|
-
|
|
11891
|
-
|
|
11892
|
-
|
|
11893
|
-
props,
|
|
11894
|
-
),
|
|
11911
|
+
ref
|
|
11912
|
+
? {
|
|
11913
|
+
ref,
|
|
11914
|
+
...props,
|
|
11915
|
+
}
|
|
11916
|
+
: props,
|
|
11895
11917
|
);
|
|
11896
11918
|
},);
|
|
11897
11919
|
Component15.preload = () => {
|
|
@@ -11916,7 +11938,22 @@ function getRouteElementId(route, hash2,) {
|
|
|
11916
11938
|
return void 0;
|
|
11917
11939
|
}
|
|
11918
11940
|
function isBot(userAgent,) {
|
|
11919
|
-
return /bot|Mediapartners-Google|Google-PageRenderer|yandex|ia_archiver/
|
|
11941
|
+
return /bot|Mediapartners-Google|Google-PageRenderer|yandex|ia_archiver/iu.test(userAgent,);
|
|
11942
|
+
}
|
|
11943
|
+
function yieldToMain(isHighPriority,) {
|
|
11944
|
+
if ('scheduler' in window) {
|
|
11945
|
+
const options = {
|
|
11946
|
+
priority: isHighPriority ? 'user-blocking' : 'user-visible',
|
|
11947
|
+
};
|
|
11948
|
+
if ('yield' in scheduler) return scheduler.yield(options,);
|
|
11949
|
+
if ('postTask' in scheduler) return scheduler.postTask(() => {}, options,);
|
|
11950
|
+
}
|
|
11951
|
+
if (isHighPriority) {
|
|
11952
|
+
return Promise.resolve();
|
|
11953
|
+
}
|
|
11954
|
+
return new Promise((resolve) => {
|
|
11955
|
+
setTimeout(resolve, 0,);
|
|
11956
|
+
},);
|
|
11920
11957
|
}
|
|
11921
11958
|
async function replacePathVariables(path, currentLocale, nextLocale, defaultLocale, collectionId, pathVariables, collectionUtils,) {
|
|
11922
11959
|
var _a, _b, _c;
|
|
@@ -12600,18 +12637,22 @@ async function switchLocale(options,) {
|
|
|
12600
12637
|
routeId: options.routeId,
|
|
12601
12638
|
pathVariables: result.pathVariables,
|
|
12602
12639
|
localeId: options.nextLocale.id,
|
|
12603
|
-
paginationInfo:
|
|
12640
|
+
paginationInfo: window.history.state.paginationInfo,
|
|
12604
12641
|
}, result.path,);
|
|
12605
12642
|
} catch {}
|
|
12606
12643
|
return result;
|
|
12607
12644
|
}
|
|
12608
|
-
function pushLoadMoreHistory(paginationInfo,) {
|
|
12645
|
+
function pushLoadMoreHistory(hash2, paginationInfo,) {
|
|
12609
12646
|
try {
|
|
12610
12647
|
const currentHistoryState = window.history.state;
|
|
12611
12648
|
if (!isHistoryState(currentHistoryState,)) return;
|
|
12649
|
+
const newPaginationInfo = {
|
|
12650
|
+
...currentHistoryState.paginationInfo,
|
|
12651
|
+
[hash2]: paginationInfo,
|
|
12652
|
+
};
|
|
12612
12653
|
replaceHistoryState({
|
|
12613
12654
|
...currentHistoryState,
|
|
12614
|
-
paginationInfo,
|
|
12655
|
+
paginationInfo: newPaginationInfo,
|
|
12615
12656
|
},);
|
|
12616
12657
|
} catch {}
|
|
12617
12658
|
}
|
|
@@ -12679,18 +12720,87 @@ function turnOnReactEventHandling() {
|
|
|
12679
12720
|
eventsToStop.forEach((event) => document.body.removeEventListener(event, stopFn, options,));
|
|
12680
12721
|
eventsToStop = void 0;
|
|
12681
12722
|
}
|
|
12682
|
-
|
|
12723
|
+
function measureSafe(name, start, end,) {
|
|
12724
|
+
try {
|
|
12725
|
+
performance.measure(name, start, end,);
|
|
12726
|
+
} catch (e) {
|
|
12727
|
+
console.warn(`Could not measure ${name}`, e,);
|
|
12728
|
+
}
|
|
12729
|
+
}
|
|
12730
|
+
var hydrationEffectHasRun = false;
|
|
12731
|
+
var hydrationInsertionEffectHasRun = false;
|
|
12732
|
+
var hydrationLayoutEffectHasRun = false;
|
|
12683
12733
|
function OnHydrationEnd({
|
|
12684
|
-
|
|
12734
|
+
addHydrationMarkers,
|
|
12685
12735
|
turnOffEventHandlerHack,
|
|
12686
12736
|
},) {
|
|
12737
|
+
const hydrationMarkPrefix = 'framer-hydration-';
|
|
12738
|
+
const hydrationStart = `${hydrationMarkPrefix}start`;
|
|
12739
|
+
const hydrationRenderEnd = `${hydrationMarkPrefix}render-end`;
|
|
12740
|
+
const hydrationLayoutEffectsEnd = `${hydrationMarkPrefix}layout-effects-end`;
|
|
12741
|
+
const hydrationEffectsEnd = `${hydrationMarkPrefix}effects-end`;
|
|
12742
|
+
const hydrationFP = `${hydrationMarkPrefix}first-paint`;
|
|
12743
|
+
useInsertionEffect(() => {
|
|
12744
|
+
if (hydrationInsertionEffectHasRun) return;
|
|
12745
|
+
hydrationInsertionEffectHasRun = true;
|
|
12746
|
+
if (addHydrationMarkers) {
|
|
12747
|
+
performance.mark(hydrationRenderEnd,);
|
|
12748
|
+
measureSafe(`${hydrationMarkPrefix}render`, hydrationStart, hydrationRenderEnd,);
|
|
12749
|
+
}
|
|
12750
|
+
}, [],);
|
|
12687
12751
|
useLayoutEffect(() => {
|
|
12688
|
-
if (
|
|
12689
|
-
|
|
12690
|
-
if (
|
|
12691
|
-
|
|
12692
|
-
|
|
12693
|
-
|
|
12752
|
+
if (hydrationLayoutEffectHasRun) return;
|
|
12753
|
+
hydrationLayoutEffectHasRun = true;
|
|
12754
|
+
if (addHydrationMarkers) {
|
|
12755
|
+
performance.mark(hydrationLayoutEffectsEnd,);
|
|
12756
|
+
measureSafe(`${hydrationMarkPrefix}layout-effects`, hydrationRenderEnd, hydrationLayoutEffectsEnd,);
|
|
12757
|
+
}
|
|
12758
|
+
requestAnimationFrame(() => {
|
|
12759
|
+
var _a, _b, _c;
|
|
12760
|
+
const browserRenderStart = `${hydrationMarkPrefix}browser-render-start`;
|
|
12761
|
+
if (addHydrationMarkers) {
|
|
12762
|
+
performance.mark(browserRenderStart,);
|
|
12763
|
+
measureSafe(
|
|
12764
|
+
`${hydrationMarkPrefix}uho`,
|
|
12765
|
+
(_b = (_a = performance.getEntriesByName(hydrationEffectsEnd,)[0]) === null || _a === void 0 ? void 0 : _a.name) !== null &&
|
|
12766
|
+
_b !== void 0
|
|
12767
|
+
? _b
|
|
12768
|
+
: (_c = performance.getEntriesByName(hydrationLayoutEffectsEnd,)[0]) === null || _c === void 0
|
|
12769
|
+
? void 0
|
|
12770
|
+
: _c.name,
|
|
12771
|
+
browserRenderStart,
|
|
12772
|
+
);
|
|
12773
|
+
}
|
|
12774
|
+
setTimeout(() => {
|
|
12775
|
+
if (turnOffEventHandlerHack) {
|
|
12776
|
+
turnOnReactEventHandling();
|
|
12777
|
+
}
|
|
12778
|
+
if (addHydrationMarkers) {
|
|
12779
|
+
performance.mark(hydrationFP,);
|
|
12780
|
+
measureSafe(`${hydrationMarkPrefix}time-to-first-paint`, hydrationStart, hydrationFP,);
|
|
12781
|
+
measureSafe(`${hydrationMarkPrefix}browser-render`, browserRenderStart, hydrationFP,);
|
|
12782
|
+
}
|
|
12783
|
+
}, 0,);
|
|
12784
|
+
},);
|
|
12785
|
+
}, [],);
|
|
12786
|
+
useEffect(() => {
|
|
12787
|
+
var _a, _b, _c;
|
|
12788
|
+
if (hydrationEffectHasRun) return;
|
|
12789
|
+
hydrationEffectHasRun = true;
|
|
12790
|
+
if (turnOffEventHandlerHack) {
|
|
12791
|
+
turnOnReactEventHandling();
|
|
12792
|
+
}
|
|
12793
|
+
if (addHydrationMarkers) {
|
|
12794
|
+
performance.mark(hydrationEffectsEnd,);
|
|
12795
|
+
measureSafe(
|
|
12796
|
+
`${hydrationMarkPrefix}effects`,
|
|
12797
|
+
(_b = (_a = performance.getEntriesByName(hydrationFP,)[0]) === null || _a === void 0 ? void 0 : _a.name) !== null && _b !== void 0
|
|
12798
|
+
? _b
|
|
12799
|
+
: (_c = performance.getEntriesByName(hydrationLayoutEffectsEnd,)[0]) === null || _c === void 0
|
|
12800
|
+
? void 0
|
|
12801
|
+
: _c.name,
|
|
12802
|
+
hydrationEffectsEnd,
|
|
12803
|
+
);
|
|
12694
12804
|
}
|
|
12695
12805
|
}, [],);
|
|
12696
12806
|
return null;
|
|
@@ -12723,7 +12833,7 @@ function RoutesProvider({
|
|
|
12723
12833
|
children,
|
|
12724
12834
|
},);
|
|
12725
12835
|
}
|
|
12726
|
-
var SuspenseErrorBoundary = class extends Component {
|
|
12836
|
+
var SuspenseErrorBoundary = /*#__PURE__*/ class extends Component {
|
|
12727
12837
|
constructor() {
|
|
12728
12838
|
super(...arguments,);
|
|
12729
12839
|
this.state = {
|
|
@@ -12771,25 +12881,15 @@ function SuspenseThatPreservesDom({
|
|
|
12771
12881
|
},);
|
|
12772
12882
|
}
|
|
12773
12883
|
var defaultLocaleId = 'default';
|
|
12774
|
-
var noopAsync = async () => {};
|
|
12775
|
-
var defaultCollectionListPaginationInfo = {
|
|
12776
|
-
paginationInfo: void 0,
|
|
12777
|
-
setPaginationInfo: noopAsync,
|
|
12778
|
-
loadMore: noopAsync,
|
|
12779
|
-
};
|
|
12780
|
-
var CollectionListPaginationInfoContext = /* @__PURE__ */ React4.createContext(defaultCollectionListPaginationInfo,);
|
|
12781
|
-
function useCollectionListPaginationInfo() {
|
|
12782
|
-
return React4.useContext(CollectionListPaginationInfoContext,);
|
|
12783
|
-
}
|
|
12784
12884
|
function useForceUpdate2() {
|
|
12785
12885
|
const [_, setForcedRenderCount,] = React4.useState(0,);
|
|
12786
12886
|
return [_, React4.useCallback(() => setForcedRenderCount((v) => v + 1), [],),];
|
|
12787
12887
|
}
|
|
12788
|
-
var
|
|
12888
|
+
var noopAsync = async () => {};
|
|
12789
12889
|
var defaultLocaleInfo = {
|
|
12790
12890
|
activeLocale: null,
|
|
12791
12891
|
locales: [],
|
|
12792
|
-
setLocale:
|
|
12892
|
+
setLocale: noopAsync,
|
|
12793
12893
|
};
|
|
12794
12894
|
var LocaleInfoContext = /* @__PURE__ */ React4.createContext(defaultLocaleInfo,);
|
|
12795
12895
|
function useLocaleInfo() {
|
|
@@ -12868,9 +12968,8 @@ function Router({
|
|
|
12868
12968
|
locales = [],
|
|
12869
12969
|
preserveQueryParams = false,
|
|
12870
12970
|
enableImproveInpDuringHydration = false,
|
|
12871
|
-
|
|
12971
|
+
addHydrationMarkers = false,
|
|
12872
12972
|
},) {
|
|
12873
|
-
var _a, _b;
|
|
12874
12973
|
useReplaceInitialState({
|
|
12875
12974
|
disabled: disableHistory,
|
|
12876
12975
|
routeId: initialRoute,
|
|
@@ -12884,46 +12983,17 @@ function Router({
|
|
|
12884
12983
|
const currentLocaleIdRef = React4.useRef(initialLocaleId,);
|
|
12885
12984
|
const currentLocaleId = currentLocaleIdRef.current;
|
|
12886
12985
|
const activeLocale = React4.useMemo(() => {
|
|
12887
|
-
var
|
|
12888
|
-
return (
|
|
12986
|
+
var _a;
|
|
12987
|
+
return (_a = locales.find(({
|
|
12889
12988
|
id: id3,
|
|
12890
12989
|
},) => {
|
|
12891
12990
|
if (!currentLocaleId) return id3 === defaultLocaleId;
|
|
12892
12991
|
return id3 === currentLocaleId;
|
|
12893
|
-
},)) !== null &&
|
|
12894
|
-
?
|
|
12992
|
+
},)) !== null && _a !== void 0
|
|
12993
|
+
? _a
|
|
12895
12994
|
: null;
|
|
12896
12995
|
}, [currentLocaleId, locales,],);
|
|
12897
12996
|
const [dep, forceUpdate,] = useForceUpdate2();
|
|
12898
|
-
const [paginationInfo, setPaginationInfo,] = React4.useState(
|
|
12899
|
-
typeof window !== 'undefined'
|
|
12900
|
-
? (_b = (_a = window === null || window === void 0 ? void 0 : window.history) === null || _a === void 0 ? void 0 : _a.state) ===
|
|
12901
|
-
null || _b === void 0
|
|
12902
|
-
? void 0
|
|
12903
|
-
: _b.pagination
|
|
12904
|
-
: void 0,
|
|
12905
|
-
);
|
|
12906
|
-
const collectionListPaginationInfo = React4.useMemo(() => {
|
|
12907
|
-
return {
|
|
12908
|
-
paginationInfo,
|
|
12909
|
-
setPaginationInfo: async (newPaginationInfo) => {
|
|
12910
|
-
startTransition2(() => {
|
|
12911
|
-
setPaginationInfo(newPaginationInfo,);
|
|
12912
|
-
},);
|
|
12913
|
-
},
|
|
12914
|
-
loadMore: async () => {
|
|
12915
|
-
if ((paginationInfo === null || paginationInfo === void 0 ? void 0 : paginationInfo.type) !== 'loadMore') return;
|
|
12916
|
-
const newPaginationInfo = {
|
|
12917
|
-
...paginationInfo,
|
|
12918
|
-
currentPage: paginationInfo.currentPage + 1,
|
|
12919
|
-
};
|
|
12920
|
-
pushLoadMoreHistory(newPaginationInfo,);
|
|
12921
|
-
startTransition2(() => {
|
|
12922
|
-
setPaginationInfo(newPaginationInfo,);
|
|
12923
|
-
},);
|
|
12924
|
-
},
|
|
12925
|
-
};
|
|
12926
|
-
}, [paginationInfo,],);
|
|
12927
12997
|
const localeInfo = React4.useMemo(() => {
|
|
12928
12998
|
return {
|
|
12929
12999
|
activeLocale,
|
|
@@ -12955,7 +13025,6 @@ function Router({
|
|
|
12955
13025
|
pathVariables: currentPathVariablesRef.current,
|
|
12956
13026
|
collectionUtils,
|
|
12957
13027
|
preserveQueryParams,
|
|
12958
|
-
paginationInfo,
|
|
12959
13028
|
},);
|
|
12960
13029
|
if (!localeResult) return;
|
|
12961
13030
|
currentPathVariablesRef.current = localeResult.pathVariables;
|
|
@@ -12965,17 +13034,7 @@ function Router({
|
|
|
12965
13034
|
} catch {}
|
|
12966
13035
|
},
|
|
12967
13036
|
};
|
|
12968
|
-
}, [
|
|
12969
|
-
activeLocale,
|
|
12970
|
-
collectionUtils,
|
|
12971
|
-
forceUpdate,
|
|
12972
|
-
locales,
|
|
12973
|
-
monitorNextRender,
|
|
12974
|
-
paginationInfo,
|
|
12975
|
-
preserveQueryParams,
|
|
12976
|
-
routes,
|
|
12977
|
-
startViewTransition2,
|
|
12978
|
-
],);
|
|
13037
|
+
}, [activeLocale, collectionUtils, forceUpdate, locales, monitorNextRender, preserveQueryParams, routes, startViewTransition2,],);
|
|
12979
13038
|
const scheduleSideEffect = useScheduleRenderSideEffects(dep,);
|
|
12980
13039
|
const setCurrentRouteId = React4.useCallback(
|
|
12981
13040
|
(routeId, localeId, hash2, pathVariables, smoothScroll = false, isHistoryTransition = false,) => {
|
|
@@ -12992,11 +13051,11 @@ function Router({
|
|
|
12992
13051
|
);
|
|
12993
13052
|
usePopStateHandler(currentRouteRef, setCurrentRouteId,);
|
|
12994
13053
|
const navigate = React4.useCallback((routeId, hash2, pathVariables, smoothScroll,) => {
|
|
12995
|
-
var
|
|
13054
|
+
var _a, _b;
|
|
12996
13055
|
const newRoute = routes[routeId];
|
|
12997
13056
|
if (pathVariables) {
|
|
12998
13057
|
const inUse = /* @__PURE__ */ new Set();
|
|
12999
|
-
const path = (
|
|
13058
|
+
const path = (_a = newRoute === null || newRoute === void 0 ? void 0 : newRoute.path) !== null && _a !== void 0 ? _a : '/';
|
|
13000
13059
|
for (const match of path.matchAll(pathVariablesRegExp,)) {
|
|
13001
13060
|
const usedVariable = match[1];
|
|
13002
13061
|
if (usedVariable === void 0) {
|
|
@@ -13016,7 +13075,7 @@ function Router({
|
|
|
13016
13075
|
pathVariables,
|
|
13017
13076
|
},)
|
|
13018
13077
|
) {
|
|
13019
|
-
if (((
|
|
13078
|
+
if (((_b = window.history.state) === null || _b === void 0 ? void 0 : _b.hash) !== hash2) {
|
|
13020
13079
|
if (!disableHistory) {
|
|
13021
13080
|
const route = routes[routeId];
|
|
13022
13081
|
if (route) {
|
|
@@ -13074,26 +13133,23 @@ function Router({
|
|
|
13074
13133
|
api,
|
|
13075
13134
|
children: jsx(LocaleInfoContext.Provider, {
|
|
13076
13135
|
value: localeInfo,
|
|
13077
|
-
children:
|
|
13078
|
-
|
|
13079
|
-
|
|
13080
|
-
|
|
13081
|
-
|
|
13082
|
-
|
|
13083
|
-
|
|
13084
|
-
|
|
13085
|
-
|
|
13086
|
-
|
|
13087
|
-
|
|
13088
|
-
|
|
13089
|
-
|
|
13090
|
-
|
|
13091
|
-
|
|
13092
|
-
|
|
13093
|
-
|
|
13094
|
-
},),
|
|
13095
|
-
],
|
|
13096
|
-
},),
|
|
13136
|
+
children: jsxs(SuspenseThatPreservesDom, {
|
|
13137
|
+
children: [
|
|
13138
|
+
jsx(ErrorBoundary, {
|
|
13139
|
+
notFoundPage,
|
|
13140
|
+
defaultPageStyle,
|
|
13141
|
+
forceUpdateKey: dep,
|
|
13142
|
+
children: jsx(React4.Fragment, {
|
|
13143
|
+
children: pageExistsInCurrentLocale
|
|
13144
|
+
? renderPage(current.page, defaultPageStyle,)
|
|
13145
|
+
: notFoundPage && renderPage(notFoundPage, defaultPageStyle,),
|
|
13146
|
+
}, remountKey,),
|
|
13147
|
+
},),
|
|
13148
|
+
jsx(OnHydrationEnd, {
|
|
13149
|
+
addHydrationMarkers,
|
|
13150
|
+
turnOffEventHandlerHack: enableImproveInpDuringHydration,
|
|
13151
|
+
},),
|
|
13152
|
+
],
|
|
13097
13153
|
},),
|
|
13098
13154
|
},),
|
|
13099
13155
|
},);
|
|
@@ -13294,18 +13350,22 @@ function useRoutePreloader(routeIds, enabled = true,) {
|
|
|
13294
13350
|
const {
|
|
13295
13351
|
getRoute,
|
|
13296
13352
|
} = useRouter();
|
|
13297
|
-
|
|
13353
|
+
useEffect(() => {
|
|
13298
13354
|
if (!getRoute || !enabled || !shouldPreloadBasedOnUA) return;
|
|
13299
13355
|
for (const routeId of routeIds) {
|
|
13300
|
-
|
|
13301
|
-
if (route === null || route === void 0 ? void 0 : route.page) preloadComponent(route.page,);
|
|
13356
|
+
void preloadRoute(getRoute(routeId,),);
|
|
13302
13357
|
}
|
|
13303
13358
|
}, [routeIds, getRoute, enabled,],);
|
|
13304
13359
|
}
|
|
13305
|
-
function
|
|
13306
|
-
if (!shouldPreloadBasedOnUA) return;
|
|
13307
|
-
|
|
13308
|
-
|
|
13360
|
+
async function preloadRoute(route,) {
|
|
13361
|
+
if (!shouldPreloadBasedOnUA || !route) return;
|
|
13362
|
+
const component = route.page;
|
|
13363
|
+
if (!component || !isLazyComponentType(component,)) return;
|
|
13364
|
+
await yieldToMain();
|
|
13365
|
+
try {
|
|
13366
|
+
await component.preload();
|
|
13367
|
+
} catch (e) {
|
|
13368
|
+
if (false) console.warn('Preload failed', route, e,);
|
|
13309
13369
|
}
|
|
13310
13370
|
}
|
|
13311
13371
|
function useRouteAnchor(routeId, {
|
|
@@ -13375,7 +13435,7 @@ function deprecationWarning(removedItem, removalVersion, replacement,) {
|
|
|
13375
13435
|
const warningText = `Deprecation warning: ${removedItem} will be removed in version ${removalVersion}${replacementText}.`;
|
|
13376
13436
|
warnOnce2(warningText,);
|
|
13377
13437
|
}
|
|
13378
|
-
var Observers = class {
|
|
13438
|
+
var Observers = /*#__PURE__*/ class {
|
|
13379
13439
|
constructor() {
|
|
13380
13440
|
__publicField(this, 'observers', /* @__PURE__ */ new Set(),);
|
|
13381
13441
|
__publicField(this, 'transactions', {},);
|
|
@@ -13495,7 +13555,7 @@ function animatableInterpolation(value, currentInterpolation,) {
|
|
|
13495
13555
|
},
|
|
13496
13556
|
};
|
|
13497
13557
|
}
|
|
13498
|
-
var AnimatableValue = class {
|
|
13558
|
+
var AnimatableValue = /*#__PURE__*/ class {
|
|
13499
13559
|
constructor(value,) {
|
|
13500
13560
|
this.value = value;
|
|
13501
13561
|
__publicField(this, 'observers', new Observers(),);
|
|
@@ -13687,7 +13747,7 @@ function controlPointsForCurve(curve,) {
|
|
|
13687
13747
|
return [0.42, 0, 0.58, 1,];
|
|
13688
13748
|
}
|
|
13689
13749
|
}
|
|
13690
|
-
var BezierAnimator = class {
|
|
13750
|
+
var BezierAnimator = /*#__PURE__*/ class {
|
|
13691
13751
|
constructor(options, interpolation,) {
|
|
13692
13752
|
this.interpolation = interpolation;
|
|
13693
13753
|
__publicField(this, 'unitBezier',);
|
|
@@ -13742,7 +13802,7 @@ var BezierAnimator = class {
|
|
|
13742
13802
|
return 1 / (200 * duration);
|
|
13743
13803
|
}
|
|
13744
13804
|
};
|
|
13745
|
-
var UnitBezier = class {
|
|
13805
|
+
var UnitBezier = /*#__PURE__*/ class {
|
|
13746
13806
|
constructor(point1, point2,) {
|
|
13747
13807
|
__publicField(this, 'a',);
|
|
13748
13808
|
__publicField(this, 'b',);
|
|
@@ -13788,7 +13848,7 @@ var UnitBezier = class {
|
|
|
13788
13848
|
return t2;
|
|
13789
13849
|
}
|
|
13790
13850
|
};
|
|
13791
|
-
var Integrator = class {
|
|
13851
|
+
var Integrator = /*#__PURE__*/ class {
|
|
13792
13852
|
constructor(accelerationFunction,) {
|
|
13793
13853
|
__publicField(this, 'accelerationForState',);
|
|
13794
13854
|
this.accelerationForState = accelerationFunction;
|
|
@@ -13823,7 +13883,7 @@ var Integrator = class {
|
|
|
13823
13883
|
return output;
|
|
13824
13884
|
}
|
|
13825
13885
|
};
|
|
13826
|
-
var FrictionAnimator = class {
|
|
13886
|
+
var FrictionAnimator = /*#__PURE__*/ class {
|
|
13827
13887
|
constructor(options,) {
|
|
13828
13888
|
__publicField(this, 'options',);
|
|
13829
13889
|
__publicField(this, 'state',);
|
|
@@ -14001,7 +14061,7 @@ function isDampingDurationSpringOptions(options,) {
|
|
|
14001
14061
|
}
|
|
14002
14062
|
return typeof options.dampingRatio === 'number' || typeof options.duration === 'number' || typeof options.mass === 'number';
|
|
14003
14063
|
}
|
|
14004
|
-
var SpringAnimator = class {
|
|
14064
|
+
var SpringAnimator = /*#__PURE__*/ class {
|
|
14005
14065
|
constructor(options, interpolation,) {
|
|
14006
14066
|
this.interpolation = interpolation;
|
|
14007
14067
|
__publicField(this, 'options',);
|
|
@@ -14088,7 +14148,7 @@ var Defaults = {
|
|
|
14088
14148
|
tolerance: 1,
|
|
14089
14149
|
},
|
|
14090
14150
|
};
|
|
14091
|
-
var InertialScrollAnimator = class {
|
|
14151
|
+
var InertialScrollAnimator = /*#__PURE__*/ class {
|
|
14092
14152
|
constructor(options,) {
|
|
14093
14153
|
__publicField(this, 'options',);
|
|
14094
14154
|
__publicField(this, 'current',);
|
|
@@ -15330,7 +15390,7 @@ var DefaultInterpolationOptions = {
|
|
|
15330
15390
|
colorModel: 'husl',
|
|
15331
15391
|
/* HUSL */
|
|
15332
15392
|
};
|
|
15333
|
-
var ValueInterpolation = class {
|
|
15393
|
+
var ValueInterpolation = /*#__PURE__*/ class {
|
|
15334
15394
|
/**
|
|
15335
15395
|
* @internal
|
|
15336
15396
|
*/
|
|
@@ -15383,7 +15443,7 @@ var Defaults2 = /* @__PURE__ */ (() => ({
|
|
|
15383
15443
|
delta: 1 / 60,
|
|
15384
15444
|
maxValues: 1e4,
|
|
15385
15445
|
}))();
|
|
15386
|
-
var PrecalculatedAnimator = class {
|
|
15446
|
+
var PrecalculatedAnimator = /*#__PURE__*/ class {
|
|
15387
15447
|
constructor(options,) {
|
|
15388
15448
|
__publicField(this, 'animator',);
|
|
15389
15449
|
__publicField(this, 'values',);
|
|
@@ -15450,7 +15510,7 @@ var PrecalculatedAnimator = class {
|
|
|
15450
15510
|
}
|
|
15451
15511
|
};
|
|
15452
15512
|
var EventEmitter3 = /* @__PURE__ */ (() => require_eventemitter3().EventEmitter)();
|
|
15453
|
-
var EventEmitter = class {
|
|
15513
|
+
var EventEmitter = /*#__PURE__*/ class {
|
|
15454
15514
|
constructor() {
|
|
15455
15515
|
__publicField(this, '_emitter', new EventEmitter3(),);
|
|
15456
15516
|
}
|
|
@@ -15566,7 +15626,7 @@ var _raf = (f) => {
|
|
|
15566
15626
|
var __raf = /* @__PURE__ */ (() => safeWindow['requestAnimationFrame'] || _raf)();
|
|
15567
15627
|
var raf = (f) => __raf(f,);
|
|
15568
15628
|
var LoopTimeStep = /* @__PURE__ */ (() => 1 / 60)();
|
|
15569
|
-
var Loop = class extends EventEmitter {
|
|
15629
|
+
var Loop = /*#__PURE__*/ class extends EventEmitter {
|
|
15570
15630
|
/**
|
|
15571
15631
|
* @internal
|
|
15572
15632
|
*/
|
|
@@ -15773,7 +15833,7 @@ var RenderTarget = {
|
|
|
15773
15833
|
return false;
|
|
15774
15834
|
},
|
|
15775
15835
|
};
|
|
15776
|
-
var AnimationDriver = class {
|
|
15836
|
+
var AnimationDriver = /*#__PURE__*/ class {
|
|
15777
15837
|
constructor(animator, updateCallback, finishedCallback,) {
|
|
15778
15838
|
this.animator = animator;
|
|
15779
15839
|
this.updateCallback = updateCallback;
|
|
@@ -15799,7 +15859,7 @@ var AnimationDriver = class {
|
|
|
15799
15859
|
return this.animator.isFinished();
|
|
15800
15860
|
}
|
|
15801
15861
|
};
|
|
15802
|
-
var MainLoopAnimationDriver = class extends AnimationDriver {
|
|
15862
|
+
var MainLoopAnimationDriver = /*#__PURE__*/ class extends AnimationDriver {
|
|
15803
15863
|
play() {
|
|
15804
15864
|
if (RenderEnvironment.target !== RenderTarget.preview) {
|
|
15805
15865
|
this.finishedCallback && this.finishedCallback(false,);
|
|
@@ -15820,7 +15880,7 @@ var DefaultDeprecatedAnimationOptions = {
|
|
|
15820
15880
|
colorModel: 'husl',
|
|
15821
15881
|
/* HUSL */
|
|
15822
15882
|
};
|
|
15823
|
-
var FramerAnimation = class {
|
|
15883
|
+
var FramerAnimation = /*#__PURE__*/ class {
|
|
15824
15884
|
/**
|
|
15825
15885
|
* @internal
|
|
15826
15886
|
*/
|
|
@@ -16513,7 +16573,7 @@ function getColorsFromTheme(theme, type,) {
|
|
|
16513
16573
|
screenColor: isDarkTheme ? '#333' : '#eee',
|
|
16514
16574
|
};
|
|
16515
16575
|
}
|
|
16516
|
-
var ErrorBoundary2 = class extends Component {
|
|
16576
|
+
var ErrorBoundary2 = /*#__PURE__*/ class extends Component {
|
|
16517
16577
|
constructor() {
|
|
16518
16578
|
super(...arguments,);
|
|
16519
16579
|
__publicField(this, 'state', {},);
|
|
@@ -18129,6 +18189,12 @@ function useConstraints(props,) {
|
|
|
18129
18189
|
const calculatedRect = calculateRect(props, parentSize, true,);
|
|
18130
18190
|
return calculatedRect;
|
|
18131
18191
|
}
|
|
18192
|
+
function isAutoSized({
|
|
18193
|
+
width,
|
|
18194
|
+
height,
|
|
18195
|
+
},) {
|
|
18196
|
+
return width === 'auto' || width === 'min-content' || height === 'auto' || height === 'min-content';
|
|
18197
|
+
}
|
|
18132
18198
|
var ControlType = /* @__PURE__ */ ((ControlType2) => {
|
|
18133
18199
|
ControlType2['Boolean'] = 'boolean';
|
|
18134
18200
|
ControlType2['Number'] = 'number';
|
|
@@ -18157,6 +18223,7 @@ var ControlType = /* @__PURE__ */ ((ControlType2) => {
|
|
|
18157
18223
|
ControlType2['Cursor'] = 'cursor';
|
|
18158
18224
|
ControlType2['Padding'] = 'padding';
|
|
18159
18225
|
ControlType2['BorderRadius'] = 'borderradius';
|
|
18226
|
+
ControlType2['CollectionReference'] = 'collectionreference';
|
|
18160
18227
|
return ControlType2;
|
|
18161
18228
|
})(ControlType || {},);
|
|
18162
18229
|
var isFlexboxGapSupportedCached;
|
|
@@ -19015,8 +19082,8 @@ var didInject = false;
|
|
|
19015
19082
|
function injectComponentCSSRules() {
|
|
19016
19083
|
if (didInject) return;
|
|
19017
19084
|
didInject = true;
|
|
19018
|
-
const
|
|
19019
|
-
for (const rule of
|
|
19085
|
+
const styles4 = RenderTarget.current() === RenderTarget.preview ? combinedCSSRulesForPreview : combinedCSSRules;
|
|
19086
|
+
for (const rule of styles4) {
|
|
19020
19087
|
injectCSSRule(rule, void 0, void 0,);
|
|
19021
19088
|
}
|
|
19022
19089
|
}
|
|
@@ -19062,6 +19129,7 @@ function getControlDefaultValue(control,) {
|
|
|
19062
19129
|
try {
|
|
19063
19130
|
switch (control.type) {
|
|
19064
19131
|
case 'string':
|
|
19132
|
+
case 'collectionreference':
|
|
19065
19133
|
case 'color':
|
|
19066
19134
|
case 'date':
|
|
19067
19135
|
case 'link':
|
|
@@ -21257,7 +21325,7 @@ function Border(props,) {
|
|
|
21257
21325
|
},);
|
|
21258
21326
|
}
|
|
21259
21327
|
function htmlElementAsMotionComponent(asElem,) {
|
|
21260
|
-
return asElem && asElem !== 'search' && asElem !== 'slot' && asElem !== 'template' ? motion
|
|
21328
|
+
return asElem && asElem !== 'search' && asElem !== 'slot' && asElem !== 'template' ? motion[asElem] : motion['div'];
|
|
21261
21329
|
}
|
|
21262
21330
|
var isChrome2 = /* @__PURE__ */ isChrome();
|
|
21263
21331
|
function layoutHintDataPropsForCenter(center,) {
|
|
@@ -21292,25 +21360,7 @@ function processOverrideForwarding(props, children,) {
|
|
|
21292
21360
|
};
|
|
21293
21361
|
}
|
|
21294
21362
|
}
|
|
21295
|
-
|
|
21296
|
-
const extractions = props._overrideForwardingDescription;
|
|
21297
|
-
if (extractions) {
|
|
21298
|
-
_forwardedOverrides = void 0;
|
|
21299
|
-
for (const key7 in extractions) {
|
|
21300
|
-
const propName = extractions[key7];
|
|
21301
|
-
const value = props[propName];
|
|
21302
|
-
if (value !== void 0) {
|
|
21303
|
-
if (!_forwardedOverrides) {
|
|
21304
|
-
_forwardedOverrides = {};
|
|
21305
|
-
props = {
|
|
21306
|
-
...props,
|
|
21307
|
-
};
|
|
21308
|
-
}
|
|
21309
|
-
_forwardedOverrides[key7] = props[propName];
|
|
21310
|
-
delete props[propName];
|
|
21311
|
-
}
|
|
21312
|
-
}
|
|
21313
|
-
}
|
|
21363
|
+
const _forwardedOverrides = props._forwardedOverrides;
|
|
21314
21364
|
if (!_forwardedOverrides) {
|
|
21315
21365
|
return {
|
|
21316
21366
|
props,
|
|
@@ -21380,7 +21430,7 @@ function useForceUpdate3() {
|
|
|
21380
21430
|
}
|
|
21381
21431
|
var ResizeObserverPolyfill = /* @__PURE__ */ (() => require_resize_observer_umd().ResizeObserver)();
|
|
21382
21432
|
var DEFAULT_SIZE = 200;
|
|
21383
|
-
var SharedObserver = class {
|
|
21433
|
+
var SharedObserver = /*#__PURE__*/ class {
|
|
21384
21434
|
constructor() {
|
|
21385
21435
|
__publicField(this, 'sharedResizeObserver',);
|
|
21386
21436
|
__publicField(this, 'callbacks', /* @__PURE__ */ new WeakMap(),);
|
|
@@ -21711,6 +21761,7 @@ function resetSetStyle(element, key7, toValue, microtask2 = true,) {
|
|
|
21711
21761
|
}
|
|
21712
21762
|
}
|
|
21713
21763
|
var Layer = /* @__PURE__ */ (() => {
|
|
21764
|
+
/*#__PURE__*/
|
|
21714
21765
|
class Layer2 extends Component {
|
|
21715
21766
|
constructor() {
|
|
21716
21767
|
super(...arguments,);
|
|
@@ -22441,12 +22492,6 @@ function resolveParentSize(props, unwrappedProps, rect, inCodeComponent,) {
|
|
|
22441
22492
|
}
|
|
22442
22493
|
return 0;
|
|
22443
22494
|
}
|
|
22444
|
-
function isAutoSized({
|
|
22445
|
-
width,
|
|
22446
|
-
height,
|
|
22447
|
-
},) {
|
|
22448
|
-
return width === 'auto' || width === 'min-content' || height === 'auto' || height === 'min-content';
|
|
22449
|
-
}
|
|
22450
22495
|
function EmptyState({
|
|
22451
22496
|
title = '',
|
|
22452
22497
|
description = 'Click and drag the connector to any frame on the canvas \u2192',
|
|
@@ -22548,7 +22593,7 @@ var SharedLayoutContext = /* @__PURE__ */ React4.createContext({
|
|
|
22548
22593
|
scheduleProjectionDidUpdate: () => {},
|
|
22549
22594
|
initLead: () => {},
|
|
22550
22595
|
},);
|
|
22551
|
-
var SharedLayoutRoot = class extends Component {
|
|
22596
|
+
var SharedLayoutRoot = /*#__PURE__*/ class extends Component {
|
|
22552
22597
|
constructor() {
|
|
22553
22598
|
super(...arguments,);
|
|
22554
22599
|
__publicField(this, 'shouldAnimate', false,);
|
|
@@ -22631,7 +22676,7 @@ function MagicMotionCrossfadeRoot(props,) {
|
|
|
22631
22676
|
children: props.children,
|
|
22632
22677
|
},);
|
|
22633
22678
|
}
|
|
22634
|
-
var SharedIntersectionObserver = class {
|
|
22679
|
+
var SharedIntersectionObserver = /*#__PURE__*/ class {
|
|
22635
22680
|
constructor(options,) {
|
|
22636
22681
|
__publicField(this, 'sharedIntersectionObserver',);
|
|
22637
22682
|
__publicField(this, 'callbacks', /* @__PURE__ */ new WeakMap(),);
|
|
@@ -22775,7 +22820,7 @@ function pointForEvent(event, customTarget = null,) {
|
|
|
22775
22820
|
};
|
|
22776
22821
|
return point2;
|
|
22777
22822
|
}
|
|
22778
|
-
var FramerEvent = class {
|
|
22823
|
+
var FramerEvent = /*#__PURE__*/ class {
|
|
22779
22824
|
/**
|
|
22780
22825
|
* @internal
|
|
22781
22826
|
*/
|
|
@@ -22882,7 +22927,7 @@ var DraggingContext = /* @__PURE__ */ React4.createContext({
|
|
|
22882
22927
|
dragging: false,
|
|
22883
22928
|
},);
|
|
22884
22929
|
function WithDragging(Component15,) {
|
|
22885
|
-
const _WithDraggingHOC = class extends React4.Component {
|
|
22930
|
+
const _WithDraggingHOC = /*#__PURE__*/ class extends React4.Component {
|
|
22886
22931
|
constructor(props, defaultProps,) {
|
|
22887
22932
|
super(props, defaultProps,);
|
|
22888
22933
|
__publicField(this, 'state', {
|
|
@@ -23701,7 +23746,7 @@ var ObservableObject = /* @__PURE__ */ (() => {
|
|
|
23701
23746
|
};
|
|
23702
23747
|
return ObservableObject2;
|
|
23703
23748
|
})();
|
|
23704
|
-
var ObservableObjectProxyHandler = class {
|
|
23749
|
+
var ObservableObjectProxyHandler = /*#__PURE__*/ class {
|
|
23705
23750
|
constructor() {
|
|
23706
23751
|
__publicField(this, 'set', (target, key7, value, receiver,) => {
|
|
23707
23752
|
if (key7 === $private) {
|
|
@@ -24377,7 +24422,7 @@ function applyLayoutProp(style, props, key7,) {
|
|
|
24377
24422
|
}
|
|
24378
24423
|
}
|
|
24379
24424
|
var DeprecatedFrame = /* @__PURE__ */ (() => {
|
|
24380
|
-
const _DeprecatedFrameInner = class extends Layer {
|
|
24425
|
+
const _DeprecatedFrameInner = /*#__PURE__*/ class extends Layer {
|
|
24381
24426
|
constructor() {
|
|
24382
24427
|
super(...arguments,);
|
|
24383
24428
|
__publicField(this, 'element', null,);
|
|
@@ -24596,7 +24641,7 @@ var DeprecatedFrame = /* @__PURE__ */ (() => {
|
|
|
24596
24641
|
const {
|
|
24597
24642
|
visible,
|
|
24598
24643
|
id: id3,
|
|
24599
|
-
className,
|
|
24644
|
+
className: className2,
|
|
24600
24645
|
} = this.props;
|
|
24601
24646
|
if (!visible) {
|
|
24602
24647
|
return null;
|
|
@@ -24611,7 +24656,7 @@ var DeprecatedFrame = /* @__PURE__ */ (() => {
|
|
|
24611
24656
|
id: id3,
|
|
24612
24657
|
style,
|
|
24613
24658
|
ref: this.setElement,
|
|
24614
|
-
className,
|
|
24659
|
+
className: className2,
|
|
24615
24660
|
children: [
|
|
24616
24661
|
/* @__PURE__ */ jsx(ProvideParentSize, {
|
|
24617
24662
|
parentSize,
|
|
@@ -24624,19 +24669,7 @@ var DeprecatedFrame = /* @__PURE__ */ (() => {
|
|
|
24624
24669
|
},);
|
|
24625
24670
|
}
|
|
24626
24671
|
layoutChildren() {
|
|
24627
|
-
|
|
24628
|
-
const extractions = this.props._overrideForwardingDescription;
|
|
24629
|
-
if (extractions) {
|
|
24630
|
-
let added = false;
|
|
24631
|
-
_forwardedOverrides = {};
|
|
24632
|
-
for (const [key7, value,] of Object.entries(extractions,)) {
|
|
24633
|
-
added = true;
|
|
24634
|
-
_forwardedOverrides[key7] = asRecord(this.props,)[value];
|
|
24635
|
-
}
|
|
24636
|
-
if (!added) {
|
|
24637
|
-
_forwardedOverrides = void 0;
|
|
24638
|
-
}
|
|
24639
|
-
}
|
|
24672
|
+
const _forwardedOverrides = this.props._forwardedOverrides;
|
|
24640
24673
|
let children = React4.Children.map(this.props.children, (child) => {
|
|
24641
24674
|
if (isConstraintSupportingChild(child,)) {
|
|
24642
24675
|
return React4.cloneElement(child, {
|
|
@@ -24770,7 +24803,7 @@ var Frame = /* @__PURE__ */ (() => {
|
|
|
24770
24803
|
FrameInner['displayName'] = 'Frame';
|
|
24771
24804
|
return FrameInner;
|
|
24772
24805
|
})();
|
|
24773
|
-
var LayoutTree = class extends Component {
|
|
24806
|
+
var LayoutTree = /*#__PURE__*/ class extends Component {
|
|
24774
24807
|
constructor() {
|
|
24775
24808
|
super(...arguments,);
|
|
24776
24809
|
__publicField(this, 'layoutMaybeMutated',);
|
|
@@ -25208,7 +25241,7 @@ var allAnimatableProperties = {
|
|
|
25208
25241
|
originZ: 0,
|
|
25209
25242
|
opacity: 1,
|
|
25210
25243
|
};
|
|
25211
|
-
var NavigatorMock = class {
|
|
25244
|
+
var NavigatorMock = /*#__PURE__*/ class {
|
|
25212
25245
|
constructor() {
|
|
25213
25246
|
__publicField(this, 'warning', () => {
|
|
25214
25247
|
warnOnce2('The Navigator API is only available inside of Framer: https://www.framer.com/',);
|
|
@@ -26233,20 +26266,17 @@ function containerContent(item,) {
|
|
|
26233
26266
|
function backdropTapAction(transition, goBackAction,) {
|
|
26234
26267
|
if (transition.goBackOnTapOutside !== false) return goBackAction;
|
|
26235
26268
|
}
|
|
26236
|
-
function NavigationStyleSheet() {
|
|
26237
|
-
React4.useInsertionEffect(() => {
|
|
26238
|
-
injectComponentCSSRules();
|
|
26239
|
-
}, [],);
|
|
26240
|
-
return null;
|
|
26241
|
-
}
|
|
26242
26269
|
function NavigationWrapper(props,) {
|
|
26243
26270
|
const resetProjection = useResetProjection();
|
|
26244
26271
|
const skipLayoutAnimation = useInstantLayoutTransition();
|
|
26245
|
-
|
|
26272
|
+
React4.useInsertionEffect(() => {
|
|
26273
|
+
injectComponentCSSRules();
|
|
26274
|
+
}, [],);
|
|
26275
|
+
return /* @__PURE__ */ jsx(Navigation, {
|
|
26246
26276
|
...props,
|
|
26247
26277
|
resetProjection,
|
|
26248
26278
|
skipLayoutAnimation,
|
|
26249
|
-
children:
|
|
26279
|
+
children: props.children,
|
|
26250
26280
|
},);
|
|
26251
26281
|
}
|
|
26252
26282
|
var import_hoist_non_react_statics3 = __toESM(require_hoist_non_react_statics_cjs(), 1,);
|
|
@@ -26265,7 +26295,7 @@ var NavigationTransitionType = /* @__PURE__ */ ((NavigationTransitionType2) => {
|
|
|
26265
26295
|
return NavigationTransitionType2;
|
|
26266
26296
|
})(NavigationTransitionType || {},);
|
|
26267
26297
|
function WithNavigator(BaseComponent, navigationTransition, navigationTransitionDirection, NavigationTarget, navigationTransitionOptions,) {
|
|
26268
|
-
const InternalWithNavigator = class extends React4.Component {
|
|
26298
|
+
const InternalWithNavigator = /*#__PURE__*/ class extends React4.Component {
|
|
26269
26299
|
render() {
|
|
26270
26300
|
return /* @__PURE__ */ jsx(NavigationContext.Consumer, {
|
|
26271
26301
|
children: (navigation) => {
|
|
@@ -26344,6 +26374,50 @@ function transitionDirectionToSide(direction,) {
|
|
|
26344
26374
|
}
|
|
26345
26375
|
var AnimateSharedLayout = (props) => props.children;
|
|
26346
26376
|
var Draggable = /* @__PURE__ */ WithDragging(DeprecatedFrameWithEvents,);
|
|
26377
|
+
function useInfiniteScroll({
|
|
26378
|
+
ref: elementRef,
|
|
26379
|
+
loadMore,
|
|
26380
|
+
rootMargin = '0px',
|
|
26381
|
+
threshold,
|
|
26382
|
+
paginationInfo,
|
|
26383
|
+
},) {
|
|
26384
|
+
const callback = React4.useCallback((entries) => {
|
|
26385
|
+
const entry = entries[0];
|
|
26386
|
+
const isIntersecting = entry == null ? void 0 : entry.isIntersecting;
|
|
26387
|
+
if (isIntersecting) loadMore();
|
|
26388
|
+
}, [loadMore,],);
|
|
26389
|
+
React4.useEffect(() => {
|
|
26390
|
+
if (!elementRef.current) return;
|
|
26391
|
+
const observer2 = new IntersectionObserver(callback, {
|
|
26392
|
+
rootMargin,
|
|
26393
|
+
threshold,
|
|
26394
|
+
},);
|
|
26395
|
+
observer2.observe(elementRef.current,);
|
|
26396
|
+
return () => {
|
|
26397
|
+
observer2.disconnect();
|
|
26398
|
+
};
|
|
26399
|
+
}, [elementRef, callback, rootMargin, threshold, paginationInfo.currentPage,],);
|
|
26400
|
+
}
|
|
26401
|
+
function withInfiniteScroll(Component15,) {
|
|
26402
|
+
return React4.forwardRef(({
|
|
26403
|
+
__paginationInfo,
|
|
26404
|
+
__loadMore,
|
|
26405
|
+
...props
|
|
26406
|
+
}, ref,) => {
|
|
26407
|
+
const backupRef = React4.useRef(null,);
|
|
26408
|
+
const infiniteScrollRef = ref ?? backupRef;
|
|
26409
|
+
useInfiniteScroll({
|
|
26410
|
+
rootMargin: '500px',
|
|
26411
|
+
loadMore: __loadMore,
|
|
26412
|
+
ref: infiniteScrollRef,
|
|
26413
|
+
paginationInfo: __paginationInfo,
|
|
26414
|
+
},);
|
|
26415
|
+
return /* @__PURE__ */ jsx(Component15, {
|
|
26416
|
+
...props,
|
|
26417
|
+
ref: infiniteScrollRef,
|
|
26418
|
+
},);
|
|
26419
|
+
},);
|
|
26420
|
+
}
|
|
26347
26421
|
var import_process2 = __toESM(require_browser(), 1,);
|
|
26348
26422
|
function debounce(fn, time2,) {
|
|
26349
26423
|
let timeout;
|
|
@@ -26535,7 +26609,7 @@ var Stack = /* @__PURE__ */ (() => {
|
|
|
26535
26609
|
useFlexboxGap: externalUseFlexboxGap = true,
|
|
26536
26610
|
children,
|
|
26537
26611
|
style: styleProp,
|
|
26538
|
-
className,
|
|
26612
|
+
className: className2,
|
|
26539
26613
|
willChangeTransform,
|
|
26540
26614
|
__fromCodeComponentNode,
|
|
26541
26615
|
parentSize,
|
|
@@ -26623,7 +26697,7 @@ var Stack = /* @__PURE__ */ (() => {
|
|
|
26623
26697
|
ref: useForwardedRef(forwardedRef, stackRef,),
|
|
26624
26698
|
...attributes,
|
|
26625
26699
|
style,
|
|
26626
|
-
className,
|
|
26700
|
+
className: className2,
|
|
26627
26701
|
layoutScroll: true,
|
|
26628
26702
|
children: /* @__PURE__ */ jsx(motion.div, {
|
|
26629
26703
|
'data-framer-stack-content-wrapper': true,
|
|
@@ -27722,7 +27796,7 @@ function stateName(state,) {
|
|
|
27722
27796
|
function containsBitmask(value, bitmask,) {
|
|
27723
27797
|
return (value & bitmask) !== 0;
|
|
27724
27798
|
}
|
|
27725
|
-
var GestureRecognizer = class {
|
|
27799
|
+
var GestureRecognizer = /*#__PURE__*/ class {
|
|
27726
27800
|
constructor() {
|
|
27727
27801
|
__publicField(this, '_state', 2,/* Possible */
|
|
27728
27802
|
);
|
|
@@ -27798,7 +27872,7 @@ var GestureRecognizer = class {
|
|
|
27798
27872
|
}
|
|
27799
27873
|
}
|
|
27800
27874
|
};
|
|
27801
|
-
var MouseWheelGestureRecognizer = class extends GestureRecognizer {
|
|
27875
|
+
var MouseWheelGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
|
|
27802
27876
|
constructor() {
|
|
27803
27877
|
super(...arguments,);
|
|
27804
27878
|
__publicField(this, 'startEvent',);
|
|
@@ -27843,7 +27917,7 @@ var MouseWheelGestureRecognizer = class extends GestureRecognizer {
|
|
|
27843
27917
|
this.onMouseWheelEnd(event,);
|
|
27844
27918
|
}
|
|
27845
27919
|
};
|
|
27846
|
-
var PanGestureRecognizer = class extends GestureRecognizer {
|
|
27920
|
+
var PanGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
|
|
27847
27921
|
constructor() {
|
|
27848
27922
|
super(...arguments,);
|
|
27849
27923
|
__publicField(this, 'startEvent',);
|
|
@@ -27918,7 +27992,7 @@ var PanGestureRecognizer = class extends GestureRecognizer {
|
|
|
27918
27992
|
}
|
|
27919
27993
|
}
|
|
27920
27994
|
};
|
|
27921
|
-
var TapGestureRecognizer = class extends GestureRecognizer {
|
|
27995
|
+
var TapGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
|
|
27922
27996
|
constructor() {
|
|
27923
27997
|
super(...arguments,);
|
|
27924
27998
|
__publicField(this, 'eventType', 'tap',);
|
|
@@ -27948,7 +28022,7 @@ var TapGestureRecognizer = class extends GestureRecognizer {
|
|
|
27948
28022
|
}
|
|
27949
28023
|
}
|
|
27950
28024
|
};
|
|
27951
|
-
var FramerEventSession = class {
|
|
28025
|
+
var FramerEventSession = /*#__PURE__*/ class {
|
|
27952
28026
|
constructor(dispatcher, customOrigin,) {
|
|
27953
28027
|
__publicField(this, 'events', [],);
|
|
27954
28028
|
__publicField(this, 'recognizers', [],);
|
|
@@ -28108,7 +28182,7 @@ var FramerEventSession = class {
|
|
|
28108
28182
|
return subtract(event.devicePoint, this.startEvent.devicePoint,);
|
|
28109
28183
|
}
|
|
28110
28184
|
};
|
|
28111
|
-
var MouseEventListener = class extends Component {
|
|
28185
|
+
var MouseEventListener = /*#__PURE__*/ class extends Component {
|
|
28112
28186
|
constructor() {
|
|
28113
28187
|
super(...arguments,);
|
|
28114
28188
|
__publicField(this, 'domMouseDown', (originalEvent) => {
|
|
@@ -28160,7 +28234,7 @@ var MouseEventListener = class extends Component {
|
|
|
28160
28234
|
safeWindow.removeEventListener('wheel', this.domMouseWheel,);
|
|
28161
28235
|
}
|
|
28162
28236
|
};
|
|
28163
|
-
var TouchEventListener = class extends Component {
|
|
28237
|
+
var TouchEventListener = /*#__PURE__*/ class extends Component {
|
|
28164
28238
|
constructor() {
|
|
28165
28239
|
super(...arguments,);
|
|
28166
28240
|
__publicField(this, 'domTouchStart', (originalEvent) => {
|
|
@@ -28916,7 +28990,7 @@ var NativeScroll = /* @__PURE__ */ React4.forwardRef(function NativeScroll2(prop
|
|
|
28916
28990
|
children,
|
|
28917
28991
|
resetOffset,
|
|
28918
28992
|
onScroll,
|
|
28919
|
-
className,
|
|
28993
|
+
className: className2,
|
|
28920
28994
|
// Not (yet) supported
|
|
28921
28995
|
directionLock: _directionLock = false,
|
|
28922
28996
|
wheelEnabled: _wheelEnabled = true,
|
|
@@ -28987,7 +29061,7 @@ var NativeScroll = /* @__PURE__ */ React4.forwardRef(function NativeScroll2(prop
|
|
|
28987
29061
|
layoutId,
|
|
28988
29062
|
onBeforeLayoutMeasure: updateScrollOffsetHandler,
|
|
28989
29063
|
layoutScroll: true,
|
|
28990
|
-
className: cx(
|
|
29064
|
+
className: cx(className2, `direction-${direction}`, !scrollBarVisible && 'scrollbar-hidden',),
|
|
28991
29065
|
children: [
|
|
28992
29066
|
/* @__PURE__ */ jsx(EmptyState, {
|
|
28993
29067
|
children,
|
|
@@ -29207,7 +29281,7 @@ function useObserveData() {
|
|
|
29207
29281
|
const context = React4.useContext(DataObserverContext,);
|
|
29208
29282
|
return !isNaN(context.update,);
|
|
29209
29283
|
}
|
|
29210
|
-
var DataObserver = class extends Component {
|
|
29284
|
+
var DataObserver = /*#__PURE__*/ class extends Component {
|
|
29211
29285
|
constructor() {
|
|
29212
29286
|
super(...arguments,);
|
|
29213
29287
|
__publicField(this, 'observers', [],);
|
|
@@ -29551,7 +29625,6 @@ function usePresenceAnimation(
|
|
|
29551
29625
|
const [isPresent2, safeToRemove,] = usePresence();
|
|
29552
29626
|
const lastPresence = useRef(false,);
|
|
29553
29627
|
const effect = useConstant2(() => {
|
|
29554
|
-
var _a;
|
|
29555
29628
|
const base = initial ?? style;
|
|
29556
29629
|
if (!isObject2(base,)) {
|
|
29557
29630
|
return {
|
|
@@ -29560,7 +29633,7 @@ function usePresenceAnimation(
|
|
|
29560
29633
|
}
|
|
29561
29634
|
const defaults = {};
|
|
29562
29635
|
for (const key7 in base) {
|
|
29563
|
-
const value = isObject2(base,) ?
|
|
29636
|
+
const value = isObject2(base,) ? base[key7] : void 0;
|
|
29564
29637
|
if (!isNumber2(value,)) continue;
|
|
29565
29638
|
defaults[key7] = value;
|
|
29566
29639
|
}
|
|
@@ -29789,6 +29862,7 @@ function useStyleAppearEffect(options, ref,) {
|
|
|
29789
29862
|
}
|
|
29790
29863
|
return new Promise((resolve) => {
|
|
29791
29864
|
if (shouldReduceMotion && key7 !== 'opacity') {
|
|
29865
|
+
if (isNumber2(toValue,)) effect.values[key7].set(toValue,);
|
|
29792
29866
|
resolve();
|
|
29793
29867
|
} else {
|
|
29794
29868
|
const opts = {
|
|
@@ -30221,6 +30295,30 @@ function ComponentPresetsConsumer({
|
|
|
30221
30295
|
const presetProps = componentPresets[componentIdentifier] ?? {};
|
|
30222
30296
|
return children(presetProps,);
|
|
30223
30297
|
}
|
|
30298
|
+
function setRef(ref, value,) {
|
|
30299
|
+
if (isFunction(ref,)) {
|
|
30300
|
+
ref(value,);
|
|
30301
|
+
} else if (isMutableRef(ref,)) {
|
|
30302
|
+
ref.current = value;
|
|
30303
|
+
}
|
|
30304
|
+
}
|
|
30305
|
+
function isMutableRef(ref,) {
|
|
30306
|
+
return isObject2(ref,) && 'current' in ref;
|
|
30307
|
+
}
|
|
30308
|
+
function createRefWithCallback(ref, callback,) {
|
|
30309
|
+
return {
|
|
30310
|
+
get current() {
|
|
30311
|
+
return ref.current;
|
|
30312
|
+
},
|
|
30313
|
+
set current(value,) {
|
|
30314
|
+
ref.current = value;
|
|
30315
|
+
callback(value,);
|
|
30316
|
+
},
|
|
30317
|
+
};
|
|
30318
|
+
}
|
|
30319
|
+
function mergeRefs(...refs) {
|
|
30320
|
+
return (value) => refs.forEach((ref) => setRef(ref, value,));
|
|
30321
|
+
}
|
|
30224
30322
|
function useCloneChildrenWithPropsAndRef(forwardedRef,) {
|
|
30225
30323
|
const hook = useConstant2(() => createHook(forwardedRef,));
|
|
30226
30324
|
hook.useSetup(forwardedRef,);
|
|
@@ -30310,16 +30408,6 @@ function createRefFunction(state,) {
|
|
|
30310
30408
|
setRef(prevForwardedRef, value,);
|
|
30311
30409
|
};
|
|
30312
30410
|
}
|
|
30313
|
-
function setRef(ref, value,) {
|
|
30314
|
-
if (isFunction(ref,)) {
|
|
30315
|
-
ref(value,);
|
|
30316
|
-
} else if (isMutableRef(ref,)) {
|
|
30317
|
-
ref.current = value;
|
|
30318
|
-
}
|
|
30319
|
-
}
|
|
30320
|
-
function isMutableRef(ref,) {
|
|
30321
|
-
return isObject2(ref,) && 'current' in ref;
|
|
30322
|
-
}
|
|
30323
30411
|
var ComponentViewportContext = /* @__PURE__ */ React4.createContext({},);
|
|
30324
30412
|
function useComponentViewport() {
|
|
30325
30413
|
return React4.useContext(ComponentViewportContext,);
|
|
@@ -30351,7 +30439,7 @@ var withGeneratedLayoutId = (Component15) =>
|
|
|
30351
30439
|
ref,
|
|
30352
30440
|
},);
|
|
30353
30441
|
},);
|
|
30354
|
-
var ContainerErrorBoundary = class extends Component {
|
|
30442
|
+
var ContainerErrorBoundary = /*#__PURE__*/ class extends Component {
|
|
30355
30443
|
constructor() {
|
|
30356
30444
|
super(...arguments,);
|
|
30357
30445
|
__publicField(this, 'state', {
|
|
@@ -30445,8 +30533,8 @@ var withCSS = (Component15, escapedCSS, componentSerializationId,) =>
|
|
|
30445
30533
|
}
|
|
30446
30534
|
React4.useInsertionEffect(() => {
|
|
30447
30535
|
if (componentSerializationId && componentsWithServerRenderedStyles.has(componentSerializationId,)) return;
|
|
30448
|
-
const
|
|
30449
|
-
|
|
30536
|
+
const css2 = Array.isArray(escapedCSS,) ? escapedCSS : escapedCSS.split('\n',);
|
|
30537
|
+
css2.forEach((rule) => rule && injectCSSRule(rule, sheet, cache2,));
|
|
30450
30538
|
}, [],);
|
|
30451
30539
|
return /* @__PURE__ */ jsx(Component15, {
|
|
30452
30540
|
...props,
|
|
@@ -31204,7 +31292,7 @@ function Floating({
|
|
|
31204
31292
|
offsetX,
|
|
31205
31293
|
offsetY,
|
|
31206
31294
|
anchorRef,
|
|
31207
|
-
className,
|
|
31295
|
+
className: className2,
|
|
31208
31296
|
children,
|
|
31209
31297
|
portalSelector,
|
|
31210
31298
|
zIndex,
|
|
@@ -31282,7 +31370,7 @@ function Floating({
|
|
|
31282
31370
|
return ReactDOM.createPortal(
|
|
31283
31371
|
/* @__PURE__ */ jsxs('div', {
|
|
31284
31372
|
ref: floatingPositionRef,
|
|
31285
|
-
className,
|
|
31373
|
+
className: className2,
|
|
31286
31374
|
style: {
|
|
31287
31375
|
// Initially rendered as hidden, but the layout effect will set
|
|
31288
31376
|
// to visible when the position is calculated.
|
|
@@ -31323,7 +31411,7 @@ function Floating({
|
|
|
31323
31411
|
);
|
|
31324
31412
|
}
|
|
31325
31413
|
var GeneratedComponentContext = /* @__PURE__ */ React4.createContext(void 0,);
|
|
31326
|
-
var LazyValue = class {
|
|
31414
|
+
var LazyValue = /*#__PURE__*/ class {
|
|
31327
31415
|
constructor(resolver,) {
|
|
31328
31416
|
this.resolver = resolver;
|
|
31329
31417
|
__publicField(this, 'status',);
|
|
@@ -31469,6 +31557,92 @@ function navigateFromAttributes(navigate, element, implicitPathVariables,) {
|
|
|
31469
31557
|
navigate(routeId, elementId, Object.assign({}, implicitPathVariables, pathVariables,), smoothScroll,);
|
|
31470
31558
|
return true;
|
|
31471
31559
|
}
|
|
31560
|
+
var PRELOAD_AFTER_MS = 500;
|
|
31561
|
+
var OBSERVER_THRESHOLD = 0.9;
|
|
31562
|
+
var LOW_MEMORY_THRESHOLD = 1.7;
|
|
31563
|
+
var MAX_CONCURRENT_PRELOADS_SLOW_NETWORK = 4;
|
|
31564
|
+
var MAX_CONCURRENT_PRELOADS_FAST_NETWORK = Infinity;
|
|
31565
|
+
var nodeToRoute = /* @__PURE__ */ new WeakMap();
|
|
31566
|
+
var preloadedRoutes = /* @__PURE__ */ new Set();
|
|
31567
|
+
var routeToNodesInViewport = /* @__PURE__ */ new Map();
|
|
31568
|
+
function getObserveRouteForPreloadingFn() {
|
|
31569
|
+
var _a;
|
|
31570
|
+
const connection = navigator.connection || navigator.mozConnection || navigator.webkitConnection || {};
|
|
31571
|
+
const lowDeviceMemory = navigator.deviceMemory && navigator.deviceMemory > LOW_MEMORY_THRESHOLD;
|
|
31572
|
+
let effectiveType, preloadDisabled, maxPreloadAmount;
|
|
31573
|
+
function updateConnection() {
|
|
31574
|
+
effectiveType = connection.effectiveType || '';
|
|
31575
|
+
preloadDisabled = connection.saveData || effectiveType.includes('2g',);
|
|
31576
|
+
maxPreloadAmount = effectiveType === '3g' || lowDeviceMemory
|
|
31577
|
+
? MAX_CONCURRENT_PRELOADS_SLOW_NETWORK
|
|
31578
|
+
: MAX_CONCURRENT_PRELOADS_FAST_NETWORK;
|
|
31579
|
+
}
|
|
31580
|
+
(_a = connection.addEventListener) == null ? void 0 : _a.call(connection, 'change', updateConnection,);
|
|
31581
|
+
updateConnection();
|
|
31582
|
+
const observer2 = new IntersectionObserver(onPreloadIntersectionChange, {
|
|
31583
|
+
threshold: OBSERVER_THRESHOLD,
|
|
31584
|
+
},);
|
|
31585
|
+
let activePreloadsAmount = 0;
|
|
31586
|
+
async function preloadTimeout(route, target,) {
|
|
31587
|
+
if (preloadDisabled) return;
|
|
31588
|
+
const nodesInViewport = routeToNodesInViewport.get(route,);
|
|
31589
|
+
if (!(nodesInViewport == null ? void 0 : nodesInViewport.size) || preloadedRoutes.has(route,)) return;
|
|
31590
|
+
++activePreloadsAmount;
|
|
31591
|
+
preloadedRoutes.add(route,);
|
|
31592
|
+
const preloadDone = preloadRoute(route,).catch(() => {
|
|
31593
|
+
if (false) {
|
|
31594
|
+
throw new Error(
|
|
31595
|
+
'Error in preloadRoute during preloadTimeout. This should never happen as it introduces bugs. Please make sure preloadRoute does not throw.',
|
|
31596
|
+
);
|
|
31597
|
+
}
|
|
31598
|
+
},);
|
|
31599
|
+
observer2.unobserve(target,);
|
|
31600
|
+
nodeToRoute.delete(target,);
|
|
31601
|
+
for (const node of nodesInViewport) {
|
|
31602
|
+
observer2.unobserve(node,);
|
|
31603
|
+
nodeToRoute.delete(node,);
|
|
31604
|
+
}
|
|
31605
|
+
nodesInViewport.clear();
|
|
31606
|
+
routeToNodesInViewport.delete(route,);
|
|
31607
|
+
await preloadDone;
|
|
31608
|
+
--activePreloadsAmount;
|
|
31609
|
+
}
|
|
31610
|
+
function onPreloadIntersectionChange(entries,) {
|
|
31611
|
+
var _a2;
|
|
31612
|
+
for (const entry of entries) {
|
|
31613
|
+
const target = entry.target;
|
|
31614
|
+
const route = nodeToRoute.get(target,);
|
|
31615
|
+
if (!route || preloadedRoutes.has(route,)) {
|
|
31616
|
+
observer2.unobserve(target,);
|
|
31617
|
+
nodeToRoute.delete(target,);
|
|
31618
|
+
continue;
|
|
31619
|
+
}
|
|
31620
|
+
const nodes = routeToNodesInViewport.get(route,);
|
|
31621
|
+
const amountOfNodesInViewport = ((_a2 = routeToNodesInViewport.get(route,)) == null ? void 0 : _a2.size) ?? 0;
|
|
31622
|
+
if (entry.isIntersecting) {
|
|
31623
|
+
if (activePreloadsAmount >= maxPreloadAmount) continue;
|
|
31624
|
+
if (nodes) nodes.add(target,);
|
|
31625
|
+
else routeToNodesInViewport.set(route, /* @__PURE__ */ new Set([target,],),);
|
|
31626
|
+
setTimeout(preloadTimeout.bind(void 0, route, target,), PRELOAD_AFTER_MS,);
|
|
31627
|
+
} else {
|
|
31628
|
+
if (nodes) nodes.delete(target,);
|
|
31629
|
+
if (amountOfNodesInViewport <= 1) routeToNodesInViewport.delete(route,);
|
|
31630
|
+
}
|
|
31631
|
+
}
|
|
31632
|
+
}
|
|
31633
|
+
return (route, node,) => {
|
|
31634
|
+
if (preloadedRoutes.has(route,)) return;
|
|
31635
|
+
nodeToRoute.set(node, route,);
|
|
31636
|
+
observer2.observe(node,);
|
|
31637
|
+
return () => {
|
|
31638
|
+
nodeToRoute.delete(node,);
|
|
31639
|
+
observer2.unobserve(node,);
|
|
31640
|
+
};
|
|
31641
|
+
};
|
|
31642
|
+
}
|
|
31643
|
+
var observeRouteForPreloading =
|
|
31644
|
+
// this also guards `window`
|
|
31645
|
+
!shouldPreloadBasedOnUA || typeof IntersectionObserver === 'undefined' ? null : /* @__PURE__ */ getObserveRouteForPreloadingFn();
|
|
31472
31646
|
var noLocale = {};
|
|
31473
31647
|
var resolveSlugCache = /* @__PURE__ */ new WeakMap();
|
|
31474
31648
|
function resolveSlug(unresolvedSlug, utilsByCollectionId, activeLocale,) {
|
|
@@ -31530,10 +31704,10 @@ function linkFromFramerPageLink(link,) {
|
|
|
31530
31704
|
};
|
|
31531
31705
|
}
|
|
31532
31706
|
var pathVariablesRegExp2 = /:([a-z]\w*)/gi;
|
|
31533
|
-
var PathVariablesContext = /* @__PURE__ */
|
|
31707
|
+
var PathVariablesContext = /* @__PURE__ */ createContext(void 0,);
|
|
31534
31708
|
function useImplicitPathVariables() {
|
|
31535
31709
|
var _a;
|
|
31536
|
-
const contextPathVariables =
|
|
31710
|
+
const contextPathVariables = useContext3(PathVariablesContext,);
|
|
31537
31711
|
const currentPathVariables = (_a = useCurrentRoute()) == null ? void 0 : _a.pathVariables;
|
|
31538
31712
|
const pathVariables = contextPathVariables || currentPathVariables;
|
|
31539
31713
|
return pathVariables;
|
|
@@ -31558,7 +31732,7 @@ function linkMatchesRoute(route, {
|
|
|
31558
31732
|
}
|
|
31559
31733
|
function useLinkMatchesRoute(link,) {
|
|
31560
31734
|
const route = useCurrentRoute();
|
|
31561
|
-
const contextPathVariables =
|
|
31735
|
+
const contextPathVariables = useContext3(PathVariablesContext,);
|
|
31562
31736
|
if (!route) return false;
|
|
31563
31737
|
const pageLink = isString22(link,) ? linkFromFramerPageLink(link,) : link;
|
|
31564
31738
|
return isLinkToWebPage(pageLink,) ? linkMatchesRoute(route, pageLink, contextPathVariables,) : false;
|
|
@@ -31609,43 +31783,6 @@ function createOnClickLinkHandler(router, routeId, elementId, combinedPathVariab
|
|
|
31609
31783
|
(_b = router.navigate) == null ? void 0 : _b.call(router, routeId, elementId, combinedPathVariables, smoothScroll,);
|
|
31610
31784
|
};
|
|
31611
31785
|
}
|
|
31612
|
-
function propsForRoutePath(href, openInNewTab, router, currentRoute, implicitPathVariables, smoothScroll,) {
|
|
31613
|
-
const isInternal = isInternalURL(href,);
|
|
31614
|
-
if (!router.routes || !router.getRoute || !currentRoute || !isInternal) {
|
|
31615
|
-
return propsForLink(href, openInNewTab,);
|
|
31616
|
-
}
|
|
31617
|
-
try {
|
|
31618
|
-
const [pathnameWithQueryParams, hash2,] = href.split('#', 2,);
|
|
31619
|
-
assert(pathnameWithQueryParams !== void 0, 'A href must have a defined pathname.',);
|
|
31620
|
-
const [pathname,] = pathnameWithQueryParams.split('?', 2,);
|
|
31621
|
-
assert(pathname !== void 0, 'A href must have a defined pathname.',);
|
|
31622
|
-
const {
|
|
31623
|
-
routeId,
|
|
31624
|
-
pathVariables,
|
|
31625
|
-
} = inferInitialRouteFromPath(router.routes, pathname,);
|
|
31626
|
-
const route = router.getRoute(routeId,);
|
|
31627
|
-
if (route) {
|
|
31628
|
-
preloadComponent(route.page,);
|
|
31629
|
-
const combinedPathVariables = Object.assign({}, implicitPathVariables, pathVariables,);
|
|
31630
|
-
const path = getPathForRoute(route, {
|
|
31631
|
-
currentRoutePath: currentRoute.path,
|
|
31632
|
-
currentPathVariables: currentRoute.pathVariables,
|
|
31633
|
-
// The hash value is already fully resolved so we don't need to
|
|
31634
|
-
// provide any hashVariables.
|
|
31635
|
-
hash: hash2 || void 0,
|
|
31636
|
-
pathVariables: combinedPathVariables,
|
|
31637
|
-
preserveQueryParams: router.preserveQueryParams,
|
|
31638
|
-
},);
|
|
31639
|
-
const anchorTarget = getTargetAttrValue(openInNewTab, true,);
|
|
31640
|
-
return {
|
|
31641
|
-
href: path,
|
|
31642
|
-
target: anchorTarget,
|
|
31643
|
-
onClick: createOnClickLinkHandler(router, routeId, hash2 || void 0, combinedPathVariables, smoothScroll,),
|
|
31644
|
-
};
|
|
31645
|
-
}
|
|
31646
|
-
} catch {}
|
|
31647
|
-
return propsForLink(href, openInNewTab,);
|
|
31648
|
-
}
|
|
31649
31786
|
async function resolveSlugs(unresolvedPathSlugs, unresolvedHashSlugs, collectionUtils, activeLocale,) {
|
|
31650
31787
|
async function handleSlugs(unresolvedSlugs,) {
|
|
31651
31788
|
if (!unresolvedSlugs || !collectionUtils) return {};
|
|
@@ -31698,7 +31835,64 @@ function resolveSlugsWithSuspense(unresolvedPathSlugs, unresolvedHashSlugs, coll
|
|
|
31698
31835
|
}
|
|
31699
31836
|
return result;
|
|
31700
31837
|
}
|
|
31701
|
-
|
|
31838
|
+
function propsForRoutePath(href, openInNewTab, router, currentRoute, implicitPathVariables, smoothScroll,) {
|
|
31839
|
+
const isInternal = isInternalURL(href,);
|
|
31840
|
+
if (!router.routes || !router.getRoute || !currentRoute || !isInternal) {
|
|
31841
|
+
return propsForLink(href, openInNewTab,);
|
|
31842
|
+
}
|
|
31843
|
+
try {
|
|
31844
|
+
const [pathnameWithQueryParams, hash2,] = href.split('#', 2,);
|
|
31845
|
+
assert(pathnameWithQueryParams !== void 0, 'A href must have a defined pathname.',);
|
|
31846
|
+
const [pathname,] = pathnameWithQueryParams.split('?', 2,);
|
|
31847
|
+
assert(pathname !== void 0, 'A href must have a defined pathname.',);
|
|
31848
|
+
const {
|
|
31849
|
+
routeId,
|
|
31850
|
+
pathVariables,
|
|
31851
|
+
} = inferInitialRouteFromPath(router.routes, pathname,);
|
|
31852
|
+
const route = router.getRoute(routeId,);
|
|
31853
|
+
if (route) {
|
|
31854
|
+
const combinedPathVariables = Object.assign({}, implicitPathVariables, pathVariables,);
|
|
31855
|
+
const path = getPathForRoute(route, {
|
|
31856
|
+
currentRoutePath: currentRoute.path,
|
|
31857
|
+
currentPathVariables: currentRoute.pathVariables,
|
|
31858
|
+
// The hash value is already fully resolved so we don't need to
|
|
31859
|
+
// provide any hashVariables.
|
|
31860
|
+
hash: hash2 || void 0,
|
|
31861
|
+
pathVariables: combinedPathVariables,
|
|
31862
|
+
preserveQueryParams: router.preserveQueryParams,
|
|
31863
|
+
},);
|
|
31864
|
+
const anchorTarget = getTargetAttrValue(openInNewTab, true,);
|
|
31865
|
+
return {
|
|
31866
|
+
href: path,
|
|
31867
|
+
target: anchorTarget,
|
|
31868
|
+
onClick: createOnClickLinkHandler(router, routeId, hash2 || void 0, combinedPathVariables, smoothScroll,),
|
|
31869
|
+
};
|
|
31870
|
+
}
|
|
31871
|
+
} catch {}
|
|
31872
|
+
return propsForLink(href, openInNewTab,);
|
|
31873
|
+
}
|
|
31874
|
+
function getRouteFromPageLink(pageLink, router, currentRoute,) {
|
|
31875
|
+
var _a;
|
|
31876
|
+
if (isString22(pageLink,)) {
|
|
31877
|
+
const isInternal = isInternalURL(pageLink,);
|
|
31878
|
+
if (!router.routes || !router.getRoute || !currentRoute || !isInternal) {
|
|
31879
|
+
return;
|
|
31880
|
+
}
|
|
31881
|
+
const [pathnameWithQueryParams,] = pageLink.split('#', 2,);
|
|
31882
|
+
if (pathnameWithQueryParams === void 0) return;
|
|
31883
|
+
const [pathname,] = pathnameWithQueryParams.split('?', 2,);
|
|
31884
|
+
if (pathname === void 0) return;
|
|
31885
|
+
const {
|
|
31886
|
+
routeId,
|
|
31887
|
+
} = inferInitialRouteFromPath(router.routes, pathname,);
|
|
31888
|
+
return router.getRoute(routeId,);
|
|
31889
|
+
}
|
|
31890
|
+
const {
|
|
31891
|
+
webPageId,
|
|
31892
|
+
} = pageLink;
|
|
31893
|
+
return (_a = router.getRoute) == null ? void 0 : _a.call(router, webPageId,);
|
|
31894
|
+
}
|
|
31895
|
+
var Link = /* @__PURE__ */ forwardRef(({
|
|
31702
31896
|
children,
|
|
31703
31897
|
href,
|
|
31704
31898
|
openInNewTab,
|
|
@@ -31711,8 +31905,29 @@ var Link = /* @__PURE__ */ React4.forwardRef(({
|
|
|
31711
31905
|
const {
|
|
31712
31906
|
activeLocale,
|
|
31713
31907
|
} = useLocaleInfo();
|
|
31908
|
+
const fallbackRef = useRef(null,);
|
|
31909
|
+
const stableObserverChildRef = useMemo(() => {
|
|
31910
|
+
let cleanupFn;
|
|
31911
|
+
const observerCallback = (node) => {
|
|
31912
|
+
var _a;
|
|
31913
|
+
if (node === null) {
|
|
31914
|
+
cleanupFn == null ? void 0 : cleanupFn();
|
|
31915
|
+
cleanupFn = void 0;
|
|
31916
|
+
return;
|
|
31917
|
+
}
|
|
31918
|
+
const pageLink = isLinkToWebPage(href,) ? href : linkFromFramerPageLink(href,);
|
|
31919
|
+
if (!pageLink) return;
|
|
31920
|
+
const route = getRouteFromPageLink(pageLink, router, currentRoute,);
|
|
31921
|
+
if (!route) return;
|
|
31922
|
+
cleanupFn = (_a = observeRouteForPreloading) == null ? void 0 : _a(route, node,);
|
|
31923
|
+
};
|
|
31924
|
+
const hasRef = isValidElement(children,) && 'ref' in children;
|
|
31925
|
+
if (hasRef && isMutableRef(children.ref,)) return createRefWithCallback(children.ref, observerCallback,);
|
|
31926
|
+
if (hasRef && isFunction(children.ref,)) return mergeRefs(children.ref, observerCallback,);
|
|
31927
|
+
return createRefWithCallback(fallbackRef, observerCallback,);
|
|
31928
|
+
}, [href, router, currentRoute, children,],);
|
|
31714
31929
|
const clone = useCloneChildrenWithPropsAndRef(forwardedRef,);
|
|
31715
|
-
const props =
|
|
31930
|
+
const props = useMemo(() => {
|
|
31716
31931
|
var _a;
|
|
31717
31932
|
if (!href) return {};
|
|
31718
31933
|
const pageLink = isLinkToWebPage(href,) ? href : linkFromFramerPageLink(href,);
|
|
@@ -31728,22 +31943,19 @@ var Link = /* @__PURE__ */ React4.forwardRef(({
|
|
|
31728
31943
|
unresolvedHashSlugs,
|
|
31729
31944
|
unresolvedPathSlugs,
|
|
31730
31945
|
} = pageLink;
|
|
31731
|
-
const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, webPageId,);
|
|
31732
31946
|
const resolvedSlugs = resolveSlugsWithSuspense(unresolvedPathSlugs, unresolvedHashSlugs, router.collectionUtils, activeLocale,);
|
|
31733
|
-
|
|
31734
|
-
|
|
31735
|
-
|
|
31736
|
-
|
|
31737
|
-
|
|
31738
|
-
|
|
31739
|
-
|
|
31740
|
-
|
|
31741
|
-
|
|
31742
|
-
|
|
31743
|
-
hashVariables,
|
|
31744
|
-
resolvedSlugs == null ? void 0 : resolvedSlugs.hash,
|
|
31745
|
-
);
|
|
31947
|
+
const combinedPathVariable = {
|
|
31948
|
+
...implicitPathVariables,
|
|
31949
|
+
...pathVariables,
|
|
31950
|
+
...(resolvedSlugs == null ? void 0 : resolvedSlugs.path),
|
|
31951
|
+
};
|
|
31952
|
+
const combinedHashVariable = {
|
|
31953
|
+
...implicitPathVariables,
|
|
31954
|
+
...hashVariables,
|
|
31955
|
+
...(resolvedSlugs == null ? void 0 : resolvedSlugs.hash),
|
|
31956
|
+
};
|
|
31746
31957
|
const anchorTarget = getTargetAttrValue(openInNewTab, true,);
|
|
31958
|
+
const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, webPageId,);
|
|
31747
31959
|
const resolvedHref = getPathForRoute(route, {
|
|
31748
31960
|
currentRoutePath: currentRoute == null ? void 0 : currentRoute.path,
|
|
31749
31961
|
currentPathVariables: currentRoute == null ? void 0 : currentRoute.pathVariables,
|
|
@@ -31763,6 +31975,7 @@ var Link = /* @__PURE__ */ React4.forwardRef(({
|
|
|
31763
31975
|
return clone(children, {
|
|
31764
31976
|
...restProps,
|
|
31765
31977
|
...props,
|
|
31978
|
+
ref: stableObserverChildRef,
|
|
31766
31979
|
},);
|
|
31767
31980
|
},);
|
|
31768
31981
|
function resolveLink(href, router, implicitPathVariables,) {
|
|
@@ -31823,10 +32036,248 @@ function resolvePageScope(pageLink, router,) {
|
|
|
31823
32036
|
preserveQueryParams: false,
|
|
31824
32037
|
},);
|
|
31825
32038
|
}
|
|
32039
|
+
var salt = 'framer';
|
|
32040
|
+
var difficulty = 3;
|
|
32041
|
+
var tokenLength = 30;
|
|
32042
|
+
var maxTime = 3e3;
|
|
32043
|
+
async function calculateProofOfWork() {
|
|
32044
|
+
const target = '0'.repeat(difficulty,);
|
|
32045
|
+
const startTime = Date.now();
|
|
32046
|
+
let processing = true;
|
|
32047
|
+
while (processing) {
|
|
32048
|
+
const timestamp = Date.now();
|
|
32049
|
+
if (timestamp - startTime > maxTime) {
|
|
32050
|
+
processing = false;
|
|
32051
|
+
return;
|
|
32052
|
+
}
|
|
32053
|
+
const nonce = randomCharacters(tokenLength,);
|
|
32054
|
+
const secret = `${timestamp}:${nonce}`;
|
|
32055
|
+
const hash2 = await sha256(salt + secret,);
|
|
32056
|
+
if (hash2.startsWith(target,)) {
|
|
32057
|
+
return {
|
|
32058
|
+
secret,
|
|
32059
|
+
hash: hash2,
|
|
32060
|
+
};
|
|
32061
|
+
}
|
|
32062
|
+
}
|
|
32063
|
+
return;
|
|
32064
|
+
}
|
|
32065
|
+
async function sha256(text,) {
|
|
32066
|
+
const buffer = new TextEncoder().encode(text,);
|
|
32067
|
+
const hashBuffer = await crypto.subtle.digest('SHA-256', buffer,);
|
|
32068
|
+
return Array.from(new Uint8Array(hashBuffer,),).map((b) => b.toString(16,).padStart(2, '0',)).join('',);
|
|
32069
|
+
}
|
|
32070
|
+
function randomCharacters(count,) {
|
|
32071
|
+
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
32072
|
+
let result = '';
|
|
32073
|
+
const charactersLength = characters.length;
|
|
32074
|
+
for (let i = 0; i < count; i++) {
|
|
32075
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength,),);
|
|
32076
|
+
}
|
|
32077
|
+
return result;
|
|
32078
|
+
}
|
|
32079
|
+
function getEncodedFormFieldsHeader(data2,) {
|
|
32080
|
+
return Array.from(data2.keys(),).map(encodeURIComponent,).join(',',);
|
|
32081
|
+
}
|
|
32082
|
+
function formReducer({
|
|
32083
|
+
state,
|
|
32084
|
+
}, {
|
|
32085
|
+
type,
|
|
32086
|
+
},) {
|
|
32087
|
+
switch (type) {
|
|
32088
|
+
case 'complete':
|
|
32089
|
+
case 'incomplete':
|
|
32090
|
+
if (state === 'error') {
|
|
32091
|
+
return {
|
|
32092
|
+
state: 'error',
|
|
32093
|
+
};
|
|
32094
|
+
}
|
|
32095
|
+
return {
|
|
32096
|
+
state: type,
|
|
32097
|
+
};
|
|
32098
|
+
case 'submit':
|
|
32099
|
+
return {
|
|
32100
|
+
state: 'pending',
|
|
32101
|
+
};
|
|
32102
|
+
case 'success':
|
|
32103
|
+
return {
|
|
32104
|
+
state: 'success',
|
|
32105
|
+
};
|
|
32106
|
+
case 'error':
|
|
32107
|
+
return {
|
|
32108
|
+
state: 'error',
|
|
32109
|
+
};
|
|
32110
|
+
default:
|
|
32111
|
+
assertNever(type,);
|
|
32112
|
+
}
|
|
32113
|
+
}
|
|
32114
|
+
function stateCanSubmitForm(state,) {
|
|
32115
|
+
return state.state === 'incomplete' || state.state === 'complete';
|
|
32116
|
+
}
|
|
32117
|
+
function preventDefault(e,) {
|
|
32118
|
+
e.preventDefault();
|
|
32119
|
+
}
|
|
32120
|
+
var FormContext = React4.createContext(void 0,);
|
|
32121
|
+
var FormContainer = /* @__PURE__ */ React4.forwardRef(({
|
|
32122
|
+
action,
|
|
32123
|
+
children,
|
|
32124
|
+
redirectUrl,
|
|
32125
|
+
onSuccess,
|
|
32126
|
+
onError,
|
|
32127
|
+
onLoading,
|
|
32128
|
+
...props
|
|
32129
|
+
}, ref,) => {
|
|
32130
|
+
const router = useRouter();
|
|
32131
|
+
const [state, dispatch,] = React4.useReducer(formReducer, {
|
|
32132
|
+
state: 'incomplete',
|
|
32133
|
+
},);
|
|
32134
|
+
const {
|
|
32135
|
+
activeLocale,
|
|
32136
|
+
} = useLocaleInfo();
|
|
32137
|
+
const projectHash = useContext3(FormContext,);
|
|
32138
|
+
const callbacks = React4.useRef({
|
|
32139
|
+
onSuccess,
|
|
32140
|
+
onError,
|
|
32141
|
+
onLoading,
|
|
32142
|
+
},);
|
|
32143
|
+
callbacks.current = {
|
|
32144
|
+
onSuccess,
|
|
32145
|
+
onError,
|
|
32146
|
+
onLoading,
|
|
32147
|
+
};
|
|
32148
|
+
async function redirectTo(link,) {
|
|
32149
|
+
var _a, _b;
|
|
32150
|
+
if (isLinkToWebPage(link,)) {
|
|
32151
|
+
if (!router) return;
|
|
32152
|
+
const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, link.webPageId,);
|
|
32153
|
+
if (!route) return;
|
|
32154
|
+
const {
|
|
32155
|
+
unresolvedHashSlugs,
|
|
32156
|
+
unresolvedPathSlugs,
|
|
32157
|
+
} = link;
|
|
32158
|
+
const resolvedSlugs = await resolveSlugs(unresolvedPathSlugs, unresolvedHashSlugs, router.collectionUtils, activeLocale,);
|
|
32159
|
+
const combinedPathVariables = Object.assign(
|
|
32160
|
+
{},
|
|
32161
|
+
router.currentPathVariables,
|
|
32162
|
+
link.pathVariables,
|
|
32163
|
+
resolvedSlugs == null ? void 0 : resolvedSlugs.path,
|
|
32164
|
+
);
|
|
32165
|
+
const combinedHashVariables = Object.assign(
|
|
32166
|
+
{},
|
|
32167
|
+
router.currentPathVariables,
|
|
32168
|
+
link.pathVariables,
|
|
32169
|
+
link.hashVariables,
|
|
32170
|
+
resolvedSlugs == null ? void 0 : resolvedSlugs.hash,
|
|
32171
|
+
);
|
|
32172
|
+
const element = getHashForRoute(link.hash, route, combinedHashVariables,);
|
|
32173
|
+
(_b = router.navigate) == null ? void 0 : _b.call(router, link.webPageId, element, combinedPathVariables,);
|
|
32174
|
+
return;
|
|
32175
|
+
}
|
|
32176
|
+
if (!safeWindow) return;
|
|
32177
|
+
safeWindow.open(link, '_blank',);
|
|
32178
|
+
}
|
|
32179
|
+
const handleSubmit = async (event) => {
|
|
32180
|
+
var _a, _b, _c, _d, _e, _f;
|
|
32181
|
+
event.preventDefault();
|
|
32182
|
+
if (!action || !projectHash) return;
|
|
32183
|
+
const data2 = new FormData(event.currentTarget,);
|
|
32184
|
+
for (const [key7, value,] of data2) {
|
|
32185
|
+
if (value instanceof File) data2.delete(key7,);
|
|
32186
|
+
}
|
|
32187
|
+
try {
|
|
32188
|
+
dispatch({
|
|
32189
|
+
type: 'submit',
|
|
32190
|
+
},);
|
|
32191
|
+
(_b = (_a = callbacks.current).onLoading) == null ? void 0 : _b.call(_a,);
|
|
32192
|
+
await submitForm(action, data2, projectHash,);
|
|
32193
|
+
dispatch({
|
|
32194
|
+
type: 'success',
|
|
32195
|
+
},);
|
|
32196
|
+
(_d = (_c = callbacks.current).onSuccess) == null ? void 0 : _d.call(_c,);
|
|
32197
|
+
if (redirectUrl) {
|
|
32198
|
+
await redirectTo(redirectUrl,);
|
|
32199
|
+
}
|
|
32200
|
+
} catch (error) {
|
|
32201
|
+
dispatch({
|
|
32202
|
+
type: 'error',
|
|
32203
|
+
},);
|
|
32204
|
+
(_f = (_e = callbacks.current).onError) == null ? void 0 : _f.call(_e,);
|
|
32205
|
+
console.error(error,);
|
|
32206
|
+
}
|
|
32207
|
+
};
|
|
32208
|
+
const handleKeyDown = (event) => {
|
|
32209
|
+
const {
|
|
32210
|
+
target: input,
|
|
32211
|
+
currentTarget: form,
|
|
32212
|
+
key: key7,
|
|
32213
|
+
} = event;
|
|
32214
|
+
const isTextArea = input instanceof HTMLTextAreaElement;
|
|
32215
|
+
if (isTextArea) return;
|
|
32216
|
+
if (key7 === 'Enter' && form.checkValidity()) {
|
|
32217
|
+
event.preventDefault();
|
|
32218
|
+
void handleSubmit(event,);
|
|
32219
|
+
}
|
|
32220
|
+
};
|
|
32221
|
+
const checkValidity = (e) => {
|
|
32222
|
+
dispatch({
|
|
32223
|
+
type: anyEmptyRequiredFields(e.currentTarget,) ? 'incomplete' : 'complete',
|
|
32224
|
+
},);
|
|
32225
|
+
};
|
|
32226
|
+
return /* @__PURE__ */ jsx(motion.form, {
|
|
32227
|
+
...props,
|
|
32228
|
+
onSubmit: stateCanSubmitForm(state,) ? handleSubmit : preventDefault,
|
|
32229
|
+
onKeyDown: handleKeyDown,
|
|
32230
|
+
onChange: checkValidity,
|
|
32231
|
+
ref,
|
|
32232
|
+
children: children(state,),
|
|
32233
|
+
},);
|
|
32234
|
+
},);
|
|
32235
|
+
function anyEmptyRequiredFields(element,) {
|
|
32236
|
+
if (element.children.length === 0) return false;
|
|
32237
|
+
for (const child of element.children) {
|
|
32238
|
+
if (child instanceof HTMLInputElement || child instanceof HTMLTextAreaElement || child instanceof HTMLSelectElement) {
|
|
32239
|
+
if (child.required && child.value === '') return true;
|
|
32240
|
+
} else {
|
|
32241
|
+
const result = anyEmptyRequiredFields(child,);
|
|
32242
|
+
if (result) return true;
|
|
32243
|
+
}
|
|
32244
|
+
}
|
|
32245
|
+
return false;
|
|
32246
|
+
}
|
|
32247
|
+
async function submitForm(action, data2, projectHash,) {
|
|
32248
|
+
const proofOfWork = await calculateProofOfWork();
|
|
32249
|
+
if (!proofOfWork) {
|
|
32250
|
+
throw new Error('Failed to calculate proof of work',);
|
|
32251
|
+
}
|
|
32252
|
+
const response = await fetch(action, {
|
|
32253
|
+
body: data2,
|
|
32254
|
+
method: 'POST',
|
|
32255
|
+
headers: {
|
|
32256
|
+
'Framer-Site-Id': projectHash,
|
|
32257
|
+
'Framer-POW': proofOfWork.secret,
|
|
32258
|
+
'Framer-Form-Fields': getEncodedFormFieldsHeader(data2,),
|
|
32259
|
+
},
|
|
32260
|
+
},);
|
|
32261
|
+
if (response.ok) {
|
|
32262
|
+
return response;
|
|
32263
|
+
} else {
|
|
32264
|
+
const body = await response.json();
|
|
32265
|
+
const error = 'Failed to submit form';
|
|
32266
|
+
if (responseHasError(body,)) {
|
|
32267
|
+
throw new Error(`${error} - ${body.error.message}`,);
|
|
32268
|
+
}
|
|
32269
|
+
throw new Error(error,);
|
|
32270
|
+
}
|
|
32271
|
+
}
|
|
32272
|
+
function responseHasError(response,) {
|
|
32273
|
+
return typeof response === 'object' && response !== null && 'error' in response && isObject2(response.error,) &&
|
|
32274
|
+
'message' in response.error && typeof response.error.message === 'string';
|
|
32275
|
+
}
|
|
31826
32276
|
function PageRoot({
|
|
31827
32277
|
RootComponent,
|
|
31828
32278
|
isWebsite,
|
|
31829
32279
|
routeId,
|
|
32280
|
+
framerSiteId,
|
|
31830
32281
|
pathVariables,
|
|
31831
32282
|
routes,
|
|
31832
32283
|
collectionUtils,
|
|
@@ -31837,7 +32288,7 @@ function PageRoot({
|
|
|
31837
32288
|
locales,
|
|
31838
32289
|
preserveQueryParams,
|
|
31839
32290
|
enableImproveInpDuringHydration,
|
|
31840
|
-
|
|
32291
|
+
addHydrationMarkers = false,
|
|
31841
32292
|
},) {
|
|
31842
32293
|
React4.useEffect(() => {
|
|
31843
32294
|
if (isWebsite) return;
|
|
@@ -31847,21 +32298,24 @@ function PageRoot({
|
|
|
31847
32298
|
return /* @__PURE__ */ jsx(MotionConfig, {
|
|
31848
32299
|
reducedMotion: isReducedMotion ? 'user' : 'never',
|
|
31849
32300
|
children: /* @__PURE__ */ jsx(CustomCursorHost, {
|
|
31850
|
-
children: /* @__PURE__ */ jsx(
|
|
31851
|
-
|
|
31852
|
-
|
|
31853
|
-
|
|
31854
|
-
|
|
31855
|
-
|
|
31856
|
-
|
|
31857
|
-
|
|
31858
|
-
|
|
31859
|
-
|
|
31860
|
-
|
|
31861
|
-
|
|
31862
|
-
|
|
31863
|
-
|
|
31864
|
-
|
|
32301
|
+
children: /* @__PURE__ */ jsx(FormContext.Provider, {
|
|
32302
|
+
value: framerSiteId,
|
|
32303
|
+
children: /* @__PURE__ */ jsx(Router, {
|
|
32304
|
+
initialRoute: routeId,
|
|
32305
|
+
initialPathVariables: pathVariables,
|
|
32306
|
+
initialLocaleId: localeId,
|
|
32307
|
+
routes,
|
|
32308
|
+
collectionUtils,
|
|
32309
|
+
notFoundPage,
|
|
32310
|
+
locales,
|
|
32311
|
+
defaultPageStyle: {
|
|
32312
|
+
minHeight: '100vh',
|
|
32313
|
+
width: 'auto',
|
|
32314
|
+
},
|
|
32315
|
+
preserveQueryParams,
|
|
32316
|
+
enableImproveInpDuringHydration,
|
|
32317
|
+
addHydrationMarkers,
|
|
32318
|
+
},),
|
|
31865
32319
|
},),
|
|
31866
32320
|
},),
|
|
31867
32321
|
},);
|
|
@@ -32191,7 +32645,7 @@ async function getCollection(collection, locale,) {
|
|
|
32191
32645
|
}
|
|
32192
32646
|
return collection;
|
|
32193
32647
|
}
|
|
32194
|
-
var CompatibilityDatabaseCollection = class {
|
|
32648
|
+
var CompatibilityDatabaseCollection = /*#__PURE__*/ class {
|
|
32195
32649
|
constructor(collection, locale,) {
|
|
32196
32650
|
this.collection = collection;
|
|
32197
32651
|
this.locale = locale;
|
|
@@ -32426,12 +32880,12 @@ function compare(left, right, collation,) {
|
|
|
32426
32880
|
}
|
|
32427
32881
|
}
|
|
32428
32882
|
var INDEX_IDENTIFIER = 'index';
|
|
32429
|
-
var ScalarExpression = class {
|
|
32883
|
+
var ScalarExpression = /*#__PURE__*/ class {
|
|
32430
32884
|
static from(expression, schema,) {
|
|
32431
32885
|
return convertExpression(expression, schema, void 0,);
|
|
32432
32886
|
}
|
|
32433
32887
|
};
|
|
32434
|
-
var ScalarIdentifier = class extends ScalarExpression {
|
|
32888
|
+
var ScalarIdentifier = /*#__PURE__*/ class extends ScalarExpression {
|
|
32435
32889
|
constructor(schema, name,) {
|
|
32436
32890
|
super();
|
|
32437
32891
|
this.schema = schema;
|
|
@@ -32463,7 +32917,7 @@ var ScalarIdentifier = class extends ScalarExpression {
|
|
|
32463
32917
|
return false;
|
|
32464
32918
|
}
|
|
32465
32919
|
};
|
|
32466
|
-
var ScalarLiteralValue = class extends ScalarExpression {
|
|
32920
|
+
var ScalarLiteralValue = /*#__PURE__*/ class extends ScalarExpression {
|
|
32467
32921
|
constructor(definition, value,) {
|
|
32468
32922
|
super();
|
|
32469
32923
|
this.definition = definition;
|
|
@@ -32545,7 +32999,7 @@ var ScalarLiteralValue = class extends ScalarExpression {
|
|
|
32545
32999
|
return true;
|
|
32546
33000
|
}
|
|
32547
33001
|
};
|
|
32548
|
-
var ScalarFunctionCall = class extends ScalarExpression {
|
|
33002
|
+
var ScalarFunctionCall = /*#__PURE__*/ class extends ScalarExpression {
|
|
32549
33003
|
constructor(argumentExpressions,) {
|
|
32550
33004
|
super();
|
|
32551
33005
|
this.argumentExpressions = argumentExpressions;
|
|
@@ -32571,7 +33025,7 @@ var ScalarFunctionCall = class extends ScalarExpression {
|
|
|
32571
33025
|
},);
|
|
32572
33026
|
}
|
|
32573
33027
|
};
|
|
32574
|
-
var ScalarFunctionCallContains = class extends ScalarFunctionCall {
|
|
33028
|
+
var ScalarFunctionCallContains = /*#__PURE__*/ class extends ScalarFunctionCall {
|
|
32575
33029
|
constructor() {
|
|
32576
33030
|
super(...arguments,);
|
|
32577
33031
|
__publicField(this, 'definition', ScalarFunctionCallContains.getDefinition(),);
|
|
@@ -32607,7 +33061,7 @@ var ScalarFunctionCallContains = class extends ScalarFunctionCall {
|
|
|
32607
33061
|
};
|
|
32608
33062
|
}
|
|
32609
33063
|
};
|
|
32610
|
-
var ScalarFunctionCallStartsWith = class extends ScalarFunctionCall {
|
|
33064
|
+
var ScalarFunctionCallStartsWith = /*#__PURE__*/ class extends ScalarFunctionCall {
|
|
32611
33065
|
constructor() {
|
|
32612
33066
|
super(...arguments,);
|
|
32613
33067
|
__publicField(this, 'definition', ScalarFunctionCallStartsWith.getDefinition(),);
|
|
@@ -32643,7 +33097,7 @@ var ScalarFunctionCallStartsWith = class extends ScalarFunctionCall {
|
|
|
32643
33097
|
};
|
|
32644
33098
|
}
|
|
32645
33099
|
};
|
|
32646
|
-
var ScalarFunctionCallEndsWith = class extends ScalarFunctionCall {
|
|
33100
|
+
var ScalarFunctionCallEndsWith = /*#__PURE__*/ class extends ScalarFunctionCall {
|
|
32647
33101
|
constructor() {
|
|
32648
33102
|
super(...arguments,);
|
|
32649
33103
|
__publicField(this, 'definition', ScalarFunctionCallEndsWith.getDefinition(),);
|
|
@@ -32679,7 +33133,7 @@ var ScalarFunctionCallEndsWith = class extends ScalarFunctionCall {
|
|
|
32679
33133
|
};
|
|
32680
33134
|
}
|
|
32681
33135
|
};
|
|
32682
|
-
var ScalarCase = class extends ScalarExpression {
|
|
33136
|
+
var ScalarCase = /*#__PURE__*/ class extends ScalarExpression {
|
|
32683
33137
|
constructor(valueExpression, conditions, elseExpression,) {
|
|
32684
33138
|
super();
|
|
32685
33139
|
this.valueExpression = valueExpression;
|
|
@@ -32775,13 +33229,13 @@ var ScalarCase = class extends ScalarExpression {
|
|
|
32775
33229
|
},);
|
|
32776
33230
|
}
|
|
32777
33231
|
};
|
|
32778
|
-
var ScalarCaseCondition = class {
|
|
33232
|
+
var ScalarCaseCondition = /*#__PURE__*/ class {
|
|
32779
33233
|
constructor(whenExpression, thenExpression,) {
|
|
32780
33234
|
this.whenExpression = whenExpression;
|
|
32781
33235
|
this.thenExpression = thenExpression;
|
|
32782
33236
|
}
|
|
32783
33237
|
};
|
|
32784
|
-
var ScalarUnaryOperation = class extends ScalarExpression {
|
|
33238
|
+
var ScalarUnaryOperation = /*#__PURE__*/ class extends ScalarExpression {
|
|
32785
33239
|
constructor(valueExpression,) {
|
|
32786
33240
|
super();
|
|
32787
33241
|
this.valueExpression = valueExpression;
|
|
@@ -32794,7 +33248,7 @@ var ScalarUnaryOperation = class extends ScalarExpression {
|
|
|
32794
33248
|
return this.valueExpression.canEvaluate();
|
|
32795
33249
|
}
|
|
32796
33250
|
};
|
|
32797
|
-
var ScalarUnaryOperationNot = class extends ScalarUnaryOperation {
|
|
33251
|
+
var ScalarUnaryOperationNot = /*#__PURE__*/ class extends ScalarUnaryOperation {
|
|
32798
33252
|
constructor() {
|
|
32799
33253
|
super(...arguments,);
|
|
32800
33254
|
__publicField(this, 'definition', ScalarUnaryOperationNot.getDefinition(),);
|
|
@@ -32816,7 +33270,7 @@ var ScalarUnaryOperationNot = class extends ScalarUnaryOperation {
|
|
|
32816
33270
|
};
|
|
32817
33271
|
}
|
|
32818
33272
|
};
|
|
32819
|
-
var ScalarLogicalOperation = class extends ScalarExpression {
|
|
33273
|
+
var ScalarLogicalOperation = /*#__PURE__*/ class extends ScalarExpression {
|
|
32820
33274
|
constructor(operandExpressions,) {
|
|
32821
33275
|
super();
|
|
32822
33276
|
this.operandExpressions = operandExpressions;
|
|
@@ -32841,7 +33295,7 @@ var ScalarLogicalOperation = class extends ScalarExpression {
|
|
|
32841
33295
|
},);
|
|
32842
33296
|
}
|
|
32843
33297
|
};
|
|
32844
|
-
var ScalarLogicalOperationAnd = class extends ScalarLogicalOperation {
|
|
33298
|
+
var ScalarLogicalOperationAnd = /*#__PURE__*/ class extends ScalarLogicalOperation {
|
|
32845
33299
|
constructor() {
|
|
32846
33300
|
super(...arguments,);
|
|
32847
33301
|
__publicField(this, 'operator', 'AND',);
|
|
@@ -32857,7 +33311,7 @@ var ScalarLogicalOperationAnd = class extends ScalarLogicalOperation {
|
|
|
32857
33311
|
};
|
|
32858
33312
|
}
|
|
32859
33313
|
};
|
|
32860
|
-
var ScalarLogicalOperationOr = class extends ScalarLogicalOperation {
|
|
33314
|
+
var ScalarLogicalOperationOr = /*#__PURE__*/ class extends ScalarLogicalOperation {
|
|
32861
33315
|
constructor() {
|
|
32862
33316
|
super(...arguments,);
|
|
32863
33317
|
__publicField(this, 'operator', 'OR',);
|
|
@@ -32873,7 +33327,7 @@ var ScalarLogicalOperationOr = class extends ScalarLogicalOperation {
|
|
|
32873
33327
|
};
|
|
32874
33328
|
}
|
|
32875
33329
|
};
|
|
32876
|
-
var ScalarComparison = class extends ScalarExpression {
|
|
33330
|
+
var ScalarComparison = /*#__PURE__*/ class extends ScalarExpression {
|
|
32877
33331
|
constructor(leftExpression, rightExpression,) {
|
|
32878
33332
|
super();
|
|
32879
33333
|
this.leftExpression = leftExpression;
|
|
@@ -32901,7 +33355,7 @@ var ScalarComparison = class extends ScalarExpression {
|
|
|
32901
33355
|
return this.leftExpression.canEvaluate() && this.rightExpression.canEvaluate();
|
|
32902
33356
|
}
|
|
32903
33357
|
};
|
|
32904
|
-
var ScalarComparisonEquals = class extends ScalarComparison {
|
|
33358
|
+
var ScalarComparisonEquals = /*#__PURE__*/ class extends ScalarComparison {
|
|
32905
33359
|
constructor() {
|
|
32906
33360
|
super(...arguments,);
|
|
32907
33361
|
__publicField(this, 'operator', '=',);
|
|
@@ -32915,7 +33369,7 @@ var ScalarComparisonEquals = class extends ScalarComparison {
|
|
|
32915
33369
|
};
|
|
32916
33370
|
}
|
|
32917
33371
|
};
|
|
32918
|
-
var ScalarComparisonNotEquals = class extends ScalarComparison {
|
|
33372
|
+
var ScalarComparisonNotEquals = /*#__PURE__*/ class extends ScalarComparison {
|
|
32919
33373
|
constructor() {
|
|
32920
33374
|
super(...arguments,);
|
|
32921
33375
|
__publicField(this, 'operator', '!=',);
|
|
@@ -32929,7 +33383,7 @@ var ScalarComparisonNotEquals = class extends ScalarComparison {
|
|
|
32929
33383
|
};
|
|
32930
33384
|
}
|
|
32931
33385
|
};
|
|
32932
|
-
var ScalarComparisonLessThan = class extends ScalarComparison {
|
|
33386
|
+
var ScalarComparisonLessThan = /*#__PURE__*/ class extends ScalarComparison {
|
|
32933
33387
|
constructor() {
|
|
32934
33388
|
super(...arguments,);
|
|
32935
33389
|
__publicField(this, 'operator', '<',);
|
|
@@ -32943,7 +33397,7 @@ var ScalarComparisonLessThan = class extends ScalarComparison {
|
|
|
32943
33397
|
};
|
|
32944
33398
|
}
|
|
32945
33399
|
};
|
|
32946
|
-
var ScalarComparisonLessThanOrEqual = class extends ScalarComparison {
|
|
33400
|
+
var ScalarComparisonLessThanOrEqual = /*#__PURE__*/ class extends ScalarComparison {
|
|
32947
33401
|
constructor() {
|
|
32948
33402
|
super(...arguments,);
|
|
32949
33403
|
__publicField(this, 'operator', '<=',);
|
|
@@ -32957,7 +33411,7 @@ var ScalarComparisonLessThanOrEqual = class extends ScalarComparison {
|
|
|
32957
33411
|
};
|
|
32958
33412
|
}
|
|
32959
33413
|
};
|
|
32960
|
-
var ScalarComparisonGreaterThan = class extends ScalarComparison {
|
|
33414
|
+
var ScalarComparisonGreaterThan = /*#__PURE__*/ class extends ScalarComparison {
|
|
32961
33415
|
constructor() {
|
|
32962
33416
|
super(...arguments,);
|
|
32963
33417
|
__publicField(this, 'operator', '>',);
|
|
@@ -32971,7 +33425,7 @@ var ScalarComparisonGreaterThan = class extends ScalarComparison {
|
|
|
32971
33425
|
};
|
|
32972
33426
|
}
|
|
32973
33427
|
};
|
|
32974
|
-
var ScalarComparisonGreaterThanOrEqual = class extends ScalarComparison {
|
|
33428
|
+
var ScalarComparisonGreaterThanOrEqual = /*#__PURE__*/ class extends ScalarComparison {
|
|
32975
33429
|
constructor() {
|
|
32976
33430
|
super(...arguments,);
|
|
32977
33431
|
__publicField(this, 'operator', '>=',);
|
|
@@ -32985,7 +33439,7 @@ var ScalarComparisonGreaterThanOrEqual = class extends ScalarComparison {
|
|
|
32985
33439
|
};
|
|
32986
33440
|
}
|
|
32987
33441
|
};
|
|
32988
|
-
var ScalarTypeCast = class extends ScalarExpression {
|
|
33442
|
+
var ScalarTypeCast = /*#__PURE__*/ class extends ScalarExpression {
|
|
32989
33443
|
constructor(valueExpression,) {
|
|
32990
33444
|
super();
|
|
32991
33445
|
this.valueExpression = valueExpression;
|
|
@@ -33001,7 +33455,7 @@ var ScalarTypeCast = class extends ScalarExpression {
|
|
|
33001
33455
|
return this.valueExpression.canEvaluate();
|
|
33002
33456
|
}
|
|
33003
33457
|
};
|
|
33004
|
-
var ScalarTypeCastBoolean = class extends ScalarTypeCast {
|
|
33458
|
+
var ScalarTypeCastBoolean = /*#__PURE__*/ class extends ScalarTypeCast {
|
|
33005
33459
|
constructor() {
|
|
33006
33460
|
super(...arguments,);
|
|
33007
33461
|
__publicField(this, 'dataType', 'BOOLEAN',);
|
|
@@ -33031,7 +33485,7 @@ function convertToBoolean(value,) {
|
|
|
33031
33485
|
}
|
|
33032
33486
|
return false;
|
|
33033
33487
|
}
|
|
33034
|
-
var ScalarTypeCastDate = class extends ScalarTypeCast {
|
|
33488
|
+
var ScalarTypeCastDate = /*#__PURE__*/ class extends ScalarTypeCast {
|
|
33035
33489
|
constructor() {
|
|
33036
33490
|
super(...arguments,);
|
|
33037
33491
|
__publicField(this, 'dataType', 'DATE',);
|
|
@@ -33069,7 +33523,7 @@ function convertToDate(value,) {
|
|
|
33069
33523
|
}
|
|
33070
33524
|
return null;
|
|
33071
33525
|
}
|
|
33072
|
-
var ScalarTypeCastNumber = class extends ScalarTypeCast {
|
|
33526
|
+
var ScalarTypeCastNumber = /*#__PURE__*/ class extends ScalarTypeCast {
|
|
33073
33527
|
constructor() {
|
|
33074
33528
|
super(...arguments,);
|
|
33075
33529
|
__publicField(this, 'dataType', 'NUMBER',);
|
|
@@ -33106,7 +33560,7 @@ function convertToNumber(value,) {
|
|
|
33106
33560
|
}
|
|
33107
33561
|
return null;
|
|
33108
33562
|
}
|
|
33109
|
-
var ScalarTypeCastString = class extends ScalarTypeCast {
|
|
33563
|
+
var ScalarTypeCastString = /*#__PURE__*/ class extends ScalarTypeCast {
|
|
33110
33564
|
constructor() {
|
|
33111
33565
|
super(...arguments,);
|
|
33112
33566
|
__publicField(this, 'dataType', 'STRING',);
|
|
@@ -33554,7 +34008,7 @@ function stringifyExecutionTime(self2, total,) {
|
|
|
33554
34008
|
function stringifyItems(items,) {
|
|
33555
34009
|
return `(items: ${items})`;
|
|
33556
34010
|
}
|
|
33557
|
-
var QueryPlan = class {
|
|
34011
|
+
var QueryPlan = /*#__PURE__*/ class {
|
|
33558
34012
|
constructor() {
|
|
33559
34013
|
__publicField(this, 'executionTime', 0,);
|
|
33560
34014
|
__publicField(this, 'itemCount', 0,);
|
|
@@ -33567,7 +34021,7 @@ var QueryPlan = class {
|
|
|
33567
34021
|
return result;
|
|
33568
34022
|
}
|
|
33569
34023
|
};
|
|
33570
|
-
var ScanCollectionPlan = class extends QueryPlan {
|
|
34024
|
+
var ScanCollectionPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33571
34025
|
constructor(collection,) {
|
|
33572
34026
|
super();
|
|
33573
34027
|
this.collection = collection;
|
|
@@ -33581,7 +34035,7 @@ var ScanCollectionPlan = class extends QueryPlan {
|
|
|
33581
34035
|
return this.collection.scanItems();
|
|
33582
34036
|
}
|
|
33583
34037
|
};
|
|
33584
|
-
var LookupIndexPlan = class extends QueryPlan {
|
|
34038
|
+
var LookupIndexPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33585
34039
|
constructor(index, query,) {
|
|
33586
34040
|
super();
|
|
33587
34041
|
this.index = index;
|
|
@@ -33621,7 +34075,7 @@ var LookupIndexPlan = class extends QueryPlan {
|
|
|
33621
34075
|
return this.index.lookupItems(this.query,);
|
|
33622
34076
|
}
|
|
33623
34077
|
};
|
|
33624
|
-
var UnionPlan = class extends QueryPlan {
|
|
34078
|
+
var UnionPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33625
34079
|
constructor(childPlans,) {
|
|
33626
34080
|
super();
|
|
33627
34081
|
this.childPlans = childPlans;
|
|
@@ -33651,7 +34105,7 @@ var UnionPlan = class extends QueryPlan {
|
|
|
33651
34105
|
return (result == null ? void 0 : result.items()) ?? [];
|
|
33652
34106
|
}
|
|
33653
34107
|
};
|
|
33654
|
-
var IntersectionPlan = class extends QueryPlan {
|
|
34108
|
+
var IntersectionPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33655
34109
|
constructor(childPlans,) {
|
|
33656
34110
|
super();
|
|
33657
34111
|
this.childPlans = childPlans;
|
|
@@ -33681,7 +34135,7 @@ var IntersectionPlan = class extends QueryPlan {
|
|
|
33681
34135
|
return (result == null ? void 0 : result.items()) ?? [];
|
|
33682
34136
|
}
|
|
33683
34137
|
};
|
|
33684
|
-
var ResolveItemsPlan = class extends QueryPlan {
|
|
34138
|
+
var ResolveItemsPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33685
34139
|
constructor(childPlan, collection, richTextResolver, select,) {
|
|
33686
34140
|
super();
|
|
33687
34141
|
this.childPlan = childPlan;
|
|
@@ -33711,7 +34165,7 @@ var ResolveItemsPlan = class extends QueryPlan {
|
|
|
33711
34165
|
return this.collection.resolveItems(childPointers,);
|
|
33712
34166
|
}
|
|
33713
34167
|
};
|
|
33714
|
-
var FilterItemsPlan = class extends QueryPlan {
|
|
34168
|
+
var FilterItemsPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33715
34169
|
constructor(childPlan, filterExpression,) {
|
|
33716
34170
|
super();
|
|
33717
34171
|
this.childPlan = childPlan;
|
|
@@ -33733,7 +34187,7 @@ var FilterItemsPlan = class extends QueryPlan {
|
|
|
33733
34187
|
},);
|
|
33734
34188
|
}
|
|
33735
34189
|
};
|
|
33736
|
-
var SortItemsPlan = class extends QueryPlan {
|
|
34190
|
+
var SortItemsPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33737
34191
|
constructor(childPlan, orderExpressions, collection,) {
|
|
33738
34192
|
super();
|
|
33739
34193
|
this.childPlan = childPlan;
|
|
@@ -33782,14 +34236,14 @@ var SortItemsPlan = class extends QueryPlan {
|
|
|
33782
34236
|
},);
|
|
33783
34237
|
}
|
|
33784
34238
|
};
|
|
33785
|
-
var ScalarOrderExpression = class {
|
|
34239
|
+
var ScalarOrderExpression = /*#__PURE__*/ class {
|
|
33786
34240
|
constructor(expression, direction, collation,) {
|
|
33787
34241
|
this.expression = expression;
|
|
33788
34242
|
this.direction = direction;
|
|
33789
34243
|
this.collation = collation;
|
|
33790
34244
|
}
|
|
33791
34245
|
};
|
|
33792
|
-
var SliceItemsPlan = class extends QueryPlan {
|
|
34246
|
+
var SliceItemsPlan = /*#__PURE__*/ class extends QueryPlan {
|
|
33793
34247
|
constructor(childPlan, offsetExpression, limitExpression,) {
|
|
33794
34248
|
super();
|
|
33795
34249
|
this.childPlan = childPlan;
|
|
@@ -33826,7 +34280,7 @@ var SliceItemsPlan = class extends QueryPlan {
|
|
|
33826
34280
|
return childItems.slice(offset, offset + limit,);
|
|
33827
34281
|
}
|
|
33828
34282
|
};
|
|
33829
|
-
var DatabaseItemMap = class extends Map {
|
|
34283
|
+
var DatabaseItemMap = /*#__PURE__*/ class extends Map {
|
|
33830
34284
|
constructor(items = [],) {
|
|
33831
34285
|
super();
|
|
33832
34286
|
for (const item of items) {
|
|
@@ -33857,7 +34311,7 @@ var DatabaseItemMap = class extends Map {
|
|
|
33857
34311
|
return [...values,];
|
|
33858
34312
|
}
|
|
33859
34313
|
};
|
|
33860
|
-
var RichTextResolver = class {
|
|
34314
|
+
var RichTextResolver = /*#__PURE__*/ class {
|
|
33861
34315
|
constructor(collection,) {
|
|
33862
34316
|
this.collection = collection;
|
|
33863
34317
|
__publicField(this, 'cache', /* @__PURE__ */ new Map(),);
|
|
@@ -34008,7 +34462,7 @@ function getDatabaseCollection({
|
|
|
34008
34462
|
}
|
|
34009
34463
|
assertNever(data2, 'Unsupported collection type',);
|
|
34010
34464
|
}
|
|
34011
|
-
var QueryEngine = class {
|
|
34465
|
+
var QueryEngine = /*#__PURE__*/ class {
|
|
34012
34466
|
async query(query, locale,) {
|
|
34013
34467
|
const collection = getDatabaseCollection(query.from, locale,);
|
|
34014
34468
|
const richTextResolver = new RichTextResolver(collection,);
|
|
@@ -34239,7 +34693,7 @@ function createScanCollectionPlan(collection, expression,) {
|
|
|
34239
34693
|
const plan = new ScanCollectionPlan(collection,);
|
|
34240
34694
|
return new FilterItemsPlan(plan, expression,);
|
|
34241
34695
|
}
|
|
34242
|
-
var AnimationCollector = class {
|
|
34696
|
+
var AnimationCollector = /*#__PURE__*/ class {
|
|
34243
34697
|
constructor() {
|
|
34244
34698
|
__publicField(this, 'entries', /* @__PURE__ */ new Map(),);
|
|
34245
34699
|
}
|
|
@@ -34864,7 +35318,7 @@ function usePrototypeNavigate({
|
|
|
34864
35318
|
return false;
|
|
34865
35319
|
};
|
|
34866
35320
|
}
|
|
34867
|
-
var QueryCache = class {
|
|
35321
|
+
var QueryCache = /*#__PURE__*/ class {
|
|
34868
35322
|
constructor(queryEngine2,) {
|
|
34869
35323
|
this.queryEngine = queryEngine2;
|
|
34870
35324
|
__publicField(this, 'cache', /* @__PURE__ */ new Map(),);
|
|
@@ -34910,7 +35364,11 @@ function useQueryData(query,) {
|
|
|
34910
35364
|
return cached.read();
|
|
34911
35365
|
}
|
|
34912
35366
|
function useQueryCount(query,) {
|
|
34913
|
-
const
|
|
35367
|
+
const countQuery = {
|
|
35368
|
+
...query,
|
|
35369
|
+
select: [],
|
|
35370
|
+
};
|
|
35371
|
+
const collection = useQueryData(countQuery,);
|
|
34914
35372
|
return collection.length;
|
|
34915
35373
|
}
|
|
34916
35374
|
function getWhereExpressionFromPathVariables(pathVariables,) {
|
|
@@ -34949,28 +35407,29 @@ function getWhereExpressionFromPathVariables(pathVariables,) {
|
|
|
34949
35407
|
right: expression,
|
|
34950
35408
|
}));
|
|
34951
35409
|
}
|
|
34952
|
-
function useLoadMorePaginatedQuery(query, pageSize,) {
|
|
34953
|
-
const {
|
|
34954
|
-
paginationInfo,
|
|
34955
|
-
setPaginationInfo,
|
|
34956
|
-
} = useCollectionListPaginationInfo();
|
|
35410
|
+
function useLoadMorePaginatedQuery(query, pageSize, hash2,) {
|
|
34957
35411
|
const count = useQueryCount(query,);
|
|
34958
|
-
const
|
|
35412
|
+
const [paginationInfo, setPaginationInfo,] = useState(() => {
|
|
35413
|
+
var _a, _b, _c, _d;
|
|
34959
35414
|
const totalPages = Math.ceil(count / pageSize,);
|
|
35415
|
+
const currentPage = ((_d = (_c = (_b = (_a = globalThis == null ? void 0 : globalThis.history) == null ? void 0 : _a.state) == null
|
|
35416
|
+
? void 0
|
|
35417
|
+
: _b.paginationInfo) == null
|
|
35418
|
+
? void 0
|
|
35419
|
+
: _c[hash2]) == null
|
|
35420
|
+
? void 0
|
|
35421
|
+
: _d.currentPage) ?? 1;
|
|
34960
35422
|
return {
|
|
34961
|
-
currentPage
|
|
35423
|
+
currentPage,
|
|
34962
35424
|
totalPages,
|
|
34963
|
-
|
|
35425
|
+
isLoading: false,
|
|
34964
35426
|
};
|
|
34965
|
-
},
|
|
35427
|
+
},);
|
|
34966
35428
|
useEffect(() => {
|
|
34967
|
-
|
|
34968
|
-
|
|
34969
|
-
}
|
|
34970
|
-
}, [count, initialPaginationInfo, paginationInfo, setPaginationInfo,],);
|
|
35429
|
+
pushLoadMoreHistory(hash2, paginationInfo,);
|
|
35430
|
+
}, [hash2, paginationInfo,],);
|
|
34971
35431
|
const paginatedQuery = useMemo(() => {
|
|
34972
|
-
|
|
34973
|
-
let limit = pageSize * currentPaginationInfo.currentPage;
|
|
35432
|
+
let limit = pageSize * paginationInfo.currentPage;
|
|
34974
35433
|
if (query.limit) {
|
|
34975
35434
|
if (query.limit.type !== 'LiteralValue' || typeof query.limit.value !== 'number') {
|
|
34976
35435
|
throw new Error('Unexpected type for query limit',);
|
|
@@ -34984,8 +35443,28 @@ function useLoadMorePaginatedQuery(query, pageSize,) {
|
|
|
34984
35443
|
value: limit,
|
|
34985
35444
|
},
|
|
34986
35445
|
};
|
|
34987
|
-
}, [
|
|
34988
|
-
|
|
35446
|
+
}, [query, pageSize, paginationInfo,],);
|
|
35447
|
+
const onCanvas = useIsOnFramerCanvas();
|
|
35448
|
+
const loadMore = useCallback(() => {
|
|
35449
|
+
if (onCanvas) return;
|
|
35450
|
+
if (paginationInfo.currentPage >= paginationInfo.totalPages) return;
|
|
35451
|
+
setPaginationInfo((info) => ({
|
|
35452
|
+
...info,
|
|
35453
|
+
isLoading: true,
|
|
35454
|
+
}));
|
|
35455
|
+
requestAnimationFrame(() => {
|
|
35456
|
+
setPaginationInfo((info) => ({
|
|
35457
|
+
...info,
|
|
35458
|
+
currentPage: Math.min(info.currentPage + 1, info.totalPages,),
|
|
35459
|
+
isLoading: false,
|
|
35460
|
+
}));
|
|
35461
|
+
},);
|
|
35462
|
+
}, [onCanvas, paginationInfo.currentPage, paginationInfo.totalPages,],);
|
|
35463
|
+
return {
|
|
35464
|
+
paginatedQuery,
|
|
35465
|
+
paginationInfo,
|
|
35466
|
+
loadMore,
|
|
35467
|
+
};
|
|
34989
35468
|
}
|
|
34990
35469
|
function createGestureVariant(variant, type,) {
|
|
34991
35470
|
return `${variant}-${type}`;
|
|
@@ -35042,9 +35521,10 @@ function useVariantState({
|
|
|
35042
35521
|
},) {
|
|
35043
35522
|
const forceUpdate = useForceUpdate3();
|
|
35044
35523
|
const validBaseVariants = useConstant2(() => new Set(externalCycleOrder,));
|
|
35045
|
-
const internalState = useRef({
|
|
35524
|
+
const internalState = React4.useRef({
|
|
35046
35525
|
isHovered: false,
|
|
35047
35526
|
isPressed: false,
|
|
35527
|
+
hasPressedVariants: true,
|
|
35048
35528
|
baseVariant: safeBaseVariant(variant, externalDefaultVariant, validBaseVariants,),
|
|
35049
35529
|
lastVariant: variant,
|
|
35050
35530
|
gestureVariant: void 0,
|
|
@@ -35056,7 +35536,7 @@ function useVariantState({
|
|
|
35056
35536
|
cycleOrder: externalCycleOrder,
|
|
35057
35537
|
transitions: externalTransitions,
|
|
35058
35538
|
},);
|
|
35059
|
-
const resolveNextVariant = useCallback((targetBaseVariant) => {
|
|
35539
|
+
const resolveNextVariant = React4.useCallback((targetBaseVariant) => {
|
|
35060
35540
|
const {
|
|
35061
35541
|
isHovered: isHovered2,
|
|
35062
35542
|
isPressed: isPressed2,
|
|
@@ -35068,7 +35548,7 @@ function useVariantState({
|
|
|
35068
35548
|
const nextGestureVariant = gesture ? createGestureVariant(nextBaseVariant, gesture,) : void 0;
|
|
35069
35549
|
return [nextBaseVariant, nextGestureVariant,];
|
|
35070
35550
|
}, [validBaseVariants,],);
|
|
35071
|
-
const setGestureState = useCallback(({
|
|
35551
|
+
const setGestureState = React4.useCallback(({
|
|
35072
35552
|
isHovered: isHovered2,
|
|
35073
35553
|
isPressed: isPressed2,
|
|
35074
35554
|
},) => {
|
|
@@ -35083,10 +35563,10 @@ function useVariantState({
|
|
|
35083
35563
|
if (nextBase !== baseVariant2 || nextGesture !== gestureVariant2) {
|
|
35084
35564
|
internalState.current.baseVariant = nextBase || defaultVariant2;
|
|
35085
35565
|
internalState.current.gestureVariant = nextGesture;
|
|
35086
|
-
|
|
35566
|
+
forceUpdate();
|
|
35087
35567
|
}
|
|
35088
35568
|
}, [resolveNextVariant, forceUpdate,],);
|
|
35089
|
-
const setVariant = useCallback((proposedVariant) => {
|
|
35569
|
+
const setVariant = React4.useCallback((proposedVariant) => {
|
|
35090
35570
|
const {
|
|
35091
35571
|
defaultVariant: defaultVariant2,
|
|
35092
35572
|
cycleOrder,
|
|
@@ -35100,7 +35580,7 @@ function useVariantState({
|
|
|
35100
35580
|
if (nextBase !== baseVariant2 || nextGesture !== gestureVariant2) {
|
|
35101
35581
|
internalState.current.baseVariant = nextBase || defaultVariant2;
|
|
35102
35582
|
internalState.current.gestureVariant = nextGesture;
|
|
35103
|
-
|
|
35583
|
+
forceUpdate();
|
|
35104
35584
|
}
|
|
35105
35585
|
}, [resolveNextVariant, forceUpdate,],);
|
|
35106
35586
|
if (variant !== internalState.current.lastVariant) {
|
|
@@ -35120,10 +35600,40 @@ function useVariantState({
|
|
|
35120
35600
|
isPressed,
|
|
35121
35601
|
} = internalState.current;
|
|
35122
35602
|
const addVariantProps = useAddVariantProps(internalState.current.baseVariant, internalState.current.gestureVariant, variantProps2,);
|
|
35123
|
-
return useMemo(() => {
|
|
35603
|
+
return React4.useMemo(() => {
|
|
35124
35604
|
const variants = [];
|
|
35125
35605
|
if (baseVariant !== defaultVariant) variants.push(baseVariant,);
|
|
35126
35606
|
if (gestureVariant) variants.push(gestureVariant,);
|
|
35607
|
+
const gestures = enabledGestures == null ? void 0 : enabledGestures[baseVariant];
|
|
35608
|
+
const gestureHandlers = {};
|
|
35609
|
+
if (gestures == null ? void 0 : gestures.hover) {
|
|
35610
|
+
Object.assign(gestureHandlers, {
|
|
35611
|
+
onMouseEnter: () =>
|
|
35612
|
+
setGestureState({
|
|
35613
|
+
isHovered: true,
|
|
35614
|
+
},),
|
|
35615
|
+
onMouseLeave: () =>
|
|
35616
|
+
setGestureState({
|
|
35617
|
+
isHovered: false,
|
|
35618
|
+
},),
|
|
35619
|
+
},);
|
|
35620
|
+
}
|
|
35621
|
+
if (gestures == null ? void 0 : gestures.pressed) {
|
|
35622
|
+
Object.assign(gestureHandlers, {
|
|
35623
|
+
onTapStart: () =>
|
|
35624
|
+
setGestureState({
|
|
35625
|
+
isPressed: true,
|
|
35626
|
+
},),
|
|
35627
|
+
onTapCancel: () =>
|
|
35628
|
+
setGestureState({
|
|
35629
|
+
isPressed: false,
|
|
35630
|
+
},),
|
|
35631
|
+
onTap: () =>
|
|
35632
|
+
setGestureState({
|
|
35633
|
+
isPressed: false,
|
|
35634
|
+
},),
|
|
35635
|
+
},);
|
|
35636
|
+
}
|
|
35127
35637
|
return {
|
|
35128
35638
|
variants,
|
|
35129
35639
|
baseVariant,
|
|
@@ -35132,10 +35642,8 @@ function useVariantState({
|
|
|
35132
35642
|
setVariant,
|
|
35133
35643
|
setGestureState,
|
|
35134
35644
|
addVariantProps,
|
|
35135
|
-
|
|
35136
|
-
|
|
35137
|
-
getGesture(enabledGestures == null ? void 0 : enabledGestures[baseVariant], isHovered, isPressed,),
|
|
35138
|
-
),
|
|
35645
|
+
gestureHandlers,
|
|
35646
|
+
classNames: cx(createVariantClassName(baseVariant, variantClassNames,), getGesture(gestures, isHovered, isPressed,),),
|
|
35139
35647
|
};
|
|
35140
35648
|
}, [
|
|
35141
35649
|
baseVariant,
|
|
@@ -35926,7 +36434,7 @@ var FontSourceNames = /* @__PURE__ */ ((FontSourceNames2) => {
|
|
|
35926
36434
|
return FontSourceNames2;
|
|
35927
36435
|
})(FontSourceNames || {},);
|
|
35928
36436
|
var systemFontFamilyName = 'System Default';
|
|
35929
|
-
var LocalFontSource = class {
|
|
36437
|
+
var LocalFontSource = /*#__PURE__*/ class {
|
|
35930
36438
|
constructor() {
|
|
35931
36439
|
__publicField(this, 'name', 'local',/* Local */
|
|
35932
36440
|
);
|
|
@@ -36006,8 +36514,8 @@ var LocalFontSource = class {
|
|
|
36006
36514
|
};
|
|
36007
36515
|
const aliases = /* @__PURE__ */ new Map();
|
|
36008
36516
|
const weights = [400, 100, 200, 300, 500, 600, 700, 800, 900,];
|
|
36009
|
-
const
|
|
36010
|
-
for (const style of
|
|
36517
|
+
const styles4 = ['normal', 'italic',];
|
|
36518
|
+
for (const style of styles4) {
|
|
36011
36519
|
for (const weight of weights) {
|
|
36012
36520
|
const variant = createVariantName(weight, style,);
|
|
36013
36521
|
const alias = `__SystemDefault-${weight}-${style}__`;
|
|
@@ -36068,7 +36576,7 @@ function getCustomFontName(fileName, properties,) {
|
|
|
36068
36576
|
const variant = properties.font.preferredSubFamily === '' ? properties.font.fontSubFamily : properties.font.preferredSubFamily;
|
|
36069
36577
|
return `${fontFamily} ${variant}`;
|
|
36070
36578
|
}
|
|
36071
|
-
var CustomFontSource = class {
|
|
36579
|
+
var CustomFontSource = /*#__PURE__*/ class {
|
|
36072
36580
|
constructor() {
|
|
36073
36581
|
__publicField(this, 'name', 'custom',/* Custom */
|
|
36074
36582
|
);
|
|
@@ -36236,7 +36744,7 @@ var weightNameToNumber = {
|
|
|
36236
36744
|
};
|
|
36237
36745
|
var weightNames = /* @__PURE__ */ Object.keys(weightNameToNumber,);
|
|
36238
36746
|
var allowedVariantsRegex = /* @__PURE__ */ (() => new RegExp(`^(?:${[...weightNames, 'italic',].join('|',)})`, 'u',))();
|
|
36239
|
-
var FontshareSource = class {
|
|
36747
|
+
var FontshareSource = /*#__PURE__*/ class {
|
|
36240
36748
|
constructor() {
|
|
36241
36749
|
__publicField(this, 'name', 'fontshare',/* Fontshare */
|
|
36242
36750
|
);
|
|
@@ -36374,7 +36882,7 @@ var weightNameToNumber2 = {
|
|
|
36374
36882
|
ExtraBold: 800,
|
|
36375
36883
|
Black: 900,
|
|
36376
36884
|
};
|
|
36377
|
-
var FramerFontSource = class {
|
|
36885
|
+
var FramerFontSource = /*#__PURE__*/ class {
|
|
36378
36886
|
constructor() {
|
|
36379
36887
|
__publicField(this, 'name', 'framer',/* Framer */
|
|
36380
36888
|
);
|
|
@@ -36435,7 +36943,7 @@ var FramerFontSource = class {
|
|
|
36435
36943
|
}
|
|
36436
36944
|
};
|
|
36437
36945
|
var googleFontSelectorPrefix = 'GF;';
|
|
36438
|
-
var GoogleFontSource = class {
|
|
36946
|
+
var GoogleFontSource = /*#__PURE__*/ class {
|
|
36439
36947
|
constructor() {
|
|
36440
36948
|
__publicField(this, 'name', 'google',/* Google */
|
|
36441
36949
|
);
|
|
@@ -36542,7 +37050,7 @@ function mapToKnownCategory2(category,) {
|
|
|
36542
37050
|
var import_fontfaceobserver = __toESM(require_fontfaceobserver_standalone(), 1,);
|
|
36543
37051
|
var FONT_LOADING_TIMEOUT = 5e3;
|
|
36544
37052
|
var MAX_RETRIES = 3;
|
|
36545
|
-
var FontLoadingError = class extends Error {
|
|
37053
|
+
var FontLoadingError = /*#__PURE__*/ class extends Error {
|
|
36546
37054
|
constructor(message,) {
|
|
36547
37055
|
super(message,);
|
|
36548
37056
|
this.name = 'FontLoadingError';
|
|
@@ -36615,7 +37123,7 @@ async function isFontReady(family, style, weight,) {
|
|
|
36615
37123
|
}`,);
|
|
36616
37124
|
}
|
|
36617
37125
|
}
|
|
36618
|
-
var FontStore = class {
|
|
37126
|
+
var FontStore = /*#__PURE__*/ class {
|
|
36619
37127
|
constructor() {
|
|
36620
37128
|
__publicField(this, 'enabled', false,);
|
|
36621
37129
|
__publicField(this, 'bySelector', /* @__PURE__ */ new Map(),);
|
|
@@ -36904,7 +37412,7 @@ var DeprecatedComponentContainer = /* @__PURE__ */ (() => {
|
|
|
36904
37412
|
},
|
|
36905
37413
|
},);
|
|
36906
37414
|
}
|
|
36907
|
-
renderErrorPlaceholder(
|
|
37415
|
+
renderErrorPlaceholder(error,) {
|
|
36908
37416
|
const {
|
|
36909
37417
|
RenderPlaceholder,
|
|
36910
37418
|
} = runtime;
|
|
@@ -36912,10 +37420,7 @@ var DeprecatedComponentContainer = /* @__PURE__ */ (() => {
|
|
|
36912
37420
|
...this.props,
|
|
36913
37421
|
background: null,
|
|
36914
37422
|
children: /* @__PURE__ */ jsx(RenderPlaceholder, {
|
|
36915
|
-
error
|
|
36916
|
-
error,
|
|
36917
|
-
file,
|
|
36918
|
-
},
|
|
37423
|
+
error,
|
|
36919
37424
|
},),
|
|
36920
37425
|
},);
|
|
36921
37426
|
}
|
|
@@ -36935,13 +37440,23 @@ var DeprecatedComponentContainer = /* @__PURE__ */ (() => {
|
|
|
36935
37440
|
if (noChildren) {
|
|
36936
37441
|
const errorComponent = runtime.componentLoader.errorForIdentifier(componentIdentifier,);
|
|
36937
37442
|
if (errorComponent) {
|
|
36938
|
-
|
|
37443
|
+
const title = `Error in ${errorComponent.file}`;
|
|
37444
|
+
const message = errorComponent.error;
|
|
37445
|
+
return this.renderErrorPlaceholder({
|
|
37446
|
+
title,
|
|
37447
|
+
message,
|
|
37448
|
+
},);
|
|
36939
37449
|
}
|
|
36940
37450
|
}
|
|
36941
37451
|
if (error && error.children === children) {
|
|
36942
37452
|
const component = runtime.componentLoader.componentForIdentifier(componentIdentifier,);
|
|
36943
37453
|
const file = component ? component.file : '???';
|
|
36944
|
-
|
|
37454
|
+
const title = `Error in ${file}`;
|
|
37455
|
+
const message = error.message;
|
|
37456
|
+
return this.renderErrorPlaceholder({
|
|
37457
|
+
title,
|
|
37458
|
+
message,
|
|
37459
|
+
},);
|
|
36945
37460
|
}
|
|
36946
37461
|
|
|
36947
37462
|
(_b = (_a2 = asRecord(safeWindow,))['__checkComponentBudget__']) == null ? void 0 : _b.call(_a2,);
|
|
@@ -37065,189 +37580,6 @@ function isPageOrScroll(identifier,) {
|
|
|
37065
37580
|
if (identifier === 'framer/Scroll') return true;
|
|
37066
37581
|
return false;
|
|
37067
37582
|
}
|
|
37068
|
-
var salt = 'framer';
|
|
37069
|
-
var difficulty = 3;
|
|
37070
|
-
var tokenLength = 30;
|
|
37071
|
-
var maxTime = 3e3;
|
|
37072
|
-
async function calculateProofOfWork() {
|
|
37073
|
-
const target = '0'.repeat(difficulty,);
|
|
37074
|
-
const startTime = Date.now();
|
|
37075
|
-
let processing = true;
|
|
37076
|
-
while (processing) {
|
|
37077
|
-
const timestamp = Date.now();
|
|
37078
|
-
if (timestamp - startTime > maxTime) {
|
|
37079
|
-
processing = false;
|
|
37080
|
-
return;
|
|
37081
|
-
}
|
|
37082
|
-
const nonce = randomCharacters(tokenLength,);
|
|
37083
|
-
const secret = `${timestamp}:${nonce}`;
|
|
37084
|
-
const hash2 = await sha256(salt + secret,);
|
|
37085
|
-
if (hash2.startsWith(target,)) {
|
|
37086
|
-
return {
|
|
37087
|
-
secret,
|
|
37088
|
-
hash: hash2,
|
|
37089
|
-
};
|
|
37090
|
-
}
|
|
37091
|
-
}
|
|
37092
|
-
return;
|
|
37093
|
-
}
|
|
37094
|
-
async function sha256(text,) {
|
|
37095
|
-
const buffer = new TextEncoder().encode(text,);
|
|
37096
|
-
const hashBuffer = await crypto.subtle.digest('SHA-256', buffer,);
|
|
37097
|
-
return Array.from(new Uint8Array(hashBuffer,),).map((b) => b.toString(16,).padStart(2, '0',)).join('',);
|
|
37098
|
-
}
|
|
37099
|
-
function randomCharacters(count,) {
|
|
37100
|
-
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
37101
|
-
let result = '';
|
|
37102
|
-
const charactersLength = characters.length;
|
|
37103
|
-
for (let i = 0; i < count; i++) {
|
|
37104
|
-
result += characters.charAt(Math.floor(Math.random() * charactersLength,),);
|
|
37105
|
-
}
|
|
37106
|
-
return result;
|
|
37107
|
-
}
|
|
37108
|
-
function formReducer(_state, {
|
|
37109
|
-
type,
|
|
37110
|
-
},) {
|
|
37111
|
-
switch (type) {
|
|
37112
|
-
case 'submit':
|
|
37113
|
-
return {
|
|
37114
|
-
state: 'pending',
|
|
37115
|
-
};
|
|
37116
|
-
case 'success':
|
|
37117
|
-
return {
|
|
37118
|
-
state: 'success',
|
|
37119
|
-
};
|
|
37120
|
-
case 'error':
|
|
37121
|
-
return {
|
|
37122
|
-
state: 'error',
|
|
37123
|
-
};
|
|
37124
|
-
default:
|
|
37125
|
-
assertNever(type,);
|
|
37126
|
-
}
|
|
37127
|
-
}
|
|
37128
|
-
function preventDefault(e,) {
|
|
37129
|
-
e.preventDefault();
|
|
37130
|
-
}
|
|
37131
|
-
var FormContainer = ({
|
|
37132
|
-
action,
|
|
37133
|
-
formId,
|
|
37134
|
-
disabled,
|
|
37135
|
-
children,
|
|
37136
|
-
redirectUrl,
|
|
37137
|
-
...props
|
|
37138
|
-
},) => {
|
|
37139
|
-
const [state, dispatch,] = React4.useReducer(formReducer, {
|
|
37140
|
-
state: disabled ? 'disabled' : void 0,
|
|
37141
|
-
},);
|
|
37142
|
-
const router = useRouter();
|
|
37143
|
-
const {
|
|
37144
|
-
activeLocale,
|
|
37145
|
-
} = useLocaleInfo();
|
|
37146
|
-
const isSubmitEnabled = state.state === void 0;
|
|
37147
|
-
async function redirectTo(link,) {
|
|
37148
|
-
var _a, _b;
|
|
37149
|
-
if (isLinkToWebPage(link,)) {
|
|
37150
|
-
if (!router) return;
|
|
37151
|
-
const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, link.webPageId,);
|
|
37152
|
-
if (!route) return;
|
|
37153
|
-
const {
|
|
37154
|
-
unresolvedHashSlugs,
|
|
37155
|
-
unresolvedPathSlugs,
|
|
37156
|
-
} = link;
|
|
37157
|
-
const resolvedSlugs = await resolveSlugs(unresolvedPathSlugs, unresolvedHashSlugs, router.collectionUtils, activeLocale,);
|
|
37158
|
-
const combinedPathVariables = Object.assign(
|
|
37159
|
-
{},
|
|
37160
|
-
router.currentPathVariables,
|
|
37161
|
-
link.pathVariables,
|
|
37162
|
-
resolvedSlugs == null ? void 0 : resolvedSlugs.path,
|
|
37163
|
-
);
|
|
37164
|
-
const combinedHashVariables = Object.assign(
|
|
37165
|
-
{},
|
|
37166
|
-
router.currentPathVariables,
|
|
37167
|
-
link.pathVariables,
|
|
37168
|
-
link.hashVariables,
|
|
37169
|
-
resolvedSlugs == null ? void 0 : resolvedSlugs.hash,
|
|
37170
|
-
);
|
|
37171
|
-
const element = getHashForRoute(link.hash, route, combinedHashVariables,);
|
|
37172
|
-
(_b = router.navigate) == null ? void 0 : _b.call(router, link.webPageId, element, combinedPathVariables,);
|
|
37173
|
-
return;
|
|
37174
|
-
}
|
|
37175
|
-
if (!safeWindow) return;
|
|
37176
|
-
safeWindow.open(link, '_blank',);
|
|
37177
|
-
}
|
|
37178
|
-
const handleSubmit = async (event) => {
|
|
37179
|
-
event.preventDefault();
|
|
37180
|
-
if (!action) return;
|
|
37181
|
-
const data2 = new FormData(event.currentTarget,);
|
|
37182
|
-
for (const [key7, value,] of data2) {
|
|
37183
|
-
if (value instanceof File) data2.delete(key7,);
|
|
37184
|
-
}
|
|
37185
|
-
try {
|
|
37186
|
-
dispatch({
|
|
37187
|
-
type: 'submit',
|
|
37188
|
-
},);
|
|
37189
|
-
await submitForm(action, data2,);
|
|
37190
|
-
dispatch({
|
|
37191
|
-
type: 'success',
|
|
37192
|
-
},);
|
|
37193
|
-
if (redirectUrl) {
|
|
37194
|
-
await redirectTo(redirectUrl,);
|
|
37195
|
-
}
|
|
37196
|
-
} catch (error) {
|
|
37197
|
-
dispatch({
|
|
37198
|
-
type: 'error',
|
|
37199
|
-
},);
|
|
37200
|
-
}
|
|
37201
|
-
};
|
|
37202
|
-
const handleKeyDown = (event) => {
|
|
37203
|
-
const {
|
|
37204
|
-
target: input,
|
|
37205
|
-
currentTarget: form,
|
|
37206
|
-
key: key7,
|
|
37207
|
-
} = event;
|
|
37208
|
-
const isTextArea = input instanceof HTMLTextAreaElement;
|
|
37209
|
-
if (isTextArea) return;
|
|
37210
|
-
if (key7 === 'Enter' && form.checkValidity()) {
|
|
37211
|
-
event.preventDefault();
|
|
37212
|
-
void handleSubmit(event,);
|
|
37213
|
-
}
|
|
37214
|
-
};
|
|
37215
|
-
return /* @__PURE__ */ jsx(motion.form, {
|
|
37216
|
-
...props,
|
|
37217
|
-
'data-formid': formId,
|
|
37218
|
-
onSubmit: isSubmitEnabled ? handleSubmit : preventDefault,
|
|
37219
|
-
onKeyDown: handleKeyDown,
|
|
37220
|
-
children: children(state,),
|
|
37221
|
-
},);
|
|
37222
|
-
};
|
|
37223
|
-
async function submitForm(action, data2,) {
|
|
37224
|
-
const proofOfWork = await calculateProofOfWork();
|
|
37225
|
-
if (!proofOfWork) {
|
|
37226
|
-
throw new Error('Failed to calculate proof of work',);
|
|
37227
|
-
}
|
|
37228
|
-
const response = await fetch(action, {
|
|
37229
|
-
body: data2,
|
|
37230
|
-
method: 'POST',
|
|
37231
|
-
headers: {
|
|
37232
|
-
'Framer-POW': proofOfWork.secret,
|
|
37233
|
-
'Framer-POW-Enforce': 'true',
|
|
37234
|
-
},
|
|
37235
|
-
},);
|
|
37236
|
-
if (response.ok) {
|
|
37237
|
-
return response;
|
|
37238
|
-
} else {
|
|
37239
|
-
const body = await response.json();
|
|
37240
|
-
const error = 'Failed to submit form';
|
|
37241
|
-
if (responseHasError(body,)) {
|
|
37242
|
-
throw new Error(`${error} - ${body.error.message}`,);
|
|
37243
|
-
}
|
|
37244
|
-
throw new Error(error,);
|
|
37245
|
-
}
|
|
37246
|
-
}
|
|
37247
|
-
function responseHasError(response,) {
|
|
37248
|
-
return typeof response === 'object' && response !== null && 'error' in response && isObject2(response.error,) &&
|
|
37249
|
-
'message' in response.error && typeof response.error.message === 'string';
|
|
37250
|
-
}
|
|
37251
37583
|
var FormInputStyleVariableNames = /* @__PURE__ */ ((FormInputStyleVariableNames2) => {
|
|
37252
37584
|
FormInputStyleVariableNames2['Padding'] = '--framer-input-padding';
|
|
37253
37585
|
FormInputStyleVariableNames2['BorderRadiusTopLeft'] = '--framer-input-border-radius-top-left';
|
|
@@ -37270,66 +37602,84 @@ var FormInputStyleVariableNames = /* @__PURE__ */ ((FormInputStyleVariableNames2
|
|
|
37270
37602
|
FormInputStyleVariableNames2['FontLineHeight'] = '--framer-input-font-line-height';
|
|
37271
37603
|
FormInputStyleVariableNames2['PlaceholderColor'] = '--framer-input-placeholder-color';
|
|
37272
37604
|
FormInputStyleVariableNames2['BoxShadow'] = '--framer-input-box-shadow';
|
|
37273
|
-
FormInputStyleVariableNames2['ZIndex'] = '--framer-input-z-index';
|
|
37274
37605
|
FormInputStyleVariableNames2['FocusedBorderColor'] = '--framer-input-focused-border-color';
|
|
37275
37606
|
FormInputStyleVariableNames2['FocusedBorderWidth'] = '--framer-input-focused-border-width';
|
|
37276
37607
|
FormInputStyleVariableNames2['FocusedBorderStyle'] = '--framer-input-focused-border-style';
|
|
37277
37608
|
FormInputStyleVariableNames2['FocusedBackground'] = '--framer-input-focused-background';
|
|
37278
37609
|
FormInputStyleVariableNames2['FocusedBoxShadow'] = '--framer-input-focused-box-shadow';
|
|
37279
37610
|
FormInputStyleVariableNames2['FocusedTransition'] = '--framer-input-focused-transition';
|
|
37611
|
+
FormInputStyleVariableNames2['BooleanCheckedBackground'] = '--framer-input-boolean-checked-background';
|
|
37612
|
+
FormInputStyleVariableNames2['BooleanCheckedBorderColor'] = '--framer-input-boolean-checked-border-color';
|
|
37613
|
+
FormInputStyleVariableNames2['BooleanCheckedBorderWidth'] = '--framer-input-boolean-checked-border-width';
|
|
37614
|
+
FormInputStyleVariableNames2['BooleanCheckedBorderStyle'] = '--framer-input-boolean-checked-border-style';
|
|
37615
|
+
FormInputStyleVariableNames2['BooleanCheckedBoxShadow'] = '--framer-input-boolean-checked-box-shadow';
|
|
37616
|
+
FormInputStyleVariableNames2['BooleanCheckedTransition'] = '--framer-input-boolean-checked-transition';
|
|
37617
|
+
FormInputStyleVariableNames2['InvalidTextColor'] = '--framer-input-invalid-text-color';
|
|
37618
|
+
FormInputStyleVariableNames2['IconBackgroundImage'] = '--framer-input-icon-image';
|
|
37619
|
+
FormInputStyleVariableNames2['IconMaskImage'] = '--framer-input-icon-mask-image';
|
|
37620
|
+
FormInputStyleVariableNames2['IconColor'] = '--framer-input-icon-color';
|
|
37280
37621
|
return FormInputStyleVariableNames2;
|
|
37281
37622
|
})(FormInputStyleVariableNames || {},);
|
|
37282
37623
|
var Var = FormInputStyleVariableNames;
|
|
37283
37624
|
var inputClassName = 'framer-form-input';
|
|
37284
37625
|
var inputWrapperClassName = 'framer-form-input-wrapper';
|
|
37285
|
-
|
|
37286
|
-
|
|
37287
|
-
|
|
37288
|
-
|
|
37289
|
-
|
|
37290
|
-
|
|
37291
|
-
|
|
37292
|
-
|
|
37293
|
-
|
|
37294
|
-
|
|
37295
|
-
|
|
37296
|
-
|
|
37297
|
-
|
|
37298
|
-
|
|
37299
|
-
|
|
37300
|
-
|
|
37301
|
-
|
|
37302
|
-
|
|
37303
|
-
|
|
37304
|
-
|
|
37305
|
-
|
|
37306
|
-
|
|
37307
|
-
|
|
37308
|
-
|
|
37309
|
-
|
|
37310
|
-
|
|
37311
|
-
|
|
37312
|
-
|
|
37313
|
-
|
|
37314
|
-
|
|
37315
|
-
`.${inputClassName}
|
|
37316
|
-
|
|
37317
|
-
|
|
37318
|
-
|
|
37319
|
-
|
|
37320
|
-
|
|
37321
|
-
|
|
37322
|
-
|
|
37323
|
-
|
|
37324
|
-
|
|
37325
|
-
|
|
37326
|
-
|
|
37626
|
+
var emptyValueClassName = 'framer-form-input-empty';
|
|
37627
|
+
var forcedFocusClassName = 'framer-form-input-forced-focus';
|
|
37628
|
+
var forcedCheckedClassName = 'framer-form-input-forced-checked';
|
|
37629
|
+
function cssValue(value,) {
|
|
37630
|
+
if (typeof value === 'number') return value;
|
|
37631
|
+
if (value.startsWith('--',)) return css.variable(value,);
|
|
37632
|
+
if (value === '') return '""';
|
|
37633
|
+
return value;
|
|
37634
|
+
}
|
|
37635
|
+
function css(selector, declaration,) {
|
|
37636
|
+
let output = ' ';
|
|
37637
|
+
for (const key7 in declaration) {
|
|
37638
|
+
const value = declaration[key7];
|
|
37639
|
+
output += `${key7.replace(/([A-Z])/gu, '-$1',).toLowerCase()}: ${cssValue(value,)}; `;
|
|
37640
|
+
}
|
|
37641
|
+
return selector + ' {' + output + '}';
|
|
37642
|
+
}
|
|
37643
|
+
((css2) => {
|
|
37644
|
+
function variable(...variables) {
|
|
37645
|
+
const lastItem = variables[variables.length - 1];
|
|
37646
|
+
let value = lastItem.startsWith('--',) ? `var(${lastItem})` : lastItem;
|
|
37647
|
+
for (let index = variables.length - 2; index >= 0; index--) {
|
|
37648
|
+
const element = variables[index];
|
|
37649
|
+
value = `var(${element}, ${value})`;
|
|
37650
|
+
}
|
|
37651
|
+
return value;
|
|
37652
|
+
}
|
|
37653
|
+
css2.variable = variable;
|
|
37654
|
+
})(css || (css = {}),);
|
|
37655
|
+
var sharedInputCSS = [
|
|
37656
|
+
css(`.${inputClassName}`, {
|
|
37657
|
+
padding: css.variable(Var.Padding,),
|
|
37658
|
+
background: 'transparent',
|
|
37659
|
+
fontFamily: css.variable(Var.FontFamily,),
|
|
37660
|
+
fontWeight: css.variable(Var.FontWeight,),
|
|
37661
|
+
fontSize: css.variable(Var.FontSize,),
|
|
37662
|
+
color: css.variable(Var.FontColor,),
|
|
37663
|
+
border: 'none',
|
|
37664
|
+
textOverflow: 'ellipsis',
|
|
37665
|
+
whiteSpace: 'nowrap',
|
|
37666
|
+
overflow: 'hidden',
|
|
37667
|
+
width: '100%',
|
|
37668
|
+
height: '100%',
|
|
37669
|
+
letterSpacing: css.variable(Var.FontLetterSpacing,),
|
|
37670
|
+
textAlign: css.variable(Var.FontTextAlignment,),
|
|
37671
|
+
lineHeight: css.variable(Var.FontLineHeight,),
|
|
37672
|
+
},),
|
|
37673
|
+
css(`.${inputClassName}:focus-visible`, {
|
|
37674
|
+
outline: 'none',
|
|
37675
|
+
},),
|
|
37327
37676
|
];
|
|
37328
|
-
var
|
|
37329
|
-
|
|
37330
|
-
|
|
37331
|
-
|
|
37332
|
-
|
|
37677
|
+
var inputWrapperCSS = /* @__PURE__ */ (() => [css(`.${inputWrapperClassName}`, {
|
|
37678
|
+
overflow: 'hidden',
|
|
37679
|
+
},),])();
|
|
37680
|
+
var inputBorderAllSides =
|
|
37681
|
+
`var(${Var.BorderTopWidth}) var(${Var.BorderRightWidth}) var(${Var.BorderBottomWidth}) var(${Var.BorderLeftWidth})`;
|
|
37682
|
+
var inputBorderCSS = [`.${inputWrapperClassName}:after {
|
|
37333
37683
|
content: "";
|
|
37334
37684
|
pointer-events: none;
|
|
37335
37685
|
box-sizing: border-box;
|
|
@@ -37350,116 +37700,477 @@ var inputBorderCSS = [
|
|
|
37350
37700
|
border-style: var(${Var.BorderStyle});
|
|
37351
37701
|
transition: var(${Var.FocusedTransition});
|
|
37352
37702
|
transition-property: border-color, border-width, border-style, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius;
|
|
37353
|
-
}`,
|
|
37354
|
-
|
|
37703
|
+
}`,];
|
|
37704
|
+
var customValidityKey = 'customError';
|
|
37705
|
+
var validKey = 'valid';
|
|
37706
|
+
function isRelevantValidityStateKey(key7,) {
|
|
37707
|
+
return key7 !== customValidityKey && key7 !== validKey;
|
|
37708
|
+
}
|
|
37709
|
+
function isInvalid(validity,) {
|
|
37710
|
+
for (const key7 in validity) {
|
|
37711
|
+
if (!isRelevantValidityStateKey(key7,)) continue;
|
|
37712
|
+
if ((validity == null ? void 0 : validity[key7]) === true) return true;
|
|
37713
|
+
}
|
|
37714
|
+
return false;
|
|
37715
|
+
}
|
|
37716
|
+
function useCustomValidity(onValid, onInvalid, onChange, onBlur, onFocus,) {
|
|
37717
|
+
const isValidRef = React4.useRef(null,);
|
|
37718
|
+
const handleInvalid = React4.useCallback((e) => {
|
|
37719
|
+
if (!onInvalid) return;
|
|
37720
|
+
if (isValidRef.current === false) return;
|
|
37721
|
+
isValidRef.current = false;
|
|
37722
|
+
e.currentTarget.setCustomValidity(' ',);
|
|
37723
|
+
e.currentTarget.reportValidity();
|
|
37724
|
+
onInvalid(e,);
|
|
37725
|
+
}, [onInvalid,],);
|
|
37726
|
+
const handleChange = React4.useCallback((e) => {
|
|
37727
|
+
onChange == null ? void 0 : onChange(e,);
|
|
37728
|
+
if (!onInvalid && !onValid) return;
|
|
37729
|
+
const validity = e.target.validity;
|
|
37730
|
+
if (isValidRef.current === false && !isInvalid(validity,)) {
|
|
37731
|
+
e.currentTarget.setCustomValidity('',);
|
|
37732
|
+
e.target.reportValidity();
|
|
37733
|
+
isValidRef.current = true;
|
|
37734
|
+
onValid == null ? void 0 : onValid();
|
|
37735
|
+
}
|
|
37736
|
+
}, [onInvalid, onValid, onChange,],);
|
|
37737
|
+
const handleBlur = React4.useCallback((e) => {
|
|
37738
|
+
if (!onInvalid) {
|
|
37739
|
+
onBlur == null ? void 0 : onBlur(e,);
|
|
37740
|
+
return;
|
|
37741
|
+
}
|
|
37742
|
+
if (isValidRef.current === false) return;
|
|
37743
|
+
const validity = e.currentTarget.validity;
|
|
37744
|
+
if (isInvalid(validity,)) {
|
|
37745
|
+
handleInvalid(e,);
|
|
37746
|
+
return;
|
|
37747
|
+
}
|
|
37748
|
+
onBlur == null ? void 0 : onBlur(e,);
|
|
37749
|
+
}, [handleInvalid, onBlur, onInvalid,],);
|
|
37750
|
+
return React4.useMemo(() => {
|
|
37751
|
+
return {
|
|
37752
|
+
onInvalid: handleInvalid,
|
|
37753
|
+
onChange: handleChange,
|
|
37754
|
+
onBlur: handleBlur,
|
|
37755
|
+
onFocus,
|
|
37756
|
+
};
|
|
37757
|
+
}, [handleInvalid, handleChange, handleBlur, onFocus,],);
|
|
37758
|
+
}
|
|
37759
|
+
var iconSpacing = 10;
|
|
37760
|
+
var iconSize = 16;
|
|
37761
|
+
var inputIconCSSDeclaration = {
|
|
37762
|
+
content: '',
|
|
37763
|
+
display: 'block',
|
|
37764
|
+
position: 'absolute',
|
|
37765
|
+
right: 0,
|
|
37766
|
+
top: 0,
|
|
37767
|
+
bottom: 0,
|
|
37768
|
+
width: `${iconSize}px`,
|
|
37769
|
+
boxSizing: 'content-box',
|
|
37770
|
+
// Offset the icon inwards by the padding.
|
|
37771
|
+
margin: css.variable(Var.Padding,),
|
|
37772
|
+
marginLeft: 0,
|
|
37773
|
+
border: 'none',
|
|
37774
|
+
pointerEvents: 'none',
|
|
37775
|
+
backgroundRepeat: 'no-repeat',
|
|
37776
|
+
backgroundSize: `${iconSize}px`,
|
|
37777
|
+
maskRepeat: 'no-repeat',
|
|
37778
|
+
maskSize: `${iconSize}px`,
|
|
37779
|
+
backgroundColor: css.variable(Var.IconColor,),
|
|
37780
|
+
};
|
|
37355
37781
|
var passwordManagerIgnoreDataProps = {
|
|
37356
37782
|
// 1Password
|
|
37357
37783
|
'data-1p-ignore': true,
|
|
37358
37784
|
// LastPass
|
|
37359
37785
|
'data-lpignore': true,
|
|
37360
|
-
|
|
37361
|
-
|
|
37786
|
+
// Dashlane
|
|
37787
|
+
// https://support.dashlane.com/hc/en-us/articles/4420122792594-Optimize-your-web-forms-for-Dashlane-Autofill
|
|
37788
|
+
'data-form-type': 'other',
|
|
37789
|
+
// autocomplete="off" is a generic property that disables autofilling. It
|
|
37790
|
+
// is not always respected by some browsers or password managers.
|
|
37362
37791
|
autocomplete: 'off',
|
|
37363
37792
|
};
|
|
37364
37793
|
var PlainTextInput = /* @__PURE__ */ React4.forwardRef(function FormPlainTextInput(props, ref,) {
|
|
37365
37794
|
const {
|
|
37366
|
-
style,
|
|
37367
|
-
inputName,
|
|
37368
|
-
type,
|
|
37369
|
-
required,
|
|
37370
37795
|
autoFocus,
|
|
37371
|
-
|
|
37372
|
-
|
|
37373
|
-
min,
|
|
37796
|
+
className: className2,
|
|
37797
|
+
inputName,
|
|
37374
37798
|
max,
|
|
37799
|
+
min,
|
|
37800
|
+
placeholder,
|
|
37801
|
+
required,
|
|
37375
37802
|
step: step2,
|
|
37803
|
+
style,
|
|
37804
|
+
type,
|
|
37805
|
+
// We use a defaultValue instead of a value so that the input remains
|
|
37806
|
+
// uncontrolled by React. This is important because we want the user
|
|
37807
|
+
// to be able to provide an initial value in the property panel, and for
|
|
37808
|
+
// the value to be editable by the user in the preview.
|
|
37809
|
+
defaultValue,
|
|
37810
|
+
autofillEnabled,
|
|
37811
|
+
onChange,
|
|
37812
|
+
onBlur,
|
|
37813
|
+
onInvalid,
|
|
37814
|
+
onFocus,
|
|
37815
|
+
onValid,
|
|
37376
37816
|
...rest
|
|
37377
37817
|
} = props;
|
|
37378
|
-
const
|
|
37379
|
-
|
|
37380
|
-
|
|
37381
|
-
|
|
37382
|
-
|
|
37383
|
-
|
|
37384
|
-
|
|
37385
|
-
|
|
37386
|
-
|
|
37387
|
-
|
|
37388
|
-
|
|
37389
|
-
|
|
37390
|
-
|
|
37391
|
-
|
|
37392
|
-
|
|
37393
|
-
|
|
37394
|
-
|
|
37395
|
-
children: /* @__PURE__ */ jsx(motion.textarea, {
|
|
37396
|
-
id: inputName,
|
|
37397
|
-
...dataProps,
|
|
37398
|
-
required,
|
|
37399
|
-
autoFocus,
|
|
37400
|
-
name: inputName,
|
|
37401
|
-
placeholder,
|
|
37402
|
-
className: inputClassName,
|
|
37403
|
-
value,
|
|
37404
|
-
},),
|
|
37405
|
-
},);
|
|
37406
|
-
default:
|
|
37407
|
-
return /* @__PURE__ */ jsx(motion.div, {
|
|
37408
|
-
ref,
|
|
37409
|
-
style,
|
|
37410
|
-
...rest,
|
|
37411
|
-
className: cx(inputWrapperClassName, props.className,),
|
|
37412
|
-
children: /* @__PURE__ */ jsx(motion.input, {
|
|
37413
|
-
id: inputName,
|
|
37414
|
-
...dataProps,
|
|
37415
|
-
type,
|
|
37416
|
-
required,
|
|
37417
|
-
autoFocus,
|
|
37418
|
-
name: inputName,
|
|
37419
|
-
placeholder,
|
|
37420
|
-
className: inputClassName,
|
|
37421
|
-
value,
|
|
37422
|
-
min,
|
|
37423
|
-
max,
|
|
37424
|
-
step: step2,
|
|
37425
|
-
},),
|
|
37426
|
-
},);
|
|
37818
|
+
const [hasValue, setHasValue,] = React4.useState(!!defaultValue,);
|
|
37819
|
+
const handleChange = React4.useCallback((e) => {
|
|
37820
|
+
const newValue = e.target.value;
|
|
37821
|
+
onChange == null ? void 0 : onChange(e,);
|
|
37822
|
+
setHasValue(!!newValue,);
|
|
37823
|
+
}, [onChange,],);
|
|
37824
|
+
const eventHandlers = useCustomValidity(onValid, onInvalid, handleChange, onBlur, onFocus,);
|
|
37825
|
+
useEffect(() => {
|
|
37826
|
+
setHasValue(!!defaultValue,);
|
|
37827
|
+
}, [defaultValue,],);
|
|
37828
|
+
const dataProps = autofillEnabled === false ? passwordManagerIgnoreDataProps : void 0;
|
|
37829
|
+
if (type === 'hidden') {
|
|
37830
|
+
return /* @__PURE__ */ jsx(motion.input, {
|
|
37831
|
+
type: 'hidden',
|
|
37832
|
+
name: inputName,
|
|
37833
|
+
defaultValue,
|
|
37834
|
+
},);
|
|
37427
37835
|
}
|
|
37836
|
+
return /* @__PURE__ */ jsx(motion.div, {
|
|
37837
|
+
ref,
|
|
37838
|
+
style,
|
|
37839
|
+
className: cx(textInputWrapperClassName, inputWrapperClassName, className2,),
|
|
37840
|
+
...rest,
|
|
37841
|
+
children: type === 'textarea'
|
|
37842
|
+
? /* @__PURE__ */ createElement(motion.textarea, {
|
|
37843
|
+
...dataProps,
|
|
37844
|
+
...eventHandlers,
|
|
37845
|
+
key: defaultValue,
|
|
37846
|
+
required,
|
|
37847
|
+
autoFocus,
|
|
37848
|
+
name: inputName,
|
|
37849
|
+
placeholder,
|
|
37850
|
+
className: inputClassName,
|
|
37851
|
+
defaultValue,
|
|
37852
|
+
},)
|
|
37853
|
+
: /* @__PURE__ */ createElement(motion.input, {
|
|
37854
|
+
...dataProps,
|
|
37855
|
+
...eventHandlers,
|
|
37856
|
+
key: defaultValue,
|
|
37857
|
+
type,
|
|
37858
|
+
required,
|
|
37859
|
+
autoFocus,
|
|
37860
|
+
name: inputName,
|
|
37861
|
+
placeholder,
|
|
37862
|
+
className: cx(inputClassName, !hasValue && emptyValueClassName,),
|
|
37863
|
+
defaultValue,
|
|
37864
|
+
min,
|
|
37865
|
+
max,
|
|
37866
|
+
step: step2,
|
|
37867
|
+
},),
|
|
37868
|
+
},);
|
|
37428
37869
|
},);
|
|
37429
|
-
var
|
|
37430
|
-
|
|
37431
|
-
|
|
37432
|
-
|
|
37433
|
-
|
|
37434
|
-
|
|
37435
|
-
|
|
37436
|
-
|
|
37437
|
-
|
|
37438
|
-
|
|
37439
|
-
|
|
37440
|
-
|
|
37441
|
-
|
|
37442
|
-
|
|
37870
|
+
var iconSize2 = 16;
|
|
37871
|
+
var textInputWrapperClassName = 'framer-form-text-input';
|
|
37872
|
+
var defaultTextareaResizerIcon =
|
|
37873
|
+
'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14"><path d="m1.5 8 7-7M9 5.5l-3 3" stroke="%23999" stroke-width="1.5" stroke-linecap="round"></path></svg>';
|
|
37874
|
+
var defaultDateIconMaskImage =
|
|
37875
|
+
'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="rgb(153, 153, 153)" d="M3 5a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2H3Z" opacity=".3"/><path fill="transparent" stroke="rgb(153, 153, 153)" stroke-width="1.5" d="M3.25 5.25a2 2 0 0 1 2-2h5.5a2 2 0 0 1 2 2v5.5a2 2 0 0 1-2 2h-5.5a2 2 0 0 1-2-2ZM3 6.75h9.5"/></svg>';
|
|
37876
|
+
var defaultTimeIconMaskImage =
|
|
37877
|
+
'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="transparent" stroke="rgb(153, 153, 153)" stroke-width="1.5" d="M2.5 8a5.5 5.5 0 1 1 11 0 5.5 5.5 0 1 1-11 0Z"/><path fill="transparent" stroke="rgb(153, 153, 153)" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M7.75 8.25v-3m0 3h2"/></svg>';
|
|
37878
|
+
var styles = /* @__PURE__ */ (() => [
|
|
37879
|
+
...sharedInputCSS,
|
|
37880
|
+
...inputBorderCSS,
|
|
37881
|
+
...inputWrapperCSS,
|
|
37882
|
+
css(`.${inputWrapperClassName}`, {
|
|
37883
|
+
boxShadow: css.variable('--framer-input-box-shadow',/* BoxShadow */
|
|
37884
|
+
),
|
|
37885
|
+
borderTopLeftRadius: css.variable('--framer-input-border-radius-top-left',/* BorderRadiusTopLeft */
|
|
37886
|
+
),
|
|
37887
|
+
borderTopRightRadius: css.variable('--framer-input-border-radius-top-right',/* BorderRadiusTopRight */
|
|
37888
|
+
),
|
|
37889
|
+
borderBottomRightRadius: css.variable('--framer-input-border-radius-bottom-right',/* BorderRadiusBottomRight */
|
|
37890
|
+
),
|
|
37891
|
+
borderBottomLeftRadius: css.variable('--framer-input-border-radius-bottom-left',/* BorderRadiusBottomLeft */
|
|
37892
|
+
),
|
|
37893
|
+
background: css.variable('--framer-input-background',/* Background */
|
|
37894
|
+
),
|
|
37895
|
+
transition: css.variable('--framer-input-focused-transition',/* FocusedTransition */
|
|
37896
|
+
),
|
|
37897
|
+
transitionProperty: 'background, box-shadow',
|
|
37898
|
+
},),
|
|
37899
|
+
css(`.${textInputWrapperClassName} .${inputClassName}::placeholder`, {
|
|
37900
|
+
color: css.variable('--framer-input-placeholder-color',/* PlaceholderColor */
|
|
37901
|
+
),
|
|
37902
|
+
},),
|
|
37903
|
+
css(`.${textInputWrapperClassName} .${inputClassName}[type="date"], .${textInputWrapperClassName} .${inputClassName}[type="time"]`, {
|
|
37904
|
+
'-webkit-appearance': 'none',
|
|
37905
|
+
appearance: 'none',
|
|
37906
|
+
},),
|
|
37907
|
+
// iOS only fix for centered date & time inputs: https://github.com/tailwindlabs/tailwindcss-forms/pull/144
|
|
37908
|
+
css(`.${textInputWrapperClassName} .${inputClassName}::-webkit-date-and-time-value`, {
|
|
37909
|
+
textAlign: 'start',
|
|
37910
|
+
},),
|
|
37911
|
+
css(`.${textInputWrapperClassName} textarea`, {
|
|
37912
|
+
display: 'flex',
|
|
37913
|
+
resize: css.variable('--framer-textarea-resize',/* Resize */
|
|
37914
|
+
),
|
|
37915
|
+
overflowY: 'scroll',
|
|
37916
|
+
minHeight: 'inherit',
|
|
37917
|
+
maxHeight: 'inherit',
|
|
37918
|
+
whiteSpace: 'break-spaces',
|
|
37919
|
+
},),
|
|
37920
|
+
// This targets the resize handle in WebKit browsers. Unfortunately, it is not
|
|
37921
|
+
// possible in CSS to target the resize handle in Firefox, so FF will always
|
|
37922
|
+
// show the native resize handle.
|
|
37923
|
+
css(`.${textInputWrapperClassName} textarea::-webkit-resizer`, {
|
|
37924
|
+
background: `no-repeat url('${defaultTextareaResizerIcon}')`,
|
|
37925
|
+
},),
|
|
37926
|
+
css(`.${textInputWrapperClassName} textarea::-webkit-scrollbar`, {
|
|
37927
|
+
cursor: 'pointer',
|
|
37928
|
+
background: 'transparent',
|
|
37929
|
+
},),
|
|
37930
|
+
css(`.${textInputWrapperClassName} textarea::-webkit-scrollbar-thumb:window-inactive`, {
|
|
37931
|
+
opacity: 0,
|
|
37932
|
+
},),
|
|
37933
|
+
css(`.${textInputWrapperClassName} textarea::-webkit-scrollbar-corner`, {
|
|
37934
|
+
background: 'none',
|
|
37935
|
+
backgroundColor: 'transparent',
|
|
37936
|
+
outline: 'none',
|
|
37937
|
+
},),
|
|
37938
|
+
css(`.${textInputWrapperClassName} .${inputClassName}.${emptyValueClassName}::-webkit-datetime-edit`, {
|
|
37939
|
+
color: css.variable('--framer-input-placeholder-color',/* PlaceholderColor */
|
|
37940
|
+
),
|
|
37941
|
+
// This tells safari to use the color for the shadow dom elements.
|
|
37942
|
+
'-webkit-text-fill-color': css.variable('--framer-input-placeholder-color',/* PlaceholderColor */
|
|
37943
|
+
),
|
|
37944
|
+
},),
|
|
37945
|
+
css(
|
|
37946
|
+
`.${textInputWrapperClassName} .${inputClassName}[type="date"]::before, .${textInputWrapperClassName} .${inputClassName}[type="time"]::before`,
|
|
37947
|
+
{
|
|
37948
|
+
...inputIconCSSDeclaration,
|
|
37949
|
+
paddingLeft: `${iconSpacing}px`,
|
|
37950
|
+
maskPosition: `${iconSpacing}px center`,
|
|
37951
|
+
backgroundPosition: `${iconSpacing}px center`,
|
|
37952
|
+
},
|
|
37953
|
+
),
|
|
37954
|
+
css(`.${textInputWrapperClassName} .${inputClassName}[type="date"]::before`, {
|
|
37955
|
+
maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultDateIconMaskImage}')`,),
|
|
37956
|
+
backgroundImage: css.variable('--framer-input-icon-image',/* IconBackgroundImage */
|
|
37957
|
+
),
|
|
37958
|
+
},),
|
|
37959
|
+
css(`.${textInputWrapperClassName} .${inputClassName}[type="time"]::before`, {
|
|
37960
|
+
maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultTimeIconMaskImage}')`,),
|
|
37961
|
+
backgroundImage: css.variable('--framer-input-icon-image',/* IconBackgroundImage */
|
|
37962
|
+
),
|
|
37963
|
+
},),
|
|
37964
|
+
// Hide the native date picker icon, but still allow the user to click it.
|
|
37965
|
+
css(`.${textInputWrapperClassName} .${inputClassName}::-webkit-calendar-picker-indicator`, {
|
|
37966
|
+
opacity: 0,
|
|
37967
|
+
padding: css.variable('--framer-input-padding',/* Padding */
|
|
37968
|
+
),
|
|
37969
|
+
paddingRight: 0,
|
|
37970
|
+
paddingLeft: `${iconSpacing}px`,
|
|
37971
|
+
width: `${iconSize2}px`,
|
|
37972
|
+
height: `${iconSize2}px`,
|
|
37973
|
+
},),
|
|
37974
|
+
css(`.${textInputWrapperClassName}:focus-within, .${textInputWrapperClassName}.${forcedFocusClassName}`, {
|
|
37975
|
+
boxShadow: css.variable('--framer-input-focused-box-shadow', '--framer-input-box-shadow',/* BoxShadow */
|
|
37976
|
+
),
|
|
37977
|
+
background: css.variable('--framer-input-focused-background', '--framer-input-background',/* Background */
|
|
37978
|
+
),
|
|
37979
|
+
},),
|
|
37980
|
+
css(`.${textInputWrapperClassName}:focus-within::after, .${textInputWrapperClassName}.${forcedFocusClassName}::after`, {
|
|
37981
|
+
borderColor: css.variable('--framer-input-focused-border-color', '--framer-input-border-color',/* BorderColor */
|
|
37982
|
+
),
|
|
37983
|
+
borderStyle: css.variable('--framer-input-focused-border-style', '--framer-input-border-style',/* BorderStyle */
|
|
37984
|
+
),
|
|
37985
|
+
borderWidth: css.variable('--framer-input-focused-border-width', inputBorderAllSides,),
|
|
37986
|
+
},),
|
|
37987
|
+
])();
|
|
37988
|
+
var FormPlainTextInput2 = /* @__PURE__ */ withCSS(PlainTextInput, styles,);
|
|
37989
|
+
var className = 'framer-form-boolean-input';
|
|
37990
|
+
var BooleanInput = /* @__PURE__ */ React4.forwardRef(function FormPlainTextInput3(props, ref,) {
|
|
37991
|
+
const {
|
|
37992
|
+
inputName,
|
|
37993
|
+
type = 'checkbox',
|
|
37994
|
+
defaultChecked,
|
|
37995
|
+
onValid,
|
|
37996
|
+
...rest
|
|
37997
|
+
} = props;
|
|
37998
|
+
const isCanvas = useIsOnFramerCanvas();
|
|
37999
|
+
const attributes = isCanvas
|
|
38000
|
+
? {
|
|
38001
|
+
checked: defaultChecked,
|
|
38002
|
+
}
|
|
38003
|
+
: {
|
|
38004
|
+
defaultChecked,
|
|
38005
|
+
};
|
|
38006
|
+
const eventHandlers = useCustomValidity(onValid, props.onInvalid, props.onChange, props.onBlur, props.onFocus,);
|
|
38007
|
+
return /* @__PURE__ */ jsx(motion.input, {
|
|
38008
|
+
...rest,
|
|
38009
|
+
...attributes,
|
|
38010
|
+
...eventHandlers,
|
|
38011
|
+
readOnly: isCanvas,
|
|
38012
|
+
ref,
|
|
38013
|
+
type,
|
|
38014
|
+
name: inputName,
|
|
38015
|
+
className: cx(className, props.className,),
|
|
38016
|
+
},);
|
|
38017
|
+
},);
|
|
38018
|
+
var defaultCheckedIcon =
|
|
38019
|
+
'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path d="M 4 8 L 6.5 10.5 L 11.5 5.5" fill="transparent" stroke-width="2" stroke="rgb(255, 255, 255)" stroke-linecap="round" stroke-linejoin="round"></path></svg>';
|
|
38020
|
+
var borderRadius =
|
|
38021
|
+
`var(${'--framer-input-border-radius-top-left'}) var(${'--framer-input-border-radius-top-right'}) var(${'--framer-input-border-radius-bottom-right'}) var(${'--framer-input-border-radius-bottom-left'})`;
|
|
38022
|
+
var styles2 = /* @__PURE__ */ (() => [
|
|
38023
|
+
css(`.${className}`, {
|
|
38024
|
+
'-webkit-appearance': 'none',
|
|
38025
|
+
// background-color: #fff; fixes a bug on iOS where the checkbox shows
|
|
38026
|
+
// through the appearance: none;
|
|
38027
|
+
alignItems: 'center',
|
|
38028
|
+
appearance: 'none',
|
|
38029
|
+
backgroundColor: '#fff',
|
|
38030
|
+
background: '--framer-input-background',
|
|
38031
|
+
borderRadius,
|
|
38032
|
+
boxShadow: '--framer-input-box-shadow',
|
|
38033
|
+
display: 'flex',
|
|
38034
|
+
justifyContent: 'center',
|
|
38035
|
+
margin: 0,
|
|
38036
|
+
overflow: 'hidden',
|
|
38037
|
+
position: 'relative',
|
|
38038
|
+
transition: '--framer-input-boolean-checked-transition',
|
|
38039
|
+
transitionProperty: 'box-shadow, background',
|
|
38040
|
+
},),
|
|
38041
|
+
// The after element styles the border of the checkbox to conform to
|
|
38042
|
+
// framer's inset border model.
|
|
38043
|
+
css(`.${className}::after`, {
|
|
38044
|
+
background: 'transparent',
|
|
38045
|
+
borderColor: css.variable('--framer-input-border-color', 'transparent',),
|
|
38046
|
+
borderRadius,
|
|
38047
|
+
borderStyle: '--framer-input-border-style',
|
|
38048
|
+
borderWidth: inputBorderAllSides,
|
|
38049
|
+
boxSizing: 'border-box',
|
|
38050
|
+
content: '',
|
|
38051
|
+
display: 'block',
|
|
38052
|
+
inset: 0,
|
|
38053
|
+
position: 'absolute',
|
|
38054
|
+
transition: '--framer-input-boolean-checked-transition',
|
|
38055
|
+
transitionProperty: 'border-color, border-width, border-style',
|
|
38056
|
+
},),
|
|
38057
|
+
// The before element is used to display the check mark icon. It is
|
|
38058
|
+
// faded in when the input is checked.
|
|
38059
|
+
css(`.${className}::before`, {
|
|
38060
|
+
...inputIconCSSDeclaration,
|
|
38061
|
+
backgroundPosition: 'center',
|
|
38062
|
+
backgroundSize: 'contain',
|
|
38063
|
+
maskPosition: 'center',
|
|
38064
|
+
maskSize: 'contain',
|
|
38065
|
+
height: '100%',
|
|
38066
|
+
opacity: 0,
|
|
38067
|
+
transition: '--framer-input-boolean-checked-transition',
|
|
38068
|
+
transitionProperty: 'opacity',
|
|
38069
|
+
width: '100%',
|
|
38070
|
+
},),
|
|
38071
|
+
// The BooleanInput component shows an svg check mark icon whenever an
|
|
38072
|
+
// image url isn't provided. That's not an intuitive system for radios
|
|
38073
|
+
// however, where we never want to show the default check mark.
|
|
38074
|
+
css(`.${className}[type="checkbox"]::before`, {
|
|
38075
|
+
backgroundImage: css.variable('--framer-input-icon-image',/* IconBackgroundImage */
|
|
38076
|
+
),
|
|
38077
|
+
maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultCheckedIcon}')`,),
|
|
38078
|
+
},),
|
|
38079
|
+
css(`.${className}[type="radio"]::before`, {
|
|
38080
|
+
backgroundImage: css.variable('--framer-input-icon-image',/* IconBackgroundImage */
|
|
38081
|
+
),
|
|
38082
|
+
maskImage: css.variable('--framer-input-icon-mask-image',/* IconMaskImage */
|
|
38083
|
+
),
|
|
38084
|
+
},),
|
|
38085
|
+
css(`.${className}:checked, .${className}.${forcedCheckedClassName}`, {
|
|
38086
|
+
// When not set, the styles when checked shouldn't clear the default
|
|
38087
|
+
// styles.
|
|
38088
|
+
backgroundColor: css.variable('--framer-input-boolean-checked-background', '--framer-input-background',/* Background */
|
|
38089
|
+
),
|
|
38090
|
+
boxShadow: css.variable('--framer-input-boolean-checked-box-shadow', '--framer-input-box-shadow',/* BoxShadow */
|
|
38091
|
+
),
|
|
38092
|
+
},),
|
|
38093
|
+
css(`.${className}:checked::before, .${className}.${forcedCheckedClassName}::before`, {
|
|
38094
|
+
opacity: 1,
|
|
38095
|
+
},),
|
|
38096
|
+
css(`.${className}:checked::after, .${className}.${forcedCheckedClassName}::after`, {
|
|
38097
|
+
// When not set, the styles when checked shouldn't clear the default
|
|
38098
|
+
// styles.
|
|
38099
|
+
borderColor: css.variable('--framer-input-boolean-checked-border-color', '--framer-input-border-color', 'transparent',),
|
|
38100
|
+
borderStyle: css.variable('--framer-input-boolean-checked-border-style', '--framer-input-border-style', 'solid',),
|
|
38101
|
+
borderWidth: css.variable('--framer-input-boolean-checked-border-width', inputBorderAllSides,),
|
|
38102
|
+
},),
|
|
38103
|
+
css(`.${className}:focus, .${className}.${forcedFocusClassName}`, {
|
|
38104
|
+
backgroundColor: css.variable('--framer-input-focused-background', '--framer-input-background',/* Background */
|
|
38105
|
+
),
|
|
38106
|
+
boxShadow: css.variable('--framer-input-focused-box-shadow', '--framer-input-box-shadow',/* BoxShadow */
|
|
38107
|
+
),
|
|
38108
|
+
},),
|
|
38109
|
+
css(`.${className}:focus-visible`, {
|
|
38110
|
+
outline: 'none',
|
|
38111
|
+
},),
|
|
38112
|
+
css(`.${className}:focus::after, .${className}.${forcedFocusClassName}::after`, {
|
|
38113
|
+
// When not set, the styles when focused shouldn't clear the checked
|
|
38114
|
+
// styles.
|
|
38115
|
+
borderColor: css.variable('--framer-input-focused-border-color', '--framer-input-border-color', 'transparent',),
|
|
38116
|
+
borderStyle: css.variable('--framer-input-focused-border-style', '--framer-input-border-style', 'solid',),
|
|
38117
|
+
borderWidth: css.variable('--framer-input-focused-border-width', inputBorderAllSides,),
|
|
38118
|
+
},),
|
|
38119
|
+
css(`.${className}:focus:checked`, {
|
|
38120
|
+
backgroundColor: css.variable(
|
|
38121
|
+
'--framer-input-focused-background',
|
|
38122
|
+
'--framer-input-boolean-checked-background',
|
|
38123
|
+
'--framer-input-background',
|
|
38124
|
+
/* Background */
|
|
38125
|
+
),
|
|
38126
|
+
boxShadow: css.variable(
|
|
38127
|
+
'--framer-input-focused-box-shadow',
|
|
38128
|
+
'--framer-input-boolean-checked-box-shadow',
|
|
38129
|
+
'--framer-input-box-shadow',
|
|
38130
|
+
/* BoxShadow */
|
|
38131
|
+
),
|
|
38132
|
+
},),
|
|
38133
|
+
css(`.${className}:focus:checked::after`, {
|
|
38134
|
+
borderStyle: css.variable(
|
|
38135
|
+
'--framer-input-focused-border-style',
|
|
38136
|
+
'--framer-input-boolean-checked-border-style',
|
|
38137
|
+
'--framer-input-border-style',
|
|
38138
|
+
'solid',
|
|
38139
|
+
),
|
|
38140
|
+
borderWidth: css.variable('--framer-input-focused-border-width', '--framer-input-boolean-checked-border-width', inputBorderAllSides,),
|
|
38141
|
+
},),
|
|
38142
|
+
])();
|
|
38143
|
+
var FormBooleanInput = /* @__PURE__ */ withCSS(BooleanInput, styles2,);
|
|
37443
38144
|
var Select = /* @__PURE__ */ React4.forwardRef(function Select2(props, measureRef,) {
|
|
37444
38145
|
const {
|
|
37445
|
-
|
|
38146
|
+
autoFocus,
|
|
38147
|
+
className: className2,
|
|
37446
38148
|
inputName,
|
|
37447
38149
|
required,
|
|
37448
|
-
|
|
38150
|
+
defaultValue,
|
|
37449
38151
|
selectOptions,
|
|
37450
|
-
|
|
38152
|
+
style,
|
|
38153
|
+
onValid,
|
|
38154
|
+
onChange,
|
|
38155
|
+
onBlur,
|
|
38156
|
+
onInvalid,
|
|
38157
|
+
onFocus,
|
|
38158
|
+
...rest
|
|
37451
38159
|
} = props;
|
|
38160
|
+
const eventHandlers = useCustomValidity(onValid, onInvalid, onChange, onBlur, onFocus,);
|
|
38161
|
+
const key7 = Array.isArray(defaultValue,) ? defaultValue[0] : defaultValue;
|
|
37452
38162
|
return /* @__PURE__ */ jsx(motion.div, {
|
|
37453
38163
|
ref: measureRef,
|
|
37454
38164
|
style,
|
|
37455
|
-
className: cx(inputWrapperClassName, selectWrapperClassName,
|
|
38165
|
+
className: cx(inputWrapperClassName, selectWrapperClassName, className2,),
|
|
38166
|
+
...rest,
|
|
37456
38167
|
children: /* @__PURE__ */ jsx(motion.select, {
|
|
37457
|
-
id: inputName,
|
|
37458
38168
|
name: inputName,
|
|
37459
38169
|
autoFocus,
|
|
37460
38170
|
required,
|
|
37461
38171
|
className: inputClassName,
|
|
37462
|
-
defaultValue
|
|
38172
|
+
defaultValue,
|
|
38173
|
+
...eventHandlers,
|
|
37463
38174
|
children: selectOptions == null ? void 0 : selectOptions.map((option, index,) => {
|
|
37464
38175
|
switch (option.type) {
|
|
37465
38176
|
case 'divider':
|
|
@@ -37472,38 +38183,84 @@ var Select = /* @__PURE__ */ React4.forwardRef(function Select2(props, measureRe
|
|
|
37472
38183
|
}, index,);
|
|
37473
38184
|
}
|
|
37474
38185
|
},),
|
|
37475
|
-
},
|
|
38186
|
+
}, key7,),
|
|
37476
38187
|
},);
|
|
37477
38188
|
},);
|
|
37478
38189
|
var selectWrapperClassName = 'framer-form-select-wrapper';
|
|
37479
38190
|
var selectArrowSize = 16;
|
|
37480
|
-
var
|
|
37481
|
-
|
|
37482
|
-
|
|
37483
|
-
|
|
37484
|
-
|
|
37485
|
-
|
|
37486
|
-
|
|
37487
|
-
|
|
37488
|
-
|
|
37489
|
-
|
|
37490
|
-
|
|
37491
|
-
|
|
37492
|
-
|
|
37493
|
-
|
|
37494
|
-
|
|
37495
|
-
|
|
37496
|
-
|
|
37497
|
-
|
|
37498
|
-
|
|
37499
|
-
|
|
37500
|
-
|
|
37501
|
-
|
|
37502
|
-
|
|
37503
|
-
|
|
37504
|
-
|
|
37505
|
-
|
|
37506
|
-
|
|
38191
|
+
var defaultSelectCaretMaskImage =
|
|
38192
|
+
/* @__PURE__ */ (() =>
|
|
38193
|
+
`data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="${selectArrowSize}" height="${selectArrowSize}"><path d="M 3.5 6 L 8 10.5 L 12.5 6" fill="transparent" stroke-width="1.5" stroke="rgb(153, 153, 153)" stroke-linecap="round" stroke-linejoin="round"></path></svg>`)();
|
|
38194
|
+
var styles3 = /* @__PURE__ */ (() => [
|
|
38195
|
+
...sharedInputCSS,
|
|
38196
|
+
...inputBorderCSS,
|
|
38197
|
+
...inputWrapperCSS,
|
|
38198
|
+
css(`.${selectWrapperClassName}`, {
|
|
38199
|
+
// First we use the complete padding string, which may be any valid
|
|
38200
|
+
// padding string (10px, 10px 10px, 10px 10px 10px, or 10px 10px
|
|
38201
|
+
// 10px 10px), and use it to set only the right padding. This pushes
|
|
38202
|
+
// the actual select away from the arrow by 1x.
|
|
38203
|
+
padding: css.variable('--framer-input-padding',/* Padding */
|
|
38204
|
+
),
|
|
38205
|
+
paddingTop: 0,
|
|
38206
|
+
paddingBottom: 0,
|
|
38207
|
+
paddingLeft: 0,
|
|
38208
|
+
background: css.variable('--framer-input-background',/* Background */
|
|
38209
|
+
),
|
|
38210
|
+
borderTopLeftRadius: css.variable('--framer-input-border-radius-top-left',/* BorderRadiusTopLeft */
|
|
38211
|
+
),
|
|
38212
|
+
borderTopRightRadius: css.variable('--framer-input-border-radius-top-right',/* BorderRadiusTopRight */
|
|
38213
|
+
),
|
|
38214
|
+
borderBottomRightRadius: css.variable('--framer-input-border-radius-bottom-right',/* BorderRadiusBottomRight */
|
|
38215
|
+
),
|
|
38216
|
+
borderBottomLeftRadius: css.variable('--framer-input-border-radius-bottom-left',/* BorderRadiusBottomLeft */
|
|
38217
|
+
),
|
|
38218
|
+
boxShadow: css.variable('--framer-input-box-shadow',/* BoxShadow */
|
|
38219
|
+
),
|
|
38220
|
+
transition: css.variable('--framer-input-focused-transition',/* FocusedTransition */
|
|
38221
|
+
),
|
|
38222
|
+
transitionProperty: 'background, box-shadow',
|
|
38223
|
+
},),
|
|
38224
|
+
css(`.${selectWrapperClassName} select`, {
|
|
38225
|
+
appearance: 'none',
|
|
38226
|
+
'-webkit-appearance': 'none',
|
|
38227
|
+
// Then we use the complete padding string again as the margin for
|
|
38228
|
+
// the select. This moves the select 2x the padding right away from
|
|
38229
|
+
// the arrow.
|
|
38230
|
+
padding: css.variable('--framer-input-padding',/* Padding */
|
|
38231
|
+
),
|
|
38232
|
+
// Overwrite the values inherited from .${inputClassName}. On a
|
|
38233
|
+
// select, these values are on the wrapper.
|
|
38234
|
+
background: 'transparent',
|
|
38235
|
+
},),
|
|
38236
|
+
css(`.${selectWrapperClassName}::before`, {
|
|
38237
|
+
...inputIconCSSDeclaration,
|
|
38238
|
+
paddingLeft: `${iconSpacing}px`,
|
|
38239
|
+
backgroundPosition: `${iconSpacing}px center`,
|
|
38240
|
+
maskPosition: `${iconSpacing}px center`,
|
|
38241
|
+
backgroundImage: css.variable('--framer-input-icon-image',/* IconBackgroundImage */
|
|
38242
|
+
),
|
|
38243
|
+
maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultSelectCaretMaskImage}')`,),
|
|
38244
|
+
},),
|
|
38245
|
+
css(`.${selectWrapperClassName} select:required:invalid`, {
|
|
38246
|
+
color: css.variable('--framer-input-invalid-text-color',/* InvalidTextColor */
|
|
38247
|
+
),
|
|
38248
|
+
},),
|
|
38249
|
+
css(`.${selectWrapperClassName}:focus-within, .${selectWrapperClassName}.${forcedFocusClassName}`, {
|
|
38250
|
+
background: css.variable('--framer-input-focused-background', '--framer-input-background',/* Background */
|
|
38251
|
+
),
|
|
38252
|
+
boxShadow: css.variable('--framer-input-focused-box-shadow', '--framer-input-box-shadow',/* BoxShadow */
|
|
38253
|
+
),
|
|
38254
|
+
},),
|
|
38255
|
+
css(`.${selectWrapperClassName}:focus-within::after, .${selectWrapperClassName}.${forcedFocusClassName}::after`, {
|
|
38256
|
+
borderColor: css.variable('--framer-input-focused-border-color', '--framer-input-border-color',/* BorderColor */
|
|
38257
|
+
),
|
|
38258
|
+
borderStyle: css.variable('--framer-input-focused-border-style', '--framer-input-border-style',/* BorderStyle */
|
|
38259
|
+
),
|
|
38260
|
+
borderWidth: css.variable('--framer-input-focused-border-width', inputBorderAllSides,),
|
|
38261
|
+
},),
|
|
38262
|
+
])();
|
|
38263
|
+
var FormSelect = /* @__PURE__ */ withCSS(Select, styles3,);
|
|
37507
38264
|
var Image2 = /* @__PURE__ */ React4.forwardRef(function Image3(props, ref,) {
|
|
37508
38265
|
const {
|
|
37509
38266
|
background,
|
|
@@ -37610,7 +38367,7 @@ function convertCodeComponentContainer(componentDefinitionProvider, node, conver
|
|
|
37610
38367
|
),
|
|
37611
38368
|
];
|
|
37612
38369
|
}
|
|
37613
|
-
var CodeComponentPresentation = class {
|
|
38370
|
+
var CodeComponentPresentation = /*#__PURE__*/ class {
|
|
37614
38371
|
constructor(id3, componentIdentifier, packageVersion, props, children, codeOverrideIdentifier,) {
|
|
37615
38372
|
this.id = id3;
|
|
37616
38373
|
this.componentIdentifier = componentIdentifier;
|
|
@@ -37713,7 +38470,7 @@ var DeprecatedRichText = /* @__PURE__ */ React2.forwardRef(function Text(props,
|
|
|
37713
38470
|
top,
|
|
37714
38471
|
bottom,
|
|
37715
38472
|
center,
|
|
37716
|
-
className,
|
|
38473
|
+
className: className2,
|
|
37717
38474
|
stylesPresetsClassName,
|
|
37718
38475
|
visible = true,
|
|
37719
38476
|
opacity,
|
|
@@ -37854,7 +38611,7 @@ var DeprecatedRichText = /* @__PURE__ */ React2.forwardRef(function Text(props,
|
|
|
37854
38611
|
'data-framer-name': name,
|
|
37855
38612
|
'data-framer-component-type': 'DeprecatedRichText',
|
|
37856
38613
|
'data-center': center,
|
|
37857
|
-
className: cx(
|
|
38614
|
+
className: cx(className2, stylesPresetsClassName, richTextWrapperClassName,),
|
|
37858
38615
|
transformTemplate: template,
|
|
37859
38616
|
dangerouslySetInnerHTML: {
|
|
37860
38617
|
__html: innerHTMLWithReplacedFramerPageLinks,
|
|
@@ -38322,7 +39079,7 @@ var ImagePatternElement = ({
|
|
|
38322
39079
|
},);
|
|
38323
39080
|
};
|
|
38324
39081
|
var useDOM = /* @__PURE__ */ isBrowser2();
|
|
38325
|
-
var SharedSVGEntry = class {
|
|
39082
|
+
var SharedSVGEntry = /*#__PURE__*/ class {
|
|
38326
39083
|
constructor(id3, svg, innerHTML, viewBox, count = 0,) {
|
|
38327
39084
|
this.id = id3;
|
|
38328
39085
|
this.svg = svg;
|
|
@@ -38331,7 +39088,7 @@ var SharedSVGEntry = class {
|
|
|
38331
39088
|
this.count = count;
|
|
38332
39089
|
}
|
|
38333
39090
|
};
|
|
38334
|
-
var SharedSVGManager = class {
|
|
39091
|
+
var SharedSVGManager = /*#__PURE__*/ class {
|
|
38335
39092
|
constructor() {
|
|
38336
39093
|
__publicField(this, 'entries', /* @__PURE__ */ new Map(),);
|
|
38337
39094
|
}
|
|
@@ -38730,7 +39487,7 @@ var SVGComponent = /* @__PURE__ */ (() => {
|
|
|
38730
39487
|
title,
|
|
38731
39488
|
description,
|
|
38732
39489
|
layoutId,
|
|
38733
|
-
className,
|
|
39490
|
+
className: className2,
|
|
38734
39491
|
variants,
|
|
38735
39492
|
withExternalLayout,
|
|
38736
39493
|
innerRef,
|
|
@@ -38896,7 +39653,7 @@ var SVGComponent = /* @__PURE__ */ (() => {
|
|
|
38896
39653
|
id: id3,
|
|
38897
39654
|
ref: innerRef,
|
|
38898
39655
|
style: outerStyle,
|
|
38899
|
-
className,
|
|
39656
|
+
className: className2,
|
|
38900
39657
|
variants,
|
|
38901
39658
|
tabIndex: this.props.tabIndex,
|
|
38902
39659
|
role: title || description ? 'img' : void 0,
|
|
@@ -39040,7 +39797,7 @@ var TextComponent = /* @__PURE__ */ (() => {
|
|
|
39040
39797
|
opacity,
|
|
39041
39798
|
id: id3,
|
|
39042
39799
|
layoutId,
|
|
39043
|
-
className,
|
|
39800
|
+
className: className2,
|
|
39044
39801
|
transition,
|
|
39045
39802
|
variants,
|
|
39046
39803
|
name,
|
|
@@ -39131,7 +39888,7 @@ var TextComponent = /* @__PURE__ */ (() => {
|
|
|
39131
39888
|
__html: rawHTML,
|
|
39132
39889
|
},
|
|
39133
39890
|
'data-center': this.props.center,
|
|
39134
|
-
className: cx(
|
|
39891
|
+
className: cx(className2, matchesCurrentRoute && 'isCurrent',),
|
|
39135
39892
|
transition,
|
|
39136
39893
|
variants,
|
|
39137
39894
|
ref: this.setElement,
|
|
@@ -39324,7 +40081,7 @@ function getTabIndexProps(tabIndex,) {
|
|
|
39324
40081
|
};
|
|
39325
40082
|
}
|
|
39326
40083
|
var keys22 = /* @__PURE__ */ new Map();
|
|
39327
|
-
var InternalID = class {
|
|
40084
|
+
var InternalID = /*#__PURE__*/ class {
|
|
39328
40085
|
constructor(id3,) {
|
|
39329
40086
|
this.id = id3;
|
|
39330
40087
|
__publicField(this, '_link', null,);
|
|
@@ -39355,7 +40112,7 @@ var InternalID = class {
|
|
|
39355
40112
|
}
|
|
39356
40113
|
};
|
|
39357
40114
|
var PathSegmentOuter = /* @__PURE__ */ (() => {
|
|
39358
|
-
const _PathSegment = class {
|
|
40115
|
+
const _PathSegment = /*#__PURE__*/ class {
|
|
39359
40116
|
constructor(value,) {
|
|
39360
40117
|
__publicField(this, '__class', 'PathSegment',);
|
|
39361
40118
|
__publicField(this, 'x', 0,);
|
|
@@ -39610,7 +40367,7 @@ function transformString(transform2,) {
|
|
|
39610
40367
|
}
|
|
39611
40368
|
return result;
|
|
39612
40369
|
}
|
|
39613
|
-
var LinearGradientElement = class extends Component {
|
|
40370
|
+
var LinearGradientElement = /*#__PURE__*/ class extends Component {
|
|
39614
40371
|
render() {
|
|
39615
40372
|
const {
|
|
39616
40373
|
id: id3,
|
|
@@ -39636,7 +40393,7 @@ var LinearGradientElement = class extends Component {
|
|
|
39636
40393
|
},);
|
|
39637
40394
|
}
|
|
39638
40395
|
};
|
|
39639
|
-
var RadialGradientElement = class extends Component {
|
|
40396
|
+
var RadialGradientElement = /*#__PURE__*/ class extends Component {
|
|
39640
40397
|
render() {
|
|
39641
40398
|
const {
|
|
39642
40399
|
centerAnchorX,
|
|
@@ -39664,7 +40421,7 @@ var RadialGradientElement = class extends Component {
|
|
|
39664
40421
|
},);
|
|
39665
40422
|
}
|
|
39666
40423
|
};
|
|
39667
|
-
var SVGRoot = class extends Component {
|
|
40424
|
+
var SVGRoot = /*#__PURE__*/ class extends Component {
|
|
39668
40425
|
render() {
|
|
39669
40426
|
const {
|
|
39670
40427
|
children,
|
|
@@ -40359,7 +41116,7 @@ function loadJSON(url,) {
|
|
|
40359
41116
|
},).then((res) => res.json());
|
|
40360
41117
|
}
|
|
40361
41118
|
function inspectObjectType(item,) {
|
|
40362
|
-
let
|
|
41119
|
+
let className2;
|
|
40363
41120
|
if (
|
|
40364
41121
|
(item.constructor !== null ? item.constructor.name : void 0) !== null &&
|
|
40365
41122
|
(item.constructor !== null ? item.constructor.name : void 0) !== 'Object'
|
|
@@ -40378,15 +41135,15 @@ function inspectObjectType(item,) {
|
|
|
40378
41135
|
return null;
|
|
40379
41136
|
};
|
|
40380
41137
|
if (item.toString) {
|
|
40381
|
-
|
|
40382
|
-
if (
|
|
40383
|
-
return
|
|
41138
|
+
className2 = extract(item.toString(),);
|
|
41139
|
+
if (className2) {
|
|
41140
|
+
return className2;
|
|
40384
41141
|
}
|
|
40385
41142
|
}
|
|
40386
41143
|
if (item.constructor !== null ? item.constructor.toString : void 0) {
|
|
40387
|
-
|
|
40388
|
-
if (
|
|
40389
|
-
return
|
|
41144
|
+
className2 = extract(item.constructor !== null ? item.constructor.toString() : void 0,);
|
|
41145
|
+
if (className2) {
|
|
41146
|
+
return className2.replace('Constructor', '',);
|
|
40390
41147
|
}
|
|
40391
41148
|
}
|
|
40392
41149
|
return 'Object';
|
|
@@ -40526,7 +41283,7 @@ var package_default = {
|
|
|
40526
41283
|
yargs: '^17.6.2',
|
|
40527
41284
|
},
|
|
40528
41285
|
peerDependencies: {
|
|
40529
|
-
'framer-motion': '11.2.
|
|
41286
|
+
'framer-motion': '11.2.10',
|
|
40530
41287
|
react: '^18.2.0',
|
|
40531
41288
|
'react-dom': '^18.2.0',
|
|
40532
41289
|
},
|
|
@@ -40668,6 +41425,7 @@ export {
|
|
|
40668
41425
|
FontSourceNames,
|
|
40669
41426
|
fontStore,
|
|
40670
41427
|
forceLayerBackingWithCSSProperties,
|
|
41428
|
+
FormBooleanInput,
|
|
40671
41429
|
FormContainer,
|
|
40672
41430
|
FormPlainTextInput2 as FormPlainTextInput,
|
|
40673
41431
|
FormSelect,
|
|
@@ -40786,6 +41544,7 @@ export {
|
|
|
40786
41544
|
PropertyOverrides,
|
|
40787
41545
|
PropertyStore,
|
|
40788
41546
|
propsForLink,
|
|
41547
|
+
pushLoadMoreHistory,
|
|
40789
41548
|
px,
|
|
40790
41549
|
QueryEngine,
|
|
40791
41550
|
RadialGradient,
|
|
@@ -40843,7 +41602,6 @@ export {
|
|
|
40843
41602
|
useAnimationControls,
|
|
40844
41603
|
useAnimationFrame,
|
|
40845
41604
|
useBreakpointVariants,
|
|
40846
|
-
useCollectionListPaginationInfo,
|
|
40847
41605
|
useComponentViewport,
|
|
40848
41606
|
useConstant2 as useConstant,
|
|
40849
41607
|
useCurrentPathVariables,
|
|
@@ -40921,6 +41679,7 @@ export {
|
|
|
40921
41679
|
withCSS,
|
|
40922
41680
|
withFX,
|
|
40923
41681
|
withGeneratedLayoutId,
|
|
41682
|
+
withInfiniteScroll,
|
|
40924
41683
|
withMappedReactProps,
|
|
40925
41684
|
withMeasuredSize,
|
|
40926
41685
|
WithNavigator,
|