@sociallane/elements 1.0.10 → 1.0.12

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sociallane/elements",
3
- "version": "1.0.10",
3
+ "version": "1.0.12",
4
4
  "description": "Elementor widgets and elements with Tailwind CSS for SocialLane. WordPress plugin.",
5
5
  "type": "module",
6
6
  "private": false,
@@ -1,25 +1,25 @@
1
1
  {
2
- "_vendor-gsap-W43tiS41.js": {
3
- "file": "vendor-gsap-W43tiS41.js",
2
+ "_vendor-gsap-DG3BZlja.js": {
3
+ "file": "vendor-gsap-DG3BZlja.js",
4
4
  "name": "vendor-gsap"
5
5
  },
6
- "_vendor-lenis-L8jc5Amd.js": {
7
- "file": "vendor-lenis-L8jc5Amd.js",
6
+ "_vendor-lenis-yRRXrftv.js": {
7
+ "file": "vendor-lenis-yRRXrftv.js",
8
8
  "name": "vendor-lenis"
9
9
  },
10
10
  "assets/css/tailwind.css": {
11
- "file": "tailwind-BBMzypmd.css",
11
+ "file": "tailwind-DOt-nulx.css",
12
12
  "src": "assets/css/tailwind.css",
13
13
  "isEntry": true
14
14
  },
15
15
  "assets/js/animations.js": {
16
- "file": "animations-BfenTMbz.js",
16
+ "file": "animations-tqJYzwcE.js",
17
17
  "name": "animations",
18
18
  "src": "assets/js/animations.js",
19
19
  "isEntry": true,
20
20
  "imports": [
21
- "_vendor-gsap-W43tiS41.js",
22
- "_vendor-lenis-L8jc5Amd.js"
21
+ "_vendor-gsap-DG3BZlja.js",
22
+ "_vendor-lenis-yRRXrftv.js"
23
23
  ]
24
24
  }
25
25
  }
@@ -0,0 +1,252 @@
1
+ import { g as gsapWithCSS, S as SplitText, a as ScrollTrigger } from "./vendor-gsap-DG3BZlja.js";
2
+ import { L as Lenis } from "./vendor-lenis-yRRXrftv.js";
3
+ const REVEAL_TYPES = {
4
+ "fade-up": { opacity: 0, y: 30 },
5
+ "fade-down": { opacity: 0, y: -30 },
6
+ "fade-left": { opacity: 0, x: 30 },
7
+ "fade-right": { opacity: 0, x: -30 },
8
+ "scale": { opacity: 0, scale: 0.95 },
9
+ "rotate": { opacity: 0, rotation: -5 }
10
+ };
11
+ function initReveal(scope = document) {
12
+ scope instanceof Document ? scope : scope.ownerDocument ?? document;
13
+ const container = scope instanceof Document ? scope.body : scope;
14
+ const els = container.querySelectorAll("[data-sl-reveal]");
15
+ els.forEach((el) => {
16
+ const type = el.getAttribute("data-sl-reveal") || "fade-up";
17
+ const delay = parseFloat(el.getAttribute("data-sl-delay") || 0);
18
+ const duration = parseFloat(el.getAttribute("data-sl-duration") || 0.6);
19
+ const from = REVEAL_TYPES[type] ?? REVEAL_TYPES["fade-up"];
20
+ gsapWithCSS.fromTo(
21
+ el,
22
+ from,
23
+ {
24
+ opacity: 1,
25
+ x: 0,
26
+ y: 0,
27
+ scale: 1,
28
+ rotation: 0,
29
+ duration,
30
+ delay,
31
+ ease: "power2.out",
32
+ scrollTrigger: {
33
+ trigger: el,
34
+ start: "top 85%",
35
+ toggleActions: "play none none none"
36
+ }
37
+ }
38
+ );
39
+ });
40
+ }
41
+ function initStagger(scope = document) {
42
+ const container = scope instanceof Document ? scope.body : scope;
43
+ const parents = container.querySelectorAll("[data-sl-stagger]");
44
+ parents.forEach((parent) => {
45
+ const delayStr = parent.getAttribute("data-sl-stagger");
46
+ const staggerDelay = delayStr ? parseFloat(delayStr) : 0.1;
47
+ const children = Array.from(parent.children).filter(
48
+ (c) => !c.hasAttribute("data-sl-stagger-skip")
49
+ );
50
+ if (children.length === 0) return;
51
+ gsapWithCSS.fromTo(
52
+ children,
53
+ { opacity: 0, y: 20 },
54
+ {
55
+ opacity: 1,
56
+ y: 0,
57
+ duration: 0.5,
58
+ stagger: staggerDelay,
59
+ ease: "power2.out",
60
+ scrollTrigger: {
61
+ trigger: parent,
62
+ start: "top 85%",
63
+ toggleActions: "play none none none"
64
+ }
65
+ }
66
+ );
67
+ });
68
+ }
69
+ const splitInstances = /* @__PURE__ */ new WeakMap();
70
+ function initSplitText(scope = document) {
71
+ const container = scope instanceof Document ? scope.body : scope;
72
+ const els = container.querySelectorAll("[data-sl-split]");
73
+ els.forEach((el) => {
74
+ const type = el.getAttribute("data-sl-split") || "words";
75
+ const staggerVal = parseFloat(el.getAttribute("data-sl-split-stagger") || 0.02);
76
+ if (!el.textContent.trim()) return;
77
+ const typeMap = { chars: "chars", words: "words", lines: "lines" };
78
+ const splitType = typeMap[type] || "words";
79
+ const split = new SplitText(el, {
80
+ type: splitType,
81
+ charsClass: "sl-split-char",
82
+ wordsClass: "sl-split-word",
83
+ linesClass: "sl-split-line"
84
+ });
85
+ splitInstances.set(el, split);
86
+ const targets = split[splitType] ?? split.chars ?? split.words ?? split.lines;
87
+ if (!targets || targets.length === 0) return;
88
+ gsapWithCSS.fromTo(
89
+ targets,
90
+ { opacity: 0, y: 15 },
91
+ {
92
+ opacity: 1,
93
+ y: 0,
94
+ duration: 0.5,
95
+ stagger: staggerVal,
96
+ ease: "power2.out",
97
+ scrollTrigger: {
98
+ trigger: el,
99
+ start: "top 85%",
100
+ toggleActions: "play none none none"
101
+ }
102
+ }
103
+ );
104
+ });
105
+ }
106
+ function initPin(scope = document) {
107
+ const container = scope instanceof Document ? scope.body : scope;
108
+ const els = container.querySelectorAll("[data-sl-pin]");
109
+ els.forEach((el) => {
110
+ const end = el.getAttribute("data-sl-pin-end") || "+=100%";
111
+ ScrollTrigger.create({
112
+ trigger: el,
113
+ start: "top top",
114
+ end,
115
+ pin: true,
116
+ pinSpacing: true
117
+ });
118
+ });
119
+ }
120
+ const DURATION_HEIGHT = 0.35;
121
+ const EASE = "power2.out";
122
+ function initHoverReveal(scope = document) {
123
+ const root = scope instanceof Document ? scope : scope.ownerDocument ?? document;
124
+ const container = scope instanceof Document ? root.body : scope;
125
+ if (!container || typeof container.querySelectorAll !== "function") return;
126
+ const cards = container.querySelectorAll("[data-sl-hover-reveal]");
127
+ cards.forEach((card) => {
128
+ const collapsibleItems = card.querySelectorAll("[data-sl-hover-reveal-collapsible]");
129
+ const reducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
130
+ if (reducedMotion) {
131
+ collapsibleItems.forEach((item) => {
132
+ gsapWithCSS.set(item, { height: "auto", opacity: 1, transform: "none", overflow: "visible" });
133
+ });
134
+ return;
135
+ }
136
+ collapsibleItems.forEach((item) => {
137
+ gsapWithCSS.set(item, { height: 0, opacity: 0, transform: "translateY(10px)", overflow: "hidden" });
138
+ });
139
+ let tlEnter = null;
140
+ let tlLeave = null;
141
+ const onEnter = () => {
142
+ if (tlLeave) tlLeave.kill();
143
+ tlEnter = gsapWithCSS.timeline({ overwrite: true });
144
+ collapsibleItems.forEach((item, index) => {
145
+ const autoHeight = item.scrollHeight;
146
+ tlEnter.to(item, {
147
+ height: autoHeight,
148
+ opacity: 1,
149
+ transform: "translateY(0)",
150
+ overflow: "visible",
151
+ duration: DURATION_HEIGHT,
152
+ ease: EASE
153
+ }, index * 0.05);
154
+ });
155
+ };
156
+ const onLeave = () => {
157
+ if (tlEnter) tlEnter.kill();
158
+ tlLeave = gsapWithCSS.timeline({ overwrite: true });
159
+ collapsibleItems.forEach((item, index) => {
160
+ tlLeave.to(item, {
161
+ height: 0,
162
+ opacity: 0,
163
+ transform: "translateY(10px)",
164
+ overflow: "hidden",
165
+ duration: DURATION_HEIGHT * 0.8,
166
+ ease: EASE
167
+ }, index * 0.03);
168
+ });
169
+ };
170
+ card.addEventListener("mouseenter", onEnter);
171
+ card.addEventListener("mouseleave", onLeave);
172
+ card.addEventListener("focusin", onEnter);
173
+ card.addEventListener("focusout", onLeave);
174
+ });
175
+ }
176
+ gsapWithCSS.registerPlugin(ScrollTrigger, SplitText);
177
+ const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
178
+ const isElementorPreview = () => typeof document !== "undefined" && document.body && document.body.classList.contains("elementor-editor-active");
179
+ const isElementorEditor = () => typeof window !== "undefined" && window.elementorFrontend;
180
+ let lenis = null;
181
+ function initAnimationsInScope(scope = document) {
182
+ const root = scope instanceof Document ? scope : scope?.ownerDocument ?? document;
183
+ const container = scope instanceof Document ? root.body : scope;
184
+ if (!container) return;
185
+ initReveal(container);
186
+ initStagger(container);
187
+ initSplitText(container);
188
+ initPin(container);
189
+ initHoverReveal(container);
190
+ }
191
+ function killTriggersInScope(scope) {
192
+ const container = scope instanceof Document ? scope.body : scope;
193
+ if (!container || typeof container.contains !== "function") return;
194
+ ScrollTrigger.getAll().forEach((t) => {
195
+ if (t.trigger && container.contains(t.trigger)) {
196
+ t.kill();
197
+ }
198
+ });
199
+ }
200
+ function initAllAnimations() {
201
+ if (prefersReducedMotion) {
202
+ const targets = document.querySelectorAll(
203
+ "[data-sl-reveal], [data-sl-split], [data-sl-stagger]"
204
+ );
205
+ gsapWithCSS.set(targets, { opacity: 1, transform: "none" });
206
+ document.querySelectorAll("[data-sl-stagger]").forEach((parent) => {
207
+ gsapWithCSS.set(parent.children, { opacity: 1, transform: "none" });
208
+ });
209
+ return;
210
+ }
211
+ initAnimationsInScope(document);
212
+ }
213
+ function run() {
214
+ if (prefersReducedMotion) {
215
+ initAllAnimations();
216
+ window.SocialLaneAnimations = { gsap: gsapWithCSS, ScrollTrigger, SplitText, lenis: null, init: initAllAnimations };
217
+ return;
218
+ }
219
+ if (!isElementorPreview()) {
220
+ lenis = new Lenis({ lerp: 0.1, smoothWheel: true });
221
+ lenis.on("scroll", ScrollTrigger.update);
222
+ gsapWithCSS.ticker.add((time) => lenis.raf(time * 1e3));
223
+ gsapWithCSS.ticker.lagSmoothing(0);
224
+ }
225
+ initAllAnimations();
226
+ window.SocialLaneAnimations = {
227
+ gsap: gsapWithCSS,
228
+ ScrollTrigger,
229
+ SplitText,
230
+ lenis,
231
+ init: initAllAnimations,
232
+ initInScope: initAnimationsInScope
233
+ };
234
+ if (isElementorEditor() && window.elementorFrontend?.hooks) {
235
+ window.elementorFrontend.hooks.addAction(
236
+ "frontend/element_ready/global",
237
+ ($scope) => {
238
+ const el = $scope && $scope[0];
239
+ if (el) {
240
+ killTriggersInScope(el);
241
+ initAnimationsInScope(el);
242
+ }
243
+ }
244
+ );
245
+ }
246
+ }
247
+ if (document.readyState === "loading") {
248
+ document.addEventListener("DOMContentLoaded", run);
249
+ } else {
250
+ run();
251
+ }
252
+ //# sourceMappingURL=animations-tqJYzwcE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animations-tqJYzwcE.js","sources":["../js/utilities/reveal.js","../js/utilities/stagger.js","../js/utilities/split-text.js","../js/utilities/pin.js","../js/utilities/hover-reveal.js","../js/animations.js"],"sourcesContent":["/**\n * Scroll reveal animation utility.\n * Elements with data-sl-reveal animate into view on scroll.\n *\n * @package SocialLane_Elements\n */\n\nimport gsap from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\n\nconst REVEAL_TYPES = {\n 'fade-up': { opacity: 0, y: 30 },\n 'fade-down': { opacity: 0, y: -30 },\n 'fade-left': { opacity: 0, x: 30 },\n 'fade-right': { opacity: 0, x: -30 },\n 'scale': { opacity: 0, scale: 0.95 },\n 'rotate': { opacity: 0, rotation: -5 },\n};\n\n/**\n * Initialize reveal animations within a scope.\n *\n * @param {Element|Document} scope Root element or document to search.\n */\nexport function initReveal(scope = document) {\n const root = scope instanceof Document ? scope : scope.ownerDocument ?? document;\n const container = scope instanceof Document ? scope.body : scope;\n const els = container.querySelectorAll('[data-sl-reveal]');\n\n els.forEach((el) => {\n const type = el.getAttribute('data-sl-reveal') || 'fade-up';\n const delay = parseFloat(el.getAttribute('data-sl-delay') || 0);\n const duration = parseFloat(el.getAttribute('data-sl-duration') || 0.6);\n const from = REVEAL_TYPES[type] ?? REVEAL_TYPES['fade-up'];\n\n gsap.fromTo(\n el,\n from,\n {\n opacity: 1,\n x: 0,\n y: 0,\n scale: 1,\n rotation: 0,\n duration,\n delay,\n ease: 'power2.out',\n scrollTrigger: {\n trigger: el,\n start: 'top 85%',\n toggleActions: 'play none none none',\n },\n }\n );\n });\n}\n","/**\n * Stagger animation utility.\n * Children of elements with data-sl-stagger animate in sequence.\n *\n * @package SocialLane_Elements\n */\n\nimport gsap from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\n\n/**\n * Initialize stagger animations within a scope.\n *\n * @param {Element|Document} scope Root element or document to search.\n */\nexport function initStagger(scope = document) {\n const container = scope instanceof Document ? scope.body : scope;\n const parents = container.querySelectorAll('[data-sl-stagger]');\n\n parents.forEach((parent) => {\n const delayStr = parent.getAttribute('data-sl-stagger');\n const staggerDelay = delayStr ? parseFloat(delayStr) : 0.1;\n const children = Array.from(parent.children).filter(\n (c) => !c.hasAttribute('data-sl-stagger-skip')\n );\n\n if (children.length === 0) return;\n\n gsap.fromTo(\n children,\n { opacity: 0, y: 20 },\n {\n opacity: 1,\n y: 0,\n duration: 0.5,\n stagger: staggerDelay,\n ease: 'power2.out',\n scrollTrigger: {\n trigger: parent,\n start: 'top 85%',\n toggleActions: 'play none none none',\n },\n }\n );\n });\n}\n","/**\n * Split text animation utility.\n * Text elements with data-sl-split animate characters/words/lines on scroll.\n *\n * @package SocialLane_Elements\n */\n\nimport gsap from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport SplitText from 'gsap/SplitText';\n\nconst splitInstances = new WeakMap();\n\n/**\n * Initialize split text animations within a scope.\n *\n * @param {Element|Document} scope Root element or document to search.\n */\nexport function initSplitText(scope = document) {\n const container = scope instanceof Document ? scope.body : scope;\n const els = container.querySelectorAll('[data-sl-split]');\n\n els.forEach((el) => {\n const type = el.getAttribute('data-sl-split') || 'words';\n const staggerVal = parseFloat(el.getAttribute('data-sl-split-stagger') || 0.02);\n\n if (!el.textContent.trim()) return;\n\n const typeMap = { chars: 'chars', words: 'words', lines: 'lines' };\n const splitType = typeMap[type] || 'words';\n\n const split = new SplitText(el, {\n type: splitType,\n charsClass: 'sl-split-char',\n wordsClass: 'sl-split-word',\n linesClass: 'sl-split-line',\n });\n\n splitInstances.set(el, split);\n\n const targets = split[splitType] ?? split.chars ?? split.words ?? split.lines;\n if (!targets || targets.length === 0) return;\n\n gsap.fromTo(\n targets,\n { opacity: 0, y: 15 },\n {\n opacity: 1,\n y: 0,\n duration: 0.5,\n stagger: staggerVal,\n ease: 'power2.out',\n scrollTrigger: {\n trigger: el,\n start: 'top 85%',\n toggleActions: 'play none none none',\n },\n }\n );\n });\n}\n\n/**\n * Revert split text and clean up.\n *\n * @param {Element} el Element that was split.\n */\nexport function revertSplitText(el) {\n const split = splitInstances.get(el);\n if (split && typeof split.revert === 'function') {\n split.revert();\n splitInstances.delete(el);\n }\n}\n","/**\n * Pin (sticky scroll) animation utility.\n * Elements with data-sl-pin stay pinned during scroll.\n *\n * @package SocialLane_Elements\n */\n\nimport gsap from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\n\n/**\n * Initialize pin animations within a scope.\n *\n * @param {Element|Document} scope Root element or document to search.\n */\nexport function initPin(scope = document) {\n const container = scope instanceof Document ? scope.body : scope;\n const els = container.querySelectorAll('[data-sl-pin]');\n\n els.forEach((el) => {\n const end = el.getAttribute('data-sl-pin-end') || '+=100%';\n\n ScrollTrigger.create({\n trigger: el,\n start: 'top top',\n end,\n pin: true,\n pinSpacing: true,\n });\n });\n}\n","/**\n * Hover reveal: backdrop bar is visible with gradient; collapsible content animates height + opacity.\n * Elements with [data-sl-hover-reveal] get bar [data-sl-hover-reveal-bar].\n * Elements with [data-sl-hover-reveal-collapsible] animate height + opacity.\n *\n * @package SocialLane_Elements\n */\n\nimport gsap from 'gsap';\n\nconst DURATION_HEIGHT = 0.35;\nconst DURATION_ITEMS = 0.2;\nconst STAGGER = 0.05;\nconst EASE = 'power2.out';\n\n/**\n * Initialize hover-reveal animations within a scope.\n *\n * @param {Element|Document} scope Root element or document to search.\n */\nexport function initHoverReveal(scope = document) {\n const root = scope instanceof Document ? scope : scope.ownerDocument ?? document;\n const container = scope instanceof Document ? root.body : scope;\n if (!container || typeof container.querySelectorAll !== 'function') return;\n\n const cards = container.querySelectorAll('[data-sl-hover-reveal]');\n cards.forEach((card) => {\n const collapsibleItems = card.querySelectorAll('[data-sl-hover-reveal-collapsible]');\n\n const reducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n if (reducedMotion) {\n collapsibleItems.forEach((item) => {\n gsap.set(item, { height: 'auto', opacity: 1, transform: 'none', overflow: 'visible' });\n });\n return;\n }\n\n // Set initial state: collapsed\n collapsibleItems.forEach((item) => {\n gsap.set(item, { height: 0, opacity: 0, transform: 'translateY(10px)', overflow: 'hidden' });\n });\n\n let tlEnter = null;\n let tlLeave = null;\n\n const onEnter = () => {\n if (tlLeave) tlLeave.kill();\n tlEnter = gsap.timeline({ overwrite: true });\n\n // Animate each collapsible item\n collapsibleItems.forEach((item, index) => {\n // Get the auto height for this item\n const autoHeight = item.scrollHeight;\n\n tlEnter.to(item, {\n height: autoHeight,\n opacity: 1,\n transform: 'translateY(0)',\n overflow: 'visible',\n duration: DURATION_HEIGHT,\n ease: EASE,\n }, index * 0.05);\n });\n };\n\n const onLeave = () => {\n if (tlEnter) tlEnter.kill();\n tlLeave = gsap.timeline({ overwrite: true });\n\n // Collapse all items\n collapsibleItems.forEach((item, index) => {\n tlLeave.to(item, {\n height: 0,\n opacity: 0,\n transform: 'translateY(10px)',\n overflow: 'hidden',\n duration: DURATION_HEIGHT * 0.8,\n ease: EASE,\n }, index * 0.03);\n });\n };\n\n card.addEventListener('mouseenter', onEnter);\n card.addEventListener('mouseleave', onLeave);\n card.addEventListener('focusin', onEnter);\n card.addEventListener('focusout', onLeave);\n });\n}\n","/**\n * GSAP + Lenis Animation Entry Point\n *\n * Initializes scroll animations, split text, stagger effects, and smooth scroll.\n * Supports Elementor editor (reinit on content change) and prefers-reduced-motion.\n *\n * @package SocialLane_Elements\n */\n\nimport gsap from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport SplitText from 'gsap/SplitText';\nimport Lenis from 'lenis';\nimport { initReveal } from './utilities/reveal.js';\nimport { initStagger } from './utilities/stagger.js';\nimport { initSplitText } from './utilities/split-text.js';\nimport { initPin } from './utilities/pin.js';\nimport { initHoverReveal } from './utilities/hover-reveal.js';\n\ngsap.registerPlugin(ScrollTrigger, SplitText);\n\nconst prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\nconst isElementorPreview = () =>\n typeof document !== 'undefined' &&\n document.body &&\n document.body.classList.contains('elementor-editor-active');\n\nconst isElementorEditor = () => typeof window !== 'undefined' && window.elementorFrontend;\n\nlet lenis = null;\n\nfunction initAnimationsInScope(scope = document) {\n const root = scope instanceof Document ? scope : scope?.ownerDocument ?? document;\n const container = scope instanceof Document ? root.body : scope;\n if (!container) return;\n\n initReveal(container);\n initStagger(container);\n initSplitText(container);\n initPin(container);\n initHoverReveal(container);\n}\n\nfunction killTriggersInScope(scope) {\n const container = scope instanceof Document ? scope.body : scope;\n if (!container || typeof container.contains !== 'function') return;\n ScrollTrigger.getAll().forEach((t) => {\n if (t.trigger && container.contains(t.trigger)) {\n t.kill();\n }\n });\n}\n\nfunction initAllAnimations() {\n if (prefersReducedMotion) {\n const targets = document.querySelectorAll(\n '[data-sl-reveal], [data-sl-split], [data-sl-stagger]'\n );\n gsap.set(targets, { opacity: 1, transform: 'none' });\n document.querySelectorAll('[data-sl-stagger]').forEach((parent) => {\n gsap.set(parent.children, { opacity: 1, transform: 'none' });\n });\n return;\n }\n\n initAnimationsInScope(document);\n}\n\nfunction run() {\n if (prefersReducedMotion) {\n initAllAnimations();\n window.SocialLaneAnimations = { gsap, ScrollTrigger, SplitText, lenis: null, init: initAllAnimations };\n return;\n }\n\n if (!isElementorPreview()) {\n lenis = new Lenis({ lerp: 0.1, smoothWheel: true });\n lenis.on('scroll', ScrollTrigger.update);\n gsap.ticker.add((time) => lenis.raf(time * 1000));\n gsap.ticker.lagSmoothing(0);\n }\n\n initAllAnimations();\n\n window.SocialLaneAnimations = {\n gsap,\n ScrollTrigger,\n SplitText,\n lenis,\n init: initAllAnimations,\n initInScope: initAnimationsInScope,\n };\n\n if (isElementorEditor() && window.elementorFrontend?.hooks) {\n window.elementorFrontend.hooks.addAction(\n 'frontend/element_ready/global',\n ($scope) => {\n const el = $scope && $scope[0];\n if (el) {\n killTriggersInScope(el);\n initAnimationsInScope(el);\n }\n }\n );\n }\n}\n\nif (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', run);\n} else {\n run();\n}\n"],"names":["gsap"],"mappings":"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"}