unframer 2.0.0 → 2.0.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
@@ -19,7 +19,7 @@ var __rest = (this && this.__rest) || function (s, e) {
19
19
  return t;
20
20
  };
21
21
  // @ts-nocheck
22
- // https :https://app.framerstatic.com/chunk-73TYJ7YB.js
22
+ // https :https://app.framerstatic.com/chunk-O7E5UDPD.js
23
23
  import { createContext, } from 'react';
24
24
  import { createContext as createContext2, } from 'react';
25
25
  import { createContext as createContext3, } from 'react';
@@ -39,6 +39,7 @@ import { createElement as createElement2, Fragment, useMemo as useMemo4, } from
39
39
  import { useMemo as useMemo2, } from 'react';
40
40
  import { useMemo as useMemo3, } from 'react';
41
41
  import React__default, { useContext as useContext6, } from 'react';
42
+ import React__default2 from 'react';
42
43
  import { useCallback as useCallback2, useState, } from 'react';
43
44
  import { useRef as useRef3, } from 'react';
44
45
  import { useEffect as useEffect4, } from 'react';
@@ -1861,7 +1862,7 @@ var MotionValue = class {
1861
1862
  * @internal
1862
1863
  */
1863
1864
  constructor(init, options = {}) {
1864
- this.version = '11.0.11-sync.2';
1865
+ this.version = '11.0.11-sync.5';
1865
1866
  this.canTrackVelocity = false;
1866
1867
  this.events = {};
1867
1868
  this.updateAndNotify = (v, render = true) => {
@@ -3241,7 +3242,7 @@ function updateMotionValuesFromProps(element, next, prev) {
3241
3242
  willChange.add(key7);
3242
3243
  }
3243
3244
  if (false) {
3244
- warnOnce(nextValue.version === '11.0.11-sync.2', `Attempting to mix Framer Motion versions ${nextValue.version} with 11.0.11-sync.2 may not work as expected.`);
3245
+ warnOnce(nextValue.version === '11.0.11-sync.5', `Attempting to mix Framer Motion versions ${nextValue.version} with 11.0.11-sync.5 may not work as expected.`);
3245
3246
  }
3246
3247
  }
3247
3248
  else if (isMotionValue(prevValue)) {
@@ -3275,6 +3276,12 @@ function updateMotionValuesFromProps(element, next, prev) {
3275
3276
  }
3276
3277
  var featureNames = Object.keys(featureDefinitions);
3277
3278
  var numFeatures = featureNames.length;
3279
+ function getClosestProjectingNode(visualElement) {
3280
+ if (!visualElement) {
3281
+ return void 0;
3282
+ }
3283
+ return visualElement.options.allowProjection !== false ? visualElement.projection : getClosestProjectingNode(visualElement.parent);
3284
+ }
3278
3285
  var propEventHandlers = [
3279
3286
  'AnimationStart',
3280
3287
  'AnimationComplete',
@@ -3432,7 +3439,7 @@ var VisualElement = class {
3432
3439
  }
3433
3440
  }
3434
3441
  if ((this.type === 'html' || this.type === 'svg') && !this.projection && ProjectionNodeConstructor) {
3435
- this.projection = new ProjectionNodeConstructor(this.latestValues, this.parent && this.parent.projection);
3442
+ this.projection = new ProjectionNodeConstructor(this.latestValues, getClosestProjectingNode(this.parent));
3436
3443
  const { layoutId, layout: layout2, drag: drag2, dragConstraints, layoutScroll, layoutRoot, } = renderedProps;
3437
3444
  this.projection.setOptions({
3438
3445
  layoutId,
@@ -5426,7 +5433,10 @@ function buildProjectionTransform(delta, treeScale, latestTransform) {
5426
5433
  transform2 += `scale(${1 / treeScale.x}, ${1 / treeScale.y}) `;
5427
5434
  }
5428
5435
  if (latestTransform) {
5429
- const { rotate, rotateX, rotateY, skewX, skewY, } = latestTransform;
5436
+ const { transformPerspective, rotate, rotateX, rotateY, skewX, skewY, } = latestTransform;
5437
+ if (transformPerspective) {
5438
+ transform2 = `perspective(${transformPerspective}px) ${transform2}`;
5439
+ }
5430
5440
  if (rotate) {
5431
5441
  transform2 += `rotate(${rotate}deg) `;
5432
5442
  }
@@ -6909,7 +6919,10 @@ var SVGVisualElement = class extends DOMVisualElement {
6909
6919
  var createDomVisualElement = (Component23, options) => {
6910
6920
  return isSVGComponent(Component23)
6911
6921
  ? new SVGVisualElement(options, { enableHardwareAcceleration: false, })
6912
- : new HTMLVisualElement(options, { enableHardwareAcceleration: true, });
6922
+ : new HTMLVisualElement(options, {
6923
+ enableHardwareAcceleration: true,
6924
+ allowProjection: Component23 !== React__default2.Fragment,
6925
+ });
6913
6926
  };
6914
6927
  var layout = {
6915
6928
  layout: {
@@ -8782,7 +8795,7 @@ var cancelSync = stepsOrder.reduce((acc, key7) => {
8782
8795
  acc[key7] = (process2) => cancelFrame(process2);
8783
8796
  return acc;
8784
8797
  }, {});
8785
- // https :https://app.framerstatic.com/framer.Q2DHSUSM.js
8798
+ // https :https://app.framerstatic.com/framer.L736M3IJ.js
8786
8799
  import { Component as Component2, } from 'react';
8787
8800
  import React12 from 'react';
8788
8801
  import { jsx as _jsx5, } from 'react/jsx-runtime';
@@ -8958,13 +8971,18 @@ import { jsx as jsx54, jsxs as jsxs18, } from 'react/jsx-runtime';
8958
8971
  import { jsx as jsx55, } from 'react/jsx-runtime';
8959
8972
  import { jsx as jsx56, } from 'react/jsx-runtime';
8960
8973
  import { jsx as jsx57, } from 'react/jsx-runtime';
8961
- import React85 from 'react';
8962
- import { jsx as jsx58, jsxs as jsxs19, } from 'react/jsx-runtime';
8963
- import { Children as Children32, cloneElement as cloneElement32, forwardRef as forwardRef52, isValidElement as isValidElement32, useContext as useContext162, useInsertionEffect as useInsertionEffect42, useRef as useRef19, } from 'react';
8964
- import * as React86 from 'react';
8974
+ import { jsx as jsx58, } from 'react/jsx-runtime';
8965
8975
  import { useRef as useRef18, } from 'react';
8966
8976
  import { jsx as jsx59, } from 'react/jsx-runtime';
8977
+ import { useRef as useRef19, } from 'react';
8967
8978
  import { jsx as jsx60, } from 'react/jsx-runtime';
8979
+ import React85 from 'react';
8980
+ import { jsx as jsx61, jsxs as jsxs19, } from 'react/jsx-runtime';
8981
+ import { Children as Children32, cloneElement as cloneElement32, forwardRef as forwardRef52, isValidElement as isValidElement32, useContext as useContext162, useInsertionEffect as useInsertionEffect42, useRef as useRef21, } from 'react';
8982
+ import * as React86 from 'react';
8983
+ import { useRef as useRef20, } from 'react';
8984
+ import { jsx as jsx62, } from 'react/jsx-runtime';
8985
+ import { jsx as jsx63, } from 'react/jsx-runtime';
8968
8986
  import { useEffect as useEffect142, useState as useState22, } from 'react';
8969
8987
  var require_hsluv = __commonJS({
8970
8988
  '../../../node_modules/hsluv/hsluv.js'(exports, module) {
@@ -11787,6 +11805,9 @@ function Point(x, y) {
11787
11805
  Point2.angle = (a, b) => {
11788
11806
  return Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI - 90;
11789
11807
  };
11808
+ Point2.angleFromX = (a, b) => {
11809
+ return Math.atan2(b.y - a.y, b.x - a.x) * 180 / Math.PI;
11810
+ };
11790
11811
  Point2.isEqual = (a, b) => {
11791
11812
  return a.x === b.x && a.y === b.y;
11792
11813
  };
@@ -11816,25 +11837,6 @@ function Point(x, y) {
11816
11837
  };
11817
11838
  }
11818
11839
  Point2.center = center;
11819
- function insidePoints(point2, points) {
11820
- var _f, _j, _k, _l;
11821
- var _a, _b, _c, _d;
11822
- const x = point2.x;
11823
- const y = point2.y;
11824
- let isInside = false;
11825
- for (let i = 0, j = points.length - 1; i < points.length; j = i++) {
11826
- const xi = (_f = ((_a = points[i]) == null ? void 0 : _a.x)) !== null && _f !== void 0 ? _f : 0;
11827
- const yi = (_j = ((_b = points[i]) == null ? void 0 : _b.y)) !== null && _j !== void 0 ? _j : 0;
11828
- const xj = (_k = ((_c = points[j]) == null ? void 0 : _c.x)) !== null && _k !== void 0 ? _k : 0;
11829
- const yj = (_l = ((_d = points[j]) == null ? void 0 : _d.y)) !== null && _l !== void 0 ? _l : 0;
11830
- const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
11831
- if (intersect) {
11832
- isInside = !isInside;
11833
- }
11834
- }
11835
- return isInside;
11836
- }
11837
- Point2.insidePoints = insidePoints;
11838
11840
  })(Point || (Point = {}));
11839
11841
  var BezierDefaults = {
11840
11842
  curve: 'ease',
@@ -14465,15 +14467,18 @@ var ErrorBoundary2 = class extends Component3 {
14465
14467
  __publicField(this, 'state', {});
14466
14468
  }
14467
14469
  componentDidCatch(error, info) {
14468
- let stack = info.componentStack.split('\n').filter((line) => line.length !== 0);
14470
+ var _a;
14471
+ let stack = (_a = info.componentStack) == null ? void 0 : _a.split('\n').filter((line) => line.length !== 0);
14469
14472
  let currentIndex = 0;
14470
- for (const line of stack) {
14471
- if (line.startsWith(` in ${this.constructor.name}`)) {
14472
- break;
14473
+ if (stack) {
14474
+ for (const line of stack) {
14475
+ if (line.startsWith(` in ${this.constructor.name}`)) {
14476
+ break;
14477
+ }
14478
+ currentIndex++;
14473
14479
  }
14474
- currentIndex++;
14480
+ stack = stack.slice(0, currentIndex);
14475
14481
  }
14476
- stack = stack.slice(0, currentIndex);
14477
14482
  this.setState({
14478
14483
  lastError: {
14479
14484
  error,
@@ -14829,13 +14834,18 @@ var Rect;
14829
14834
  };
14830
14835
  };
14831
14836
  Rect2.boundingRectFromPoints = (ps) => {
14832
- const xValues = ps.map((point2) => point2.x);
14833
- const yValues = ps.map((point2) => point2.y);
14834
- const x = Math.min(...xValues);
14835
- const y = Math.min(...yValues);
14836
- const width = Math.max(...xValues) - x;
14837
- const height = Math.max(...yValues) - y;
14838
- return { x, y, width, height, };
14837
+ let minX2 = Infinity;
14838
+ let maxX2 = -Infinity;
14839
+ let minY2 = Infinity;
14840
+ let maxY2 = -Infinity;
14841
+ for (let i = 0; i < ps.length; i++) {
14842
+ const point2 = ps[i];
14843
+ minX2 = Math.min(minX2, point2.x);
14844
+ maxX2 = Math.max(maxX2, point2.x);
14845
+ minY2 = Math.min(minY2, point2.y);
14846
+ maxY2 = Math.max(maxY2, point2.y);
14847
+ }
14848
+ return { x: minX2, y: minY2, width: maxX2 - minX2, height: maxY2 - minY2, };
14839
14849
  };
14840
14850
  Rect2.fromPoints = (ps) => {
14841
14851
  const [tl, tr, _, bl,] = ps;
@@ -15672,6 +15682,8 @@ var ControlType = /* @__PURE__ */ ((ControlType2) => {
15672
15682
  ControlType2['CustomCursor'] = 'customcursor';
15673
15683
  ControlType2['Border'] = 'border';
15674
15684
  ControlType2['Cursor'] = 'cursor';
15685
+ ControlType2['Padding'] = 'padding';
15686
+ ControlType2['BorderRadius'] = 'borderradius';
15675
15687
  return ControlType2;
15676
15688
  })(ControlType || {});
15677
15689
  var isFlexboxGapSupportedCached;
@@ -16620,6 +16632,8 @@ function getControlDefaultValue(control) {
16620
16632
  case 'date':
16621
16633
  case 'link':
16622
16634
  case 'boxshadow':
16635
+ case 'padding':
16636
+ case 'borderradius':
16623
16637
  return isString22(control.defaultValue) ? control.defaultValue : void 0;
16624
16638
  case 'boolean':
16625
16639
  return isBoolean(control.defaultValue) ? control.defaultValue : void 0;
@@ -19447,7 +19461,7 @@ function setTranslateZHack(style, enabled) {
19447
19461
  if (!useTranslateZHack || !onCanvas) {
19448
19462
  return;
19449
19463
  }
19450
- const transform2 = style.transform || '';
19464
+ const transform2 = isString22(style.transform) ? style.transform || '' : '';
19451
19465
  if (enabled) {
19452
19466
  const hasTranslateZ = transform2.includes(translateZ);
19453
19467
  if (!hasTranslateZ) {
@@ -26475,7 +26489,7 @@ function getTransition(value) {
26475
26489
  }
26476
26490
  return value == null ? void 0 : value.transition;
26477
26491
  }
26478
- function runEffectAnimation(target, effect, shouldReduceMotion, ref, appearId) {
26492
+ function runEffectAnimation(target, effect, shouldReduceMotion, ref, appearId, instant) {
26479
26493
  return __awaiter(this, void 0, void 0, function* () {
26480
26494
  const transition = getTransition(target);
26481
26495
  return Promise.all(effectValuesKeys.map((key7) => {
@@ -26502,8 +26516,12 @@ function runEffectAnimation(target, effect, shouldReduceMotion, ref, appearId) {
26502
26516
  elapsed: safeWindow.HandoffAppearAnimations(appearId, key7, motionValue2, frame),
26503
26517
  }
26504
26518
  : void 0;
26505
- const opts = Object.assign(Object.assign(Object.assign(Object.assign({}, transition), { velocity: 0, elapsed: 0 }), handoff), { onComplete: () => resolve() });
26506
- animate(motionValue2, value, opts);
26519
+ if (instant) {
26520
+ motionValue2.set(value);
26521
+ }
26522
+ else {
26523
+ animate(motionValue2, value, Object.assign(Object.assign(Object.assign(Object.assign({}, transition), { velocity: 0, elapsed: 0 }), handoff), { onComplete: () => resolve() }));
26524
+ }
26507
26525
  });
26508
26526
  }));
26509
26527
  });
@@ -26513,21 +26531,14 @@ var presenceOptionsKeys = /* @__PURE__ */ new Set([
26513
26531
  'presenceAnimate',
26514
26532
  'presenceExit',
26515
26533
  ]);
26516
- function getVisualElementBase(visualElement, style) {
26517
- const ctx = visualElement.getVariantContext();
26518
- const base = Object.assign({}, style);
26519
- if (Array.isArray(ctx == null ? void 0 : ctx.animate)) {
26520
- for (const variant of ctx.animate) {
26521
- Object.assign(base, visualElement.getVariant(variant));
26522
- }
26523
- }
26524
- return base;
26525
- }
26526
26534
  function usePresenceAnimation({ initial: motionInitial, animate: motionAnimate, exit: motionExit, presenceInitial, presenceAnimate, presenceExit, }, ref, enabled, style, appearId) {
26527
26535
  const initial = presenceInitial !== null && presenceInitial !== void 0 ? presenceInitial : motionInitial;
26528
26536
  const animateConfig = presenceAnimate !== null && presenceAnimate !== void 0 ? presenceAnimate : motionAnimate;
26529
26537
  const exit = presenceExit !== null && presenceExit !== void 0 ? presenceExit : motionExit;
26530
26538
  const hasMounted = useRef122(false);
26539
+ const lastAnimate = useRef122(animateConfig);
26540
+ const [isPresent2, safeToRemove,] = usePresence();
26541
+ const lastPresence = useRef122(false);
26531
26542
  const effect = useConstant2(() => {
26532
26543
  var _a;
26533
26544
  const base = initial !== null && initial !== void 0 ? initial : style;
@@ -26544,45 +26555,54 @@ function usePresenceAnimation({ initial: motionInitial, animate: motionAnimate,
26544
26555
  }
26545
26556
  return { values: makeFXValues(defaults), };
26546
26557
  });
26547
- const [isPresent2, safeToRemove,] = usePresence();
26548
- const shouldReduceMotion = useReducedMotionConfig();
26549
26558
  useLayoutEffect22(() => {
26550
- hasMounted.current = true;
26551
- if (!enabled) {
26552
- safeToRemove == null ? void 0 : safeToRemove();
26553
- return;
26554
- }
26555
- if (isPresent2) {
26556
- if (initial && animateConfig) {
26557
- runEffectAnimation(animateConfig, effect, shouldReduceMotion, ref, appearId);
26558
- }
26559
- }
26560
- else {
26561
- if (exit) {
26562
- runEffectAnimation(exit, effect, shouldReduceMotion, ref).then(() => safeToRemove());
26563
- }
26564
- else {
26565
- safeToRemove();
26566
- }
26567
- }
26568
- }, [isPresent2,]);
26569
- useLayoutEffect22(() => {
26570
- if (!hasMounted.current) {
26559
+ if (hasMounted.current && animateConfig) {
26571
26560
  return;
26572
26561
  }
26573
26562
  const visualElement = visualElementStore.get(ref.current);
26574
26563
  if (!visualElement) {
26575
26564
  return;
26576
26565
  }
26577
- const base = isObject2(animateConfig) ? animateConfig : getVisualElementBase(visualElement, style);
26566
+ hasMounted.current = true;
26578
26567
  for (const key7 in effect.values) {
26579
26568
  if (!isFXValuesKey(key7)) {
26580
26569
  continue;
26581
26570
  }
26582
- const value = base == null ? void 0 : base[key7];
26571
+ const value = style == null ? void 0 : style[key7];
26583
26572
  visualElement.setBaseTarget(key7, isNumber2(value) ? value : defaultFXValues[key7]);
26584
26573
  }
26585
- }, [JSON.stringify(animateConfig),]);
26574
+ }, [animateConfig,]);
26575
+ const shouldReduceMotion = useReducedMotionConfig();
26576
+ useLayoutEffect22(() => {
26577
+ if (!enabled) {
26578
+ safeToRemove == null ? void 0 : safeToRemove();
26579
+ return;
26580
+ }
26581
+ if (isPresent2 !== lastPresence.current) {
26582
+ lastPresence.current = isPresent2;
26583
+ if (isPresent2) {
26584
+ if (initial && animateConfig) {
26585
+ runEffectAnimation(animateConfig, effect, shouldReduceMotion, ref, appearId);
26586
+ }
26587
+ }
26588
+ else {
26589
+ if (exit) {
26590
+ runEffectAnimation(exit, effect, shouldReduceMotion, ref, appearId).then(() => safeToRemove());
26591
+ }
26592
+ else {
26593
+ safeToRemove();
26594
+ }
26595
+ }
26596
+ }
26597
+ else {
26598
+ const hasAnimateChanged = !isEqual(animateConfig, lastAnimate.current);
26599
+ if (!hasAnimateChanged || !animateConfig) {
26600
+ return;
26601
+ }
26602
+ lastAnimate.current = animateConfig;
26603
+ runEffectAnimation(animateConfig, effect, shouldReduceMotion, ref, appearId, true);
26604
+ }
26605
+ });
26586
26606
  return effect;
26587
26607
  }
26588
26608
  function calcOffsetTop(element, container) {
@@ -27585,6 +27605,179 @@ function useCustomCursors(webPageCursors) {
27585
27605
  registerCursors(cursors);
27586
27606
  }, [cursors, registerCursors,]);
27587
27607
  }
27608
+ function degreesToRadians(degrees2) {
27609
+ return degrees2 * (Math.PI / 180);
27610
+ }
27611
+ var Line = /* @__PURE__ */ (() => {
27612
+ function Line2(a, b) {
27613
+ return { a, b, };
27614
+ }
27615
+ Line2.offset = (line, offset) => {
27616
+ const angle = Point.angleFromX(line.a, line.b);
27617
+ const rad = degreesToRadians(angle);
27618
+ const x = offset * Math.sin(rad);
27619
+ const y = offset * Math.cos(rad);
27620
+ return Line2({ x: line.a.x + x, y: line.a.y - y, }, {
27621
+ x: line.b.x + x,
27622
+ y: line.b.y - y,
27623
+ });
27624
+ };
27625
+ Line2.intersection = (lineA, lineB) => {
27626
+ const x1 = lineA.a.x;
27627
+ const y1 = lineA.a.y;
27628
+ const x2 = lineA.b.x;
27629
+ const y2 = lineA.b.y;
27630
+ const x3 = lineB.a.x;
27631
+ const y3 = lineB.a.y;
27632
+ const x4 = lineB.b.x;
27633
+ const y4 = lineB.b.y;
27634
+ const d = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
27635
+ if (d === 0) {
27636
+ return null;
27637
+ }
27638
+ const xi = ((x3 - x4) * (x1 * y2 - y1 * x2) - (x1 - x2) * (x3 * y4 - y3 * x4)) / d;
27639
+ const yi = ((y3 - y4) * (x1 * y2 - y1 * x2) - (y1 - y2) * (x3 * y4 - y3 * x4)) / d;
27640
+ return { x: xi, y: yi, };
27641
+ };
27642
+ Line2.intersectionAngle = (lineA, lineB) => {
27643
+ const deltaAX = lineA.b.x - lineA.a.x;
27644
+ const deltaAY = lineA.b.y - lineA.a.y;
27645
+ const deltaBX = lineB.b.x - lineB.a.x;
27646
+ const deltaBY = lineB.b.y - lineB.a.y;
27647
+ const angle = Math.atan2(deltaAX * deltaBY - deltaAY * deltaBX, deltaAX * deltaBX + deltaAY * deltaBY);
27648
+ return angle * (180 / Math.PI);
27649
+ };
27650
+ Line2.isOrthogonal = (line) => {
27651
+ return line.a.x === line.b.x || line.a.y === line.b.y;
27652
+ };
27653
+ Line2.perpendicular = (line, pointOnLine) => {
27654
+ const deltaX = line.a.x - line.b.x;
27655
+ const deltaY = line.a.y - line.b.y;
27656
+ const pointB = Point(pointOnLine.x - deltaY, pointOnLine.y + deltaX);
27657
+ return Line2(pointB, pointOnLine);
27658
+ };
27659
+ Line2.projectPoint = (line, point2) => {
27660
+ const perp = Line2.perpendicular(line, point2);
27661
+ return Line2.intersection(line, perp);
27662
+ };
27663
+ Line2.pointAtPercentDistance = (line, distance2) => {
27664
+ const hypotenuse = Line2.distance(line);
27665
+ const r = distance2 * hypotenuse / hypotenuse;
27666
+ return {
27667
+ x: r * line.b.x + (1 - r) * line.a.x,
27668
+ y: r * line.b.y + (1 - r) * line.a.y,
27669
+ };
27670
+ };
27671
+ Line2.distance = (line) => {
27672
+ return Point.distance(line.a, line.b);
27673
+ };
27674
+ return Line2;
27675
+ })();
27676
+ var Polygon = {
27677
+ /**
27678
+ * Determine if the vertices are ordered clockwise or counter-clockwise. This works for simple
27679
+ * (non-self-intersecting) convex polygons. If the polygon is collapsed into a line (signedArea = 0), we consider it
27680
+ * clockwise for it works with how Framer draws the polygons.
27681
+ * See: https://paulbourke.net/geometry/polygonmesh/
27682
+ * @internal */
27683
+ isClockwise: (points) => {
27684
+ return Polygon.signedArea(points) <= 0;
27685
+ },
27686
+ /**
27687
+ * Calculate the signed area to determine if the vertices go clockwise or counter clockwise. We flip all the y
27688
+ * values because the y axis in our canvas coordinate is fipped.
27689
+ * See: https://mathworld.wolfram.com/PolygonArea.html
27690
+ * @internal */
27691
+ signedArea: (points) => {
27692
+ let sum = 0;
27693
+ const len = points.length;
27694
+ for (let i = 0; i < len; i++) {
27695
+ const pointA = points[i];
27696
+ const pointB = points[(i + 1) % len];
27697
+ if (!pointA || !pointB) {
27698
+ continue;
27699
+ }
27700
+ sum += pointA.x * -pointB.y - pointB.x * -pointA.y;
27701
+ }
27702
+ return 1 / 2 * sum;
27703
+ },
27704
+ /**
27705
+ * Determine if some Point lies inside the polygon formed by other Points.
27706
+ * The other points must be provided in a clockwise/counter clockwise order.
27707
+ *
27708
+ * Ray-casting algorithm based on
27709
+ * https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html
27710
+ *
27711
+ * @internal */
27712
+ containsPoint: (polygonPoints2, point2) => {
27713
+ var _f, _j, _k, _l;
27714
+ var _a, _b, _c, _d;
27715
+ const x = point2.x;
27716
+ const y = point2.y;
27717
+ let isInside = false;
27718
+ for (let i = 0, j = polygonPoints2.length - 1; i < polygonPoints2.length; j = i++) {
27719
+ const xi = (_f = ((_a = polygonPoints2[i]) == null ? void 0 : _a.x)) !== null && _f !== void 0 ? _f : 0;
27720
+ const yi = (_j = ((_b = polygonPoints2[i]) == null ? void 0 : _b.y)) !== null && _j !== void 0 ? _j : 0;
27721
+ const xj = (_k = ((_c = polygonPoints2[j]) == null ? void 0 : _c.x)) !== null && _k !== void 0 ? _k : 0;
27722
+ const yj = (_l = ((_d = polygonPoints2[j]) == null ? void 0 : _d.y)) !== null && _l !== void 0 ? _l : 0;
27723
+ const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
27724
+ if (intersect) {
27725
+ isInside = !isInside;
27726
+ }
27727
+ }
27728
+ return isInside;
27729
+ },
27730
+ /** @internal */
27731
+ intersect: (pointsA, pointsB) => {
27732
+ if (pointsA.length < 1 || pointsB.length < 1) {
27733
+ return false;
27734
+ }
27735
+ const boundingRectA = Rect.boundingRectFromPoints(pointsA);
27736
+ const boundingRectB = Rect.boundingRectFromPoints(pointsB);
27737
+ if (!Rect.intersects(boundingRectA, boundingRectB)) {
27738
+ return false;
27739
+ }
27740
+ const edgesA = [];
27741
+ const pointsALength = pointsA.length;
27742
+ pointsA.forEach((point2, index) => {
27743
+ const nextPoint = pointsA[(index + 1) % pointsALength];
27744
+ if (!nextPoint) {
27745
+ return;
27746
+ }
27747
+ edgesA.push(Line(point2, nextPoint));
27748
+ });
27749
+ const edgesB = [];
27750
+ const pointsBLength = pointsB.length;
27751
+ pointsB.forEach((point2, index) => {
27752
+ const nextPoint = pointsB[(index + 1) % pointsBLength];
27753
+ if (!nextPoint) {
27754
+ return;
27755
+ }
27756
+ edgesB.push(Line(point2, nextPoint));
27757
+ });
27758
+ for (const edgeA of edgesA) {
27759
+ for (const edgeB of edgesB) {
27760
+ const intersection2 = segmentsIntersect(edgeA, edgeB);
27761
+ if (intersection2) {
27762
+ return true;
27763
+ }
27764
+ }
27765
+ }
27766
+ if (Polygon.containsPoint(pointsB, pointsA[0])) {
27767
+ return true;
27768
+ }
27769
+ if (Polygon.containsPoint(pointsA, pointsB[0])) {
27770
+ return true;
27771
+ }
27772
+ return false;
27773
+ },
27774
+ };
27775
+ function segmentsIntersect(segmentA, segmentB) {
27776
+ const { a, b, } = segmentA;
27777
+ const { a: c, b: d, } = segmentB;
27778
+ return Polygon.isClockwise([a, c, d,]) !== Polygon.isClockwise([b, c, d,]) &&
27779
+ Polygon.isClockwise([a, b, c,]) !== Polygon.isClockwise([a, b, d,]);
27780
+ }
27588
27781
  function invertPlacement(placement) {
27589
27782
  switch (placement) {
27590
27783
  case 'top':
@@ -27674,7 +27867,7 @@ function getSafePlacementFloatingPositionRect(anchor, element, placement, alignm
27674
27867
  ];
27675
27868
  }
27676
27869
  function preferredPoint(a, b, points) {
27677
- if (Point.insidePoints(a, [b, ...points,])) {
27870
+ if (Polygon.containsPoint([b, ...points,], a)) {
27678
27871
  return b;
27679
27872
  }
27680
27873
  return a;
@@ -31684,6 +31877,10 @@ function useQueryData(query) {
31684
31877
  result = useExecuteSelect(result, query.select);
31685
31878
  return result;
31686
31879
  }
31880
+ function useQueryCount(query) {
31881
+ const collection = useQueryData(query);
31882
+ return collection.length;
31883
+ }
31687
31884
  function evaluateExpression(expression, context) {
31688
31885
  switch (expression.type) {
31689
31886
  case 'Identifier':
@@ -32233,15 +32430,18 @@ var DeprecatedComponentContainer = /* @__PURE__ */ (() => {
32233
32430
  });
32234
32431
  }
32235
32432
  componentDidCatch(error, info) {
32236
- let stack = info.componentStack.split('\n').filter((line) => line.length !== 0);
32433
+ var _a2;
32434
+ let stack = (_a2 = info.componentStack) == null ? void 0 : _a2.split('\n').filter((line) => line.length !== 0);
32237
32435
  let currentIndex = 0;
32238
- for (const line of stack) {
32239
- if (line.startsWith(` in ${this.constructor.name}`)) {
32240
- break;
32436
+ if (stack) {
32437
+ for (const line of stack) {
32438
+ if (line.startsWith(` in ${this.constructor.name}`)) {
32439
+ break;
32440
+ }
32441
+ currentIndex++;
32241
32442
  }
32242
- currentIndex++;
32443
+ stack = stack.slice(0, currentIndex);
32243
32444
  }
32244
- stack = stack.slice(0, currentIndex);
32245
32445
  this.setState({
32246
32446
  lastError: {
32247
32447
  children: this.props.children,
@@ -32356,61 +32556,6 @@ function isPageOrScroll(identifier) {
32356
32556
  }
32357
32557
  return false;
32358
32558
  }
32359
- var Line = /* @__PURE__ */ (() => {
32360
- function Line2(a, b) {
32361
- return { a, b, };
32362
- }
32363
- Line2.intersection = (lineA, lineB) => {
32364
- const x1 = lineA.a.x;
32365
- const y1 = lineA.a.y;
32366
- const x2 = lineA.b.x;
32367
- const y2 = lineA.b.y;
32368
- const x3 = lineB.a.x;
32369
- const y3 = lineB.a.y;
32370
- const x4 = lineB.b.x;
32371
- const y4 = lineB.b.y;
32372
- const d = (x1 - x2) * (y3 - y4) - (y1 - y2) * (x3 - x4);
32373
- if (d === 0) {
32374
- return null;
32375
- }
32376
- const xi = ((x3 - x4) * (x1 * y2 - y1 * x2) - (x1 - x2) * (x3 * y4 - y3 * x4)) / d;
32377
- const yi = ((y3 - y4) * (x1 * y2 - y1 * x2) - (y1 - y2) * (x3 * y4 - y3 * x4)) / d;
32378
- return { x: xi, y: yi, };
32379
- };
32380
- Line2.intersectionAngle = (lineA, lineB) => {
32381
- const deltaAX = lineA.b.x - lineA.a.x;
32382
- const deltaAY = lineA.b.y - lineA.a.y;
32383
- const deltaBX = lineB.b.x - lineB.a.x;
32384
- const deltaBY = lineB.b.y - lineB.a.y;
32385
- const angle = Math.atan2(deltaAX * deltaBY - deltaAY * deltaBX, deltaAX * deltaBX + deltaAY * deltaBY);
32386
- return angle * (180 / Math.PI);
32387
- };
32388
- Line2.isOrthogonal = (line) => {
32389
- return line.a.x === line.b.x || line.a.y === line.b.y;
32390
- };
32391
- Line2.perpendicular = (line, pointOnLine) => {
32392
- const deltaX = line.a.x - line.b.x;
32393
- const deltaY = line.a.y - line.b.y;
32394
- const pointB = Point(pointOnLine.x - deltaY, pointOnLine.y + deltaX);
32395
- return Line2(pointB, pointOnLine);
32396
- };
32397
- Line2.projectPoint = (line, point2) => {
32398
- const perp = Line2.perpendicular(line, point2);
32399
- return Line2.intersection(line, perp);
32400
- };
32401
- Line2.pointAtPercentDistance = (line, distance2) => {
32402
- const hypotenuse = Line2.distance(line);
32403
- const r = distance2 * hypotenuse / hypotenuse;
32404
- return {
32405
- x: r * line.b.x + (1 - r) * line.a.x,
32406
- y: r * line.b.y + (1 - r) * line.a.y,
32407
- };
32408
- };
32409
- Line2.distance = (line) => {
32410
- return Point.distance(line.a, line.b);
32411
- };
32412
- return Line2;
32413
- })();
32414
32559
  function linearGradientLine(angle) {
32415
32560
  var _a, _b;
32416
32561
  const rad = angle * Math.PI / 180;
@@ -35519,6 +35664,45 @@ var localPackageFallbackIdentifier = '|local|';
35519
35664
  function CustomProperties({ children, customProperties, }) {
35520
35665
  return /* @__PURE__ */ jsx57('div', { style: customProperties, children, });
35521
35666
  }
35667
+ var FormContainer = (props) => {
35668
+ return /* @__PURE__ */ jsx58(FrameWithMotion, Object.assign(Object.assign({}, props), { as: 'form' }));
35669
+ };
35670
+ var FormButton = (props) => {
35671
+ var _f;
35672
+ const { __fromCanvasComponent, style: baseStyle2, } = props;
35673
+ const layoutId = useLayoutId2(props);
35674
+ const ref = useRef18(null);
35675
+ const style = mergeWithDefaultStyle(baseStyle2 !== null && baseStyle2 !== void 0 ? baseStyle2 : {});
35676
+ const dataProps = {
35677
+ 'data-layoutid': layoutId,
35678
+ };
35679
+ const isDisabled = Boolean(__fromCanvasComponent);
35680
+ useMeasureLayout(props, ref);
35681
+ return /* @__PURE__ */ jsx59(motion.input, Object.assign(Object.assign({ type: props.type, disabled: isDisabled }, dataProps), { layoutId,
35682
+ ref, style: Object.assign(Object.assign({}, baseStyle2), style), value: (_f = props.value) !== null && _f !== void 0 ? _f : 'Submit' }));
35683
+ };
35684
+ function mergeWithDefaultStyle(style) {
35685
+ return Object.assign({ display: 'block', padding: '12px', width: '100%', background: '#222', color: '#fff', borderRadius: '10px', border: '1px solid rgba(0,0,0,0.05)' }, style);
35686
+ }
35687
+ var FormPlainTextInput = (props) => {
35688
+ const { __fromCanvasComponent, } = props;
35689
+ const layoutId = useLayoutId2(props);
35690
+ const ref = useRef19(null);
35691
+ const dataProps = {
35692
+ 'data-layoutid': layoutId,
35693
+ };
35694
+ const isDisabled = Boolean(__fromCanvasComponent);
35695
+ useMeasureLayout(props, ref);
35696
+ const baseStyle2 = {
35697
+ padding: '12px',
35698
+ width: '100%',
35699
+ background: '#f5f5f5',
35700
+ borderRadius: '10px',
35701
+ border: '1px solid rgba(0,0,0,0.05)',
35702
+ };
35703
+ return /* @__PURE__ */ jsx60(motion.input, Object.assign(Object.assign({ disabled: isDisabled }, dataProps), { layoutId,
35704
+ ref, style: Object.assign(Object.assign({}, baseStyle2), props.style), placeholder: props.placeholder }));
35705
+ };
35522
35706
  var Image2 = /* @__PURE__ */ React85.forwardRef(function Image3(props, ref) {
35523
35707
  const { background, children, alt } = props, rest = __rest(props, ["background", "children", "alt"]);
35524
35708
  const style = Object.assign({}, rest.style);
@@ -35528,7 +35712,7 @@ var Image2 = /* @__PURE__ */ React85.forwardRef(function Image3(props, ref) {
35528
35712
  const MotionComponent = htmlElementAsMotionComponent(props.as);
35529
35713
  return /* @__PURE__ */ jsxs19(MotionComponent, Object.assign(Object.assign({}, rest), { style,
35530
35714
  ref, children: [
35531
- background && /* @__PURE__ */ jsx58(BackgroundImageComponent, { image: background, alt, }),
35715
+ background && /* @__PURE__ */ jsx61(BackgroundImageComponent, { image: background, alt, }),
35532
35716
  children,
35533
35717
  ] }));
35534
35718
  });
@@ -35623,7 +35807,7 @@ var DeprecatedRichText = /* @__PURE__ */ React86.forwardRef(function Text3(props
35623
35807
  const { id: id3, name, html, htmlFromDesign, text, textFromDesign, fonts = [], width, height, left, right, top, bottom, center, className, 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 } = 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"]);
35624
35808
  const parentSize = useParentSize();
35625
35809
  const layoutId = useLayoutId2(props);
35626
- const fallbackLayoutRef = useRef18(null);
35810
+ const fallbackLayoutRef = useRef20(null);
35627
35811
  const layoutRef = forwardedRef !== null && forwardedRef !== void 0 ? forwardedRef : fallbackLayoutRef;
35628
35812
  const { navigate, getRoute, } = useRouter();
35629
35813
  const currentRoute = useCurrentRoute();
@@ -35740,7 +35924,7 @@ var DeprecatedRichText = /* @__PURE__ */ React86.forwardRef(function Text3(props
35740
35924
  forceLayerBackingWithCSSProperties(style);
35741
35925
  }
35742
35926
  Object.assign(style, props.style);
35743
- return /* @__PURE__ */ jsx59(motion.div, Object.assign(Object.assign({ id: id3, ref: layoutRef }, rest), { style,
35927
+ return /* @__PURE__ */ jsx62(motion.div, Object.assign(Object.assign({ id: id3, ref: layoutRef }, rest), { style,
35744
35928
  layoutId, 'data-framer-name': name, 'data-framer-component-type': 'DeprecatedRichText', 'data-center': center, className: cx(className, stylesPresetsClassName, richTextWrapperClassName), transformTemplate: template, dangerouslySetInnerHTML: { __html: innerHTMLWithReplacedFramerPageLinks, } }));
35745
35929
  });
35746
35930
  function convertVerticalAlignment2(verticalAlignment) {
@@ -35754,7 +35938,7 @@ function convertVerticalAlignment2(verticalAlignment) {
35754
35938
  }
35755
35939
  }
35756
35940
  function useLoadFonts(fonts, fromCanvasComponent, containerRef) {
35757
- const prevFontsRef = useRef18([]);
35941
+ const prevFontsRef = useRef20([]);
35758
35942
  if (!isShallowEqualArray(prevFontsRef.current, fonts)) {
35759
35943
  prevFontsRef.current = fonts;
35760
35944
  fontStore.loadFonts(fonts).then(({ newlyLoadedFontCount, }) => {
@@ -35769,7 +35953,7 @@ function useLoadFonts(fonts, fromCanvasComponent, containerRef) {
35769
35953
  }
35770
35954
  var FitText = /* @__PURE__ */ forwardRef52((_f, ref) => {
35771
35955
  var { viewBoxScale, viewBox, children } = _f, props = __rest(_f, ["viewBoxScale", "viewBox", "children"]);
35772
- return /* @__PURE__ */ jsx60(motion.svg, Object.assign(Object.assign({ ref }, props), { viewBox, children: /* @__PURE__ */ jsx60(motion.foreignObject, {
35956
+ return /* @__PURE__ */ jsx63(motion.svg, Object.assign(Object.assign({ ref }, props), { viewBox, children: /* @__PURE__ */ jsx63(motion.foreignObject, {
35773
35957
  width: '100%',
35774
35958
  height: '100%',
35775
35959
  className: 'framer-fit-text',
@@ -35785,7 +35969,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef52((props, ref) => {
35785
35969
  const isOnCanvas = useIsOnFramerCanvas();
35786
35970
  const inCodeComponent = useContext162(ComponentContainerContext);
35787
35971
  const layoutId = useLayoutId2(props);
35788
- const fallbackRef = useRef19(null);
35972
+ const fallbackRef = useRef21(null);
35789
35973
  const containerRef = ref !== null && ref !== void 0 ? ref : fallbackRef;
35790
35974
  useMeasureLayout(props, containerRef);
35791
35975
  useLoadFonts(fonts, __fromCanvasComponent, containerRef);
@@ -35811,8 +35995,9 @@ var RichTextContainer = /* @__PURE__ */ forwardRef52((props, ref) => {
35811
35995
  const template = hasTransformTemplate ? (_f = props.transformTemplate) !== null && _f !== void 0 ? _f : transformTemplate(center) : void 0;
35812
35996
  if (!withExternalLayout) {
35813
35997
  if (frame2 && restrictedRenderTarget && !isAutoSized2) {
35814
- const rotate = Animatable.getNumber(rotation).toFixed(4);
35815
- containerStyle.transform = `translate(${frame2.x}px, ${frame2.y}px) rotate(${rotate}deg)`;
35998
+ containerStyle.x = frame2.x;
35999
+ containerStyle.y = frame2.y;
36000
+ containerStyle.rotate = Animatable.getNumber(rotation);
35816
36001
  containerStyle.width = frame2.width;
35817
36002
  containerStyle.minWidth = frame2.width;
35818
36003
  containerStyle.height = frame2.height;
@@ -35853,7 +36038,7 @@ var RichTextContainer = /* @__PURE__ */ forwardRef52((props, ref) => {
35853
36038
  const Component15 = htmlElementAsMotionComponent(props.as);
35854
36039
  if (isString22(props.viewBox)) {
35855
36040
  if (props.as !== void 0) {
35856
- return /* @__PURE__ */ jsx60(Component15, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: /* @__PURE__ */ jsx60(FitText, {
36041
+ return /* @__PURE__ */ jsx63(Component15, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: /* @__PURE__ */ jsx63(FitText, {
35857
36042
  viewBox,
35858
36043
  viewBoxScale,
35859
36044
  style: { width: '100%', height: '100%', },
@@ -35861,12 +36046,12 @@ var RichTextContainer = /* @__PURE__ */ forwardRef52((props, ref) => {
35861
36046
  }) }));
35862
36047
  }
35863
36048
  else {
35864
- return /* @__PURE__ */ jsx60(FitText, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId,
36049
+ return /* @__PURE__ */ jsx63(FitText, Object.assign(Object.assign({}, rest), { ref: containerRef, style: containerStyle, layoutId,
35865
36050
  viewBox,
35866
36051
  viewBoxScale, transformTemplate: template, 'data-framer-name': name, 'data-framer-component-type': 'RichTextContainer', children: children && styleRichTextChildren(children, stylesPresetsClassNames, plainText) }));
35867
36052
  }
35868
36053
  }
35869
- return /* @__PURE__ */ jsx60(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) }));
36054
+ return /* @__PURE__ */ jsx63(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) }));
35870
36055
  });
35871
36056
  function styleRichTextChildren(element, stylesPresetsClassNames, plainText) {
35872
36057
  let children = Children32.toArray(element.props.children);
@@ -35901,7 +36086,7 @@ var RichText = /* @__PURE__ */ forwardRef52((_f, ref) => {
35901
36086
  // We need to use the original prop name.
35902
36087
  [isString22(html) ? 'html' : 'htmlFromDesign']: content,
35903
36088
  };
35904
- return /* @__PURE__ */ jsx60(DeprecatedRichText, Object.assign(Object.assign(Object.assign({}, props), contentProp), { ref }));
36089
+ return /* @__PURE__ */ jsx63(DeprecatedRichText, Object.assign(Object.assign(Object.assign({}, props), contentProp), { ref }));
35905
36090
  }
35906
36091
  if (!props.stylesPresetsClassNames && isString22(props.stylesPresetsClassName)) {
35907
36092
  const [h1, h2, h3, p, a,] = props.stylesPresetsClassName.split(' ');
@@ -35912,7 +36097,7 @@ var RichText = /* @__PURE__ */ forwardRef52((_f, ref) => {
35912
36097
  props.stylesPresetsClassNames = { h1, h2, h3, p, a, };
35913
36098
  }
35914
36099
  }
35915
- return /* @__PURE__ */ jsx60(RichTextContainer, Object.assign(Object.assign({}, props), { ref, children: isValidElement32(content) ? content : void 0 }));
36100
+ return /* @__PURE__ */ jsx63(RichTextContainer, Object.assign(Object.assign({}, props), { ref, children: isValidElement32(content) ? content : void 0 }));
35916
36101
  });
35917
36102
  var key6 = 'calculatedPaths';
35918
36103
  function withShape(target) {
@@ -36326,8 +36511,8 @@ var package_default = {
36326
36511
  '@types/google.fonts': '1.0.3',
36327
36512
  '@types/hsluv': 'https://github.com/framer/typed_hsluv#bump',
36328
36513
  '@types/node': '^18.17.15',
36329
- '@types/react': '^18.0.26',
36330
- '@types/react-dom': '^18.0.10',
36514
+ '@types/react': '^18.2.67',
36515
+ '@types/react-dom': '^18.2.22',
36331
36516
  '@types/yargs': '^17.0.19',
36332
36517
  '@typescript-eslint/eslint-plugin': '^6.16.0',
36333
36518
  '@typescript-eslint/parser': '^6.16.0',
@@ -36343,7 +36528,7 @@ var package_default = {
36343
36528
  yargs: '^17.6.2',
36344
36529
  },
36345
36530
  peerDependencies: {
36346
- 'framer-motion': '11.0.7',
36531
+ 'framer-motion': '11.0.11-sync.4',
36347
36532
  react: '^18.2.0',
36348
36533
  'react-dom': '^18.2.0',
36349
36534
  },
@@ -36383,7 +36568,7 @@ MotionValue.prototype.addChild = function ({ transformer = (v) => v, }) {
36383
36568
  if (false) {
36384
36569
  MainLoop.start();
36385
36570
  }
36386
- export { _injectRuntime, addActionControls, addFonts, addPointerEvent, addPointerInfo, addPropertyControls, addScaleCorrector, AnchorLinkTarget, Animatable, animate2 as animate, AnimatePresence, AnimateSharedLayout, animateValue, animateVisualElement, animationControls, animations, annotateTypeOnStringify, anticipate, AnyInterpolation, AutomaticLayoutIds, BackgroundImage, backgroundImageFromProps, backIn, backInOut, backOut, BezierAnimator, BoxShadow, buildTransform, calcLength, calculateRect, callEach, cancelFrame, cancelSync, CanvasStore, checkTargetForNewValues, circIn, circInOut, circOut, clamp, collectVisualStyleFromProps, Color, color, ColorFormat, ColorMixModelType, combinedCSSRulesForPreview, complex, ComponentContainerContext, ComponentPresetsConsumer, ComponentPresetsProvider, ComponentViewportProvider, ConstraintMask, constraintsEnabled, ConstraintValues, Container, ControlType, ConvertColor, convertPresentationTree, convertPropsToDeviceOptions, createBox, createData, createDesignComponent, createDomMotionComponent, createFramerPageLink, createMotionComponent, createScopedAnimate, cssBackgroundSize, cubicBezier, CustomCursorHost, CustomProperties, cx, CycleVariantState, Data, DataContext, DataObserver, DataObserverContext, debounce, defaultDeviceProps, delay, DeprecatedComponentContainer, DeprecatedFrameWithEvents, DeprecatedLayoutGroupContext, DeprecatedLayoutGroupContext as LayoutGroupContext, Device, DeviceCodeComponent, devicePresets, DimensionType, disableInstantTransitions, dispatchKeyDownEvent, distance, distance2D, DOM, domAnimation, domMax, DragControls, Draggable, easeIn, easeInOut, easeOut, EmptyState, environment, ErrorPlaceholder, executeInRenderEnvironment, filterProps, finiteNumber, FlatTree, Floating, FontSourceNames, fontStore, forceLayerBackingWithCSSProperties, fraction, Frame, frame, frameData, frameFromElement, frameFromElements, FramerAnimation, framerAppearAnimationScriptKey, framerAppearEffects, framerAppearIdKey, framerAppearTransformTemplateToken, FramerEvent, FramerEventListener, FramerEventSession, FrameWithMotion, GamepadContext, GeneratedComponentContext, getComponentSize, getDevicePreset, getFonts, getFontsFromComponentPreset, getFontsFromSharedStyle, getMeasurableCodeComponentChildren, getMergedConstraintsProps, getPropertyControls, getWhereExpressionFromPathVariables, gradientForShape, Image2 as Image, imagePatternPropsForFill, imageUrlForAsset, inferInitialRouteFromPath, injectComponentCSSRules, installFlexboxGapWorkaroundIfNeeded, InternalID, interpolate, invariant, inView, isAnimatable2 as isAnimatable, isBrowser, isDesignDefinition, isDragActive, isEqual, isFiniteNumber, isFractionDimension, isFramerGamepadKeydownData, isFramerPageLink, isGapEnabled, isMotionComponent, isMotionValue2 as isMotionValue, isOfAnnotatedType, isOverride, isReactDefinition, isRelativeNumber, isShallowEqualArray, isStraightCurve, isValidMotionProp, Layer, LayoutGroup, LayoutIdContext, lazy, LazyMotion, LazyValue, LibraryFeaturesProvider, Line, LinearGradient, Link, loadFont, loadJSON, localPackageFallbackIdentifier, localShadowFrame, m, MainLoop, makePaddingString, makeUseVisualState, memoize2 as memoize, mirrorEasing, mix, modulate, motion, MotionConfig, MotionConfigContext, MotionContext, MotionGlobalConfig, MotionSetup, MotionValue, motionValue, NavigateTo, NavigationCallbackProvider, NavigationConsumer, NavigationTransitionType, NavigationWrapper as Navigation, NotFoundError, ObservableObject, optimizeAppear, optimizeAppearTransformTemplate, optimizedAppearDataAttribute, paddingFromProps, Page3 as Page, PageEffectsProvider, PageRoot, ParentSizeState, parseFramerPageLink, pathDefaults, PathSegment, PathVariablesContext, pipe, Point, PresenceContext, print, progress, PropertyOverrides, PropertyStore, propsForLink, px, QueryEngine, RadialGradient, Rect, removeHiddenBreakpointLayers, RenderNodeProvider, RenderTarget, Reorder, resolveLink, ResolveLinks, resolveMotionValue, resolvePageScope, reverseEasing, RichText, roundedNumber, roundedNumberString, roundWithOffset, Scroll, scroll, scrollInfo, setGlobalRenderEnvironment, Shadow, sharedSVGManager, shouldOpenLinkInNewTab, Size, spring, SpringAnimator, SSRVariants, Stack, stagger, startAnimation, startOptimizedAppearAnimation, steps, StyleSheetContext, SVG, SwitchLayoutGroupContext, sync, systemFontFamilyName, Text, throttle, toFlexDirection, toJustifyOrAlignment, toSVGPath, transform, transformString, transformTemplate, unwrapMotionComponent, useActiveTargetCallback, useActiveVariantCallback, useAddVariantProps, useAnimate, useAnimatedState, useAnimatedState as useDeprecatedAnimatedState, useAnimation, useAnimationControls, useAnimationFrame, useBreakpointVariants, useComponentViewport, useConstant2 as useConstant, useCurrentPathVariables, useCurrentRouteId, useCustomCursors, useCycle, useDataRecord, useDomEvent, useDragControls, useDynamicRefs, useElementScroll, useForceUpdate, useGamepad, useHotkey, useHydratedBreakpointVariants, useInitialRouteComponent, useInstantLayoutTransition, useInstantTransition, useInvertedScale, useInvertedScale as useDeprecatedInvertedScale, useInView, useIsInCurrentNavigationTarget, useIsomorphicLayoutEffect, useIsOnFramerCanvas, useIsPresent, useLocale, useLocaleCode, useLocaleInfo, useLocalizationInfo, useMeasureLayout, useMotionTemplate, useMotionValue, useMotionValueEvent, useNavigate, useNavigation, useObserveData, useOnAppear, useOnCurrentTargetChange, useOnVariantChange, useOverlayState, usePageEffects, usePresence, usePrototypeNavigate, useProvidedWindow, useQueryData, useReducedMotion, useReducedMotionConfig, useRenderEnvironment, useResetProjection, useRoute, useRouteAnchor, useRouteElementId, useRouteHandler, useRouter, useScroll, useSpring, useTime, useTransform, useUnmountEffect, useVariantState, useVelocity, useViewportScroll, useWillChange, ValueInterpolation, valueToDimensionType, VariantSelector, Vector, VectorGroup, version, VisualElement, visualElementStore, warning, WindowContext, withCSS, withFX, withGeneratedLayoutId, withMappedReactProps, withMeasuredSize, WithNavigator, withOpacity, WithOverride, withParallaxTransform, withPath, withShape, withStyleAppearEffect, withVariantAppearEffect, withVariantFX, wrap, };
36571
+ export { _injectRuntime, addActionControls, addFonts, addPointerEvent, addPointerInfo, addPropertyControls, addScaleCorrector, AnchorLinkTarget, Animatable, animate2 as animate, AnimatePresence, AnimateSharedLayout, animateValue, animateVisualElement, animationControls, animations, annotateTypeOnStringify, anticipate, AnyInterpolation, AutomaticLayoutIds, BackgroundImage, backgroundImageFromProps, backIn, backInOut, backOut, BezierAnimator, BoxShadow, buildTransform, calcLength, calculateRect, callEach, cancelFrame, cancelSync, CanvasStore, checkTargetForNewValues, circIn, circInOut, circOut, clamp, collectVisualStyleFromProps, Color, color, ColorFormat, ColorMixModelType, combinedCSSRulesForPreview, complex, ComponentContainerContext, ComponentPresetsConsumer, ComponentPresetsProvider, ComponentViewportProvider, ConstraintMask, constraintsEnabled, ConstraintValues, Container, ControlType, ConvertColor, convertPresentationTree, convertPropsToDeviceOptions, createBox, createData, createDesignComponent, createDomMotionComponent, createFramerPageLink, createMotionComponent, createScopedAnimate, cssBackgroundSize, cubicBezier, CustomCursorHost, CustomProperties, cx, CycleVariantState, Data, DataContext, DataObserver, DataObserverContext, debounce, defaultDeviceProps, degreesToRadians, delay, DeprecatedComponentContainer, DeprecatedFrameWithEvents, DeprecatedLayoutGroupContext, DeprecatedLayoutGroupContext as LayoutGroupContext, Device, DeviceCodeComponent, devicePresets, DimensionType, disableInstantTransitions, dispatchKeyDownEvent, distance, distance2D, DOM, domAnimation, domMax, DragControls, Draggable, easeIn, easeInOut, easeOut, EmptyState, environment, ErrorPlaceholder, executeInRenderEnvironment, filterProps, finiteNumber, FlatTree, Floating, FontSourceNames, fontStore, forceLayerBackingWithCSSProperties, FormButton, FormContainer, FormPlainTextInput, fraction, Frame, frame, frameData, frameFromElement, frameFromElements, FramerAnimation, framerAppearAnimationScriptKey, framerAppearEffects, framerAppearIdKey, framerAppearTransformTemplateToken, FramerEvent, FramerEventListener, FramerEventSession, FrameWithMotion, GamepadContext, GeneratedComponentContext, getComponentSize, getDevicePreset, getFonts, getFontsFromComponentPreset, getFontsFromSharedStyle, getMeasurableCodeComponentChildren, getMergedConstraintsProps, getPropertyControls, getWhereExpressionFromPathVariables, gradientForShape, Image2 as Image, imagePatternPropsForFill, imageUrlForAsset, inferInitialRouteFromPath, injectComponentCSSRules, installFlexboxGapWorkaroundIfNeeded, InternalID, interpolate, invariant, inView, isAnimatable2 as isAnimatable, isBrowser, isDesignDefinition, isDragActive, isEqual, isFiniteNumber, isFractionDimension, isFramerGamepadKeydownData, isFramerPageLink, isGapEnabled, isMotionComponent, isMotionValue2 as isMotionValue, isOfAnnotatedType, isOverride, isReactDefinition, isRelativeNumber, isShallowEqualArray, isStraightCurve, isValidMotionProp, Layer, LayoutGroup, LayoutIdContext, lazy, LazyMotion, LazyValue, LibraryFeaturesProvider, Line, LinearGradient, Link, loadFont, loadJSON, localPackageFallbackIdentifier, localShadowFrame, m, MainLoop, makePaddingString, makeUseVisualState, memoize2 as memoize, mirrorEasing, mix, modulate, motion, MotionConfig, MotionConfigContext, MotionContext, MotionGlobalConfig, MotionSetup, MotionValue, motionValue, NavigateTo, NavigationCallbackProvider, NavigationConsumer, NavigationTransitionType, NavigationWrapper as Navigation, NotFoundError, ObservableObject, optimizeAppear, optimizeAppearTransformTemplate, optimizedAppearDataAttribute, paddingFromProps, Page3 as Page, PageEffectsProvider, PageRoot, ParentSizeState, parseFramerPageLink, pathDefaults, PathSegment, PathVariablesContext, pipe, Point, Polygon, PresenceContext, print, progress, PropertyOverrides, PropertyStore, propsForLink, px, QueryEngine, RadialGradient, Rect, removeHiddenBreakpointLayers, RenderNodeProvider, RenderTarget, Reorder, resolveLink, ResolveLinks, resolveMotionValue, resolvePageScope, reverseEasing, RichText, roundedNumber, roundedNumberString, roundWithOffset, Scroll, scroll, scrollInfo, setGlobalRenderEnvironment, Shadow, sharedSVGManager, shouldOpenLinkInNewTab, Size, spring, SpringAnimator, SSRVariants, Stack, stagger, startAnimation, startOptimizedAppearAnimation, steps, StyleSheetContext, SVG, SwitchLayoutGroupContext, sync, systemFontFamilyName, Text, throttle, toFlexDirection, toJustifyOrAlignment, toSVGPath, transform, transformString, transformTemplate, unwrapMotionComponent, useActiveTargetCallback, useActiveVariantCallback, useAddVariantProps, useAnimate, useAnimatedState, useAnimatedState as useDeprecatedAnimatedState, useAnimation, useAnimationControls, useAnimationFrame, useBreakpointVariants, useComponentViewport, useConstant2 as useConstant, useCurrentPathVariables, useCurrentRouteId, useCustomCursors, useCycle, useDataRecord, useDomEvent, useDragControls, useDynamicRefs, useElementScroll, useForceUpdate, useGamepad, useHotkey, useHydratedBreakpointVariants, useInitialRouteComponent, useInstantLayoutTransition, useInstantTransition, useInvertedScale, useInvertedScale as useDeprecatedInvertedScale, useInView, useIsInCurrentNavigationTarget, useIsomorphicLayoutEffect, useIsOnFramerCanvas, useIsPresent, useLocale, useLocaleCode, useLocaleInfo, useLocalizationInfo, useMeasureLayout, useMotionTemplate, useMotionValue, useMotionValueEvent, useNavigate, useNavigation, useObserveData, useOnAppear, useOnCurrentTargetChange, useOnVariantChange, useOverlayState, usePageEffects, usePresence, usePrototypeNavigate, useProvidedWindow, useQueryCount, useQueryData, useReducedMotion, useReducedMotionConfig, useRenderEnvironment, useResetProjection, useRoute, useRouteAnchor, useRouteElementId, useRouteHandler, useRouter, useScroll, useSpring, useTime, useTransform, useUnmountEffect, useVariantState, useVelocity, useViewportScroll, useWillChange, ValueInterpolation, valueToDimensionType, VariantSelector, Vector, VectorGroup, version, VisualElement, visualElementStore, warning, WindowContext, withCSS, withFX, withGeneratedLayoutId, withMappedReactProps, withMeasuredSize, WithNavigator, withOpacity, WithOverride, withParallaxTransform, withPath, withShape, withStyleAppearEffect, withVariantAppearEffect, withVariantFX, wrap, };
36387
36572
  /**
36388
36573
  * @license Emotion v11.0.0
36389
36574
  * MIT License