@rethink-js/rt-smooth-scroll 1.2.1 → 1.3.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
@@ -4,7 +4,6 @@
4
4
  ![JavaScript](https://img.shields.io/badge/language-JavaScript-F7DF1E?logo=javascript)
5
5
  [![npm version](https://img.shields.io/npm/v/%40rethink-js%2Frt-smooth-scroll.svg)](https://www.npmjs.com/package/@rethink-js/rt-smooth-scroll)
6
6
  [![jsDelivr hits](https://data.jsdelivr.com/v1/package/npm/@rethink-js/rt-smooth-scroll/badge)](https://www.jsdelivr.com/package/npm/@rethink-js/rt-smooth-scroll)
7
- [![bundle size](https://img.shields.io/bundlephobia/min/%40rethink-js%2Frt-smooth-scroll)](https://bundlephobia.com/package/@rethink-js/rt-smooth-scroll)
8
7
  [![License: MIT](https://img.shields.io/badge/License-MIT-FFD632.svg)](https://opensource.org/licenses/MIT)
9
8
 
10
9
  `rt-smooth-scroll` is a lightweight JavaScript library that seamlessly integrates the **Lenis smooth scroll engine** into your sites with:
@@ -15,6 +14,7 @@
15
14
  - A clean global API under `window.rtSmoothScroll`
16
15
  - **Smart Scroll-To actions** with indexed selectors and dynamic offsets
17
16
  - **Automatic Anchor Link Conversion** (hijack native links for smooth scrolling)
17
+ - **Scroll-To Completion Hooks** (run actions/functions after a scroll-to completes)
18
18
  - Per-instance configuration via HTML attributes
19
19
  - Console logs showing each instance’s final resolved config
20
20
 
@@ -45,7 +45,7 @@
45
45
  ### 1.1 CDN (jsDelivr)
46
46
 
47
47
  ```html
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>
48
+ <script src="https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js"></script>
49
49
  ```
50
50
 
51
51
  ### 1.2 npm
@@ -70,7 +70,7 @@ Add the script to your page. With no configuration provided, `rt-smooth-scroll`
70
70
  Example:
71
71
 
72
72
  ```html
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>
73
+ <script src="https://cdn.jsdelivr.net/npm/@rethink-js/rt-smooth-scroll@latest/dist/index.min.js"></script>
74
74
  ```
75
75
 
76
76
  > Note: If you do not set any `rt-smooth-scroll-*` config attributes, the root instance uses **Lenis defaults**.
@@ -117,21 +117,27 @@ Important Lenis behavior:
117
117
 
118
118
  **Core attributes:**
119
119
 
120
- | Attribute | Description |
121
- | ------------------------------------------- | ------------------------------------------------------------ |
122
- | `rt-smooth-scroll-duration` | Lenis `duration` (only applies when `lerp` is not used) |
123
- | `rt-smooth-scroll-lerp` | Lenis `lerp` (0 → 1) |
124
- | `rt-smooth-scroll-orientation` | Lenis `orientation` |
125
- | `rt-smooth-scroll-gesture-orientation` | Lenis `gestureOrientation` |
126
- | `rt-smooth-scroll-normalize-wheel` | Lenis `normalizeWheel` |
127
- | `rt-smooth-scroll-wheel-multiplier` | Lenis `wheelMultiplier` |
128
- | `rt-smooth-scroll-smooth-touch` | Lenis `smoothTouch` |
129
- | `rt-smooth-scroll-sync-touch` | Lenis `syncTouch` |
130
- | `rt-smooth-scroll-sync-touch-lerp` | Lenis `syncTouchLerp` |
131
- | `rt-smooth-scroll-touch-inertia-multiplier` | Lenis `touchInertiaMultiplier` |
132
- | `rt-smooth-scroll-touch-multiplier` | Lenis `touchMultiplier` |
133
- | `rt-smooth-scroll-infinite` | Lenis `infinite` |
134
- | `rt-smooth-scroll-easing` | Named easing function (only applies when `lerp` is not used) |
120
+ | Attribute | Description |
121
+ | ----------------------------------------- | ------------------------------------------------------------ |
122
+ | `rt-smooth-scroll-duration` | Lenis `duration` (only applies when `lerp` is not used) |
123
+ | `rt-smooth-scroll-lerp` | Lenis `lerp` (0 → 1) |
124
+ | `rt-smooth-scroll-orientation` | Lenis `orientation` |
125
+ | `rt-smooth-scroll-gesture-orientation` | Lenis `gestureOrientation` |
126
+ | `rt-smooth-scroll-normalize-wheel` | Alias of Lenis `smoothWheel` (legacy naming supported) |
127
+ | `rt-smooth-scroll-smooth-wheel` | Lenis `smoothWheel` |
128
+ | `rt-smooth-scroll-wheel-multiplier` | Lenis `wheelMultiplier` |
129
+ | `rt-smooth-scroll-touch-multiplier` | Lenis `touchMultiplier` |
130
+ | `rt-smooth-scroll-sync-touch` | Lenis `syncTouch` |
131
+ | `rt-smooth-scroll-sync-touch-lerp` | Lenis `syncTouchLerp` |
132
+ | `rt-smooth-scroll-touch-inertia-exponent` | Lenis `touchInertiaExponent` |
133
+ | `rt-smooth-scroll-infinite` | Lenis `infinite` |
134
+ | `rt-smooth-scroll-auto-resize` | Lenis `autoResize` |
135
+ | `rt-smooth-scroll-overscroll` | Lenis `overscroll` |
136
+ | `rt-smooth-scroll-anchors` | Lenis `anchors` (boolean or JSON) |
137
+ | `rt-smooth-scroll-auto-toggle` | Lenis `autoToggle` |
138
+ | `rt-smooth-scroll-allow-nested-scroll` | Lenis `allowNestedScroll` |
139
+ | `rt-smooth-scroll-easing` | Named easing function (only applies when `lerp` is not used) |
140
+ | `rt-smooth-scroll-options-json` | Merge additional Lenis options via JSON |
135
141
 
136
142
  **Easing options included:**
137
143
 
@@ -164,6 +170,31 @@ Add attributes to any scroll container:
164
170
  | `rt-smooth-scroll-id` | Optional instance identifier |
165
171
  | `rt-smooth-scroll-content` | Selector inside container (defaults to first child if omitted) |
166
172
 
173
+ ### Advanced Selectors (wrapper/content/eventsTarget)
174
+
175
+ You can map Lenis DOM targets using selectors:
176
+
177
+ ```html
178
+ <body
179
+ rt-smooth-scroll
180
+ rt-smooth-scroll-wrapper="#page-wrapper"
181
+ rt-smooth-scroll-content="#page-content"
182
+ rt-smooth-scroll-events-target="#page-wrapper"
183
+ ></body>
184
+ ```
185
+
186
+ Or per instance:
187
+
188
+ ```html
189
+ <div
190
+ rt-smooth-scroll-instance
191
+ rt-smooth-scroll-id="panel"
192
+ rt-smooth-scroll-wrapper="#panel-wrapper"
193
+ rt-smooth-scroll-content=".panel-content"
194
+ rt-smooth-scroll-events-target="#panel-wrapper"
195
+ ></div>
196
+ ```
197
+
167
198
  ---
168
199
 
169
200
  ## 5. Scroll-To Actions
@@ -211,6 +242,126 @@ Instead of hardcoding pixels, you can pass a selector to `rt-smooth-scroll-offse
211
242
  </button>
212
243
  ```
213
244
 
245
+ ### Scroll-To Completion Hooks
246
+
247
+ When a scroll-to finishes (including the built-in correction pass for layout shifts), you can run an action/function.
248
+
249
+ **Supported hook attributes:**
250
+
251
+ - Per-trigger: `rt-smooth-scroll-on-complete`
252
+ - Global default: `rt-smooth-scroll-on-complete` on `<html>` or `<body>`
253
+
254
+ #### 5.1 Per-trigger completion action
255
+
256
+ Click an element after the scroll completes:
257
+
258
+ ```html
259
+ <a rt-smooth-scroll-to="#contact" rt-smooth-scroll-on-complete="#nav-show">
260
+ Contact
261
+ </a>
262
+ ```
263
+
264
+ The shorthand above treats the value as a selector and will `click()` it.
265
+
266
+ You can also be explicit:
267
+
268
+ ```html
269
+ <a
270
+ rt-smooth-scroll-to="#contact"
271
+ rt-smooth-scroll-on-complete="click:#nav-show"
272
+ >
273
+ Contact
274
+ </a>
275
+ ```
276
+
277
+ #### 5.2 Global default completion action
278
+
279
+ Apply to all scroll-to triggers unless they override it:
280
+
281
+ ```html
282
+ <body rt-smooth-scroll rt-smooth-scroll-on-complete="click:#nav-show"></body>
283
+ ```
284
+
285
+ #### 5.3 Supported completion action formats
286
+
287
+ **1) Selector-only (defaults to click)**
288
+
289
+ ```html
290
+ <button rt-smooth-scroll-to="#x" rt-smooth-scroll-on-complete="#nav-show">
291
+ Go
292
+ </button>
293
+ ```
294
+
295
+ **2) Typed strings**
296
+
297
+ - `click:#selector`
298
+ - `focus:#selector`
299
+ - `dispatch:event-name` (fires `CustomEvent` on `window`)
300
+ - `call:functionName` (calls `window[functionName]`)
301
+
302
+ Examples:
303
+
304
+ ```html
305
+ <button rt-smooth-scroll-to="#x" rt-smooth-scroll-on-complete="focus:#search">
306
+ Go
307
+ </button>
308
+
309
+ <button
310
+ rt-smooth-scroll-to="#x"
311
+ rt-smooth-scroll-on-complete="dispatch:rt:smooth-scroll:complete"
312
+ >
313
+ Go
314
+ </button>
315
+
316
+ <button
317
+ rt-smooth-scroll-to="#x"
318
+ rt-smooth-scroll-on-complete="call:afterScroll"
319
+ >
320
+ Go
321
+ </button>
322
+ ```
323
+
324
+ When using `call:functionName`, your function receives a single object:
325
+
326
+ ```js
327
+ window.afterScroll = function (ctx) {
328
+ console.log("afterScroll", ctx);
329
+ };
330
+ ```
331
+
332
+ `ctx` includes:
333
+
334
+ - `lenis` (the Lenis instance used)
335
+ - `trigger` (the element that initiated the scroll)
336
+ - `target` (resolved target number/element/window)
337
+ - `value` (the raw `rt-smooth-scroll-to` string)
338
+ - `id` (the explicit `rt-smooth-scroll-target-id` if provided)
339
+
340
+ **3) JSON actions (single or array)**
341
+
342
+ This is the most robust option for multi-step actions:
343
+
344
+ ```html
345
+ <button
346
+ rt-smooth-scroll-to="#x"
347
+ rt-smooth-scroll-on-complete='[
348
+ {"type":"click","selector":"#nav-show"},
349
+ {"type":"dispatch","name":"rt:smooth-scroll:complete","detail":{"from":"scroll-to"}}
350
+ ]'
351
+ >
352
+ Go
353
+ </button>
354
+ ```
355
+
356
+ Supported JSON action types:
357
+
358
+ - `{ "type": "click", "selector": "#el" }`
359
+ - `{ "type": "focus", "selector": "#el" }`
360
+ - `{ "type": "dispatch", "name": "event-name", "detail": any }`
361
+ - `{ "type": "call", "name": "functionName", "detail": any }`
362
+
363
+ For `dispatch` and `call`, `detail` is merged into the context under `detail`.
364
+
214
365
  ---
215
366
 
216
367
  ## 6. Anchor Link Conversion
@@ -230,7 +381,24 @@ Add this attribute to your `<body>` or `<html>` tag:
230
381
  1. **Auto-Detection:** Finds all links pointing to a hash on the current page.
231
382
  2. **Hijacking:** Converts them to use the `rt-smooth-scroll-to` logic.
232
383
  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.
384
+ 4. **Accessibility:** Automatically restores `tabindex="0"`, `role="button"`, `cursor: pointer`, and keyboard `Enter` / `Space` key support.
385
+
386
+ ### Anchor link completion hook (auto-injected)
387
+
388
+ You can automatically attach a completion hook to every converted anchor link:
389
+
390
+ ```html
391
+ <body
392
+ rt-smooth-scroll
393
+ rt-smooth-scroll-anchor-links="true"
394
+ rt-smooth-scroll-anchor-links-on-complete="click:#nav-show"
395
+ ></body>
396
+ ```
397
+
398
+ Rules:
399
+
400
+ - If a link already has `rt-smooth-scroll-on-complete`, it is not overridden.
401
+ - If `rt-smooth-scroll-anchor-links-on-complete` exists, it is copied into each converted link as `rt-smooth-scroll-on-complete`.
234
402
 
235
403
  ---
236
404
 
@@ -297,18 +465,23 @@ This helps you confirm exactly what configuration is applied in the browser.
297
465
 
298
466
  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.
299
467
 
468
+ ### My `rt-smooth-scroll-on-complete` didn’t run
469
+
470
+ Common causes:
471
+
472
+ - The selector/function name is wrong or not available at runtime.
473
+ - Your completion hook depends on DOM that’s not yet mounted/visible.
474
+ - If you are using `call:fnName`, ensure `window.fnName` exists before the scroll completes.
475
+ - If you are using JSON, ensure it is valid JSON (double quotes, no trailing commas).
476
+
300
477
  ---
301
478
 
302
479
  ## 11. License
303
480
 
304
481
  MIT License
305
482
 
306
- Package: `@rethink-js/rt-smooth-scroll`
307
- <br>
483
+ Package: `@rethink-js/rt-smooth-scroll` <br>
308
484
  GitHub: [https://github.com/Rethink-JS/rt-smooth-scroll](https://github.com/Rethink-JS/rt-smooth-scroll)
309
485
 
310
- ---
311
-
312
- by **Rethink JS**
313
- <br>
486
+ by **Rethink JS** <br>
314
487
  [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.2.1 | MIT */
1
+ /*! @rethink-js/rt-smooth-scroll v1.3.0 | MIT */
2
2
  (() => {
3
3
  // src/index.js
4
4
  (function() {
@@ -239,9 +239,157 @@
239
239
  document.head.appendChild(s);
240
240
  });
241
241
  }
242
+ function parseOnCompleteAction(raw) {
243
+ if (raw === null || raw === void 0) return null;
244
+ var s = String(raw).trim();
245
+ if (!s.length) return null;
246
+ var lower = s.toLowerCase();
247
+ function tryQuery(sel) {
248
+ if (!sel) return null;
249
+ try {
250
+ return document.querySelector(sel);
251
+ } catch (e) {
252
+ return null;
253
+ }
254
+ }
255
+ function safeClick(el2) {
256
+ if (!el2) return false;
257
+ try {
258
+ el2.click();
259
+ return true;
260
+ } catch (e) {
261
+ return false;
262
+ }
263
+ }
264
+ function safeFocus(el2) {
265
+ if (!el2) return false;
266
+ try {
267
+ if (typeof el2.focus === "function") el2.focus();
268
+ return true;
269
+ } catch (e) {
270
+ return false;
271
+ }
272
+ }
273
+ if (lower.indexOf("{") === 0 || lower.indexOf("[") === 0) {
274
+ try {
275
+ var parsed = JSON.parse(s);
276
+ return function(inst, ctx) {
277
+ try {
278
+ if (!parsed) return;
279
+ var arr = Array.isArray(parsed) ? parsed : [parsed];
280
+ for (var i = 0; i < arr.length; i++) {
281
+ var a = arr[i];
282
+ if (!a || typeof a !== "object") continue;
283
+ var type = typeof a.type === "string" ? a.type.trim().toLowerCase() : "";
284
+ var selector = typeof a.selector === "string" ? a.selector.trim() : "";
285
+ var name = typeof a.name === "string" ? a.name.trim() : "";
286
+ var detail = a.detail !== void 0 ? a.detail : void 0;
287
+ if (type === "click") {
288
+ safeClick(tryQuery(selector));
289
+ } else if (type === "focus") {
290
+ safeFocus(tryQuery(selector));
291
+ } else if (type === "dispatch") {
292
+ var evName = name || selector;
293
+ if (evName) {
294
+ try {
295
+ var ev = new CustomEvent(evName, {
296
+ detail: {
297
+ trigger: ctx && ctx.trigger ? ctx.trigger : null,
298
+ target: ctx && ctx.target ? ctx.target : null,
299
+ value: ctx && ctx.value ? ctx.value : null,
300
+ id: ctx && ctx.id ? ctx.id : null,
301
+ detail
302
+ }
303
+ });
304
+ window.dispatchEvent(ev);
305
+ } catch (e) {
306
+ }
307
+ }
308
+ } else if (type === "call") {
309
+ var fnName = name || selector;
310
+ if (fnName && window[fnName] && typeof window[fnName] === "function") {
311
+ try {
312
+ window[fnName]({
313
+ lenis: inst || null,
314
+ trigger: ctx && ctx.trigger ? ctx.trigger : null,
315
+ target: ctx && ctx.target ? ctx.target : null,
316
+ value: ctx && ctx.value ? ctx.value : null,
317
+ id: ctx && ctx.id ? ctx.id : null,
318
+ detail
319
+ });
320
+ } catch (e) {
321
+ }
322
+ }
323
+ }
324
+ }
325
+ } catch (e) {
326
+ }
327
+ };
328
+ } catch (e) {
329
+ }
330
+ }
331
+ var m = s.match(/^\s*([a-zA-Z]+)\s*:\s*(.+)\s*$/);
332
+ if (m) {
333
+ var type2 = String(m[1] || "").trim().toLowerCase();
334
+ var rest = String(m[2] || "").trim();
335
+ if (!rest.length) return null;
336
+ if (type2 === "click") {
337
+ return function() {
338
+ safeClick(tryQuery(rest));
339
+ };
340
+ }
341
+ if (type2 === "focus") {
342
+ return function() {
343
+ safeFocus(tryQuery(rest));
344
+ };
345
+ }
346
+ if (type2 === "dispatch" || type2 === "event") {
347
+ return function(inst, ctx) {
348
+ try {
349
+ var ev2 = new CustomEvent(rest, {
350
+ detail: {
351
+ trigger: ctx && ctx.trigger ? ctx.trigger : null,
352
+ target: ctx && ctx.target ? ctx.target : null,
353
+ value: ctx && ctx.value ? ctx.value : null,
354
+ id: ctx && ctx.id ? ctx.id : null
355
+ }
356
+ });
357
+ window.dispatchEvent(ev2);
358
+ } catch (e) {
359
+ }
360
+ };
361
+ }
362
+ if (type2 === "call" || type2 === "fn" || type2 === "function") {
363
+ return function(inst, ctx) {
364
+ try {
365
+ if (window[rest] && typeof window[rest] === "function") {
366
+ window[rest]({
367
+ lenis: inst || null,
368
+ trigger: ctx && ctx.trigger ? ctx.trigger : null,
369
+ target: ctx && ctx.target ? ctx.target : null,
370
+ value: ctx && ctx.value ? ctx.value : null,
371
+ id: ctx && ctx.id ? ctx.id : null
372
+ });
373
+ }
374
+ } catch (e) {
375
+ }
376
+ };
377
+ }
378
+ }
379
+ var el = tryQuery(s);
380
+ if (el) {
381
+ return function() {
382
+ safeClick(el);
383
+ };
384
+ }
385
+ return null;
386
+ }
242
387
  function convertAnchorLinks() {
243
388
  var raw = getAttr("rt-smooth-scroll-anchor-links");
244
389
  if (!parseBool(raw, false)) return;
390
+ var defaultOnComplete = getAttr(
391
+ "rt-smooth-scroll-anchor-links-on-complete"
392
+ );
245
393
  var links = document.querySelectorAll('a[href*="#"]');
246
394
  var currentPath = window.location.pathname.replace(/\/+$/, "").toLowerCase();
247
395
  var origin = window.location.origin;
@@ -274,6 +422,12 @@
274
422
  }
275
423
  if (isLocal) {
276
424
  link.setAttribute("rt-smooth-scroll-to", hashPart);
425
+ if (!link.hasAttribute("rt-smooth-scroll-on-complete") && defaultOnComplete !== null && defaultOnComplete !== void 0) {
426
+ link.setAttribute(
427
+ "rt-smooth-scroll-on-complete",
428
+ String(defaultOnComplete)
429
+ );
430
+ }
277
431
  link.removeAttribute("href");
278
432
  link.style.cursor = "pointer";
279
433
  link.setAttribute("tabindex", "0");
@@ -473,17 +627,72 @@
473
627
  null
474
628
  );
475
629
  if (force !== null) opts.force = force;
476
- if (target instanceof Element) {
477
- var originalComplete = opts.onComplete;
478
- opts.onComplete = function(inst) {
479
- if (originalComplete) originalComplete(inst);
480
- instance.resize();
481
- var retryOpts = {};
482
- for (var k in opts) retryOpts[k] = opts[k];
483
- delete retryOpts.onComplete;
484
- instance.scrollTo(target, retryOpts);
630
+ var onCompleteRawLocal = targetEl.getAttribute(
631
+ "rt-smooth-scroll-on-complete"
632
+ );
633
+ var onCompleteRawGlobal = getAttr("rt-smooth-scroll-on-complete");
634
+ var onCompleteFn = parseOnCompleteAction(
635
+ isAttrPresent(onCompleteRawLocal) ? onCompleteRawLocal : onCompleteRawGlobal
636
+ );
637
+ var ctx = {
638
+ trigger: targetEl,
639
+ target,
640
+ value: targetVal,
641
+ id: explicitId || null
642
+ };
643
+ var userOnComplete = null;
644
+ if (onCompleteFn) {
645
+ userOnComplete = function(inst) {
646
+ try {
647
+ onCompleteFn(inst, ctx);
648
+ } catch (e2) {
649
+ }
485
650
  };
486
651
  }
652
+ var didCorrect = false;
653
+ var originalComplete = opts.onComplete;
654
+ opts.onComplete = function(inst) {
655
+ if (target instanceof Element) {
656
+ if (!didCorrect) {
657
+ didCorrect = true;
658
+ try {
659
+ instance.resize();
660
+ } catch (e2) {
661
+ }
662
+ var retryOpts = {};
663
+ for (var k in opts) retryOpts[k] = opts[k];
664
+ delete retryOpts.onComplete;
665
+ retryOpts.onComplete = function(inst2) {
666
+ if (originalComplete) {
667
+ try {
668
+ originalComplete(inst2);
669
+ } catch (e2) {
670
+ }
671
+ }
672
+ if (userOnComplete) {
673
+ try {
674
+ userOnComplete(inst2);
675
+ } catch (e2) {
676
+ }
677
+ }
678
+ };
679
+ instance.scrollTo(target, retryOpts);
680
+ return;
681
+ }
682
+ }
683
+ if (originalComplete) {
684
+ try {
685
+ originalComplete(inst);
686
+ } catch (e2) {
687
+ }
688
+ }
689
+ if (userOnComplete) {
690
+ try {
691
+ userOnComplete(inst);
692
+ } catch (e2) {
693
+ }
694
+ }
695
+ };
487
696
  instance.scrollTo(target, opts);
488
697
  };
489
698
  state.clickListener = function(e) {
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 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 // Force resize before calculating scroll to handle lazy-loaded elements\n // that might have shifted layout since the last update.\n instance.resize();\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 // If target is an DOM Element (not a number), we add a correction step.\n // If layout shifts during the scroll (e.g. images loading), the target\n // position might change. We re-check on completion.\n if (target instanceof Element) {\n var originalComplete = opts.onComplete;\n opts.onComplete = function (inst) {\n if (originalComplete) originalComplete(inst);\n // Re-measure the layout\n instance.resize();\n // Perform a correction scroll to the updated position\n // We create a copy of opts but remove onComplete to prevent infinite loops\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n // Execute correction\n instance.scrollTo(target, retryOpts);\n };\n }\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": []
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 parseOnCompleteAction(raw) {\n if (raw === null || raw === undefined) return null;\n var s = String(raw).trim();\n if (!s.length) return null;\n\n var lower = s.toLowerCase();\n\n function tryQuery(sel) {\n if (!sel) return null;\n try {\n return document.querySelector(sel);\n } catch (e) {\n return null;\n }\n }\n\n function safeClick(el) {\n if (!el) return false;\n try {\n el.click();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function safeFocus(el) {\n if (!el) return false;\n try {\n if (typeof el.focus === \"function\") el.focus();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n if (lower.indexOf(\"{\") === 0 || lower.indexOf(\"[\") === 0) {\n try {\n var parsed = JSON.parse(s);\n return function (inst, ctx) {\n try {\n if (!parsed) return;\n var arr = Array.isArray(parsed) ? parsed : [parsed];\n for (var i = 0; i < arr.length; i++) {\n var a = arr[i];\n if (!a || typeof a !== \"object\") continue;\n\n var type =\n typeof a.type === \"string\" ? a.type.trim().toLowerCase() : \"\";\n var selector =\n typeof a.selector === \"string\" ? a.selector.trim() : \"\";\n var name = typeof a.name === \"string\" ? a.name.trim() : \"\";\n var detail = a.detail !== undefined ? a.detail : undefined;\n\n if (type === \"click\") {\n safeClick(tryQuery(selector));\n } else if (type === \"focus\") {\n safeFocus(tryQuery(selector));\n } else if (type === \"dispatch\") {\n var evName = name || selector;\n if (evName) {\n try {\n var ev = new CustomEvent(evName, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n },\n });\n window.dispatchEvent(ev);\n } catch (e) {}\n }\n } else if (type === \"call\") {\n var fnName = name || selector;\n if (\n fnName &&\n window[fnName] &&\n typeof window[fnName] === \"function\"\n ) {\n try {\n window[fnName]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n });\n } catch (e) {}\n }\n }\n }\n } catch (e) {}\n };\n } catch (e) {}\n }\n\n var m = s.match(/^\\s*([a-zA-Z]+)\\s*:\\s*(.+)\\s*$/);\n if (m) {\n var type2 = String(m[1] || \"\")\n .trim()\n .toLowerCase();\n var rest = String(m[2] || \"\").trim();\n if (!rest.length) return null;\n\n if (type2 === \"click\") {\n return function () {\n safeClick(tryQuery(rest));\n };\n }\n if (type2 === \"focus\") {\n return function () {\n safeFocus(tryQuery(rest));\n };\n }\n if (type2 === \"dispatch\" || type2 === \"event\") {\n return function (inst, ctx) {\n try {\n var ev2 = new CustomEvent(rest, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n },\n });\n window.dispatchEvent(ev2);\n } catch (e) {}\n };\n }\n if (type2 === \"call\" || type2 === \"fn\" || type2 === \"function\") {\n return function (inst, ctx) {\n try {\n if (window[rest] && typeof window[rest] === \"function\") {\n window[rest]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n });\n }\n } catch (e) {}\n };\n }\n }\n\n var el = tryQuery(s);\n if (el) {\n return function () {\n safeClick(el);\n };\n }\n\n return null;\n }\n\n function convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var defaultOnComplete = getAttr(\n \"rt-smooth-scroll-anchor-links-on-complete\",\n );\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 if (\n !link.hasAttribute(\"rt-smooth-scroll-on-complete\") &&\n defaultOnComplete !== null &&\n defaultOnComplete !== undefined\n ) {\n link.setAttribute(\n \"rt-smooth-scroll-on-complete\",\n String(defaultOnComplete),\n );\n }\n\n link.removeAttribute(\"href\");\n\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 instance.resize();\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 var onCompleteRawLocal = targetEl.getAttribute(\n \"rt-smooth-scroll-on-complete\",\n );\n var onCompleteRawGlobal = getAttr(\"rt-smooth-scroll-on-complete\");\n var onCompleteFn = parseOnCompleteAction(\n isAttrPresent(onCompleteRawLocal)\n ? onCompleteRawLocal\n : onCompleteRawGlobal,\n );\n\n var ctx = {\n trigger: targetEl,\n target: target,\n value: targetVal,\n id: explicitId || null,\n };\n\n var userOnComplete = null;\n if (onCompleteFn) {\n userOnComplete = function (inst) {\n try {\n onCompleteFn(inst, ctx);\n } catch (e) {}\n };\n }\n\n var didCorrect = false;\n var originalComplete = opts.onComplete;\n\n opts.onComplete = function (inst) {\n if (target instanceof Element) {\n if (!didCorrect) {\n didCorrect = true;\n try {\n instance.resize();\n } catch (e) {}\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n retryOpts.onComplete = function (inst2) {\n if (originalComplete) {\n try {\n originalComplete(inst2);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst2);\n } catch (e) {}\n }\n };\n instance.scrollTo(target, retryOpts);\n return;\n }\n }\n\n if (originalComplete) {\n try {\n originalComplete(inst);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst);\n } catch (e) {}\n }\n };\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": ["el", "e"]
7
7
  }
package/dist/index.min.js CHANGED
@@ -1,3 +1,3 @@
1
- /*! @rethink-js/rt-smooth-scroll v1.2.1 | MIT */
2
- (()=>{(function(){var k="rtSmoothScroll";if(window[k]&&window[k].__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 $(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 p(o){return o<0?0:o>1?1:o}function Q(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(y){return null}}try{return document.querySelector(u)}catch(y){return null}}function Y(o){var u=String(o||"").trim();if(!u)return null;var s={linear:function(e){return p(e)},easeInQuad:function(e){return e=p(e),e*e},easeOutQuad:function(e){return e=p(e),e*(2-e)},easeInOutQuad:function(e){return e=p(e),e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},easeInCubic:function(e){return e=p(e),e*e*e},easeOutCubic:function(e){return e=p(e),1-Math.pow(1-e,3)},easeInOutCubic:function(e){return e=p(e),e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2},easeInOutSine:function(e){return e=p(e),-(Math.cos(Math.PI*e)-1)/2},easeOutExpo:function(e){return e=p(e),e===1?1:1-Math.pow(2,-10*e)}};return s[u]||null}function Z(){var o=document.body;if(o){var u=document.querySelectorAll("[rt-smooth-scroll-instance]"),s=u&&u.length>0;!$("rt-smooth-scroll")&&!s&&o.setAttribute("rt-smooth-scroll","")}}function x(o){return o!=null}function B(o){var u="rt-smooth-scroll-";function s(t){var n=o(t);return x(n)?n:I(t)}function e(t){return s(u+t)}function c(t){return x(e(t))}var a={},y=c("lerp"),r=L(e("lerp"),void 0),S=c("duration"),C=L(e("duration"),void 0),z=c("easing"),N=R(e("easing"),""),O=Y(N);y&&r!==void 0?a.lerp=r:(S&&C!==void 0&&(a.duration=C),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(x(M)?a.smoothWheel=m(M,!0):x(_)&&(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 q=String(e("anchors")||"").trim();if(q===""||q.toLowerCase()==="true")a.anchors=!0;else if(q.toLowerCase()==="false")a.anchors=!1;else try{a.anchors=JSON.parse(q)}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 E=JSON.parse(j);if(E&&typeof E=="object")for(var i in E)a[i]=E[i]}catch(t){}return a}function ee(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 J(){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 y=a.getAttribute("href");if(y){var r=y.indexOf("#");if(r!==-1){var S=y.substring(0,r),C=y.substring(r);if(!(C.length<=1)){var z=!1;if(S===""||S==="./")z=!0;else{var N=S.replace(/\/+$/,"").toLowerCase();if(S.indexOf("http")===0)try{var O=new URL(y,e);O.origin===e&&O.pathname.replace(/\/+$/,"").toLowerCase()===s&&(z=!0)}catch(M){}else N===s&&(z=!0)}z&&(a.setAttribute("rt-smooth-scroll-to",C),a.removeAttribute("href"),a.style.cursor="pointer",a.setAttribute("tabindex","0"),a.setAttribute("role","button"))}}}}}}function G(){Z(),J();var o=$("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),y=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 C(){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 N(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"),v=A(i,n+"events-target");if(l){var d=N(document,l);d&&(t.wrapper=d)}if(f){var w=N(document,f);w&&(t.content=w)}if(v){var g=N(document,v);g&&(t.eventsTarget=g)}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 v=l||{};f||(t&&(v.wrapper=t),n&&(v.content=n));var d=new window.Lenis(v);if(r.instances[i]=d,r.order.push(i),i==="root"&&(window.lenis=d),y)try{console.log("[rt-smooth-scroll] instance:",i,{wrapper:f?v.wrapper||"default":t,content:f?v.content||"default":n,options:z(v)})}catch(w){}return d}function q(){if(!r.clickListener){var i=function(t,n){var l=t.getAttribute("rt-smooth-scroll-to");if(l){n&&n.preventDefault();var f=null,v=parseFloat(l);if(l==="top"?f=0:!isNaN(v)&&isFinite(v)?f=v:f=Q(l),!(f===null&&l!=="top"&&isNaN(v))){var d=null,w=t.getAttribute("rt-smooth-scroll-target-id");if(w&&r.instances[w])d=r.instances[w];else{var g=t.closest("[rt-smooth-scroll-instance]");if(g){var b=g.getAttribute("rt-smooth-scroll-id");b&&r.instances[b]&&(d=r.instances[b])}}if(!d&&r.instances.root&&(d=r.instances.root),!!d){d.resize();var h={},T=t.getAttribute("rt-smooth-scroll-offset");if(T){var F=parseFloat(T);if(!isNaN(F)&&isFinite(F))h.offset=F;else{var D=Q(T);D&&(h.offset=-1*D.offsetHeight)}}var H=L(t.getAttribute("rt-smooth-scroll-duration"),void 0);H!==void 0&&(h.duration=H);var P=m(t.getAttribute("rt-smooth-scroll-immediate"),null);P!==null&&(h.immediate=P);var U=m(t.getAttribute("rt-smooth-scroll-lock"),null);U!==null&&(h.lock=U);var V=m(t.getAttribute("rt-smooth-scroll-force"),null);if(V!==null&&(h.force=V),f instanceof Element){var K=h.onComplete;h.onComplete=function(te){K&&K(te),d.resize();var W={};for(var X in h)W[X]=h[X];delete W.onComplete,d.scrollTo(f,W)}}d.scrollTo(f,h)}}}};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 v=r.order[f],d=r.instances[v];d&&n(v,d)}}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(){J()},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(d){}delete r.instances[l]}var v=r.order.indexOf(l);if(v>=0&&r.order.splice(v,1),l==="root")try{delete window.lenis}catch(d){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 E(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")}}ee(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=B(function(){return null});if(l=O(document.body||document.documentElement,l),n){var f=I("rt-smooth-scroll-auto-raf"),v=x(f)?m(f,!0):!0;l.autoRaf=v}else l.autoRaf=!1;_("root",null,null,l,!0)}for(var d=0,w=0;w<i.length;w++){var g=i[w],b=A(g,"rt-smooth-scroll-id");if(b||(d++,b="instance-"+d,g.setAttribute("rt-smooth-scroll-id",b)),!r.instances[b]){var h=M(g),T=B(function(D){return A(g,D)});T=O(g,T),T.autoRaf=!1,_(b,g,h,T,!1)}}n||C();var F=j();window[k]=F,E(F),q(),window.addEventListener("resize",function(){F.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",G):G(),window[k]=window[k]||{__initialized:!0,ids:function(){return[]},get:function(){return null}}})();})();
1
+ /*! @rethink-js/rt-smooth-scroll v1.3.0 | MIT */
2
+ (()=>{(function(){var j="rtSmoothScroll";if(window[j]&&window[j].__initialized)return;function E(o,l){return!o||!o.hasAttribute(l)?null:o.getAttribute(l)}function N(o){var l=document.documentElement,a=document.body,e=E(l,o);return e!==null||(e=E(a,o),e!==null)?e:null}function H(o){var l=document.documentElement,a=document.body;return!!(l&&l.hasAttribute(o)||a&&a.hasAttribute(o))}function b(o,l){if(o==null)return l;var a=String(o).trim().toLowerCase();return a===""||a==="true"||a==="1"||a==="yes"||a==="y"||a==="on"?!0:a==="false"||a==="0"||a==="no"||a==="n"||a==="off"?!1:l}function q(o,l){if(o==null)return l;var a=String(o).trim();if(!a.length)return l;var e=Number(a);return Number.isFinite(e)?e:l}function W(o,l){if(o==null)return l;var a=String(o);return a.length?a:l}function T(o){return o<0?0:o>1?1:o}function P(o){if(!o)return null;var l=String(o).trim();if(!l)return null;if(l==="window")return window;var a=l.match(/^(.*)\(\s*(\d+)\s*\)$/);if(a){var e=a[1].trim(),d=parseInt(a[2],10);if(!e||isNaN(d)||d<1)return null;try{var c=document.querySelectorAll(e);return c[d-1]||null}catch(g){return null}}try{return document.querySelector(l)}catch(g){return null}}function ie(o){var l=String(o||"").trim();if(!l)return null;var a={linear:function(e){return T(e)},easeInQuad:function(e){return e=T(e),e*e},easeOutQuad:function(e){return e=T(e),e*(2-e)},easeInOutQuad:function(e){return e=T(e),e<.5?2*e*e:1-Math.pow(-2*e+2,2)/2},easeInCubic:function(e){return e=T(e),e*e*e},easeOutCubic:function(e){return e=T(e),1-Math.pow(1-e,3)},easeInOutCubic:function(e){return e=T(e),e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2},easeInOutSine:function(e){return e=T(e),-(Math.cos(Math.PI*e)-1)/2},easeOutExpo:function(e){return e=T(e),e===1?1:1-Math.pow(2,-10*e)}};return a[l]||null}function oe(){var o=document.body;if(o){var l=document.querySelectorAll("[rt-smooth-scroll-instance]"),a=l&&l.length>0;!H("rt-smooth-scroll")&&!a&&o.setAttribute("rt-smooth-scroll","")}}function _(o){return o!=null}function U(o){var l="rt-smooth-scroll-";function a(r){var i=o(r);return _(i)?i:N(r)}function e(r){return a(l+r)}function d(r){return _(e(r))}var c={},g=d("lerp"),t=q(e("lerp"),void 0),p=d("duration"),w=q(e("duration"),void 0),F=d("easing"),v=W(e("easing"),""),n=ie(v);g&&t!==void 0?c.lerp=t:(p&&w!==void 0&&(c.duration=w),F&&n&&(c.easing=n)),d("orientation")&&(c.orientation=W(e("orientation"),"")),d("gesture-orientation")&&(c.gestureOrientation=W(e("gesture-orientation"),""));var A=e("smooth-wheel"),z=e("normalize-wheel");if(_(A)?c.smoothWheel=b(A,!0):_(z)&&(c.smoothWheel=b(z,!0)),d("wheel-multiplier")&&(c.wheelMultiplier=q(e("wheel-multiplier"),void 0)),d("touch-multiplier")&&(c.touchMultiplier=q(e("touch-multiplier"),void 0)),d("sync-touch")&&(c.syncTouch=b(e("sync-touch"),!1)),d("sync-touch-lerp")&&(c.syncTouchLerp=q(e("sync-touch-lerp"),void 0)),d("touch-inertia-exponent")&&(c.touchInertiaExponent=q(e("touch-inertia-exponent"),void 0)),d("infinite")&&(c.infinite=b(e("infinite"),!1)),d("auto-resize")&&(c.autoResize=b(e("auto-resize"),!0)),d("overscroll")&&(c.overscroll=b(e("overscroll"),!0)),d("anchors")){var y=String(e("anchors")||"").trim();if(y===""||y.toLowerCase()==="true")c.anchors=!0;else if(y.toLowerCase()==="false")c.anchors=!1;else try{c.anchors=JSON.parse(y)}catch(r){c.anchors=!0}}d("auto-toggle")&&(c.autoToggle=b(e("auto-toggle"),!1)),d("allow-nested-scroll")&&(c.allowNestedScroll=b(e("allow-nested-scroll"),!1));var I=a(l+"options-json");if(I)try{var O=JSON.parse(I);if(O&&typeof O=="object")for(var u in O)c[u]=O[u]}catch(r){}return c}function ue(o){return new Promise(function(l,a){if(typeof window.Lenis!="undefined")return l();var e=document.querySelector('script[data-rt-lenis="true"]');if(e){e.addEventListener("load",function(){l()}),e.addEventListener("error",function(c){a(c)});return}var d=document.createElement("script");d.src=o,d.async=!0,d.dataset.rtLenis="true",d.onload=function(){l()},d.onerror=function(c){a(c)},document.head.appendChild(d)})}function le(o){if(o==null)return null;var l=String(o).trim();if(!l.length)return null;var a=l.toLowerCase();function e(v){if(!v)return null;try{return document.querySelector(v)}catch(n){return null}}function d(v){if(!v)return!1;try{return v.click(),!0}catch(n){return!1}}function c(v){if(!v)return!1;try{return typeof v.focus=="function"&&v.focus(),!0}catch(n){return!1}}if(a.indexOf("{")===0||a.indexOf("[")===0)try{var g=JSON.parse(l);return function(v,n){try{if(!g)return;for(var A=Array.isArray(g)?g:[g],z=0;z<A.length;z++){var y=A[z];if(!(!y||typeof y!="object")){var I=typeof y.type=="string"?y.type.trim().toLowerCase():"",O=typeof y.selector=="string"?y.selector.trim():"",u=typeof y.name=="string"?y.name.trim():"",r=y.detail!==void 0?y.detail:void 0;if(I==="click")d(e(O));else if(I==="focus")c(e(O));else if(I==="dispatch"){var i=u||O;if(i)try{var s=new CustomEvent(i,{detail:{trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null,detail:r}});window.dispatchEvent(s)}catch(m){}}else if(I==="call"){var f=u||O;if(f&&window[f]&&typeof window[f]=="function")try{window[f]({lenis:v||null,trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null,detail:r})}catch(m){}}}}}catch(m){}}}catch(v){}var t=l.match(/^\s*([a-zA-Z]+)\s*:\s*(.+)\s*$/);if(t){var p=String(t[1]||"").trim().toLowerCase(),w=String(t[2]||"").trim();if(!w.length)return null;if(p==="click")return function(){d(e(w))};if(p==="focus")return function(){c(e(w))};if(p==="dispatch"||p==="event")return function(v,n){try{var A=new CustomEvent(w,{detail:{trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null}});window.dispatchEvent(A)}catch(z){}};if(p==="call"||p==="fn"||p==="function")return function(v,n){try{window[w]&&typeof window[w]=="function"&&window[w]({lenis:v||null,trigger:n&&n.trigger?n.trigger:null,target:n&&n.target?n.target:null,value:n&&n.value?n.value:null,id:n&&n.id?n.id:null})}catch(A){}}}var F=e(l);return F?function(){d(F)}:null}function V(){var o=N("rt-smooth-scroll-anchor-links");if(b(o,!1))for(var l=N("rt-smooth-scroll-anchor-links-on-complete"),a=document.querySelectorAll('a[href*="#"]'),e=window.location.pathname.replace(/\/+$/,"").toLowerCase(),d=window.location.origin,c=0;c<a.length;c++){var g=a[c];if(!g.hasAttribute("rt-smooth-scroll-to")){var t=g.getAttribute("href");if(t){var p=t.indexOf("#");if(p!==-1){var w=t.substring(0,p),F=t.substring(p);if(!(F.length<=1)){var v=!1;if(w===""||w==="./")v=!0;else{var n=w.replace(/\/+$/,"").toLowerCase();if(w.indexOf("http")===0)try{var A=new URL(t,d);A.origin===d&&A.pathname.replace(/\/+$/,"").toLowerCase()===e&&(v=!0)}catch(z){}else n===e&&(v=!0)}v&&(g.setAttribute("rt-smooth-scroll-to",F),!g.hasAttribute("rt-smooth-scroll-on-complete")&&l!==null&&l!==void 0&&g.setAttribute("rt-smooth-scroll-on-complete",String(l)),g.removeAttribute("href"),g.style.cursor="pointer",g.setAttribute("tabindex","0"),g.setAttribute("role","button"))}}}}}}function Z(){oe(),V();var o=H("rt-smooth-scroll"),l=document.querySelectorAll("[rt-smooth-scroll-instance]"),a=l&&l.length>0,e=o||a;if(!e)return;var d=W(N("rt-smooth-scroll-lenis-src"),"https://cdn.jsdelivr.net/npm/lenis@1.3.16/dist/lenis.min.js"),c=q(N("rt-smooth-scroll-resize-debounce-ms"),0),g=b(N("rt-smooth-scroll-debug"),!0),t={destroyed:!1,rafId:0,instances:{},order:[],resizeTimers:{},clickListener:null,keyListener:null};function p(u){var r=t.instances[u];if(!(!r||t.destroyed)){if(c>0){clearTimeout(t.resizeTimers[u]),t.resizeTimers[u]=setTimeout(function(){var i=t.instances[u];!i||t.destroyed||i.resize()},c);return}r.resize()}}function w(){function u(r){if(!t.destroyed){for(var i=0;i<t.order.length;i++){var s=t.order[i],f=t.instances[s];f&&f.raf(r)}t.rafId=requestAnimationFrame(u)}}t.rafId=requestAnimationFrame(u)}function F(u){var r={};for(var i in u)if(Object.prototype.hasOwnProperty.call(u,i)){var s=u[i];typeof s=="function"?r[i]="[Function]":r[i]=s}return r}function v(u,r){if(!r)return null;var i=String(r).trim();if(!i.length)return null;if(i==="window")return window;try{return(u||document).querySelector(i)}catch(s){return null}}function n(u,r){var i="rt-smooth-scroll-",s=E(u,i+"wrapper"),f=E(u,i+"content"),m=E(u,i+"events-target");if(s){var h=v(document,s);h&&(r.wrapper=h)}if(f){var L=v(document,f);L&&(r.content=L)}if(m){var C=v(document,m);C&&(r.eventsTarget=C)}return r}function A(u){var r=E(u,"rt-smooth-scroll-content");if(r){var i=null;try{i=u.querySelector(r)}catch(s){i=null}if(i)return i}return u.firstElementChild||u}function z(u,r,i,s,f){var m=s||{};f||(r&&(m.wrapper=r),i&&(m.content=i));var h=new window.Lenis(m);if(t.instances[u]=h,t.order.push(u),u==="root"&&(window.lenis=h),g)try{console.log("[rt-smooth-scroll] instance:",u,{wrapper:f?m.wrapper||"default":r,content:f?m.content||"default":i,options:F(m)})}catch(L){}return h}function y(){if(!t.clickListener){var u=function(r,i){var s=r.getAttribute("rt-smooth-scroll-to");if(s){i&&i.preventDefault();var f=null,m=parseFloat(s);if(s==="top"?f=0:!isNaN(m)&&isFinite(m)?f=m:f=P(s),!(f===null&&s!=="top"&&isNaN(m))){var h=null,L=r.getAttribute("rt-smooth-scroll-target-id");if(L&&t.instances[L])h=t.instances[L];else{var C=r.closest("[rt-smooth-scroll-instance]");if(C){var k=C.getAttribute("rt-smooth-scroll-id");k&&t.instances[k]&&(h=t.instances[k])}}if(!h&&t.instances.root&&(h=t.instances.root),!!h){h.resize();var S={},R=r.getAttribute("rt-smooth-scroll-offset");if(R){var M=parseFloat(R);if(!isNaN(M)&&isFinite(M))S.offset=M;else{var J=P(R);J&&(S.offset=-1*J.offsetHeight)}}var K=q(r.getAttribute("rt-smooth-scroll-duration"),void 0);K!==void 0&&(S.duration=K);var X=b(r.getAttribute("rt-smooth-scroll-immediate"),null);X!==null&&(S.immediate=X);var Y=b(r.getAttribute("rt-smooth-scroll-lock"),null);Y!==null&&(S.lock=Y);var x=b(r.getAttribute("rt-smooth-scroll-force"),null);x!==null&&(S.force=x);var ee=r.getAttribute("rt-smooth-scroll-on-complete"),ae=N("rt-smooth-scroll-on-complete"),re=le(_(ee)?ee:ae),se={trigger:r,target:f,value:s,id:L||null},$=null;re&&($=function(G){try{re(G,se)}catch(D){}});var te=!1,B=S.onComplete;S.onComplete=function(G){if(f instanceof Element&&!te){te=!0;try{h.resize()}catch(Q){}var D={};for(var ne in S)D[ne]=S[ne];delete D.onComplete,D.onComplete=function(Q){if(B)try{B(Q)}catch(ce){}if($)try{$(Q)}catch(ce){}},h.scrollTo(f,D);return}if(B)try{B(G)}catch(Q){}if($)try{$(G)}catch(Q){}},h.scrollTo(f,S)}}}};t.clickListener=function(r){var i=r.target.closest("[rt-smooth-scroll-to]");i&&u(i,r)},t.keyListener=function(r){if(!(r.key!=="Enter"&&r.key!==" ")){var i=r.target.closest("[rt-smooth-scroll-to]");i&&!i.hasAttribute("href")&&u(i,r)}},document.addEventListener("click",t.clickListener),document.addEventListener("keydown",t.keyListener)}}function I(){function u(r,i){if(typeof r=="string"&&r.length){var s=t.instances[r];s&&i(r,s);return}for(var f=0;f<t.order.length;f++){var m=t.order[f],h=t.instances[m];h&&i(m,h)}}return{__initialized:!0,ids:function(){return t.order.slice()},get:function(r){return t.instances[r]||null},start:function(r){u(r,function(i,s){s.start()})},stop:function(r){u(r,function(i,s){s.stop()})},toggle:function(r,i){u(r,function(s,f){if(typeof i=="boolean"){i?f.stop():f.start();return}f.isStopped?f.start():f.stop()})},resize:function(r){u(r,function(i){p(i)})},refreshAnchors:function(){V()},destroy:function(r){if(t.destroyed)return;function i(s){clearTimeout(t.resizeTimers[s]);var f=t.instances[s];if(f){try{f.destroy()}catch(h){}delete t.instances[s]}var m=t.order.indexOf(s);if(m>=0&&t.order.splice(m,1),s==="root")try{delete window.lenis}catch(h){window.lenis=void 0}}if(typeof r=="string"&&r.length){i(r);return}for(t.clickListener&&(document.removeEventListener("click",t.clickListener),t.clickListener=null),t.keyListener&&(document.removeEventListener("keydown",t.keyListener),t.keyListener=null);t.order.length;)i(t.order[0]);t.destroyed=!0,t.rafId&&cancelAnimationFrame(t.rafId)}}}function O(u){window.disableScroll=function(){u.stop(),document.body&&document.body.classList.add("no-scroll")},window.enableScroll=function(){u.start(),document.body&&document.body.classList.remove("no-scroll")}}ue(d).then(function(){if(!t.destroyed){var u=document.querySelectorAll("[rt-smooth-scroll-instance]"),r=(o?1:0)+(u?u.length:0),i=r===1&&o&&(!u||u.length===0);if(o&&!t.instances.root){var s=U(function(){return null});if(s=n(document.body||document.documentElement,s),i){var f=N("rt-smooth-scroll-auto-raf"),m=_(f)?b(f,!0):!0;s.autoRaf=m}else s.autoRaf=!1;z("root",null,null,s,!0)}for(var h=0,L=0;L<u.length;L++){var C=u[L],k=E(C,"rt-smooth-scroll-id");if(k||(h++,k="instance-"+h,C.setAttribute("rt-smooth-scroll-id",k)),!t.instances[k]){var S=A(C),R=U(function(J){return E(C,J)});R=n(C,R),R.autoRaf=!1,z(k,C,S,R,!1)}}i||w();var M=I();window[j]=M,O(M),y(),window.addEventListener("resize",function(){M.resize()})}}).catch(function(){})}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",Z):Z(),window[j]=window[j]||{__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 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 // Force resize before calculating scroll to handle lazy-loaded elements\n // that might have shifted layout since the last update.\n instance.resize();\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 // If target is an DOM Element (not a number), we add a correction step.\n // If layout shifts during the scroll (e.g. images loading), the target\n // position might change. We re-check on completion.\n if (target instanceof Element) {\n var originalComplete = opts.onComplete;\n opts.onComplete = function (inst) {\n if (originalComplete) originalComplete(inst);\n // Re-measure the layout\n instance.resize();\n // Perform a correction scroll to the updated position\n // We create a copy of opts but remove onComplete to prevent infinite loops\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n // Execute correction\n instance.scrollTo(target, retryOpts);\n };\n }\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", "originalComplete", "retryOpts", "trigger", "makeApi", "forEachTarget", "fn", "one", "_", "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 parseOnCompleteAction(raw) {\n if (raw === null || raw === undefined) return null;\n var s = String(raw).trim();\n if (!s.length) return null;\n\n var lower = s.toLowerCase();\n\n function tryQuery(sel) {\n if (!sel) return null;\n try {\n return document.querySelector(sel);\n } catch (e) {\n return null;\n }\n }\n\n function safeClick(el) {\n if (!el) return false;\n try {\n el.click();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n function safeFocus(el) {\n if (!el) return false;\n try {\n if (typeof el.focus === \"function\") el.focus();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n if (lower.indexOf(\"{\") === 0 || lower.indexOf(\"[\") === 0) {\n try {\n var parsed = JSON.parse(s);\n return function (inst, ctx) {\n try {\n if (!parsed) return;\n var arr = Array.isArray(parsed) ? parsed : [parsed];\n for (var i = 0; i < arr.length; i++) {\n var a = arr[i];\n if (!a || typeof a !== \"object\") continue;\n\n var type =\n typeof a.type === \"string\" ? a.type.trim().toLowerCase() : \"\";\n var selector =\n typeof a.selector === \"string\" ? a.selector.trim() : \"\";\n var name = typeof a.name === \"string\" ? a.name.trim() : \"\";\n var detail = a.detail !== undefined ? a.detail : undefined;\n\n if (type === \"click\") {\n safeClick(tryQuery(selector));\n } else if (type === \"focus\") {\n safeFocus(tryQuery(selector));\n } else if (type === \"dispatch\") {\n var evName = name || selector;\n if (evName) {\n try {\n var ev = new CustomEvent(evName, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n },\n });\n window.dispatchEvent(ev);\n } catch (e) {}\n }\n } else if (type === \"call\") {\n var fnName = name || selector;\n if (\n fnName &&\n window[fnName] &&\n typeof window[fnName] === \"function\"\n ) {\n try {\n window[fnName]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n detail: detail,\n });\n } catch (e) {}\n }\n }\n }\n } catch (e) {}\n };\n } catch (e) {}\n }\n\n var m = s.match(/^\\s*([a-zA-Z]+)\\s*:\\s*(.+)\\s*$/);\n if (m) {\n var type2 = String(m[1] || \"\")\n .trim()\n .toLowerCase();\n var rest = String(m[2] || \"\").trim();\n if (!rest.length) return null;\n\n if (type2 === \"click\") {\n return function () {\n safeClick(tryQuery(rest));\n };\n }\n if (type2 === \"focus\") {\n return function () {\n safeFocus(tryQuery(rest));\n };\n }\n if (type2 === \"dispatch\" || type2 === \"event\") {\n return function (inst, ctx) {\n try {\n var ev2 = new CustomEvent(rest, {\n detail: {\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n },\n });\n window.dispatchEvent(ev2);\n } catch (e) {}\n };\n }\n if (type2 === \"call\" || type2 === \"fn\" || type2 === \"function\") {\n return function (inst, ctx) {\n try {\n if (window[rest] && typeof window[rest] === \"function\") {\n window[rest]({\n lenis: inst || null,\n trigger: ctx && ctx.trigger ? ctx.trigger : null,\n target: ctx && ctx.target ? ctx.target : null,\n value: ctx && ctx.value ? ctx.value : null,\n id: ctx && ctx.id ? ctx.id : null,\n });\n }\n } catch (e) {}\n };\n }\n }\n\n var el = tryQuery(s);\n if (el) {\n return function () {\n safeClick(el);\n };\n }\n\n return null;\n }\n\n function convertAnchorLinks() {\n var raw = getAttr(\"rt-smooth-scroll-anchor-links\");\n if (!parseBool(raw, false)) return;\n\n var defaultOnComplete = getAttr(\n \"rt-smooth-scroll-anchor-links-on-complete\",\n );\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 if (\n !link.hasAttribute(\"rt-smooth-scroll-on-complete\") &&\n defaultOnComplete !== null &&\n defaultOnComplete !== undefined\n ) {\n link.setAttribute(\n \"rt-smooth-scroll-on-complete\",\n String(defaultOnComplete),\n );\n }\n\n link.removeAttribute(\"href\");\n\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 instance.resize();\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 var onCompleteRawLocal = targetEl.getAttribute(\n \"rt-smooth-scroll-on-complete\",\n );\n var onCompleteRawGlobal = getAttr(\"rt-smooth-scroll-on-complete\");\n var onCompleteFn = parseOnCompleteAction(\n isAttrPresent(onCompleteRawLocal)\n ? onCompleteRawLocal\n : onCompleteRawGlobal,\n );\n\n var ctx = {\n trigger: targetEl,\n target: target,\n value: targetVal,\n id: explicitId || null,\n };\n\n var userOnComplete = null;\n if (onCompleteFn) {\n userOnComplete = function (inst) {\n try {\n onCompleteFn(inst, ctx);\n } catch (e) {}\n };\n }\n\n var didCorrect = false;\n var originalComplete = opts.onComplete;\n\n opts.onComplete = function (inst) {\n if (target instanceof Element) {\n if (!didCorrect) {\n didCorrect = true;\n try {\n instance.resize();\n } catch (e) {}\n var retryOpts = {};\n for (var k in opts) retryOpts[k] = opts[k];\n delete retryOpts.onComplete;\n retryOpts.onComplete = function (inst2) {\n if (originalComplete) {\n try {\n originalComplete(inst2);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst2);\n } catch (e) {}\n }\n };\n instance.scrollTo(target, retryOpts);\n return;\n }\n }\n\n if (originalComplete) {\n try {\n originalComplete(inst);\n } catch (e) {}\n }\n if (userOnComplete) {\n try {\n userOnComplete(inst);\n } catch (e) {}\n }\n };\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": ";OAAC,UAAY,CACX,IAAIA,EAAQ,iBACZ,GAAI,OAAOA,CAAK,GAAK,OAAOA,CAAK,EAAE,cAAe,OAElD,SAASC,EAAYC,EAAIC,EAAM,CAE7B,MADI,CAACD,GACD,CAACA,EAAG,aAAaC,CAAI,EAAU,KAC5BD,EAAG,aAAaC,CAAI,CAC7B,CAEA,SAASC,EAAQD,EAAM,CACrB,IAAIE,EAAO,SAAS,gBAChBC,EAAO,SAAS,KAChBC,EAAIN,EAAYI,EAAMF,CAAI,EAG9B,OAFII,IAAM,OACVA,EAAIN,EAAYK,EAAMH,CAAI,EACtBI,IAAM,MAAaA,EAChB,IACT,CAEA,SAASC,EAAgBL,EAAM,CAC7B,IAAIE,EAAO,SAAS,gBAChBC,EAAO,SAAS,KAEpB,MADI,GAAAD,GAAQA,EAAK,aAAaF,CAAI,GAC9BG,GAAQA,EAAK,aAAaH,CAAI,EAEpC,CAEA,SAASM,EAAUF,EAAGG,EAAK,CACzB,GAAIH,GAAM,KAAyB,OAAOG,EAC1C,IAAIC,EAAI,OAAOJ,CAAC,EAAE,KAAK,EAAE,YAAY,EAErC,OADII,IAAM,IACNA,IAAM,QAAUA,IAAM,KAAOA,IAAM,OAASA,IAAM,KAAOA,IAAM,KAC1D,GACLA,IAAM,SAAWA,IAAM,KAAOA,IAAM,MAAQA,IAAM,KAAOA,IAAM,MAC1D,GACFD,CACT,CAEA,SAASE,EAASL,EAAGG,EAAK,CACxB,GAAIH,GAAM,KAAyB,OAAOG,EAC1C,IAAIC,EAAI,OAAOJ,CAAC,EAAE,KAAK,EACvB,GAAI,CAACI,EAAE,OAAQ,OAAOD,EACtB,IAAIG,EAAI,OAAOF,CAAC,EAChB,OAAO,OAAO,SAASE,CAAC,EAAIA,EAAIH,CAClC,CAEA,SAASI,EAASP,EAAGG,EAAK,CACxB,GAAIH,GAAM,KAAyB,OAAOG,EAC1C,IAAIC,EAAI,OAAOJ,CAAC,EAChB,OAAOI,EAAE,OAASA,EAAID,CACxB,CAEA,SAASK,EAAQC,EAAG,CAClB,OAAIA,EAAI,EAAU,EACdA,EAAI,EAAU,EACXA,CACT,CAEA,SAASC,EAAqBC,EAAa,CACzC,GAAI,CAACA,EAAa,OAAO,KACzB,IAAIP,EAAI,OAAOO,CAAW,EAAE,KAAK,EACjC,GAAI,CAACP,EAAG,OAAO,KACf,GAAIA,IAAM,SAAU,OAAO,OAE3B,IAAIQ,EAAQR,EAAE,MAAM,uBAAuB,EAC3C,GAAIQ,EAAO,CACT,IAAIC,EAAeD,EAAM,CAAC,EAAE,KAAK,EAC7BE,EAAQ,SAASF,EAAM,CAAC,EAAG,EAAE,EACjC,GAAI,CAACC,GAAgB,MAAMC,CAAK,GAAKA,EAAQ,EAAG,OAAO,KACvD,GAAI,CACF,IAAIC,EAAM,SAAS,iBAAiBF,CAAY,EAChD,OAAOE,EAAID,EAAQ,CAAC,GAAK,IAC3B,OAASE,EAAG,CACV,OAAO,IACT,CACF,CAEA,GAAI,CACF,OAAO,SAAS,cAAcZ,CAAC,CACjC,OAASY,EAAG,CACV,OAAO,IACT,CACF,CAEA,SAASC,GAAarB,EAAM,CAC1B,IAAIU,EAAI,OAAOV,GAAQ,EAAE,EAAE,KAAK,EAChC,GAAI,CAACU,EAAG,OAAO,KACf,IAAIY,EAAU,CACZ,OAAQ,SAAUT,EAAG,CACnB,OAAOD,EAAQC,CAAC,CAClB,EACA,WAAY,SAAUA,EAAG,CACvB,OAAAA,EAAID,EAAQC,CAAC,EACNA,EAAIA,CACb,EACA,YAAa,SAAUA,EAAG,CACxB,OAAAA,EAAID,EAAQC,CAAC,EACNA,GAAK,EAAIA,EAClB,EACA,cAAe,SAAUA,EAAG,CAC1B,OAAAA,EAAID,EAAQC,CAAC,EACNA,EAAI,GAAM,EAAIA,EAAIA,EAAI,EAAI,KAAK,IAAI,GAAKA,EAAI,EAAG,CAAC,EAAI,CAC7D,EACA,YAAa,SAAUA,EAAG,CACxB,OAAAA,EAAID,EAAQC,CAAC,EACNA,EAAIA,EAAIA,CACjB,EACA,aAAc,SAAUA,EAAG,CACzB,OAAAA,EAAID,EAAQC,CAAC,EACN,EAAI,KAAK,IAAI,EAAIA,EAAG,CAAC,CAC9B,EACA,eAAgB,SAAUA,EAAG,CAC3B,OAAAA,EAAID,EAAQC,CAAC,EACNA,EAAI,GAAM,EAAIA,EAAIA,EAAIA,EAAI,EAAI,KAAK,IAAI,GAAKA,EAAI,EAAG,CAAC,EAAI,CACjE,EACA,cAAe,SAAUA,EAAG,CAC1B,OAAAA,EAAID,EAAQC,CAAC,EACN,EAAE,KAAK,IAAI,KAAK,GAAKA,CAAC,EAAI,GAAK,CACxC,EACA,YAAa,SAAUA,EAAG,CACxB,OAAAA,EAAID,EAAQC,CAAC,EACNA,IAAM,EAAI,EAAI,EAAI,KAAK,IAAI,EAAG,IAAMA,CAAC,CAC9C,CACF,EACA,OAAOS,EAAQZ,CAAC,GAAK,IACvB,CAEA,SAASa,IAA2B,CAClC,IAAIpB,EAAO,SAAS,KACpB,GAAKA,EACL,KAAIqB,EAAY,SAAS,iBAAiB,6BAA6B,EACnEC,EAAeD,GAAaA,EAAU,OAAS,EAC/C,CAACnB,EAAgB,kBAAkB,GAAK,CAACoB,GAC3CtB,EAAK,aAAa,mBAAoB,EAAE,EAE5C,CAEA,SAASuB,EAActB,EAAG,CACxB,OAAOA,GAAM,IACf,CAEA,SAASuB,EAAYC,EAAU,CAC7B,IAAIC,EAAS,oBACb,SAASC,EAAc9B,EAAM,CAC3B,IAAII,EAAIwB,EAAS5B,CAAI,EACrB,OAAI0B,EAActB,CAAC,EAAUA,EACtBH,EAAQD,CAAI,CACrB,CACA,SAAS+B,EAAO/B,EAAM,CACpB,OAAO8B,EAAcD,EAAS7B,CAAI,CACpC,CACA,SAASgC,EAAOhC,EAAM,CACpB,OAAO0B,EAAcK,EAAO/B,CAAI,CAAC,CACnC,CAEA,IAAIiC,EAAO,CAAC,EACRC,EAAUF,EAAO,MAAM,EACvBG,EAAO1B,EAASsB,EAAO,MAAM,EAAG,MAAS,EACzCK,EAAcJ,EAAO,UAAU,EAC/BK,EAAW5B,EAASsB,EAAO,UAAU,EAAG,MAAS,EACjDO,EAAYN,EAAO,QAAQ,EAC3BO,EAAa5B,EAASoB,EAAO,QAAQ,EAAG,EAAE,EAC1CS,EAAWnB,GAAakB,CAAU,EAElCL,GAAWC,IAAS,OACtBF,EAAK,KAAOE,GAERC,GAAeC,IAAa,SAAWJ,EAAK,SAAWI,GACvDC,GAAaE,IAAUP,EAAK,OAASO,IAGvCR,EAAO,aAAa,IACtBC,EAAK,YAActB,EAASoB,EAAO,aAAa,EAAG,EAAE,GACnDC,EAAO,qBAAqB,IAC9BC,EAAK,mBAAqBtB,EAASoB,EAAO,qBAAqB,EAAG,EAAE,GAEtE,IAAIU,EAAiBV,EAAO,cAAc,EACtCW,EAAoBX,EAAO,iBAAiB,EA0BhD,GAzBIL,EAAce,CAAc,EAC9BR,EAAK,YAAc3B,EAAUmC,EAAgB,EAAI,EAC1Cf,EAAcgB,CAAiB,IACtCT,EAAK,YAAc3B,EAAUoC,EAAmB,EAAI,GAElDV,EAAO,kBAAkB,IAC3BC,EAAK,gBAAkBxB,EAASsB,EAAO,kBAAkB,EAAG,MAAS,GACnEC,EAAO,kBAAkB,IAC3BC,EAAK,gBAAkBxB,EAASsB,EAAO,kBAAkB,EAAG,MAAS,GACnEC,EAAO,YAAY,IACrBC,EAAK,UAAY3B,EAAUyB,EAAO,YAAY,EAAG,EAAK,GACpDC,EAAO,iBAAiB,IAC1BC,EAAK,cAAgBxB,EAASsB,EAAO,iBAAiB,EAAG,MAAS,GAChEC,EAAO,wBAAwB,IACjCC,EAAK,qBAAuBxB,EAC1BsB,EAAO,wBAAwB,EAC/B,MACF,GACEC,EAAO,UAAU,IACnBC,EAAK,SAAW3B,EAAUyB,EAAO,UAAU,EAAG,EAAK,GACjDC,EAAO,aAAa,IACtBC,EAAK,WAAa3B,EAAUyB,EAAO,aAAa,EAAG,EAAI,GACrDC,EAAO,YAAY,IACrBC,EAAK,WAAa3B,EAAUyB,EAAO,YAAY,EAAG,EAAI,GAEpDC,EAAO,SAAS,EAAG,CACrB,IAAIxB,EAAI,OAAOuB,EAAO,SAAS,GAAK,EAAE,EAAE,KAAK,EAC7C,GAAIvB,IAAM,IAAMA,EAAE,YAAY,IAAM,OAAQyB,EAAK,QAAU,WAClDzB,EAAE,YAAY,IAAM,QAASyB,EAAK,QAAU,OAEnD,IAAI,CACFA,EAAK,QAAU,KAAK,MAAMzB,CAAC,CAC7B,OAASY,EAAG,CACVa,EAAK,QAAU,EACjB,CAEJ,CAEID,EAAO,aAAa,IACtBC,EAAK,WAAa3B,EAAUyB,EAAO,aAAa,EAAG,EAAK,GACtDC,EAAO,qBAAqB,IAC9BC,EAAK,kBAAoB3B,EAAUyB,EAAO,qBAAqB,EAAG,EAAK,GAEzE,IAAIY,EAAQb,EAAcD,EAAS,cAAc,EACjD,GAAIc,EACF,GAAI,CACF,IAAIC,EAAS,KAAK,MAAMD,CAAK,EAC7B,GAAIC,GAAU,OAAOA,GAAW,SAC9B,QAASC,KAAKD,EAAQX,EAAKY,CAAC,EAAID,EAAOC,CAAC,CAE5C,OAASzB,EAAG,CAAC,CAEf,OAAOa,CACT,CAEA,SAASa,GAAeC,EAAK,CAC3B,OAAO,IAAI,QAAQ,SAAUC,EAASC,EAAQ,CAC5C,GAAI,OAAO,OAAO,OAAU,YAAa,OAAOD,EAAQ,EACxD,IAAIE,EAAW,SAAS,cAAc,8BAA8B,EACpE,GAAIA,EAAU,CACZA,EAAS,iBAAiB,OAAQ,UAAY,CAC5CF,EAAQ,CACV,CAAC,EACDE,EAAS,iBAAiB,QAAS,SAAU9B,EAAG,CAC9C6B,EAAO7B,CAAC,CACV,CAAC,EACD,MACF,CACA,IAAIZ,EAAI,SAAS,cAAc,QAAQ,EACvCA,EAAE,IAAMuC,EACRvC,EAAE,MAAQ,GACVA,EAAE,QAAQ,QAAU,OACpBA,EAAE,OAAS,UAAY,CACrBwC,EAAQ,CACV,EACAxC,EAAE,QAAU,SAAUY,EAAG,CACvB6B,EAAO7B,CAAC,CACV,EACA,SAAS,KAAK,YAAYZ,CAAC,CAC7B,CAAC,CACH,CAEA,SAAS2C,GAAsBC,EAAK,CAClC,GAAIA,GAAQ,KAA2B,OAAO,KAC9C,IAAI5C,EAAI,OAAO4C,CAAG,EAAE,KAAK,EACzB,GAAI,CAAC5C,EAAE,OAAQ,OAAO,KAEtB,IAAI6C,EAAQ7C,EAAE,YAAY,EAE1B,SAAS8C,EAASC,EAAK,CACrB,GAAI,CAACA,EAAK,OAAO,KACjB,GAAI,CACF,OAAO,SAAS,cAAcA,CAAG,CACnC,OAASnC,EAAG,CACV,OAAO,IACT,CACF,CAEA,SAASoC,EAAUzD,EAAI,CACrB,GAAI,CAACA,EAAI,MAAO,GAChB,GAAI,CACF,OAAAA,EAAG,MAAM,EACF,EACT,OAASqB,EAAG,CACV,MAAO,EACT,CACF,CAEA,SAASqC,EAAU1D,EAAI,CACrB,GAAI,CAACA,EAAI,MAAO,GAChB,GAAI,CACF,OAAI,OAAOA,EAAG,OAAU,YAAYA,EAAG,MAAM,EACtC,EACT,OAASqB,EAAG,CACV,MAAO,EACT,CACF,CAEA,GAAIiC,EAAM,QAAQ,GAAG,IAAM,GAAKA,EAAM,QAAQ,GAAG,IAAM,EACrD,GAAI,CACF,IAAIT,EAAS,KAAK,MAAMpC,CAAC,EACzB,OAAO,SAAUkD,EAAMC,EAAK,CAC1B,GAAI,CACF,GAAI,CAACf,EAAQ,OAEb,QADIgB,EAAM,MAAM,QAAQhB,CAAM,EAAIA,EAAS,CAACA,CAAM,EACzCiB,EAAI,EAAGA,EAAID,EAAI,OAAQC,IAAK,CACnC,IAAIC,EAAIF,EAAIC,CAAC,EACb,GAAI,GAACC,GAAK,OAAOA,GAAM,UAEvB,KAAIC,EACF,OAAOD,EAAE,MAAS,SAAWA,EAAE,KAAK,KAAK,EAAE,YAAY,EAAI,GACzDE,EACF,OAAOF,EAAE,UAAa,SAAWA,EAAE,SAAS,KAAK,EAAI,GACnD9D,EAAO,OAAO8D,EAAE,MAAS,SAAWA,EAAE,KAAK,KAAK,EAAI,GACpDG,EAASH,EAAE,SAAW,OAAYA,EAAE,OAAS,OAEjD,GAAIC,IAAS,QACXP,EAAUF,EAASU,CAAQ,CAAC,UACnBD,IAAS,QAClBN,EAAUH,EAASU,CAAQ,CAAC,UACnBD,IAAS,WAAY,CAC9B,IAAIG,EAASlE,GAAQgE,EACrB,GAAIE,EACF,GAAI,CACF,IAAIC,EAAK,IAAI,YAAYD,EAAQ,CAC/B,OAAQ,CACN,QAASP,GAAOA,EAAI,QAAUA,EAAI,QAAU,KAC5C,OAAQA,GAAOA,EAAI,OAASA,EAAI,OAAS,KACzC,MAAOA,GAAOA,EAAI,MAAQA,EAAI,MAAQ,KACtC,GAAIA,GAAOA,EAAI,GAAKA,EAAI,GAAK,KAC7B,OAAQM,CACV,CACF,CAAC,EACD,OAAO,cAAcE,CAAE,CACzB,OAAS/C,EAAG,CAAC,CAEjB,SAAW2C,IAAS,OAAQ,CAC1B,IAAIK,EAASpE,GAAQgE,EACrB,GACEI,GACA,OAAOA,CAAM,GACb,OAAO,OAAOA,CAAM,GAAM,WAE1B,GAAI,CACF,OAAOA,CAAM,EAAE,CACb,MAAOV,GAAQ,KACf,QAASC,GAAOA,EAAI,QAAUA,EAAI,QAAU,KAC5C,OAAQA,GAAOA,EAAI,OAASA,EAAI,OAAS,KACzC,MAAOA,GAAOA,EAAI,MAAQA,EAAI,MAAQ,KACtC,GAAIA,GAAOA,EAAI,GAAKA,EAAI,GAAK,KAC7B,OAAQM,CACV,CAAC,CACH,OAAS7C,EAAG,CAAC,CAEjB,EACF,CACF,OAASA,EAAG,CAAC,CACf,CACF,OAASA,EAAG,CAAC,CAGf,IAAIiD,EAAI7D,EAAE,MAAM,gCAAgC,EAChD,GAAI6D,EAAG,CACL,IAAIC,EAAQ,OAAOD,EAAE,CAAC,GAAK,EAAE,EAC1B,KAAK,EACL,YAAY,EACXE,EAAO,OAAOF,EAAE,CAAC,GAAK,EAAE,EAAE,KAAK,EACnC,GAAI,CAACE,EAAK,OAAQ,OAAO,KAEzB,GAAID,IAAU,QACZ,OAAO,UAAY,CACjBd,EAAUF,EAASiB,CAAI,CAAC,CAC1B,EAEF,GAAID,IAAU,QACZ,OAAO,UAAY,CACjBb,EAAUH,EAASiB,CAAI,CAAC,CAC1B,EAEF,GAAID,IAAU,YAAcA,IAAU,QACpC,OAAO,SAAUZ,EAAMC,EAAK,CAC1B,GAAI,CACF,IAAIa,EAAM,IAAI,YAAYD,EAAM,CAC9B,OAAQ,CACN,QAASZ,GAAOA,EAAI,QAAUA,EAAI,QAAU,KAC5C,OAAQA,GAAOA,EAAI,OAASA,EAAI,OAAS,KACzC,MAAOA,GAAOA,EAAI,MAAQA,EAAI,MAAQ,KACtC,GAAIA,GAAOA,EAAI,GAAKA,EAAI,GAAK,IAC/B,CACF,CAAC,EACD,OAAO,cAAca,CAAG,CAC1B,OAASpD,EAAG,CAAC,CACf,EAEF,GAAIkD,IAAU,QAAUA,IAAU,MAAQA,IAAU,WAClD,OAAO,SAAUZ,EAAMC,EAAK,CAC1B,GAAI,CACE,OAAOY,CAAI,GAAK,OAAO,OAAOA,CAAI,GAAM,YAC1C,OAAOA,CAAI,EAAE,CACX,MAAOb,GAAQ,KACf,QAASC,GAAOA,EAAI,QAAUA,EAAI,QAAU,KAC5C,OAAQA,GAAOA,EAAI,OAASA,EAAI,OAAS,KACzC,MAAOA,GAAOA,EAAI,MAAQA,EAAI,MAAQ,KACtC,GAAIA,GAAOA,EAAI,GAAKA,EAAI,GAAK,IAC/B,CAAC,CAEL,OAASvC,EAAG,CAAC,CACf,CAEJ,CAEA,IAAIrB,EAAKuD,EAAS9C,CAAC,EACnB,OAAIT,EACK,UAAY,CACjByD,EAAUzD,CAAE,CACd,EAGK,IACT,CAEA,SAAS0E,GAAqB,CAC5B,IAAIrB,EAAMnD,EAAQ,+BAA+B,EACjD,GAAKK,EAAU8C,EAAK,EAAK,EAYzB,QAVIsB,EAAoBzE,EACtB,2CACF,EAEI0E,EAAQ,SAAS,iBAAiB,cAAc,EAChDC,EAAc,OAAO,SAAS,SAC/B,QAAQ,OAAQ,EAAE,EAClB,YAAY,EACXC,EAAS,OAAO,SAAS,OAEpBhB,EAAI,EAAGA,EAAIc,EAAM,OAAQd,IAAK,CACrC,IAAIiB,EAAOH,EAAMd,CAAC,EAClB,GAAI,CAAAiB,EAAK,aAAa,qBAAqB,EAE3C,KAAIC,EAAOD,EAAK,aAAa,MAAM,EACnC,GAAKC,EAEL,KAAIC,EAAYD,EAAK,QAAQ,GAAG,EAChC,GAAIC,IAAc,GAElB,KAAIC,EAAWF,EAAK,UAAU,EAAGC,CAAS,EACtCE,EAAWH,EAAK,UAAUC,CAAS,EAEvC,GAAI,EAAAE,EAAS,QAAU,GAEvB,KAAIC,EAAU,GACd,GAAIF,IAAa,IAAMA,IAAa,KAClCE,EAAU,OACL,CACL,IAAIC,EAAWH,EAAS,QAAQ,OAAQ,EAAE,EAAE,YAAY,EACxD,GAAIA,EAAS,QAAQ,MAAM,IAAM,EAC/B,GAAI,CACF,IAAII,EAAI,IAAI,IAAIN,EAAMF,CAAM,EAE1BQ,EAAE,SAAWR,GACbQ,EAAE,SAAS,QAAQ,OAAQ,EAAE,EAAE,YAAY,IAAMT,IAEjDO,EAAU,GAEd,OAAS/D,EAAG,CAAC,MACJgE,IAAaR,IACtBO,EAAU,GAEd,CAEIA,IACFL,EAAK,aAAa,sBAAuBI,CAAQ,EAG/C,CAACJ,EAAK,aAAa,8BAA8B,GACjDJ,IAAsB,MACtBA,IAAsB,QAEtBI,EAAK,aACH,+BACA,OAAOJ,CAAiB,CAC1B,EAGFI,EAAK,gBAAgB,MAAM,EAE3BA,EAAK,MAAM,OAAS,UACpBA,EAAK,aAAa,WAAY,GAAG,EACjCA,EAAK,aAAa,OAAQ,QAAQ,MAEtC,CACF,CAEA,SAASQ,GAAO,CACd/D,GAAyB,EACzBkD,EAAmB,EAEnB,IAAIc,EAAclF,EAAgB,kBAAkB,EAChDmF,EAAc,SAAS,iBAAiB,6BAA6B,EACrE/D,EAAe+D,GAAeA,EAAY,OAAS,EACnDC,EAAYF,GAAe9D,EAC/B,GAAI,CAACgE,EAAW,OAEhB,IAAIC,EAAW/E,EACbV,EAAQ,4BAA4B,EACpC,6DACF,EACI0F,EAAmBlF,EACrBR,EAAQ,qCAAqC,EAC7C,CACF,EACI2F,EAAQtF,EAAUL,EAAQ,wBAAwB,EAAG,EAAI,EAEzD4F,EAAQ,CACV,UAAW,GACX,MAAO,EACP,UAAW,CAAC,EACZ,MAAO,CAAC,EACR,aAAc,CAAC,EACf,cAAe,KACf,YAAa,IACf,EAEA,SAASC,EAAeC,EAAI,CAC1B,IAAIrC,EAAOmC,EAAM,UAAUE,CAAE,EAC7B,GAAI,GAACrC,GAAQmC,EAAM,WACnB,IAAIF,EAAmB,EAAG,CACxB,aAAaE,EAAM,aAAaE,CAAE,CAAC,EACnCF,EAAM,aAAaE,CAAE,EAAI,WAAW,UAAY,CAC9C,IAAIC,EAAKH,EAAM,UAAUE,CAAE,EACvB,CAACC,GAAMH,EAAM,WACjBG,EAAG,OAAO,CACZ,EAAGL,CAAgB,EACnB,MACF,CACAjC,EAAK,OAAO,EACd,CAEA,SAASuC,GAAW,CAClB,SAASC,EAAIC,EAAM,CACjB,GAAI,CAAAN,EAAM,UACV,SAAS,EAAI,EAAG,EAAIA,EAAM,MAAM,OAAQ,IAAK,CAC3C,IAAIE,EAAKF,EAAM,MAAM,CAAC,EAClBnC,EAAOmC,EAAM,UAAUE,CAAE,EACzBrC,GAAMA,EAAK,IAAIyC,CAAI,CACzB,CACAN,EAAM,MAAQ,sBAAsBK,CAAG,EACzC,CACAL,EAAM,MAAQ,sBAAsBK,CAAG,CACzC,CAEA,SAASE,EAAsBnE,EAAM,CACnC,IAAIoE,EAAM,CAAC,EACX,QAASxD,KAAKZ,EACZ,GAAK,OAAO,UAAU,eAAe,KAAKA,EAAMY,CAAC,EACjD,KAAIzC,EAAI6B,EAAKY,CAAC,EACV,OAAOzC,GAAM,WAAYiG,EAAIxD,CAAC,EAAI,aACjCwD,EAAIxD,CAAC,EAAIzC,EAEhB,OAAOiG,CACT,CAEA,SAASC,EAA2BC,EAAMvC,EAAU,CAClD,GAAI,CAACA,EAAU,OAAO,KACtB,IAAIxD,EAAI,OAAOwD,CAAQ,EAAE,KAAK,EAC9B,GAAI,CAACxD,EAAE,OAAQ,OAAO,KACtB,GAAIA,IAAM,SAAU,OAAO,OAC3B,GAAI,CACF,OAAQ+F,GAAQ,UAAU,cAAc/F,CAAC,CAC3C,OAASY,EAAG,CACV,OAAO,IACT,CACF,CAEA,SAASoF,EAAwBzG,EAAIkC,EAAM,CACzC,IAAIJ,EAAS,oBACT4E,EAAa3G,EAAYC,EAAI8B,EAAS,SAAS,EAC/C6E,EAAa5G,EAAYC,EAAI8B,EAAS,SAAS,EAC/C8E,EAAY7G,EAAYC,EAAI8B,EAAS,eAAe,EACxD,GAAI4E,EAAY,CACd,IAAIG,EAAIN,EAA2B,SAAUG,CAAU,EACnDG,IAAG3E,EAAK,QAAU2E,EACxB,CACA,GAAIF,EAAY,CACd,IAAIG,EAAIP,EAA2B,SAAUI,CAAU,EACnDG,IAAG5E,EAAK,QAAU4E,EACxB,CACA,GAAIF,EAAW,CACb,IAAIG,EAAKR,EAA2B,SAAUK,CAAS,EACnDG,IAAI7E,EAAK,aAAe6E,EAC9B,CACA,OAAO7E,CACT,CAEA,SAAS8E,EAAqBC,EAAW,CACvC,IAAIhD,EAAWlE,EAAYkH,EAAW,0BAA0B,EAChE,GAAIhD,EAAU,CACZ,IAAIiD,EAAQ,KACZ,GAAI,CACFA,EAAQD,EAAU,cAAchD,CAAQ,CAC1C,OAAS5C,EAAG,CACV6F,EAAQ,IACV,CACA,GAAIA,EAAO,OAAOA,CACpB,CACA,OAAOD,EAAU,mBAAqBA,CACxC,CAEA,SAASE,EAAenB,EAAIoB,EAASC,EAASC,EAASC,EAAQ,CAC7D,IAAIrF,EAAOoF,GAAW,CAAC,EAClBC,IACCH,IAASlF,EAAK,QAAUkF,GACxBC,IAASnF,EAAK,QAAUmF,IAE9B,IAAI1D,EAAO,IAAI,OAAO,MAAMzB,CAAI,EAIhC,GAHA4D,EAAM,UAAUE,CAAE,EAAIrC,EACtBmC,EAAM,MAAM,KAAKE,CAAE,EACfA,IAAO,SAAQ,OAAO,MAAQrC,GAC9BkC,EACF,GAAI,CACF,QAAQ,IAAI,+BAAgCG,EAAI,CAC9C,QAASuB,EAASrF,EAAK,SAAW,UAAYkF,EAC9C,QAASG,EAASrF,EAAK,SAAW,UAAYmF,EAC9C,QAAShB,EAAsBnE,CAAI,CACrC,CAAC,CACH,OAASb,EAAG,CAAC,CAEf,OAAOsC,CACT,CAEA,SAAS6D,GAAyB,CAChC,GAAI,CAAA1B,EAAM,cAEV,KAAI2B,EAAqB,SAAUC,EAAUrG,EAAG,CAC9C,IAAIsG,EAAYD,EAAS,aAAa,qBAAqB,EAC3D,GAAKC,EAEL,CAAItG,GAAGA,EAAE,eAAe,EAExB,IAAIuG,EAAS,KACTC,EAAU,WAAWF,CAAS,EAUlC,GARIA,IAAc,MAChBC,EAAS,EACA,CAAC,MAAMC,CAAO,GAAK,SAASA,CAAO,EAC5CD,EAASC,EAETD,EAAS7G,EAAqB4G,CAAS,EAGrC,EAAAC,IAAW,MAAQD,IAAc,OAAS,MAAME,CAAO,GAE3D,KAAIC,EAAW,KACXC,EAAaL,EAAS,aAAa,4BAA4B,EACnE,GAAIK,GAAcjC,EAAM,UAAUiC,CAAU,EAC1CD,EAAWhC,EAAM,UAAUiC,CAAU,MAChC,CACL,IAAIC,EAAgBN,EAAS,QAAQ,6BAA6B,EAClE,GAAIM,EAAe,CACjB,IAAIC,EAAWD,EAAc,aAAa,qBAAqB,EAC3DC,GAAYnC,EAAM,UAAUmC,CAAQ,IACtCH,EAAWhC,EAAM,UAAUmC,CAAQ,EAEvC,CACF,CAKA,GAJI,CAACH,GAAYhC,EAAM,UAAU,OAC/BgC,EAAWhC,EAAM,UAAU,MAGzB,EAACgC,EAEL,CAAAA,EAAS,OAAO,EAEhB,IAAI5F,EAAO,CAAC,EACRgG,EAAYR,EAAS,aAAa,yBAAyB,EAC/D,GAAIQ,EAAW,CACb,IAAIC,EAAY,WAAWD,CAAS,EACpC,GAAI,CAAC,MAAMC,CAAS,GAAK,SAASA,CAAS,EACzCjG,EAAK,OAASiG,MACT,CACL,IAAIC,EAAWrH,EAAqBmH,CAAS,EACzCE,IAAUlG,EAAK,OAAS,GAAKkG,EAAS,aAC5C,CACF,CACA,IAAIC,EAAM3H,EACRgH,EAAS,aAAa,2BAA2B,EACjD,MACF,EACIW,IAAQ,SAAWnG,EAAK,SAAWmG,GACvC,IAAIC,EAAY/H,EACdmH,EAAS,aAAa,4BAA4B,EAClD,IACF,EACIY,IAAc,OAAMpG,EAAK,UAAYoG,GACzC,IAAIC,EAAOhI,EACTmH,EAAS,aAAa,uBAAuB,EAC7C,IACF,EACIa,IAAS,OAAMrG,EAAK,KAAOqG,GAC/B,IAAIC,EAAQjI,EACVmH,EAAS,aAAa,wBAAwB,EAC9C,IACF,EACIc,IAAU,OAAMtG,EAAK,MAAQsG,GAEjC,IAAIC,GAAqBf,EAAS,aAChC,8BACF,EACIgB,GAAsBxI,EAAQ,8BAA8B,EAC5DyI,GAAevF,GACjBzB,EAAc8G,EAAkB,EAC5BA,GACAC,EACN,EAEI9E,GAAM,CACR,QAAS8D,EACT,OAAQE,EACR,MAAOD,EACP,GAAII,GAAc,IACpB,EAEIa,EAAiB,KACjBD,KACFC,EAAiB,SAAUjF,EAAM,CAC/B,GAAI,CACFgF,GAAahF,EAAMC,EAAG,CACxB,OAASvC,EAAG,CAAC,CACf,GAGF,IAAIwH,GAAa,GACbC,EAAmB5G,EAAK,WAE5BA,EAAK,WAAa,SAAUyB,EAAM,CAChC,GAAIiE,aAAkB,SAChB,CAACiB,GAAY,CACfA,GAAa,GACb,GAAI,CACFf,EAAS,OAAO,CAClB,OAASzG,EAAG,CAAC,CACb,IAAI0H,EAAY,CAAC,EACjB,QAASjG,MAAKZ,EAAM6G,EAAUjG,EAAC,EAAIZ,EAAKY,EAAC,EACzC,OAAOiG,EAAU,WACjBA,EAAU,WAAa,SAAUC,EAAO,CACtC,GAAIF,EACF,GAAI,CACFA,EAAiBE,CAAK,CACxB,OAAS3H,GAAG,CAAC,CAEf,GAAIuH,EACF,GAAI,CACFA,EAAeI,CAAK,CACtB,OAAS3H,GAAG,CAAC,CAEjB,EACAyG,EAAS,SAASF,EAAQmB,CAAS,EACnC,MACF,CAGF,GAAID,EACF,GAAI,CACFA,EAAiBnF,CAAI,CACvB,OAAStC,EAAG,CAAC,CAEf,GAAIuH,EACF,GAAI,CACFA,EAAejF,CAAI,CACrB,OAAStC,EAAG,CAAC,CAEjB,EAEAyG,EAAS,SAASF,EAAQ1F,CAAI,IAChC,EAEA4D,EAAM,cAAgB,SAAUzE,EAAG,CACjC,IAAI4H,EAAU5H,EAAE,OAAO,QAAQ,uBAAuB,EAClD4H,GAASxB,EAAmBwB,EAAS5H,CAAC,CAC5C,EAEAyE,EAAM,YAAc,SAAUzE,EAAG,CAC/B,GAAI,EAAAA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,KACnC,KAAI4H,EAAU5H,EAAE,OAAO,QAAQ,uBAAuB,EAClD4H,GAAW,CAACA,EAAQ,aAAa,MAAM,GACzCxB,EAAmBwB,EAAS5H,CAAC,EAEjC,EAEA,SAAS,iBAAiB,QAASyE,EAAM,aAAa,EACtD,SAAS,iBAAiB,UAAWA,EAAM,WAAW,EACxD,CAEA,SAASoD,GAAU,CACjB,SAASC,EAAcnD,EAAIoD,EAAI,CAC7B,GAAI,OAAOpD,GAAO,UAAYA,EAAG,OAAQ,CACvC,IAAIqD,EAAMvD,EAAM,UAAUE,CAAE,EACxBqD,GAAKD,EAAGpD,EAAIqD,CAAG,EACnB,MACF,CACA,QAASvF,EAAI,EAAGA,EAAIgC,EAAM,MAAM,OAAQhC,IAAK,CAC3C,IAAIhB,EAAIgD,EAAM,MAAMhC,CAAC,EACjBH,EAAOmC,EAAM,UAAUhD,CAAC,EACxBa,GAAMyF,EAAGtG,EAAGa,CAAI,CACtB,CACF,CAEA,MAAO,CACL,cAAe,GACf,IAAK,UAAY,CACf,OAAOmC,EAAM,MAAM,MAAM,CAC3B,EACA,IAAK,SAAUE,EAAI,CACjB,OAAOF,EAAM,UAAUE,CAAE,GAAK,IAChC,EACA,MAAO,SAAUA,EAAI,CACnBmD,EAAcnD,EAAI,SAAUsD,EAAG3F,EAAM,CACnCA,EAAK,MAAM,CACb,CAAC,CACH,EACA,KAAM,SAAUqC,EAAI,CAClBmD,EAAcnD,EAAI,SAAUsD,EAAG3F,EAAM,CACnCA,EAAK,KAAK,CACZ,CAAC,CACH,EACA,OAAQ,SAAUqC,EAAIwC,EAAO,CAC3BW,EAAcnD,EAAI,SAAUsD,EAAG3F,EAAM,CACnC,GAAI,OAAO6E,GAAU,UAAW,CAC1BA,EAAO7E,EAAK,KAAK,EAChBA,EAAK,MAAM,EAChB,MACF,CACIA,EAAK,UAAWA,EAAK,MAAM,EAC1BA,EAAK,KAAK,CACjB,CAAC,CACH,EACA,OAAQ,SAAUqC,EAAI,CACpBmD,EAAcnD,EAAI,SAAUlD,EAAG,CAC7BiD,EAAejD,CAAC,CAClB,CAAC,CACH,EACA,eAAgB,UAAY,CAC1B4B,EAAmB,CACrB,EACA,QAAS,SAAUsB,EAAI,CACrB,GAAIF,EAAM,UAAW,OACrB,SAASyD,EAAWzG,EAAG,CACrB,aAAagD,EAAM,aAAahD,CAAC,CAAC,EAClC,IAAIa,EAAOmC,EAAM,UAAUhD,CAAC,EAC5B,GAAIa,EAAM,CACR,GAAI,CACFA,EAAK,QAAQ,CACf,OAAStC,EAAG,CAAC,CACb,OAAOyE,EAAM,UAAUhD,CAAC,CAC1B,CACA,IAAI0G,EAAM1D,EAAM,MAAM,QAAQhD,CAAC,EAE/B,GADI0G,GAAO,GAAG1D,EAAM,MAAM,OAAO0D,EAAK,CAAC,EACnC1G,IAAM,OACR,GAAI,CACF,OAAO,OAAO,KAChB,OAASzB,EAAG,CACV,OAAO,MAAQ,MACjB,CAEJ,CACA,GAAI,OAAO2E,GAAO,UAAYA,EAAG,OAAQ,CACvCuD,EAAWvD,CAAE,EACb,MACF,CASA,IARIF,EAAM,gBACR,SAAS,oBAAoB,QAASA,EAAM,aAAa,EACzDA,EAAM,cAAgB,MAEpBA,EAAM,cACR,SAAS,oBAAoB,UAAWA,EAAM,WAAW,EACzDA,EAAM,YAAc,MAEfA,EAAM,MAAM,QAAQyD,EAAWzD,EAAM,MAAM,CAAC,CAAC,EACpDA,EAAM,UAAY,GACdA,EAAM,OAAO,qBAAqBA,EAAM,KAAK,CACnD,CACF,CACF,CAEA,SAAS2D,EAAqBC,EAAK,CACjC,OAAO,cAAgB,UAAY,CACjCA,EAAI,KAAK,EACL,SAAS,MAAM,SAAS,KAAK,UAAU,IAAI,WAAW,CAC5D,EACA,OAAO,aAAe,UAAY,CAChCA,EAAI,MAAM,EACN,SAAS,MAAM,SAAS,KAAK,UAAU,OAAO,WAAW,CAC/D,CACF,CAEA3G,GAAe4C,CAAQ,EACpB,KAAK,UAAY,CAChB,GAAI,CAAAG,EAAM,UACV,KAAI6D,EAAM,SAAS,iBAAiB,6BAA6B,EAC7DC,GAAcpE,EAAc,EAAI,IAAMmE,EAAMA,EAAI,OAAS,GACzDE,EACFD,IAAe,GAAKpE,IAAgB,CAACmE,GAAOA,EAAI,SAAW,GAE7D,GAAInE,GAAe,CAACM,EAAM,UAAU,KAAM,CACxC,IAAIgE,EAAWlI,EAAY,UAAY,CACrC,OAAO,IACT,CAAC,EAKD,GAJAkI,EAAWrD,EACT,SAAS,MAAQ,SAAS,gBAC1BqD,CACF,EACID,EAAc,CAChB,IAAIE,EAAa7J,EAAQ,2BAA2B,EAChD8J,EAAUrI,EAAcoI,CAAU,EAClCxJ,EAAUwJ,EAAY,EAAI,EAC1B,GACJD,EAAS,QAAUE,CACrB,MACEF,EAAS,QAAU,GAErB3C,EAAe,OAAQ,KAAM,KAAM2C,EAAU,EAAI,CACnD,CAGA,QADIG,EAAY,EACPnG,EAAI,EAAGA,EAAI6F,EAAI,OAAQ7F,IAAK,CACnC,IAAI9D,EAAK2J,EAAI7F,CAAC,EACVkC,EAAKjG,EAAYC,EAAI,qBAAqB,EAM9C,GALKgG,IACHiE,IACAjE,EAAK,YAAciE,EACnBjK,EAAG,aAAa,sBAAuBgG,CAAE,GAEvC,CAAAF,EAAM,UAAUE,CAAE,EACtB,KAAIqB,EAAUL,EAAqBhH,CAAE,EACjCkC,EAAON,EAAY,SAAU3B,EAAM,CACrC,OAAOF,EAAYC,EAAIC,CAAI,CAC7B,CAAC,EACDiC,EAAOuE,EAAwBzG,EAAIkC,CAAI,EACvCA,EAAK,QAAU,GACfiF,EAAenB,EAAIhG,EAAIqH,EAASnF,EAAM,EAAK,EAC7C,CAEK2H,GAAc3D,EAAS,EAE5B,IAAIwD,EAAMR,EAAQ,EAClB,OAAOpJ,CAAK,EAAI4J,EAChBD,EAAqBC,CAAG,EAExBlC,EAAuB,EAEvB,OAAO,iBAAiB,SAAU,UAAY,CAC5CkC,EAAI,OAAO,CACb,CAAC,EACH,CAAC,EACA,MAAM,UAAY,CAAC,CAAC,CACzB,CAEI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoBnE,CAAI,EAElDA,EAAK,EAGP,OAAOzF,CAAK,EAAI,OAAOA,CAAK,GAAK,CAC/B,cAAe,GACf,IAAK,UAAY,CACf,MAAO,CAAC,CACV,EACA,IAAK,UAAY,CACf,OAAO,IACT,CACF,CACF,GAAG",
6
+ "names": ["RT_NS", "getAttrFrom", "el", "name", "getAttr", "html", "body", "v", "hasAttrAnywhere", "parseBool", "def", "s", "parseNum", "n", "parseStr", "clamp01", "t", "resolveTargetFromStr", "selectorStr", "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", "parseOnCompleteAction", "raw", "lower", "tryQuery", "sel", "safeClick", "safeFocus", "inst", "ctx", "arr", "i", "a", "type", "selector", "detail", "evName", "ev", "fnName", "m", "type2", "rest", "ev2", "convertAnchorLinks", "defaultOnComplete", "links", "currentPath", "origin", "link", "href", "hashIndex", "pathPart", "hashPart", "isLocal", "normPath", "u", "init", "enabledRoot", "instanceEls", "shouldRun", "lenisSrc", "resizeDebounceMs", "debug", "state", "scheduleResize", "id", "i2", "startRaf", "raf", "time", "sanitizeOptionsForLog", "out", "resolveElementFromSelector", "base", "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", "onCompleteRawLocal", "onCompleteRawGlobal", "onCompleteFn", "userOnComplete", "didCorrect", "originalComplete", "retryOpts", "inst2", "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.2.1",
3
+ "version": "1.3.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",