@rethink-js/rt-smooth-scroll 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -9,15 +9,15 @@
9
9
 
10
10
  `rt-smooth-scroll` is a lightweight JavaScript library that seamlessly integrates the **Lenis smooth scroll engine** into your sites with:
11
11
 
12
- - **Automatic Lenis loading** (no extra installs/styles needed)
13
- - **Zero-config defaults** that work out of the box
12
+ - **Automatic Lenis loading** (no extra installs needed)
13
+ - **Zero-config defaults** (Lenis defaults, unless you override via attributes)
14
14
  - Support for **multiple smooth scroll instances**
15
15
  - A clean global API under `window.rtSmoothScroll`
16
- - Automatic resize + mutation observation for reliable reflow handling
16
+ - Optional resize + mutation observation (useful for wrapper instances)
17
17
  - Per-instance configuration via HTML attributes
18
18
  - Console logs showing each instance’s final resolved config
19
19
 
20
- **Lenis GitHub:** https://github.com/studio-freight/lenis
20
+ **Lenis (GitHub):** https://github.com/darkroomengineering/lenis
21
21
 
22
22
  ---
23
23
 
@@ -59,8 +59,7 @@ Then bundle or load `dist/index.min.js` as appropriate for your build setup.
59
59
 
60
60
  Add the script to your page. With no configuration provided, `rt-smooth-scroll` will:
61
61
 
62
- - Enable itself automatically
63
- - Apply recommended default settings to `<body>`
62
+ - Activate itself automatically (if you didn’t explicitly opt out)
64
63
  - Load Lenis from CDN
65
64
  - Create a root smooth scroll instance
66
65
  - Expose the global API
@@ -71,6 +70,8 @@ Example:
71
70
  <script src="https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js"></script>
72
71
  ```
73
72
 
73
+ > Note: If you do not set any `rt-smooth-scroll-*` config attributes, the root instance uses **Lenis defaults**.
74
+
74
75
  ---
75
76
 
76
77
  ## 3. Activation Rules
@@ -80,7 +81,7 @@ The library is activated when:
80
81
  - The attribute `rt-smooth-scroll` exists on `<html>` or `<body>` **OR**
81
82
  - You place one or more elements with `rt-smooth-scroll-instance`
82
83
 
83
- If neither is present and no instance elements are found, it **auto-enables** itself on `<body>` with defaults.
84
+ If neither is present and no instance elements are found, it **auto-enables** itself on `<body>` by adding `rt-smooth-scroll` (so you get a working root instance by default).
84
85
 
85
86
  ---
86
87
 
@@ -107,22 +108,29 @@ Place on `<html>` or `<body>` to configure defaults:
107
108
  ></body>
108
109
  ```
109
110
 
111
+ Important Lenis behavior:
112
+
113
+ - `duration` and `easing` are **useless if `lerp` is defined** (this is how Lenis works).
114
+
110
115
  **Core attributes:**
111
116
 
112
- | Attribute | Description |
113
- | -------------------------------------- | --------------------------- |
114
- | `rt-smooth-scroll-duration` | Lenis `duration` value |
115
- | `rt-smooth-scroll-lerp` | Lenis `lerp` value |
116
- | `rt-smooth-scroll-orientation` | Scroll orientation |
117
- | `rt-smooth-scroll-gesture-orientation` | Gesture orientation |
118
- | `rt-smooth-scroll-normalize-wheel` | Normalize wheel input |
119
- | `rt-smooth-scroll-wheel-multiplier` | Multiplies wheel delta |
120
- | `rt-smooth-scroll-sync-touch` | Sync touch behavior |
121
- | `rt-smooth-scroll-touch-multiplier` | Multiplies touch delta |
122
- | `rt-smooth-scroll-infinite` | Enable infinite scroll mode |
123
- | `rt-smooth-scroll-easing` | Named easing function |
124
-
125
- **Easing options include:**
117
+ | Attribute | Description |
118
+ | ------------------------------------------- | ------------------------------------------------------------ |
119
+ | `rt-smooth-scroll-duration` | Lenis `duration` (only applies when `lerp` is not used) |
120
+ | `rt-smooth-scroll-lerp` | Lenis `lerp` (0 → 1) |
121
+ | `rt-smooth-scroll-orientation` | Lenis `orientation` |
122
+ | `rt-smooth-scroll-gesture-orientation` | Lenis `gestureOrientation` |
123
+ | `rt-smooth-scroll-normalize-wheel` | Lenis `normalizeWheel` |
124
+ | `rt-smooth-scroll-wheel-multiplier` | Lenis `wheelMultiplier` |
125
+ | `rt-smooth-scroll-smooth-touch` | Lenis `smoothTouch` |
126
+ | `rt-smooth-scroll-sync-touch` | Lenis `syncTouch` |
127
+ | `rt-smooth-scroll-sync-touch-lerp` | Lenis `syncTouchLerp` |
128
+ | `rt-smooth-scroll-touch-inertia-multiplier` | Lenis `touchInertiaMultiplier` |
129
+ | `rt-smooth-scroll-touch-multiplier` | Lenis `touchMultiplier` |
130
+ | `rt-smooth-scroll-infinite` | Lenis `infinite` |
131
+ | `rt-smooth-scroll-easing` | Named easing function (only applies when `lerp` is not used) |
132
+
133
+ **Easing options included:**
126
134
 
127
135
  - `linear`
128
136
  - `easeInQuad`
@@ -147,11 +155,11 @@ Add attributes to any scroll container:
147
155
  ></div>
