lenis 1.0.45-dev.1 → 1.0.46-dev.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lenis-snap.mjs","sources":["../src/slide.js","../src/index.ts"],"sourcesContent":["function removeParentSticky(element) {\r\n const position = getComputedStyle(element).position\r\n\r\n const isSticky = position === 'sticky'\r\n\r\n if (isSticky) {\r\n element.style.setProperty('position', 'static')\r\n element.dataset.sticky = 'true'\r\n }\r\n\r\n if (element.offsetParent) {\r\n removeParentSticky(element.offsetParent)\r\n }\r\n}\r\n\r\nfunction addParentSticky(element) {\r\n if (element?.dataset?.sticky === 'true') {\r\n element.style.removeProperty('position')\r\n delete element.dataset.sticky\r\n }\r\n\r\n if (element.offsetParent) {\r\n addParentSticky(element.offsetParent)\r\n }\r\n}\r\n\r\nfunction offsetTop(element, accumulator = 0) {\r\n const top = accumulator + element.offsetTop\r\n if (element.offsetParent) {\r\n return offsetTop(element.offsetParent, top)\r\n }\r\n return top\r\n}\r\n\r\nfunction offsetLeft(element, accumulator = 0) {\r\n const left = accumulator + element.offsetLeft\r\n if (element.offsetParent) {\r\n return offsetLeft(element.offsetParent, left)\r\n }\r\n return left\r\n}\r\n\r\nfunction scrollTop(element, accumulator = 0) {\r\n const top = accumulator + element.scrollTop\r\n if (element.offsetParent) {\r\n return scrollTop(element.offsetParent, top)\r\n }\r\n return top + window.scrollY\r\n}\r\n\r\nfunction scrollLeft(element, accumulator = 0) {\r\n const left = accumulator + element.scrollLeft\r\n if (element.offsetParent) {\r\n return scrollLeft(element.offsetParent, left)\r\n }\r\n return left + window.scrollX\r\n}\r\n\r\nexport default class Slide {\r\n constructor(\r\n element,\r\n { align = ['start'], ignoreSticky = true, ignoreTransform = false } = {}\r\n ) {\r\n this.element = element\r\n\r\n this.ignoreSticky = ignoreSticky\r\n this.ignoreTransform = ignoreTransform\r\n\r\n this.align = [align].flat()\r\n\r\n this.rect = {}\r\n\r\n this.wrapperResizeObserver = new ResizeObserver(this.onWrapperResize)\r\n this.wrapperResizeObserver.observe(document.body)\r\n\r\n this.resizeObserver = new ResizeObserver(this.onResize)\r\n this.resizeObserver.observe(this.element)\r\n }\r\n\r\n destroy() {\r\n this.wrapperResizeObserver.disconnect()\r\n this.resizeObserver.disconnect()\r\n }\r\n\r\n setRect({ top, left, width, height, element }) {\r\n top = top ?? this.rect.top\r\n left = left ?? this.rect.left\r\n width = width ?? this.rect.width\r\n height = height ?? this.rect.height\r\n element = element ?? this.rect.element\r\n\r\n if (\r\n top === this.rect.top &&\r\n left === this.rect.left &&\r\n width === this.rect.width &&\r\n height === this.rect.height &&\r\n element === this.rect.element\r\n )\r\n return\r\n\r\n this.rect.top = top\r\n this.rect.y = top\r\n this.rect.width = width\r\n this.rect.height = height\r\n this.rect.left = left\r\n this.rect.x = left\r\n this.rect.bottom = top + height\r\n this.rect.right = left + width\r\n }\r\n\r\n onWrapperResize = () => {\r\n let top, left\r\n\r\n if (this.ignoreSticky) removeParentSticky(this.element)\r\n if (this.ignoreTransform) {\r\n top = offsetTop(this.element)\r\n left = offsetLeft(this.element)\r\n } else {\r\n const rect = this.element.getBoundingClientRect()\r\n top = rect.top + scrollTop(this.element)\r\n left = rect.left + scrollLeft(this.element)\r\n }\r\n if (this.ignoreSticky) addParentSticky(this.element)\r\n\r\n this.setRect({ top, left })\r\n }\r\n\r\n onResize = ([entry]) => {\r\n const width = entry.borderBoxSize[0].inlineSize\r\n const height = entry.borderBoxSize[0].blockSize\r\n\r\n this.setRect({ width, height })\r\n }\r\n}\r\n","import Slide from './slide'\r\n\r\n// TODO:\r\n// - horizontal\r\n// - fix trackpad snapping too soon due to velocity (fuck Apple)\r\n// - fix wheel scrolling after limits (see console scroll to)\r\n// - fix touch scroll, do not snap when not released\r\n\r\nexport default class Snap {\r\n constructor(\r\n lenis,\r\n {\r\n type = 'mandatory',\r\n lerp,\r\n easing,\r\n duration,\r\n velocityThreshold = 1,\r\n onSnapStart,\r\n onSnapComplete,\r\n } = {}\r\n ) {\r\n this.lenis = lenis\r\n\r\n this.options = {\r\n type,\r\n lerp,\r\n easing,\r\n duration,\r\n velocityThreshold,\r\n }\r\n\r\n this.type = type\r\n this.elements = new Map()\r\n this.snaps = new Map()\r\n\r\n this.velocityThreshold = velocityThreshold\r\n this.onSnapStart = onSnapStart\r\n this.onSnapComplete = onSnapComplete\r\n\r\n this.viewport = {\r\n width: window.innerWidth,\r\n height: window.innerHeight,\r\n }\r\n this.onWindowResize()\r\n window.addEventListener('resize', this.onWindowResize)\r\n\r\n this.lenis.on('scroll', this.onScroll)\r\n }\r\n\r\n // debug() {\r\n // const element = document.createElement('div')\r\n // element.style.cssText = `\r\n // position: fixed;\r\n // background: red;\r\n // border-bottom: 1px solid red;\r\n // left: 0;\r\n // right: 0;\r\n // top: 0;\r\n // z-index: 9999;\r\n // `\r\n // document.body.appendChild(element)\r\n // }\r\n\r\n destroy() {\r\n this.lenis.off('scroll', this.onScroll)\r\n window.removeEventListener('resize', this.onWindowResize)\r\n this.elements.forEach((slide) => slide.destroy())\r\n }\r\n\r\n start() {\r\n this.isStopped = false\r\n }\r\n\r\n stop() {\r\n this.isStopped = true\r\n }\r\n\r\n add(value) {\r\n const id = crypto.randomUUID()\r\n\r\n this.snaps.set(id, value)\r\n\r\n return () => this.remove(id)\r\n }\r\n\r\n remove(id) {\r\n this.snaps.delete(id)\r\n }\r\n\r\n addElement(element, options = {}) {\r\n const id = crypto.randomUUID()\r\n\r\n this.elements.set(id, new Slide(element, options))\r\n\r\n return () => this.removeElement(id)\r\n }\r\n\r\n removeElement(id) {\r\n this.elements.delete(id)\r\n }\r\n\r\n onWindowResize = () => {\r\n this.viewport.width = window.innerWidth\r\n this.viewport.height = window.innerHeight\r\n }\r\n\r\n onScroll = ({\r\n scroll,\r\n limit,\r\n lastVelocity,\r\n velocity,\r\n isScrolling,\r\n isTouching,\r\n userData,\r\n }) => {\r\n if (this.isStopped) return\r\n // console.log(scroll, velocity, type)\r\n\r\n // return\r\n const isDecelerating = Math.abs(lastVelocity) > Math.abs(velocity)\r\n const isTurningBack =\r\n Math.sign(lastVelocity) !== Math.sign(velocity) && velocity !== 0\r\n\r\n // console.log({ lastVelocity, velocity, isTurningBack, isDecelerating })\r\n\r\n // console.log('onScroll')\r\n\r\n if (\r\n Math.abs(velocity) < this.velocityThreshold &&\r\n // !isTouching &&\r\n isDecelerating &&\r\n !isTurningBack &&\r\n userData?.initiator !== 'snap'\r\n ) {\r\n scroll = Math.ceil(scroll)\r\n\r\n let snaps = [0, ...this.snaps.values(), limit]\r\n\r\n this.elements.forEach(({ rect, align }) => {\r\n let snap\r\n\r\n align.forEach((align) => {\r\n if (align === 'start') {\r\n snap = rect.top\r\n } else if (align === 'center') {\r\n snap = rect.top + rect.height / 2 - this.viewport.height / 2\r\n } else if (align === 'end') {\r\n snap = rect.top + rect.height - this.viewport.height\r\n }\r\n\r\n if (snap !== undefined) {\r\n snaps.push(Math.ceil(snap))\r\n }\r\n })\r\n })\r\n\r\n snaps = snaps.sort((a, b) => Math.abs(a) - Math.abs(b))\r\n\r\n let prevSnap = snaps.findLast((snap) => snap <= scroll)\r\n if (prevSnap === undefined) prevSnap = snaps[0]\r\n const distanceToPrevSnap = Math.abs(scroll - prevSnap)\r\n\r\n let nextSnap = snaps.find((snap) => snap >= scroll)\r\n if (nextSnap === undefined) nextSnap = snaps[snaps.length - 1]\r\n const distanceToNextSnap = Math.abs(scroll - nextSnap)\r\n\r\n const snap = distanceToPrevSnap < distanceToNextSnap ? prevSnap : nextSnap\r\n\r\n const distance = Math.abs(scroll - snap)\r\n\r\n if (\r\n this.type === 'mandatory' ||\r\n (this.type === 'proximity' && distance <= this.viewport.height)\r\n ) {\r\n // this.__isScrolling = true\r\n // this.onSnapStart?.(snap)\r\n\r\n // console.log('scroll to')\r\n\r\n this.lenis.scrollTo(snap, {\r\n lerp: this.options.lerp,\r\n easing: this.options.easing,\r\n duration: this.options.duration,\r\n userData: { initiator: 'snap' },\r\n onStart: () => {\r\n this.onSnapStart?.(snap)\r\n },\r\n onComplete: () => {\r\n this.onSnapComplete?.(snap)\r\n },\r\n })\r\n }\r\n\r\n // console.timeEnd('scroll')\r\n }\r\n }\r\n}\r\n"],"names":["removeParentSticky","element","getComputedStyle","position","style","setProperty","dataset","sticky","offsetParent","addParentSticky","removeProperty","offsetTop","accumulator","top","offsetLeft","left","scrollTop","window","scrollY","scrollLeft","scrollX","Slide","constructor","align","ignoreSticky","ignoreTransform","this","flat","rect","wrapperResizeObserver","ResizeObserver","onWrapperResize","observe","document","body","resizeObserver","onResize","destroy","disconnect","setRect","width","height","y","x","bottom","right","getBoundingClientRect","entry","borderBoxSize","inlineSize","blockSize","Snap","lenis","type","lerp","easing","duration","velocityThreshold","onSnapStart","onSnapComplete","onWindowResize","viewport","innerWidth","innerHeight","onScroll","scroll","limit","lastVelocity","velocity","isScrolling","isTouching","userData","isStopped","isDecelerating","Math","abs","isTurningBack","sign","initiator","ceil","snaps","values","elements","forEach","snap","undefined","push","sort","a","b","prevSnap","findLast","distanceToPrevSnap","nextSnap","find","length","distance","scrollTo","options","onStart","_a","call","onComplete","Map","addEventListener","on","off","removeEventListener","slide","start","stop","add","value","id","crypto","randomUUID","set","remove","delete","addElement","removeElement"],"mappings":"AAAA,SAASA,mBAAmBC,GAGI,WAFbC,iBAAiBD,GAASE,WAKzCF,EAAQG,MAAMC,YAAY,WAAY,UACtCJ,EAAQK,QAAQC,OAAS,QAGvBN,EAAQO,cACVR,mBAAmBC,EAAQO,aAE/B,CAEA,SAASC,gBAAgBR,GACU,SAA7BA,GAASK,SAASC,SACpBN,EAAQG,MAAMM,eAAe,mBACtBT,EAAQK,QAAQC,QAGrBN,EAAQO,cACVC,gBAAgBR,EAAQO,aAE5B,CAEA,SAASG,UAAUV,EAASW,EAAc,GACxC,MAAMC,EAAMD,EAAcX,EAAQU,UAClC,OAAIV,EAAQO,aACHG,UAAUV,EAAQO,aAAcK,GAElCA,CACT,CAEA,SAASC,WAAWb,EAASW,EAAc,GACzC,MAAMG,EAAOH,EAAcX,EAAQa,WACnC,OAAIb,EAAQO,aACHM,WAAWb,EAAQO,aAAcO,GAEnCA,CACT,CAEA,SAASC,UAAUf,EAASW,EAAc,GACxC,MAAMC,EAAMD,EAAcX,EAAQe,UAClC,OAAIf,EAAQO,aACHQ,UAAUf,EAAQO,aAAcK,GAElCA,EAAMI,OAAOC,OACtB,CAEA,SAASC,WAAWlB,EAASW,EAAc,GACzC,MAAMG,EAAOH,EAAcX,EAAQkB,WACnC,OAAIlB,EAAQO,aACHW,WAAWlB,EAAQO,aAAcO,GAEnCA,EAAOE,OAAOG,OACvB,CAEe,MAAMC,MACnB,WAAAC,CACErB,GACAsB,MAAEA,EAAQ,CAAC,SAAQC,aAAEA,GAAe,EAAIC,gBAAEA,GAAkB,GAAU,CAAE,GAExEC,KAAKzB,QAAUA,EAEfyB,KAAKF,aAAeA,EACpBE,KAAKD,gBAAkBA,EAEvBC,KAAKH,MAAQ,CAACA,GAAOI,OAErBD,KAAKE,KAAO,CAAE,EAEdF,KAAKG,sBAAwB,IAAIC,eAAeJ,KAAKK,iBACrDL,KAAKG,sBAAsBG,QAAQC,SAASC,MAE5CR,KAAKS,eAAiB,IAAIL,eAAeJ,KAAKU,UAC9CV,KAAKS,eAAeH,QAAQN,KAAKzB,QAClC,CAED,OAAAoC,GACEX,KAAKG,sBAAsBS,aAC3BZ,KAAKS,eAAeG,YACrB,CAED,OAAAC,EAAQ1B,IAAEA,EAAGE,KAAEA,EAAIyB,MAAEA,EAAKC,OAAEA,EAAMxC,QAAEA,IAClCY,EAAMA,GAAOa,KAAKE,KAAKf,IACvBE,EAAOA,GAAQW,KAAKE,KAAKb,KACzByB,EAAQA,GAASd,KAAKE,KAAKY,MAC3BC,EAASA,GAAUf,KAAKE,KAAKa,OAC7BxC,EAAUA,GAAWyB,KAAKE,KAAK3B,QAG7BY,IAAQa,KAAKE,KAAKf,KAClBE,IAASW,KAAKE,KAAKb,MACnByB,IAAUd,KAAKE,KAAKY,OACpBC,IAAWf,KAAKE,KAAKa,QACrBxC,IAAYyB,KAAKE,KAAK3B,UAIxByB,KAAKE,KAAKf,IAAMA,EAChBa,KAAKE,KAAKc,EAAI7B,EACda,KAAKE,KAAKY,MAAQA,EAClBd,KAAKE,KAAKa,OAASA,EACnBf,KAAKE,KAAKb,KAAOA,EACjBW,KAAKE,KAAKe,EAAI5B,EACdW,KAAKE,KAAKgB,OAAS/B,EAAM4B,EACzBf,KAAKE,KAAKiB,MAAQ9B,EAAOyB,EAC1B,CAEDT,gBAAkB,KAChB,IAAIlB,EAAKE,EAGT,GADIW,KAAKF,cAAcxB,mBAAmB0B,KAAKzB,SAC3CyB,KAAKD,gBACPZ,EAAMF,UAAUe,KAAKzB,SACrBc,EAAOD,WAAWY,KAAKzB,aAClB,CACL,MAAM2B,EAAOF,KAAKzB,QAAQ6C,wBAC1BjC,EAAMe,EAAKf,IAAMG,UAAUU,KAAKzB,SAChCc,EAAOa,EAAKb,KAAOI,WAAWO,KAAKzB,QACpC,CACGyB,KAAKF,cAAcf,gBAAgBiB,KAAKzB,SAE5CyB,KAAKa,QAAQ,CAAE1B,MAAKE,QAAO,EAG7BqB,SAAW,EAAEW,MACX,MAAMP,EAAQO,EAAMC,cAAc,GAAGC,WAC/BR,EAASM,EAAMC,cAAc,GAAGE,UAEtCxB,KAAKa,QAAQ,CAAEC,QAAOC,UAAS,EC3HrB,MAAOU,KACnB,WAAA7B,CACE8B,GACAC,KACEA,EAAO,YAAWC,KAClBA,EAAIC,OACJA,EAAMC,SACNA,EAAQC,kBACRA,EAAoB,EAACC,YACrBA,EAAWC,eACXA,GACE,CAAA,GAkFNjC,KAAckC,eAAG,KACflC,KAAKmC,SAASrB,MAAQvB,OAAO6C,WAC7BpC,KAAKmC,SAASpB,OAASxB,OAAO8C,WAAW,EAG3CrC,KAAAsC,SAAW,EACTC,SACAC,QACAC,eACAC,WACAC,cACAC,aACAC,eAEA,GAAI7C,KAAK8C,UAAW,OAIpB,MAAMC,EAAiBC,KAAKC,IAAIR,GAAgBO,KAAKC,IAAIP,GACnDQ,EACJF,KAAKG,KAAKV,KAAkBO,KAAKG,KAAKT,IAA0B,IAAbA,EAMrD,GACEM,KAAKC,IAAIP,GAAY1C,KAAK+B,mBAE1BgB,IACCG,GACuB,UAAxBL,aAAA,EAAAA,EAAUO,WACV,CACAb,EAASS,KAAKK,KAAKd,GAEnB,IAAIe,EAAQ,CAAC,KAAMtD,KAAKsD,MAAMC,SAAUf,GAExCxC,KAAKwD,SAASC,SAAQ,EAAGvD,OAAML,YAC7B,IAAI6D,EAEJ7D,EAAM4D,SAAS5D,IACC,UAAVA,EACF6D,EAAOxD,EAAKf,IACO,WAAVU,EACT6D,EAAOxD,EAAKf,IAAMe,EAAKa,OAAS,EAAIf,KAAKmC,SAASpB,OAAS,EACxC,QAAVlB,IACT6D,EAAOxD,EAAKf,IAAMe,EAAKa,OAASf,KAAKmC,SAASpB,aAGnC4C,IAATD,GACFJ,EAAMM,KAAKZ,KAAKK,KAAKK,GACtB,GACD,IAGJJ,EAAQA,EAAMO,MAAK,CAACC,EAAGC,IAAMf,KAAKC,IAAIa,GAAKd,KAAKC,IAAIc,KAEpD,IAAIC,EAAWV,EAAMW,UAAUP,GAASA,GAAQnB,SAC/BoB,IAAbK,IAAwBA,EAAWV,EAAM,IAC7C,MAAMY,EAAqBlB,KAAKC,IAAIV,EAASyB,GAE7C,IAAIG,EAAWb,EAAMc,MAAMV,GAASA,GAAQnB,SAC3BoB,IAAbQ,IAAwBA,EAAWb,EAAMA,EAAMe,OAAS,IAC5D,MAEMX,EAAOQ,EAFclB,KAAKC,IAAIV,EAAS4B,GAEUH,EAAWG,EAE5DG,EAAWtB,KAAKC,IAAIV,EAASmB,IAGnB,cAAd1D,KAAK2B,MACU,cAAd3B,KAAK2B,MAAwB2C,GAAYtE,KAAKmC,SAASpB,SAOxDf,KAAK0B,MAAM6C,SAASb,EAAM,CACxB9B,KAAM5B,KAAKwE,QAAQ5C,KACnBC,OAAQ7B,KAAKwE,QAAQ3C,OACrBC,SAAU9B,KAAKwE,QAAQ1C,SACvBe,SAAU,CAAEO,UAAW,QACvBqB,QAAS,WACY,QAAnBC,EAAA1E,KAAKgC,mBAAc,IAAA0C,GAAAA,EAAAC,KAAA3E,KAAA0D,EAAK,EAE1BkB,WAAY,WACY,QAAtBF,EAAA1E,KAAKiC,sBAAiB,IAAAyC,GAAAA,EAAAC,KAAA3E,KAAA0D,EAAK,GAMlC,GA7KD1D,KAAK0B,MAAQA,EAEb1B,KAAKwE,QAAU,CACb7C,OACAC,OACAC,SACAC,WACAC,qBAGF/B,KAAK2B,KAAOA,EACZ3B,KAAKwD,SAAW,IAAIqB,IACpB7E,KAAKsD,MAAQ,IAAIuB,IAEjB7E,KAAK+B,kBAAoBA,EACzB/B,KAAKgC,YAAcA,EACnBhC,KAAKiC,eAAiBA,EAEtBjC,KAAKmC,SAAW,CACdrB,MAAOvB,OAAO6C,WACdrB,OAAQxB,OAAO8C,aAEjBrC,KAAKkC,iBACL3C,OAAOuF,iBAAiB,SAAU9E,KAAKkC,gBAEvClC,KAAK0B,MAAMqD,GAAG,SAAU/E,KAAKsC,SAC9B,CAgBD,OAAA3B,GACEX,KAAK0B,MAAMsD,IAAI,SAAUhF,KAAKsC,UAC9B/C,OAAO0F,oBAAoB,SAAUjF,KAAKkC,gBAC1ClC,KAAKwD,SAASC,SAASyB,GAAUA,EAAMvE,WACxC,CAED,KAAAwE,GACEnF,KAAK8C,WAAY,CAClB,CAED,IAAAsC,GACEpF,KAAK8C,WAAY,CAClB,CAED,GAAAuC,CAAIC,GACF,MAAMC,EAAKC,OAAOC,aAIlB,OAFAzF,KAAKsD,MAAMoC,IAAIH,EAAID,GAEZ,IAAMtF,KAAK2F,OAAOJ,EAC1B,CAED,MAAAI,CAAOJ,GACLvF,KAAKsD,MAAMsC,OAAOL,EACnB,CAED,UAAAM,CAAWtH,EAASiG,EAAU,IAC5B,MAAMe,EAAKC,OAAOC,aAIlB,OAFAzF,KAAKwD,SAASkC,IAAIH,EAAI,IAAI5F,MAAMpB,EAASiG,IAElC,IAAMxE,KAAK8F,cAAcP,EACjC,CAED,aAAAO,CAAcP,GACZvF,KAAKwD,SAASoC,OAAOL,EACtB"}
package/dist/lenis.d.ts CHANGED
@@ -22,10 +22,17 @@ type LenisOptions = {
22
22
  __experimental__naiveDimensions?: boolean;
23
23
  };
