unframer 2.6.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/esm/framer.js CHANGED
@@ -158,7 +158,7 @@ var SwitchLayoutGroupContext = createContext({});
158
158
  var LazyContext = createContext({
159
159
  strict: false,
160
160
  });
161
- var Queue = /*#__PURE__*/ class {
161
+ var Queue = class {
162
162
  constructor() {
163
163
  this.order = [];
164
164
  this.scheduled = /* @__PURE__ */ new Set();
@@ -1498,7 +1498,7 @@ function flushKeyframeResolvers() {
1498
1498
  readAllKeyframes();
1499
1499
  measureAllKeyframes();
1500
1500
  }
1501
- var KeyframeResolver = /*#__PURE__*/ class {
1501
+ var KeyframeResolver = class {
1502
1502
  constructor(unresolvedKeyframes, onComplete, name, motionValue2, element, isAsync = false) {
1503
1503
  this.isComplete = false;
1504
1504
  this.isAsync = false;
@@ -1753,7 +1753,7 @@ 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 = /*#__PURE__*/ class {
1756
+ var BaseAnimation = class {
1757
1757
  constructor(_j) {
1758
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;
@@ -1862,7 +1862,7 @@ var generators = {
1862
1862
  spring,
1863
1863
  };
1864
1864
  var percentToProgress = (percent2) => percent2 / 100;
1865
- var MainThreadAnimation = /*#__PURE__*/ class extends BaseAnimation {
1865
+ var MainThreadAnimation = class extends BaseAnimation {
1866
1866
  constructor(_j) {
1867
1867
  var { KeyframeResolver: KeyframeResolver$1 = KeyframeResolver } = _j, options = __rest(_j, ["KeyframeResolver"]);
1868
1868
  super(options);
@@ -2285,7 +2285,7 @@ function makeNoneKeyframesAnimatable(unresolvedKeyframes, noneKeyframeIndexes, n
2285
2285
  }
2286
2286
  }
2287
2287
  }
2288
- var DOMKeyframesResolver = /*#__PURE__*/ class extends KeyframeResolver {
2288
+ var DOMKeyframesResolver = 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 = /*#__PURE__*/ class extends BaseAnimation {
2470
+ var AcceleratedAnimation = class extends BaseAnimation {
2471
2471
  constructor(options) {
2472
2472
  super(options);
2473
2473
  const { name, motionValue: motionValue2, keyframes: keyframes2, } = this.options;
@@ -2658,7 +2658,7 @@ function moveItem([...arr], fromIndex, toIndex) {
2658
2658
  }
2659
2659
  return arr;
2660
2660
  }
2661
- var SubscriptionManager = /*#__PURE__*/ class {
2661
+ var SubscriptionManager = 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 = /*#__PURE__*/ class {
2697
+ var MotionValue = class {
2698
2698
  /**
2699
2699
  * @param init - The initiating value
2700
2700
  * @param config - Optional configuration options
@@ -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 = /*#__PURE__*/ class {
3019
+ var GroupPlaybackControls = class {
3020
3020
  constructor(animations2) {
3021
3021
  this.stop = () => this.runAll('stop');
3022
3022
  this.animations = animations2.filter(Boolean);
@@ -3478,14 +3478,14 @@ function createState() {
3478
3478
  exit: createTypeState(),
3479
3479
  };
3480
3480
  }
3481
- var Feature = /*#__PURE__*/ class {
3481
+ var Feature = 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 = /*#__PURE__*/ class extends Feature {
3488
+ var AnimationFeature = 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 = /*#__PURE__*/ class extends Feature {
3518
3518
  unmount() { }
3519
3519
  };
3520
3520
  var id = 0;
3521
- var ExitAnimationFeature = /*#__PURE__*/ class extends Feature {
3521
+ var ExitAnimationFeature = 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 = /*#__PURE__*/ class {
3632
+ var FlatTree = 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 = /*#__PURE__*/ class {
3749
+ var VisualElement = 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.
@@ -4510,13 +4510,13 @@ function addHoverEvent(node, isActive) {
4510
4510
  passive: !node.getProps()[callbackName],
4511
4511
  });
4512
4512
  }
4513
- var HoverGesture = /*#__PURE__*/ class extends Feature {
4513
+ var HoverGesture = 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 = /*#__PURE__*/ class extends Feature {
4519
+ var FocusGesture = 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 = /*#__PURE__*/ class extends Feature {
4565
+ var PressGesture = class extends Feature {
4566
4566
  constructor() {
4567
4567
  super(...arguments);
4568
4568
  this.removeStartListeners = noop;
@@ -4697,7 +4697,7 @@ var thresholdNames = {
4697
4697
  some: 0,
4698
4698
  all: 1,
4699
4699
  };
4700
- var InViewFeature = /*#__PURE__*/ class extends Feature {
4700
+ var InViewFeature = 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 = /*#__PURE__*/ class {
4766
+ var PanSession = 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 = /*#__PURE__*/ class {
5130
+ var VisualElementDragControls = 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 = /*#__PURE__*/ class extends Feature {
5487
+ var DragGesture = 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 = /*#__PURE__*/ class extends Feature {
5511
+ var PanGesture = 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 = /*#__PURE__*/ class extends Component {
5601
+ var MeasureLayoutWithContext = 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 = /*#__PURE__*/ class {
5801
+ var NodeStack = class {
5802
5802
  constructor() {
5803
5803
  this.members = [];
5804
5804
  }
@@ -7032,7 +7032,7 @@ var drag = {
7032
7032
  MeasureLayout,
7033
7033
  },
7034
7034
  };
7035
- var DOMVisualElement = /*#__PURE__*/ class extends VisualElement {
7035
+ var DOMVisualElement = class extends VisualElement {
7036
7036
  constructor() {
7037
7037
  super(...arguments);
7038
7038
  this.KeyframeResolver = DOMKeyframesResolver;
@@ -7051,7 +7051,7 @@ var DOMVisualElement = /*#__PURE__*/ class extends VisualElement {
7051
7051
  function getComputedStyle2(element) {
7052
7052
  return window.getComputedStyle(element);
7053
7053
  }
7054
- var HTMLVisualElement = /*#__PURE__*/ class extends DOMVisualElement {
7054
+ var HTMLVisualElement = class extends DOMVisualElement {
7055
7055
  constructor() {
7056
7056
  super(...arguments);
7057
7057
  this.type = 'html';
@@ -7093,7 +7093,7 @@ var HTMLVisualElement = /*#__PURE__*/ class extends DOMVisualElement {
7093
7093
  renderHTML(instance, renderState, styleProp, projection);
7094
7094
  }
7095
7095
  };
7096
- var SVGVisualElement = /*#__PURE__*/ class extends DOMVisualElement {
7096
+ var SVGVisualElement = 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 = /*#__PURE__*/ class extends React2.Component {
7176
+ var PopChildMeasure = 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) {
@@ -8164,7 +8164,7 @@ function useTime() {
8164
8164
  useAnimationFrame((t) => time2.set(t));
8165
8165
  return time2;
8166
8166
  }
8167
- var WillChangeMotionValue = /*#__PURE__*/ class extends MotionValue {
8167
+ var WillChangeMotionValue = class extends MotionValue {
8168
8168
  constructor() {
8169
8169
  super(...arguments);
8170
8170
  this.members = [];
@@ -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 = /*#__PURE__*/ class {
8652
+ var DragControls = 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 = /*#__PURE__*/ class extends VisualElement {
8844
+ var StateVisualElement = 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.VEJ3JK5Y.js
8993
+ // https :https://app.framerstatic.com/framer.K4XHQ4DX.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 = /*#__PURE__*/ class {
9006
+ var Hsluv2 = 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 = /*#__PURE__*/ class extends Error {
10690
+ var NotFoundError = class extends Error {
10691
10691
  };
10692
- var ErrorBoundaryCaughtError = /*#__PURE__*/ class extends Error {
10692
+ var ErrorBoundaryCaughtError = class extends Error {
10693
10693
  };
10694
- var ErrorBoundary = /*#__PURE__*/ class extends Component {
10694
+ var ErrorBoundary = class extends Component {
10695
10695
  constructor(props) {
10696
10696
  super(props);
10697
10697
  this.state = {
@@ -11759,7 +11759,7 @@ function RoutesProvider({ routes, children, }) {
11759
11759
  children,
11760
11760
  });
11761
11761
  }
11762
- var SuspenseErrorBoundary = /*#__PURE__*/ class extends Component {
11762
+ var SuspenseErrorBoundary = class extends Component {
11763
11763
  constructor() {
11764
11764
  super(...arguments);
11765
11765
  this.state = {
@@ -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 = /*#__PURE__*/ class {
12329
+ var Observers = 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 = /*#__PURE__*/ class {
12452
+ var AnimatableValue = 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 = /*#__PURE__*/ class {
12644
+ var BezierAnimator = class {
12645
12645
  constructor(options, interpolation) {
12646
12646
  this.interpolation = interpolation;
12647
12647
  __publicField(this, 'unitBezier');
@@ -12692,7 +12692,7 @@ var BezierAnimator = /*#__PURE__*/ class {
12692
12692
  return 1 / (200 * duration);
12693
12693
  }
12694
12694
  };
12695
- var UnitBezier = /*#__PURE__*/ class {
12695
+ var UnitBezier = class {
12696
12696
  constructor(point1, point2) {
12697
12697
  __publicField(this, 'a');
12698
12698
  __publicField(this, 'b');
@@ -12745,7 +12745,7 @@ var UnitBezier = /*#__PURE__*/ class {
12745
12745
  return t2;
12746
12746
  }
12747
12747
  };
12748
- var Integrator = /*#__PURE__*/ class {
12748
+ var Integrator = class {
12749
12749
  constructor(accelerationFunction) {
12750
12750
  __publicField(this, 'accelerationForState');
12751
12751
  this.accelerationForState = accelerationFunction;
@@ -12780,7 +12780,7 @@ var Integrator = /*#__PURE__*/ class {
12780
12780
  return output;
12781
12781
  }
12782
12782
  };
12783
- var FrictionAnimator = /*#__PURE__*/ class {
12783
+ var FrictionAnimator = 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 = /*#__PURE__*/ class {
12963
+ var SpringAnimator = 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 = /*#__PURE__*/ class {
13045
+ var InertialScrollAnimator = class {
13046
13046
  constructor(options) {
13047
13047
  __publicField(this, 'options');
13048
13048
  __publicField(this, 'current');
@@ -14237,7 +14237,7 @@ var DefaultInterpolationOptions = {
14237
14237
  colorModel: 'husl',
14238
14238
  /* HUSL */
14239
14239
  };
14240
- var ValueInterpolation = /*#__PURE__*/ class {
14240
+ var ValueInterpolation = 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 = /*#__PURE__*/ class {
14293
+ var PrecalculatedAnimator = class {
14294
14294
  constructor(options) {
14295
14295
  __publicField(this, 'animator');
14296
14296
  __publicField(this, 'values');
@@ -14350,7 +14350,7 @@ var PrecalculatedAnimator = /*#__PURE__*/ class {
14350
14350
  }
14351
14351
  };
14352
14352
  var EventEmitter3 = /* @__PURE__ */ (() => require_eventemitter3().EventEmitter)();
14353
- var EventEmitter = /*#__PURE__*/ class {
14353
+ var EventEmitter = 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 = /*#__PURE__*/ class extends EventEmitter {
14472
+ var Loop = 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 = /*#__PURE__*/ class {
14684
+ var AnimationDriver = class {
14685
14685
  constructor(animator, updateCallback, finishedCallback) {
14686
14686
  this.animator = animator;
14687
14687
  this.updateCallback = updateCallback;
@@ -14708,7 +14708,7 @@ var AnimationDriver = /*#__PURE__*/ class {
14708
14708
  return this.animator.isFinished();
14709
14709
  }
14710
14710
  };
14711
- var MainLoopAnimationDriver = /*#__PURE__*/ class extends AnimationDriver {
14711
+ var MainLoopAnimationDriver = 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 = /*#__PURE__*/ class {
14732
+ var FramerAnimation = class {
14733
14733
  /**
14734
14734
  * @internal
14735
14735
  */
@@ -15348,7 +15348,7 @@ function getColorsFromTheme(theme, type) {
15348
15348
  screenColor: isDarkTheme ? '#333' : '#eee',
15349
15349
  };
15350
15350
  }
15351
- var ErrorBoundary2 = /*#__PURE__*/ class extends Component {
15351
+ var ErrorBoundary2 = class extends Component {
15352
15352
  constructor() {
15353
15353
  super(...arguments);
15354
15354
  __publicField(this, 'state', {});
@@ -17160,16 +17160,16 @@ var richTextCSSRules = [
17160
17160
  ol.framer-text,
17161
17161
  ul.framer-text,
17162
17162
  span.framer-text:not([data-text-fill]) {
17163
- font-family: var(--framer-font-family, Inter, Inter Placeholder, sans-serif);
17164
- font-style: var(--framer-font-style, normal);
17165
- font-weight: var(--framer-font-weight, 400);
17166
- color: var(--framer-text-color, #000);
17167
- font-size: calc(var(--framer-font-size, 16px) * var(--framer-font-size-scale, 1));
17168
- letter-spacing: var(--framer-letter-spacing, 0);
17169
- text-transform: var(--framer-text-transform, none);
17170
- text-decoration: var(--framer-text-decoration, none);
17171
- line-height: var(--framer-line-height, 1.2em);
17172
- text-align: var(--framer-text-alignment, start);
17163
+ font-family: var(--framer-blockquote-font-family, var(--framer-font-family, Inter, Inter Placeholder, sans-serif));
17164
+ font-style: var(--framer-blockquote-font-style, var(--framer-font-style, normal));
17165
+ font-weight: var(--framer-blockquote-font-weight, var(--framer-font-weight, 400));
17166
+ color: var(--framer-blockquote-text-color, var(--framer-text-color, #000));
17167
+ font-size: calc(var(--framer-blockquote-font-size, var(--framer-font-size, 16px)) * var(--framer-font-size-scale, 1));
17168
+ letter-spacing: var(--framer-blockquote-letter-spacing, var(--framer-letter-spacing, 0));
17169
+ text-transform: var(--framer-blockquote-text-transform, var(--framer-text-transform, none));
17170
+ text-decoration: var(--framer-blockquote-text-decoration, var(--framer-text-decoration, none));
17171
+ line-height: var(--framer-blockquote-line-height, var(--framer-line-height, 1.2em));
17172
+ text-align: var(--framer-blockquote-text-alignment, var(--framer-text-alignment, start));
17173
17173
  -webkit-text-stroke-width: var(--framer-text-stroke-width, initial);
17174
17174
  -webkit-text-stroke-color: var(--framer-text-stroke-color, initial);
17175
17175
  }
@@ -17182,23 +17182,23 @@ var richTextCSSRules = [
17182
17182
  `, /* css */
17183
17183
  `
17184
17184
  strong.framer-text {
17185
- font-family: var(--framer-font-family-bold);
17186
- font-style: var(--framer-font-style-bold);
17187
- font-weight: var(--framer-font-weight-bold, bolder);
17185
+ font-family: var(--framer-blockquote-font-family-bold, var(--framer-font-family-bold));
17186
+ font-style: var(--framer-blockquote-font-style-bold, var(--framer-font-style-bold));
17187
+ font-weight: var(--framer-blockquote-font-weight-bold, var(--framer-font-weight-bold, bolder));
17188
17188
  }
17189
17189
  `, /* css */
17190
17190
  `
17191
17191
  em.framer-text {
17192
- font-family: var(--framer-font-family-italic);
17193
- font-style: var(--framer-font-style-italic, italic);
17194
- font-weight: var(--framer-font-weight-italic);
17192
+ font-family: var(--framer-blockquote-font-family-italic, var(--framer-font-family-italic));
17193
+ font-style: var(--framer-blockquote-font-style-italic, var(--framer-font-style-italic, italic));
17194
+ font-weight: var(--framer-blockquote-font-weight-italic, var(--framer-font-weight-italic));
17195
17195
  }
17196
17196
  `, /* css */
17197
17197
  `
17198
17198
  em.framer-text > strong.framer-text {
17199
- font-family: var(--framer-font-family-bold-italic);
17200
- font-style: var(--framer-font-style-bold-italic, italic);
17201
- font-weight: var(--framer-font-weight-bold-italic, bolder);
17199
+ font-family: var(--framer-blockquote-font-family-bold-italic, var(--framer-font-family-bold-italic));
17200
+ font-style: var(--framer-blockquote-font-style-bold-italic, var(--framer-font-style-bold-italic, italic));
17201
+ font-weight: var(--framer-blockquote-font-weight-bold-italic, var(--framer-font-weight-bold-italic, bolder));
17202
17202
  }
17203
17203
  `, /* css */
17204
17204
  `
@@ -17213,7 +17213,7 @@ var richTextCSSRules = [
17213
17213
  ol.framer-text:not(:first-child),
17214
17214
  ul.framer-text:not(:first-child),
17215
17215
  .framer-image.framer-text:not(:first-child) {
17216
- margin-top: var(--framer-paragraph-spacing, 0);
17216
+ margin-top: var(--framer-blockquote-paragraph-spacing, var(--framer-paragraph-spacing, 0));
17217
17217
  }
17218
17218
  `,
17219
17219
  // The first child of a list item is a paragraph. If the second child is a
@@ -17242,8 +17242,8 @@ var richTextCSSRules = [
17242
17242
  -webkit-background-clip: text;
17243
17243
  /* make this a transparent color if you want to visualise the clipping */
17244
17244
  -webkit-text-fill-color: transparent;
17245
- padding: max(0em, calc(calc(1.3em - var(--framer-line-height, 1.3em)) / 2));
17246
- margin: min(0em, calc(calc(1.3em - var(--framer-line-height, 1.3em)) / -2));
17245
+ padding: max(0em, calc(calc(1.3em - var(--framer-blockquote-line-height, var(--framer-line-height, 1.3em))) / 2));
17246
+ margin: min(0em, calc(calc(1.3em - var(--framer-blockquote-line-height, var(--framer-line-height, 1.3em))) / -2));
17247
17247
  }
17248
17248
  `, /* css */
17249
17249
  `
@@ -17258,6 +17258,15 @@ var richTextCSSRules = [
17258
17258
  line-height: var(--framer-line-height, 1.2em);
17259
17259
  }
17260
17260
  `, /* css */
17261
+ `
17262
+ blockquote.framer-text {
17263
+ margin-block-start: initial;
17264
+ margin-block-end: initial;
17265
+ margin-inline-start: initial;
17266
+ margin-inline-end: initial;
17267
+ unicode-bidi: initial;
17268
+ }
17269
+ `, /* css */
17261
17270
  `
17262
17271
  a.framer-text,
17263
17272
  a.framer-text span.framer-text:not([data-text-fill]) {
@@ -20001,7 +20010,7 @@ function useForceUpdate3() {
20001
20010
  }
20002
20011
  var ResizeObserverPolyfill = /* @__PURE__ */ (() => require_resize_observer_umd().ResizeObserver)();
20003
20012
  var DEFAULT_SIZE = 200;
20004
- var SharedObserver = /*#__PURE__*/ class {
20013
+ var SharedObserver = class {
20005
20014
  constructor() {
20006
20015
  var _j;
20007
20016
  __publicField(this, 'sharedResizeObserver');
@@ -20356,7 +20365,6 @@ function resetSetStyle(element, key7, toValue, microtask2 = true) {
20356
20365
  }
20357
20366
  }
20358
20367
  var Layer = /* @__PURE__ */ (() => {
20359
- /*#__PURE__*/
20360
20368
  class Layer2 extends Component {
20361
20369
  constructor() {
20362
20370
  super(...arguments);
@@ -21123,7 +21131,7 @@ var SharedLayoutContext = /* @__PURE__ */ React4.createContext({
21123
21131
  scheduleProjectionDidUpdate: () => { },
21124
21132
  initLead: () => { },
21125
21133
  });
21126
- var SharedLayoutRoot = /*#__PURE__*/ class extends Component {
21134
+ var SharedLayoutRoot = class extends Component {
21127
21135
  constructor() {
21128
21136
  super(...arguments);
21129
21137
  __publicField(this, 'shouldAnimate', false);
@@ -21209,7 +21217,7 @@ function MagicMotionCrossfadeRoot(props) {
21209
21217
  children: props.children,
21210
21218
  });
21211
21219
  }
21212
- var SharedIntersectionObserver = /*#__PURE__*/ class {
21220
+ var SharedIntersectionObserver = class {
21213
21221
  constructor(options) {
21214
21222
  __publicField(this, 'sharedIntersectionObserver');
21215
21223
  __publicField(this, 'callbacks', /* @__PURE__ */ new WeakMap());
@@ -21345,7 +21353,7 @@ function pointForEvent(event, customTarget = null) {
21345
21353
  };
21346
21354
  return point2;
21347
21355
  }
21348
- var FramerEvent = /*#__PURE__*/ class {
21356
+ var FramerEvent = class {
21349
21357
  /**
21350
21358
  * @internal
21351
21359
  */
@@ -21454,7 +21462,7 @@ var DraggingContext = /* @__PURE__ */ React4.createContext({
21454
21462
  dragging: false,
21455
21463
  });
21456
21464
  function WithDragging(Component15) {
21457
- const _WithDraggingHOC = /*#__PURE__*/ class extends React4.Component {
21465
+ const _WithDraggingHOC = class extends React4.Component {
21458
21466
  constructor(props, defaultProps) {
21459
21467
  super(props, defaultProps);
21460
21468
  __publicField(this, 'state', {
@@ -22203,7 +22211,7 @@ var ObservableObject = /* @__PURE__ */ (() => {
22203
22211
  };
22204
22212
  return ObservableObject2;
22205
22213
  })();
22206
- var ObservableObjectProxyHandler = /*#__PURE__*/ class {
22214
+ var ObservableObjectProxyHandler = class {
22207
22215
  constructor() {
22208
22216
  __publicField(this, 'set', (target, key7, value, receiver) => {
22209
22217
  if (key7 === $private) {
@@ -22854,7 +22862,7 @@ function applyLayoutProp(style, props, key7) {
22854
22862
  }
22855
22863
  }
22856
22864
  var DeprecatedFrame = /* @__PURE__ */ (() => {
22857
- const _DeprecatedFrameInner = /*#__PURE__*/ class extends Layer {
22865
+ const _DeprecatedFrameInner = class extends Layer {
22858
22866
  constructor() {
22859
22867
  super(...arguments);
22860
22868
  __publicField(this, 'element', null);
@@ -23213,7 +23221,7 @@ var Frame = /* @__PURE__ */ (() => {
23213
23221
  FrameInner['displayName'] = 'Frame';
23214
23222
  return FrameInner;
23215
23223
  })();
23216
- var LayoutTree = /*#__PURE__*/ class extends Component {
23224
+ var LayoutTree = class extends Component {
23217
23225
  constructor() {
23218
23226
  super(...arguments);
23219
23227
  __publicField(this, 'layoutMaybeMutated');
@@ -23578,7 +23586,7 @@ var allAnimatableProperties = {
23578
23586
  originZ: 0,
23579
23587
  opacity: 1,
23580
23588
  };
23581
- var NavigatorMock = /*#__PURE__*/ class {
23589
+ var NavigatorMock = class {
23582
23590
  constructor() {
23583
23591
  __publicField(this, 'warning', () => {
23584
23592
  warnOnce2('The Navigator API is only available inside of Framer: https://www.framer.com/');
@@ -24546,7 +24554,7 @@ var NavigationTransitionType = /* @__PURE__ */ ((NavigationTransitionType2) => {
24546
24554
  return NavigationTransitionType2;
24547
24555
  })(NavigationTransitionType || {});
24548
24556
  function WithNavigator(BaseComponent, navigationTransition, navigationTransitionDirection, NavigationTarget, navigationTransitionOptions) {
24549
- const InternalWithNavigator = /*#__PURE__*/ class extends React4.Component {
24557
+ const InternalWithNavigator = class extends React4.Component {
24550
24558
  render() {
24551
24559
  return /* @__PURE__ */ jsx(NavigationContext.Consumer, {
24552
24560
  children: (navigation) => {
@@ -25896,7 +25904,7 @@ function stateName(state) {
25896
25904
  function containsBitmask(value, bitmask) {
25897
25905
  return (value & bitmask) !== 0;
25898
25906
  }
25899
- var GestureRecognizer = /*#__PURE__*/ class {
25907
+ var GestureRecognizer = class {
25900
25908
  constructor() {
25901
25909
  __publicField(this, '_state', 2);
25902
25910
  __publicField(this, 'handler');
@@ -25963,7 +25971,7 @@ var GestureRecognizer = /*#__PURE__*/ class {
25963
25971
  }
25964
25972
  }
25965
25973
  };
25966
- var MouseWheelGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
25974
+ var MouseWheelGestureRecognizer = class extends GestureRecognizer {
25967
25975
  constructor() {
25968
25976
  super(...arguments);
25969
25977
  __publicField(this, 'startEvent');
@@ -25996,7 +26004,7 @@ var MouseWheelGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer
25996
26004
  this.onMouseWheelEnd(event);
25997
26005
  }
25998
26006
  };
25999
- var PanGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
26007
+ var PanGestureRecognizer = class extends GestureRecognizer {
26000
26008
  constructor() {
26001
26009
  super(...arguments);
26002
26010
  __publicField(this, 'startEvent');
@@ -26060,7 +26068,7 @@ var PanGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
26060
26068
  }
26061
26069
  }
26062
26070
  };
26063
- var TapGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
26071
+ var TapGestureRecognizer = class extends GestureRecognizer {
26064
26072
  constructor() {
26065
26073
  super(...arguments);
26066
26074
  __publicField(this, 'eventType', 'tap');
@@ -26089,7 +26097,7 @@ var TapGestureRecognizer = /*#__PURE__*/ class extends GestureRecognizer {
26089
26097
  }
26090
26098
  }
26091
26099
  };
26092
- var FramerEventSession = /*#__PURE__*/ class {
26100
+ var FramerEventSession = class {
26093
26101
  constructor(dispatcher, customOrigin) {
26094
26102
  __publicField(this, 'events', []);
26095
26103
  __publicField(this, 'recognizers', []);
@@ -26251,7 +26259,7 @@ var FramerEventSession = /*#__PURE__*/ class {
26251
26259
  return subtract(event.devicePoint, this.startEvent.devicePoint);
26252
26260
  }
26253
26261
  };
26254
- var MouseEventListener = /*#__PURE__*/ class extends Component {
26262
+ var MouseEventListener = class extends Component {
26255
26263
  constructor() {
26256
26264
  super(...arguments);
26257
26265
  __publicField(this, 'domMouseDown', (originalEvent) => {
@@ -26303,7 +26311,7 @@ var MouseEventListener = /*#__PURE__*/ class extends Component {
26303
26311
  safeWindow.removeEventListener('wheel', this.domMouseWheel);
26304
26312
  }
26305
26313
  };
26306
- var TouchEventListener = /*#__PURE__*/ class extends Component {
26314
+ var TouchEventListener = class extends Component {
26307
26315
  constructor() {
26308
26316
  super(...arguments);
26309
26317
  __publicField(this, 'domTouchStart', (originalEvent) => {
@@ -27275,7 +27283,7 @@ function useObserveData() {
27275
27283
  const context = React4.useContext(DataObserverContext);
27276
27284
  return !isNaN(context.update);
27277
27285
  }
27278
- var DataObserver = /*#__PURE__*/ class extends Component {
27286
+ var DataObserver = class extends Component {
27279
27287
  constructor() {
27280
27288
  super(...arguments);
27281
27289
  __publicField(this, 'observers', []);
@@ -28331,7 +28339,7 @@ var withGeneratedLayoutId = (Component15) => React4.forwardRef((props, ref) => {
28331
28339
  const layoutId = useLayoutId2(props);
28332
28340
  return /* @__PURE__ */ jsx(Component15, Object.assign(Object.assign({ layoutId }, props), { layoutIdKey: void 0, duplicatedFrom: void 0, ref }));
28333
28341
  });
28334
- var ContainerErrorBoundary = /*#__PURE__*/ class extends Component {
28342
+ var ContainerErrorBoundary = class extends Component {
28335
28343
  constructor() {
28336
28344
  super(...arguments);
28337
28345
  __publicField(this, 'state', {
@@ -29227,7 +29235,7 @@ function Floating(_j) {
29227
29235
  onDismiss,
29228
29236
  });
29229
29237
  return ReactDOM.createPortal(
29230
- /* @__PURE__ */ jsxs('div', Object.assign(Object.assign({ ref: floatingPositionRef, className: className2, style: {
29238
+ /* @__PURE__ */ jsxs(motion.div, Object.assign(Object.assign({ ref: floatingPositionRef, className: className2, style: {
29231
29239
  // Initially rendered as hidden, but the layout effect will set
29232
29240
  // to visible when the position is calculated.
29233
29241
  visibility: 'hidden',
@@ -29262,7 +29270,7 @@ function Floating(_j) {
29262
29270
  ] })), (_k = document.querySelector(portalSelector)) !== null && _k !== void 0 ? _k : document.body);
29263
29271
  }
29264
29272
  var GeneratedComponentContext = /* @__PURE__ */ React4.createContext(void 0);
29265
- var LazyValue = /*#__PURE__*/ class {
29273
+ var LazyValue = class {
29266
29274
  constructor(resolver) {
29267
29275
  this.resolver = resolver;
29268
29276
  __publicField(this, 'status');
@@ -30402,7 +30410,7 @@ function getCollection(collection, locale) {
30402
30410
  return collection;
30403
30411
  });
30404
30412
  }
30405
- var CompatibilityDatabaseCollection = /*#__PURE__*/ class {
30413
+ var CompatibilityDatabaseCollection = class {
30406
30414
  constructor(collection, locale) {
30407
30415
  this.collection = collection;
30408
30416
  this.locale = locale;
@@ -30667,12 +30675,12 @@ function compare(left, right, collation) {
30667
30675
  }
30668
30676
  }
30669
30677
  var INDEX_IDENTIFIER = 'index';
30670
- var ScalarExpression = /*#__PURE__*/ class {
30678
+ var ScalarExpression = class {
30671
30679
  static from(expression, schema) {
30672
30680
  return convertExpression(expression, schema, void 0);
30673
30681
  }
30674
30682
  };
30675
- var ScalarIdentifier = /*#__PURE__*/ class extends ScalarExpression {
30683
+ var ScalarIdentifier = class extends ScalarExpression {
30676
30684
  constructor(schema, name) {
30677
30685
  var _j;
30678
30686
  super();
@@ -30707,7 +30715,7 @@ var ScalarIdentifier = /*#__PURE__*/ class extends ScalarExpression {
30707
30715
  return false;
30708
30716
  }
30709
30717
  };
30710
- var ScalarLiteralValue = /*#__PURE__*/ class extends ScalarExpression {
30718
+ var ScalarLiteralValue = class extends ScalarExpression {
30711
30719
  constructor(definition, value) {
30712
30720
  super();
30713
30721
  this.definition = definition;
@@ -30774,7 +30782,7 @@ var ScalarLiteralValue = /*#__PURE__*/ class extends ScalarExpression {
30774
30782
  return true;
30775
30783
  }
30776
30784
  };
30777
- var ScalarFunctionCall = /*#__PURE__*/ class extends ScalarExpression {
30785
+ var ScalarFunctionCall = class extends ScalarExpression {
30778
30786
  constructor(argumentExpressions) {
30779
30787
  super();
30780
30788
  this.argumentExpressions = argumentExpressions;
@@ -30800,7 +30808,7 @@ var ScalarFunctionCall = /*#__PURE__*/ class extends ScalarExpression {
30800
30808
  });
30801
30809
  }
30802
30810
  };
30803
- var ScalarFunctionCallContains = /*#__PURE__*/ class extends ScalarFunctionCall {
30811
+ var ScalarFunctionCallContains = class extends ScalarFunctionCall {
30804
30812
  constructor() {
30805
30813
  super(...arguments);
30806
30814
  __publicField(this, 'definition', ScalarFunctionCallContains.getDefinition());
@@ -30838,7 +30846,7 @@ var ScalarFunctionCallContains = /*#__PURE__*/ class extends ScalarFunctionCall
30838
30846
  };
30839
30847
  }
30840
30848
  };
30841
- var ScalarFunctionCallStartsWith = /*#__PURE__*/ class extends ScalarFunctionCall {
30849
+ var ScalarFunctionCallStartsWith = class extends ScalarFunctionCall {
30842
30850
  constructor() {
30843
30851
  super(...arguments);
30844
30852
  __publicField(this, 'definition', ScalarFunctionCallStartsWith.getDefinition());
@@ -30876,7 +30884,7 @@ var ScalarFunctionCallStartsWith = /*#__PURE__*/ class extends ScalarFunctionCal
30876
30884
  };
30877
30885
  }
30878
30886
  };
30879
- var ScalarFunctionCallEndsWith = /*#__PURE__*/ class extends ScalarFunctionCall {
30887
+ var ScalarFunctionCallEndsWith = class extends ScalarFunctionCall {
30880
30888
  constructor() {
30881
30889
  super(...arguments);
30882
30890
  __publicField(this, 'definition', ScalarFunctionCallEndsWith.getDefinition());
@@ -30914,7 +30922,7 @@ var ScalarFunctionCallEndsWith = /*#__PURE__*/ class extends ScalarFunctionCall
30914
30922
  };
30915
30923
  }
30916
30924
  };
30917
- var ScalarCase = /*#__PURE__*/ class extends ScalarExpression {
30925
+ var ScalarCase = class extends ScalarExpression {
30918
30926
  constructor(valueExpression, conditions, elseExpression) {
30919
30927
  super();
30920
30928
  this.valueExpression = valueExpression;
@@ -30999,13 +31007,13 @@ var ScalarCase = /*#__PURE__*/ class extends ScalarExpression {
30999
31007
  });
31000
31008
  }
31001
31009
  };
31002
- var ScalarCaseCondition = /*#__PURE__*/ class {
31010
+ var ScalarCaseCondition = class {
31003
31011
  constructor(whenExpression, thenExpression) {
31004
31012
  this.whenExpression = whenExpression;
31005
31013
  this.thenExpression = thenExpression;
31006
31014
  }
31007
31015
  };
31008
- var ScalarUnaryOperation = /*#__PURE__*/ class extends ScalarExpression {
31016
+ var ScalarUnaryOperation = class extends ScalarExpression {
31009
31017
  constructor(valueExpression) {
31010
31018
  super();
31011
31019
  this.valueExpression = valueExpression;
@@ -31018,7 +31026,7 @@ var ScalarUnaryOperation = /*#__PURE__*/ class extends ScalarExpression {
31018
31026
  return this.valueExpression.canEvaluate();
31019
31027
  }
31020
31028
  };
31021
- var ScalarUnaryOperationNot = /*#__PURE__*/ class extends ScalarUnaryOperation {
31029
+ var ScalarUnaryOperationNot = class extends ScalarUnaryOperation {
31022
31030
  constructor() {
31023
31031
  super(...arguments);
31024
31032
  __publicField(this, 'definition', ScalarUnaryOperationNot.getDefinition());
@@ -31040,7 +31048,7 @@ var ScalarUnaryOperationNot = /*#__PURE__*/ class extends ScalarUnaryOperation {
31040
31048
  };
31041
31049
  }
31042
31050
  };
31043
- var ScalarLogicalOperation = /*#__PURE__*/ class extends ScalarExpression {
31051
+ var ScalarLogicalOperation = class extends ScalarExpression {
31044
31052
  constructor(operandExpressions) {
31045
31053
  super();
31046
31054
  this.operandExpressions = operandExpressions;
@@ -31065,7 +31073,7 @@ var ScalarLogicalOperation = /*#__PURE__*/ class extends ScalarExpression {
31065
31073
  });
31066
31074
  }
31067
31075
  };
31068
- var ScalarLogicalOperationAnd = /*#__PURE__*/ class extends ScalarLogicalOperation {
31076
+ var ScalarLogicalOperationAnd = class extends ScalarLogicalOperation {
31069
31077
  constructor() {
31070
31078
  super(...arguments);
31071
31079
  __publicField(this, 'operator', 'AND');
@@ -31081,7 +31089,7 @@ var ScalarLogicalOperationAnd = /*#__PURE__*/ class extends ScalarLogicalOperati
31081
31089
  };
31082
31090
  }
31083
31091
  };
31084
- var ScalarLogicalOperationOr = /*#__PURE__*/ class extends ScalarLogicalOperation {
31092
+ var ScalarLogicalOperationOr = class extends ScalarLogicalOperation {
31085
31093
  constructor() {
31086
31094
  super(...arguments);
31087
31095
  __publicField(this, 'operator', 'OR');
@@ -31097,7 +31105,7 @@ var ScalarLogicalOperationOr = /*#__PURE__*/ class extends ScalarLogicalOperatio
31097
31105
  };
31098
31106
  }
31099
31107
  };
31100
- var ScalarComparison = /*#__PURE__*/ class extends ScalarExpression {
31108
+ var ScalarComparison = class extends ScalarExpression {
31101
31109
  constructor(leftExpression, rightExpression) {
31102
31110
  super();
31103
31111
  this.leftExpression = leftExpression;
@@ -31125,7 +31133,7 @@ var ScalarComparison = /*#__PURE__*/ class extends ScalarExpression {
31125
31133
  return this.leftExpression.canEvaluate() && this.rightExpression.canEvaluate();
31126
31134
  }
31127
31135
  };
31128
- var ScalarComparisonEquals = /*#__PURE__*/ class extends ScalarComparison {
31136
+ var ScalarComparisonEquals = class extends ScalarComparison {
31129
31137
  constructor() {
31130
31138
  super(...arguments);
31131
31139
  __publicField(this, 'operator', '=');
@@ -31139,7 +31147,7 @@ var ScalarComparisonEquals = /*#__PURE__*/ class extends ScalarComparison {
31139
31147
  };
31140
31148
  }
31141
31149
  };
31142
- var ScalarComparisonNotEquals = /*#__PURE__*/ class extends ScalarComparison {
31150
+ var ScalarComparisonNotEquals = class extends ScalarComparison {
31143
31151
  constructor() {
31144
31152
  super(...arguments);
31145
31153
  __publicField(this, 'operator', '!=');
@@ -31153,7 +31161,7 @@ var ScalarComparisonNotEquals = /*#__PURE__*/ class extends ScalarComparison {
31153
31161
  };
31154
31162
  }
31155
31163
  };
31156
- var ScalarComparisonLessThan = /*#__PURE__*/ class extends ScalarComparison {
31164
+ var ScalarComparisonLessThan = class extends ScalarComparison {
31157
31165
  constructor() {
31158
31166
  super(...arguments);
31159
31167
  __publicField(this, 'operator', '<');
@@ -31167,7 +31175,7 @@ var ScalarComparisonLessThan = /*#__PURE__*/ class extends ScalarComparison {
31167
31175
  };
31168
31176
  }
31169
31177
  };
31170
- var ScalarComparisonLessThanOrEqual = /*#__PURE__*/ class extends ScalarComparison {
31178
+ var ScalarComparisonLessThanOrEqual = class extends ScalarComparison {
31171
31179
  constructor() {
31172
31180
  super(...arguments);
31173
31181
  __publicField(this, 'operator', '<=');
@@ -31181,7 +31189,7 @@ var ScalarComparisonLessThanOrEqual = /*#__PURE__*/ class extends ScalarComparis
31181
31189
  };
31182
31190
  }
31183
31191
  };
31184
- var ScalarComparisonGreaterThan = /*#__PURE__*/ class extends ScalarComparison {
31192
+ var ScalarComparisonGreaterThan = class extends ScalarComparison {
31185
31193
  constructor() {
31186
31194
  super(...arguments);
31187
31195
  __publicField(this, 'operator', '>');
@@ -31195,7 +31203,7 @@ var ScalarComparisonGreaterThan = /*#__PURE__*/ class extends ScalarComparison {
31195
31203
  };
31196
31204
  }
31197
31205
  };
31198
- var ScalarComparisonGreaterThanOrEqual = /*#__PURE__*/ class extends ScalarComparison {
31206
+ var ScalarComparisonGreaterThanOrEqual = class extends ScalarComparison {
31199
31207
  constructor() {
31200
31208
  super(...arguments);
31201
31209
  __publicField(this, 'operator', '>=');
@@ -31209,7 +31217,7 @@ var ScalarComparisonGreaterThanOrEqual = /*#__PURE__*/ class extends ScalarCompa
31209
31217
  };
31210
31218
  }
31211
31219
  };
31212
- var ScalarTypeCast = /*#__PURE__*/ class extends ScalarExpression {
31220
+ var ScalarTypeCast = class extends ScalarExpression {
31213
31221
  constructor(valueExpression) {
31214
31222
  super();
31215
31223
  this.valueExpression = valueExpression;
@@ -31225,7 +31233,7 @@ var ScalarTypeCast = /*#__PURE__*/ class extends ScalarExpression {
31225
31233
  return this.valueExpression.canEvaluate();
31226
31234
  }
31227
31235
  };
31228
- var ScalarTypeCastBoolean = /*#__PURE__*/ class extends ScalarTypeCast {
31236
+ var ScalarTypeCastBoolean = class extends ScalarTypeCast {
31229
31237
  constructor() {
31230
31238
  super(...arguments);
31231
31239
  __publicField(this, 'dataType', 'BOOLEAN');
@@ -31255,7 +31263,7 @@ function convertToBoolean(value) {
31255
31263
  }
31256
31264
  return false;
31257
31265
  }
31258
- var ScalarTypeCastDate = /*#__PURE__*/ class extends ScalarTypeCast {
31266
+ var ScalarTypeCastDate = class extends ScalarTypeCast {
31259
31267
  constructor() {
31260
31268
  super(...arguments);
31261
31269
  __publicField(this, 'dataType', 'DATE');
@@ -31293,7 +31301,7 @@ function convertToDate(value) {
31293
31301
  }
31294
31302
  return null;
31295
31303
  }
31296
- var ScalarTypeCastNumber = /*#__PURE__*/ class extends ScalarTypeCast {
31304
+ var ScalarTypeCastNumber = class extends ScalarTypeCast {
31297
31305
  constructor() {
31298
31306
  super(...arguments);
31299
31307
  __publicField(this, 'dataType', 'NUMBER');
@@ -31330,7 +31338,7 @@ function convertToNumber(value) {
31330
31338
  }
31331
31339
  return null;
31332
31340
  }
31333
- var ScalarTypeCastString = /*#__PURE__*/ class extends ScalarTypeCast {
31341
+ var ScalarTypeCastString = class extends ScalarTypeCast {
31334
31342
  constructor() {
31335
31343
  super(...arguments);
31336
31344
  __publicField(this, 'dataType', 'STRING');
@@ -31763,7 +31771,7 @@ function stringifyExecutionTime(self2, total) {
31763
31771
  function stringifyItems(items) {
31764
31772
  return `(items: ${items})`;
31765
31773
  }
31766
- var QueryPlan = /*#__PURE__*/ class {
31774
+ var QueryPlan = class {
31767
31775
  constructor() {
31768
31776
  __publicField(this, 'executionTime', 0);
31769
31777
  __publicField(this, 'itemCount', 0);
@@ -31778,7 +31786,7 @@ var QueryPlan = /*#__PURE__*/ class {
31778
31786
  });
31779
31787
  }
31780
31788
  };
31781
- var ScanCollectionPlan = /*#__PURE__*/ class extends QueryPlan {
31789
+ var ScanCollectionPlan = class extends QueryPlan {
31782
31790
  constructor(collection) {
31783
31791
  super();
31784
31792
  this.collection = collection;
@@ -31794,7 +31802,7 @@ var ScanCollectionPlan = /*#__PURE__*/ class extends QueryPlan {
31794
31802
  });
31795
31803
  }
31796
31804
  };
31797
- var LookupIndexPlan = /*#__PURE__*/ class extends QueryPlan {
31805
+ var LookupIndexPlan = class extends QueryPlan {
31798
31806
  constructor(index, query) {
31799
31807
  super();
31800
31808
  this.index = index;
@@ -31838,7 +31846,7 @@ var LookupIndexPlan = /*#__PURE__*/ class extends QueryPlan {
31838
31846
  });
31839
31847
  }
31840
31848
  };
31841
- var UnionPlan = /*#__PURE__*/ class extends QueryPlan {
31849
+ var UnionPlan = class extends QueryPlan {
31842
31850
  constructor(childPlans) {
31843
31851
  super();
31844
31852
  this.childPlans = childPlans;
@@ -31870,7 +31878,7 @@ var UnionPlan = /*#__PURE__*/ class extends QueryPlan {
31870
31878
  });
31871
31879
  }
31872
31880
  };
31873
- var IntersectionPlan = /*#__PURE__*/ class extends QueryPlan {
31881
+ var IntersectionPlan = class extends QueryPlan {
31874
31882
  constructor(childPlans) {
31875
31883
  super();
31876
31884
  this.childPlans = childPlans;
@@ -31902,7 +31910,7 @@ var IntersectionPlan = /*#__PURE__*/ class extends QueryPlan {
31902
31910
  });
31903
31911
  }
31904
31912
  };
31905
- var ResolveItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31913
+ var ResolveItemsPlan = class extends QueryPlan {
31906
31914
  constructor(childPlan, collection, richTextResolver, select) {
31907
31915
  super();
31908
31916
  this.childPlan = childPlan;
@@ -31934,7 +31942,7 @@ var ResolveItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31934
31942
  });
31935
31943
  }
31936
31944
  };
31937
- var FilterItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31945
+ var FilterItemsPlan = class extends QueryPlan {
31938
31946
  constructor(childPlan, filterExpression) {
31939
31947
  super();
31940
31948
  this.childPlan = childPlan;
@@ -31956,7 +31964,7 @@ var FilterItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31956
31964
  });
31957
31965
  }
31958
31966
  };
31959
- var SortItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31967
+ var SortItemsPlan = class extends QueryPlan {
31960
31968
  constructor(childPlan, orderExpressions, collection) {
31961
31969
  super();
31962
31970
  this.childPlan = childPlan;
@@ -31999,14 +32007,14 @@ var SortItemsPlan = /*#__PURE__*/ class extends QueryPlan {
31999
32007
  });
32000
32008
  }
32001
32009
  };
32002
- var ScalarOrderExpression = /*#__PURE__*/ class {
32010
+ var ScalarOrderExpression = class {
32003
32011
  constructor(expression, direction, collation) {
32004
32012
  this.expression = expression;
32005
32013
  this.direction = direction;
32006
32014
  this.collation = collation;
32007
32015
  }
32008
32016
  };
32009
- var SliceItemsPlan = /*#__PURE__*/ class extends QueryPlan {
32017
+ var SliceItemsPlan = class extends QueryPlan {
32010
32018
  constructor(childPlan, offsetExpression, limitExpression) {
32011
32019
  super();
32012
32020
  this.childPlan = childPlan;
@@ -32045,7 +32053,7 @@ var SliceItemsPlan = /*#__PURE__*/ class extends QueryPlan {
32045
32053
  });
32046
32054
  }
32047
32055
  };
32048
- var DatabaseItemMap = /*#__PURE__*/ class extends Map {
32056
+ var DatabaseItemMap = class extends Map {
32049
32057
  constructor(items = []) {
32050
32058
  super();
32051
32059
  for (const item of items) {
@@ -32076,7 +32084,7 @@ var DatabaseItemMap = /*#__PURE__*/ class extends Map {
32076
32084
  return [...values,];
32077
32085
  }
32078
32086
  };
32079
- var RichTextResolver = /*#__PURE__*/ class {
32087
+ var RichTextResolver = class {
32080
32088
  constructor(collection) {
32081
32089
  this.collection = collection;
32082
32090
  __publicField(this, 'cache', /* @__PURE__ */ new Map());
@@ -32229,7 +32237,7 @@ function getDatabaseCollection({ data: data2, }, locale) {
32229
32237
  }
32230
32238
  assertNever(data2, 'Unsupported collection type');
32231
32239
  }
32232
- var QueryEngine = /*#__PURE__*/ class {
32240
+ var QueryEngine = class {
32233
32241
  query(query, locale) {
32234
32242
  return __awaiter(this, void 0, void 0, function* () {
32235
32243
  const collection = getDatabaseCollection(query.from, locale);
@@ -32448,7 +32456,7 @@ function createScanCollectionPlan(collection, expression) {
32448
32456
  const plan = new ScanCollectionPlan(collection);
32449
32457
  return new FilterItemsPlan(plan, expression);
32450
32458
  }
32451
- var AnimationCollector = /*#__PURE__*/ class {
32459
+ var AnimationCollector = class {
32452
32460
  constructor() {
32453
32461
  __publicField(this, 'entries', /* @__PURE__ */ new Map());
32454
32462
  }
@@ -33090,7 +33098,7 @@ function usePrototypeNavigate({ preload, } = {}) {
33090
33098
  return false;
33091
33099
  });
33092
33100
  }
33093
- var QueryCache = /*#__PURE__*/ class {
33101
+ var QueryCache = class {
33094
33102
  constructor(queryEngine2) {
33095
33103
  this.queryEngine = queryEngine2;
33096
33104
  __publicField(this, 'cache', /* @__PURE__ */ new Map());
@@ -33345,17 +33353,14 @@ function useVariantState({ variant, defaultVariant: externalDefaultVariant, tran
33345
33353
  if (gestureVariant)
33346
33354
  variants.push(gestureVariant);
33347
33355
  const gestures = enabledGestures == null ? void 0 : enabledGestures[baseVariant];
33348
- const gestureHandlers = {};
33349
- if (gestures == null ? void 0 : gestures.hover) {
33350
- Object.assign(gestureHandlers, {
33351
- onMouseEnter: () => setGestureState({
33352
- isHovered: true,
33353
- }),
33354
- onMouseLeave: () => setGestureState({
33355
- isHovered: false,
33356
- }),
33357
- });
33358
- }
33356
+ const gestureHandlers = {
33357
+ onMouseEnter: () => setGestureState({
33358
+ isHovered: true,
33359
+ }),
33360
+ onMouseLeave: () => setGestureState({
33361
+ isHovered: false,
33362
+ }),
33363
+ };
33359
33364
  if (gestures == null ? void 0 : gestures.pressed) {
33360
33365
  Object.assign(gestureHandlers, {
33361
33366
  onTapStart: () => setGestureState({
@@ -34141,7 +34146,7 @@ var FontSourceNames = /* @__PURE__ */ ((FontSourceNames2) => {
34141
34146
  return FontSourceNames2;
34142
34147
  })(FontSourceNames || {});
34143
34148
  var systemFontFamilyName = 'System Default';
34144
- var LocalFontSource = /*#__PURE__*/ class {
34149
+ var LocalFontSource = class {
34145
34150
  constructor() {
34146
34151
  __publicField(this, 'name', 'local');
34147
34152
  __publicField(this, 'fontFamilies', []);
@@ -34281,7 +34286,7 @@ function getCustomFontName(fileName, properties) {
34281
34286
  const variant = properties.font.preferredSubFamily === '' ? properties.font.fontSubFamily : properties.font.preferredSubFamily;
34282
34287
  return `${fontFamily} ${variant}`;
34283
34288
  }
34284
- var CustomFontSource = /*#__PURE__*/ class {
34289
+ var CustomFontSource = class {
34285
34290
  constructor() {
34286
34291
  __publicField(this, 'name', 'custom');
34287
34292
  __publicField(this, 'fontFamilies', []);
@@ -34462,7 +34467,7 @@ var weightNameToNumber = {
34462
34467
  };
34463
34468
  var weightNames = /* @__PURE__ */ Object.keys(weightNameToNumber);
34464
34469
  var allowedVariantsRegex = /* @__PURE__ */ (() => new RegExp(`^(?:${[...weightNames, 'italic',].join('|')})`, 'u'))();
34465
- var FontshareSource = /*#__PURE__*/ class {
34470
+ var FontshareSource = class {
34466
34471
  constructor() {
34467
34472
  __publicField(this, 'name', 'fontshare');
34468
34473
  __publicField(this, 'fontFamilies', []);
@@ -34594,7 +34599,7 @@ var weightNameToNumber2 = {
34594
34599
  ExtraBold: 800,
34595
34600
  Black: 900,
34596
34601
  };
34597
- var FramerFontSource = /*#__PURE__*/ class {
34602
+ var FramerFontSource = class {
34598
34603
  constructor() {
34599
34604
  __publicField(this, 'name', 'framer');
34600
34605
  __publicField(this, 'fontFamilies', []);
@@ -34651,7 +34656,7 @@ var FramerFontSource = /*#__PURE__*/ class {
34651
34656
  }
34652
34657
  };
34653
34658
  var googleFontSelectorPrefix = 'GF;';
34654
- var GoogleFontSource = /*#__PURE__*/ class {
34659
+ var GoogleFontSource = class {
34655
34660
  constructor() {
34656
34661
  __publicField(this, 'name', 'google');
34657
34662
  __publicField(this, 'fontFamilies', []);
@@ -34757,7 +34762,7 @@ function mapToKnownCategory2(category) {
34757
34762
  var import_fontfaceobserver = __toESM(require_fontfaceobserver_standalone(), 1);
34758
34763
  var FONT_LOADING_TIMEOUT = 5e3;
34759
34764
  var MAX_RETRIES = 3;
34760
- var FontLoadingError = /*#__PURE__*/ class extends Error {
34765
+ var FontLoadingError = class extends Error {
34761
34766
  constructor(message) {
34762
34767
  super(message);
34763
34768
  this.name = 'FontLoadingError';
@@ -34826,7 +34831,7 @@ function isFontReady(family, style, weight) {
34826
34831
  }
34827
34832
  });
34828
34833
  }
34829
- var FontStore = /*#__PURE__*/ class {
34834
+ var FontStore = class {
34830
34835
  constructor() {
34831
34836
  __publicField(this, 'enabled', false);
34832
34837
  __publicField(this, 'bySelector', /* @__PURE__ */ new Map());
@@ -34906,6 +34911,8 @@ var FontStore = /*#__PURE__*/ class {
34906
34911
  return fontFamily;
34907
34912
  }
34908
34913
  getFontBySelector(selector, createFont = true) {
34914
+ if (!selector)
34915
+ return void 0;
34909
34916
  if (selector.startsWith(customFontSelectorPrefix)) {
34910
34917
  return this.custom.getFontBySelector(selector, createFont);
34911
34918
  }
@@ -35283,6 +35290,7 @@ var FormInputStyleVariableNames = /* @__PURE__ */ ((FormInputStyleVariableNames2
35283
35290
  FormInputStyleVariableNames2['IconBackgroundImage'] = '--framer-input-icon-image';
35284
35291
  FormInputStyleVariableNames2['IconMaskImage'] = '--framer-input-icon-mask-image';
35285
35292
  FormInputStyleVariableNames2['IconColor'] = '--framer-input-icon-color';
35293
+ FormInputStyleVariableNames2['WrapperHeight'] = '--framer-input-wrapper-height';
35286
35294
  return FormInputStyleVariableNames2;
35287
35295
  })(FormInputStyleVariableNames || {});
35288
35296
  var Var = FormInputStyleVariableNames;
@@ -35333,7 +35341,7 @@ var sharedInputCSS = [
35333
35341
  whiteSpace: 'nowrap',
35334
35342
  overflow: 'hidden',
35335
35343
  width: '100%',
35336
- height: '100%',
35344
+ height: css.variable(Var.WrapperHeight, '100%'),
35337
35345
  letterSpacing: css.variable(Var.FontLetterSpacing),
35338
35346
  textAlign: css.variable(Var.FontTextAlignment),
35339
35347
  lineHeight: css.variable(Var.FontLineHeight),
@@ -35440,9 +35448,7 @@ var inputIconCSSDeclaration = {
35440
35448
  bottom: 0,
35441
35449
  width: `${iconSize}px`,
35442
35450
  boxSizing: 'content-box',
35443
- // Offset the icon inwards by the padding.
35444
- margin: css.variable(Var.Padding),
35445
- marginLeft: 0,
35451
+ padding: css.variable(Var.Padding),
35446
35452
  border: 'none',
35447
35453
  pointerEvents: 'none',
35448
35454
  backgroundRepeat: 'no-repeat',
@@ -35531,7 +35537,7 @@ var styles = /* @__PURE__ */ (() => [
35531
35537
  css(`.${textInputWrapperClassName} textarea`, {
35532
35538
  display: 'flex',
35533
35539
  resize: css.variable('--framer-textarea-resize'),
35534
- overflowY: 'scroll',
35540
+ overflowY: 'auto',
35535
35541
  minHeight: 'inherit',
35536
35542
  maxHeight: 'inherit',
35537
35543
  whiteSpace: 'break-spaces',
@@ -35558,6 +35564,9 @@ var styles = /* @__PURE__ */ (() => [
35558
35564
  color: css.variable('--framer-input-placeholder-color'),
35559
35565
  // This tells safari to use the color for the shadow dom elements.
35560
35566
  '-webkit-text-fill-color': css.variable('--framer-input-placeholder-color'),
35567
+ // Prevent browsers from improvising the date/time placeholder height.
35568
+ height: css.variable('--framer-input-font-line-height'),
35569
+ overflow: 'visible',
35561
35570
  }),
35562
35571
  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
35572
  css(`.${textInputWrapperClassName} .${inputClassName}[type="date"]::before`, {
@@ -35568,14 +35577,20 @@ var styles = /* @__PURE__ */ (() => [
35568
35577
  maskImage: css.variable('--framer-input-icon-mask-image', `url('${defaultTimeIconMaskImage}')`),
35569
35578
  backgroundImage: css.variable('--framer-input-icon-image'),
35570
35579
  }),
35571
- // Hide the native date picker icon, but still allow the user to click it.
35580
+ // Hide the native date picker icon, but still align it with the custom icon, allowing user to click it to show the
35581
+ // date/time picker.
35572
35582
  css(`.${textInputWrapperClassName} .${inputClassName}::-webkit-calendar-picker-indicator`, {
35573
35583
  opacity: 0,
35584
+ position: 'absolute',
35585
+ right: 0,
35586
+ top: 0,
35587
+ bottom: 0,
35574
35588
  padding: css.variable('--framer-input-padding'),
35575
- paddingRight: 0,
35576
- paddingLeft: `${iconSpacing}px`,
35589
+ paddingTop: 0,
35590
+ paddingBottom: 0,
35577
35591
  width: `${iconSize2}px`,
35578
- height: `${iconSize2}px`,
35592
+ // Makes sure the icon hit target covers the entire height of the input.
35593
+ height: '100%',
35579
35594
  }),
35580
35595
  css(`.${textInputWrapperClassName}:focus-within, .${textInputWrapperClassName}.${forcedFocusClassName}`, {
35581
35596
  boxShadow: css.variable('--framer-input-focused-box-shadow', '--framer-input-box-shadow'),
@@ -35695,9 +35710,16 @@ var styles2 = /* @__PURE__ */ (() => [
35695
35710
  ])();
35696
35711
  var FormBooleanInput = /* @__PURE__ */ withCSS(BooleanInput, styles2);
35697
35712
  var Select = /* @__PURE__ */ React4.forwardRef(function Select2(props, measureRef) {
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"]);
35713
+ const { autoFocus, className: className2, inputName, required, hidden, defaultValue, selectOptions, style, onValid, onChange, onBlur, onInvalid, onFocus } = props, rest = __rest(props, ["autoFocus", "className", "inputName", "required", "hidden", "defaultValue", "selectOptions", "style", "onValid", "onChange", "onBlur", "onInvalid", "onFocus"]);
35699
35714
  const eventHandlers = useCustomValidity(onValid, onInvalid, onChange, onBlur, onFocus);
35700
35715
  const key7 = Array.isArray(defaultValue) ? defaultValue[0] : defaultValue;
35716
+ if (hidden) {
35717
+ return /* @__PURE__ */ jsx(motion.input, {
35718
+ type: 'hidden',
35719
+ name: inputName,
35720
+ defaultValue,
35721
+ });
35722
+ }
35701
35723
  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
35724
  required, className: inputClassName, defaultValue }, eventHandlers), { children: selectOptions == null ? void 0 : selectOptions.map((option, index) => {
35703
35725
  var _j, _k;
@@ -35842,7 +35864,7 @@ function convertCodeComponentContainer(componentDefinitionProvider, node, conver
35842
35864
  converter(codeComponentPresentation, codeComponentPresentation.children.map((child) => convertPresentationTree(child, converter, componentDefinitionProvider, getCachedNode, skipCodeComponentPropsCache))),
35843
35865
  ];
35844
35866
  }
35845
- var CodeComponentPresentation = /*#__PURE__*/ class {
35867
+ var CodeComponentPresentation = class {
35846
35868
  constructor(id3, componentIdentifier, packageVersion, props, children, codeOverrideIdentifier) {
35847
35869
  this.id = id3;
35848
35870
  this.componentIdentifier = componentIdentifier;
@@ -35864,6 +35886,11 @@ var CodeComponentPresentation = /*#__PURE__*/ class {
35864
35886
  };
35865
35887
  }
35866
35888
  };
35889
+ var nonSlugCharactersRegExp = /[^\p{Letter}\p{Number}()]+/gu;
35890
+ var trimSlugRegExp = /^-+|-+$/gu;
35891
+ function slugify(value) {
35892
+ return value.toLowerCase().replace(nonSlugCharactersRegExp, '-').replace(trimSlugRegExp, '');
35893
+ }
35867
35894
  var htmlRegExp = /[&<>'"]/g;
35868
35895
  var escapeHTML = (str) => str.replace(htmlRegExp, (tag) => ({
35869
35896
  '&': '&amp;',
@@ -36090,7 +36117,7 @@ var FitText = /* @__PURE__ */ forwardRef((_j, ref) => {
36090
36117
  });
36091
36118
  var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
36092
36119
  var _j;
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"]);
36120
+ const { __fromCanvasComponent = false, _forwardedOverrideId, _forwardedOverrides, _usesDOMRect, anchorLinkOffsetY, as: _as, bottom, center, children, environment: environment2 = RenderTarget.current, fonts = [], height, isEditable = false, left, name, opacity, positionSticky, positionStickyBottom, positionStickyLeft, positionStickyRight, positionStickyTop, right, rotation = 0, style, _initialStyle, stylesPresetsClassNames, text: plainText, top, verticalAlignment = 'top', visible = true, width, willChangeTransform, withExternalLayout = false, viewBox, viewBoxScale = 1 } = props, rest = __rest(props, ["__fromCanvasComponent", "_forwardedOverrideId", "_forwardedOverrides", "_usesDOMRect", "anchorLinkOffsetY", "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"]);
36094
36121
  const parentSize = useParentSize();
36095
36122
  const isOnCanvas = useIsOnFramerCanvas();
36096
36123
  const inCodeComponent = useContext3(ComponentContainerContext);
@@ -36102,6 +36129,11 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
36102
36129
  useInsertionEffect(() => {
36103
36130
  injectComponentCSSRules();
36104
36131
  }, []);
36132
+ const processedChildren = useMemo(() => {
36133
+ if (!children)
36134
+ return;
36135
+ return processRichTextChildren(children, stylesPresetsClassNames, plainText, anchorLinkOffsetY);
36136
+ }, [children, stylesPresetsClassNames, plainText, anchorLinkOffsetY,]);
36105
36137
  if (!visible)
36106
36138
  return null;
36107
36139
  const isHidden = isEditable && environment2() === RenderTarget.canvas;
@@ -36170,39 +36202,79 @@ var RichTextContainer = /* @__PURE__ */ forwardRef((props, ref) => {
36170
36202
  width: '100%',
36171
36203
  height: '100%',
36172
36204
  },
36173
- children: children && styleRichTextChildren(children, stylesPresetsClassNames, plainText),
36205
+ children: processedChildren,
36174
36206
  }) }));
36175
36207
  }
36176
36208
  else {
36177
36209
  return /* @__PURE__ */ jsx(FitText, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId,
36178
36210
  viewBox,
36179
- viewBoxScale, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: children && styleRichTextChildren(children, stylesPresetsClassNames, plainText) }));
36211
+ viewBoxScale, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: processedChildren }));
36180
36212
  }
36181
36213
  }
36182
- return /* @__PURE__ */ jsx(Component15, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: children && styleRichTextChildren(children, stylesPresetsClassNames, plainText) }));
36214
+ return /* @__PURE__ */ jsx(Component15, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: processedChildren }));
36183
36215
  });
36184
- function styleRichTextChildren(element, stylesPresetsClassNames, plainText) {
36216
+ function processRichTextChildren(element, stylesPresetsClassNames, plainText, anchorLinkOffsetY, slugCounters = {}) {
36217
+ var _j;
36185
36218
  let children = Children.toArray(element.props.children);
36186
36219
  if (isString22(plainText)) {
36187
36220
  children = children.slice(0, 1);
36188
36221
  }
36189
36222
  children = children.map((child) => {
36190
36223
  if (isValidElement(child)) {
36191
- return styleRichTextChildren(child, stylesPresetsClassNames, plainText);
36224
+ return processRichTextChildren(child, stylesPresetsClassNames, plainText, anchorLinkOffsetY, slugCounters);
36192
36225
  }
36193
36226
  if (isString22(plainText)) {
36194
36227
  return plainText;
36195
36228
  }
36196
36229
  return child;
36197
36230
  });
36198
- const _j = element.props, { ['data-preset-tag']: dataPresetTag } = _j, props = __rest(_j, ['data-preset-tag']);
36231
+ const _k = element.props, { ['data-preset-tag']: dataPresetTag } = _k, props = __rest(_k, ['data-preset-tag']);
36199
36232
  if (isString22(element.type) || isMotionComponent(element.type)) {
36200
- const tag = dataPresetTag || unwrapMotionComponent(element.type) || element.type;
36233
+ const elementType = unwrapMotionComponent(element.type) || element.type;
36234
+ const tag = dataPresetTag || elementType;
36201
36235
  const stylesPresetClassName = isString22(tag) ? stylesPresetsClassNames == null ? void 0 : stylesPresetsClassNames[tag] : void 0;
36202
36236
  props.className = cx('framer-text', props.className, stylesPresetClassName);
36237
+ const isHeading = elementType === 'h1' || elementType === 'h2' || elementType === 'h3' || elementType === 'h4' ||
36238
+ elementType === 'h5' || elementType === 'h6';
36239
+ const anchorLinkStylePresetClassName = stylesPresetsClassNames == null ? void 0 : stylesPresetsClassNames['anchor'];
36240
+ if (isHeading && anchorLinkStylePresetClassName) {
36241
+ const slug = generateHeadingSlug(children, slugCounters);
36242
+ props.id = slug;
36243
+ const className2 = cx('framer-text', anchorLinkStylePresetClassName);
36244
+ const anchorLink = /* @__PURE__ */ jsx('a', {
36245
+ href: `#${slug}`,
36246
+ className: className2,
36247
+ children,
36248
+ });
36249
+ props.style = Object.assign(Object.assign({}, ((_j = props.style) !== null && _j !== void 0 ? _j : {})), { scrollMarginTop: anchorLinkOffsetY });
36250
+ children = [anchorLink,];
36251
+ }
36203
36252
  }
36204
36253
  return cloneElement2(element, props, ...children);
36205
36254
  }
36255
+ function generateHeadingSlug(children, slugCounters) {
36256
+ var _j;
36257
+ const headingText = children.map(extractTextFromReactNode).join('');
36258
+ let slug = slugify(headingText);
36259
+ const slugCounter = (_j = slugCounters[slug]) !== null && _j !== void 0 ? _j : 0;
36260
+ if (slugCounter > 0) {
36261
+ slug += `-${slugCounter}`;
36262
+ }
36263
+ slugCounters[slug] = slugCounter + 1;
36264
+ return slug;
36265
+ }
36266
+ function extractTextFromReactNode(node) {
36267
+ if (isString22(node) || isNumber2(node)) {
36268
+ return node.toString();
36269
+ }
36270
+ if (isValidElement(node)) {
36271
+ return extractTextFromReactNode(node.props.children);
36272
+ }
36273
+ if (Array.isArray(node)) {
36274
+ return node.map(extractTextFromReactNode).join('');
36275
+ }
36276
+ return '';
36277
+ }
36206
36278
  var RichText = /* @__PURE__ */ forwardRef((_j, ref) => {
36207
36279
  var { children, html, htmlFromDesign } = _j, props = __rest(_j, ["children", "html", "htmlFromDesign"]);
36208
36280
  const content = html || children || htmlFromDesign;
@@ -36439,7 +36511,7 @@ var ImagePatternElement = ({ id: id3, path, transform: transform2, repeat, width
36439
36511
  });
36440
36512
  };
36441
36513
  var useDOM = /* @__PURE__ */ isBrowser2();
36442
- var SharedSVGEntry = /*#__PURE__*/ class {
36514
+ var SharedSVGEntry = class {
36443
36515
  constructor(id3, svg, innerHTML, viewBox, count = 0) {
36444
36516
  this.id = id3;
36445
36517
  this.svg = svg;
@@ -36448,7 +36520,7 @@ var SharedSVGEntry = /*#__PURE__*/ class {
36448
36520
  this.count = count;
36449
36521
  }
36450
36522
  };
36451
- var SharedSVGManager = /*#__PURE__*/ class {
36523
+ var SharedSVGManager = class {
36452
36524
  constructor() {
36453
36525
  __publicField(this, 'entries', /* @__PURE__ */ new Map());
36454
36526
  }
@@ -37309,7 +37381,7 @@ function getTabIndexProps(tabIndex) {
37309
37381
  };
37310
37382
  }
37311
37383
  var keys22 = /* @__PURE__ */ new Map();
37312
- var InternalID = /*#__PURE__*/ class {
37384
+ var InternalID = class {
37313
37385
  constructor(id3) {
37314
37386
  this.id = id3;
37315
37387
  __publicField(this, '_link', null);
@@ -37343,7 +37415,7 @@ var InternalID = /*#__PURE__*/ class {
37343
37415
  }
37344
37416
  };
37345
37417
  var PathSegmentOuter = /* @__PURE__ */ (() => {
37346
- const _PathSegment = /*#__PURE__*/ class {
37418
+ const _PathSegment = class {
37347
37419
  constructor(value) {
37348
37420
  __publicField(this, '__class', 'PathSegment');
37349
37421
  __publicField(this, 'x', 0);
@@ -37589,7 +37661,7 @@ function transformString(transform2) {
37589
37661
  }
37590
37662
  return result;
37591
37663
  }
37592
- var LinearGradientElement = /*#__PURE__*/ class extends Component {
37664
+ var LinearGradientElement = class extends Component {
37593
37665
  render() {
37594
37666
  const { id: id3, stops, x1, x2, y1, y2, } = this.props;
37595
37667
  return /* @__PURE__ */ jsx('linearGradient', {
@@ -37608,7 +37680,7 @@ var LinearGradientElement = /*#__PURE__*/ class extends Component {
37608
37680
  });
37609
37681
  }
37610
37682
  };
37611
- var RadialGradientElement = /*#__PURE__*/ class extends Component {
37683
+ var RadialGradientElement = class extends Component {
37612
37684
  render() {
37613
37685
  const { centerAnchorX, centerAnchorY, id: id3, widthFactor, heightFactor, stops, } = this.props;
37614
37686
  return /* @__PURE__ */ jsx('radialGradient', {
@@ -37627,7 +37699,7 @@ var RadialGradientElement = /*#__PURE__*/ class extends Component {
37627
37699
  });
37628
37700
  }
37629
37701
  };
37630
- var SVGRoot = /*#__PURE__*/ class extends Component {
37702
+ var SVGRoot = class extends Component {
37631
37703
  render() {
37632
37704
  const { children, frame: frame2, innerRef, } = this.props;
37633
37705
  const { width, height, } = frame2;