148
156
  ```
149
157
 
150
- | Attribute | Description |
151
- | --------------------------- | ---------------------------- |
152
- | `rt-smooth-scroll-instance` | Marks scroll container |
153
- | `rt-smooth-scroll-id` | Optional instance identifier |
154
- | `rt-smooth-scroll-content` | Selector inside container |
158
+ | Attribute | Description |
159
+ | --------------------------- | -------------------------------------------------------------- |
160
+ | `rt-smooth-scroll-instance` | Marks scroll container |
161
+ | `rt-smooth-scroll-id` | Optional instance identifier |
162
+ | `rt-smooth-scroll-content` | Selector inside container (defaults to first child if omitted) |
155
163
 
156
164
  ### Advanced JSON
157
165
 
@@ -164,6 +172,15 @@ You may pass additional Lenis options via:
164
172
  ></body>
165
173
  ```
166
174
 
175
+ ### Lenis Loader / Observer Controls
176
+
177
+ | Attribute | Description |
178
+ | ------------------------------------- | ------------------------------------------------------------------------------ |
179
+ | `rt-smooth-scroll-lenis-src` | Override Lenis CDN URL |
180
+ | `rt-smooth-scroll-observe-resize` | Enable `ResizeObserver` for wrapper instances (default: `true` if supported) |
181
+ | `rt-smooth-scroll-observe-mutations` | Enable `MutationObserver` for wrapper instances (default: `true` if supported) |
182
+ | `rt-smooth-scroll-resize-debounce-ms` | Debounce resize calls (default: `0`) |
183
+
167
184
  ---
168
185
 
169
186
  ## 5. Multiple Instances
@@ -215,10 +232,15 @@ This helps you confirm exactly what configuration is applied in the browser.
215
232
 
216
233
  ## 8. Troubleshooting
217
234
 
218
- ### Scroll feels laggy
235
+ ### Scroll feels laggy / too delayed
236
+
237
+ - **Increase** `rt-smooth-scroll-lerp` (e.g. `0.2 → 0.35`) for a snappier response.
238
+ - **Decrease** `rt-smooth-scroll-lerp` (e.g. `0.1 → 0.05`) for a smoother/heavier feel.
239
+ - Leave `rt-smooth-scroll-wheel-multiplier="1"` unless you have a strong reason to change perceived speed.
240
+
241
+ ### Duration / easing doesn’t seem to do anything
219
242
 
220
- - Lower `lerp` (e.g., `0.18–0.3`) for snappier response.
221
- - Avoid combining duration and lerp unintentionally.
243
+ Lenis treats `duration` and `easing` as **useless if `lerp` is defined**. If you want time-based behavior, ensure you’re not effectively running in lerp-mode.
222
244
 
223
245
  ### Instance not initialized
224
246
 
@@ -237,12 +259,10 @@ If using a custom `rt-smooth-scroll-lenis-src`, confirm the URL points to a vali
237
259
 
238
260
  MIT License
239
261
 
