@ssgoi/core 6.6.3 → 6.7.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/animation/web-animation.d.ts +10 -3
- package/dist/animation/web-animation.d.ts.map +1 -1
- package/dist/index.cjs +9 -9
- package/dist/index.js +771 -693
- package/dist/internal.cjs +1 -1
- package/dist/internal.js +2 -2
- package/dist/{multi-animation-Ch5rI3rB.js → multi-animation-1FueEz2Q.js} +126 -91
- package/dist/multi-animation-qtH1IKNG.cjs +1 -0
- package/dist/transitions/sheet/index.d.ts +7 -1
- package/dist/transitions/sheet/index.d.ts.map +1 -1
- package/dist/transitions/sheet/provider/blur.d.ts +14 -0
- package/dist/transitions/sheet/provider/blur.d.ts.map +1 -0
- package/dist/transitions/sheet/provider/index.d.ts.map +1 -1
- package/dist/transitions/sheet/transition.d.ts +5 -1
- package/dist/transitions/sheet/transition.d.ts.map +1 -1
- package/dist/transitions/sheet/types.d.ts +16 -1
- package/dist/transitions/sheet/types.d.ts.map +1 -1
- package/dist/transitions/zoom/provider/blur.d.ts.map +1 -1
- package/dist/transitions/zoom/transition.d.ts.map +1 -1
- package/dist/transitions/zoom/types.d.ts +6 -1
- package/dist/transitions/zoom/types.d.ts.map +1 -1
- package/dist/utils/get-viewport-rect.d.ts +18 -0
- package/dist/utils/get-viewport-rect.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/package.json +14 -13
- package/dist/multi-animation-uzEnQnrG.cjs +0 -1
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
var
|
|
2
|
-
var
|
|
3
|
-
var
|
|
4
|
-
import { P as
|
|
5
|
-
import { A as
|
|
6
|
-
function
|
|
1
|
+
var Bt = Object.defineProperty;
|
|
2
|
+
var Zt = (e, t, n) => t in e ? Bt(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
|
|
3
|
+
var x = (e, t, n) => Zt(e, typeof t != "symbol" ? t + "" : t, n);
|
|
4
|
+
import { P as st, V as At, W as m, M as E, S as Wt } from "./multi-animation-1FueEz2Q.js";
|
|
5
|
+
import { A as Xs } from "./multi-animation-1FueEz2Q.js";
|
|
6
|
+
function v(e, t) {
|
|
7
7
|
const n = [];
|
|
8
8
|
for (let s = 0; s < e.length; s++)
|
|
9
9
|
for (let o = s + 1; o < e.length; o++) {
|
|
@@ -17,7 +17,7 @@ function D(e, t) {
|
|
|
17
17
|
}
|
|
18
18
|
return n;
|
|
19
19
|
}
|
|
20
|
-
function
|
|
20
|
+
function kt(e, t) {
|
|
21
21
|
return [
|
|
22
22
|
{
|
|
23
23
|
from: e.exit,
|
|
@@ -31,7 +31,7 @@ function Ot(e, t) {
|
|
|
31
31
|
}
|
|
32
32
|
];
|
|
33
33
|
}
|
|
34
|
-
function
|
|
34
|
+
function ot(e, t, n) {
|
|
35
35
|
const s = [];
|
|
36
36
|
for (let o = 0; o < e.length; o++)
|
|
37
37
|
for (let i = o + 1; i < e.length; i++) {
|
|
@@ -51,22 +51,22 @@ function Q(e, t, n) {
|
|
|
51
51
|
}
|
|
52
52
|
return s;
|
|
53
53
|
}
|
|
54
|
-
class
|
|
54
|
+
class z {
|
|
55
55
|
constructor(t) {
|
|
56
|
-
|
|
56
|
+
x(this, "omega");
|
|
57
57
|
// Angular frequency
|
|
58
|
-
|
|
58
|
+
x(this, "zeta");
|
|
59
59
|
// Damping ratio
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
x(this, "restDelta");
|
|
61
|
+
x(this, "restSpeed");
|
|
62
62
|
const { stiffness: n, damping: s } = t, o = 1;
|
|
63
|
-
this.omega = Math.sqrt(n / o), this.zeta = s / (2 * Math.sqrt(n * o)), this.restDelta = t.restDelta ??
|
|
63
|
+
this.omega = Math.sqrt(n / o), this.zeta = s / (2 * Math.sqrt(n * o)), this.restDelta = t.restDelta ?? st, this.restSpeed = t.restSpeed ?? At;
|
|
64
64
|
}
|
|
65
65
|
step(t, n, s) {
|
|
66
|
-
const o = Math.min(s, 0.033), { omega: i, zeta: l } = this, { position: a, velocity: r } = t, c = -2 * o * l * i * r,
|
|
66
|
+
const o = Math.min(s, 0.033), { omega: i, zeta: l } = this, { position: a, velocity: r } = t, c = -2 * o * l * i * r, f = o * i * i * (n - a), p = r + c + f;
|
|
67
67
|
return {
|
|
68
|
-
position: a + o *
|
|
69
|
-
velocity:
|
|
68
|
+
position: a + o * p,
|
|
69
|
+
velocity: p
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
isSettled(t, n) {
|
|
@@ -74,20 +74,20 @@ class L {
|
|
|
74
74
|
return s < this.restDelta && o < this.restSpeed;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
|
-
class
|
|
77
|
+
class qt {
|
|
78
78
|
constructor(t) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
this.restDelta = t.restDelta ??
|
|
79
|
+
x(this, "leader");
|
|
80
|
+
x(this, "follower");
|
|
81
|
+
x(this, "restDelta");
|
|
82
|
+
x(this, "restSpeed");
|
|
83
|
+
this.restDelta = t.restDelta ?? st, this.restSpeed = t.restSpeed ?? At, this.leader = new z({
|
|
84
84
|
stiffness: t.stiffness,
|
|
85
85
|
damping: t.damping,
|
|
86
86
|
restDelta: this.restDelta,
|
|
87
87
|
restSpeed: this.restSpeed
|
|
88
88
|
});
|
|
89
89
|
let n, s, o, i;
|
|
90
|
-
typeof t.follower == "number" ? (n = t.stiffness * t.follower, s = t.damping) : t.follower ? (n = t.follower.stiffness, s = t.follower.damping, o = t.follower.restDelta, i = t.follower.restSpeed) : (n = t.stiffness, s = t.damping), this.follower = new
|
|
90
|
+
typeof t.follower == "number" ? (n = t.stiffness * t.follower, s = t.damping) : t.follower ? (n = t.follower.stiffness, s = t.follower.damping, o = t.follower.restDelta, i = t.follower.restSpeed) : (n = t.stiffness, s = t.damping), this.follower = new z({
|
|
91
91
|
stiffness: n,
|
|
92
92
|
damping: s,
|
|
93
93
|
restDelta: o ?? this.restDelta,
|
|
@@ -114,46 +114,46 @@ class Nt {
|
|
|
114
114
|
return s._leader ? Math.abs(n - s._leader.position) < this.restDelta && Math.abs(s._leader.velocity) < this.restSpeed && o : o;
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
const
|
|
118
|
-
class
|
|
117
|
+
const jt = 0.01, Kt = 500, Gt = 10;
|
|
118
|
+
class Jt {
|
|
119
119
|
constructor(t) {
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
this.acceleration = t.acceleration, this.resistance = t.resistance, this.resistanceType = t.resistanceType ?? "quadratic", this.min = t.min, this.max = t.max, this.bounceStiffness = t.bounceStiffness ??
|
|
120
|
+
x(this, "acceleration");
|
|
121
|
+
x(this, "resistance");
|
|
122
|
+
x(this, "resistanceType");
|
|
123
|
+
x(this, "min");
|
|
124
|
+
x(this, "max");
|
|
125
|
+
x(this, "bounceStiffness");
|
|
126
|
+
x(this, "bounceDamping");
|
|
127
|
+
x(this, "restDelta");
|
|
128
|
+
this.acceleration = t.acceleration, this.resistance = t.resistance, this.resistanceType = t.resistanceType ?? "quadratic", this.min = t.min, this.max = t.max, this.bounceStiffness = t.bounceStiffness ?? Kt, this.bounceDamping = t.bounceDamping ?? Gt, this.restDelta = t.restDelta ?? jt;
|
|
129
129
|
}
|
|
130
130
|
step(t, n, s) {
|
|
131
|
-
const o = Math.min(s, 0.033), { acceleration: i, resistance: l, resistanceType: a, min: r, max: c } = this, { position:
|
|
131
|
+
const o = Math.min(s, 0.033), { acceleration: i, resistance: l, resistanceType: a, min: r, max: c } = this, { position: f, velocity: p } = t, d = r !== void 0 && f < r, u = c !== void 0 && f > c;
|
|
132
132
|
let y;
|
|
133
|
-
if (
|
|
134
|
-
const b =
|
|
135
|
-
y = P +
|
|
133
|
+
if (d || u) {
|
|
134
|
+
const b = f - (d ? r : c), P = -this.bounceStiffness * b, $ = -this.bounceDamping * p;
|
|
135
|
+
y = P + $;
|
|
136
136
|
} else {
|
|
137
|
-
const
|
|
137
|
+
const S = n > f ? 1 : -1;
|
|
138
138
|
let b;
|
|
139
|
-
a === "linear" ? b = l *
|
|
139
|
+
a === "linear" ? b = l * p : b = l * p * Math.abs(p), y = S * i - b;
|
|
140
140
|
}
|
|
141
|
-
const h =
|
|
142
|
-
let
|
|
143
|
-
if (!
|
|
144
|
-
const
|
|
145
|
-
(
|
|
141
|
+
const h = p + y * o;
|
|
142
|
+
let w = f + h * o;
|
|
143
|
+
if (!d && !u) {
|
|
144
|
+
const S = n > f ? 1 : -1;
|
|
145
|
+
(S > 0 && w > n || S < 0 && w < n) && (w = n);
|
|
146
146
|
}
|
|
147
147
|
return {
|
|
148
|
-
position:
|
|
149
|
-
velocity:
|
|
148
|
+
position: w,
|
|
149
|
+
velocity: w === n ? 0 : h
|
|
150
150
|
};
|
|
151
151
|
}
|
|
152
152
|
isSettled(t, n) {
|
|
153
153
|
return Math.abs(n - t.position) < this.restDelta;
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
|
-
class
|
|
156
|
+
class g {
|
|
157
157
|
/**
|
|
158
158
|
* Create an Integrator from physics config
|
|
159
159
|
*
|
|
@@ -167,7 +167,7 @@ class w {
|
|
|
167
167
|
"Cannot use both 'spring' and 'inertia' together. Choose one physics type."
|
|
168
168
|
);
|
|
169
169
|
if (t.inertia)
|
|
170
|
-
return new
|
|
170
|
+
return new Jt({
|
|
171
171
|
acceleration: t.inertia.acceleration,
|
|
172
172
|
resistance: t.inertia.resistance,
|
|
173
173
|
resistanceType: t.inertia.resistanceType,
|
|
@@ -184,7 +184,7 @@ class w {
|
|
|
184
184
|
return typeof s == "number" ? o = s : typeof s == "object" && (o = {
|
|
185
185
|
stiffness: s.stiffness,
|
|
186
186
|
damping: s.damping
|
|
187
|
-
}), new
|
|
187
|
+
}), new qt({
|
|
188
188
|
stiffness: n.stiffness,
|
|
189
189
|
damping: n.damping,
|
|
190
190
|
follower: o,
|
|
@@ -192,7 +192,7 @@ class w {
|
|
|
192
192
|
restSpeed: n.restSpeed
|
|
193
193
|
});
|
|
194
194
|
}
|
|
195
|
-
return new
|
|
195
|
+
return new z({
|
|
196
196
|
stiffness: n.stiffness,
|
|
197
197
|
damping: n.damping,
|
|
198
198
|
restDelta: n.restDelta,
|
|
@@ -204,12 +204,12 @@ class w {
|
|
|
204
204
|
* @deprecated Use from({ spring: config }) instead
|
|
205
205
|
*/
|
|
206
206
|
static fromSpring(t) {
|
|
207
|
-
return
|
|
207
|
+
return g.from({ spring: t });
|
|
208
208
|
}
|
|
209
209
|
}
|
|
210
|
-
class
|
|
210
|
+
class Qt {
|
|
211
211
|
constructor(t) {
|
|
212
|
-
|
|
212
|
+
x(this, "durationSec");
|
|
213
213
|
this.durationSec = Math.max(1 / 60, t.durationSec);
|
|
214
214
|
}
|
|
215
215
|
step(t, n, s) {
|
|
@@ -219,16 +219,16 @@ class qt {
|
|
|
219
219
|
return (i > 0 ? r >= n : r <= n) ? { position: n, velocity: 0 } : { position: r, velocity: i * l };
|
|
220
220
|
}
|
|
221
221
|
isSettled(t, n) {
|
|
222
|
-
return Math.abs(t.position - n) <
|
|
222
|
+
return Math.abs(t.position - n) < st;
|
|
223
223
|
}
|
|
224
224
|
}
|
|
225
|
-
function
|
|
225
|
+
function N(e, t) {
|
|
226
226
|
function n(i) {
|
|
227
227
|
let l = 0, a = 0;
|
|
228
228
|
const r = i.offsetWidth, c = i.offsetHeight;
|
|
229
|
-
let
|
|
230
|
-
for (;
|
|
231
|
-
l +=
|
|
229
|
+
let f = i;
|
|
230
|
+
for (; f; )
|
|
231
|
+
l += f.offsetTop, a += f.offsetLeft, f = f.offsetParent;
|
|
232
232
|
return l -= window.scrollY, a -= window.scrollX, { top: l, left: a, width: r, height: c };
|
|
233
233
|
}
|
|
234
234
|
const s = n(e), o = n(t);
|
|
@@ -239,7 +239,7 @@ function tt(e, t) {
|
|
|
239
239
|
o.height
|
|
240
240
|
);
|
|
241
241
|
}
|
|
242
|
-
function
|
|
242
|
+
function rt(e, t) {
|
|
243
243
|
const n = e.getBoundingClientRect(), s = t.getBoundingClientRect(), o = e.offsetWidth > 0 ? n.width / e.offsetWidth : 1, i = e.offsetHeight > 0 ? n.height / e.offsetHeight : 1;
|
|
244
244
|
return new DOMRect(
|
|
245
245
|
(s.left - n.left) / o,
|
|
@@ -249,7 +249,7 @@ function nt(e, t) {
|
|
|
249
249
|
);
|
|
250
250
|
}
|
|
251
251
|
function T(e, t) {
|
|
252
|
-
const { scrollingElement: n, positionedParent: s } = e, o = n !== s && n.contains(s) ?
|
|
252
|
+
const { scrollingElement: n, positionedParent: s } = e, o = n !== s && n.contains(s) ? N(n, s).top : 0;
|
|
253
253
|
return {
|
|
254
254
|
top: e[t].scroll.y,
|
|
255
255
|
left: 0,
|
|
@@ -257,7 +257,14 @@ function T(e, t) {
|
|
|
257
257
|
height: n.clientHeight - o
|
|
258
258
|
};
|
|
259
259
|
}
|
|
260
|
-
|
|
260
|
+
function Yt(e, t) {
|
|
261
|
+
const { scrollingElement: n, positionedParent: s } = e, o = n !== s && n.contains(s) ? N(n, s).top : 0;
|
|
262
|
+
return {
|
|
263
|
+
top: e[t].scroll.y - o,
|
|
264
|
+
height: n.clientHeight
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
const at = 8, lt = {
|
|
261
268
|
spring: {
|
|
262
269
|
stiffness: 1e3,
|
|
263
270
|
damping: 40,
|
|
@@ -266,10 +273,10 @@ const st = 8, ot = {
|
|
|
266
273
|
restSpeed: 0.1
|
|
267
274
|
}
|
|
268
275
|
};
|
|
269
|
-
function
|
|
276
|
+
function te({
|
|
270
277
|
direction: e
|
|
271
278
|
}) {
|
|
272
|
-
const t = e === "forward" ?
|
|
279
|
+
const t = e === "forward" ? at : -at;
|
|
273
280
|
return {
|
|
274
281
|
out: {
|
|
275
282
|
willChange: "transform, opacity",
|
|
@@ -291,25 +298,25 @@ function Kt({
|
|
|
291
298
|
}
|
|
292
299
|
};
|
|
293
300
|
}
|
|
294
|
-
function
|
|
301
|
+
function ee() {
|
|
295
302
|
return {
|
|
296
|
-
outPhysics:
|
|
297
|
-
inPhysics:
|
|
303
|
+
outPhysics: lt,
|
|
304
|
+
inPhysics: lt,
|
|
298
305
|
// Both sides run together — the cross-fade is the whole point of the
|
|
299
306
|
// snappy feel. (fluid's sibling uses staggered fade-through.)
|
|
300
307
|
composition: { mode: "parallel", startAt: [0, 0] },
|
|
301
|
-
build:
|
|
308
|
+
build: te
|
|
302
309
|
};
|
|
303
310
|
}
|
|
304
|
-
const
|
|
311
|
+
const ct = 30, ne = {
|
|
305
312
|
inertia: { acceleration: 150, resistance: 1.5, restDelta: 0.1 }
|
|
306
|
-
},
|
|
313
|
+
}, se = {
|
|
307
314
|
spring: { stiffness: 180, damping: 34, restDelta: 0.1, restSpeed: 0.1 }
|
|
308
315
|
};
|
|
309
|
-
function
|
|
316
|
+
function oe({
|
|
310
317
|
direction: e
|
|
311
318
|
}) {
|
|
312
|
-
const t = e === "forward" ? 1 : -1, n = -
|
|
319
|
+
const t = e === "forward" ? 1 : -1, n = -ct * t, s = ct * t;
|
|
313
320
|
return {
|
|
314
321
|
out: {
|
|
315
322
|
willChange: "transform, opacity",
|
|
@@ -332,29 +339,29 @@ function Qt({
|
|
|
332
339
|
}
|
|
333
340
|
};
|
|
334
341
|
}
|
|
335
|
-
function
|
|
342
|
+
function ie() {
|
|
336
343
|
return {
|
|
337
|
-
outPhysics:
|
|
338
|
-
inPhysics:
|
|
344
|
+
outPhysics: ne,
|
|
345
|
+
inPhysics: se,
|
|
339
346
|
// Phased motion: outgoing falls away first under inertia, then incoming
|
|
340
347
|
// springs in. The fade-through shape comes from the integrator curves
|
|
341
348
|
// plus the sequence handoff, not from FADE_SPLIT inside animate(t).
|
|
342
349
|
composition: { mode: "sequence" },
|
|
343
|
-
build:
|
|
350
|
+
build: oe
|
|
344
351
|
};
|
|
345
352
|
}
|
|
346
|
-
const
|
|
347
|
-
snappy:
|
|
348
|
-
fluid:
|
|
349
|
-
},
|
|
353
|
+
const re = {
|
|
354
|
+
snappy: ee(),
|
|
355
|
+
fluid: ie()
|
|
356
|
+
}, pt = 8, ae = {
|
|
350
357
|
inertia: { acceleration: 150, resistance: 1.5, restDelta: 0.1 }
|
|
351
|
-
},
|
|
358
|
+
}, le = {
|
|
352
359
|
spring: { stiffness: 180, damping: 34, restDelta: 0.1, restSpeed: 0.1 }
|
|
353
360
|
};
|
|
354
|
-
function
|
|
361
|
+
function ce({
|
|
355
362
|
direction: e
|
|
356
363
|
}) {
|
|
357
|
-
const t = e === "forward" ? 1 : -1, n = -
|
|
364
|
+
const t = e === "forward" ? 1 : -1, n = -pt * t, s = pt * t;
|
|
358
365
|
return {
|
|
359
366
|
out: {
|
|
360
367
|
willChange: "transform, opacity",
|
|
@@ -377,21 +384,21 @@ function oe({
|
|
|
377
384
|
}
|
|
378
385
|
};
|
|
379
386
|
}
|
|
380
|
-
function
|
|
387
|
+
function pe() {
|
|
381
388
|
return {
|
|
382
|
-
outPhysics:
|
|
383
|
-
inPhysics:
|
|
389
|
+
outPhysics: ae,
|
|
390
|
+
inPhysics: le,
|
|
384
391
|
composition: { mode: "sequence" },
|
|
385
|
-
build:
|
|
392
|
+
build: ce
|
|
386
393
|
};
|
|
387
394
|
}
|
|
388
|
-
const
|
|
395
|
+
const fe = 8, de = {
|
|
389
396
|
inertia: { acceleration: 150, resistance: 1.5, restDelta: 0.1 }
|
|
390
|
-
},
|
|
397
|
+
}, ye = {
|
|
391
398
|
spring: { stiffness: 180, damping: 34, restDelta: 0.1, restSpeed: 0.1 }
|
|
392
399
|
};
|
|
393
|
-
function
|
|
394
|
-
const t =
|
|
400
|
+
function he(e) {
|
|
401
|
+
const t = fe;
|
|
395
402
|
return {
|
|
396
403
|
out: {
|
|
397
404
|
willChange: "opacity",
|
|
@@ -413,32 +420,32 @@ function ce(e) {
|
|
|
413
420
|
}
|
|
414
421
|
};
|
|
415
422
|
}
|
|
416
|
-
function
|
|
423
|
+
function ue() {
|
|
417
424
|
return {
|
|
418
|
-
outPhysics:
|
|
419
|
-
inPhysics:
|
|
425
|
+
outPhysics: de,
|
|
426
|
+
inPhysics: ye,
|
|
420
427
|
composition: { mode: "sequence" },
|
|
421
|
-
build:
|
|
428
|
+
build: he
|
|
422
429
|
};
|
|
423
430
|
}
|
|
424
|
-
const
|
|
425
|
-
snappy:
|
|
426
|
-
directional:
|
|
427
|
-
"non-directional":
|
|
428
|
-
},
|
|
431
|
+
const ft = pe(), me = {
|
|
432
|
+
snappy: ft,
|
|
433
|
+
directional: ft,
|
|
434
|
+
"non-directional": ue()
|
|
435
|
+
}, dt = {
|
|
429
436
|
spring: { stiffness: 280, damping: 30, restDelta: 0.1, restSpeed: 0.1 }
|
|
430
|
-
},
|
|
431
|
-
function
|
|
437
|
+
}, V = 0.1, X = 1 / 3, yt = (e) => Math.max(0, Math.min(1, e));
|
|
438
|
+
function ge({
|
|
432
439
|
direction: e
|
|
433
440
|
}) {
|
|
434
|
-
const t = e === "forward" ? 1 : -1, n = 1 - t *
|
|
441
|
+
const t = e === "forward" ? 1 : -1, n = 1 - t * V;
|
|
435
442
|
return {
|
|
436
443
|
out: {
|
|
437
444
|
willChange: "transform, opacity",
|
|
438
445
|
startStyle: {},
|
|
439
446
|
animate: (s) => ({
|
|
440
|
-
transform: `scale(${1 + t * s *
|
|
441
|
-
opacity: `${
|
|
447
|
+
transform: `scale(${1 + t * s * V})`,
|
|
448
|
+
opacity: `${yt(1 - s / X)}`
|
|
442
449
|
})
|
|
443
450
|
},
|
|
444
451
|
in: {
|
|
@@ -448,127 +455,127 @@ function fe({
|
|
|
448
455
|
opacity: "0"
|
|
449
456
|
},
|
|
450
457
|
animate: (s) => ({
|
|
451
|
-
transform: `scale(${n + t * s *
|
|
452
|
-
opacity: `${
|
|
458
|
+
transform: `scale(${n + t * s * V})`,
|
|
459
|
+
opacity: `${yt((s - X) / (1 - X))}`
|
|
453
460
|
})
|
|
454
461
|
}
|
|
455
462
|
};
|
|
456
463
|
}
|
|
457
|
-
function
|
|
464
|
+
function we() {
|
|
458
465
|
return {
|
|
459
|
-
outPhysics:
|
|
460
|
-
inPhysics:
|
|
466
|
+
outPhysics: dt,
|
|
467
|
+
inPhysics: dt,
|
|
461
468
|
// Scale must move together on both sides; fade-through is encoded inside
|
|
462
469
|
// each tick (piecewise), not via composition staggering — so parallel.
|
|
463
470
|
composition: { mode: "parallel" },
|
|
464
|
-
build:
|
|
471
|
+
build: ge
|
|
465
472
|
};
|
|
466
473
|
}
|
|
467
|
-
const
|
|
474
|
+
const ht = {
|
|
468
475
|
spring: { stiffness: 280, damping: 30, restDelta: 0.1, restSpeed: 0.1 }
|
|
469
|
-
},
|
|
470
|
-
function
|
|
476
|
+
}, B = 0.1, Z = 1 / 3, ut = (e) => Math.max(0, Math.min(1, e));
|
|
477
|
+
function Se() {
|
|
471
478
|
return {
|
|
472
479
|
out: {
|
|
473
480
|
willChange: "opacity",
|
|
474
481
|
startStyle: {},
|
|
475
482
|
animate: (e) => ({
|
|
476
|
-
opacity: `${
|
|
483
|
+
opacity: `${ut(1 - e / Z)}`
|
|
477
484
|
})
|
|
478
485
|
},
|
|
479
486
|
in: {
|
|
480
487
|
willChange: "transform, opacity",
|
|
481
488
|
startStyle: {
|
|
482
|
-
transform: `scale(${1 -
|
|
489
|
+
transform: `scale(${1 - B})`,
|
|
483
490
|
opacity: "0"
|
|
484
491
|
},
|
|
485
492
|
animate: (e) => ({
|
|
486
|
-
transform: `scale(${1 -
|
|
487
|
-
opacity: `${
|
|
493
|
+
transform: `scale(${1 - B + e * B})`,
|
|
494
|
+
opacity: `${ut((e - Z) / (1 - Z))}`
|
|
488
495
|
})
|
|
489
496
|
}
|
|
490
497
|
};
|
|
491
498
|
}
|
|
492
|
-
function
|
|
499
|
+
function be() {
|
|
493
500
|
return {
|
|
494
|
-
outPhysics:
|
|
495
|
-
inPhysics:
|
|
501
|
+
outPhysics: ht,
|
|
502
|
+
inPhysics: ht,
|
|
496
503
|
composition: { mode: "parallel" },
|
|
497
|
-
build:
|
|
504
|
+
build: Se
|
|
498
505
|
};
|
|
499
506
|
}
|
|
500
|
-
const
|
|
501
|
-
snappy:
|
|
502
|
-
directional:
|
|
503
|
-
"non-directional":
|
|
504
|
-
},
|
|
505
|
-
x:
|
|
506
|
-
y:
|
|
507
|
-
z:
|
|
507
|
+
const mt = we(), $e = {
|
|
508
|
+
snappy: mt,
|
|
509
|
+
directional: mt,
|
|
510
|
+
"non-directional": be()
|
|
511
|
+
}, Ce = {
|
|
512
|
+
x: re,
|
|
513
|
+
y: me,
|
|
514
|
+
z: $e
|
|
508
515
|
};
|
|
509
|
-
function
|
|
510
|
-
const n =
|
|
516
|
+
function xe(e, t) {
|
|
517
|
+
const n = Ce[e];
|
|
511
518
|
return n[t] ?? n.snappy;
|
|
512
519
|
}
|
|
513
|
-
const
|
|
514
|
-
function
|
|
520
|
+
const Ee = "x", Pe = "snappy";
|
|
521
|
+
function gt(e, t) {
|
|
515
522
|
e.style.willChange = t.willChange, e.style.backfaceVisibility = "hidden", e.style.contain = "layout paint";
|
|
516
523
|
for (const [n, s] of Object.entries(t.startStyle))
|
|
517
524
|
e.style[n] = s;
|
|
518
525
|
}
|
|
519
|
-
function
|
|
526
|
+
function Lt(e) {
|
|
520
527
|
e.style.willChange = "auto", e.style.backfaceVisibility = "", e.style.contain = "", e.style.transform = "", e.style.opacity = "", e.style.clipPath = "";
|
|
521
528
|
}
|
|
522
|
-
function
|
|
523
|
-
|
|
529
|
+
function _e(e) {
|
|
530
|
+
Lt(e), e.style.pointerEvents = "";
|
|
524
531
|
}
|
|
525
|
-
const
|
|
526
|
-
const t = e.direction ?? "forward", n = e.type ??
|
|
532
|
+
const Ie = (e = {}) => {
|
|
533
|
+
const t = e.direction ?? "forward", n = e.type ?? Ee, s = e.feel ?? Pe, o = xe(n, s), i = o.build({ direction: t });
|
|
527
534
|
return {
|
|
528
535
|
prepare: ({ from: l, to: a }) => (l.then((r) => {
|
|
529
|
-
|
|
536
|
+
gt(r, i.out), r.style.pointerEvents = "none";
|
|
530
537
|
}), a.then((r) => {
|
|
531
|
-
|
|
538
|
+
gt(r, i.in);
|
|
532
539
|
}), {}),
|
|
533
540
|
animation: ({ from: l, to: a, context: r }) => {
|
|
534
541
|
if (n === "z") {
|
|
535
|
-
const
|
|
536
|
-
l.style.clipPath = `inset(${
|
|
542
|
+
const p = T(r, "from"), d = T(r, "to");
|
|
543
|
+
l.style.clipPath = `inset(${p.top}px 0 calc(100% - ${p.top + p.height}px) 0)`, a.style.clipPath = `inset(${d.top}px 0 calc(100% - ${d.top + d.height}px) 0)`;
|
|
537
544
|
}
|
|
538
|
-
const c = new
|
|
545
|
+
const c = new m({
|
|
539
546
|
element: l,
|
|
540
|
-
integrator:
|
|
541
|
-
style: (
|
|
547
|
+
integrator: g.from(o.outPhysics),
|
|
548
|
+
style: (p) => i.out.animate(p),
|
|
542
549
|
// Restore the reused from node's inline styles on complete. This
|
|
543
550
|
// covers willChange/backfaceVisibility/contain/transform/opacity (from
|
|
544
551
|
// applyStartStyle + the WAAPI final frame), pointerEvents (set in
|
|
545
552
|
// prepare), and clipPath (set above for z; harmless no-op otherwise).
|
|
546
|
-
onComplete: () =>
|
|
547
|
-
}),
|
|
553
|
+
onComplete: () => _e(l)
|
|
554
|
+
}), f = new m({
|
|
548
555
|
element: a,
|
|
549
|
-
integrator:
|
|
550
|
-
style: (
|
|
551
|
-
onComplete: () =>
|
|
556
|
+
integrator: g.from(o.inPhysics),
|
|
557
|
+
style: (p) => i.in.animate(p),
|
|
558
|
+
onComplete: () => Lt(a)
|
|
552
559
|
});
|
|
553
|
-
return new
|
|
560
|
+
return new E([c, f], o.composition);
|
|
554
561
|
}
|
|
555
562
|
};
|
|
556
563
|
};
|
|
557
|
-
function
|
|
564
|
+
function ve(e, t, n) {
|
|
558
565
|
return e === "y" ? t === "non-directional" ? "non-directional" : "directional" : e !== "x" || t === "snappy" || n === "snappy" ? "snappy" : "fluid";
|
|
559
566
|
}
|
|
560
|
-
function
|
|
561
|
-
const { paths: t } = e, n = e.type ?? "x", s = e.variant, o = e.feel, i =
|
|
562
|
-
return
|
|
567
|
+
function Ds(e) {
|
|
568
|
+
const { paths: t } = e, n = e.type ?? "x", s = e.variant, o = e.feel, i = ve(n, s, o);
|
|
569
|
+
return ot(
|
|
563
570
|
t,
|
|
564
571
|
{ forward: "forward", backward: "backward" },
|
|
565
|
-
(l) =>
|
|
572
|
+
(l) => Ie({ type: n, direction: l, feel: i })
|
|
566
573
|
);
|
|
567
574
|
}
|
|
568
|
-
const
|
|
575
|
+
const De = {
|
|
569
576
|
spring: { stiffness: 200, damping: 22 }
|
|
570
|
-
},
|
|
571
|
-
function
|
|
577
|
+
}, Oe = 10, Te = "horizontal", Fe = "#000000";
|
|
578
|
+
function wt(e, t, n, s, o, i) {
|
|
572
579
|
window.getComputedStyle(e).position === "static" && (e.style.position = "relative");
|
|
573
580
|
const a = document.createElement("div");
|
|
574
581
|
a.style.cssText = `
|
|
@@ -583,27 +590,27 @@ function ht(e, t, n, s, o, i) {
|
|
|
583
590
|
`;
|
|
584
591
|
const r = [];
|
|
585
592
|
for (let c = 0; c < t; c++) {
|
|
586
|
-
const
|
|
593
|
+
const f = document.createElement("div");
|
|
587
594
|
if (n === "horizontal") {
|
|
588
|
-
const
|
|
589
|
-
|
|
595
|
+
const p = 100 / t;
|
|
596
|
+
f.style.cssText = `
|
|
590
597
|
position: absolute;
|
|
591
|
-
top: ${
|
|
598
|
+
top: ${p * c}%;
|
|
592
599
|
left: 0;
|
|
593
600
|
width: 100%;
|
|
594
|
-
height: calc(${
|
|
601
|
+
height: calc(${p}% + 1px);
|
|
595
602
|
background: ${s};
|
|
596
603
|
transform: scaleX(${o === "hidden" ? 0 : 1});
|
|
597
604
|
transform-origin: ${i} center;
|
|
598
605
|
will-change: transform;
|
|
599
606
|
`;
|
|
600
607
|
} else {
|
|
601
|
-
const
|
|
602
|
-
|
|
608
|
+
const p = 100 / t;
|
|
609
|
+
f.style.cssText = `
|
|
603
610
|
position: absolute;
|
|
604
611
|
top: 0;
|
|
605
|
-
left: ${
|
|
606
|
-
width: calc(${
|
|
612
|
+
left: ${p * c}%;
|
|
613
|
+
width: calc(${p}% + 1px);
|
|
607
614
|
height: 100%;
|
|
608
615
|
background: ${s};
|
|
609
616
|
transform: scaleY(${o === "hidden" ? 0 : 1});
|
|
@@ -611,17 +618,17 @@ function ht(e, t, n, s, o, i) {
|
|
|
611
618
|
will-change: transform;
|
|
612
619
|
`;
|
|
613
620
|
}
|
|
614
|
-
r.push(
|
|
621
|
+
r.push(f), a.appendChild(f);
|
|
615
622
|
}
|
|
616
623
|
return e.appendChild(a), { container: a, blinds: r };
|
|
617
624
|
}
|
|
618
|
-
const
|
|
619
|
-
const t = e.blindCount ??
|
|
625
|
+
const Ae = (e = {}) => {
|
|
626
|
+
const t = e.blindCount ?? Oe, n = e.direction ?? Te, s = e.blindColor ?? Fe, o = e.physics ?? De;
|
|
620
627
|
return {
|
|
621
628
|
prepare: async ({ from: i, to: l }) => {
|
|
622
629
|
const a = await i, r = await l;
|
|
623
630
|
a.style.zIndex = "1000";
|
|
624
|
-
const c =
|
|
631
|
+
const c = wt(
|
|
625
632
|
a,
|
|
626
633
|
t,
|
|
627
634
|
n,
|
|
@@ -630,7 +637,7 @@ const De = (e = {}) => {
|
|
|
630
637
|
"left"
|
|
631
638
|
);
|
|
632
639
|
r.style.position = "relative", r.style.zIndex = "0";
|
|
633
|
-
const
|
|
640
|
+
const f = wt(
|
|
634
641
|
r,
|
|
635
642
|
t,
|
|
636
643
|
n,
|
|
@@ -642,8 +649,8 @@ const De = (e = {}) => {
|
|
|
642
649
|
fromEl: a,
|
|
643
650
|
fromBlinds: c.blinds,
|
|
644
651
|
fromContainer: c.container,
|
|
645
|
-
toBlinds:
|
|
646
|
-
toContainer:
|
|
652
|
+
toBlinds: f.blinds,
|
|
653
|
+
toContainer: f.container
|
|
647
654
|
};
|
|
648
655
|
},
|
|
649
656
|
animation: ({
|
|
@@ -653,41 +660,41 @@ const De = (e = {}) => {
|
|
|
653
660
|
toBlinds: r,
|
|
654
661
|
toContainer: c
|
|
655
662
|
}) => {
|
|
656
|
-
const
|
|
657
|
-
(y) => new
|
|
663
|
+
const f = l.map(
|
|
664
|
+
(y) => new m({
|
|
658
665
|
element: y,
|
|
659
|
-
integrator:
|
|
666
|
+
integrator: g.from(o),
|
|
660
667
|
style: (h) => ({
|
|
661
668
|
transform: n === "horizontal" ? `scaleX(${h})` : `scaleY(${h})`
|
|
662
669
|
})
|
|
663
670
|
})
|
|
664
|
-
),
|
|
665
|
-
(y, h) => new
|
|
671
|
+
), p = r.map(
|
|
672
|
+
(y, h) => new m({
|
|
666
673
|
element: y,
|
|
667
|
-
integrator:
|
|
668
|
-
style: (
|
|
669
|
-
transform: n === "horizontal" ? `scaleX(${
|
|
674
|
+
integrator: g.from(o),
|
|
675
|
+
style: (w, S) => ({
|
|
676
|
+
transform: n === "horizontal" ? `scaleX(${S})` : `scaleY(${S})`
|
|
670
677
|
}),
|
|
671
678
|
onComplete: h === r.length - 1 ? () => {
|
|
672
679
|
c.remove(), a.remove(), i.style.zIndex = "", i.style.position = "";
|
|
673
680
|
} : void 0
|
|
674
681
|
})
|
|
675
|
-
),
|
|
676
|
-
return new
|
|
682
|
+
), d = new E(f, { mode: "parallel" }), u = new E(p, { mode: "parallel" });
|
|
683
|
+
return new E([d, u], { mode: "sequence" });
|
|
677
684
|
}
|
|
678
685
|
};
|
|
679
686
|
};
|
|
680
|
-
function
|
|
687
|
+
function Os(e) {
|
|
681
688
|
const { paths: t, type: n = "horizontal" } = e;
|
|
682
|
-
return
|
|
689
|
+
return v(
|
|
683
690
|
t,
|
|
684
|
-
() =>
|
|
691
|
+
() => Ae({ direction: n })
|
|
685
692
|
);
|
|
686
693
|
}
|
|
687
|
-
const
|
|
694
|
+
const ke = {
|
|
688
695
|
spring: { stiffness: 200, damping: 20, doubleSpring: 0.7 }
|
|
689
|
-
},
|
|
690
|
-
function
|
|
696
|
+
}, Y = 0.5;
|
|
697
|
+
function Ye(e) {
|
|
691
698
|
const t = e === "enter" ? -100 : 100, n = e === "enter" ? 100 : -100;
|
|
692
699
|
return {
|
|
693
700
|
out: {
|
|
@@ -695,32 +702,32 @@ function Oe(e) {
|
|
|
695
702
|
startStyle: {},
|
|
696
703
|
animate: (s) => ({
|
|
697
704
|
transform: `translate3d(${t * s}%, 0, 0)`,
|
|
698
|
-
opacity: `${
|
|
705
|
+
opacity: `${Y + (1 - Y) * (1 - s)}`
|
|
699
706
|
})
|
|
700
707
|
},
|
|
701
708
|
in: {
|
|
702
709
|
willChange: "transform, opacity",
|
|
703
710
|
startStyle: {
|
|
704
711
|
transform: `translate3d(${n}%, 0, 0)`,
|
|
705
|
-
opacity: `${
|
|
712
|
+
opacity: `${Y}`
|
|
706
713
|
},
|
|
707
714
|
animate: (s) => ({
|
|
708
715
|
transform: `translate3d(${n * (1 - s)}%, 0, 0)`,
|
|
709
|
-
opacity: `${
|
|
716
|
+
opacity: `${Y + (1 - Y) * s}`
|
|
710
717
|
})
|
|
711
718
|
}
|
|
712
719
|
};
|
|
713
720
|
}
|
|
714
|
-
function
|
|
721
|
+
function Le() {
|
|
715
722
|
return {
|
|
716
|
-
physics:
|
|
717
|
-
build:
|
|
723
|
+
physics: ke,
|
|
724
|
+
build: Ye
|
|
718
725
|
};
|
|
719
726
|
}
|
|
720
|
-
const
|
|
727
|
+
const He = {
|
|
721
728
|
spring: { stiffness: 170, damping: 22 }
|
|
722
729
|
};
|
|
723
|
-
function
|
|
730
|
+
function Me(e) {
|
|
724
731
|
const t = e === "enter" ? -20 : 100, n = e === "enter" ? 100 : -20;
|
|
725
732
|
return {
|
|
726
733
|
out: {
|
|
@@ -741,105 +748,105 @@ function Fe(e) {
|
|
|
741
748
|
}
|
|
742
749
|
};
|
|
743
750
|
}
|
|
744
|
-
function
|
|
751
|
+
function ze() {
|
|
745
752
|
return {
|
|
746
|
-
physics:
|
|
747
|
-
build:
|
|
753
|
+
physics: He,
|
|
754
|
+
build: Me
|
|
748
755
|
};
|
|
749
756
|
}
|
|
750
|
-
const
|
|
751
|
-
parallax:
|
|
752
|
-
crossfade:
|
|
753
|
-
},
|
|
754
|
-
function
|
|
757
|
+
const Re = {
|
|
758
|
+
parallax: ze(),
|
|
759
|
+
crossfade: Le()
|
|
760
|
+
}, D = "0", Ht = "1", O = "2", Ue = "parallax";
|
|
761
|
+
function St(e, t) {
|
|
755
762
|
e.style.willChange = t.willChange, e.style.backfaceVisibility = "hidden", e.style.contain = "layout paint";
|
|
756
763
|
for (const [n, s] of Object.entries(t.startStyle))
|
|
757
764
|
e.style[n] = s;
|
|
758
765
|
}
|
|
759
|
-
const
|
|
760
|
-
const t = e.direction ?? "enter", n =
|
|
766
|
+
const Ne = (e = {}) => {
|
|
767
|
+
const t = e.direction ?? "enter", n = Re[e.type ?? Ue], s = n.physics, o = n.build(t), i = t === "enter" ? D : O, l = t === "enter" ? O : D;
|
|
761
768
|
return {
|
|
762
769
|
prepare: ({ from: a, to: r }) => (a.then((c) => {
|
|
763
|
-
|
|
770
|
+
St(c, o.out), c.style.pointerEvents = "none", c.style.zIndex = i;
|
|
764
771
|
}), r.then((c) => {
|
|
765
|
-
|
|
772
|
+
St(c, o.in), c.style.position = "relative", c.style.zIndex = l;
|
|
766
773
|
}), {}),
|
|
767
774
|
animation: ({ from: a, to: r }) => {
|
|
768
|
-
const c = new
|
|
775
|
+
const c = new m({
|
|
769
776
|
element: a,
|
|
770
|
-
integrator:
|
|
771
|
-
style: (
|
|
777
|
+
integrator: g.from(s),
|
|
778
|
+
style: (p) => o.out.animate(p),
|
|
772
779
|
// The outgoing node is the real, reused element (re-hidden on navigate),
|
|
773
780
|
// so clear every inline style we set on it — mirroring the `to` cleanup,
|
|
774
781
|
// plus the out-only `pointerEvents` / `zIndex`.
|
|
775
782
|
onComplete: () => {
|
|
776
783
|
a.style.willChange = "auto", a.style.backfaceVisibility = "", a.style.contain = "", a.style.transform = "", a.style.opacity = "", a.style.pointerEvents = "", a.style.zIndex = "";
|
|
777
784
|
}
|
|
778
|
-
}),
|
|
785
|
+
}), f = new m({
|
|
779
786
|
element: r,
|
|
780
|
-
integrator:
|
|
781
|
-
style: (
|
|
787
|
+
integrator: g.from(s),
|
|
788
|
+
style: (p) => o.in.animate(p),
|
|
782
789
|
onComplete: () => {
|
|
783
790
|
r.style.willChange = "auto", r.style.backfaceVisibility = "", r.style.contain = "", r.style.transform = "", r.style.opacity = "", r.style.position === "relative" && (r.style.position = ""), r.style.zIndex === l && (r.style.zIndex = "");
|
|
784
791
|
}
|
|
785
792
|
});
|
|
786
|
-
for (const
|
|
787
|
-
const
|
|
788
|
-
|
|
789
|
-
|
|
793
|
+
for (const p of [c, f]) {
|
|
794
|
+
const d = p.onComplete;
|
|
795
|
+
p.onComplete = () => {
|
|
796
|
+
d == null || d(), p.releaseFill();
|
|
790
797
|
};
|
|
791
798
|
}
|
|
792
|
-
return new
|
|
799
|
+
return new E([c, f], { mode: "parallel" });
|
|
793
800
|
}
|
|
794
801
|
};
|
|
795
802
|
};
|
|
796
|
-
function
|
|
803
|
+
function Ve(e) {
|
|
797
804
|
return e === "slide" || e === "crossfade" ? "crossfade" : "parallax";
|
|
798
805
|
}
|
|
799
|
-
function
|
|
800
|
-
const { enter: t, exit: n } = e, s = e.type, o =
|
|
801
|
-
return
|
|
806
|
+
function Ts(e) {
|
|
807
|
+
const { enter: t, exit: n } = e, s = e.type, o = Ve(s);
|
|
808
|
+
return kt(
|
|
802
809
|
{ enter: t, exit: n },
|
|
803
|
-
(i) =>
|
|
810
|
+
(i) => Ne({ direction: i, type: o })
|
|
804
811
|
);
|
|
805
812
|
}
|
|
806
|
-
const
|
|
813
|
+
const Xe = {
|
|
807
814
|
spring: { stiffness: 180, damping: 20, doubleSpring: !0 }
|
|
808
|
-
},
|
|
815
|
+
}, Be = {
|
|
809
816
|
spring: { stiffness: 170, damping: 20, doubleSpring: !0 }
|
|
810
|
-
},
|
|
811
|
-
const t = e.physics ??
|
|
817
|
+
}, Ze = (e = {}) => {
|
|
818
|
+
const t = e.physics ?? Be, n = e.physics ?? Xe;
|
|
812
819
|
return {
|
|
813
820
|
prepare: ({ to: s }) => (s.then((o) => {
|
|
814
821
|
o.style.opacity = "0", o.style.willChange = "opacity";
|
|
815
822
|
}), {}),
|
|
816
823
|
animation: ({ from: s, to: o }) => {
|
|
817
|
-
const i = new
|
|
824
|
+
const i = new m({
|
|
818
825
|
element: s,
|
|
819
|
-
integrator:
|
|
826
|
+
integrator: g.from(n),
|
|
820
827
|
// Default bounds (0, 1). `u` runs 1→0 as the animation moves
|
|
821
828
|
// forward, mapping opacity from fully visible to invisible.
|
|
822
829
|
style: (a, r) => ({ opacity: r }),
|
|
823
830
|
onComplete: () => {
|
|
824
831
|
s.style.willChange = "auto", s.style.opacity = "";
|
|
825
832
|
}
|
|
826
|
-
}), l = new
|
|
833
|
+
}), l = new m({
|
|
827
834
|
element: o,
|
|
828
|
-
integrator:
|
|
835
|
+
integrator: g.from(t),
|
|
829
836
|
style: (a) => ({ opacity: a }),
|
|
830
837
|
onComplete: () => {
|
|
831
838
|
o.style.willChange = "auto", o.style.opacity = "";
|
|
832
839
|
}
|
|
833
840
|
});
|
|
834
|
-
return new
|
|
841
|
+
return new E([i, l], { mode: "sequence" });
|
|
835
842
|
}
|
|
836
843
|
};
|
|
837
844
|
};
|
|
838
|
-
function
|
|
845
|
+
function Fs(e) {
|
|
839
846
|
const { paths: t } = e;
|
|
840
|
-
return
|
|
847
|
+
return v(t, () => Ze());
|
|
841
848
|
}
|
|
842
|
-
const
|
|
849
|
+
const W = {
|
|
843
850
|
scaleDown: { stiffness: 20, damping: 7 },
|
|
844
851
|
translate: { stiffness: 15, damping: 7 },
|
|
845
852
|
scaleUp: { stiffness: 20, damping: 7 }
|
|
@@ -847,11 +854,11 @@ const X = {
|
|
|
847
854
|
scaleDown: 0,
|
|
848
855
|
translate: 0.2,
|
|
849
856
|
scaleUp: 0.8
|
|
850
|
-
},
|
|
851
|
-
function
|
|
852
|
-
const { items: t, from: n, to: s, recordFrame: o } = e, i =
|
|
857
|
+
}, We = 0.8, qe = "white", bt = 1e3 / 60, je = 600;
|
|
858
|
+
function Ke(e) {
|
|
859
|
+
const { items: t, from: n, to: s, recordFrame: o } = e, i = bt / 1e3, l = Math.abs(s - n), a = t.map((c) => ({
|
|
853
860
|
item: c,
|
|
854
|
-
integrator: new
|
|
861
|
+
integrator: new z({
|
|
855
862
|
stiffness: c.spring.stiffness,
|
|
856
863
|
damping: c.spring.damping
|
|
857
864
|
}),
|
|
@@ -864,30 +871,30 @@ function Ze(e) {
|
|
|
864
871
|
(c === 0 || a[c].item.offset === 0) && (a[c].started = !0);
|
|
865
872
|
o(0);
|
|
866
873
|
let r = 0;
|
|
867
|
-
for (let c = 1; c <=
|
|
868
|
-
const
|
|
869
|
-
r =
|
|
870
|
-
for (const
|
|
871
|
-
!
|
|
872
|
-
for (let
|
|
873
|
-
const
|
|
874
|
-
if (
|
|
875
|
-
const u = a[
|
|
874
|
+
for (let c = 1; c <= je; c++) {
|
|
875
|
+
const f = c * bt;
|
|
876
|
+
r = f;
|
|
877
|
+
for (const p of a)
|
|
878
|
+
!p.started || p.settled || (p.state = p.integrator.step(p.state, s, i), p.integrator.isSettled(p.state, s) ? (p.settleTime += i, p.settleTime >= Wt && (p.state = { position: s, velocity: 0 }, p.settled = !0)) : p.settleTime = 0, p.item.tick(p.state.position));
|
|
879
|
+
for (let p = 1; p < a.length; p++) {
|
|
880
|
+
const d = a[p];
|
|
881
|
+
if (d.started) continue;
|
|
882
|
+
const u = a[p - 1];
|
|
876
883
|
if (!u.started) continue;
|
|
877
|
-
(l === 0 ? 1 : Math.abs(u.state.position - n) / l) >=
|
|
884
|
+
(l === 0 ? 1 : Math.abs(u.state.position - n) / l) >= d.item.offset && (d.started = !0);
|
|
878
885
|
}
|
|
879
|
-
if (o(
|
|
886
|
+
if (o(f), a.every((p) => p.settled)) return f;
|
|
880
887
|
}
|
|
881
888
|
return r;
|
|
882
889
|
}
|
|
883
|
-
function
|
|
890
|
+
function q(e, t) {
|
|
884
891
|
return e != null && e.spring ? {
|
|
885
892
|
stiffness: e.spring.stiffness,
|
|
886
893
|
damping: e.spring.damping
|
|
887
894
|
} : t;
|
|
888
895
|
}
|
|
889
|
-
function
|
|
890
|
-
const { rect: t, scale: n, direction: s, override: o } = e, i = s === "out" ? { scale: 1, translateY: -t.top } : { scale: n, translateY: -t.top + t.height }, l =
|
|
896
|
+
function $t(e) {
|
|
897
|
+
const { rect: t, scale: n, direction: s, override: o } = e, i = s === "out" ? { scale: 1, translateY: -t.top } : { scale: n, translateY: -t.top + t.height }, l = q(o, W.scaleDown), a = q(o, W.translate), r = q(o, W.scaleUp), c = s === "out" ? 1 : 0, f = s === "out" ? 0 : 1, p = s === "out" ? [
|
|
891
898
|
{
|
|
892
899
|
spring: l,
|
|
893
900
|
offset: A.scaleDown,
|
|
@@ -934,19 +941,19 @@ function gt(e) {
|
|
|
934
941
|
i.scale = n + (1 - n) * y;
|
|
935
942
|
}
|
|
936
943
|
}
|
|
937
|
-
],
|
|
938
|
-
items:
|
|
944
|
+
], d = [], u = Ke({
|
|
945
|
+
items: p,
|
|
939
946
|
from: c,
|
|
940
|
-
to:
|
|
941
|
-
recordFrame: (y) =>
|
|
947
|
+
to: f,
|
|
948
|
+
recordFrame: (y) => d.push({
|
|
942
949
|
time: y,
|
|
943
950
|
scale: i.scale,
|
|
944
951
|
translateY: i.translateY
|
|
945
952
|
})
|
|
946
953
|
});
|
|
947
|
-
return { snapshots:
|
|
954
|
+
return { snapshots: d, totalDuration: u };
|
|
948
955
|
}
|
|
949
|
-
function
|
|
956
|
+
function Ge(e, t) {
|
|
950
957
|
if (e.length === 0) return { time: 0, scale: 1, translateY: 0 };
|
|
951
958
|
if (e.length === 1 || t <= 0) return e[0];
|
|
952
959
|
if (t >= 1) return e[e.length - 1];
|
|
@@ -959,13 +966,13 @@ function We(e, t) {
|
|
|
959
966
|
translateY: i.translateY + (l.translateY - i.translateY) * a
|
|
960
967
|
};
|
|
961
968
|
}
|
|
962
|
-
const
|
|
969
|
+
const Je = [
|
|
963
970
|
[1, 1],
|
|
964
971
|
[-1, 1],
|
|
965
972
|
[1, -1],
|
|
966
973
|
[-1, -1]
|
|
967
974
|
];
|
|
968
|
-
function
|
|
975
|
+
function Qe(e, t) {
|
|
969
976
|
const o = (i, l, a) => {
|
|
970
977
|
const r = document.createElement("div");
|
|
971
978
|
Object.assign(r.style, {
|
|
@@ -985,15 +992,15 @@ function Ke(e, t) {
|
|
|
985
992
|
[a]: "0",
|
|
986
993
|
[l]: "0"
|
|
987
994
|
});
|
|
988
|
-
const
|
|
989
|
-
return Object.assign(
|
|
995
|
+
const f = document.createElement("div");
|
|
996
|
+
return Object.assign(f.style, {
|
|
990
997
|
position: "absolute",
|
|
991
998
|
width: "1px",
|
|
992
999
|
height: "15px",
|
|
993
1000
|
backgroundColor: e,
|
|
994
1001
|
[a]: "0",
|
|
995
1002
|
[l]: "0"
|
|
996
|
-
}), r.appendChild(c), r.appendChild(
|
|
1003
|
+
}), r.appendChild(c), r.appendChild(f), r;
|
|
997
1004
|
};
|
|
998
1005
|
return {
|
|
999
1006
|
topLeft: o(
|
|
@@ -1030,11 +1037,11 @@ function Ke(e, t) {
|
|
|
1030
1037
|
)
|
|
1031
1038
|
};
|
|
1032
1039
|
}
|
|
1033
|
-
function
|
|
1040
|
+
function Ct(e, t) {
|
|
1034
1041
|
const n = t.left + t.width / 2, s = t.top + t.height / 2;
|
|
1035
1042
|
e.style.transformOrigin = `${n}px ${s}px`;
|
|
1036
1043
|
}
|
|
1037
|
-
function
|
|
1044
|
+
function xt(e, t) {
|
|
1038
1045
|
e.style.clipPath = `polygon(
|
|
1039
1046
|
${t.left}px ${t.top}px,
|
|
1040
1047
|
${t.left + t.width}px ${t.top}px,
|
|
@@ -1042,86 +1049,86 @@ function St(e, t) {
|
|
|
1042
1049
|
${t.left}px ${t.top + t.height}px
|
|
1043
1050
|
)`;
|
|
1044
1051
|
}
|
|
1045
|
-
function
|
|
1052
|
+
function j(e, t, n, s, o) {
|
|
1046
1053
|
const i = n / 1e3;
|
|
1047
|
-
return new
|
|
1054
|
+
return new m({
|
|
1048
1055
|
element: e,
|
|
1049
|
-
integrator: new
|
|
1056
|
+
integrator: new Qt({ durationSec: i }),
|
|
1050
1057
|
lowerBound: 0,
|
|
1051
1058
|
upperBound: 1,
|
|
1052
|
-
style: (l) => s(
|
|
1059
|
+
style: (l) => s(Ge(t, l)),
|
|
1053
1060
|
onComplete: o
|
|
1054
1061
|
});
|
|
1055
1062
|
}
|
|
1056
|
-
const
|
|
1063
|
+
const tn = (e = {}) => {
|
|
1057
1064
|
var o;
|
|
1058
|
-
const t = ((o = e.border) == null ? void 0 : o.color) ??
|
|
1065
|
+
const t = ((o = e.border) == null ? void 0 : o.color) ?? qe, n = We, s = e.physics;
|
|
1059
1066
|
return {
|
|
1060
1067
|
prepare: ({ from: i, to: l, context: a }) => {
|
|
1061
|
-
const r = T(a, "from"), c = T(a, "to"),
|
|
1068
|
+
const r = T(a, "from"), c = T(a, "to"), f = N(document.body, a.positionedParent), p = Qe(t, {
|
|
1062
1069
|
...r,
|
|
1063
|
-
top:
|
|
1070
|
+
top: f.top
|
|
1064
1071
|
});
|
|
1065
|
-
for (const
|
|
1072
|
+
for (const d of [
|
|
1066
1073
|
"topLeft",
|
|
1067
1074
|
"topRight",
|
|
1068
1075
|
"bottomLeft",
|
|
1069
1076
|
"bottomRight"
|
|
1070
1077
|
])
|
|
1071
|
-
a.positionedParent.appendChild(d
|
|
1072
|
-
return i.then((
|
|
1073
|
-
|
|
1074
|
-
}), l.then((
|
|
1075
|
-
|
|
1076
|
-
}), { borders:
|
|
1078
|
+
a.positionedParent.appendChild(p[d]);
|
|
1079
|
+
return i.then((d) => {
|
|
1080
|
+
Ct(d, r), xt(d, r), d.style.transform = `translateY(${-r.top}px)`;
|
|
1081
|
+
}), l.then((d) => {
|
|
1082
|
+
Ct(d, c), xt(d, c), d.style.transform = `translateY(${-c.top + c.height}px) scale(${n})`;
|
|
1083
|
+
}), { borders: p, fromRect: r, toRect: c };
|
|
1077
1084
|
},
|
|
1078
|
-
animation: ({ from: i, to: l, context: a, borders: r, fromRect: c, toRect:
|
|
1079
|
-
const
|
|
1085
|
+
animation: ({ from: i, to: l, context: a, borders: r, fromRect: c, toRect: f }) => {
|
|
1086
|
+
const p = $t({
|
|
1080
1087
|
rect: c,
|
|
1081
1088
|
scale: n,
|
|
1082
1089
|
direction: "out",
|
|
1083
1090
|
override: s
|
|
1084
|
-
}),
|
|
1085
|
-
rect:
|
|
1091
|
+
}), d = $t({
|
|
1092
|
+
rect: f,
|
|
1086
1093
|
scale: n,
|
|
1087
1094
|
direction: "in",
|
|
1088
1095
|
override: s
|
|
1089
|
-
}), u =
|
|
1096
|
+
}), u = j(
|
|
1090
1097
|
i,
|
|
1091
|
-
|
|
1092
|
-
|
|
1098
|
+
p.snapshots,
|
|
1099
|
+
p.totalDuration,
|
|
1093
1100
|
(b) => ({
|
|
1094
1101
|
transform: `translateY(${b.translateY}px) scale(${b.scale})`
|
|
1095
1102
|
}),
|
|
1096
1103
|
() => {
|
|
1097
1104
|
i.style.clipPath = "", i.style.transformOrigin = "", i.style.transform = "";
|
|
1098
1105
|
}
|
|
1099
|
-
), y =
|
|
1106
|
+
), y = j(
|
|
1100
1107
|
l,
|
|
1101
|
-
|
|
1102
|
-
|
|
1108
|
+
d.snapshots,
|
|
1109
|
+
d.totalDuration,
|
|
1103
1110
|
(b) => ({
|
|
1104
1111
|
transform: `translateY(${b.translateY}px) scale(${b.scale})`
|
|
1105
1112
|
}),
|
|
1106
1113
|
() => {
|
|
1107
1114
|
l.style.clipPath = "", l.style.transformOrigin = "", l.style.transform = "";
|
|
1108
1115
|
}
|
|
1109
|
-
), h =
|
|
1110
|
-
const
|
|
1111
|
-
return
|
|
1112
|
-
r[
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
(
|
|
1116
|
-
const
|
|
1117
|
-
return { transform: `translate(${
|
|
1116
|
+
), h = Je.map(([b, P], $) => {
|
|
1117
|
+
const C = ["topLeft", "topRight", "bottomLeft", "bottomRight"][$];
|
|
1118
|
+
return j(
|
|
1119
|
+
r[C],
|
|
1120
|
+
p.snapshots,
|
|
1121
|
+
p.totalDuration,
|
|
1122
|
+
(I) => {
|
|
1123
|
+
const _ = (c.width - c.width * I.scale) / 2 * 0.7 * b, k = (c.height - c.height * I.scale) / 2 * 0.7 * P;
|
|
1124
|
+
return { transform: `translate(${_}px, ${k}px)` };
|
|
1118
1125
|
}
|
|
1119
1126
|
);
|
|
1120
|
-
}),
|
|
1127
|
+
}), w = new E([u, y, ...h], {
|
|
1121
1128
|
mode: "parallel"
|
|
1122
|
-
}),
|
|
1123
|
-
return
|
|
1124
|
-
|
|
1129
|
+
}), S = w.onComplete;
|
|
1130
|
+
return w.onComplete = () => {
|
|
1131
|
+
S == null || S();
|
|
1125
1132
|
const b = a.positionedParent;
|
|
1126
1133
|
for (const P of [
|
|
1127
1134
|
"topLeft",
|
|
@@ -1129,21 +1136,21 @@ const je = (e = {}) => {
|
|
|
1129
1136
|
"bottomLeft",
|
|
1130
1137
|
"bottomRight"
|
|
1131
1138
|
]) {
|
|
1132
|
-
const
|
|
1133
|
-
|
|
1139
|
+
const $ = r[P];
|
|
1140
|
+
$.parentElement === b && b.removeChild($);
|
|
1134
1141
|
}
|
|
1135
|
-
},
|
|
1142
|
+
}, w;
|
|
1136
1143
|
}
|
|
1137
1144
|
};
|
|
1138
1145
|
};
|
|
1139
|
-
function
|
|
1146
|
+
function As(e) {
|
|
1140
1147
|
const { paths: t, options: n } = e, s = (n == null ? void 0 : n.borderColor) !== void 0 ? { border: { color: n.borderColor } } : void 0;
|
|
1141
|
-
return
|
|
1148
|
+
return v(t, () => tn(s));
|
|
1142
1149
|
}
|
|
1143
|
-
const
|
|
1144
|
-
class
|
|
1150
|
+
const Et = "data-hero-enter-key", Pt = "data-hero-exit-key", K = "data-hero-key";
|
|
1151
|
+
class en {
|
|
1145
1152
|
constructor() {
|
|
1146
|
-
|
|
1153
|
+
x(this, "previousFromOpacity", "");
|
|
1147
1154
|
}
|
|
1148
1155
|
prepare(t) {
|
|
1149
1156
|
t.from.then((n) => {
|
|
@@ -1156,38 +1163,38 @@ class Ge {
|
|
|
1156
1163
|
}), [];
|
|
1157
1164
|
}
|
|
1158
1165
|
}
|
|
1159
|
-
const
|
|
1160
|
-
class
|
|
1166
|
+
const nn = () => new en();
|
|
1167
|
+
class sn {
|
|
1161
1168
|
contribute(t) {
|
|
1162
1169
|
const { from: n, to: s, physics: o, onComplete: i } = t, l = n.style.opacity, a = s.style.opacity, r = n.style.willChange, c = s.style.willChange;
|
|
1163
1170
|
return s.style.opacity = "0", n.style.willChange = "opacity", s.style.willChange = "opacity", i(() => {
|
|
1164
1171
|
n.style.opacity = l, s.style.opacity = a, n.style.willChange = r, s.style.willChange = c;
|
|
1165
1172
|
}), [
|
|
1166
|
-
new
|
|
1173
|
+
new m({
|
|
1167
1174
|
element: n,
|
|
1168
|
-
integrator:
|
|
1169
|
-
style: (
|
|
1175
|
+
integrator: g.from(o),
|
|
1176
|
+
style: (f, p) => ({ opacity: p })
|
|
1170
1177
|
}),
|
|
1171
|
-
new
|
|
1178
|
+
new m({
|
|
1172
1179
|
element: s,
|
|
1173
|
-
integrator:
|
|
1174
|
-
style: (
|
|
1180
|
+
integrator: g.from(o),
|
|
1181
|
+
style: (f) => ({ opacity: f })
|
|
1175
1182
|
})
|
|
1176
1183
|
];
|
|
1177
1184
|
}
|
|
1178
1185
|
}
|
|
1179
|
-
const
|
|
1180
|
-
static:
|
|
1181
|
-
fade:
|
|
1182
|
-
},
|
|
1186
|
+
const on = () => new sn(), rn = {
|
|
1187
|
+
static: nn,
|
|
1188
|
+
fade: on
|
|
1189
|
+
}, an = {
|
|
1183
1190
|
spring: { stiffness: 320, damping: 30 }
|
|
1184
|
-
},
|
|
1191
|
+
}, ln = () => an, cn = {
|
|
1185
1192
|
spring: { stiffness: 300, damping: 30, doubleSpring: 1 }
|
|
1186
|
-
},
|
|
1187
|
-
default:
|
|
1188
|
-
smooth:
|
|
1189
|
-
},
|
|
1190
|
-
function
|
|
1193
|
+
}, pn = () => cn, fn = {
|
|
1194
|
+
default: ln,
|
|
1195
|
+
smooth: pn
|
|
1196
|
+
}, dn = 700, yn = "data-hero-aspect-ratio", hn = "data-hero-radius";
|
|
1197
|
+
function un(e) {
|
|
1191
1198
|
if (!e) return null;
|
|
1192
1199
|
if (e.includes("/")) {
|
|
1193
1200
|
const [n, s] = e.split("/"), o = parseFloat(n ?? ""), i = parseFloat(s ?? "");
|
|
@@ -1196,19 +1203,19 @@ function dn(e) {
|
|
|
1196
1203
|
const t = parseFloat(e);
|
|
1197
1204
|
return Number.isFinite(t) && t > 0 ? t : null;
|
|
1198
1205
|
}
|
|
1199
|
-
function
|
|
1200
|
-
const t = e.getAttribute(
|
|
1206
|
+
function _t(e) {
|
|
1207
|
+
const t = e.getAttribute(hn);
|
|
1201
1208
|
if (!t) return 0;
|
|
1202
1209
|
const n = parseFloat(t);
|
|
1203
1210
|
return Number.isFinite(n) && n > 0 ? n : 0;
|
|
1204
1211
|
}
|
|
1205
|
-
function
|
|
1212
|
+
function R(e) {
|
|
1206
1213
|
return e.left + e.width / 2;
|
|
1207
1214
|
}
|
|
1208
|
-
function
|
|
1215
|
+
function U(e) {
|
|
1209
1216
|
return e.top + e.height / 2;
|
|
1210
1217
|
}
|
|
1211
|
-
function
|
|
1218
|
+
function mn(e, t) {
|
|
1212
1219
|
return {
|
|
1213
1220
|
top: Math.max(0, t.top - e.top),
|
|
1214
1221
|
right: Math.max(0, e.left + e.width - (t.left + t.width)),
|
|
@@ -1216,7 +1223,7 @@ function fn(e, t) {
|
|
|
1216
1223
|
left: Math.max(0, t.left - e.left)
|
|
1217
1224
|
};
|
|
1218
1225
|
}
|
|
1219
|
-
function
|
|
1226
|
+
function gn(e, t, n) {
|
|
1220
1227
|
const s = e.width / e.height;
|
|
1221
1228
|
let o, i;
|
|
1222
1229
|
return n === "contain" ? s > t ? (i = e.height, o = i * t) : (o = e.width, i = o / t) : s > t ? (o = e.width, i = o / t) : (i = e.height, o = i * t), {
|
|
@@ -1226,8 +1233,8 @@ function yn(e, t, n) {
|
|
|
1226
1233
|
height: i
|
|
1227
1234
|
};
|
|
1228
1235
|
}
|
|
1229
|
-
function
|
|
1230
|
-
const s =
|
|
1236
|
+
function It(e, t, n) {
|
|
1237
|
+
const s = N(e, t), o = un(t.getAttribute(yn));
|
|
1231
1238
|
if (o === null)
|
|
1232
1239
|
return {
|
|
1233
1240
|
bbox: s,
|
|
@@ -1235,16 +1242,16 @@ function xt(e, t, n) {
|
|
|
1235
1242
|
window: s,
|
|
1236
1243
|
clipInset: { top: 0, right: 0, bottom: 0, left: 0 }
|
|
1237
1244
|
};
|
|
1238
|
-
const i =
|
|
1245
|
+
const i = gn(s, o, n), l = n === "cover" ? s : i;
|
|
1239
1246
|
return {
|
|
1240
1247
|
bbox: s,
|
|
1241
1248
|
content: i,
|
|
1242
1249
|
window: l,
|
|
1243
|
-
clipInset:
|
|
1250
|
+
clipInset: mn(i, l)
|
|
1244
1251
|
};
|
|
1245
1252
|
}
|
|
1246
|
-
function
|
|
1247
|
-
const o = n.width / s, i = n.height / s, l = e.width / 2 + (
|
|
1253
|
+
function wn(e, t, n, s) {
|
|
1254
|
+
const o = n.width / s, i = n.height / s, l = e.width / 2 + (R(n) - R(t)) / s - o / 2, a = e.height / 2 + (U(n) - U(t)) / s - i / 2;
|
|
1248
1255
|
return {
|
|
1249
1256
|
top: Math.max(0, a),
|
|
1250
1257
|
right: Math.max(0, e.width - l - o),
|
|
@@ -1252,7 +1259,7 @@ function hn(e, t, n, s) {
|
|
|
1252
1259
|
left: Math.max(0, l)
|
|
1253
1260
|
};
|
|
1254
1261
|
}
|
|
1255
|
-
function
|
|
1262
|
+
function H(e, t) {
|
|
1256
1263
|
const n = /* @__PURE__ */ new Map(), s = e.querySelectorAll(`[${t}]`);
|
|
1257
1264
|
for (const o of Array.from(s)) {
|
|
1258
1265
|
const i = o.getAttribute(t);
|
|
@@ -1260,8 +1267,8 @@ function k(e, t) {
|
|
|
1260
1267
|
}
|
|
1261
1268
|
return n;
|
|
1262
1269
|
}
|
|
1263
|
-
function
|
|
1264
|
-
const n = [], s =
|
|
1270
|
+
function Sn(e, t) {
|
|
1271
|
+
const n = [], s = H(t, Et), o = H(e, Pt);
|
|
1265
1272
|
for (const [a, r] of s) {
|
|
1266
1273
|
const c = o.get(a);
|
|
1267
1274
|
c && n.push({
|
|
@@ -1272,7 +1279,7 @@ function un(e, t) {
|
|
|
1272
1279
|
toFit: "contain"
|
|
1273
1280
|
});
|
|
1274
1281
|
}
|
|
1275
|
-
const i =
|
|
1282
|
+
const i = H(e, Et), l = H(t, Pt);
|
|
1276
1283
|
for (const [a, r] of i) {
|
|
1277
1284
|
const c = l.get(a);
|
|
1278
1285
|
c && n.push({
|
|
@@ -1285,15 +1292,15 @@ function un(e, t) {
|
|
|
1285
1292
|
}
|
|
1286
1293
|
return n;
|
|
1287
1294
|
}
|
|
1288
|
-
function
|
|
1295
|
+
function bn(e, t) {
|
|
1289
1296
|
const n = [], s = Array.from(
|
|
1290
|
-
t.querySelectorAll(`[${
|
|
1297
|
+
t.querySelectorAll(`[${K}]`)
|
|
1291
1298
|
);
|
|
1292
1299
|
for (const o of s) {
|
|
1293
|
-
const i = o.getAttribute(
|
|
1300
|
+
const i = o.getAttribute(K);
|
|
1294
1301
|
if (!i) continue;
|
|
1295
1302
|
const l = e.querySelector(
|
|
1296
|
-
`[${
|
|
1303
|
+
`[${K}="${i}"]`
|
|
1297
1304
|
);
|
|
1298
1305
|
l && n.push({
|
|
1299
1306
|
key: i,
|
|
@@ -1305,20 +1312,20 @@ function mn(e, t) {
|
|
|
1305
1312
|
}
|
|
1306
1313
|
return n;
|
|
1307
1314
|
}
|
|
1308
|
-
function
|
|
1309
|
-
const n =
|
|
1310
|
-
return n.length > 0 ? n :
|
|
1315
|
+
function $n(e, t) {
|
|
1316
|
+
const n = Sn(e, t);
|
|
1317
|
+
return n.length > 0 ? n : bn(e, t);
|
|
1311
1318
|
}
|
|
1312
|
-
function
|
|
1313
|
-
const { fromEl: s, toEl: o } = t, i =
|
|
1314
|
-
if (a.width === 0 || a.height === 0 || r.width === 0 || r.height === 0 || c.width === 0 || c.height === 0 ||
|
|
1319
|
+
function Cn(e, t, n) {
|
|
1320
|
+
const { fromEl: s, toEl: o } = t, i = It(e, s, t.fromFit), l = It(e, o, t.toFit), a = i.content, r = i.window, c = l.content, f = l.window, p = l.clipInset, d = _t(s), u = _t(o);
|
|
1321
|
+
if (a.width === 0 || a.height === 0 || r.width === 0 || r.height === 0 || c.width === 0 || c.height === 0 || f.width === 0 || f.height === 0)
|
|
1315
1322
|
return null;
|
|
1316
1323
|
const y = Math.max(
|
|
1317
1324
|
a.width / c.width,
|
|
1318
1325
|
a.height / c.height
|
|
1319
|
-
), h =
|
|
1320
|
-
if (Math.abs(
|
|
1321
|
-
const
|
|
1326
|
+
), h = R(a), w = U(a), S = R(c), b = U(c), P = h - S, $ = w - b;
|
|
1327
|
+
if (Math.abs($) > n) return null;
|
|
1328
|
+
const C = wn(
|
|
1322
1329
|
c,
|
|
1323
1330
|
a,
|
|
1324
1331
|
r,
|
|
@@ -1326,53 +1333,53 @@ function wn(e, t, n) {
|
|
|
1326
1333
|
);
|
|
1327
1334
|
return {
|
|
1328
1335
|
toContent: c,
|
|
1329
|
-
hasRadius:
|
|
1330
|
-
styleFor: (
|
|
1331
|
-
const
|
|
1336
|
+
hasRadius: d > 0 || u > 0,
|
|
1337
|
+
styleFor: (I, _) => {
|
|
1338
|
+
const k = _ * P, L = _ * $, F = I + _ * y, Rt = (d * _ + u * I) / F, Ut = C.top * _ + p.top * I, Nt = C.right * _ + p.right * I, Vt = C.bottom * _ + p.bottom * I, Xt = C.left * _ + p.left * I;
|
|
1332
1339
|
return {
|
|
1333
|
-
transform: `translate(${
|
|
1334
|
-
clipPath: `inset(${
|
|
1340
|
+
transform: `translate(${k}px, ${L}px) scale(${F})`,
|
|
1341
|
+
clipPath: `inset(${Ut}px ${Nt}px ${Vt}px ${Xt}px round ${Rt}px)`
|
|
1335
1342
|
};
|
|
1336
1343
|
}
|
|
1337
1344
|
};
|
|
1338
1345
|
}
|
|
1339
|
-
function
|
|
1346
|
+
function xn(e, t) {
|
|
1340
1347
|
e.style.transform = t.transform, e.style.clipPath = t.clipPath;
|
|
1341
1348
|
}
|
|
1342
|
-
class
|
|
1349
|
+
class En {
|
|
1343
1350
|
contribute(t) {
|
|
1344
1351
|
const { resolved: n, physics: s, positionedParent: o, maxDistance: i, onComplete: l } = t, a = [];
|
|
1345
1352
|
for (const r of n.pairs) {
|
|
1346
|
-
const { fromEl: c, toEl:
|
|
1347
|
-
if (!
|
|
1348
|
-
const
|
|
1349
|
-
|
|
1350
|
-
const u = c.style.opacity, y =
|
|
1351
|
-
c.style.opacity = "0",
|
|
1352
|
-
c.style.opacity = u,
|
|
1353
|
+
const { fromEl: c, toEl: f } = r, p = Cn(o, r, i);
|
|
1354
|
+
if (!p) continue;
|
|
1355
|
+
const d = f.cloneNode(!0);
|
|
1356
|
+
d.style.position = "absolute", d.style.left = `${p.toContent.left}px`, d.style.top = `${p.toContent.top}px`, d.style.width = `${p.toContent.width}px`, d.style.height = `${p.toContent.height}px`, d.style.margin = "0", d.style.transformOrigin = "center center", d.style.zIndex = "1000", d.style.willChange = "transform, clip-path", d.style.pointerEvents = "none", d.style.maxWidth = "none", d.style.maxHeight = "none", p.hasRadius && (d.style.borderRadius = "0"), xn(d, p.styleFor(0, 1)), o.appendChild(d);
|
|
1357
|
+
const u = c.style.opacity, y = f.style.opacity;
|
|
1358
|
+
c.style.opacity = "0", f.style.opacity = "0", l(() => {
|
|
1359
|
+
c.style.opacity = u, f.style.opacity = y, d.parentElement && d.parentElement.removeChild(d);
|
|
1353
1360
|
}), a.push(
|
|
1354
|
-
new
|
|
1355
|
-
element:
|
|
1356
|
-
integrator:
|
|
1357
|
-
style:
|
|
1361
|
+
new m({
|
|
1362
|
+
element: d,
|
|
1363
|
+
integrator: g.from(s),
|
|
1364
|
+
style: p.styleFor
|
|
1358
1365
|
})
|
|
1359
1366
|
);
|
|
1360
1367
|
}
|
|
1361
1368
|
return a;
|
|
1362
1369
|
}
|
|
1363
1370
|
}
|
|
1364
|
-
function
|
|
1365
|
-
return [new
|
|
1371
|
+
function Pn(e) {
|
|
1372
|
+
return [new En(), rn[e.type]()];
|
|
1366
1373
|
}
|
|
1367
|
-
const
|
|
1368
|
-
const t =
|
|
1374
|
+
const _n = (e) => {
|
|
1375
|
+
const t = Pn(e), n = fn[e.variant](), s = dn;
|
|
1369
1376
|
return {
|
|
1370
1377
|
prepare: (o) => {
|
|
1371
1378
|
var a;
|
|
1372
1379
|
const i = Promise.all([
|
|
1373
1380
|
o.from,
|
|
1374
1381
|
o.to
|
|
1375
|
-
]).then(([r, c]) => ({ pairs:
|
|
1382
|
+
]).then(([r, c]) => ({ pairs: $n(r, c) })), l = {
|
|
1376
1383
|
from: o.from,
|
|
1377
1384
|
to: o.to,
|
|
1378
1385
|
resolved: i
|
|
@@ -1383,10 +1390,10 @@ const Cn = (e) => {
|
|
|
1383
1390
|
},
|
|
1384
1391
|
animation: ({ from: o, to: i, context: l, resolved: a }) => {
|
|
1385
1392
|
if (a.pairs.length === 0)
|
|
1386
|
-
return new
|
|
1393
|
+
return new E([], { mode: "parallel" });
|
|
1387
1394
|
const r = [], c = (y) => {
|
|
1388
1395
|
r.push(y);
|
|
1389
|
-
},
|
|
1396
|
+
}, f = {
|
|
1390
1397
|
from: o,
|
|
1391
1398
|
to: i,
|
|
1392
1399
|
resolved: a,
|
|
@@ -1394,13 +1401,13 @@ const Cn = (e) => {
|
|
|
1394
1401
|
positionedParent: l.positionedParent,
|
|
1395
1402
|
maxDistance: s,
|
|
1396
1403
|
onComplete: c
|
|
1397
|
-
},
|
|
1404
|
+
}, p = [];
|
|
1398
1405
|
for (const y of t)
|
|
1399
|
-
y.contribute &&
|
|
1400
|
-
if (
|
|
1401
|
-
return new
|
|
1402
|
-
const
|
|
1403
|
-
return
|
|
1406
|
+
y.contribute && p.push(...y.contribute(f));
|
|
1407
|
+
if (p.length === 0)
|
|
1408
|
+
return new E([], { mode: "parallel" });
|
|
1409
|
+
const d = new E(p, { mode: "parallel" }), u = d.onComplete;
|
|
1410
|
+
return d.onComplete = () => {
|
|
1404
1411
|
u == null || u();
|
|
1405
1412
|
for (const y of r)
|
|
1406
1413
|
try {
|
|
@@ -1408,37 +1415,37 @@ const Cn = (e) => {
|
|
|
1408
1415
|
} catch (h) {
|
|
1409
1416
|
console.error("[hero] cleanup error", h);
|
|
1410
1417
|
}
|
|
1411
|
-
},
|
|
1418
|
+
}, d;
|
|
1412
1419
|
}
|
|
1413
1420
|
};
|
|
1414
1421
|
};
|
|
1415
|
-
function
|
|
1422
|
+
function ks(e) {
|
|
1416
1423
|
const { paths: t } = e, n = e.type ?? "static", s = e.variant ?? "default";
|
|
1417
|
-
return
|
|
1424
|
+
return v(
|
|
1418
1425
|
t,
|
|
1419
|
-
() =>
|
|
1426
|
+
() => _n({ type: n, variant: s })
|
|
1420
1427
|
);
|
|
1421
1428
|
}
|
|
1422
|
-
const
|
|
1429
|
+
const In = {
|
|
1423
1430
|
spring: { stiffness: 50, damping: 30 }
|
|
1424
|
-
},
|
|
1431
|
+
}, vn = {
|
|
1425
1432
|
spring: { stiffness: 80, damping: 25 }
|
|
1426
|
-
},
|
|
1427
|
-
const t = e.physics ??
|
|
1433
|
+
}, Dn = (e = {}) => {
|
|
1434
|
+
const t = e.physics ?? In, n = e.initialRotation ?? 45, s = e.initialScale ?? 0.01, o = e.rotationTriggerPoint ?? 0.8;
|
|
1428
1435
|
return {
|
|
1429
1436
|
prepare: ({ from: i, to: l, context: a }) => (i.then((r) => {
|
|
1430
1437
|
r.style.opacity = "1";
|
|
1431
1438
|
}), l.then((r) => {
|
|
1432
|
-
const c = T(a, "to"),
|
|
1433
|
-
r.style.setProperty("--max-border-radius", `${
|
|
1434
|
-
const
|
|
1435
|
-
r.style.transformOrigin = `${
|
|
1439
|
+
const c = T(a, "to"), f = Math.min(c.width, c.height) * 0.4;
|
|
1440
|
+
r.style.setProperty("--max-border-radius", `${f}px`), r.style.setProperty("--border-radius-scale", "1"), r.style.willChange = "transform", r.style.backfaceVisibility = "hidden";
|
|
1441
|
+
const p = c.left + c.width / 2, d = c.top + c.height / 2;
|
|
1442
|
+
r.style.transformOrigin = `${p}px ${d}px`, r.style.position = "fixed", r.style.top = `${c.top}px`, r.style.left = `${c.left}px`, r.style.width = `${c.width}px`, r.style.height = `${c.height}px`, r.style.zIndex = "1000", r.style.overflow = "hidden", r.style.transform = `rotate(${n}deg) scale(${s}) translateZ(0)`, r.style.borderRadius = "calc(var(--max-border-radius) * var(--border-radius-scale))", r.style.opacity = "1";
|
|
1436
1443
|
}), {}),
|
|
1437
1444
|
animation: ({ from: i, to: l }) => {
|
|
1438
|
-
const a = new
|
|
1445
|
+
const a = new m({
|
|
1439
1446
|
element: i,
|
|
1440
|
-
integrator:
|
|
1441
|
-
style: (c,
|
|
1447
|
+
integrator: g.from(vn),
|
|
1448
|
+
style: (c, f) => ({ opacity: f }),
|
|
1442
1449
|
// The outgoing node is reused (re-hidden, shown again on the next
|
|
1443
1450
|
// navigation), so reset every inline style we wrote to it — mirroring
|
|
1444
1451
|
// the "to" cleanup below. prepare sets opacity and the out style fades
|
|
@@ -1446,37 +1453,37 @@ const xn = {
|
|
|
1446
1453
|
onComplete: () => {
|
|
1447
1454
|
i.style.opacity = "";
|
|
1448
1455
|
}
|
|
1449
|
-
}), r = new
|
|
1456
|
+
}), r = new m({
|
|
1450
1457
|
element: l,
|
|
1451
|
-
integrator:
|
|
1458
|
+
integrator: g.from(t),
|
|
1452
1459
|
style: (c) => {
|
|
1453
|
-
let
|
|
1460
|
+
let f;
|
|
1454
1461
|
if (c <= 0.05)
|
|
1455
|
-
|
|
1462
|
+
f = s;
|
|
1456
1463
|
else if (c <= o) {
|
|
1457
1464
|
const y = (c - 0.05) / (o - 0.05), h = Math.pow(y, 9);
|
|
1458
|
-
|
|
1465
|
+
f = s + (0.8 - s) * h;
|
|
1459
1466
|
} else {
|
|
1460
1467
|
const y = (c - o) / (1 - o);
|
|
1461
|
-
|
|
1468
|
+
f = 0.8 + 0.2 * (1 - Math.pow(1 - y, 3));
|
|
1462
1469
|
}
|
|
1463
|
-
const
|
|
1464
|
-
let
|
|
1465
|
-
if (c <=
|
|
1466
|
-
|
|
1470
|
+
const p = 0.7;
|
|
1471
|
+
let d;
|
|
1472
|
+
if (c <= p)
|
|
1473
|
+
d = n;
|
|
1467
1474
|
else {
|
|
1468
|
-
const y = (c -
|
|
1469
|
-
|
|
1475
|
+
const y = (c - p) / (1 - p), h = 1 - Math.pow(1 - y, 2);
|
|
1476
|
+
d = n * (1 - h);
|
|
1470
1477
|
}
|
|
1471
1478
|
let u;
|
|
1472
|
-
if (c <=
|
|
1479
|
+
if (c <= p)
|
|
1473
1480
|
u = 1;
|
|
1474
1481
|
else {
|
|
1475
|
-
const y = (c -
|
|
1482
|
+
const y = (c - p) / (1 - p);
|
|
1476
1483
|
u = 1 - Math.pow(y, 0.5);
|
|
1477
1484
|
}
|
|
1478
1485
|
return {
|
|
1479
|
-
transform: `rotate(${
|
|
1486
|
+
transform: `rotate(${d.toFixed(2)}deg) scale(${f.toFixed(4)}) translateZ(0)`,
|
|
1480
1487
|
"--border-radius-scale": u.toFixed(4)
|
|
1481
1488
|
};
|
|
1482
1489
|
},
|
|
@@ -1484,18 +1491,18 @@ const xn = {
|
|
|
1484
1491
|
l.style.willChange = "", l.style.backfaceVisibility = "", l.style.removeProperty("--max-border-radius"), l.style.removeProperty("--border-radius-scale"), l.style.transform = "", l.style.transformOrigin = "", l.style.position = "", l.style.zIndex = "", l.style.top = "", l.style.left = "", l.style.width = "", l.style.height = "", l.style.overflow = "", l.style.borderRadius = "";
|
|
1485
1492
|
}
|
|
1486
1493
|
});
|
|
1487
|
-
return new
|
|
1494
|
+
return new E([a, r], { mode: "parallel" });
|
|
1488
1495
|
}
|
|
1489
1496
|
};
|
|
1490
1497
|
};
|
|
1491
|
-
function
|
|
1498
|
+
function Ys(e) {
|
|
1492
1499
|
const { paths: t } = e;
|
|
1493
|
-
return
|
|
1500
|
+
return v(t, () => Dn());
|
|
1494
1501
|
}
|
|
1495
|
-
const
|
|
1502
|
+
const On = {
|
|
1496
1503
|
spring: { stiffness: 100, damping: 30 }
|
|
1497
|
-
},
|
|
1498
|
-
const t = e.physics ??
|
|
1504
|
+
}, Tn = (e = {}) => {
|
|
1505
|
+
const t = e.physics ?? On;
|
|
1499
1506
|
return {
|
|
1500
1507
|
prepare: ({ from: n, to: s }) => (n.then((o) => {
|
|
1501
1508
|
o.style.transformOrigin = "center center", o.style.willChange = "transform, opacity";
|
|
@@ -1503,9 +1510,9 @@ const _n = {
|
|
|
1503
1510
|
o.style.opacity = "0", o.style.transform = "rotate(-180deg)", o.style.transformOrigin = "center center", o.style.willChange = "transform, opacity";
|
|
1504
1511
|
}), {}),
|
|
1505
1512
|
animation: ({ from: n, to: s }) => {
|
|
1506
|
-
const o = new
|
|
1513
|
+
const o = new m({
|
|
1507
1514
|
element: n,
|
|
1508
|
-
integrator:
|
|
1515
|
+
integrator: g.from(t),
|
|
1509
1516
|
style: (l) => ({
|
|
1510
1517
|
transform: `rotate(${l * 180}deg)`,
|
|
1511
1518
|
opacity: l < 0.5 ? 1 : 0
|
|
@@ -1516,9 +1523,9 @@ const _n = {
|
|
|
1516
1523
|
onComplete: () => {
|
|
1517
1524
|
n.style.willChange = "auto", n.style.transform = "", n.style.transformOrigin = "", n.style.opacity = "";
|
|
1518
1525
|
}
|
|
1519
|
-
}), i = new
|
|
1526
|
+
}), i = new m({
|
|
1520
1527
|
element: s,
|
|
1521
|
-
integrator:
|
|
1528
|
+
integrator: g.from(t),
|
|
1522
1529
|
// u runs 1→0, so -u*180 unwinds -180→0.
|
|
1523
1530
|
style: (l, a) => ({
|
|
1524
1531
|
transform: `rotate(${-a * 180}deg)`,
|
|
@@ -1528,15 +1535,15 @@ const _n = {
|
|
|
1528
1535
|
s.style.willChange = "auto", s.style.transform = "", s.style.transformOrigin = "", s.style.opacity = "";
|
|
1529
1536
|
}
|
|
1530
1537
|
});
|
|
1531
|
-
return new
|
|
1538
|
+
return new E([o, i], { mode: "parallel" });
|
|
1532
1539
|
}
|
|
1533
1540
|
};
|
|
1534
1541
|
};
|
|
1535
|
-
function
|
|
1542
|
+
function Ls(e) {
|
|
1536
1543
|
const { paths: t } = e;
|
|
1537
|
-
return
|
|
1544
|
+
return v(t, () => Tn());
|
|
1538
1545
|
}
|
|
1539
|
-
const
|
|
1546
|
+
const Fn = {
|
|
1540
1547
|
spring: {
|
|
1541
1548
|
stiffness: 20,
|
|
1542
1549
|
damping: 8,
|
|
@@ -1544,8 +1551,8 @@ const Dn = {
|
|
|
1544
1551
|
restDelta: 1e-3,
|
|
1545
1552
|
restSpeed: 1e-3
|
|
1546
1553
|
}
|
|
1547
|
-
},
|
|
1548
|
-
const t = e.direction ?? "up", n = e.physics ??
|
|
1554
|
+
}, vt = (e = {}) => {
|
|
1555
|
+
const t = e.direction ?? "up", n = e.physics ?? Fn, s = t === "up", o = s ? D : O, i = s ? O : D;
|
|
1549
1556
|
return {
|
|
1550
1557
|
prepare: ({ from: l, to: a }) => (l.then((r) => {
|
|
1551
1558
|
r.style.zIndex = o, r.style.willChange = "transform", r.style.backfaceVisibility = "hidden", r.style.contain = "layout paint", r.style.pointerEvents = "none";
|
|
@@ -1553,10 +1560,10 @@ const Dn = {
|
|
|
1553
1560
|
r.style.willChange = "transform", r.style.backfaceVisibility = "hidden", r.style.contain = "layout paint", r.style.position = "relative", r.style.zIndex = i;
|
|
1554
1561
|
}), {}),
|
|
1555
1562
|
animation: ({ from: l, to: a }) => {
|
|
1556
|
-
const r = l.offsetHeight, c = a.offsetHeight,
|
|
1563
|
+
const r = l.offsetHeight, c = a.offsetHeight, f = window.innerHeight, p = Math.max(Math.min(r, c), f), d = new m({
|
|
1557
1564
|
element: l,
|
|
1558
|
-
integrator:
|
|
1559
|
-
style: (y) => ({ transform: `translate3d(0, ${s ? -
|
|
1565
|
+
integrator: g.from(n),
|
|
1566
|
+
style: (y) => ({ transform: `translate3d(0, ${s ? -p * y : p * y}px, 0)` }),
|
|
1560
1567
|
// The outgoing node is the real, reused element (re-hidden then shown
|
|
1561
1568
|
// again on the next navigation), so mirror the incoming cleanup and
|
|
1562
1569
|
// also reset the out-only props applied in prepare (zIndex,
|
|
@@ -1565,66 +1572,111 @@ const Dn = {
|
|
|
1565
1572
|
onComplete: () => {
|
|
1566
1573
|
l.style.willChange = "auto", l.style.backfaceVisibility = "", l.style.contain = "", l.style.transform = "", l.style.pointerEvents = "", l.style.zIndex = "";
|
|
1567
1574
|
}
|
|
1568
|
-
}), u = new
|
|
1575
|
+
}), u = new m({
|
|
1569
1576
|
element: a,
|
|
1570
|
-
integrator:
|
|
1571
|
-
style: (y, h) => ({ transform: `translate3d(0, ${s ? h *
|
|
1577
|
+
integrator: g.from(n),
|
|
1578
|
+
style: (y, h) => ({ transform: `translate3d(0, ${s ? h * p : h * -p}px, 0)` }),
|
|
1572
1579
|
onComplete: () => {
|
|
1573
1580
|
a.style.willChange = "auto", a.style.backfaceVisibility = "", a.style.contain = "", a.style.transform = "", a.style.position === "relative" && (a.style.position = ""), a.style.zIndex === i && (a.style.zIndex = "");
|
|
1574
1581
|
}
|
|
1575
1582
|
});
|
|
1576
|
-
for (const y of [
|
|
1583
|
+
for (const y of [d, u]) {
|
|
1577
1584
|
const h = y.onComplete;
|
|
1578
1585
|
y.onComplete = () => {
|
|
1579
1586
|
h == null || h(), y.releaseFill();
|
|
1580
1587
|
};
|
|
1581
1588
|
}
|
|
1582
|
-
return new
|
|
1589
|
+
return new E([d, u], { mode: "parallel" });
|
|
1583
1590
|
}
|
|
1584
1591
|
};
|
|
1585
1592
|
};
|
|
1586
|
-
function
|
|
1593
|
+
function Hs(e) {
|
|
1587
1594
|
const { paths: t, type: n = "directional" } = e;
|
|
1588
|
-
return n === "non-directional" ?
|
|
1595
|
+
return n === "non-directional" ? v(
|
|
1589
1596
|
t,
|
|
1590
|
-
() =>
|
|
1591
|
-
) :
|
|
1597
|
+
() => vt({ direction: "up" })
|
|
1598
|
+
) : ot(
|
|
1592
1599
|
t,
|
|
1593
1600
|
{ forward: "up", backward: "down" },
|
|
1594
|
-
(s) =>
|
|
1601
|
+
(s) => vt({ direction: s })
|
|
1595
1602
|
);
|
|
1596
1603
|
}
|
|
1597
|
-
const
|
|
1604
|
+
const An = {
|
|
1598
1605
|
spring: { stiffness: 200, damping: 24 }
|
|
1599
|
-
},
|
|
1606
|
+
}, kn = {
|
|
1600
1607
|
inertia: { acceleration: 25, resistance: 1.2 }
|
|
1601
|
-
},
|
|
1602
|
-
function
|
|
1608
|
+
}, G = 0.2;
|
|
1609
|
+
function Yn() {
|
|
1603
1610
|
return {
|
|
1604
|
-
enterPhysics:
|
|
1605
|
-
exitPhysics:
|
|
1611
|
+
enterPhysics: An,
|
|
1612
|
+
exitPhysics: kn,
|
|
1606
1613
|
background: {
|
|
1607
1614
|
willChange: "transform, opacity",
|
|
1608
1615
|
enterStyle: (e, t) => ({
|
|
1609
|
-
transform: `scale(${1 -
|
|
1616
|
+
transform: `scale(${1 - G * e})`,
|
|
1610
1617
|
opacity: t
|
|
1611
1618
|
}),
|
|
1612
1619
|
exitStyle: (e) => ({
|
|
1613
|
-
transform: `scale(${1 -
|
|
1620
|
+
transform: `scale(${1 - G + G * e})`,
|
|
1614
1621
|
opacity: e
|
|
1615
1622
|
})
|
|
1616
1623
|
}
|
|
1617
1624
|
};
|
|
1618
1625
|
}
|
|
1619
|
-
const
|
|
1626
|
+
const Ln = {
|
|
1627
|
+
spring: { stiffness: 200, damping: 24 }
|
|
1628
|
+
}, Hn = {
|
|
1629
|
+
inertia: { acceleration: 25, resistance: 1.2 }
|
|
1630
|
+
}, J = 0.08, Mn = 16, Q = 0.6, zn = (e) => `blur(${Math.max(0, e).toFixed(2)}px)`;
|
|
1631
|
+
function Rn() {
|
|
1632
|
+
return {
|
|
1633
|
+
enterPhysics: Ln,
|
|
1634
|
+
exitPhysics: Hn,
|
|
1635
|
+
background: {
|
|
1636
|
+
willChange: "transform, opacity",
|
|
1637
|
+
// enter: t 0 → 1 as the sheet rises. At rest (t = 0) the page is
|
|
1638
|
+
// untouched; at peak it is shrunk and dimmed.
|
|
1639
|
+
enterStyle: (e) => ({
|
|
1640
|
+
transform: `scale(${1 - J * e})`,
|
|
1641
|
+
opacity: 1 - (1 - Q) * e
|
|
1642
|
+
}),
|
|
1643
|
+
// exit: t 0 → 1 as the sheet falls away and the page returns to rest —
|
|
1644
|
+
// the inverse ramp of enter.
|
|
1645
|
+
exitStyle: (e) => ({
|
|
1646
|
+
transform: `scale(${1 - J + J * e})`,
|
|
1647
|
+
opacity: Q + (1 - Q) * e
|
|
1648
|
+
})
|
|
1649
|
+
},
|
|
1650
|
+
overlay: {
|
|
1651
|
+
willChange: "backdrop-filter",
|
|
1652
|
+
// `top` + `height` are set per-transition in transition.ts (they depend on
|
|
1653
|
+
// the live scroll position), so they are intentionally omitted here.
|
|
1654
|
+
initialStyle: {
|
|
1655
|
+
position: "absolute",
|
|
1656
|
+
left: "0",
|
|
1657
|
+
width: "100%",
|
|
1658
|
+
pointerEvents: "none",
|
|
1659
|
+
backdropFilter: "blur(0px)",
|
|
1660
|
+
WebkitBackdropFilter: "blur(0px)"
|
|
1661
|
+
},
|
|
1662
|
+
// enter: 0 → MAX as the sheet rises (progress 0 → 1).
|
|
1663
|
+
// exit: MAX → 0 as it falls (progress 0 → 1, so the visual is inverted).
|
|
1664
|
+
style: (e, t) => {
|
|
1665
|
+
const n = e === "enter" ? t : 1 - t, s = zn(Mn * n);
|
|
1666
|
+
return { backdropFilter: s, WebkitBackdropFilter: s };
|
|
1667
|
+
}
|
|
1668
|
+
}
|
|
1669
|
+
};
|
|
1670
|
+
}
|
|
1671
|
+
const Un = {
|
|
1620
1672
|
spring: { stiffness: 300, damping: 30 }
|
|
1621
|
-
},
|
|
1673
|
+
}, Nn = {
|
|
1622
1674
|
inertia: { acceleration: 30, resistance: 1 }
|
|
1623
1675
|
};
|
|
1624
|
-
function
|
|
1676
|
+
function Vn() {
|
|
1625
1677
|
return {
|
|
1626
|
-
enterPhysics:
|
|
1627
|
-
exitPhysics:
|
|
1678
|
+
enterPhysics: Un,
|
|
1679
|
+
exitPhysics: Nn,
|
|
1628
1680
|
background: {
|
|
1629
1681
|
willChange: "",
|
|
1630
1682
|
enterStyle: () => ({}),
|
|
@@ -1632,86 +1684,105 @@ function kn() {
|
|
|
1632
1684
|
}
|
|
1633
1685
|
};
|
|
1634
1686
|
}
|
|
1635
|
-
const
|
|
1636
|
-
static:
|
|
1637
|
-
"background-scale":
|
|
1638
|
-
|
|
1639
|
-
|
|
1687
|
+
const Xn = {
|
|
1688
|
+
static: Vn(),
|
|
1689
|
+
"background-scale": Yn(),
|
|
1690
|
+
blur: Rn()
|
|
1691
|
+
}, Bn = "static", Zn = "transform", Wn = (e = {}) => {
|
|
1692
|
+
const t = e.direction ?? "enter", n = Xn[e.type ?? Bn], s = t === "enter" ? n.enterPhysics : n.exitPhysics, o = n.background, i = n.overlay, l = o.willChange !== "";
|
|
1640
1693
|
return {
|
|
1641
|
-
prepare: ({ from:
|
|
1642
|
-
const
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
}),
|
|
1646
|
-
|
|
1647
|
-
})
|
|
1694
|
+
prepare: ({ from: a, to: r, context: c, createElement: f }) => {
|
|
1695
|
+
const p = t === "enter" ? r : a, d = t === "enter" ? a : r;
|
|
1696
|
+
p.then((y) => {
|
|
1697
|
+
y.style.willChange = Zn, y.style.backfaceVisibility = "hidden", y.style.contain = "layout paint", y.style.zIndex = O, t === "enter" ? y.style.position = "relative" : y.style.pointerEvents = "none";
|
|
1698
|
+
}), d.then((y) => {
|
|
1699
|
+
l && (y.style.willChange = o.willChange, y.style.backfaceVisibility = "hidden", y.style.contain = "layout paint"), y.style.zIndex = D, t === "enter" ? y.style.pointerEvents = "none" : y.style.position = "relative";
|
|
1700
|
+
});
|
|
1701
|
+
let u;
|
|
1702
|
+
return i && (u = f("sheet-overlay"), Object.assign(u.style, i.initialStyle), u.style.willChange = i.willChange, c.positionedParent.appendChild(u)), { overlay: u };
|
|
1648
1703
|
},
|
|
1649
|
-
animation: ({ from:
|
|
1650
|
-
const
|
|
1651
|
-
|
|
1704
|
+
animation: ({ from: a, to: r, context: c, overlay: f }) => {
|
|
1705
|
+
const p = t === "enter" ? r : a, d = t === "enter" ? a : r, u = T(
|
|
1706
|
+
c,
|
|
1652
1707
|
t === "enter" ? "to" : "from"
|
|
1653
|
-
),
|
|
1654
|
-
|
|
1655
|
-
},
|
|
1656
|
-
const $ = t === "enter" ? O :
|
|
1657
|
-
|
|
1658
|
-
},
|
|
1659
|
-
const
|
|
1708
|
+
), y = () => {
|
|
1709
|
+
a.style.pointerEvents = "", a.style.zIndex = "";
|
|
1710
|
+
}, h = () => {
|
|
1711
|
+
const $ = t === "enter" ? O : D;
|
|
1712
|
+
r.style.position === "relative" && (r.style.position = ""), r.style.zIndex === $ && (r.style.zIndex = "");
|
|
1713
|
+
}, w = ($) => {
|
|
1714
|
+
const C = $.onComplete;
|
|
1660
1715
|
$.onComplete = () => {
|
|
1661
|
-
|
|
1716
|
+
C == null || C(), $.releaseFill();
|
|
1662
1717
|
};
|
|
1663
1718
|
};
|
|
1664
|
-
|
|
1665
|
-
const
|
|
1666
|
-
transform: `translate3d(0, ${
|
|
1719
|
+
p.style.clipPath = `inset(${u.top}px 0 calc(100% - ${u.top + u.height}px) 0)`;
|
|
1720
|
+
const S = t === "enter" ? ($, C) => ({
|
|
1721
|
+
transform: `translate3d(0, ${C * u.height}px, 0)`
|
|
1667
1722
|
}) : ($) => ({
|
|
1668
|
-
transform: `translate3d(0, ${$ *
|
|
1669
|
-
}),
|
|
1670
|
-
element: c,
|
|
1671
|
-
integrator: w.from(s),
|
|
1672
|
-
style: h,
|
|
1673
|
-
onComplete: () => {
|
|
1674
|
-
c.style.willChange = "auto", c.style.backfaceVisibility = "", c.style.contain = "", c.style.clipPath = "", c.style.transform = "", f(), u();
|
|
1675
|
-
}
|
|
1676
|
-
});
|
|
1677
|
-
if (y(S), !i)
|
|
1678
|
-
return new x([S], { mode: "parallel" });
|
|
1679
|
-
const m = T(
|
|
1680
|
-
r,
|
|
1681
|
-
t === "enter" ? "from" : "to"
|
|
1682
|
-
), b = m.left + m.width / 2, P = m.top + m.height / 2;
|
|
1683
|
-
p.style.clipPath = `inset(${m.top}px 0 calc(100% - ${m.top + m.height}px) 0)`, p.style.transformOrigin = `${b}px ${P}px`;
|
|
1684
|
-
const _ = t === "enter" ? ($, E) => o.enterStyle($, E) : ($) => o.exitStyle($), I = new g({
|
|
1723
|
+
transform: `translate3d(0, ${$ * u.height}px, 0)`
|
|
1724
|
+
}), b = new m({
|
|
1685
1725
|
element: p,
|
|
1686
|
-
integrator:
|
|
1687
|
-
style:
|
|
1688
|
-
// The background is the reused outgoing (`from`) node on `enter` and the
|
|
1689
|
-
// surviving incoming (`to`) node on `exit` — in both cases its inline
|
|
1690
|
-
// styles must be cleared on settle so the reused node is not left
|
|
1691
|
-
// scaled/faded/clipped the next time it is shown. releaseFill below
|
|
1692
|
-
// drops the WAAPI fill so these resets actually take effect.
|
|
1726
|
+
integrator: g.from(s),
|
|
1727
|
+
style: S,
|
|
1693
1728
|
onComplete: () => {
|
|
1694
|
-
p.style.willChange = "auto", p.style.backfaceVisibility = "", p.style.contain = "", p.style.clipPath = "", p.style.
|
|
1729
|
+
p.style.willChange = "auto", p.style.backfaceVisibility = "", p.style.contain = "", p.style.clipPath = "", p.style.transform = "", y(), h();
|
|
1695
1730
|
}
|
|
1696
1731
|
});
|
|
1697
|
-
|
|
1732
|
+
w(b);
|
|
1733
|
+
const P = [b];
|
|
1734
|
+
if (l) {
|
|
1735
|
+
const $ = d.scrollHeight;
|
|
1736
|
+
$ > 0 && (d.style.height = `${$}px`);
|
|
1737
|
+
const C = T(
|
|
1738
|
+
c,
|
|
1739
|
+
t === "enter" ? "from" : "to"
|
|
1740
|
+
), I = C.left + C.width / 2, _ = C.top + C.height / 2;
|
|
1741
|
+
d.style.clipPath = `inset(${C.top}px 0 calc(100% - ${C.top + C.height}px) 0)`, d.style.transformOrigin = `${I}px ${_}px`;
|
|
1742
|
+
const k = t === "enter" ? (F, it) => o.enterStyle(F, it) : (F) => o.exitStyle(F), L = new m({
|
|
1743
|
+
element: d,
|
|
1744
|
+
integrator: g.from(s),
|
|
1745
|
+
style: k,
|
|
1746
|
+
// The background is the reused outgoing (`from`) node on `enter` and
|
|
1747
|
+
// the surviving incoming (`to`) node on `exit` — in both cases its
|
|
1748
|
+
// inline styles must be cleared on settle so the reused node is not
|
|
1749
|
+
// left scaled/faded/clipped the next time it is shown. releaseFill
|
|
1750
|
+
// below drops the WAAPI fill so these resets actually take effect.
|
|
1751
|
+
onComplete: () => {
|
|
1752
|
+
d.style.willChange = "auto", d.style.backfaceVisibility = "", d.style.contain = "", d.style.clipPath = "", d.style.transformOrigin = "", d.style.transform = "", d.style.opacity = "", d.style.height = "";
|
|
1753
|
+
}
|
|
1754
|
+
});
|
|
1755
|
+
w(L), P.push(L);
|
|
1756
|
+
}
|
|
1757
|
+
if (f && i) {
|
|
1758
|
+
f.style.zIndex = Ht;
|
|
1759
|
+
const $ = Yt(c, "to");
|
|
1760
|
+
f.style.top = `${$.top}px`, f.style.height = `${$.height}px`, P.push(
|
|
1761
|
+
new m({
|
|
1762
|
+
element: f,
|
|
1763
|
+
integrator: g.from(s),
|
|
1764
|
+
style: (C) => i.style(t, C)
|
|
1765
|
+
})
|
|
1766
|
+
);
|
|
1767
|
+
}
|
|
1768
|
+
return new E(P, { mode: "parallel" });
|
|
1698
1769
|
}
|
|
1699
1770
|
};
|
|
1700
1771
|
};
|
|
1701
|
-
function
|
|
1702
|
-
return e === "scale" || e === "background-scale" ? "background-scale" : "static";
|
|
1772
|
+
function qn(e) {
|
|
1773
|
+
return e === "scale" || e === "background-scale" ? "background-scale" : e === "blur" ? "blur" : "static";
|
|
1703
1774
|
}
|
|
1704
|
-
function
|
|
1705
|
-
const { enter: t, exit: n } = e, s = e.type, o =
|
|
1706
|
-
return
|
|
1775
|
+
function Ms(e) {
|
|
1776
|
+
const { enter: t, exit: n } = e, s = e.type, o = qn(s);
|
|
1777
|
+
return kt(
|
|
1707
1778
|
{ enter: t, exit: n },
|
|
1708
|
-
(i) =>
|
|
1779
|
+
(i) => Wn({ direction: i, type: o })
|
|
1709
1780
|
);
|
|
1710
1781
|
}
|
|
1711
|
-
const
|
|
1782
|
+
const jn = {
|
|
1712
1783
|
spring: { stiffness: 170, damping: 22, doubleSpring: 0.8 }
|
|
1713
|
-
},
|
|
1714
|
-
const t = e.direction ?? "left", n = e.physics ??
|
|
1784
|
+
}, Kn = (e = {}) => {
|
|
1785
|
+
const t = e.direction ?? "left", n = e.physics ?? jn, s = t === "left";
|
|
1715
1786
|
return {
|
|
1716
1787
|
prepare: ({ from: o, to: i }) => (o.then((l) => {
|
|
1717
1788
|
l.style.willChange = "transform", l.style.backfaceVisibility = "hidden", l.style.contain = "layout paint", l.style.pointerEvents = "none";
|
|
@@ -1720,9 +1791,9 @@ const Rn = {
|
|
|
1720
1791
|
l.style.transform = `translate3d(${a}%, 0, 0)`, l.style.willChange = "transform", l.style.backfaceVisibility = "hidden", l.style.contain = "layout paint";
|
|
1721
1792
|
}), {}),
|
|
1722
1793
|
animation: ({ from: o, to: i }) => {
|
|
1723
|
-
const l = new
|
|
1794
|
+
const l = new m({
|
|
1724
1795
|
element: o,
|
|
1725
|
-
integrator:
|
|
1796
|
+
integrator: g.from(n),
|
|
1726
1797
|
style: (r) => ({ transform: `translate3d(${s ? -100 * r : 100 * r}%, 0, 0)` }),
|
|
1727
1798
|
// The outgoing node is the real Activity page and gets reused on the
|
|
1728
1799
|
// next navigation, so reset every inline style we wrote to it (mirror
|
|
@@ -1730,44 +1801,44 @@ const Rn = {
|
|
|
1730
1801
|
onComplete: () => {
|
|
1731
1802
|
o.style.willChange = "auto", o.style.backfaceVisibility = "", o.style.contain = "", o.style.transform = "", o.style.pointerEvents = "";
|
|
1732
1803
|
}
|
|
1733
|
-
}), a = new
|
|
1804
|
+
}), a = new m({
|
|
1734
1805
|
element: i,
|
|
1735
|
-
integrator:
|
|
1806
|
+
integrator: g.from(n),
|
|
1736
1807
|
style: (r, c) => ({ transform: `translate3d(${s ? c * 100 : c * -100}%, 0, 0)` }),
|
|
1737
1808
|
onComplete: () => {
|
|
1738
1809
|
i.style.willChange = "auto", i.style.backfaceVisibility = "", i.style.contain = "", i.style.transform = "";
|
|
1739
1810
|
}
|
|
1740
1811
|
});
|
|
1741
|
-
return new
|
|
1812
|
+
return new E([l, a], { mode: "parallel" });
|
|
1742
1813
|
}
|
|
1743
1814
|
};
|
|
1744
1815
|
};
|
|
1745
|
-
function
|
|
1816
|
+
function zs(e) {
|
|
1746
1817
|
const { paths: t } = e;
|
|
1747
|
-
return
|
|
1818
|
+
return ot(
|
|
1748
1819
|
t,
|
|
1749
1820
|
{ forward: "left", backward: "right" },
|
|
1750
|
-
(n) =>
|
|
1821
|
+
(n) => Kn({ direction: n })
|
|
1751
1822
|
);
|
|
1752
1823
|
}
|
|
1753
|
-
const
|
|
1824
|
+
const Gn = {
|
|
1754
1825
|
spring: { stiffness: 17, damping: 6 }
|
|
1755
|
-
},
|
|
1756
|
-
const t = e.physics ??
|
|
1826
|
+
}, tt = 20, M = 800, Jn = (e = {}) => {
|
|
1827
|
+
const t = e.physics ?? Gn;
|
|
1757
1828
|
return {
|
|
1758
1829
|
prepare: ({ from: n, to: s }) => (n.then((o) => {
|
|
1759
|
-
o.style.willChange = "transform", o.style.backfaceVisibility = "hidden", o.style.contain = "layout paint", o.style.pointerEvents = "none", o.style.transform = `perspective(${
|
|
1830
|
+
o.style.willChange = "transform", o.style.backfaceVisibility = "hidden", o.style.contain = "layout paint", o.style.pointerEvents = "none", o.style.transform = `perspective(${M}px) rotateY(0deg) translate3d(0%, 0, 0)`;
|
|
1760
1831
|
}), s.then((o) => {
|
|
1761
|
-
o.style.willChange = "transform", o.style.backfaceVisibility = "hidden", o.style.contain = "layout paint", o.style.transform = `perspective(${
|
|
1832
|
+
o.style.willChange = "transform", o.style.backfaceVisibility = "hidden", o.style.contain = "layout paint", o.style.transform = `perspective(${M}px) rotateY(${tt}deg) translate3d(-100%, 0, 0)`;
|
|
1762
1833
|
}), {}),
|
|
1763
1834
|
animation: ({ from: n, to: s }) => {
|
|
1764
|
-
const o = new
|
|
1835
|
+
const o = new m({
|
|
1765
1836
|
element: n,
|
|
1766
|
-
integrator:
|
|
1837
|
+
integrator: g.from(t),
|
|
1767
1838
|
style: (l) => {
|
|
1768
|
-
const a = -l *
|
|
1839
|
+
const a = -l * tt, r = l * 100;
|
|
1769
1840
|
return {
|
|
1770
|
-
transform: `perspective(${
|
|
1841
|
+
transform: `perspective(${M}px) rotateY(${a}deg) translate3d(${r}%, 0, 0)`
|
|
1771
1842
|
};
|
|
1772
1843
|
},
|
|
1773
1844
|
// The outgoing node is reused (Activity/cacheComponents re-hide it),
|
|
@@ -1776,28 +1847,28 @@ const Vn = {
|
|
|
1776
1847
|
onComplete: () => {
|
|
1777
1848
|
n.style.transform = "", n.style.willChange = "auto", n.style.backfaceVisibility = "", n.style.contain = "", n.style.pointerEvents = "";
|
|
1778
1849
|
}
|
|
1779
|
-
}), i = new
|
|
1850
|
+
}), i = new m({
|
|
1780
1851
|
element: s,
|
|
1781
|
-
integrator:
|
|
1852
|
+
integrator: g.from(t),
|
|
1782
1853
|
style: (l, a) => {
|
|
1783
|
-
const r = a *
|
|
1854
|
+
const r = a * tt, c = -a * 100;
|
|
1784
1855
|
return {
|
|
1785
|
-
transform: `perspective(${
|
|
1856
|
+
transform: `perspective(${M}px) rotateY(${r}deg) translate3d(${c}%, 0, 0)`
|
|
1786
1857
|
};
|
|
1787
1858
|
},
|
|
1788
1859
|
onComplete: () => {
|
|
1789
1860
|
s.style.transform = "", s.style.willChange = "auto", s.style.backfaceVisibility = "", s.style.contain = "";
|
|
1790
1861
|
}
|
|
1791
1862
|
});
|
|
1792
|
-
return new
|
|
1863
|
+
return new E([o, i], { mode: "sequence" });
|
|
1793
1864
|
}
|
|
1794
1865
|
};
|
|
1795
1866
|
};
|
|
1796
|
-
function
|
|
1867
|
+
function Rs(e) {
|
|
1797
1868
|
const { paths: t } = e;
|
|
1798
|
-
return
|
|
1869
|
+
return v(t, () => Jn());
|
|
1799
1870
|
}
|
|
1800
|
-
function
|
|
1871
|
+
function Qn({
|
|
1801
1872
|
enterRect: e,
|
|
1802
1873
|
exitRect: t,
|
|
1803
1874
|
pageRect: n,
|
|
@@ -1805,19 +1876,19 @@ function Xn({
|
|
|
1805
1876
|
enterRadius: o,
|
|
1806
1877
|
exitRadius: i
|
|
1807
1878
|
}) {
|
|
1808
|
-
const l = t.left - e.left + (t.width - e.width) / 2 - s.x, a = t.top - e.top + (t.height - e.height) / 2 - s.y, r = t.width / e.width, c = t.height / e.height,
|
|
1879
|
+
const l = t.left - e.left + (t.width - e.width) / 2 - s.x, a = t.top - e.top + (t.height - e.height) / 2 - s.y, r = t.width / e.width, c = t.height / e.height, f = e.top / n.height * 100, p = (n.width - (e.left + e.width)) / n.width * 100, d = (n.height - (e.top + e.height)) / n.height * 100, u = e.left / n.width * 100;
|
|
1809
1880
|
return {
|
|
1810
1881
|
transformOrigin: `${e.left + e.width / 2}px ${e.top + e.height / 2}px`,
|
|
1811
1882
|
animate: (y) => {
|
|
1812
|
-
const h = 1 - y,
|
|
1883
|
+
const h = 1 - y, w = 1 + (r - 1) * h, S = 1 + (c - 1) * h, P = (i * h + o * (1 - h)) / ((w + S) / 2);
|
|
1813
1884
|
return {
|
|
1814
|
-
clipPath: `inset(${
|
|
1815
|
-
transform: `translate(${l * h}px, ${a * h}px) scale(${
|
|
1885
|
+
clipPath: `inset(${f * h}% ${p * h}% ${d * h}% ${u * h}% round ${P}px)`,
|
|
1886
|
+
transform: `translate(${l * h}px, ${a * h}px) scale(${w}, ${S})`
|
|
1816
1887
|
};
|
|
1817
1888
|
}
|
|
1818
1889
|
};
|
|
1819
1890
|
}
|
|
1820
|
-
function
|
|
1891
|
+
function ts({
|
|
1821
1892
|
enterRect: e,
|
|
1822
1893
|
exitRect: t,
|
|
1823
1894
|
pageRect: n,
|
|
@@ -1825,52 +1896,55 @@ function Bn({
|
|
|
1825
1896
|
enterRadius: o,
|
|
1826
1897
|
exitRadius: i
|
|
1827
1898
|
}) {
|
|
1828
|
-
const l = t.left - e.left + (t.width - e.width) / 2 + s.x, a = t.top - e.top + (t.height - e.height) / 2 + s.y, r = t.width / e.width, c = t.height / e.height,
|
|
1899
|
+
const l = t.left - e.left + (t.width - e.width) / 2 + s.x, a = t.top - e.top + (t.height - e.height) / 2 + s.y, r = t.width / e.width, c = t.height / e.height, f = e.top / n.height * 100, p = (n.width - (e.left + e.width)) / n.width * 100, d = (n.height - (e.top + e.height)) / n.height * 100, u = e.left / n.width * 100;
|
|
1829
1900
|
return {
|
|
1830
1901
|
transformOrigin: `${e.left + e.width / 2}px ${e.top + e.height / 2}px`,
|
|
1831
1902
|
animate: (y) => {
|
|
1832
|
-
const h = 1 - y,
|
|
1903
|
+
const h = 1 - y, w = 1 + (r - 1) * h, S = 1 + (c - 1) * h, P = (o * (1 - h) + i * h) / ((w + S) / 2);
|
|
1833
1904
|
return {
|
|
1834
|
-
clipPath: `inset(${
|
|
1835
|
-
transform: `translate(${l * h - s.x}px, ${a * h}px) scale(${
|
|
1905
|
+
clipPath: `inset(${f * h}% ${p * h}% ${d * h}% ${u * h}% round ${P}px)`,
|
|
1906
|
+
transform: `translate(${l * h - s.x}px, ${a * h}px) scale(${w}, ${S})`
|
|
1836
1907
|
};
|
|
1837
1908
|
}
|
|
1838
1909
|
};
|
|
1839
1910
|
}
|
|
1840
|
-
const
|
|
1911
|
+
const es = {
|
|
1841
1912
|
spring: {
|
|
1842
1913
|
stiffness: 430,
|
|
1843
1914
|
damping: 33,
|
|
1844
1915
|
doubleSpring: 1
|
|
1845
1916
|
}
|
|
1846
|
-
},
|
|
1847
|
-
function
|
|
1917
|
+
}, Mt = 0.12, ns = 18;
|
|
1918
|
+
function ss() {
|
|
1848
1919
|
return {
|
|
1849
1920
|
transformOrigin: "50% 50%",
|
|
1850
1921
|
animate: (e) => {
|
|
1851
1922
|
const t = 1 - e;
|
|
1852
1923
|
return {
|
|
1853
|
-
transform: `scale(${1 -
|
|
1924
|
+
transform: `scale(${1 - Mt * t})`
|
|
1854
1925
|
};
|
|
1855
1926
|
}
|
|
1856
1927
|
};
|
|
1857
1928
|
}
|
|
1858
|
-
function
|
|
1929
|
+
function os() {
|
|
1859
1930
|
return {
|
|
1860
1931
|
transformOrigin: "50% 50%",
|
|
1861
1932
|
animate: (e) => {
|
|
1862
1933
|
const t = 1 - e;
|
|
1863
1934
|
return {
|
|
1864
|
-
transform: `scale(${1 -
|
|
1935
|
+
transform: `scale(${1 - Mt * t})`
|
|
1865
1936
|
};
|
|
1866
1937
|
}
|
|
1867
1938
|
};
|
|
1868
1939
|
}
|
|
1869
|
-
const
|
|
1940
|
+
const et = {
|
|
1870
1941
|
willChange: "backdrop-filter",
|
|
1942
|
+
// `top` + `height` are set per-transition in OverlayStrategy.contribute (they
|
|
1943
|
+
// track the live scroll position), so they are intentionally omitted here.
|
|
1871
1944
|
initialStyle: {
|
|
1872
1945
|
position: "absolute",
|
|
1873
|
-
|
|
1946
|
+
left: "0",
|
|
1947
|
+
width: "100%",
|
|
1874
1948
|
pointerEvents: "none",
|
|
1875
1949
|
// z-index is applied in OverlayStrategy.contribute. The overlay always
|
|
1876
1950
|
// sits at Z_OVERLAY, between the background page (Z_BACKGROUND) and the
|
|
@@ -1879,52 +1953,55 @@ const j = {
|
|
|
1879
1953
|
WebkitBackdropFilter: "blur(0px)"
|
|
1880
1954
|
},
|
|
1881
1955
|
style: (e, t) => {
|
|
1882
|
-
const n = e === "enter" ? t : 1 - t, s = `blur(${
|
|
1956
|
+
const n = e === "enter" ? t : 1 - t, s = `blur(${ns * n}px)`;
|
|
1883
1957
|
return {
|
|
1884
1958
|
backdropFilter: s,
|
|
1885
1959
|
WebkitBackdropFilter: s
|
|
1886
1960
|
};
|
|
1887
1961
|
}
|
|
1888
1962
|
};
|
|
1889
|
-
class
|
|
1963
|
+
class is {
|
|
1890
1964
|
constructor() {
|
|
1891
|
-
|
|
1965
|
+
x(this, "physics", es);
|
|
1892
1966
|
}
|
|
1893
1967
|
contribute(t) {
|
|
1894
|
-
const { from: n, to: s, resolved: o, physics: i } = t, l = o.mode === "enter", a = l ? n : s, r = l ?
|
|
1968
|
+
const { from: n, to: s, resolved: o, physics: i } = t, l = o.mode === "enter", a = l ? n : s, r = l ? ss() : os();
|
|
1895
1969
|
return r && (a.style.transformOrigin = r.transformOrigin), [
|
|
1896
|
-
new
|
|
1970
|
+
new m({
|
|
1897
1971
|
element: a,
|
|
1898
|
-
integrator:
|
|
1899
|
-
style: l ? (c,
|
|
1972
|
+
integrator: g.from(i),
|
|
1973
|
+
style: l ? (c, f) => r.animate(f) : (c) => r.animate(c)
|
|
1900
1974
|
})
|
|
1901
1975
|
];
|
|
1902
1976
|
}
|
|
1903
1977
|
}
|
|
1904
|
-
class
|
|
1978
|
+
class rs {
|
|
1905
1979
|
prepare(t) {
|
|
1906
1980
|
const n = t.createElement("zoom-overlay");
|
|
1907
|
-
return Object.assign(n.style,
|
|
1981
|
+
return Object.assign(n.style, et.initialStyle), n.style.willChange = et.willChange, t.context.positionedParent.appendChild(n), { overlay: n };
|
|
1908
1982
|
}
|
|
1909
1983
|
contribute(t) {
|
|
1910
1984
|
const n = t.extras.overlay;
|
|
1911
|
-
|
|
1912
|
-
|
|
1985
|
+
if (!n) return [];
|
|
1986
|
+
n.style.zIndex = Ht;
|
|
1987
|
+
const s = Yt(t.context, "to");
|
|
1988
|
+
return n.style.top = `${s.top}px`, n.style.height = `${s.height}px`, [
|
|
1989
|
+
new m({
|
|
1913
1990
|
element: n,
|
|
1914
|
-
integrator:
|
|
1915
|
-
style: (
|
|
1991
|
+
integrator: g.from(t.physics),
|
|
1992
|
+
style: (o) => et.style(t.resolved.mode, o)
|
|
1916
1993
|
})
|
|
1917
|
-
]
|
|
1994
|
+
];
|
|
1918
1995
|
}
|
|
1919
1996
|
}
|
|
1920
|
-
const
|
|
1997
|
+
const as = {
|
|
1921
1998
|
spring: {
|
|
1922
1999
|
stiffness: 430,
|
|
1923
2000
|
damping: 33,
|
|
1924
2001
|
doubleSpring: 1
|
|
1925
2002
|
}
|
|
1926
2003
|
};
|
|
1927
|
-
function
|
|
2004
|
+
function ls({
|
|
1928
2005
|
enterRect: e,
|
|
1929
2006
|
exitRect: t,
|
|
1930
2007
|
scrollOffset: n
|
|
@@ -1940,7 +2017,7 @@ function Qn({
|
|
|
1940
2017
|
}
|
|
1941
2018
|
};
|
|
1942
2019
|
}
|
|
1943
|
-
function
|
|
2020
|
+
function cs({
|
|
1944
2021
|
enterRect: e,
|
|
1945
2022
|
exitRect: t,
|
|
1946
2023
|
scrollOffset: n
|
|
@@ -1956,52 +2033,52 @@ function ts({
|
|
|
1956
2033
|
}
|
|
1957
2034
|
};
|
|
1958
2035
|
}
|
|
1959
|
-
class
|
|
2036
|
+
class ps {
|
|
1960
2037
|
constructor() {
|
|
1961
|
-
|
|
2038
|
+
x(this, "physics", as);
|
|
1962
2039
|
}
|
|
1963
2040
|
contribute(t) {
|
|
1964
|
-
const { from: n, to: s, resolved: o, input: i, physics: l } = t, a = o.mode === "enter", r = a ? n : s, c = a ?
|
|
2041
|
+
const { from: n, to: s, resolved: o, input: i, physics: l } = t, a = o.mode === "enter", r = a ? n : s, c = a ? ls(i) : cs(i);
|
|
1965
2042
|
return c && (r.style.transformOrigin = c.transformOrigin), [
|
|
1966
|
-
new
|
|
2043
|
+
new m({
|
|
1967
2044
|
element: r,
|
|
1968
|
-
integrator:
|
|
1969
|
-
style: a ? (
|
|
2045
|
+
integrator: g.from(l),
|
|
2046
|
+
style: a ? (f, p) => c.animate(p) : (f) => c.animate(f)
|
|
1970
2047
|
})
|
|
1971
2048
|
];
|
|
1972
2049
|
}
|
|
1973
2050
|
}
|
|
1974
|
-
const
|
|
2051
|
+
const fs = {
|
|
1975
2052
|
spring: {
|
|
1976
2053
|
stiffness: 530,
|
|
1977
2054
|
damping: 34,
|
|
1978
2055
|
doubleSpring: 1
|
|
1979
2056
|
}
|
|
1980
2057
|
};
|
|
1981
|
-
class
|
|
2058
|
+
class ds {
|
|
1982
2059
|
constructor() {
|
|
1983
|
-
|
|
2060
|
+
x(this, "physics", fs);
|
|
1984
2061
|
}
|
|
1985
2062
|
contribute(t) {
|
|
1986
2063
|
return [];
|
|
1987
2064
|
}
|
|
1988
2065
|
}
|
|
1989
|
-
const
|
|
1990
|
-
expand: () => new
|
|
1991
|
-
static: () => new
|
|
1992
|
-
blur: () => new
|
|
2066
|
+
const ys = {
|
|
2067
|
+
expand: () => new ps(),
|
|
2068
|
+
static: () => new ds(),
|
|
2069
|
+
blur: () => new is()
|
|
1993
2070
|
};
|
|
1994
|
-
function
|
|
1995
|
-
return
|
|
2071
|
+
function hs(e) {
|
|
2072
|
+
return ys[e]();
|
|
1996
2073
|
}
|
|
1997
|
-
const
|
|
1998
|
-
function
|
|
1999
|
-
const t = e.getAttribute(
|
|
2074
|
+
const nt = "data-zoom-enter-key", Dt = "data-zoom-exit-key", us = "data-zoom-radius";
|
|
2075
|
+
function Ot(e) {
|
|
2076
|
+
const t = e.getAttribute(us);
|
|
2000
2077
|
if (!t) return 0;
|
|
2001
2078
|
const n = parseFloat(t);
|
|
2002
2079
|
return Number.isFinite(n) && n > 0 ? n : 0;
|
|
2003
2080
|
}
|
|
2004
|
-
function
|
|
2081
|
+
function ms(e, t) {
|
|
2005
2082
|
const n = [];
|
|
2006
2083
|
let s = t;
|
|
2007
2084
|
for (; s && s !== e; ) {
|
|
@@ -2013,127 +2090,127 @@ function as(e, t) {
|
|
|
2013
2090
|
}
|
|
2014
2091
|
return n;
|
|
2015
2092
|
}
|
|
2016
|
-
function
|
|
2017
|
-
const t = e.querySelectorAll(`[${
|
|
2093
|
+
function Tt(e) {
|
|
2094
|
+
const t = e.querySelectorAll(`[${nt}]`);
|
|
2018
2095
|
return t.length !== 1 ? null : t[0];
|
|
2019
2096
|
}
|
|
2020
|
-
function
|
|
2021
|
-
const n = e.querySelectorAll(`[${
|
|
2097
|
+
function Ft(e, t) {
|
|
2098
|
+
const n = e.querySelectorAll(`[${Dt}]`);
|
|
2022
2099
|
for (const s of n)
|
|
2023
|
-
if (s.getAttribute(
|
|
2100
|
+
if (s.getAttribute(Dt) === t)
|
|
2024
2101
|
return s;
|
|
2025
2102
|
return null;
|
|
2026
2103
|
}
|
|
2027
|
-
function
|
|
2028
|
-
const n =
|
|
2104
|
+
function gs(e, t) {
|
|
2105
|
+
const n = Tt(e), s = Tt(t);
|
|
2029
2106
|
if (!n && s) {
|
|
2030
|
-
const o = s.getAttribute(
|
|
2107
|
+
const o = s.getAttribute(nt);
|
|
2031
2108
|
if (!o) return null;
|
|
2032
|
-
const i =
|
|
2109
|
+
const i = Ft(e, o);
|
|
2033
2110
|
return i ? { mode: "enter", enterEl: s, exitEl: i } : null;
|
|
2034
2111
|
}
|
|
2035
2112
|
if (n && !s) {
|
|
2036
|
-
const o = n.getAttribute(
|
|
2113
|
+
const o = n.getAttribute(nt);
|
|
2037
2114
|
if (!o) return null;
|
|
2038
|
-
const i =
|
|
2115
|
+
const i = Ft(t, o);
|
|
2039
2116
|
return i ? { mode: "exit", enterEl: n, exitEl: i } : null;
|
|
2040
2117
|
}
|
|
2041
2118
|
return null;
|
|
2042
2119
|
}
|
|
2043
|
-
function
|
|
2120
|
+
function ws(e, t, n, s) {
|
|
2044
2121
|
return {
|
|
2045
|
-
enterRect:
|
|
2122
|
+
enterRect: rt(
|
|
2046
2123
|
e.mode === "enter" ? n : t,
|
|
2047
2124
|
e.enterEl
|
|
2048
2125
|
),
|
|
2049
|
-
exitRect:
|
|
2126
|
+
exitRect: rt(
|
|
2050
2127
|
e.mode === "enter" ? t : n,
|
|
2051
2128
|
e.exitEl
|
|
2052
2129
|
),
|
|
2053
2130
|
pageRect: e.mode === "enter" ? n.getBoundingClientRect() : t.getBoundingClientRect(),
|
|
2054
2131
|
scrollOffset: s,
|
|
2055
|
-
enterRadius:
|
|
2056
|
-
exitRadius:
|
|
2132
|
+
enterRadius: Ot(e.enterEl),
|
|
2133
|
+
exitRadius: Ot(e.exitEl)
|
|
2057
2134
|
};
|
|
2058
2135
|
}
|
|
2059
|
-
class
|
|
2136
|
+
class Ss {
|
|
2060
2137
|
prepare(t) {
|
|
2061
2138
|
t.from.then((n) => {
|
|
2062
2139
|
n.style.willChange = "transform, clip-path, opacity", n.style.backfaceVisibility = "hidden", n.style.contain = "layout paint";
|
|
2063
2140
|
});
|
|
2064
2141
|
}
|
|
2065
2142
|
contribute(t) {
|
|
2066
|
-
const { from: n, to: s, resolved: o, input: i, physics: l, onComplete: a } = t, r = o.mode === "enter", c = r ?
|
|
2067
|
-
c && (
|
|
2068
|
-
const
|
|
2069
|
-
n.style.zIndex =
|
|
2070
|
-
const h = s.style.zIndex,
|
|
2143
|
+
const { from: n, to: s, resolved: o, input: i, physics: l, onComplete: a } = t, r = o.mode === "enter", c = r ? Qn(i) : ts(i), f = r ? s : n, p = r ? "t" : "u";
|
|
2144
|
+
c && (f.style.transformOrigin = c.transformOrigin);
|
|
2145
|
+
const d = r ? D : O, u = r ? O : D, y = n.style.zIndex;
|
|
2146
|
+
n.style.zIndex = d;
|
|
2147
|
+
const h = s.style.zIndex, w = s.style.position;
|
|
2071
2148
|
return s.style.zIndex = u, s.style.position = "relative", a(() => {
|
|
2072
|
-
|
|
2149
|
+
f.style.willChange = "auto", f.style.backfaceVisibility = "", f.style.transformOrigin = "", f.style.contain = "", n.style.zIndex = y, s.style.zIndex === u && (s.style.zIndex = h), s.style.position === "relative" && (s.style.position = w), s.style.transformOrigin = "", n.style.willChange = "auto", n.style.backfaceVisibility = "", n.style.transformOrigin = "", n.style.contain = "", n.style.transform = "", n.style.clipPath = "";
|
|
2073
2150
|
}), [
|
|
2074
|
-
new
|
|
2075
|
-
element:
|
|
2076
|
-
integrator:
|
|
2151
|
+
new m({
|
|
2152
|
+
element: f,
|
|
2153
|
+
integrator: g.from(l),
|
|
2077
2154
|
// Enter: tile expands as `t` (0 → 1). Exit: tile shrinks as `u` —
|
|
2078
2155
|
// the legacy convention from v5's outAnim path. Either way, feed
|
|
2079
2156
|
// the progress that matches the tileConfig's authored direction.
|
|
2080
|
-
style:
|
|
2157
|
+
style: p === "t" ? (S) => c.animate(S) : (S, b) => c.animate(b)
|
|
2081
2158
|
})
|
|
2082
2159
|
];
|
|
2083
2160
|
}
|
|
2084
2161
|
}
|
|
2085
|
-
class
|
|
2162
|
+
class bs {
|
|
2086
2163
|
contribute(t) {
|
|
2087
|
-
const { resolved: n, physics: s, from: o, to: i, onComplete: l } = t, a = n.mode === "enter" ? i : o, r =
|
|
2164
|
+
const { resolved: n, physics: s, from: o, to: i, onComplete: l } = t, a = n.mode === "enter" ? i : o, r = ms(a, n.enterEl);
|
|
2088
2165
|
if (r.length === 0) return [];
|
|
2089
|
-
const c = r.map((
|
|
2166
|
+
const c = r.map((f) => f.style.opacity);
|
|
2090
2167
|
if (n.mode === "enter")
|
|
2091
|
-
for (const
|
|
2168
|
+
for (const f of r) f.style.opacity = "0";
|
|
2092
2169
|
return l(() => {
|
|
2093
|
-
for (let
|
|
2094
|
-
const
|
|
2095
|
-
|
|
2170
|
+
for (let f = 0; f < r.length; f++) {
|
|
2171
|
+
const p = r[f];
|
|
2172
|
+
p && (p.style.opacity = c[f] ?? "");
|
|
2096
2173
|
}
|
|
2097
2174
|
}), r.map(
|
|
2098
|
-
(
|
|
2099
|
-
element:
|
|
2100
|
-
integrator:
|
|
2101
|
-
style: (
|
|
2102
|
-
opacity: n.mode === "enter" ?
|
|
2175
|
+
(f) => new m({
|
|
2176
|
+
element: f,
|
|
2177
|
+
integrator: g.from(s),
|
|
2178
|
+
style: (p, d) => ({
|
|
2179
|
+
opacity: n.mode === "enter" ? p : d
|
|
2103
2180
|
})
|
|
2104
2181
|
})
|
|
2105
2182
|
);
|
|
2106
2183
|
}
|
|
2107
2184
|
}
|
|
2108
|
-
class
|
|
2185
|
+
class zt {
|
|
2109
2186
|
contribute() {
|
|
2110
2187
|
return [];
|
|
2111
2188
|
}
|
|
2112
2189
|
}
|
|
2113
|
-
const
|
|
2114
|
-
default: () => new
|
|
2115
|
-
fade: () => new
|
|
2190
|
+
const $s = {
|
|
2191
|
+
default: () => new zt(),
|
|
2192
|
+
fade: () => new bs()
|
|
2116
2193
|
};
|
|
2117
|
-
function
|
|
2118
|
-
return
|
|
2194
|
+
function Cs(e) {
|
|
2195
|
+
return $s[e]();
|
|
2119
2196
|
}
|
|
2120
|
-
class
|
|
2197
|
+
class xs extends zt {
|
|
2121
2198
|
}
|
|
2122
|
-
function
|
|
2123
|
-
const t =
|
|
2199
|
+
function Es(e) {
|
|
2200
|
+
const t = hs(e.type);
|
|
2124
2201
|
return { strategies: [
|
|
2125
|
-
new
|
|
2202
|
+
new Ss(),
|
|
2126
2203
|
t,
|
|
2127
|
-
|
|
2128
|
-
new
|
|
2204
|
+
Cs(e.variant),
|
|
2205
|
+
new xs(),
|
|
2129
2206
|
// Overlay is intrinsically tied to backdrop-filter-driven types. Today
|
|
2130
2207
|
// that's only `blur`; the table-driven factory above owns the mapping
|
|
2131
2208
|
// so this conditional is the single line that knows the relationship.
|
|
2132
|
-
...e.type === "blur" ? [new
|
|
2209
|
+
...e.type === "blur" ? [new rs()] : []
|
|
2133
2210
|
], physics: t.physics };
|
|
2134
2211
|
}
|
|
2135
|
-
const
|
|
2136
|
-
const { strategies: t, physics: n } =
|
|
2212
|
+
const Ps = (e) => {
|
|
2213
|
+
const { strategies: t, physics: n } = Es(e);
|
|
2137
2214
|
return {
|
|
2138
2215
|
prepare: (s) => {
|
|
2139
2216
|
const o = {
|
|
@@ -2153,23 +2230,24 @@ const ms = (e) => {
|
|
|
2153
2230
|
return i;
|
|
2154
2231
|
},
|
|
2155
2232
|
animation: ({ from: s, to: o, context: i, ...l }) => {
|
|
2156
|
-
const a =
|
|
2233
|
+
const a = gs(s, o);
|
|
2157
2234
|
if (!a)
|
|
2158
|
-
return new
|
|
2159
|
-
const r =
|
|
2235
|
+
return new E([], { mode: "parallel" });
|
|
2236
|
+
const r = ws(a, s, o, i.scrollOffset), c = [], p = {
|
|
2160
2237
|
from: s,
|
|
2161
2238
|
to: o,
|
|
2162
2239
|
resolved: a,
|
|
2163
2240
|
input: r,
|
|
2164
2241
|
physics: n,
|
|
2242
|
+
context: i,
|
|
2165
2243
|
extras: l,
|
|
2166
2244
|
onComplete: (y) => {
|
|
2167
2245
|
c.push(y);
|
|
2168
2246
|
}
|
|
2169
|
-
},
|
|
2247
|
+
}, d = [];
|
|
2170
2248
|
for (const y of t)
|
|
2171
|
-
y.contribute &&
|
|
2172
|
-
const u =
|
|
2249
|
+
y.contribute && d.push(...y.contribute(p));
|
|
2250
|
+
const u = d[0];
|
|
2173
2251
|
if (u) {
|
|
2174
2252
|
const y = u.onComplete;
|
|
2175
2253
|
u.onComplete = () => {
|
|
@@ -2177,48 +2255,48 @@ const ms = (e) => {
|
|
|
2177
2255
|
for (const h of c)
|
|
2178
2256
|
try {
|
|
2179
2257
|
h();
|
|
2180
|
-
} catch (
|
|
2181
|
-
console.error("[zoom] cleanup error",
|
|
2258
|
+
} catch (w) {
|
|
2259
|
+
console.error("[zoom] cleanup error", w);
|
|
2182
2260
|
}
|
|
2183
2261
|
};
|
|
2184
2262
|
}
|
|
2185
|
-
for (const y of
|
|
2186
|
-
if (!(y instanceof
|
|
2263
|
+
for (const y of d) {
|
|
2264
|
+
if (!(y instanceof m)) continue;
|
|
2187
2265
|
const h = y.onComplete;
|
|
2188
2266
|
y.onComplete = () => {
|
|
2189
2267
|
h == null || h(), y.releaseFill();
|
|
2190
2268
|
};
|
|
2191
2269
|
}
|
|
2192
|
-
return new
|
|
2270
|
+
return new E(d, { mode: "parallel" });
|
|
2193
2271
|
}
|
|
2194
2272
|
};
|
|
2195
2273
|
};
|
|
2196
|
-
function
|
|
2274
|
+
function _s(e) {
|
|
2197
2275
|
const t = e.type ?? "static", n = e.variant ?? (e.fade ? "fade" : "default");
|
|
2198
2276
|
return { type: t, variant: n };
|
|
2199
2277
|
}
|
|
2200
|
-
function
|
|
2201
|
-
const t =
|
|
2202
|
-
return
|
|
2278
|
+
function Us(e) {
|
|
2279
|
+
const t = _s(e);
|
|
2280
|
+
return v(
|
|
2203
2281
|
e.paths,
|
|
2204
|
-
() =>
|
|
2282
|
+
() => Ps(t)
|
|
2205
2283
|
);
|
|
2206
2284
|
}
|
|
2207
2285
|
export {
|
|
2208
|
-
|
|
2209
|
-
|
|
2210
|
-
|
|
2211
|
-
|
|
2212
|
-
|
|
2213
|
-
|
|
2214
|
-
|
|
2215
|
-
|
|
2216
|
-
|
|
2217
|
-
|
|
2218
|
-
|
|
2219
|
-
|
|
2220
|
-
|
|
2221
|
-
|
|
2222
|
-
|
|
2223
|
-
|
|
2286
|
+
Xs as Animation,
|
|
2287
|
+
E as MultiAnimation,
|
|
2288
|
+
m as WebAnimation,
|
|
2289
|
+
Ds as axis,
|
|
2290
|
+
Os as blind,
|
|
2291
|
+
Ts as drill,
|
|
2292
|
+
Fs as fade,
|
|
2293
|
+
As as film,
|
|
2294
|
+
ks as hero,
|
|
2295
|
+
Ys as jaemin,
|
|
2296
|
+
Ls as rotate,
|
|
2297
|
+
Hs as scroll,
|
|
2298
|
+
Ms as sheet,
|
|
2299
|
+
zs as slide,
|
|
2300
|
+
Rs as strip,
|
|
2301
|
+
Us as zoom
|
|
2224
2302
|
};
|