24
24
  declare class Lenis {
25
- __isSmooth: boolean;
26
- __isScrolling: boolean;
25
+ __isScrolling: boolean | 'native' | 'smooth';
27
26
  __isStopped: boolean;
28
27
  __isLocked: boolean;
28
+ time: number;
29
+ userData: object;
30
+ lastVelocity: number;
31
+ velocity: number;
32
+ direction: 1 | -1 | undefined;
33
+ options: LenisOptions;
34
+ targetScroll: number;
35
+ animatedScroll: number;
29
36
  constructor({ wrapper, content, wheelEventsTarget, // deprecated
30
37
  eventsTarget, smoothWheel, syncTouch, syncTouchLerp, touchInertiaMultiplier, duration, // in seconds
31
38
  easing, lerp, infinite, orientation, // vertical, horizontal
@@ -43,34 +50,37 @@ declare class Lenis {
43
50
  start(): void;
44
51
  stop(): void;
45
52
  raf(time: number): void;
46
- scrollTo(target: number | string | HTMLElement, { offset, immediate, lock, duration, easing, lerp, onComplete, force, // scroll even if stopped
47
- programmatic, }?: {
53
+ scrollTo(target: number | string | HTMLElement, { offset, immediate, lock, duration, easing, lerp, onStart, onComplete, force, // scroll even if stopped
54
+ programmatic, // called from outside of the class
55
+ userData, }?: {
48
56
  offset?: number;
49
57
  immediate?: boolean;
50
58
  lock?: boolean;
51
59
  duration?: number;
52
60
  easing?: EasingFunction;
53
61
  lerp?: number;
62
+ onStart?: (lenis: Lenis) => void;
54
63
  onComplete?: (lenis: Lenis) => void;
55
64
  force?: boolean;
56
65
  programmatic?: boolean;
66
+ userData?: object;
57
67
  }): void;
58
- get rootElement(): any;
68
+ get rootElement(): Window | HTMLElement;
59
69
  get limit(): any;
60
70
  get isHorizontal(): boolean;
61
- get actualScroll(): any;
62
- get scroll(): any;
71
+ get actualScroll(): number;
72
+ get scroll(): number;
63
73
  get progress(): number;
64
- get isSmooth(): boolean;
65
- private set isSmooth(value);
66
74
  get isScrolling(): boolean;
67
75
  private set isScrolling(value);
68
76
  get isStopped(): boolean;
69
77
  private set isStopped(value);
70
78
  get isLocked(): boolean;
71
79
  private set isLocked(value);
80
+ get isSmooth(): boolean;
72
81
  get className(): string;
73
- private toggleClassName;
82
+ private updateClassName;
83
+ private cleanUpClassName;
74
84
  }
75
85
 
76
86
  export { type LenisOptions, Lenis as default };