@rethink-js/rt-smooth-scroll 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Rethink JS
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1 @@
1
+ # rt-smooth-scroll
package/dist/index.js ADDED
@@ -0,0 +1,493 @@
1
+ /*! @rethink-js/rt-smooth-scroll v1.0.0 | MIT */
2
+ (() => {
3
+ // src/index.js
4
+ (function() {
5
+ var RT_NS = "rtSmoothScroll";
6
+ if (window[RT_NS] && window[RT_NS].__initialized) return;
7
+ function getAttrFrom(el, name) {
8
+ if (!el) return null;
9
+ if (!el.hasAttribute(name)) return null;
10
+ return el.getAttribute(name);
11
+ }
12
+ function getAttr(name) {
13
+ var html = document.documentElement;
14
+ var body = document.body;
15
+ var v = getAttrFrom(html, name);
16
+ if (v !== null) return v;
17
+ v = getAttrFrom(body, name);
18
+ if (v !== null) return v;
19
+ return null;
20
+ }
21
+ function hasAttrAnywhere(name) {
22
+ var html = document.documentElement;
23
+ var body = document.body;
24
+ if (html && html.hasAttribute(name)) return true;
25
+ if (body && body.hasAttribute(name)) return true;
26
+ return false;
27
+ }
28
+ function parseBool(v, def) {
29
+ if (v === null || v === void 0) return def;
30
+ var s = String(v).trim().toLowerCase();
31
+ if (s === "") return true;
32
+ if (s === "true" || s === "1" || s === "yes" || s === "y" || s === "on")
33
+ return true;
34
+ if (s === "false" || s === "0" || s === "no" || s === "n" || s === "off")
35
+ return false;
36
+ return def;
37
+ }
38
+ function parseNum(v, def) {
39
+ if (v === null || v === void 0) return def;
40
+ var n = Number(v);
41
+ return Number.isFinite(n) ? n : def;
42
+ }
43
+ function parseStr(v, def) {
44
+ if (v === null || v === void 0) return def;
45
+ var s = String(v);
46
+ return s.length ? s : def;
47
+ }
48
+ function clamp01(t) {
49
+ if (t < 0) return 0;
50
+ if (t > 1) return 1;
51
+ return t;
52
+ }
53
+ function easingByName(name) {
54
+ var n = String(name || "").trim();
55
+ if (!n) return null;
56
+ var easings = {
57
+ linear: function(t) {
58
+ return clamp01(t);
59
+ },
60
+ easeInQuad: function(t) {
61
+ t = clamp01(t);
62
+ return t * t;
63
+ },
64
+ easeOutQuad: function(t) {
65
+ t = clamp01(t);
66
+ return t * (2 - t);
67
+ },
68
+ easeInOutQuad: function(t) {
69
+ t = clamp01(t);
70
+ return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;
71
+ },
72
+ easeInCubic: function(t) {
73
+ t = clamp01(t);
74
+ return t * t * t;
75
+ },
76
+ easeOutCubic: function(t) {
77
+ t = clamp01(t);
78
+ return 1 - Math.pow(1 - t, 3);
79
+ },
80
+ easeInOutCubic: function(t) {
81
+ t = clamp01(t);
82
+ return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;
83
+ },
84
+ easeInOutSine: function(t) {
85
+ t = clamp01(t);
86
+ return -(Math.cos(Math.PI * t) - 1) / 2;
87
+ },
88
+ easeOutExpo: function(t) {
89
+ t = clamp01(t);
90
+ return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
91
+ }
92
+ };
93
+ return easings[n] || null;
94
+ }
95
+ function hasAnyConfigOn(el) {
96
+ if (!el) return false;
97
+ for (var i = 0; i < el.attributes.length; i++) {
98
+ var n = el.attributes[i].name;
99
+ if (n && n.indexOf("rt-smooth-scroll-") === 0) return true;
100
+ }
101
+ return false;
102
+ }
103
+ function ensureDefaultsIfNeeded() {
104
+ var body = document.body;
105
+ var html = document.documentElement;
106
+ if (!body) return;
107
+ var instances = document.querySelectorAll("[rt-smooth-scroll-instance]");
108
+ var hasInstances = instances && instances.length > 0;
109
+ if (!hasAttrAnywhere("rt-smooth-scroll") && !hasInstances)
110
+ body.setAttribute("rt-smooth-scroll", "");
111
+ var configured = hasAnyConfigOn(html) || hasAnyConfigOn(body);
112
+ if (configured || hasInstances) return;
113
+ var defaults = {
114
+ "rt-smooth-scroll-lerp": "0.25",
115
+ "rt-smooth-scroll-orientation": "vertical",
116
+ "rt-smooth-scroll-gesture-orientation": "vertical",
117
+ "rt-smooth-scroll-normalize-wheel": "true",
118
+ "rt-smooth-scroll-wheel-multiplier": "1",
119
+ "rt-smooth-scroll-easing": "easeOutCubic",
120
+ "rt-smooth-scroll-smooth-touch": "true",
121
+ "rt-smooth-scroll-sync-touch": "true",
122
+ "rt-smooth-scroll-sync-touch-lerp": "0",
123
+ "rt-smooth-scroll-touch-inertia-multiplier": "10",
124
+ "rt-smooth-scroll-touch-multiplier": "2"
125
+ };
126
+ for (var k in defaults) {
127
+ if (!html.hasAttribute(k) && !body.hasAttribute(k))
128
+ body.setAttribute(k, defaults[k]);
129
+ }
130
+ }
131
+ function readOptions(getLocal) {
132
+ var prefix = "rt-smooth-scroll-";
133
+ function localOrGlobal(name) {
134
+ var v = getLocal(name);
135
+ if (v !== null && v !== void 0) return v;
136
+ return getAttr(name);
137
+ }
138
+ var rawDuration = localOrGlobal(prefix + "duration");
139
+ var rawLerp = localOrGlobal(prefix + "lerp");
140
+ var hasDuration = rawDuration !== null && rawDuration !== void 0 && String(rawDuration).trim() !== "";
141
+ var hasLerp = rawLerp !== null && rawLerp !== void 0 && String(rawLerp).trim() !== "";
142
+ var duration = parseNum(rawDuration, 1.15);
143
+ var lerp = parseNum(rawLerp, 0.25);
144
+ if (hasDuration && !hasLerp) {
145
+ lerp = 0;
146
+ }
147
+ var orientation = parseStr(
148
+ localOrGlobal(prefix + "orientation"),
149
+ "vertical"
150
+ );
151
+ var gestureOrientation = parseStr(
152
+ localOrGlobal(prefix + "gesture-orientation"),
153
+ "vertical"
154
+ );
155
+ var normalizeWheel = parseBool(
156
+ localOrGlobal(prefix + "normalize-wheel"),
157
+ true
158
+ );
159
+ var wheelMultiplier = parseNum(
160
+ localOrGlobal(prefix + "wheel-multiplier"),
161
+ 1
162
+ );
163
+ var smoothTouch = parseBool(localOrGlobal(prefix + "smooth-touch"), true);
164
+ var syncTouch = parseBool(localOrGlobal(prefix + "sync-touch"), true);
165
+ var syncTouchLerp = parseNum(localOrGlobal(prefix + "sync-touch-lerp"), 0);
166
+ var touchInertiaMultiplier = parseNum(
167
+ localOrGlobal(prefix + "touch-inertia-multiplier"),
168
+ 10
169
+ );
170
+ var touchMultiplier = parseNum(
171
+ localOrGlobal(prefix + "touch-multiplier"),
172
+ 2
173
+ );
174
+ var infinite = parseBool(localOrGlobal(prefix + "infinite"), false);
175
+ var easingName = parseStr(localOrGlobal(prefix + "easing"), "easeOutCubic");
176
+ var easingFn = easingByName(easingName);
177
+ var opts = {
178
+ lerp,
179
+ orientation,
180
+ gestureOrientation,
181
+ normalizeWheel,
182
+ wheelMultiplier,
183
+ smoothTouch,
184
+ syncTouch,
185
+ syncTouchLerp,
186
+ touchInertiaMultiplier,
187
+ touchMultiplier,
188
+ infinite
189
+ };
190
+ if (lerp === 0) {
191
+ opts.duration = duration;
192
+ }
193
+ if (easingFn) opts.easing = easingFn;
194
+ var extra = localOrGlobal(prefix + "options-json");
195
+ if (extra) {
196
+ try {
197
+ var parsed = JSON.parse(extra);
198
+ if (parsed && typeof parsed === "object") {
199
+ for (var k in parsed) opts[k] = parsed[k];
200
+ }
201
+ } catch (e) {
202
+ }
203
+ }
204
+ return opts;
205
+ }
206
+ function loadScriptOnce(src) {
207
+ return new Promise(function(resolve, reject) {
208
+ if (typeof window.Lenis !== "undefined") return resolve();
209
+ var existing = document.querySelector('script[data-rt-lenis="true"]');
210
+ if (existing) {
211
+ existing.addEventListener("load", function() {
212
+ resolve();
213
+ });
214
+ existing.addEventListener("error", function(e) {
215
+ reject(e);
216
+ });
217
+ return;
218
+ }
219
+ var s = document.createElement("script");
220
+ s.src = src;
221
+ s.async = true;
222
+ s.dataset.rtLenis = "true";
223
+ s.onload = function() {
224
+ resolve();
225
+ };
226
+ s.onerror = function(e) {
227
+ reject(e);
228
+ };
229
+ document.head.appendChild(s);
230
+ });
231
+ }
232
+ function init() {
233
+ ensureDefaultsIfNeeded();
234
+ var enabledRoot = hasAttrAnywhere("rt-smooth-scroll");
235
+ var instanceEls = document.querySelectorAll("[rt-smooth-scroll-instance]");
236
+ var shouldRun = enabledRoot || instanceEls && instanceEls.length > 0;
237
+ if (!shouldRun) return;
238
+ var lenisSrc = parseStr(
239
+ getAttr("rt-smooth-scroll-lenis-src"),
240
+ "https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"
241
+ );
242
+ var observeResize = parseBool(
243
+ getAttr("rt-smooth-scroll-observe-resize"),
244
+ true
245
+ );
246
+ var observeMutations = parseBool(
247
+ getAttr("rt-smooth-scroll-observe-mutations"),
248
+ true
249
+ );
250
+ var resizeDebounceMs = parseNum(
251
+ getAttr("rt-smooth-scroll-resize-debounce-ms"),
252
+ 0
253
+ );
254
+ var state = {
255
+ destroyed: false,
256
+ rafId: 0,
257
+ instances: {},
258
+ order: [],
259
+ observers: {},
260
+ resizeTimers: {}
261
+ };
262
+ function scheduleResize(id) {
263
+ var inst = state.instances[id];
264
+ if (!inst || state.destroyed) return;
265
+ if (resizeDebounceMs > 0) {
266
+ clearTimeout(state.resizeTimers[id]);
267
+ state.resizeTimers[id] = setTimeout(function() {
268
+ var i2 = state.instances[id];
269
+ if (!i2 || state.destroyed) return;
270
+ i2.resize();
271
+ }, resizeDebounceMs);
272
+ return;
273
+ }
274
+ inst.resize();
275
+ }
276
+ function startRaf() {
277
+ function raf(time) {
278
+ if (state.destroyed) return;
279
+ for (var i = 0; i < state.order.length; i++) {
280
+ var id = state.order[i];
281
+ var inst = state.instances[id];
282
+ if (inst) inst.raf(time);
283
+ }
284
+ state.rafId = requestAnimationFrame(raf);
285
+ }
286
+ state.rafId = requestAnimationFrame(raf);
287
+ }
288
+ function addObservers(id, wrapperEl) {
289
+ if (!wrapperEl || wrapperEl === window) return;
290
+ var ro = null;
291
+ var mo = null;
292
+ if (observeResize && typeof ResizeObserver !== "undefined") {
293
+ ro = new ResizeObserver(function() {
294
+ scheduleResize(id);
295
+ });
296
+ ro.observe(wrapperEl);
297
+ }
298
+ if (observeMutations && typeof MutationObserver !== "undefined") {
299
+ mo = new MutationObserver(function() {
300
+ scheduleResize(id);
301
+ });
302
+ mo.observe(wrapperEl, { childList: true, subtree: true });
303
+ }
304
+ state.observers[id] = { ro, mo };
305
+ }
306
+ function removeObservers(id) {
307
+ var obs = state.observers[id];
308
+ if (!obs) return;
309
+ if (obs.ro) obs.ro.disconnect();
310
+ if (obs.mo) obs.mo.disconnect();
311
+ delete state.observers[id];
312
+ }
313
+ function sanitizeOptionsForLog(opts) {
314
+ var out = {};
315
+ for (var k in opts) {
316
+ if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;
317
+ var v = opts[k];
318
+ if (typeof v === "function") {
319
+ out[k] = "[Function]";
320
+ } else {
321
+ out[k] = v;
322
+ }
323
+ }
324
+ return out;
325
+ }
326
+ function createInstance(id, wrapper, content, options) {
327
+ var opts = options || {};
328
+ if (wrapper) opts.wrapper = wrapper;
329
+ if (content) opts.content = content;
330
+ var inst = new window.Lenis(opts);
331
+ state.instances[id] = inst;
332
+ state.order.push(id);
333
+ if (wrapper && wrapper !== window) addObservers(id, wrapper);
334
+ if (id === "root") window.lenis = inst;
335
+ try {
336
+ console.log("[rt-smooth-scroll] instance:", id, {
337
+ wrapper: wrapper === window ? "window" : wrapper,
338
+ content: content || null,
339
+ options: sanitizeOptionsForLog(opts)
340
+ });
341
+ } catch (e) {
342
+ }
343
+ return inst;
344
+ }
345
+ function getContentForWrapper(wrapperEl) {
346
+ var selector = getAttrFrom(wrapperEl, "rt-smooth-scroll-content");
347
+ if (selector) {
348
+ var found = wrapperEl.querySelector(selector);
349
+ if (found) return found;
350
+ }
351
+ return wrapperEl.firstElementChild || wrapperEl;
352
+ }
353
+ function makeApi() {
354
+ function forEachTarget(id, fn) {
355
+ if (typeof id === "string" && id.length) {
356
+ var one = state.instances[id];
357
+ if (one) fn(id, one);
358
+ return;
359
+ }
360
+ for (var i = 0; i < state.order.length; i++) {
361
+ var k = state.order[i];
362
+ var inst = state.instances[k];
363
+ if (inst) fn(k, inst);
364
+ }
365
+ }
366
+ return {
367
+ __initialized: true,
368
+ ids: function() {
369
+ return state.order.slice();
370
+ },
371
+ get: function(id) {
372
+ return state.instances[id] || null;
373
+ },
374
+ start: function(id) {
375
+ forEachTarget(id, function(_, inst) {
376
+ inst.start();
377
+ });
378
+ },
379
+ stop: function(id) {
380
+ forEachTarget(id, function(_, inst) {
381
+ inst.stop();
382
+ });
383
+ },
384
+ toggle: function(id, force) {
385
+ forEachTarget(id, function(_, inst) {
386
+ if (typeof force === "boolean") {
387
+ if (force) inst.stop();
388
+ else inst.start();
389
+ return;
390
+ }
391
+ if (inst.isStopped) inst.start();
392
+ else inst.stop();
393
+ });
394
+ },
395
+ resize: function(id) {
396
+ forEachTarget(id, function(k) {
397
+ scheduleResize(k);
398
+ });
399
+ },
400
+ destroy: function(id) {
401
+ if (state.destroyed) return;
402
+ function destroyOne(k) {
403
+ clearTimeout(state.resizeTimers[k]);
404
+ removeObservers(k);
405
+ var inst = state.instances[k];
406
+ if (inst) {
407
+ try {
408
+ inst.destroy();
409
+ } catch (e) {
410
+ }
411
+ delete state.instances[k];
412
+ }
413
+ var idx = state.order.indexOf(k);
414
+ if (idx >= 0) state.order.splice(idx, 1);
415
+ if (k === "root") {
416
+ try {
417
+ delete window.lenis;
418
+ } catch (e) {
419
+ window.lenis = void 0;
420
+ }
421
+ }
422
+ }
423
+ if (typeof id === "string" && id.length) {
424
+ destroyOne(id);
425
+ return;
426
+ }
427
+ while (state.order.length) destroyOne(state.order[0]);
428
+ state.destroyed = true;
429
+ if (state.rafId) cancelAnimationFrame(state.rafId);
430
+ }
431
+ };
432
+ }
433
+ function installLegacyAliases(api) {
434
+ window.disableScroll = function() {
435
+ api.stop();
436
+ if (document.body) document.body.classList.add("no-scroll");
437
+ };
438
+ window.enableScroll = function() {
439
+ api.start();
440
+ if (document.body) document.body.classList.remove("no-scroll");
441
+ };
442
+ }
443
+ loadScriptOnce(lenisSrc).then(function() {
444
+ if (state.destroyed) return;
445
+ if (enabledRoot && !state.instances.root) {
446
+ var optsRoot = readOptions(function() {
447
+ return null;
448
+ });
449
+ createInstance("root", window, document.documentElement, optsRoot);
450
+ }
451
+ var els = document.querySelectorAll("[rt-smooth-scroll-instance]");
452
+ var autoCount = 0;
453
+ for (var i = 0; i < els.length; i++) {
454
+ var el = els[i];
455
+ var id = getAttrFrom(el, "rt-smooth-scroll-id");
456
+ if (!id) {
457
+ autoCount++;
458
+ id = "instance-" + autoCount;
459
+ }
460
+ if (state.instances[id]) continue;
461
+ var content = getContentForWrapper(el);
462
+ var opts = readOptions(function(name) {
463
+ return getAttrFrom(el, name);
464
+ });
465
+ createInstance(id, el, content, opts);
466
+ }
467
+ startRaf();
468
+ var api = makeApi();
469
+ window[RT_NS] = api;
470
+ installLegacyAliases(api);
471
+ window.addEventListener("resize", function() {
472
+ api.resize();
473
+ });
474
+ }).catch(function() {
475
+ });
476
+ }
477
+ if (document.readyState === "loading") {
478
+ document.addEventListener("DOMContentLoaded", init);
479
+ } else {
480
+ init();
481
+ }
482
+ window[RT_NS] = window[RT_NS] || {
483
+ __initialized: true,
484
+ ids: function() {
485
+ return [];
486
+ },
487
+ get: function() {
488
+ return null;
489
+ }
490
+ };
491
+ })();
492
+ })();
493
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.js"],
4
+ "sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var n = Number(v);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function hasAnyConfigOn(el) {\n if (!el) return false;\n for (var i = 0; i < el.attributes.length; i++) {\n var n = el.attributes[i].name;\n if (n && n.indexOf(\"rt-smooth-scroll-\") === 0) return true;\n }\n return false;\n }\n\n function ensureDefaultsIfNeeded() {\n var body = document.body;\n var html = document.documentElement;\n if (!body) return;\n\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances)\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n\n var configured = hasAnyConfigOn(html) || hasAnyConfigOn(body);\n if (configured || hasInstances) return;\n\n var defaults = {\n \"rt-smooth-scroll-lerp\": \"0.25\",\n \"rt-smooth-scroll-orientation\": \"vertical\",\n \"rt-smooth-scroll-gesture-orientation\": \"vertical\",\n \"rt-smooth-scroll-normalize-wheel\": \"true\",\n \"rt-smooth-scroll-wheel-multiplier\": \"1\",\n \"rt-smooth-scroll-easing\": \"easeOutCubic\",\n \"rt-smooth-scroll-smooth-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch-lerp\": \"0\",\n \"rt-smooth-scroll-touch-inertia-multiplier\": \"10\",\n \"rt-smooth-scroll-touch-multiplier\": \"2\",\n };\n\n for (var k in defaults) {\n if (!html.hasAttribute(k) && !body.hasAttribute(k))\n body.setAttribute(k, defaults[k]);\n }\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (v !== null && v !== undefined) return v;\n return getAttr(name);\n }\n\n var rawDuration = localOrGlobal(prefix + \"duration\");\n var rawLerp = localOrGlobal(prefix + \"lerp\");\n\n var hasDuration =\n rawDuration !== null &&\n rawDuration !== undefined &&\n String(rawDuration).trim() !== \"\";\n var hasLerp =\n rawLerp !== null &&\n rawLerp !== undefined &&\n String(rawLerp).trim() !== \"\";\n\n var duration = parseNum(rawDuration, 1.15);\n var lerp = parseNum(rawLerp, 0.25);\n\n if (hasDuration && !hasLerp) {\n lerp = 0;\n }\n\n var orientation = parseStr(\n localOrGlobal(prefix + \"orientation\"),\n \"vertical\"\n );\n var gestureOrientation = parseStr(\n localOrGlobal(prefix + \"gesture-orientation\"),\n \"vertical\"\n );\n var normalizeWheel = parseBool(\n localOrGlobal(prefix + \"normalize-wheel\"),\n true\n );\n var wheelMultiplier = parseNum(\n localOrGlobal(prefix + \"wheel-multiplier\"),\n 1\n );\n var smoothTouch = parseBool(localOrGlobal(prefix + \"smooth-touch\"), true);\n var syncTouch = parseBool(localOrGlobal(prefix + \"sync-touch\"), true);\n var syncTouchLerp = parseNum(localOrGlobal(prefix + \"sync-touch-lerp\"), 0);\n var touchInertiaMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-inertia-multiplier\"),\n 10\n );\n var touchMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-multiplier\"),\n 2\n );\n var infinite = parseBool(localOrGlobal(prefix + \"infinite\"), false);\n\n var easingName = parseStr(localOrGlobal(prefix + \"easing\"), \"easeOutCubic\");\n var easingFn = easingByName(easingName);\n\n var opts = {\n lerp: lerp,\n orientation: orientation,\n gestureOrientation: gestureOrientation,\n normalizeWheel: normalizeWheel,\n wheelMultiplier: wheelMultiplier,\n smoothTouch: smoothTouch,\n syncTouch: syncTouch,\n syncTouchLerp: syncTouchLerp,\n touchInertiaMultiplier: touchInertiaMultiplier,\n touchMultiplier: touchMultiplier,\n infinite: infinite,\n };\n\n if (lerp === 0) {\n opts.duration = duration;\n }\n\n if (easingFn) opts.easing = easingFn;\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function init() {\n ensureDefaultsIfNeeded();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var shouldRun = enabledRoot || (instanceEls && instanceEls.length > 0);\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\"\n );\n\n var observeResize = parseBool(\n getAttr(\"rt-smooth-scroll-observe-resize\"),\n true\n );\n var observeMutations = parseBool(\n getAttr(\"rt-smooth-scroll-observe-mutations\"),\n true\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0\n );\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n observers: {},\n resizeTimers: {},\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function addObservers(id, wrapperEl) {\n if (!wrapperEl || wrapperEl === window) return;\n\n var ro = null;\n var mo = null;\n\n if (observeResize && typeof ResizeObserver !== \"undefined\") {\n ro = new ResizeObserver(function () {\n scheduleResize(id);\n });\n ro.observe(wrapperEl);\n }\n\n if (observeMutations && typeof MutationObserver !== \"undefined\") {\n mo = new MutationObserver(function () {\n scheduleResize(id);\n });\n mo.observe(wrapperEl, { childList: true, subtree: true });\n }\n\n state.observers[id] = { ro: ro, mo: mo };\n }\n\n function removeObservers(id) {\n var obs = state.observers[id];\n if (!obs) return;\n if (obs.ro) obs.ro.disconnect();\n if (obs.mo) obs.mo.disconnect();\n delete state.observers[id];\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") {\n out[k] = \"[Function]\";\n } else {\n out[k] = v;\n }\n }\n return out;\n }\n\n function createInstance(id, wrapper, content, options) {\n var opts = options || {};\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (wrapper && wrapper !== window) addObservers(id, wrapper);\n if (id === \"root\") window.lenis = inst;\n\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: wrapper === window ? \"window\" : wrapper,\n content: content || null,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n\n return inst;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = wrapperEl.querySelector(selector);\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n destroy: function (id) {\n if (state.destroyed) return;\n\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n removeObservers(k);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n createInstance(\"root\", window, document.documentElement, optsRoot);\n }\n\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var autoCount = 0;\n\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n }\n if (state.instances[id]) continue;\n\n var content = getContentForWrapper(el);\n\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n createInstance(id, el, content, opts);\n }\n\n startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,3 @@
1
+ /*! @rethink-js/rt-smooth-scroll v1.0.0 | MIT */
2
+ (()=>{(function(){var p="rtSmoothScroll";if(window[p]&&window[p].__initialized)return;function O(o,n){return!o||!o.hasAttribute(n)?null:o.getAttribute(n)}function z(o){var n=document.documentElement,t=document.body,e=O(n,o);return e!==null||(e=O(t,o),e!==null)?e:null}function q(o){var n=document.documentElement,t=document.body;return!!(n&&n.hasAttribute(o)||t&&t.hasAttribute(o))}function g(o,n){if(o==null)return n;var t=String(o).trim().toLowerCase();return t===""||t==="true"||t==="1"||t==="yes"||t==="y"||t==="on"?!0:t==="false"||t==="0"||t==="no"||t==="n"||t==="off"?!1:n}function y(o,n){if(o==null)return n;var t=Number(o);return Number.isFinite(t)?t:n}function A(o,n){if(o==null)return n;var t=String(o);return t.length?t:n}function m(o){return o<0?0:o>1?1:o}function j(o){var n=String(o||"").trim();if(!n)return null;var t={linear:function(e){return m(e)},easeInQuad:function(e){return e=m(e),e*e},easeOutQuad:function(e){return e=m(e),e*(2-e)},easeInOutQuad:function(e){return e=m(e),e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},easeInCubic:function(e){return e=m(e),e*e*e},easeOutCubic:function(e){return e=m(e),1-Math.pow(1-e,3)},easeInOutCubic:function(e){return e=m(e),e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2},easeInOutSine:function(e){return e=m(e),-(Math.cos(Math.PI*e)-1)/2},easeOutExpo:function(e){return e=m(e),e===1?1:1-Math.pow(2,-10*e)}};return t[n]||null}function x(o){if(!o)return!1;for(var n=0;n<o.attributes.length;n++){var t=o.attributes[n].name;if(t&&t.indexOf("rt-smooth-scroll-")===0)return!0}return!1}function P(){var o=document.body,n=document.documentElement;if(o){var t=document.querySelectorAll("[rt-smooth-scroll-instance]"),e=t&&t.length>0;!q("rt-smooth-scroll")&&!e&&o.setAttribute("rt-smooth-scroll","");var f=x(n)||x(o);if(!(f||e)){var h={"rt-smooth-scroll-lerp":"0.25","rt-smooth-scroll-orientation":"vertical","rt-smooth-scroll-gesture-orientation":"vertical","rt-smooth-scroll-normalize-wheel":"true","rt-smooth-scroll-wheel-multiplier":"1","rt-smooth-scroll-easing":"easeOutCubic","rt-smooth-scroll-smooth-touch":"true","rt-smooth-scroll-sync-touch":"true","rt-smooth-scroll-sync-touch-lerp":"0","rt-smooth-scroll-touch-inertia-multiplier":"10","rt-smooth-scroll-touch-multiplier":"2"};for(var v in h)!n.hasAttribute(v)&&!o.hasAttribute(v)&&o.setAttribute(v,h[v])}}}function E(o){var n="rt-smooth-scroll-";function t(w){var S=o(w);return S!=null?S:z(w)}var e=t(n+"duration"),f=t(n+"lerp"),h=e!=null&&String(e).trim()!=="",v=f!=null&&String(f).trim()!=="",s=y(e,1.15),b=y(f,.25);h&&!v&&(b=0);var I=A(t(n+"orientation"),"vertical"),T=A(t(n+"gesture-orientation"),"vertical"),C=g(t(n+"normalize-wheel"),!0),_=y(t(n+"wheel-multiplier"),1),L=g(t(n+"smooth-touch"),!0),F=g(t(n+"sync-touch"),!0),N=y(t(n+"sync-touch-lerp"),0),R=y(t(n+"touch-inertia-multiplier"),10),i=y(t(n+"touch-multiplier"),2),r=g(t(n+"infinite"),!1),u=A(t(n+"easing"),"easeOutCubic"),a=j(u),c={lerp:b,orientation:I,gestureOrientation:T,normalizeWheel:C,wheelMultiplier:_,smoothTouch:L,syncTouch:F,syncTouchLerp:N,touchInertiaMultiplier:R,touchMultiplier:i,infinite:r};b===0&&(c.duration=s),a&&(c.easing=a);var l=t(n+"options-json");if(l)try{var d=JSON.parse(l);if(d&&typeof d=="object")for(var M in d)c[M]=d[M]}catch(w){}return c}function Q(o){return new Promise(function(n,t){if(typeof window.Lenis!="undefined")return n();var e=document.querySelector('script[data-rt-lenis="true"]');if(e){e.addEventListener("load",function(){n()}),e.addEventListener("error",function(h){t(h)});return}var f=document.createElement("script");f.src=o,f.async=!0,f.dataset.rtLenis="true",f.onload=function(){n()},f.onerror=function(h){t(h)},document.head.appendChild(f)})}function D(){P();var o=q("rt-smooth-scroll"),n=document.querySelectorAll("[rt-smooth-scroll-instance]"),t=o||n&&n.length>0;if(!t)return;var e=A(z("rt-smooth-scroll-lenis-src"),"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"),f=g(z("rt-smooth-scroll-observe-resize"),!0),h=g(z("rt-smooth-scroll-observe-mutations"),!0),v=y(z("rt-smooth-scroll-resize-debounce-ms"),0),s={destroyed:!1,rafId:0,instances:{},order:[],observers:{},resizeTimers:{}};function b(i){var r=s.instances[i];if(!(!r||s.destroyed)){if(v>0){clearTimeout(s.resizeTimers[i]),s.resizeTimers[i]=setTimeout(function(){var u=s.instances[i];!u||s.destroyed||u.resize()},v);return}r.resize()}}function I(){function i(r){if(!s.destroyed){for(var u=0;u<s.order.length;u++){var a=s.order[u],c=s.instances[a];c&&c.raf(r)}s.rafId=requestAnimationFrame(i)}}s.rafId=requestAnimationFrame(i)}function T(i,r){if(!(!r||r===window)){var u=null,a=null;f&&typeof ResizeObserver!="undefined"&&(u=new ResizeObserver(function(){b(i)}),u.observe(r)),h&&typeof MutationObserver!="undefined"&&(a=new MutationObserver(function(){b(i)}),a.observe(r,{childList:!0,subtree:!0})),s.observers[i]={ro:u,mo:a}}}function C(i){var r=s.observers[i];r&&(r.ro&&r.ro.disconnect(),r.mo&&r.mo.disconnect(),delete s.observers[i])}function _(i){var r={};for(var u in i)if(Object.prototype.hasOwnProperty.call(i,u)){var a=i[u];typeof a=="function"?r[u]="[Function]":r[u]=a}return r}function L(i,r,u,a){var c=a||{};r&&(c.wrapper=r),u&&(c.content=u);var l=new window.Lenis(c);s.instances[i]=l,s.order.push(i),r&&r!==window&&T(i,r),i==="root"&&(window.lenis=l);try{console.log("[rt-smooth-scroll] instance:",i,{wrapper:r===window?"window":r,content:u||null,options:_(c)})}catch(d){}return l}function F(i){var r=O(i,"rt-smooth-scroll-content");if(r){var u=i.querySelector(r);if(u)return u}return i.firstElementChild||i}function N(){function i(r,u){if(typeof r=="string"&&r.length){var a=s.instances[r];a&&u(r,a);return}for(var c=0;c<s.order.length;c++){var l=s.order[c],d=s.instances[l];d&&u(l,d)}}return{__initialized:!0,ids:function(){return s.order.slice()},get:function(r){return s.instances[r]||null},start:function(r){i(r,function(u,a){a.start()})},stop:function(r){i(r,function(u,a){a.stop()})},toggle:function(r,u){i(r,function(a,c){if(typeof u=="boolean"){u?c.stop():c.start();return}c.isStopped?c.start():c.stop()})},resize:function(r){i(r,function(u){b(u)})},destroy:function(r){if(s.destroyed)return;function u(a){clearTimeout(s.resizeTimers[a]),C(a);var c=s.instances[a];if(c){try{c.destroy()}catch(d){}delete s.instances[a]}var l=s.order.indexOf(a);if(l>=0&&s.order.splice(l,1),a==="root")try{delete window.lenis}catch(d){window.lenis=void 0}}if(typeof r=="string"&&r.length){u(r);return}for(;s.order.length;)u(s.order[0]);s.destroyed=!0,s.rafId&&cancelAnimationFrame(s.rafId)}}}function R(i){window.disableScroll=function(){i.stop(),document.body&&document.body.classList.add("no-scroll")},window.enableScroll=function(){i.start(),document.body&&document.body.classList.remove("no-scroll")}}Q(e).then(function(){if(!s.destroyed){if(o&&!s.instances.root){var i=E(function(){return null});L("root",window,document.documentElement,i)}for(var r=document.querySelectorAll("[rt-smooth-scroll-instance]"),u=0,a=0;a<r.length;a++){var c=r[a],l=O(c,"rt-smooth-scroll-id");if(l||(u++,l="instance-"+u),!s.instances[l]){var d=F(c),M=E(function(S){return O(c,S)});L(l,c,d,M)}}I();var w=N();window[p]=w,R(w),window.addEventListener("resize",function(){w.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",D):D(),window[p]=window[p]||{__initialized:!0,ids:function(){return[]},get:function(){return null}}})();})();
3
+ //# sourceMappingURL=index.min.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.js"],
4
+ "sourcesContent": ["(function () {\n var RT_NS = \"rtSmoothScroll\";\n if (window[RT_NS] && window[RT_NS].__initialized) return;\n\n function getAttrFrom(el, name) {\n if (!el) return null;\n if (!el.hasAttribute(name)) return null;\n return el.getAttribute(name);\n }\n\n function getAttr(name) {\n var html = document.documentElement;\n var body = document.body;\n var v = getAttrFrom(html, name);\n if (v !== null) return v;\n v = getAttrFrom(body, name);\n if (v !== null) return v;\n return null;\n }\n\n function hasAttrAnywhere(name) {\n var html = document.documentElement;\n var body = document.body;\n if (html && html.hasAttribute(name)) return true;\n if (body && body.hasAttribute(name)) return true;\n return false;\n }\n\n function parseBool(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v).trim().toLowerCase();\n if (s === \"\") return true;\n if (s === \"true\" || s === \"1\" || s === \"yes\" || s === \"y\" || s === \"on\")\n return true;\n if (s === \"false\" || s === \"0\" || s === \"no\" || s === \"n\" || s === \"off\")\n return false;\n return def;\n }\n\n function parseNum(v, def) {\n if (v === null || v === undefined) return def;\n var n = Number(v);\n return Number.isFinite(n) ? n : def;\n }\n\n function parseStr(v, def) {\n if (v === null || v === undefined) return def;\n var s = String(v);\n return s.length ? s : def;\n }\n\n function clamp01(t) {\n if (t < 0) return 0;\n if (t > 1) return 1;\n return t;\n }\n\n function easingByName(name) {\n var n = String(name || \"\").trim();\n if (!n) return null;\n var easings = {\n linear: function (t) {\n return clamp01(t);\n },\n easeInQuad: function (t) {\n t = clamp01(t);\n return t * t;\n },\n easeOutQuad: function (t) {\n t = clamp01(t);\n return t * (2 - t);\n },\n easeInOutQuad: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 2 * t * t : 1 - Math.pow(-2 * t + 2, 2) / 2;\n },\n easeInCubic: function (t) {\n t = clamp01(t);\n return t * t * t;\n },\n easeOutCubic: function (t) {\n t = clamp01(t);\n return 1 - Math.pow(1 - t, 3);\n },\n easeInOutCubic: function (t) {\n t = clamp01(t);\n return t < 0.5 ? 4 * t * t * t : 1 - Math.pow(-2 * t + 2, 3) / 2;\n },\n easeInOutSine: function (t) {\n t = clamp01(t);\n return -(Math.cos(Math.PI * t) - 1) / 2;\n },\n easeOutExpo: function (t) {\n t = clamp01(t);\n return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n },\n };\n return easings[n] || null;\n }\n\n function hasAnyConfigOn(el) {\n if (!el) return false;\n for (var i = 0; i < el.attributes.length; i++) {\n var n = el.attributes[i].name;\n if (n && n.indexOf(\"rt-smooth-scroll-\") === 0) return true;\n }\n return false;\n }\n\n function ensureDefaultsIfNeeded() {\n var body = document.body;\n var html = document.documentElement;\n if (!body) return;\n\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\n\n if (!hasAttrAnywhere(\"rt-smooth-scroll\") && !hasInstances)\n body.setAttribute(\"rt-smooth-scroll\", \"\");\n\n var configured = hasAnyConfigOn(html) || hasAnyConfigOn(body);\n if (configured || hasInstances) return;\n\n var defaults = {\n \"rt-smooth-scroll-lerp\": \"0.25\",\n \"rt-smooth-scroll-orientation\": \"vertical\",\n \"rt-smooth-scroll-gesture-orientation\": \"vertical\",\n \"rt-smooth-scroll-normalize-wheel\": \"true\",\n \"rt-smooth-scroll-wheel-multiplier\": \"1\",\n \"rt-smooth-scroll-easing\": \"easeOutCubic\",\n \"rt-smooth-scroll-smooth-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch\": \"true\",\n \"rt-smooth-scroll-sync-touch-lerp\": \"0\",\n \"rt-smooth-scroll-touch-inertia-multiplier\": \"10\",\n \"rt-smooth-scroll-touch-multiplier\": \"2\",\n };\n\n for (var k in defaults) {\n if (!html.hasAttribute(k) && !body.hasAttribute(k))\n body.setAttribute(k, defaults[k]);\n }\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (v !== null && v !== undefined) return v;\n return getAttr(name);\n }\n\n var rawDuration = localOrGlobal(prefix + \"duration\");\n var rawLerp = localOrGlobal(prefix + \"lerp\");\n\n var hasDuration =\n rawDuration !== null &&\n rawDuration !== undefined &&\n String(rawDuration).trim() !== \"\";\n var hasLerp =\n rawLerp !== null &&\n rawLerp !== undefined &&\n String(rawLerp).trim() !== \"\";\n\n var duration = parseNum(rawDuration, 1.15);\n var lerp = parseNum(rawLerp, 0.25);\n\n if (hasDuration && !hasLerp) {\n lerp = 0;\n }\n\n var orientation = parseStr(\n localOrGlobal(prefix + \"orientation\"),\n \"vertical\"\n );\n var gestureOrientation = parseStr(\n localOrGlobal(prefix + \"gesture-orientation\"),\n \"vertical\"\n );\n var normalizeWheel = parseBool(\n localOrGlobal(prefix + \"normalize-wheel\"),\n true\n );\n var wheelMultiplier = parseNum(\n localOrGlobal(prefix + \"wheel-multiplier\"),\n 1\n );\n var smoothTouch = parseBool(localOrGlobal(prefix + \"smooth-touch\"), true);\n var syncTouch = parseBool(localOrGlobal(prefix + \"sync-touch\"), true);\n var syncTouchLerp = parseNum(localOrGlobal(prefix + \"sync-touch-lerp\"), 0);\n var touchInertiaMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-inertia-multiplier\"),\n 10\n );\n var touchMultiplier = parseNum(\n localOrGlobal(prefix + \"touch-multiplier\"),\n 2\n );\n var infinite = parseBool(localOrGlobal(prefix + \"infinite\"), false);\n\n var easingName = parseStr(localOrGlobal(prefix + \"easing\"), \"easeOutCubic\");\n var easingFn = easingByName(easingName);\n\n var opts = {\n lerp: lerp,\n orientation: orientation,\n gestureOrientation: gestureOrientation,\n normalizeWheel: normalizeWheel,\n wheelMultiplier: wheelMultiplier,\n smoothTouch: smoothTouch,\n syncTouch: syncTouch,\n syncTouchLerp: syncTouchLerp,\n touchInertiaMultiplier: touchInertiaMultiplier,\n touchMultiplier: touchMultiplier,\n infinite: infinite,\n };\n\n if (lerp === 0) {\n opts.duration = duration;\n }\n\n if (easingFn) opts.easing = easingFn;\n\n var extra = localOrGlobal(prefix + \"options-json\");\n if (extra) {\n try {\n var parsed = JSON.parse(extra);\n if (parsed && typeof parsed === \"object\") {\n for (var k in parsed) opts[k] = parsed[k];\n }\n } catch (e) {}\n }\n\n return opts;\n }\n\n function loadScriptOnce(src) {\n return new Promise(function (resolve, reject) {\n if (typeof window.Lenis !== \"undefined\") return resolve();\n var existing = document.querySelector('script[data-rt-lenis=\"true\"]');\n if (existing) {\n existing.addEventListener(\"load\", function () {\n resolve();\n });\n existing.addEventListener(\"error\", function (e) {\n reject(e);\n });\n return;\n }\n var s = document.createElement(\"script\");\n s.src = src;\n s.async = true;\n s.dataset.rtLenis = \"true\";\n s.onload = function () {\n resolve();\n };\n s.onerror = function (e) {\n reject(e);\n };\n document.head.appendChild(s);\n });\n }\n\n function init() {\n ensureDefaultsIfNeeded();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var shouldRun = enabledRoot || (instanceEls && instanceEls.length > 0);\n if (!shouldRun) return;\n\n var lenisSrc = parseStr(\n getAttr(\"rt-smooth-scroll-lenis-src\"),\n \"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js\"\n );\n\n var observeResize = parseBool(\n getAttr(\"rt-smooth-scroll-observe-resize\"),\n true\n );\n var observeMutations = parseBool(\n getAttr(\"rt-smooth-scroll-observe-mutations\"),\n true\n );\n var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0\n );\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\n observers: {},\n resizeTimers: {},\n };\n\n function scheduleResize(id) {\n var inst = state.instances[id];\n if (!inst || state.destroyed) return;\n if (resizeDebounceMs > 0) {\n clearTimeout(state.resizeTimers[id]);\n state.resizeTimers[id] = setTimeout(function () {\n var i2 = state.instances[id];\n if (!i2 || state.destroyed) return;\n i2.resize();\n }, resizeDebounceMs);\n return;\n }\n inst.resize();\n }\n\n function startRaf() {\n function raf(time) {\n if (state.destroyed) return;\n for (var i = 0; i < state.order.length; i++) {\n var id = state.order[i];\n var inst = state.instances[id];\n if (inst) inst.raf(time);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n state.rafId = requestAnimationFrame(raf);\n }\n\n function addObservers(id, wrapperEl) {\n if (!wrapperEl || wrapperEl === window) return;\n\n var ro = null;\n var mo = null;\n\n if (observeResize && typeof ResizeObserver !== \"undefined\") {\n ro = new ResizeObserver(function () {\n scheduleResize(id);\n });\n ro.observe(wrapperEl);\n }\n\n if (observeMutations && typeof MutationObserver !== \"undefined\") {\n mo = new MutationObserver(function () {\n scheduleResize(id);\n });\n mo.observe(wrapperEl, { childList: true, subtree: true });\n }\n\n state.observers[id] = { ro: ro, mo: mo };\n }\n\n function removeObservers(id) {\n var obs = state.observers[id];\n if (!obs) return;\n if (obs.ro) obs.ro.disconnect();\n if (obs.mo) obs.mo.disconnect();\n delete state.observers[id];\n }\n\n function sanitizeOptionsForLog(opts) {\n var out = {};\n for (var k in opts) {\n if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;\n var v = opts[k];\n if (typeof v === \"function\") {\n out[k] = \"[Function]\";\n } else {\n out[k] = v;\n }\n }\n return out;\n }\n\n function createInstance(id, wrapper, content, options) {\n var opts = options || {};\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (wrapper && wrapper !== window) addObservers(id, wrapper);\n if (id === \"root\") window.lenis = inst;\n\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: wrapper === window ? \"window\" : wrapper,\n content: content || null,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n\n return inst;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = wrapperEl.querySelector(selector);\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function makeApi() {\n function forEachTarget(id, fn) {\n if (typeof id === \"string\" && id.length) {\n var one = state.instances[id];\n if (one) fn(id, one);\n return;\n }\n for (var i = 0; i < state.order.length; i++) {\n var k = state.order[i];\n var inst = state.instances[k];\n if (inst) fn(k, inst);\n }\n }\n\n return {\n __initialized: true,\n ids: function () {\n return state.order.slice();\n },\n get: function (id) {\n return state.instances[id] || null;\n },\n start: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.start();\n });\n },\n stop: function (id) {\n forEachTarget(id, function (_, inst) {\n inst.stop();\n });\n },\n toggle: function (id, force) {\n forEachTarget(id, function (_, inst) {\n if (typeof force === \"boolean\") {\n if (force) inst.stop();\n else inst.start();\n return;\n }\n if (inst.isStopped) inst.start();\n else inst.stop();\n });\n },\n resize: function (id) {\n forEachTarget(id, function (k) {\n scheduleResize(k);\n });\n },\n destroy: function (id) {\n if (state.destroyed) return;\n\n function destroyOne(k) {\n clearTimeout(state.resizeTimers[k]);\n removeObservers(k);\n var inst = state.instances[k];\n if (inst) {\n try {\n inst.destroy();\n } catch (e) {}\n delete state.instances[k];\n }\n var idx = state.order.indexOf(k);\n if (idx >= 0) state.order.splice(idx, 1);\n if (k === \"root\") {\n try {\n delete window.lenis;\n } catch (e) {\n window.lenis = undefined;\n }\n }\n }\n\n if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n\n while (state.order.length) destroyOne(state.order[0]);\n state.destroyed = true;\n if (state.rafId) cancelAnimationFrame(state.rafId);\n },\n };\n }\n\n function installLegacyAliases(api) {\n window.disableScroll = function () {\n api.stop();\n if (document.body) document.body.classList.add(\"no-scroll\");\n };\n window.enableScroll = function () {\n api.start();\n if (document.body) document.body.classList.remove(\"no-scroll\");\n };\n }\n\n loadScriptOnce(lenisSrc)\n .then(function () {\n if (state.destroyed) return;\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n createInstance(\"root\", window, document.documentElement, optsRoot);\n }\n\n var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var autoCount = 0;\n\n for (var i = 0; i < els.length; i++) {\n var el = els[i];\n var id = getAttrFrom(el, \"rt-smooth-scroll-id\");\n if (!id) {\n autoCount++;\n id = \"instance-\" + autoCount;\n }\n if (state.instances[id]) continue;\n\n var content = getContentForWrapper(el);\n\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n createInstance(id, el, content, opts);\n }\n\n startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n window.addEventListener(\"resize\", function () {\n api.resize();\n });\n })\n .catch(function () {});\n }\n\n if (document.readyState === \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", init);\n } else {\n init();\n }\n\n window[RT_NS] = window[RT_NS] || {\n __initialized: true,\n ids: function () {\n return [];\n },\n get: function () {\n return null;\n },\n };\n})();\n"],
5
+ "mappings": "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",
6
+ "names": ["RT_NS", "getAttrFrom", "el", "name", "getAttr", "html", "body", "v", "hasAttrAnywhere", "parseBool", "def", "s", "parseNum", "n", "parseStr", "clamp01", "t", "easingByName", "easings", "hasAnyConfigOn", "i", "ensureDefaultsIfNeeded", "instances", "hasInstances", "configured", "defaults", "k", "readOptions", "getLocal", "prefix", "localOrGlobal", "rawDuration", "rawLerp", "hasDuration", "hasLerp", "duration", "lerp", "orientation", "gestureOrientation", "normalizeWheel", "wheelMultiplier", "smoothTouch", "syncTouch", "syncTouchLerp", "touchInertiaMultiplier", "touchMultiplier", "infinite", "easingName", "easingFn", "opts", "extra", "parsed", "e", "loadScriptOnce", "src", "resolve", "reject", "existing", "init", "enabledRoot", "instanceEls", "shouldRun", "lenisSrc", "observeResize", "observeMutations", "resizeDebounceMs", "state", "scheduleResize", "id", "inst", "i2", "startRaf", "raf", "time", "addObservers", "wrapperEl", "ro", "mo", "removeObservers", "obs", "sanitizeOptionsForLog", "out", "createInstance", "wrapper", "content", "options", "getContentForWrapper", "selector", "found", "makeApi", "forEachTarget", "fn", "one", "_", "force", "destroyOne", "idx", "installLegacyAliases", "api", "optsRoot", "els", "autoCount"]
7
+ }
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@rethink-js/rt-smooth-scroll",
3
+ "version": "1.0.0",
4
+ "description": "Smooth scrolling using Lenis (auto-load + attribute config + multi-instance)",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "git+https://github.com/Rethink-JS/rt-smooth-scroll.git"
9
+ },
10
+ "bugs": {
11
+ "url": "https://github.com/Rethink-JS/rt-smooth-scroll/issues"
12
+ },
13
+ "homepage": "https://github.com/Rethink-JS/rt-smooth-scroll#readme",
14
+ "main": "dist/index.js",
15
+ "unpkg": "dist/index.min.js",
16
+ "jsdelivr": "dist/index.min.js",
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "sideEffects": true,
21
+ "scripts": {
22
+ "build": "node scripts/build.mjs",
23
+ "prepublishOnly": "npm run build"
24
+ },
25
+ "devDependencies": {
26
+ "esbuild": "^0.27.2"
27
+ }
28
+ }