@rethink-js/rt-smooth-scroll 1.1.0 → 1.2.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
@@ -13,7 +13,8 @@
13
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
- - Optional resize + mutation observation (useful for wrapper instances)
16
+ - **Smart Scroll-To actions** with indexed selectors and dynamic offsets
17
+ - **Automatic Anchor Link Conversion** (hijack native links for smooth scrolling)
17
18
  - Per-instance configuration via HTML attributes
18
19
  - Console logs showing each instance’s final resolved config
19
20
 
@@ -29,11 +30,13 @@
29
30
  - [2. Quick Start](#2-quick-start)
30
31
  - [3. Activation Rules](#3-activation-rules)
31
32
  - [4. Configuration (HTML Attributes)](#4-configuration-html-attributes)
32
- - [5. Multiple Instances](#5-multiple-instances)
33
- - [6. Global API](#6-global-api)
34
- - [7. Console Logging](#7-console-logging)
35
- - [8. Troubleshooting](#8-troubleshooting)
36
- - [9. License](#9-license)
33
+ - [5. Scroll-To Actions](#5-scroll-to-actions)
34
+ - [6. Anchor Link Conversion](#6-anchor-link-conversion)
35
+ - [7. Multiple Instances](#7-multiple-instances)
36
+ - [8. Global API](#8-global-api)
37
+ - [9. Console Logging](#9-console-logging)
38
+ - [10. Troubleshooting](#10-troubleshooting)
39
+ - [11. License](#11-license)
37
40
 
38
41
  ---
39
42
 
@@ -42,7 +45,7 @@
42
45
  ### 1.1 CDN (jsDelivr)
43
46
 
44
47
  ```html
45
- <script src="https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js"></script>
48
+ <script src="[https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js](https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js)"></script>
46
49
  ```
47
50
 
48
51
  ### 1.2 npm
@@ -67,7 +70,7 @@ Add the script to your page. With no configuration provided, `rt-smooth-scroll`
67
70
  Example:
68
71
 
69
72
  ```html
70
- <script src="https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js"></script>
73
+ <script src="[https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js](https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js)"></script>
71
74
  ```
72
75
 
73
76
  > Note: If you do not set any `rt-smooth-scroll-*` config attributes, the root instance uses **Lenis defaults**.
@@ -161,35 +164,86 @@ Add attributes to any scroll container:
161
164
  | `rt-smooth-scroll-id` | Optional instance identifier |
162
165
  | `rt-smooth-scroll-content` | Selector inside container (defaults to first child if omitted) |
163
166
 
164
- ### Advanced JSON
167
+ ---
168
+
169
+ ## 5. Scroll-To Actions
170
+
171
+ You can trigger a smooth scroll to any element, position, or specific instance using the `rt-smooth-scroll-to` attribute on any clickable element.
165
172
 
166
- You may pass additional Lenis options via:
173
+ ### Basic Usage
167
174
 
168
175
  ```html
169
- <body
170
- rt-smooth-scroll
171
- rt-smooth-scroll-options-json='{"overscroll":true}'
172
- ></body>
176
+ <button rt-smooth-scroll-to="#footer">Go to Footer</button>
177
+
178
+ <button rt-smooth-scroll-to="top">Back to Top</button>
179
+
180
+ <button rt-smooth-scroll-to="500">Go to 500px</button>
181
+ ```
182
+
183
+ ### Indexed Selectors
184
+
185
+ You can target elements by class order (1-based index) using `.class(N)` syntax.
186
+
187
+ ```html
188
+ <button rt-smooth-scroll-to=".section(2)">Go to Section 2</button>
189
+ ```
190
+
191
+ ### Customization Attributes
192
+
193
+ You can customize the scroll behavior for specific triggers.
194
+
195
+ | Attribute | Description |
196
+ | ---------------------------- | ------------------------------------------------------------------ |
197
+ | `rt-smooth-scroll-offset` | Offset in pixels. **Supports selectors!** (See below) |
198
+ | `rt-smooth-scroll-duration` | Override scroll duration for this action |
199
+ | `rt-smooth-scroll-immediate` | Jump instantly (true/false) |
200
+ | `rt-smooth-scroll-lock` | Lock scroll during animation |
201
+ | `rt-smooth-scroll-force` | Force scroll even if stopped |
202
+ | `rt-smooth-scroll-target-id` | **Explicitly** target a specific scroll instance ID (e.g. "panel") |
203
+
204
+ ### Dynamic Element Offsets
205
+
206
+ Instead of hardcoding pixels, you can pass a selector to `rt-smooth-scroll-offset`. The library will calculate that element's `offsetHeight` and apply it as a **negative offset** (perfect for sticky headers).
207
+
208
+ ```html
209
+ <button rt-smooth-scroll-to="#about" rt-smooth-scroll-offset="#nav">
210
+ About
211
+ </button>
212
+ ```
213
+
214
+ ---
215
+
216
+ ## 6. Anchor Link Conversion
217
+
218
+ You can automatically convert standard `<a>` tags (e.g., `<a href="#contact">`) into smooth scroll triggers without manually adding attributes to every link.
219
+
220
+ ### Enable Conversion
221
+
222
+ Add this attribute to your `<body>` or `<html>` tag:
223
+
224
+ ```html
225
+ <body rt-smooth-scroll rt-smooth-scroll-anchor-links="true"></body>
173
226
  ```
174
227
 
175
- ### Lenis Loader / Observer Controls
228
+ ### How it works
176
229
 
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`) |
230
+ 1. **Auto-Detection:** Finds all links pointing to a hash on the current page.
231
+ 2. **Hijacking:** Converts them to use the `rt-smooth-scroll-to` logic.
232
+ 3. **Clean URLs:** Removes the `href` attribute so the browser URL bar does **not** update (no `#hash` in URL), keeping your history clean.
233
+ 4. **Accessibility:** Automatically restores `tabindex="0"`, `role="button"`, `cursor: pointer`, and keyboard `Enter` key support.
183
234
 
184
235
  ---
185
236
 
186
- ## 5. Multiple Instances
237
+ ## 7. Multiple Instances
187
238
 
188
239
  `rt-smooth-scroll` supports any number of independent Lenis instances on a page. Each instance has its own wrapper + content and can be controlled individually via API.
189
240
 
241
+ **Context Awareness:**
242
+ If a `rt-smooth-scroll-to` button is placed **inside** a nested scroll instance, it will automatically control that parent instance, not the root window, unless you explicitly override it with `rt-smooth-scroll-target-id`.
243
+
190
244
  ---
191
245
 
192
- ## 6. Global API
246
+ ## 8. Global API
193
247
 
194
248
  After initialization, access:
195
249
 
@@ -199,15 +253,16 @@ window.rtSmoothScroll;
199
253
 
200
254
  ### Common methods:
201
255
 
202
- | Method | Description |
203
- | -------------- | -------------------------------- |
204
- | `ids()` | Array of registered instance ids |
205
- | `get(id)` | Returns Lenis instance |
206
- | `start(id?)` | Start scroll |
207
- | `stop(id?)` | Stop scroll |
208
- | `toggle(id?)` | Toggle scroll |
209
- | `resize(id?)` | Trigger Lenis resize |
210
- | `destroy(id?)` | Remove instance |
256
+ | Method | Description |
257
+ | ------------------ | ------------------------------------------------------------------- |
258
+ | `ids()` | Array of registered instance ids |
259
+ | `get(id)` | Returns Lenis instance |
260
+ | `start(id?)` | Start scroll |
261
+ | `stop(id?)` | Stop scroll |
262
+ | `toggle(id?)` | Toggle scroll |
263
+ | `resize(id?)` | Trigger Lenis resize |
264
+ | `refreshAnchors()` | Manually re-run anchor link conversion (useful for dynamic content) |
265
+ | `destroy(id?)` | Remove instance |
211
266
 
212
267
  **Default root Lenis instance** is also exposed as:
213
268
 
@@ -217,7 +272,7 @@ window.lenis;
217
272
 
218
273
  ---
219
274
 
220
- ## 7. Console Logging
275
+ ## 9. Console Logging
221
276
 
222
277
  On startup, each instance logs:
223
278
 
@@ -230,7 +285,7 @@ This helps you confirm exactly what configuration is applied in the browser.
230
285
 
231
286
  ---
232
287
 
233
- ## 8. Troubleshooting
288
+ ## 10. Troubleshooting
234
289
 
235
290
  ### Scroll feels laggy / too delayed
236
291
 
@@ -242,27 +297,18 @@ This helps you confirm exactly what configuration is applied in the browser.
242
297
 
243
298
  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.
244
299
 
245
- ### Instance not initialized
246
-
247
- Ensure you’ve enabled either:
248
-
249
- - the root attribute (`rt-smooth-scroll`), or
250
- - one or more instance elements.
251
-
252
- ### Lenis fails to load
253
-
254
- If using a custom `rt-smooth-scroll-lenis-src`, confirm the URL points to a valid Lenis build.
255
-
256
300
  ---
257
301
 
258
- ## 9. License
302
+ ## 11. License
259
303
 
260
304
  MIT License
261
305
 
262
- Package: `@rethink-js/rt-smooth-scroll` <br>
306
+ Package: `@rethink-js/rt-smooth-scroll`
307
+ <br>
263
308
  GitHub: [https://github.com/Rethink-JS/rt-smooth-scroll](https://github.com/Rethink-JS/rt-smooth-scroll)
264
309
 
265
310
  ---
266
311
 
267
- by **Rethink JS** <br>
312
+ by **Rethink JS**
313
+ <br>
268
314
  [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.1.0 | MIT */
1
+ /*! @rethink-js/rt-smooth-scroll v1.2.0 | MIT */
2
2
  (() => {
3
3
  // src/index.js
4
4
  (function() {
@@ -52,6 +52,29 @@
52
52
  if (t > 1) return 1;
53
53
  return t;
54
54
  }
55
+ function resolveTargetFromStr(selectorStr) {
56
+ if (!selectorStr) return null;
57
+ var s = String(selectorStr).trim();
58
+ if (!s) return null;
59
+ if (s === "window") return window;
60
+ var match = s.match(/^(.*)\(\s*(\d+)\s*\)$/);
61
+ if (match) {
62
+ var baseSelector = match[1].trim();
63
+ var index = parseInt(match[2], 10);
64
+ if (!baseSelector || isNaN(index) || index < 1) return null;
65
+ try {
66
+ var all = document.querySelectorAll(baseSelector);
67
+ return all[index - 1] || null;
68
+ } catch (e) {
69
+ return null;
70
+ }
71
+ }
72
+ try {
73
+ return document.querySelector(s);
74
+ } catch (e) {
75
+ return null;
76
+ }
77
+ }
55
78
  function easingByName(name) {
56
79
  var n = String(name || "").trim();
57
80
  if (!n) return null;
@@ -133,57 +156,40 @@
133
156
  if (hasDuration && duration !== void 0) opts.duration = duration;
134
157
  if (hasEasing && easingFn) opts.easing = easingFn;
135
158
  }
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
- }
159
+ if (hasRaw("orientation"))
160
+ opts.orientation = parseStr(getRaw("orientation"), "");
161
+ if (hasRaw("gesture-orientation"))
162
+ opts.gestureOrientation = parseStr(getRaw("gesture-orientation"), "");
144
163
  var smoothWheelRaw = getRaw("smooth-wheel");
145
164
  var normalizeWheelRaw = getRaw("normalize-wheel");
146
- if (isAttrPresent(smoothWheelRaw)) {
165
+ if (isAttrPresent(smoothWheelRaw))
147
166
  opts.smoothWheel = parseBool(smoothWheelRaw, true);
148
- } else if (isAttrPresent(normalizeWheelRaw)) {
167
+ else if (isAttrPresent(normalizeWheelRaw))
149
168
  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")) {
169
+ if (hasRaw("wheel-multiplier"))
170
+ opts.wheelMultiplier = parseNum(getRaw("wheel-multiplier"), void 0);
171
+ if (hasRaw("touch-multiplier"))
172
+ opts.touchMultiplier = parseNum(getRaw("touch-multiplier"), void 0);
173
+ if (hasRaw("sync-touch"))
160
174
  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")) {
175
+ if (hasRaw("sync-touch-lerp"))
176
+ opts.syncTouchLerp = parseNum(getRaw("sync-touch-lerp"), void 0);
177
+ if (hasRaw("touch-inertia-exponent"))
178
+ opts.touchInertiaExponent = parseNum(
179
+ getRaw("touch-inertia-exponent"),
180
+ void 0
181
+ );
182
+ if (hasRaw("infinite"))
171
183
  opts.infinite = parseBool(getRaw("infinite"), false);
172
- }
173
- if (hasRaw("auto-resize")) {
184
+ if (hasRaw("auto-resize"))
174
185
  opts.autoResize = parseBool(getRaw("auto-resize"), true);
175
- }
176
- if (hasRaw("overscroll")) {
186
+ if (hasRaw("overscroll"))
177
187
  opts.overscroll = parseBool(getRaw("overscroll"), true);
178
- }
179
188
  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 {
189
+ var s = String(getRaw("anchors") || "").trim();
190
+ if (s === "" || s.toLowerCase() === "true") opts.anchors = true;
191
+ else if (s.toLowerCase() === "false") opts.anchors = false;
192
+ else {
187
193
  try {
188
194
  opts.anchors = JSON.parse(s);
189
195
  } catch (e) {
@@ -191,12 +197,10 @@
191
197
  }
192
198
  }
193
199
  }
194
- if (hasRaw("auto-toggle")) {
200
+ if (hasRaw("auto-toggle"))
195
201
  opts.autoToggle = parseBool(getRaw("auto-toggle"), false);
196
- }
197
- if (hasRaw("allow-nested-scroll")) {
202
+ if (hasRaw("allow-nested-scroll"))
198
203
  opts.allowNestedScroll = parseBool(getRaw("allow-nested-scroll"), false);
199
- }
200
204
  var extra = localOrGlobal(prefix + "options-json");
201
205
  if (extra) {
202
206
  try {
@@ -235,8 +239,51 @@
235
239
  document.head.appendChild(s);
236
240
  });
237
241
  }
242
+ function convertAnchorLinks() {
243
+ var raw = getAttr("rt-smooth-scroll-anchor-links");
244
+ if (!parseBool(raw, false)) return;
245
+ var links = document.querySelectorAll('a[href*="#"]');
246
+ var currentPath = window.location.pathname.replace(/\/+$/, "").toLowerCase();
247
+ var origin = window.location.origin;
248
+ for (var i = 0; i < links.length; i++) {
249
+ var link = links[i];
250
+ if (link.hasAttribute("rt-smooth-scroll-to")) continue;
251
+ var href = link.getAttribute("href");
252
+ if (!href) continue;
253
+ var hashIndex = href.indexOf("#");
254
+ if (hashIndex === -1) continue;
255
+ var pathPart = href.substring(0, hashIndex);
256
+ var hashPart = href.substring(hashIndex);
257
+ if (hashPart.length <= 1) continue;
258
+ var isLocal = false;
259
+ if (pathPart === "" || pathPart === "./") {
260
+ isLocal = true;
261
+ } else {
262
+ var normPath = pathPart.replace(/\/+$/, "").toLowerCase();
263
+ if (pathPart.indexOf("http") === 0) {
264
+ try {
265
+ var u = new URL(href, origin);
266
+ if (u.origin === origin && u.pathname.replace(/\/+$/, "").toLowerCase() === currentPath) {
267
+ isLocal = true;
268
+ }
269
+ } catch (e) {
270
+ }
271
+ } else if (normPath === currentPath) {
272
+ isLocal = true;
273
+ }
274
+ }
275
+ if (isLocal) {
276
+ link.setAttribute("rt-smooth-scroll-to", hashPart);
277
+ link.removeAttribute("href");
278
+ link.style.cursor = "pointer";
279
+ link.setAttribute("tabindex", "0");
280
+ link.setAttribute("role", "button");
281
+ }
282
+ }
283
+ }
238
284
  function init() {
239
285
  ensureAutoEnableIfNeeded();
286
+ convertAnchorLinks();
240
287
  var enabledRoot = hasAttrAnywhere("rt-smooth-scroll");
241
288
  var instanceEls = document.querySelectorAll("[rt-smooth-scroll-instance]");
242
289
  var hasInstances = instanceEls && instanceEls.length > 0;
@@ -256,7 +303,9 @@
256
303
  rafId: 0,
257
304
  instances: {},
258
305
  order: [],
259
- resizeTimers: {}
306
+ resizeTimers: {},
307
+ clickListener: null,
308
+ keyListener: null
260
309
  };
261
310
  function scheduleResize(id) {
262
311
  var inst = state.instances[id];
@@ -359,6 +408,86 @@
359
408
  }
360
409
  return inst;
361
410
  }
411
+ function setupScrollToListeners() {
412
+ if (state.clickListener) return;
413
+ var handleScrollAction = function(targetEl, e) {
414
+ var targetVal = targetEl.getAttribute("rt-smooth-scroll-to");
415
+ if (!targetVal) return;
416
+ if (e) e.preventDefault();
417
+ var target = null;
418
+ var numeric = parseFloat(targetVal);
419
+ if (targetVal === "top") {
420
+ target = 0;
421
+ } else if (!isNaN(numeric) && isFinite(numeric)) {
422
+ target = numeric;
423
+ } else {
424
+ target = resolveTargetFromStr(targetVal);
425
+ }
426
+ if (target === null && targetVal !== "top" && isNaN(numeric)) return;
427
+ var instance = null;
428
+ var explicitId = targetEl.getAttribute("rt-smooth-scroll-target-id");
429
+ if (explicitId && state.instances[explicitId]) {
430
+ instance = state.instances[explicitId];
431
+ } else {
432
+ var parentWrapper = targetEl.closest("[rt-smooth-scroll-instance]");
433
+ if (parentWrapper) {
434
+ var parentId = parentWrapper.getAttribute("rt-smooth-scroll-id");
435
+ if (parentId && state.instances[parentId]) {
436
+ instance = state.instances[parentId];
437
+ }
438
+ }
439
+ }
440
+ if (!instance && state.instances["root"]) {
441
+ instance = state.instances["root"];
442
+ }
443
+ if (!instance) return;
444
+ var opts = {};
445
+ var offsetRaw = targetEl.getAttribute("rt-smooth-scroll-offset");
446
+ if (offsetRaw) {
447
+ var offsetNum = parseFloat(offsetRaw);
448
+ if (!isNaN(offsetNum) && isFinite(offsetNum)) {
449
+ opts.offset = offsetNum;
450
+ } else {
451
+ var offsetEl = resolveTargetFromStr(offsetRaw);
452
+ if (offsetEl) opts.offset = -1 * offsetEl.offsetHeight;
453
+ }
454
+ }
455
+ var dur = parseNum(
456
+ targetEl.getAttribute("rt-smooth-scroll-duration"),
457
+ void 0
458
+ );
459
+ if (dur !== void 0) opts.duration = dur;
460
+ var immediate = parseBool(
461
+ targetEl.getAttribute("rt-smooth-scroll-immediate"),
462
+ null
463
+ );
464
+ if (immediate !== null) opts.immediate = immediate;
465
+ var lock = parseBool(
466
+ targetEl.getAttribute("rt-smooth-scroll-lock"),
467
+ null
468
+ );
469
+ if (lock !== null) opts.lock = lock;
470
+ var force = parseBool(
471
+ targetEl.getAttribute("rt-smooth-scroll-force"),
472
+ null
473
+ );
474
+ if (force !== null) opts.force = force;
475
+ instance.scrollTo(target, opts);
476
+ };
477
+ state.clickListener = function(e) {
478
+ var trigger = e.target.closest("[rt-smooth-scroll-to]");
479
+ if (trigger) handleScrollAction(trigger, e);
480
+ };
481
+ state.keyListener = function(e) {
482
+ if (e.key !== "Enter" && e.key !== " ") return;
483
+ var trigger = e.target.closest("[rt-smooth-scroll-to]");
484
+ if (trigger && !trigger.hasAttribute("href")) {
485
+ handleScrollAction(trigger, e);
486
+ }
487
+ };
488
+ document.addEventListener("click", state.clickListener);
489
+ document.addEventListener("keydown", state.keyListener);
490
+ }
362
491
  function makeApi() {
363
492
  function forEachTarget(id, fn) {
364
493
  if (typeof id === "string" && id.length) {
@@ -406,6 +535,9 @@
406
535
  scheduleResize(k);
407
536
  });
408
537
  },
538
+ refreshAnchors: function() {
539
+ convertAnchorLinks();
540
+ },
409
541
  destroy: function(id) {
410
542
  if (state.destroyed) return;
411
543
  function destroyOne(k) {
@@ -432,6 +564,14 @@
432
564
  destroyOne(id);
433
565
  return;
434
566
  }
567
+ if (state.clickListener) {
568
+ document.removeEventListener("click", state.clickListener);
569
+ state.clickListener = null;
570
+ }
571
+ if (state.keyListener) {
572
+ document.removeEventListener("keydown", state.keyListener);
573
+ state.keyListener = null;
574
+ }
435
575
  while (state.order.length) destroyOne(state.order[0]);
436
576
  state.destroyed = true;
437
577
  if (state.rafId) cancelAnimationFrame(state.rafId);
@@ -477,6 +617,7 @@
477
617
  if (!id) {
478
618
  autoCount++;
479
619
  id = "instance-" + autoCount;
620
+ el.setAttribute("rt-smooth-scroll-id", id);
480
621
  }
481
622
  if (state.instances[id]) continue;
482
623
  var content = getContentForWrapper(el);
@@ -487,12 +628,11 @@
487
628
  opts.autoRaf = false;
488
629
  createInstance(id, el, content, opts, false);
489
630
  }
490
- if (!allowAutoRaf) {
491
- startRaf();
492
- }
631
+ if (!allowAutoRaf) startRaf();
493
632
  var api = makeApi();
494
633
  window[RT_NS] = api;
495
634
  installLegacyAliases(api);
635
+ setupScrollToListeners();
496
636
  window.addEventListener("resize", function() {
497
637
  api.resize();
498
638
  });
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 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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",
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 resolveTargetFromStr(selectorStr) {\n if (!selectorStr) return null;\n var s = String(selectorStr).trim();\n if (!s) return null;\n if (s === \"window\") return window;\n\n var match = s.match(/^(.*)\\(\\s*(\\d+)\\s*\\)$/);\n if (match) {\n var baseSelector = match[1].trim();\n var index = parseInt(match[2], 10);\n if (!baseSelector || isNaN(index) || index < 1) return null;\n try {\n var all = document.querySelectorAll(baseSelector);\n return all[index - 1] || null;\n } catch (e) {\n return null;\n }\n }\n\n try {\n return document.querySelector(s);\n } catch (e) {\n return null;\n }\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 ensureAutoEnableIfNeeded() {\n var body = document.body;\n if (!body) return;\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\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 function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\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 opts.orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (hasRaw(\"gesture-orientation\"))\n opts.gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\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 if (hasRaw(\"wheel-multiplier\"))\n opts.wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (hasRaw(\"touch-multiplier\"))\n opts.touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (hasRaw(\"sync-touch\"))\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n if (hasRaw(\"sync-touch-lerp\"))\n opts.syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (hasRaw(\"touch-inertia-exponent\"))\n opts.touchInertiaExponent = parseNum(\n getRaw(\"touch-inertia-exponent\"),\n undefined,\n );\n if (hasRaw(\"infinite\"))\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n if (hasRaw(\"auto-resize\"))\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n if (hasRaw(\"overscroll\"))\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n\n if (hasRaw(\"anchors\")) {\n var s = String(getRaw(\"anchors\") || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") opts.anchors = true;\n else if (s.toLowerCase() === \"false\") 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 if (hasRaw(\"allow-nested-scroll\"))\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\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 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 convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var links = document.querySelectorAll('a[href*=\"#\"]');\n var currentPath = window.location.pathname\n .replace(/\\/+$/, \"\")\n .toLowerCase();\n var origin = window.location.origin;\n\n for (var i = 0; i < links.length; i++) {\n var link = links[i];\n if (link.hasAttribute(\"rt-smooth-scroll-to\")) continue;\n\n var href = link.getAttribute(\"href\");\n if (!href) continue;\n\n var hashIndex = href.indexOf(\"#\");\n if (hashIndex === -1) continue;\n\n var pathPart = href.substring(0, hashIndex);\n var hashPart = href.substring(hashIndex);\n\n if (hashPart.length <= 1) continue;\n\n var isLocal = false;\n if (pathPart === \"\" || pathPart === \"./\") {\n isLocal = true;\n } else {\n var normPath = pathPart.replace(/\\/+$/, \"\").toLowerCase();\n if (pathPart.indexOf(\"http\") === 0) {\n try {\n var u = new URL(href, origin);\n if (\n u.origin === origin &&\n u.pathname.replace(/\\/+$/, \"\").toLowerCase() === currentPath\n ) {\n isLocal = true;\n }\n } catch (e) {}\n } else if (normPath === currentPath) {\n isLocal = true;\n }\n }\n\n if (isLocal) {\n link.setAttribute(\"rt-smooth-scroll-to\", hashPart);\n\n // Remove href completely to hide status bar text\n link.removeAttribute(\"href\");\n\n // Restore accessibility and cursor\n link.style.cursor = \"pointer\";\n link.setAttribute(\"tabindex\", \"0\");\n link.setAttribute(\"role\", \"button\");\n }\n }\n }\n\n function init() {\n ensureAutoEnableIfNeeded();\n convertAnchorLinks();\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 var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0,\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 clickListener: null,\n keyListener: null,\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 var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\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 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 if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (id === \"root\") window.lenis = inst;\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 return inst;\n }\n\n function setupScrollToListeners() {\n if (state.clickListener) return;\n\n var handleScrollAction = function (targetEl, e) {\n var targetVal = targetEl.getAttribute(\"rt-smooth-scroll-to\");\n if (!targetVal) return;\n\n if (e) e.preventDefault();\n\n var target = null;\n var numeric = parseFloat(targetVal);\n\n if (targetVal === \"top\") {\n target = 0;\n } else if (!isNaN(numeric) && isFinite(numeric)) {\n target = numeric;\n } else {\n target = resolveTargetFromStr(targetVal);\n }\n\n if (target === null && targetVal !== \"top\" && isNaN(numeric)) return;\n\n var instance = null;\n var explicitId = targetEl.getAttribute(\"rt-smooth-scroll-target-id\");\n if (explicitId && state.instances[explicitId]) {\n instance = state.instances[explicitId];\n } else {\n var parentWrapper = targetEl.closest(\"[rt-smooth-scroll-instance]\");\n if (parentWrapper) {\n var parentId = parentWrapper.getAttribute(\"rt-smooth-scroll-id\");\n if (parentId && state.instances[parentId]) {\n instance = state.instances[parentId];\n }\n }\n }\n if (!instance && state.instances[\"root\"]) {\n instance = state.instances[\"root\"];\n }\n\n if (!instance) return;\n\n var opts = {};\n var offsetRaw = targetEl.getAttribute(\"rt-smooth-scroll-offset\");\n if (offsetRaw) {\n var offsetNum = parseFloat(offsetRaw);\n if (!isNaN(offsetNum) && isFinite(offsetNum)) {\n opts.offset = offsetNum;\n } else {\n var offsetEl = resolveTargetFromStr(offsetRaw);\n if (offsetEl) opts.offset = -1 * offsetEl.offsetHeight;\n }\n }\n var dur = parseNum(\n targetEl.getAttribute(\"rt-smooth-scroll-duration\"),\n undefined,\n );\n if (dur !== undefined) opts.duration = dur;\n var immediate = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-immediate\"),\n null,\n );\n if (immediate !== null) opts.immediate = immediate;\n var lock = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-lock\"),\n null,\n );\n if (lock !== null) opts.lock = lock;\n var force = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-force\"),\n null,\n );\n if (force !== null) opts.force = force;\n\n instance.scrollTo(target, opts);\n };\n\n state.clickListener = function (e) {\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger) handleScrollAction(trigger, e);\n };\n\n state.keyListener = function (e) {\n if (e.key !== \"Enter\" && e.key !== \" \") return;\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger && !trigger.hasAttribute(\"href\")) {\n handleScrollAction(trigger, e);\n }\n };\n\n document.addEventListener(\"click\", state.clickListener);\n document.addEventListener(\"keydown\", state.keyListener);\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 refreshAnchors: function () {\n convertAnchorLinks();\n },\n destroy: function (id) {\n if (state.destroyed) return;\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 if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n if (state.clickListener) {\n document.removeEventListener(\"click\", state.clickListener);\n state.clickListener = null;\n }\n if (state.keyListener) {\n document.removeEventListener(\"keydown\", state.keyListener);\n state.keyListener = null;\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 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 optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot,\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 createInstance(\"root\", null, null, optsRoot, true);\n }\n\n var autoCount = 0;\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 el.setAttribute(\"rt-smooth-scroll-id\", id);\n }\n if (state.instances[id]) continue;\n var content = getContentForWrapper(el);\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n setupScrollToListeners();\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.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}}})();})();
1
+ /*! @rethink-js/rt-smooth-scroll v1.2.0 | MIT */
2
+ (()=>{(function(){var x="rtSmoothScroll";if(window[x]&&window[x].__initialized)return;function A(o,u){return!o||!o.hasAttribute(u)?null:o.getAttribute(u)}function I(o){var u=document.documentElement,s=document.body,e=A(u,o);return e!==null||(e=A(s,o),e!==null)?e:null}function W(o){var u=document.documentElement,s=document.body;return!!(u&&u.hasAttribute(o)||s&&s.hasAttribute(o))}function m(o,u){if(o==null)return u;var s=String(o).trim().toLowerCase();return s===""||s==="true"||s==="1"||s==="yes"||s==="y"||s==="on"?!0:s==="false"||s==="0"||s==="no"||s==="n"||s==="off"?!1:u}function L(o,u){if(o==null)return u;var s=String(o).trim();if(!s.length)return u;var e=Number(s);return Number.isFinite(e)?e:u}function R(o,u){if(o==null)return u;var s=String(o);return s.length?s:u}function w(o){return o<0?0:o>1?1:o}function $(o){if(!o)return null;var u=String(o).trim();if(!u)return null;if(u==="window")return window;var s=u.match(/^(.*)\(\s*(\d+)\s*\)$/);if(s){var e=s[1].trim(),c=parseInt(s[2],10);if(!e||isNaN(c)||c<1)return null;try{var a=document.querySelectorAll(e);return a[c-1]||null}catch(g){return null}}try{return document.querySelector(u)}catch(g){return null}}function V(o){var u=String(o||"").trim();if(!u)return null;var s={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 s[u]||null}function K(){var o=document.body;if(o){var u=document.querySelectorAll("[rt-smooth-scroll-instance]"),s=u&&u.length>0;!W("rt-smooth-scroll")&&!s&&o.setAttribute("rt-smooth-scroll","")}}function E(o){return o!=null}function Q(o){var u="rt-smooth-scroll-";function s(t){var n=o(t);return E(n)?n:I(t)}function e(t){return s(u+t)}function c(t){return E(e(t))}var a={},g=c("lerp"),r=L(e("lerp"),void 0),S=c("duration"),N=L(e("duration"),void 0),z=c("easing"),C=R(e("easing"),""),O=V(C);g&&r!==void 0?a.lerp=r:(S&&N!==void 0&&(a.duration=N),z&&O&&(a.easing=O)),c("orientation")&&(a.orientation=R(e("orientation"),"")),c("gesture-orientation")&&(a.gestureOrientation=R(e("gesture-orientation"),""));var M=e("smooth-wheel"),_=e("normalize-wheel");if(E(M)?a.smoothWheel=m(M,!0):E(_)&&(a.smoothWheel=m(_,!0)),c("wheel-multiplier")&&(a.wheelMultiplier=L(e("wheel-multiplier"),void 0)),c("touch-multiplier")&&(a.touchMultiplier=L(e("touch-multiplier"),void 0)),c("sync-touch")&&(a.syncTouch=m(e("sync-touch"),!1)),c("sync-touch-lerp")&&(a.syncTouchLerp=L(e("sync-touch-lerp"),void 0)),c("touch-inertia-exponent")&&(a.touchInertiaExponent=L(e("touch-inertia-exponent"),void 0)),c("infinite")&&(a.infinite=m(e("infinite"),!1)),c("auto-resize")&&(a.autoResize=m(e("auto-resize"),!0)),c("overscroll")&&(a.overscroll=m(e("overscroll"),!0)),c("anchors")){var k=String(e("anchors")||"").trim();if(k===""||k.toLowerCase()==="true")a.anchors=!0;else if(k.toLowerCase()==="false")a.anchors=!1;else try{a.anchors=JSON.parse(k)}catch(t){a.anchors=!0}}c("auto-toggle")&&(a.autoToggle=m(e("auto-toggle"),!1)),c("allow-nested-scroll")&&(a.allowNestedScroll=m(e("allow-nested-scroll"),!1));var j=s(u+"options-json");if(j)try{var q=JSON.parse(j);if(q&&typeof q=="object")for(var i in q)a[i]=q[i]}catch(t){}return a}function X(o){return new Promise(function(u,s){if(typeof window.Lenis!="undefined")return u();var e=document.querySelector('script[data-rt-lenis="true"]');if(e){e.addEventListener("load",function(){u()}),e.addEventListener("error",function(a){s(a)});return}var c=document.createElement("script");c.src=o,c.async=!0,c.dataset.rtLenis="true",c.onload=function(){u()},c.onerror=function(a){s(a)},document.head.appendChild(c)})}function B(){var o=I("rt-smooth-scroll-anchor-links");if(m(o,!1))for(var u=document.querySelectorAll('a[href*="#"]'),s=window.location.pathname.replace(/\/+$/,"").toLowerCase(),e=window.location.origin,c=0;c<u.length;c++){var a=u[c];if(!a.hasAttribute("rt-smooth-scroll-to")){var g=a.getAttribute("href");if(g){var r=g.indexOf("#");if(r!==-1){var S=g.substring(0,r),N=g.substring(r);if(!(N.length<=1)){var z=!1;if(S===""||S==="./")z=!0;else{var C=S.replace(/\/+$/,"").toLowerCase();if(S.indexOf("http")===0)try{var O=new URL(g,e);O.origin===e&&O.pathname.replace(/\/+$/,"").toLowerCase()===s&&(z=!0)}catch(M){}else C===s&&(z=!0)}z&&(a.setAttribute("rt-smooth-scroll-to",N),a.removeAttribute("href"),a.style.cursor="pointer",a.setAttribute("tabindex","0"),a.setAttribute("role","button"))}}}}}}function J(){K(),B();var o=W("rt-smooth-scroll"),u=document.querySelectorAll("[rt-smooth-scroll-instance]"),s=u&&u.length>0,e=o||s;if(!e)return;var c=R(I("rt-smooth-scroll-lenis-src"),"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"),a=L(I("rt-smooth-scroll-resize-debounce-ms"),0),g=m(I("rt-smooth-scroll-debug"),!0),r={destroyed:!1,rafId:0,instances:{},order:[],resizeTimers:{},clickListener:null,keyListener:null};function S(i){var t=r.instances[i];if(!(!t||r.destroyed)){if(a>0){clearTimeout(r.resizeTimers[i]),r.resizeTimers[i]=setTimeout(function(){var n=r.instances[i];!n||r.destroyed||n.resize()},a);return}t.resize()}}function N(){function i(t){if(!r.destroyed){for(var n=0;n<r.order.length;n++){var l=r.order[n],f=r.instances[l];f&&f.raf(t)}r.rafId=requestAnimationFrame(i)}}r.rafId=requestAnimationFrame(i)}function z(i){var t={};for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var l=i[n];typeof l=="function"?t[n]="[Function]":t[n]=l}return t}function C(i,t){if(!t)return null;var n=String(t).trim();if(!n.length)return null;if(n==="window")return window;try{return(i||document).querySelector(n)}catch(l){return null}}function O(i,t){var n="rt-smooth-scroll-",l=A(i,n+"wrapper"),f=A(i,n+"content"),d=A(i,n+"events-target");if(l){var v=C(document,l);v&&(t.wrapper=v)}if(f){var y=C(document,f);y&&(t.content=y)}if(d){var h=C(document,d);h&&(t.eventsTarget=h)}return t}function M(i){var t=A(i,"rt-smooth-scroll-content");if(t){var n=null;try{n=i.querySelector(t)}catch(l){n=null}if(n)return n}return i.firstElementChild||i}function _(i,t,n,l,f){var d=l||{};f||(t&&(d.wrapper=t),n&&(d.content=n));var v=new window.Lenis(d);if(r.instances[i]=v,r.order.push(i),i==="root"&&(window.lenis=v),g)try{console.log("[rt-smooth-scroll] instance:",i,{wrapper:f?d.wrapper||"default":t,content:f?d.content||"default":n,options:z(d)})}catch(y){}return v}function k(){if(!r.clickListener){var i=function(t,n){var l=t.getAttribute("rt-smooth-scroll-to");if(l){n&&n.preventDefault();var f=null,d=parseFloat(l);if(l==="top"?f=0:!isNaN(d)&&isFinite(d)?f=d:f=$(l),!(f===null&&l!=="top"&&isNaN(d))){var v=null,y=t.getAttribute("rt-smooth-scroll-target-id");if(y&&r.instances[y])v=r.instances[y];else{var h=t.closest("[rt-smooth-scroll-instance]");if(h){var p=h.getAttribute("rt-smooth-scroll-id");p&&r.instances[p]&&(v=r.instances[p])}}if(!v&&r.instances.root&&(v=r.instances.root),!!v){var b={},T=t.getAttribute("rt-smooth-scroll-offset");if(T){var F=parseFloat(T);if(!isNaN(F)&&isFinite(F))b.offset=F;else{var D=$(T);D&&(b.offset=-1*D.offsetHeight)}}var G=L(t.getAttribute("rt-smooth-scroll-duration"),void 0);G!==void 0&&(b.duration=G);var H=m(t.getAttribute("rt-smooth-scroll-immediate"),null);H!==null&&(b.immediate=H);var P=m(t.getAttribute("rt-smooth-scroll-lock"),null);P!==null&&(b.lock=P);var U=m(t.getAttribute("rt-smooth-scroll-force"),null);U!==null&&(b.force=U),v.scrollTo(f,b)}}}};r.clickListener=function(t){var n=t.target.closest("[rt-smooth-scroll-to]");n&&i(n,t)},r.keyListener=function(t){if(!(t.key!=="Enter"&&t.key!==" ")){var n=t.target.closest("[rt-smooth-scroll-to]");n&&!n.hasAttribute("href")&&i(n,t)}},document.addEventListener("click",r.clickListener),document.addEventListener("keydown",r.keyListener)}}function j(){function i(t,n){if(typeof t=="string"&&t.length){var l=r.instances[t];l&&n(t,l);return}for(var f=0;f<r.order.length;f++){var d=r.order[f],v=r.instances[d];v&&n(d,v)}}return{__initialized:!0,ids:function(){return r.order.slice()},get:function(t){return r.instances[t]||null},start:function(t){i(t,function(n,l){l.start()})},stop:function(t){i(t,function(n,l){l.stop()})},toggle:function(t,n){i(t,function(l,f){if(typeof n=="boolean"){n?f.stop():f.start();return}f.isStopped?f.start():f.stop()})},resize:function(t){i(t,function(n){S(n)})},refreshAnchors:function(){B()},destroy:function(t){if(r.destroyed)return;function n(l){clearTimeout(r.resizeTimers[l]);var f=r.instances[l];if(f){try{f.destroy()}catch(v){}delete r.instances[l]}var d=r.order.indexOf(l);if(d>=0&&r.order.splice(d,1),l==="root")try{delete window.lenis}catch(v){window.lenis=void 0}}if(typeof t=="string"&&t.length){n(t);return}for(r.clickListener&&(document.removeEventListener("click",r.clickListener),r.clickListener=null),r.keyListener&&(document.removeEventListener("keydown",r.keyListener),r.keyListener=null);r.order.length;)n(r.order[0]);r.destroyed=!0,r.rafId&&cancelAnimationFrame(r.rafId)}}}function q(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")}}X(c).then(function(){if(!r.destroyed){var i=document.querySelectorAll("[rt-smooth-scroll-instance]"),t=(o?1:0)+(i?i.length:0),n=t===1&&o&&(!i||i.length===0);if(o&&!r.instances.root){var l=Q(function(){return null});if(l=O(document.body||document.documentElement,l),n){var f=I("rt-smooth-scroll-auto-raf"),d=E(f)?m(f,!0):!0;l.autoRaf=d}else l.autoRaf=!1;_("root",null,null,l,!0)}for(var v=0,y=0;y<i.length;y++){var h=i[y],p=A(h,"rt-smooth-scroll-id");if(p||(v++,p="instance-"+v,h.setAttribute("rt-smooth-scroll-id",p)),!r.instances[p]){var b=M(h),T=Q(function(D){return A(h,D)});T=O(h,T),T.autoRaf=!1,_(p,h,b,T,!1)}}n||N();var F=j();window[x]=F,q(F),k(),window.addEventListener("resize",function(){F.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",J):J(),window[x]=window[x]||{__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 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"]
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 resolveTargetFromStr(selectorStr) {\n if (!selectorStr) return null;\n var s = String(selectorStr).trim();\n if (!s) return null;\n if (s === \"window\") return window;\n\n var match = s.match(/^(.*)\\(\\s*(\\d+)\\s*\\)$/);\n if (match) {\n var baseSelector = match[1].trim();\n var index = parseInt(match[2], 10);\n if (!baseSelector || isNaN(index) || index < 1) return null;\n try {\n var all = document.querySelectorAll(baseSelector);\n return all[index - 1] || null;\n } catch (e) {\n return null;\n }\n }\n\n try {\n return document.querySelector(s);\n } catch (e) {\n return null;\n }\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 ensureAutoEnableIfNeeded() {\n var body = document.body;\n if (!body) return;\n var instances = document.querySelectorAll(\"[rt-smooth-scroll-instance]\");\n var hasInstances = instances && instances.length > 0;\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 function localOrGlobal(name) {\n var v = getLocal(name);\n if (isAttrPresent(v)) return v;\n return getAttr(name);\n }\n function getRaw(name) {\n return localOrGlobal(prefix + name);\n }\n function hasRaw(name) {\n return isAttrPresent(getRaw(name));\n }\n\n var opts = {};\n var hasLerp = hasRaw(\"lerp\");\n var lerp = parseNum(getRaw(\"lerp\"), undefined);\n var hasDuration = hasRaw(\"duration\");\n var duration = parseNum(getRaw(\"duration\"), undefined);\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 opts.orientation = parseStr(getRaw(\"orientation\"), \"\");\n if (hasRaw(\"gesture-orientation\"))\n opts.gestureOrientation = parseStr(getRaw(\"gesture-orientation\"), \"\");\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 if (hasRaw(\"wheel-multiplier\"))\n opts.wheelMultiplier = parseNum(getRaw(\"wheel-multiplier\"), undefined);\n if (hasRaw(\"touch-multiplier\"))\n opts.touchMultiplier = parseNum(getRaw(\"touch-multiplier\"), undefined);\n if (hasRaw(\"sync-touch\"))\n opts.syncTouch = parseBool(getRaw(\"sync-touch\"), false);\n if (hasRaw(\"sync-touch-lerp\"))\n opts.syncTouchLerp = parseNum(getRaw(\"sync-touch-lerp\"), undefined);\n if (hasRaw(\"touch-inertia-exponent\"))\n opts.touchInertiaExponent = parseNum(\n getRaw(\"touch-inertia-exponent\"),\n undefined,\n );\n if (hasRaw(\"infinite\"))\n opts.infinite = parseBool(getRaw(\"infinite\"), false);\n if (hasRaw(\"auto-resize\"))\n opts.autoResize = parseBool(getRaw(\"auto-resize\"), true);\n if (hasRaw(\"overscroll\"))\n opts.overscroll = parseBool(getRaw(\"overscroll\"), true);\n\n if (hasRaw(\"anchors\")) {\n var s = String(getRaw(\"anchors\") || \"\").trim();\n if (s === \"\" || s.toLowerCase() === \"true\") opts.anchors = true;\n else if (s.toLowerCase() === \"false\") 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 if (hasRaw(\"allow-nested-scroll\"))\n opts.allowNestedScroll = parseBool(getRaw(\"allow-nested-scroll\"), false);\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 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 convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var links = document.querySelectorAll('a[href*=\"#\"]');\n var currentPath = window.location.pathname\n .replace(/\\/+$/, \"\")\n .toLowerCase();\n var origin = window.location.origin;\n\n for (var i = 0; i < links.length; i++) {\n var link = links[i];\n if (link.hasAttribute(\"rt-smooth-scroll-to\")) continue;\n\n var href = link.getAttribute(\"href\");\n if (!href) continue;\n\n var hashIndex = href.indexOf(\"#\");\n if (hashIndex === -1) continue;\n\n var pathPart = href.substring(0, hashIndex);\n var hashPart = href.substring(hashIndex);\n\n if (hashPart.length <= 1) continue;\n\n var isLocal = false;\n if (pathPart === \"\" || pathPart === \"./\") {\n isLocal = true;\n } else {\n var normPath = pathPart.replace(/\\/+$/, \"\").toLowerCase();\n if (pathPart.indexOf(\"http\") === 0) {\n try {\n var u = new URL(href, origin);\n if (\n u.origin === origin &&\n u.pathname.replace(/\\/+$/, \"\").toLowerCase() === currentPath\n ) {\n isLocal = true;\n }\n } catch (e) {}\n } else if (normPath === currentPath) {\n isLocal = true;\n }\n }\n\n if (isLocal) {\n link.setAttribute(\"rt-smooth-scroll-to\", hashPart);\n\n // Remove href completely to hide status bar text\n link.removeAttribute(\"href\");\n\n // Restore accessibility and cursor\n link.style.cursor = \"pointer\";\n link.setAttribute(\"tabindex\", \"0\");\n link.setAttribute(\"role\", \"button\");\n }\n }\n }\n\n function init() {\n ensureAutoEnableIfNeeded();\n convertAnchorLinks();\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 var resizeDebounceMs = parseNum(\n getAttr(\"rt-smooth-scroll-resize-debounce-ms\"),\n 0,\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 clickListener: null,\n keyListener: null,\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 var wrapperSel = getAttrFrom(el, prefix + \"wrapper\");\n var contentSel = getAttrFrom(el, prefix + \"content\");\n var eventsSel = getAttrFrom(el, prefix + \"events-target\");\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 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 if (!isRoot) {\n if (wrapper) opts.wrapper = wrapper;\n if (content) opts.content = content;\n }\n var inst = new window.Lenis(opts);\n state.instances[id] = inst;\n state.order.push(id);\n if (id === \"root\") window.lenis = inst;\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 return inst;\n }\n\n function setupScrollToListeners() {\n if (state.clickListener) return;\n\n var handleScrollAction = function (targetEl, e) {\n var targetVal = targetEl.getAttribute(\"rt-smooth-scroll-to\");\n if (!targetVal) return;\n\n if (e) e.preventDefault();\n\n var target = null;\n var numeric = parseFloat(targetVal);\n\n if (targetVal === \"top\") {\n target = 0;\n } else if (!isNaN(numeric) && isFinite(numeric)) {\n target = numeric;\n } else {\n target = resolveTargetFromStr(targetVal);\n }\n\n if (target === null && targetVal !== \"top\" && isNaN(numeric)) return;\n\n var instance = null;\n var explicitId = targetEl.getAttribute(\"rt-smooth-scroll-target-id\");\n if (explicitId && state.instances[explicitId]) {\n instance = state.instances[explicitId];\n } else {\n var parentWrapper = targetEl.closest(\"[rt-smooth-scroll-instance]\");\n if (parentWrapper) {\n var parentId = parentWrapper.getAttribute(\"rt-smooth-scroll-id\");\n if (parentId && state.instances[parentId]) {\n instance = state.instances[parentId];\n }\n }\n }\n if (!instance && state.instances[\"root\"]) {\n instance = state.instances[\"root\"];\n }\n\n if (!instance) return;\n\n var opts = {};\n var offsetRaw = targetEl.getAttribute(\"rt-smooth-scroll-offset\");\n if (offsetRaw) {\n var offsetNum = parseFloat(offsetRaw);\n if (!isNaN(offsetNum) && isFinite(offsetNum)) {\n opts.offset = offsetNum;\n } else {\n var offsetEl = resolveTargetFromStr(offsetRaw);\n if (offsetEl) opts.offset = -1 * offsetEl.offsetHeight;\n }\n }\n var dur = parseNum(\n targetEl.getAttribute(\"rt-smooth-scroll-duration\"),\n undefined,\n );\n if (dur !== undefined) opts.duration = dur;\n var immediate = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-immediate\"),\n null,\n );\n if (immediate !== null) opts.immediate = immediate;\n var lock = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-lock\"),\n null,\n );\n if (lock !== null) opts.lock = lock;\n var force = parseBool(\n targetEl.getAttribute(\"rt-smooth-scroll-force\"),\n null,\n );\n if (force !== null) opts.force = force;\n\n instance.scrollTo(target, opts);\n };\n\n state.clickListener = function (e) {\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger) handleScrollAction(trigger, e);\n };\n\n state.keyListener = function (e) {\n if (e.key !== \"Enter\" && e.key !== \" \") return;\n var trigger = e.target.closest(\"[rt-smooth-scroll-to]\");\n if (trigger && !trigger.hasAttribute(\"href\")) {\n handleScrollAction(trigger, e);\n }\n };\n\n document.addEventListener(\"click\", state.clickListener);\n document.addEventListener(\"keydown\", state.keyListener);\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 refreshAnchors: function () {\n convertAnchorLinks();\n },\n destroy: function (id) {\n if (state.destroyed) return;\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 if (typeof id === \"string\" && id.length) {\n destroyOne(id);\n return;\n }\n if (state.clickListener) {\n document.removeEventListener(\"click\", state.clickListener);\n state.clickListener = null;\n }\n if (state.keyListener) {\n document.removeEventListener(\"keydown\", state.keyListener);\n state.keyListener = null;\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 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 optsRoot = applySelectorsToOptions(\n document.body || document.documentElement,\n optsRoot,\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 createInstance(\"root\", null, null, optsRoot, true);\n }\n\n var autoCount = 0;\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 el.setAttribute(\"rt-smooth-scroll-id\", id);\n }\n if (state.instances[id]) continue;\n var content = getContentForWrapper(el);\n var opts = readOptions(function (name) {\n return getAttrFrom(el, name);\n });\n opts = applySelectorsToOptions(el, opts);\n opts.autoRaf = false;\n createInstance(id, el, content, opts, false);\n }\n\n if (!allowAutoRaf) startRaf();\n\n var api = makeApi();\n window[RT_NS] = api;\n installLegacyAliases(api);\n\n setupScrollToListeners();\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", "parseNum", "n", "parseStr", "clamp01", "t", "resolveTargetFromStr", "selectorStr", "s", "match", "baseSelector", "index", "all", "e", "easingByName", "easings", "ensureAutoEnableIfNeeded", "instances", "hasInstances", "isAttrPresent", "readOptions", "getLocal", "prefix", "localOrGlobal", "getRaw", "hasRaw", "opts", "hasLerp", "lerp", "hasDuration", "duration", "hasEasing", "easingName", "easingFn", "smoothWheelRaw", "normalizeWheelRaw", "extra", "parsed", "k", "loadScriptOnce", "src", "resolve", "reject", "existing", "convertAnchorLinks", "raw", "links", "currentPath", "origin", "i", "link", "href", "hashIndex", "pathPart", "hashPart", "isLocal", "normPath", "u", "init", "enabledRoot", "instanceEls", "shouldRun", "lenisSrc", "resizeDebounceMs", "debug", "state", "scheduleResize", "id", "inst", "i2", "startRaf", "raf", "time", "sanitizeOptionsForLog", "out", "resolveElementFromSelector", "base", "selector", "applySelectorsToOptions", "wrapperSel", "contentSel", "eventsSel", "w", "c", "et", "getContentForWrapper", "wrapperEl", "found", "createInstance", "wrapper", "content", "options", "isRoot", "setupScrollToListeners", "handleScrollAction", "targetEl", "targetVal", "target", "numeric", "instance", "explicitId", "parentWrapper", "parentId", "offsetRaw", "offsetNum", "offsetEl", "dur", "immediate", "lock", "force", "trigger", "makeApi", "forEachTarget", "fn", "one", "_", "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.1.0",
3
+ "version": "1.2.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",