240
- Package: `@rethink-js/rt-smooth-scroll`
241
- <br>
262
+ Package: `@rethink-js/rt-smooth-scroll` <br>
242
263
  GitHub: [https://github.com/Rethink-JS/rt-smooth-scroll](https://github.com/Rethink-JS/rt-smooth-scroll)
243
264
 
244
265
  ---
245
266
 
246
- by **Rethink JS**
247
- <br>
267
+ by **Rethink JS** <br>
248
268
  [https://github.com/Rethink-JS](https://github.com/Rethink-JS)
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! @rethink-js/rt-smooth-scroll v1.0.2 | MIT */
1
+ /*! @rethink-js/rt-smooth-scroll v1.1.0 | MIT */
2
2
  (() => {
3
3
  // src/index.js
4
4
  (function() {
@@ -37,7 +37,9 @@
37
37
  }
38
38
  function parseNum(v, def) {
39
39
  if (v === null || v === void 0) return def;
40
- var n = Number(v);
40
+ var s = String(v).trim();
41
+ if (!s.length) return def;
42
+ var n = Number(s);
41
43
  return Number.isFinite(n) ? n : def;
42
44
  }
43
45
  function parseStr(v, def) {
@@ -92,105 +94,109 @@
92
94
  };
93
95
  return easings[n] || null;
94
96
  }
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() {
97
+ function ensureAutoEnableIfNeeded() {
104
98
  var body = document.body;
105
- var html = document.documentElement;
106
99
  if (!body) return;
107
100
  var instances = document.querySelectorAll("[rt-smooth-scroll-instance]");
108
101
  var hasInstances = instances && instances.length > 0;
109
- if (!hasAttrAnywhere("rt-smooth-scroll") && !hasInstances)
102
+ if (!hasAttrAnywhere("rt-smooth-scroll") && !hasInstances) {
110
103
  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
104
  }
130
105
  }
106
+ function isAttrPresent(v) {
107
+ return v !== null && v !== void 0;
108
+ }
131
109
  function readOptions(getLocal) {
132
110
  var prefix = "rt-smooth-scroll-";
133
111
  function localOrGlobal(name) {
134
112
  var v = getLocal(name);
135
- if (v !== null && v !== void 0) return v;
113
+ if (isAttrPresent(v)) return v;
136
114
  return getAttr(name);
137
115
  }
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;
116
+ function getRaw(name) {
117
+ return localOrGlobal(prefix + name);
146
118
  }
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");
119
+ function hasRaw(name) {
120
+ return isAttrPresent(getRaw(name));
121
+ }
122
+ var opts = {};
123
+ var hasLerp = hasRaw("lerp");
124
+ var lerp = parseNum(getRaw("lerp"), void 0);
125
+ var hasDuration = hasRaw("duration");
126
+ var duration = parseNum(getRaw("duration"), void 0);
127
+ var hasEasing = hasRaw("easing");
128
+ var easingName = parseStr(getRaw("easing"), "");
176
129
  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;
130
+ if (hasLerp && lerp !== void 0) {
131
+ opts.lerp = lerp;
132
+ } else {
133
+ if (hasDuration && duration !== void 0) opts.duration = duration;
134
+ if (hasEasing && easingFn) opts.easing = easingFn;
135
+ }
136
+ if (hasRaw("orientation")) {
137
+ var orientation = parseStr(getRaw("orientation"), "");
138
+ if (orientation) opts.orientation = orientation;
139
+ }
140
+ if (hasRaw("gesture-orientation")) {
141
+ var gestureOrientation = parseStr(getRaw("gesture-orientation"), "");
142
+ if (gestureOrientation) opts.gestureOrientation = gestureOrientation;
143
+ }
144
+ var smoothWheelRaw = getRaw("smooth-wheel");
145
+ var normalizeWheelRaw = getRaw("normalize-wheel");
146
+ if (isAttrPresent(smoothWheelRaw)) {
147
+ opts.smoothWheel = parseBool(smoothWheelRaw, true);
148
+ } else if (isAttrPresent(normalizeWheelRaw)) {
149
+ opts.smoothWheel = parseBool(normalizeWheelRaw, true);
150
+ }
151
+ if (hasRaw("wheel-multiplier")) {
152
+ var wheelMultiplier = parseNum(getRaw("wheel-multiplier"), void 0);
153
+ if (wheelMultiplier !== void 0) opts.wheelMultiplier = wheelMultiplier;
154
+ }
155
+ if (hasRaw("touch-multiplier")) {
156
+ var touchMultiplier = parseNum(getRaw("touch-multiplier"), void 0);
157
+ if (touchMultiplier !== void 0) opts.touchMultiplier = touchMultiplier;
158
+ }
159
+ if (hasRaw("sync-touch")) {
160
+ opts.syncTouch = parseBool(getRaw("sync-touch"), false);
161
+ }
162
+ if (hasRaw("sync-touch-lerp")) {
163
+ var syncTouchLerp = parseNum(getRaw("sync-touch-lerp"), void 0);
164
+ if (syncTouchLerp !== void 0) opts.syncTouchLerp = syncTouchLerp;
165
+ }
166
+ if (hasRaw("touch-inertia-exponent")) {
167
+ var tie = parseNum(getRaw("touch-inertia-exponent"), void 0);
168
+ if (tie !== void 0) opts.touchInertiaExponent = tie;
169
+ }
170
+ if (hasRaw("infinite")) {
171
+ opts.infinite = parseBool(getRaw("infinite"), false);
172
+ }
173
+ if (hasRaw("auto-resize")) {
174
+ opts.autoResize = parseBool(getRaw("auto-resize"), true);
175
+ }
176
+ if (hasRaw("overscroll")) {
177
+ opts.overscroll = parseBool(getRaw("overscroll"), true);
178
+ }
179
+ if (hasRaw("anchors")) {
180
+ var anchorsRaw = getRaw("anchors");
181
+ var s = String(anchorsRaw || "").trim();
182
+ if (s === "" || s.toLowerCase() === "true") {
183
+ opts.anchors = true;
184
+ } else if (s.toLowerCase() === "false") {
185
+ opts.anchors = false;
186
+ } else {
187
+ try {
188
+ opts.anchors = JSON.parse(s);
189
+ } catch (e) {
190
+ opts.anchors = true;
191
+ }
192
+ }
193
+ }
194
+ if (hasRaw("auto-toggle")) {
195
+ opts.autoToggle = parseBool(getRaw("auto-toggle"), false);
196
+ }
197
+ if (hasRaw("allow-nested-scroll")) {
198
+ opts.allowNestedScroll = parseBool(getRaw("allow-nested-scroll"), false);
192
199
  }
193
- if (easingFn) opts.easing = easingFn;
194
200
  var extra = localOrGlobal(prefix + "options-json");
195
201
  if (extra) {
196
202
  try {
@@ -230,33 +236,26 @@
230
236
  });
231
237
  }
232
238
  function init() {
233
- ensureDefaultsIfNeeded();
239
+ ensureAutoEnableIfNeeded();
234
240
  var enabledRoot = hasAttrAnywhere("rt-smooth-scroll");
235
241
  var instanceEls = document.querySelectorAll("[rt-smooth-scroll-instance]");
236
- var shouldRun = enabledRoot || instanceEls && instanceEls.length > 0;
242
+ var hasInstances = instanceEls && instanceEls.length > 0;
243
+ var shouldRun = enabledRoot || hasInstances;
237
244
  if (!shouldRun) return;
238
245
  var lenisSrc = parseStr(
239
246
  getAttr("rt-smooth-scroll-lenis-src"),
240
247
  "https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"
241
248
  );
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
249
  var resizeDebounceMs = parseNum(
251
250
  getAttr("rt-smooth-scroll-resize-debounce-ms"),
252
251
  0
253
252
  );
253
+ var debug = parseBool(getAttr("rt-smooth-scroll-debug"), true);
254
254
  var state = {
255
255
  destroyed: false,
256
256
  rafId: 0,
257
257
  instances: {},
258
258
  order: [],
259
- observers: {},
260
259
  resizeTimers: {}
261
260
  };
262
261
  function scheduleResize(id) {
@@ -285,71 +284,81 @@
285
284
  }
286
285
  state.rafId = requestAnimationFrame(raf);
287
286
  }
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
287
  function sanitizeOptionsForLog(opts) {
314
288
  var out = {};
315
289
  for (var k in opts) {
316
290
  if (!Object.prototype.hasOwnProperty.call(opts, k)) continue;
317
291
  var v = opts[k];
318
- if (typeof v === "function") {
319
- out[k] = "[Function]";
320
- } else {
321
- out[k] = v;
322
- }
292
+ if (typeof v === "function") out[k] = "[Function]";
293
+ else out[k] = v;
323
294
  }
324
295
  return out;
325
296
  }
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;
297
+ function resolveElementFromSelector(base, selector) {
298
+ if (!selector) return null;
299
+ var s = String(selector).trim();
300
+ if (!s.length) return null;
301
+ if (s === "window") return window;
335
302
  try {
336
- console.log("[rt-smooth-scroll] instance:", id, {
337
- wrapper: wrapper === window ? "window" : wrapper,
338
- content: content || null,
339
- options: sanitizeOptionsForLog(opts)
340
- });
303
+ return (base || document).querySelector(s);
341
304
  } catch (e) {
305
+ return null;
342
306
  }
343
- return inst;
307
+ }
308
+ function applySelectorsToOptions(el, opts) {
309
+ var prefix = "rt-smooth-scroll-";
310
+ var wrapperSel = getAttrFrom(el, prefix + "wrapper");
311
+ var contentSel = getAttrFrom(el, prefix + "content");
312
+ var eventsSel = getAttrFrom(el, prefix + "events-target");
313
+ if (wrapperSel) {
314
+ var w = resolveElementFromSelector(document, wrapperSel);
315
+ if (w) opts.wrapper = w;
316
+ }
317
+ if (contentSel) {
318
+ var c = resolveElementFromSelector(document, contentSel);
319
+ if (c) opts.content = c;
320
+ }
321
+ if (eventsSel) {
322
+ var et = resolveElementFromSelector(document, eventsSel);
323
+ if (et) opts.eventsTarget = et;
324
+ }
325
+ return opts;
344
326
  }
345
327
  function getContentForWrapper(wrapperEl) {
346
328
  var selector = getAttrFrom(wrapperEl, "rt-smooth-scroll-content");
347
329
  if (selector) {
348
- var found = wrapperEl.querySelector(selector);
330
+ var found = null;
331
+ try {
332
+ found = wrapperEl.querySelector(selector);
333
+ } catch (e) {
334
+ found = null;
335
+ }
349
336
  if (found) return found;
350
337
  }
351
338
  return wrapperEl.firstElementChild || wrapperEl;
352
339
  }
340
+ function createInstance(id, wrapper, content, options, isRoot) {
341
+ var opts = options || {};
342
+ if (!isRoot) {
343
+ if (wrapper) opts.wrapper = wrapper;
344
+ if (content) opts.content = content;
345
+ }
346
+ var inst = new window.Lenis(opts);
347
+ state.instances[id] = inst;
348
+ state.order.push(id);
349
+ if (id === "root") window.lenis = inst;
350
+ if (debug) {
351
+ try {
352
+ console.log("[rt-smooth-scroll] instance:", id, {
353
+ wrapper: isRoot ? opts.wrapper || "default" : wrapper,
354
+ content: isRoot ? opts.content || "default" : content,
355
+ options: sanitizeOptionsForLog(opts)
356
+ });
357
+ } catch (e) {
358
+ }
359
+ }
360
+ return inst;
361
+ }
353
362
  function makeApi() {
354
363
  function forEachTarget(id, fn) {
355
364
  if (typeof id === "string" && id.length) {
@@ -401,7 +410,6 @@
401
410
  if (state.destroyed) return;
402
411
  function destroyOne(k) {
403
412
  clearTimeout(state.resizeTimers[k]);
404
- removeObservers(k);
405
413
  var inst = state.instances[k];
406
414
  if (inst) {
407
415
  try {
@@ -442,13 +450,26 @@
442
450
  }
443
451
  loadScriptOnce(lenisSrc).then(function() {
444
452
  if (state.destroyed) return;
453
+ var els = document.querySelectorAll("[rt-smooth-scroll-instance]");
454
+ var totalCount = (enabledRoot ? 1 : 0) + (els ? els.length : 0);
455
+ var allowAutoRaf = totalCount === 1 && enabledRoot && (!els || els.length === 0);
445
456
  if (enabledRoot && !state.instances.root) {
446
457
  var optsRoot = readOptions(function() {
447
458
  return null;
448
459
  });
449
- createInstance("root", window, document.documentElement, optsRoot);
460
+ optsRoot = applySelectorsToOptions(
461
+ document.body || document.documentElement,
462
+ optsRoot
463
+ );
464
+ if (allowAutoRaf) {
465
+ var rawAutoRaf = getAttr("rt-smooth-scroll-auto-raf");
466
+ var autoRaf = isAttrPresent(rawAutoRaf) ? parseBool(rawAutoRaf, true) : true;
467
+ optsRoot.autoRaf = autoRaf;
468
+ } else {
469
+ optsRoot.autoRaf = false;
470
+ }
471
+ createInstance("root", null, null, optsRoot, true);
450
472
  }
451
- var els = document.querySelectorAll("[rt-smooth-scroll-instance]");
452
473
  var autoCount = 0;
453
474
  for (var i = 0; i < els.length; i++) {
454
475
  var el = els[i];
@@ -462,9 +483,13 @@
462
483
  var opts = readOptions(function(name) {
463
484
  return getAttrFrom(el, name);
464
485
  });
465
- createInstance(id, el, content, opts);
486
+ opts = applySelectorsToOptions(el, opts);
487
+ opts.autoRaf = false;
488
+ createInstance(id, el, content, opts, false);
489
+ }
490
+ if (!allowAutoRaf) {
491
+ startRaf();
466
492
  }
467
- startRaf();
468
493
  var api = makeApi();
469
494
  window[RT_NS] = api;
470
495
  installLegacyAliases(api);
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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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",
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 s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\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\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\n return easings[n] || null;\n }\n\n function ensureAutoEnableIfNeeded() {\n var body = document.body;\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 }\n\n function isAttrPresent(v) {\n return v !== null && v !== undefined;\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\n\n var hasEasing = hasRaw(\"easing\");\n var easingName = parseStr(getRaw(\"easing\"), \"\");\n var easingFn = easingByName(easingName);\n\n if (hasLerp && lerp !== undefined) {\n opts.lerp = lerp;\n } else {\n if (hasDuration && duration !== undefined) opts.duration = duration;\n if (hasEasing && easingFn) opts.easing = easingFn;\n }\n\n if (hasRaw(\"orientation\")) {\n var orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (orientation) opts.orientation = orientation;\n }\n\n if (hasRaw(\"gesture-orientation\")) {\n var gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\n if (gestureOrientation) opts.gestureOrientation = gestureOrientation;\n }\n\n var smoothWheelRaw = getRaw(\"smooth-wheel\");\n var normalizeWheelRaw = getRaw(\"normalize-wheel\");\n if (isAttrPresent(smoothWheelRaw)) {\n opts.smoothWheel = parseBool(smoothWheelRaw, true);\n } else if (isAttrPresent(normalizeWheelRaw)) {\n opts.smoothWheel = parseBool(normalizeWheelRaw, true);\n }\n\n if (hasRaw(\"wheel-multiplier\")) {\n var wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (wheelMultiplier !== undefined) opts.wheelMultiplier = wheelMultiplier;\n }\n\n if (hasRaw(\"touch-multiplier\")) {\n var touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (touchMultiplier !== undefined) opts.touchMultiplier = touchMultiplier;\n }\n\n if (hasRaw(\"sync-touch\")) {\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n }\n\n if (hasRaw(\"sync-touch-lerp\")) {\n var syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (syncTouchLerp !== undefined) opts.syncTouchLerp = syncTouchLerp;\n }\n\n if (hasRaw(\"touch-inertia-exponent\")) {\n var tie = parseNum(getRaw(\"touch-inertia-exponent\"), undefined);\n if (tie !== undefined) opts.touchInertiaExponent = tie;\n }\n\n if (hasRaw(\"infinite\")) {\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n }\n\n if (hasRaw(\"auto-resize\")) {\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n }\n\n if (hasRaw(\"overscroll\")) {\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n }\n\n if (hasRaw(\"anchors\")) {\n var anchorsRaw = getRaw(\"anchors\");\n var s = String(anchorsRaw || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") {\n opts.anchors = true;\n } else if (s.toLowerCase() === \"false\") {\n opts.anchors = false;\n } else {\n try {\n opts.anchors = JSON.parse(s);\n } catch (e) {\n opts.anchors = true;\n }\n }\n }\n\n if (hasRaw(\"auto-toggle\")) {\n opts.autoToggle = parseBool(getRaw(\"auto-toggle\"), false);\n }\n\n if (hasRaw(\"allow-nested-scroll\")) {\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\n }\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 ensureAutoEnableIfNeeded();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instanceEls && instanceEls.length > 0;\n var shouldRun = enabledRoot || hasInstances;\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 resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0\n );\n\n var debug = parseBool(getAttr(\"rt-smooth-scroll-debug\"), true);\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\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 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\") out[k] = \"[Function]\";\n else out[k] = v;\n }\n return out;\n }\n\n function resolveElementFromSelector(base, selector) {\n if (!selector) return null;\n var s = String(selector).trim();\n if (!s.length) return null;\n if (s === \"window\") return window;\n try {\n return (base || document).querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function applySelectorsToOptions(el, opts) {\n var prefix = \"rt-smooth-scroll-\";\n\n var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\n\n if (wrapperSel) {\n var w = resolveElementFromSelector(document, wrapperSel);\n if (w) opts.wrapper = w;\n }\n if (contentSel) {\n var c = resolveElementFromSelector(document, contentSel);\n if (c) opts.content = c;\n }\n if (eventsSel) {\n var et = resolveElementFromSelector(document, eventsSel);\n if (et) opts.eventsTarget = et;\n }\n\n return opts;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = null;\n try {\n found = wrapperEl.querySelector(selector);\n } catch (e) {\n found = null;\n }\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function createInstance(id, wrapper, content, options, isRoot) {\n var opts = options || {};\n\n if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n\n if (id === \"root\") window.lenis = inst;\n\n if (debug) {\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: isRoot ? opts.wrapper || \"default\" : wrapper,\n content: isRoot ? opts.content || \"default\" : content,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n }\n\n return inst;\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 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 var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var totalCount = (enabledRoot ? 1 : 0) + (els ? els.length : 0);\n var allowAutoRaf =\n totalCount === 1 && enabledRoot && (!els || els.length === 0);\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n\n optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot\n );\n\n if (allowAutoRaf) {\n var rawAutoRaf = getAttr(\"rt-smooth-scroll-auto-raf\");\n var autoRaf = isAttrPresent(rawAutoRaf)\n ? parseBool(rawAutoRaf, true)\n : true;\n optsRoot.autoRaf = autoRaf;\n } else {\n optsRoot.autoRaf = false;\n }\n\n createInstance(\"root\", null, null, optsRoot, true);\n }\n\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\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) {\n startRaf();\n }\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
6
  "names": []
7
7
  }
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! @rethink-js/rt-smooth-scroll v1.0.2 | 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}}})();})();
1
+ /*! @rethink-js/rt-smooth-scroll v1.1.0 | MIT */
2
+ (()=>{(function(){var S="rtSmoothScroll";if(window[S]&&window[S].__initialized)return;function p(i,s){return!i||!i.hasAttribute(s)?null:i.getAttribute(s)}function z(i){var s=document.documentElement,u=document.body,e=p(s,i);return e!==null||(e=p(u,i),e!==null)?e:null}function j(i){var s=document.documentElement,u=document.body;return!!(s&&s.hasAttribute(i)||u&&u.hasAttribute(i))}function y(i,s){if(i==null)return s;var u=String(i).trim().toLowerCase();return u===""||u==="true"||u==="1"||u==="yes"||u==="y"||u==="on"?!0:u==="false"||u==="0"||u==="no"||u==="n"||u==="off"?!1:s}function b(i,s){if(i==null)return s;var u=String(i).trim();if(!u.length)return s;var e=Number(u);return Number.isFinite(e)?e:s}function E(i,s){if(i==null)return s;var u=String(i);return u.length?u:s}function w(i){return i<0?0:i>1?1:i}function Q(i){var s=String(i||"").trim();if(!s)return null;var u={linear:function(e){return w(e)},easeInQuad:function(e){return e=w(e),e*e},easeOutQuad:function(e){return e=w(e),e*(2-e)},easeInOutQuad:function(e){return e=w(e),e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},easeInCubic:function(e){return e=w(e),e*e*e},easeOutCubic:function(e){return e=w(e),1-Math.pow(1-e,3)},easeInOutCubic:function(e){return e=w(e),e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2},easeInOutSine:function(e){return e=w(e),-(Math.cos(Math.PI*e)-1)/2},easeOutExpo:function(e){return e=w(e),e===1?1:1-Math.pow(2,-10*e)}};return u[s]||null}function B(){var i=document.body;if(i){var s=document.querySelectorAll("[rt-smooth-scroll-instance]"),u=s&&s.length>0;!j("rt-smooth-scroll")&&!u&&i.setAttribute("rt-smooth-scroll","")}}function A(i){return i!=null}function P(i){var s="rt-smooth-scroll-";function u(v){var N=i(v);return A(N)?N:z(v)}function e(v){return u(s+v)}function f(v){return A(e(v))}var l={},q=f("lerp"),o=b(e("lerp"),void 0),M=f("duration"),T=b(e("duration"),void 0),R=f("easing"),O=E(e("easing"),""),I=Q(O);if(q&&o!==void 0?l.lerp=o:(M&&T!==void 0&&(l.duration=T),R&&I&&(l.easing=I)),f("orientation")){var C=E(e("orientation"),"");C&&(l.orientation=C)}if(f("gesture-orientation")){var L=E(e("gesture-orientation"),"");L&&(l.gestureOrientation=L)}var x=e("smooth-wheel"),F=e("normalize-wheel");if(A(x)?l.smoothWheel=y(x,!0):A(F)&&(l.smoothWheel=y(F,!0)),f("wheel-multiplier")){var t=b(e("wheel-multiplier"),void 0);t!==void 0&&(l.wheelMultiplier=t)}if(f("touch-multiplier")){var n=b(e("touch-multiplier"),void 0);n!==void 0&&(l.touchMultiplier=n)}if(f("sync-touch")&&(l.syncTouch=y(e("sync-touch"),!1)),f("sync-touch-lerp")){var r=b(e("sync-touch-lerp"),void 0);r!==void 0&&(l.syncTouchLerp=r)}if(f("touch-inertia-exponent")){var a=b(e("touch-inertia-exponent"),void 0);a!==void 0&&(l.touchInertiaExponent=a)}if(f("infinite")&&(l.infinite=y(e("infinite"),!1)),f("auto-resize")&&(l.autoResize=y(e("auto-resize"),!0)),f("overscroll")&&(l.overscroll=y(e("overscroll"),!0)),f("anchors")){var c=e("anchors"),d=String(c||"").trim();if(d===""||d.toLowerCase()==="true")l.anchors=!0;else if(d.toLowerCase()==="false")l.anchors=!1;else try{l.anchors=JSON.parse(d)}catch(v){l.anchors=!0}}f("auto-toggle")&&(l.autoToggle=y(e("auto-toggle"),!1)),f("allow-nested-scroll")&&(l.allowNestedScroll=y(e("allow-nested-scroll"),!1));var h=u(s+"options-json");if(h)try{var m=JSON.parse(h);if(m&&typeof m=="object")for(var g in m)l[g]=m[g]}catch(v){}return l}function J(i){return new Promise(function(s,u){if(typeof window.Lenis!="undefined")return s();var e=document.querySelector('script[data-rt-lenis="true"]');if(e){e.addEventListener("load",function(){s()}),e.addEventListener("error",function(l){u(l)});return}var f=document.createElement("script");f.src=i,f.async=!0,f.dataset.rtLenis="true",f.onload=function(){s()},f.onerror=function(l){u(l)},document.head.appendChild(f)})}function D(){B();var i=j("rt-smooth-scroll"),s=document.querySelectorAll("[rt-smooth-scroll-instance]"),u=s&&s.length>0,e=i||u;if(!e)return;var f=E(z("rt-smooth-scroll-lenis-src"),"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"),l=b(z("rt-smooth-scroll-resize-debounce-ms"),0),q=y(z("rt-smooth-scroll-debug"),!0),o={destroyed:!1,rafId:0,instances:{},order:[],resizeTimers:{}};function M(t){var n=o.instances[t];if(!(!n||o.destroyed)){if(l>0){clearTimeout(o.resizeTimers[t]),o.resizeTimers[t]=setTimeout(function(){var r=o.instances[t];!r||o.destroyed||r.resize()},l);return}n.resize()}}function T(){function t(n){if(!o.destroyed){for(var r=0;r<o.order.length;r++){var a=o.order[r],c=o.instances[a];c&&c.raf(n)}o.rafId=requestAnimationFrame(t)}}o.rafId=requestAnimationFrame(t)}function R(t){var n={};for(var r in t)if(Object.prototype.hasOwnProperty.call(t,r)){var a=t[r];typeof a=="function"?n[r]="[Function]":n[r]=a}return n}function O(t,n){if(!n)return null;var r=String(n).trim();if(!r.length)return null;if(r==="window")return window;try{return(t||document).querySelector(r)}catch(a){return null}}function I(t,n){var r="rt-smooth-scroll-",a=p(t,r+"wrapper"),c=p(t,r+"content"),d=p(t,r+"events-target");if(a){var h=O(document,a);h&&(n.wrapper=h)}if(c){var m=O(document,c);m&&(n.content=m)}if(d){var g=O(document,d);g&&(n.eventsTarget=g)}return n}function C(t){var n=p(t,"rt-smooth-scroll-content");if(n){var r=null;try{r=t.querySelector(n)}catch(a){r=null}if(r)return r}return t.firstElementChild||t}function L(t,n,r,a,c){var d=a||{};c||(n&&(d.wrapper=n),r&&(d.content=r));var h=new window.Lenis(d);if(o.instances[t]=h,o.order.push(t),t==="root"&&(window.lenis=h),q)try{console.log("[rt-smooth-scroll] instance:",t,{wrapper:c?d.wrapper||"default":n,content:c?d.content||"default":r,options:R(d)})}catch(m){}return h}function x(){function t(n,r){if(typeof n=="string"&&n.length){var a=o.instances[n];a&&r(n,a);return}for(var c=0;c<o.order.length;c++){var d=o.order[c],h=o.instances[d];h&&r(d,h)}}return{__initialized:!0,ids:function(){return o.order.slice()},get:function(n){return o.instances[n]||null},start:function(n){t(n,function(r,a){a.start()})},stop:function(n){t(n,function(r,a){a.stop()})},toggle:function(n,r){t(n,function(a,c){if(typeof r=="boolean"){r?c.stop():c.start();return}c.isStopped?c.start():c.stop()})},resize:function(n){t(n,function(r){M(r)})},destroy:function(n){if(o.destroyed)return;function r(a){clearTimeout(o.resizeTimers[a]);var c=o.instances[a];if(c){try{c.destroy()}catch(h){}delete o.instances[a]}var d=o.order.indexOf(a);if(d>=0&&o.order.splice(d,1),a==="root")try{delete window.lenis}catch(h){window.lenis=void 0}}if(typeof n=="string"&&n.length){r(n);return}for(;o.order.length;)r(o.order[0]);o.destroyed=!0,o.rafId&&cancelAnimationFrame(o.rafId)}}}function F(t){window.disableScroll=function(){t.stop(),document.body&&document.body.classList.add("no-scroll")},window.enableScroll=function(){t.start(),document.body&&document.body.classList.remove("no-scroll")}}J(f).then(function(){if(!o.destroyed){var t=document.querySelectorAll("[rt-smooth-scroll-instance]"),n=(i?1:0)+(t?t.length:0),r=n===1&&i&&(!t||t.length===0);if(i&&!o.instances.root){var a=P(function(){return null});if(a=I(document.body||document.documentElement,a),r){var c=z("rt-smooth-scroll-auto-raf"),d=A(c)?y(c,!0):!0;a.autoRaf=d}else a.autoRaf=!1;L("root",null,null,a,!0)}for(var h=0,m=0;m<t.length;m++){var g=t[m],v=p(g,"rt-smooth-scroll-id");if(v||(h++,v="instance-"+h),!o.instances[v]){var N=C(g),_=P(function(G){return p(g,G)});_=I(g,_),_.autoRaf=!1,L(v,g,N,_,!1)}}r||T();var W=x();window[S]=W,F(W),window.addEventListener("resize",function(){W.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",D):D(),window[S]=window[S]||{__initialized:!0,ids:function(){return[]},get:function(){return null}}})();})();
3
3
  //# sourceMappingURL=index.min.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
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"]
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 s = String(v).trim();\n if (!s.length) return def;\n var n = Number(s);\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\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\n return easings[n] || null;\n }\n\n function ensureAutoEnableIfNeeded() {\n var body = document.body;\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 }\n\n function isAttrPresent(v) {\n return v !== null && v !== undefined;\n }\n\n function readOptions(getLocal) {\n var prefix = \"rt-smooth-scroll-\";\n\n function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\n\n var hasEasing = hasRaw(\"easing\");\n var easingName = parseStr(getRaw(\"easing\"), \"\");\n var easingFn = easingByName(easingName);\n\n if (hasLerp && lerp !== undefined) {\n opts.lerp = lerp;\n } else {\n if (hasDuration && duration !== undefined) opts.duration = duration;\n if (hasEasing && easingFn) opts.easing = easingFn;\n }\n\n if (hasRaw(\"orientation\")) {\n var orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (orientation) opts.orientation = orientation;\n }\n\n if (hasRaw(\"gesture-orientation\")) {\n var gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\n if (gestureOrientation) opts.gestureOrientation = gestureOrientation;\n }\n\n var smoothWheelRaw = getRaw(\"smooth-wheel\");\n var normalizeWheelRaw = getRaw(\"normalize-wheel\");\n if (isAttrPresent(smoothWheelRaw)) {\n opts.smoothWheel = parseBool(smoothWheelRaw, true);\n } else if (isAttrPresent(normalizeWheelRaw)) {\n opts.smoothWheel = parseBool(normalizeWheelRaw, true);\n }\n\n if (hasRaw(\"wheel-multiplier\")) {\n var wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (wheelMultiplier !== undefined) opts.wheelMultiplier = wheelMultiplier;\n }\n\n if (hasRaw(\"touch-multiplier\")) {\n var touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (touchMultiplier !== undefined) opts.touchMultiplier = touchMultiplier;\n }\n\n if (hasRaw(\"sync-touch\")) {\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n }\n\n if (hasRaw(\"sync-touch-lerp\")) {\n var syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (syncTouchLerp !== undefined) opts.syncTouchLerp = syncTouchLerp;\n }\n\n if (hasRaw(\"touch-inertia-exponent\")) {\n var tie = parseNum(getRaw(\"touch-inertia-exponent\"), undefined);\n if (tie !== undefined) opts.touchInertiaExponent = tie;\n }\n\n if (hasRaw(\"infinite\")) {\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n }\n\n if (hasRaw(\"auto-resize\")) {\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n }\n\n if (hasRaw(\"overscroll\")) {\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n }\n\n if (hasRaw(\"anchors\")) {\n var anchorsRaw = getRaw(\"anchors\");\n var s = String(anchorsRaw || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") {\n opts.anchors = true;\n } else if (s.toLowerCase() === \"false\") {\n opts.anchors = false;\n } else {\n try {\n opts.anchors = JSON.parse(s);\n } catch (e) {\n opts.anchors = true;\n }\n }\n }\n\n if (hasRaw(\"auto-toggle\")) {\n opts.autoToggle = parseBool(getRaw(\"auto-toggle\"), false);\n }\n\n if (hasRaw(\"allow-nested-scroll\")) {\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\n }\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 ensureAutoEnableIfNeeded();\n\n var enabledRoot = hasAttrAnywhere(\"rt-smooth-scroll\");\n var instanceEls = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instanceEls && instanceEls.length > 0;\n var shouldRun = enabledRoot || hasInstances;\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 resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0\n );\n\n var debug = parseBool(getAttr(\"rt-smooth-scroll-debug\"), true);\n\n var state = {\n destroyed: false,\n rafId: 0,\n instances: {},\n order: [],\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 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\") out[k] = \"[Function]\";\n else out[k] = v;\n }\n return out;\n }\n\n function resolveElementFromSelector(base, selector) {\n if (!selector) return null;\n var s = String(selector).trim();\n if (!s.length) return null;\n if (s === \"window\") return window;\n try {\n return (base || document).querySelector(s);\n } catch (e) {\n return null;\n }\n }\n\n function applySelectorsToOptions(el, opts) {\n var prefix = \"rt-smooth-scroll-\";\n\n var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\n\n if (wrapperSel) {\n var w = resolveElementFromSelector(document, wrapperSel);\n if (w) opts.wrapper = w;\n }\n if (contentSel) {\n var c = resolveElementFromSelector(document, contentSel);\n if (c) opts.content = c;\n }\n if (eventsSel) {\n var et = resolveElementFromSelector(document, eventsSel);\n if (et) opts.eventsTarget = et;\n }\n\n return opts;\n }\n\n function getContentForWrapper(wrapperEl) {\n var selector = getAttrFrom(wrapperEl, \"rt-smooth-scroll-content\");\n if (selector) {\n var found = null;\n try {\n found = wrapperEl.querySelector(selector);\n } catch (e) {\n found = null;\n }\n if (found) return found;\n }\n return wrapperEl.firstElementChild || wrapperEl;\n }\n\n function createInstance(id, wrapper, content, options, isRoot) {\n var opts = options || {};\n\n if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n\n if (id === \"root\") window.lenis = inst;\n\n if (debug) {\n try {\n console.log(\"[rt-smooth-scroll] instance:\", id, {\n wrapper: isRoot ? opts.wrapper || \"default\" : wrapper,\n content: isRoot ? opts.content || \"default\" : content,\n options: sanitizeOptionsForLog(opts),\n });\n } catch (e) {}\n }\n\n return inst;\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 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 var els = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var totalCount = (enabledRoot ? 1 : 0) + (els ? els.length : 0);\n var allowAutoRaf =\n totalCount === 1 && enabledRoot && (!els || els.length === 0);\n\n if (enabledRoot && !state.instances.root) {\n var optsRoot = readOptions(function () {\n return null;\n });\n\n optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot\n );\n\n if (allowAutoRaf) {\n var rawAutoRaf = getAttr(\"rt-smooth-scroll-auto-raf\");\n var autoRaf = isAttrPresent(rawAutoRaf)\n ? parseBool(rawAutoRaf, true)\n : true;\n optsRoot.autoRaf = autoRaf;\n } else {\n optsRoot.autoRaf = false;\n }\n\n createInstance(\"root\", null, null, optsRoot, true);\n }\n\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\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) {\n startRaf();\n }\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", "ensureAutoEnableIfNeeded", "instances", "hasInstances", "isAttrPresent", "readOptions", "getLocal", "prefix", "localOrGlobal", "getRaw", "hasRaw", "opts", "hasLerp", "lerp", "hasDuration", "duration", "hasEasing", "easingName", "easingFn", "orientation", "gestureOrientation", "smoothWheelRaw", "normalizeWheelRaw", "wheelMultiplier", "touchMultiplier", "syncTouchLerp", "tie", "anchorsRaw", "e", "extra", "parsed", "k", "loadScriptOnce", "src", "resolve", "reject", "existing", "init", "enabledRoot", "instanceEls", "shouldRun", "lenisSrc", "resizeDebounceMs", "debug", "state", "scheduleResize", "id", "inst", "i2", "startRaf", "raf", "time", "i", "sanitizeOptionsForLog", "out", "resolveElementFromSelector", "base", "selector", "applySelectorsToOptions", "wrapperSel", "contentSel", "eventsSel", "w", "c", "et", "getContentForWrapper", "wrapperEl", "found", "createInstance", "wrapper", "content", "options", "isRoot", "makeApi", "forEachTarget", "fn", "one", "_", "force", "destroyOne", "idx", "installLegacyAliases", "api", "els", "totalCount", "allowAutoRaf", "optsRoot", "rawAutoRaf", "autoRaf", "autoCount"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rethink-js/rt-smooth-scroll",
3
- "version": "1.0.2",
3
+ "version": "1.1.0",
4
4
  "description": "Lightweight smooth scrolling powered by Lenis with automatic loading, attribute config, and multi-instance support.",
5
5
  "keywords": [
6
6
  "smooth-scroll",