@veevarts/design-system 0.1.9 → 0.1.11

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.
@@ -0,0 +1,1413 @@
1
+ import { i as C, a as et, b as he, f as T, c as A, e as ue, g as Nt, p as ce, h as F, s as de, m as fe, j as v, k as Q, l as Wt, n as y, o as N, q as me, r as pe, t as ge, u as it, v as _t, w as $, x as ye, F as zt, y as M, z as Gt, A as st, B as ve, L as xe, C as Pe, S as Te, D as De, E as $t, G as Se, H as Ee, I as Ht, J as Xt, K as Yt, M as Ae, N as nt, O as Re, P as Le, Q as H, R as V, T as W, U as _, V as ot, W as Ce, X as je, Y as Ve, Z as B, _ as X, $ as at, a0 as Be, d as Me } from "./index-CoJjMIJT.js";
2
+ import { a7 as Hi, a1 as Xi, am as Yi, a2 as qi, a3 as Ki, a4 as Zi, aj as Ji, ak as Qi, ae as ts, ao as es, al as is, ad as ss, a8 as ns, aF as os, as, at as rs, au as ls, av as hs, ab as us, aw as cs, ax as ds, af as fs, a9 as ms, ay as ps, az as gs, aA as ys, aB as vs, aG as xs, ah as Ps, ap as Ts, aE as Ds, aI as Ss, an as Es, aa as As, aq as Rs, a5 as Ls, aH as Cs, aC as js, ar as Vs, ai as Bs, aD as Ms, ag as ws, aK as ks, aJ as bs, a6 as Us, ac as Is } from "./index-CoJjMIJT.js";
3
+ import { useContext as rt, Component as we } from "react";
4
+ function ke(t) {
5
+ return t === "x" || t === "y" ? C[t] ? null : (C[t] = !0, () => {
6
+ C[t] = !1;
7
+ }) : C.x || C.y ? null : (C.x = C.y = !0, () => {
8
+ C.x = C.y = !1;
9
+ });
10
+ }
11
+ function U(t, e, i, n) {
12
+ return et(t, e, he(i), n);
13
+ }
14
+ const lt = (t, e) => Math.abs(t - e);
15
+ function be(t, e) {
16
+ const i = lt(t.x, e.x), n = lt(t.y, e.y);
17
+ return Math.sqrt(i ** 2 + n ** 2);
18
+ }
19
+ class qt {
20
+ constructor(e, i, { transformPagePoint: n, contextWindow: r, dragSnapToOrigin: c = !1 } = {}) {
21
+ if (this.startEvent = null, this.lastMoveEvent = null, this.lastMoveEventInfo = null, this.handlers = {}, this.contextWindow = window, this.updatePoint = () => {
22
+ if (!(this.lastMoveEvent && this.lastMoveEventInfo))
23
+ return;
24
+ const u = q(this.lastMoveEventInfo, this.history), d = this.startEvent !== null, f = be(u.offset, { x: 0, y: 0 }) >= 3;
25
+ if (!d && !f)
26
+ return;
27
+ const { point: m } = u, { timestamp: p } = T;
28
+ this.history.push({ ...m, timestamp: p });
29
+ const { onStart: g, onMove: x } = this.handlers;
30
+ d || (g && g(this.lastMoveEvent, u), this.startEvent = this.lastMoveEvent), x && x(this.lastMoveEvent, u);
31
+ }, this.handlePointerMove = (u, d) => {
32
+ this.lastMoveEvent = u, this.lastMoveEventInfo = Y(d, this.transformPagePoint), A.update(this.updatePoint, !0);
33
+ }, this.handlePointerUp = (u, d) => {
34
+ this.end();
35
+ const { onEnd: f, onSessionEnd: m, resumeAnimation: p } = this.handlers;
36
+ if (this.dragSnapToOrigin && p && p(), !(this.lastMoveEvent && this.lastMoveEventInfo))
37
+ return;
38
+ const g = q(u.type === "pointercancel" ? this.lastMoveEventInfo : Y(d, this.transformPagePoint), this.history);
39
+ this.startEvent && f && f(u, g), m && m(u, g);
40
+ }, !ue(e))
41
+ return;
42
+ this.dragSnapToOrigin = c, this.handlers = i, this.transformPagePoint = n, this.contextWindow = r || window;
43
+ const s = Nt(e), o = Y(s, this.transformPagePoint), { point: a } = o, { timestamp: l } = T;
44
+ this.history = [{ ...a, timestamp: l }];
45
+ const { onSessionStart: h } = i;
46
+ h && h(e, q(o, this.history)), this.removeListeners = ce(U(this.contextWindow, "pointermove", this.handlePointerMove), U(this.contextWindow, "pointerup", this.handlePointerUp), U(this.contextWindow, "pointercancel", this.handlePointerUp));
47
+ }
48
+ updateHandlers(e) {
49
+ this.handlers = e;
50
+ }
51
+ end() {
52
+ this.removeListeners && this.removeListeners(), F(this.updatePoint);
53
+ }
54
+ }
55
+ function Y(t, e) {
56
+ return e ? { point: e(t.point) } : t;
57
+ }
58
+ function ht(t, e) {
59
+ return { x: t.x - e.x, y: t.y - e.y };
60
+ }
61
+ function q({ point: t }, e) {
62
+ return {
63
+ point: t,
64
+ delta: ht(t, Kt(e)),
65
+ offset: ht(t, Ue(e)),
66
+ velocity: Ie(e, 0.1)
67
+ };
68
+ }
69
+ function Ue(t) {
70
+ return t[0];
71
+ }
72
+ function Kt(t) {
73
+ return t[t.length - 1];
74
+ }
75
+ function Ie(t, e) {
76
+ if (t.length < 2)
77
+ return { x: 0, y: 0 };
78
+ let i = t.length - 1, n = null;
79
+ const r = Kt(t);
80
+ for (; i >= 0 && (n = t[i], !(r.timestamp - n.timestamp > de(e))); )
81
+ i--;
82
+ if (!n)
83
+ return { x: 0, y: 0 };
84
+ const c = fe(r.timestamp - n.timestamp);
85
+ if (c === 0)
86
+ return { x: 0, y: 0 };
87
+ const s = {
88
+ x: (r.x - n.x) / c,
89
+ y: (r.y - n.y) / c
90
+ };
91
+ return s.x === 1 / 0 && (s.x = 0), s.y === 1 / 0 && (s.y = 0), s;
92
+ }
93
+ const Zt = 1e-4, Oe = 1 - Zt, Fe = 1 + Zt, Jt = 0.01, Ne = 0 - Jt, We = 0 + Jt;
94
+ function D(t) {
95
+ return t.max - t.min;
96
+ }
97
+ function _e(t, e, i) {
98
+ return Math.abs(t - e) <= i;
99
+ }
100
+ function ut(t, e, i, n = 0.5) {
101
+ t.origin = n, t.originPoint = v(e.min, e.max, t.origin), t.scale = D(i) / D(e), t.translate = v(i.min, i.max, t.origin) - t.originPoint, (t.scale >= Oe && t.scale <= Fe || isNaN(t.scale)) && (t.scale = 1), (t.translate >= Ne && t.translate <= We || isNaN(t.translate)) && (t.translate = 0);
102
+ }
103
+ function I(t, e, i, n) {
104
+ ut(t.x, e.x, i.x, n ? n.originX : void 0), ut(t.y, e.y, i.y, n ? n.originY : void 0);
105
+ }
106
+ function ct(t, e, i) {
107
+ t.min = i.min + e.min, t.max = t.min + D(e);
108
+ }
109
+ function ze(t, e, i) {
110
+ ct(t.x, e.x, i.x), ct(t.y, e.y, i.y);
111
+ }
112
+ function dt(t, e, i) {
113
+ t.min = e.min - i.min, t.max = t.min + D(e);
114
+ }
115
+ function O(t, e, i) {
116
+ dt(t.x, e.x, i.x), dt(t.y, e.y, i.y);
117
+ }
118
+ function Ge(t, { min: e, max: i }, n) {
119
+ return e !== void 0 && t < e ? t = n ? v(e, t, n.min) : Math.max(t, e) : i !== void 0 && t > i && (t = n ? v(i, t, n.max) : Math.min(t, i)), t;
120
+ }
121
+ function ft(t, e, i) {
122
+ return {
123
+ min: e !== void 0 ? t.min + e : void 0,
124
+ max: i !== void 0 ? t.max + i - (t.max - t.min) : void 0
125
+ };
126
+ }
127
+ function $e(t, { top: e, left: i, bottom: n, right: r }) {
128
+ return {
129
+ x: ft(t.x, i, r),
130
+ y: ft(t.y, e, n)
131
+ };
132
+ }
133
+ function mt(t, e) {
134
+ let i = e.min - t.min, n = e.max - t.max;
135
+ return e.max - e.min < t.max - t.min && ([i, n] = [n, i]), { min: i, max: n };
136
+ }
137
+ function He(t, e) {
138
+ return {
139
+ x: mt(t.x, e.x),
140
+ y: mt(t.y, e.y)
141
+ };
142
+ }
143
+ function Xe(t, e) {
144
+ let i = 0.5;
145
+ const n = D(t), r = D(e);
146
+ return r > n ? i = Q(e.min, e.max - n, t.min) : n > r && (i = Q(t.min, t.max - r, e.min)), Wt(0, 1, i);
147
+ }
148
+ function Ye(t, e) {
149
+ const i = {};
150
+ return e.min !== void 0 && (i.min = e.min - t.min), e.max !== void 0 && (i.max = e.max - t.min), i;
151
+ }
152
+ const tt = 0.35;
153
+ function qe(t = tt) {
154
+ return t === !1 ? t = 0 : t === !0 && (t = tt), {
155
+ x: pt(t, "left", "right"),
156
+ y: pt(t, "top", "bottom")
157
+ };
158
+ }
159
+ function pt(t, e, i) {
160
+ return {
161
+ min: gt(t, e),
162
+ max: gt(t, i)
163
+ };
164
+ }
165
+ function gt(t, e) {
166
+ return typeof t == "number" ? t : t[e] || 0;
167
+ }
168
+ function E(t) {
169
+ return [t("x"), t("y")];
170
+ }
171
+ const Qt = ({ current: t }) => t ? t.ownerDocument.defaultView : null, Ke = /* @__PURE__ */ new WeakMap();
172
+ class Ze {
173
+ constructor(e) {
174
+ this.openDragLock = null, this.isDragging = !1, this.currentDirection = null, this.originPoint = { x: 0, y: 0 }, this.constraints = !1, this.hasMutatedConstraints = !1, this.elastic = y(), this.visualElement = e;
175
+ }
176
+ start(e, { snapToCursor: i = !1 } = {}) {
177
+ const { presenceContext: n } = this.visualElement;
178
+ if (n && n.isPresent === !1)
179
+ return;
180
+ const r = (h) => {
181
+ const { dragSnapToOrigin: u } = this.getProps();
182
+ u ? this.pauseAnimation() : this.stopAnimation(), i && this.snapToCursor(Nt(h).point);
183
+ }, c = (h, u) => {
184
+ const { drag: d, dragPropagation: f, onDragStart: m } = this.getProps();
185
+ if (d && !f && (this.openDragLock && this.openDragLock(), this.openDragLock = ke(d), !this.openDragLock))
186
+ return;
187
+ this.isDragging = !0, this.currentDirection = null, this.resolveConstraints(), this.visualElement.projection && (this.visualElement.projection.isAnimationBlocked = !0, this.visualElement.projection.target = void 0), E((g) => {
188
+ let x = this.getAxisMotionValue(g).get() || 0;
189
+ if ($.test(x)) {
190
+ const { projection: R } = this.visualElement;
191
+ if (R && R.layout) {
192
+ const P = R.layout.layoutBox[g];
193
+ P && (x = D(P) * (parseFloat(x) / 100));
194
+ }
195
+ }
196
+ this.originPoint[g] = x;
197
+ }), m && A.postRender(() => m(h, u)), it(this.visualElement, "transform");
198
+ const { animationState: p } = this.visualElement;
199
+ p && p.setActive("whileDrag", !0);
200
+ }, s = (h, u) => {
201
+ const { dragPropagation: d, dragDirectionLock: f, onDirectionLock: m, onDrag: p } = this.getProps();
202
+ if (!d && !this.openDragLock)
203
+ return;
204
+ const { offset: g } = u;
205
+ if (f && this.currentDirection === null) {
206
+ this.currentDirection = Je(g), this.currentDirection !== null && m && m(this.currentDirection);
207
+ return;
208
+ }
209
+ this.updateAxis("x", u.point, g), this.updateAxis("y", u.point, g), this.visualElement.render(), p && p(h, u);
210
+ }, o = (h, u) => this.stop(h, u), a = () => E((h) => {
211
+ var u;
212
+ return this.getAnimationState(h) === "paused" && ((u = this.getAxisMotionValue(h).animation) === null || u === void 0 ? void 0 : u.play());
213
+ }), { dragSnapToOrigin: l } = this.getProps();
214
+ this.panSession = new qt(e, {
215
+ onSessionStart: r,
216
+ onStart: c,
217
+ onMove: s,
218
+ onSessionEnd: o,
219
+ resumeAnimation: a
220
+ }, {
221
+ transformPagePoint: this.visualElement.getTransformPagePoint(),
222
+ dragSnapToOrigin: l,
223
+ contextWindow: Qt(this.visualElement)
224
+ });
225
+ }
226
+ stop(e, i) {
227
+ const n = this.isDragging;
228
+ if (this.cancel(), !n)
229
+ return;
230
+ const { velocity: r } = i;
231
+ this.startAnimation(r);
232
+ const { onDragEnd: c } = this.getProps();
233
+ c && A.postRender(() => c(e, i));
234
+ }
235
+ cancel() {
236
+ this.isDragging = !1;
237
+ const { projection: e, animationState: i } = this.visualElement;
238
+ e && (e.isAnimationBlocked = !1), this.panSession && this.panSession.end(), this.panSession = void 0;
239
+ const { dragPropagation: n } = this.getProps();
240
+ !n && this.openDragLock && (this.openDragLock(), this.openDragLock = null), i && i.setActive("whileDrag", !1);
241
+ }
242
+ updateAxis(e, i, n) {
243
+ const { drag: r } = this.getProps();
244
+ if (!n || !z(e, r, this.currentDirection))
245
+ return;
246
+ const c = this.getAxisMotionValue(e);
247
+ let s = this.originPoint[e] + n[e];
248
+ this.constraints && this.constraints[e] && (s = Ge(s, this.constraints[e], this.elastic[e])), c.set(s);
249
+ }
250
+ resolveConstraints() {
251
+ var e;
252
+ const { dragConstraints: i, dragElastic: n } = this.getProps(), r = this.visualElement.projection && !this.visualElement.projection.layout ? this.visualElement.projection.measure(!1) : (e = this.visualElement.projection) === null || e === void 0 ? void 0 : e.layout, c = this.constraints;
253
+ i && N(i) ? this.constraints || (this.constraints = this.resolveRefConstraints()) : i && r ? this.constraints = $e(r.layoutBox, i) : this.constraints = !1, this.elastic = qe(n), c !== this.constraints && r && this.constraints && !this.hasMutatedConstraints && E((s) => {
254
+ this.constraints !== !1 && this.getAxisMotionValue(s) && (this.constraints[s] = Ye(r.layoutBox[s], this.constraints[s]));
255
+ });
256
+ }
257
+ resolveRefConstraints() {
258
+ const { dragConstraints: e, onMeasureDragConstraints: i } = this.getProps();
259
+ if (!e || !N(e))
260
+ return !1;
261
+ const n = e.current;
262
+ ye(n !== null, "If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.");
263
+ const { projection: r } = this.visualElement;
264
+ if (!r || !r.layout)
265
+ return !1;
266
+ const c = me(n, r.root, this.visualElement.getTransformPagePoint());
267
+ let s = He(r.layout.layoutBox, c);
268
+ if (i) {
269
+ const o = i(pe(s));
270
+ this.hasMutatedConstraints = !!o, o && (s = ge(o));
271
+ }
272
+ return s;
273
+ }
274
+ startAnimation(e) {
275
+ const { drag: i, dragMomentum: n, dragElastic: r, dragTransition: c, dragSnapToOrigin: s, onDragTransitionEnd: o } = this.getProps(), a = this.constraints || {}, l = E((h) => {
276
+ if (!z(h, i, this.currentDirection))
277
+ return;
278
+ let u = a && a[h] || {};
279
+ s && (u = { min: 0, max: 0 });
280
+ const d = r ? 200 : 1e6, f = r ? 40 : 1e7, m = {
281
+ type: "inertia",
282
+ velocity: n ? e[h] : 0,
283
+ bounceStiffness: d,
284
+ bounceDamping: f,
285
+ timeConstant: 750,
286
+ restDelta: 1,
287
+ restSpeed: 10,
288
+ ...c,
289
+ ...u
290
+ };
291
+ return this.startAxisValueAnimation(h, m);
292
+ });
293
+ return Promise.all(l).then(o);
294
+ }
295
+ startAxisValueAnimation(e, i) {
296
+ const n = this.getAxisMotionValue(e);
297
+ return it(this.visualElement, e), n.start(_t(e, n, 0, i, this.visualElement, !1));
298
+ }
299
+ stopAnimation() {
300
+ E((e) => this.getAxisMotionValue(e).stop());
301
+ }
302
+ pauseAnimation() {
303
+ E((e) => {
304
+ var i;
305
+ return (i = this.getAxisMotionValue(e).animation) === null || i === void 0 ? void 0 : i.pause();
306
+ });
307
+ }
308
+ getAnimationState(e) {
309
+ var i;
310
+ return (i = this.getAxisMotionValue(e).animation) === null || i === void 0 ? void 0 : i.state;
311
+ }
312
+ /**
313
+ * Drag works differently depending on which props are provided.
314
+ *
315
+ * - If _dragX and _dragY are provided, we output the gesture delta directly to those motion values.
316
+ * - Otherwise, we apply the delta to the x/y motion values.
317
+ */
318
+ getAxisMotionValue(e) {
319
+ const i = `_drag${e.toUpperCase()}`, n = this.visualElement.getProps(), r = n[i];
320
+ return r || this.visualElement.getValue(e, (n.initial ? n.initial[e] : void 0) || 0);
321
+ }
322
+ snapToCursor(e) {
323
+ E((i) => {
324
+ const { drag: n } = this.getProps();
325
+ if (!z(i, n, this.currentDirection))
326
+ return;
327
+ const { projection: r } = this.visualElement, c = this.getAxisMotionValue(i);
328
+ if (r && r.layout) {
329
+ const { min: s, max: o } = r.layout.layoutBox[i];
330
+ c.set(e[i] - v(s, o, 0.5));
331
+ }
332
+ });
333
+ }
334
+ /**
335
+ * When the viewport resizes we want to check if the measured constraints
336
+ * have changed and, if so, reposition the element within those new constraints
337
+ * relative to where it was before the resize.
338
+ */
339
+ scalePositionWithinConstraints() {
340
+ if (!this.visualElement.current)
341
+ return;
342
+ const { drag: e, dragConstraints: i } = this.getProps(), { projection: n } = this.visualElement;
343
+ if (!N(i) || !n || !this.constraints)
344
+ return;
345
+ this.stopAnimation();
346
+ const r = { x: 0, y: 0 };
347
+ E((s) => {
348
+ const o = this.getAxisMotionValue(s);
349
+ if (o && this.constraints !== !1) {
350
+ const a = o.get();
351
+ r[s] = Xe({ min: a, max: a }, this.constraints[s]);
352
+ }
353
+ });
354
+ const { transformTemplate: c } = this.visualElement.getProps();
355
+ this.visualElement.current.style.transform = c ? c({}, "") : "none", n.root && n.root.updateScroll(), n.updateLayout(), this.resolveConstraints(), E((s) => {
356
+ if (!z(s, e, null))
357
+ return;
358
+ const o = this.getAxisMotionValue(s), { min: a, max: l } = this.constraints[s];
359
+ o.set(v(a, l, r[s]));
360
+ });
361
+ }
362
+ addListeners() {
363
+ if (!this.visualElement.current)
364
+ return;
365
+ Ke.set(this.visualElement, this);
366
+ const e = this.visualElement.current, i = U(e, "pointerdown", (a) => {
367
+ const { drag: l, dragListener: h = !0 } = this.getProps();
368
+ l && h && this.start(a);
369
+ }), n = () => {
370
+ const { dragConstraints: a } = this.getProps();
371
+ N(a) && a.current && (this.constraints = this.resolveRefConstraints());
372
+ }, { projection: r } = this.visualElement, c = r.addEventListener("measure", n);
373
+ r && !r.layout && (r.root && r.root.updateScroll(), r.updateLayout()), A.read(n);
374
+ const s = et(window, "resize", () => this.scalePositionWithinConstraints()), o = r.addEventListener("didUpdate", (({ delta: a, hasLayoutChanged: l }) => {
375
+ this.isDragging && l && (E((h) => {
376
+ const u = this.getAxisMotionValue(h);
377
+ u && (this.originPoint[h] += a[h].translate, u.set(u.get() + a[h].translate));
378
+ }), this.visualElement.render());
379
+ }));
380
+ return () => {
381
+ s(), i(), c(), o && o();
382
+ };
383
+ }
384
+ getProps() {
385
+ const e = this.visualElement.getProps(), { drag: i = !1, dragDirectionLock: n = !1, dragPropagation: r = !1, dragConstraints: c = !1, dragElastic: s = tt, dragMomentum: o = !0 } = e;
386
+ return {
387
+ ...e,
388
+ drag: i,
389
+ dragDirectionLock: n,
390
+ dragPropagation: r,
391
+ dragConstraints: c,
392
+ dragElastic: s,
393
+ dragMomentum: o
394
+ };
395
+ }
396
+ }
397
+ function z(t, e, i) {
398
+ return (e === !0 || e === t) && (i === null || i === t);
399
+ }
400
+ function Je(t, e = 10) {
401
+ let i = null;
402
+ return Math.abs(t.y) > e ? i = "y" : Math.abs(t.x) > e && (i = "x"), i;
403
+ }
404
+ class Qe extends zt {
405
+ constructor(e) {
406
+ super(e), this.removeGroupControls = M, this.removeListeners = M, this.controls = new Ze(e);
407
+ }
408
+ mount() {
409
+ const { dragControls: e } = this.node.getProps();
410
+ e && (this.removeGroupControls = e.subscribe(this.controls)), this.removeListeners = this.controls.addListeners() || M;
411
+ }
412
+ unmount() {
413
+ this.removeGroupControls(), this.removeListeners();
414
+ }
415
+ }
416
+ const yt = (t) => (e, i) => {
417
+ t && A.postRender(() => t(e, i));
418
+ };
419
+ class ti extends zt {
420
+ constructor() {
421
+ super(...arguments), this.removePointerDownListener = M;
422
+ }
423
+ onPointerDown(e) {
424
+ this.session = new qt(e, this.createPanHandlers(), {
425
+ transformPagePoint: this.node.getTransformPagePoint(),
426
+ contextWindow: Qt(this.node)
427
+ });
428
+ }
429
+ createPanHandlers() {
430
+ const { onPanSessionStart: e, onPanStart: i, onPan: n, onPanEnd: r } = this.node.getProps();
431
+ return {
432
+ onSessionStart: yt(e),
433
+ onStart: yt(i),
434
+ onMove: n,
435
+ onEnd: (c, s) => {
436
+ delete this.session, r && A.postRender(() => r(c, s));
437
+ }
438
+ };
439
+ }
440
+ mount() {
441
+ this.removePointerDownListener = U(this.node.current, "pointerdown", (e) => this.onPointerDown(e));
442
+ }
443
+ update() {
444
+ this.session && this.session.updateHandlers(this.createPanHandlers());
445
+ }
446
+ unmount() {
447
+ this.removePointerDownListener(), this.session && this.session.end();
448
+ }
449
+ }
450
+ const G = {
451
+ /**
452
+ * Global flag as to whether the tree has animated since the last time
453
+ * we resized the window
454
+ */
455
+ hasAnimatedSinceResize: !0,
456
+ /**
457
+ * We set this to true once, on the first update. Any nodes added to the tree beyond that
458
+ * update will be given a `data-projection-id` attribute.
459
+ */
460
+ hasEverUpdated: !1
461
+ };
462
+ function vt(t, e) {
463
+ return e.max === e.min ? 0 : t / (e.max - e.min) * 100;
464
+ }
465
+ const k = {
466
+ correct: (t, e) => {
467
+ if (!e.target)
468
+ return t;
469
+ if (typeof t == "string")
470
+ if (Gt.test(t))
471
+ t = parseFloat(t);
472
+ else
473
+ return t;
474
+ const i = vt(t, e.target.x), n = vt(t, e.target.y);
475
+ return `${i}% ${n}%`;
476
+ }
477
+ }, ei = {
478
+ correct: (t, { treeScale: e, projectionDelta: i }) => {
479
+ const n = t, r = st.parse(t);
480
+ if (r.length > 5)
481
+ return n;
482
+ const c = st.createTransformer(t), s = typeof r[0] != "number" ? 1 : 0, o = i.x.scale * e.x, a = i.y.scale * e.y;
483
+ r[0 + s] /= o, r[1 + s] /= a;
484
+ const l = v(o, a, 0.5);
485
+ return typeof r[2 + s] == "number" && (r[2 + s] /= l), typeof r[3 + s] == "number" && (r[3 + s] /= l), c(r);
486
+ }
487
+ };
488
+ class ii extends we {
489
+ /**
490
+ * This only mounts projection nodes for components that
491
+ * need measuring, we might want to do it for all components
492
+ * in order to incorporate transforms
493
+ */
494
+ componentDidMount() {
495
+ const { visualElement: e, layoutGroup: i, switchLayoutGroup: n, layoutId: r } = this.props, { projection: c } = e;
496
+ De(si), c && (i.group && i.group.add(c), n && n.register && r && n.register(c), c.root.didUpdate(), c.addEventListener("animationComplete", () => {
497
+ this.safeToRemove();
498
+ }), c.setOptions({
499
+ ...c.options,
500
+ onExitComplete: () => this.safeToRemove()
501
+ })), G.hasEverUpdated = !0;
502
+ }
503
+ getSnapshotBeforeUpdate(e) {
504
+ const { layoutDependency: i, visualElement: n, drag: r, isPresent: c } = this.props, s = n.projection;
505
+ return s && (s.isPresent = c, r || e.layoutDependency !== i || i === void 0 ? s.willUpdate() : this.safeToRemove(), e.isPresent !== c && (c ? s.promote() : s.relegate() || A.postRender(() => {
506
+ const o = s.getStack();
507
+ (!o || !o.members.length) && this.safeToRemove();
508
+ }))), null;
509
+ }
510
+ componentDidUpdate() {
511
+ const { projection: e } = this.props.visualElement;
512
+ e && (e.root.didUpdate(), $t.postRender(() => {
513
+ !e.currentAnimation && e.isLead() && this.safeToRemove();
514
+ }));
515
+ }
516
+ componentWillUnmount() {
517
+ const { visualElement: e, layoutGroup: i, switchLayoutGroup: n } = this.props, { projection: r } = e;
518
+ r && (r.scheduleCheckAfterUnmount(), i && i.group && i.group.remove(r), n && n.deregister && n.deregister(r));
519
+ }
520
+ safeToRemove() {
521
+ const { safeToRemove: e } = this.props;
522
+ e && e();
523
+ }
524
+ render() {
525
+ return null;
526
+ }
527
+ }
528
+ function te(t) {
529
+ const [e, i] = ve(), n = rt(xe);
530
+ return Pe.jsx(ii, { ...t, layoutGroup: n, switchLayoutGroup: rt(Te), isPresent: e, safeToRemove: i });
531
+ }
532
+ const si = {
533
+ borderRadius: {
534
+ ...k,
535
+ applyTo: [
536
+ "borderTopLeftRadius",
537
+ "borderTopRightRadius",
538
+ "borderBottomLeftRadius",
539
+ "borderBottomRightRadius"
540
+ ]
541
+ },
542
+ borderTopLeftRadius: k,
543
+ borderTopRightRadius: k,
544
+ borderBottomLeftRadius: k,
545
+ borderBottomRightRadius: k,
546
+ boxShadow: ei
547
+ };
548
+ function ni(t, e, i) {
549
+ const n = Se(t) ? t : Ee(t);
550
+ return n.start(_t("", n, e, i)), n.animation;
551
+ }
552
+ function oi(t) {
553
+ return t instanceof SVGElement && t.tagName !== "svg";
554
+ }
555
+ const ai = (t, e) => t.depth - e.depth;
556
+ class ri {
557
+ constructor() {
558
+ this.children = [], this.isDirty = !1;
559
+ }
560
+ add(e) {
561
+ Ht(this.children, e), this.isDirty = !0;
562
+ }
563
+ remove(e) {
564
+ Xt(this.children, e), this.isDirty = !0;
565
+ }
566
+ forEach(e) {
567
+ this.isDirty && this.children.sort(ai), this.isDirty = !1, this.children.forEach(e);
568
+ }
569
+ }
570
+ function li(t, e) {
571
+ const i = Yt.now(), n = ({ timestamp: r }) => {
572
+ const c = r - i;
573
+ c >= e && (F(n), t(c - e));
574
+ };
575
+ return A.read(n, !0), () => F(n);
576
+ }
577
+ const ee = ["TopLeft", "TopRight", "BottomLeft", "BottomRight"], hi = ee.length, xt = (t) => typeof t == "string" ? parseFloat(t) : t, Pt = (t) => typeof t == "number" || Gt.test(t);
578
+ function ui(t, e, i, n, r, c) {
579
+ r ? (t.opacity = v(
580
+ 0,
581
+ // TODO Reinstate this if only child
582
+ i.opacity !== void 0 ? i.opacity : 1,
583
+ ci(n)
584
+ ), t.opacityExit = v(e.opacity !== void 0 ? e.opacity : 1, 0, di(n))) : c && (t.opacity = v(e.opacity !== void 0 ? e.opacity : 1, i.opacity !== void 0 ? i.opacity : 1, n));
585
+ for (let s = 0; s < hi; s++) {
586
+ const o = `border${ee[s]}Radius`;
587
+ let a = Tt(e, o), l = Tt(i, o);
588
+ if (a === void 0 && l === void 0)
589
+ continue;
590
+ a || (a = 0), l || (l = 0), a === 0 || l === 0 || Pt(a) === Pt(l) ? (t[o] = Math.max(v(xt(a), xt(l), n), 0), ($.test(l) || $.test(a)) && (t[o] += "%")) : t[o] = l;
591
+ }
592
+ (e.rotate || i.rotate) && (t.rotate = v(e.rotate || 0, i.rotate || 0, n));
593
+ }
594
+ function Tt(t, e) {
595
+ return t[e] !== void 0 ? t[e] : t.borderRadius;
596
+ }
597
+ const ci = /* @__PURE__ */ ie(0, 0.5, Ae), di = /* @__PURE__ */ ie(0.5, 0.95, M);
598
+ function ie(t, e, i) {
599
+ return (n) => n < t ? 0 : n > e ? 1 : i(Q(t, e, n));
600
+ }
601
+ function Dt(t, e) {
602
+ t.min = e.min, t.max = e.max;
603
+ }
604
+ function S(t, e) {
605
+ Dt(t.x, e.x), Dt(t.y, e.y);
606
+ }
607
+ function St(t, e) {
608
+ t.translate = e.translate, t.scale = e.scale, t.originPoint = e.originPoint, t.origin = e.origin;
609
+ }
610
+ function Et(t, e, i, n, r) {
611
+ return t -= e, t = nt(t, 1 / i, n), r !== void 0 && (t = nt(t, 1 / r, n)), t;
612
+ }
613
+ function fi(t, e = 0, i = 1, n = 0.5, r, c = t, s = t) {
614
+ if ($.test(e) && (e = parseFloat(e), e = v(s.min, s.max, e / 100) - s.min), typeof e != "number")
615
+ return;
616
+ let o = v(c.min, c.max, n);
617
+ t === c && (o -= e), t.min = Et(t.min, e, i, o, r), t.max = Et(t.max, e, i, o, r);
618
+ }
619
+ function At(t, e, [i, n, r], c, s) {
620
+ fi(t, e[i], e[n], e[r], e.scale, c, s);
621
+ }
622
+ const mi = ["x", "scaleX", "originX"], pi = ["y", "scaleY", "originY"];
623
+ function Rt(t, e, i, n) {
624
+ At(t.x, e, mi, i ? i.x : void 0, n ? n.x : void 0), At(t.y, e, pi, i ? i.y : void 0, n ? n.y : void 0);
625
+ }
626
+ function Lt(t) {
627
+ return t.translate === 0 && t.scale === 1;
628
+ }
629
+ function se(t) {
630
+ return Lt(t.x) && Lt(t.y);
631
+ }
632
+ function Ct(t, e) {
633
+ return t.min === e.min && t.max === e.max;
634
+ }
635
+ function gi(t, e) {
636
+ return Ct(t.x, e.x) && Ct(t.y, e.y);
637
+ }
638
+ function jt(t, e) {
639
+ return Math.round(t.min) === Math.round(e.min) && Math.round(t.max) === Math.round(e.max);
640
+ }
641
+ function ne(t, e) {
642
+ return jt(t.x, e.x) && jt(t.y, e.y);
643
+ }
644
+ function Vt(t) {
645
+ return D(t.x) / D(t.y);
646
+ }
647
+ function Bt(t, e) {
648
+ return t.translate === e.translate && t.scale === e.scale && t.originPoint === e.originPoint;
649
+ }
650
+ class yi {
651
+ constructor() {
652
+ this.members = [];
653
+ }
654
+ add(e) {
655
+ Ht(this.members, e), e.scheduleRender();
656
+ }
657
+ remove(e) {
658
+ if (Xt(this.members, e), e === this.prevLead && (this.prevLead = void 0), e === this.lead) {
659
+ const i = this.members[this.members.length - 1];
660
+ i && this.promote(i);
661
+ }
662
+ }
663
+ relegate(e) {
664
+ const i = this.members.findIndex((r) => e === r);
665
+ if (i === 0)
666
+ return !1;
667
+ let n;
668
+ for (let r = i; r >= 0; r--) {
669
+ const c = this.members[r];
670
+ if (c.isPresent !== !1) {
671
+ n = c;
672
+ break;
673
+ }
674
+ }
675
+ return n ? (this.promote(n), !0) : !1;
676
+ }
677
+ promote(e, i) {
678
+ const n = this.lead;
679
+ if (e !== n && (this.prevLead = n, this.lead = e, e.show(), n)) {
680
+ n.instance && n.scheduleRender(), e.scheduleRender(), e.resumeFrom = n, i && (e.resumeFrom.preserveOpacity = !0), n.snapshot && (e.snapshot = n.snapshot, e.snapshot.latestValues = n.animationValues || n.latestValues), e.root && e.root.isUpdating && (e.isLayoutDirty = !0);
681
+ const { crossfade: r } = e.options;
682
+ r === !1 && n.hide();
683
+ }
684
+ }
685
+ exitAnimationComplete() {
686
+ this.members.forEach((e) => {
687
+ const { options: i, resumingFrom: n } = e;
688
+ i.onExitComplete && i.onExitComplete(), n && n.options.onExitComplete && n.options.onExitComplete();
689
+ });
690
+ }
691
+ scheduleRender() {
692
+ this.members.forEach((e) => {
693
+ e.instance && e.scheduleRender(!1);
694
+ });
695
+ }
696
+ /**
697
+ * Clear any leads that have been removed this render to prevent them from being
698
+ * used in future animations and to prevent memory leaks
699
+ */
700
+ removeLeadSnapshot() {
701
+ this.lead && this.lead.snapshot && (this.lead.snapshot = void 0);
702
+ }
703
+ }
704
+ function vi(t, e, i) {
705
+ let n = "";
706
+ const r = t.x.translate / e.x, c = t.y.translate / e.y, s = i?.z || 0;
707
+ if ((r || c || s) && (n = `translate3d(${r}px, ${c}px, ${s}px) `), (e.x !== 1 || e.y !== 1) && (n += `scale(${1 / e.x}, ${1 / e.y}) `), i) {
708
+ const { transformPerspective: l, rotate: h, rotateX: u, rotateY: d, skewX: f, skewY: m } = i;
709
+ l && (n = `perspective(${l}px) ${n}`), h && (n += `rotate(${h}deg) `), u && (n += `rotateX(${u}deg) `), d && (n += `rotateY(${d}deg) `), f && (n += `skewX(${f}deg) `), m && (n += `skewY(${m}deg) `);
710
+ }
711
+ const o = t.x.scale * e.x, a = t.y.scale * e.y;
712
+ return (o !== 1 || a !== 1) && (n += `scale(${o}, ${a})`), n || "none";
713
+ }
714
+ const j = {
715
+ type: "projectionFrame",
716
+ totalNodes: 0,
717
+ resolvedTargetDeltas: 0,
718
+ recalculatedProjection: 0
719
+ }, b = typeof window < "u" && window.MotionDebug !== void 0, K = ["", "X", "Y", "Z"], xi = { visibility: "hidden" }, Mt = 1e3;
720
+ let Pi = 0;
721
+ function Z(t, e, i, n) {
722
+ const { latestValues: r } = e;
723
+ r[t] && (i[t] = r[t], e.setStaticValue(t, 0), n && (n[t] = 0));
724
+ }
725
+ function oe(t) {
726
+ if (t.hasCheckedOptimisedAppear = !0, t.root === t)
727
+ return;
728
+ const { visualElement: e } = t.options;
729
+ if (!e)
730
+ return;
731
+ const i = Be(e);
732
+ if (window.MotionHasOptimisedAnimation(i, "transform")) {
733
+ const { layout: r, layoutId: c } = t.options;
734
+ window.MotionCancelOptimisedAnimation(i, "transform", A, !(r || c));
735
+ }
736
+ const { parent: n } = t;
737
+ n && !n.hasCheckedOptimisedAppear && oe(n);
738
+ }
739
+ function ae({ attachResizeListener: t, defaultParent: e, measureScroll: i, checkIsScrollRoot: n, resetTransform: r }) {
740
+ return class {
741
+ constructor(s = {}, o = e?.()) {
742
+ this.id = Pi++, this.animationId = 0, this.children = /* @__PURE__ */ new Set(), this.options = {}, this.isTreeAnimating = !1, this.isAnimationBlocked = !1, this.isLayoutDirty = !1, this.isProjectionDirty = !1, this.isSharedProjectionDirty = !1, this.isTransformDirty = !1, this.updateManuallyBlocked = !1, this.updateBlockedByResize = !1, this.isUpdating = !1, this.isSVG = !1, this.needsReset = !1, this.shouldResetTransform = !1, this.hasCheckedOptimisedAppear = !1, this.treeScale = { x: 1, y: 1 }, this.eventHandlers = /* @__PURE__ */ new Map(), this.hasTreeAnimated = !1, this.updateScheduled = !1, this.scheduleUpdate = () => this.update(), this.projectionUpdateScheduled = !1, this.checkUpdateFailed = () => {
743
+ this.isUpdating && (this.isUpdating = !1, this.clearAllSnapshots());
744
+ }, this.updateProjection = () => {
745
+ this.projectionUpdateScheduled = !1, b && (j.totalNodes = j.resolvedTargetDeltas = j.recalculatedProjection = 0), this.nodes.forEach(Si), this.nodes.forEach(Ci), this.nodes.forEach(ji), this.nodes.forEach(Ei), b && window.MotionDebug.record(j);
746
+ }, this.resolvedRelativeTargetAt = 0, this.hasProjected = !1, this.isVisible = !0, this.animationProgress = 0, this.sharedNodes = /* @__PURE__ */ new Map(), this.latestValues = s, this.root = o ? o.root || o : this, this.path = o ? [...o.path, o] : [], this.parent = o, this.depth = o ? o.depth + 1 : 0;
747
+ for (let a = 0; a < this.path.length; a++)
748
+ this.path[a].shouldResetTransform = !0;
749
+ this.root === this && (this.nodes = new ri());
750
+ }
751
+ addEventListener(s, o) {
752
+ return this.eventHandlers.has(s) || this.eventHandlers.set(s, new Re()), this.eventHandlers.get(s).add(o);
753
+ }
754
+ notifyListeners(s, ...o) {
755
+ const a = this.eventHandlers.get(s);
756
+ a && a.notify(...o);
757
+ }
758
+ hasListeners(s) {
759
+ return this.eventHandlers.has(s);
760
+ }
761
+ /**
762
+ * Lifecycles
763
+ */
764
+ mount(s, o = this.root.hasTreeAnimated) {
765
+ if (this.instance)
766
+ return;
767
+ this.isSVG = oi(s), this.instance = s;
768
+ const { layoutId: a, layout: l, visualElement: h } = this.options;
769
+ if (h && !h.current && h.mount(s), this.root.nodes.add(this), this.parent && this.parent.children.add(this), o && (l || a) && (this.isLayoutDirty = !0), t) {
770
+ let u;
771
+ const d = () => this.root.updateBlockedByResize = !1;
772
+ t(s, () => {
773
+ this.root.updateBlockedByResize = !0, u && u(), u = li(d, 250), G.hasAnimatedSinceResize && (G.hasAnimatedSinceResize = !1, this.nodes.forEach(kt));
774
+ });
775
+ }
776
+ a && this.root.registerSharedNode(a, this), this.options.animate !== !1 && h && (a || l) && this.addEventListener("didUpdate", ({ delta: u, hasLayoutChanged: d, hasRelativeTargetChanged: f, layout: m }) => {
777
+ if (this.isTreeAnimationBlocked()) {
778
+ this.target = void 0, this.relativeTarget = void 0;
779
+ return;
780
+ }
781
+ const p = this.options.transition || h.getDefaultTransition() || ki, { onLayoutAnimationStart: g, onLayoutAnimationComplete: x } = h.getProps(), R = !this.targetLayout || !ne(this.targetLayout, m) || f, P = !d && f;
782
+ if (this.options.layoutRoot || this.resumeFrom && this.resumeFrom.instance || P || d && (R || !this.currentAnimation)) {
783
+ this.resumeFrom && (this.resumingFrom = this.resumeFrom, this.resumingFrom.resumingFrom = void 0), this.setAnimationOrigin(u, P);
784
+ const L = {
785
+ ...Le(p, "layout"),
786
+ onPlay: g,
787
+ onComplete: x
788
+ };
789
+ (h.shouldReduceMotion || this.options.layoutRoot) && (L.delay = 0, L.type = !1), this.startAnimation(L);
790
+ } else
791
+ d || kt(this), this.isLead() && this.options.onExitComplete && this.options.onExitComplete();
792
+ this.targetLayout = m;
793
+ });
794
+ }
795
+ unmount() {
796
+ this.options.layoutId && this.willUpdate(), this.root.nodes.remove(this);
797
+ const s = this.getStack();
798
+ s && s.remove(this), this.parent && this.parent.children.delete(this), this.instance = void 0, F(this.updateProjection);
799
+ }
800
+ // only on the root
801
+ blockUpdate() {
802
+ this.updateManuallyBlocked = !0;
803
+ }
804
+ unblockUpdate() {
805
+ this.updateManuallyBlocked = !1;
806
+ }
807
+ isUpdateBlocked() {
808
+ return this.updateManuallyBlocked || this.updateBlockedByResize;
809
+ }
810
+ isTreeAnimationBlocked() {
811
+ return this.isAnimationBlocked || this.parent && this.parent.isTreeAnimationBlocked() || !1;
812
+ }
813
+ // Note: currently only running on root node
814
+ startUpdate() {
815
+ this.isUpdateBlocked() || (this.isUpdating = !0, this.nodes && this.nodes.forEach(Vi), this.animationId++);
816
+ }
817
+ getTransformTemplate() {
818
+ const { visualElement: s } = this.options;
819
+ return s && s.getProps().transformTemplate;
820
+ }
821
+ willUpdate(s = !0) {
822
+ if (this.root.hasTreeAnimated = !0, this.root.isUpdateBlocked()) {
823
+ this.options.onExitComplete && this.options.onExitComplete();
824
+ return;
825
+ }
826
+ if (window.MotionCancelOptimisedAnimation && !this.hasCheckedOptimisedAppear && oe(this), !this.root.isUpdating && this.root.startUpdate(), this.isLayoutDirty)
827
+ return;
828
+ this.isLayoutDirty = !0;
829
+ for (let h = 0; h < this.path.length; h++) {
830
+ const u = this.path[h];
831
+ u.shouldResetTransform = !0, u.updateScroll("snapshot"), u.options.layoutRoot && u.willUpdate(!1);
832
+ }
833
+ const { layoutId: o, layout: a } = this.options;
834
+ if (o === void 0 && !a)
835
+ return;
836
+ const l = this.getTransformTemplate();
837
+ this.prevTransformTemplateValue = l ? l(this.latestValues, "") : void 0, this.updateSnapshot(), s && this.notifyListeners("willUpdate");
838
+ }
839
+ update() {
840
+ if (this.updateScheduled = !1, this.isUpdateBlocked()) {
841
+ this.unblockUpdate(), this.clearAllSnapshots(), this.nodes.forEach(wt);
842
+ return;
843
+ }
844
+ this.isUpdating || this.nodes.forEach(Ri), this.isUpdating = !1, this.nodes.forEach(Li), this.nodes.forEach(Ti), this.nodes.forEach(Di), this.clearAllSnapshots();
845
+ const o = Yt.now();
846
+ T.delta = Wt(0, 1e3 / 60, o - T.timestamp), T.timestamp = o, T.isProcessing = !0, H.update.process(T), H.preRender.process(T), H.render.process(T), T.isProcessing = !1;
847
+ }
848
+ didUpdate() {
849
+ this.updateScheduled || (this.updateScheduled = !0, $t.read(this.scheduleUpdate));
850
+ }
851
+ clearAllSnapshots() {
852
+ this.nodes.forEach(Ai), this.sharedNodes.forEach(Bi);
853
+ }
854
+ scheduleUpdateProjection() {
855
+ this.projectionUpdateScheduled || (this.projectionUpdateScheduled = !0, A.preRender(this.updateProjection, !1, !0));
856
+ }
857
+ scheduleCheckAfterUnmount() {
858
+ A.postRender(() => {
859
+ this.isLayoutDirty ? this.root.didUpdate() : this.root.checkUpdateFailed();
860
+ });
861
+ }
862
+ /**
863
+ * Update measurements
864
+ */
865
+ updateSnapshot() {
866
+ this.snapshot || !this.instance || (this.snapshot = this.measure());
867
+ }
868
+ updateLayout() {
869
+ if (!this.instance || (this.updateScroll(), !(this.options.alwaysMeasureLayout && this.isLead()) && !this.isLayoutDirty))
870
+ return;
871
+ if (this.resumeFrom && !this.resumeFrom.instance)
872
+ for (let a = 0; a < this.path.length; a++)
873
+ this.path[a].updateScroll();
874
+ const s = this.layout;
875
+ this.layout = this.measure(!1), this.layoutCorrected = y(), this.isLayoutDirty = !1, this.projectionDelta = void 0, this.notifyListeners("measure", this.layout.layoutBox);
876
+ const { visualElement: o } = this.options;
877
+ o && o.notify("LayoutMeasure", this.layout.layoutBox, s ? s.layoutBox : void 0);
878
+ }
879
+ updateScroll(s = "measure") {
880
+ let o = !!(this.options.layoutScroll && this.instance);
881
+ if (this.scroll && this.scroll.animationId === this.root.animationId && this.scroll.phase === s && (o = !1), o) {
882
+ const a = n(this.instance);
883
+ this.scroll = {
884
+ animationId: this.root.animationId,
885
+ phase: s,
886
+ isRoot: a,
887
+ offset: i(this.instance),
888
+ wasRoot: this.scroll ? this.scroll.isRoot : a
889
+ };
890
+ }
891
+ }
892
+ resetTransform() {
893
+ if (!r)
894
+ return;
895
+ const s = this.isLayoutDirty || this.shouldResetTransform || this.options.alwaysMeasureLayout, o = this.projectionDelta && !se(this.projectionDelta), a = this.getTransformTemplate(), l = a ? a(this.latestValues, "") : void 0, h = l !== this.prevTransformTemplateValue;
896
+ s && (o || V(this.latestValues) || h) && (r(this.instance, l), this.shouldResetTransform = !1, this.scheduleRender());
897
+ }
898
+ measure(s = !0) {
899
+ const o = this.measurePageBox();
900
+ let a = this.removeElementScroll(o);
901
+ return s && (a = this.removeTransform(a)), bi(a), {
902
+ animationId: this.root.animationId,
903
+ measuredBox: o,
904
+ layoutBox: a,
905
+ latestValues: {},
906
+ source: this.id
907
+ };
908
+ }
909
+ measurePageBox() {
910
+ var s;
911
+ const { visualElement: o } = this.options;
912
+ if (!o)
913
+ return y();
914
+ const a = o.measureViewportBox();
915
+ if (!(((s = this.scroll) === null || s === void 0 ? void 0 : s.wasRoot) || this.path.some(Ui))) {
916
+ const { scroll: h } = this.root;
917
+ h && (W(a.x, h.offset.x), W(a.y, h.offset.y));
918
+ }
919
+ return a;
920
+ }
921
+ removeElementScroll(s) {
922
+ var o;
923
+ const a = y();
924
+ if (S(a, s), !((o = this.scroll) === null || o === void 0) && o.wasRoot)
925
+ return a;
926
+ for (let l = 0; l < this.path.length; l++) {
927
+ const h = this.path[l], { scroll: u, options: d } = h;
928
+ h !== this.root && u && d.layoutScroll && (u.wasRoot && S(a, s), W(a.x, u.offset.x), W(a.y, u.offset.y));
929
+ }
930
+ return a;
931
+ }
932
+ applyTransform(s, o = !1) {
933
+ const a = y();
934
+ S(a, s);
935
+ for (let l = 0; l < this.path.length; l++) {
936
+ const h = this.path[l];
937
+ !o && h.options.layoutScroll && h.scroll && h !== h.root && _(a, {
938
+ x: -h.scroll.offset.x,
939
+ y: -h.scroll.offset.y
940
+ }), V(h.latestValues) && _(a, h.latestValues);
941
+ }
942
+ return V(this.latestValues) && _(a, this.latestValues), a;
943
+ }
944
+ removeTransform(s) {
945
+ const o = y();
946
+ S(o, s);
947
+ for (let a = 0; a < this.path.length; a++) {
948
+ const l = this.path[a];
949
+ if (!l.instance || !V(l.latestValues))
950
+ continue;
951
+ ot(l.latestValues) && l.updateSnapshot();
952
+ const h = y(), u = l.measurePageBox();
953
+ S(h, u), Rt(o, l.latestValues, l.snapshot ? l.snapshot.layoutBox : void 0, h);
954
+ }
955
+ return V(this.latestValues) && Rt(o, this.latestValues), o;
956
+ }
957
+ setTargetDelta(s) {
958
+ this.targetDelta = s, this.root.scheduleUpdateProjection(), this.isProjectionDirty = !0;
959
+ }
960
+ setOptions(s) {
961
+ this.options = {
962
+ ...this.options,
963
+ ...s,
964
+ crossfade: s.crossfade !== void 0 ? s.crossfade : !0
965
+ };
966
+ }
967
+ clearMeasurements() {
968
+ this.scroll = void 0, this.layout = void 0, this.snapshot = void 0, this.prevTransformTemplateValue = void 0, this.targetDelta = void 0, this.target = void 0, this.isLayoutDirty = !1;
969
+ }
970
+ forceRelativeParentToResolveTarget() {
971
+ this.relativeParent && this.relativeParent.resolvedRelativeTargetAt !== T.timestamp && this.relativeParent.resolveTargetDelta(!0);
972
+ }
973
+ resolveTargetDelta(s = !1) {
974
+ var o;
975
+ const a = this.getLead();
976
+ this.isProjectionDirty || (this.isProjectionDirty = a.isProjectionDirty), this.isTransformDirty || (this.isTransformDirty = a.isTransformDirty), this.isSharedProjectionDirty || (this.isSharedProjectionDirty = a.isSharedProjectionDirty);
977
+ const l = !!this.resumingFrom || this !== a;
978
+ if (!(s || l && this.isSharedProjectionDirty || this.isProjectionDirty || !((o = this.parent) === null || o === void 0) && o.isProjectionDirty || this.attemptToResolveRelativeTarget || this.root.updateBlockedByResize))
979
+ return;
980
+ const { layout: u, layoutId: d } = this.options;
981
+ if (!(!this.layout || !(u || d))) {
982
+ if (this.resolvedRelativeTargetAt = T.timestamp, !this.targetDelta && !this.relativeTarget) {
983
+ const f = this.getClosestProjectingParent();
984
+ f && f.layout && this.animationProgress !== 1 ? (this.relativeParent = f, this.forceRelativeParentToResolveTarget(), this.relativeTarget = y(), this.relativeTargetOrigin = y(), O(this.relativeTargetOrigin, this.layout.layoutBox, f.layout.layoutBox), S(this.relativeTarget, this.relativeTargetOrigin)) : this.relativeParent = this.relativeTarget = void 0;
985
+ }
986
+ if (!(!this.relativeTarget && !this.targetDelta)) {
987
+ if (this.target || (this.target = y(), this.targetWithTransforms = y()), this.relativeTarget && this.relativeTargetOrigin && this.relativeParent && this.relativeParent.target ? (this.forceRelativeParentToResolveTarget(), ze(this.target, this.relativeTarget, this.relativeParent.target)) : this.targetDelta ? (this.resumingFrom ? this.target = this.applyTransform(this.layout.layoutBox) : S(this.target, this.layout.layoutBox), Ce(this.target, this.targetDelta)) : S(this.target, this.layout.layoutBox), this.attemptToResolveRelativeTarget) {
988
+ this.attemptToResolveRelativeTarget = !1;
989
+ const f = this.getClosestProjectingParent();
990
+ f && !!f.resumingFrom == !!this.resumingFrom && !f.options.layoutScroll && f.target && this.animationProgress !== 1 ? (this.relativeParent = f, this.forceRelativeParentToResolveTarget(), this.relativeTarget = y(), this.relativeTargetOrigin = y(), O(this.relativeTargetOrigin, this.target, f.target), S(this.relativeTarget, this.relativeTargetOrigin)) : this.relativeParent = this.relativeTarget = void 0;
991
+ }
992
+ b && j.resolvedTargetDeltas++;
993
+ }
994
+ }
995
+ }
996
+ getClosestProjectingParent() {
997
+ if (!(!this.parent || ot(this.parent.latestValues) || je(this.parent.latestValues)))
998
+ return this.parent.isProjecting() ? this.parent : this.parent.getClosestProjectingParent();
999
+ }
1000
+ isProjecting() {
1001
+ return !!((this.relativeTarget || this.targetDelta || this.options.layoutRoot) && this.layout);
1002
+ }
1003
+ calcProjection() {
1004
+ var s;
1005
+ const o = this.getLead(), a = !!this.resumingFrom || this !== o;
1006
+ let l = !0;
1007
+ if ((this.isProjectionDirty || !((s = this.parent) === null || s === void 0) && s.isProjectionDirty) && (l = !1), a && (this.isSharedProjectionDirty || this.isTransformDirty) && (l = !1), this.resolvedRelativeTargetAt === T.timestamp && (l = !1), l)
1008
+ return;
1009
+ const { layout: h, layoutId: u } = this.options;
1010
+ if (this.isTreeAnimating = !!(this.parent && this.parent.isTreeAnimating || this.currentAnimation || this.pendingAnimation), this.isTreeAnimating || (this.targetDelta = this.relativeTarget = void 0), !this.layout || !(h || u))
1011
+ return;
1012
+ S(this.layoutCorrected, this.layout.layoutBox);
1013
+ const d = this.treeScale.x, f = this.treeScale.y;
1014
+ Ve(this.layoutCorrected, this.treeScale, this.path, a), o.layout && !o.target && (this.treeScale.x !== 1 || this.treeScale.y !== 1) && (o.target = o.layout.layoutBox, o.targetWithTransforms = y());
1015
+ const { target: m } = o;
1016
+ if (!m) {
1017
+ this.prevProjectionDelta && (this.createProjectionDeltas(), this.scheduleRender());
1018
+ return;
1019
+ }
1020
+ !this.projectionDelta || !this.prevProjectionDelta ? this.createProjectionDeltas() : (St(this.prevProjectionDelta.x, this.projectionDelta.x), St(this.prevProjectionDelta.y, this.projectionDelta.y)), I(this.projectionDelta, this.layoutCorrected, m, this.latestValues), (this.treeScale.x !== d || this.treeScale.y !== f || !Bt(this.projectionDelta.x, this.prevProjectionDelta.x) || !Bt(this.projectionDelta.y, this.prevProjectionDelta.y)) && (this.hasProjected = !0, this.scheduleRender(), this.notifyListeners("projectionUpdate", m)), b && j.recalculatedProjection++;
1021
+ }
1022
+ hide() {
1023
+ this.isVisible = !1;
1024
+ }
1025
+ show() {
1026
+ this.isVisible = !0;
1027
+ }
1028
+ scheduleRender(s = !0) {
1029
+ var o;
1030
+ if ((o = this.options.visualElement) === null || o === void 0 || o.scheduleRender(), s) {
1031
+ const a = this.getStack();
1032
+ a && a.scheduleRender();
1033
+ }
1034
+ this.resumingFrom && !this.resumingFrom.instance && (this.resumingFrom = void 0);
1035
+ }
1036
+ createProjectionDeltas() {
1037
+ this.prevProjectionDelta = B(), this.projectionDelta = B(), this.projectionDeltaWithTransform = B();
1038
+ }
1039
+ setAnimationOrigin(s, o = !1) {
1040
+ const a = this.snapshot, l = a ? a.latestValues : {}, h = { ...this.latestValues }, u = B();
1041
+ (!this.relativeParent || !this.relativeParent.options.layoutRoot) && (this.relativeTarget = this.relativeTargetOrigin = void 0), this.attemptToResolveRelativeTarget = !o;
1042
+ const d = y(), f = a ? a.source : void 0, m = this.layout ? this.layout.source : void 0, p = f !== m, g = this.getStack(), x = !g || g.members.length <= 1, R = !!(p && !x && this.options.crossfade === !0 && !this.path.some(wi));
1043
+ this.animationProgress = 0;
1044
+ let P;
1045
+ this.mixTargetDelta = (L) => {
1046
+ const w = L / 1e3;
1047
+ bt(u.x, s.x, w), bt(u.y, s.y, w), this.setTargetDelta(u), this.relativeTarget && this.relativeTargetOrigin && this.layout && this.relativeParent && this.relativeParent.layout && (O(d, this.layout.layoutBox, this.relativeParent.layout.layoutBox), Mi(this.relativeTarget, this.relativeTargetOrigin, d, w), P && gi(this.relativeTarget, P) && (this.isProjectionDirty = !1), P || (P = y()), S(P, this.relativeTarget)), p && (this.animationValues = h, ui(h, l, this.latestValues, w, R, x)), this.root.scheduleUpdateProjection(), this.scheduleRender(), this.animationProgress = w;
1048
+ }, this.mixTargetDelta(this.options.layoutRoot ? 1e3 : 0);
1049
+ }
1050
+ startAnimation(s) {
1051
+ this.notifyListeners("animationStart"), this.currentAnimation && this.currentAnimation.stop(), this.resumingFrom && this.resumingFrom.currentAnimation && this.resumingFrom.currentAnimation.stop(), this.pendingAnimation && (F(this.pendingAnimation), this.pendingAnimation = void 0), this.pendingAnimation = A.update(() => {
1052
+ G.hasAnimatedSinceResize = !0, this.currentAnimation = ni(0, Mt, {
1053
+ ...s,
1054
+ onUpdate: (o) => {
1055
+ this.mixTargetDelta(o), s.onUpdate && s.onUpdate(o);
1056
+ },
1057
+ onComplete: () => {
1058
+ s.onComplete && s.onComplete(), this.completeAnimation();
1059
+ }
1060
+ }), this.resumingFrom && (this.resumingFrom.currentAnimation = this.currentAnimation), this.pendingAnimation = void 0;
1061
+ });
1062
+ }
1063
+ completeAnimation() {
1064
+ this.resumingFrom && (this.resumingFrom.currentAnimation = void 0, this.resumingFrom.preserveOpacity = void 0);
1065
+ const s = this.getStack();
1066
+ s && s.exitAnimationComplete(), this.resumingFrom = this.currentAnimation = this.animationValues = void 0, this.notifyListeners("animationComplete");
1067
+ }
1068
+ finishAnimation() {
1069
+ this.currentAnimation && (this.mixTargetDelta && this.mixTargetDelta(Mt), this.currentAnimation.stop()), this.completeAnimation();
1070
+ }
1071
+ applyTransformsToTarget() {
1072
+ const s = this.getLead();
1073
+ let { targetWithTransforms: o, target: a, layout: l, latestValues: h } = s;
1074
+ if (!(!o || !a || !l)) {
1075
+ if (this !== s && this.layout && l && re(this.options.animationType, this.layout.layoutBox, l.layoutBox)) {
1076
+ a = this.target || y();
1077
+ const u = D(this.layout.layoutBox.x);
1078
+ a.x.min = s.target.x.min, a.x.max = a.x.min + u;
1079
+ const d = D(this.layout.layoutBox.y);
1080
+ a.y.min = s.target.y.min, a.y.max = a.y.min + d;
1081
+ }
1082
+ S(o, a), _(o, h), I(this.projectionDeltaWithTransform, this.layoutCorrected, o, h);
1083
+ }
1084
+ }
1085
+ registerSharedNode(s, o) {
1086
+ this.sharedNodes.has(s) || this.sharedNodes.set(s, new yi()), this.sharedNodes.get(s).add(o);
1087
+ const l = o.options.initialPromotionConfig;
1088
+ o.promote({
1089
+ transition: l ? l.transition : void 0,
1090
+ preserveFollowOpacity: l && l.shouldPreserveFollowOpacity ? l.shouldPreserveFollowOpacity(o) : void 0
1091
+ });
1092
+ }
1093
+ isLead() {
1094
+ const s = this.getStack();
1095
+ return s ? s.lead === this : !0;
1096
+ }
1097
+ getLead() {
1098
+ var s;
1099
+ const { layoutId: o } = this.options;
1100
+ return o ? ((s = this.getStack()) === null || s === void 0 ? void 0 : s.lead) || this : this;
1101
+ }
1102
+ getPrevLead() {
1103
+ var s;
1104
+ const { layoutId: o } = this.options;
1105
+ return o ? (s = this.getStack()) === null || s === void 0 ? void 0 : s.prevLead : void 0;
1106
+ }
1107
+ getStack() {
1108
+ const { layoutId: s } = this.options;
1109
+ if (s)
1110
+ return this.root.sharedNodes.get(s);
1111
+ }
1112
+ promote({ needsReset: s, transition: o, preserveFollowOpacity: a } = {}) {
1113
+ const l = this.getStack();
1114
+ l && l.promote(this, a), s && (this.projectionDelta = void 0, this.needsReset = !0), o && this.setOptions({ transition: o });
1115
+ }
1116
+ relegate() {
1117
+ const s = this.getStack();
1118
+ return s ? s.relegate(this) : !1;
1119
+ }
1120
+ resetSkewAndRotation() {
1121
+ const { visualElement: s } = this.options;
1122
+ if (!s)
1123
+ return;
1124
+ let o = !1;
1125
+ const { latestValues: a } = s;
1126
+ if ((a.z || a.rotate || a.rotateX || a.rotateY || a.rotateZ || a.skewX || a.skewY) && (o = !0), !o)
1127
+ return;
1128
+ const l = {};
1129
+ a.z && Z("z", s, l, this.animationValues);
1130
+ for (let h = 0; h < K.length; h++)
1131
+ Z(`rotate${K[h]}`, s, l, this.animationValues), Z(`skew${K[h]}`, s, l, this.animationValues);
1132
+ s.render();
1133
+ for (const h in l)
1134
+ s.setStaticValue(h, l[h]), this.animationValues && (this.animationValues[h] = l[h]);
1135
+ s.scheduleRender();
1136
+ }
1137
+ getProjectionStyles(s) {
1138
+ var o, a;
1139
+ if (!this.instance || this.isSVG)
1140
+ return;
1141
+ if (!this.isVisible)
1142
+ return xi;
1143
+ const l = {
1144
+ visibility: ""
1145
+ }, h = this.getTransformTemplate();
1146
+ if (this.needsReset)
1147
+ return this.needsReset = !1, l.opacity = "", l.pointerEvents = X(s?.pointerEvents) || "", l.transform = h ? h(this.latestValues, "") : "none", l;
1148
+ const u = this.getLead();
1149
+ if (!this.projectionDelta || !this.layout || !u.target) {
1150
+ const p = {};
1151
+ return this.options.layoutId && (p.opacity = this.latestValues.opacity !== void 0 ? this.latestValues.opacity : 1, p.pointerEvents = X(s?.pointerEvents) || ""), this.hasProjected && !V(this.latestValues) && (p.transform = h ? h({}, "") : "none", this.hasProjected = !1), p;
1152
+ }
1153
+ const d = u.animationValues || u.latestValues;
1154
+ this.applyTransformsToTarget(), l.transform = vi(this.projectionDeltaWithTransform, this.treeScale, d), h && (l.transform = h(d, l.transform));
1155
+ const { x: f, y: m } = this.projectionDelta;
1156
+ l.transformOrigin = `${f.origin * 100}% ${m.origin * 100}% 0`, u.animationValues ? l.opacity = u === this ? (a = (o = d.opacity) !== null && o !== void 0 ? o : this.latestValues.opacity) !== null && a !== void 0 ? a : 1 : this.preserveOpacity ? this.latestValues.opacity : d.opacityExit : l.opacity = u === this ? d.opacity !== void 0 ? d.opacity : "" : d.opacityExit !== void 0 ? d.opacityExit : 0;
1157
+ for (const p in at) {
1158
+ if (d[p] === void 0)
1159
+ continue;
1160
+ const { correct: g, applyTo: x } = at[p], R = l.transform === "none" ? d[p] : g(d[p], u);
1161
+ if (x) {
1162
+ const P = x.length;
1163
+ for (let L = 0; L < P; L++)
1164
+ l[x[L]] = R;
1165
+ } else
1166
+ l[p] = R;
1167
+ }
1168
+ return this.options.layoutId && (l.pointerEvents = u === this ? X(s?.pointerEvents) || "" : "none"), l;
1169
+ }
1170
+ clearSnapshot() {
1171
+ this.resumeFrom = this.snapshot = void 0;
1172
+ }
1173
+ // Only run on root
1174
+ resetTree() {
1175
+ this.root.nodes.forEach((s) => {
1176
+ var o;
1177
+ return (o = s.currentAnimation) === null || o === void 0 ? void 0 : o.stop();
1178
+ }), this.root.nodes.forEach(wt), this.root.sharedNodes.clear();
1179
+ }
1180
+ };
1181
+ }
1182
+ function Ti(t) {
1183
+ t.updateLayout();
1184
+ }
1185
+ function Di(t) {
1186
+ var e;
1187
+ const i = ((e = t.resumeFrom) === null || e === void 0 ? void 0 : e.snapshot) || t.snapshot;
1188
+ if (t.isLead() && t.layout && i && t.hasListeners("didUpdate")) {
1189
+ const { layoutBox: n, measuredBox: r } = t.layout, { animationType: c } = t.options, s = i.source !== t.layout.source;
1190
+ c === "size" ? E((u) => {
1191
+ const d = s ? i.measuredBox[u] : i.layoutBox[u], f = D(d);
1192
+ d.min = n[u].min, d.max = d.min + f;
1193
+ }) : re(c, i.layoutBox, n) && E((u) => {
1194
+ const d = s ? i.measuredBox[u] : i.layoutBox[u], f = D(n[u]);
1195
+ d.max = d.min + f, t.relativeTarget && !t.currentAnimation && (t.isProjectionDirty = !0, t.relativeTarget[u].max = t.relativeTarget[u].min + f);
1196
+ });
1197
+ const o = B();
1198
+ I(o, n, i.layoutBox);
1199
+ const a = B();
1200
+ s ? I(a, t.applyTransform(r, !0), i.measuredBox) : I(a, n, i.layoutBox);
1201
+ const l = !se(o);
1202
+ let h = !1;
1203
+ if (!t.resumeFrom) {
1204
+ const u = t.getClosestProjectingParent();
1205
+ if (u && !u.resumeFrom) {
1206
+ const { snapshot: d, layout: f } = u;
1207
+ if (d && f) {
1208
+ const m = y();
1209
+ O(m, i.layoutBox, d.layoutBox);
1210
+ const p = y();
1211
+ O(p, n, f.layoutBox), ne(m, p) || (h = !0), u.options.layoutRoot && (t.relativeTarget = p, t.relativeTargetOrigin = m, t.relativeParent = u);
1212
+ }
1213
+ }
1214
+ }
1215
+ t.notifyListeners("didUpdate", {
1216
+ layout: n,
1217
+ snapshot: i,
1218
+ delta: a,
1219
+ layoutDelta: o,
1220
+ hasLayoutChanged: l,
1221
+ hasRelativeTargetChanged: h
1222
+ });
1223
+ } else if (t.isLead()) {
1224
+ const { onExitComplete: n } = t.options;
1225
+ n && n();
1226
+ }
1227
+ t.options.transition = void 0;
1228
+ }
1229
+ function Si(t) {
1230
+ b && j.totalNodes++, t.parent && (t.isProjecting() || (t.isProjectionDirty = t.parent.isProjectionDirty), t.isSharedProjectionDirty || (t.isSharedProjectionDirty = !!(t.isProjectionDirty || t.parent.isProjectionDirty || t.parent.isSharedProjectionDirty)), t.isTransformDirty || (t.isTransformDirty = t.parent.isTransformDirty));
1231
+ }
1232
+ function Ei(t) {
1233
+ t.isProjectionDirty = t.isSharedProjectionDirty = t.isTransformDirty = !1;
1234
+ }
1235
+ function Ai(t) {
1236
+ t.clearSnapshot();
1237
+ }
1238
+ function wt(t) {
1239
+ t.clearMeasurements();
1240
+ }
1241
+ function Ri(t) {
1242
+ t.isLayoutDirty = !1;
1243
+ }
1244
+ function Li(t) {
1245
+ const { visualElement: e } = t.options;
1246
+ e && e.getProps().onBeforeLayoutMeasure && e.notify("BeforeLayoutMeasure"), t.resetTransform();
1247
+ }
1248
+ function kt(t) {
1249
+ t.finishAnimation(), t.targetDelta = t.relativeTarget = t.target = void 0, t.isProjectionDirty = !0;
1250
+ }
1251
+ function Ci(t) {
1252
+ t.resolveTargetDelta();
1253
+ }
1254
+ function ji(t) {
1255
+ t.calcProjection();
1256
+ }
1257
+ function Vi(t) {
1258
+ t.resetSkewAndRotation();
1259
+ }
1260
+ function Bi(t) {
1261
+ t.removeLeadSnapshot();
1262
+ }
1263
+ function bt(t, e, i) {
1264
+ t.translate = v(e.translate, 0, i), t.scale = v(e.scale, 1, i), t.origin = e.origin, t.originPoint = e.originPoint;
1265
+ }
1266
+ function Ut(t, e, i, n) {
1267
+ t.min = v(e.min, i.min, n), t.max = v(e.max, i.max, n);
1268
+ }
1269
+ function Mi(t, e, i, n) {
1270
+ Ut(t.x, e.x, i.x, n), Ut(t.y, e.y, i.y, n);
1271
+ }
1272
+ function wi(t) {
1273
+ return t.animationValues && t.animationValues.opacityExit !== void 0;
1274
+ }
1275
+ const ki = {
1276
+ duration: 0.45,
1277
+ ease: [0.4, 0, 0.1, 1]
1278
+ }, It = (t) => typeof navigator < "u" && navigator.userAgent && navigator.userAgent.toLowerCase().includes(t), Ot = It("applewebkit/") && !It("chrome/") ? Math.round : M;
1279
+ function Ft(t) {
1280
+ t.min = Ot(t.min), t.max = Ot(t.max);
1281
+ }
1282
+ function bi(t) {
1283
+ Ft(t.x), Ft(t.y);
1284
+ }
1285
+ function re(t, e, i) {
1286
+ return t === "position" || t === "preserve-aspect" && !_e(Vt(e), Vt(i), 0.2);
1287
+ }
1288
+ function Ui(t) {
1289
+ var e;
1290
+ return t !== t.root && ((e = t.scroll) === null || e === void 0 ? void 0 : e.wasRoot);
1291
+ }
1292
+ const Ii = ae({
1293
+ attachResizeListener: (t, e) => et(t, "resize", e),
1294
+ measureScroll: () => ({
1295
+ x: document.documentElement.scrollLeft || document.body.scrollLeft,
1296
+ y: document.documentElement.scrollTop || document.body.scrollTop
1297
+ }),
1298
+ checkIsScrollRoot: () => !0
1299
+ }), J = {
1300
+ current: void 0
1301
+ }, le = ae({
1302
+ measureScroll: (t) => ({
1303
+ x: t.scrollLeft,
1304
+ y: t.scrollTop
1305
+ }),
1306
+ defaultParent: () => {
1307
+ if (!J.current) {
1308
+ const t = new Ii({});
1309
+ t.mount(window), t.setOptions({ layoutScroll: !0 }), J.current = t;
1310
+ }
1311
+ return J.current;
1312
+ },
1313
+ resetTransform: (t, e) => {
1314
+ t.style.transform = e !== void 0 ? e : "none";
1315
+ },
1316
+ checkIsScrollRoot: (t) => window.getComputedStyle(t).position === "fixed"
1317
+ }), Oi = {
1318
+ pan: {
1319
+ Feature: ti
1320
+ },
1321
+ drag: {
1322
+ Feature: Qe,
1323
+ ProjectionNode: le,
1324
+ MeasureLayout: te
1325
+ }
1326
+ }, Fi = {
1327
+ layout: {
1328
+ ProjectionNode: le,
1329
+ MeasureLayout: te
1330
+ }
1331
+ }, zi = {
1332
+ ...Me,
1333
+ ...Oi,
1334
+ ...Fi
1335
+ };
1336
+ export {
1337
+ Hi as AcceleratedAnimation,
1338
+ Xi as AnimatePresence,
1339
+ Yi as DeprecatedLayoutGroupContext,
1340
+ ri as FlatTree,
1341
+ qi as LayoutGroup,
1342
+ xe as LayoutGroupContext,
1343
+ Ki as LazyMotion,
1344
+ Zi as MotionConfig,
1345
+ Ji as MotionConfigContext,
1346
+ Qi as MotionContext,
1347
+ ts as MotionGlobalConfig,
1348
+ es as MotionValue,
1349
+ is as PresenceContext,
1350
+ Te as SwitchLayoutGroupContext,
1351
+ ss as VisualElement,
1352
+ U as addPointerEvent,
1353
+ he as addPointerInfo,
1354
+ De as addScaleCorrector,
1355
+ ns as animateVisualElement,
1356
+ os as animations,
1357
+ as as anticipate,
1358
+ rs as backIn,
1359
+ ls as backInOut,
1360
+ hs as backOut,
1361
+ us as buildTransform,
1362
+ D as calcLength,
1363
+ F as cancelFrame,
1364
+ cs as circIn,
1365
+ ds as circInOut,
1366
+ Ae as circOut,
1367
+ Wt as clamp,
1368
+ fs as color,
1369
+ st as complex,
1370
+ y as createBox,
1371
+ ms as createRendererMotionComponent,
1372
+ ps as cubicBezier,
1373
+ li as delay,
1374
+ lt as distance,
1375
+ be as distance2D,
1376
+ Me as domAnimation,
1377
+ zi as domMax,
1378
+ gs as easeIn,
1379
+ ys as easeInOut,
1380
+ vs as easeOut,
1381
+ xs as filterProps,
1382
+ Ps as findSpring,
1383
+ A as frame,
1384
+ T as frameData,
1385
+ H as frameSteps,
1386
+ Ts as inertia,
1387
+ Ds as interpolate,
1388
+ ye as invariant,
1389
+ Ss as isBrowser,
1390
+ Es as isDragActive,
1391
+ Se as isMotionValue,
1392
+ As as isValidMotionProp,
1393
+ Rs as keyframes,
1394
+ Ls as m,
1395
+ Cs as makeUseVisualState,
1396
+ js as mirrorEasing,
1397
+ Vs as mix,
1398
+ Ee as motionValue,
1399
+ M as noop,
1400
+ Bs as optimizedAppearDataAttribute,
1401
+ ce as pipe,
1402
+ Q as progress,
1403
+ Gt as px,
1404
+ X as resolveMotionValue,
1405
+ Ms as reverseEasing,
1406
+ ws as spring,
1407
+ Yt as time,
1408
+ ks as useForceUpdate,
1409
+ bs as useIsomorphicLayoutEffect,
1410
+ ve as usePresence,
1411
+ Us as useWillChange,
1412
+ Is as visualElementStore
1413
+ };