@wix/interact 2.0.0-rc.2 → 2.0.0-rc.5
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 +129 -31
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/react.js +1 -1
- package/dist/cjs/react.js.map +1 -1
- package/dist/cjs/web.js +1 -1
- package/dist/cjs/web.js.map +1 -1
- package/dist/es/index.js +1 -1
- package/dist/es/react.js +2 -2
- package/dist/es/react.js.map +1 -1
- package/dist/es/web.js +9 -9
- package/dist/es/web.js.map +1 -1
- package/dist/index-CKecAdEz.mjs +7348 -0
- package/dist/index-CKecAdEz.mjs.map +1 -0
- package/dist/index-DlTJdKHL.js +18 -0
- package/dist/index-DlTJdKHL.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/dist/types/core/Interact.d.ts +9 -4
- package/dist/types/core/Interact.d.ts.map +1 -1
- package/dist/types/core/InteractionController.d.ts +7 -2
- package/dist/types/core/InteractionController.d.ts.map +1 -1
- package/dist/types/core/add.d.ts.map +1 -1
- package/dist/types/core/remove.d.ts +1 -1
- package/dist/types/core/remove.d.ts.map +1 -1
- package/dist/types/handlers/animationEnd.d.ts.map +1 -1
- package/dist/types/handlers/click.d.ts.map +1 -1
- package/dist/types/handlers/hover.d.ts.map +1 -1
- package/dist/types/handlers/utilities.d.ts.map +1 -1
- package/dist/types/handlers/viewEnter.d.ts +2 -0
- package/dist/types/handlers/viewEnter.d.ts.map +1 -1
- package/dist/types/react/Interaction.d.ts.map +1 -1
- package/dist/types/types.d.ts +11 -5
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/web/InteractElement.d.ts +3 -1
- package/dist/types/web/InteractElement.d.ts.map +1 -1
- package/docs/README.md +5 -7
- package/package.json +4 -3
- package/rules/Integration.md +87 -39
- package/rules/full-lean.md +63 -7
- package/rules/{viewprogress-rules.md → viewprogress.md} +38 -53
- package/dist/index-C8QxOkui.mjs +0 -7940
- package/dist/index-C8QxOkui.mjs.map +0 -1
- package/dist/index-DEPRHaUt.js +0 -18
- package/dist/index-DEPRHaUt.js.map +0 -1
- /package/rules/{click-rules.md → click.md} +0 -0
- /package/rules/{hover-rules.md → hover.md} +0 -0
- /package/rules/{pointermove-rules.md → pointermove.md} +0 -0
- /package/rules/{scroll-list-rules.md → scroll-list.md} +0 -0
- /package/rules/{viewenter-rules.md → viewenter.md} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DlTJdKHL.js","sources":["../src/core/utilities.ts","../../motion/dist/es/motion.js","../src/utils.ts","../src/handlers/utilities.ts","../../../node_modules/fastdom/fastdom.js","../src/handlers/viewEnter.ts","../../../node_modules/fizban/src/utilities.js","../../../node_modules/fizban/src/view.js","../../../node_modules/fizban/src/controller.js","../../../node_modules/fizban/src/Scroll.js","../src/handlers/viewProgress.ts","../src/handlers/hover.ts","../src/handlers/click.ts","../../../node_modules/kuliso/src/utilities.js","../../../node_modules/kuliso/src/scrollend.js","../../../node_modules/kuliso/src/controller.js","../../../node_modules/kuliso/src/Pointer.js","../src/handlers/pointerMove.ts","../src/handlers/animationEnd.ts","../src/handlers/index.ts","../src/core/Interact.ts","../src/core/add.ts","../src/core/remove.ts","../src/core/InteractionController.ts","../src/dom/api.ts","../src/core/css.ts"],"sourcesContent":["export function _processKeysForInterpolation(key: string) {\n return [...key.matchAll(/\\[([-\\w]+)]/g)].map(\n ([_, _instanceKey]) => _instanceKey,\n );\n}\n\n// TODO: currently only supports simple one-to-one mapping, e.g. item[0] -> item[0], item[1] -> item[1]\nexport function getInterpolatedKey(template: string, key: string) {\n const keys = _processKeysForInterpolation(key);\n let index = 0;\n return keys.length\n ? template.replace(/\\[]/g, () => `[${keys[index++]}]` || '[]')\n : template;\n}\n","class xt {\n animations;\n options;\n ready;\n isCSS;\n constructor(e, n) {\n this.animations = e, this.options = n, this.ready = n?.measured || Promise.resolve(), this.isCSS = e[0] instanceof CSSAnimation;\n }\n getProgress() {\n return this.animations[0]?.effect?.getComputedTiming().progress || 0;\n }\n async play(e) {\n await this.ready;\n for (const n of this.animations)\n n.play();\n await Promise.all(this.animations.map((n) => n.ready)), e && e();\n }\n pause() {\n for (const e of this.animations)\n e.pause();\n }\n async reverse(e) {\n await this.ready;\n for (const n of this.animations)\n n.reverse();\n await Promise.all(this.animations.map((n) => n.ready)), e && e();\n }\n progress(e) {\n for (const n of this.animations) {\n const { delay: a, duration: o, iterations: r } = n.effect.getTiming(), s = (Number.isFinite(o) ? o : 0) * (Number.isFinite(r) ? r : 1);\n n.currentTime = ((a || 0) + s) * e;\n }\n }\n cancel() {\n for (const e of this.animations)\n e.cancel();\n }\n setPlaybackRate(e) {\n for (const n of this.animations)\n n.playbackRate = e;\n }\n async onFinish(e) {\n try {\n await Promise.all(this.animations.map((a) => a.finished));\n const n = this.animations[0];\n if (n && !this.isCSS) {\n const a = n.effect?.target;\n if (a) {\n const o = new Event(\"animationend\");\n a.dispatchEvent(o);\n }\n }\n e();\n } catch (n) {\n console.warn(\n \"animation was interrupted - aborting onFinish callback - \",\n n\n );\n }\n }\n get finished() {\n return Promise.all(this.animations.map((e) => e.finished));\n }\n get playState() {\n return this.animations[0]?.playState;\n }\n}\nconst pa = (t) => t, ga = (t) => 1 - Math.cos(t * Math.PI / 2), ya = (t) => Math.sin(t * Math.PI / 2), $a = (t) => -(Math.cos(Math.PI * t) - 1) / 2, ha = (t) => t ** 2, va = (t) => 1 - (1 - t) ** 2, $e = (t) => t < 0.5 ? 2 * t ** 2 : 1 - (-2 * t + 2) ** 2 / 2, Oa = (t) => t ** 3, _a = (t) => 1 - (1 - t) ** 3, xa = (t) => t < 0.5 ? 4 * t ** 3 : 1 - (-2 * t + 2) ** 3 / 2, ba = (t) => t ** 4, Ea = (t) => 1 - (1 - t) ** 4, Ia = (t) => t < 0.5 ? 8 * t ** 4 : 1 - (-2 * t + 2) ** 4 / 2, wa = (t) => t ** 5, Pa = (t) => 1 - (1 - t) ** 5, Aa = (t) => t < 0.5 ? 16 * t ** 5 : 1 - (-2 * t + 2) ** 5 / 2, Sa = (t) => t === 0 ? 0 : 2 ** (10 * t - 10), Ta = (t) => t === 1 ? 1 : 1 - 2 ** (-10 * t), ka = (t) => t === 0 ? 0 : t === 1 ? 1 : t < 0.5 ? 2 ** (20 * t - 10) / 2 : (2 - 2 ** (-20 * t + 10)) / 2, Ma = (t) => 1 - Math.sqrt(1 - t ** 2), Ra = (t) => Math.sqrt(1 - (t - 1) ** 2), vt = (t) => t < 0.5 ? (1 - Math.sqrt(1 - 4 * t ** 2)) / 2 : (Math.sqrt(-(2 * t - 3) * (2 * t - 1)) + 1) / 2, za = (t) => 2.70158 * t ** 3 - 1.70158 * t ** 2, Fa = (t) => 1 + 2.70158 * (t - 1) ** 3 + 1.70158 * (t - 1) ** 2, Na = (t, e = 1.70158 * 1.525) => t < 0.5 ? (2 * t) ** 2 * ((e + 1) * 2 * t - e) / 2 : ((2 * t - 2) ** 2 * ((e + 1) * (t * 2 - 2) + e) + 2) / 2, Ya = {\n linear: pa,\n sineIn: ga,\n sineOut: ya,\n sineInOut: $a,\n quadIn: ha,\n quadOut: va,\n quadInOut: $e,\n cubicIn: Oa,\n cubicOut: _a,\n cubicInOut: xa,\n quartIn: ba,\n quartOut: Ea,\n quartInOut: Ia,\n quintIn: wa,\n quintOut: Pa,\n quintInOut: Aa,\n expoIn: Sa,\n expoOut: Ta,\n expoInOut: ka,\n circIn: Ma,\n circOut: Ra,\n circInOut: vt,\n backIn: za,\n backOut: Fa,\n backInOut: Na\n}, X = {\n linear: \"linear\",\n ease: \"ease\",\n easeIn: \"ease-in\",\n easeOut: \"ease-out\",\n easeInOut: \"ease-in-out\",\n sineIn: \"cubic-bezier(0.47, 0, 0.745, 0.715)\",\n sineOut: \"cubic-bezier(0.39, 0.575, 0.565, 1)\",\n sineInOut: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\n quadIn: \"cubic-bezier(0.55, 0.085, 0.68, 0.53)\",\n quadOut: \"cubic-bezier(0.25, 0.46, 0.45, 0.94)\",\n quadInOut: \"cubic-bezier(0.455, 0.03, 0.515, 0.955)\",\n cubicIn: \"cubic-bezier(0.55, 0.055, 0.675, 0.19)\",\n cubicOut: \"cubic-bezier(0.215, 0.61, 0.355, 1)\",\n cubicInOut: \"cubic-bezier(0.645, 0.045, 0.355, 1)\",\n quartIn: \"cubic-bezier(0.895, 0.03, 0.685, 0.22)\",\n quartOut: \"cubic-bezier(0.165, 0.84, 0.44, 1)\",\n quartInOut: \"cubic-bezier(0.77, 0, 0.175, 1)\",\n quintIn: \"cubic-bezier(0.755, 0.05, 0.855, 0.06)\",\n quintOut: \"cubic-bezier(0.23, 1, 0.32, 1)\",\n quintInOut: \"cubic-bezier(0.86, 0, 0.07, 1)\",\n expoIn: \"cubic-bezier(0.95, 0.05, 0.795, 0.035)\",\n expoOut: \"cubic-bezier(0.19, 1, 0.22, 1)\",\n expoInOut: \"cubic-bezier(1, 0, 0, 1)\",\n circIn: \"cubic-bezier(0.6, 0.04, 0.98, 0.335)\",\n circOut: \"cubic-bezier(0.075, 0.82, 0.165, 1)\",\n circInOut: \"cubic-bezier(0.785, 0.135, 0.15, 0.86)\",\n backIn: \"cubic-bezier(0.6, -0.28, 0.735, 0.045)\",\n backOut: \"cubic-bezier(0.175, 0.885, 0.32, 1.275)\",\n backInOut: \"cubic-bezier(0.68, -0.55, 0.265, 1.55)\"\n};\nfunction h(t, e, n, a, o) {\n return (o - t) * (a - n) / (e - t) + n;\n}\nfunction Xa([t, e], [n, a]) {\n return Math.sqrt((n - t) ** 2 + (a - e) ** 2);\n}\nfunction Ca(t = [0, 0], e = [0, 0], n = 0) {\n const a = Math.atan2(e[1] - t[1], e[0] - t[0]) * 180 / Math.PI;\n return (360 + n + a) % 360;\n}\nconst I = 1e-6, Da = {\n initial: ({ top: t, bottom: e, left: n, right: a }) => `${n}% ${t}%, ${a}% ${t}%, ${a}% ${e}%, ${n}% ${e}%`,\n top: ({ top: t, left: e, right: n, minimum: a }) => `${e}% ${t}%, ${n}% ${t}%, ${n}% ${t + a}%, ${e}% ${t + a}%`,\n right: ({ top: t, bottom: e, right: n, minimum: a }) => `${n - a}% ${t}%, ${n}% ${t}%, ${n}% ${e}%, ${n - a}% ${e}%`,\n center: ({ centerX: t, centerY: e, minimum: n }) => `${t - n / 2}% ${e - n / 2}%, ${t + n / 2}% ${e - n / 2}%, ${t + n / 2}% ${e + n / 2}%, ${t - n / 2}% ${e + n / 2}%`,\n bottom: ({ bottom: t, left: e, right: n, minimum: a }) => `${e}% ${t - a}%, ${n}% ${t - a}%, ${n}% ${t}%, ${e}% ${t}%`,\n left: ({ top: t, bottom: e, left: n, minimum: a }) => `${n}% ${t}%, ${n + a}% ${t}%, ${n + a}% ${e}%, ${n}% ${e}%`,\n vertical: ({ top: t, bottom: e, left: n, right: a, minimum: o }) => `${n}% ${t + o / 2}%, ${a}% ${t + o / 2}%, ${a}% ${e - o / 2}%, ${n}% ${e - o / 2}%`,\n horizontal: ({ top: t, bottom: e, left: n, right: a, minimum: o }) => `${n + o / 2}% ${t}%, ${a - o / 2}% ${t}%, ${a - o / 2}% ${e}%, ${n + o / 2}% ${e}%`\n};\nfunction P({\n direction: t,\n scaleX: e = 1,\n scaleY: n = 1,\n minimum: a = 0\n}) {\n const o = (1 - n) / 2 * 100, r = (1 - e) / 2 * 100, s = 100 + r - (1 - e) * 100, i = 100 + o - (1 - n) * 100, c = (s + r) / 2, m = (i + o) / 2;\n return `polygon(${Da[t]({\n top: o,\n bottom: i,\n left: r,\n right: s,\n centerX: c,\n centerY: m,\n minimum: a\n })})`;\n}\nfunction R(t, e, n) {\n const a = t.indexOf(e), o = t.length, r = Math.round((n || 0) / 360 * o), s = (a + (o - 1) * r) % o;\n return t[s];\n}\nfunction he(t, e) {\n const n = t * Math.PI / 180, a = Math.cos(n) * e, o = Math.sin(n) * e;\n return [a, o];\n}\nfunction S(t) {\n return t === \"percentage\" ? \"%\" : t || \"px\";\n}\nfunction E(t) {\n return t ? X[t] || t : X.linear;\n}\nfunction Va(t) {\n return t ? Ya[t] : void 0;\n}\nfunction H(t) {\n if (!X[t])\n return {\n in: t,\n inOut: t,\n out: t\n };\n const e = t.replace(/In|Out/g, \"\");\n return e === \"linear\" ? {\n in: \"linear\",\n inOut: \"linear\",\n out: \"linear\"\n } : {\n in: `${e}In`,\n inOut: `${e}InOut`,\n out: `${e}Out`\n };\n}\nconst ja = {\n linear: \"linear\",\n easeOut: \"ease-out\",\n hardBackOut: \"cubic-bezier(0.58, 2.5, 0, 0.95)\",\n elastic: \"linear( 0, 0.2178 2.1%, 1.1144 8.49%, 1.2959 10.7%, 1.3463 11.81%, 1.3705 12.94%, 1.3726, 1.3643 14.48%, 1.3151 16.2%, 1.0317 21.81%, 0.941 24.01%, 0.8912 25.91%, 0.8694 27.84%, 0.8698 29.21%, 0.8824 30.71%, 1.0122 38.33%, 1.0357, 1.046 42.71%, 1.0416 45.7%, 0.9961 53.26%, 0.9839 57.54%, 0.9853 60.71%, 1.0012 68.14%, 1.0056 72.24%, 0.9981 86.66%, 1 )\",\n bounce: \"linear( 0, 0.0039, 0.0157, 0.0352, 0.0625 9.09%, 0.1407, 0.25, 0.3908, 0.5625, 0.7654, 1, 0.8907, 0.8125 45.45%, 0.7852, 0.7657, 0.7539, 0.75, 0.7539, 0.7657, 0.7852, 0.8125 63.64%, 0.8905, 1 72.73%, 0.9727, 0.9532, 0.9414, 0.9375, 0.9414, 0.9531, 0.9726, 1, 0.9883, 0.9844, 0.9883, 1 )\"\n};\nfunction T(t) {\n return t && ja[t] || \"linear\";\n}\nfunction Za(t) {\n const e = t * Math.PI / 180, n = Math.round(Math.cos(e) * 10) / 10, a = Math.round(Math.sin(e) * 10) / 10, o = Math.sign(n), r = Math.sign(a), s = \"var(--motion-left, 0px)\", i = \"var(--motion-top, 0px)\", c = o ? o === -1 ? `(-1 * ${s} - 100%)` : `(100vw - ${s})` : 0, m = r ? r === -1 ? `(-1 * ${i} - 100%)` : `(100vh - ${i})` : 0;\n let l;\n const f = `calc(${c} / ${n})`, u = `calc(${m} / ${a})`;\n return n ? a ? l = `min(${u}, ${f})` : l = f : l = u, {\n // distance: Math.abs(hypotenuse),\n x: `calc(${l} * ${n})`,\n y: `calc(${l} * ${a})`\n };\n}\nfunction Ba(t, e) {\n let n = t.offsetLeft, a = t.offsetTop, o = t.offsetParent;\n for (; o && !(e && o === e); )\n n += o.offsetLeft, a += o.offsetTop, o = o.offsetParent;\n return { left: n, top: a };\n}\nconst La = (t, e, n) => {\n const a = t === \"top\" || t === \"left\", o = a ? e : 0, r = a ? 0 : e, s = a ? -1 : 1, i = t === \"top\" || t === \"bottom\", c = [], m = [];\n for (let l = o; l !== r; l += s) {\n const f = 100 * ((l + s) / e), u = 100 * (l / e) | 0;\n let d;\n if (n) {\n const p = a ? 1 + (e - l) / e : 1 + l / e;\n d = a ? 100 - (100 - f) * p : f * p;\n } else\n d = f;\n d |= 0, i ? (c.push(\n `0% ${u}%, 100% ${u}%, 100% ${u}%, 0% ${u}%`\n ), m.push(\n `0% ${u}%, 100% ${u}%, 100% ${d}%, 0% ${d}%`\n )) : (c.push(\n `${u}% 0%, ${u}% 100%, ${u}% 100%, ${u}% 0%`\n ), m.push(\n `${u}% 0%, ${u}% 100%, ${d}% 100%, ${d}% 0%`\n ));\n }\n return { start: c, end: m };\n};\nfunction Ot(t, e, n, a) {\n const { start: o, end: r } = La(\n t,\n e,\n n\n );\n return a && (o.reverse(), r.reverse()), {\n clipStart: `polygon(${o.join(\", \")})`,\n clipEnd: `polygon(${r.join(\", \")})`\n };\n}\nfunction Y(t, e = 2) {\n return parseFloat(t.toFixed(e));\n}\nfunction g(t, e, n = !1, a = \"\") {\n return n ? t[e] : `var(${e}${a ? `,${a}` : \"\"})`;\n}\nfunction b(t, e, n = !1) {\n const a = t || 1, r = Y(a / (a + (e || 0)));\n return n ? r.toString().replace(/\\./g, \"\") : r;\n}\nclass Ga {\n _animation;\n customEffect;\n progress;\n _tickCbId;\n _finishHandler;\n constructor(e, n, a, o) {\n const r = new KeyframeEffect(n, [], {\n ...a,\n composite: \"add\"\n }), { timeline: s } = o;\n this._animation = new Animation(r, s), this._tickCbId = null, this.progress = null, this.customEffect = (i) => e(r.target, i), this._finishHandler = (i) => {\n this.effect.target?.getAnimations().find((c) => c === this._animation) || this.cancel();\n }, this.addEventListener(\"finish\", this._finishHandler), this.addEventListener(\"remove\", this._finishHandler);\n }\n // private tick method for customEffect loop implementation\n _tick() {\n try {\n const e = this.effect?.getComputedTiming().progress ?? null;\n e !== this.progress && (this.customEffect?.(e), this.progress = e), this._tickCbId = requestAnimationFrame(() => {\n this._tick();\n });\n } catch (e) {\n this._tickCbId = null, console.error(\n `failed to run customEffect! effectId: ${this.id}, error: ${e instanceof Error ? e.message : e}`\n );\n }\n }\n // Animation timing properties\n get currentTime() {\n return this._animation.currentTime;\n }\n set currentTime(e) {\n this._animation.currentTime = e;\n }\n get startTime() {\n return this._animation.startTime;\n }\n set startTime(e) {\n this._animation.startTime = e;\n }\n get playbackRate() {\n return this._animation.playbackRate;\n }\n set playbackRate(e) {\n this._animation.playbackRate = e;\n }\n // Animation basic properties\n get id() {\n return this._animation.id;\n }\n set id(e) {\n this._animation.id = e;\n }\n get effect() {\n return this._animation.effect;\n }\n set effect(e) {\n this._animation.effect = e;\n }\n get timeline() {\n return this._animation.timeline;\n }\n set timeline(e) {\n this._animation.timeline = e;\n }\n // Animation readonly state properties\n get finished() {\n return this._animation.finished;\n }\n get pending() {\n return this._animation.pending;\n }\n get playState() {\n return this._animation.playState;\n }\n get ready() {\n return this._animation.ready;\n }\n get replaceState() {\n return this._animation.replaceState;\n }\n // Animation event handlers\n get oncancel() {\n return this._animation.oncancel;\n }\n set oncancel(e) {\n this._animation.oncancel = e;\n }\n get onfinish() {\n return this._animation.onfinish;\n }\n set onfinish(e) {\n this._animation.onfinish = e;\n }\n get onremove() {\n return this._animation.onremove;\n }\n set onremove(e) {\n this._animation.onremove = e;\n }\n // CustomAnimation overridden methods\n play() {\n this._animation.play(), cancelAnimationFrame(this._tickCbId), this._tickCbId = requestAnimationFrame(() => this._tick());\n }\n pause() {\n this._animation.pause(), cancelAnimationFrame(this._tickCbId), this._tickCbId = null;\n }\n cancel() {\n this.removeEventListener(\"finish\", this._finishHandler), this.removeEventListener(\"remove\", this._finishHandler), this._animation.cancel(), this.customEffect(null), cancelAnimationFrame(this._tickCbId), this._tickCbId = null;\n }\n commitStyles() {\n console.warn(\n \"CustomEffect animations do not support commitStyles method as they have no style to commit\"\n );\n }\n // Animation methods without override\n finish() {\n this._animation.finish();\n }\n persist() {\n this._animation.persist();\n }\n reverse() {\n this._animation.reverse();\n }\n updatePlaybackRate(e) {\n this._animation.updatePlaybackRate(e);\n }\n // Animation events API\n addEventListener(e, n, a) {\n this._animation.addEventListener(e, n, a);\n }\n removeEventListener(e, n, a) {\n this._animation.removeEventListener(e, n, a);\n }\n dispatchEvent(e) {\n return this._animation.dispatchEvent(e);\n }\n}\nconst qa = {\n vertical: \"rotateX\",\n horizontal: \"rotateY\"\n}, U = 68, Ha = {\n in: { fromValue: -U, toValue: 0 },\n out: { fromValue: 0, toValue: U },\n continuous: { fromValue: -U, toValue: U }\n};\nfunction Ka(t) {\n const { direction: e = \"horizontal\", range: n = \"in\" } = t.namedEffect, a = n === \"out\" ? \"forwards\" : n === \"in\" ? \"backwards\" : t.fill, o = qa[e], { fromValue: r, toValue: s } = Ha[n];\n return [\n {\n ...t,\n fill: a,\n easing: \"linear\",\n keyframes: [\n {\n transform: `perspective(500px) translateZ(-300px) ${o}(${r}deg) translateZ(300px) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n transform: `perspective(500px) translateZ(-300px) ${o}(${s}deg) translateZ(300px) rotate(var(--comp-rotate-z, 0deg))`\n }\n ]\n }\n ];\n}\nconst St = {\n soft: 6,\n medium: 25,\n hard: 50\n};\nfunction Ua(t) {\n const { blur: e = 6, power: n, range: a = \"in\" } = t.namedEffect, o = n && St[n] ? St[n] : e, r = a === \"out\" ? 0 : o, s = a === \"out\" ? o : 0, i = \"linear\", c = a === \"out\" ? \"forwards\" : a === \"in\" ? \"backwards\" : t.fill;\n return [\n {\n ...t,\n fill: c,\n easing: i,\n composite: \"add\",\n keyframes: [\n {\n filter: `blur(${r}px)`\n },\n {\n filter: `blur(${s}px)`\n }\n ]\n }\n ];\n}\nfunction Ja(t) {\n const { opacity: e = 0, range: n = \"in\" } = t.namedEffect, a = n === \"out\", o = a ? \"var(--comp-opacity, 1)\" : e, r = a ? e : \"var(--comp-opacity, 1)\", s = \"linear\", i = n === \"out\" ? \"forwards\" : n === \"in\" ? \"backwards\" : t.fill;\n return [\n {\n ...t,\n fill: i,\n easing: s,\n keyframes: [\n {\n opacity: o\n },\n {\n opacity: r\n }\n ]\n }\n ];\n}\nconst Tt = {\n soft: 60,\n medium: 120,\n hard: 420\n}, Qa = {\n vertical: \"rotateX\",\n horizontal: \"rotateY\"\n};\nfunction Wa(t) {\n const {\n rotate: e = 240,\n direction: n = \"horizontal\",\n power: a,\n range: o = \"continuous\"\n } = t.namedEffect, r = Qa[n], s = a && Tt[a] ? Tt[a] : e, i = o === \"out\" ? 0 : -s, c = o === \"in\" ? 0 : s, m = \"linear\", l = o === \"out\" ? \"forwards\" : o === \"in\" ? \"backwards\" : t.fill;\n return [\n {\n ...t,\n fill: l,\n easing: m,\n keyframes: [\n {\n transform: `perspective(800px) ${r}(${i}deg) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n transform: `perspective(800px) ${r}(${c}deg) rotate(var(--comp-rotate-z, 0deg))`\n }\n ]\n }\n ];\n}\nconst ve = 40, C = {\n soft: { scaleFrom: 0.8, scaleTo: 1.2, travelY: 0 },\n medium: { scaleFrom: 0.3, scaleTo: 1.7, travelY: 0.75 },\n hard: { scaleFrom: 0, scaleTo: 4, travelY: 1 }\n}, to = {\n top: [0, -50],\n \"top-right\": [50, -50],\n right: [50, 0],\n \"bottom-right\": [50, 50],\n bottom: [0, 50],\n \"bottom-left\": [-50, 50],\n left: [-50, 0],\n \"top-left\": [-50, -50],\n center: [0, 0]\n}, eo = {\n in: (t, e, n) => ({\n fromValues: { scale: t, travel: n },\n toValues: { scale: 1, travel: 0 }\n }),\n out: (t, e, n) => ({\n fromValues: { scale: 1, travel: 0 },\n toValues: { scale: e, travel: -n }\n }),\n continuous: (t, e, n) => ({\n fromValues: { scale: t, travel: n },\n toValues: { scale: e, travel: -n }\n })\n};\nfunction no({ power: t, range: e = \"in\", speed: n = 0 }) {\n const a = t && C[t] ? C[t].travelY : Math.abs(n) * ve;\n return {\n start: e === \"out\" ? \"0px\" : `${-a}vh`,\n end: e === \"in\" ? \"0px\" : `${a}vh`\n };\n}\nfunction ao(t) {\n const {\n power: e,\n range: n = \"in\",\n scale: a = n === \"in\" ? C.hard.scaleFrom : C.hard.scaleTo,\n direction: o = \"center\",\n speed: r = 0\n } = t.namedEffect, s = \"linear\", i = n === \"out\" ? \"forwards\" : n === \"in\" ? \"backwards\" : t.fill, { scaleFrom: c, scaleTo: m, travelY: l } = e && C[e] ? C[e] : {\n scaleFrom: a,\n scaleTo: a,\n travelY: r\n }, { fromValues: f, toValues: u } = eo[n](\n c,\n m,\n l * -ve\n ), { start: d, end: p } = no(t.namedEffect), [y, $] = to[o];\n return [\n {\n ...t,\n fill: i,\n easing: s,\n startOffsetAdd: d,\n endOffsetAdd: p,\n keyframes: [\n {\n transform: `translateY(${f.travel}vh) translate(${y}%, ${$}%) scale(${f.scale}) translate(${-y}%, ${-$}%) rotate(var(--comp-rotate-z, 0))`\n },\n {\n transform: `translateY(${u.travel}vh) translate(${y}%, ${$}%) scale(${u.scale}) translate(${-y}%, ${-$}%) rotate(var(--comp-rotate-z, 0))`\n }\n ]\n }\n ];\n}\nconst Oe = {\n soft: { value: 150, type: \"px\" },\n medium: { value: 400, type: \"px\" },\n hard: { value: 800, type: \"px\" }\n}, oo = {\n in: (t, e) => ({\n fromValue: { x: t, y: e },\n toValue: { x: 0, y: 0 }\n }),\n out: (t, e) => ({\n fromValue: { x: 0, y: 0 },\n toValue: { x: t, y: e }\n }),\n continuous: (t, e) => ({\n fromValue: { x: t, y: e },\n toValue: { x: -t, y: -e }\n })\n};\nfunction ro({\n angle: t = 210,\n distance: e = { value: 400, type: \"px\" },\n power: n,\n range: a = \"in\"\n}) {\n const o = n ? Oe[n] : e, [, r] = he(t - 90, o.value), s = r < 0 && a !== \"out\" || r > 0 && a === \"out\", i = S(o.type), c = s ? `${r}${i}` : \"0px\", m = s ? `${Math.abs(r)}${i}` : \"0px\";\n return {\n start: a === \"out\" ? \"0px\" : c,\n end: a === \"in\" ? \"0px\" : m\n };\n}\nfunction so(t, e, n) {\n const {\n power: a,\n distance: o = { value: 400, type: \"px\" },\n angle: r = 210,\n range: s = \"in\"\n } = t.namedEffect, i = a ? Oe[a] : o, [c, m] = he(r - 90, i.value), { fromValue: l, toValue: f } = oo[s](\n Math.round(c),\n Math.round(m)\n ), u = S(i.type), d = \"linear\", p = s === \"out\" ? \"forwards\" : s === \"in\" ? \"backwards\" : t.fill, { start: y, end: $ } = n?.ignoreScrollMoveOffsets ? { start: \"\", end: \"\" } : ro(t.namedEffect);\n return [\n {\n ...t,\n fill: p,\n easing: d,\n startOffsetAdd: y,\n endOffsetAdd: $,\n keyframes: [\n {\n transform: `translate(${l.x}${u}, ${l.y}${u}) rotate(var(--comp-rotate-z, 0))`\n },\n {\n transform: `translate(${f.x}${u}, ${f.y}${u}) rotate(var(--comp-rotate-z, 0))`\n }\n ]\n }\n ];\n}\nconst io = {\n left: 1,\n right: -1\n}, co = {\n left: {\n startX: \"calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)\",\n endX: \"calc(100vw - var(--motion-left, 0px))\"\n },\n right: {\n startX: \"calc(100vw - var(--motion-left, 0px))\",\n endX: \"calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)\"\n }\n};\nfunction lo(t, e) {\n const {\n distance: n = { value: 400, type: \"px\" },\n direction: a = \"left\",\n startFromOffScreen: o = !0,\n range: r = \"in\"\n } = t.namedEffect, s = n.value * io[a], { startX: i, endX: c } = o ? co[a] : {\n startX: `${-s}${S(n.type)}`,\n endX: `${s}${S(n.type)}`\n }, m = r === \"out\" ? 0 : i, l = r === \"in\" ? 0 : r === \"out\" ? i : c, f = \"linear\", u = r === \"out\" ? \"forwards\" : r === \"in\" ? \"backwards\" : t.fill;\n if (o && e) {\n let d = 0;\n e.measure((p) => {\n p && (d = p.getBoundingClientRect().left);\n }), e.mutate((p) => {\n p?.style.setProperty(\"--motion-left\", `${d}px`);\n });\n }\n return [\n {\n ...t,\n fill: u,\n easing: f,\n keyframes: [\n {\n transform: `translateX(${m}) rotate(var(--comp-rotate-z, 0))`\n },\n {\n transform: `translateX(${l}) rotate(var(--comp-rotate-z, 0))`\n }\n ]\n }\n ];\n}\nconst _e = 0.5;\nfunction kt(t, e) {\n return `${100 * t * e}vh`;\n}\nfunction fo({ speed: t = _e }) {\n const e = kt(-0.5, t), n = kt(0.5, t);\n return {\n start: e,\n end: n\n };\n}\nfunction mo(t) {\n const { speed: e = _e } = t.namedEffect, n = `${-50 * e}vh`, a = `${50 * e}vh`, o = \"linear\", { start: r, end: s } = fo(t.namedEffect);\n return [\n {\n ...t,\n fill: \"both\",\n easing: o,\n startOffsetAdd: r,\n endOffsetAdd: s,\n keyframes: [\n {\n transform: `translateY(${n}) rotate(var(--comp-rotate-z, 0))`\n },\n {\n transform: `translateY(${a}) rotate(var(--comp-rotate-z, 0))`\n }\n ]\n }\n ];\n}\nconst uo = [\"bottom\", \"left\", \"top\", \"right\"], xe = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n}, bt = P({ direction: \"initial\" });\nfunction Mt(t, e) {\n return e === \"out\" ? bt : P({\n direction: xe[t]\n });\n}\nfunction Rt(t, e) {\n return e === \"in\" ? bt : P({\n direction: e === \"out\" ? xe[t] : t\n });\n}\nfunction po(t, e) {\n const { direction: n = \"bottom\", range: a = \"in\" } = t.namedEffect, o = \"linear\", r = a === \"out\" ? \"forwards\" : a === \"in\" ? \"backwards\" : t.fill;\n let s = Mt(n, a), i = Rt(n, a);\n e && e.measure((m) => {\n if (!m)\n return;\n const l = getComputedStyle(m).getPropertyValue(\"--comp-rotate-z\") || \"0\";\n e.mutate(() => {\n const f = R(\n uo,\n n,\n parseInt(l, 10)\n );\n s = Mt(f, a), i = Rt(f, a), m.style.setProperty(\"--motion-clip-from\", s), m.style.setProperty(\"--motion-clip-to\", i);\n });\n });\n const c = a === \"continuous\" ? [\n { clipPath: `var(--motion-clip-from, ${s})` },\n { clipPath: bt },\n { clipPath: `var(--motion-clip-to, ${i})` }\n ] : [\n { clipPath: `var(--motion-clip-from, ${s})` },\n { clipPath: `var(--motion-clip-to, ${i})` }\n ];\n return [\n {\n ...t,\n fill: r,\n easing: o,\n keyframes: c\n }\n ];\n}\nconst ot = {\n diamond: {\n start: {\n soft: \"polygon(50% 20%, 80% 50%, 50% 80%, 20% 50%)\",\n medium: \"polygon(50% 40%, 60% 50%, 50% 60%, 40% 50%)\",\n hard: \"polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%)\"\n },\n end: \"polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)\"\n },\n window: {\n start: {\n soft: \"inset(20% round 50% 50% 0% 0%)\",\n medium: \"inset(35% round 50% 50% 0% 0%)\",\n hard: \"inset(50% round 50% 50% 0% 0%)\"\n },\n end: \"inset(-20% round 50% 50% 0% 0%)\"\n },\n rectangle: {\n start: {\n soft: \"inset(20%)\",\n medium: \"inset(50%)\",\n hard: \"inset(80%)\"\n },\n end: \"inset(0%)\"\n },\n circle: {\n start: {\n soft: \"circle(40%)\",\n medium: \"circle(25%)\",\n hard: \"circle(0%)\"\n },\n end: \"circle(75%)\"\n },\n ellipse: {\n start: {\n soft: \"ellipse(50% 50%)\",\n medium: \"ellipse(30% 30%)\",\n hard: \"ellipse(0% 0%)\"\n },\n end: \"ellipse(75% 75%)\"\n }\n}, go = {\n diamond: (t) => {\n const e = t / 2, n = 100 - e;\n return [\n `polygon(50% ${e}%, ${n}% 50%, 50% ${n}%, ${e}% 50%)`,\n \"polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)\"\n ];\n },\n window: (t) => [\n `inset(${t / 2}% round 50% 50% 0% 0%)`,\n \"inset(-20% round 50% 50% 0% 0%)\"\n ],\n rectangle: (t) => [`inset(${t}%)`, \"inset(0%)\"],\n circle: (t) => [\n `circle(${100 - t}%)`,\n \"circle(75%)\"\n ],\n ellipse: (t) => {\n const e = 50 - t / 2;\n return [`ellipse(${e}% ${e}%)`, \"ellipse(75% 75%)\"];\n }\n}, J = E(\"circInOut\"), yo = {\n in: (t, e) => [\n {\n clipPath: t,\n easing: J\n },\n {\n clipPath: e\n }\n ],\n out: (t, e) => [\n {\n clipPath: e,\n easing: J\n },\n {\n clipPath: t\n }\n ],\n continuous: (t, e) => [\n {\n clipPath: t,\n easing: J\n },\n {\n clipPath: e,\n easing: J\n },\n {\n clipPath: t\n }\n ]\n};\nfunction $o(t) {\n const {\n shape: e = \"circle\",\n power: n,\n intensity: a = 0.5,\n range: o = \"in\"\n } = t.namedEffect, r = o === \"out\" ? \"forwards\" : o === \"in\" ? \"backwards\" : t.fill, [s, i] = n && ot[e].start[n] ? [ot[e].start[n], ot[e].end] : go[e](a * 100), c = yo[o](s, i);\n return [\n {\n ...t,\n fill: r,\n easing: \"linear\",\n keyframes: c\n }\n ];\n}\nconst ho = {\n top: \"bottom\",\n right: \"left\",\n bottom: \"top\",\n left: \"right\"\n};\nfunction vo(t) {\n const {\n direction: e = \"right\",\n shutters: n = 12,\n staggered: a = !0,\n range: o = \"in\"\n } = t.namedEffect, r = o === \"out\" ? \"forwards\" : o === \"in\" ? \"backwards\" : t.fill, s = E(o === \"in\" ? \"sineIn\" : \"sineOut\"), i = ho[e], { clipStart: c, clipEnd: m } = Ot(\n o === \"out\" ? i : e,\n n,\n a\n ), l = o !== \"out\" ? c : m, f = o !== \"out\" ? m : c;\n let u;\n if (o === \"continuous\") {\n const { clipStart: d, clipEnd: p } = Ot(i, n, a, !0);\n u = [\n {\n clipPath: l,\n easing: s\n },\n {\n clipPath: f,\n offset: a ? 0.45 : 0.4,\n easing: s\n },\n {\n clipPath: f,\n offset: a ? 0.55 : 0.6,\n easing: s\n },\n {\n clipPath: p,\n offset: a ? 0.55 : 0.6,\n easing: s\n },\n {\n clipPath: d\n }\n ];\n } else\n u = [\n {\n clipPath: l,\n easing: s\n },\n {\n clipPath: f\n }\n ];\n return [\n {\n ...t,\n fill: r,\n easing: \"linear\",\n keyframes: u\n }\n ];\n}\nconst be = 40, et = {\n soft: { scaleFrom: 1.2, scaleTo: 0.8, travelY: 0 },\n medium: { scaleFrom: 1.7, scaleTo: 0.3, travelY: 0.5 },\n hard: { scaleFrom: 3.5, scaleTo: 0, travelY: 1 }\n}, Oo = {\n top: [0, -50],\n \"top-right\": [50, -50],\n right: [50, 0],\n \"bottom-right\": [50, 50],\n bottom: [0, 50],\n \"bottom-left\": [-50, 50],\n left: [-50, 0],\n \"top-left\": [-50, -50],\n center: [0, 0]\n}, _o = {\n in: (t, e, n) => ({\n fromValues: { scale: t, travel: n },\n toValues: { scale: 1, travel: 0 }\n }),\n out: (t, e, n) => ({\n fromValues: { scale: 1, travel: 0 },\n toValues: { scale: e, travel: -n }\n }),\n continuous: (t, e, n) => ({\n fromValues: { scale: t, travel: n },\n toValues: { scale: e, travel: -n }\n })\n};\nfunction xo({ power: t, range: e = \"in\", speed: n = 0 }) {\n const a = t && et[t] ? et[t].travelY : Math.abs(n) * be;\n return {\n start: e === \"out\" ? \"0px\" : `${-a}vh`,\n end: e === \"in\" ? \"0px\" : `${a}vh`\n };\n}\nfunction bo(t) {\n const {\n power: e,\n range: n = \"in\",\n scale: a = n === \"in\" ? 1.2 : 0.8,\n direction: o = \"center\",\n speed: r = 0\n } = t.namedEffect, s = n === \"out\" ? \"forwards\" : n === \"in\" ? \"backwards\" : t.fill, { scaleFrom: i, scaleTo: c, travelY: m } = e && et[e] ? et[e] : {\n scaleFrom: a,\n scaleTo: a,\n travelY: r\n }, { fromValues: l, toValues: f } = _o[n](\n i,\n c,\n m * -be\n ), u = \"linear\", { start: d, end: p } = xo(\n t.namedEffect\n ), [y, $] = Oo[o];\n return [\n {\n ...t,\n fill: s,\n easing: u,\n startOffsetAdd: d,\n endOffsetAdd: p,\n keyframes: [\n {\n transform: `translateY(${l.travel}vh) translate(${y}%, ${$}%) scale(${l.scale}) translate(${-y}%, ${-$}%) rotate(var(--comp-rotate-z, 0))`\n },\n {\n transform: `translateY(${f.travel}vh) translate(${y}%, ${$}%) scale(${f.scale}) translate(${-y}%, ${-$}%) rotate(var(--comp-rotate-z, 0))`\n }\n ]\n }\n ];\n}\nconst zt = {\n soft: { skewX: 10 },\n medium: { skewX: 17 },\n hard: { skewX: 24 }\n}, Eo = {\n right: -1,\n left: 1\n}, Io = {\n in: (t, e, n) => ({\n fromValues: { skewX: t, startX: e },\n toValues: { skewX: 0, endX: 0 }\n }),\n out: (t, e, n) => ({\n fromValues: { skewX: 0, startX: 0 },\n toValues: { skewX: -t, endX: e }\n }),\n continuous: (t, e, n) => ({\n fromValues: { skewX: t, startX: e },\n toValues: { skewX: -t, endX: n }\n })\n}, wo = {\n left: {\n startX: \"calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)\",\n endX: \"calc(100vw - var(--motion-left, 0px))\"\n },\n right: {\n startX: \"calc(100vw - var(--motion-left, 0px))\",\n endX: \"calc(var(--motion-left, calc(100vw - 100%)) * -1 - 100%)\"\n }\n};\nfunction Po(t, e) {\n const {\n skew: n = 10,\n direction: a = \"right\",\n power: o,\n range: r = \"in\"\n } = t.namedEffect, s = \"linear\", i = r === \"out\" ? \"forwards\" : r === \"in\" ? \"backwards\" : t.fill, c = (o && zt[o] ? zt[o].skewX : n) * Eo[a], { startX: m, endX: l } = wo[a], { fromValues: f, toValues: u } = Io[r](c, m, l);\n let d = 0;\n return e && (e.measure((p) => {\n p && (d = p.getBoundingClientRect().left);\n }), e.mutate((p) => {\n p?.style.setProperty(\"--motion-left\", `${d}px`);\n })), [\n {\n ...t,\n fill: i,\n easing: s,\n keyframes: [\n {\n transform: `translateX(${f.startX}) skewX(${f.skewX}deg) rotate(var(--comp-rotate-z, 0))`\n },\n {\n transform: `translateX(${u.endX}) skewX(${u.skewX}deg) rotate(var(--comp-rotate-z, 0))`\n }\n ]\n }\n ];\n}\nconst Ao = [\"bottom\", \"left\", \"top\", \"right\"], Ft = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n}, Nt = {\n top: { x: \"0\", y: \"-100%\" },\n right: { x: \"100%\", y: \"0\" },\n bottom: { x: \"0\", y: \"100%\" },\n left: { x: \"-100%\", y: \"0\" }\n}, rt = P({ direction: \"initial\" }), So = {\n in: (t, e) => [\n {\n clipPath: `var(--motion-clip-from, ${t.from})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${e.from.x}, ${e.from.y})`\n },\n {\n clipPath: rt,\n transform: \"rotate(var(--comp-rotate-z, 0)) translate(0, 0)\"\n }\n ],\n out: (t, e) => [\n {\n clipPath: rt,\n transform: \"rotate(var(--comp-rotate-z, 0)) translate(0, 0)\"\n },\n {\n clipPath: `var(--motion-clip-from, ${t.from})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${e.from.x}, ${e.from.y})`\n }\n ],\n continuous: (t, e) => [\n {\n clipPath: `var(--motion-clip-from, ${t.from})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${e.from.x}, ${e.from.y})`\n },\n {\n clipPath: rt,\n transform: \"rotate(var(--comp-rotate-z, 0)) translate(0, 0)\"\n },\n {\n clipPath: `var(--motion-clip-to, ${t.to})`,\n transform: `rotate(var(--comp-rotate-z, 0)) translate(${e.to.x}, ${e.to.y})`\n }\n ]\n};\nfunction To(t, e) {\n const { direction: n = \"bottom\", range: a = \"in\" } = t.namedEffect, o = \"linear\", r = a === \"out\" ? \"forwards\" : a === \"in\" ? \"backwards\" : t.fill, s = Ft[n], i = So[a](\n {\n from: P({\n direction: s\n }),\n to: P({\n direction: n\n })\n },\n {\n from: Nt[n],\n to: Nt[s]\n }\n );\n return e && e.measure((c) => {\n if (!c)\n return;\n const m = parseInt(\n getComputedStyle(c).getPropertyValue(\"--comp-rotate-z\") || \"0\",\n 10\n );\n e.mutate(() => {\n const l = R(\n Ao,\n n,\n m\n );\n c.style.setProperty(\n \"--motion-clip-from\",\n P({\n direction: Ft[l]\n })\n ), c.style.setProperty(\n \"--motion-clip-to\",\n P({\n direction: l\n })\n );\n });\n }), [\n {\n ...t,\n fill: r,\n easing: o,\n keyframes: i\n }\n ];\n}\nconst Ee = 40, nt = {\n soft: { rotationZ: 45, travelY: 0 },\n medium: { rotationZ: 100, travelY: 0.5 },\n hard: { rotationZ: 200, travelY: 1 }\n}, ko = {\n in: (t, e) => ({\n fromValues: {\n rotationX: -2 * t,\n rotationY: -t,\n rotationZ: -t,\n travel: e\n },\n toValues: {\n rotationX: 0,\n rotationY: 0,\n rotationZ: 0,\n travel: 0\n }\n }),\n out: (t, e) => ({\n fromValues: {\n rotationX: 0,\n rotationY: 0,\n rotationZ: 0,\n travel: 0\n },\n toValues: {\n rotationX: t * 3,\n rotationY: t * 2,\n rotationZ: t,\n travel: -e\n }\n }),\n continuous: (t, e) => ({\n fromValues: {\n rotationX: -2 * t,\n rotationY: -t,\n rotationZ: -t,\n travel: e\n },\n toValues: {\n rotationX: t * 1.8,\n rotationY: t,\n rotationZ: 2 * t,\n travel: -e\n }\n })\n};\nfunction Mo({ power: t, range: e = \"in\", speed: n = 0 }) {\n const a = (t && nt[t] ? nt[t].travelY : Math.abs(n)) * Ee;\n return {\n start: e === \"out\" ? \"0px\" : `${-a}vh`,\n end: e === \"in\" ? \"0px\" : `${a}vh`\n };\n}\nfunction Ro(t) {\n const {\n rotate: e = -100,\n power: n,\n range: a = \"in\",\n speed: o = 0\n } = t.namedEffect, r = \"linear\", s = a === \"out\" ? \"forwards\" : a === \"in\" ? \"backwards\" : t.fill, i = n && nt[n] ? nt[n] : { rotationZ: e, travelY: o }, { fromValues: c, toValues: m } = ko[a](\n i.rotationZ,\n i.travelY * -Ee\n ), { start: l, end: f } = Mo(\n t.namedEffect\n );\n return [\n {\n ...t,\n fill: s,\n easing: r,\n startOffsetAdd: l,\n endOffsetAdd: f,\n keyframes: [\n {\n transform: `perspective(1000px) translateY(${c.travel}vh) rotateZ(calc(var(--comp-rotate-z, 0deg) + ${c.rotationZ}deg)) rotateY(${c.rotationY}deg) rotateX(${c.rotationX}deg)`\n },\n {\n transform: `perspective(1000px) translateY(${m.travel}vh) rotateZ(calc(var(--comp-rotate-z, 0deg) + ${m.rotationZ}deg)) rotateY(${m.rotationY}deg) rotateX(${m.rotationX}deg)`\n }\n ]\n }\n ];\n}\nconst Yt = {\n soft: 1,\n medium: 0.7,\n hard: 0.4\n}, zo = {\n clockwise: 1,\n \"counter-clockwise\": -1\n};\nfunction Fo(t) {\n const {\n spins: e = 0.15,\n scale: n = 1,\n direction: a = \"clockwise\",\n power: o,\n range: r = \"in\"\n } = t.namedEffect, s = \"linear\", i = r === \"out\" ? \"forwards\" : r === \"in\" ? \"backwards\" : t.fill, c = zo[a], m = e * 360, l = o && Yt[o] ? Yt[o] : n, f = r === \"in\", u = f ? -m : r === \"out\" ? 0 : -m / 2, d = f ? 0 : r === \"out\" ? m : m / 2;\n return [\n {\n ...t,\n fill: i,\n easing: s,\n keyframes: [\n {\n transform: `scale(${f ? l : 1}) rotate(calc(var(--comp-rotate-z, 0deg) + ${u * c}deg))`\n },\n {\n transform: `scale(${f ? 1 : l}) rotate(calc(var(--comp-rotate-z, 0deg) + ${d * c}deg))`\n }\n ]\n }\n ];\n}\nconst Xt = {\n soft: { scaleY: 1.2, scaleX: 0.8 },\n medium: { scaleY: 1.5, scaleX: 0.6 },\n hard: { scaleY: 2, scaleX: 0.4 }\n}, No = {\n in: (t, e) => [\n {\n scale: `${t} ${e}`,\n translate: `0 ${100 * (e - 1)}%`\n },\n {\n scale: \"1 1\",\n translate: \"0 0\"\n }\n ],\n out: (t, e) => [\n {\n scale: \"1 1\",\n translate: \"0 0\"\n },\n {\n scale: `${t} ${e}`,\n translate: `0 ${100 * (1 - e)}%`\n }\n ],\n continuous: (t, e) => [\n {\n scale: `${t} ${e}`,\n translate: `0 ${100 * (e - 1)}%`,\n easing: X.backInOut\n },\n {\n scale: \"1 1\",\n translate: \"0 0\",\n easing: X.backInOut\n },\n {\n scale: `${t} ${e}`,\n translate: `0 ${100 * (1 - e)}%`\n }\n ]\n}, Yo = {\n in: [\n { opacity: 0, offset: 0 },\n { opacity: 1, offset: 0.65 }\n ],\n out: [\n { opacity: 1, offset: 0.35 },\n { opacity: 0, offset: 1 }\n ],\n continuous: [\n { opacity: 0, offset: 0 },\n { opacity: 1, offset: 0.325 },\n { opacity: 1, offset: 0.7 },\n { opacity: 0, offset: 1 }\n ]\n};\nfunction Xo(t) {\n const {\n power: e,\n stretch: n = 0.6,\n range: a = \"out\"\n } = t.namedEffect, o = a === \"continuous\" ? \"linear\" : \"backInOut\", r = a === \"out\" ? \"forwards\" : a === \"in\" ? \"backwards\" : t.fill, { scaleX: s, scaleY: i } = e && Xt[e] ? Xt[e] : { scaleX: 1 - n, scaleY: 1 + n }, c = No[a](s, i);\n return [\n {\n ...t,\n fill: r,\n easing: o,\n keyframes: c\n },\n {\n ...t,\n fill: r,\n easing: o,\n keyframes: Yo[a]\n }\n ];\n}\nconst Co = 40, [Ct, Dt, Vt] = [10, 25, 25], [jt, Zt, Bt] = [-1, 1, 0], Lt = {\n soft: 0,\n medium: 0.5,\n hard: 1\n}, Do = {\n right: 1,\n left: -1\n}, Vo = {\n in: {\n from: {\n x: -1,\n y: -1,\n z: 1,\n transY: Zt\n },\n to: {\n x: 0,\n y: 0,\n z: 0,\n transY: Bt\n }\n },\n out: {\n from: {\n x: 0,\n y: 0,\n z: 0,\n transY: Bt\n },\n to: {\n x: -1,\n y: -1,\n z: 1,\n transY: jt\n }\n },\n continuous: {\n from: {\n x: -1,\n y: -1,\n z: -1,\n transY: Zt\n },\n to: {\n x: 1,\n y: 0.5,\n z: 1.25,\n transY: jt\n }\n }\n};\nfunction Ie(t, e) {\n return (e && e in Lt ? Lt[e] : t) * Co;\n}\nfunction jo({ power: t, range: e = \"in\", distance: n = 0 }) {\n const a = Math.abs(Ie(n, t));\n return {\n start: e === \"out\" ? \"0px\" : `${-a}vh`,\n end: e === \"in\" ? \"0px\" : `${a}vh`\n };\n}\nfunction Zo(t) {\n const {\n power: e,\n distance: n = 0,\n range: a = \"in\",\n direction: o = \"right\"\n } = t.namedEffect, r = \"linear\", s = a === \"out\" ? \"forwards\" : a === \"in\" ? \"backwards\" : t.fill, { from: i, to: c } = Vo[a], m = Do[o], l = Math.abs(i.z) * Vt * m * (i.z < 0 ? -1 : 1), f = Math.abs(c.z) * Vt * m * (c.z < 0 ? -1 : 1), u = Ie(n, e), d = u * i.transY, p = u * c.transY, y = i.x * Ct, $ = i.y * Dt, O = c.x * Ct, _ = c.y * Dt, { start: v, end: x } = jo(\n t.namedEffect\n );\n return [\n {\n ...t,\n fill: s,\n easing: r,\n startOffsetAdd: v,\n endOffsetAdd: x,\n keyframes: [\n {\n transform: `perspective(400px) translateY(${d}vh) rotateX(${y}deg) rotateY(${$}deg)`\n },\n {\n transform: `perspective(400px) translateY(${p}vh) rotateX(${O}deg) rotateY(${_}deg)`\n }\n ]\n },\n {\n ...t,\n fill: s,\n easing: X.sineInOut,\n startOffsetAdd: v,\n endOffsetAdd: x,\n composite: \"add\",\n // add this animation on top of the previous one\n keyframes: [\n {\n transform: `rotate(calc(var(--comp-rotate-z, 0deg) + ${l}deg))`\n },\n {\n transform: `rotate(calc(var(--comp-rotate-z, 0deg) + ${f}deg))`\n }\n ]\n }\n ];\n}\nconst Bo = 45, Gt = {\n soft: { scaleFrom: 1, scaleTo: 1 },\n medium: { scaleFrom: 0.7, scaleTo: 1.3 },\n hard: { scaleFrom: 0.4, scaleTo: 1.6 }\n}, Lo = {\n clockwise: 1,\n \"counter-clockwise\": -1\n}, Go = {\n left: {\n startX: \"calc(-1 * var(--motion-left, calc(100vw - 100%)) - 100%)\",\n endX: \"calc(100vw - var(--motion-left, 0px))\"\n },\n right: {\n startX: \"calc(100vw - var(--motion-left, 0px))\",\n endX: \"calc(-1 * var(--motion-left, calc(100vw - 100%)) - 100%)\"\n }\n}, qo = {\n in: (t, e, n) => ({\n fromValues: {\n rotation: -t,\n scale: e.scaleFrom,\n translate: n.startX\n },\n toValues: { rotation: 0, scale: 1, translate: \"0px\" }\n }),\n out: (t, e, n) => ({\n fromValues: { rotation: 0, scale: 1, translate: \"0px\" },\n toValues: {\n rotation: t,\n scale: e.scaleFrom,\n translate: n.endX\n }\n }),\n continuous: (t, e, n) => ({\n fromValues: {\n rotation: -t,\n scale: e.scaleFrom,\n translate: n.startX\n },\n toValues: {\n rotation: t,\n scale: e.scaleTo,\n translate: n.endX\n }\n })\n};\nfunction Ho(t, e) {\n const {\n power: n,\n spin: a = \"clockwise\",\n direction: o = \"right\",\n scale: r = 1,\n range: s = \"in\"\n } = t.namedEffect, i = \"linear\", c = s === \"out\" ? \"forwards\" : s === \"in\" ? \"backwards\" : t.fill, m = Go[o], l = Bo * Lo[a], f = n && Gt[n] ? Gt[n] : { scaleFrom: r, scaleTo: r }, { fromValues: u, toValues: d } = qo[s](\n l,\n f,\n m\n );\n let p = 0;\n return e && (e.measure((y) => {\n y && (p = y.getBoundingClientRect().left);\n }), e.mutate((y) => {\n y?.style.setProperty(\"--motion-left\", `${p}px`);\n })), [\n {\n ...t,\n fill: c,\n easing: i,\n keyframes: [\n {\n transform: `translateX(${u.translate}) scale(${u.scale}) rotate(calc(var(--comp-rotate-z, 0deg) + ${u.rotation}deg))`\n },\n {\n transform: `translateX(${d.translate}) scale(${d.scale}) rotate(calc(var(--comp-rotate-z, 0deg) + ${d.rotation}deg))`\n }\n ]\n }\n ];\n}\nconst qt = {\n ArcScroll: Ka,\n BlurScroll: Ua,\n FadeScroll: Ja,\n FlipScroll: Wa,\n GrowScroll: ao,\n MoveScroll: so,\n PanScroll: lo,\n ParallaxScroll: mo,\n RevealScroll: po,\n ShapeScroll: $o,\n ShuttersScroll: vo,\n ShrinkScroll: bo,\n SkewPanScroll: Po,\n SlideScroll: To,\n Spin3dScroll: Ro,\n SpinScroll: Fo,\n StretchScroll: Xo,\n TiltScroll: Zo,\n TurnScroll: Ho\n}, Ht = 80, Ko = {\n top: { x: 1, y: 0, sign: 1 },\n right: { x: 0, y: 1, sign: 1 },\n bottom: { x: 1, y: 0, sign: -1 },\n left: { x: 0, y: 1, sign: -1 }\n}, Uo = {\n soft: \"cubicInOut\",\n medium: \"quintInOut\",\n hard: \"backOut\"\n};\nfunction Jo(t, e) {\n return Ae(t, e), Pe(t, !0);\n}\nfunction we(t) {\n return [\"motion-fadeIn\", \"motion-arcIn\"];\n}\nfunction Pe(t, e = !1) {\n const { power: n, direction: a = \"right\" } = t.namedEffect, [o, r] = we(), s = n && Uo[n] || t.easing || \"quintInOut\", { x: i, y: c, sign: m } = Ko[a], l = \"(-1 * (var(--motion-height, 100vh) * var(--motion-arc-x, 1) + var(--motion-width, 100vw) * var(--motion-arc-y, 0))) / 2\", f = {\n \"--motion-arc-x\": `${i}`,\n \"--motion-arc-y\": `${c}`,\n \"--motion-arc-sign\": `${m}`\n };\n return [\n {\n ...t,\n name: o,\n duration: t.duration * 0.7,\n easing: \"sineIn\",\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: r,\n easing: s,\n custom: f,\n keyframes: [\n {\n offset: I,\n transform: `perspective(800px) translateZ(calc(${l})) rotateX(calc(${g(\n f,\n \"--motion-arc-x\",\n e\n )} * ${g(\n f,\n \"--motion-arc-sign\",\n e\n )} * ${Ht}deg)) rotateY(calc(${g(\n f,\n \"--motion-arc-y\",\n e\n )} * ${g(\n f,\n \"--motion-arc-sign\",\n e\n )} * ${Ht}deg)) translateZ(calc(-1 * ${l})) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n transform: `perspective(800px) translateZ(calc(${l})) rotateX(0deg) rotateY(0deg) translateZ(calc(-1 * ${l})) rotate(var(--comp-rotate-z, 0deg))`\n }\n ]\n }\n ];\n}\nfunction Ae(t, e) {\n if (e) {\n let n, a;\n e.measure((o) => {\n if (!o)\n return;\n const r = o.getBoundingClientRect();\n n = r.width, a = r.height;\n }), e.mutate((o) => {\n o?.style.setProperty(\"--motion-height\", `${a}px`), o?.style.setProperty(\"--motion-width\", `${n}px`);\n });\n }\n}\nconst Qo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: we,\n prepare: Ae,\n style: Pe,\n web: Jo\n}, Symbol.toStringTag, { value: \"Module\" })), Kt = {\n soft: 6,\n medium: 25,\n hard: 50\n};\nfunction Se(t) {\n return [\"motion-fadeIn\", \"motion-blurIn\"];\n}\nfunction Wo(t) {\n return Te(t, !0);\n}\nfunction Te(t, e = !1) {\n const { blur: n = 6, power: a } = t.namedEffect, [o, r] = Se(), s = t.easing || \"linear\", c = {\n \"--motion-blur\": `${a && Kt[a] ? Kt[a] : n}px`\n };\n return [\n {\n ...t,\n name: o,\n duration: t.duration * 0.7,\n easing: \"sineIn\",\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: r,\n easing: s,\n composite: \"add\",\n // make sure we don't override existing filters on the component\n custom: c,\n keyframes: [\n {\n filter: `blur(${g(c, \"--motion-blur\", e)})`\n },\n {\n filter: \"blur(0px)\"\n }\n ]\n }\n ];\n}\nconst tr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Se,\n style: Te,\n web: Wo\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ke(t) {\n return [\"motion-shuttersIn\"];\n}\nfunction er(t) {\n return Me(t, !0);\n}\nfunction Me(t, e = !1) {\n const {\n direction: n = \"right\",\n shutters: a = 12,\n staggered: o = !0\n } = t.namedEffect, [r] = ke(), { clipStart: s, clipEnd: i } = Ot(\n n,\n a,\n o\n ), c = {\n \"--motion-shutters-start\": s,\n \"--motion-shutters-end\": i\n }, m = E(t.easing || \"sineIn\");\n return [\n {\n ...t,\n easing: m,\n name: r,\n custom: c,\n keyframes: [\n {\n offset: 0,\n opacity: 0,\n easing: \"step-end\"\n },\n {\n offset: I,\n opacity: \"var(--comp-opacity, 1)\",\n clipPath: g(c, \"--motion-shutters-start\", e)\n },\n {\n clipPath: g(c, \"--motion-shutters-end\", e)\n }\n ]\n }\n ];\n}\nconst nr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: ke,\n style: Me,\n web: er\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Re(t) {\n return [\"motion-fadeIn\", \"motion-bounceIn\"];\n}\nconst { in: ar, out: or } = H(\"sineIn\"), Ut = [\n { offset: I * 100, translate: 100 },\n { offset: 30, translate: 0 },\n { offset: 42, translate: 35 },\n { offset: 54, translate: 0 },\n { offset: 62, translate: 21 },\n { offset: 74, translate: 0 },\n { offset: 82, translate: 9 },\n { offset: 90, translate: 0 },\n { offset: 95, translate: 2 },\n { offset: 100, translate: 0, isIn: !0 }\n], rr = {\n soft: 1,\n medium: 2,\n hard: 3\n}, sr = {\n top: { y: -1, x: 0, z: 0 },\n right: { y: 0, x: 1, z: 0 },\n bottom: { y: 1, x: 0, z: 0 },\n left: { y: 0, x: -1, z: 0 },\n center: { x: 0, y: 0, z: -1 }\n};\nfunction ir(t) {\n return ze(t, !0);\n}\nfunction ze(t, e = !1) {\n const {\n power: n,\n distanceFactor: a = 1,\n direction: o = \"bottom\"\n } = t.namedEffect, [r, s] = Re(), i = n && rr[n] || a, c = o === \"center\" ? \"perspective(800px)\" : \" \", { x: m, y: l, z: f } = sr[o], u = {\n \"--motion-direction-x\": m,\n \"--motion-direction-y\": l,\n \"--motion-direction-z\": f,\n \"--motion-distance-factor\": i,\n \"--motion-perspective\": c,\n \"--motion-ease-in\": E(or),\n \"--motion-ease-out\": E(ar)\n }, d = g(u, \"--motion-ease-in\", e), p = g(u, \"--motion-ease-out\", e), y = g(\n u,\n \"--motion-distance-factor\",\n e\n ), $ = g(\n u,\n \"--motion-perspective\",\n e,\n \" \"\n ), O = g(u, \"--motion-direction-x\", e), _ = g(u, \"--motion-direction-y\", e), v = g(u, \"--motion-direction-z\", e), x = Ut.map(({ offset: A, translate: w }, z) => ({\n offset: A / 100,\n animationTimingFunction: z % 2 ? d : p,\n transform: `${$.trim()} translate3d(calc(${O} * ${y} * ${w / 2}px), calc(${_} * ${y} * ${w / 2}px), calc(${v} * ${y} * ${w / 2}px)) rotateZ(var(--comp-rotate-z, 0deg))`\n }));\n return [\n {\n ...t,\n name: r,\n easing: \"quadOut\",\n duration: t.duration * Ut[3].offset / 100,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: s,\n easing: \"linear\",\n custom: u,\n keyframes: [\n {\n offset: 0,\n transform: \"perspective(800px) translate3d(0, 0, 0) rotateZ(var(--comp-rotate-z, 0deg))\"\n },\n ...x\n ]\n }\n ];\n}\nconst cr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Re,\n style: ze,\n web: ir\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Fe(t) {\n return [\"motion-curveIn\"];\n}\nconst lr = {\n pseudoRight: { rotationX: \"180\", rotationY: \"0\" },\n right: { rotationX: \"0\", rotationY: \"180\" },\n pseudoLeft: { rotationX: \"-180\", rotationY: \"0\" },\n left: { rotationX: \"0\", rotationY: \"-180\" }\n};\nfunction fr(t, e) {\n return Ye(t, e), Ne(t, !0);\n}\nfunction Ne(t, e = !1) {\n const { direction: n = \"right\" } = t.namedEffect, [a] = Fe(), { rotationX: o, rotationY: r } = lr[n], s = {\n \"--motion-rotate-x\": `${o}deg`,\n \"--motion-rotate-y\": `${r}deg`\n };\n return [\n {\n ...t,\n name: a,\n easing: \"quadOut\",\n custom: s,\n keyframes: [\n {\n offset: 0,\n opacity: 0,\n easing: \"step-end\"\n },\n {\n offset: I,\n opacity: 0,\n transform: `perspective(200px) translateZ(calc(var(--motion-width, 300px) * -3)) rotateX(${g(\n s,\n \"--motion-rotate-x\",\n e\n )}) rotateY(${g(\n s,\n \"--motion-rotate-y\",\n e\n )}) translateZ(calc(var(--motion-width, 300px) * 3)) rotateZ(var(--comp-rotate-z, 0deg))`\n },\n {\n opacity: \"var(--comp-opacity, 1)\",\n transform: \"perspective(200px) translateZ(calc(var(--motion-width, 300px) * -3)) rotateX(0deg) rotateY(0deg) translateZ(calc(var(--motion-width, 300px) * 3)) rotateZ(var(--comp-rotate-z, 0deg))\"\n }\n ]\n }\n ];\n}\nfunction Ye(t, e) {\n if (e) {\n let n;\n e.measure((a) => {\n a && (n = a.getBoundingClientRect().width);\n }), e.mutate((a) => {\n a?.style.setProperty(\"--motion-width\", `${n}px`);\n });\n }\n}\nconst mr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Fe,\n prepare: Ye,\n style: Ne,\n web: fr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Xe(t) {\n return [\"motion-circleXIn\", \"motion-circleYIn\"];\n}\nconst ur = 45;\nfunction dr(t, e) {\n return De(t, e), Ce(t, !0);\n}\nfunction Ce(t, e = !1) {\n const { direction: n = \"right\" } = t.namedEffect, [a, o] = Xe(), r = n === \"right\" ? \"calc(100vw - var(--motion-left, 0px))\" : \"calc(var(--motion-left, 0px) * -1 - 100%)\", s = \"min(calc(100% * -1.5), max(-300px, calc(100% * -5.5)))\", i = {\n \"--motion-translate-x\": r\n }, c = {\n \"--motion-translate-y\": s,\n \"--motion-rotate-z\": `${(n === \"right\" ? 1 : -1) * ur}deg`\n };\n return [\n {\n ...t,\n name: a,\n easing: \"circOut\",\n custom: i,\n keyframes: [\n {\n offset: I,\n translate: g(i, \"--motion-translate-x\", e)\n },\n {\n translate: \"0\"\n }\n ]\n },\n {\n ...t,\n name: o,\n easing: \"linear\",\n custom: c,\n keyframes: [\n {\n offset: 0,\n opacity: 0,\n easing: \"step-end\"\n },\n {\n offset: I,\n opacity: 0,\n transform: `translateY(${g(\n c,\n \"--motion-translate-y\",\n e\n )}) rotate(calc(var(--comp-rotate-z, 0deg) + ${g(\n c,\n \"--motion-rotate-z\",\n e\n )}))`\n },\n {\n opacity: \"var(--comp-opacity, 1)\",\n transform: \"translateY(0) rotate(var(--comp-rotate-z, 0deg))\"\n }\n ]\n }\n ];\n}\nfunction De(t, e) {\n if (e) {\n let n = 0;\n e.measure((a) => {\n a && (n = a.getBoundingClientRect().left);\n }), e.mutate((a) => {\n a?.style.setProperty(\"--motion-left\", `${n}px`);\n });\n }\n}\nconst pr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Xe,\n prepare: De,\n style: Ce,\n web: dr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Ve(t) {\n return [\"motion-fadeIn\", \"motion-dropIn\"];\n}\nconst st = {\n soft: { scale: 1.2, ease: \"cubicInOut\" },\n medium: { scale: 1.6, ease: \"quintInOut\" },\n hard: { scale: 2, ease: \"backOut\" }\n};\nfunction gr(t) {\n return je(t, !0);\n}\nfunction je(t, e = !1) {\n const { power: n, initialScale: a = st.medium.scale } = t.namedEffect, [o, r] = Ve(), s = n && st[n].scale || a, i = n && st[n].ease || t.easing || \"quintInOut\", c = {\n \"--motion-scale\": `${s}`\n };\n return [\n {\n ...t,\n name: o,\n easing: \"quadOut\",\n duration: t.duration * 0.8,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: r,\n easing: i,\n custom: c,\n keyframes: [\n {\n offset: I,\n scale: g(c, \"--motion-scale\", e)\n },\n {\n scale: \"1\"\n }\n ]\n }\n ];\n}\nconst yr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Ve,\n style: je,\n web: gr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Ze(t) {\n return [\"motion-fadeIn\", \"motion-expandIn\"];\n}\nconst Jt = {\n soft: 0.8,\n medium: 0.6,\n hard: 0\n}, $r = {\n top: { x: 0, y: -0.5 },\n \"top-right\": { x: 0.5, y: -0.5 },\n right: { x: 0.5, y: 0 },\n \"bottom-right\": { x: 0.5, y: 0.5 },\n bottom: { x: 0, y: 0.5 },\n \"bottom-left\": { x: -0.5, y: 0.5 },\n left: { x: -0.5, y: 0 },\n \"top-left\": { x: -0.5, y: -0.5 },\n center: { x: 0, y: 0 }\n};\nfunction hr(t, e) {\n return Le(t, e), Be(t, !0);\n}\nfunction Be(t, e = !1) {\n const {\n power: n,\n initialScale: a = 0,\n direction: o = \"center\"\n } = t.namedEffect, [r, s] = Ze(), i = t.easing || \"cubicInOut\", c = n && n in Jt ? Jt[n] : a, { x: m, y: l } = $r[o], f = {\n \"--motion-translate-x\": m,\n \"--motion-translate-y\": l,\n \"--motion-scale\": c\n }, u = g(f, \"--motion-translate-x\", e), d = g(f, \"--motion-translate-y\", e), p = g(f, \"--motion-scale\", e);\n return [\n {\n ...t,\n name: r,\n easing: \"linear\",\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: s,\n easing: i,\n custom: f,\n keyframes: [\n {\n offset: I,\n transform: `translateX(calc(var(--motion-width, 100%) * ${u})) translateY(calc(var(--motion-height, 100%) * ${d})) scale(${p}) translateX(calc(var(--motion-width, 100%) * -1 * ${u})) translateY(calc(var(--motion-height, 100%) * -1 * ${d})) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n transform: `translateX(calc(var(--motion-width, 100%) * ${u})) translateY(calc(var(--motion-height, 100%) * ${d})) scale(1) translateX(calc(var(--motion-width, 100%) * -1 * ${u})) translateY(calc(var(--motion-height, 100%) * -1 * ${d})) rotate(var(--comp-rotate-z, 0deg))`\n }\n ]\n }\n ];\n}\nfunction Le(t, e) {\n if (e) {\n let n, a;\n e.measure((o) => {\n if (!o)\n return;\n const r = o.getBoundingClientRect();\n n = r.width, a = r.height;\n }), e.mutate((o) => {\n o?.style.setProperty(\"--motion-width\", `${n}px`), o?.style.setProperty(\"--motion-height\", `${a}px`);\n });\n }\n}\nconst vr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Ze,\n prepare: Le,\n style: Be,\n web: hr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Ge(t) {\n return [\"motion-fadeIn\"];\n}\nfunction Or(t) {\n return qe(t);\n}\nfunction qe(t) {\n const [e] = Ge();\n return [\n {\n ...t,\n name: e,\n easing: \"sineInOut\",\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n }\n ];\n}\nconst _r = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Ge,\n style: qe,\n web: Or\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction He(t) {\n return [\"motion-fadeIn\", \"motion-flipIn\"];\n}\nconst xr = [\"top\", \"right\", \"bottom\", \"left\"], Ke = {\n soft: 45,\n medium: 90,\n hard: 270\n};\nfunction Ue(t, e) {\n return {\n x: Qt[t].x * e,\n y: Qt[t].y * e\n };\n}\nconst Qt = {\n top: { x: 1, y: 0 },\n right: { x: 0, y: 1 },\n bottom: { x: -1, y: 0 },\n left: { x: 0, y: -1 }\n};\nfunction br(t, e) {\n return Qe(t, e), Je(t);\n}\nfunction Je(t) {\n const {\n direction: e = \"top\",\n power: n,\n initialRotate: a = 90\n } = t.namedEffect, [o, r] = He(), s = n && Ke[n] || a, i = t.easing || \"backOut\", c = Ue(e, s), m = {\n \"--motion-rotate-x\": `${c.x}deg`,\n \"--motion-rotate-y\": `${c.y}deg`\n };\n return [\n {\n ...t,\n easing: \"quadOut\",\n name: o,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n easing: i,\n name: r,\n custom: m,\n keyframes: [\n {\n offset: I,\n transform: `perspective(800px) rotate(var(--comp-rotate-z, 0deg)) rotateX(var(--motion-rotate-x , ${m[\"--motion-rotate-x\"]})) rotateY(var(--motion-rotate-y , ${m[\"--motion-rotate-y\"]}))`\n },\n {\n transform: \"perspective(800px) rotate(var(--comp-rotate-z, 0deg)) rotateX(0deg) rotateY(0deg)\"\n }\n ]\n }\n ];\n}\nfunction Qe(t, e) {\n const {\n direction: n = \"top\",\n power: a,\n initialRotate: o = 90\n } = t.namedEffect, r = a && Ke[a] || o;\n if (e) {\n let s = n;\n e.measure((i) => {\n if (!i)\n return;\n const c = getComputedStyle(i).getPropertyValue(\"--comp-rotate-z\") || \"0deg\";\n s = R(\n xr,\n n,\n parseInt(c, 10)\n );\n }), e.mutate((i) => {\n const c = Ue(s, r);\n i?.style.setProperty(\"--motion-rotate-x\", `${c.x}deg`), i?.style.setProperty(\"--motion-rotate-y\", `${c.y}deg`);\n });\n }\n}\nconst Er = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: He,\n prepare: Qe,\n style: Je,\n web: br\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction We(t) {\n return [\"motion-floatIn\"];\n}\nconst Ir = {\n top: { dx: 0, dy: -1, distance: 120 },\n right: { dx: 1, dy: 0, distance: 120 },\n bottom: { dx: 0, dy: 1, distance: 120 },\n left: { dx: -1, dy: 0, distance: 120 }\n};\nfunction wr(t) {\n return tn(t, !0);\n}\nfunction tn(t, e = !1) {\n const { direction: n = \"left\" } = t.namedEffect, [a] = We(), o = Ir[n], r = o.dx * o.distance, s = o.dy * o.distance, i = {\n \"--motion-translate-x\": `${r}px`,\n \"--motion-translate-y\": `${s}px`\n };\n return [\n {\n ...t,\n name: a,\n easing: \"sineInOut\",\n custom: i,\n keyframes: [\n {\n offset: 0,\n opacity: 0,\n easing: \"step-end\"\n },\n {\n offset: I,\n opacity: 0,\n transform: `translate(${g(\n i,\n \"--motion-translate-x\",\n e\n )}, ${g(\n i,\n \"--motion-translate-y\",\n e\n )}) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n opacity: \"var(--comp-opacity, 1)\",\n transform: \"translate(0, 0) rotate(var(--comp-rotate-z, 0deg))\"\n }\n ]\n }\n ];\n}\nconst Pr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: We,\n style: tn,\n web: wr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction en(t) {\n return [\"motion-fadeIn\", \"motion-foldIn\"];\n}\nconst nn = {\n soft: 35,\n medium: 60,\n hard: 90\n}, Ar = [\"top\", \"right\", \"bottom\", \"left\"], at = {\n top: { x: -1, y: 0, origin: { x: 0, y: -50 } },\n right: { x: 0, y: -1, origin: { x: 50, y: 0 } },\n bottom: { x: 1, y: 0, origin: { x: 0, y: 50 } },\n left: { x: 0, y: 1, origin: { x: -50, y: 0 } }\n};\nfunction an(t, e) {\n return {\n x: at[t].x * e,\n y: at[t].y * e\n };\n}\nfunction Sr(t, e) {\n return rn(t, e), on(t);\n}\nfunction on(t) {\n const {\n direction: e = \"top\",\n power: n,\n initialRotate: a = 90\n } = t.namedEffect, [o, r] = en(), s = t.easing || \"backOut\", i = n && nn[n] || a, { x: c, y: m } = at[e].origin, l = an(e, i), f = {\n \"--motion-origin-x\": `${c}%`,\n \"--motion-origin-y\": `${m}%`,\n \"--motion-rotate-x\": `${l.x}deg`,\n \"--motion-rotate-y\": `${l.y}deg`\n };\n return [\n {\n ...t,\n easing: \"quadOut\",\n name: o,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n easing: s,\n name: r,\n custom: f,\n keyframes: [\n {\n offset: I,\n transform: `rotate(var(--comp-rotate-z, 0deg)) translate(var(--motion-origin-x ,${f[\"--motion-origin-x\"]}), var(--motion-origin-y, ${f[\"--motion-origin-y\"]})) perspective(800px) rotateX(var(--motion-rotate-x, ${f[\"--motion-rotate-x\"]})) rotateY(var(--motion-rotate-y, ${f[\"--motion-rotate-y\"]})) translate(calc(-1 * var(--motion-origin-x ,${f[\"--motion-origin-x\"]})), calc(-1 * var(--motion-origin-y, ${f[\"--motion-origin-y\"]})))`\n },\n {\n transform: `rotate(var(--comp-rotate-z, 0deg)) translate(var(--motion-origin-x ,${f[\"--motion-origin-x\"]}), var(--motion-origin-y, ${f[\"--motion-origin-y\"]})) perspective(800px) rotateX(0deg) rotateY(0deg) translate(calc(-1 * var(--motion-origin-x ,${f[\"--motion-origin-x\"]})), calc(-1 * var(--motion-origin-y, ${f[\"--motion-origin-y\"]})))`\n }\n ]\n }\n ];\n}\nfunction rn(t, e) {\n const {\n direction: n = \"top\",\n power: a,\n initialRotate: o = 90\n } = t.namedEffect, r = a && nn[a] || o;\n if (e) {\n let s = n;\n e.measure((i) => {\n if (!i)\n return;\n const c = getComputedStyle(i).getPropertyValue(\"--comp-rotate-z\") || \"0deg\";\n s = R(\n Ar,\n n,\n parseInt(c, 10)\n );\n }), e.mutate((i) => {\n const { origin: c } = at[s], m = an(s, r);\n i?.style.setProperty(\"--motion-origin-x\", `${c.x}%`), i?.style.setProperty(\"--motion-origin-y\", `${c.y}%`), i?.style.setProperty(\"--motion-rotate-x\", `${m.x}deg`), i?.style.setProperty(\"--motion-rotate-y\", `${m.y}deg`);\n });\n }\n}\nconst Tr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: en,\n prepare: rn,\n style: on,\n web: Sr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Et(t) {\n return [\"motion-glideIn\"];\n}\nconst kr = {\n soft: \"cubicInOut\",\n medium: \"quintInOut\",\n hard: \"backOut\"\n};\nfunction sn(t, e) {\n return wt(t, e), It(t, !0);\n}\nfunction It(t, e = !1) {\n const {\n direction: n = 0,\n distance: a = { value: 100, type: \"percentage\" },\n power: o,\n startFromOffScreen: r = !1\n } = t.namedEffect, [s] = Et(), i = n * Math.PI / 180, c = S(a.type), m = o && kr[o] || t.easing || \"quintInOut\", { x: l, y: f } = Za(n), u = r ? l : `${Math.sin(i) * a.value | 0}${c}`, d = r ? f : `${Math.cos(i) * a.value * -1 | 0}${c}`, p = {\n \"--motion-translate-x\": `${u}`,\n \"--motion-translate-y\": `${d}`\n };\n return [\n {\n ...t,\n name: s,\n easing: m,\n custom: p,\n keyframes: [\n {\n offset: 0,\n opacity: 0,\n easing: \"step-end\"\n },\n {\n offset: I,\n // TODO: remove opacity when not necessary to override hard-coded opacity:0 in style\n opacity: \"var(--comp-opacity, 1)\",\n transform: `translate(${g(\n p,\n \"--motion-translate-x\",\n e\n )}, ${g(\n p,\n \"--motion-translate-y\",\n e\n )}) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n opacity: \"var(--comp-opacity, 1)\",\n transform: \"translate(0, 0) rotate(var(--comp-rotate-z, 0deg))\"\n }\n ]\n }\n ];\n}\nfunction wt(t, e) {\n const { startFromOffScreen: n = !1 } = t.namedEffect;\n if (e && n) {\n let a = 0, o = 0;\n e.measure((r) => {\n if (!r)\n return;\n const { left: s, top: i } = r.getBoundingClientRect();\n a = s, o = i;\n }), e.mutate((r) => {\n r?.style.setProperty(\"--motion-left\", `${a}px`), r?.style.setProperty(\"--motion-top\", `${o}px`);\n });\n }\n}\nconst Mr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Et,\n prepare: wt,\n style: It,\n web: sn\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction cn(t) {\n const e = JSON.parse(JSON.stringify(t)), { direction: n } = e.namedEffect;\n return e.namedEffect.startFromOffScreen ? e.namedEffect.direction = (n ?? 270) - 90 : typeof n > \"u\" && (e.namedEffect.direction = 270), e;\n}\nfunction Rr(t, e) {\n return sn(cn(t), e);\n}\nfunction zr(t) {\n return It(cn(t));\n}\nconst Fr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Et,\n prepare: wt,\n style: zr,\n web: Rr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ln(t) {\n return [\"motion-fadeIn\", \"motion-growIn\"];\n}\nconst Nr = {\n soft: 0.8,\n medium: 0.6,\n hard: 0\n};\nfunction Yr(t) {\n return fn(t, !0);\n}\nfunction fn(t, e = !1) {\n const {\n power: n,\n initialScale: a = 0,\n distance: o = { value: 120, type: \"percentage\" },\n direction: r = 0\n } = t.namedEffect, [s, i] = ln(), c = t.easing || \"cubicInOut\", m = typeof n < \"u\" ? Nr[n] : a, l = r * Math.PI / 180, f = S(o.type), u = `${Math.sin(l) * o.value | 0}${f}`, d = `${Math.cos(l) * o.value * -1 | 0}${f}`, p = {\n \"--motion-translate-x\": `${u}`,\n \"--motion-translate-y\": `${d}`,\n \"--motion-scale\": `${m}`\n };\n return [\n {\n ...t,\n easing: c,\n duration: t.duration * m,\n name: s,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n easing: c,\n name: i,\n custom: p,\n keyframes: [\n {\n offset: I,\n transform: `translate(${g(\n p,\n \"--motion-translate-x\",\n e\n )}, ${g(\n p,\n \"--motion-translate-y\",\n e\n )}) rotate(var(--comp-rotate-z, 0deg)) scale(${g(\n p,\n \"--motion-scale\",\n e\n )})`\n },\n {\n transform: \"translate(0px, 0px) rotate(var(--comp-rotate-z, 0deg)) scale(1)\"\n }\n ]\n }\n ];\n}\nconst Xr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: ln,\n style: fn,\n web: Yr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction mn(t) {\n return [\"motion-fadeIn\", \"motion-punchIn\"];\n}\nconst Cr = {\n \"top-left\": { y: -1, x: -1 },\n \"top-right\": { y: -1, x: 1 },\n \"bottom-right\": { y: 1, x: 1 },\n \"bottom-left\": { y: 1, x: -1 },\n center: { y: 0, x: 0 }\n}, Dr = {\n soft: \"sineIn\",\n medium: \"quadIn\",\n hard: \"quintIn\"\n};\nfunction Vr(t, e, n) {\n return {\n x: `calc(var(--motion-width, 100%) * 1.1 / 3 * ${t} * ${n})`,\n y: `calc(var(--motion-height, 100%) * 1.1 / 3 * ${e} * ${n})`\n };\n}\nfunction jr(t, e) {\n return dn(t, e), un(t, !0);\n}\nfunction un(t, e = !1) {\n const { direction: n = \"top-right\", power: a = \"medium\" } = t.namedEffect, [o, r] = mn(), s = Cr[n], i = {\n x: `calc(var(--motion-width, 100%) * 1.1 / 2 * ${s.x})`,\n y: `calc(var(--motion-height, 100%) * 1.1 / 2 * ${s.y})`\n }, { in: c, out: m } = H(Dr[a]), f = [\n { offset: 30, scale: 0.3, factor: 1, ease: \"linear\" },\n { offset: 45, scale: 1.4, factor: -0.4, ease: m },\n { offset: 62.65, scale: 0.8, factor: 0.2, ease: c },\n { offset: 77.27, scale: 1.1, factor: -0.1, ease: m },\n { offset: 86.23, scale: 0.94, factor: 0.06, ease: c },\n { offset: 91.73, scale: 1.03, factor: -0.03, ease: m },\n { offset: 95.11, scale: 0.98, factor: 0.02, ease: c },\n { offset: 97.18, scale: 1.01, factor: -0.01, ease: m },\n { offset: 98.45, scale: 0.99, factor: 0.01, ease: c },\n { offset: 100, scale: 1, factor: 0, ease: m }\n ].map(({ offset: d, scale: p, ease: y, factor: $ }) => {\n const { x: O, y: _ } = Vr(\n s.x,\n s.y,\n $\n );\n return {\n offset: d / 100,\n easing: E(y),\n scale: `${p}`,\n translate: `${O} ${_}`\n };\n }), u = {\n \"--motion-translate\": `${i.x} ${i.y}`\n };\n return [\n {\n ...t,\n easing: \"cubicIn\",\n duration: t.duration * 0.3,\n name: o,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n easing: \"linear\",\n name: r,\n custom: u,\n keyframes: [\n {\n offset: I,\n translate: g(u, \"--motion-translate\", e),\n scale: \"0\",\n easing: X.expoIn\n },\n ...f\n ]\n }\n ];\n}\nfunction dn(t, e) {\n if (e) {\n let n, a;\n e.measure((o) => {\n if (!o)\n return;\n const r = o.getBoundingClientRect();\n n = r.width, a = r.height;\n }), e.mutate((o) => {\n o?.style.setProperty(\"--motion-width\", `${n}px`), o?.style.setProperty(\"--motion-height\", `${a}px`);\n });\n }\n}\nconst Zr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: mn,\n prepare: dn,\n style: un,\n web: jr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction pn(t) {\n return [\"motion-fadeIn\", \"motion-shapeIn\"];\n}\nconst Br = {\n diamond: {\n start: \"polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%)\",\n end: \"polygon(50% -50%, 150% 50%, 50% 150%, -50% 50%)\"\n },\n window: {\n start: \"inset(50% round 50% 50% 0% 0%)\",\n end: \"inset(-20% round 50% 50% 0% 0%)\"\n },\n rectangle: { start: \"inset(50%)\", end: \"inset(0%)\" },\n circle: { start: \"circle(0%)\", end: \"circle(75%)\" },\n ellipse: { start: \"ellipse(0% 0%)\", end: \"ellipse(75% 75%)\" }\n};\nfunction Lr(t) {\n return gn(t, !0);\n}\nfunction gn(t, e = !1) {\n const { shape: n = \"rectangle\" } = t.namedEffect, [a, o] = pn(), r = t.easing || \"cubicInOut\", { start: s, end: i } = Br[n], c = {\n \"--motion-shape-start\": s,\n \"--motion-shape-end\": i\n };\n return [\n {\n ...t,\n name: a,\n easing: \"quadOut\",\n duration: t.duration * 0.8,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: o,\n easing: r,\n custom: c,\n keyframes: [\n {\n offset: I,\n clipPath: g(c, \"--motion-shape-start\", e)\n },\n {\n clipPath: g(c, \"--motion-shape-end\", e)\n }\n ]\n }\n ];\n}\nconst Gr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: pn,\n style: gn,\n web: Lr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction yn(t) {\n return [\"motion-revealIn\"];\n}\nconst qr = [\"top\", \"right\", \"bottom\", \"left\"];\nfunction $n(t, e) {\n const n = R(\n qr,\n e,\n t\n );\n return P({\n direction: n,\n minimum: 0\n });\n}\nfunction Hr(t, e) {\n return vn(t, e), hn(t);\n}\nfunction hn(t) {\n const { direction: e = \"left\" } = t.namedEffect, [n] = yn(), a = t.easing || \"cubicInOut\", o = $n(0, e), r = P({ direction: \"initial\" });\n return [\n {\n ...t,\n easing: a,\n name: n,\n custom: {\n \"--motion-clip-start\": o\n },\n keyframes: [\n {\n offset: 0,\n opacity: 0,\n easing: \"step-end\"\n },\n {\n offset: I,\n opacity: \"var(--comp-opacity, 1)\",\n clipPath: `var(--motion-clip-start, ${o})`\n },\n {\n clipPath: r\n }\n ]\n }\n ];\n}\nfunction vn(t, e) {\n const { direction: n = \"left\" } = t.namedEffect;\n if (e) {\n let a = \"0deg\";\n e.measure((o) => {\n o && (a = getComputedStyle(o).getPropertyValue(\"--comp-rotate-z\") || \"0deg\");\n }), e.mutate((o) => {\n o?.style.setProperty(\n \"--motion-clip-start\",\n $n(parseInt(a, 10), n)\n );\n });\n }\n}\nconst Kr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: yn,\n prepare: vn,\n style: hn,\n web: Hr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction On(t) {\n const { power: e } = t.namedEffect;\n return e !== \"hard\" ? [\"motion-slideIn\", \"motion-fadeIn\"] : [\"motion-slideIn\"];\n}\nconst G = {\n top: { dx: 0, dy: -1, clip: \"bottom\" },\n right: { dx: 1, dy: 0, clip: \"left\" },\n bottom: { dx: 0, dy: 1, clip: \"top\" },\n left: { dx: -1, dy: 0, clip: \"right\" }\n}, Ur = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n], _n = {\n soft: 0.2,\n medium: 0.8,\n hard: 1\n};\nfunction Jr(t, e) {\n const n = xn(t);\n return bn(t, e), n;\n}\nfunction xn(t) {\n const {\n direction: e = \"left\",\n power: n,\n initialTranslate: a = 1\n } = t.namedEffect, [o, r] = On(t), s = t.easing || \"cubicInOut\", c = 100 - (n && _n[n] || a) * 100, m = P({\n direction: e,\n minimum: c\n }), l = P({ direction: \"initial\" }), f = {\n \"--motion-clip-start\": m,\n \"--motion-translate-x\": `${G[e].dx * 100}%`,\n \"--motion-translate-y\": `${G[e].dy * 100}%`\n }, u = [\n {\n ...t,\n name: o,\n easing: s,\n custom: f,\n keyframes: [\n {\n offset: I,\n opacity: \"var(--comp-opacity, 1)\",\n transform: \"rotate(var(--comp-rotate-z, 0deg)) translate(var(--motion-translate-x, -100%), var(--motion-translate-y, 0%))\",\n clipPath: `var(--motion-clip-start, ${f[\"--motion-clip-start\"]})`\n },\n {\n transform: \"rotate(var(--comp-rotate-z, 0deg)) translate(0px, 0px)\",\n clipPath: l\n }\n ]\n }\n ];\n return n !== \"hard\" ? u.push({\n ...t,\n easing: \"cubicInOut\",\n name: r,\n // @ts-expect-error\n custom: {},\n keyframes: [\n // @ts-expect-error\n { offset: 0, opacity: 0 },\n // @ts-expect-error\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n }) : u[0].keyframes.unshift({\n offset: 0,\n // @ts-expect-error\n opacity: 0,\n easing: \"step-end\"\n }), u;\n}\nfunction bn(t, e) {\n const {\n direction: n = \"left\",\n power: a,\n initialTranslate: o = 1\n } = t.namedEffect, s = 100 - (a && _n[a] || o) * 100;\n if (e) {\n let i = 0;\n e.measure((c) => {\n c && (i = parseInt(\n getComputedStyle(c).getPropertyValue(\"--comp-rotate-z\") || \"0deg\",\n 10\n ));\n }), e.mutate((c) => {\n const m = R(\n Ur,\n n,\n i\n );\n c?.style.setProperty(\n \"--motion-clip-start\",\n P({\n direction: G[m].clip,\n minimum: s\n })\n ), c?.style.setProperty(\n \"--motion-translate-x\",\n `${G[m].dx * 100}%`\n ), c?.style.setProperty(\n \"--motion-translate-y\",\n `${G[m].dy * 100}%`\n );\n });\n }\n}\nconst Qr = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: On,\n prepare: bn,\n style: xn,\n web: Jr\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction En(t) {\n return [\"motion-fadeIn\", \"motion-spinIn\"];\n}\nconst Wr = {\n soft: 1,\n medium: 0.6,\n hard: 0\n}, ts = {\n clockwise: -1,\n \"counter-clockwise\": 1\n};\nfunction es(t) {\n return In(t, !0);\n}\nfunction In(t, e = !1) {\n const {\n direction: n = \"clockwise\",\n spins: a = 0.5,\n initialScale: o = 0,\n power: r\n } = t.namedEffect, [s, i] = En(), c = t.easing || \"cubicInOut\", m = typeof r < \"u\" ? Wr[r] : o, l = (ts[n] > 0 ? 1 : -1) * 360 * a, f = {\n \"--motion-scale\": `${m}`,\n \"--motion-rotate\": `${l}deg`\n };\n return [\n {\n ...t,\n name: s,\n easing: \"cubicIn\",\n duration: t.duration * m,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: i,\n easing: c,\n custom: f,\n keyframes: [\n {\n offset: I,\n scale: g(f, \"--motion-scale\", e),\n rotate: g(f, \"--motion-rotate\", e)\n },\n {\n scale: \"1\",\n rotate: \"0deg\"\n }\n ]\n }\n ];\n}\nconst ns = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: En,\n style: In,\n web: es\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction wn(t) {\n return [\"motion-fadeIn\", \"motion-tiltInRotate\", \"motion-tiltInClip\"];\n}\nconst as = {\n left: 30,\n right: -30\n}, os = [\n \"top\",\n \"right\",\n \"bottom\",\n \"left\"\n];\nfunction Pn(t) {\n const e = R(\n os,\n \"top\",\n t\n );\n return P({\n direction: e,\n minimum: 0\n });\n}\nfunction rs(t, e) {\n return Sn(t, e), An(t, !0);\n}\nfunction An(t, e = !1) {\n const { direction: n = \"left\" } = t.namedEffect, [a, o, r] = wn(), s = t.easing || \"cubicOut\", i = Pn(0), c = as[n], m = P({ direction: \"initial\" }), l = \"(var(--motion-height, 200px) / 2)\", f = {\n \"--motion-rotate-z\": `${c}deg`,\n \"--motion-clip-start\": i\n };\n return [\n {\n ...t,\n name: a,\n duration: t.duration * 0.2,\n easing: \"cubicOut\",\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: o,\n easing: s,\n custom: {},\n keyframes: [\n {\n offset: 0,\n easing: \"step-end\",\n transform: \"perspective(800px)\"\n },\n {\n offset: I,\n transform: `perspective(800px) translateZ(calc(${l} * -1)) rotateX(-90deg) translateZ(calc${l}) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n transform: `perspective(800px) translateZ(calc(${l} * -1)) rotateX(0deg) translateZ(calc${l}) rotate(var(--comp-rotate-z, 0deg))`\n }\n ]\n },\n {\n ...t,\n name: r,\n easing: s,\n composite: \"add\",\n duration: t.duration * 0.8,\n custom: f,\n keyframes: [\n {\n offset: I,\n clipPath: `var(--motion-clip-start, ${f[\"--motion-clip-start\"]})`,\n transform: `rotateZ(${g(\n f,\n \"--motion-rotate-z\",\n e\n )})`\n },\n {\n clipPath: m,\n transform: \"rotateZ(0deg)\"\n }\n ]\n }\n ];\n}\nfunction Sn(t, e) {\n if (e) {\n let n = \"0deg\";\n e.measure((a) => {\n a && (n = getComputedStyle(a).getPropertyValue(\"--comp-rotate-z\") || \"0deg\");\n }), e.mutate((a) => {\n a?.style.setProperty(\n \"--motion-clip-start\",\n Pn(parseInt(n, 10))\n );\n });\n }\n}\nconst ss = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: wn,\n prepare: Sn,\n style: An,\n web: rs\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Tn(t) {\n return [\"motion-fadeIn\", \"motion-turnIn\"];\n}\nconst Wt = {\n soft: \"cubicInOut\",\n medium: \"quintInOut\",\n hard: \"backOut\"\n}, te = {\n \"top-left\": {\n angle: -50,\n x: -50,\n y: -50\n },\n \"top-right\": {\n angle: 50,\n x: 50,\n y: -50\n },\n \"bottom-right\": {\n angle: 50,\n x: 50,\n y: 50\n },\n \"bottom-left\": {\n angle: -50,\n x: -50,\n y: 50\n }\n};\nfunction is(t) {\n return kn(t, !0);\n}\nfunction kn(t, e = !1) {\n const { direction: n = \"top-left\", power: a } = t.namedEffect, [o, r] = Tn(), s = a && Wt[a] ? Wt[a] : t.easing || \"backOut\", { x: i, y: c } = te[n], m = te[n].angle, l = {\n \"--motion-origin\": `${i}%, ${c}%`,\n \"--motion-origin-invert\": `${-i}%, ${-c}%`,\n \"--motion-rotate-z\": `${m}deg`\n }, f = g(l, \"--motion-origin\", e), u = g(\n l,\n \"--motion-origin-invert\",\n e\n );\n return [\n {\n ...t,\n name: o,\n duration: t.duration * 0.6,\n easing: \"sineIn\",\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n name: r,\n easing: s,\n custom: l,\n keyframes: [\n {\n offset: I,\n transform: `translate(${f}) rotate(${g(\n l,\n \"--motion-rotate-z\",\n e\n )}) translate(${u}) rotate(var(--comp-rotate-z, 0deg))`\n },\n {\n transform: `translate(${f}) rotate(0deg) translate(${u}) rotate(var(--comp-rotate-z, 0deg))`\n }\n ]\n }\n ];\n}\nconst cs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Tn,\n style: kn,\n web: is\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction Mn(t) {\n return [\"motion-fadeIn\", \"motion-winkInClip\", \"motion-winkInRotate\"];\n}\nconst _t = {\n vertical: { scaleY: 0, scaleX: 1 },\n horizontal: { scaleY: 1, scaleX: 0 }\n}, Rn = [\"vertical\", \"horizontal\"];\nfunction ls(t, e) {\n return Fn(t, e), zn(t);\n}\nfunction zn(t) {\n const { direction: e = \"horizontal\" } = t.namedEffect, [n, a, o] = Mn(), r = R(\n Rn,\n e,\n 0\n ), { scaleX: s, scaleY: i } = _t[r], c = t.easing || \"quintInOut\", m = P({ direction: e, minimum: 100 }), l = P({ direction: \"initial\" }), f = {\n \"--motion-scale-x\": s,\n \"--motion-scale-y\": i,\n \"--motion-clip-start\": m\n };\n return [\n {\n ...t,\n easing: \"quadOut\",\n name: n,\n custom: {},\n keyframes: [\n { offset: 0, opacity: 0 },\n { opacity: \"var(--comp-opacity, 1)\" }\n ]\n },\n {\n ...t,\n easing: c,\n name: a,\n custom: f,\n keyframes: [\n {\n offset: I,\n clipPath: `var(--motion-clip-start, ${f[\"--motion-clip-start\"]})`\n },\n {\n clipPath: l\n }\n ]\n },\n {\n ...t,\n duration: t.duration * 0.85,\n easing: c,\n name: o,\n custom: f,\n keyframes: [\n {\n offset: I,\n transform: `rotate(var(--comp-rotate-z, 0deg)) scale(var(--motion-scale-x, ${f[\"--motion-scale-x\"]}), var(--motion-scale-y, ${f[\"--motion-scale-y\"]}))`\n },\n {\n transform: \"rotate(var(--comp-rotate-z, 0deg)) scale(1, 1)\"\n }\n ]\n }\n ];\n}\nfunction Fn(t, e) {\n const { direction: n = \"horizontal\" } = t.namedEffect;\n if (e) {\n let a = _t.horizontal, o = P({\n direction: \"horizontal\",\n minimum: 100\n });\n e.measure((r) => {\n if (!r)\n return;\n const s = getComputedStyle(r).getPropertyValue(\"--comp-rotate-z\") || \"0\", i = R(\n Rn,\n n,\n parseInt(s, 10)\n );\n a = _t[i], o = P({\n direction: i,\n minimum: 100\n });\n }), e.mutate((r) => {\n r?.style.setProperty(\"--motion-clip-start\", o), r?.style.setProperty(\"--motion-scale-x\", `${a.scaleX}`), r?.style.setProperty(\"--motion-scale-y\", `${a.scaleY}`);\n });\n }\n}\nconst fs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Mn,\n prepare: Fn,\n style: zn,\n web: ls\n}, Symbol.toStringTag, { value: \"Module\" })), ee = {\n ArcIn: Qo,\n BlurIn: tr,\n ShuttersIn: nr,\n BounceIn: cr,\n CurveIn: mr,\n CircleIn: pr,\n DropIn: yr,\n ExpandIn: vr,\n FadeIn: _r,\n FlipIn: Er,\n FloatIn: Pr,\n FoldIn: Tr,\n GlideIn: Mr,\n GlitchIn: Fr,\n GrowIn: Xr,\n PunchIn: Zr,\n ShapeIn: Gr,\n RevealIn: Kr,\n SlideIn: Qr,\n SpinIn: ns,\n TiltIn: ss,\n TurnIn: cs,\n WinkIn: fs\n}, it = {\n soft: 1,\n medium: 2,\n hard: 3\n}, ms = [\n { keyframe: 0, translateY: 0 },\n { keyframe: 8.8, translateY: -55 },\n { keyframe: 17.6, translateY: -87 },\n { keyframe: 26.5, translateY: -98 },\n { keyframe: 35.3, translateY: -87 },\n { keyframe: 44.1, translateY: -55 },\n { keyframe: 53.1, translateY: 0 },\n { keyframe: 66.2, translateY: -23 },\n { keyframe: 81, translateY: 0 },\n { keyframe: 86.8, translateY: -5 },\n { keyframe: 94.1, translateY: 0 },\n { keyframe: 97.1, translateY: -2 },\n { keyframe: 100, translateY: 0 }\n];\nfunction us(t, e) {\n return Nn(t, !0);\n}\nfunction Nn(t, e = !1) {\n const { power: n = \"soft\", intensity: a } = t.namedEffect, o = t.duration || 1, r = t.delay || 0, s = b(o, r), [i] = Yn(t), c = a ? h(\n 0,\n 1,\n it.soft,\n it.hard,\n a\n ) : it[n], m = E(\"sineOut\"), l = {\n \"--motion-bounce-factor\": c\n }, f = ms.map(({ keyframe: u, translateY: d }) => ({\n offset: u / 100 * s,\n translate: `0px calc(${d / 2}px * ${g(\n l,\n \"--motion-bounce-factor\",\n e\n )})`,\n easing: m\n }));\n return [\n {\n ...t,\n name: i,\n delay: 0,\n easing: \"linear\",\n duration: o + r,\n custom: l,\n keyframes: f\n }\n ];\n}\nfunction Yn(t) {\n return [`motion-bounce-${b(t.duration, t.delay, !0)}`];\n}\nconst ds = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Yn,\n style: Nn,\n web: us\n}, Symbol.toStringTag, { value: \"Module\" })), ps = {\n vertical: { x: 0, y: 1, z: 0 },\n horizontal: { x: 1, y: 0, z: 0 },\n center: { x: 0, y: 0, z: 1 }\n}, gs = [\n { translateFactor: 1, timeFactor: 0.25 },\n { translateFactor: -1, timeFactor: 0.5 },\n { translateFactor: 1, timeFactor: 0.5 },\n { translateFactor: -0.7, timeFactor: 0.5 },\n { translateFactor: 0.6, timeFactor: 0.3333 }\n];\nfunction ys(t, e) {\n return Xn(t, !0);\n}\nfunction Xn(t, e = !1) {\n const { direction: n = \"vertical\", distance: a = { value: 25, type: \"px\" } } = t.namedEffect, o = t.easing || \"sineInOut\", r = t.duration || 1, s = t.delay || 0, i = 3.2 * r + s, c = b(\n r,\n i - r\n ), [m] = Cn(t), { x: l, y: f, z: u } = ps[n], d = H(o), y = {\n \"--motion-breathe-perspective\": n === \"center\" ? \"perspective(800px)\" : \"\",\n \"--motion-breathe-distance\": `${a.value}${S(\n a.type || \"px\"\n )}`,\n \"--motion-breathe-x\": l,\n \"--motion-breathe-y\": f,\n \"--motion-breathe-z\": u\n }, $ = `${g(y, \"--motion-breathe-x\", e)}`, O = `${g(y, \"--motion-breathe-y\", e)}`, _ = `${g(y, \"--motion-breathe-z\", e)}`, v = `${g(\n y,\n \"--motion-breathe-perspective\",\n e,\n \" \"\n )}`, x = `${g(\n y,\n \"--motion-breathe-distance\",\n e\n )}`;\n let A = 0;\n const w = s ? gs.map(({ translateFactor: z, timeFactor: K }) => {\n const F = A + K * c;\n A = F;\n const L = `${x} * ${z}`;\n return {\n offset: F,\n easing: E(d.inOut),\n transform: `${v} translate3d(calc(${$} * ${L}), calc(${O} * ${L}), calc(${_} * ${L})) rotateZ(var(--comp-rotate-z, 0deg))`\n };\n }) : [\n {\n offset: 0.25,\n easing: E(d.inOut),\n transform: `${v} translate3d(calc(${$} * ${x}), calc(${O} * ${x}), calc(${_} * ${x})) rotateZ(var(--comp-rotate-z, 0deg))`\n },\n {\n offset: 0.75,\n easing: E(d.in),\n transform: `${v} translate3d(calc(${$} * -1 * ${x}), calc(${O} * -1 * ${x}), calc(${_} * -1 * ${x})) rotateZ(var(--comp-rotate-z, 0deg))`\n }\n ];\n return [\n {\n ...t,\n name: m,\n easing: \"linear\",\n delay: 0,\n duration: s ? i : r,\n custom: y,\n keyframes: [\n {\n offset: 0,\n easing: E(d.out),\n transform: `${v} translate3d(0, 0, 0) rotateZ(var(--comp-rotate-z, 0deg))`\n },\n ...w,\n {\n offset: 1,\n transform: `${v} translate3d(0, 0, 0) rotateZ(var(--comp-rotate-z, 0deg))`\n }\n ]\n }\n ];\n}\nfunction Cn(t) {\n return [`motion-breathe-${b(t.duration, t.delay, !0)}`];\n}\nconst $s = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Cn,\n style: Xn,\n web: ys\n}, Symbol.toStringTag, { value: \"Module\" })), hs = {\n // 100cqw - left\n RIGHT: \"calc(var(--motion-parent-width, 100vw) - var(--motion-left, 0px))\",\n // left * -1 - width\n LEFT: \"calc(var(--motion-left, 0px) * -1 - var(--motion-width, 100%))\",\n // top * -1 - height\n TOP: \"calc(var(--motion-top, 0px) * -1 - var(--motion-height, 100%))\",\n // 100cqh - top\n BOTTOM: \"calc(var(--motion-parent-height, 100vh) - var(--motion-top, 0px))\"\n}, { RIGHT: D, LEFT: V, TOP: j, BOTTOM: Z } = hs, ne = {\n \"top-left\": {\n // min(100cqw - left, 100cqh - top)\n from: `min(${D}, ${Z})`,\n // min(abs(left * -1 - width), abs(top * -1 - height))\n to: `min(calc(${V} * -1), calc(${j} * -1))`\n },\n \"top-right\": {\n // min(abs(left * -1 - width), 100cqh - top)\n from: `min(calc(${V} * -1), ${Z})`,\n // min(100cqw - left, abs(top * -1 - height))\n to: `min(${D}, calc(${j} * -1))`\n },\n \"bottom-left\": {\n // min(100cqw - left, abs(top * -1 - height))\n from: `min(${D}, calc(${j} * -1))`,\n // min(abs(left * -1 - width), 100cqh - top)\n to: `min(calc(${V} * -1), ${Z})`\n },\n \"bottom-right\": {\n // min(abs(left * -1 - width), abs(top * -1 - height))\n from: `min(calc(${V} * -1), calc(${j} * -1))`,\n // min(100cqw - left, 100cqh - top)\n to: `min(${D}, ${Z})`\n }\n}, ct = {\n left: {\n from: `${D} 0`,\n to: `${V} 0`\n },\n right: {\n from: `${V} 0`,\n to: `${D} 0`\n },\n top: {\n from: `0 ${Z}`,\n to: `0 ${j}`\n },\n bottom: {\n from: `0 ${j}`,\n to: `0 ${Z}`\n }\n}, vs = {\n // (width + left) / (100cqw + width)\n left: ({ left: t, width: e, parentWidth: n }) => (e + t) / (n + e || 1),\n // (100cqw - left) / (100cqw + width)\n right: ({ left: t, width: e, parentWidth: n }) => (n - t) / (n + e || 1),\n // (100cqh - top) / (100cqh + height)\n bottom: ({ top: t, height: e, parentHeight: n }) => (n - t) / (n + e || 1),\n // (height + top) / (100cqh + height)\n top: ({ top: t, height: e, parentHeight: n }) => (e + t) / (n + e || 1),\n // min(<left>, <top>)\n \"bottom-right\": ({\n left: t,\n top: e,\n width: n,\n height: a,\n parentWidth: o,\n parentHeight: r\n }) => {\n const s = n + t, i = r - e;\n return s < i ? s / (o + n || 1) : i / (r + a || 1);\n },\n // min(<right>, <top>)\n \"bottom-left\": ({\n left: t,\n top: e,\n width: n,\n height: a,\n parentWidth: o,\n parentHeight: r\n }) => {\n const s = o - t, i = r - e;\n return s < i ? s / (o + n || 1) : i / (r + a || 1);\n },\n // min(<left>, <bottom>)\n \"top-right\": ({\n left: t,\n top: e,\n width: n,\n height: a,\n parentWidth: o,\n parentHeight: r\n }) => {\n const s = o - t, i = a + e;\n return s < i ? s / (o + n || 1) : i / (r + a || 1);\n },\n // min(<right>, <bottom>)\n \"top-left\": ({\n left: t,\n top: e,\n width: n,\n height: a,\n parentWidth: o,\n parentHeight: r\n }) => {\n const s = o - t, i = a + e;\n return s < i ? s / (o + n || 1) : i / (r + a || 1);\n }\n};\nfunction Os(t) {\n const e = ne[t].from, n = ne[t].to, a = t.startsWith(\"top\") ? 1 : -1, o = -a, r = t.endsWith(\"left\") ? 1 : -1, s = -r;\n return {\n from: `calc(${e} * ${r}) calc(${e} * ${a})`,\n to: `calc(${n} * ${s}) calc(${n} * ${o})`\n };\n}\nfunction _s(t, e) {\n const { direction: n = \"right\" } = t.namedEffect, a = t.duration || 1, o = t.delay || 0, r = b(a, o), [s] = Dn(), i = {\n \"--motion-left\": \"0px\",\n \"--motion-top\": \"0px\",\n \"--motion-width\": \"100%\",\n \"--motion-height\": \"100%\",\n \"--motion-parent-width\": \"100vw\",\n \"--motion-parent-height\": \"100vh\"\n };\n let c = 0, m = 0, l = 0, f = 0, u = 0, d = 0;\n return e && (e.measure((p) => {\n if (!p)\n return;\n const { width: y, height: $ } = p.getBoundingClientRect(), O = p.offsetParent, _ = O?.getBoundingClientRect() || {}, v = Ba(p, O);\n c = v.left, m = v.top, l = y, f = $, u = _.width, d = _.height;\n }), e.mutate((p) => {\n p?.style.setProperty(\"--motion-left\", `${c}px`), p?.style.setProperty(\"--motion-top\", `${m}px`), p?.style.setProperty(\"--motion-width\", `${l}px`), p?.style.setProperty(\"--motion-height\", `${f}px`), p?.style.setProperty(\"--motion-parent-width\", `${u}px`), p?.style.setProperty(\"--motion-parent-height\", `${d}px`);\n })), [\n {\n ...t,\n name: s,\n delay: 0,\n easing: \"linear\",\n duration: a + o,\n custom: i,\n get keyframes() {\n const p = vs[n]({\n left: c,\n top: m,\n width: l,\n height: f,\n parentWidth: u,\n parentHeight: d\n }) * r;\n let y, $;\n if (n in ct)\n y = ct[n].from, $ = ct[n].to;\n else {\n const O = Os(\n n\n );\n y = O.from, $ = O.to;\n }\n return [\n {\n offset: 0,\n translate: \"0 0\"\n },\n {\n offset: p,\n translate: $,\n easing: \"step-start\"\n },\n {\n offset: p,\n translate: y\n },\n {\n offset: r,\n translate: \"0 0\"\n },\n {\n offset: 1,\n translate: \"0 0\"\n }\n ];\n }\n }\n ];\n}\nfunction Dn(t) {\n return [\"motion-cross\"];\n}\nconst xs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Dn,\n web: _s\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction bs(t, e) {\n return Vn(t, !0);\n}\nfunction Vn(t, e = !1) {\n const n = t.duration || 1, a = t.delay || 0, o = E(t.easing || \"cubicInOut\"), r = b(n, a), [s] = jn(t), i = [\n {\n offset: 0,\n opacity: 1,\n easing: o\n },\n {\n offset: 0.5 * r,\n opacity: 0,\n easing: o\n },\n {\n offset: r,\n opacity: 1\n },\n {\n offset: 1,\n opacity: 1\n }\n ];\n return [\n {\n ...t,\n name: s,\n easing: \"linear\",\n delay: 0,\n duration: n + a,\n keyframes: i\n }\n ];\n}\nfunction jn(t) {\n return [`motion-flash-${b(t.duration, t.delay, !0)}`];\n}\nconst Es = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: jn,\n style: Vn,\n web: bs\n}, Symbol.toStringTag, { value: \"Module\" })), Is = {\n soft: \"linear\",\n medium: \"quintInOut\",\n hard: \"backOut\"\n}, ws = {\n vertical: { x: \"1\", y: \"0\" },\n horizontal: { x: \"0\", y: \"1\" }\n};\nfunction Ps(t, e) {\n return Zn(t, !0);\n}\nfunction Zn(t, e = !1) {\n const { direction: n = \"horizontal\", power: a } = t.namedEffect, o = t.duration || 1, r = t.delay || 0, s = b(o, r), [i] = Bn(t), c = ws[n], m = a && Is[a] || t.easing || \"linear\", l = {\n \"--motion-rotate-x\": c.x,\n \"--motion-rotate-y\": c.y\n }, f = `rotate3d(${g(\n l,\n \"--motion-rotate-x\",\n e\n )}, ${g(l, \"--motion-rotate-y\", e)}, 0, 0deg)`, u = `rotate3d(${g(\n l,\n \"--motion-rotate-x\",\n e\n )}, ${g(l, \"--motion-rotate-y\", e)}, 0, 360deg)`;\n return [\n {\n ...t,\n name: i,\n delay: 0,\n easing: \"linear\",\n duration: o + r,\n custom: l,\n keyframes: [\n {\n offset: 0,\n transform: `perspective(800px) rotateZ(var(--comp-rotate-z, 0deg)) ${f}`,\n easing: E(m)\n },\n {\n offset: s,\n transform: `perspective(800px) rotateZ(var(--comp-rotate-z, 0deg)) ${u}`\n },\n {\n offset: 1,\n transform: `perspective(800px) rotateZ(var(--comp-rotate-z, 0deg)) ${u}`\n }\n ]\n }\n ];\n}\nfunction Bn(t) {\n return [`motion-flip-${b(t.duration, t.delay, !0)}`];\n}\nconst As = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Bn,\n style: Zn,\n web: Ps\n}, Symbol.toStringTag, { value: \"Module\" })), Ss = {\n soft: 1,\n medium: 2,\n hard: 3\n}, Ts = {\n top: {\n rotation: { x: 1, y: 0 },\n origin: { x: 0, y: -50 }\n },\n right: {\n rotation: { x: 0, y: 1 },\n origin: { x: 50, y: 0 }\n },\n bottom: {\n rotation: { x: 1, y: 0 },\n origin: { x: 0, y: 50 }\n },\n left: {\n rotation: { x: 0, y: 1 },\n origin: { x: -50, y: 0 }\n }\n}, ae = 15, ks = [\n { fold: 1, frameFactor: 0.25 },\n { fold: -0.7, frameFactor: 0.5 },\n { fold: 0.6, frameFactor: 0.5 },\n { fold: -0.3, frameFactor: 0.45 },\n { fold: 0.2, frameFactor: 0.4 },\n { fold: -0.05, frameFactor: 0.5 },\n { fold: 0, frameFactor: 0.35 }\n];\nfunction Ms(t, e) {\n return Ln(t, !0);\n}\nfunction Ln(t, e = !1) {\n const {\n direction: n = \"top\",\n power: a,\n angle: o = ae\n } = t.namedEffect, r = t.easing || \"cubicInOut\", s = t.duration || 1, i = +(t.delay || 0), [c] = Gn(t), m = typeof a > \"u\", { rotation: l, origin: f } = Ts[n], { x: u, y: d } = f, p = H(m ? r : \"cubicInOut\"), y = m ? o : ae * Ss[a], $ = 3.2 * s + i, O = b(\n s,\n $ - s\n );\n let _ = 0;\n const v = {\n \"--motion-origin-x\": `${u}%`,\n \"--motion-origin-y\": `${d}%`,\n \"--motion-rotate-angle\": `${y}deg`,\n \"--motion-rotate-x\": `${l.x}`,\n \"--motion-rotate-y\": `${l.y}`\n }, x = `rotateZ(var(--comp-rotate-z, 0deg)) translateX(${g(\n v,\n \"--motion-origin-x\",\n e\n )}) translateY(${g(\n v,\n \"--motion-origin-y\",\n e\n )}) perspective(800px)`, A = `translateX(calc(-1 * ${g(\n v,\n \"--motion-origin-x\",\n e\n )})) translateY(calc(-1 * ${g(\n v,\n \"--motion-origin-y\",\n e\n )}))`, w = (F) => `${x} rotateX(calc(${g(\n v,\n \"--motion-rotate-x\",\n e\n )} * ${F} * ${y}deg)) rotateY(calc(${g(\n v,\n \"--motion-rotate-y\",\n e\n )} * ${F} * ${y}deg)) ${A}`, z = i ? ks.map(({ fold: F, frameFactor: L }) => {\n const At = _ + L * O;\n return _ = At, {\n offset: At,\n easing: E(\"sineInOut\"),\n transform: w(F)\n };\n }) : [\n {\n offset: 0.25,\n easing: E(p.inOut),\n transform: w(1)\n },\n {\n offset: 0.75,\n easing: E(p.in),\n transform: w(-1)\n }\n ], K = w(0);\n return [\n {\n ...t,\n name: c,\n easing: \"linear\",\n delay: 0,\n duration: i ? $ : s,\n custom: v,\n keyframes: [\n {\n offset: 0,\n easing: E(p.out),\n transform: K\n },\n ...z,\n {\n offset: 1,\n transform: K\n }\n ]\n }\n ];\n}\nfunction Gn(t) {\n const e = t.duration || 1, n = +(t.delay || 0);\n if (!n)\n return [\"motion-fold\"];\n const a = 3.2 * e + n;\n return [`motion-fold-${b(\n e,\n a - e,\n !0\n )}`];\n}\nconst Rs = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Gn,\n style: Ln,\n web: Ms\n}, Symbol.toStringTag, { value: \"Module\" })), lt = {\n soft: 1,\n medium: 2,\n hard: 4\n}, zs = [\n { keyframe: 24, skewY: 7 },\n { keyframe: 38, skewY: -2 },\n { keyframe: 58, skewY: 4 },\n { keyframe: 80, skewY: -2 },\n { keyframe: 100, skewY: 0 }\n];\nfunction Fs(t, e) {\n return qn(t, !0);\n}\nfunction qn(t, e = !1) {\n const { power: n, intensity: a = 0.25 } = t.namedEffect, o = t.duration || 1, r = t.delay || 0, [s] = Hn(t), i = b(o, r), c = h(\n 0,\n 1,\n lt.soft,\n lt.hard,\n a\n ), l = {\n \"--motion-skew-y\": n && lt[n] || c\n }, f = zs.map(({ keyframe: u, skewY: d }) => ({\n offset: u / 100 * i,\n transform: `rotateZ(var(--comp-rotate-z, 0deg)) skewY(calc(${g(\n l,\n \"--motion-skew-y\",\n e\n )} * ${d}deg))`\n }));\n return [\n {\n ...t,\n name: s,\n delay: 0,\n easing: \"linear\",\n duration: o + r,\n custom: l,\n keyframes: f\n }\n ];\n}\nfunction Hn(t) {\n return [`motion-jello-${b(t.duration, t.delay, !0)}`];\n}\nconst Ns = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Hn,\n style: qn,\n web: Fs\n}, Symbol.toStringTag, { value: \"Module\" })), Ys = [\n { keyframe: 17, translate: 7 },\n { keyframe: 32, translate: 25 },\n { keyframe: 48, translate: 8 },\n { keyframe: 56, translate: 11 },\n { keyframe: 66, translate: 25 },\n { keyframe: 83, translate: 4 },\n { keyframe: 100, translate: 0 }\n], ft = {\n soft: 1,\n medium: 2,\n hard: 4\n}, Xs = {\n top: { x: 0, y: -1 },\n bottom: { x: 0, y: 1 },\n right: { x: 1, y: 0 },\n left: { x: -1, y: 0 }\n};\nfunction Cs(t, e) {\n return Kn(t, !0);\n}\nfunction Kn(t, e = !1) {\n const {\n power: n,\n intensity: a = 0.5,\n direction: o = \"right\"\n } = t.namedEffect, r = t.duration || 1, s = +(t.delay || 0), { x: i, y: c } = Xs[o], m = b(r, s), [l] = Un(t), f = h(\n 0,\n 1,\n ft.soft,\n ft.hard,\n a\n ), u = n ? ft[n] : f, d = {\n \"--motion-translate-x\": i * u,\n \"--motion-translate-y\": c * u\n }, p = Ys.map(({ keyframe: y, translate: $ }) => {\n const O = `calc(${g(\n d,\n \"--motion-translate-x\",\n e\n )} * ${$}px) calc(${g(\n d,\n \"--motion-translate-y\",\n e\n )} * ${$}px)`;\n return {\n offset: y / 100 * m,\n translate: O\n };\n });\n return [\n {\n ...t,\n name: l,\n easing: \"linear\",\n delay: 0,\n duration: r + s,\n custom: d,\n keyframes: p\n }\n ];\n}\nfunction Un(t) {\n return [`motion-poke-${b(\n t.duration,\n t.delay,\n !0\n )}`];\n}\nconst Ds = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Un,\n style: Kn,\n web: Cs\n}, Symbol.toStringTag, { value: \"Module\" })), mt = {\n soft: 0,\n medium: 0.05,\n hard: 0.1\n}, oe = [\n { keyframe: 45, scaleX: 1.03, scaleY: 0.93 },\n { keyframe: 56, scaleX: 0.9, scaleY: 1.03 },\n { keyframe: 66, scaleX: 1.02, scaleY: 0.96 },\n { keyframe: 78, scaleX: 0.98, scaleY: 1.02 },\n { keyframe: 89, scaleX: 1.005, scaleY: 0.9995 },\n { keyframe: 100, scaleX: 1, scaleY: 1 }\n];\nfunction Vs(t, e) {\n return Jn(t, !0);\n}\nfunction Jn(t, e = !1) {\n const { power: n, intensity: a = 0.5 } = t.namedEffect, o = t.duration || 1, r = t.delay || 0, s = b(o, r), [i] = Qn(t), c = h(\n 0,\n 1,\n mt.soft,\n mt.hard,\n a\n ), m = typeof n < \"u\" ? mt[n] : c, l = {}, f = oe.map(\n ({ keyframe: u, scaleX: d, scaleY: p }, y) => {\n const $ = y === oe.length - 1, O = y % 2 === 0, _ = m * ($ ? 0 : O ? 1 : -0.5), v = Y(d + _, 4), x = Y(p - _, 4), A = `--motion-scale-x-${u}`, w = `--motion-scale-y-${u}`;\n return l[A] = v, l[w] = x, {\n offset: u / 100 * s,\n transform: `rotateZ(var(--comp-rotate-z, 0deg)) scale(${g(\n l,\n A,\n e\n )}, ${g(l, w, e)})`\n };\n }\n );\n return [\n {\n ...t,\n name: i,\n easing: \"linear\",\n delay: 0,\n duration: o + r,\n custom: l,\n keyframes: f\n }\n ];\n}\nfunction Qn(t) {\n return [`motion-rubber-${b(t.duration, t.delay, !0)}`];\n}\nconst js = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: Qn,\n style: Jn,\n web: Vs\n}, Symbol.toStringTag, { value: \"Module\" })), ut = {\n soft: 0,\n medium: 0.06,\n hard: 0.12\n}, Zs = [\n { keyframe: 27, scale: 0.96 },\n { keyframe: 45, scale: 1 },\n { keyframe: 72, scale: 0.93 },\n { keyframe: 100, scale: 1 }\n];\nfunction Bs(t, e) {\n return Wn(t, !0);\n}\nfunction Wn(t, e = !1) {\n const { power: n, intensity: a = 0 } = t.namedEffect, o = t.duration || 1, r = t.delay || 0, s = b(o, r), [i] = ta(t), c = h(\n 0,\n 1,\n ut.soft,\n ut.hard,\n a\n ), l = {\n \"--motion-pulse-offset\": typeof n < \"u\" ? ut[n] : c\n }, f = Zs.map(({ keyframe: u, scale: d }) => ({\n offset: u / 100 * s,\n transform: `scale(${d < 1 ? `calc(${d} - ${g(\n l,\n \"--motion-pulse-offset\",\n e\n )})` : \"1\"})`\n }));\n return s < 1 && f.push({\n offset: 1,\n transform: \"scale(1)\"\n }), [\n {\n ...t,\n name: i,\n easing: \"linear\",\n delay: 0,\n duration: o + r,\n custom: l,\n keyframes: f\n }\n ];\n}\nfunction ta(t) {\n return [`motion-pulse-${b(t.duration, t.delay, !0)}`];\n}\nconst Ls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: ta,\n style: Wn,\n web: Bs\n}, Symbol.toStringTag, { value: \"Module\" })), Gs = {\n soft: \"linear\",\n medium: \"quintInOut\",\n hard: \"backOut\"\n}, qs = {\n clockwise: -1,\n \"counter-clockwise\": 1\n};\nfunction Hs(t, e) {\n return ea(t, !0);\n}\nfunction ea(t, e = !1) {\n const { power: n, direction: a = \"clockwise\" } = t.namedEffect, o = t.duration || 1, r = t.delay || 0, s = b(o, r), [i] = na(t), c = n && Gs[n] || t.easing || \"linear\", l = {\n \"--motion-rotate-start\": `calc(var(--comp-rotate-z, 0deg) + ${(qs[a] > 0 ? 1 : -1) * 360}deg)`\n };\n return [\n {\n ...t,\n name: i,\n easing: \"linear\",\n delay: 0,\n duration: o + r,\n custom: l,\n keyframes: [\n {\n offset: 0,\n easing: E(c),\n rotate: g(l, \"--motion-rotate-start\", e)\n },\n {\n offset: s,\n rotate: \"var(--comp-rotate-z, 0deg)\"\n }\n ]\n }\n ];\n}\nfunction na(t) {\n return [`motion-spin-${b(t.duration, t.delay, !0)}`];\n}\nconst Ks = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: na,\n style: ea,\n web: Hs\n}, Symbol.toStringTag, { value: \"Module\" })), Us = {\n soft: 1,\n medium: 2,\n hard: 3\n}, Js = {\n top: { x: 0, y: -1 },\n right: { x: 1, y: 0 },\n bottom: { x: 0, y: 1 },\n left: { x: -1, y: 0 }\n}, re = 50, Qs = [\n { factor: 1, timeFactor: 0.25 },\n { factor: -1, timeFactor: 0.5 },\n { factor: 0.6, timeFactor: 0.5 },\n { factor: -0.3, timeFactor: 0.5 },\n { factor: 0.2, timeFactor: 0.5 },\n { factor: -0.05, timeFactor: 0.5 },\n { factor: 0, timeFactor: 0.4 }\n];\nfunction Ws(t, e) {\n return aa(t, !0);\n}\nfunction aa(t, e = !1) {\n const { power: n, swing: a = 20, direction: o = \"top\" } = t.namedEffect, r = t.duration || 1, s = t.delay || 0, i = t.easing || \"sineInOut\", c = H(i), [m] = oa(t), l = typeof n < \"u\" ? 20 * Us[n] : a, { x: f, y: u } = Js[o], d = 3.55 * r + s, p = b(\n r,\n d - r\n ), y = {\n \"--motion-swing-deg\": `${l}deg`,\n \"--motion-trans-x\": `${f * re}%`,\n \"--motion-trans-y\": `${u * re}%`,\n \"--motion-ease-in\": E(c.in),\n \"--motion-ease-inout\": E(c.inOut),\n \"--motion-ease-out\": E(c.out)\n }, $ = `translate(${g(\n y,\n \"--motion-trans-x\",\n e\n )}, ${g(y, \"--motion-trans-y\", e)})`, O = `translate(calc(${g(\n y,\n \"--motion-trans-x\",\n e\n )} * -1), calc(${g(y, \"--motion-trans-y\", e)} * -1))`;\n let _ = 0;\n const v = s ? Qs.map(({ factor: x, timeFactor: A }) => {\n const w = _ + A * p;\n return _ = w, {\n offset: w,\n easing: g(y, \"--motion-ease-inout\", e),\n transform: `rotate(var(--comp-rotate-z, 0deg)) ${$} rotate(calc(${g(\n y,\n \"--motion-swing-deg\",\n e\n )} * ${x})) ${O}`\n };\n }) : [\n {\n offset: 0.25,\n easing: g(y, \"--motion-ease-inout\", e),\n transform: `rotate(var(--comp-rotate-z, 0deg)) ${$} rotate(${g(\n y,\n \"--motion-swing-deg\",\n e\n )}) ${O}`\n },\n {\n offset: 0.75,\n easing: g(y, \"--motion-ease-in\", e),\n transform: `rotate(var(--comp-rotate-z, 0deg)) ${$} rotate(calc(${g(\n y,\n \"--motion-swing-deg\",\n e\n )} * -1)) ${O}`\n }\n ];\n return [\n {\n ...t,\n name: m,\n easing: \"linear\",\n delay: 0,\n duration: s ? d : r,\n custom: y,\n keyframes: [\n {\n offset: 0,\n easing: g(y, \"--motion-ease-out\", e),\n transform: `rotateZ(var(--comp-rotate-z, 0deg)) ${$} rotate(0deg) ${O}`\n },\n ...v,\n {\n offset: 1,\n transform: `rotateZ(var(--comp-rotate-z, 0deg)) ${$} rotate(0deg) ${O}`\n }\n ]\n }\n ];\n}\nfunction oa(t) {\n return [`motion-swing-${b(t.duration, t.delay, !0)}`];\n}\nconst ti = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: oa,\n style: aa,\n web: Ws\n}, Symbol.toStringTag, { value: \"Module\" })), dt = {\n soft: 1,\n medium: 2,\n hard: 4\n}, ei = [\n { keyframe: 18, transY: -10, accRotate: 10 },\n { keyframe: 35, transY: 0, accRotate: -18 },\n { keyframe: 53, transY: 0, accRotate: 14 },\n { keyframe: 73, transY: 0, accRotate: -10 },\n { keyframe: 100, transY: 0, accRotate: 4 }\n];\nfunction ni(t, e) {\n return ra(t, !0);\n}\nfunction ra(t, e = !1) {\n const { power: n, intensity: a = 0.5 } = t.namedEffect, o = t.duration || 1, r = t.delay || 0, s = b(o, r), [i] = sa(t), c = h(\n 0,\n 1,\n dt.soft,\n dt.hard,\n a\n ), m = n && dt[n] || c;\n let l = 0;\n const f = {\n \"--motion-wiggle-factor\": m\n }, u = ei.map(\n ({ keyframe: d, transY: p, accRotate: y }) => {\n const $ = d / 100 * s, O = `calc(var(--comp-rotate-z, 0deg) + ${Y(\n l + y * m\n )}deg)`, _ = `${p * m}px`, v = `--motion-rotate-${d}`, x = `--motion-translate-y-${d}`;\n return f[v] = O, f[x] = _, l += y * m, {\n offset: $,\n transform: `rotate(${g(\n f,\n v,\n e\n )}) translateY(${g(f, x, e)})`\n };\n }\n );\n return [\n {\n ...t,\n name: i,\n easing: \"linear\",\n delay: 0,\n duration: o + r,\n custom: f,\n keyframes: u\n }\n ];\n}\nfunction sa(t) {\n return [`motion-wiggle-${b(t.duration, t.delay, !0)}`];\n}\nconst ai = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n getNames: sa,\n style: ra,\n web: ni\n}, Symbol.toStringTag, { value: \"Module\" })), se = {\n Bounce: ds,\n Breathe: $s,\n Cross: xs,\n // DVD,\n Flash: Es,\n Flip: As,\n Fold: Rs,\n Jello: Ns,\n Poke: Ds,\n Rubber: js,\n Pulse: Ls,\n Spin: Ks,\n Swing: ti,\n Wiggle: ai\n};\nclass k {\n target;\n options;\n currentProgress;\n constructor(e, n) {\n this.target = e, this.options = n || {}, this.currentProgress = { x: 0.5, y: 0.5, v: { x: 0, y: 0 }, active: !0 }, this.play();\n }\n progress({ x: e, y: n, v: a, active: o }) {\n this.currentProgress = { x: e, y: n, v: a, active: o }, typeof this.options.customEffect == \"function\" && this.options.customEffect(this.target, this.currentProgress);\n }\n cancel() {\n this.currentProgress = { x: 0.5, y: 0.5, v: { x: 0, y: 0 } };\n }\n getProgress() {\n return this.currentProgress;\n }\n play() {\n this.options.transition && this.target && (this.target.style.transition = this.options.transition);\n }\n}\nfunction oi(t) {\n return (e) => new k(e, t);\n}\nconst ie = {\n soft: { angle: 10, easing: \"easeOut\" },\n medium: { angle: 50, easing: \"easeOut\" },\n hard: { angle: 85, easing: \"easeOut\" }\n};\nclass ri extends k {\n progress({ x: e, y: n }) {\n let a = 0, o = 0;\n const { distance: r, invert: s, angle: i, axis: c } = this.options;\n c !== \"vertical\" && (a = h(0, 1, -r.value, r.value, e) * s), c !== \"horizontal\" && (o = h(0, 1, -r.value, r.value, n) * s);\n const m = h(0, 1, -i, i, e) * s, l = S(r.type);\n this.target.style.transform = `translateX(${a}${l}) translateY(${o}${l}) rotate(calc(${m}deg + var(--comp-rotate-z, 0deg)))`;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction si(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n distance: r = { value: 200, type: \"px\" },\n angle: s = 30,\n axis: i = \"both\"\n } = t.namedEffect, c = o ? -1 : 1, m = {\n transition: e ? `transform ${e}ms ${T(\n a ? ie[a].easing : n\n )}` : \"\",\n invert: c,\n distance: r,\n angle: a ? ie[a].angle : s,\n axis: i\n };\n return (l) => new ri(l, m);\n}\nconst ce = {\n soft: { scale: 1.2, easing: \"easeOut\" },\n medium: { scale: 1.6, easing: \"easeOut\" },\n hard: { scale: 2.4, easing: \"easeOut\" }\n};\nclass ii extends k {\n progress({ x: e, y: n }) {\n const { distance: a, scale: o, invert: r } = this.options, s = h(0, 1, -a.value, a.value, e) * r, i = h(0, 1, -a.value, a.value, n) * r, c = e < 0.5 ? h(0, 0.5, o, 1, e) : h(0.5, 1, 1, o, e), m = n < 0.5 ? h(0, 0.5, o, 1, n) : h(0.5, 1, 1, o, n), l = S(a.type);\n this.target.style.transform = `translateX(${s}${l}) translateY(${i}${l}) scale(${c}, ${m}) rotate(var(--comp-rotate-z, 0deg))`;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction ci(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n distance: r = { value: 200, type: \"px\" },\n scale: s = 1.4\n } = t.namedEffect, i = o ? -1 : 1, c = {\n transition: e ? `transform ${e}ms ${T(\n a ? ce[a].easing : n\n )}` : \"\",\n invert: i,\n distance: r,\n scale: a ? ce[a].scale : s\n };\n return (m) => new ii(m, c);\n}\nconst Q = {\n soft: { angle: 0, scale: 1, easing: \"easeOut\" },\n medium: { angle: 25, scale: 0.7, easing: \"easeOut\" },\n hard: { angle: 65, scale: 0.25, easing: \"easeOut\" }\n};\nclass li extends k {\n progress({ x: e, y: n }) {\n const { distance: a, angle: o, scale: r, invert: s, blur: i, perspective: c } = this.options, m = h(0, 1, -a.value, a.value, e) * s, l = h(0, 1, -a.value, a.value, n) * s, f = e < 0.5 ? h(0, 0.5, r, 1, e) : h(0.5, 1, 1, r, e), u = n < 0.5 ? h(0, 0.5, r, 1, n) : h(0.5, 1, 1, r, n), d = Math.min(f, u), p = h(0, 1, -o, o, n) * s, y = h(0, 1, o, -o, e) * s, $ = S(a.type), O = `perspective(${c}px) translateX(${m}${$}) translateY(${l}${$}) scale(${d}, ${d}) rotateX(${p}deg) rotateY(${y}deg) rotate(var(--comp-rotate-z, 0deg))`, _ = Xa([0.5, 0.5], [e, n]), x = `blur(${Math.round(\n h(0, 1, 0, i, $e(_))\n )}px)`;\n this.target.style.transform = O, this.target.style.filter = x;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.filter = \"\", this.target.style.transition = \"\";\n }\n}\nfunction fi(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n distance: r = { value: 80, type: \"px\" },\n angle: s = 5,\n scale: i = 0.3,\n blur: c = 20,\n perspective: m = 600\n } = t.namedEffect, l = o ? -1 : 1, f = {\n transition: e ? `transform ${e}ms ${T(\n a ? Q[a].easing : n\n )}, filter ${e}ms ${T(\n a ? Q[a].easing : n\n )}` : \"\",\n distance: r,\n angle: a ? Q[a].angle : s,\n scale: a ? Q[a].scale : i,\n blur: c,\n perspective: m,\n invert: l\n };\n return (u) => new li(u, f);\n}\nconst mi = {\n soft: \"linear\",\n medium: \"easeOut\",\n hard: \"hardBackOut\"\n};\nclass ui extends k {\n progress({ x: e, y: n }) {\n const { invert: a, distance: o, axis: r } = this.options;\n let s = 0, i = 0;\n (r === \"both\" || r === \"horizontal\") && (s = h(0, 1, -o.value, o.value, e) * a), (r === \"both\" || r === \"vertical\") && (i = h(0, 1, -o.value, o.value, n) * a);\n const c = S(o.type);\n this.target.style.transform = `translateX(${s}${c}) translateY(${i}${c}) rotate(var(--comp-rotate-z, 0deg))`;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction ia(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n distance: r = { value: 200, type: \"px\" },\n axis: s = \"both\"\n } = t.namedEffect, i = o ? -1 : 1, c = {\n transition: e ? `transform ${e}ms ${T(\n a ? mi[a] : n\n )}` : \"\",\n invert: i,\n distance: r,\n axis: s\n };\n return (m) => new ui(m, c);\n}\nfunction di(t) {\n const { distance: e = { value: 80, type: \"px\" } } = t.namedEffect, { transitionEasing: n = \"elastic\" } = t;\n return ia({\n ...t,\n transitionEasing: n,\n namedEffect: { ...t.namedEffect, distance: e }\n });\n}\nconst le = {\n down: {\n soft: { scale: 0.85, easing: \"easeOut\" },\n medium: { scale: 0.5, easing: \"easeOut\" },\n hard: { scale: 0, easing: \"easeOut\" }\n },\n up: {\n soft: { scale: 1.2, easing: \"easeOut\" },\n medium: { scale: 1.6, easing: \"easeOut\" },\n hard: { scale: 2.4, easing: \"easeOut\" }\n }\n};\nclass pi extends k {\n progress({ x: e, y: n }) {\n const { distance: a, scale: o, invert: r, axis: s } = this.options;\n let i = 0, c = 0, m = 1, l = 1;\n (s === \"both\" || s === \"horizontal\") && (i = h(0, 1, -a.value, a.value, e) * r, m = e < 0.5 ? h(0, 0.5, o, 1, e) : h(0.5, 1, 1, o, e)), (s === \"both\" || s === \"vertical\") && (c = h(0, 1, -a.value, a.value, n) * r, l = n < 0.5 ? h(0, 0.5, o, 1, n) : h(0.5, 1, 1, o, n));\n const f = o < 1 ? Math.min(m, l) : Math.max(m, l), u = S(a.type);\n this.target.style.transform = `translateX(${i}${u}) translateY(${c}${u}) scale(${f}) rotate(var(--comp-rotate-z, 0deg))`;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction gi(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n scaleDirection: o = \"down\",\n inverted: r = !1,\n distance: s = { value: 80, type: \"px\" },\n axis: i = \"both\",\n scale: c = 1.4\n } = t.namedEffect, m = r ? -1 : 1, l = {\n transition: e ? `transform ${e}ms ${T(\n a ? le[o][a].easing : n\n )}` : \"\",\n invert: m,\n distance: s,\n axis: i,\n scale: a ? le[o][a].scale : c\n };\n return (f) => new pi(f, l);\n}\nconst fe = {\n soft: { angle: 10, easing: \"easeOut\" },\n medium: { angle: 20, easing: \"easeOut\" },\n hard: { angle: 45, easing: \"easeOut\" }\n};\nclass yi extends k {\n progress({ x: e, y: n }) {\n let a = 0, o = 0, r = 0, s = 0;\n const { distance: i, angle: c, axis: m, invert: l } = this.options;\n m !== \"vertical\" && (a = h(0, 1, -i.value, i.value, e) * l, r = h(0, 1, c, -c, e) * l), m !== \"horizontal\" && (o = h(0, 1, -i.value, i.value, n) * l, s = h(0, 1, c, -c, n) * l), m === \"both\" && (r *= h(0, 1, 1, -1, vt(n)), s *= h(0, 1, 1, -1, vt(e)));\n const f = S(i.type), u = `translateX(${a}${f}) translateY(${o}${f}) skew(${r}deg, ${s}deg) rotate(var(--comp-rotate-z, 0deg))`;\n this.target.style.transform = u;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction $i(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n distance: r = { value: 200, type: \"px\" },\n angle: s = 25,\n axis: i = \"both\"\n } = t.namedEffect, c = o ? -1 : 1, m = {\n transition: e ? `transform ${e}ms ${T(\n a ? fe[a].easing : n\n )}` : \"\",\n invert: c,\n distance: r,\n angle: a ? fe[a].angle : s,\n axis: i\n };\n return (l) => new yi(l, m);\n}\nclass hi extends k {\n progress({ x: e, y: n }) {\n const { invert: a, axis: o } = this.options, r = Ca(\n [0.5, 0.5],\n [\n o === \"vertical\" ? 0 : e,\n o === \"horizontal\" ? 0 : n\n ],\n 90\n ) * a;\n this.target.style.transform = `rotate(calc(${r}deg + var(--comp-rotate-z, 0deg)))`;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction vi(t) {\n const { transitionDuration: e, transitionEasing: n = \"linear\" } = t, { inverted: a = !1, axis: o = \"both\" } = t.namedEffect, r = a ? -1 : 1, s = {\n transition: e ? `transform ${e}ms ${T(\n n\n )}` : \"\",\n invert: r,\n axis: o\n };\n return (i) => new hi(i, s);\n}\nconst pt = {\n soft: { angle: 25, perspective: 1e3, easing: \"easeOut\" },\n medium: { angle: 50, perspective: 700, easing: \"easeOut\" },\n hard: { angle: 85, perspective: 300, easing: \"easeOut\" }\n}, Oi = {\n top: [0, -50],\n bottom: [0, 50],\n right: [50, 0],\n left: [-50, 0],\n \"center-horizontal\": [0, 0],\n \"center-vertical\": [0, 0]\n};\nclass _i extends k {\n progress({ x: e, y: n }) {\n let a = \"rotateX\", o = n, r = -1;\n const { pivotAxis: s, angle: i, invert: c, perspective: m } = this.options;\n (s === \"center-horizontal\" || s === \"right\" || s === \"left\") && (a = \"rotateY\", o = e, r = 1);\n const l = h(0, 1, -i, i, o) * r * c, [f, u] = Oi[s], d = `perspective(${m}px) translateX(${f}%) translateY(${u}%) ${a}(${l}deg) translateX(${-f}%) translateY(${-u}%) rotate(var(--comp-rotate-z, 0deg))`;\n this.target.style.transform = d;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction xi(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n angle: r = 5,\n perspective: s = 800,\n pivotAxis: i = \"center-horizontal\"\n } = t.namedEffect, c = o ? -1 : 1, m = {\n transition: e ? `transform ${e}ms ${T(\n a ? pt[a].easing : n\n )}` : \"\",\n invert: c,\n angle: a ? pt[a].angle : r,\n perspective: a ? pt[a].perspective : s,\n pivotAxis: i\n };\n return (l) => new _i(l, m);\n}\nconst gt = {\n soft: { angle: 25, perspective: 1e3, easing: \"easeOut\" },\n medium: { angle: 50, perspective: 500, easing: \"easeOut\" },\n hard: { angle: 85, perspective: 200, easing: \"easeOut\" }\n};\nclass bi extends k {\n progress({ x: e, y: n }) {\n const { invert: a, angle: o, perspective: r } = this.options, s = h(0, 1, o, -o, n) * a, i = h(0, 1, -o, o, e) * a;\n this.target.style.transform = `perspective(${r}px) rotateX(${s}deg) rotateY(${i}deg) rotate(var(--comp-rotate-z, 0deg))`;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction Ei(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n angle: r = 5,\n perspective: s = 800\n } = t.namedEffect, i = o ? -1 : 1, c = {\n transition: e ? `transform ${e}ms ${T(\n a ? gt[a].easing : n\n )}` : \"\",\n invert: i,\n angle: a ? gt[a].angle : r,\n perspective: a ? gt[a].perspective : s\n };\n return (m) => new bi(m, c);\n}\nconst yt = {\n soft: { angle: 25, perspective: 1e3, easing: \"easeOut\" },\n medium: { angle: 50, perspective: 500, easing: \"easeOut\" },\n hard: { angle: 85, perspective: 333, easing: \"easeOut\" }\n};\nclass Ii extends k {\n progress({ x: e, y: n }) {\n const { invert: a, distance: o, angle: r, axis: s, perspective: i } = this.options;\n let c = 0, m = 0, l = 0, f = 0;\n (s === \"both\" || s === \"horizontal\") && (c = h(0, 1, -o.value, o.value, e), f = h(0, 1, -r, r, e) * a), (s === \"both\" || s === \"vertical\") && (m = h(0, 1, -o.value, o.value, n), l = h(0, 1, r, -r, n) * a);\n const u = S(o.type);\n this.target.style.transform = `perspective(${i}px) translateX(${c}${u}) translateY(${m}${u}) rotateX(${l}deg) rotateY(${f}deg) rotate(var(--comp-rotate-z, 0deg))`;\n }\n cancel() {\n this.target.style.transform = \"\", this.target.style.transition = \"\";\n }\n}\nfunction wi(t) {\n const { transitionDuration: e, transitionEasing: n } = t, {\n power: a,\n inverted: o = !1,\n distance: r = { value: 200, type: \"px\" },\n angle: s = 5,\n axis: i = \"both\",\n perspective: c = 800\n } = t.namedEffect, m = o ? -1 : 1, l = {\n transition: e ? `transform ${e}ms ${T(\n a ? yt[a].easing : n\n )}` : \"\",\n invert: m,\n distance: r,\n axis: i,\n angle: a ? yt[a].angle : s,\n perspective: a ? yt[a].perspective : c\n };\n return (f) => new Ii(f, l);\n}\nconst me = {\n AiryMouse: si,\n BlobMouse: ci,\n BlurMouse: fi,\n BounceMouse: di,\n CustomMouse: oi,\n ScaleMouse: gi,\n SkewMouse: $i,\n SpinMouse: vi,\n SwivelMouse: xi,\n Tilt3DMouse: Ei,\n Track3DMouse: wi,\n TrackMouse: ia\n};\nfunction M(t, e, n) {\n e.measure((a) => {\n a && (t.compHeight = a.offsetHeight);\n }), n && e.mutate((a) => {\n a?.style.setProperty(\n \"--motion-comp-height\",\n `${t.compHeight}px`\n );\n });\n}\nconst Pi = () => window.document.getElementById(\"masterPage\"), Ai = () => {\n const t = window.document.getElementById(\"WIX_ADS\");\n return t ? t.offsetHeight : 0;\n}, Si = () => {\n const t = Pi();\n return t ? t.offsetHeight + Ai() : 0;\n};\nfunction Ti(t, e) {\n e.measure(() => {\n t.siteHeight = Si();\n });\n}\nfunction ca(t, e) {\n return t > e ? 0 : 1 / (1 - t / e);\n}\nfunction ki(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e);\n const a = \"linear\", { scale: o = 80 } = t.namedEffect;\n return [\n {\n ...t,\n easing: a,\n part: \"BG_LAYER\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get startOffsetAdd() {\n return `calc(50vh + ${Math.round(0.5 * n.compHeight)}px)`;\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100vh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n opacity: 1\n },\n {\n opacity: 0\n }\n ]\n },\n {\n ...t,\n easing: a,\n part: \"BG_MEDIA\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100vh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n transform: \"perspective(100px) translateZ(0px)\"\n },\n {\n transform: `perspective(100px) translateZ(${o}px)`\n }\n ]\n }\n ];\n}\nconst Mi = \"sineIn\", Ri = \"sineOut\";\nfunction zi(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e);\n const { range: a = \"in\" } = t.namedEffect, o = a === \"out\";\n return [\n {\n ...t,\n part: \"BG_LAYER\",\n easing: o ? Ri : Mi,\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n startOffsetAdd: o ? \"100vh\" : \"0px\",\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return o ? `calc(100vh + ${n.compHeight}px)` : `calc(50vh + ${Math.round(0.5 * n.compHeight)}px)`;\n },\n keyframes: [\n {\n opacity: o ? 1 : 0\n },\n {\n opacity: o ? 0 : 1\n }\n ]\n }\n ];\n}\nfunction Fi(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e);\n const a = \"sineOut\", { scale: o = 0.7 } = t.namedEffect;\n return [\n {\n ...t,\n easing: \"linear\",\n part: \"BG_LAYER\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n startOffsetAdd: \"100vh\",\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100vh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n opacity: 1\n },\n {\n opacity: 0\n }\n ]\n },\n {\n ...t,\n easing: a,\n part: \"BG_LAYER\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n startOffsetAdd: \"100vh\",\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100vh + ${Math.round(0.5 * n.compHeight)}px)`;\n },\n keyframes: [\n {\n scale: 1\n },\n {\n scale: o\n }\n ]\n }\n ];\n}\nconst $t = 100;\nfunction Ni(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e, !0);\n const { stretch: a = 1.3, zoom: o = 100 / 6 } = t.namedEffect, r = ca(o, $t);\n return [\n {\n ...t,\n part: \"BG_IMG\",\n easing: \"sineOut\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100svh + ${n.compHeight}px)`;\n },\n get keyframes() {\n return [\n {\n transform: \"translateY(10svh)\"\n },\n {\n transform: `translateY(calc(${parseFloat(\n (-0.1 * (2 - r)).toFixed(2)\n )} * var(--motion-comp-height, ${n.compHeight}px)))`\n }\n ];\n }\n },\n {\n ...t,\n part: \"BG_IMG\",\n easing: \"linear\",\n composite: \"add\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100svh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n transform: `scaleY(${a})`\n },\n {\n transform: \"scaleY(1)\"\n }\n ]\n },\n {\n ...t,\n part: \"BG_IMG\",\n easing: \"sineIn\",\n composite: \"add\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100svh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n transform: `perspective(${$t}px) translateZ(0px)`\n },\n {\n transform: `perspective(${$t}px) translateZ(${parseFloat(\n o.toFixed(2)\n )}px)`\n }\n ]\n }\n ];\n}\nfunction Yi(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e);\n const { direction: a = \"left\", speed: o = 0.2 } = t.namedEffect, r = 50 * o / (1 + o) | 0;\n let s = `${r}%`, i = `-${r}%`;\n return a === \"right\" && ([s, i] = [i, s]), [\n {\n ...t,\n part: \"BG_MEDIA\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100vh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n transform: `translateX(${s})`\n },\n {\n transform: `translateX(${i})`\n }\n ]\n }\n ];\n}\nfunction Xi(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e, !0);\n const { speed: a = 0.2 } = t.namedEffect;\n return [\n {\n ...t,\n part: \"BG_MEDIA\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100svh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n transform: `translateY(${100 * a}svh)`\n },\n {\n transform: `translateY(calc((100% - 200lvh) * ${-a}))`\n }\n ]\n }\n ];\n}\nfunction Ci(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e);\n const a = \"linear\", { scale: o = 50 } = t.namedEffect;\n return [\n {\n ...t,\n easing: a,\n part: \"BG_MEDIA\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `${n.compHeight}px`;\n },\n keyframes: [\n {\n transform: `perspective(100px) translate3d(0px, -${o / 3 | 0}%, ${o}px)`\n },\n {\n transform: \"perspective(100px) translate3d(0px, 0px, 0px)\"\n }\n ]\n }\n ];\n}\nfunction Di(t, e) {\n return e && M({ compHeight: 0 }, e, !0), [];\n}\nfunction Vi(t) {\n const e = \"sineOut\", { angle: n = 22, direction: a = \"counter-clockwise\" } = t.namedEffect;\n return [\n {\n ...t,\n easing: e,\n part: \"BG_MEDIA\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffsetAdd: \"100vh\",\n keyframes: [\n {\n transform: `rotate(${a === \"counter-clockwise\" ? n : -n}deg)`\n },\n {\n transform: \"rotate(0deg)\"\n }\n ]\n }\n ];\n}\nfunction ji(t, e) {\n const n = { compHeight: 0 };\n e && M(n, e);\n const { angle: a = 20, direction: o = \"counter-clockwise\" } = t.namedEffect;\n return [\n {\n ...t,\n part: \"BG_MEDIA\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100vh + ${n.compHeight}px)`;\n },\n keyframes: [\n {\n transform: `skewY(${o === \"counter-clockwise\" ? a : -a}deg)`\n },\n {\n transform: `skewY(${o === \"counter-clockwise\" ? -a : a}deg)`\n }\n ]\n }\n ];\n}\nconst W = 100, Zi = 40, Bi = 0.375, Li = {\n in: {\n easing: \"sineIn\",\n fromY: \"20svh\"\n },\n out: {\n easing: \"sineInOut\",\n fromY: \"0px\"\n }\n};\nfunction Gi(t, e) {\n const { direction: n = \"in\" } = t.namedEffect, a = n === \"in\", o = { compHeight: 0 };\n e && M(o, e, a);\n const { easing: r, fromY: s } = Li[n];\n let { zoom: i = Zi } = t.namedEffect;\n a || (i *= Bi);\n const c = Y(a ? 0 : i / 1.3), m = Y(a ? i : -i), l = Y(ca(m, W));\n return [\n {\n ...t,\n part: \"BG_MEDIA\",\n easing: \"linear\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n keyframes: [\n {\n transform: \"translate3d(0, 0, 0)\"\n },\n {\n transform: \"translate3d(0, 0, 0)\"\n }\n ]\n },\n {\n ...t,\n part: \"BG_IMG\",\n easing: \"linear\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100svh + ${o.compHeight}px)`;\n },\n get keyframes() {\n const f = a ? `calc(-0.2 * var(--motion-comp-height, ${o.compHeight}px) + 0.5 * ${i / W} * max(0px, 100lvh - var(--motion-comp-height, ${o.compHeight}px)))` : \"0px\";\n return [\n {\n transform: `translateY(${s})`\n },\n {\n transform: `translateY(calc(${f} * ${l}))`\n }\n ];\n }\n },\n {\n ...t,\n easing: r,\n part: \"BG_IMG\",\n composite: a ? \"add\" : \"replace\",\n startOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return `calc(100svh + ${o.compHeight}px)`;\n },\n keyframes: [\n {\n transform: `perspective(${W}px) translateZ(${c}px)`\n },\n {\n transform: `perspective(${W}px) translateZ(${m}px)`\n }\n ]\n }\n ];\n}\nfunction qi(t, e) {\n const {\n speed: n = 1.5,\n reverse: a = !1,\n isPage: o = !1\n } = t.namedEffect, r = { compHeight: 0, siteHeight: 0 };\n e && (o ? Ti(r, e) : M(r, e));\n let s = -100 * (n - 1);\n o || (s = s / n);\n let i = 0;\n return a && ([s, i] = [i, s]), [\n {\n ...t,\n part: \"BG_MEDIA\",\n startOffset: {\n name: o ? \"contain\" : \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n endOffset: {\n name: \"cover\",\n offset: { type: \"percentage\", value: 0 }\n },\n get endOffsetAdd() {\n return o ? `${r.siteHeight}px` : `calc(100vh + ${r.compHeight}px)`;\n },\n keyframes: [\n {\n transform: `translateY(${s | 0}%)`\n },\n {\n transform: `translateY(${i | 0}%)`\n }\n ]\n }\n ];\n}\nconst ue = {\n BgCloseUp: ki,\n BgFade: zi,\n BgFadeBack: Fi,\n BgFake3D: Ni,\n BgPan: Yi,\n BgParallax: Xi,\n BgPullBack: Ci,\n BgReveal: Di,\n BgRotate: Vi,\n BgSkew: ji,\n BgZoom: Gi,\n ImageParallax: qi\n};\nfunction Hi(t) {\n return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, \"default\") ? t.default : t;\n}\nvar tt = { exports: {} }, de = tt.exports, pe;\nfunction Ki() {\n return pe || (pe = 1, (function(t) {\n (function(e) {\n var n = function() {\n }, a = e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.msRequestAnimationFrame || function(l) {\n return setTimeout(l, 16);\n };\n function o() {\n var l = this;\n l.reads = [], l.writes = [], l.raf = a.bind(e);\n }\n o.prototype = {\n constructor: o,\n /**\n * We run this inside a try catch\n * so that if any jobs error, we\n * are able to recover and continue\n * to flush the batch until it's empty.\n *\n * @param {Array} tasks\n */\n runTasks: function(l) {\n for (var f; f = l.shift(); ) f();\n },\n /**\n * Adds a job to the read batch and\n * schedules a new frame if need be.\n *\n * @param {Function} fn\n * @param {Object} ctx the context to be bound to `fn` (optional).\n * @public\n */\n measure: function(l, f) {\n var u = f ? l.bind(f) : l;\n return this.reads.push(u), r(this), u;\n },\n /**\n * Adds a job to the\n * write batch and schedules\n * a new frame if need be.\n *\n * @param {Function} fn\n * @param {Object} ctx the context to be bound to `fn` (optional).\n * @public\n */\n mutate: function(l, f) {\n var u = f ? l.bind(f) : l;\n return this.writes.push(u), r(this), u;\n },\n /**\n * Clears a scheduled 'read' or 'write' task.\n *\n * @param {Object} task\n * @return {Boolean} success\n * @public\n */\n clear: function(l) {\n return i(this.reads, l) || i(this.writes, l);\n },\n /**\n * Extend this FastDom with some\n * custom functionality.\n *\n * Because fastdom must *always* be a\n * singleton, we're actually extending\n * the fastdom instance. This means tasks\n * scheduled by an extension still enter\n * fastdom's global task queue.\n *\n * The 'super' instance can be accessed\n * from `this.fastdom`.\n *\n * @example\n *\n * var myFastdom = fastdom.extend({\n * initialize: function() {\n * // runs on creation\n * },\n *\n * // override a method\n * measure: function(fn) {\n * // do extra stuff ...\n *\n * // then call the original\n * return this.fastdom.measure(fn);\n * },\n *\n * ...\n * });\n *\n * @param {Object} props properties to mixin\n * @return {FastDom}\n */\n extend: function(l) {\n if (typeof l != \"object\") throw new Error(\"expected object\");\n var f = Object.create(this);\n return c(f, l), f.fastdom = this, f.initialize && f.initialize(), f;\n },\n // override this with a function\n // to prevent Errors in console\n // when tasks throw\n catch: null\n };\n function r(l) {\n l.scheduled || (l.scheduled = !0, l.raf(s.bind(null, l)));\n }\n function s(l) {\n var f = l.writes, u = l.reads, d;\n try {\n n(\"flushing reads\", u.length), l.runTasks(u), n(\"flushing writes\", f.length), l.runTasks(f);\n } catch (p) {\n d = p;\n }\n if (l.scheduled = !1, (u.length || f.length) && r(l), d)\n if (n(\"task errored\", d.message), l.catch) l.catch(d);\n else throw d;\n }\n function i(l, f) {\n var u = l.indexOf(f);\n return !!~u && !!l.splice(u, 1);\n }\n function c(l, f) {\n for (var u in f)\n f.hasOwnProperty(u) && (l[u] = f[u]);\n }\n var m = e.fastdom = e.fastdom || new o();\n t.exports = m;\n })(typeof window < \"u\" ? window : typeof de < \"u\" ? de : globalThis);\n })(tt)), tt.exports;\n}\nvar Ui = Ki();\nconst N = /* @__PURE__ */ Hi(Ui);\nfunction B(t, e) {\n return t ? (e || document).getElementById(t) : null;\n}\nfunction Ji(t, e) {\n return t?.matches(`[data-motion-part~=\"${e}\"]`) ? t : t?.querySelector(`[data-motion-part~=\"${e}\"]`);\n}\nfunction Qi(t) {\n const e = t.alternate ? \"alternate\" : \"\";\n return t.reversed ? `${e ? `${e}-` : \"\"}reverse` : e || \"normal\";\n}\nfunction ht(t) {\n return `${t.value}${S(t.type)}`;\n}\nfunction ge(t, e, n) {\n return `${t.name || \"cover\"} ${n && t.offset.type !== \"percentage\" ? `calc(100% + ${ht(t.offset)}${e ? ` + ${e}` : \"\"})` : e ? `calc(${ht(t.offset)} + ${e})` : ht(t.offset)}`;\n}\nfunction la(t) {\n return {\n start: ge(t.startOffset, t.startOffsetAdd),\n end: ge(t.endOffset, t.endOffsetAdd, !0)\n };\n}\nfunction fa(t) {\n return (e) => N.measure(() => e(t));\n}\nfunction ma(t) {\n return (e) => N.mutate(() => e(t));\n}\nfunction q(t) {\n if (t.namedEffect) {\n const e = t.namedEffect.type;\n if (e in qt)\n return qt[e];\n if (e in ee)\n return ee[e];\n if (e in se)\n return se[e];\n if (e in me)\n return me[e];\n if (e in ue)\n return ue[e];\n } else if (t.keyframeEffect) {\n const e = (a) => {\n const { name: o, keyframes: r } = a.keyframeEffect;\n return [{ ...a, name: o, keyframes: r }];\n };\n return { web: e, style: e, getNames: (a) => {\n const { effectId: o } = a, { name: r } = a.keyframeEffect, s = r || o;\n return s ? [s] : [];\n } };\n } else if (t.customEffect)\n return (e) => [{ ...e, keyframes: [] }];\n return null;\n}\nfunction ua(t, e, n) {\n return t.map((a, o) => {\n const r = {\n fill: a.fill,\n easing: E(a.easing),\n iterations: a.iterations === 0 ? 1 / 0 : a.iterations || 1,\n composite: a.composite,\n direction: Qi(a)\n };\n return Pt(e) ? (r.duration = a.duration, r.delay = a.delay || 0) : window.ViewTimeline ? r.duration = \"auto\" : (r.duration = 99.99, r.delay = 0.01), {\n effect: a,\n options: r,\n id: n && `${n}-${o + 1}`,\n part: a.part\n };\n });\n}\nfunction Pt(t) {\n return !t || t.trigger !== \"pointer-move\" && t.trigger !== \"view-progress\";\n}\nfunction ye(t, e, n, a, o) {\n if (t) {\n if (Pt(a) && (e.duration = e.duration || 1, o?.reducedMotion))\n if (e.iterations === 1 || e.iterations == null)\n e = { ...e, duration: 1 };\n else\n return [];\n let r;\n return n instanceof HTMLElement && (r = { measure: fa(n), mutate: ma(n) }), t.web ? t.web(e, r, o) : t(e, r, o);\n }\n return [];\n}\nfunction da(t, e, n, a, o) {\n const r = t instanceof HTMLElement ? t : B(t, o);\n if (n?.trigger === \"pointer-move\") {\n let u = e;\n e.customEffect && (u = {\n ...e,\n namedEffect: { id: \"\", type: \"CustomMouse\" }\n });\n const d = q(\n u\n ), p = ye(\n d,\n e,\n r,\n n,\n a\n );\n return typeof p != \"function\" ? null : p(r);\n }\n const s = q(\n e\n ), i = ye(\n s,\n e,\n r,\n n,\n a\n );\n if (!i || i.length === 0)\n return null;\n const c = ua(\n i,\n n,\n e.effectId\n );\n let m;\n const l = n?.trigger === \"view-progress\";\n l && window.ViewTimeline && (m = new ViewTimeline({\n subject: n.element || B(n.componentId)\n }));\n const f = c.map(\n ({ effect: u, options: d, id: p, part: y }) => {\n const $ = y ? Ji(r, y) : r, O = new KeyframeEffect(\n $ || null,\n [],\n d\n );\n N.mutate(() => {\n \"timing\" in u && O.updateTiming(u.timing), O.setKeyframes(u.keyframes);\n });\n const _ = l && m ? { timeline: m } : {}, v = typeof u.customEffect == \"function\" ? new Ga(\n u.customEffect,\n $ || null,\n d,\n _\n ) : new Animation(O, _.timeline);\n if (l)\n if (m)\n N.mutate(() => {\n const { start: x, end: A } = la(u);\n v.rangeStart = x, v.rangeEnd = A, v.play();\n });\n else {\n const { startOffset: x, endOffset: A } = e;\n N.mutate(() => {\n const w = u.startOffset || x, z = u.endOffset || A;\n Object.assign(v, {\n start: {\n name: w.name,\n offset: w.offset?.value,\n add: u.startOffsetAdd\n },\n end: {\n name: z.name,\n offset: z.offset?.value,\n add: u.endOffsetAdd\n }\n });\n });\n }\n return p && (v.id = p), v;\n }\n );\n return new xt(f, {\n ...e,\n trigger: { ...n || {} },\n // make sure the group is ready after all animation targets are measured and mutated\n measured: new Promise((u) => N.mutate(u))\n });\n}\nfunction Wi(t, e) {\n return t ? `#${t}${e ? `[data-motion-part~=\"${e}\"]` : \"\"}` : \"\";\n}\nfunction tc(t, e) {\n const {\n duration: n,\n delay: a,\n iterations: o = 1,\n fill: r,\n easing: s = \"linear\",\n direction: i\n } = t.options, c = t.effect.name, m = n === \"auto\";\n return `${c} ${m ? \"auto\" : `${n}ms`}${m ? \" \" : ` ${a || 1}ms `}${s}${r && r !== \"none\" ? ` ${r}` : \"\"} ${!o || o === 1 / 0 ? \"infinite\" : o}${i === \"normal\" ? \"\" : ` ${i}`} ${e ? \"\" : \"paused\"}`;\n}\nfunction ec(t, e, n) {\n return t?.style ? (Pt(n) && (e.duration = e.duration || 1), t.style(e)) : [];\n}\nfunction rc(t, e, n) {\n const a = q(\n e\n ), o = ec(a, e), r = ua(\n o,\n n,\n e.effectId\n ), s = n?.trigger === \"view-progress\";\n return r.map((i, c) => {\n const { start: m, end: l } = s ? la(i.effect) : {};\n return {\n target: Wi(t, i.part),\n animation: tc(i, s),\n composition: i.options.composite,\n custom: i.effect.custom,\n name: i.effect.name,\n keyframes: i.effect.keyframes,\n id: i.id && `${i.id}-${c + 1}`,\n animationTimeline: s ? `--${n?.id}` : \"\",\n animationRange: m || l ? `${m} ${l}` : \"\"\n };\n });\n}\nfunction nc(t, e, n) {\n const a = q(e), o = t instanceof HTMLElement ? t : B(t);\n if (a && a.prepare && o) {\n const r = { measure: fa(o), mutate: ma(o) };\n a.prepare(\n e,\n r\n );\n }\n n && N.mutate(n);\n}\nfunction ac(t, e) {\n const n = q(\n e\n );\n if (!n)\n return null;\n if (!n.style)\n return e.effectId && t ? oc(t, e.effectId) : null;\n const a = n.getNames(e), r = (typeof t == \"string\" ? B(t) : t)?.getAnimations(), s = r?.map((c) => c.animationName) || [], i = [];\n return a.forEach((c) => {\n s.includes(c) && i.push(\n r?.find(\n (m) => m.animationName === c\n )\n );\n }), i?.length ? new xt(i) : null;\n}\nfunction oc(t, e) {\n const a = (typeof t == \"string\" ? B(t) : t)?.getAnimations().filter((o) => {\n const r = o.id || o.animationName;\n return r ? r.startsWith(e) : !0;\n });\n return a?.length ? new xt(a) : null;\n}\nfunction sc(t, e, n, a = {}) {\n const { disabled: o, allowActiveEvent: r, ...s } = a, i = da(t, e, n, s);\n if (!i)\n return null;\n let c = {};\n if (n.trigger === \"view-progress\" && !window.ViewTimeline) {\n const m = n.element || B(n.componentId), { ready: l } = i;\n return i.animations.map((f) => ({\n /* we use getters for start and end in order to access the animation's start and end\n only when initializing the scrub scene rather than immediately */\n get start() {\n return f.start;\n },\n get end() {\n return f.end;\n },\n viewSource: m,\n ready: l,\n getProgress() {\n return i.getProgress();\n },\n effect(u, d) {\n const { activeDuration: p } = f.effect.getComputedTiming(), { delay: y } = f.effect.getTiming();\n f.currentTime = ((y || 0) + (p || 0)) * d;\n },\n disabled: o,\n destroy() {\n f.cancel();\n }\n }));\n } else if (n.trigger === \"pointer-move\") {\n const { centeredToTarget: m, transitionDuration: l, transitionEasing: f } = e;\n c = {\n target: i.target,\n centeredToTarget: m,\n allowActiveEvent: r\n }, e.customEffect && l && (c.transitionDuration = l, c.transitionEasing = Va(f));\n }\n return {\n ...c,\n getProgress() {\n return i.getProgress();\n },\n effect(m, l, f, u) {\n i.progress(\n f ? {\n // @ts-expect-error spread error on p\n ...l,\n v: f,\n active: u\n } : l\n );\n },\n disabled: o,\n destroy() {\n i.cancel();\n }\n };\n}\nfunction ic(t, e, n, a = !1) {\n const o = ac(t, e);\n return o ? (o.ready = new Promise((r) => {\n nc(t, e, r);\n }), o) : da(t, e, n, { reducedMotion: a });\n}\nexport {\n ic as getAnimation,\n rc as getCSSAnimation,\n E as getEasing,\n oc as getElementAnimation,\n ac as getElementCSSAnimation,\n sc as getScrubScene,\n da as getWebAnimation,\n nc as prepareAnimation\n};\n//# sourceMappingURL=motion.js.map\n","import { getEasing } from '@wix/motion';\nimport type { Condition, CreateTransitionCSSParams } from './types';\n\n/**\n * Applies a selector condition predicate to a base selector.\n * - If `&` is in the predicate, replace `&` with the base selector\n * - If no `&`, assume `&<predicate>` (append predicate to base selector)\n */\nfunction applySelectorCondition(baseSelector: string, predicate: string): string {\n if (predicate.includes('&')) {\n return predicate.replace(/&/g, baseSelector);\n }\n return `${baseSelector}${predicate}`;\n}\n\nexport function generateId() {\n return 'wi-12343210'.replace(\n /\\d/g,\n (c) =>\n String.fromCharCode(\n (+c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (+c / 4)))) + 97,\n ), // 97 for \"a\"\n );\n}\n\nexport function createTransitionCSS({\n key,\n effectId,\n transition,\n properties,\n childSelector = '> :first-child',\n selectorCondition,\n}: CreateTransitionCSSParams): string[] {\n let transitions: string[] = [];\n\n if (transition?.styleProperties) {\n const { duration, easing, delay } = transition;\n\n if (duration) {\n const hasCustomPropertiesTransition = transition.styleProperties.some((styleProperty) =>\n styleProperty.name.startsWith('--'),\n );\n\n if (hasCustomPropertiesTransition) {\n // If there are custom properties in the transition, we need to fall back to Viewer's legacy implementation\n transitions = [\n `all ${duration}ms ${getEasing(easing || 'ease')}${delay ? ` ${delay}ms` : ''}`,\n 'visibility 0s',\n ];\n } else {\n transitions = transition.styleProperties.map(\n (styleProperty) =>\n `${styleProperty.name} ${duration}ms ${getEasing(\n easing || 'ease',\n )}${delay ? ` ${delay}ms` : ''}`,\n );\n }\n }\n\n properties = transition.styleProperties;\n } else {\n transitions =\n properties\n ?.filter((property) => property.duration)\n .map(\n (property) =>\n `${property.name} ${property.duration}ms ${\n getEasing(property.easing) || 'ease'\n }${property.delay ? ` ${property.delay}ms` : ''}`,\n ) || [];\n }\n\n const styleProperties =\n properties?.map((property) => `${property.name}: ${property.value};`) || [];\n const escapedKey = key.replace(/\"/g, \"'\");\n\n // Build selectors, applying condition if present\n const stateSelector = `:is(:state(${effectId}), :--${effectId}) ${childSelector}`;\n const dataAttrSelector = `[data-interact-effect~=\"${effectId}\"] ${childSelector}`;\n\n const finalStateSelector = selectorCondition\n ? applySelectorCondition(stateSelector, selectorCondition)\n : stateSelector;\n const finalDataAttrSelector = selectorCondition\n ? applySelectorCondition(dataAttrSelector, selectorCondition)\n : dataAttrSelector;\n\n const result = [\n `${finalStateSelector},\n ${finalDataAttrSelector} {\n ${styleProperties.join(`\n `)}\n }`,\n ];\n\n if (transitions.length) {\n const transitionSelector = `[data-interact-key=\"${escapedKey}\"] ${childSelector}`;\n const finalTransitionSelector = selectorCondition\n ? applySelectorCondition(transitionSelector, selectorCondition)\n : transitionSelector;\n\n result.push(`@media (prefers-reduced-motion: no-preference) { ${finalTransitionSelector} {\n transition: ${transitions.join(', ')};\n } }`);\n }\n return result;\n}\n\nexport function getMediaQuery(\n conditionNames: string[] | undefined,\n conditions: Record<string, Condition>,\n) {\n const conditionContent = (conditionNames || [])\n .filter((conditionName) => {\n return conditions[conditionName]?.type === 'media' && conditions[conditionName].predicate;\n })\n .map((conditionName) => {\n return conditions[conditionName].predicate;\n })\n .join(') and (');\n\n const condition = conditionContent && `(${conditionContent})`;\n const mql = condition && window.matchMedia(condition);\n\n return mql;\n}\n\nexport function getSelectorCondition(\n conditionNames: string[] | undefined,\n conditions: Record<string, Condition>,\n): string | undefined {\n for (const name of conditionNames || []) {\n const condition = conditions[name];\n if (condition?.type === 'selector' && condition.predicate) {\n return condition.predicate;\n }\n }\n return;\n}\n","import type {\n TimeEffect,\n ScrubEffect,\n RangeOffset,\n HandlerObject,\n HandlerObjectMap,\n AnimationOptions,\n} from '../types';\n\nconst DEFAULT_RANGE_VALUES = {\n rangeStart: { name: 'cover' as const, offset: { value: 0, type: 'percentage' as const } },\n rangeEnd: { name: 'cover' as const, offset: { value: 100, type: 'percentage' as const } },\n};\n\nfunction resolveRangeOffsets(\n rangeStart: RangeOffset | undefined,\n rangeEnd: RangeOffset | undefined,\n): { startOffset: RangeOffset; endOffset: RangeOffset } {\n const startName = rangeStart?.name ?? DEFAULT_RANGE_VALUES.rangeStart.name;\n const endName = rangeEnd?.name ?? rangeStart?.name ?? DEFAULT_RANGE_VALUES.rangeEnd.name;\n\n const startOffset: RangeOffset = {\n name: startName,\n offset: rangeStart?.offset || DEFAULT_RANGE_VALUES.rangeStart.offset,\n };\n\n const endOffset: RangeOffset = {\n name: endName,\n offset: rangeEnd?.offset || DEFAULT_RANGE_VALUES.rangeEnd.offset,\n };\n\n return { startOffset, endOffset };\n}\n\nexport function effectToAnimationOptions(effect: TimeEffect | ScrubEffect) {\n if (\n 'keyframeEffect' in effect &&\n !effect.keyframeEffect.name &&\n 'effectId' in effect\n ) {\n effect.keyframeEffect.name = effect.effectId as string;\n }\n\n if ('duration' in effect) {\n return {\n id: '',\n ...effect,\n } as AnimationOptions<'time'>;\n }\n\n const { rangeStart, rangeEnd, ...rest } = effect;\n const { startOffset, endOffset } = resolveRangeOffsets(rangeStart, rangeEnd);\n\n return {\n id: '',\n startOffset,\n endOffset,\n ...rest,\n } as AnimationOptions<'scrub'>;\n}\n\nexport function addHandlerToMap(\n handlersMap: HandlerObjectMap,\n element: HTMLElement,\n handlerObj: HandlerObject,\n) {\n let handlers = handlersMap.get(element);\n\n if (!handlers) {\n handlers = new Set();\n handlersMap.set(element, handlers);\n }\n\n handlers.add(handlerObj);\n}\n\nexport function removeElementFromHandlerMap(\n handlerMap: HandlerObjectMap,\n element: HTMLElement,\n) {\n const handlers = handlerMap.get(element);\n\n handlers?.forEach((handlerObj) => {\n const { source, target, cleanup } = handlerObj;\n cleanup();\n\n const otherKey = source === element ? target : source;\n const otherHandlers = handlerMap.get(otherKey);\n otherHandlers?.delete(handlerObj);\n });\n\n handlerMap.delete(element);\n}\n","!(function(win) {\n\n/**\n * FastDom\n *\n * Eliminates layout thrashing\n * by batching DOM read/write\n * interactions.\n *\n * @author Wilson Page <wilsonpage@me.com>\n * @author Kornel Lesinski <kornel.lesinski@ft.com>\n */\n\n'use strict';\n\n/**\n * Mini logger\n *\n * @return {Function}\n */\nvar debug = 0 ? console.log.bind(console, '[fastdom]') : function() {};\n\n/**\n * Normalized rAF\n *\n * @type {Function}\n */\nvar raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n\n/**\n * Initialize a `FastDom`.\n *\n * @constructor\n */\nfunction FastDom() {\n var self = this;\n self.reads = [];\n self.writes = [];\n self.raf = raf.bind(win); // test hook\n debug('initialized', self);\n}\n\nFastDom.prototype = {\n constructor: FastDom,\n\n /**\n * We run this inside a try catch\n * so that if any jobs error, we\n * are able to recover and continue\n * to flush the batch until it's empty.\n *\n * @param {Array} tasks\n */\n runTasks: function(tasks) {\n debug('run tasks');\n var task; while (task = tasks.shift()) task();\n },\n\n /**\n * Adds a job to the read batch and\n * schedules a new frame if need be.\n *\n * @param {Function} fn\n * @param {Object} ctx the context to be bound to `fn` (optional).\n * @public\n */\n measure: function(fn, ctx) {\n debug('measure');\n var task = !ctx ? fn : fn.bind(ctx);\n this.reads.push(task);\n scheduleFlush(this);\n return task;\n },\n\n /**\n * Adds a job to the\n * write batch and schedules\n * a new frame if need be.\n *\n * @param {Function} fn\n * @param {Object} ctx the context to be bound to `fn` (optional).\n * @public\n */\n mutate: function(fn, ctx) {\n debug('mutate');\n var task = !ctx ? fn : fn.bind(ctx);\n this.writes.push(task);\n scheduleFlush(this);\n return task;\n },\n\n /**\n * Clears a scheduled 'read' or 'write' task.\n *\n * @param {Object} task\n * @return {Boolean} success\n * @public\n */\n clear: function(task) {\n debug('clear', task);\n return remove(this.reads, task) || remove(this.writes, task);\n },\n\n /**\n * Extend this FastDom with some\n * custom functionality.\n *\n * Because fastdom must *always* be a\n * singleton, we're actually extending\n * the fastdom instance. This means tasks\n * scheduled by an extension still enter\n * fastdom's global task queue.\n *\n * The 'super' instance can be accessed\n * from `this.fastdom`.\n *\n * @example\n *\n * var myFastdom = fastdom.extend({\n * initialize: function() {\n * // runs on creation\n * },\n *\n * // override a method\n * measure: function(fn) {\n * // do extra stuff ...\n *\n * // then call the original\n * return this.fastdom.measure(fn);\n * },\n *\n * ...\n * });\n *\n * @param {Object} props properties to mixin\n * @return {FastDom}\n */\n extend: function(props) {\n debug('extend', props);\n if (typeof props != 'object') throw new Error('expected object');\n\n var child = Object.create(this);\n mixin(child, props);\n child.fastdom = this;\n\n // run optional creation hook\n if (child.initialize) child.initialize();\n\n return child;\n },\n\n // override this with a function\n // to prevent Errors in console\n // when tasks throw\n catch: null\n};\n\n/**\n * Schedules a new read/write\n * batch if one isn't pending.\n *\n * @private\n */\nfunction scheduleFlush(fastdom) {\n if (!fastdom.scheduled) {\n fastdom.scheduled = true;\n fastdom.raf(flush.bind(null, fastdom));\n debug('flush scheduled');\n }\n}\n\n/**\n * Runs queued `read` and `write` tasks.\n *\n * Errors are caught and thrown by default.\n * If a `.catch` function has been defined\n * it is called instead.\n *\n * @private\n */\nfunction flush(fastdom) {\n debug('flush');\n\n var writes = fastdom.writes;\n var reads = fastdom.reads;\n var error;\n\n try {\n debug('flushing reads', reads.length);\n fastdom.runTasks(reads);\n debug('flushing writes', writes.length);\n fastdom.runTasks(writes);\n } catch (e) { error = e; }\n\n fastdom.scheduled = false;\n\n // If the batch errored we may still have tasks queued\n if (reads.length || writes.length) scheduleFlush(fastdom);\n\n if (error) {\n debug('task errored', error.message);\n if (fastdom.catch) fastdom.catch(error);\n else throw error;\n }\n}\n\n/**\n * Remove an item from an Array.\n *\n * @param {Array} array\n * @param {*} item\n * @return {Boolean}\n */\nfunction remove(array, item) {\n var index = array.indexOf(item);\n return !!~index && !!array.splice(index, 1);\n}\n\n/**\n * Mixin own properties of source\n * object into the target.\n *\n * @param {Object} target\n * @param {Object} source\n */\nfunction mixin(target, source) {\n for (var key in source) {\n if (source.hasOwnProperty(key)) target[key] = source[key];\n }\n}\n\n// There should never be more than\n// one instance of `FastDom` in an app\nvar exports = win.fastdom = (win.fastdom || new FastDom()); // jshint ignore:line\n\n// Expose to CJS & AMD\nif ((typeof define) == 'function') define(function() { return exports; });\nelse if ((typeof module) == 'object') module.exports = exports;\n\n})( typeof window !== 'undefined' ? window : typeof this != 'undefined' ? this : globalThis);\n","import type { AnimationGroup } from '@wix/motion';\nimport { getAnimation } from '@wix/motion';\nimport type { TimeEffect, HandlerObjectMap, ViewEnterParams, InteractOptions } from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\nimport fastdom from 'fastdom';\n\nconst SAFE_OBSERVER_CONFIG: IntersectionObserverInit = {\n root: null,\n rootMargin: '0px 0px -10% 0px',\n threshold: [0],\n};\n\n// Exit observer config for repeat/state types - watches when element is completely out of view\nconst EXIT_OBSERVER_CONFIG: IntersectionObserverInit = {\n root: null,\n rootMargin: '0px',\n threshold: [0],\n};\n\nconst observers: Record<string, IntersectionObserver> = {};\nconst handlerMap = new WeakMap() as HandlerObjectMap;\nconst elementFirstRun = new WeakSet<HTMLElement>();\nconst elementObserverMap = new WeakMap<HTMLElement, IntersectionObserver>();\nlet viewEnterOptions: Partial<ViewEnterParams> = {};\nlet sharedExitObserver: IntersectionObserver | null = null;\n\nfunction setOptions(options: Partial<ViewEnterParams>) {\n viewEnterOptions = options;\n}\n\nfunction invokeHandlers(target: HTMLElement, isIntersecting: boolean) {\n const handlers = handlerMap.get(target);\n handlers?.forEach(({ source, handler }) => {\n if (source === target) {\n handler!(isIntersecting);\n }\n });\n}\n\nfunction getExitObserver() {\n if (sharedExitObserver) {\n return sharedExitObserver;\n }\n\n sharedExitObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n const target = entry.target as HTMLElement;\n\n if (!entry.isIntersecting) {\n // Element has completely exited the view\n invokeHandlers(target, false);\n }\n });\n }, EXIT_OBSERVER_CONFIG);\n\n return sharedExitObserver;\n}\n\nfunction getObserver(options: ViewEnterParams, isSafeMode: boolean = false) {\n const key = JSON.stringify({ ...options, isSafeMode });\n\n if (observers[key]) {\n return observers[key];\n }\n\n const config: IntersectionObserverInit = isSafeMode\n ? SAFE_OBSERVER_CONFIG\n : {\n root: null,\n rootMargin: options.inset\n ? `${options.inset} 0px ${options.inset}`\n : '0px',\n threshold: options.threshold,\n };\n\nconst observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n const target = entry.target as HTMLElement;\n const isFirstRun = !elementFirstRun.has(target);\n\n if (isFirstRun) {\n elementFirstRun.add(target);\n\n if (options.useSafeViewEnter && !entry.isIntersecting) {\n fastdom.measure(() => {\n const sourceHeight = entry.boundingClientRect.height;\n const rootHeight = entry.rootBounds?.height;\n\n if (!rootHeight) {\n return;\n }\n\n const threshold = Array.isArray(options.threshold)\n ? Math.min(...options.threshold)\n : options.threshold;\n\n const needsSafeObserver =\n threshold && sourceHeight * threshold > rootHeight;\n\n if (needsSafeObserver) {\n fastdom.mutate(() => {\n observer.unobserve(target);\n const safeObserver = getObserver(options, true);\n elementObserverMap.set(target, safeObserver);\n safeObserver.observe(target);\n });\n }\n });\n return;\n }\n }\n\n const type = options.type || 'once';\n\n if (entry.isIntersecting || (type === 'alternate' && !isFirstRun)) {\n // For alternate type, handle exit using same observer as entry\n invokeHandlers(target, entry.isIntersecting);\n\n if (type === 'once') {\n observer.unobserve(entry.target);\n elementFirstRun.delete(target);\n }\n }\n // Note: repeat and state exit handling is done by a separate exit observer\n // that watches when element is completely out of view\n });\n}, config);\n\n observers[key] = observer;\n\n return observer;\n}\n\nfunction addViewEnterHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: TimeEffect,\n options: ViewEnterParams = {},\n { reducedMotion, selectorCondition }: InteractOptions = {},\n) {\n const mergedOptions = { ...viewEnterOptions, ...options };\n const type = mergedOptions.type || 'once';\n const animation = getAnimation(\n target,\n effectToAnimationOptions(effect),\n undefined,\n reducedMotion,\n ) as AnimationGroup | null;\n\n // Early return if animation is null, no observer created\n if (!animation) {\n return;\n }\n\n const observer = getObserver(mergedOptions);\n\n // Persist animation for non-once types to prevent auto-cleanup\n if (type !== 'once') {\n // Use persist() if available (Web Animations API)\n (animation as AnimationGroup & { persist?: () => void }).persist?.();\n }\n\n // Track initial play state for alternate type\n let isInitialPlay = true;\n\n if (animation?.isCSS) {\n animation.onFinish(() => {\n target.dataset.motionEnter = 'done';\n });\n }\n\n const handler = (isIntersecting?: boolean) => {\n if (selectorCondition && !target.matches(selectorCondition)) return;\n\n if (type === 'once') {\n if (isIntersecting) {\n animation.play(() => {\n if (!animation.isCSS) {\n target.dataset.motionEnter = 'done';\n }\n });\n }\n } else if (type === 'alternate') {\n if (isInitialPlay && isIntersecting) {\n isInitialPlay = false;\n animation.play();\n } else if (!isInitialPlay) {\n // On subsequent entry/exit reverse the animation\n animation.reverse();\n }\n } else if (type === 'repeat') {\n if (isIntersecting) {\n // On entry, reset progress to 0 before playing since the exit is a separate observer/range\n animation.progress(0);\n animation.play();\n } else {\n // On exit (completely out of view), pause and reset\n animation.pause();\n animation.progress(0);\n }\n } else if (type === 'state') {\n if (isIntersecting) {\n // Resume or start playing\n animation.play();\n } else {\n // On exit (completely out of view), just pause\n animation.pause();\n }\n }\n };\n\n const cleanup = () => {\n const currentObserver = elementObserverMap.get(source) || observer;\n currentObserver.unobserve(source);\n\n if (type === 'repeat' || type === 'state') {\n // Clean up exit observer if it exists\n const exitObserver = getExitObserver();\n exitObserver.unobserve(source);\n }\n\n animation.cancel();\n elementFirstRun.delete(source);\n elementObserverMap.delete(source);\n };\n const handlerObj = { source, target, handler, cleanup };\n\n addHandlerToMap(handlerMap, source, handlerObj);\n addHandlerToMap(handlerMap, target, handlerObj);\n\n elementObserverMap.set(source, observer);\n observer.observe(source);\n\n // For repeat and state types, set up a separate exit observer\n // that watches when element is completely out of view\n if (type === 'repeat' || type === 'state') {\n const exitObserver = getExitObserver();\n exitObserver.observe(source);\n }\n}\n\nfunction removeViewEnterHandler(element: HTMLElement) {\n removeElementFromHandlerMap(handlerMap, element);\n}\n\nfunction reset() {\n sharedExitObserver = null;\n Object.keys(observers).forEach((key) => delete observers[key]);\n}\n\nexport default {\n add: addViewEnterHandler,\n remove: removeViewEnterHandler,\n setOptions,\n reset,\n};\n","/**\n * Returns a new Object with the properties of the first argument\n * assigned to it, and the second argument as its prototype, so\n * its properties are served as defaults.\n *\n * @param {Object} obj properties to assign\n * @param {Object|null} defaults\n * @return {Object}\n */\nfunction defaultTo (obj, defaults) {\n return Object.assign(Object.create(defaults), obj);\n}\n\n/**\n * Interpolate from a to b by the factor t.\n *\n * @param {number} a start point\n * @param {number} b end point\n * @param {number} t interpolation factor\n * @param {number} e minimal possible delta between result and start, and between result and end\n * @return {number}\n */\nfunction lerp (a, b, t, e) {\n let res = a * (1 - t) + b * t;\n\n if (e) {\n const deltaFromStart = res - a;\n if (Math.abs(deltaFromStart) < e) {\n res = a + e * Math.sign(deltaFromStart);\n }\n\n const deltaFromEnd = b - res;\n\n if (Math.abs(deltaFromEnd) < e) {\n return b;\n }\n }\n\n return res;\n}\n\n/**\n * Throttle a function to trigger once per animation frame.\n * Keeps the arguments from last call, even if that call gets ignored.\n *\n * @param {function} fn function to throttle\n * @return {(function(): void)}\n */\nfunction frameThrottle (fn) {\n let throttled = false;\n\n return function () {\n if (!throttled) {\n throttled = true;\n\n window.requestAnimationFrame(() => {\n throttled = false;\n fn();\n });\n }\n };\n}\n\n/**\n * Debounce a function by interval in milliseconds.\n *\n * @param {function} fn\n * @param {number} interval\n * @return {function}\n */\nfunction debounce (fn, interval) {\n let debounced = 0;\n\n return function bounce () {\n if (debounced) {\n window.clearTimeout(debounced);\n }\n\n debounced = window.setTimeout(() => {\n debounced = 0;\n fn();\n }, interval);\n };\n}\n\nexport {\n defaultTo,\n lerp,\n frameThrottle,\n debounce\n};\n","/**\n * parses offsetString of the format calc(<length> + <length>)\n * @param {string|undefined} offsetString\n * @param {AbsoluteOffsetContext} absoluteOffsetContext\n */\nfunction parseOffsetCalc(offsetString, absoluteOffsetContext) {\n const match = offsetString.match(/^calc\\s*\\(\\s*(-?\\d+((px)|([lsd]?vh)|([lsd]?vw)))\\s*\\+\\s*(-?\\d+((px)|([lsd]?vh)|([lsd]?vw)))\\s*\\)\\s*$/);\n return transformAbsoluteOffsetToNumber(match[1], absoluteOffsetContext) + transformAbsoluteOffsetToNumber(match[6], absoluteOffsetContext);\n}\n\n/**\n * Convert an absolute offset as string to number of pixels\n *\n * @param {string|undefined} offsetString\n * @param {AbsoluteOffsetContext} absoluteOffsetContext\n * @return {number}\n */\nfunction transformAbsoluteOffsetToNumber (offsetString, absoluteOffsetContext) {\n return offsetString\n ? /^-?\\d+px$/.test(offsetString)\n ? parseInt(offsetString)\n : /^-?\\d+[lsd]?vh$/.test(offsetString)\n ? parseInt(offsetString) * absoluteOffsetContext.viewportHeight / 100\n : /^-?\\d+[lsd]?vw$/.test(offsetString)\n ? parseInt(offsetString) * absoluteOffsetContext.viewportWidth / 100\n : /^calc\\s*\\(\\s*-?\\d+((px)|([lsd]?vh)|([lsd]?vw))\\s*\\+\\s*-?\\d+((px)|([lsd]?vh)|([lsd]?vw))\\s*\\)\\s*$/.test(offsetString)\n ? parseOffsetCalc(offsetString, absoluteOffsetContext)\n : parseInt(offsetString) || 0\n : 0;\n}\n\n/**\n * Convert a range into offset in pixels.\n *\n * @param {{name: RangeName, offset: number}} range\n * @param {number} viewportSize\n * @param {{start: number, end: number}} rect\n * @return {number}\n */\nfunction transformRangeToPosition (range, viewportSize, rect) {\n const { name, offset = 0 } = range;\n const { start, end } = rect;\n const height = end - start;\n const percentage = offset / 100;\n\n let startPosition, duration;\n\n if (name === 'entry') {\n startPosition = start - viewportSize;\n duration = Math.min(viewportSize, height);\n }\n else if (name === 'entry-crossing') {\n startPosition = start - viewportSize;\n duration = height;\n }\n else if (name === 'contain') {\n startPosition = Math.min(end - viewportSize, start);\n // it's either VH - height OR height - VH; so it boils down to just the absolute value of that\n duration = Math.abs(viewportSize - height);\n }\n else if (name === 'exit') {\n startPosition = Math.max(start, end - viewportSize);\n duration = Math.min(viewportSize, height);\n }\n else if (name === 'exit-crossing') {\n startPosition = start;\n duration = height;\n }\n else if (name === 'cover') {\n startPosition = start - viewportSize;\n duration = height + viewportSize;\n }\n\n return (startPosition + percentage * duration) | 0;\n}\n\nfunction computeStickinessIntoFullRange(offsetTree, absoluteStartOffset, absoluteEndOffset, viewportSize, isHorizontal) {\n let accumulatedOffset = 0;\n const newAbsoluteRange = {start: absoluteStartOffset, end: absoluteEndOffset}\n\n /*\n * loop from root down to subject\n * check for sticky positioned elements in the tree and add stuck intervals if needed\n */\n offsetTree.forEach((node, index) => {\n accumulatedOffset += node.offset;\n const sticky = node.sticky;\n\n if (sticky) {\n if ('end' in sticky) {\n const parent = offsetTree[index - 1]?.element;\n\n if (parent) {\n const elementSize = (isHorizontal ? node.element.offsetWidth : node.element.offsetHeight) || 0;\n const offsetFromViewEnd = elementSize + sticky.end - viewportSize;\n /*\n * Sticky bottom:\n * starts on the starting edge of element's parent - viewport size + element size + offset from bottom of view\n * ends on the element's offset + offset from bottom of view\n * duration is essentially element's offset\n */\n const stuckStart = accumulatedOffset + offsetFromViewEnd - node.offset;\n // check if stuckStart is before the point of scroll where the timeline starts\n const isBeforeStart = stuckStart < newAbsoluteRange.start;\n // check if stuckStart is inside the timeline's active scroll interval\n const isInsideDuration = !isBeforeStart && stuckStart <= absoluteEndOffset;\n\n let extraOffset = 0;\n if (isBeforeStart || isInsideDuration) {\n extraOffset = node.offset;\n newAbsoluteRange.end += extraOffset;\n }\n\n if (isBeforeStart) {\n newAbsoluteRange.start += extraOffset;\n }\n }\n }\n\n if ('start' in sticky) {\n // stuckStart is the amount needed to scroll to reach the stuck state\n const stuckStart = accumulatedOffset - sticky.start;\n\n // check if stuckStart is before the point of scroll where the timeline starts\n const isBeforeStart = stuckStart < newAbsoluteRange.start;\n // check if stuckStart is inside the timeline's active scroll interval\n const isInsideDuration = !isBeforeStart && stuckStart <= newAbsoluteRange.end;\n\n let extraOffset = 0;\n const parent = offsetTree[index - 1]?.element;\n\n if (parent) {\n if (isBeforeStart || isInsideDuration) {\n const parentSize = (isHorizontal ? parent.offsetWidth : parent.offsetHeight) || 0;\n const elementOffset = node.offset;\n const elementSize = (isHorizontal ? node.element.offsetWidth : node.element.offsetHeight) || 0;\n\n extraOffset = parentSize - (elementOffset + elementSize);\n accumulatedOffset += extraOffset;\n newAbsoluteRange.end += extraOffset;\n }\n\n if (isBeforeStart) {\n newAbsoluteRange.start += extraOffset;\n }\n }\n }\n }\n });\n\n return newAbsoluteRange;\n}\n\n/**\n * Convert scene data in ranges into offsets in pixels.\n *\n * @param {ScrollScene} scene\n * @param {{start: number, end: number}} rect\n * @param {number} viewportSize\n * @param {boolean} isHorizontal\n * @param {AbsoluteOffsetContext} absoluteOffsetContext\n * @param {Array<{element: HTMLElement, offset: number, sticky: {start?: number, end?: number}}>} offsetTree\n * @return {ScrollScene}\n */\nfunction transformSceneRangesToOffsets (scene, rect, viewportSize, isHorizontal, absoluteOffsetContext, offsetTree) {\n const { start, end, duration } = scene;\n\n let startOffset = start;\n let endOffset = end;\n let startRange = scene.startRange;\n let endRange = scene.endRange;\n let overrideDuration;\n\n if (typeof duration === 'string') {\n startRange = { name: duration, offset: 0 }\n endRange = { name: duration, offset: 100 }\n\n startOffset = transformRangeToPosition(startRange, viewportSize, rect);\n endOffset = transformRangeToPosition(endRange, viewportSize, rect);\n overrideDuration = endOffset - startOffset;\n\n const newAbsoluteRange = computeStickinessIntoFullRange(offsetTree, startOffset, endOffset, viewportSize, isHorizontal);\n\n startOffset = newAbsoluteRange.start;\n endOffset = newAbsoluteRange.end;\n }\n else {\n if (startRange || start?.name) {\n startRange = startRange || start;\n\n const startAdd = transformAbsoluteOffsetToNumber(startRange.add, absoluteOffsetContext);\n const absoluteStartOffset = transformRangeToPosition({...startRange, offset: 0}, viewportSize, rect);\n const absoluteEndOffset = transformRangeToPosition({...startRange, offset: 100}, viewportSize, rect);\n // we take 0% to 100% of the named range for start, and we compute the position by adding the sticky addition for the given start offset\n const newAbsoluteRange = computeStickinessIntoFullRange(offsetTree, absoluteStartOffset, absoluteEndOffset, viewportSize, isHorizontal);\n\n startOffset = newAbsoluteRange.start + (startRange.offset / 100) * (newAbsoluteRange.end - newAbsoluteRange.start) + startAdd;\n }\n\n if (endRange || end?.name) {\n endRange = endRange || end;\n\n const endAdd = transformAbsoluteOffsetToNumber(endRange.add, absoluteOffsetContext);\n const absoluteStartOffset = transformRangeToPosition({...endRange, offset: 0}, viewportSize, rect);\n const absoluteEndOffset = transformRangeToPosition({...endRange, offset: 100}, viewportSize, rect);\n // we take 0% to 100% of the named range for end, and we compute the position by adding the sticky addition for the given end offset\n const newAbsoluteRange = computeStickinessIntoFullRange(offsetTree, absoluteStartOffset, absoluteEndOffset, viewportSize, isHorizontal);\n\n endOffset = newAbsoluteRange.start + (endRange.offset / 100) * (newAbsoluteRange.end - newAbsoluteRange.start) + endAdd;\n }\n else if (typeof duration === 'number') {\n endOffset = startOffset + duration;\n }\n }\n\n if (!overrideDuration && !duration) {\n overrideDuration = endOffset - startOffset;\n }\n\n return {...scene, start: startOffset, end: endOffset, startRange, endRange, duration: overrideDuration || duration };\n}\n\n/**\n * Check whether the position of an element is sticky.\n *\n * @param {CSSStyleDeclaration} style\n * @return {boolean}\n */\nfunction getIsSticky (style) {\n return style.position === 'sticky';\n}\n\n/**\n * Check whether the position of an element is sticky.\n *\n * @param {CSSStyleDeclaration} style\n * @param {HTMLElement} offsetParent\n * @param {HTMLElement} root\n * @return {boolean}\n */\nfunction getIsFixed (style, offsetParent, root) {\n return style.position === 'fixed' && (!offsetParent || offsetParent === window.document.body || offsetParent === root);\n}\n\n/**\n * Get start offset of an element in scroll direction.\n *\n * @param {CSSStyleDeclaration} style\n * @param {boolean} isHorizontal\n * @return {number}\n */\nfunction getStickyStartOffset (style, isHorizontal) {\n return parseInt(isHorizontal ? style.left : style.top);\n}\n\n/**\n * Get end offset of an element in scroll direction.\n *\n * @param {CSSStyleDeclaration} style\n * @param {boolean} isHorizontal\n * @return {number}\n */\nfunction getStickyEndOffset (style, isHorizontal) {\n return parseInt(isHorizontal ? style.right : style.bottom);\n}\n\n/**\n *\n * @param {HTMLElement} element\n * @param {boolean} isHorizontal\n * @param {boolean} isSticky\n * @return {number}\n */\nfunction getRectStart (element, isHorizontal, isSticky) {\n // TODO: implement support for RTL writing-mode\n if (isSticky) {\n element.style.position = 'static';\n }\n\n const result = (isHorizontal ? element.offsetLeft : element.offsetTop) || 0;\n\n if (isSticky) {\n // assuming the sticky position came from a stylesheet and not set inline\n element.style.position = null;\n }\n\n return result\n}\n\nfunction getStickyData (style, isHorizontal) {\n let sticky;\n const stickyStart = getStickyStartOffset(style, isHorizontal);\n const stickyEnd = getStickyEndOffset(style, isHorizontal);\n const hasStickyStart = !isNaN(stickyStart);\n const hasStickyEnd = !isNaN(stickyEnd);\n\n if (hasStickyStart || hasStickyEnd) {\n sticky = {};\n\n if (hasStickyStart) {\n sticky.start = stickyStart;\n }\n if (hasStickyEnd) {\n sticky.end = stickyEnd;\n }\n }\n\n return sticky;\n}\n\n/**\n * Returns an array of converted scenes' data for grouped scenes (assumes same viewSource) from ranges into offsets in pixels.\n *\n * @param {ScrollScene[]} scenes\n * @param {Window|HTMLElement} root\n * @param {number} viewportSize\n * @param {boolean} isHorizontal\n * @param {AbsoluteOffsetContext} absoluteOffsetContext\n * @return {ScrollScene[]}\n */\nexport function getTransformedSceneGroup (scenes, root, viewportSize, isHorizontal, absoluteOffsetContext) {\n const element = scenes[0].viewSource;\n const offsetTree = [];\n let size = (isHorizontal ? element.offsetWidth : element.offsetHeight) || 0;\n let elementLayoutStart = 0;\n let parent = element;\n\n while (parent) {\n const nodeStyle = window.getComputedStyle(parent);\n const isSticky = getIsSticky(nodeStyle);\n const sticky = isSticky ? getStickyData(nodeStyle, isHorizontal) : undefined;\n\n // get the base offset of the source element - before adding sticky intervals\n const offset = getRectStart(parent, isHorizontal, isSticky);\n\n // if we have sticky end (bottom or right) ignore offset for this element because it will stick to its parent's start edge\n if (!sticky || !('end' in sticky)) {\n elementLayoutStart += offset;\n }\n\n offsetTree.push({element: parent, offset, sticky});\n\n parent = parent.offsetParent;\n const isFixed = getIsFixed(nodeStyle, parent, root);\n if (isFixed) {\n break;\n } else if (parent === root) {\n offsetTree.push({element: parent, offset: 0});\n break;\n }\n }\n\n offsetTree.reverse();\n\n const transformedScenes = scenes.map(scene => ({\n ...transformSceneRangesToOffsets(\n scene,\n {start: elementLayoutStart, end: elementLayoutStart + size},\n viewportSize,\n isHorizontal,\n absoluteOffsetContext,\n offsetTree\n ),\n }));\n\n return transformedScenes;\n}\n\n/**\n * Returns a converted scene data from ranges into offsets in pixels.\n *\n * @param {ScrollScene} scene\n * @param {Window|HTMLElement} root\n * @param {number} viewportSize\n * @param {boolean} isHorizontal\n * @param {AbsoluteOffsetContext} absoluteOffsetContext\n * @return {ScrollScene}\n */\nexport function getTransformedScene (scene, root, viewportSize, isHorizontal, absoluteOffsetContext) {\n return getTransformedSceneGroup([scene], root, viewportSize, isHorizontal, absoluteOffsetContext)[0];\n}\n\n","import { debounce, defaultTo } from './utilities.js';\nimport { getTransformedSceneGroup } from './view.js';\n\nconst VIEWPORT_RESIZE_INTERVAL = 100;\n\n/**\n * @private\n * @type {scrollConfig}\n */\nconst DEFAULTS = {\n horizontal: false,\n observeViewportEntry: true,\n viewportRootMargin: '7% 7%',\n observeViewportResize: false,\n observeSourcesResize: false,\n observeContentResize: false,\n};\n\n/*\n * Utilities for scroll controller\n */\n\n\n/**\n * Utility for calculating effect progress.\n *\n * @private\n * @param {number} p current scroll position\n * @param {number} start start position\n * @param {number} end end position\n * @param {number} duration duration of effect in scroll pixels\n * @return {number} effect progress, between 0 and 1\n */\nfunction calcProgress (p, start, end, duration) {\n let progress = 0;\n\n if (p >= start && p <= end) {\n progress = duration ? (p - start) / duration : 1;\n }\n else if (p > end) {\n progress = 1;\n }\n\n return progress;\n}\n\n/**\n *\n * @param {Window|HTMLElement} root\n * @param {boolean} isHorizontal\n * @return {number}\n */\nfunction getViewportSize (root, isHorizontal) {\n if (root === window) {\n return isHorizontal\n ? window.document.documentElement.clientWidth\n : window.document.documentElement.clientHeight;\n }\n\n return isHorizontal ? root.clientWidth : root.clientHeight;\n}\n\nfunction getAbsoluteOffsetContext () {\n // TODO: re-calc on viewport resize\n return {\n viewportWidth: window.document.documentElement.clientWidth,\n viewportHeight: window.document.documentElement.clientHeight\n };\n}\n\n/*\n * Scroll controller factory\n */\n\n/**\n * Initialize and return a scroll controller.\n *\n * @private\n * @param {scrollConfig} config\n * @return {{tick: function, destroy: function}}\n */\nexport function getController (config) {\n const _config = defaultTo(config, DEFAULTS);\n const root = _config.root;\n const horizontal = _config.horizontal;\n const scenesByElement = new WeakMap();\n let viewportSize = getViewportSize(root, horizontal);\n\n let lastP;\n let viewportObserver, rangesResizeObserver, viewportResizeHandler, scrollportResizeObserver;\n const rangesToObserve = [];\n const absoluteOffsetContext = getAbsoluteOffsetContext()\n\n /*\n * Prepare scenes data.\n */\n _config.scenes = Object.values(\n // TODO(ameerf): find a polyfill and use groupBy instead of following reduce\n config.scenes.reduce((acc, scene, index) => {\n const key = scene.groupId ? `group-${scene.groupId}` : String(index);\n if (acc[key]) {\n acc[key].push(scene)\n } else {\n acc[key] = [scene];\n }\n return acc;\n },\n {})\n ).flatMap(sceneGroup => {\n if (sceneGroup.every(scene => (scene.viewSource && (typeof scene.duration === 'string' || scene.start?.name)))) {\n sceneGroup = getTransformedSceneGroup(sceneGroup, root, viewportSize, horizontal, absoluteOffsetContext);\n if (_config.observeSourcesResize || _config.observeContentResize) {\n rangesToObserve.push(sceneGroup);\n }\n } else {\n sceneGroup.forEach(scene => {\n if (scene.end == null) {\n scene.end = scene.start + scene.duration;\n }\n if (scene.duration == null) {\n scene.duration = scene.end - scene.start;\n }\n });\n }\n\n return sceneGroup;\n });\n _config.scenes.forEach((scene, index) => {scene.index = index;});\n\n if (rangesToObserve.length) {\n const targetToSceneGroup = new Map();\n\n if (window.ResizeObserver) {\n /*\n * Observe resize of view-timeline subjects.\n */\n rangesResizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(entry => {\n const sceneGroup = targetToSceneGroup.get(entry.target);\n // TODO: try to optimize by using `const {blockSize, inlineSize} = entry.borderBoxSize[0]`\n const transformedSceneGroup = getTransformedSceneGroup(sceneGroup, root, viewportSize, horizontal, absoluteOffsetContext);\n transformedSceneGroup.forEach((scene, localIndex) => {_config.scenes[scene.index] = transformedSceneGroup[localIndex];});\n // replace the old object from the cache with the new one\n rangesToObserve.splice(rangesToObserve.indexOf(sceneGroup), 1, transformedSceneGroup);\n });\n });\n\n rangesToObserve.forEach(sceneGroup => {\n rangesResizeObserver.observe(sceneGroup[0].viewSource, {box: 'border-box'});\n targetToSceneGroup.set(sceneGroup[0].viewSource, sceneGroup);\n });\n\n /*\n * Observe resize of content root.\n */\n if (_config.observeContentResize && _config.contentRoot) {\n const contentResizeObserver = new window.ResizeObserver(debounce(() => {\n const newRanges = rangesToObserve.map(sceneGroup => {\n const newSceneGroup = getTransformedSceneGroup(sceneGroup, root, viewportSize, horizontal, absoluteOffsetContext);\n newSceneGroup.forEach((scene, localIndex) => {_config.scenes[scene.index] = newSceneGroup[localIndex];});\n\n return newSceneGroup;\n });\n\n // reset cache\n rangesToObserve.length = 0;\n rangesToObserve.push(...newRanges);\n rangesToObserve.forEach(sceneGroup => {\n targetToSceneGroup.set(sceneGroup[0].viewSource, sceneGroup);\n });\n }, VIEWPORT_RESIZE_INTERVAL));\n\n contentResizeObserver.observe(_config.contentRoot, {box: 'border-box'});\n }\n }\n\n if (_config.observeViewportResize) {\n viewportResizeHandler = debounce(function () {\n viewportSize = getViewportSize(root, horizontal);\n\n const newRanges = rangesToObserve.map(sceneGroup => {\n const newSceneGroup = getTransformedSceneGroup(sceneGroup, root, viewportSize, horizontal, absoluteOffsetContext);\n newSceneGroup.forEach((scene, localIndex) => {_config.scenes[scene.index] = newSceneGroup[localIndex];});\n\n return newSceneGroup;\n });\n\n // reset cache\n rangesToObserve.length = 0;\n rangesToObserve.push(...newRanges);\n rangesToObserve.forEach(sceneGroup => {\n targetToSceneGroup.set(sceneGroup[0].viewSource, sceneGroup);\n });\n }, VIEWPORT_RESIZE_INTERVAL);\n\n if (root === window) {\n window.addEventListener('resize', viewportResizeHandler);\n }\n else if (window.ResizeObserver) {\n scrollportResizeObserver = new window.ResizeObserver(viewportResizeHandler);\n scrollportResizeObserver.observe(root, {box: 'border-box'});\n }\n }\n }\n\n /*\n * Observe entry and exit of scenes into view\n */\n if (_config.observeViewportEntry && window.IntersectionObserver) {\n viewportObserver = new window.IntersectionObserver(function (intersections) {\n intersections.forEach(intersection => {\n (scenesByElement.get(intersection.target) || []).forEach(scene => {\n scene.disabled = !intersection.isIntersecting;\n });\n });\n }, {\n root: root === window ? window.document : root,\n rootMargin: _config.viewportRootMargin,\n threshold: 0\n });\n\n _config.scenes.forEach(scene => {\n if (scene.viewSource) {\n let scenesArray = scenesByElement.get(scene.viewSource);\n\n if (!scenesArray) {\n scenesArray = [];\n scenesByElement.set(scene.viewSource, scenesArray);\n\n viewportObserver.observe(scene.viewSource);\n }\n\n scenesArray.push(scene);\n }\n });\n }\n\n /**\n * Updates progress in all scene effects.\n *\n * @private\n * @param {Object} progress\n * @param {number} progress.p\n * @param {number} progress.vp\n */\n function tick ({p, vp}) {\n p = +p.toFixed(1);\n\n const velocity = +vp.toFixed(4);\n\n // if nothing changed bail out\n if (p === lastP) return;\n\n /*\n * Perform scene progression.\n */\n for (let scene of _config.scenes) {\n // if active\n if (!scene.disabled) {\n const {start, end, duration} = scene;\n // calculate scene's progress\n const progress = calcProgress(p, start, end, duration);\n\n // run effect\n scene.effect(scene, progress, velocity);\n }\n }\n\n // cache last position\n lastP = p;\n }\n\n /**\n * Removes all side effects and deletes all objects.\n */\n function destroy () {\n _config.scenes.forEach(scene => scene.destroy?.());\n\n if (viewportObserver) {\n viewportObserver.disconnect();\n viewportObserver = null;\n }\n\n if (rangesResizeObserver) {\n rangesResizeObserver.disconnect();\n rangesResizeObserver = null;\n }\n\n if (viewportResizeHandler) {\n if (scrollportResizeObserver) {\n scrollportResizeObserver.disconnect();\n scrollportResizeObserver = null;\n }\n else {\n window.removeEventListener('resize', viewportResizeHandler);\n }\n }\n }\n\n /**\n * Scroll controller.\n */\n return {\n tick,\n destroy\n };\n}\n","import { getController } from './controller.js';\nimport { defaultTo, frameThrottle, lerp } from './utilities.js';\n\n/**\n * @private\n */\nconst DEFAULTS = {\n transitionActive: false,\n transitionFriction: 0.9,\n transitionEpsilon: 1,\n velocityActive: false,\n velocityMax: 1\n};\n\n/**\n * @class Scroll\n * @param {scrollConfig} config\n *\n * @example\n * import { Scroll } from 'fizban';\n *\n * const scroll = new Scroll({\n * scenes: [...]\n * });\n * scroll.start();\n */\nexport class Scroll {\n constructor (config = {}) {\n this.config = defaultTo(config, DEFAULTS);\n\n this.progress = {\n p: 0,\n prevP: 0,\n vp: 0\n };\n this.currentProgress = {\n p: 0,\n prevP: 0,\n vp: 0\n };\n\n this._lerpFrameId = 0;\n this.effect = null;\n const isDocumentRoot = (!this.config.root || this.config.root === window.document.body);\n // if no root or root is document.body then use window\n this.config.root = isDocumentRoot ? window : this.config.root;\n this.config.contentRoot = this.config.contentRoot || (isDocumentRoot ? window.document.body : this.config.root.firstElementChild);\n this.config.resetProgress = this.config.resetProgress || this.resetProgress.bind(this);\n\n this._measure = this.config.measure || (() => {\n const root = this.config.root;\n // get current scroll position from window or element\n this.progress.p = this.config.horizontal\n ? root.scrollX || root.scrollLeft || 0\n : root.scrollY || root.scrollTop || 0;\n });\n\n this._trigger = frameThrottle(() => {\n this._measure?.();\n this.tick(true);\n });\n }\n\n /**\n * Setup event and effect, and reset progress and frame.\n */\n start () {\n this.setupEffect();\n this.setupEvent();\n this.resetProgress();\n this.tick();\n }\n\n /**\n * Removes event listener.\n */\n pause () {\n this.removeEvent();\n }\n\n /**\n * Reset progress in the DOM and inner state to given x and y.\n *\n * @param {Object} [scrollPosition]\n * @param {number} [scrollPosition.x]\n * @param {number} [scrollPosition.y]\n */\n resetProgress (scrollPosition = {}) {\n // get current scroll position (support window, element)\n const root = this.config.root;\n const x = scrollPosition.x || scrollPosition.x === 0 ? scrollPosition.x : root.scrollX || root.scrollLeft || 0;\n const y = scrollPosition.y || scrollPosition.y === 0 ? scrollPosition.y : root.scrollY || root.scrollTop || 0;\n const p = this.config.horizontal ? x : y;\n this.progress.p = p;\n this.progress.prevP = p;\n this.progress.vp = 0;\n\n if ( this.config.transitionActive ) {\n this.currentProgress.p = p;\n this.currentProgress.prevP = p;\n this.currentProgress.vp = 0;\n }\n\n if (scrollPosition) {\n this.config.root.scrollTo(x, y);\n }\n }\n\n /**\n * Handle animation frame work.\n *\n * @param {boolean} [clearLerpFrame] whether to cancel an existing lerp frame\n */\n tick (clearLerpFrame) {\n const hasLerp = this.config.transitionActive;\n\n // if transition is active interpolate to next point\n if (hasLerp) {\n this.lerp();\n }\n\n // choose the object we iterate on\n const progress = hasLerp ? this.currentProgress : this.progress;\n\n if (this.config.velocityActive) {\n const dp = progress.p - progress.prevP;\n const factorP = dp < 0 ? -1 : 1;\n progress.vp = Math.min(this.config.velocityMax, Math.abs(dp)) / this.config.velocityMax * factorP;\n }\n\n // update effect\n this.effect.tick(progress);\n\n if (hasLerp && (progress.p !== this.progress.p)) {\n if (clearLerpFrame && this._lerpFrameId) {\n window.cancelAnimationFrame(this._lerpFrameId);\n }\n\n this._lerpFrameId = window.requestAnimationFrame(() => this.tick());\n }\n\n progress.prevP = progress.p;\n }\n\n /**\n * Calculate current progress.\n */\n lerp () {\n this.currentProgress.p = lerp(this.currentProgress.p, this.progress.p, +(1 - this.config.transitionFriction).toFixed(3), this.config.transitionEpsilon);\n }\n\n /**\n * Stop the event and effect, and remove all DOM side-effects.\n */\n destroy () {\n this.pause();\n this.removeEffect();\n }\n\n /**\n * Register to scroll for triggering update.\n */\n setupEvent () {\n this.removeEvent();\n this.config.root.addEventListener('scroll', this._trigger);\n }\n\n /**\n * Remove scroll handler.\n */\n removeEvent () {\n this.config.root.removeEventListener('scroll', this._trigger);\n }\n\n /**\n * Reset registered effect.\n */\n setupEffect () {\n this.removeEffect();\n this.effect = getController(this.config);\n }\n\n /**\n * Remove registered effect.\n */\n removeEffect () {\n this.effect && this.effect.destroy();\n this.effect = null;\n }\n}\n\n/**\n * @typedef {object} scrollConfig\n * @property {ScrollScene[]} scenes list of effect scenes to perform during scroll.\n * @property {boolean} [horizontal] whether to use the horizontal axis. Defaults to `false`.\n * @property {boolean} [transitionActive] whether to animate effect progress.\n * @property {number} [transitionFriction] between 0 to 1, amount of friction effect in the transition. 1 being no movement and 0 as no friction. Defaults to 0.4.\n * @property {boolean} [velocityActive] whether to calculate velocity with progress.\n * @property {number} [velocityMax] max possible value for velocity. Velocity value will be normalized according to this number, so it is kept between 0 and 1. Defaults to 1.\n * @property {boolean} [observeViewportEntry] whether to observe entry/exit of scenes into viewport for disabling/enabling them. Defaults to `true`.\n * @property {boolean} [viewportRootMargin] `rootMargin` option to be used for viewport observation. Defaults to `'7% 7%'`.\n * @property {boolean} [observeViewportResize] whether to observe resize of the layout viewport. Defaults to `false`.\n * @property {boolean} [observeSourcesResize] whether to observe resize of view-timeline source elements. Defaults to `false`.\n * @property {boolean} [observeContentResize] whether to observe resize of content root of the scroll container. Defaults to `false`.\n * @property {Element|Window} [root] the scrollable element, defaults to window.\n * @property {Element} [contentRoot] the root element for the content, defaults to first child of root or body element.\n */\n\n/**\n * @typedef {Object} ScrollScene\n * @desc A configuration object for a scene. Must be provided an effect function, and either a start and end, a start and duration, or a duration as RangeName.\n * @example { effects: (scene, p) => { animation.currentTime = p; }, duration: 'contain' }\n * @property {EffectCallback} effect the effect to perform.\n * @property {number|RangeOffset} start scroll position in pixels where effect starts.\n * @property {number|RangeName} [duration] duration of effect in pixels. Defaults to end - start.\n * @property {number|RangeOffset} [end] scroll position in pixels where effect ends. Defaults to start + duration.\n * @property {boolean} [disabled] whether to perform updates on the scene. Defaults to false.\n * @property {Element} [viewSource] an element to be used for observing intersection with viewport for disabling/enabling the scene, or the source of a ViewTimeline if scene start/end are provided as ranges.\n * @property {function} [destroy] a function clean up the scene when it's controller is destroyed.\n * @property {string} [groupId] a string id for a group of scenes sharing same viewSource and part of the same overall animation\n */\n\n/**\n * @typedef {function(scene: ScrollScene, progress: number, velocity: number): void} EffectCallback\n * @param {ScrollScene} scene\n * @param {number} progress\n * @param {number} velocity\n */\n\n/**\n * @typedef {'entry' | 'contain' | 'exit' | 'cover' | 'entry-crossing' | 'exit-crossing'} RangeName\n */\n\n/**\n * @typedef {Object} RangeOffset\n * @property {RangeName} name\n * @property {number} offset\n * @property {CSSUnitValue} [add]\n */\n\n/**\n * @typedef {Object} CSSUnitValue\n * @property {number} value\n * @property {'px'|'vh'|'vw'} unit\n */\n\n/**\n * @typedef {Object} AbsoluteOffsetContext\n * @property {number} viewportWidth\n * @property {number} viewportHeight\n */\n","import type { AnimationGroup, ScrubScrollScene } from '@wix/motion';\nimport { getWebAnimation, getScrubScene } from '@wix/motion';\nimport { Scroll } from 'fizban';\nimport type { ViewEnterParams, ScrubEffect, HandlerObjectMap, InteractOptions } from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst scrollManagerMap = new WeakMap() as HandlerObjectMap;\nlet scrollOptionsGetter: () => Partial<scrollConfig> = () => ({});\n\nfunction registerOptionsGetter(getter: () => Partial<scrollConfig>) {\n scrollOptionsGetter = getter;\n}\n\nfunction addViewProgressHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: ScrubEffect,\n __: ViewEnterParams,\n { reducedMotion }: InteractOptions,\n): void {\n if (reducedMotion) {\n return;\n }\n\n const triggerParams = {\n trigger: 'view-progress' as const,\n element: source,\n };\n\n const effectOptions = effectToAnimationOptions(effect);\n let cleanup;\n if ('ViewTimeline' in window) {\n // Use ViewTimeline for modern browsers\n const animationGroup = getWebAnimation(\n target,\n effectOptions,\n triggerParams,\n );\n\n if (animationGroup) {\n animationGroup.play();\n\n cleanup = () => {\n (animationGroup as AnimationGroup).ready.then(() => {\n animationGroup.cancel();\n });\n };\n }\n } else {\n const scene = getScrubScene(target, effectOptions, triggerParams);\n\n if (scene) {\n const scenes = Array.isArray(scene) ? scene : [scene];\n const scroll = new Scroll({\n viewSource: source,\n scenes,\n observeViewportEntry: false,\n observeViewportResize: false,\n observeSourcesResize: true,\n root: document.body,\n ...scrollOptionsGetter(),\n });\n\n cleanup = () => {\n scroll.destroy();\n };\n\n Promise.all(\n (scenes as ScrubScrollScene[]).map((s) => s.ready || Promise.resolve()),\n ).then(() => {\n scroll.start();\n });\n }\n }\n\n if(!cleanup) return;\n \n const handlerObj = { source, target, cleanup };\n\n addHandlerToMap(scrollManagerMap, source, handlerObj);\n addHandlerToMap(scrollManagerMap, target, handlerObj);\n}\n\nfunction removeViewProgressHandler(element: HTMLElement): void {\n removeElementFromHandlerMap(scrollManagerMap, element);\n}\n\nexport default {\n add: addViewProgressHandler,\n remove: removeViewProgressHandler,\n registerOptionsGetter,\n};\n","import type { AnimationGroup } from '@wix/motion';\nimport { getAnimation } from '@wix/motion';\nimport type {\n TimeEffect,\n TransitionEffect,\n StateParams,\n HandlerObjectMap,\n PointerTriggerParams,\n EffectBase,\n IInteractionController,\n InteractOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst handlerMap = new WeakMap() as HandlerObjectMap;\n\nfunction createTimeEffectHandler(\n element: HTMLElement,\n effect: TimeEffect & EffectBase,\n options: PointerTriggerParams,\n reducedMotion: boolean = false,\n selectorCondition?: string,\n) {\n const animation = getAnimation(\n element,\n effectToAnimationOptions(effect),\n undefined,\n reducedMotion,\n ) as AnimationGroup | null;\n\n // Return null if animation could not be created\n if (!animation) {\n return null;\n }\n\n const type = options.type || 'alternate';\n let initialPlay = true;\n\n return (event: MouseEvent | FocusEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n if (event.type === 'mouseenter' || event.type === 'focusin') {\n if (type === 'alternate') {\n if (initialPlay) {\n initialPlay = false;\n animation.play();\n } else {\n animation.reverse();\n }\n } else if (type === 'state') {\n if (animation.playState !== 'finished') {\n // 'idle' OR 'paused'\n animation.play();\n }\n } else {\n // type === 'repeat'\n // type === 'once'\n animation.progress(0);\n\n if (animation.isCSS) {\n animation.onFinish(() => {\n element.dataset.motionEnter = 'done';\n });\n }\n\n animation.play();\n }\n } else if (event.type === 'mouseleave' || event.type === 'focusout') {\n if (type === 'alternate') {\n animation.reverse();\n } else if (type === 'repeat') {\n animation.cancel();\n delete element.dataset.motionEnter;\n } else if (type === 'state') {\n if (animation.playState === 'running') {\n animation.pause();\n }\n }\n }\n };\n}\n\nfunction createTransitionHandler(\n element: HTMLElement,\n targetController: IInteractionController,\n {\n effectId,\n listContainer,\n listItemSelector,\n }: TransitionEffect & EffectBase & { effectId: string },\n options: StateParams,\n selectorCondition?: string,\n) {\n const method = options.method || 'toggle';\n const isToggle = method === 'toggle';\n const shouldSetStateOnElement = !!listContainer;\n\n return (event: MouseEvent | FocusEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n let item;\n if (shouldSetStateOnElement) {\n item = element.closest(\n `${listContainer} > ${listItemSelector || ''}:has(:scope)`,\n ) as HTMLElement | null;\n }\n\n if (event.type === 'mouseenter' || event.type === 'focusin') {\n const method_ = isToggle ? 'add' : method;\n targetController.toggleEffect(effectId, method_, item);\n } else if ((event.type === 'mouseleave' || event.type === 'focusout') && isToggle) {\n targetController.toggleEffect(effectId, 'remove', item);\n }\n };\n}\n\nfunction addHoverHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: (TransitionEffect | TimeEffect) & EffectBase,\n options: StateParams | PointerTriggerParams = {},\n { reducedMotion, targetController, selectorCondition, allowA11yTriggers }: InteractOptions,\n) {\n let handler: ((event: MouseEvent | FocusEvent) => void) | null;\n let isStateTrigger = false;\n let once = false;\n\n if (\n (effect as TransitionEffect).transition ||\n (effect as TransitionEffect).transitionProperties\n ) {\n handler = createTransitionHandler(\n target,\n targetController!,\n effect as TransitionEffect & EffectBase & { effectId: string },\n options as StateParams,\n selectorCondition,\n );\n isStateTrigger = true;\n } else {\n handler = createTimeEffectHandler(\n target,\n effect as TimeEffect & EffectBase,\n options as PointerTriggerParams,\n reducedMotion,\n selectorCondition,\n );\n once = (options as PointerTriggerParams).type === 'once';\n }\n\n // Early return if animation is null, no event listeners added\n if (!handler) {\n return;\n }\n\n const cleanup = () => {\n source.removeEventListener('mouseenter', handler);\n source.removeEventListener('mouseleave', handler);\n if (allowA11yTriggers) {\n source.removeEventListener('focusin', handler);\n source.removeEventListener('focusout', handler);\n }\n };\n\n const handlerObj = { source, target, cleanup };\n\n addHandlerToMap(handlerMap, source, handlerObj);\n addHandlerToMap(handlerMap, target, handlerObj);\n\n if (allowA11yTriggers) {\n source.tabIndex = 0;\n source.addEventListener(\n 'focusin',\n (event) => {\n if (!source.contains(event.relatedTarget as HTMLElement)) {\n handler(event);\n }\n },\n { once },\n );\n }\n\n source.addEventListener('mouseenter', handler, { passive: true, once });\n\n const addLeave = isStateTrigger\n ? ((options as StateParams).method || 'toggle') === 'toggle'\n : (options as PointerTriggerParams).type !== 'once';\n if (addLeave) {\n source.addEventListener('mouseleave', handler, { passive: true });\n\n if (allowA11yTriggers) {\n source.addEventListener(\n 'focusout',\n (event) => {\n if (!source.contains(event.relatedTarget as HTMLElement)) {\n handler(event);\n }\n },\n { once },\n );\n }\n }\n}\n\nfunction removeHoverHandler(element: HTMLElement) {\n removeElementFromHandlerMap(handlerMap, element);\n}\n\nexport default {\n add: addHoverHandler,\n remove: removeHoverHandler,\n};\n","import { getAnimation } from '@wix/motion';\nimport type { AnimationGroup } from '@wix/motion';\nimport type {\n TimeEffect,\n TransitionEffect,\n StateParams,\n HandlerObjectMap,\n PointerTriggerParams,\n EffectBase,\n IInteractionController,\n InteractOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst handlerMap = new WeakMap() as HandlerObjectMap;\n\nfunction createTimeEffectHandler(\n element: HTMLElement,\n effect: TimeEffect & EffectBase,\n options: PointerTriggerParams,\n reducedMotion: boolean = false,\n selectorCondition?: string,\n) {\n const animation = getAnimation(\n element,\n effectToAnimationOptions(effect),\n undefined,\n reducedMotion,\n ) as AnimationGroup | null;\n\n // Return null if animation could not be created\n if (!animation) {\n return null;\n }\n\n let initialPlay = true;\n const type = options.type || 'alternate';\n\n return (__: MouseEvent | KeyboardEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n if (type === 'alternate') {\n if (initialPlay) {\n initialPlay = false;\n animation.play();\n } else {\n animation.reverse();\n }\n } else if (type === 'state') {\n if (initialPlay) {\n initialPlay = false;\n animation.play();\n } else {\n if (animation.playState === 'running') {\n animation.pause();\n } else if (animation.playState !== 'finished') {\n // 'idle' OR 'paused'\n animation.play();\n }\n }\n } else {\n // type === 'repeat'\n // type === 'once'\n animation.progress(0);\n\n if (animation.isCSS) {\n animation.onFinish(() => {\n element.dataset.motionEnter = 'done';\n });\n }\n\n animation.play();\n }\n };\n}\n\nfunction createTransitionHandler(\n element: HTMLElement,\n targetController: IInteractionController,\n {\n effectId,\n listContainer,\n listItemSelector,\n }: TransitionEffect & EffectBase & { effectId: string },\n options: StateParams,\n selectorCondition?: string,\n) {\n const shouldSetStateOnElement = !!listContainer;\n\n return (__: MouseEvent | KeyboardEvent) => {\n if (selectorCondition && !element.matches(selectorCondition)) return;\n let item;\n if (shouldSetStateOnElement) {\n item = element.closest(\n `${listContainer} > ${listItemSelector || ''}:has(:scope)`,\n ) as HTMLElement | null;\n }\n\n targetController.toggleEffect(effectId, options.method || 'toggle', item);\n };\n}\n\nfunction addClickHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: (TimeEffect | TransitionEffect) & EffectBase,\n options: StateParams | PointerTriggerParams = {} as StateParams,\n { reducedMotion, targetController, selectorCondition, allowA11yTriggers }: InteractOptions,\n) {\n let handler: ((event: MouseEvent | KeyboardEvent) => void) | null;\n let once = false;\n\n if (\n (effect as TransitionEffect).transition ||\n (effect as TransitionEffect).transitionProperties\n ) {\n handler = createTransitionHandler(\n target,\n targetController!,\n effect as TransitionEffect & EffectBase & { effectId: string },\n options as StateParams,\n selectorCondition,\n );\n } else {\n handler = createTimeEffectHandler(\n target,\n effect as TimeEffect & EffectBase,\n options as PointerTriggerParams,\n reducedMotion,\n selectorCondition,\n );\n once = (options as PointerTriggerParams).type === 'once';\n }\n\n // Early return if animation is null, no event listeners added\n if (!handler) {\n return;\n }\n\n const cleanup = () => {\n source.removeEventListener('click', handler);\n if (allowA11yTriggers) {\n source.removeEventListener('keydown', handler);\n }\n };\n\n const handlerObj = { source, target, cleanup };\n\n addHandlerToMap(handlerMap, source, handlerObj);\n addHandlerToMap(handlerMap, target, handlerObj);\n\n source.addEventListener(\n 'click',\n (e) => {\n if ((e as PointerEvent).pointerType) {\n handler(e);\n }\n },\n { passive: true, once },\n );\n\n if (allowA11yTriggers) {\n source.tabIndex = 0;\n\n source.addEventListener(\n 'keydown',\n (event: KeyboardEvent) => {\n if (event.code === 'Space') {\n event.preventDefault();\n handler(event);\n } else if (event.code === 'Enter') {\n handler(event);\n }\n },\n { once },\n );\n }\n}\n\nfunction removeClickHandler(element: HTMLElement) {\n removeElementFromHandlerMap(handlerMap, element);\n}\n\nexport default {\n add: addClickHandler,\n remove: removeClickHandler,\n};\n","/**\n * Clamps a value between limits.\n *\n * @private\n * @param {number} min lower limit\n * @param {number} max upper limit\n * @param {number} value value to clamp\n * @return {number} clamped value\n *\n * @example\n * const x = clamp(0, 1, 1.5); // returns 1\n */\nfunction clamp (min, max, value) {\n return Math.min(Math.max(min, value), max);\n}\n\n/**\n * Throttle a function to trigger once per animation frame.\n * Keeps the arguments from last call, even if that call gets ignored.\n *\n * @private\n * @param {function} fn function to throttle\n * @return {(function(): number)} a function that will trigger the throttled function on next animation frame,\n * returns the requestAnimationFrame id, so it can be cancelled\n */\nfunction frameThrottle (fn) {\n let throttled = false;\n\n return function () {\n if (!throttled) {\n throttled = true;\n\n return window.requestAnimationFrame(() => {\n throttled = false;\n fn();\n });\n }\n };\n}\n\n/**\n * Returns an object containing the layout properties (left, top, width, and height) of the given element.\n *\n * @private\n * @param {HTMLElement} element\n * @returns {{top: number, left: number, width: number, height: number}}\n */\nfunction getRect (element) {\n let el = element;\n let left = 0;\n let top = 0;\n\n if (el.offsetParent) {\n do {\n left += el.offsetLeft;\n top += el.offsetTop;\n el = el.offsetParent;\n } while (el);\n }\n\n return {\n left,\n top,\n width: element.offsetWidth,\n height: element.offsetHeight\n };\n}\n\n/**\n * @see https://issues.chromium.org/issues/40887601?pli=1\n */\nfunction testPointerOffsetDprBug () {\n const DPR = window.devicePixelRatio;\n let fixRequired = false;\n\n if (DPR === 1) {\n // we can immediately return here, not required to fix\n return false;\n }\n\n document.body.addEventListener('pointerdown', (e) => {\n fixRequired = e.offsetX !== 10;\n }, { once: true });\n\n const event = new PointerEvent('pointerdown', {\n clientX: 10\n });\n\n document.body.dispatchEvent(event);\n\n return fixRequired;\n}\n\nfunction testPointerOffsetScrollBug () {\n return new Promise((resolve) => {\n const startY = window.scrollY;\n let fixRequired = false;\n let currentY;\n\n function sampleOffsetY () {\n document.body.addEventListener('pointerdown', (e) => {\n if (currentY === undefined) {\n currentY = e.offsetY;\n } else {\n // when dispatching on BODY in different scroll it gives the same offsetY value only on WebKit\n fixRequired = e.offsetY === currentY;\n }\n }, { once: true });\n\n const event = new PointerEvent('pointerdown', {\n clientY: 500\n });\n\n document.body.dispatchEvent(event);\n }\n\n function scrollHandler () {\n if (window.scrollY !== startY) {\n window.removeEventListener('scroll', scrollHandler);\n sampleOffsetY();\n resolve(fixRequired);\n }\n }\n\n sampleOffsetY();\n\n window.addEventListener('scroll', scrollHandler);\n\n if (window.scrollY > 0) {\n window.scrollBy(0, -1);\n }\n });\n}\n\n/**\n * @see https://bugs.webkit.org/show_bug.cgi?id=287799\n */\nfunction testScrollOffsetsForWebKitPointerBug (scrollOffsets) {\n testPointerOffsetScrollBug().then((fixRequired) => {\n scrollOffsets.fixRequired = fixRequired;\n\n if (fixRequired) {\n window.addEventListener('scroll', scrollOffsets.scrollHandler);\n scrollOffsets.scrollHandler();\n }\n });\n}\n\nexport {\n getRect,\n clamp,\n frameThrottle,\n testPointerOffsetDprBug,\n testScrollOffsetsForWebKitPointerBug\n};\n","let listeners = 0;\nconst pointers = new Set();\n\nfunction initScrollendPolyfill () {\n const touchStartHandler = e => {\n for (let touch of e.changedTouches) {\n pointers.add(touch.identifier);\n }\n };\n const touchEndHandler = e => {\n for (let touch of e.changedTouches) {\n pointers.delete(touch.identifier);\n }\n };\n // Track if any pointer is active\n document.addEventListener('touchstart', touchStartHandler, {passive: true});\n document.addEventListener('touchend', touchEndHandler, {passive: true});\n\n return function () {\n pointers.clear();\n document.removeEventListener('touchstart', touchStartHandler);\n document.removeEventListener('touchend', touchEndHandler);\n };\n}\n\nexport function addScrollendListener (target, listener) {\n if ('onscrollend' in window) {\n target.addEventListener('scrollend', listener);\n\n return function () {\n target.removeEventListener('scrollend', listener);\n };\n }\n\n let timeout = 0;\n let removeScrollendPolyfill;\n\n if (!listeners) {\n removeScrollendPolyfill = initScrollendPolyfill();\n }\n\n listeners += 1;\n\n function scrollListener (evt) {\n clearTimeout(timeout);\n timeout = setTimeout(() => {\n if (pointers.size) {\n // if pointer(s) are down, wait longer\n setTimeout(scrollListener, 100);\n }\n else {\n // dispatch\n listener(evt);\n timeout = 0;\n }\n }, 100);\n }\n\n target.addEventListener('scroll', scrollListener);\n\n return function () {\n target.removeEventListener('scroll', scrollListener);\n listeners -= 1;\n\n if (!listeners) {\n removeScrollendPolyfill();\n }\n };\n}\n","import { getRect, clamp } from './utilities.js';\nimport { addScrollendListener } from './scrollend.js';\n\n/**\n * Return new progress for {x, y} for the farthest-side formula (\"cover\").\n *\n * @param {Object} target\n * @param {number} target.left\n * @param {number} target.top\n * @param {number} target.width\n * @param {number} target.height\n * @param {Object} root\n * @param {number} root.width\n * @param {number} root.height\n * @param {{x: number, y: number}} scrollPosition\n * @returns {{x: (x: number) => number, y: (y: number) => number}}\n */\nfunction centerToTargetFactory (target, root, scrollPosition) {\n // we store reference to the arguments and do all calculation on the fly\n // so that target dims, scroll position, and root dims are always up-to-date\n return {\n x (x1) {\n const layerCenterX = target.left - scrollPosition.x + target.width / 2;\n const isXStartFarthest = layerCenterX >= root.width / 2;\n\n const xDuration = (isXStartFarthest ? layerCenterX : root.width - layerCenterX) * 2;\n const x0 = isXStartFarthest ? 0 : layerCenterX - xDuration / 2;\n\n return (x1 - x0) / xDuration;\n },\n y (y1) {\n const layerCenterY = target.top - scrollPosition.y + target.height / 2;\n const isYStartFarthest = layerCenterY >= root.height / 2;\n\n const yDuration = (isYStartFarthest ? layerCenterY : root.height - layerCenterY) * 2;\n const y0 = isYStartFarthest ? 0 : layerCenterY - yDuration / 2;\n\n return (y1 - y0) / yDuration;\n }\n };\n}\n\n/**\n * Updates scroll position on scrollend.\n * Used when root is entire viewport and centeredOnTarget=true.\n */\nfunction scrollendCallback (tick, lastProgress) {\n this.x = window.scrollX;\n this.y = window.scrollY;\n\n requestAnimationFrame(() => tick && tick(lastProgress));\n}\n\n/**\n * Update root rect when root is entire viewport.\n *\n * @param {PointerConfig} config\n */\nfunction windowResize (config) {\n config.rect.width = window.document.documentElement.clientWidth;\n config.rect.height = window.document.documentElement.clientHeight;\n}\n\n/**\n * Observe and update root rect when root is an element.\n *\n * @param {PointerConfig} config\n * @returns {ResizeObserver}\n */\nfunction observeRootResize (config) {\n const observer = new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n config.rect.width = entry.borderBoxSize[0].inlineSize;\n config.rect.height = entry.borderBoxSize[0].blockSize;\n });\n });\n\n observer.observe(config.root, { box: 'border-box' });\n\n return observer;\n}\n\n/**\n * Initialize and return a pointer controller.\n *\n * @private\n * @param {PointerConfig} config\n * @return {{tick: function, destroy: function}}\n */\nexport function getController (config) {\n let hasCenteredToTarget = false;\n let lastProgress = {x: config.rect.width / 2, y: config.rect.height / 2, vx: 0, vy: 0};\n let tick, resizeObserver, windowResizeHandler, scrollendHandler, removeScrollendListener;\n\n const scrollPosition = {x: 0, y: 0};\n\n /*\n * Prepare scenes data.\n */\n config.scenes.forEach((scene) => {\n if (scene.target && scene.centeredToTarget) {\n scene.transform = centerToTargetFactory(getRect(scene.target), config.rect, scrollPosition);\n\n hasCenteredToTarget = true;\n }\n\n if (config.root) {\n resizeObserver = observeRootResize(config);\n }\n else {\n windowResizeHandler = windowResize.bind(null, config);\n window.addEventListener('resize', windowResizeHandler);\n }\n });\n\n /**\n * Updates progress in all scene effects.\n *\n * @private\n * @param {Object} progress\n * @param {number} progress.x\n * @param {number} progress.y\n * @param {number} progress.vx\n * @param {number} progress.vy\n */\n tick = function (progress) {\n for (let scene of config.scenes) {\n if (!scene.disabled) {\n // get scene's progress\n const normalizedX = scene.transform?.x(progress.x) || progress.x / config.rect.width;\n const normalizedY = scene.transform?.y(progress.y) || progress.y / config.rect.height;\n\n const x = +clamp(0, 1, normalizedX).toPrecision(4);\n const y = +clamp(0, 1, normalizedY).toPrecision(4);\n\n const velocity = {x: progress.vx, y: progress.vy};\n\n if (config.allowActiveEvent) {\n progress.active = (normalizedX <= 1 && normalizedY <= 1 && normalizedX >= 0 && normalizedY >= 0);\n }\n\n // run effect\n scene.effect(scene, {x, y}, velocity, progress.active);\n }\n }\n\n Object.assign(lastProgress, progress);\n }\n\n if (hasCenteredToTarget) {\n scrollendHandler = scrollendCallback.bind(scrollPosition, tick, lastProgress)\n removeScrollendListener = addScrollendListener(document, scrollendHandler);\n }\n\n /**\n * Removes all side effects and deletes all objects.\n */\n function destroy () {\n config.scenes.forEach(scene => scene.destroy?.());\n\n removeScrollendListener?.();\n\n if (resizeObserver) {\n resizeObserver.disconnect();\n resizeObserver = null;\n }\n else {\n window.removeEventListener('resize', windowResizeHandler);\n windowResizeHandler = null;\n }\n\n tick = null;\n lastProgress = null;\n }\n\n /**\n * Mouse controller.\n */\n return {\n tick,\n destroy\n };\n}\n","import { getController } from './controller.js';\nimport { frameThrottle, testPointerOffsetDprBug, testScrollOffsetsForWebKitPointerBug } from './utilities.js';\n\nconst MOVEMENT_RESET_DELAY = 1e3 / 60 * 3; // == 50 (3 frames in 60fps)\nlet shouldFixSynthPointer;\n\nfunction scrollHandler () {\n scrollOffsets.x = window.scrollX;\n scrollOffsets.y = window.scrollY;\n}\nconst scrollOffsets = { x: 0, y: 0, scrollHandler, fixRequired: undefined };\n\n/**\n * @class Pointer\n * @param {PointerConfig} config\n *\n * @example\n * import { Pointer } from 'kuliso';\n *\n * const pointer = new Pointer({\n * scenes: [...]\n * });\n *\n * pointer.start();\n */\nexport class Pointer {\n constructor (config = {}) {\n this.config = { ...config };\n\n this.effect = null;\n this._nextTick = null;\n this._nextTransitionTick = null;\n this._startTime = 0;\n\n let trigger;\n\n if (this.config.transitionDuration) {\n trigger = this.config.noThrottle\n ? () => this.transition()\n : frameThrottle(() => this.transition());\n }\n else {\n trigger = this.config.noThrottle\n ? () => {\n this.tick();\n return null;\n }\n : frameThrottle(() => {\n this.tick();\n });\n }\n\n // in no root then use the viewport's size\n this.config.rect = this.config.root\n ? {\n width: this.config.root.offsetWidth,\n height: this.config.root.offsetHeight\n }\n : {\n width: window.document.documentElement.clientWidth,\n height: window.document.documentElement.clientHeight\n };\n\n\n this.progress = {\n x: this.config.rect.width / 2,\n y: this.config.rect.height / 2,\n vx: 0,\n vy: 0\n };\n this.previousProgress = { ...this.progress };\n this.currentProgress = null;\n\n const _measure = (event) => {\n const newX = this.config.root ? event.offsetX : event.x;\n const newY = this.config.root ? event.offsetY : event.y;\n this.progress.vx = newX - this.progress.x;\n this.progress.vy = newY - this.progress.y;\n this.progress.x = newX;\n this.progress.y = newY;\n this._nextTick = trigger();\n };\n\n this._pointerLeave = () => {\n this.progress.active = false;\n this.progress.vx = 0;\n this.progress.vy = 0;\n this._nextTick = trigger();\n };\n\n this._pointerEnter = () => {\n this.progress.active = true;\n this._nextTick = trigger();\n };\n\n if (this.config.root) {\n shouldFixSynthPointer = typeof shouldFixSynthPointer === 'boolean' ? shouldFixSynthPointer : testPointerOffsetDprBug();\n const DPR = shouldFixSynthPointer ? window.devicePixelRatio : 1;\n\n if (typeof scrollOffsets.fixRequired === 'undefined') {\n testScrollOffsetsForWebKitPointerBug(scrollOffsets);\n }\n\n this._measure = (e) => {\n if (e.target !== this.config.root) {\n const event = new PointerEvent('pointermove', {\n bubbles: true,\n cancelable: true,\n clientX: e.x * DPR + scrollOffsets.x,\n clientY: e.y * DPR + scrollOffsets.y,\n });\n\n e.stopPropagation();\n\n this.config.root.dispatchEvent(event);\n } else {\n _measure(e);\n }\n }\n } else {\n this._measure = _measure;\n }\n }\n\n /**\n * Setup event and effect, and reset progress and frame.\n */\n start () {\n this.setupEffect();\n this.setupEvent();\n }\n\n /**\n * Removes event listener.\n */\n pause () {\n this.removeEvent();\n }\n\n /**\n * Handle animation frame work.\n */\n tick () {\n this.effect.tick(this.progress);\n }\n\n /**\n * Starts a transition from the previous progress to the current progress.\n *\n * @returns {number} the requestAnimationFrame id for the transition tick.\n */\n transition () {\n const duration = this.config.transitionDuration;\n const easing = this.config.transitionEasing || ((p) => p);\n const now = performance.now();\n let resetMovement = false;\n\n const tick = (time) => {\n const p = (time - this._startTime) / duration;\n const t = easing(Math.min(1, p));\n\n if (resetMovement) {\n this.progress.vx = 0;\n this.progress.vy = 0;\n resetMovement = false;\n }\n\n this.currentProgress = Object.entries(this.progress).reduce((acc, [key, value]) => {\n if (key === 'active') {\n acc[key] = value;\n } else {\n acc[key] = this.previousProgress[key] + (value - this.previousProgress[key]) * t;\n }\n return acc;\n }, this.currentProgress || {});\n\n if (p < 1) {\n this._nextTransitionTick = requestAnimationFrame(tick);\n\n // reset movement on next frame\n resetMovement = time - this._startTime > MOVEMENT_RESET_DELAY;\n }\n\n this.effect.tick(this.currentProgress);\n };\n\n if (this._startTime) {\n this._nextTransitionTick && cancelAnimationFrame(this._nextTransitionTick);\n\n Object.assign(this.previousProgress, this.currentProgress);\n\n this._startTime = now;\n\n tick(now);\n } else {\n this._startTime = now;\n }\n\n return this._nextTransitionTick;\n }\n\n /**\n * Stop the event and effect, and remove all DOM side effects.\n */\n destroy () {\n this.pause();\n this.removeEffect();\n this._nextTick && cancelAnimationFrame(this._nextTick);\n this._nextTransitionTick && cancelAnimationFrame(this._nextTransitionTick);\n }\n\n /**\n * Register to pointermove for triggering update.\n */\n setupEvent () {\n this.removeEvent();\n const element = this.config.root || window;\n element.addEventListener('pointermove', this._measure, {passive: true});\n\n if (this.config.eventSource) {\n this.config.eventSource.addEventListener('pointermove', this._measure, {passive: true});\n }\n\n if (this.config.allowActiveEvent) {\n element.addEventListener('pointerleave', this._pointerLeave, {passive: true});\n element.addEventListener('pointerenter', this._pointerEnter, {passive: true});\n\n if (this.config.eventSource) {\n this.config.eventSource.addEventListener('pointerleave', this._pointerLeave, {passive: true});\n this.config.eventSource.addEventListener('pointerenter', this._pointerEnter, {passive: true});\n }\n }\n }\n\n /**\n * Remove pointermove handler.\n */\n removeEvent () {\n const element = this.config.root || window;\n element.removeEventListener('pointermove', this._measure);\n\n if (this.config.eventSource) {\n this.config.eventSource.removeEventListener('pointermove', this._measure);\n }\n\n if (this.config.allowActiveEvent) {\n element.removeEventListener('pointerleave', this._pointerLeave);\n element.removeEventListener('pointerenter', this._pointerEnter);\n\n if (this.config.eventSource) {\n this.config.eventSource.removeEventListener('pointerleave', this._pointerLeave);\n this.config.eventSource.removeEventListener('pointerenter', this._pointerEnter);\n }\n }\n }\n\n /**\n * Reset registered effect.\n */\n setupEffect () {\n this.removeEffect();\n this.effect = getController(this.config);\n }\n\n /**\n * Remove registered effect.\n */\n removeEffect () {\n this.effect && this.effect.destroy();\n this.effect = null;\n }\n}\n\n/**\n * @typedef {object} PointerConfig\n * @property {PointerScene[]} scenes list of effect scenes to perform during pointermove.\n * @property {HTMLElement} [root] element to use as hit area for pointermove events. Defaults to entire viewport.\n * @property {{width: number, height: number}} [rect] created automatically on Pointer construction.\n * @property {boolean} [noThrottle] whether to disable throttling the effect by framerate.\n * @property {number} [transitionDuration] duration of transition effect in milliseconds.\n * @property {function} [transitionEasing] easing function for transition effect.\n * @property {boolean} [allowActiveEvent] whether to track timeline activation events.\n * @property {HTMLElement} [eventSource] an alternative source element to attach event handlers and retarget to root.\n */\n\n/**\n * @typedef {Object} PointerScene\n * @desc A configuration object for a scene. Must be provided an effect function.\n * @example { effects: (scene, p) => { animation.currentTime = p.x; } }\n * @property {PointerEffectCallback} effect the effect to perform.\n * @property {boolean} [centeredToTarget] whether this scene's progress is centered on the target's center.\n * @property {HTMLElement} [target] target element for the effect.\n * @property {boolean} [disabled] whether this scene is disabled.\n * @property {function} [destroy] a function clean up the scene when it's controller is destroyed.\n */\n\n/**\n * @typedef {function(scene: PointerScene, progress: {x: number, y: number}, velocity: {x: number, y: number}): void} PointerEffectCallback\n * @param {PointerScene} scene\n * @param {{x: number, y: number}} progress\n * @param {{x: number, y: number}} velocity\n */\n","import { getScrubScene } from '@wix/motion';\nimport { Pointer } from 'kuliso';\nimport type {\n PointerMoveParams,\n ScrubEffect,\n HandlerObjectMap,\n InteractOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst pointerManagerMap = new WeakMap() as HandlerObjectMap;\nlet pointerOptionsGetter: () => Partial<PointerConfig> = () => ({});\n\nfunction registerOptionsGetter(getter: () => Partial<PointerConfig>) {\n pointerOptionsGetter = getter;\n}\n\nfunction addPointerMoveHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: ScrubEffect,\n options: PointerMoveParams = {},\n { reducedMotion }: InteractOptions,\n) {\n if (reducedMotion) {\n return;\n }\n\n const triggerParams = {\n trigger: 'pointer-move' as const,\n element: source,\n };\n\n const scene = getScrubScene(\n target,\n effectToAnimationOptions(effect),\n triggerParams,\n );\n\n if (scene) {\n const pointer = new Pointer({\n root: options.hitArea === 'self' ? source : undefined,\n scenes: Array.isArray(scene) ? scene : [scene],\n ...pointerOptionsGetter(),\n });\n const cleanup = () => {\n pointer.destroy();\n };\n\n const handlerObj = { source, target, cleanup };\n\n addHandlerToMap(pointerManagerMap, source, handlerObj);\n addHandlerToMap(pointerManagerMap, target, handlerObj);\n\n pointer.start();\n }\n}\n\nfunction removePointerMoveHandler(element: HTMLElement) {\n removeElementFromHandlerMap(pointerManagerMap, element);\n}\n\nexport default {\n add: addPointerMoveHandler,\n remove: removePointerMoveHandler,\n registerOptionsGetter,\n};\n","import type { AnimationGroup } from '@wix/motion';\nimport { getAnimation } from '@wix/motion';\nimport type {\n AnimationEndParams,\n TimeEffect,\n HandlerObjectMap,\n InteractOptions,\n} from '../types';\nimport {\n effectToAnimationOptions,\n addHandlerToMap,\n removeElementFromHandlerMap,\n} from './utilities';\n\nconst handlerMap = new WeakMap() as HandlerObjectMap;\n\nfunction addAnimationEndHandler(\n source: HTMLElement,\n target: HTMLElement,\n effect: TimeEffect,\n __: AnimationEndParams,\n { reducedMotion, selectorCondition }: InteractOptions,\n): void {\n const animation = getAnimation(\n target,\n effectToAnimationOptions(effect),\n undefined,\n reducedMotion,\n ) as AnimationGroup | null;\n\n // Early return if animation is null, no handler attached\n if (!animation) {\n return;\n }\n\n const handler = () => {\n if (selectorCondition && !target.matches(selectorCondition)) return;\n animation.play();\n };\n const cleanup = () => {\n animation.cancel();\n source.removeEventListener('animationend', handler);\n };\n\n const handlerObj = { source, target, cleanup };\n addHandlerToMap(handlerMap, source, handlerObj);\n addHandlerToMap(handlerMap, target, handlerObj);\n\n source.addEventListener('animationend', handler);\n}\n\nfunction removeAnimationEndHandler(element: HTMLElement): void {\n removeElementFromHandlerMap(handlerMap, element);\n}\n\nexport default {\n add: addAnimationEndHandler,\n remove: removeAnimationEndHandler,\n};\n","import type { Effect, InteractOptions, PointerTriggerParams, StateParams, TriggerHandlerMap, TriggerType } from '../types';\nimport viewEnterHandler from './viewEnter';\nimport viewProgressHandler from './viewProgress';\nimport hoverHandler from './hover';\nimport clickHandler from './click';\nimport pointerMoveHandler from './pointerMove';\nimport animationEndHandler from './animationEnd';\n\nfunction withA11y<T extends typeof clickHandler | typeof hoverHandler>(\n handler: T,\n): T {\n return {\n add: (\n source: HTMLElement,\n target: HTMLElement,\n effect: Effect,\n options: StateParams | PointerTriggerParams,\n interactOptions?: InteractOptions,\n ) =>\n handler.add(source, target, effect, options, {\n ...interactOptions,\n allowA11yTriggers: true,\n }),\n remove: handler.remove,\n } as T;\n}\n\nexport default {\n viewEnter: viewEnterHandler,\n hover: hoverHandler,\n click: clickHandler,\n pageVisible: viewEnterHandler,\n animationEnd: animationEndHandler,\n viewProgress: viewProgressHandler,\n pointerMove: pointerMoveHandler,\n activate: withA11y(clickHandler),\n interest: withA11y(hoverHandler),\n} as TriggerHandlerMap<TriggerType>;\n","import {\n InteractCache,\n InteractConfig,\n EffectRef,\n Effect,\n Interaction,\n ViewEnterParams,\n ViewEnterHandlerModule,\n IInteractionController,\n IInteractElement,\n} from '../types';\nimport { getInterpolatedKey } from './utilities';\nimport { generateId } from '../utils';\nimport TRIGGER_TO_HANDLER_MODULE_MAP from '../handlers';\n\nfunction _convertToKeyTemplate(key: string) {\n return key.replace(/\\[([-\\w]+)]/g, '[]');\n}\n\nexport class Interact {\n static defineInteractElement?: () => boolean;\n dataCache: InteractCache;\n addedInteractions: { [interactionId: string]: boolean };\n mediaQueryListeners: Map<\n string,\n {\n mql: MediaQueryList;\n handler: (e: MediaQueryListEvent | MediaQueryList) => void;\n key: string;\n }\n >;\n listInteractionsCache: {\n [listContainer: string]: { [interactionId: string]: boolean };\n };\n controllers: Set<IInteractionController>;\n static forceReducedMotion: boolean = false;\n static allowA11yTriggers: boolean = true;\n static instances: Interact[] = [];\n static controllerCache = new Map<string, IInteractionController>();\n\n constructor() {\n this.dataCache = { effects: {}, conditions: {}, interactions: {} };\n this.addedInteractions = {};\n this.mediaQueryListeners = new Map();\n this.listInteractionsCache = {};\n this.controllers = new Set();\n }\n\n init(config: InteractConfig, options?: { useCutsomElement?: boolean }): void {\n if (typeof window === 'undefined' || !window.customElements) {\n return;\n }\n\n const useCutsomElement = options?.useCutsomElement ?? !!Interact.defineInteractElement;\n\n this.dataCache = parseConfig(config, useCutsomElement);\n\n const defined = Interact.defineInteractElement?.();\n\n if (useCutsomElement && defined === false) {\n // mostly to recover from React's <StrictMode>, blah...\n document.querySelectorAll('interact-element').forEach((element) => {\n (element as IInteractElement).connect();\n });\n } else {\n // Always try to reconnect elements from cache.\n // This handles cases where elements were added to DOM before the instance was created\n // (e.g., in React where useEffect runs after render), or when an instance is recreated\n // (e.g., in React StrictMode where effects run twice).\n // The connect() method has a guard to skip if already connected.\n Interact.controllerCache.forEach((controller: IInteractionController, key) => controller.connect(key));\n }\n }\n\n destroy(): void {\n for (const controller of this.controllers) {\n controller.disconnect();\n }\n\n // Properly remove all media query listeners before clearing the Map\n // This is critical for React StrictMode where instances are destroyed and recreated,\n // to prevent duplicate listeners from firing with stale instance references\n for (const [, listener] of this.mediaQueryListeners.entries()) {\n listener.mql.removeEventListener('change', listener.handler);\n }\n this.mediaQueryListeners.clear();\n this.addedInteractions = {};\n this.listInteractionsCache = {};\n this.controllers.clear();\n this.dataCache = { effects: {}, conditions: {}, interactions: {} };\n Interact.instances.splice(Interact.instances.indexOf(this), 1);\n }\n\n setController(key: string, controller: IInteractionController) {\n this.controllers.add(controller);\n\n Interact.setController(key, controller);\n }\n\n deleteController(key: string, removeFromCache: boolean = false) {\n const controller = Interact.controllerCache.get(key);\n\n this.clearInteractionStateForKey(key);\n this.clearMediaQueryListenersForKey(key);\n\n if (controller && removeFromCache) {\n this.controllers.delete(controller);\n Interact.deleteController(key);\n }\n }\n\n has(key: string): boolean {\n return !!this.get(key);\n }\n\n get(key: string): InteractCache['interactions'][string] | undefined {\n const processedKey = _convertToKeyTemplate(key);\n return this.dataCache.interactions[processedKey];\n }\n\n clearMediaQueryListenersForKey(key: string): void {\n for (const [id, listener] of this.mediaQueryListeners.entries()) {\n if (listener.key === key) {\n listener.mql.removeEventListener('change', listener.handler);\n this.mediaQueryListeners.delete(id);\n }\n }\n }\n\n clearInteractionStateForKey(key: string): void {\n const interactionIds = this.get(key)?.interactionIds || [];\n\n interactionIds.forEach((interactionId_) => {\n const interactionId = getInterpolatedKey(interactionId_, key);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.addedInteractions[interactionId];\n });\n }\n\n setupMediaQueryListener(id: string, mql: MediaQueryList, key: string, handler: () => void) {\n if (this.mediaQueryListeners.has(id)) {\n return;\n }\n\n mql.addEventListener('change', handler);\n\n this.mediaQueryListeners.set(id, {\n mql,\n handler,\n key,\n });\n }\n\n static create(config: InteractConfig, options?: { useCutsomElement?: boolean }): Interact {\n const instance = new Interact();\n Interact.instances.push(instance);\n\n instance.init(config, options);\n\n return instance;\n }\n\n static destroy(): void {\n Interact.controllerCache.forEach((controller: IInteractionController) => {\n controller.disconnect();\n });\n Interact.instances.length = 0;\n Interact.controllerCache.clear();\n }\n\n static setup(options: {\n scrollOptionsGetter?: () => Partial<scrollConfig>;\n pointerOptionsGetter?: () => Partial<PointerConfig>;\n viewEnter?: Partial<ViewEnterParams>;\n allowA11yTriggers?: boolean;\n }): void {\n if (options.scrollOptionsGetter) {\n TRIGGER_TO_HANDLER_MODULE_MAP.viewProgress.registerOptionsGetter?.(\n options.scrollOptionsGetter,\n );\n }\n\n if (options.pointerOptionsGetter) {\n TRIGGER_TO_HANDLER_MODULE_MAP.pointerMove.registerOptionsGetter?.(\n options.pointerOptionsGetter,\n );\n }\n\n if(options.viewEnter) {\n (TRIGGER_TO_HANDLER_MODULE_MAP.viewEnter as ViewEnterHandlerModule).setOptions(options.viewEnter);\n }\n\n if(options.allowA11yTriggers !== undefined) {\n Interact.allowA11yTriggers = options.allowA11yTriggers;\n }\n }\n\n static getInstance(key: string): Interact | undefined {\n return Interact.instances.find((instance) => instance.has(key));\n }\n\n static getController(key: string | undefined): IInteractionController | undefined {\n return key ? Interact.controllerCache.get(key) : undefined;\n }\n\n static setController(key: string, controller: IInteractionController): void {\n Interact.controllerCache.set(key, controller);\n }\n\n static deleteController(key: string): void {\n Interact.controllerCache.delete(key);\n }\n}\n\nlet interactionIdCounter = 0;\n\nexport function getSelector(\n d: Interaction | Effect,\n {\n asCombinator = false,\n addItemFilter = false,\n useFirstChild = false,\n }: { asCombinator?: boolean; addItemFilter?: boolean; useFirstChild?: boolean } = {},\n): string {\n if (d.listContainer) {\n const itemFilter = `${addItemFilter && d.listItemSelector ? ` > ${d.listItemSelector}` : ''}`;\n\n if (d.selector) {\n return `${d.listContainer}${itemFilter} ${d.selector}`;\n }\n\n return `${d.listContainer}${itemFilter || ' > *'}`;\n } else if (d.selector) {\n return d.selector;\n }\n\n // TODO: consider moving :scope to be configurable since it may lead to unexpected results in some cases\n return useFirstChild ? (asCombinator ? '> :first-child' : ':scope > :first-child') : '';\n}\n\n/**\n * Parses the config object and caches interactions, effects, and conditions\n */\nfunction parseConfig(config: InteractConfig, useCutsomElement: boolean = false): InteractCache {\n const conditions = config.conditions || {};\n const interactions: InteractCache['interactions'] = {};\n\n config.interactions?.forEach((interaction_) => {\n const source = interaction_.key;\n const interactionIdx = ++interactionIdCounter;\n const { effects: effects_, ...rest } = interaction_;\n\n if (!source) {\n console.error(`Interaction ${interactionIdx} is missing a key for source element.`);\n return;\n }\n\n if (!interactions[source]) {\n interactions[source] = {\n triggers: [],\n effects: {},\n interactionIds: new Set(),\n selectors: new Set(),\n };\n }\n\n /*\n * Cache interaction trigger by source element\n */\n const effects = Array.from(effects_);\n effects.reverse(); // reverse to ensure the first effect is the one that will be applied first\n const interaction = { ...rest, effects };\n\n interactions[source].triggers.push(interaction);\n interactions[source].selectors.add(getSelector(interaction, { useFirstChild: useCutsomElement }));\n\n const listContainer = interaction.listContainer;\n\n effects.forEach((effect) => {\n /*\n * Target cascade order is the first of:\n * -> Config.interactions.effects.effect.key\n * -> Config.effects.effect.key\n * -> Config.interactions.interaction.key\n */\n let target = effect.key;\n\n if (!target && (effect as EffectRef).effectId) {\n const referencedEffect = config.effects[(effect as EffectRef).effectId];\n\n if (referencedEffect) {\n target = referencedEffect.key;\n }\n }\n\n if (!(effect as EffectRef).effectId) {\n (effect as EffectRef).effectId = generateId();\n }\n\n // if no target is specified, use the source element as the target\n target = target || source;\n effect.key = target;\n const effectId = (effect as EffectRef).effectId;\n\n if (listContainer && effect.listContainer) {\n // we do not support having 2 separate lists for same interaction\n if (target !== source || effect.listContainer !== listContainer) {\n return;\n }\n }\n\n const interactionId = `${target}::${effectId}::${interactionIdx}`;\n effect.interactionId = interactionId;\n interactions[source].interactionIds.add(interactionId);\n\n if (target === source) {\n // if target is the source element, no need to add an interaction to `effects`\n return;\n }\n\n /*\n * Cache interaction effect by target element\n */\n if (!interactions[target]) {\n interactions[target] = {\n triggers: [],\n effects: {\n [interactionId]: [],\n },\n interactionIds: new Set(),\n selectors: new Set(),\n };\n } else if (!interactions[target].effects[interactionId]) {\n interactions[target].effects[interactionId] = [];\n interactions[target].interactionIds.add(interactionId);\n }\n\n interactions[target].effects[interactionId].push({ ...rest, effect });\n interactions[target].selectors.add(getSelector(effect, { useFirstChild: useCutsomElement }));\n });\n });\n\n return {\n effects: config.effects || {},\n conditions,\n interactions,\n };\n}\n","import type {\n Effect,\n TriggerType,\n EffectRef,\n InteractionParamsTypes,\n TransitionEffect,\n Interaction,\n InteractionTrigger,\n CreateTransitionCSSParams,\n IInteractionController,\n} from '../types';\nimport { createTransitionCSS, getMediaQuery, getSelectorCondition } from '../utils';\nimport { getInterpolatedKey } from './utilities';\nimport { Interact, getSelector } from './Interact';\nimport TRIGGER_TO_HANDLER_MODULE_MAP from '../handlers';\n\ntype InteractionsToApply = Array<[\n string,\n InteractionTrigger,\n Effect,\n HTMLElement | HTMLElement[],\n HTMLElement | HTMLElement[],\n string | undefined,\n boolean,\n]>;\n\nfunction _getElementsFromData(\n data: Interaction | Effect,\n root: HTMLElement,\n useFirstChild: boolean,\n): HTMLElement | HTMLElement[] | null {\n if (data.listContainer) {\n const container = root.querySelector(data.listContainer);\n\n if (!container) {\n console.warn(`Interact: No container found for list container \"${data.listContainer}\"`);\n\n return [];\n }\n\n if (data.selector) {\n return Array.from(container.querySelectorAll(data.selector)) as HTMLElement[];\n }\n\n return Array.from(container.children) as HTMLElement[];\n }\n\n if (data.selector) {\n const element = root.querySelector(data.selector);\n\n if (element) {\n return element as HTMLElement;\n } else {\n console.warn(`Interact: No element found for selector \"${data.selector}\"`);\n }\n }\n\n return useFirstChild ? root.firstElementChild as HTMLElement | null : root as HTMLElement | null;\n}\n\nfunction _queryItemElement(data: Interaction | Effect, elements: HTMLElement[]): HTMLElement[] {\n return elements\n .map((element) => {\n return data.selector ? element.querySelector(data.selector) : element;\n })\n .filter(Boolean) as HTMLElement[];\n}\n\nfunction _getInteractionElements(\n interaction: InteractionTrigger,\n effect: Effect,\n source: HTMLElement,\n sourceUseFirstChild: boolean,\n target: HTMLElement,\n targetUseFirstChild: boolean,\n sourceElements?: HTMLElement[],\n targetElements?: HTMLElement[],\n): [HTMLElement | HTMLElement[] | null, HTMLElement | HTMLElement[] | null] {\n return [\n sourceElements\n ? _queryItemElement(interaction, sourceElements)\n : _getElementsFromData(interaction, source, sourceUseFirstChild),\n targetElements\n ? _queryItemElement(effect, targetElements)\n : _getElementsFromData(effect, target, targetUseFirstChild),\n ];\n}\n\nfunction _applyInteraction(\n targetKey: string,\n interaction: InteractionTrigger,\n effect: Effect,\n sourceElements: HTMLElement | HTMLElement[],\n targetElements: HTMLElement | HTMLElement[],\n selectorCondition?: string,\n useFirstChild?: boolean,\n) {\n const isSourceArray = Array.isArray(sourceElements);\n const isTargetArray = Array.isArray(targetElements);\n\n if (isSourceArray) {\n sourceElements.forEach((sourceEl, index) => {\n const targetEl = isTargetArray ? targetElements[index] : targetElements;\n \n if (targetEl) {\n addInteraction(\n targetKey,\n sourceEl,\n interaction.trigger,\n targetEl,\n effect as Effect,\n interaction.params!,\n selectorCondition,\n useFirstChild,\n );\n }\n });\n } else {\n const targets = isTargetArray ? targetElements : [targetElements];\n targets.forEach((targetEl) => {\n addInteraction(\n targetKey,\n sourceElements,\n interaction.trigger,\n targetEl,\n effect as Effect,\n interaction.params!,\n selectorCondition,\n useFirstChild,\n );\n });\n }\n}\n\nfunction _addInteraction(\n sourceKey: string,\n sourceController: IInteractionController,\n instance: Interact,\n interaction: Interaction,\n elements?: HTMLElement[],\n) {\n const interactionVariations: Record<string, boolean> = {};\n\n const interactionsToApply: InteractionsToApply = [];\n \n interaction.effects.forEach((effect) => {\n const effectId = (effect as EffectRef).effectId;\n\n const effectOptions = {\n ...(instance.dataCache.effects[effectId] || {}),\n ...effect,\n effectId,\n };\n const targetKey_ = effectOptions.key;\n\n const interactionId = getInterpolatedKey(effect.interactionId!, sourceKey);\n\n if (interactionVariations[interactionId!]) {\n // Skip this effect if it has already been added\n return;\n }\n\n if (instance.addedInteractions[interactionId!] && !elements) {\n // Skip this interaction if it has already been added\n return;\n }\n\n const mql = getMediaQuery(effectOptions.conditions || [], instance.dataCache.conditions);\n\n if (mql) {\n instance.setupMediaQueryListener(interactionId, mql, sourceKey, () => {\n sourceController.update();\n });\n }\n\n if (!mql || mql.matches) {\n interactionVariations[interactionId!] = true;\n\n const target = targetKey_ && getInterpolatedKey(targetKey_, sourceKey);\n\n let targetController;\n if (target) {\n targetController = Interact.getController(target);\n\n if (!targetController) {\n // Bail out :: no target element in cache\n return;\n }\n\n if (effectOptions.listContainer) {\n targetController.watchChildList(effectOptions.listContainer);\n }\n } else {\n // target is not specified - fallback to same as source\n targetController = sourceController;\n }\n\n const [sourceElements, targetElements] = _getInteractionElements(\n interaction,\n effectOptions,\n sourceController.element,\n sourceController.useFirstChild,\n targetController.element,\n targetController.useFirstChild,\n elements,\n );\n\n if (!sourceElements || !targetElements) {\n return;\n }\n\n instance.addedInteractions[interactionId!] = true;\n\n const key = target || interaction.key;\n const selectorCondition = getSelectorCondition(\n effectOptions.conditions || [],\n instance.dataCache.conditions,\n );\n\n interactionsToApply.push([\n key,\n interaction,\n effectOptions,\n sourceElements,\n targetElements,\n selectorCondition,\n targetController.useFirstChild,\n ]);\n }\n });\n\n // apply the effects in reverse to return to the order specified by the user to ensure order of composition is as defined\n interactionsToApply.reverse().forEach((interaction) => {\n _applyInteraction(...interaction);\n });\n}\n\nfunction addEffectsForTarget(\n targetKey: string,\n targetController: IInteractionController,\n instance: Interact,\n listContainer?: string,\n elements?: HTMLElement[],\n) {\n const effects = instance.get(targetKey)?.effects || {};\n const interactionIds = Object.keys(effects);\n const interactionsToApply: InteractionsToApply = [];\n\n interactionIds.forEach((interactionId_) => {\n const interactionId = getInterpolatedKey(interactionId_, targetKey);\n\n if (instance.addedInteractions[interactionId] && !elements) {\n // Skip this interaction if it has already been added\n return;\n }\n\n const effectVariations = effects[interactionId_];\n\n // use `some` to short-circuit after the first effect that matches the conditions\n effectVariations.some(({ effect, ...interaction }) => {\n const effectId = (effect as EffectRef).effectId;\n\n const effectOptions = {\n ...(instance!.dataCache.effects[effectId] || {}),\n ...effect,\n effectId,\n };\n\n if (listContainer && effectOptions.listContainer !== listContainer) {\n // skip this effect if a listContainer was provided and it's not matching this effect.listContainer\n return false;\n }\n\n const mql = getMediaQuery(effectOptions.conditions || [], instance!.dataCache.conditions);\n\n if (mql) {\n instance.setupMediaQueryListener(interactionId, mql, targetKey, () => {\n // For effects on target, we reconcile the target element\n targetController.update();\n });\n }\n\n if (!mql || mql.matches) {\n const sourceKey = interaction.key && getInterpolatedKey(interaction.key, targetKey);\n const sourceController = Interact.getController(sourceKey);\n\n if (!sourceController) {\n // Bail out :: no source or target elements in cache\n return true;\n }\n\n if (effectOptions.listContainer) {\n targetController.watchChildList(effectOptions.listContainer);\n }\n\n const [sourceElements, targetElements] = _getInteractionElements(\n interaction,\n effectOptions,\n sourceController.element,\n sourceController.useFirstChild,\n targetController.element,\n targetController.useFirstChild,\n undefined,\n elements,\n );\n\n if (!sourceElements || !targetElements) {\n // Bail out :: no source or target elements found in DOM\n return true;\n }\n\n instance!.addedInteractions[interactionId] = true;\n\n const selectorCondition = getSelectorCondition(\n effectOptions.conditions || [],\n instance!.dataCache.conditions,\n );\n\n interactionsToApply.push([\n targetKey,\n interaction,\n effectOptions as Effect,\n sourceElements,\n targetElements,\n selectorCondition,\n targetController.useFirstChild,\n ]);\n\n // short-circuit the loop since we have a match\n return true;\n }\n\n return false;\n });\n });\n\n // apply the effects in reverse to return to the order specified by the user to ensure order of composition is as defined\n interactionsToApply.reverse().forEach((interaction) => {\n _applyInteraction(...interaction);\n });\n\n return interactionIds.length > 0;\n}\n\n/**\n * Registers a handler to an event on a given element.\n */\nfunction addInteraction<T extends TriggerType>(\n targetKey: string,\n source: HTMLElement,\n trigger: T,\n target: HTMLElement,\n effect: Effect,\n options: InteractionParamsTypes[T],\n selectorCondition?: string,\n useFirstChild?: boolean,\n): void {\n let targetController;\n\n if (\n (effect as TransitionEffect).transition ||\n (effect as TransitionEffect).transitionProperties\n ) {\n const args: CreateTransitionCSSParams = {\n key: targetKey,\n effectId: (effect as Effect).effectId!,\n transition: (effect as TransitionEffect).transition,\n properties: (effect as TransitionEffect).transitionProperties,\n childSelector: getSelector(effect, {\n asCombinator: true,\n addItemFilter: true,\n useFirstChild,\n }),\n selectorCondition,\n };\n\n targetController = Interact.getController(targetKey);\n if (!targetController) {\n return;\n }\n\n targetController.renderStyle(createTransitionCSS(args));\n }\n\n TRIGGER_TO_HANDLER_MODULE_MAP[trigger]?.add(source, target, effect, options, {\n reducedMotion: Interact.forceReducedMotion,\n targetController,\n selectorCondition,\n allowA11yTriggers: Interact.allowA11yTriggers,\n });\n}\n\n/**\n * Adds all events and effects to an element based on config\n */\nexport function add(controller: IInteractionController): boolean {\n const key = controller.key as string;\n const instance = Interact.getInstance(key);\n\n if (!instance) {\n console.warn(`No instance found for key: ${key}`);\n\n // even if we don't find a matching instance, we still want to cache the element\n Interact.setController(key, controller);\n return false;\n }\n\n const { triggers = [] } = instance?.get(key) || {};\n const hasTriggers = triggers.length > 0;\n\n instance.setController(key, controller);\n\n triggers.forEach((interaction, index) => {\n const mql = getMediaQuery(interaction.conditions, instance!.dataCache.conditions);\n\n if (mql) {\n const interactionId = `${key}::trigger::${index}`;\n instance.setupMediaQueryListener(interactionId, mql, key, () => {\n controller.update();\n });\n }\n\n if (!mql || mql.matches) {\n if (interaction.listContainer) {\n controller.watchChildList(interaction.listContainer);\n }\n\n _addInteraction(key, controller, instance!, interaction);\n }\n });\n\n let hasEffects = false;\n if (instance) {\n hasEffects = addEffectsForTarget(key, controller, instance);\n }\n\n return hasTriggers || hasEffects;\n}\n\nexport function addListItems(\n controller: IInteractionController,\n listContainer: string,\n elements: HTMLElement[],\n) {\n const key = controller.key as string;\n const instance = Interact.getInstance(key);\n\n if (instance) {\n const { triggers = [] } = instance?.get(key) || {};\n\n triggers.forEach((interaction, index) => {\n if (interaction.listContainer !== listContainer) {\n return;\n }\n\n const mql = getMediaQuery(interaction.conditions, instance!.dataCache.conditions);\n\n if (mql) {\n const interactionId = `${key}::listTrigger::${listContainer}::${index}`;\n instance.setupMediaQueryListener(interactionId, mql, key, () => {\n // For list items, reconciling the root might be expensive but safe\n controller.update();\n });\n }\n\n if (!mql || mql.matches) {\n _addInteraction(key, controller, instance!, interaction, elements);\n }\n });\n\n addEffectsForTarget(key, controller, instance, listContainer, elements);\n }\n}\n","import { Interact } from './Interact';\nimport TRIGGER_TO_HANDLER_MODULE_MAP from '../handlers';\nimport type { IInteractionController } from '../types';\n\n/**\n * Removes all events and effects from an element based on config\n */\nexport function remove(controller: IInteractionController, removeFromCache: boolean = false): void {\n const key = controller.key as string;\n const instance = Interact.getInstance(key);\n\n if (!instance) {\n return;\n }\n\n const selectors = [...(instance.get(key)?.selectors.values() || [])]\n .filter(Boolean)\n .join(',');\n let elements;\n\n if (selectors) {\n elements = [...controller.element.querySelectorAll(selectors)];\n\n if (!controller.useFirstChild) {\n elements.push(controller.element);\n }\n } else {\n elements = [controller.element];\n }\n\n removeListItems(elements as HTMLElement[]);\n\n // React can't seem to recover in StrictMode since it doesn't invoke ref callback 2nd time\n instance.deleteController(key, removeFromCache);\n}\n\nexport function removeListItems(elements: HTMLElement[]) {\n const modules = Object.values(TRIGGER_TO_HANDLER_MODULE_MAP);\n\n for (const element of elements) {\n for (const module of modules) {\n module.remove(element);\n }\n }\n}\n","import type { IInteractElement, StateParams } from '../types';\nimport { add, addListItems } from './add';\nimport { remove, removeListItems } from './remove';\n\nexport const INTERACT_EFFECT_DATA_ATTR = 'interactEffect';\n\nexport class InteractionController {\n element: HTMLElement;\n key: string | undefined;\n connected: boolean;\n sheet: CSSStyleSheet | null;\n useFirstChild: boolean;\n _observers: WeakMap<HTMLElement, MutationObserver>;\n\n constructor(element: HTMLElement, key?: string, options?: { useFirstChild?: boolean }) {\n this.element = element;\n this.key = key;\n this.connected = false;\n this.sheet = null;\n this._observers = new WeakMap();\n this.useFirstChild = options?.useFirstChild ?? false;\n }\n\n connect(key?: string) {\n if (this.connected) {\n return;\n }\n\n key = key || this.key || this.element.dataset.interactKey;\n\n if (!key) {\n console.warn('Interact: No key provided');\n return;\n }\n\n this.key = key;\n\n this.connected = add(this);\n }\n\n disconnect({ removeFromCache = false }: { removeFromCache?: boolean } = {}) {\n const key = this.key || this.element.dataset.interactKey;\n\n if (key) {\n remove(this, removeFromCache);\n }\n\n if (this.sheet) {\n const index = document.adoptedStyleSheets.indexOf(this.sheet);\n document.adoptedStyleSheets.splice(index, 1);\n }\n\n this._observers = new WeakMap();\n this.sheet = null;\n this.connected = false;\n }\n\n update() {\n this.disconnect();\n this.connect();\n }\n\n renderStyle(cssRules: string[]) {\n if (!this.sheet) {\n this.sheet = new CSSStyleSheet();\n void this.sheet.replaceSync(cssRules.join('\\n'));\n\n document.adoptedStyleSheets.push(this.sheet);\n } else {\n let position = this.sheet.cssRules.length;\n\n for (const cssRule of cssRules) {\n try {\n this.sheet.insertRule(cssRule, position);\n position++;\n } catch (e) {\n console.error(e);\n }\n }\n }\n }\n\n toggleEffect(effectId: string, method: StateParams['method'], item?: HTMLElement | null, isLegacy?: boolean) {\n if (item === null) {\n return;\n }\n\n if (!isLegacy && (this.element as IInteractElement).toggleEffect) {\n (this.element as IInteractElement).toggleEffect(effectId, method, item);\n return;\n }\n\n const currentEffects = new Set(this.element.dataset[INTERACT_EFFECT_DATA_ATTR]?.split(' ') || []);\n\n if (method === 'toggle') {\n currentEffects.has(effectId)\n ? currentEffects.delete(effectId)\n : currentEffects.add(effectId);\n } else if (method === 'add') {\n currentEffects.add(effectId);\n } else if (method === 'remove') {\n currentEffects.delete(effectId);\n } else if (method === 'clear') {\n currentEffects.clear();\n }\n\n (item || this.element).dataset[INTERACT_EFFECT_DATA_ATTR] = Array.from(currentEffects).join(' ');\n }\n\n getActiveEffects(): string[] {\n const raw = this.element.dataset[INTERACT_EFFECT_DATA_ATTR] || '';\n const trimmed = raw.trim();\n return trimmed ? trimmed.split(/\\s+/) : [];\n }\n\n watchChildList(listContainer: string): void {\n const list = this.element.querySelector(listContainer);\n\n if (list) {\n // TODO: we can probably improve this and use less observers, this impl. uses one per container element\n let observer = this._observers.get(list as HTMLElement);\n\n if (!observer) {\n observer = new MutationObserver(this._childListChangeHandler.bind(this, listContainer));\n\n this._observers.set(list as HTMLElement, observer);\n\n observer.observe(list as HTMLElement, { childList: true });\n }\n }\n }\n\n _childListChangeHandler(listContainer: string, entries: MutationRecord[]) {\n const key = this.key || this.element.dataset.interactKey;\n const removedElements: HTMLElement[] = [];\n const addedElements: HTMLElement[] = [];\n\n entries.forEach((entry) => {\n entry.removedNodes.forEach((el) => {\n if (el instanceof HTMLElement) {\n removedElements.push(el);\n }\n });\n\n entry.addedNodes.forEach((el) => {\n if (el instanceof HTMLElement) {\n addedElements.push(el);\n }\n });\n });\n\n removeListItems(removedElements);\n key && addListItems(this, listContainer, addedElements);\n }\n}\n","import { Interact } from '../core/Interact';\nimport { InteractionController } from '../core/InteractionController';\n\nexport function add(element: HTMLElement, key?: string): void {\n const controller = new InteractionController(element, key);\n\n controller.connect();\n}\n\nexport function remove(key: string): void {\n const controller = Interact.getController(key);\n if (!controller) {\n return;\n }\n\n controller.disconnect({ removeFromCache: true });\n}\n","import { InteractConfig } from '../types';\n\nexport function generate(_config: InteractConfig): string {\n const css: string[] = [\n `@media (prefers-reduced-motion: no-preference) {\n [data-interact-initial=\"true\"] > :first-child:not([data-motion-enter=\"done\"]) {\n visibility: hidden;\n transform: none;\n translate: none;\n scale: none;\n rotate: none;\n }\n}`\n ];\n\n return css.join('\\n');\n}\n"],"names":["_processKeysForInterpolation","key","_","_instanceKey","getInterpolatedKey","template","keys","index","xt","a","r","s","pa","ga","ya","$a","ha","va","$e","Oa","_a","xa","ba","Ea","Ia","wa","Pa","Aa","Sa","Ta","ka","Ma","Ra","vt","za","Fa","Na","Ya","X","h","Xa","Ca","I","Da","i","c","m","R","he","S","Va","H","ja","T","Za","l","u","Ba","La","d","p","Ot","Y","g","b","Ga","qa","U","Ha","Ka","St","Ua","Ja","Tt","Qa","Wa","ve","C","to","eo","no","ao","y","$","Oe","oo","ro","so","io","co","lo","_e","kt","fo","mo","uo","xe","bt","Mt","Rt","po","ot","go","J","yo","$o","ho","vo","be","et","Oo","_o","xo","bo","zt","Eo","Io","wo","Po","Ao","Ft","Nt","rt","So","To","Ee","nt","ko","Mo","Ro","Yt","zo","Fo","Xt","No","Yo","Xo","Co","Ct","Dt","Vt","jt","Zt","Bt","Lt","Do","Vo","Ie","jo","Zo","O","v","Bo","Gt","Lo","Go","qo","Ho","qt","Ht","Ko","Uo","Jo","Ae","Pe","we","Qo","Kt","Se","Wo","Te","tr","ke","er","Me","nr","Re","ar","or","Ut","rr","sr","ir","ze","A","w","z","cr","Fe","lr","fr","Ye","Ne","mr","Xe","ur","dr","De","Ce","pr","Ve","st","gr","je","yr","Ze","Jt","$r","hr","Le","Be","vr","Ge","Or","qe","_r","He","xr","Ke","Ue","Qt","br","Qe","Je","Er","We","Ir","wr","tn","Pr","en","nn","Ar","at","an","Sr","rn","on","Tr","Et","kr","sn","wt","It","Mr","cn","Rr","zr","Fr","ln","Nr","Yr","fn","Xr","mn","Cr","Dr","Vr","jr","dn","un","f","Zr","pn","Br","Lr","gn","Gr","yn","qr","$n","Hr","vn","hn","Kr","On","G","Ur","_n","Jr","xn","bn","Qr","En","Wr","ts","es","In","ns","wn","as","os","Pn","rs","Sn","An","ss","Tn","Wt","te","is","kn","cs","Mn","_t","Rn","ls","Fn","zn","fs","ee","it","ms","us","Nn","Yn","ds","ps","gs","ys","Xn","Cn","x","K","F","L","$s","hs","D","V","j","ne","ct","vs","Os","_s","Dn","xs","bs","Vn","jn","Es","Is","ws","Ps","Zn","Bn","As","Ss","Ts","ae","ks","Ms","Ln","Gn","At","Rs","lt","zs","Fs","qn","Hn","Ns","Ys","ft","Xs","Cs","Kn","Un","Ds","mt","oe","Vs","Jn","Qn","js","ut","Zs","Bs","Wn","ta","Ls","Gs","qs","Hs","ea","na","Ks","Us","Js","re","Qs","Ws","aa","oa","ti","dt","ei","ni","ra","sa","ai","se","k","oi","ie","ri","si","ce","ii","ci","Q","li","fi","mi","ui","ia","di","le","pi","gi","fe","yi","$i","hi","vi","pt","Oi","_i","xi","gt","bi","Ei","yt","Ii","wi","me","M","Pi","Ai","Si","Ti","ca","ki","Mi","Ri","zi","Fi","$t","Ni","Yi","Xi","Ci","Di","Vi","ji","W","Zi","Bi","Li","Gi","qi","ue","Hi","tt","de","pe","Ki","Ui","N","B","Ji","Qi","ht","ge","la","fa","ma","q","o","ua","Pt","ye","da","nc","ac","oc","sc","ic","applySelectorCondition","baseSelector","predicate","generateId","createTransitionCSS","effectId","transition","properties","childSelector","selectorCondition","transitions","duration","easing","delay","styleProperty","getEasing","property","styleProperties","escapedKey","stateSelector","dataAttrSelector","finalStateSelector","finalDataAttrSelector","result","transitionSelector","finalTransitionSelector","getMediaQuery","conditionNames","conditions","conditionContent","conditionName","condition","getSelectorCondition","name","DEFAULT_RANGE_VALUES","resolveRangeOffsets","rangeStart","rangeEnd","startName","endName","startOffset","endOffset","effectToAnimationOptions","effect","rest","addHandlerToMap","handlersMap","element","handlerObj","handlers","removeElementFromHandlerMap","handlerMap","source","target","cleanup","otherKey","win","debug","raf","cb","FastDom","self","tasks","task","ctx","scheduleFlush","remove","props","child","mixin","fastdom","flush","writes","reads","error","e","array","item","exports","module","this","SAFE_OBSERVER_CONFIG","EXIT_OBSERVER_CONFIG","observers","elementFirstRun","elementObserverMap","viewEnterOptions","sharedExitObserver","setOptions","options","invokeHandlers","isIntersecting","handler","getExitObserver","entries","entry","getObserver","isSafeMode","config","observer","isFirstRun","sourceHeight","rootHeight","threshold","safeObserver","type","addViewEnterHandler","reducedMotion","mergedOptions","animation","getAnimation","isInitialPlay","removeViewEnterHandler","reset","viewEnterHandler","defaultTo","obj","defaults","lerp","t","res","deltaFromStart","deltaFromEnd","frameThrottle","throttled","debounce","interval","debounced","parseOffsetCalc","offsetString","absoluteOffsetContext","match","transformAbsoluteOffsetToNumber","transformRangeToPosition","range","viewportSize","rect","offset","start","end","height","percentage","startPosition","computeStickinessIntoFullRange","offsetTree","absoluteStartOffset","absoluteEndOffset","isHorizontal","accumulatedOffset","newAbsoluteRange","node","sticky","offsetFromViewEnd","stuckStart","isBeforeStart","isInsideDuration","extraOffset","parent","parentSize","elementOffset","elementSize","transformSceneRangesToOffsets","scene","startRange","endRange","overrideDuration","startAdd","endAdd","getIsSticky","style","getIsFixed","offsetParent","root","getStickyStartOffset","getStickyEndOffset","getRectStart","isSticky","getStickyData","stickyStart","stickyEnd","hasStickyStart","hasStickyEnd","getTransformedSceneGroup","scenes","size","elementLayoutStart","nodeStyle","VIEWPORT_RESIZE_INTERVAL","DEFAULTS","calcProgress","progress","getViewportSize","getAbsoluteOffsetContext","getController","_config","horizontal","scenesByElement","lastP","viewportObserver","rangesResizeObserver","viewportResizeHandler","scrollportResizeObserver","rangesToObserve","acc","sceneGroup","targetToSceneGroup","transformedSceneGroup","localIndex","newRanges","newSceneGroup","intersections","intersection","scenesArray","tick","vp","velocity","destroy","Scroll","isDocumentRoot","scrollPosition","clearLerpFrame","hasLerp","dp","factorP","scrollManagerMap","scrollOptionsGetter","registerOptionsGetter","getter","addViewProgressHandler","__","triggerParams","effectOptions","animationGroup","getWebAnimation","getScrubScene","scroll","removeViewProgressHandler","viewProgressHandler","createTimeEffectHandler","initialPlay","event","createTransitionHandler","targetController","listContainer","listItemSelector","method","isToggle","shouldSetStateOnElement","method_","addHoverHandler","allowA11yTriggers","isStateTrigger","once","removeHoverHandler","hoverHandler","addClickHandler","removeClickHandler","clickHandler","clamp","min","max","value","getRect","el","left","top","testPointerOffsetDprBug","DPR","fixRequired","testPointerOffsetScrollBug","resolve","startY","currentY","sampleOffsetY","scrollHandler","testScrollOffsetsForWebKitPointerBug","scrollOffsets","listeners","pointers","initScrollendPolyfill","touchStartHandler","touch","touchEndHandler","addScrollendListener","listener","timeout","removeScrollendPolyfill","scrollListener","evt","centerToTargetFactory","x1","layerCenterX","isXStartFarthest","xDuration","x0","y1","layerCenterY","isYStartFarthest","yDuration","y0","scrollendCallback","lastProgress","windowResize","observeRootResize","hasCenteredToTarget","resizeObserver","windowResizeHandler","scrollendHandler","removeScrollendListener","normalizedX","normalizedY","MOVEMENT_RESET_DELAY","shouldFixSynthPointer","Pointer","trigger","_measure","newX","newY","now","resetMovement","time","pointerManagerMap","pointerOptionsGetter","addPointerMoveHandler","pointer","removePointerMoveHandler","pointerMoveHandler","addAnimationEndHandler","removeAnimationEndHandler","animationEndHandler","withA11y","interactOptions","TRIGGER_TO_HANDLER_MODULE_MAP","_convertToKeyTemplate","Interact","useCutsomElement","parseConfig","defined","controller","removeFromCache","processedKey","id","interactionId_","interactionId","mql","instance","interactionIdCounter","getSelector","asCombinator","addItemFilter","useFirstChild","itemFilter","interactions","interaction_","interactionIdx","effects_","effects","interaction","referencedEffect","_getElementsFromData","data","container","_queryItemElement","elements","_getInteractionElements","sourceUseFirstChild","targetUseFirstChild","sourceElements","targetElements","_applyInteraction","targetKey","isSourceArray","isTargetArray","sourceEl","targetEl","addInteraction","_addInteraction","sourceKey","sourceController","interactionVariations","interactionsToApply","targetKey_","addEffectsForTarget","interactionIds","args","add","triggers","hasTriggers","hasEffects","addListItems","selectors","removeListItems","modules","INTERACT_EFFECT_DATA_ATTR","InteractionController","cssRules","position","cssRule","isLegacy","currentEffects","trimmed","list","removedElements","addedElements","generate"],"mappings":"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","x_google_ignoreList":[4,6,7,8,9,13,14,15,16]}
|