unframer 2.5.3 → 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/esm/framer.js CHANGED
@@ -158,7 +158,7 @@ var SwitchLayoutGroupContext = createContext({});
158
158
  var LazyContext = createContext({
159
159
  strict: false,
160
160
  });
161
- var Queue = class {
161
+ var Queue = /*#__PURE__*/ class {
162
162
  constructor() {
163
163
  this.order = [];
164
164
  this.scheduled = /* @__PURE__ */ new Set();
@@ -1071,8 +1071,8 @@ function getSpringOptions(options) {
1071
1071
  }
1072
1072
  return springOptions;
1073
1073
  }
1074
- function spring(_f) {
1075
- var { keyframes: keyframes2, restDelta, restSpeed } = _f, options = __rest(_f, ["keyframes", "restDelta", "restSpeed"]);
1074
+ function spring(_j) {
1075
+ var { keyframes: keyframes2, restDelta, restSpeed } = _j, options = __rest(_j, ["keyframes", "restDelta", "restSpeed"]);
1076
1076
  const origin = keyframes2[0];
1077
1077
  const target = keyframes2[keyframes2.length - 1];
1078
1078
  const state = {
@@ -1498,7 +1498,7 @@ function flushKeyframeResolvers() {
1498
1498
  readAllKeyframes();
1499
1499
  measureAllKeyframes();
1500
1500
  }
1501
- var KeyframeResolver = class {
1501
+ var KeyframeResolver = /*#__PURE__*/ class {
1502
1502
  constructor(unresolvedKeyframes, onComplete, name, motionValue2, element, isAsync = false) {
1503
1503
  this.isComplete = false;
1504
1504
  this.isAsync = false;
@@ -1753,9 +1753,9 @@ function getFinalKeyframe(keyframes2, { repeat, repeatType = 'loop', }, finalKey
1753
1753
  const index = repeat && repeatType !== 'loop' && repeat % 2 === 1 ? 0 : resolvedKeyframes.length - 1;
1754
1754
  return !index || finalKeyframe === void 0 ? resolvedKeyframes[index] : finalKeyframe;
1755
1755
  }
1756
- var BaseAnimation = class {
1757
- constructor(_f) {
1758
- var { autoplay = true, delay: delay2 = 0, type = 'keyframes', repeat = 0, repeatDelay = 0, repeatType = 'loop' } = _f, options = __rest(_f, ["autoplay", "delay", "type", "repeat", "repeatDelay", "repeatType"]);
1756
+ var BaseAnimation = /*#__PURE__*/ class {
1757
+ constructor(_j) {
1758
+ var { autoplay = true, delay: delay2 = 0, type = 'keyframes', repeat = 0, repeatDelay = 0, repeatType = 'loop' } = _j, options = __rest(_j, ["autoplay", "delay", "type", "repeat", "repeatDelay", "repeatType"]);
1759
1759
  this.isStopped = false;
1760
1760
  this.hasAttemptedResolve = false;
1761
1761
  this.options = Object.assign({ autoplay, delay: delay2, type,
@@ -1862,9 +1862,9 @@ var generators = {
1862
1862
  spring,
1863
1863
  };
1864
1864
  var percentToProgress = (percent2) => percent2 / 100;
1865
- var MainThreadAnimation = class extends BaseAnimation {
1866
- constructor(_f) {
1867
- var { KeyframeResolver: KeyframeResolver$1 = KeyframeResolver } = _f, options = __rest(_f, ["KeyframeResolver"]);
1865
+ var MainThreadAnimation = /*#__PURE__*/ class extends BaseAnimation {
1866
+ constructor(_j) {
1867
+ var { KeyframeResolver: KeyframeResolver$1 = KeyframeResolver } = _j, options = __rest(_j, ["KeyframeResolver"]);
1868
1868
  super(options);
1869
1869
  this.holdTime = null;
1870
1870
  this.startTime = null;
@@ -2285,7 +2285,7 @@ function makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, n
2285
2285
  }
2286
2286
  }
2287
2287
  }
2288
- var DOMKeyframesResolver = class extends KeyframeResolver {
2288
+ var DOMKeyframesResolver = /*#__PURE__*/ class extends KeyframeResolver {
2289
2289
  constructor(unresolvedKeyframes, onComplete, name, motionValue2) {
2290
2290
  super(unresolvedKeyframes, onComplete, name, motionValue2, motionValue2 === null || motionValue2 === void 0 ? void 0 : motionValue2.owner, true);
2291
2291
  }
@@ -2467,7 +2467,7 @@ function pregenerateKeyframes(keyframes2, options) {
2467
2467
  ease: 'linear',
2468
2468
  };
2469
2469
  }
2470
- var AcceleratedAnimation = class extends BaseAnimation {
2470
+ var AcceleratedAnimation = /*#__PURE__*/ class extends BaseAnimation {
2471
2471
  constructor(options) {
2472
2472
  super(options);
2473
2473
  const { name, motionValue: motionValue2, keyframes: keyframes2, } = this.options;
@@ -2481,7 +2481,7 @@ var AcceleratedAnimation = class extends BaseAnimation {
2481
2481
  return false;
2482
2482
  }
2483
2483
  if (requiresPregeneratedKeyframes(this.options)) {
2484
- const _f = this.options, { onComplete, onUpdate, motionValue: motionValue3 } = _f, options = __rest(_f, ["onComplete", "onUpdate", "motionValue"]);
2484
+ const _j = this.options, { onComplete, onUpdate, motionValue: motionValue3 } = _j, options = __rest(_j, ["onComplete", "onUpdate", "motionValue"]);
2485
2485
  const pregeneratedAnimation = pregenerateKeyframes(keyframes2, options);
2486
2486
  keyframes2 = pregeneratedAnimation.keyframes;
2487
2487
  if (keyframes2.length === 1) {
@@ -2609,7 +2609,7 @@ var AcceleratedAnimation = class extends BaseAnimation {
2609
2609
  return;
2610
2610
  }
2611
2611
  if (this.time) {
2612
- const _f = this.options, { motionValue: motionValue2, onUpdate, onComplete } = _f, options = __rest(_f, ["motionValue", "onUpdate", "onComplete"]);
2612
+ const _j = this.options, { motionValue: motionValue2, onUpdate, onComplete } = _j, options = __rest(_j, ["motionValue", "onUpdate", "onComplete"]);
2613
2613
  const sampleAnimation = new MainThreadAnimation(Object.assign(Object.assign({}, options), { keyframes: keyframes2, duration,
2614
2614
  type, ease: ease2, times, isGenerator: true }));
2615
2615
  const sampleTime = secondsToMilliseconds(this.time);
@@ -2658,7 +2658,7 @@ function moveItem([...arr], fromIndex, toIndex) {
2658
2658
  }
2659
2659
  return arr;
2660
2660
  }
2661
- var SubscriptionManager = class {
2661
+ var SubscriptionManager = /*#__PURE__*/ class {
2662
2662
  constructor() {
2663
2663
  this.subscriptions = [];
2664
2664
  }
@@ -2694,7 +2694,7 @@ var isFloat = (value) => {
2694
2694
  var collectMotionValues = {
2695
2695
  current: void 0,
2696
2696
  };
2697
- var MotionValue = class {
2697
+ var MotionValue = /*#__PURE__*/ class {
2698
2698
  /**
2699
2699
  * @param init - The initiating value
2700
2700
  * @param config - Optional configuration options
@@ -2994,8 +2994,8 @@ var getDefaultTransition = (valueKey, { keyframes: keyframes2, }) => {
2994
2994
  }
2995
2995
  return ease;
2996
2996
  };
2997
- function isTransitionDefined(_f) {
2998
- var { when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed } = _f, transition = __rest(_f, ["when", "delay", "delayChildren", "staggerChildren", "staggerDirection", "repeat", "repeatType", "repeatDelay", "from", "elapsed"]);
2997
+ function isTransitionDefined(_j) {
2998
+ var { when, delay: _delay, delayChildren, staggerChildren, staggerDirection, repeat, repeatType, repeatDelay, from, elapsed } = _j, transition = __rest(_j, ["when", "delay", "delayChildren", "staggerChildren", "staggerDirection", "repeat", "repeatType", "repeatDelay", "from", "elapsed"]);
2999
2999
  return !!Object.keys(transition).length;
3000
3000
  }
3001
3001
  function getValueTransition(transition, key7) {
@@ -3016,7 +3016,7 @@ function observeTimeline(update, timeline) {
3016
3016
  return () => cancelFrame(onFrame);
3017
3017
  }
3018
3018
  var supportsScrollTimeline = memo(() => window.ScrollTimeline !== void 0);
3019
- var GroupPlaybackControls = class {
3019
+ var GroupPlaybackControls = /*#__PURE__*/ class {
3020
3020
  constructor(animations2) {
3021
3021
  this.stop = () => this.runAll('stop');
3022
3022
  this.animations = animations2.filter(Boolean);
@@ -3156,7 +3156,7 @@ function setMotionValue(visualElement, key7, value) {
3156
3156
  }
3157
3157
  function setTarget(visualElement, definition) {
3158
3158
  const resolved = resolveVariant(visualElement, definition);
3159
- let _f = resolved || {}, { transitionEnd = {}, transition = {} } = _f, target = __rest(_f, ["transitionEnd", "transition"]);
3159
+ let _j = resolved || {}, { transitionEnd = {}, transition = {} } = _j, target = __rest(_j, ["transitionEnd", "transition"]);
3160
3160
  target = Object.assign(Object.assign({}, target), transitionEnd);
3161
3161
  for (const key7 in target) {
3162
3162
  const value = resolveFinalValueInKeyframes(target[key7]);
@@ -3478,14 +3478,14 @@ function createState() {
3478
3478
  exit: createTypeState(),
3479
3479
  };
3480
3480
  }
3481
- var Feature = class {
3481
+ var Feature = /*#__PURE__*/ class {
3482
3482
  constructor(node) {
3483
3483
  this.isMounted = false;
3484
3484
  this.node = node;
3485
3485
  }
3486
3486
  update() { }
3487
3487
  };
3488
- var AnimationFeature = class extends Feature {
3488
+ var AnimationFeature = /*#__PURE__*/ class extends Feature {
3489
3489
  /**
3490
3490
  * We dynamically generate the AnimationState manager as it contains a reference
3491
3491
  * to the underlying animation library. We only want to load that if we load this,
@@ -3518,7 +3518,7 @@ var AnimationFeature = class extends Feature {
3518
3518
  unmount() { }
3519
3519
  };
3520
3520
  var id = 0;
3521
- var ExitAnimationFeature = class extends Feature {
3521
+ var ExitAnimationFeature = /*#__PURE__*/ class extends Feature {
3522
3522
  constructor() {
3523
3523
  super(...arguments);
3524
3524
  this.id = id++;
@@ -3629,7 +3629,7 @@ function isPresent(context) {
3629
3629
  return context === null ? true : context.isPresent;
3630
3630
  }
3631
3631
  var compareByDepth = (a, b) => a.depth - b.depth;
3632
- var FlatTree = class {
3632
+ var FlatTree = /*#__PURE__*/ class {
3633
3633
  constructor() {
3634
3634
  this.children = [];
3635
3635
  this.isDirty = false;
@@ -3746,7 +3746,7 @@ function getClosestProjectingNode(visualElement) {
3746
3746
  return void 0;
3747
3747
  return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent);
3748
3748
  }
3749
- var VisualElement = class {
3749
+ var VisualElement = /*#__PURE__*/ class {
3750
3750
  /**
3751
3751
  * This method takes React props and returns found MotionValues. For example, HTML
3752
3752
  * MotionValues will be found within the style prop, whereas for Three.js within attribute arrays.
@@ -3800,7 +3800,7 @@ var VisualElement = class {
3800
3800
  this.variantChildren = /* @__PURE__ */ new Set();
3801
3801
  }
3802
3802
  this.manuallyAnimateOnMount = Boolean(parent && parent.current);
3803
- const _f = this.scrapeMotionValuesFromProps(props, {}, this), { willChange } = _f, initialMotionValues = __rest(_f, ["willChange"]);
3803
+ const _j = this.scrapeMotionValuesFromProps(props, {}, this), { willChange } = _j, initialMotionValues = __rest(_j, ["willChange"]);
3804
3804
  for (const key7 in initialMotionValues) {
3805
3805
  const value = initialMotionValues[key7];
3806
3806
  if (latestValues[key7] !== void 0 && isMotionValue(value)) {
@@ -3876,8 +3876,8 @@ var VisualElement = class {
3876
3876
  }
3877
3877
  return this.sortInstanceNodePosition(this.current, other.current);
3878
3878
  }
3879
- loadFeatures(_f, isStrict, preloadedFeatures2, initialLayoutGroupConfig) {
3880
- var { children } = _f, renderedProps = __rest(_f, ["children"]);
3879
+ loadFeatures(_j, isStrict, preloadedFeatures2, initialLayoutGroupConfig) {
3880
+ var { children } = _j, renderedProps = __rest(_j, ["children"]);
3881
3881
  let ProjectionNodeConstructor;
3882
3882
  let MeasureLayout2;
3883
3883
  if (false) {
@@ -4331,10 +4331,10 @@ function buildSVGPath(attrs, length, spacing = 1, offset = 0, useDashCase = true
4331
4331
  const pathSpacing = px.transform(spacing);
4332
4332
  attrs[keys23.array] = `${pathLength} ${pathSpacing}`;
4333
4333
  }
4334
- function buildSVGAttrs(state, _f, options, isSVGTag2, transformTemplate2) {
4335
- var { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0 } = _f,
4334
+ function buildSVGAttrs(state, _j, options, isSVGTag2, transformTemplate2) {
4335
+ var { attrX, attrY, attrScale, originX, originY, pathLength, pathSpacing = 1, pathOffset = 0 } = _j,
4336
4336
  // This is object creation, which we try to avoid per-frame.
4337
- latest = __rest(_f, ["attrX", "attrY", "attrScale", "originX", "originY", "pathLength", "pathSpacing", "pathOffset"]);
4337
+ latest = __rest(_j, ["attrX", "attrY", "attrScale", "originX", "originY", "pathLength", "pathSpacing", "pathOffset"]);
4338
4338
  buildHTMLStyles(state, latest, options, transformTemplate2);
4339
4339
  if (isSVGTag2) {
4340
4340
  if (state.style.viewBox) {
@@ -4510,13 +4510,13 @@ function addHoverEvent(node, isActive) {
4510
4510
  passive: !node.getProps()[callbackName],
4511
4511
  });
4512
4512
  }
4513
- var HoverGesture = class extends Feature {
4513
+ var HoverGesture = /*#__PURE__*/ class extends Feature {
4514
4514
  mount() {
4515
4515
  this.unmount = pipe(addHoverEvent(this.node, true), addHoverEvent(this.node, false));
4516
4516
  }
4517
4517
  unmount() { }
4518
4518
  };
4519
- var FocusGesture = class extends Feature {
4519
+ var FocusGesture = /*#__PURE__*/ class extends Feature {
4520
4520
  constructor() {
4521
4521
  super(...arguments);
4522
4522
  this.isActive = false;
@@ -4562,7 +4562,7 @@ function fireSyntheticPointerEvent(name, handler) {
4562
4562
  const syntheticPointerEvent = new PointerEvent('pointer' + name);
4563
4563
  handler(syntheticPointerEvent, extractEventInfo(syntheticPointerEvent));
4564
4564
  }
4565
- var PressGesture = class extends Feature {
4565
+ var PressGesture = /*#__PURE__*/ class extends Feature {
4566
4566
  constructor() {
4567
4567
  super(...arguments);
4568
4568
  this.removeStartListeners = noop;
@@ -4671,8 +4671,8 @@ var fireObserverCallback = (entry) => {
4671
4671
  var fireAllObserverCallbacks = (entries) => {
4672
4672
  entries.forEach(fireObserverCallback);
4673
4673
  };
4674
- function initIntersectionObserver(_f) {
4675
- var { root } = _f, options = __rest(_f, ["root"]);
4674
+ function initIntersectionObserver(_j) {
4675
+ var { root } = _j, options = __rest(_j, ["root"]);
4676
4676
  const lookupRoot = root || document;
4677
4677
  if (!observers.has(lookupRoot)) {
4678
4678
  observers.set(lookupRoot, {});
@@ -4697,7 +4697,7 @@ var thresholdNames = {
4697
4697
  some: 0,
4698
4698
  all: 1,
4699
4699
  };
4700
- var InViewFeature = class extends Feature {
4700
+ var InViewFeature = /*#__PURE__*/ class extends Feature {
4701
4701
  constructor() {
4702
4702
  super(...arguments);
4703
4703
  this.hasEnteredView = false;
@@ -4763,7 +4763,7 @@ var gestureAnimations = {
4763
4763
  Feature: HoverGesture,
4764
4764
  },
4765
4765
  };
4766
- var PanSession = class {
4766
+ var PanSession = /*#__PURE__*/ class {
4767
4767
  constructor(event, handlers, { transformPagePoint, contextWindow, dragSnapToOrigin = false, } = {}) {
4768
4768
  this.startEvent = null;
4769
4769
  this.lastMoveEvent = null;
@@ -5127,7 +5127,7 @@ var getContextWindow = ({ current, }) => {
5127
5127
  return current ? current.ownerDocument.defaultView : null;
5128
5128
  };
5129
5129
  var elementDragControls = /* @__PURE__ */ new WeakMap();
5130
- var VisualElementDragControls = class {
5130
+ var VisualElementDragControls = /*#__PURE__*/ class {
5131
5131
  constructor(visualElement) {
5132
5132
  this.openGlobalLock = null;
5133
5133
  this.isDragging = false;
@@ -5484,7 +5484,7 @@ function getCurrentDirection(offset, lockThreshold = 10) {
5484
5484
  }
5485
5485
  return direction;
5486
5486
  }
5487
- var DragGesture = class extends Feature {
5487
+ var DragGesture = /*#__PURE__*/ class extends Feature {
5488
5488
  constructor(node) {
5489
5489
  super(node);
5490
5490
  this.removeGroupControls = noop;
@@ -5508,7 +5508,7 @@ var asyncHandler = (handler) => (event, info) => {
5508
5508
  frame.postRender(() => handler(event, info));
5509
5509
  }
5510
5510
  };
5511
- var PanGesture = class extends Feature {
5511
+ var PanGesture = /*#__PURE__*/ class extends Feature {
5512
5512
  constructor() {
5513
5513
  super(...arguments);
5514
5514
  this.removePointerDownListener = noop;
@@ -5598,7 +5598,7 @@ var correctBoxShadow = {
5598
5598
  return template(shadow);
5599
5599
  },
5600
5600
  };
5601
- var MeasureLayoutWithContext = class extends Component {
5601
+ var MeasureLayoutWithContext = /*#__PURE__*/ class extends Component {
5602
5602
  /**
5603
5603
  * This only mounts projection nodes for components that
5604
5604
  * need measuring, we might want to do it for all components
@@ -5798,7 +5798,7 @@ function boxEqualsRounded(a, b) {
5798
5798
  function aspectRatio(box) {
5799
5799
  return calcLength(box.x) / calcLength(box.y);
5800
5800
  }
5801
- var NodeStack = class {
5801
+ var NodeStack = /*#__PURE__*/ class {
5802
5802
  constructor() {
5803
5803
  this.members = [];
5804
5804
  }
@@ -6748,16 +6748,16 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
6748
6748
  if (!this.isVisible) {
6749
6749
  return hiddenVisibility;
6750
6750
  }
6751
- const styles2 = {
6751
+ const styles4 = {
6752
6752
  visibility: '',
6753
6753
  };
6754
6754
  const transformTemplate2 = this.getTransformTemplate();
6755
6755
  if (this.needsReset) {
6756
6756
  this.needsReset = false;
6757
- styles2.opacity = '';
6758
- styles2.pointerEvents = resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || '';
6759
- styles2.transform = transformTemplate2 ? transformTemplate2(this.latestValues, '') : 'none';
6760
- return styles2;
6757
+ styles4.opacity = '';
6758
+ styles4.pointerEvents = resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || '';
6759
+ styles4.transform = transformTemplate2 ? transformTemplate2(this.latestValues, '') : 'none';
6760
+ return styles4;
6761
6761
  }
6762
6762
  const lead = this.getLead();
6763
6763
  if (!this.projectionDelta || !this.layout || !lead.target) {
@@ -6775,14 +6775,14 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
6775
6775
  }
6776
6776
  const valuesToRender = lead.animationValues || lead.latestValues;
6777
6777
  this.applyTransformsToTarget();
6778
- styles2.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);
6778
+ styles4.transform = buildProjectionTransform(this.projectionDeltaWithTransform, this.treeScale, valuesToRender);
6779
6779
  if (transformTemplate2) {
6780
- styles2.transform = transformTemplate2(valuesToRender, styles2.transform);
6780
+ styles4.transform = transformTemplate2(valuesToRender, styles4.transform);
6781
6781
  }
6782
6782
  const { x, y, } = this.projectionDelta;
6783
- styles2.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;
6783
+ styles4.transformOrigin = `${x.origin * 100}% ${y.origin * 100}% 0`;
6784
6784
  if (lead.animationValues) {
6785
- styles2.opacity = lead === this
6785
+ styles4.opacity = lead === this
6786
6786
  ? (_b = (_a = valuesToRender.opacity) !== null && _a !== void 0 ? _a : this.latestValues.opacity) !== null && _b !== void 0
6787
6787
  ? _b
6788
6788
  : 1
@@ -6791,7 +6791,7 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
6791
6791
  : valuesToRender.opacityExit;
6792
6792
  }
6793
6793
  else {
6794
- styles2.opacity = lead === this
6794
+ styles4.opacity = lead === this
6795
6795
  ? valuesToRender.opacity !== void 0 ? valuesToRender.opacity : ''
6796
6796
  : valuesToRender.opacityExit !== void 0
6797
6797
  ? valuesToRender.opacityExit
@@ -6801,23 +6801,23 @@ function createProjectionNode({ attachResizeListener, defaultParent, measureScro
6801
6801
  if (valuesToRender[key7] === void 0)
6802
6802
  continue;
6803
6803
  const { correct, applyTo, } = scaleCorrectors[key7];
6804
- const corrected = styles2.transform === 'none' ? valuesToRender[key7] : correct(valuesToRender[key7], lead);
6804
+ const corrected = styles4.transform === 'none' ? valuesToRender[key7] : correct(valuesToRender[key7], lead);
6805
6805
  if (applyTo) {
6806
6806
  const num = applyTo.length;
6807
6807
  for (let i = 0; i < num; i++) {
6808
- styles2[applyTo[i]] = corrected;
6808
+ styles4[applyTo[i]] = corrected;
6809
6809
  }
6810
6810
  }
6811
6811
  else {
6812
- styles2[key7] = corrected;
6812
+ styles4[key7] = corrected;
6813
6813
  }
6814
6814
  }
6815
6815
  if (this.options.layoutId) {
6816
- styles2.pointerEvents = lead === this
6816
+ styles4.pointerEvents = lead === this
6817
6817
  ? resolveMotionValue(styleProp === null || styleProp === void 0 ? void 0 : styleProp.pointerEvents) || ''
6818
6818
  : 'none';
6819
6819
  }
6820
- return styles2;
6820
+ return styles4;
6821
6821
  }
6822
6822
  clearSnapshot() {
6823
6823
  this.resumeFrom = this.snapshot = void 0;
@@ -7032,7 +7032,7 @@ var drag = {
7032
7032
  MeasureLayout,
7033
7033
  },
7034
7034
  };
7035
- var DOMVisualElement = class extends VisualElement {
7035
+ var DOMVisualElement = /*#__PURE__*/ class extends VisualElement {
7036
7036
  constructor() {
7037
7037
  super(...arguments);
7038
7038
  this.KeyframeResolver = DOMKeyframesResolver;
@@ -7051,7 +7051,7 @@ var DOMVisualElement = class extends VisualElement {
7051
7051
  function getComputedStyle2(element) {
7052
7052
  return window.getComputedStyle(element);
7053
7053
  }
7054
- var HTMLVisualElement = class extends DOMVisualElement {
7054
+ var HTMLVisualElement = /*#__PURE__*/ class extends DOMVisualElement {
7055
7055
  constructor() {
7056
7056
  super(...arguments);
7057
7057
  this.type = 'html';
@@ -7093,7 +7093,7 @@ var HTMLVisualElement = class extends DOMVisualElement {
7093
7093
  renderHTML(instance, renderState, styleProp, projection);
7094
7094
  }
7095
7095
  };
7096
- var SVGVisualElement = class extends DOMVisualElement {
7096
+ var SVGVisualElement = /*#__PURE__*/ class extends DOMVisualElement {
7097
7097
  constructor() {
7098
7098
  super(...arguments);
7099
7099
  this.type = 'svg';
@@ -7173,7 +7173,7 @@ function useForceUpdate() {
7173
7173
  function useUnmountEffect(callback) {
7174
7174
  return useEffect(() => () => callback(), []);
7175
7175
  }
7176
- var PopChildMeasure = class extends React2.Component {
7176
+ var PopChildMeasure = /*#__PURE__*/ class extends React2.Component {
7177
7177
  getSnapshotBeforeUpdate(prevProps) {
7178
7178
  const element = this.props.childRef.current;
7179
7179
  if (element && prevProps.isPresent && !this.props.isPresent) {
@@ -7398,8 +7398,8 @@ var AnimatePresence = ({ children, custom, initial = true, onExitComplete, exitB
7398
7398
  children: exitingChildren.size ? childrenToRender : childrenToRender.map((child) => cloneElement2(child)),
7399
7399
  });
7400
7400
  };
7401
- function MotionConfig(_f) {
7402
- var { children, isValidProp } = _f, config = __rest(_f, ["children", "isValidProp"]);
7401
+ function MotionConfig(_j) {
7402
+ var { children, isValidProp } = _j, config = __rest(_j, ["children", "isValidProp"]);
7403
7403
  isValidProp && loadExternalIsValidProp(isValidProp);
7404
7404
  config = Object.assign(Object.assign({}, useContext3(MotionConfigContext)), config);
7405
7405
  config.isStatic = useConstant(() => config.isStatic);
@@ -7419,8 +7419,8 @@ function LazyMotion({ children, features, strict = false, }) {
7419
7419
  }
7420
7420
  useEffect(() => {
7421
7421
  if (isLazyBundle(features)) {
7422
- features().then((_f) => {
7423
- var { renderer } = _f, loadedFeatures = __rest(_f, ["renderer"]);
7422
+ features().then((_j) => {
7423
+ var { renderer } = _j, loadedFeatures = __rest(_j, ["renderer"]);
7424
7424
  loadFeatures(loadedFeatures);
7425
7425
  loadedRenderer.current = renderer;
7426
7426
  setIsLoaded(true);
@@ -7567,8 +7567,8 @@ function checkReorder(order, value, offset, velocity) {
7567
7567
  }
7568
7568
  return order;
7569
7569
  }
7570
- function ReorderGroup(_f, externalRef) {
7571
- var { children, as = 'ul', axis = 'y', onReorder, values } = _f, props = __rest(_f, ["children", "as", "axis", "onReorder", "values"]);
7570
+ function ReorderGroup(_j, externalRef) {
7571
+ var { children, as = 'ul', axis = 'y', onReorder, values } = _j, props = __rest(_j, ["children", "as", "axis", "onReorder", "values"]);
7572
7572
  const Component33 = useConstant(() => motion(as));
7573
7573
  const order = [];
7574
7574
  const isReordering = useRef(false);
@@ -7616,8 +7616,8 @@ function compareMin(a, b) {
7616
7616
  function useDefaultMotionValue(value, defaultValue = 0) {
7617
7617
  return isMotionValue(value) ? value : useMotionValue(defaultValue);
7618
7618
  }
7619
- function ReorderItem(_f, externalRef) {
7620
- var { children, style = {}, value, as = 'li', onDrag, layout: layout2 = true } = _f, props = __rest(_f, ["children", "style", "value", "as", "onDrag", "layout"]);
7619
+ function ReorderItem(_j, externalRef) {
7620
+ var { children, style = {}, value, as = 'li', onDrag, layout: layout2 = true } = _j, props = __rest(_j, ["children", "style", "value", "as", "onDrag", "layout"]);
7621
7621
  const Component33 = useConstant(() => motion(as));
7622
7622
  const context = useContext3(ReorderContext);
7623
7623
  const point2 = {
@@ -8044,8 +8044,8 @@ var scrollListeners = /* @__PURE__ */ new WeakMap();
8044
8044
  var resizeListeners = /* @__PURE__ */ new WeakMap();
8045
8045
  var onScrollHandlers = /* @__PURE__ */ new WeakMap();
8046
8046
  var getEventTarget = (element) => element === document.documentElement ? window : element;
8047
- function scrollInfo(onScroll, _f = {}) {
8048
- var { container = document.documentElement } = _f, options = __rest(_f, ["container"]);
8047
+ function scrollInfo(onScroll, _j = {}) {
8048
+ var { container = document.documentElement } = _j, options = __rest(_j, ["container"]);
8049
8049
  let containerHandlers = onScrollHandlers.get(container);
8050
8050
  if (!containerHandlers) {
8051
8051
  containerHandlers = /* @__PURE__ */ new Set();
@@ -8114,8 +8114,8 @@ var createScrollMotionValues = () => ({
8114
8114
  scrollXProgress: motionValue(0),
8115
8115
  scrollYProgress: motionValue(0),
8116
8116
  });
8117
- function useScroll(_f = {}) {
8118
- var { container, target, layoutEffect = true } = _f, options = __rest(_f, ["container", "target", "layoutEffect"]);
8117
+ function useScroll(_j = {}) {
8118
+ var { container, target, layoutEffect = true } = _j, options = __rest(_j, ["container", "target", "layoutEffect"]);
8119
8119
  const values = useConstant(createScrollMotionValues);
8120
8120
  const useLifecycleEffect = layoutEffect ? useIsomorphicLayoutEffect : useEffect;
8121
8121
  useLifecycleEffect(() => {
@@ -8164,7 +8164,7 @@ function useTime() {
8164
8164
  useAnimationFrame((t) => time2.set(t));
8165
8165
  return time2;
8166
8166
  }
8167
- var WillChangeMotionValue = class extends MotionValue {
8167
+ var WillChangeMotionValue = /*#__PURE__*/ class extends MotionValue {
8168
8168
  constructor() {
8169
8169
  super(...arguments);
8170
8170
  this.members = [];
@@ -8380,8 +8380,8 @@ function compareByTime(a, b) {
8380
8380
  }
8381
8381
  }
8382
8382
  var defaultSegmentEasing = 'easeInOut';
8383
- function createAnimationsFromSequence(sequence2, _f = {}, scope) {
8384
- var { defaultTransition = {} } = _f, sequenceTransition = __rest(_f, ["defaultTransition"]);
8383
+ function createAnimationsFromSequence(sequence2, _j = {}, scope) {
8384
+ var { defaultTransition = {} } = _j, sequenceTransition = __rest(_j, ["defaultTransition"]);
8385
8385
  const defaultDuration = defaultTransition.duration || 0.3;
8386
8386
  const animationDefinitions = /* @__PURE__ */ new Map();
8387
8387
  const sequences = /* @__PURE__ */ new Map();
@@ -8649,7 +8649,7 @@ function useInView(ref, { root, margin, amount, once = false, } = {}) {
8649
8649
  }, [root, ref, margin, once, amount,]);
8650
8650
  return isInView;
8651
8651
  }
8652
- var DragControls = class {
8652
+ var DragControls = /*#__PURE__*/ class {
8653
8653
  constructor() {
8654
8654
  this.componentControls = /* @__PURE__ */ new Set();
8655
8655
  }
@@ -8841,7 +8841,7 @@ function startOptimizedAppearAnimation(element, name, keyframes2, options, onRea
8841
8841
  }
8842
8842
  }
8843
8843
  var createObject = () => ({});
8844
- var StateVisualElement = class extends VisualElement {
8844
+ var StateVisualElement = /*#__PURE__*/ class extends VisualElement {
8845
8845
  build() { }
8846
8846
  measureInstanceViewportBox() {
8847
8847
  return createBox();
@@ -8990,7 +8990,7 @@ var cancelSync = stepsOrder.reduce((acc, key7) => {
8990
8990
  acc[key7] = (process2) => cancelFrame(process2);
8991
8991
  return acc;
8992
8992
  }, {});
8993
- // https :https://app.framerstatic.com/framer.IBCXHSKM.js
8993
+ // https :https://app.framerstatic.com/framer.VEJ3JK5Y.js
8994
8994
  import React4 from 'react';
8995
8995
  import { startTransition as startTransition2, } from 'react';
8996
8996
  import { Suspense as Suspense2, } from 'react';
@@ -9003,7 +9003,7 @@ var require_hsluv = __commonJS({
9003
9003
  value: true,
9004
9004
  });
9005
9005
  exports.Hsluv = void 0;
9006
- var Hsluv2 = class {
9006
+ var Hsluv2 = /*#__PURE__*/ class {
9007
9007
  constructor() {
9008
9008
  this.hex = '#000000';
9009
9009
  this.rgb_r = 0;
@@ -10687,11 +10687,11 @@ function renderPage(Page4, defaultPageStyle) {
10687
10687
  };
10688
10688
  return React4.isValidElement(Page4) ? React4.cloneElement(Page4, style) : React4.createElement(Page4, style);
10689
10689
  }
10690
- var NotFoundError = class extends Error {
10690
+ var NotFoundError = /*#__PURE__*/ class extends Error {
10691
10691
  };
10692
- var ErrorBoundaryCaughtError = class extends Error {
10692
+ var ErrorBoundaryCaughtError = /*#__PURE__*/ class extends Error {
10693
10693
  };
10694
- var ErrorBoundary = class extends Component {
10694
+ var ErrorBoundary = /*#__PURE__*/ class extends Component {
10695
10695
  constructor(props) {
10696
10696
  super(props);
10697
10697
  this.state = {
@@ -11031,7 +11031,7 @@ function replacePathVariables(path, currentLocale, nextLocale, defaultLocale, co
11031
11031
  };
11032
11032
  });
11033
11033
  }
11034
- function getLocalizedNavigationPath(_f) {
11034
+ function getLocalizedNavigationPath(_j) {
11035
11035
  return __awaiter(this, arguments, void 0, function* ({ currentLocale, nextLocale, defaultLocale, route, pathVariables, collectionUtils, preserveQueryParams, }) {
11036
11036
  const { path, } = route;
11037
11037
  let result = {
@@ -11046,7 +11046,7 @@ function getLocalizedNavigationPath(_f) {
11046
11046
  const pathReplacement = yield replacePathVariables(path, currentLocale, nextLocale, defaultLocale, route.collectionId, pathVariables, collectionUtils);
11047
11047
  result = pathReplacement;
11048
11048
  }
11049
- catch (_j) { }
11049
+ catch (_k) { }
11050
11050
  }
11051
11051
  if (nextLocale.slug) {
11052
11052
  result.path = '/' + nextLocale.slug + result.path;
@@ -11246,8 +11246,8 @@ function valuesToCSSKeyframes(values, progress2, page, maskGenerator) {
11246
11246
  function getMaskGenerator(type) {
11247
11247
  return type ? maskGenerators[type] : void 0;
11248
11248
  }
11249
- function createPageTransitionRules(page, _f) {
11250
- var { transition } = _f, values = __rest(_f, ["transition"]);
11249
+ function createPageTransitionRules(page, _j) {
11250
+ var { transition } = _j, values = __rest(_j, ["transition"]);
11251
11251
  var _a;
11252
11252
  const name = 'view-transition-' + page;
11253
11253
  const settings = {
@@ -11421,7 +11421,7 @@ function pushRouteState(routeId, route, { currentRoutePath, currentPathVariables
11421
11421
  localeId,
11422
11422
  }, newPath);
11423
11423
  }
11424
- catch (_f) { }
11424
+ catch (_j) { }
11425
11425
  }
11426
11426
  function isHistoryState(data2) {
11427
11427
  const routeIdKey = 'routeId';
@@ -11578,7 +11578,7 @@ function switchLocale(options) {
11578
11578
  paginationInfo: window.history.state.paginationInfo,
11579
11579
  }, result.path);
11580
11580
  }
11581
- catch (_f) { }
11581
+ catch (_j) { }
11582
11582
  return result;
11583
11583
  });
11584
11584
  }
@@ -11590,7 +11590,7 @@ function pushLoadMoreHistory(hash2, paginationInfo) {
11590
11590
  const newPaginationInfo = Object.assign(Object.assign({}, currentHistoryState.paginationInfo), { [hash2]: paginationInfo });
11591
11591
  replaceHistoryState(Object.assign(Object.assign({}, currentHistoryState), { paginationInfo: newPaginationInfo }));
11592
11592
  }
11593
- catch (_f) { }
11593
+ catch (_j) { }
11594
11594
  }
11595
11595
  function isSamePage(a, b) {
11596
11596
  if (a.routeId !== b.routeId)
@@ -11759,7 +11759,7 @@ function RoutesProvider({ routes, children, }) {
11759
11759
  children,
11760
11760
  });
11761
11761
  }
11762
- var SuspenseErrorBoundary = class extends Component {
11762
+ var SuspenseErrorBoundary = /*#__PURE__*/ class extends Component {
11763
11763
  constructor() {
11764
11764
  super(...arguments);
11765
11765
  this.state = {
@@ -11942,7 +11942,7 @@ function Router({ defaultPageStyle, disableHistory, initialPathVariables, initia
11942
11942
  startViewTransition2(currentRouteRef.current, currentRouteId2, () => startTransition2(forceUpdate));
11943
11943
  monitorNextRender();
11944
11944
  }
11945
- catch (_f) { }
11945
+ catch (_j) { }
11946
11946
  }),
11947
11947
  };
11948
11948
  }, [activeLocale, collectionUtils, forceUpdate, locales, monitorNextRender, preserveQueryParams, routes, startViewTransition2,]);
@@ -12326,7 +12326,7 @@ function deprecationWarning(removedItem, removalVersion, replacement) {
12326
12326
  const warningText = `Deprecation warning: ${removedItem} will be removed in version ${removalVersion}${replacementText}.`;
12327
12327
  warnOnce2(warningText);
12328
12328
  }
12329
- var Observers = class {
12329
+ var Observers = /*#__PURE__*/ class {
12330
12330
  constructor() {
12331
12331
  __publicField(this, 'observers', /* @__PURE__ */ new Set());
12332
12332
  __publicField(this, 'transactions', {});
@@ -12449,7 +12449,7 @@ function animatableInterpolation(value, currentInterpolation) {
12449
12449
  },
12450
12450
  };
12451
12451
  }
12452
- var AnimatableValue = class {
12452
+ var AnimatableValue = /*#__PURE__*/ class {
12453
12453
  constructor(value) {
12454
12454
  this.value = value;
12455
12455
  __publicField(this, 'observers', new Observers());
@@ -12641,7 +12641,7 @@ function controlPointsForCurve(curve) {
12641
12641
  return [0.42, 0, 0.58, 1,];
12642
12642
  }
12643
12643
  }
12644
- var BezierAnimator = class {
12644
+ var BezierAnimator = /*#__PURE__*/ class {
12645
12645
  constructor(options, interpolation) {
12646
12646
  this.interpolation = interpolation;
12647
12647
  __publicField(this, 'unitBezier');
@@ -12692,7 +12692,7 @@ var BezierAnimator = class {
12692
12692
  return 1 / (200 * duration);
12693
12693
  }
12694
12694
  };
12695
- var UnitBezier = class {
12695
+ var UnitBezier = /*#__PURE__*/ class {
12696
12696
  constructor(point1, point2) {
12697
12697
  __publicField(this, 'a');
12698
12698
  __publicField(this, 'b');
@@ -12745,7 +12745,7 @@ var UnitBezier = class {
12745
12745
  return t2;
12746
12746
  }
12747
12747
  };
12748
- var Integrator = class {
12748
+ var Integrator = /*#__PURE__*/ class {
12749
12749
  constructor(accelerationFunction) {
12750
12750
  __publicField(this, 'accelerationForState');
12751
12751
  this.accelerationForState = accelerationFunction;
@@ -12780,7 +12780,7 @@ var Integrator = class {
12780
12780
  return output;
12781
12781
  }
12782
12782
  };
12783
- var FrictionAnimator = class {
12783
+ var FrictionAnimator = /*#__PURE__*/ class {
12784
12784
  constructor(options) {
12785
12785
  __publicField(this, 'options');
12786
12786
  __publicField(this, 'state');
@@ -12960,7 +12960,7 @@ function isDampingDurationSpringOptions(options) {
12960
12960
  }
12961
12961
  return typeof options.dampingRatio === 'number' || typeof options.duration === 'number' || typeof options.mass === 'number';
12962
12962
  }
12963
- var SpringAnimator = class {
12963
+ var SpringAnimator = /*#__PURE__*/ class {
12964
12964
  constructor(options, interpolation) {
12965
12965
  this.interpolation = interpolation;
12966
12966
  __publicField(this, 'options');
@@ -13042,7 +13042,7 @@ var Defaults = {
13042
13042
  tolerance: 1,
13043
13043
  },
13044
13044
  };
13045
- var InertialScrollAnimator = class {
13045
+ var InertialScrollAnimator = /*#__PURE__*/ class {
13046
13046
  constructor(options) {
13047
13047
  __publicField(this, 'options');
13048
13048
  __publicField(this, 'current');
@@ -13609,7 +13609,7 @@ var matchers = /* @__PURE__ */ (() => {
13609
13609
  };
13610
13610
  })();
13611
13611
  function stringToObject(inputColor) {
13612
- var _f, _j, _k, _l, _m, _o, _p, _q, _t, _u, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13;
13612
+ var _j, _k, _l, _m, _o, _p, _q, _t, _u, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14;
13613
13613
  if (inputColor.includes('gradient('))
13614
13614
  return false;
13615
13615
  if (inputColor.includes('var('))
@@ -13633,9 +13633,9 @@ function stringToObject(inputColor) {
13633
13633
  let match;
13634
13634
  if (match = matchers.rgb.exec(color2)) {
13635
13635
  return {
13636
- r: parseInt((_f = match[1]) !== null && _f !== void 0 ? _f : ''),
13637
- g: parseInt((_j = match[2]) !== null && _j !== void 0 ? _j : ''),
13638
- b: parseInt((_k = match[3]) !== null && _k !== void 0 ? _k : ''),
13636
+ r: parseInt((_j = match[1]) !== null && _j !== void 0 ? _j : ''),
13637
+ g: parseInt((_k = match[2]) !== null && _k !== void 0 ? _k : ''),
13638
+ b: parseInt((_l = match[3]) !== null && _l !== void 0 ? _l : ''),
13639
13639
  a: 1,
13640
13640
  format: 'rgb',
13641
13641
  /* RGB */
@@ -13643,19 +13643,19 @@ function stringToObject(inputColor) {
13643
13643
  }
13644
13644
  if (match = matchers.rgba.exec(color2)) {
13645
13645
  return {
13646
- r: parseInt((_l = match[1]) !== null && _l !== void 0 ? _l : ''),
13647
- g: parseInt((_m = match[2]) !== null && _m !== void 0 ? _m : ''),
13648
- b: parseInt((_o = match[3]) !== null && _o !== void 0 ? _o : ''),
13649
- a: parseFloat((_p = match[4]) !== null && _p !== void 0 ? _p : ''),
13646
+ r: parseInt((_m = match[1]) !== null && _m !== void 0 ? _m : ''),
13647
+ g: parseInt((_o = match[2]) !== null && _o !== void 0 ? _o : ''),
13648
+ b: parseInt((_p = match[3]) !== null && _p !== void 0 ? _p : ''),
13649
+ a: parseFloat((_q = match[4]) !== null && _q !== void 0 ? _q : ''),
13650
13650
  format: 'rgb',
13651
13651
  /* RGB */
13652
13652
  };
13653
13653
  }
13654
13654
  if (match = matchers.hsl.exec(color2)) {
13655
13655
  return {
13656
- h: parseInt((_q = match[1]) !== null && _q !== void 0 ? _q : ''),
13657
- s: percentToFraction((_t = match[2]) !== null && _t !== void 0 ? _t : ''),
13658
- l: percentToFraction((_u = match[3]) !== null && _u !== void 0 ? _u : ''),
13656
+ h: parseInt((_t = match[1]) !== null && _t !== void 0 ? _t : ''),
13657
+ s: percentToFraction((_u = match[2]) !== null && _u !== void 0 ? _u : ''),
13658
+ l: percentToFraction((_w = match[3]) !== null && _w !== void 0 ? _w : ''),
13659
13659
  a: 1,
13660
13660
  format: 'hsl',
13661
13661
  /* HSL */
@@ -13663,19 +13663,19 @@ function stringToObject(inputColor) {
13663
13663
  }
13664
13664
  if (match = matchers.hsla.exec(color2)) {
13665
13665
  return {
13666
- h: parseInt((_w = match[1]) !== null && _w !== void 0 ? _w : ''),
13667
- s: percentToFraction((_x = match[2]) !== null && _x !== void 0 ? _x : ''),
13668
- l: percentToFraction((_y = match[3]) !== null && _y !== void 0 ? _y : ''),
13669
- a: parseFloat((_z = match[4]) !== null && _z !== void 0 ? _z : ''),
13666
+ h: parseInt((_x = match[1]) !== null && _x !== void 0 ? _x : ''),
13667
+ s: percentToFraction((_y = match[2]) !== null && _y !== void 0 ? _y : ''),
13668
+ l: percentToFraction((_z = match[3]) !== null && _z !== void 0 ? _z : ''),
13669
+ a: parseFloat((_0 = match[4]) !== null && _0 !== void 0 ? _0 : ''),
13670
13670
  format: 'hsl',
13671
13671
  /* HSL */
13672
13672
  };
13673
13673
  }
13674
13674
  if (match = matchers.hsv.exec(color2)) {
13675
13675
  return {
13676
- h: parseInt((_0 = match[1]) !== null && _0 !== void 0 ? _0 : ''),
13677
- s: percentToFraction((_1 = match[2]) !== null && _1 !== void 0 ? _1 : ''),
13678
- v: percentToFraction((_2 = match[3]) !== null && _2 !== void 0 ? _2 : ''),
13676
+ h: parseInt((_1 = match[1]) !== null && _1 !== void 0 ? _1 : ''),
13677
+ s: percentToFraction((_2 = match[2]) !== null && _2 !== void 0 ? _2 : ''),
13678
+ v: percentToFraction((_3 = match[3]) !== null && _3 !== void 0 ? _3 : ''),
13679
13679
  a: 1,
13680
13680
  format: 'hsv',
13681
13681
  /* HSV */
@@ -13683,29 +13683,29 @@ function stringToObject(inputColor) {
13683
13683
  }
13684
13684
  if (match = matchers.hsva.exec(color2)) {
13685
13685
  return {
13686
- h: parseInt((_3 = match[1]) !== null && _3 !== void 0 ? _3 : ''),
13687
- s: percentToFraction((_4 = match[2]) !== null && _4 !== void 0 ? _4 : ''),
13688
- v: percentToFraction((_5 = match[3]) !== null && _5 !== void 0 ? _5 : ''),
13689
- a: parseFloat((_6 = match[4]) !== null && _6 !== void 0 ? _6 : ''),
13686
+ h: parseInt((_4 = match[1]) !== null && _4 !== void 0 ? _4 : ''),
13687
+ s: percentToFraction((_5 = match[2]) !== null && _5 !== void 0 ? _5 : ''),
13688
+ v: percentToFraction((_6 = match[3]) !== null && _6 !== void 0 ? _6 : ''),
13689
+ a: parseFloat((_7 = match[4]) !== null && _7 !== void 0 ? _7 : ''),
13690
13690
  format: 'hsv',
13691
13691
  /* HSV */
13692
13692
  };
13693
13693
  }
13694
13694
  if (match = matchers.hex8.exec(color2)) {
13695
13695
  return {
13696
- r: parseIntFromHex((_7 = match[1]) !== null && _7 !== void 0 ? _7 : ''),
13697
- g: parseIntFromHex((_8 = match[2]) !== null && _8 !== void 0 ? _8 : ''),
13698
- b: parseIntFromHex((_9 = match[3]) !== null && _9 !== void 0 ? _9 : ''),
13699
- a: convertHexToDecimal((_10 = match[4]) !== null && _10 !== void 0 ? _10 : ''),
13696
+ r: parseIntFromHex((_8 = match[1]) !== null && _8 !== void 0 ? _8 : ''),
13697
+ g: parseIntFromHex((_9 = match[2]) !== null && _9 !== void 0 ? _9 : ''),
13698
+ b: parseIntFromHex((_10 = match[3]) !== null && _10 !== void 0 ? _10 : ''),
13699
+ a: convertHexToDecimal((_11 = match[4]) !== null && _11 !== void 0 ? _11 : ''),
13700
13700
  format: namedColor ? 'name' : 'hex',
13701
13701
  /* HEX */
13702
13702
  };
13703
13703
  }
13704
13704
  if (match = matchers.hex6.exec(color2)) {
13705
13705
  return {
13706
- r: parseIntFromHex((_11 = match[1]) !== null && _11 !== void 0 ? _11 : ''),
13707
- g: parseIntFromHex((_12 = match[2]) !== null && _12 !== void 0 ? _12 : ''),
13708
- b: parseIntFromHex((_13 = match[3]) !== null && _13 !== void 0 ? _13 : ''),
13706
+ r: parseIntFromHex((_12 = match[1]) !== null && _12 !== void 0 ? _12 : ''),
13707
+ g: parseIntFromHex((_13 = match[2]) !== null && _13 !== void 0 ? _13 : ''),
13708
+ b: parseIntFromHex((_14 = match[3]) !== null && _14 !== void 0 ? _14 : ''),
13709
13709
  a: 1,
13710
13710
  format: namedColor ? 'name' : 'hex',
13711
13711
  /* HEX */
@@ -14237,7 +14237,7 @@ var DefaultInterpolationOptions = {
14237
14237
  colorModel: 'husl',
14238
14238
  /* HUSL */
14239
14239
  };
14240
- var ValueInterpolation = class {
14240
+ var ValueInterpolation = /*#__PURE__*/ class {
14241
14241
  /**
14242
14242
  * @internal
14243
14243
  */
@@ -14290,7 +14290,7 @@ var Defaults2 = /* @__PURE__ */ (() => ({
14290
14290
  delta: 1 / 60,
14291
14291
  maxValues: 1e4,
14292
14292
  }))();
14293
- var PrecalculatedAnimator = class {
14293
+ var PrecalculatedAnimator = /*#__PURE__*/ class {
14294
14294
  constructor(options) {
14295
14295
  __publicField(this, 'animator');
14296
14296
  __publicField(this, 'values');
@@ -14350,7 +14350,7 @@ var PrecalculatedAnimator = class {
14350
14350
  }
14351
14351
  };
14352
14352
  var EventEmitter3 = /* @__PURE__ */ (() => require_eventemitter3().EventEmitter)();
14353
- var EventEmitter = class {
14353
+ var EventEmitter = /*#__PURE__*/ class {
14354
14354
  constructor() {
14355
14355
  __publicField(this, '_emitter', new EventEmitter3());
14356
14356
  }
@@ -14469,7 +14469,7 @@ var _raf = (f) => {
14469
14469
  var __raf = /* @__PURE__ */ (() => safeWindow['requestAnimationFrame'] || _raf)();
14470
14470
  var raf = (f) => __raf(f);
14471
14471
  var LoopTimeStep = /* @__PURE__ */ (() => 1 / 60)();
14472
- var Loop = class extends EventEmitter {
14472
+ var Loop = /*#__PURE__*/ class extends EventEmitter {
14473
14473
  /**
14474
14474
  * @internal
14475
14475
  */
@@ -14681,7 +14681,7 @@ var RenderTarget = {
14681
14681
  return false;
14682
14682
  },
14683
14683
  };
14684
- var AnimationDriver = class {
14684
+ var AnimationDriver = /*#__PURE__*/ class {
14685
14685
  constructor(animator, updateCallback, finishedCallback) {
14686
14686
  this.animator = animator;
14687
14687
  this.updateCallback = updateCallback;
@@ -14708,7 +14708,7 @@ var AnimationDriver = class {
14708
14708
  return this.animator.isFinished();
14709
14709
  }
14710
14710
  };
14711
- var MainLoopAnimationDriver = class extends AnimationDriver {
14711
+ var MainLoopAnimationDriver = /*#__PURE__*/ class extends AnimationDriver {
14712
14712
  play() {
14713
14713
  if (RenderEnvironment.target !== RenderTarget.preview) {
14714
14714
  this.finishedCallback && this.finishedCallback(false);
@@ -14729,7 +14729,7 @@ var DefaultDeprecatedAnimationOptions = {
14729
14729
  colorModel: 'husl',
14730
14730
  /* HUSL */
14731
14731
  };
14732
- var FramerAnimation = class {
14732
+ var FramerAnimation = /*#__PURE__*/ class {
14733
14733
  /**
14734
14734
  * @internal
14735
14735
  */
@@ -15046,7 +15046,7 @@ function assert(condition, ...msg) {
15046
15046
  e.stack = lines.join('\n');
15047
15047
  }
15048
15048
  }
15049
- catch (_f) { }
15049
+ catch (_j) { }
15050
15050
  }
15051
15051
  throw e;
15052
15052
  }
@@ -15102,7 +15102,7 @@ function LayoutIdProvider({ children, }) {
15102
15102
  });
15103
15103
  const usedIds = useRef(/* @__PURE__ */ new Set()).current;
15104
15104
  const getLayoutId = useCallback(({ id: id3, name, duplicatedFrom, }) => {
15105
- var _f;
15105
+ var _j;
15106
15106
  if (!id3)
15107
15107
  return null;
15108
15108
  const cacheKey = name ? 'byName' : 'byId';
@@ -15165,7 +15165,7 @@ function LayoutIdProvider({ children, }) {
15165
15165
  }
15166
15166
  const rootDuplicatedId = duplicatedFrom == null ? void 0 : duplicatedFrom[0];
15167
15167
  const identifier = name || rootDuplicatedId || id3;
15168
- const value = ((_f = cache2.current.count[cacheKey][identifier]) !== null && _f !== void 0 ? _f : -1) + 1;
15168
+ const value = ((_j = cache2.current.count[cacheKey][identifier]) !== null && _j !== void 0 ? _j : -1) + 1;
15169
15169
  const { layoutId, value: nextValue, } = nextLayoutId(identifier, value, usedIds);
15170
15170
  cache2.current.count[cacheKey][identifier] = nextValue;
15171
15171
  screen.current[cacheKey][id3] = layoutId;
@@ -15243,8 +15243,8 @@ function nextLayoutId(identifier, initialValue, usedIds) {
15243
15243
  value,
15244
15244
  };
15245
15245
  }
15246
- function AutomaticLayoutIds(_f) {
15247
- var { enabled = true } = _f, props = __rest(_f, ["enabled"]);
15246
+ function AutomaticLayoutIds(_j) {
15247
+ var { enabled = true } = _j, props = __rest(_j, ["enabled"]);
15248
15248
  const context = useContext3(LayoutIdContext);
15249
15249
  const contextValue = useMemo(() => {
15250
15250
  return Object.assign(Object.assign({}, context), { enabled });
@@ -15348,7 +15348,7 @@ function getColorsFromTheme(theme, type) {
15348
15348
  screenColor: isDarkTheme ? '#333' : '#eee',
15349
15349
  };
15350
15350
  }
15351
- var ErrorBoundary2 = class extends Component {
15351
+ var ErrorBoundary2 = /*#__PURE__*/ class extends Component {
15352
15352
  constructor() {
15353
15353
  super(...arguments);
15354
15354
  __publicField(this, 'state', {});
@@ -15392,8 +15392,8 @@ var ErrorBoundary2 = class extends Component {
15392
15392
  return this.props.children;
15393
15393
  }
15394
15394
  };
15395
- function Device(_f) {
15396
- var { canResize = false, children, ResizeObserver: ResizeObserver2 = safeWindow.ResizeObserver } = _f, options = __rest(_f, ["canResize", "children", "ResizeObserver"]);
15395
+ function Device(_j) {
15396
+ var { canResize = false, children, ResizeObserver: ResizeObserver2 = safeWindow.ResizeObserver } = _j, options = __rest(_j, ["canResize", "children", "ResizeObserver"]);
15397
15397
  var _a, _b;
15398
15398
  const optionsRef = React4.useRef(void 0);
15399
15399
  if (optionsRef.current === void 0)
@@ -15423,8 +15423,8 @@ function Device(_f) {
15423
15423
  };
15424
15424
  }, [scaleDataRef,]);
15425
15425
  const updateScale = React4.useCallback(() => {
15426
- var _f;
15427
- const { deviceOptions, scaleTo, onScaleChange, } = (_f = optionsRef.current) !== null && _f !== void 0 ? _f : {};
15426
+ var _j;
15427
+ const { deviceOptions, scaleTo, onScaleChange, } = (_j = optionsRef.current) !== null && _j !== void 0 ? _j : {};
15428
15428
  if (!deviceOptions || !scaleTo || scaleTo !== 'dynamic' || !containerRef.current)
15429
15429
  return;
15430
15430
  if (containerRef.current.offsetWidth === 0 || containerRef.current.offsetHeight === 0)
@@ -15520,7 +15520,7 @@ function getComponentSize(options) {
15520
15520
  };
15521
15521
  }
15522
15522
  function getDeviceStyle({ scaleTo, deviceOptions, overrideTheme, } = {}) {
15523
- var _f, _j, _k;
15523
+ var _j, _k, _l;
15524
15524
  const noDeviceStyle = {
15525
15525
  containerStyle: {},
15526
15526
  deviceStyle: {},
@@ -15545,9 +15545,9 @@ function getDeviceStyle({ scaleTo, deviceOptions, overrideTheme, } = {}) {
15545
15545
  boxShadows.push(`inset 0 0 15px ${overriddenColors.bezelShadeColor || appearance.bezelShadeColor}`);
15546
15546
  }
15547
15547
  }
15548
- const handOffsetLeft = (_f = (hand == null ? void 0 : hand.offsetLeft)) !== null && _f !== void 0 ? _f : 0;
15549
- const handOffsetRight = (_j = (hand == null ? void 0 : hand.offsetRight)) !== null && _j !== void 0 ? _j : 0;
15550
- const handOffsetBottom = (_k = (hand == null ? void 0 : hand.offsetBottom)) !== null && _k !== void 0 ? _k : 0;
15548
+ const handOffsetLeft = (_j = (hand == null ? void 0 : hand.offsetLeft)) !== null && _j !== void 0 ? _j : 0;
15549
+ const handOffsetRight = (_k = (hand == null ? void 0 : hand.offsetRight)) !== null && _k !== void 0 ? _k : 0;
15550
+ const handOffsetBottom = (_l = (hand == null ? void 0 : hand.offsetBottom)) !== null && _l !== void 0 ? _l : 0;
15551
15551
  const handScale = (deviceWidth - handOffsetLeft - handOffsetRight) / HAND_IMG_GAP_WIDTH;
15552
15552
  return {
15553
15553
  containerStyle: {
@@ -16524,11 +16524,11 @@ var ConstraintValues = {
16524
16524
  },
16525
16525
  // Returns a parent-relative rect given concrete ConstraintValues.
16526
16526
  toRect: (values, parentSizeInfo = null, autoSize = null, pixelAlign = false, freeSpace = null) => {
16527
- var _f;
16527
+ var _j;
16528
16528
  let x = values.left || 0;
16529
16529
  let y = values.top || 0;
16530
16530
  const { width, height, } = ConstraintValues.toSize(values, parentSizeInfo, autoSize, freeSpace);
16531
- const parentSizeForPositioning = (_f = (parentSizeInfo == null ? void 0 : parentSizeInfo.positioning)) !== null && _f !== void 0 ? _f : null;
16531
+ const parentSizeForPositioning = (_j = (parentSizeInfo == null ? void 0 : parentSizeInfo.positioning)) !== null && _j !== void 0 ? _j : null;
16532
16532
  const positioningParentWidth = parentSizeForPositioning ? Animatable.getNumber(parentSizeForPositioning.width) : null;
16533
16533
  const positioningParentHeight = parentSizeForPositioning ? Animatable.getNumber(parentSizeForPositioning.height) : null;
16534
16534
  if (values.left !== null) {
@@ -16869,6 +16869,9 @@ function useConstraints(props) {
16869
16869
  const calculatedRect = calculateRect(props, parentSize, true);
16870
16870
  return calculatedRect;
16871
16871
  }
16872
+ function isAutoSized({ width, height, }) {
16873
+ return width === 'auto' || width === 'min-content' || height === 'auto' || height === 'min-content';
16874
+ }
16872
16875
  var ControlType = /* @__PURE__ */ ((ControlType2) => {
16873
16876
  ControlType2['Boolean'] = 'boolean';
16874
16877
  ControlType2['Number'] = 'number';
@@ -16897,6 +16900,7 @@ var ControlType = /* @__PURE__ */ ((ControlType2) => {
16897
16900
  ControlType2['Cursor'] = 'cursor';
16898
16901
  ControlType2['Padding'] = 'padding';
16899
16902
  ControlType2['BorderRadius'] = 'borderradius';
16903
+ ControlType2['CollectionReference'] = 'collectionreference';
16900
16904
  return ControlType2;
16901
16905
  })(ControlType || {});
16902
16906
  var isFlexboxGapSupportedCached;
@@ -17464,7 +17468,7 @@ function injectCSSRule(cssRule, sheet, cache2 = defaultCache) {
17464
17468
  try {
17465
17469
  sheet.insertRule(cssRule, sheet.cssRules.length);
17466
17470
  }
17467
- catch (_f) { }
17471
+ catch (_j) { }
17468
17472
  }
17469
17473
  var componentCSSRules = [`[data-framer-component-type] { position: absolute; }`,];
17470
17474
  var textAlignmentRule = `
@@ -17760,8 +17764,8 @@ function injectComponentCSSRules() {
17760
17764
  if (didInject)
17761
17765
  return;
17762
17766
  didInject = true;
17763
- const styles2 = RenderTarget.current() === RenderTarget.preview ? combinedCSSRulesForPreview : combinedCSSRules;
17764
- for (const rule of styles2) {
17767
+ const styles4 = RenderTarget.current() === RenderTarget.preview ? combinedCSSRulesForPreview : combinedCSSRules;
17768
+ for (const rule of styles4) {
17765
17769
  injectCSSRule(rule, void 0, void 0);
17766
17770
  }
17767
17771
  }
@@ -17807,6 +17811,7 @@ function getControlDefaultValue(control) {
17807
17811
  try {
17808
17812
  switch (control.type) {
17809
17813
  case 'string':
17814
+ case 'collectionreference':
17810
17815
  case 'color':
17811
17816
  case 'date':
17812
17817
  case 'link':
@@ -17855,7 +17860,7 @@ function getControlDefaultValue(control) {
17855
17860
  return void 0;
17856
17861
  }
17857
17862
  }
17858
- catch (_f) {
17863
+ catch (_j) {
17859
17864
  return void 0;
17860
17865
  }
17861
17866
  }
@@ -19025,8 +19030,8 @@ var devicePresetsMap = /* @__PURE__ */ devicePresets.reduce((map, preset) => {
19025
19030
  return map;
19026
19031
  }, {});
19027
19032
  function getDevicePreset(presetId) {
19028
- var _f;
19029
- return (_f = devicePresetsMap[presetId]) !== null && _f !== void 0 ? _f : devicePresetsMap[defaultPresetId];
19033
+ var _j;
19034
+ return (_j = devicePresetsMap[presetId]) !== null && _j !== void 0 ? _j : devicePresetsMap[defaultPresetId];
19030
19035
  }
19031
19036
  var defaultDeviceProps = {
19032
19037
  preset: defaultPresetId,
@@ -19047,7 +19052,7 @@ var defaultDeviceProps = {
19047
19052
  backgroundColor: void 0,
19048
19053
  };
19049
19054
  function convertPropsToDeviceOptions(props, { forceOldClay = false, } = {}) {
19050
- var _f, _j, _k, _l, _m, _o;
19055
+ var _j, _k, _l, _m, _o, _p;
19051
19056
  var _a;
19052
19057
  if (props.preset === 'no-device') {
19053
19058
  return;
@@ -19095,10 +19100,10 @@ function convertPropsToDeviceOptions(props, { forceOldClay = false, } = {}) {
19095
19100
  };
19096
19101
  }
19097
19102
  else {
19098
- deviceWidth = preset.screenWidth + ((_f = preset.clayBezelLeft) !== null && _f !== void 0 ? _f : 0) + ((_j = preset.clayBezelRight) !== null && _j !== void 0 ? _j : 0);
19099
- deviceHeight = preset.screenHeight + ((_k = preset.clayBezelTop) !== null && _k !== void 0 ? _k : 0) + ((_l = preset.clayBezelBottom) !== null && _l !== void 0 ? _l : 0);
19100
- screenOffsetTop = (_m = preset.clayBezelTop) !== null && _m !== void 0 ? _m : 0;
19101
- screenOffsetLeft = (_o = preset.clayBezelLeft) !== null && _o !== void 0 ? _o : 0;
19103
+ deviceWidth = preset.screenWidth + ((_j = preset.clayBezelLeft) !== null && _j !== void 0 ? _j : 0) + ((_k = preset.clayBezelRight) !== null && _k !== void 0 ? _k : 0);
19104
+ deviceHeight = preset.screenHeight + ((_l = preset.clayBezelTop) !== null && _l !== void 0 ? _l : 0) + ((_m = preset.clayBezelBottom) !== null && _m !== void 0 ? _m : 0);
19105
+ screenOffsetTop = (_o = preset.clayBezelTop) !== null && _o !== void 0 ? _o : 0;
19106
+ screenOffsetLeft = (_p = preset.clayBezelLeft) !== null && _p !== void 0 ? _p : 0;
19102
19107
  if (preset.externalClay && !forceOldClay) {
19103
19108
  deviceWidth = preset.externalClay.width;
19104
19109
  deviceHeight = preset.externalClay.height;
@@ -19221,8 +19226,8 @@ function usePrototypingMetaTags() {
19221
19226
  });
19222
19227
  }, []);
19223
19228
  }
19224
- function DeviceCodeComponentInner(_f) {
19225
- var { children } = _f, props = __rest(_f, ["children"]);
19229
+ function DeviceCodeComponentInner(_j) {
19230
+ var { children } = _j, props = __rest(_j, ["children"]);
19226
19231
  usePrototypingMetaTags();
19227
19232
  const deviceOptions = convertPropsToDeviceOptions(props, {
19228
19233
  forceOldClay: true,
@@ -19553,8 +19558,8 @@ var implementation = {
19553
19558
  // We need a default implementation for useImageSource and useImageElement as it is used for rendering image backgrounds which would break otherwise.
19554
19559
  // The default value is used for HTML export and when using the library without Framer.
19555
19560
  useImageSource(image) {
19556
- var _f;
19557
- return (_f = image.src) !== null && _f !== void 0 ? _f : '';
19561
+ var _j;
19562
+ return (_j = image.src) !== null && _j !== void 0 ? _j : '';
19558
19563
  },
19559
19564
  useImageElement(image, rect, nodeId) {
19560
19565
  const element = new Image();
@@ -19588,10 +19593,10 @@ function _injectRuntime(injectedRuntime) {
19588
19593
  isRuntimeInjected = true;
19589
19594
  }
19590
19595
  function minZoomForPixelatedImageRendering(image, containerSize, devicePixelRatio3 = 1) {
19591
- var _f, _j, _k, _l;
19596
+ var _j, _k, _l, _m;
19592
19597
  let { width: frameWidth, height: frameHeight, } = containerSize;
19593
- const imageWidth = (_j = (_f = image.pixelWidth) !== null && _f !== void 0 ? _f : image.intrinsicWidth) !== null && _j !== void 0 ? _j : 0;
19594
- const imageHeight = (_l = (_k = image.pixelHeight) !== null && _k !== void 0 ? _k : image.intrinsicHeight) !== null && _l !== void 0 ? _l : 0;
19598
+ const imageWidth = (_k = (_j = image.pixelWidth) !== null && _j !== void 0 ? _j : image.intrinsicWidth) !== null && _k !== void 0 ? _k : 0;
19599
+ const imageHeight = (_m = (_l = image.pixelHeight) !== null && _l !== void 0 ? _l : image.intrinsicHeight) !== null && _m !== void 0 ? _m : 0;
19595
19600
  if (frameWidth < 1 || frameHeight < 1 || imageWidth < 1 || imageHeight < 1) {
19596
19601
  return void 0;
19597
19602
  }
@@ -19753,8 +19758,8 @@ function OptimizedCanvasImage({ nodeId, image, containerSize, }) {
19753
19758
  },
19754
19759
  });
19755
19760
  }
19756
- function BackgroundImageComponent(_f) {
19757
- var { layoutId, image } = _f, props = __rest(_f, ["layoutId", "image"]);
19761
+ function BackgroundImageComponent(_j) {
19762
+ var { layoutId, image } = _j, props = __rest(_j, ["layoutId", "image"]);
19758
19763
  if (layoutId) {
19759
19764
  layoutId = layoutId + '-background';
19760
19765
  }
@@ -19832,26 +19837,26 @@ function backgroundImageFromProps(props) {
19832
19837
  return applyForwardOverrides(backgroundImage, props);
19833
19838
  }
19834
19839
  function collectBorderStyleForProps(props, style, collapseEqualBorders = true) {
19835
- const { borderWidth: borderWidth2, borderStyle, borderColor, } = props;
19836
- if (!borderWidth2) {
19840
+ const { borderWidth, borderStyle, borderColor, } = props;
19841
+ if (!borderWidth) {
19837
19842
  return;
19838
19843
  }
19839
19844
  let borderTop;
19840
19845
  let borderBottom;
19841
19846
  let borderLeft;
19842
19847
  let borderRight;
19843
- if (typeof borderWidth2 === 'number') {
19848
+ if (typeof borderWidth === 'number') {
19844
19849
  borderTop =
19845
19850
  borderBottom =
19846
19851
  borderLeft =
19847
19852
  borderRight =
19848
- borderWidth2;
19853
+ borderWidth;
19849
19854
  }
19850
19855
  else {
19851
- borderTop = borderWidth2.top || 0;
19852
- borderBottom = borderWidth2.bottom || 0;
19853
- borderLeft = borderWidth2.left || 0;
19854
- borderRight = borderWidth2.right || 0;
19856
+ borderTop = borderWidth.top || 0;
19857
+ borderBottom = borderWidth.bottom || 0;
19858
+ borderLeft = borderWidth.left || 0;
19859
+ borderRight = borderWidth.right || 0;
19855
19860
  }
19856
19861
  if (borderTop === 0 && borderBottom === 0 && borderLeft === 0 && borderRight === 0) {
19857
19862
  return;
@@ -19996,12 +20001,12 @@ function useForceUpdate3() {
19996
20001
  }
19997
20002
  var ResizeObserverPolyfill = /* @__PURE__ */ (() => require_resize_observer_umd().ResizeObserver)();
19998
20003
  var DEFAULT_SIZE = 200;
19999
- var SharedObserver = class {
20004
+ var SharedObserver = /*#__PURE__*/ class {
20000
20005
  constructor() {
20001
- var _f;
20006
+ var _j;
20002
20007
  __publicField(this, 'sharedResizeObserver');
20003
20008
  __publicField(this, 'callbacks', /* @__PURE__ */ new WeakMap());
20004
- const ResizeObserver2 = (_f = safeWindow.ResizeObserver) !== null && _f !== void 0 ? _f : ResizeObserverPolyfill;
20009
+ const ResizeObserver2 = (_j = safeWindow.ResizeObserver) !== null && _j !== void 0 ? _j : ResizeObserverPolyfill;
20005
20010
  this.sharedResizeObserver = new ResizeObserver2(this.updateResizedElements.bind(this));
20006
20011
  }
20007
20012
  updateResizedElements(entries) {
@@ -20066,20 +20071,20 @@ function useMeasuredSize(ref) {
20066
20071
  }
20067
20072
  var SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE = 'data-framer-size-compatibility-wrapper';
20068
20073
  var withMeasuredSize = (Component15) => (props) => {
20069
- var _f, _j, _k, _l;
20074
+ var _j, _k, _l, _m;
20070
20075
  const ref = React4.useRef(null);
20071
20076
  const size = useMeasuredSize(ref);
20072
20077
  const dataProps = {
20073
20078
  [SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE]: true,
20074
20079
  };
20075
20080
  const shouldRender = Boolean(size);
20076
- const fallbackWidth = (_f = props.width) !== null && _f !== void 0 ? _f : DEFAULT_SIZE;
20077
- const fallbackHeight = (_j = props.height) !== null && _j !== void 0 ? _j : DEFAULT_SIZE;
20081
+ const fallbackWidth = (_j = props.width) !== null && _j !== void 0 ? _j : DEFAULT_SIZE;
20082
+ const fallbackHeight = (_k = props.height) !== null && _k !== void 0 ? _k : DEFAULT_SIZE;
20078
20083
  return /* @__PURE__ */ jsx('div', Object.assign(Object.assign({ style: {
20079
20084
  width: '100%',
20080
20085
  height: '100%',
20081
20086
  pointerEvents: 'none',
20082
- }, ref }, dataProps), { children: shouldRender && /* @__PURE__ */ jsx(Component15, Object.assign(Object.assign({}, props), { width: (_k = (size == null ? void 0 : size.width)) !== null && _k !== void 0 ? _k : fallbackWidth, height: (_l = (size == null ? void 0 : size.height)) !== null && _l !== void 0 ? _l : fallbackHeight })) }));
20087
+ }, ref }, dataProps), { children: shouldRender && /* @__PURE__ */ jsx(Component15, Object.assign(Object.assign({}, props), { width: (_l = (size == null ? void 0 : size.width)) !== null && _l !== void 0 ? _l : fallbackWidth, height: (_m = (size == null ? void 0 : size.height)) !== null && _m !== void 0 ? _m : fallbackHeight })) }));
20083
20088
  };
20084
20089
  function getMeasurableCodeComponentChildren(element) {
20085
20090
  const childrenCollection = element.firstElementChild && element.firstElementChild.hasAttribute(SIZE_COMPATIBILITY_WRAPPER_ATTRIBUTE)
@@ -20351,6 +20356,7 @@ function resetSetStyle(element, key7, toValue, microtask2 = true) {
20351
20356
  }
20352
20357
  }
20353
20358
  var Layer = /* @__PURE__ */ (() => {
20359
+ /*#__PURE__*/
20354
20360
  class Layer2 extends Component {
20355
20361
  constructor() {
20356
20362
  super(...arguments);
@@ -20795,7 +20801,7 @@ var defaultFrameRect = {
20795
20801
  height: 200,
20796
20802
  };
20797
20803
  function useStyleAndRect(props) {
20798
- var _f, _j, _k;
20804
+ var _j, _k, _l;
20799
20805
  React4.useInsertionEffect(() => {
20800
20806
  injectComponentCSSRules();
20801
20807
  }, []);
@@ -20805,7 +20811,7 @@ function useStyleAndRect(props) {
20805
20811
  const constraintsRect = useConstraints(unwrappedProps);
20806
20812
  const defaultStyle = {
20807
20813
  display: 'block',
20808
- flex: (_f = (style == null ? void 0 : style.flex)) !== null && _f !== void 0 ? _f : '0 0 auto',
20814
+ flex: (_j = (style == null ? void 0 : style.flex)) !== null && _j !== void 0 ? _j : '0 0 auto',
20809
20815
  userSelect: RenderTarget.current() !== RenderTarget.preview ? 'none' : void 0,
20810
20816
  };
20811
20817
  if (!props.__fromCanvasComponent) {
@@ -20855,8 +20861,8 @@ function useStyleAndRect(props) {
20855
20861
  }
20856
20862
  Object.assign(defaultStyle, centerTextStyle, _initialStyle, propsStyle, constraintsStyle, style);
20857
20863
  Object.assign(defaultStyle, {
20858
- overflowX: (_j = defaultStyle.overflowX) !== null && _j !== void 0 ? _j : defaultStyle.overflow,
20859
- overflowY: (_k = defaultStyle.overflowY) !== null && _k !== void 0 ? _k : defaultStyle.overflow,
20864
+ overflowX: (_k = defaultStyle.overflowX) !== null && _k !== void 0 ? _k : defaultStyle.overflow,
20865
+ overflowY: (_l = defaultStyle.overflowY) !== null && _l !== void 0 ? _l : defaultStyle.overflow,
20860
20866
  overflow: void 0,
20861
20867
  });
20862
20868
  Layer.applyWillChange(props, defaultStyle, true);
@@ -20929,7 +20935,7 @@ function hasDataFramerName(props) {
20929
20935
  return 'data-framer-name' in props;
20930
20936
  }
20931
20937
  var VisibleFrame = /* @__PURE__ */ forwardRef(function VisibleFrame2(props, forwardedRef) {
20932
- var _f, _j;
20938
+ var _j, _k;
20933
20939
  const { name, center, border, _border, __portal, } = props;
20934
20940
  const { props: propsWithOverrides, children, } = processOverrideForwarding(props);
20935
20941
  const motionProps = getMotionProps(propsWithOverrides);
@@ -20938,7 +20944,7 @@ var VisibleFrame = /* @__PURE__ */ forwardRef(function VisibleFrame2(props, forw
20938
20944
  const fallbackRef = useRef(null);
20939
20945
  const ref = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : fallbackRef;
20940
20946
  const dataProps = {
20941
- 'data-framer-component-type': (_f = props.componentType) !== null && _f !== void 0 ? _f : 'Frame',
20947
+ 'data-framer-component-type': (_j = props.componentType) !== null && _j !== void 0 ? _j : 'Frame',
20942
20948
  'data-framer-cursor': cursor,
20943
20949
  'data-framer-highlight': cursor === 'pointer' ? true : void 0,
20944
20950
  'data-layoutid': layoutId,
@@ -20967,7 +20973,7 @@ var VisibleFrame = /* @__PURE__ */ forwardRef(function VisibleFrame2(props, forw
20967
20973
  children: [
20968
20974
  backgroundImage
20969
20975
  ? /* @__PURE__ */ jsx(BackgroundImageComponent, {
20970
- alt: (_j = props.alt) !== null && _j !== void 0 ? _j : '',
20976
+ alt: (_k = props.alt) !== null && _k !== void 0 ? _k : '',
20971
20977
  image: backgroundImage,
20972
20978
  containerSize: rect !== null && rect !== void 0 ? rect : void 0,
20973
20979
  nodeId: props.id && nodeIdFromString(props.id),
@@ -21033,9 +21039,6 @@ function resolveParentSize(props, unwrappedProps, rect, inCodeComponent) {
21033
21039
  }
21034
21040
  return 0;
21035
21041
  }
21036
- function isAutoSized({ width, height, }) {
21037
- return width === 'auto' || width === 'min-content' || height === 'auto' || height === 'min-content';
21038
- }
21039
21042
  function EmptyState({ title = '', description = 'Click and drag the connector to any frame on the canvas \u2192', children, size, hide, insideUserCodeComponent = false, position = 'absolute', }) {
21040
21043
  const { target, } = RenderEnvironment;
21041
21044
  const childCount = React4.Children.count(children);
@@ -21120,7 +21123,7 @@ var SharedLayoutContext = /* @__PURE__ */ React4.createContext({
21120
21123
  scheduleProjectionDidUpdate: () => { },
21121
21124
  initLead: () => { },
21122
21125
  });
21123
- var SharedLayoutRoot = class extends Component {
21126
+ var SharedLayoutRoot = /*#__PURE__*/ class extends Component {
21124
21127
  constructor() {
21125
21128
  super(...arguments);
21126
21129
  __publicField(this, 'shouldAnimate', false);
@@ -21206,7 +21209,7 @@ function MagicMotionCrossfadeRoot(props) {
21206
21209
  children: props.children,
21207
21210
  });
21208
21211
  }
21209
- var SharedIntersectionObserver = class {
21212
+ var SharedIntersectionObserver = /*#__PURE__*/ class {
21210
21213
  constructor(options) {
21211
21214
  __publicField(this, 'sharedIntersectionObserver');
21212
21215
  __publicField(this, 'callbacks', /* @__PURE__ */ new WeakMap());
@@ -21269,11 +21272,11 @@ function useAppearEffect(ref, appearCallback, options) {
21269
21272
  });
21270
21273
  const { enabled, animateOnce, threshold, rootMargin = `0px 0px 0px 0px`, } = options;
21271
21274
  const callback = React4.useCallback(([entry,]) => {
21272
- var _f;
21275
+ var _j;
21273
21276
  if (!entry)
21274
21277
  return;
21275
21278
  const { isInView, hasAnimatedOnce, } = internalState.current;
21276
- const isIntersecting = isIntersectingWithThreshold(entry, (_f = (threshold == null ? void 0 : threshold.y)) !== null && _f !== void 0 ? _f : 0);
21279
+ const isIntersecting = isIntersectingWithThreshold(entry, (_j = (threshold == null ? void 0 : threshold.y)) !== null && _j !== void 0 ? _j : 0);
21277
21280
  if (isIntersecting && !isInView) {
21278
21281
  if (animateOnce && hasAnimatedOnce)
21279
21282
  return;
@@ -21342,7 +21345,7 @@ function pointForEvent(event, customTarget = null) {
21342
21345
  };
21343
21346
  return point2;
21344
21347
  }
21345
- var FramerEvent = class {
21348
+ var FramerEvent = /*#__PURE__*/ class {
21346
21349
  /**
21347
21350
  * @internal
21348
21351
  */
@@ -21451,7 +21454,7 @@ var DraggingContext = /* @__PURE__ */ React4.createContext({
21451
21454
  dragging: false,
21452
21455
  });
21453
21456
  function WithDragging(Component15) {
21454
- const _WithDraggingHOC = class extends React4.Component {
21457
+ const _WithDraggingHOC = /*#__PURE__*/ class extends React4.Component {
21455
21458
  constructor(props, defaultProps) {
21456
21459
  super(props, defaultProps);
21457
21460
  __publicField(this, 'state', {
@@ -21994,7 +21997,7 @@ function WithDragging(Component15) {
21994
21997
  };
21995
21998
  }
21996
21999
  render() {
21997
- const _f = this.props, { onPanStart, onPan, onPanEnd, onMouseWheelStart, onMouseWheel, onMouseWheelEnd } = _f, attributes = __rest(_f, ["onPanStart", "onPan", "onPanEnd", "onMouseWheelStart", "onMouseWheel", "onMouseWheelEnd"]);
22000
+ const _j = this.props, { onPanStart, onPan, onPanEnd, onMouseWheelStart, onMouseWheel, onMouseWheelEnd } = _j, attributes = __rest(_j, ["onPanStart", "onPan", "onPanEnd", "onMouseWheelStart", "onMouseWheel", "onMouseWheelEnd"]);
21998
22001
  const originalProps = Object.assign({}, attributes);
21999
22002
  Object.keys(_WithDraggingHOC.draggingDefaultProps).forEach((key7) => {
22000
22003
  delete asRecord(originalProps)[key7];
@@ -22200,7 +22203,7 @@ var ObservableObject = /* @__PURE__ */ (() => {
22200
22203
  };
22201
22204
  return ObservableObject2;
22202
22205
  })();
22203
- var ObservableObjectProxyHandler = class {
22206
+ var ObservableObjectProxyHandler = /*#__PURE__*/ class {
22204
22207
  constructor() {
22205
22208
  __publicField(this, 'set', (target, key7, value, receiver) => {
22206
22209
  if (key7 === $private) {
@@ -22851,7 +22854,7 @@ function applyLayoutProp(style, props, key7) {
22851
22854
  }
22852
22855
  }
22853
22856
  var DeprecatedFrame = /* @__PURE__ */ (() => {
22854
- const _DeprecatedFrameInner = class extends Layer {
22857
+ const _DeprecatedFrameInner = /*#__PURE__*/ class extends Layer {
22855
22858
  constructor() {
22856
22859
  super(...arguments);
22857
22860
  __publicField(this, 'element', null);
@@ -23210,7 +23213,7 @@ var Frame = /* @__PURE__ */ (() => {
23210
23213
  FrameInner['displayName'] = 'Frame';
23211
23214
  return FrameInner;
23212
23215
  })();
23213
- var LayoutTree = class extends Component {
23216
+ var LayoutTree = /*#__PURE__*/ class extends Component {
23214
23217
  constructor() {
23215
23218
  super(...arguments);
23216
23219
  __publicField(this, 'layoutMaybeMutated');
@@ -23575,7 +23578,7 @@ var allAnimatableProperties = {
23575
23578
  originZ: 0,
23576
23579
  opacity: 1,
23577
23580
  };
23578
- var NavigatorMock = class {
23581
+ var NavigatorMock = /*#__PURE__*/ class {
23579
23582
  constructor() {
23580
23583
  __publicField(this, 'warning', () => {
23581
23584
  warnOnce2('The Navigator API is only available inside of Framer: https://www.framer.com/');
@@ -24484,13 +24487,13 @@ function containerIsVisible(containerIndex, stackState) {
24484
24487
  }
24485
24488
  function containerContent(item) {
24486
24489
  const content = React4.Children.map(item.component, (child) => {
24487
- var _f;
24490
+ var _j;
24488
24491
  var _a;
24489
24492
  if (!isReactChild(child) || !isReactElement(child) || !child.props) {
24490
24493
  return child;
24491
24494
  }
24492
24495
  const props = {
24493
- style: (_f = child.props.style) !== null && _f !== void 0 ? _f : {},
24496
+ style: (_j = child.props.style) !== null && _j !== void 0 ? _j : {},
24494
24497
  };
24495
24498
  const position = (_a = item == null ? void 0 : item.transition) == null ? void 0 : _a.position;
24496
24499
  const shouldStretchWidth = !position || position.left !== void 0 && position.right !== void 0;
@@ -24543,7 +24546,7 @@ var NavigationTransitionType = /* @__PURE__ */ ((NavigationTransitionType2) => {
24543
24546
  return NavigationTransitionType2;
24544
24547
  })(NavigationTransitionType || {});
24545
24548
  function WithNavigator(BaseComponent, navigationTransition, navigationTransitionDirection, NavigationTarget, navigationTransitionOptions) {
24546
- const InternalWithNavigator = class extends React4.Component {
24549
+ const InternalWithNavigator = /*#__PURE__*/ class extends React4.Component {
24547
24550
  render() {
24548
24551
  return /* @__PURE__ */ jsx(NavigationContext.Consumer, {
24549
24552
  children: (navigation) => {
@@ -24584,7 +24587,7 @@ function WithNavigator(BaseComponent, navigationTransition, navigationTransition
24584
24587
  break;
24585
24588
  }
24586
24589
  };
24587
- const _f = this.props, { onTap } = _f, props = __rest(_f, ["onTap"]);
24590
+ const _j = this.props, { onTap } = _j, props = __rest(_j, ["onTap"]);
24588
24591
  if (onTap) {
24589
24592
  props.onTap = (...args) => {
24590
24593
  onTap.apply(this, args);
@@ -24637,8 +24640,8 @@ function useInfiniteScroll({ ref: elementRef, loadMore, rootMargin = '0px', thre
24637
24640
  }, [elementRef, callback, rootMargin, threshold, paginationInfo.currentPage,]);
24638
24641
  }
24639
24642
  function withInfiniteScroll(Component15) {
24640
- return React4.forwardRef((_f, ref) => {
24641
- var { __paginationInfo, __loadMore } = _f, props = __rest(_f, ["__paginationInfo", "__loadMore"]);
24643
+ return React4.forwardRef((_j, ref) => {
24644
+ var { __paginationInfo, __loadMore } = _j, props = __rest(_j, ["__paginationInfo", "__loadMore"]);
24642
24645
  const backupRef = React4.useRef(null);
24643
24646
  const infiniteScrollRef = ref !== null && ref !== void 0 ? ref : backupRef;
24644
24647
  useInfiniteScroll({
@@ -24804,7 +24807,7 @@ function useSafariGapFix(gap, ref, display) {
24804
24807
  }
24805
24808
  var Stack = /* @__PURE__ */ (() => {
24806
24809
  const StackInner = React4.forwardRef(function StackInner2(stackProps, forwardedRef) {
24807
- var _f, _j;
24810
+ var _j, _k;
24808
24811
  const { as = 'div', direction = 'vertical', distribution = 'start', alignment = 'center', gap = 10, wrap: wrap2 = false, useFlexboxGap: externalUseFlexboxGap = true, children, style: styleProp, className: className2, willChangeTransform, __fromCodeComponentNode, parentSize, __contentWrapperStyle } = stackProps, containerProps = __rest(stackProps, ["as", "direction", "distribution", "alignment", "gap", "wrap", "useFlexboxGap", "children", "style", "className", "willChangeTransform", "__fromCodeComponentNode", "parentSize", "__contentWrapperStyle"]);
24809
24812
  const useFlexboxGap = Boolean(externalUseFlexboxGap || wrap2);
24810
24813
  const stackRef = React4.useRef(null);
@@ -24828,8 +24831,8 @@ var Stack = /* @__PURE__ */ (() => {
24828
24831
  }
24829
24832
  const layoutId = useLayoutId2(stackProps);
24830
24833
  const { children: _children, props, } = processOverrideForwarding(containerProps, children);
24831
- const widthType = (_f = containerProps.widthType) !== null && _f !== void 0 ? _f : (containerProps.width === 'auto' ? 2 : 0);
24832
- const heightType = (_j = containerProps.heightType) !== null && _j !== void 0 ? _j : (containerProps.height === 'auto' ? 2 : 0);
24834
+ const widthType = (_j = containerProps.widthType) !== null && _j !== void 0 ? _j : (containerProps.width === 'auto' ? 2 : 0);
24835
+ const heightType = (_k = containerProps.heightType) !== null && _k !== void 0 ? _k : (containerProps.height === 'auto' ? 2 : 0);
24833
24836
  const fractionChildren = handleFraction(_children, direction, widthType, heightType);
24834
24837
  const gapChildren = wrapInGapElementForLegacyGap(fractionChildren, gap, flexDirection, justifyContent, useFlexboxGap, wrap2);
24835
24838
  const content = useProvideParentSize(gapChildren, parentSize !== null && parentSize !== void 0 ? parentSize : 1);
@@ -25253,14 +25256,14 @@ var Page = /* @__PURE__ */ React4.forwardRef(function Page2(props, forwardedRef)
25253
25256
  if (hasMountedRef.current)
25254
25257
  return;
25255
25258
  requestAnimationFrame(() => {
25256
- var _f;
25259
+ var _j;
25257
25260
  currentContentPageRef.current = currentPage;
25258
25261
  const contentOffset = contentOffsetRef.current;
25259
25262
  contentOffset.x.on('change', applyEffects);
25260
25263
  contentOffset.y.on('change', applyEffects);
25261
25264
  applyEffects();
25262
25265
  hasMountedRef.current = true;
25263
- const containerSize = (_f = measureContainerSize()) !== null && _f !== void 0 ? _f : containerSizeRef.current;
25266
+ const containerSize = (_j = measureContainerSize()) !== null && _j !== void 0 ? _j : containerSizeRef.current;
25264
25267
  updateMaxOffsetFromPageContents(containerSize);
25265
25268
  updateAndSnapToPage(currentContentPageRef.current, true);
25266
25269
  });
@@ -25364,7 +25367,7 @@ var Page = /* @__PURE__ */ React4.forwardRef(function Page2(props, forwardedRef)
25364
25367
  });
25365
25368
  pageEffectValuesRef.current = [];
25366
25369
  const childComponents = React4.Children.map(children, (child, index) => {
25367
- var _f;
25370
+ var _j;
25368
25371
  if (!isReactChild(child) || !isReactElement(child)) {
25369
25372
  return child;
25370
25373
  }
@@ -25378,7 +25381,7 @@ var Page = /* @__PURE__ */ React4.forwardRef(function Page2(props, forwardedRef)
25378
25381
  },
25379
25382
  };
25380
25383
  if (containerProps.__fromCanvasComponent) {
25381
- update.style = (_f = child.props.style) !== null && _f !== void 0 ? _f : {};
25384
+ update.style = (_j = child.props.style) !== null && _j !== void 0 ? _j : {};
25382
25385
  if (contentWidth === 'stretch')
25383
25386
  update.style.width = '100%';
25384
25387
  if (contentHeight === 'stretch')
@@ -25893,7 +25896,7 @@ function stateName(state) {
25893
25896
  function containsBitmask(value, bitmask) {
25894
25897
  return (value & bitmask) !== 0;
25895
25898
  }
25896
- var GestureRecognizer = class {
25899
+ var GestureRecognizer = /*#__PURE__*/ class {
25897
25900
  constructor() {
25898
25901
  __publicField(this, '_state', 2);
25899
25902
  __publicField(this, 'handler');
@@ -25960,7 +25963,7 @@ var GestureRecognizer = class {
25960
25963
  }
25961
25964
  }
25962
25965
  };
25963
- var MouseWheelGestureRecognizer = class extends GestureRecognizer {
25966
+ var MouseWheelGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
25964
25967
  constructor() {
25965
25968
  super(...arguments);
25966
25969
  __publicField(this, 'startEvent');
@@ -25993,7 +25996,7 @@ var MouseWheelGestureRecognizer = class extends GestureRecognizer {
25993
25996
  this.onMouseWheelEnd(event);
25994
25997
  }
25995
25998
  };
25996
- var PanGestureRecognizer = class extends GestureRecognizer {
25999
+ var PanGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
25997
26000
  constructor() {
25998
26001
  super(...arguments);
25999
26002
  __publicField(this, 'startEvent');
@@ -26057,7 +26060,7 @@ var PanGestureRecognizer = class extends GestureRecognizer {
26057
26060
  }
26058
26061
  }
26059
26062
  };
26060
- var TapGestureRecognizer = class extends GestureRecognizer {
26063
+ var TapGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
26061
26064
  constructor() {
26062
26065
  super(...arguments);
26063
26066
  __publicField(this, 'eventType', 'tap');
@@ -26086,7 +26089,7 @@ var TapGestureRecognizer = class extends GestureRecognizer {
26086
26089
  }
26087
26090
  }
26088
26091
  };
26089
- var FramerEventSession = class {
26092
+ var FramerEventSession = /*#__PURE__*/ class {
26090
26093
  constructor(dispatcher, customOrigin) {
26091
26094
  __publicField(this, 'events', []);
26092
26095
  __publicField(this, 'recognizers', []);
@@ -26183,7 +26186,7 @@ var FramerEventSession = class {
26183
26186
  * @param n - number of events to use for calculation
26184
26187
  */
26185
26188
  velocity(t = Loop.TimeStep * 2) {
26186
- var _f;
26189
+ var _j;
26187
26190
  if (!this.isStarted || this.events.length < 2) {
26188
26191
  return {
26189
26192
  x: 0,
@@ -26194,7 +26197,7 @@ var FramerEventSession = class {
26194
26197
  let i = events.length - 1;
26195
26198
  let event = null;
26196
26199
  while (i >= 0) {
26197
- event = (_f = events[i]) !== null && _f !== void 0 ? _f : null;
26200
+ event = (_j = events[i]) !== null && _j !== void 0 ? _j : null;
26198
26201
  if (!event || MainLoop.time - event.loopTime > t) {
26199
26202
  break;
26200
26203
  }
@@ -26248,7 +26251,7 @@ var FramerEventSession = class {
26248
26251
  return subtract(event.devicePoint, this.startEvent.devicePoint);
26249
26252
  }
26250
26253
  };
26251
- var MouseEventListener = class extends Component {
26254
+ var MouseEventListener = /*#__PURE__*/ class extends Component {
26252
26255
  constructor() {
26253
26256
  super(...arguments);
26254
26257
  __publicField(this, 'domMouseDown', (originalEvent) => {
@@ -26300,7 +26303,7 @@ var MouseEventListener = class extends Component {
26300
26303
  safeWindow.removeEventListener('wheel', this.domMouseWheel);
26301
26304
  }
26302
26305
  };
26303
- var TouchEventListener = class extends Component {
26306
+ var TouchEventListener = /*#__PURE__*/ class extends Component {
26304
26307
  constructor() {
26305
26308
  super(...arguments);
26306
26309
  __publicField(this, 'domTouchStart', (originalEvent) => {
@@ -27272,7 +27275,7 @@ function useObserveData() {
27272
27275
  const context = React4.useContext(DataObserverContext);
27273
27276
  return !isNaN(context.update);
27274
27277
  }
27275
- var DataObserver = class extends Component {
27278
+ var DataObserver = /*#__PURE__*/ class extends Component {
27276
27279
  constructor() {
27277
27280
  super(...arguments);
27278
27281
  __publicField(this, 'observers', []);
@@ -27384,19 +27387,19 @@ var effectValuesKeys = [
27384
27387
  'transformPerspective',
27385
27388
  ];
27386
27389
  var makeFXValues = (defaults) => {
27387
- var _f, _j, _k, _l, _m, _o, _p, _q, _t, _u;
27390
+ var _j, _k, _l, _m, _o, _p, _q, _t, _u, _w;
27388
27391
  return {
27389
- x: motionValue((_f = (defaults == null ? void 0 : defaults.x)) !== null && _f !== void 0 ? _f : 0),
27390
- y: motionValue((_j = (defaults == null ? void 0 : defaults.y)) !== null && _j !== void 0 ? _j : 0),
27391
- opacity: motionValue((_k = (defaults == null ? void 0 : defaults.opacity)) !== null && _k !== void 0 ? _k : 1),
27392
- scale: motionValue((_l = (defaults == null ? void 0 : defaults.scale)) !== null && _l !== void 0 ? _l : 1),
27393
- rotate: motionValue((_m = (defaults == null ? void 0 : defaults.rotate)) !== null && _m !== void 0 ? _m : 0),
27394
- rotateX: motionValue((_o = (defaults == null ? void 0 : defaults.rotateX)) !== null && _o !== void 0 ? _o : 0),
27395
- rotateY: motionValue((_p = (defaults == null ? void 0 : defaults.rotateY)) !== null && _p !== void 0 ? _p : 0),
27396
- skewX: motionValue((_q = (defaults == null ? void 0 : defaults.skewX)) !== null && _q !== void 0 ? _q : 0),
27397
- skewY: motionValue((_t = (defaults == null ? void 0 : defaults.skewY)) !== null && _t !== void 0 ? _t : 0),
27392
+ x: motionValue((_j = (defaults == null ? void 0 : defaults.x)) !== null && _j !== void 0 ? _j : 0),
27393
+ y: motionValue((_k = (defaults == null ? void 0 : defaults.y)) !== null && _k !== void 0 ? _k : 0),
27394
+ opacity: motionValue((_l = (defaults == null ? void 0 : defaults.opacity)) !== null && _l !== void 0 ? _l : 1),
27395
+ scale: motionValue((_m = (defaults == null ? void 0 : defaults.scale)) !== null && _m !== void 0 ? _m : 1),
27396
+ rotate: motionValue((_o = (defaults == null ? void 0 : defaults.rotate)) !== null && _o !== void 0 ? _o : 0),
27397
+ rotateX: motionValue((_p = (defaults == null ? void 0 : defaults.rotateX)) !== null && _p !== void 0 ? _p : 0),
27398
+ rotateY: motionValue((_q = (defaults == null ? void 0 : defaults.rotateY)) !== null && _q !== void 0 ? _q : 0),
27399
+ skewX: motionValue((_t = (defaults == null ? void 0 : defaults.skewX)) !== null && _t !== void 0 ? _t : 0),
27400
+ skewY: motionValue((_u = (defaults == null ? void 0 : defaults.skewY)) !== null && _u !== void 0 ? _u : 0),
27398
27401
  /** @deprecated */
27399
- transformPerspective: motionValue((_u = (defaults == null ? void 0 : defaults.transformPerspective)) !== null && _u !== void 0 ? _u : 0),
27402
+ transformPerspective: motionValue((_w = (defaults == null ? void 0 : defaults.transformPerspective)) !== null && _w !== void 0 ? _w : 0),
27400
27403
  };
27401
27404
  };
27402
27405
  var defaultFXValues = {
@@ -27463,14 +27466,14 @@ function useLoop({ loopEffectEnabled, loopRepeatDelay, loopTransition, loopRepea
27463
27466
  const from = mirror ? loop : defaultFXValues;
27464
27467
  mirrorStateRef.current = !mirrorStateRef.current;
27465
27468
  return Promise.all(effectValuesKeys.map((key7) => {
27466
- var _f;
27469
+ var _j;
27467
27470
  if (shouldReduceMotion && key7 !== 'opacity')
27468
27471
  return;
27469
- effect.values[key7].set((_f = from[key7]) !== null && _f !== void 0 ? _f : defaultFXValues[key7]);
27472
+ effect.values[key7].set((_j = from[key7]) !== null && _j !== void 0 ? _j : defaultFXValues[key7]);
27470
27473
  return new Promise((resolve) => {
27471
- var _f;
27474
+ var _j;
27472
27475
  const opts = Object.assign(Object.assign({}, transition), { onComplete: () => resolve() });
27473
- animate(effect.values[key7], (_f = to[key7]) !== null && _f !== void 0 ? _f : from[key7], opts);
27476
+ animate(effect.values[key7], (_j = to[key7]) !== null && _j !== void 0 ? _j : from[key7], opts);
27474
27477
  });
27475
27478
  }));
27476
27479
  });
@@ -27521,9 +27524,9 @@ function useParallax(options, ref, visibilityStyle) {
27521
27524
  }, [originalPosition, speed, offset, adjustPosition,]);
27522
27525
  React4.useLayoutEffect(() => {
27523
27526
  frame.read(() => {
27524
- var _f;
27527
+ var _j;
27525
27528
  var _a, _b;
27526
- originalPosition.current = (_f = ((_b = (_a = ref.current) == null ? void 0 : _a.getBoundingClientRect()) == null ? void 0 : _b.top)) !== null && _f !== void 0 ? _f : 0;
27529
+ originalPosition.current = (_j = ((_b = (_a = ref.current) == null ? void 0 : _a.getBoundingClientRect()) == null ? void 0 : _b.top)) !== null && _j !== void 0 ? _j : 0;
27527
27530
  });
27528
27531
  frame.update(() => {
27529
27532
  parallaxY.set(transform2(scrollY.get()));
@@ -27557,12 +27560,12 @@ function runEffectAnimation(target, effect, shouldReduceMotion, ref, appearId, i
27557
27560
  const transition = getTransition(target);
27558
27561
  return Promise.all(effectValuesKeys.map((key7) => {
27559
27562
  return new Promise((resolve) => {
27560
- var _f;
27563
+ var _j;
27561
27564
  if (shouldReduceMotion && key7 !== 'opacity')
27562
27565
  return resolve();
27563
27566
  const motionValue2 = effect.values[key7];
27564
27567
  motionValue2.stop();
27565
- let value = !isObject2(target) ? defaultFXValues[key7] : (_f = (target == null ? void 0 : target[key7])) !== null && _f !== void 0 ? _f : defaultFXValues[key7];
27568
+ let value = !isObject2(target) ? defaultFXValues[key7] : (_j = (target == null ? void 0 : target[key7])) !== null && _j !== void 0 ? _j : defaultFXValues[key7];
27566
27569
  if (isMotionValue(value))
27567
27570
  value = value.get();
27568
27571
  if (!isNumber2(value))
@@ -27595,7 +27598,6 @@ function usePresenceAnimation({ initial: motionInitial, animate: motionAnimate,
27595
27598
  const [isPresent2, safeToRemove,] = usePresence();
27596
27599
  const lastPresence = useRef(false);
27597
27600
  const effect = useConstant2(() => {
27598
- var _a;
27599
27601
  const base = initial !== null && initial !== void 0 ? initial : style;
27600
27602
  if (!isObject2(base)) {
27601
27603
  return {
@@ -27604,7 +27606,7 @@ function usePresenceAnimation({ initial: motionInitial, animate: motionAnimate,
27604
27606
  }
27605
27607
  const defaults = {};
27606
27608
  for (const key7 in base) {
27607
- const value = isObject2(base) ? (_a = asRecord(base)) == null ? void 0 : _a[key7] : void 0;
27609
+ const value = isObject2(base) ? base[key7] : void 0;
27608
27610
  if (!isNumber2(value))
27609
27611
  continue;
27610
27612
  defaults[key7] = value;
@@ -27672,17 +27674,17 @@ function calcOffsetTop(element, container) {
27672
27674
  }
27673
27675
  var scrollObserverOffset = 1;
27674
27676
  function createTransformInputRange(transformTargets, threshold = 0, callback) {
27675
- var _f, _j;
27677
+ var _j, _k;
27676
27678
  var _a;
27677
27679
  const starts = [];
27678
27680
  const inputRange = [];
27679
27681
  for (let index = transformTargets.length; index >= 0; index--) {
27680
- const { ref: targetRef, offset, } = (_f = transformTargets[index]) !== null && _f !== void 0 ? _f : {};
27682
+ const { ref: targetRef, offset, } = (_j = transformTargets[index]) !== null && _j !== void 0 ? _j : {};
27681
27683
  if (!targetRef || !targetRef.current)
27682
27684
  continue;
27683
27685
  const offsetTop = calcOffsetTop(targetRef.current, document.documentElement);
27684
27686
  const top = offsetTop - scrollObserverOffset - (offset !== null && offset !== void 0 ? offset : 0) - threshold;
27685
- const height = (_j = ((_a = targetRef.current) == null ? void 0 : _a.clientHeight)) !== null && _j !== void 0 ? _j : 0;
27687
+ const height = (_k = ((_a = targetRef.current) == null ? void 0 : _a.clientHeight)) !== null && _k !== void 0 ? _k : 0;
27686
27688
  const previousTop = starts[starts.length - 1];
27687
27689
  const end = Math.max(top + height, 0);
27688
27690
  starts.push(top);
@@ -27782,27 +27784,27 @@ function createInputOutputRange(targets, threshold, hasExit) {
27782
27784
  };
27783
27785
  }
27784
27786
  function makeStyle(defaults) {
27785
- var _f, _j, _k, _l, _m, _o, _p, _q, _t, _u, _w;
27787
+ var _j, _k, _l, _m, _o, _p, _q, _t, _u, _w, _x;
27786
27788
  return {
27787
- x: (_f = (defaults == null ? void 0 : defaults.x)) !== null && _f !== void 0 ? _f : defaultFXValues.x,
27788
- y: (_j = (defaults == null ? void 0 : defaults.y)) !== null && _j !== void 0 ? _j : defaultFXValues.y,
27789
- scale: (_k = (defaults == null ? void 0 : defaults.scale)) !== null && _k !== void 0 ? _k : defaultFXValues.scale,
27790
- opacity: (_l = (defaults == null ? void 0 : defaults.opacity)) !== null && _l !== void 0 ? _l : defaultFXValues.opacity,
27791
- transformPerspective: (_m = (defaults == null ? void 0 : defaults.transformPerspective)) !== null && _m !== void 0 ? _m : defaultFXValues.transformPerspective,
27792
- rotate: (_o = (defaults == null ? void 0 : defaults.rotate)) !== null && _o !== void 0 ? _o : defaultFXValues.rotate,
27793
- rotateX: (_p = (defaults == null ? void 0 : defaults.rotateX)) !== null && _p !== void 0 ? _p : defaultFXValues.rotateX,
27794
- rotateY: (_q = (defaults == null ? void 0 : defaults.rotateY)) !== null && _q !== void 0 ? _q : defaultFXValues.rotateY,
27795
- skewX: (_t = (defaults == null ? void 0 : defaults.skewX)) !== null && _t !== void 0 ? _t : defaultFXValues.skewX,
27796
- skewY: (_u = (defaults == null ? void 0 : defaults.skewY)) !== null && _u !== void 0 ? _u : defaultFXValues.skewY,
27797
- transition: (_w = (defaults == null ? void 0 : defaults.transition)) !== null && _w !== void 0 ? _w : void 0,
27798
- };
27799
- }
27800
- function useAnimationVariants(_f) {
27801
- var { opacity, targetOpacity, perspective: transformPerspective, enter, exit, animate: animateVariant2 } = _f, defaultStyles = __rest(_f, ["opacity", "targetOpacity", "perspective", "enter", "exit", "animate"]);
27789
+ x: (_j = (defaults == null ? void 0 : defaults.x)) !== null && _j !== void 0 ? _j : defaultFXValues.x,
27790
+ y: (_k = (defaults == null ? void 0 : defaults.y)) !== null && _k !== void 0 ? _k : defaultFXValues.y,
27791
+ scale: (_l = (defaults == null ? void 0 : defaults.scale)) !== null && _l !== void 0 ? _l : defaultFXValues.scale,
27792
+ opacity: (_m = (defaults == null ? void 0 : defaults.opacity)) !== null && _m !== void 0 ? _m : defaultFXValues.opacity,
27793
+ transformPerspective: (_o = (defaults == null ? void 0 : defaults.transformPerspective)) !== null && _o !== void 0 ? _o : defaultFXValues.transformPerspective,
27794
+ rotate: (_p = (defaults == null ? void 0 : defaults.rotate)) !== null && _p !== void 0 ? _p : defaultFXValues.rotate,
27795
+ rotateX: (_q = (defaults == null ? void 0 : defaults.rotateX)) !== null && _q !== void 0 ? _q : defaultFXValues.rotateX,
27796
+ rotateY: (_t = (defaults == null ? void 0 : defaults.rotateY)) !== null && _t !== void 0 ? _t : defaultFXValues.rotateY,
27797
+ skewX: (_u = (defaults == null ? void 0 : defaults.skewX)) !== null && _u !== void 0 ? _u : defaultFXValues.skewX,
27798
+ skewY: (_w = (defaults == null ? void 0 : defaults.skewY)) !== null && _w !== void 0 ? _w : defaultFXValues.skewY,
27799
+ transition: (_x = (defaults == null ? void 0 : defaults.transition)) !== null && _x !== void 0 ? _x : void 0,
27800
+ };
27801
+ }
27802
+ function useAnimationVariants(_j) {
27803
+ var { opacity, targetOpacity, perspective: transformPerspective, enter, exit, animate: animateVariant2 } = _j, defaultStyles = __rest(_j, ["opacity", "targetOpacity", "perspective", "enter", "exit", "animate"]);
27802
27804
  return React4.useMemo(() => {
27803
- var _f;
27805
+ var _j;
27804
27806
  return ({
27805
- initial: enter !== null && enter !== void 0 ? enter : makeStyle(Object.assign(Object.assign({}, defaultStyles), { opacity: (_f = opacity !== null && opacity !== void 0 ? opacity : targetOpacity) !== null && _f !== void 0 ? _f : 1, transformPerspective })),
27807
+ initial: enter !== null && enter !== void 0 ? enter : makeStyle(Object.assign(Object.assign({}, defaultStyles), { opacity: (_j = opacity !== null && opacity !== void 0 ? opacity : targetOpacity) !== null && _j !== void 0 ? _j : 1, transformPerspective })),
27806
27808
  animate: animateVariant2 !== null && animateVariant2 !== void 0 ? animateVariant2 : makeStyle({
27807
27809
  opacity: targetOpacity,
27808
27810
  }),
@@ -27821,22 +27823,24 @@ function useStyleAppearEffect(options, ref) {
27821
27823
  lastAppearState: !options.styleAppearEffectEnabled,
27822
27824
  });
27823
27825
  const animation = React4.useRef();
27824
- const runAnimation = React4.useCallback((_f, fromInitial) => __awaiter(this, void 0, void 0, function* () {
27825
- var _j;
27826
- var { transition } = _f, target = __rest(_f, ["transition"]);
27827
- const transitionWithFallback = (_j = transition !== null && transition !== void 0 ? transition : variants.animate.transition) !== null && _j !== void 0 ? _j : options.transition;
27826
+ const runAnimation = React4.useCallback((_j, fromInitial) => __awaiter(this, void 0, void 0, function* () {
27827
+ var _k;
27828
+ var { transition } = _j, target = __rest(_j, ["transition"]);
27829
+ const transitionWithFallback = (_k = transition !== null && transition !== void 0 ? transition : variants.animate.transition) !== null && _k !== void 0 ? _k : options.transition;
27828
27830
  yield animation.current;
27829
27831
  animation.current = Promise.all(effectValuesKeys.map((key7) => {
27830
- var _f, _j;
27832
+ var _j, _k;
27831
27833
  if (fromInitial)
27832
- effect.values[key7].set((_f = variants.initial[key7]) !== null && _f !== void 0 ? _f : defaultFXValues[key7]);
27833
- const toValue = (_j = target[key7]) !== null && _j !== void 0 ? _j : defaultFXValues[key7];
27834
+ effect.values[key7].set((_j = variants.initial[key7]) !== null && _j !== void 0 ? _j : defaultFXValues[key7]);
27835
+ const toValue = (_k = target[key7]) !== null && _k !== void 0 ? _k : defaultFXValues[key7];
27834
27836
  const visualElement = visualElementStore.get(ref.current);
27835
27837
  if (visualElement && typeof toValue !== 'object') {
27836
27838
  visualElement.setBaseTarget(key7, toValue);
27837
27839
  }
27838
27840
  return new Promise((resolve) => {
27839
27841
  if (shouldReduceMotion && key7 !== 'opacity') {
27842
+ if (isNumber2(toValue))
27843
+ effect.values[key7].set(toValue);
27840
27844
  resolve();
27841
27845
  }
27842
27846
  else {
@@ -27878,13 +27882,13 @@ function useStyleAppearEffect(options, ref) {
27878
27882
  };
27879
27883
  let lastVariant = 'initial';
27880
27884
  return scrollInfo(({ y: scrollY, }) => {
27881
- var _f;
27885
+ var _j;
27882
27886
  const { targets, } = options;
27883
27887
  if (!targets)
27884
27888
  return;
27885
27889
  if (!targets[0] || targets[0].ref && !targets[0].ref.current)
27886
27890
  return;
27887
- const { inputRange, outputRange, } = createInputOutputRange(targets, ((_f = options.threshold) !== null && _f !== void 0 ? _f : 0) * scrollY.containerLength, !!options.exit);
27891
+ const { inputRange, outputRange, } = createInputOutputRange(targets, ((_j = options.threshold) !== null && _j !== void 0 ? _j : 0) * scrollY.containerLength, !!options.exit);
27888
27892
  if (inputRange.length === 0 || inputRange.length !== outputRange.length)
27889
27893
  return;
27890
27894
  const variant = transform(scrollY.current, inputRange, outputRange);
@@ -27914,12 +27918,12 @@ var styleTransformOptionsKeys = /* @__PURE__ */ new Set([
27914
27918
  'transformTrigger',
27915
27919
  ]);
27916
27920
  var defaultValues = (transformTargets, shouldReduceMotion) => {
27917
- var _f;
27921
+ var _j;
27918
27922
  var _a;
27919
27923
  const initial = (_a = transformTargets == null ? void 0 : transformTargets[0]) == null ? void 0 : _a.target;
27920
27924
  return shouldReduceMotion
27921
27925
  ? {
27922
- opacity: (_f = (initial == null ? void 0 : initial.opacity)) !== null && _f !== void 0 ? _f : 1,
27926
+ opacity: (_j = (initial == null ? void 0 : initial.opacity)) !== null && _j !== void 0 ? _j : 1,
27923
27927
  }
27924
27928
  : initial;
27925
27929
  };
@@ -27961,14 +27965,14 @@ function useAttachOptionalSpring(values, spring2) {
27961
27965
  function createInputOutputRanges(transformTargets, threshold) {
27962
27966
  const effectKeyOutputRange = defaultRanges2();
27963
27967
  const inputRange = createTransformInputRange(transformTargets, threshold, (index) => {
27964
- var _f, _j;
27968
+ var _j, _k;
27965
27969
  var _a, _b, _c;
27966
27970
  const previousTarget = (_a = transformTargets[index - 1]) == null ? void 0 : _a.target;
27967
27971
  const currentTarget = (_b = transformTargets[index]) == null ? void 0 : _b.target;
27968
27972
  for (const key7 of effectValuesKeys) {
27969
27973
  (_c = effectKeyOutputRange[key7]) == null
27970
27974
  ? void 0
27971
- : _c.unshift((_f = (previousTarget == null ? void 0 : previousTarget[key7])) !== null && _f !== void 0 ? _f : 0, (_j = (currentTarget == null ? void 0 : currentTarget[key7])) !== null && _j !== void 0 ? _j : 0);
27975
+ : _c.unshift((_j = (previousTarget == null ? void 0 : previousTarget[key7])) !== null && _j !== void 0 ? _j : 0, (_k = (currentTarget == null ? void 0 : currentTarget[key7])) !== null && _k !== void 0 ? _k : 0);
27972
27976
  }
27973
27977
  });
27974
27978
  return {
@@ -27990,7 +27994,7 @@ function useStyleTransform({ transformTrigger, styleTransformEffectEnabled, tran
27990
27994
  const shouldReduceMotion = useReducedMotionConfig();
27991
27995
  const effect = useFXValues(defaultValues(transformTargets, shouldReduceMotion), styleTransformEffectEnabled);
27992
27996
  React4.useLayoutEffect(() => {
27993
- var _f;
27997
+ var _j;
27994
27998
  if (!styleTransformEffectEnabled || !transformTargets)
27995
27999
  return;
27996
28000
  if (transformTrigger !== 'onScrollTarget') {
@@ -28007,7 +28011,7 @@ function useStyleTransform({ transformTrigger, styleTransformEffectEnabled, tran
28007
28011
  }
28008
28012
  }, transformTrigger === 'onInView'
28009
28013
  ? {
28010
- target: (_f = ref.current) !== null && _f !== void 0 ? _f : void 0,
28014
+ target: (_j = ref.current) !== null && _j !== void 0 ? _j : void 0,
28011
28015
  offset: [`start end`, `end end`,],
28012
28016
  }
28013
28017
  : void 0);
@@ -28194,9 +28198,9 @@ function ComponentPresetsProvider({ presets, children, }) {
28194
28198
  });
28195
28199
  }
28196
28200
  function ComponentPresetsConsumer({ componentIdentifier, children, }) {
28197
- var _f;
28201
+ var _j;
28198
28202
  const componentPresets = useContext3(Context);
28199
- const presetProps = (_f = componentPresets[componentIdentifier]) !== null && _f !== void 0 ? _f : {};
28203
+ const presetProps = (_j = componentPresets[componentIdentifier]) !== null && _j !== void 0 ? _j : {};
28200
28204
  return children(presetProps);
28201
28205
  }
28202
28206
  function setRef(ref, value) {
@@ -28310,8 +28314,8 @@ var ComponentViewportContext = /* @__PURE__ */ React4.createContext({});
28310
28314
  function useComponentViewport() {
28311
28315
  return React4.useContext(ComponentViewportContext);
28312
28316
  }
28313
- var ComponentViewportProvider = /* @__PURE__ */ React4.forwardRef((_f, ref) => {
28314
- var { width, children } = _f, rest = __rest(_f, ["width", "children"]);
28317
+ var ComponentViewportProvider = /* @__PURE__ */ React4.forwardRef((_j, ref) => {
28318
+ var { width, children } = _j, rest = __rest(_j, ["width", "children"]);
28315
28319
  const componentViewport = React4.useMemo(() => {
28316
28320
  return {
28317
28321
  width,
@@ -28327,7 +28331,7 @@ var withGeneratedLayoutId = (Component15) => React4.forwardRef((props, ref) => {
28327
28331
  const layoutId = useLayoutId2(props);
28328
28332
  return /* @__PURE__ */ jsx(Component15, Object.assign(Object.assign({ layoutId }, props), { layoutIdKey: void 0, duplicatedFrom: void 0, ref }));
28329
28333
  });
28330
- var ContainerErrorBoundary = class extends Component {
28334
+ var ContainerErrorBoundary = /*#__PURE__*/ class extends Component {
28331
28335
  constructor() {
28332
28336
  super(...arguments);
28333
28337
  __publicField(this, 'state', {
@@ -28346,8 +28350,8 @@ var ContainerErrorBoundary = class extends Component {
28346
28350
  return hasError ? null : children;
28347
28351
  }
28348
28352
  };
28349
- var Providers = /* @__PURE__ */ React4.forwardRef((_f, ref) => {
28350
- var { children, layoutId } = _f, props = __rest(_f, ["children", "layoutId"]);
28353
+ var Providers = /* @__PURE__ */ React4.forwardRef((_j, ref) => {
28354
+ var { children, layoutId } = _j, props = __rest(_j, ["children", "layoutId"]);
28351
28355
  const outerLayoutId = useConstant2(() => layoutId ? `${layoutId}-container` : void 0);
28352
28356
  return /* @__PURE__ */ jsx(motion.div, Object.assign(Object.assign({ layoutId: outerLayoutId }, props), { ref, children: /* @__PURE__ */ jsx(ComponentContainerContext.Provider, {
28353
28357
  value: true,
@@ -28384,8 +28388,8 @@ var componentsWithServerRenderedStyles = /* @__PURE__ */ (() => {
28384
28388
  })();
28385
28389
  var framerCSSMarker = 'data-framer-css-ssr';
28386
28390
  var withCSS = (Component15, escapedCSS, componentSerializationId) => React4.forwardRef((props, ref) => {
28387
- var _f;
28388
- const { sheet, cache: cache2, } = (_f = React4.useContext(StyleSheetContext)) !== null && _f !== void 0 ? _f : {};
28391
+ var _j;
28392
+ const { sheet, cache: cache2, } = (_j = React4.useContext(StyleSheetContext)) !== null && _j !== void 0 ? _j : {};
28389
28393
  if (!isBrowser2()) {
28390
28394
  const concatenatedCSS = Array.isArray(escapedCSS) ? escapedCSS.join('\n') : escapedCSS;
28391
28395
  return /* @__PURE__ */ jsxs(Fragment, {
@@ -28424,10 +28428,10 @@ var CustomCursorContextProvider = /* @__PURE__ */ React4.memo(function CustomCur
28424
28428
  return () => events.delete(callback);
28425
28429
  },
28426
28430
  registerCursors: (cursors) => {
28427
- var _f;
28431
+ var _j;
28428
28432
  const nextCursors = {};
28429
28433
  for (const key7 in cursors) {
28430
- const cursor = (_f = allCursors[key7]) !== null && _f !== void 0 ? _f : cursors[key7];
28434
+ const cursor = (_j = allCursors[key7]) !== null && _j !== void 0 ? _j : cursors[key7];
28431
28435
  if (cursor)
28432
28436
  nextCursors[key7] = cursor;
28433
28437
  }
@@ -28491,7 +28495,7 @@ function getCenteringTransform(placement, alignment = 'center') {
28491
28495
  }
28492
28496
  var portalIdAttribute = 'data-framer-portal-id';
28493
28497
  function getCursorHash(x, y) {
28494
- var _f;
28498
+ var _j;
28495
28499
  let el = document.elementFromPoint(x, y);
28496
28500
  while (el) {
28497
28501
  if (el === document.body)
@@ -28503,7 +28507,7 @@ function getCursorHash(x, y) {
28503
28507
  const id3 = el.getAttribute(portalIdAttribute);
28504
28508
  el = el.parentElement;
28505
28509
  if (id3)
28506
- el = (_f = document.getElementById(id3)) !== null && _f !== void 0 ? _f : el;
28510
+ el = (_j = document.getElementById(id3)) !== null && _j !== void 0 ? _j : el;
28507
28511
  }
28508
28512
  else {
28509
28513
  el = el.parentElement;
@@ -28517,7 +28521,7 @@ function isEmptyObject(object) {
28517
28521
  return true;
28518
28522
  }
28519
28523
  var CustomCursorComponent = /* @__PURE__ */ React4.memo(function CustomCursorComponent2() {
28520
- var _f;
28524
+ var _j;
28521
28525
  const { onRegisterCursors, } = useContext3(CustomCursorContext);
28522
28526
  const pointerX = useMotionValue(0);
28523
28527
  const pointerY = useMotionValue(0);
@@ -28618,20 +28622,20 @@ var CustomCursorComponent = /* @__PURE__ */ React4.memo(function CustomCursorCom
28618
28622
  document.body.classList.toggle(replaceCursorClassName, replaceNativeCursor);
28619
28623
  }, [replaceNativeCursor,]);
28620
28624
  const Cursor = cursor == null ? void 0 : cursor.component;
28621
- const spring2 = (_f = (cursor == null ? void 0 : cursor.transition)) !== null && _f !== void 0 ? _f : {
28625
+ const spring2 = (_j = (cursor == null ? void 0 : cursor.transition)) !== null && _j !== void 0 ? _j : {
28622
28626
  duration: 0,
28623
28627
  };
28624
28628
  const sprungX = useSpring(pointerX, spring2);
28625
28629
  const sprungY = useSpring(pointerY, spring2);
28626
28630
  const x = useTransform(() => {
28627
- var _f;
28631
+ var _j;
28628
28632
  var _a;
28629
- return sprungX.get() + ((_f = ((_a = cursor == null ? void 0 : cursor.offset) == null ? void 0 : _a.x)) !== null && _f !== void 0 ? _f : 0);
28633
+ return sprungX.get() + ((_j = ((_a = cursor == null ? void 0 : cursor.offset) == null ? void 0 : _a.x)) !== null && _j !== void 0 ? _j : 0);
28630
28634
  });
28631
28635
  const y = useTransform(() => {
28632
- var _f;
28636
+ var _j;
28633
28637
  var _a;
28634
- return sprungY.get() + ((_f = ((_a = cursor == null ? void 0 : cursor.offset) == null ? void 0 : _a.y)) !== null && _f !== void 0 ? _f : 0);
28638
+ return sprungY.get() + ((_j = ((_a = cursor == null ? void 0 : cursor.offset) == null ? void 0 : _a.y)) !== null && _j !== void 0 ? _j : 0);
28635
28639
  });
28636
28640
  const alignment = cursor == null ? void 0 : cursor.alignment;
28637
28641
  const placement = cursor == null ? void 0 : cursor.placement;
@@ -28701,19 +28705,19 @@ var Polygon = {
28701
28705
  * @internal
28702
28706
  */
28703
28707
  containsPoint: (polygonPoints2, point2) => {
28704
- var _f, _j, _k, _l;
28708
+ var _j, _k, _l, _m;
28705
28709
  var _a, _b, _c, _d;
28706
28710
  let sign = void 0;
28707
28711
  for (let i = 0; i < polygonPoints2.length; i++) {
28708
28712
  if (Point.isEqual(polygonPoints2[i], point2))
28709
28713
  return true;
28710
- const x1 = (_f = ((_a = polygonPoints2[i]) == null ? void 0 : _a.x)) !== null && _f !== void 0 ? _f : 0;
28711
- const y1 = (_j = ((_b = polygonPoints2[i]) == null ? void 0 : _b.y)) !== null && _j !== void 0 ? _j : 0;
28714
+ const x1 = (_j = ((_a = polygonPoints2[i]) == null ? void 0 : _a.x)) !== null && _j !== void 0 ? _j : 0;
28715
+ const y1 = (_k = ((_b = polygonPoints2[i]) == null ? void 0 : _b.y)) !== null && _k !== void 0 ? _k : 0;
28712
28716
  const i2 = (i + 1) % polygonPoints2.length;
28713
28717
  if (Point.isEqual(polygonPoints2[i2], point2))
28714
28718
  return true;
28715
- const x2 = (_k = ((_c = polygonPoints2[i2]) == null ? void 0 : _c.x)) !== null && _k !== void 0 ? _k : 0;
28716
- const y2 = (_l = ((_d = polygonPoints2[i2]) == null ? void 0 : _d.y)) !== null && _l !== void 0 ? _l : 0;
28719
+ const x2 = (_l = ((_c = polygonPoints2[i2]) == null ? void 0 : _c.x)) !== null && _l !== void 0 ? _l : 0;
28720
+ const y2 = (_m = ((_d = polygonPoints2[i2]) == null ? void 0 : _d.y)) !== null && _m !== void 0 ? _m : 0;
28717
28721
  const d = (point2.x - x1) * (y2 - y1) - (point2.y - y1) * (x2 - x1);
28718
28722
  if (d === 0)
28719
28723
  continue;
@@ -29039,25 +29043,25 @@ function createUpdateSafeArea(safeAreaRef) {
29039
29043
  let x = 0;
29040
29044
  let y = 0;
29041
29045
  return (anchorRect, calculatedRect, placement, event) => {
29042
- var _f, _j;
29046
+ var _j, _k;
29043
29047
  var _a;
29044
29048
  if (!((_a = safeAreaRef.current) == null ? void 0 : _a.style))
29045
29049
  return;
29046
- x = (_f = (event == null ? void 0 : event.clientX)) !== null && _f !== void 0 ? _f : x;
29047
- y = (_j = (event == null ? void 0 : event.clientY)) !== null && _j !== void 0 ? _j : y;
29050
+ x = (_j = (event == null ? void 0 : event.clientX)) !== null && _j !== void 0 ? _j : x;
29051
+ y = (_k = (event == null ? void 0 : event.clientY)) !== null && _k !== void 0 ? _k : y;
29048
29052
  Object.assign(safeAreaRef.current.style, floatingPositionSafeAreaStyle(x, y, placement, anchorRect, calculatedRect));
29049
29053
  };
29050
29054
  }
29051
29055
  function updatePosition(floatingPositionRef, position, rect) {
29052
- var _f, _j;
29056
+ var _j, _k;
29053
29057
  if (!floatingPositionRef.current)
29054
29058
  return;
29055
29059
  Object.assign(floatingPositionRef.current.style, {
29056
29060
  position,
29057
29061
  visibility: 'visible',
29058
29062
  // Append "px" because we are assigning this object straight to style.
29059
- left: ((_f = (rect == null ? void 0 : rect.x)) !== null && _f !== void 0 ? _f : 0) + (position === 'fixed' ? 0 : safeWindow.scrollX) + 'px',
29060
- top: ((_j = (rect == null ? void 0 : rect.y)) !== null && _j !== void 0 ? _j : 0) + (position === 'fixed' ? 0 : safeWindow.scrollY) + 'px',
29063
+ left: ((_j = (rect == null ? void 0 : rect.x)) !== null && _j !== void 0 ? _j : 0) + (position === 'fixed' ? 0 : safeWindow.scrollX) + 'px',
29064
+ top: ((_k = (rect == null ? void 0 : rect.y)) !== null && _k !== void 0 ? _k : 0) + (position === 'fixed' ? 0 : safeWindow.scrollY) + 'px',
29061
29065
  });
29062
29066
  }
29063
29067
  var FloatingStackingContext = /* @__PURE__ */ React4.createContext(/* @__PURE__ */ new Set());
@@ -29151,9 +29155,9 @@ function childrenWithOrigin(child, { x, y, }) {
29151
29155
  style,
29152
29156
  });
29153
29157
  }
29154
- function Floating(_f) {
29155
- var _j;
29156
- var { alignment, placement, safeArea, offsetX, offsetY, anchorRef, className: className2, children, portalSelector, zIndex, collisionDetection = false, collisionDetectionPadding, onDismiss } = _f, rest = __rest(_f, ["alignment", "placement", "safeArea", "offsetX", "offsetY", "anchorRef", "className", "children", "portalSelector", "zIndex", "collisionDetection", "collisionDetectionPadding", "onDismiss"]);
29158
+ function Floating(_j) {
29159
+ var _k;
29160
+ var { alignment, placement, safeArea, offsetX, offsetY, anchorRef, className: className2, children, portalSelector, zIndex, collisionDetection = false, collisionDetectionPadding, onDismiss } = _j, rest = __rest(_j, ["alignment", "placement", "safeArea", "offsetX", "offsetY", "anchorRef", "className", "children", "portalSelector", "zIndex", "collisionDetection", "collisionDetectionPadding", "onDismiss"]);
29157
29161
  const floatingPositionRef = React4.useRef(null);
29158
29162
  const safeAreaRef = React4.useRef(null);
29159
29163
  const contentRef = React4.useRef(null);
@@ -29255,10 +29259,10 @@ function Floating(_f) {
29255
29259
  children: childrenWithOrigin(children, origin),
29256
29260
  }),
29257
29261
  }),
29258
- ] })), (_j = document.querySelector(portalSelector)) !== null && _j !== void 0 ? _j : document.body);
29262
+ ] })), (_k = document.querySelector(portalSelector)) !== null && _k !== void 0 ? _k : document.body);
29259
29263
  }
29260
29264
  var GeneratedComponentContext = /* @__PURE__ */ React4.createContext(void 0);
29261
- var LazyValue = class {
29265
+ var LazyValue = /*#__PURE__*/ class {
29262
29266
  constructor(resolver) {
29263
29267
  this.resolver = resolver;
29264
29268
  __publicField(this, 'status');
@@ -29373,7 +29377,7 @@ function parseFramerPageLink(link) {
29373
29377
  collectionItem,
29374
29378
  };
29375
29379
  }
29376
- catch (_f) {
29380
+ catch (_j) {
29377
29381
  return;
29378
29382
  }
29379
29383
  }
@@ -29381,13 +29385,13 @@ function shouldOpenLinkInNewTab(link) {
29381
29385
  return !isFramerPageLink(link);
29382
29386
  }
29383
29387
  function navigateFromAttributes(navigate, element, implicitPathVariables) {
29384
- var _f, _j;
29388
+ var _j, _k;
29385
29389
  var _a;
29386
29390
  let routeId = element.getAttribute('data-framer-page-link-target');
29387
29391
  let elementId;
29388
29392
  let pathVariables;
29389
29393
  if (routeId) {
29390
- elementId = (_f = element.getAttribute('data-framer-page-link-element')) !== null && _f !== void 0 ? _f : void 0;
29394
+ elementId = (_j = element.getAttribute('data-framer-page-link-element')) !== null && _j !== void 0 ? _j : void 0;
29391
29395
  const pathVariablesRaw = element.getAttribute('data-framer-page-link-path-variables');
29392
29396
  if (pathVariablesRaw) {
29393
29397
  pathVariables = Object.fromEntries(new URLSearchParams(pathVariablesRaw).entries());
@@ -29401,7 +29405,7 @@ function navigateFromAttributes(navigate, element, implicitPathVariables) {
29401
29405
  if (!link || !link.target)
29402
29406
  return false;
29403
29407
  routeId = link.target;
29404
- elementId = (_j = link.element) !== null && _j !== void 0 ? _j : void 0;
29408
+ elementId = (_k = link.element) !== null && _k !== void 0 ? _k : void 0;
29405
29409
  pathVariables = (_a = link.collectionItem) == null ? void 0 : _a.pathVariables;
29406
29410
  }
29407
29411
  const smoothScroll = elementId ? element.dataset.framerSmoothScroll !== void 0 : void 0;
@@ -29461,7 +29465,7 @@ function getObserveRouteForPreloadingFn() {
29461
29465
  });
29462
29466
  }
29463
29467
  function onPreloadIntersectionChange(entries) {
29464
- var _f;
29468
+ var _j;
29465
29469
  var _a2;
29466
29470
  for (const entry of entries) {
29467
29471
  const target = entry.target;
@@ -29472,7 +29476,7 @@ function getObserveRouteForPreloadingFn() {
29472
29476
  continue;
29473
29477
  }
29474
29478
  const nodes = routeToNodesInViewport.get(route);
29475
- const amountOfNodesInViewport = (_f = ((_a2 = routeToNodesInViewport.get(route)) == null ? void 0 : _a2.size)) !== null && _f !== void 0 ? _f : 0;
29479
+ const amountOfNodesInViewport = (_j = ((_a2 = routeToNodesInViewport.get(route)) == null ? void 0 : _a2.size)) !== null && _j !== void 0 ? _j : 0;
29476
29480
  if (entry.isIntersecting) {
29477
29481
  if (activePreloadsAmount >= maxPreloadAmount)
29478
29482
  continue;
@@ -29507,7 +29511,7 @@ var observeRouteForPreloading =
29507
29511
  var noLocale = {};
29508
29512
  var resolveSlugCache = /* @__PURE__ */ new WeakMap();
29509
29513
  function resolveSlug(unresolvedSlug, utilsByCollectionId, activeLocale) {
29510
- var _f, _j;
29514
+ var _j, _k;
29511
29515
  var _a, _b;
29512
29516
  const cache2 = (_b = (_a = resolveSlugCache == null ? void 0 : resolveSlugCache.get(activeLocale !== null && activeLocale !== void 0 ? activeLocale : noLocale)) == null
29513
29517
  ? void 0
@@ -29516,9 +29520,9 @@ function resolveSlug(unresolvedSlug, utilsByCollectionId, activeLocale) {
29516
29520
  : _b.get(unresolvedSlug.collectionItemId);
29517
29521
  if (cache2)
29518
29522
  return cache2;
29519
- const collectionCache = (_f = resolveSlugCache.get(activeLocale !== null && activeLocale !== void 0 ? activeLocale : noLocale)) !== null && _f !== void 0 ? _f : new Map();
29523
+ const collectionCache = (_j = resolveSlugCache.get(activeLocale !== null && activeLocale !== void 0 ? activeLocale : noLocale)) !== null && _j !== void 0 ? _j : new Map();
29520
29524
  resolveSlugCache.set(activeLocale !== null && activeLocale !== void 0 ? activeLocale : noLocale, collectionCache);
29521
- const collectionItemCache = (_j = collectionCache.get(unresolvedSlug.collectionId)) !== null && _j !== void 0 ? _j : new Map();
29525
+ const collectionItemCache = (_k = collectionCache.get(unresolvedSlug.collectionId)) !== null && _k !== void 0 ? _k : new Map();
29522
29526
  collectionCache.set(unresolvedSlug.collectionId, collectionItemCache);
29523
29527
  const lazyValue = new LazyValue(() => __awaiter(this, void 0, void 0, function* () {
29524
29528
  try {
@@ -29615,7 +29619,7 @@ function isValidURL(href, isInternal) {
29615
29619
  const url = new URL(href);
29616
29620
  return Boolean(url.protocol);
29617
29621
  }
29618
- catch (_f) { }
29622
+ catch (_j) { }
29619
29623
  return isInternal;
29620
29624
  }
29621
29625
  var AnchorLinkTarget = /* @__PURE__ */ ((AnchorLinkTarget2) => {
@@ -29744,7 +29748,7 @@ function propsForRoutePath(href, openInNewTab, router, currentRoute, implicitPat
29744
29748
  };
29745
29749
  }
29746
29750
  }
29747
- catch (_f) { }
29751
+ catch (_j) { }
29748
29752
  return propsForLink(href, openInNewTab);
29749
29753
  }
29750
29754
  function getRouteFromPageLink(pageLink, router, currentRoute) {
@@ -29766,8 +29770,8 @@ function getRouteFromPageLink(pageLink, router, currentRoute) {
29766
29770
  const { webPageId, } = pageLink;
29767
29771
  return (_a = router.getRoute) == null ? void 0 : _a.call(router, webPageId);
29768
29772
  }
29769
- var Link = /* @__PURE__ */ forwardRef((_f, forwardedRef) => {
29770
- var { children, href, openInNewTab, smoothScroll } = _f, restProps = __rest(_f, ["children", "href", "openInNewTab", "smoothScroll"]);
29773
+ var Link = /* @__PURE__ */ forwardRef((_j, forwardedRef) => {
29774
+ var { children, href, openInNewTab, smoothScroll } = _j, restProps = __rest(_j, ["children", "href", "openInNewTab", "smoothScroll"]);
29771
29775
  const router = useRouter();
29772
29776
  const currentRoute = useCurrentRoute();
29773
29777
  const implicitPathVariables = useImplicitPathVariables();
@@ -29872,7 +29876,226 @@ function resolvePageScope(pageLink, router) {
29872
29876
  preserveQueryParams: false,
29873
29877
  });
29874
29878
  }
29875
- function PageRoot({ RootComponent, isWebsite, routeId, pathVariables, routes, collectionUtils, notFoundPage, isReducedMotion = false, includeDataObserver = false, localeId, locales, preserveQueryParams, enableImproveInpDuringHydration, addHydrationMarkers = false, }) {
29879
+ var salt = 'framer';
29880
+ var difficulty = 3;
29881
+ var tokenLength = 30;
29882
+ var maxTime = 3e3;
29883
+ function calculateProofOfWork() {
29884
+ return __awaiter(this, void 0, void 0, function* () {
29885
+ const target = '0'.repeat(difficulty);
29886
+ const startTime = Date.now();
29887
+ let processing = true;
29888
+ while (processing) {
29889
+ const timestamp = Date.now();
29890
+ if (timestamp - startTime > maxTime) {
29891
+ processing = false;
29892
+ return;
29893
+ }
29894
+ const nonce = randomCharacters(tokenLength);
29895
+ const secret = `${timestamp}:${nonce}`;
29896
+ const hash2 = yield sha256(salt + secret);
29897
+ if (hash2.startsWith(target)) {
29898
+ return {
29899
+ secret,
29900
+ hash: hash2,
29901
+ };
29902
+ }
29903
+ }
29904
+ return;
29905
+ });
29906
+ }
29907
+ function sha256(text) {
29908
+ return __awaiter(this, void 0, void 0, function* () {
29909
+ const buffer = new TextEncoder().encode(text);
29910
+ const hashBuffer = yield crypto.subtle.digest('SHA-256', buffer);
29911
+ return Array.from(new Uint8Array(hashBuffer)).map((b) => b.toString(16).padStart(2, '0')).join('');
29912
+ });
29913
+ }
29914
+ function randomCharacters(count) {
29915
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
29916
+ let result = '';
29917
+ const charactersLength = characters.length;
29918
+ for (let i = 0; i < count; i++) {
29919
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
29920
+ }
29921
+ return result;
29922
+ }
29923
+ function getEncodedFormFieldsHeader(data2) {
29924
+ return Array.from(data2.keys()).map(encodeURIComponent).join(',');
29925
+ }
29926
+ function formReducer({ state, }, { type, }) {
29927
+ switch (type) {
29928
+ case 'complete':
29929
+ case 'incomplete':
29930
+ if (state === 'error') {
29931
+ return {
29932
+ state: 'error',
29933
+ };
29934
+ }
29935
+ return {
29936
+ state: type,
29937
+ };
29938
+ case 'submit':
29939
+ return {
29940
+ state: 'pending',
29941
+ };
29942
+ case 'success':
29943
+ return {
29944
+ state: 'success',
29945
+ };
29946
+ case 'error':
29947
+ return {
29948
+ state: 'error',
29949
+ };
29950
+ default:
29951
+ assertNever(type);
29952
+ }
29953
+ }
29954
+ function stateCanSubmitForm(state) {
29955
+ return state.state === 'incomplete' || state.state === 'complete';
29956
+ }
29957
+ function preventDefault(e) {
29958
+ e.preventDefault();
29959
+ }
29960
+ var FormContext = React4.createContext(void 0);
29961
+ var FormContainer = /* @__PURE__ */ React4.forwardRef((_j, ref) => {
29962
+ var { action, children, redirectUrl, onSuccess, onError, onLoading } = _j, props = __rest(_j, ["action", "children", "redirectUrl", "onSuccess", "onError", "onLoading"]);
29963
+ const router = useRouter();
29964
+ const [state, dispatch,] = React4.useReducer(formReducer, {
29965
+ state: 'incomplete',
29966
+ });
29967
+ const { activeLocale, } = useLocaleInfo();
29968
+ const projectHash = useContext3(FormContext);
29969
+ const callbacks = React4.useRef({
29970
+ onSuccess,
29971
+ onError,
29972
+ onLoading,
29973
+ });
29974
+ callbacks.current = {
29975
+ onSuccess,
29976
+ onError,
29977
+ onLoading,
29978
+ };
29979
+ function redirectTo(link) {
29980
+ return __awaiter(this, void 0, void 0, function* () {
29981
+ var _a, _b;
29982
+ if (isLinkToWebPage(link)) {
29983
+ if (!router)
29984
+ return;
29985
+ const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, link.webPageId);
29986
+ if (!route)
29987
+ return;
29988
+ const { unresolvedHashSlugs, unresolvedPathSlugs, } = link;
29989
+ const resolvedSlugs = yield resolveSlugs(unresolvedPathSlugs, unresolvedHashSlugs, router.collectionUtils, activeLocale);
29990
+ const combinedPathVariables = Object.assign({}, router.currentPathVariables, link.pathVariables, resolvedSlugs == null ? void 0 : resolvedSlugs.path);
29991
+ const combinedHashVariables = Object.assign({}, router.currentPathVariables, link.pathVariables, link.hashVariables, resolvedSlugs == null ? void 0 : resolvedSlugs.hash);
29992
+ const element = getHashForRoute(link.hash, route, combinedHashVariables);
29993
+ (_b = router.navigate) == null ? void 0 : _b.call(router, link.webPageId, element, combinedPathVariables);
29994
+ return;
29995
+ }
29996
+ if (!safeWindow)
29997
+ return;
29998
+ safeWindow.open(link, '_blank');
29999
+ });
30000
+ }
30001
+ const handleSubmit = (event) => __awaiter(void 0, void 0, void 0, function* () {
30002
+ var _a, _b, _c, _d, _e, _f;
30003
+ event.preventDefault();
30004
+ if (!action || !projectHash)
30005
+ return;
30006
+ const data2 = new FormData(event.currentTarget);
30007
+ for (const [key7, value,] of data2) {
30008
+ if (value instanceof File)
30009
+ data2.delete(key7);
30010
+ }
30011
+ try {
30012
+ dispatch({
30013
+ type: 'submit',
30014
+ });
30015
+ (_b = (_a = callbacks.current).onLoading) == null ? void 0 : _b.call(_a);
30016
+ yield submitForm(action, data2, projectHash);
30017
+ dispatch({
30018
+ type: 'success',
30019
+ });
30020
+ (_d = (_c = callbacks.current).onSuccess) == null ? void 0 : _d.call(_c);
30021
+ if (redirectUrl) {
30022
+ yield redirectTo(redirectUrl);
30023
+ }
30024
+ }
30025
+ catch (error) {
30026
+ dispatch({
30027
+ type: 'error',
30028
+ });
30029
+ (_f = (_e = callbacks.current).onError) == null ? void 0 : _f.call(_e);
30030
+ console.error(error);
30031
+ }
30032
+ });
30033
+ const handleKeyDown = (event) => {
30034
+ const { target: input, currentTarget: form, key: key7, } = event;
30035
+ const isTextArea = input instanceof HTMLTextAreaElement;
30036
+ if (isTextArea)
30037
+ return;
30038
+ if (key7 === 'Enter' && form.checkValidity()) {
30039
+ event.preventDefault();
30040
+ void handleSubmit(event);
30041
+ }
30042
+ };
30043
+ const checkValidity = (e) => {
30044
+ dispatch({
30045
+ type: anyEmptyRequiredFields(e.currentTarget) ? 'incomplete' : 'complete',
30046
+ });
30047
+ };
30048
+ return /* @__PURE__ */ jsx(motion.form, Object.assign(Object.assign({}, props), { onSubmit: stateCanSubmitForm(state) ? handleSubmit : preventDefault, onKeyDown: handleKeyDown, onChange: checkValidity, ref, children: children(state) }));
30049
+ });
30050
+ function anyEmptyRequiredFields(element) {
30051
+ if (element.children.length === 0)
30052
+ return false;
30053
+ for (const child of element.children) {
30054
+ if (child instanceof HTMLInputElement || child instanceof HTMLTextAreaElement || child instanceof HTMLSelectElement) {
30055
+ if (child.required && child.value === '')
30056
+ return true;
30057
+ }
30058
+ else {
30059
+ const result = anyEmptyRequiredFields(child);
30060
+ if (result)
30061
+ return true;
30062
+ }
30063
+ }
30064
+ return false;
30065
+ }
30066
+ function submitForm(action, data2, projectHash) {
30067
+ return __awaiter(this, void 0, void 0, function* () {
30068
+ const proofOfWork = yield calculateProofOfWork();
30069
+ if (!proofOfWork) {
30070
+ throw new Error('Failed to calculate proof of work');
30071
+ }
30072
+ const response = yield fetch(action, {
30073
+ body: data2,
30074
+ method: 'POST',
30075
+ headers: {
30076
+ 'Framer-Site-Id': projectHash,
30077
+ 'Framer-POW': proofOfWork.secret,
30078
+ 'Framer-Form-Fields': getEncodedFormFieldsHeader(data2),
30079
+ },
30080
+ });
30081
+ if (response.ok) {
30082
+ return response;
30083
+ }
30084
+ else {
30085
+ const body = yield response.json();
30086
+ const error = 'Failed to submit form';
30087
+ if (responseHasError(body)) {
30088
+ throw new Error(`${error} - ${body.error.message}`);
30089
+ }
30090
+ throw new Error(error);
30091
+ }
30092
+ });
30093
+ }
30094
+ function responseHasError(response) {
30095
+ return typeof response === 'object' && response !== null && 'error' in response && isObject2(response.error) &&
30096
+ 'message' in response.error && typeof response.error.message === 'string';
30097
+ }
30098
+ function PageRoot({ RootComponent, isWebsite, routeId, framerSiteId, pathVariables, routes, collectionUtils, notFoundPage, isReducedMotion = false, includeDataObserver = false, localeId, locales, preserveQueryParams, enableImproveInpDuringHydration, addHydrationMarkers = false, }) {
29876
30099
  React4.useEffect(() => {
29877
30100
  if (isWebsite)
29878
30101
  return;
@@ -29882,21 +30105,24 @@ function PageRoot({ RootComponent, isWebsite, routeId, pathVariables, routes, co
29882
30105
  return /* @__PURE__ */ jsx(MotionConfig, {
29883
30106
  reducedMotion: isReducedMotion ? 'user' : 'never',
29884
30107
  children: /* @__PURE__ */ jsx(CustomCursorHost, {
29885
- children: /* @__PURE__ */ jsx(Router, {
29886
- initialRoute: routeId,
29887
- initialPathVariables: pathVariables,
29888
- initialLocaleId: localeId,
29889
- routes,
29890
- collectionUtils,
29891
- notFoundPage,
29892
- locales,
29893
- defaultPageStyle: {
29894
- minHeight: '100vh',
29895
- width: 'auto',
29896
- },
29897
- preserveQueryParams,
29898
- enableImproveInpDuringHydration,
29899
- addHydrationMarkers,
30108
+ children: /* @__PURE__ */ jsx(FormContext.Provider, {
30109
+ value: framerSiteId,
30110
+ children: /* @__PURE__ */ jsx(Router, {
30111
+ initialRoute: routeId,
30112
+ initialPathVariables: pathVariables,
30113
+ initialLocaleId: localeId,
30114
+ routes,
30115
+ collectionUtils,
30116
+ notFoundPage,
30117
+ locales,
30118
+ defaultPageStyle: {
30119
+ minHeight: '100vh',
30120
+ width: 'auto',
30121
+ },
30122
+ preserveQueryParams,
30123
+ enableImproveInpDuringHydration,
30124
+ addHydrationMarkers,
30125
+ }),
29900
30126
  }),
29901
30127
  }),
29902
30128
  });
@@ -30007,8 +30233,8 @@ function renderBranchedChildrenFromPropertyOverrides(overrides, children, props,
30007
30233
  ],
30008
30234
  });
30009
30235
  }
30010
- var SSRVariants = /* @__PURE__ */ React4.forwardRef(function SSRVariants2(_f, ref) {
30011
- var { id: _nodeId, children } = _f, props = __rest(_f, ["id", "children"]);
30236
+ var SSRVariants = /* @__PURE__ */ React4.forwardRef(function SSRVariants2(_j, ref) {
30237
+ var { id: _nodeId, children } = _j, props = __rest(_j, ["id", "children"]);
30012
30238
  const cloneWithRefs = useCloneChildrenWithPropsAndRef(ref);
30013
30239
  if (isBrowser2()) {
30014
30240
  return cloneWithRefs(children, props);
@@ -30047,8 +30273,8 @@ function propsForBreakpoint(variant, props, overrides) {
30047
30273
  var noopSubscribe = () => () => { };
30048
30274
  var returnTrue = () => true;
30049
30275
  var returnFalse = () => false;
30050
- var PropertyOverrides = /* @__PURE__ */ React4.forwardRef(function PropertyOverrides2(_f, ref) {
30051
- var { breakpoint, overrides, children } = _f, props = __rest(_f, ["breakpoint", "overrides", "children"]);
30276
+ var PropertyOverrides = /* @__PURE__ */ React4.forwardRef(function PropertyOverrides2(_j, ref) {
30277
+ var { breakpoint, overrides, children } = _j, props = __rest(_j, ["breakpoint", "overrides", "children"]);
30052
30278
  const cloneWithRefs = useCloneChildrenWithPropsAndRef(ref);
30053
30279
  const parentVariants = React4.useContext(SSRParentVariantsContext);
30054
30280
  const isHydrationOrSSR = React4.useSyncExternalStore(noopSubscribe, returnFalse, returnTrue);
@@ -30086,8 +30312,8 @@ var PropertyOverrides = /* @__PURE__ */ React4.forwardRef(function PropertyOverr
30086
30312
  assertNever(action);
30087
30313
  }
30088
30314
  });
30089
- var ResolveLinks = /* @__PURE__ */ React2.forwardRef(function ResolveLinksInner(_f, ref) {
30090
- var { links, children } = _f, rest = __rest(_f, ["links", "children"]);
30315
+ var ResolveLinks = /* @__PURE__ */ React2.forwardRef(function ResolveLinksInner(_j, ref) {
30316
+ var { links, children } = _j, rest = __rest(_j, ["links", "children"]);
30091
30317
  const router = useRouter();
30092
30318
  const { activeLocale, } = useLocaleInfo();
30093
30319
  const cloneWithPropsAndRef = useCloneChildrenWithPropsAndRef(ref);
@@ -30176,7 +30402,7 @@ function getCollection(collection, locale) {
30176
30402
  return collection;
30177
30403
  });
30178
30404
  }
30179
- var CompatibilityDatabaseCollection = class {
30405
+ var CompatibilityDatabaseCollection = /*#__PURE__*/ class {
30180
30406
  constructor(collection, locale) {
30181
30407
  this.collection = collection;
30182
30408
  this.locale = locale;
@@ -30441,14 +30667,14 @@ function compare(left, right, collation) {
30441
30667
  }
30442
30668
  }
30443
30669
  var INDEX_IDENTIFIER = 'index';
30444
- var ScalarExpression = class {
30670
+ var ScalarExpression = /*#__PURE__*/ class {
30445
30671
  static from(expression, schema) {
30446
30672
  return convertExpression(expression, schema, void 0);
30447
30673
  }
30448
30674
  };
30449
- var ScalarIdentifier = class extends ScalarExpression {
30675
+ var ScalarIdentifier = /*#__PURE__*/ class extends ScalarExpression {
30450
30676
  constructor(schema, name) {
30451
- var _f;
30677
+ var _j;
30452
30678
  super();
30453
30679
  this.schema = schema;
30454
30680
  this.name = name;
@@ -30460,7 +30686,7 @@ var ScalarIdentifier = class extends ScalarExpression {
30460
30686
  };
30461
30687
  }
30462
30688
  else {
30463
- this.definition = (_f = schema[name]) !== null && _f !== void 0 ? _f : null;
30689
+ this.definition = (_j = schema[name]) !== null && _j !== void 0 ? _j : null;
30464
30690
  }
30465
30691
  }
30466
30692
  stringify() {
@@ -30470,18 +30696,18 @@ var ScalarIdentifier = class extends ScalarExpression {
30470
30696
  return other instanceof ScalarIdentifier && isEqual(this.definition, other.definition) && isEqual(other.name, this.name);
30471
30697
  }
30472
30698
  evaluate(item) {
30473
- var _f;
30699
+ var _j;
30474
30700
  const name = this.name;
30475
30701
  if (isUndefined(item) || name === INDEX_IDENTIFIER) {
30476
30702
  throw new Error(`Can't evaluate identifier: ${name}`);
30477
30703
  }
30478
- return (_f = item.data[name]) !== null && _f !== void 0 ? _f : null;
30704
+ return (_j = item.data[name]) !== null && _j !== void 0 ? _j : null;
30479
30705
  }
30480
30706
  canEvaluate() {
30481
30707
  return false;
30482
30708
  }
30483
30709
  };
30484
- var ScalarLiteralValue = class extends ScalarExpression {
30710
+ var ScalarLiteralValue = /*#__PURE__*/ class extends ScalarExpression {
30485
30711
  constructor(definition, value) {
30486
30712
  super();
30487
30713
  this.definition = definition;
@@ -30548,7 +30774,7 @@ var ScalarLiteralValue = class extends ScalarExpression {
30548
30774
  return true;
30549
30775
  }
30550
30776
  };
30551
- var ScalarFunctionCall = class extends ScalarExpression {
30777
+ var ScalarFunctionCall = /*#__PURE__*/ class extends ScalarExpression {
30552
30778
  constructor(argumentExpressions) {
30553
30779
  super();
30554
30780
  this.argumentExpressions = argumentExpressions;
@@ -30574,7 +30800,7 @@ var ScalarFunctionCall = class extends ScalarExpression {
30574
30800
  });
30575
30801
  }
30576
30802
  };
30577
- var ScalarFunctionCallContains = class extends ScalarFunctionCall {
30803
+ var ScalarFunctionCallContains = /*#__PURE__*/ class extends ScalarFunctionCall {
30578
30804
  constructor() {
30579
30805
  super(...arguments);
30580
30806
  __publicField(this, 'definition', ScalarFunctionCallContains.getDefinition());
@@ -30612,7 +30838,7 @@ var ScalarFunctionCallContains = class extends ScalarFunctionCall {
30612
30838
  };
30613
30839
  }
30614
30840
  };
30615
- var ScalarFunctionCallStartsWith = class extends ScalarFunctionCall {
30841
+ var ScalarFunctionCallStartsWith = /*#__PURE__*/ class extends ScalarFunctionCall {
30616
30842
  constructor() {
30617
30843
  super(...arguments);
30618
30844
  __publicField(this, 'definition', ScalarFunctionCallStartsWith.getDefinition());
@@ -30650,7 +30876,7 @@ var ScalarFunctionCallStartsWith = class extends ScalarFunctionCall {
30650
30876
  };
30651
30877
  }
30652
30878
  };
30653
- var ScalarFunctionCallEndsWith = class extends ScalarFunctionCall {
30879
+ var ScalarFunctionCallEndsWith = /*#__PURE__*/ class extends ScalarFunctionCall {
30654
30880
  constructor() {
30655
30881
  super(...arguments);
30656
30882
  __publicField(this, 'definition', ScalarFunctionCallEndsWith.getDefinition());
@@ -30688,7 +30914,7 @@ var ScalarFunctionCallEndsWith = class extends ScalarFunctionCall {
30688
30914
  };
30689
30915
  }
30690
30916
  };
30691
- var ScalarCase = class extends ScalarExpression {
30917
+ var ScalarCase = /*#__PURE__*/ class extends ScalarExpression {
30692
30918
  constructor(valueExpression, conditions, elseExpression) {
30693
30919
  super();
30694
30920
  this.valueExpression = valueExpression;
@@ -30709,7 +30935,7 @@ var ScalarCase = class extends ScalarExpression {
30709
30935
  this.definition = ScalarCase.getDefinition(definitions);
30710
30936
  }
30711
30937
  static getDefinition(definitions) {
30712
- var _f;
30938
+ var _j;
30713
30939
  let result = null;
30714
30940
  let isNullable = false;
30715
30941
  for (const definition of definitions) {
@@ -30717,7 +30943,7 @@ var ScalarCase = class extends ScalarExpression {
30717
30943
  if (result && definition && result.type !== definition.type) {
30718
30944
  throw new Error('Incompatible types in CASE expression');
30719
30945
  }
30720
- isNullable || (isNullable = (_f = (definition == null ? void 0 : definition.isNullable)) !== null && _f !== void 0 ? _f : true);
30946
+ isNullable || (isNullable = (_j = (definition == null ? void 0 : definition.isNullable)) !== null && _j !== void 0 ? _j : true);
30721
30947
  }
30722
30948
  return result
30723
30949
  ? {
@@ -30745,16 +30971,16 @@ var ScalarCase = class extends ScalarExpression {
30745
30971
  isEqual(this.conditions, other.conditions) && isEqual(this.elseExpression, other.elseExpression);
30746
30972
  }
30747
30973
  evaluate(item) {
30748
- var _f, _j;
30974
+ var _j, _k;
30749
30975
  var _a, _b;
30750
- const value = (_f = ((_a = this.valueExpression) == null ? void 0 : _a.evaluate(item))) !== null && _f !== void 0 ? _f : null;
30976
+ const value = (_j = ((_a = this.valueExpression) == null ? void 0 : _a.evaluate(item))) !== null && _j !== void 0 ? _j : null;
30751
30977
  for (const { whenExpression, thenExpression, } of this.conditions) {
30752
30978
  const when = whenExpression.evaluate(item);
30753
30979
  const isMatching = this.valueExpression ? DatabaseValue.equal(when, value, this.collation) : convertToBoolean(when);
30754
30980
  if (isMatching)
30755
30981
  return thenExpression.evaluate(item);
30756
30982
  }
30757
- return (_j = ((_b = this.elseExpression) == null ? void 0 : _b.evaluate(item))) !== null && _j !== void 0 ? _j : null;
30983
+ return (_k = ((_b = this.elseExpression) == null ? void 0 : _b.evaluate(item))) !== null && _k !== void 0 ? _k : null;
30758
30984
  }
30759
30985
  canEvaluate() {
30760
30986
  const expressions = [];
@@ -30773,13 +30999,13 @@ var ScalarCase = class extends ScalarExpression {
30773
30999
  });
30774
31000
  }
30775
31001
  };
30776
- var ScalarCaseCondition = class {
31002
+ var ScalarCaseCondition = /*#__PURE__*/ class {
30777
31003
  constructor(whenExpression, thenExpression) {
30778
31004
  this.whenExpression = whenExpression;
30779
31005
  this.thenExpression = thenExpression;
30780
31006
  }
30781
31007
  };
30782
- var ScalarUnaryOperation = class extends ScalarExpression {
31008
+ var ScalarUnaryOperation = /*#__PURE__*/ class extends ScalarExpression {
30783
31009
  constructor(valueExpression) {
30784
31010
  super();
30785
31011
  this.valueExpression = valueExpression;
@@ -30792,7 +31018,7 @@ var ScalarUnaryOperation = class extends ScalarExpression {
30792
31018
  return this.valueExpression.canEvaluate();
30793
31019
  }
30794
31020
  };
30795
- var ScalarUnaryOperationNot = class extends ScalarUnaryOperation {
31021
+ var ScalarUnaryOperationNot = /*#__PURE__*/ class extends ScalarUnaryOperation {
30796
31022
  constructor() {
30797
31023
  super(...arguments);
30798
31024
  __publicField(this, 'definition', ScalarUnaryOperationNot.getDefinition());
@@ -30814,7 +31040,7 @@ var ScalarUnaryOperationNot = class extends ScalarUnaryOperation {
30814
31040
  };
30815
31041
  }
30816
31042
  };
30817
- var ScalarLogicalOperation = class extends ScalarExpression {
31043
+ var ScalarLogicalOperation = /*#__PURE__*/ class extends ScalarExpression {
30818
31044
  constructor(operandExpressions) {
30819
31045
  super();
30820
31046
  this.operandExpressions = operandExpressions;
@@ -30839,7 +31065,7 @@ var ScalarLogicalOperation = class extends ScalarExpression {
30839
31065
  });
30840
31066
  }
30841
31067
  };
30842
- var ScalarLogicalOperationAnd = class extends ScalarLogicalOperation {
31068
+ var ScalarLogicalOperationAnd = /*#__PURE__*/ class extends ScalarLogicalOperation {
30843
31069
  constructor() {
30844
31070
  super(...arguments);
30845
31071
  __publicField(this, 'operator', 'AND');
@@ -30855,7 +31081,7 @@ var ScalarLogicalOperationAnd = class extends ScalarLogicalOperation {
30855
31081
  };
30856
31082
  }
30857
31083
  };
30858
- var ScalarLogicalOperationOr = class extends ScalarLogicalOperation {
31084
+ var ScalarLogicalOperationOr = /*#__PURE__*/ class extends ScalarLogicalOperation {
30859
31085
  constructor() {
30860
31086
  super(...arguments);
30861
31087
  __publicField(this, 'operator', 'OR');
@@ -30871,7 +31097,7 @@ var ScalarLogicalOperationOr = class extends ScalarLogicalOperation {
30871
31097
  };
30872
31098
  }
30873
31099
  };
30874
- var ScalarComparison = class extends ScalarExpression {
31100
+ var ScalarComparison = /*#__PURE__*/ class extends ScalarExpression {
30875
31101
  constructor(leftExpression, rightExpression) {
30876
31102
  super();
30877
31103
  this.leftExpression = leftExpression;
@@ -30899,7 +31125,7 @@ var ScalarComparison = class extends ScalarExpression {
30899
31125
  return this.leftExpression.canEvaluate() && this.rightExpression.canEvaluate();
30900
31126
  }
30901
31127
  };
30902
- var ScalarComparisonEquals = class extends ScalarComparison {
31128
+ var ScalarComparisonEquals = /*#__PURE__*/ class extends ScalarComparison {
30903
31129
  constructor() {
30904
31130
  super(...arguments);
30905
31131
  __publicField(this, 'operator', '=');
@@ -30913,7 +31139,7 @@ var ScalarComparisonEquals = class extends ScalarComparison {
30913
31139
  };
30914
31140
  }
30915
31141
  };
30916
- var ScalarComparisonNotEquals = class extends ScalarComparison {
31142
+ var ScalarComparisonNotEquals = /*#__PURE__*/ class extends ScalarComparison {
30917
31143
  constructor() {
30918
31144
  super(...arguments);
30919
31145
  __publicField(this, 'operator', '!=');
@@ -30927,7 +31153,7 @@ var ScalarComparisonNotEquals = class extends ScalarComparison {
30927
31153
  };
30928
31154
  }
30929
31155
  };
30930
- var ScalarComparisonLessThan = class extends ScalarComparison {
31156
+ var ScalarComparisonLessThan = /*#__PURE__*/ class extends ScalarComparison {
30931
31157
  constructor() {
30932
31158
  super(...arguments);
30933
31159
  __publicField(this, 'operator', '<');
@@ -30941,7 +31167,7 @@ var ScalarComparisonLessThan = class extends ScalarComparison {
30941
31167
  };
30942
31168
  }
30943
31169
  };
30944
- var ScalarComparisonLessThanOrEqual = class extends ScalarComparison {
31170
+ var ScalarComparisonLessThanOrEqual = /*#__PURE__*/ class extends ScalarComparison {
30945
31171
  constructor() {
30946
31172
  super(...arguments);
30947
31173
  __publicField(this, 'operator', '<=');
@@ -30955,7 +31181,7 @@ var ScalarComparisonLessThanOrEqual = class extends ScalarComparison {
30955
31181
  };
30956
31182
  }
30957
31183
  };
30958
- var ScalarComparisonGreaterThan = class extends ScalarComparison {
31184
+ var ScalarComparisonGreaterThan = /*#__PURE__*/ class extends ScalarComparison {
30959
31185
  constructor() {
30960
31186
  super(...arguments);
30961
31187
  __publicField(this, 'operator', '>');
@@ -30969,7 +31195,7 @@ var ScalarComparisonGreaterThan = class extends ScalarComparison {
30969
31195
  };
30970
31196
  }
30971
31197
  };
30972
- var ScalarComparisonGreaterThanOrEqual = class extends ScalarComparison {
31198
+ var ScalarComparisonGreaterThanOrEqual = /*#__PURE__*/ class extends ScalarComparison {
30973
31199
  constructor() {
30974
31200
  super(...arguments);
30975
31201
  __publicField(this, 'operator', '>=');
@@ -30983,7 +31209,7 @@ var ScalarComparisonGreaterThanOrEqual = class extends ScalarComparison {
30983
31209
  };
30984
31210
  }
30985
31211
  };
30986
- var ScalarTypeCast = class extends ScalarExpression {
31212
+ var ScalarTypeCast = /*#__PURE__*/ class extends ScalarExpression {
30987
31213
  constructor(valueExpression) {
30988
31214
  super();
30989
31215
  this.valueExpression = valueExpression;
@@ -30999,7 +31225,7 @@ var ScalarTypeCast = class extends ScalarExpression {
30999
31225
  return this.valueExpression.canEvaluate();
31000
31226
  }
31001
31227
  };
31002
- var ScalarTypeCastBoolean = class extends ScalarTypeCast {
31228
+ var ScalarTypeCastBoolean = /*#__PURE__*/ class extends ScalarTypeCast {
31003
31229
  constructor() {
31004
31230
  super(...arguments);
31005
31231
  __publicField(this, 'dataType', 'BOOLEAN');
@@ -31029,7 +31255,7 @@ function convertToBoolean(value) {
31029
31255
  }
31030
31256
  return false;
31031
31257
  }
31032
- var ScalarTypeCastDate = class extends ScalarTypeCast {
31258
+ var ScalarTypeCastDate = /*#__PURE__*/ class extends ScalarTypeCast {
31033
31259
  constructor() {
31034
31260
  super(...arguments);
31035
31261
  __publicField(this, 'dataType', 'DATE');
@@ -31067,7 +31293,7 @@ function convertToDate(value) {
31067
31293
  }
31068
31294
  return null;
31069
31295
  }
31070
- var ScalarTypeCastNumber = class extends ScalarTypeCast {
31296
+ var ScalarTypeCastNumber = /*#__PURE__*/ class extends ScalarTypeCast {
31071
31297
  constructor() {
31072
31298
  super(...arguments);
31073
31299
  __publicField(this, 'dataType', 'NUMBER');
@@ -31104,7 +31330,7 @@ function convertToNumber(value) {
31104
31330
  }
31105
31331
  return null;
31106
31332
  }
31107
- var ScalarTypeCastString = class extends ScalarTypeCast {
31333
+ var ScalarTypeCastString = /*#__PURE__*/ class extends ScalarTypeCast {
31108
31334
  constructor() {
31109
31335
  super(...arguments);
31110
31336
  __publicField(this, 'dataType', 'STRING');
@@ -31479,7 +31705,7 @@ function getFunctionCallType(expression) {
31479
31705
  }
31480
31706
  }
31481
31707
  function getCaseType(expression, schema) {
31482
- var _f;
31708
+ var _j;
31483
31709
  const definitions = [];
31484
31710
  for (const condition of expression.conditions) {
31485
31711
  const type = getExpressionType(condition.then, schema);
@@ -31491,7 +31717,7 @@ function getCaseType(expression, schema) {
31491
31717
  if (!isUndefined(type))
31492
31718
  definitions.push(type);
31493
31719
  }
31494
- return (_f = ScalarCase.getDefinition(definitions)) !== null && _f !== void 0 ? _f : void 0;
31720
+ return (_j = ScalarCase.getDefinition(definitions)) !== null && _j !== void 0 ? _j : void 0;
31495
31721
  }
31496
31722
  function getUnaryOperationType(expression) {
31497
31723
  switch (expression.operator) {
@@ -31537,7 +31763,7 @@ function stringifyExecutionTime(self2, total) {
31537
31763
  function stringifyItems(items) {
31538
31764
  return `(items: ${items})`;
31539
31765
  }
31540
- var QueryPlan = class {
31766
+ var QueryPlan = /*#__PURE__*/ class {
31541
31767
  constructor() {
31542
31768
  __publicField(this, 'executionTime', 0);
31543
31769
  __publicField(this, 'itemCount', 0);
@@ -31552,7 +31778,7 @@ var QueryPlan = class {
31552
31778
  });
31553
31779
  }
31554
31780
  };
31555
- var ScanCollectionPlan = class extends QueryPlan {
31781
+ var ScanCollectionPlan = /*#__PURE__*/ class extends QueryPlan {
31556
31782
  constructor(collection) {
31557
31783
  super();
31558
31784
  this.collection = collection;
@@ -31568,7 +31794,7 @@ var ScanCollectionPlan = class extends QueryPlan {
31568
31794
  });
31569
31795
  }
31570
31796
  };
31571
- var LookupIndexPlan = class extends QueryPlan {
31797
+ var LookupIndexPlan = /*#__PURE__*/ class extends QueryPlan {
31572
31798
  constructor(index, query) {
31573
31799
  super();
31574
31800
  this.index = index;
@@ -31612,13 +31838,13 @@ var LookupIndexPlan = class extends QueryPlan {
31612
31838
  });
31613
31839
  }
31614
31840
  };
31615
- var UnionPlan = class extends QueryPlan {
31841
+ var UnionPlan = /*#__PURE__*/ class extends QueryPlan {
31616
31842
  constructor(childPlans) {
31617
31843
  super();
31618
31844
  this.childPlans = childPlans;
31619
31845
  }
31620
31846
  inspect() {
31621
- const childPlansTime = Math.max(...this.childPlans.map((childPlan) => { var _f; return (_f = childPlan.executionTime) !== null && _f !== void 0 ? _f : 0; }));
31847
+ const childPlansTime = Math.max(...this.childPlans.map((childPlan) => { var _j; return (_j = childPlan.executionTime) !== null && _j !== void 0 ? _j : 0; }));
31622
31848
  return {
31623
31849
  label: `UnionPlan ${stringifyExecutionTime(this.executionTime - childPlansTime, this.executionTime)} ${stringifyItems(this.itemCount)}`,
31624
31850
  nodes: this.childPlans.map((childPlan) => childPlan.inspect()),
@@ -31626,7 +31852,7 @@ var UnionPlan = class extends QueryPlan {
31626
31852
  }
31627
31853
  _execute() {
31628
31854
  return __awaiter(this, void 0, void 0, function* () {
31629
- var _f;
31855
+ var _j;
31630
31856
  const childItemMaps = yield Promise.all(this.childPlans.map((childPlan) => __awaiter(this, void 0, void 0, function* () {
31631
31857
  const items = yield childPlan.execute();
31632
31858
  return new DatabaseItemMap(items);
@@ -31640,17 +31866,17 @@ var UnionPlan = class extends QueryPlan {
31640
31866
  result = itemMap;
31641
31867
  }
31642
31868
  }
31643
- return (_f = (result == null ? void 0 : result.items())) !== null && _f !== void 0 ? _f : [];
31869
+ return (_j = (result == null ? void 0 : result.items())) !== null && _j !== void 0 ? _j : [];
31644
31870
  });
31645
31871
  }
31646
31872
  };
31647
- var IntersectionPlan = class extends QueryPlan {
31873
+ var IntersectionPlan = /*#__PURE__*/ class extends QueryPlan {
31648
31874
  constructor(childPlans) {
31649
31875
  super();
31650
31876
  this.childPlans = childPlans;
31651
31877
  }
31652
31878
  inspect() {
31653
- const childPlansTime = Math.max(...this.childPlans.map((childPlan) => { var _f; return (_f = childPlan.executionTime) !== null && _f !== void 0 ? _f : 0; }));
31879
+ const childPlansTime = Math.max(...this.childPlans.map((childPlan) => { var _j; return (_j = childPlan.executionTime) !== null && _j !== void 0 ? _j : 0; }));
31654
31880
  return {
31655
31881
  label: `IntersectionPlan ${stringifyExecutionTime(this.executionTime - childPlansTime, this.executionTime)} ${stringifyItems(this.itemCount)} ${stringifyItems(this.itemCount)}`,
31656
31882
  nodes: this.childPlans.map((childPlan) => childPlan.inspect()),
@@ -31658,7 +31884,7 @@ var IntersectionPlan = class extends QueryPlan {
31658
31884
  }
31659
31885
  _execute() {
31660
31886
  return __awaiter(this, void 0, void 0, function* () {
31661
- var _f;
31887
+ var _j;
31662
31888
  const childItemMaps = yield Promise.all(this.childPlans.map((childPlan) => __awaiter(this, void 0, void 0, function* () {
31663
31889
  const items = yield childPlan.execute();
31664
31890
  return new DatabaseItemMap(items);
@@ -31672,11 +31898,11 @@ var IntersectionPlan = class extends QueryPlan {
31672
31898
  result = itemMap;
31673
31899
  }
31674
31900
  }
31675
- return (_f = (result == null ? void 0 : result.items())) !== null && _f !== void 0 ? _f : [];
31901
+ return (_j = (result == null ? void 0 : result.items())) !== null && _j !== void 0 ? _j : [];
31676
31902
  });
31677
31903
  }
31678
31904
  };
31679
- var ResolveItemsPlan = class extends QueryPlan {
31905
+ var ResolveItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31680
31906
  constructor(childPlan, collection, richTextResolver, select) {
31681
31907
  super();
31682
31908
  this.childPlan = childPlan;
@@ -31708,7 +31934,7 @@ var ResolveItemsPlan = class extends QueryPlan {
31708
31934
  });
31709
31935
  }
31710
31936
  };
31711
- var FilterItemsPlan = class extends QueryPlan {
31937
+ var FilterItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31712
31938
  constructor(childPlan, filterExpression) {
31713
31939
  super();
31714
31940
  this.childPlan = childPlan;
@@ -31730,7 +31956,7 @@ var FilterItemsPlan = class extends QueryPlan {
31730
31956
  });
31731
31957
  }
31732
31958
  };
31733
- var SortItemsPlan = class extends QueryPlan {
31959
+ var SortItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31734
31960
  constructor(childPlan, orderExpressions, collection) {
31735
31961
  super();
31736
31962
  this.childPlan = childPlan;
@@ -31773,14 +31999,14 @@ var SortItemsPlan = class extends QueryPlan {
31773
31999
  });
31774
32000
  }
31775
32001
  };
31776
- var ScalarOrderExpression = class {
32002
+ var ScalarOrderExpression = /*#__PURE__*/ class {
31777
32003
  constructor(expression, direction, collation) {
31778
32004
  this.expression = expression;
31779
32005
  this.direction = direction;
31780
32006
  this.collation = collation;
31781
32007
  }
31782
32008
  };
31783
- var SliceItemsPlan = class extends QueryPlan {
32009
+ var SliceItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31784
32010
  constructor(childPlan, offsetExpression, limitExpression) {
31785
32011
  super();
31786
32012
  this.childPlan = childPlan;
@@ -31788,10 +32014,10 @@ var SliceItemsPlan = class extends QueryPlan {
31788
32014
  this.limitExpression = limitExpression;
31789
32015
  }
31790
32016
  inspect() {
31791
- var _f, _j;
32017
+ var _j, _k;
31792
32018
  var _a, _b;
31793
32019
  return {
31794
- label: `SliceItemsPlan(LIMIT ${(_f = ((_a = this.limitExpression) == null ? void 0 : _a.stringify())) !== null && _f !== void 0 ? _f : 'Infinity'}, OFFSET ${(_j = ((_b = this.offsetExpression) == null ? void 0 : _b.stringify())) !== null && _j !== void 0 ? _j : '0'}) ${stringifyExecutionTime(this.executionTime - this.childPlan.executionTime, this.executionTime)} ${stringifyItems(this.itemCount)}`,
32020
+ label: `SliceItemsPlan(LIMIT ${(_j = ((_a = this.limitExpression) == null ? void 0 : _a.stringify())) !== null && _j !== void 0 ? _j : 'Infinity'}, OFFSET ${(_k = ((_b = this.offsetExpression) == null ? void 0 : _b.stringify())) !== null && _k !== void 0 ? _k : '0'}) ${stringifyExecutionTime(this.executionTime - this.childPlan.executionTime, this.executionTime)} ${stringifyItems(this.itemCount)}`,
31795
32021
  nodes: [this.childPlan.inspect(),],
31796
32022
  };
31797
32023
  }
@@ -31811,15 +32037,15 @@ var SliceItemsPlan = class extends QueryPlan {
31811
32037
  }
31812
32038
  _execute() {
31813
32039
  return __awaiter(this, void 0, void 0, function* () {
31814
- var _f, _j;
32040
+ var _j, _k;
31815
32041
  const childItems = yield this.childPlan.execute();
31816
- const offset = (_f = this.getOffset()) !== null && _f !== void 0 ? _f : 0;
31817
- const limit = (_j = this.getLimit()) !== null && _j !== void 0 ? _j : Infinity;
32042
+ const offset = (_j = this.getOffset()) !== null && _j !== void 0 ? _j : 0;
32043
+ const limit = (_k = this.getLimit()) !== null && _k !== void 0 ? _k : Infinity;
31818
32044
  return childItems.slice(offset, offset + limit);
31819
32045
  });
31820
32046
  }
31821
32047
  };
31822
- var DatabaseItemMap = class extends Map {
32048
+ var DatabaseItemMap = /*#__PURE__*/ class extends Map {
31823
32049
  constructor(items = []) {
31824
32050
  super();
31825
32051
  for (const item of items) {
@@ -31850,7 +32076,7 @@ var DatabaseItemMap = class extends Map {
31850
32076
  return [...values,];
31851
32077
  }
31852
32078
  };
31853
- var RichTextResolver = class {
32079
+ var RichTextResolver = /*#__PURE__*/ class {
31854
32080
  constructor(collection) {
31855
32081
  this.collection = collection;
31856
32082
  __publicField(this, 'cache', /* @__PURE__ */ new Map());
@@ -31972,8 +32198,8 @@ function stringifyQuery(query) {
31972
32198
  }
31973
32199
  if (query.orderBy) {
31974
32200
  queryString += ` ORDER BY ${query.orderBy.map((orderExpression) => {
31975
- var _f;
31976
- return `${stringifyExpression(query.from.data, orderExpression)} ${(_f = orderExpression.direction) !== null && _f !== void 0 ? _f : 'asc'}`;
32201
+ var _j;
32202
+ return `${stringifyExpression(query.from.data, orderExpression)} ${(_j = orderExpression.direction) !== null && _j !== void 0 ? _j : 'asc'}`;
31977
32203
  }).join(', ')}`;
31978
32204
  }
31979
32205
  if (query.limit) {
@@ -32003,7 +32229,7 @@ function getDatabaseCollection({ data: data2, }, locale) {
32003
32229
  }
32004
32230
  assertNever(data2, 'Unsupported collection type');
32005
32231
  }
32006
- var QueryEngine = class {
32232
+ var QueryEngine = /*#__PURE__*/ class {
32007
32233
  query(query, locale) {
32008
32234
  return __awaiter(this, void 0, void 0, function* () {
32009
32235
  const collection = getDatabaseCollection(query.from, locale);
@@ -32027,8 +32253,8 @@ ${(0, import_archy.default)(plan.inspect())}`);
32027
32253
  const sortExpressions = (_a = query.orderBy) == null
32028
32254
  ? void 0
32029
32255
  : _a.map((expression) => {
32030
- var _f;
32031
- return new ScalarOrderExpression(ScalarExpression.from(expression, collection.schema), (_f = expression.direction) !== null && _f !== void 0 ? _f : 'asc', {
32256
+ var _j;
32257
+ return new ScalarOrderExpression(ScalarExpression.from(expression, collection.schema), (_j = expression.direction) !== null && _j !== void 0 ? _j : 'asc', {
32032
32258
  type: 0,
32033
32259
  /* CaseInsensitive */
32034
32260
  });
@@ -32087,7 +32313,7 @@ function resolveValue(richTextResolver, value) {
32087
32313
  });
32088
32314
  }
32089
32315
  function createPlanForWhereClause(collection, expression) {
32090
- var _f;
32316
+ var _j;
32091
32317
  if (expression instanceof ScalarLogicalOperationAnd) {
32092
32318
  const childPlans = expression.operandExpressions.map((expression2) => createPlanForWhereClause(collection, expression2));
32093
32319
  return new IntersectionPlan(childPlans);
@@ -32096,7 +32322,7 @@ function createPlanForWhereClause(collection, expression) {
32096
32322
  const childPlans = expression.operandExpressions.map((expression2) => createPlanForWhereClause(collection, expression2));
32097
32323
  return new UnionPlan(childPlans);
32098
32324
  }
32099
- return (_f = findLookupIndexPlan(collection, expression)) !== null && _f !== void 0 ? _f : createScanCollectionPlan(collection, expression);
32325
+ return (_j = findLookupIndexPlan(collection, expression)) !== null && _j !== void 0 ? _j : createScanCollectionPlan(collection, expression);
32100
32326
  }
32101
32327
  function findLookupIndexPlan(collection, expression) {
32102
32328
  var _a, _b;
@@ -32222,7 +32448,7 @@ function createScanCollectionPlan(collection, expression) {
32222
32448
  const plan = new ScanCollectionPlan(collection);
32223
32449
  return new FilterItemsPlan(plan, expression);
32224
32450
  }
32225
- var AnimationCollector = class {
32451
+ var AnimationCollector = /*#__PURE__*/ class {
32226
32452
  constructor() {
32227
32453
  __publicField(this, 'entries', /* @__PURE__ */ new Map());
32228
32454
  }
@@ -32383,9 +32609,9 @@ function activeBreakpointHashFromWindow(breakpoints) {
32383
32609
  return (_a = breakpoints[0]) == null ? void 0 : _a.hash;
32384
32610
  }
32385
32611
  function useHydratedBreakpointVariants(initial, mediaQueries, hydratedWithInitial = true) {
32386
- var _f;
32612
+ var _j;
32387
32613
  const isInitialNavigation = useContext3(IsInitialNavigationContext);
32388
- const baseVariant = useRef(isBrowser2() ? (_f = activeMediaQueryFromWindow(mediaQueries)) !== null && _f !== void 0 ? _f : initial : initial);
32614
+ const baseVariant = useRef(isBrowser2() ? (_j = activeMediaQueryFromWindow(mediaQueries)) !== null && _j !== void 0 ? _j : initial : initial);
32389
32615
  const basePropsVariant = useRef(hydratedWithInitial && isInitialNavigation ? initial : baseVariant.current);
32390
32616
  const forceUpdate = useForceUpdate3();
32391
32617
  const instantTransition = useInstantTransition();
@@ -32864,7 +33090,7 @@ function usePrototypeNavigate({ preload, } = {}) {
32864
33090
  return false;
32865
33091
  });
32866
33092
  }
32867
- var QueryCache = class {
33093
+ var QueryCache = /*#__PURE__*/ class {
32868
33094
  constructor(queryEngine2) {
32869
33095
  this.queryEngine = queryEngine2;
32870
33096
  __publicField(this, 'cache', /* @__PURE__ */ new Map());
@@ -32889,11 +33115,11 @@ function getCollectionId(collection) {
32889
33115
  collectionIds.set(collection, id3);
32890
33116
  return id3;
32891
33117
  }
32892
- function getCacheKey(_f, locale) {
32893
- var _j;
32894
- var { from } = _f, query = __rest(_f, ["from"]);
33118
+ function getCacheKey(_j, locale) {
33119
+ var _k;
33120
+ var { from } = _j, query = __rest(_j, ["from"]);
32895
33121
  const fromId = getCollectionId(from.data);
32896
- const localeId = (_j = (locale == null ? void 0 : locale.id)) !== null && _j !== void 0 ? _j : 'default';
33122
+ const localeId = (_k = (locale == null ? void 0 : locale.id)) !== null && _k !== void 0 ? _k : 'default';
32897
33123
  return fromId + JSON.stringify(query) + localeId;
32898
33124
  }
32899
33125
  function use(promise) {
@@ -32955,16 +33181,16 @@ function getWhereExpressionFromPathVariables(pathVariables) {
32955
33181
  function useLoadMorePaginatedQuery(query, pageSize, hash2) {
32956
33182
  const count = useQueryCount(query);
32957
33183
  const [paginationInfo, setPaginationInfo,] = useState(() => {
32958
- var _f;
33184
+ var _j;
32959
33185
  var _a, _b, _c, _d;
32960
33186
  const totalPages = Math.ceil(count / pageSize);
32961
- const currentPage = (_f = ((_d = (_c = (_b = (_a = globalThis == null ? void 0 : globalThis.history) == null ? void 0 : _a.state) == null
33187
+ const currentPage = (_j = ((_d = (_c = (_b = (_a = globalThis == null ? void 0 : globalThis.history) == null ? void 0 : _a.state) == null
32962
33188
  ? void 0
32963
33189
  : _b.paginationInfo) == null
32964
33190
  ? void 0
32965
33191
  : _c[hash2]) == null
32966
33192
  ? void 0
32967
- : _d.currentPage)) !== null && _f !== void 0 ? _f : 1;
33193
+ : _d.currentPage)) !== null && _j !== void 0 ? _j : 1;
32968
33194
  return {
32969
33195
  currentPage,
32970
33196
  totalPages,
@@ -33175,17 +33401,17 @@ function extractMappingFromInfo(info) {
33175
33401
  try {
33176
33402
  return JSON.parse(json);
33177
33403
  }
33178
- catch (_f) {
33404
+ catch (_j) {
33179
33405
  return void 0;
33180
33406
  }
33181
33407
  }
33182
33408
  function withMappedReactProps(Component15, info) {
33183
33409
  return (rawProps) => {
33184
- var _f;
33410
+ var _j;
33185
33411
  const props = {};
33186
33412
  const mapping = extractMappingFromInfo(info);
33187
33413
  for (const key7 in rawProps) {
33188
- asRecord(props)[(_f = (mapping == null ? void 0 : mapping[key7])) !== null && _f !== void 0 ? _f : key7] = rawProps[key7];
33414
+ asRecord(props)[(_j = (mapping == null ? void 0 : mapping[key7])) !== null && _j !== void 0 ? _j : key7] = rawProps[key7];
33189
33415
  }
33190
33416
  return /* @__PURE__ */ jsx(Component15, Object.assign({}, props));
33191
33417
  };
@@ -33269,7 +33495,7 @@ var withVariantAppearEffect = (Component15) => React4.forwardRef((props, forward
33269
33495
  const playedState = {};
33270
33496
  let currentVariant = void 0;
33271
33497
  return scrollInfo(({ y: scrollY, }) => {
33272
- var _f;
33498
+ var _j;
33273
33499
  var _a;
33274
33500
  if (!targets[0] || targets[0].ref && !targets[0].ref.current)
33275
33501
  return;
@@ -33280,7 +33506,7 @@ var withVariantAppearEffect = (Component15) => React4.forwardRef((props, forward
33280
33506
  if (animateOnce && playedState[index])
33281
33507
  return;
33282
33508
  playedState[index] = true;
33283
- const variant = (_f = ((_a = targets[index]) == null ? void 0 : _a.target)) !== null && _f !== void 0 ? _f : void 0;
33509
+ const variant = (_j = ((_a = targets[index]) == null ? void 0 : _a.target)) !== null && _j !== void 0 ? _j : void 0;
33284
33510
  if (variant === currentVariant)
33285
33511
  return;
33286
33512
  currentVariant = variant;
@@ -33298,8 +33524,8 @@ var withVariantAppearEffect = (Component15) => React4.forwardRef((props, forward
33298
33524
  return /* @__PURE__ */ jsx(Component15, Object.assign({}, rest));
33299
33525
  }
33300
33526
  });
33301
- var withVariantFX = (Component15) => React4.forwardRef((_f, forwardedRef) => {
33302
- var { initial, animate: animate3, exit } = _f, props = __rest(_f, ["initial", "animate", "exit"]);
33527
+ var withVariantFX = (Component15) => React4.forwardRef((_j, forwardedRef) => {
33528
+ var { initial, animate: animate3, exit } = _j, props = __rest(_j, ["initial", "animate", "exit"]);
33303
33529
  const ref = useRef();
33304
33530
  const effect = usePresenceAnimation({
33305
33531
  initial,
@@ -33915,7 +34141,7 @@ var FontSourceNames = /* @__PURE__ */ ((FontSourceNames2) => {
33915
34141
  return FontSourceNames2;
33916
34142
  })(FontSourceNames || {});
33917
34143
  var systemFontFamilyName = 'System Default';
33918
- var LocalFontSource = class {
34144
+ var LocalFontSource = /*#__PURE__*/ class {
33919
34145
  constructor() {
33920
34146
  __publicField(this, 'name', 'local');
33921
34147
  __publicField(this, 'fontFamilies', []);
@@ -33924,8 +34150,8 @@ var LocalFontSource = class {
33924
34150
  __publicField(this, 'fontAliases', /* @__PURE__ */ new Map());
33925
34151
  }
33926
34152
  getFontFamilyByName(family) {
33927
- var _f;
33928
- return (_f = this.byFamilyName.get(family)) !== null && _f !== void 0 ? _f : null;
34153
+ var _j;
34154
+ return (_j = this.byFamilyName.get(family)) !== null && _j !== void 0 ? _j : null;
33929
34155
  }
33930
34156
  // TODO: these are duplicated across implementations of FontSource
33931
34157
  // When adding a third source, we should abstract them
@@ -33991,8 +34217,8 @@ var LocalFontSource = class {
33991
34217
  };
33992
34218
  const aliases = /* @__PURE__ */ new Map();
33993
34219
  const weights = [400, 100, 200, 300, 500, 600, 700, 800, 900,];
33994
- const styles2 = ['normal', 'italic',];
33995
- for (const style of styles2) {
34220
+ const styles4 = ['normal', 'italic',];
34221
+ for (const style of styles4) {
33996
34222
  for (const weight of weights) {
33997
34223
  const variant = createVariantName(weight, style);
33998
34224
  const alias = `__SystemDefault-${weight}-${style}__`;
@@ -34055,7 +34281,7 @@ function getCustomFontName(fileName, properties) {
34055
34281
  const variant = properties.font.preferredSubFamily === '' ? properties.font.fontSubFamily : properties.font.preferredSubFamily;
34056
34282
  return `${fontFamily} ${variant}`;
34057
34283
  }
34058
- var CustomFontSource = class {
34284
+ var CustomFontSource = /*#__PURE__*/ class {
34059
34285
  constructor() {
34060
34286
  __publicField(this, 'name', 'custom');
34061
34287
  __publicField(this, 'fontFamilies', []);
@@ -34167,7 +34393,7 @@ var CustomFontSource = class {
34167
34393
  }
34168
34394
  };
34169
34395
  function getFontVariants(currentVariant, variants, parseVariant) {
34170
- var _f, _j, _k, _l, _m, _o, _p, _q, _t, _u, _w;
34396
+ var _j, _k, _l, _m, _o, _p, _q, _t, _u, _w, _x;
34171
34397
  if (variants.length === 0)
34172
34398
  return {};
34173
34399
  const currentVariantInfo = parseVariant(currentVariant);
@@ -34189,20 +34415,20 @@ function getFontVariants(currentVariant, variants, parseVariant) {
34189
34415
  }
34190
34416
  });
34191
34417
  let variantBold = boldVariantByStyle.get(currentStyle);
34192
- let variantBoldItalic = (_f = boldVariantByStyle.get('italic')) !== null && _f !== void 0 ? _f : boldVariantByStyle.get('oblique');
34418
+ let variantBoldItalic = (_j = boldVariantByStyle.get('italic')) !== null && _j !== void 0 ? _j : boldVariantByStyle.get('oblique');
34193
34419
  if (currentVariantInfo.weight <= 300) {
34194
- variantBold = (_j = variantByWeightAndStyle.get(`400-${currentStyle}`)) !== null && _j !== void 0 ? _j : variantBold;
34195
- variantBoldItalic = (_l = (_k = variantByWeightAndStyle.get('400-italic')) !== null && _k !== void 0 ? _k : variantByWeightAndStyle.get('400-oblique')) !== null && _l !== void 0 ? _l : variantBoldItalic;
34420
+ variantBold = (_k = variantByWeightAndStyle.get(`400-${currentStyle}`)) !== null && _k !== void 0 ? _k : variantBold;
34421
+ variantBoldItalic = (_m = (_l = variantByWeightAndStyle.get('400-italic')) !== null && _l !== void 0 ? _l : variantByWeightAndStyle.get('400-oblique')) !== null && _m !== void 0 ? _m : variantBoldItalic;
34196
34422
  }
34197
34423
  else if (currentVariantInfo.weight <= 500) {
34198
- variantBold = (_m = variantByWeightAndStyle.get(`700-${currentStyle}`)) !== null && _m !== void 0 ? _m : variantBold;
34199
- variantBoldItalic = (_p = (_o = variantByWeightAndStyle.get('700-italic')) !== null && _o !== void 0 ? _o : variantByWeightAndStyle.get('700-oblique')) !== null && _p !== void 0 ? _p : variantBoldItalic;
34424
+ variantBold = (_o = variantByWeightAndStyle.get(`700-${currentStyle}`)) !== null && _o !== void 0 ? _o : variantBold;
34425
+ variantBoldItalic = (_q = (_p = variantByWeightAndStyle.get('700-italic')) !== null && _p !== void 0 ? _p : variantByWeightAndStyle.get('700-oblique')) !== null && _q !== void 0 ? _q : variantBoldItalic;
34200
34426
  }
34201
34427
  else {
34202
- variantBold = (_q = variantByWeightAndStyle.get(`900-${currentStyle}`)) !== null && _q !== void 0 ? _q : variantBold;
34203
- variantBoldItalic = (_u = (_t = variantByWeightAndStyle.get('900-italic')) !== null && _t !== void 0 ? _t : variantByWeightAndStyle.get('900-oblique')) !== null && _u !== void 0 ? _u : variantBoldItalic;
34428
+ variantBold = (_t = variantByWeightAndStyle.get(`900-${currentStyle}`)) !== null && _t !== void 0 ? _t : variantBold;
34429
+ variantBoldItalic = (_w = (_u = variantByWeightAndStyle.get('900-italic')) !== null && _u !== void 0 ? _u : variantByWeightAndStyle.get('900-oblique')) !== null && _w !== void 0 ? _w : variantBoldItalic;
34204
34430
  }
34205
- const variantItalic = (_w = variantByWeightAndStyle.get(`${currentWeight}-italic`)) !== null && _w !== void 0 ? _w : variantByWeightAndStyle.get(`${currentWeight}-oblique`);
34431
+ const variantItalic = (_x = variantByWeightAndStyle.get(`${currentWeight}-italic`)) !== null && _x !== void 0 ? _x : variantByWeightAndStyle.get(`${currentWeight}-oblique`);
34206
34432
  return {
34207
34433
  variantBold,
34208
34434
  variantItalic,
@@ -34236,15 +34462,15 @@ var weightNameToNumber = {
34236
34462
  };
34237
34463
  var weightNames = /* @__PURE__ */ Object.keys(weightNameToNumber);
34238
34464
  var allowedVariantsRegex = /* @__PURE__ */ (() => new RegExp(`^(?:${[...weightNames, 'italic',].join('|')})`, 'u'))();
34239
- var FontshareSource = class {
34465
+ var FontshareSource = /*#__PURE__*/ class {
34240
34466
  constructor() {
34241
34467
  __publicField(this, 'name', 'fontshare');
34242
34468
  __publicField(this, 'fontFamilies', []);
34243
34469
  __publicField(this, 'byFamilyName', /* @__PURE__ */ new Map());
34244
34470
  }
34245
34471
  getFontFamilyByName(family) {
34246
- var _f;
34247
- return (_f = this.byFamilyName.get(family)) !== null && _f !== void 0 ? _f : null;
34472
+ var _j;
34473
+ return (_j = this.byFamilyName.get(family)) !== null && _j !== void 0 ? _j : null;
34248
34474
  }
34249
34475
  /**
34250
34476
  * Parses variant a string into a weight number and style, defaulting to a
@@ -34368,15 +34594,15 @@ var weightNameToNumber2 = {
34368
34594
  ExtraBold: 800,
34369
34595
  Black: 900,
34370
34596
  };
34371
- var FramerFontSource = class {
34597
+ var FramerFontSource = /*#__PURE__*/ class {
34372
34598
  constructor() {
34373
34599
  __publicField(this, 'name', 'framer');
34374
34600
  __publicField(this, 'fontFamilies', []);
34375
34601
  __publicField(this, 'byFamilyName', /* @__PURE__ */ new Map());
34376
34602
  }
34377
34603
  getFontFamilyByName(family) {
34378
- var _f;
34379
- return (_f = this.byFamilyName.get(family)) !== null && _f !== void 0 ? _f : null;
34604
+ var _j;
34605
+ return (_j = this.byFamilyName.get(family)) !== null && _j !== void 0 ? _j : null;
34380
34606
  }
34381
34607
  addFontFamily(familyName) {
34382
34608
  const fontFamily = {
@@ -34425,15 +34651,15 @@ var FramerFontSource = class {
34425
34651
  }
34426
34652
  };
34427
34653
  var googleFontSelectorPrefix = 'GF;';
34428
- var GoogleFontSource = class {
34654
+ var GoogleFontSource = /*#__PURE__*/ class {
34429
34655
  constructor() {
34430
34656
  __publicField(this, 'name', 'google');
34431
34657
  __publicField(this, 'fontFamilies', []);
34432
34658
  __publicField(this, 'byFamilyName', /* @__PURE__ */ new Map());
34433
34659
  }
34434
34660
  getFontFamilyByName(family) {
34435
- var _f;
34436
- return (_f = this.byFamilyName.get(family)) !== null && _f !== void 0 ? _f : null;
34661
+ var _j;
34662
+ return (_j = this.byFamilyName.get(family)) !== null && _j !== void 0 ? _j : null;
34437
34663
  }
34438
34664
  static parseVariant(variant) {
34439
34665
  if (variant === 'regular') {
@@ -34486,14 +34712,14 @@ var GoogleFontSource = class {
34486
34712
  const fonts = [];
34487
34713
  webFonts.forEach((webFont) => {
34488
34714
  webFont.variants.forEach((variant) => {
34489
- var _f;
34715
+ var _j;
34490
34716
  var _a;
34491
34717
  const family = webFont.family;
34492
34718
  let fontFamily = this.getFontFamilyByName(family);
34493
34719
  if (!fontFamily) {
34494
34720
  fontFamily = this.addFontFamily(family);
34495
34721
  }
34496
- const variantInfo = (_f = GoogleFontSource.parseVariant(variant)) !== null && _f !== void 0 ? _f : {};
34722
+ const variantInfo = (_j = GoogleFontSource.parseVariant(variant)) !== null && _j !== void 0 ? _j : {};
34497
34723
  const { weight, style, } = variantInfo;
34498
34724
  const selector = GoogleFontSource.createSelector(family, variant);
34499
34725
  const { variantBold, variantItalic, variantBoldItalic, } = getFontVariants(variant, webFont.variants, GoogleFontSource.parseVariant);
@@ -34531,7 +34757,7 @@ function mapToKnownCategory2(category) {
34531
34757
  var import_fontfaceobserver = __toESM(require_fontfaceobserver_standalone(), 1);
34532
34758
  var FONT_LOADING_TIMEOUT = 5e3;
34533
34759
  var MAX_RETRIES = 3;
34534
- var FontLoadingError = class extends Error {
34760
+ var FontLoadingError = /*#__PURE__*/ class extends Error {
34535
34761
  constructor(message) {
34536
34762
  super(message);
34537
34763
  this.name = 'FontLoadingError';
@@ -34600,7 +34826,7 @@ function isFontReady(family, style, weight) {
34600
34826
  }
34601
34827
  });
34602
34828
  }
34603
- var FontStore = class {
34829
+ var FontStore = /*#__PURE__*/ class {
34604
34830
  constructor() {
34605
34831
  __publicField(this, 'enabled', false);
34606
34832
  __publicField(this, 'bySelector', /* @__PURE__ */ new Map());
@@ -35019,173 +35245,6 @@ function isPageOrScroll(identifier) {
35019
35245
  return true;
35020
35246
  return false;
35021
35247
  }
35022
- var salt = 'framer';
35023
- var difficulty = 3;
35024
- var tokenLength = 30;
35025
- var maxTime = 3e3;
35026
- function calculateProofOfWork() {
35027
- return __awaiter(this, void 0, void 0, function* () {
35028
- const target = '0'.repeat(difficulty);
35029
- const startTime = Date.now();
35030
- let processing = true;
35031
- while (processing) {
35032
- const timestamp = Date.now();
35033
- if (timestamp - startTime > maxTime) {
35034
- processing = false;
35035
- return;
35036
- }
35037
- const nonce = randomCharacters(tokenLength);
35038
- const secret = `${timestamp}:${nonce}`;
35039
- const hash2 = yield sha256(salt + secret);
35040
- if (hash2.startsWith(target)) {
35041
- return {
35042
- secret,
35043
- hash: hash2,
35044
- };
35045
- }
35046
- }
35047
- return;
35048
- });
35049
- }
35050
- function sha256(text) {
35051
- return __awaiter(this, void 0, void 0, function* () {
35052
- const buffer = new TextEncoder().encode(text);
35053
- const hashBuffer = yield crypto.subtle.digest('SHA-256', buffer);
35054
- return Array.from(new Uint8Array(hashBuffer)).map((b) => b.toString(16).padStart(2, '0')).join('');
35055
- });
35056
- }
35057
- function randomCharacters(count) {
35058
- const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
35059
- let result = '';
35060
- const charactersLength = characters.length;
35061
- for (let i = 0; i < count; i++) {
35062
- result += characters.charAt(Math.floor(Math.random() * charactersLength));
35063
- }
35064
- return result;
35065
- }
35066
- function formReducer(_state, { type, }) {
35067
- switch (type) {
35068
- case 'submit':
35069
- return {
35070
- state: 'pending',
35071
- };
35072
- case 'success':
35073
- return {
35074
- state: 'success',
35075
- };
35076
- case 'error':
35077
- return {
35078
- state: 'error',
35079
- };
35080
- default:
35081
- assertNever(type);
35082
- }
35083
- }
35084
- function preventDefault(e) {
35085
- e.preventDefault();
35086
- }
35087
- var FormContainer = /* @__PURE__ */ React4.forwardRef((_f, ref) => {
35088
- var { action, formId, disabled, children, redirectUrl, onSuccess, onError } = _f, props = __rest(_f, ["action", "formId", "disabled", "children", "redirectUrl", "onSuccess", "onError"]);
35089
- const [state, dispatch,] = React4.useReducer(formReducer, {
35090
- state: disabled ? 'disabled' : void 0,
35091
- });
35092
- const router = useRouter();
35093
- const { activeLocale, } = useLocaleInfo();
35094
- const isSubmitEnabled = state.state === void 0;
35095
- function redirectTo(link) {
35096
- return __awaiter(this, void 0, void 0, function* () {
35097
- var _a, _b;
35098
- if (isLinkToWebPage(link)) {
35099
- if (!router)
35100
- return;
35101
- const route = (_a = router.getRoute) == null ? void 0 : _a.call(router, link.webPageId);
35102
- if (!route)
35103
- return;
35104
- const { unresolvedHashSlugs, unresolvedPathSlugs, } = link;
35105
- const resolvedSlugs = yield resolveSlugs(unresolvedPathSlugs, unresolvedHashSlugs, router.collectionUtils, activeLocale);
35106
- const combinedPathVariables = Object.assign({}, router.currentPathVariables, link.pathVariables, resolvedSlugs == null ? void 0 : resolvedSlugs.path);
35107
- const combinedHashVariables = Object.assign({}, router.currentPathVariables, link.pathVariables, link.hashVariables, resolvedSlugs == null ? void 0 : resolvedSlugs.hash);
35108
- const element = getHashForRoute(link.hash, route, combinedHashVariables);
35109
- (_b = router.navigate) == null ? void 0 : _b.call(router, link.webPageId, element, combinedPathVariables);
35110
- return;
35111
- }
35112
- if (!safeWindow)
35113
- return;
35114
- safeWindow.open(link, '_blank');
35115
- });
35116
- }
35117
- const handleSubmit = (event) => __awaiter(void 0, void 0, void 0, function* () {
35118
- event.preventDefault();
35119
- if (!action)
35120
- return;
35121
- const data2 = new FormData(event.currentTarget);
35122
- for (const [key7, value,] of data2) {
35123
- if (value instanceof File)
35124
- data2.delete(key7);
35125
- }
35126
- try {
35127
- dispatch({
35128
- type: 'submit',
35129
- });
35130
- yield submitForm(action, data2);
35131
- dispatch({
35132
- type: 'success',
35133
- });
35134
- onSuccess == null ? void 0 : onSuccess();
35135
- if (redirectUrl) {
35136
- yield redirectTo(redirectUrl);
35137
- }
35138
- }
35139
- catch (error) {
35140
- dispatch({
35141
- type: 'error',
35142
- });
35143
- onError == null ? void 0 : onError();
35144
- }
35145
- });
35146
- const handleKeyDown = (event) => {
35147
- const { target: input, currentTarget: form, key: key7, } = event;
35148
- const isTextArea = input instanceof HTMLTextAreaElement;
35149
- if (isTextArea)
35150
- return;
35151
- if (key7 === 'Enter' && form.checkValidity()) {
35152
- event.preventDefault();
35153
- void handleSubmit(event);
35154
- }
35155
- };
35156
- return /* @__PURE__ */ jsx(motion.form, Object.assign(Object.assign({}, props), { 'data-formid': formId, onSubmit: isSubmitEnabled ? handleSubmit : preventDefault, onKeyDown: handleKeyDown, ref, children: children(state) }));
35157
- });
35158
- function submitForm(action, data2) {
35159
- return __awaiter(this, void 0, void 0, function* () {
35160
- const proofOfWork = yield calculateProofOfWork();
35161
- if (!proofOfWork) {
35162
- throw new Error('Failed to calculate proof of work');
35163
- }
35164
- const response = yield fetch(action, {
35165
- body: data2,
35166
- method: 'POST',
35167
- headers: {
35168
- 'Framer-POW': proofOfWork.secret,
35169
- 'Framer-POW-Enforce': 'true',
35170
- },
35171
- });
35172
- if (response.ok) {
35173
- return response;
35174
- }
35175
- else {
35176
- const body = yield response.json();
35177
- const error = 'Failed to submit form';
35178
- if (responseHasError(body)) {
35179
- throw new Error(`${error} - ${body.error.message}`);
35180
- }
35181
- throw new Error(error);
35182
- }
35183
- });
35184
- }
35185
- function responseHasError(response) {
35186
- return typeof response === 'object' && response !== null && 'error' in response && isObject2(response.error) &&
35187
- 'message' in response.error && typeof response.error.message === 'string';
35188
- }
35189
35248
  var FormInputStyleVariableNames = /* @__PURE__ */ ((FormInputStyleVariableNames2) => {
35190
35249
  FormInputStyleVariableNames2['Padding'] = '--framer-input-padding';
35191
35250
  FormInputStyleVariableNames2['BorderRadiusTopLeft'] = '--framer-input-border-radius-top-left';
@@ -35214,7 +35273,6 @@ var FormInputStyleVariableNames = /* @__PURE__ */ ((FormInputStyleVariableNames2
35214
35273
  FormInputStyleVariableNames2['FocusedBackground'] = '--framer-input-focused-background';
35215
35274
  FormInputStyleVariableNames2['FocusedBoxShadow'] = '--framer-input-focused-box-shadow';
35216
35275
  FormInputStyleVariableNames2['FocusedTransition'] = '--framer-input-focused-transition';
35217
- FormInputStyleVariableNames2['BooleanCheckedIconURL'] = '--framer-input-boolean-icon';
35218
35276
  FormInputStyleVariableNames2['BooleanCheckedBackground'] = '--framer-input-boolean-checked-background';
35219
35277
  FormInputStyleVariableNames2['BooleanCheckedBorderColor'] = '--framer-input-boolean-checked-border-color';
35220
35278
  FormInputStyleVariableNames2['BooleanCheckedBorderWidth'] = '--framer-input-boolean-checked-border-width';
@@ -35222,14 +35280,17 @@ var FormInputStyleVariableNames = /* @__PURE__ */ ((FormInputStyleVariableNames2
35222
35280
  FormInputStyleVariableNames2['BooleanCheckedBoxShadow'] = '--framer-input-boolean-checked-box-shadow';
35223
35281
  FormInputStyleVariableNames2['BooleanCheckedTransition'] = '--framer-input-boolean-checked-transition';
35224
35282
  FormInputStyleVariableNames2['InvalidTextColor'] = '--framer-input-invalid-text-color';
35283
+ FormInputStyleVariableNames2['IconBackgroundImage'] = '--framer-input-icon-image';
35284
+ FormInputStyleVariableNames2['IconMaskImage'] = '--framer-input-icon-mask-image';
35285
+ FormInputStyleVariableNames2['IconColor'] = '--framer-input-icon-color';
35225
35286
  return FormInputStyleVariableNames2;
35226
35287
  })(FormInputStyleVariableNames || {});
35227
35288
  var Var = FormInputStyleVariableNames;
35228
- var inputClassName = /* @__PURE__ */ (() => 'framer-form-input')();
35229
- var inputWrapperClassName = /* @__PURE__ */ (() => 'framer-form-input-wrapper')();
35230
- var emptyValueClassName = /* @__PURE__ */ (() => 'framer-form-input-empty')();
35231
- var forcedFocusClassName = /* @__PURE__ */ (() => 'framer-form-input-forced-focus')();
35232
- var forcedCheckedClassName = /* @__PURE__ */ (() => 'framer-form-input-forced-checked')();
35289
+ var inputClassName = 'framer-form-input';
35290
+ var inputWrapperClassName = 'framer-form-input-wrapper';
35291
+ var emptyValueClassName = 'framer-form-input-empty';
35292
+ var forcedFocusClassName = 'framer-form-input-forced-focus';
35293
+ var forcedCheckedClassName = 'framer-form-input-forced-checked';
35233
35294
  function cssValue(value) {
35234
35295
  if (typeof value === 'number')
35235
35296
  return value;
@@ -35242,7 +35303,8 @@ function cssValue(value) {
35242
35303
  function css(selector, declaration) {
35243
35304
  let output = ' ';
35244
35305
  for (const key7 in declaration) {
35245
- output += `${key7.replace(/([A-Z])/gu, '-$1').toLowerCase()}: ${cssValue(declaration[key7])}; `;
35306
+ const value = declaration[key7];
35307
+ output += `${key7.replace(/([A-Z])/gu, '-$1').toLowerCase()}: ${cssValue(value)}; `;
35246
35308
  }
35247
35309
  return selector + ' {' + output + '}';
35248
35310
  }
@@ -35258,51 +35320,33 @@ function css(selector, declaration) {
35258
35320
  }
35259
35321
  css2.variable = variable;
35260
35322
  })(css || (css = {}));
35261
- var sharedInputCSS = [`.${inputClassName} {
35262
- padding: var(${Var.Padding});
35263
- background: var(${Var.Background});
35264
- font-family: var(${Var.FontFamily});
35265
- font-weight: var(${Var.FontWeight});
35266
- font-size: var(${Var.FontSize});
35267
- color: var(${Var.FontColor});
35268
- box-shadow: var(${Var.BoxShadow});
35269
- border: none;
35270
- text-overflow: ellipsis;
35271
- white-space: nowrap;
35272
- overflow: hidden;
35273
- width: 100%;
35274
- height: 100%;
35275
- border-top-left-radius: var(${Var.BorderRadiusTopLeft});
35276
- border-top-right-radius: var(${Var.BorderRadiusTopRight});
35277
- border-bottom-right-radius: var(${Var.BorderRadiusBottomRight});
35278
- border-bottom-left-radius: var(${Var.BorderRadiusBottomLeft});
35279
- letter-spacing: var(${Var.FontLetterSpacing});
35280
- text-align: var(${Var.FontTextAlignment});
35281
- line-height: var(${Var.FontLineHeight});
35282
- transition: var(${Var.FocusedTransition});
35283
- transition-property: background, box-shadow;
35284
- }`,];
35285
- var focusInputCSS =
35286
- /* @__PURE__ */ (() => [
35287
- `.${inputClassName}:focus-visible { outline: none; }`,
35288
- `.${inputClassName}:focus, .${inputClassName}.${forcedFocusClassName} {
35289
- background: ${css.variable(Var.FocusedBackground, Var.Background)};
35290
- box-shadow: ${css.variable(Var.FocusedBoxShadow, Var.BoxShadow)};
35291
- }`,
35292
- `.${inputWrapperClassName}:focus-within::after, .${inputWrapperClassName}.${forcedFocusClassName}::after {
35293
- border-color: ${css.variable(Var.FocusedBorderColor, Var.BorderColor)};
35294
- border-style: ${css.variable(Var.FocusedBorderStyle, Var.BorderStyle)};
35295
- border-top-width: ${css.variable(Var.FocusedBorderWidth, Var.BorderTopWidth)};
35296
- border-right-width: ${css.variable(Var.FocusedBorderWidth, Var.BorderRightWidth)};
35297
- border-bottom-width: ${css.variable(Var.FocusedBorderWidth, Var.BorderBottomWidth)};
35298
- border-left-width: ${css.variable(Var.FocusedBorderWidth, Var.BorderLeftWidth)};
35299
- }`,
35300
- ])();
35301
- var inputBorderCSS = [
35302
- `.${inputWrapperClassName} {
35303
- position: relative;
35304
- }`,
35305
- `.${inputWrapperClassName}:after {
35323
+ var sharedInputCSS = [
35324
+ css(`.${inputClassName}`, {
35325
+ padding: css.variable(Var.Padding),
35326
+ background: 'transparent',
35327
+ fontFamily: css.variable(Var.FontFamily),
35328
+ fontWeight: css.variable(Var.FontWeight),
35329
+ fontSize: css.variable(Var.FontSize),
35330
+ color: css.variable(Var.FontColor),
35331
+ border: 'none',
35332
+ textOverflow: 'ellipsis',
35333
+ whiteSpace: 'nowrap',
35334
+ overflow: 'hidden',
35335
+ width: '100%',
35336
+ height: '100%',
35337
+ letterSpacing: css.variable(Var.FontLetterSpacing),
35338
+ textAlign: css.variable(Var.FontTextAlignment),
35339
+ lineHeight: css.variable(Var.FontLineHeight),
35340
+ }),
35341
+ css(`.${inputClassName}:focus-visible`, {
35342
+ outline: 'none',
35343
+ }),
35344
+ ];
35345
+ var inputWrapperCSS = /* @__PURE__ */ (() => [css(`.${inputWrapperClassName}`, {
35346
+ overflow: 'hidden',
35347
+ }),])();
35348
+ var inputBorderAllSides = `var(${Var.BorderTopWidth}) var(${Var.BorderRightWidth}) var(${Var.BorderBottomWidth}) var(${Var.BorderLeftWidth})`;
35349
+ var inputBorderCSS = [`.${inputWrapperClassName}:after {
35306
35350
  content: "";
35307
35351
  pointer-events: none;
35308
35352
  box-sizing: border-box;
@@ -35323,8 +35367,90 @@ var inputBorderCSS = [
35323
35367
  border-style: var(${Var.BorderStyle});
35324
35368
  transition: var(${Var.FocusedTransition});
35325
35369
  transition-property: border-color, border-width, border-style, border-top-left-radius, border-top-right-radius, border-bottom-right-radius, border-bottom-left-radius;
35326
- }`,
35327
- ];
35370
+ }`,];
35371
+ var customValidityKey = 'customError';
35372
+ var validKey = 'valid';
35373
+ function isRelevantValidityStateKey(key7) {
35374
+ return key7 !== customValidityKey && key7 !== validKey;
35375
+ }
35376
+ function isInvalid(validity) {
35377
+ for (const key7 in validity) {
35378
+ if (!isRelevantValidityStateKey(key7))
35379
+ continue;
35380
+ if ((validity == null ? void 0 : validity[key7]) === true)
35381
+ return true;
35382
+ }
35383
+ return false;
35384
+ }
35385
+ function useCustomValidity(onValid, onInvalid, onChange, onBlur, onFocus) {
35386
+ const isValidRef = React4.useRef(null);
35387
+ const handleInvalid = React4.useCallback((e) => {
35388
+ if (!onInvalid)
35389
+ return;
35390
+ if (isValidRef.current === false)
35391
+ return;
35392
+ isValidRef.current = false;
35393
+ e.currentTarget.setCustomValidity(' ');
35394
+ e.currentTarget.reportValidity();
35395
+ onInvalid(e);
35396
+ }, [onInvalid,]);
35397
+ const handleChange = React4.useCallback((e) => {
35398
+ onChange == null ? void 0 : onChange(e);
35399
+ if (!onInvalid && !onValid)
35400
+ return;
35401
+ const validity = e.target.validity;
35402
+ if (isValidRef.current === false && !isInvalid(validity)) {
35403
+ e.currentTarget.setCustomValidity('');
35404
+ e.target.reportValidity();
35405
+ isValidRef.current = true;
35406
+ onValid == null ? void 0 : onValid();
35407
+ }
35408
+ }, [onInvalid, onValid, onChange,]);
35409
+ const handleBlur = React4.useCallback((e) => {
35410
+ if (!onInvalid) {
35411
+ onBlur == null ? void 0 : onBlur(e);
35412
+ return;
35413
+ }
35414
+ if (isValidRef.current === false)
35415
+ return;
35416
+ const validity = e.currentTarget.validity;
35417
+ if (isInvalid(validity)) {
35418
+ handleInvalid(e);
35419
+ return;
35420
+ }
35421
+ onBlur == null ? void 0 : onBlur(e);
35422
+ }, [handleInvalid, onBlur, onInvalid,]);
35423
+ return React4.useMemo(() => {
35424
+ return {
35425
+ onInvalid: handleInvalid,
35426
+ onChange: handleChange,
35427
+ onBlur: handleBlur,
35428
+ onFocus,
35429
+ };
35430
+ }, [handleInvalid, handleChange, handleBlur, onFocus,]);
35431
+ }
35432
+ var iconSpacing = 10;
35433
+ var iconSize = 16;
35434
+ var inputIconCSSDeclaration = {
35435
+ content: '',
35436
+ display: 'block',
35437
+ position: 'absolute',
35438
+ right: 0,
35439
+ top: 0,
35440
+ bottom: 0,
35441
+ width: `${iconSize}px`,
35442
+ boxSizing: 'content-box',
35443
+ // Offset the icon inwards by the padding.
35444
+ margin: css.variable(Var.Padding),
35445
+ marginLeft: 0,
35446
+ border: 'none',
35447
+ pointerEvents: 'none',
35448
+ backgroundRepeat: 'no-repeat',
35449
+ backgroundSize: `${iconSize}px`,
35450
+ maskRepeat: 'no-repeat',
35451
+ maskSize: `${iconSize}px`,
35452
+ backgroundColor: css.variable(Var.IconColor),
35453
+ };
35328
35454
  var passwordManagerIgnoreDataProps = {
35329
35455
  // 1Password
35330
35456
  'data-1p-ignore': true,
@@ -35338,98 +35464,133 @@ var passwordManagerIgnoreDataProps = {
35338
35464
  autocomplete: 'off',
35339
35465
  };
35340
35466
  var PlainTextInput = /* @__PURE__ */ React4.forwardRef(function FormPlainTextInput(props, ref) {
35341
- const { autoFocus, className: className2, inputName, max, min, onBlur, onFocus, onInvalid, placeholder, required, step: step2, style, type, value, autofillEnabled, canvasPreviewClassName } = props, rest = __rest(props, ["autoFocus", "className", "inputName", "max", "min", "onBlur", "onFocus", "onInvalid", "placeholder", "required", "step", "style", "type", "value", "autofillEnabled", "canvasPreviewClassName"]);
35342
- const [hasValue, setHasValue,] = React4.useState(!!value);
35343
- const dataProps = autofillEnabled === false ? passwordManagerIgnoreDataProps : void 0;
35344
- const eventProps = {
35345
- onBlur,
35346
- onFocus,
35347
- onInvalid,
35348
- };
35349
- const onChange = React4.useCallback((e) => {
35467
+ const { autoFocus, className: className2, inputName, max, min, placeholder, required, step: step2, style, type,
35468
+ // We use a defaultValue instead of a value so that the input remains
35469
+ // uncontrolled by React. This is important because we want the user
35470
+ // to be able to provide an initial value in the property panel, and for
35471
+ // the value to be editable by the user in the preview.
35472
+ defaultValue, autofillEnabled, onChange, onBlur, onInvalid, onFocus, onValid } = props, rest = __rest(props, ["autoFocus", "className", "inputName", "max", "min", "placeholder", "required", "step", "style", "type", "defaultValue", "autofillEnabled", "onChange", "onBlur", "onInvalid", "onFocus", "onValid"]);
35473
+ const [hasValue, setHasValue,] = React4.useState(!!defaultValue);
35474
+ const handleChange = React4.useCallback((e) => {
35350
35475
  const newValue = e.target.value;
35476
+ onChange == null ? void 0 : onChange(e);
35351
35477
  setHasValue(!!newValue);
35352
- }, []);
35353
- switch (type) {
35354
- case 'hidden':
35355
- return /* @__PURE__ */ jsx(motion.input, {
35356
- type: 'hidden',
35357
- name: inputName,
35358
- value,
35359
- });
35360
- case 'textarea':
35361
- return /* @__PURE__ */ jsx(motion.div, Object.assign(Object.assign({ ref,
35362
- style, className: cx(inputWrapperClassName, canvasPreviewClassName, className2) }, rest), { children: /* @__PURE__ */ jsx(motion.textarea, Object.assign(Object.assign(Object.assign({ id: inputName }, dataProps), eventProps), { required,
35363
- autoFocus, name: inputName, placeholder, className: cx(inputClassName, canvasPreviewClassName), value })) }));
35364
- default:
35365
- return /* @__PURE__ */ jsx(motion.div, Object.assign(Object.assign({ ref,
35366
- style, className: cx(inputWrapperClassName, canvasPreviewClassName, className2) }, rest), { children: /* @__PURE__ */ jsx(motion.input, Object.assign(Object.assign(Object.assign({ id: inputName }, dataProps), eventProps), { type,
35367
- required,
35368
- autoFocus, name: inputName, placeholder, className: cx(inputClassName, canvasPreviewClassName, !hasValue && emptyValueClassName), onChange,
35369
- value,
35370
- min,
35371
- max, step: step2 })) }));
35478
+ }, [onChange,]);
35479
+ const eventHandlers = useCustomValidity(onValid, onInvalid, handleChange, onBlur, onFocus);
35480
+ useEffect(() => {
35481
+ setHasValue(!!defaultValue);
35482
+ }, [defaultValue,]);
35483
+ const dataProps = autofillEnabled === false ? passwordManagerIgnoreDataProps : void 0;
35484
+ if (type === 'hidden') {
35485
+ return /* @__PURE__ */ jsx(motion.input, {
35486
+ type: 'hidden',
35487
+ name: inputName,
35488
+ defaultValue,
35489
+ });
35372
35490
  }
35491
+ return /* @__PURE__ */ jsx(motion.div, Object.assign(Object.assign({ ref,
35492
+ style, className: cx(textInputWrapperClassName, inputWrapperClassName, className2) }, rest), { children: type === 'textarea'
35493
+ ? /* @__PURE__ */ createElement(motion.textarea, Object.assign(Object.assign(Object.assign({}, dataProps), eventHandlers), { key: defaultValue, required,
35494
+ autoFocus, name: inputName, placeholder, className: inputClassName, defaultValue }))
35495
+ : /* @__PURE__ */ createElement(motion.input, Object.assign(Object.assign(Object.assign({}, dataProps), eventHandlers), { key: defaultValue, type,
35496
+ required,
35497
+ autoFocus, name: inputName, placeholder, className: cx(inputClassName, !hasValue && emptyValueClassName), defaultValue,
35498
+ min,
35499
+ max, step: step2 })) }));
35373
35500
  });
35374
- var iconSpacing = /* @__PURE__ */ (() => 10)();
35375
- var iconSize = /* @__PURE__ */ (() => 14)();
35376
- var defaultDateIcon =
35377
- /* @__PURE__ */ (() => `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${iconSize}' height='${iconSize}'%3E%3Cpath d='M2 4a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v2H2Z' fill='currentColor' opacity='.3'/%3E%3Cpath d='M2.25 4.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-2ZM2 5.75h9.5' fill='transparent' stroke-width='1.5' stroke='currentColor'/%3E%3C/svg%3E`)();
35378
- var defaultTimeIcon =
35379
- /* @__PURE__ */ (() => `data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='${iconSize}' height='${iconSize}'%3E%3Cpath d='M1.5 7a5.5 5.5 0 1 1 11 0 5.5 5.5 0 1 1-11 0Z' fill='transparent' stroke-width='1.5' stroke='currentColor'/%3E%3Cpath d='M6.75 7.25v-3m0 3h2' fill='transparent' stroke-width='1.5' stroke='currentColor' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E`)();
35380
- var FormPlainTextInput2 =
35381
- /* @__PURE__ */ (() => withCSS(PlainTextInput, [
35501
+ var iconSize2 = 16;
35502
+ var textInputWrapperClassName = 'framer-form-text-input';
35503
+ var defaultTextareaResizerIcon = '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>';
35504
+ var defaultDateIconMaskImage = '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>';
35505
+ var defaultTimeIconMaskImage = '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>';
35506
+ var styles = /* @__PURE__ */ (() => [
35382
35507
  ...sharedInputCSS,
35383
- ...focusInputCSS,
35384
35508
  ...inputBorderCSS,
35385
- `.${inputClassName}::placeholder {
35386
- color: var(${'--framer-input-placeholder-color'});
35387
- }`,
35388
- `textarea.${inputClassName} {
35389
- resize: var(${'--framer-textarea-resize'});
35390
- min-height: var(${'--framer-textarea-min-height'});
35391
- }`,
35392
- `.${inputClassName}.${emptyValueClassName}::-webkit-datetime-edit {
35393
- color:var(${'--framer-input-placeholder-color'});
35394
- -webkit-text-fill-color: var(${'--framer-input-placeholder-color'});
35395
- }`,
35396
- `.${inputClassName}[type="date"]::before, .${inputClassName}[type="time"]::before {
35397
- content: "";
35398
- display: block;
35399
- position: absolute;
35400
- padding: var(${'--framer-input-padding'});
35401
- padding-left: ${iconSpacing}px;
35402
- right: 0;
35403
- top: 0;
35404
- bottom: 0;
35405
- width: ${iconSize}px;
35406
- box-sizing: content-box;
35407
-
35408
- pointer-events: none;
35409
- mask-repeat: no-repeat;
35410
- mask-position: ${iconSpacing}px center;
35411
- border: none;
35412
- background-color: #999;
35413
- }`,
35414
- `.${inputClassName}[type="date"]::before {
35415
- mask-image: url("${defaultDateIcon}");
35416
- }`,
35417
- `.${inputClassName}[type="time"]::before {
35418
- mask-image: url("${defaultTimeIcon}");
35419
- }`,
35509
+ ...inputWrapperCSS,
35510
+ css(`.${inputWrapperClassName}`, {
35511
+ boxShadow: css.variable('--framer-input-box-shadow'),
35512
+ borderTopLeftRadius: css.variable('--framer-input-border-radius-top-left'),
35513
+ borderTopRightRadius: css.variable('--framer-input-border-radius-top-right'),
35514
+ borderBottomRightRadius: css.variable('--framer-input-border-radius-bottom-right'),
35515
+ borderBottomLeftRadius: css.variable('--framer-input-border-radius-bottom-left'),
35516
+ background: css.variable('--framer-input-background'),
35517
+ transition: css.variable('--framer-input-focused-transition'),
35518
+ transitionProperty: 'background, box-shadow',
35519
+ }),
35520
+ css(`.${textInputWrapperClassName} .${inputClassName}::placeholder`, {
35521
+ color: css.variable('--framer-input-placeholder-color'),
35522
+ }),
35523
+ css(`.${textInputWrapperClassName} .${inputClassName}[type="date"], .${textInputWrapperClassName} .${inputClassName}[type="time"]`, {
35524
+ '-webkit-appearance': 'none',
35525
+ appearance: 'none',
35526
+ }),
35527
+ // iOS only fix for centered date & time inputs: https://github.com/tailwindlabs/tailwindcss-forms/pull/144
35528
+ css(`.${textInputWrapperClassName} .${inputClassName}::-webkit-date-and-time-value`, {
35529
+ textAlign: 'start',
35530
+ }),
35531
+ css(`.${textInputWrapperClassName} textarea`, {
35532
+ display: 'flex',
35533
+ resize: css.variable('--framer-textarea-resize'),
35534
+ overflowY: 'scroll',
35535
+ minHeight: 'inherit',
35536
+ maxHeight: 'inherit',
35537
+ whiteSpace: 'break-spaces',
35538
+ }),
35539
+ // This targets the resize handle in WebKit browsers. Unfortunately, it is not
35540
+ // possible in CSS to target the resize handle in Firefox, so FF will always
35541
+ // show the native resize handle.
35542
+ css(`.${textInputWrapperClassName} textarea::-webkit-resizer`, {
35543
+ background: `no-repeat url('${defaultTextareaResizerIcon}')`,
35544
+ }),
35545
+ css(`.${textInputWrapperClassName} textarea::-webkit-scrollbar`, {
35546
+ cursor: 'pointer',
35547
+ background: 'transparent',
35548
+ }),
35549
+ css(`.${textInputWrapperClassName} textarea::-webkit-scrollbar-thumb:window-inactive`, {
35550
+ opacity: 0,
35551
+ }),
35552
+ css(`.${textInputWrapperClassName} textarea::-webkit-scrollbar-corner`, {
35553
+ background: 'none',
35554
+ backgroundColor: 'transparent',
35555
+ outline: 'none',
35556
+ }),
35557
+ css(`.${textInputWrapperClassName} .${inputClassName}.${emptyValueClassName}::-webkit-datetime-edit`, {
35558
+ color: css.variable('--framer-input-placeholder-color'),
35559
+ // This tells safari to use the color for the shadow dom elements.
35560
+ '-webkit-text-fill-color': css.variable('--framer-input-placeholder-color'),
35561
+ }),
35562
+ css(`.${textInputWrapperClassName} .${inputClassName}[type="date"]::before, .${textInputWrapperClassName} .${inputClassName}[type="time"]::before`, Object.assign(Object.assign({}, inputIconCSSDeclaration), { paddingLeft: `${iconSpacing}px`, maskPosition: `${iconSpacing}px center`, backgroundPosition: `${iconSpacing}px center` })),
35563
+ css(`.${textInputWrapperClassName} .${inputClassName}[type="date"]::before`, {
35564
+ maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultDateIconMaskImage}')`),
35565
+ backgroundImage: css.variable('--framer-input-icon-image'),
35566
+ }),
35567
+ css(`.${textInputWrapperClassName} .${inputClassName}[type="time"]::before`, {
35568
+ maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultTimeIconMaskImage}')`),
35569
+ backgroundImage: css.variable('--framer-input-icon-image'),
35570
+ }),
35420
35571
  // Hide the native date picker icon, but still allow the user to click it.
35421
- `.${inputClassName}::-webkit-calendar-picker-indicator {
35422
- opacity: 0;
35423
- padding: var(${'--framer-input-padding'});
35424
- padding-right: 0;
35425
- padding-left: ${iconSpacing}px;
35426
- width: ${iconSize}px;
35427
- height: ${iconSize}px;
35428
- }`,
35429
- ]))();
35572
+ css(`.${textInputWrapperClassName} .${inputClassName}::-webkit-calendar-picker-indicator`, {
35573
+ opacity: 0,
35574
+ padding: css.variable('--framer-input-padding'),
35575
+ paddingRight: 0,
35576
+ paddingLeft: `${iconSpacing}px`,
35577
+ width: `${iconSize2}px`,
35578
+ height: `${iconSize2}px`,
35579
+ }),
35580
+ css(`.${textInputWrapperClassName}:focus-within, .${textInputWrapperClassName}.${forcedFocusClassName}`, {
35581
+ boxShadow: css.variable('--framer-input-focused-box-shadow', '--framer-input-box-shadow'),
35582
+ background: css.variable('--framer-input-focused-background', '--framer-input-background'),
35583
+ }),
35584
+ css(`.${textInputWrapperClassName}:focus-within::after, .${textInputWrapperClassName}.${forcedFocusClassName}::after`, {
35585
+ borderColor: css.variable('--framer-input-focused-border-color', '--framer-input-border-color'),
35586
+ borderStyle: css.variable('--framer-input-focused-border-style', '--framer-input-border-style'),
35587
+ borderWidth: css.variable('--framer-input-focused-border-width', inputBorderAllSides),
35588
+ }),
35589
+ ])();
35590
+ var FormPlainTextInput2 = /* @__PURE__ */ withCSS(PlainTextInput, styles);
35430
35591
  var className = 'framer-form-boolean-input';
35431
35592
  var BooleanInput = /* @__PURE__ */ React4.forwardRef(function FormPlainTextInput3(props, ref) {
35432
- const { inputName, type = 'checkbox', defaultChecked, canvasPreviewClassName } = props, rest = __rest(props, ["inputName", "type", "defaultChecked", "canvasPreviewClassName"]);
35593
+ const { inputName, type = 'checkbox', defaultChecked, onValid } = props, rest = __rest(props, ["inputName", "type", "defaultChecked", "onValid"]);
35433
35594
  const isCanvas = useIsOnFramerCanvas();
35434
35595
  const attributes = isCanvas
35435
35596
  ? {
@@ -35438,12 +35599,13 @@ var BooleanInput = /* @__PURE__ */ React4.forwardRef(function FormPlainTextInput
35438
35599
  : {
35439
35600
  defaultChecked,
35440
35601
  };
35441
- return /* @__PURE__ */ jsx(motion.input, Object.assign(Object.assign(Object.assign({}, rest), attributes), { readOnly: isCanvas, ref, id: inputName, type, name: inputName, className: cx(className, props.className, canvasPreviewClassName) }));
35602
+ const eventHandlers = useCustomValidity(onValid, props.onInvalid, props.onChange, props.onBlur, props.onFocus);
35603
+ return /* @__PURE__ */ jsx(motion.input, Object.assign(Object.assign(Object.assign(Object.assign({}, rest), attributes), eventHandlers), { readOnly: isCanvas, ref,
35604
+ type, name: inputName, className: cx(className, props.className) }));
35442
35605
  });
35443
- var defaultCheckedIcon = `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>`;
35444
- var borderWidth = `var(${'--framer-input-border-top-width'}) var(${'--framer-input-border-right-width'}) var(${'--framer-input-border-bottom-width'}) var(${'--framer-input-border-left-width'})`;
35606
+ var defaultCheckedIcon = '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>';
35445
35607
  var borderRadius = `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'})`;
35446
- var styles = /* @__PURE__ */ (() => [
35608
+ var styles2 = /* @__PURE__ */ (() => [
35447
35609
  css(`.${className}`, {
35448
35610
  '-webkit-appearance': 'none',
35449
35611
  // background-color: #fff; fixes a bug on iOS where the checkbox shows
@@ -35469,7 +35631,7 @@ var styles = /* @__PURE__ */ (() => [
35469
35631
  borderColor: css.variable('--framer-input-border-color', 'transparent'),
35470
35632
  borderRadius,
35471
35633
  borderStyle: '--framer-input-border-style',
35472
- borderWidth,
35634
+ borderWidth: inputBorderAllSides,
35473
35635
  boxSizing: 'border-box',
35474
35636
  content: '',
35475
35637
  display: 'block',
@@ -35480,22 +35642,17 @@ var styles = /* @__PURE__ */ (() => [
35480
35642
  }),
35481
35643
  // The before element is used to display the check mark icon. It is
35482
35644
  // faded in when the input is checked.
35483
- css(`.${className}::before`, {
35484
- // Use the icon url if it's provided, falling back to a default check
35485
- // mark. Radio inputs will be code-generated with a "none" value for the
35486
- // variable if an image isn't provided which will prevent this fallback
35487
- // in those cases.
35488
- backgroundImage: css.variable('--framer-input-boolean-icon', `url('${defaultCheckedIcon}')`),
35489
- backgroundPosition: 'center',
35490
- backgroundRepeat: 'no-repeat',
35491
- backgroundSize: 'contain',
35492
- content: '',
35493
- display: 'block',
35494
- height: '100%',
35495
- opacity: 0,
35496
- transition: '--framer-input-boolean-checked-transition',
35497
- transitionProperty: 'opacity',
35498
- width: '100%',
35645
+ css(`.${className}::before`, Object.assign(Object.assign({}, inputIconCSSDeclaration), { backgroundPosition: 'center', backgroundSize: 'contain', maskPosition: 'center', maskSize: 'contain', height: '100%', opacity: 0, transition: '--framer-input-boolean-checked-transition', transitionProperty: 'opacity', width: '100%' })),
35646
+ // The BooleanInput component shows an svg check mark icon whenever an
35647
+ // image url isn't provided. That's not an intuitive system for radios
35648
+ // however, where we never want to show the default check mark.
35649
+ css(`.${className}[type="checkbox"]::before`, {
35650
+ backgroundImage: css.variable('--framer-input-icon-image'),
35651
+ maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultCheckedIcon}')`),
35652
+ }),
35653
+ css(`.${className}[type="radio"]::before`, {
35654
+ backgroundImage: css.variable('--framer-input-icon-image'),
35655
+ maskImage: css.variable('--framer-input-icon-mask-image'),
35499
35656
  }),
35500
35657
  css(`.${className}:checked, .${className}.${forcedCheckedClassName}`, {
35501
35658
  // When not set, the styles when checked shouldn't clear the default
@@ -35511,7 +35668,7 @@ var styles = /* @__PURE__ */ (() => [
35511
35668
  // styles.
35512
35669
  borderColor: css.variable('--framer-input-boolean-checked-border-color', '--framer-input-border-color', 'transparent'),
35513
35670
  borderStyle: css.variable('--framer-input-boolean-checked-border-style', '--framer-input-border-style', 'solid'),
35514
- borderWidth: css.variable('--framer-input-boolean-checked-border-width', borderWidth),
35671
+ borderWidth: css.variable('--framer-input-boolean-checked-border-width', inputBorderAllSides),
35515
35672
  }),
35516
35673
  css(`.${className}:focus, .${className}.${forcedFocusClassName}`, {
35517
35674
  backgroundColor: css.variable('--framer-input-focused-background', '--framer-input-background'),
@@ -35525,7 +35682,7 @@ var styles = /* @__PURE__ */ (() => [
35525
35682
  // styles.
35526
35683
  borderColor: css.variable('--framer-input-focused-border-color', '--framer-input-border-color', 'transparent'),
35527
35684
  borderStyle: css.variable('--framer-input-focused-border-style', '--framer-input-border-style', 'solid'),
35528
- borderWidth: css.variable('--framer-input-focused-border-width', borderWidth),
35685
+ borderWidth: css.variable('--framer-input-focused-border-width', inputBorderAllSides),
35529
35686
  }),
35530
35687
  css(`.${className}:focus:checked`, {
35531
35688
  backgroundColor: css.variable('--framer-input-focused-background', '--framer-input-boolean-checked-background', '--framer-input-background'),
@@ -35533,68 +35690,81 @@ var styles = /* @__PURE__ */ (() => [
35533
35690
  }),
35534
35691
  css(`.${className}:focus:checked::after`, {
35535
35692
  borderStyle: css.variable('--framer-input-focused-border-style', '--framer-input-boolean-checked-border-style', '--framer-input-border-style', 'solid'),
35536
- borderWidth: css.variable('--framer-input-focused-border-width', '--framer-input-boolean-checked-border-width', borderWidth),
35693
+ borderWidth: css.variable('--framer-input-focused-border-width', '--framer-input-boolean-checked-border-width', inputBorderAllSides),
35537
35694
  }),
35538
35695
  ])();
35539
- var FormBooleanInput = /* @__PURE__ */ withCSS(BooleanInput, styles);
35696
+ var FormBooleanInput = /* @__PURE__ */ withCSS(BooleanInput, styles2);
35540
35697
  var Select = /* @__PURE__ */ React4.forwardRef(function Select2(props, measureRef) {
35541
- const { autoFocus, className: className2, inputName, onBlur, onFocus, onInvalid, required, selectDefaultValue, selectOptions, style, canvasPreviewClassName } = props, rest = __rest(props, ["autoFocus", "className", "inputName", "onBlur", "onFocus", "onInvalid", "required", "selectDefaultValue", "selectOptions", "style", "canvasPreviewClassName"]);
35542
- return /* @__PURE__ */ jsx(motion.div, Object.assign(Object.assign({ ref: measureRef, style, className: cx(inputWrapperClassName, selectWrapperClassName, canvasPreviewClassName, className2) }, rest), { children: /* @__PURE__ */ jsx(motion.select, {
35543
- id: inputName,
35544
- name: inputName,
35545
- autoFocus,
35546
- required,
35547
- className: cx(inputClassName, canvasPreviewClassName),
35548
- defaultValue: selectDefaultValue,
35549
- onBlur,
35550
- onFocus,
35551
- onInvalid,
35552
- children: selectOptions == null ? void 0 : selectOptions.map((option, index) => {
35553
- var _f, _j;
35698
+ const { autoFocus, className: className2, inputName, required, defaultValue, selectOptions, style, onValid, onChange, onBlur, onInvalid, onFocus } = props, rest = __rest(props, ["autoFocus", "className", "inputName", "required", "defaultValue", "selectOptions", "style", "onValid", "onChange", "onBlur", "onInvalid", "onFocus"]);
35699
+ const eventHandlers = useCustomValidity(onValid, onInvalid, onChange, onBlur, onFocus);
35700
+ const key7 = Array.isArray(defaultValue) ? defaultValue[0] : defaultValue;
35701
+ return /* @__PURE__ */ jsx(motion.div, Object.assign(Object.assign({ ref: measureRef, style, className: cx(inputWrapperClassName, selectWrapperClassName, className2) }, rest), { children: /* @__PURE__ */ jsx(motion.select, Object.assign(Object.assign({ name: inputName, autoFocus,
35702
+ required, className: inputClassName, defaultValue }, eventHandlers), { children: selectOptions == null ? void 0 : selectOptions.map((option, index) => {
35703
+ var _j, _k;
35554
35704
  switch (option.type) {
35555
35705
  case 'divider':
35556
35706
  return /* @__PURE__ */ jsx('hr', {}, index);
35557
35707
  case 'option':
35558
35708
  return /* @__PURE__ */ jsx('option', {
35559
- value: (_f = option.value) !== null && _f !== void 0 ? _f : option.title,
35709
+ value: (_j = option.value) !== null && _j !== void 0 ? _j : option.title,
35560
35710
  disabled: option.disabled,
35561
- children: (_j = option.title) !== null && _j !== void 0 ? _j : option.value,
35711
+ children: (_k = option.title) !== null && _k !== void 0 ? _k : option.value,
35562
35712
  }, index);
35563
35713
  }
35564
- }),
35565
- }, selectDefaultValue) }));
35714
+ }) }), key7) }));
35566
35715
  });
35567
35716
  var selectWrapperClassName = 'framer-form-select-wrapper';
35568
35717
  var selectArrowSize = 16;
35569
- var FormSelect = /* @__PURE__ */ (() => withCSS(Select, [
35718
+ var defaultSelectCaretMaskImage =
35719
+ /* @__PURE__ */ (() => `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>`)();
35720
+ var styles3 = /* @__PURE__ */ (() => [
35570
35721
  ...sharedInputCSS,
35571
- ...focusInputCSS,
35572
35722
  ...inputBorderCSS,
35573
- `select.${inputClassName} {
35574
- appearance: none;
35575
- -webkit-appearance: none;
35576
- padding-right: calc(var(${'--framer-input-padding'}) * 2 + ${selectArrowSize}px);
35577
- }`,
35578
- `.${selectWrapperClassName}::before {
35579
- content: "";
35580
- display: block;
35581
- position: absolute;
35582
- right: 0;
35583
- height: 100%;
35584
- width: 16px;
35585
- box-sizing: content-box;
35586
- padding: 0 var(${'--framer-input-padding'});
35587
- position: absolute;
35588
- pointer-events: none;
35589
- background-image: url('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>');
35590
- background-repeat: no-repeat;
35591
- background-position: center center;
35592
- border: none;
35593
- }`,
35594
- `select.${inputClassName}:required:invalid {
35595
- color: var(${'--framer-input-invalid-text-color'});
35596
- }`,
35597
- ]))();
35723
+ ...inputWrapperCSS,
35724
+ css(`.${selectWrapperClassName}`, {
35725
+ // First we use the complete padding string, which may be any valid
35726
+ // padding string (10px, 10px 10px, 10px 10px 10px, or 10px 10px
35727
+ // 10px 10px), and use it to set only the right padding. This pushes
35728
+ // the actual select away from the arrow by 1x.
35729
+ padding: css.variable('--framer-input-padding'),
35730
+ paddingTop: 0,
35731
+ paddingBottom: 0,
35732
+ paddingLeft: 0,
35733
+ background: css.variable('--framer-input-background'),
35734
+ borderTopLeftRadius: css.variable('--framer-input-border-radius-top-left'),
35735
+ borderTopRightRadius: css.variable('--framer-input-border-radius-top-right'),
35736
+ borderBottomRightRadius: css.variable('--framer-input-border-radius-bottom-right'),
35737
+ borderBottomLeftRadius: css.variable('--framer-input-border-radius-bottom-left'),
35738
+ boxShadow: css.variable('--framer-input-box-shadow'),
35739
+ transition: css.variable('--framer-input-focused-transition'),
35740
+ transitionProperty: 'background, box-shadow',
35741
+ }),
35742
+ css(`.${selectWrapperClassName} select`, {
35743
+ appearance: 'none',
35744
+ '-webkit-appearance': 'none',
35745
+ // Then we use the complete padding string again as the margin for
35746
+ // the select. This moves the select 2x the padding right away from
35747
+ // the arrow.
35748
+ padding: css.variable('--framer-input-padding'),
35749
+ // Overwrite the values inherited from .${inputClassName}. On a
35750
+ // select, these values are on the wrapper.
35751
+ background: 'transparent',
35752
+ }),
35753
+ css(`.${selectWrapperClassName}::before`, Object.assign(Object.assign({}, inputIconCSSDeclaration), { paddingLeft: `${iconSpacing}px`, backgroundPosition: `${iconSpacing}px center`, maskPosition: `${iconSpacing}px center`, backgroundImage: css.variable('--framer-input-icon-image'), maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultSelectCaretMaskImage}')`) })),
35754
+ css(`.${selectWrapperClassName} select:required:invalid`, {
35755
+ color: css.variable('--framer-input-invalid-text-color'),
35756
+ }),
35757
+ css(`.${selectWrapperClassName}:focus-within, .${selectWrapperClassName}.${forcedFocusClassName}`, {
35758
+ background: css.variable('--framer-input-focused-background', '--framer-input-background'),
35759
+ boxShadow: css.variable('--framer-input-focused-box-shadow', '--framer-input-box-shadow'),
35760
+ }),
35761
+ css(`.${selectWrapperClassName}:focus-within::after, .${selectWrapperClassName}.${forcedFocusClassName}::after`, {
35762
+ borderColor: css.variable('--framer-input-focused-border-color', '--framer-input-border-color'),
35763
+ borderStyle: css.variable('--framer-input-focused-border-style', '--framer-input-border-style'),
35764
+ borderWidth: css.variable('--framer-input-focused-border-width', inputBorderAllSides),
35765
+ }),
35766
+ ])();
35767
+ var FormSelect = /* @__PURE__ */ withCSS(Select, styles3);
35598
35768
  var Image2 = /* @__PURE__ */ React4.forwardRef(function Image3(props, ref) {
35599
35769
  const { background, children, alt } = props, rest = __rest(props, ["background", "children", "alt"]);
35600
35770
  const style = Object.assign({}, rest.style);
@@ -35672,7 +35842,7 @@ function convertCodeComponentContainer(componentDefinitionProvider, node, conver
35672
35842
  converter(codeComponentPresentation, codeComponentPresentation.children.map((child) => convertPresentationTree(child, converter, componentDefinitionProvider, getCachedNode, skipCodeComponentPropsCache))),
35673
35843
  ];
35674
35844
  }
35675
- var CodeComponentPresentation = class {
35845
+ var CodeComponentPresentation = /*#__PURE__*/ class {
35676
35846
  constructor(id3, componentIdentifier, packageVersion, props, children, codeOverrideIdentifier) {
35677
35847
  this.id = id3;
35678
35848
  this.componentIdentifier = componentIdentifier;
@@ -35705,7 +35875,7 @@ var escapeHTML = (str) => str.replace(htmlRegExp, (tag) => ({
35705
35875
  var regex = /(<([a-z]+)(?:\s+(?!href[\s=])[^=\s]+=(?:'[^']*'|"[^"]*"))*)(?:(\s+href\s*=)(?:'([^']*)'|"([^"]*)"))?((?:\s+[^=\s]+=(?:'[^']*'|"[^"]*"))*>)/gi;
35706
35876
  function replaceFramerPageLinks(rawHTML, getRoute, currentRoute, implicitPathVariables) {
35707
35877
  return rawHTML.replace(regex, (original, pre1, tag, pre2, value1, value2, post) => {
35708
- var _f;
35878
+ var _j;
35709
35879
  var _a, _b;
35710
35880
  if (tag.toLowerCase() !== 'a')
35711
35881
  return original;
@@ -35721,7 +35891,7 @@ function replaceFramerPageLinks(rawHTML, getRoute, currentRoute, implicitPathVar
35721
35891
  if (!targetPath || !currentPath)
35722
35892
  return original;
35723
35893
  let attributes = ` ${'data-framer-page-link-target'}="${pageLink.target}"`;
35724
- const elementId = getRouteElementId(targetRoute, (_f = pageLink.element) !== null && _f !== void 0 ? _f : void 0);
35894
+ const elementId = getRouteElementId(targetRoute, (_j = pageLink.element) !== null && _j !== void 0 ? _j : void 0);
35725
35895
  if (elementId) {
35726
35896
  attributes += ` ${'data-framer-page-link-element'}="${pageLink.element}"`;
35727
35897
  }
@@ -35754,12 +35924,12 @@ var htmlEscapes = {
35754
35924
  var reUnescapedHtml = /[&<>"']/gu;
35755
35925
  var reHasUnescapedHtml = /* @__PURE__ */ (() => new RegExp(reUnescapedHtml.source))();
35756
35926
  function escapeHTML2(str) {
35757
- return str && reHasUnescapedHtml.test(str) ? str.replace(reUnescapedHtml, (chr) => { var _f; return (_f = htmlEscapes[chr]) !== null && _f !== void 0 ? _f : ''; }) : str || '';
35927
+ return str && reHasUnescapedHtml.test(str) ? str.replace(reUnescapedHtml, (chr) => { var _j; return (_j = htmlEscapes[chr]) !== null && _j !== void 0 ? _j : ''; }) : str || '';
35758
35928
  }
35759
35929
  var deprecatedRichTextPlaceholder = '{{ text-placeholder }}';
35760
35930
  var richTextWrapperClassName = 'rich-text-wrapper';
35761
35931
  var DeprecatedRichText = /* @__PURE__ */ React2.forwardRef(function Text(props, forwardedRef) {
35762
- var _f, _j;
35932
+ var _j, _k;
35763
35933
  const { id: id3, name, html, htmlFromDesign, text, textFromDesign, fonts = [], width, height, left, right, top, bottom, center, className: className2, stylesPresetsClassName, visible = true, opacity, rotation = 0, verticalAlignment = 'top', isEditable = false, willChangeTransform, environment: environment2 = RenderTarget.current, withExternalLayout = false, positionSticky, positionStickyTop, positionStickyRight, positionStickyBottom, positionStickyLeft, __htmlStructure, __fromCanvasComponent = false, _forwardedOverrideId, _forwardedOverrides, _usesDOMRect, children: _children } = props, rest = __rest(props, ["id", "name", "html", "htmlFromDesign", "text", "textFromDesign", "fonts", "width", "height", "left", "right", "top", "bottom", "center", "className", "stylesPresetsClassName", "visible", "opacity", "rotation", "verticalAlignment", "isEditable", "willChangeTransform", "environment", "withExternalLayout", "positionSticky", "positionStickyTop", "positionStickyRight", "positionStickyBottom", "positionStickyLeft", "__htmlStructure", "__fromCanvasComponent", "_forwardedOverrideId", "_forwardedOverrides", "_usesDOMRect", "children"]);
35764
35934
  const parentSize = useParentSize();
35765
35935
  const layoutId = useLayoutId2(props);
@@ -35767,7 +35937,7 @@ var DeprecatedRichText = /* @__PURE__ */ React2.forwardRef(function Text(props,
35767
35937
  const layoutRef = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : fallbackLayoutRef;
35768
35938
  const { navigate, getRoute, } = useRouter();
35769
35939
  const currentRoute = useCurrentRoute();
35770
- useRoutePreloader((_f = props.preload) !== null && _f !== void 0 ? _f : []);
35940
+ useRoutePreloader((_j = props.preload) !== null && _j !== void 0 ? _j : []);
35771
35941
  useMeasureLayout(props, layoutRef);
35772
35942
  const inCodeComponent = React2.useContext(ComponentContainerContext);
35773
35943
  const isOnCanvas = useIsOnFramerCanvas();
@@ -35837,7 +36007,7 @@ var DeprecatedRichText = /* @__PURE__ */ React2.forwardRef(function Text(props,
35837
36007
  const frame2 = calculateRect(props, parentSize || 0, false);
35838
36008
  const isAutoSized2 = _usesDOMRect && (width === 'auto' || height === 'auto');
35839
36009
  const hasTransformTemplate = !!props.transformTemplate || !frame2 || !restrictedRenderTarget || __fromCanvasComponent || isAutoSized2;
35840
- const template = hasTransformTemplate ? (_j = props.transformTemplate) !== null && _j !== void 0 ? _j : transformTemplate(center) : void 0;
36010
+ const template = hasTransformTemplate ? (_k = props.transformTemplate) !== null && _k !== void 0 ? _k : transformTemplate(center) : void 0;
35841
36011
  if (!withExternalLayout) {
35842
36012
  if (frame2 && restrictedRenderTarget && !isAutoSized2) {
35843
36013
  const rotate = Animatable.getNumber(rotation).toFixed(4);
@@ -35904,8 +36074,8 @@ function useLoadFonts(fonts, fromCanvasComponent, containerRef) {
35904
36074
  });
35905
36075
  }
35906
36076
  }
35907
- var FitText = /* @__PURE__ */ forwardRef((_f, ref) => {
35908
- var { viewBoxScale, viewBox, children } = _f, props = __rest(_f, ["viewBoxScale", "viewBox", "children"]);
36077
+ var FitText = /* @__PURE__ */ forwardRef((_j, ref) => {
36078
+ var { viewBoxScale, viewBox, children } = _j, props = __rest(_j, ["viewBoxScale", "viewBox", "children"]);
35909
36079
  return /* @__PURE__ */ jsx(motion.svg, Object.assign(Object.assign({ ref }, props), { viewBox, children: /* @__PURE__ */ jsx(motion.foreignObject, {
35910
36080
  width: '100%',
35911
36081
  height: '100%',
@@ -35919,7 +36089,7 @@ var FitText = /* @__PURE__ */ forwardRef((_f, ref) => {
35919
36089
  }) }));
35920
36090
  });
35921
36091
  var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
35922
- var _f;
36092
+ var _j;
35923
36093
  const { __fromCanvasComponent = false, _forwardedOverrideId, _forwardedOverrides, _usesDOMRect, as: _as, bottom, center, children, environment: environment2 = RenderTarget.current, fonts = [], height, isEditable = false, left, name, opacity, positionSticky, positionStickyBottom, positionStickyLeft, positionStickyRight, positionStickyTop, right, rotation = 0, style, _initialStyle, stylesPresetsClassNames, text: plainText, top, verticalAlignment = 'top', visible = true, width, willChangeTransform, withExternalLayout = false, viewBox, viewBoxScale = 1 } = props, rest = __rest(props, ["__fromCanvasComponent", "_forwardedOverrideId", "_forwardedOverrides", "_usesDOMRect", "as", "bottom", "center", "children", "environment", "fonts", "height", "isEditable", "left", "name", "opacity", "positionSticky", "positionStickyBottom", "positionStickyLeft", "positionStickyRight", "positionStickyTop", "right", "rotation", "style", "_initialStyle", "stylesPresetsClassNames", "text", "top", "verticalAlignment", "visible", "width", "willChangeTransform", "withExternalLayout", "viewBox", "viewBoxScale"]);
35924
36094
  const parentSize = useParentSize();
35925
36095
  const isOnCanvas = useIsOnFramerCanvas();
@@ -35947,7 +36117,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
35947
36117
  const frame2 = calculateRect(props, parentSize || 0, false);
35948
36118
  const isAutoSized2 = _usesDOMRect && (width === 'auto' || height === 'auto');
35949
36119
  const hasTransformTemplate = !!props.transformTemplate || !frame2 || !restrictedRenderTarget || __fromCanvasComponent || isAutoSized2;
35950
- const template = hasTransformTemplate ? (_f = props.transformTemplate) !== null && _f !== void 0 ? _f : transformTemplate(center) : void 0;
36120
+ const template = hasTransformTemplate ? (_j = props.transformTemplate) !== null && _j !== void 0 ? _j : transformTemplate(center) : void 0;
35951
36121
  if (!withExternalLayout) {
35952
36122
  if (frame2 && restrictedRenderTarget && !isAutoSized2) {
35953
36123
  containerStyle.x = frame2.x;
@@ -36025,7 +36195,7 @@ function styleRichTextChildren(element, stylesPresetsClassNames, plainText) {
36025
36195
  }
36026
36196
  return child;
36027
36197
  });
36028
- const _f = element.props, { ['data-preset-tag']: dataPresetTag } = _f, props = __rest(_f, ['data-preset-tag']);
36198
+ const _j = element.props, { ['data-preset-tag']: dataPresetTag } = _j, props = __rest(_j, ['data-preset-tag']);
36029
36199
  if (isString22(element.type) || isMotionComponent(element.type)) {
36030
36200
  const tag = dataPresetTag || unwrapMotionComponent(element.type) || element.type;
36031
36201
  const stylesPresetClassName = isString22(tag) ? stylesPresetsClassNames == null ? void 0 : stylesPresetsClassNames[tag] : void 0;
@@ -36033,8 +36203,8 @@ function styleRichTextChildren(element, stylesPresetsClassNames, plainText) {
36033
36203
  }
36034
36204
  return cloneElement2(element, props, ...children);
36035
36205
  }
36036
- var RichText = /* @__PURE__ */ forwardRef((_f, ref) => {
36037
- var { children, html, htmlFromDesign } = _f, props = __rest(_f, ["children", "html", "htmlFromDesign"]);
36206
+ var RichText = /* @__PURE__ */ forwardRef((_j, ref) => {
36207
+ var { children, html, htmlFromDesign } = _j, props = __rest(_j, ["children", "html", "htmlFromDesign"]);
36038
36208
  const content = html || children || htmlFromDesign;
36039
36209
  if (isString22(content)) {
36040
36210
  if (!props.stylesPresetsClassName && isObject2(props.stylesPresetsClassNames)) {
@@ -36093,12 +36263,12 @@ function linearGradientLine(angle) {
36093
36263
  return Line(start, end);
36094
36264
  }
36095
36265
  function elementPropertiesForLinearGradient(gradient, id3) {
36096
- var _f, _j;
36266
+ var _j, _k;
36097
36267
  var _a, _b;
36098
36268
  const line = linearGradientLine(gradient.angle);
36099
36269
  const stops = gradientColorStops(gradient);
36100
- const startPosition = (_f = ((_a = stops[0]) == null ? void 0 : _a.position)) !== null && _f !== void 0 ? _f : 0;
36101
- const endPosition = (_j = ((_b = stops[stops.length - 1]) == null ? void 0 : _b.position)) !== null && _j !== void 0 ? _j : 1;
36270
+ const startPosition = (_j = ((_a = stops[0]) == null ? void 0 : _a.position)) !== null && _j !== void 0 ? _j : 0;
36271
+ const endPosition = (_k = ((_b = stops[stops.length - 1]) == null ? void 0 : _b.position)) !== null && _k !== void 0 ? _k : 1;
36102
36272
  const startPoint = Line.pointAtPercentDistance(line, startPosition);
36103
36273
  const endPoint = Line.pointAtPercentDistance(line, endPosition);
36104
36274
  const interpolator = interpolate([startPosition, endPosition,], [0, 1,]);
@@ -36163,7 +36333,7 @@ function getPositionYFraction(positionY) {
36163
36333
  return 0.5;
36164
36334
  }
36165
36335
  function imagePatternPropsForFill(fill, frame2, id3, includeTransform) {
36166
- var _f, _j, _k, _l;
36336
+ var _j, _k, _l, _m;
36167
36337
  fill = Animatable.get(fill, '#09F');
36168
36338
  if (!BackgroundImage.isImageObject(fill))
36169
36339
  return void 0;
@@ -36185,11 +36355,11 @@ function imagePatternPropsForFill(fill, frame2, id3, includeTransform) {
36185
36355
  const validScaleX = realWidth / frame2.width;
36186
36356
  const validScaleY = realHeight / frame2.height;
36187
36357
  if (fit === 'tile') {
36188
- (_f = fill.backgroundSize) !== null && _f !== void 0 ? _f : (fill.backgroundSize = 1);
36358
+ (_j = fill.backgroundSize) !== null && _j !== void 0 ? _j : (fill.backgroundSize = 1);
36189
36359
  width = Math.round(fill.backgroundSize * (imageWidth / 2));
36190
36360
  height = Math.round(fill.backgroundSize * (imageHeight / 2));
36191
- const layerPositionX = (_j = frame2.x) !== null && _j !== void 0 ? _j : 0;
36192
- const layerPositionY = (_k = frame2.y) !== null && _k !== void 0 ? _k : 0;
36361
+ const layerPositionX = (_k = frame2.x) !== null && _k !== void 0 ? _k : 0;
36362
+ const layerPositionY = (_l = frame2.y) !== null && _l !== void 0 ? _l : 0;
36193
36363
  let extraOffsetX = 0;
36194
36364
  let extraOffsetY = 0;
36195
36365
  if (includeTransform) {
@@ -36215,7 +36385,7 @@ function imagePatternPropsForFill(fill, frame2, id3, includeTransform) {
36215
36385
  const imageId = `id${id3}g${'-fillImage'}`;
36216
36386
  return {
36217
36387
  id: imageId,
36218
- path: (_l = fill.src) !== null && _l !== void 0 ? _l : '',
36388
+ path: (_m = fill.src) !== null && _m !== void 0 ? _m : '',
36219
36389
  transform: transform2,
36220
36390
  width,
36221
36391
  height,
@@ -36228,7 +36398,7 @@ function isAssetReference(value) {
36228
36398
  return value.startsWith(`data:${mediaType2}`);
36229
36399
  }
36230
36400
  function imageUrlForAsset(asset, pixelSize) {
36231
- var _f;
36401
+ var _j;
36232
36402
  if (/^\w+:/.test(asset) && !isAssetReference(asset))
36233
36403
  return asset;
36234
36404
  if (typeof pixelSize !== 'number')
@@ -36242,10 +36412,10 @@ function imageUrlForAsset(asset, pixelSize) {
36242
36412
  else
36243
36413
  pixelSize = 4096;
36244
36414
  const isExport = RenderTarget.current() === RenderTarget.export;
36245
- return (_f = runtime.assetResolver(asset, {
36415
+ return (_j = runtime.assetResolver(asset, {
36246
36416
  pixelSize,
36247
36417
  isExport,
36248
- })) !== null && _f !== void 0 ? _f : '';
36418
+ })) !== null && _j !== void 0 ? _j : '';
36249
36419
  }
36250
36420
  var ImagePatternElement = ({ id: id3, path, transform: transform2, repeat, width, height, offsetX, offsetY, }) => {
36251
36421
  const href = imageUrlForAsset(path);
@@ -36269,7 +36439,7 @@ var ImagePatternElement = ({ id: id3, path, transform: transform2, repeat, width
36269
36439
  });
36270
36440
  };
36271
36441
  var useDOM = /* @__PURE__ */ isBrowser2();
36272
- var SharedSVGEntry = class {
36442
+ var SharedSVGEntry = /*#__PURE__*/ class {
36273
36443
  constructor(id3, svg, innerHTML, viewBox, count = 0) {
36274
36444
  this.id = id3;
36275
36445
  this.svg = svg;
@@ -36278,7 +36448,7 @@ var SharedSVGEntry = class {
36278
36448
  this.count = count;
36279
36449
  }
36280
36450
  };
36281
- var SharedSVGManager = class {
36451
+ var SharedSVGManager = /*#__PURE__*/ class {
36282
36452
  constructor() {
36283
36453
  __publicField(this, 'entries', /* @__PURE__ */ new Map());
36284
36454
  }
@@ -36413,7 +36583,7 @@ function parseSVG(svg) {
36413
36583
  throw Error('no svg element found');
36414
36584
  return node;
36415
36585
  }
36416
- catch (_f) {
36586
+ catch (_j) {
36417
36587
  return;
36418
36588
  }
36419
36589
  }
@@ -36513,12 +36683,12 @@ function hasBorderRadius(style) {
36513
36683
  style.borderTopRightRadius);
36514
36684
  }
36515
36685
  function sizeSVG(container, props) {
36516
- var _f;
36686
+ var _j;
36517
36687
  var _a, _b;
36518
36688
  const div = container.current;
36519
36689
  if (!div)
36520
36690
  return;
36521
- const localWindow = (_f = props.providedWindow) !== null && _f !== void 0 ? _f : safeWindow;
36691
+ const localWindow = (_j = props.providedWindow) !== null && _j !== void 0 ? _j : safeWindow;
36522
36692
  const svg = div.firstElementChild;
36523
36693
  if (!svg || !(svg instanceof localWindow.SVGSVGElement))
36524
36694
  return;
@@ -36656,12 +36826,12 @@ var SVGComponent = /* @__PURE__ */ (() => {
36656
36826
  }
36657
36827
  }
36658
36828
  render() {
36659
- var _f;
36829
+ var _j;
36660
36830
  countNodeRender();
36661
- const _j = this.props, { id: id3, visible, style, fill, svg, intrinsicHeight, intrinsicWidth, title, description, layoutId, className: className2, variants, withExternalLayout, innerRef, svgContentId, height: _height, opacity: _opacity, width: _width } = _j, rest = __rest(_j, ["id", "visible", "style", "fill", "svg", "intrinsicHeight", "intrinsicWidth", "title", "description", "layoutId", "className", "variants", "withExternalLayout", "innerRef", "svgContentId", "height", "opacity", "width"]);
36831
+ const _k = this.props, { id: id3, visible, style, fill, svg, intrinsicHeight, intrinsicWidth, title, description, layoutId, className: className2, variants, withExternalLayout, innerRef, svgContentId, height: _height, opacity: _opacity, width: _width } = _k, rest = __rest(_k, ["id", "visible", "style", "fill", "svg", "intrinsicHeight", "intrinsicWidth", "title", "description", "layoutId", "className", "variants", "withExternalLayout", "innerRef", "svgContentId", "height", "opacity", "width"]);
36662
36832
  if (!withExternalLayout && (!visible || !id3))
36663
36833
  return null;
36664
- const identifier = (_f = id3 !== null && id3 !== void 0 ? id3 : layoutId) !== null && _f !== void 0 ? _f : 'svg';
36834
+ const identifier = (_j = id3 !== null && id3 !== void 0 ? id3 : layoutId) !== null && _j !== void 0 ? _j : 'svg';
36665
36835
  const frame2 = this.frame;
36666
36836
  const size = frame2 || {
36667
36837
  width: intrinsicWidth || 100,
@@ -36847,21 +37017,21 @@ function TextStyleSheet() {
36847
37017
  return null;
36848
37018
  }
36849
37019
  var Text2 = /* @__PURE__ */ React4.forwardRef(function Text3(props, forwardedRef) {
36850
- var _f, _j;
37020
+ var _j, _k;
36851
37021
  const parentSize = useParentSize();
36852
37022
  const layoutId = useLayoutId2(props);
36853
37023
  const fallbackLayoutRef = useRef(null);
36854
37024
  const layoutRef = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : fallbackLayoutRef;
36855
37025
  const { navigate, getRoute, } = useRouter();
36856
37026
  const currentRoute = useCurrentRoute();
36857
- useRoutePreloader((_f = props.preload) !== null && _f !== void 0 ? _f : []);
37027
+ useRoutePreloader((_j = props.preload) !== null && _j !== void 0 ? _j : []);
36858
37028
  const onCanvas = useIsOnFramerCanvas();
36859
37029
  const matchesCurrentRoute = useLinkMatchesRoute(props.__link);
36860
37030
  const fontLoadStatus = useFontLoadStatus(props.fonts);
36861
37031
  useMeasureLayout(props, layoutRef);
36862
37032
  const { fonts, __fromCanvasComponent, } = props;
36863
37033
  const prevFontsRef = useRef([]);
36864
- const fontsDidChange = !isShallowEqualArray((_j = prevFontsRef.current) !== null && _j !== void 0 ? _j : [], fonts !== null && fonts !== void 0 ? fonts : []);
37034
+ const fontsDidChange = !isShallowEqualArray((_k = prevFontsRef.current) !== null && _k !== void 0 ? _k : [], fonts !== null && fonts !== void 0 ? fonts : []);
36865
37035
  prevFontsRef.current = fonts;
36866
37036
  useEffect(() => {
36867
37037
  if (!fontsDidChange || !fonts)
@@ -36915,7 +37085,7 @@ var TextComponent = /* @__PURE__ */ (() => {
36915
37085
  });
36916
37086
  __publicField(this, 'renderMain', (inCodeComponent) => {
36917
37087
  countNodeRender();
36918
- const _f = this.props, { font, visible, alignment, willChangeTransform, opacity, id: id3, layoutId, className: className2, transition, variants, name, __fromCanvasComponent, _initialStyle, widthType: _widthType, heightType: _heightType, _usesDOMRect, autoSize, style: styleProp, fontLoadStatus, matchesCurrentRoute, preload: _preload, tabIndex } = _f, rest = __rest(_f, ["font", "visible", "alignment", "willChangeTransform", "opacity", "id", "layoutId", "className", "transition", "variants", "name", "__fromCanvasComponent", "_initialStyle", "widthType", "heightType", "_usesDOMRect", "autoSize", "style", "fontLoadStatus", "matchesCurrentRoute", "preload", "tabIndex"]);
37088
+ const _j = this.props, { font, visible, alignment, willChangeTransform, opacity, id: id3, layoutId, className: className2, transition, variants, name, __fromCanvasComponent, _initialStyle, widthType: _widthType, heightType: _heightType, _usesDOMRect, autoSize, style: styleProp, fontLoadStatus, matchesCurrentRoute, preload: _preload, tabIndex } = _j, rest = __rest(_j, ["font", "visible", "alignment", "willChangeTransform", "opacity", "id", "layoutId", "className", "transition", "variants", "name", "__fromCanvasComponent", "_initialStyle", "widthType", "heightType", "_usesDOMRect", "autoSize", "style", "fontLoadStatus", "matchesCurrentRoute", "preload", "tabIndex"]);
36919
37089
  if (!visible) {
36920
37090
  return null;
36921
37091
  }
@@ -37139,7 +37309,7 @@ function getTabIndexProps(tabIndex) {
37139
37309
  };
37140
37310
  }
37141
37311
  var keys22 = /* @__PURE__ */ new Map();
37142
- var InternalID = class {
37312
+ var InternalID = /*#__PURE__*/ class {
37143
37313
  constructor(id3) {
37144
37314
  this.id = id3;
37145
37315
  __publicField(this, '_link', null);
@@ -37173,7 +37343,7 @@ var InternalID = class {
37173
37343
  }
37174
37344
  };
37175
37345
  var PathSegmentOuter = /* @__PURE__ */ (() => {
37176
- const _PathSegment = class {
37346
+ const _PathSegment = /*#__PURE__*/ class {
37177
37347
  constructor(value) {
37178
37348
  __publicField(this, '__class', 'PathSegment');
37179
37349
  __publicField(this, 'x', 0);
@@ -37419,7 +37589,7 @@ function transformString(transform2) {
37419
37589
  }
37420
37590
  return result;
37421
37591
  }
37422
- var LinearGradientElement = class extends Component {
37592
+ var LinearGradientElement = /*#__PURE__*/ class extends Component {
37423
37593
  render() {
37424
37594
  const { id: id3, stops, x1, x2, y1, y2, } = this.props;
37425
37595
  return /* @__PURE__ */ jsx('linearGradient', {
@@ -37438,7 +37608,7 @@ var LinearGradientElement = class extends Component {
37438
37608
  });
37439
37609
  }
37440
37610
  };
37441
- var RadialGradientElement = class extends Component {
37611
+ var RadialGradientElement = /*#__PURE__*/ class extends Component {
37442
37612
  render() {
37443
37613
  const { centerAnchorX, centerAnchorY, id: id3, widthFactor, heightFactor, stops, } = this.props;
37444
37614
  return /* @__PURE__ */ jsx('radialGradient', {
@@ -37457,7 +37627,7 @@ var RadialGradientElement = class extends Component {
37457
37627
  });
37458
37628
  }
37459
37629
  };
37460
- var SVGRoot = class extends Component {
37630
+ var SVGRoot = /*#__PURE__*/ class extends Component {
37461
37631
  render() {
37462
37632
  const { children, frame: frame2, innerRef, } = this.props;
37463
37633
  const { width, height, } = frame2;
@@ -37487,12 +37657,12 @@ var Vector = /* @__PURE__ */ (() => {
37487
37657
  var _a;
37488
37658
  return _a = class extends Layer {
37489
37659
  render() {
37490
- var _f, _j;
37660
+ var _j, _k;
37491
37661
  countNodeRender();
37492
37662
  const { opacity, calculatedPath, d, insideStroke, shapeId, strokeEnabled, strokeClipId, strokeWidth, idAttribute, rect, shadows, strokeAlpha, name, includeTransform, isRootVectorNode, rotation, id: id3, lineCap, lineJoin, strokeColor, strokeMiterLimit, strokeDashArray, strokeDashOffset, fill, variants, transition, } = this.props;
37493
37663
  if (!id3 || !shapeId || !strokeClipId)
37494
37664
  return null;
37495
- const rotate = (_j = (_f = this.props.rotate) !== null && _f !== void 0 ? _f : rotation) !== null && _j !== void 0 ? _j : 0;
37665
+ const rotate = (_k = (_j = this.props.rotate) !== null && _j !== void 0 ? _j : rotation) !== null && _k !== void 0 ? _k : 0;
37496
37666
  const { target, } = RenderEnvironment;
37497
37667
  const transform2 = transformValues(rect, rotate, isRootVectorNode, includeTransform);
37498
37668
  let vectorFill;
@@ -37638,9 +37808,9 @@ var Vector = /* @__PURE__ */ (() => {
37638
37808
  }));
37639
37809
  }
37640
37810
  renderElement(element) {
37641
- var _f, _j;
37811
+ var _j, _k;
37642
37812
  const { isRootVectorNode, width, height, rect, willChangeTransform, includeTransform, } = this.props;
37643
- const frame2 = (_j = (_f = this.props.frame) !== null && _f !== void 0 ? _f : rect) !== null && _j !== void 0 ? _j : {
37813
+ const frame2 = (_k = (_j = this.props.frame) !== null && _j !== void 0 ? _j : rect) !== null && _k !== void 0 ? _k : {
37644
37814
  x: 0,
37645
37815
  y: 0,
37646
37816
  width: 100,