scroll-text-reveal 0.1.0 → 0.2.1

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
@@ -50,6 +50,16 @@ import { scrollTextReveal } from "scroll-text-reveal";
50
50
  scrollTextReveal("[data-scroll-text-reveal]");
51
51
  ```
52
52
 
53
+ Default and named imports are both supported:
54
+
55
+ ```ts
56
+ import scrollTextReveal from "scroll-text-reveal";
57
+ ```
58
+
59
+ ```ts
60
+ import { scrollTextReveal } from "scroll-text-reveal";
61
+ ```
62
+
53
63
  The function accepts a CSS selector, one `HTMLElement`, or an iterable
54
64
  collection of `HTMLElement`s.
55
65
 
@@ -146,4 +156,4 @@ pnpm build
146
156
  pnpm build:docs
147
157
  ```
148
158
 
149
- Use `pnpm dev` to open the demo.
159
+ Use `pnpm dev` to open the demo.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var g=Object.create;var i=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var S=(t,e)=>{for(var r in e)i(t,r,{get:e[r],enumerable:!0})},d=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of x(e))!w.call(t,l)&&l!==r&&i(t,l,{get:()=>e[l],enumerable:!(n=v(e,l))||n.enumerable});return t};var E=(t,e,r)=>(r=t!=null?g(R(t)):{},d(e||!t||!t.__esModule?i(r,"default",{value:t,enumerable:!0}):r,t)),M=t=>d(i({},"__esModule",{value:!0}),t);var L={};S(L,{scrollTextReveal:()=>y,scrollTextRevealDefaults:()=>c});module.exports=M(L);var a=E(require("gsap"),1),p=require("gsap/ScrollTrigger"),s=require("gsap/SplitText"),c=Object.freeze({duration:.85,delay:0,stagger:.1,distance:115,start:86,ease:"power3.out",animateInitiallyVisible:!1}),m=new WeakSet,T=!1,h=()=>{T||(a.default.registerPlugin(p.ScrollTrigger,s.SplitText),T=!0)},f=t=>typeof HTMLElement<"u"&&t instanceof HTMLElement,H=t=>{if(typeof document>"u")throw new Error("scrollTextReveal requires a browser DOM.");if(typeof t=="string")try{return Array.from(document.querySelectorAll(t))}catch{throw new TypeError(`scrollTextReveal received an invalid selector: "${t}".`)}if(f(t))return[t];if(t&&typeof t[Symbol.iterator]=="function"){let e=Array.from(t);if(e.every(f))return e}throw new TypeError("scrollTextReveal target must be a CSS selector, HTMLElement, or iterable of HTMLElements.")},o=(t,e,r,n=Number.POSITIVE_INFINITY)=>{if(!Number.isFinite(e)||e<r||e>n){let l=Number.isFinite(n)?`between ${r} and ${n}`:`greater than or equal to ${r}`;throw new RangeError(`scrollTextReveal option "${t}" must be ${l}.`)}return e},I=t=>{let e={...c,...t};if(o("duration",e.duration,0),o("delay",e.delay,0),o("stagger",e.stagger,0),o("distance",e.distance,0),o("start",e.start,0,100),typeof e.ease!="string"||!e.ease.trim())throw new TypeError('scrollTextReveal option "ease" must be a non-empty string.');if(typeof e.animateInitiallyVisible!="boolean")throw new TypeError('scrollTextReveal option "animateInitiallyVisible" must be a boolean.');return e},O=t=>{let e=t.getBoundingClientRect();return e.top<window.innerHeight&&e.bottom>0},y=(t,e={})=>{if(typeof window>"u")throw new Error("scrollTextReveal requires a browser DOM.");let r=I(e),n=H(t);if(!(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches||n.length===0)){h();for(let l of n){if(m.has(l))continue;let u=O(l);u&&!r.animateInitiallyVisible||(s.SplitText.create(l,{type:"lines",mask:"lines",linesClass:"scroll-text-reveal-line",autoSplit:!0,aria:"auto",onSplit:b=>a.default.from(b.lines,{yPercent:r.distance,opacity:0,duration:r.duration,delay:r.delay,stagger:r.stagger,ease:r.ease,...u?{}:{scrollTrigger:{trigger:l,start:`top ${r.start}%`,once:!0}}})}),m.add(l))}}};0&&(module.exports={scrollTextReveal,scrollTextRevealDefaults});
1
+ "use strict";var g=Object.create;var a=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var S=(t,e)=>{for(var r in e)a(t,r,{get:e[r],enumerable:!0})},m=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let l of x(e))!w.call(t,l)&&l!==r&&a(t,l,{get:()=>e[l],enumerable:!(n=v(e,l))||n.enumerable});return t};var E=(t,e,r)=>(r=t!=null?g(R(t)):{},m(e||!t||!t.__esModule?a(r,"default",{value:t,enumerable:!0}):r,t)),M=t=>m(a({},"__esModule",{value:!0}),t);var L={};S(L,{default:()=>u,scrollTextReveal:()=>u,scrollTextRevealDefaults:()=>c});module.exports=M(L);var i=E(require("gsap"),1),y=require("gsap/ScrollTrigger"),s=require("gsap/SplitText"),c=Object.freeze({duration:.85,delay:0,stagger:.1,distance:115,start:86,ease:"power3.out",animateInitiallyVisible:!1}),T=new WeakSet,f=!1,h=()=>{f||(i.default.registerPlugin(y.ScrollTrigger,s.SplitText),f=!0)},p=t=>typeof HTMLElement<"u"&&t instanceof HTMLElement,H=t=>{if(typeof document>"u")throw new Error("scrollTextReveal requires a browser DOM.");if(typeof t=="string")try{return Array.from(document.querySelectorAll(t))}catch{throw new TypeError(`scrollTextReveal received an invalid selector: "${t}".`)}if(p(t))return[t];if(t&&typeof t[Symbol.iterator]=="function"){let e=Array.from(t);if(e.every(p))return e}throw new TypeError("scrollTextReveal target must be a CSS selector, HTMLElement, or iterable of HTMLElements.")},o=(t,e,r,n=Number.POSITIVE_INFINITY)=>{if(!Number.isFinite(e)||e<r||e>n){let l=Number.isFinite(n)?`between ${r} and ${n}`:`greater than or equal to ${r}`;throw new RangeError(`scrollTextReveal option "${t}" must be ${l}.`)}return e},I=t=>{let e={...c,...t};if(o("duration",e.duration,0),o("delay",e.delay,0),o("stagger",e.stagger,0),o("distance",e.distance,0),o("start",e.start,0,100),typeof e.ease!="string"||!e.ease.trim())throw new TypeError('scrollTextReveal option "ease" must be a non-empty string.');if(typeof e.animateInitiallyVisible!="boolean")throw new TypeError('scrollTextReveal option "animateInitiallyVisible" must be a boolean.');return e},O=t=>{let e=t.getBoundingClientRect();return e.top<window.innerHeight&&e.bottom>0},u=(t,e={})=>{if(typeof window>"u")throw new Error("scrollTextReveal requires a browser DOM.");let r=I(e),n=H(t);if(!(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches||n.length===0)){h();for(let l of n){if(T.has(l))continue;let d=O(l);d&&!r.animateInitiallyVisible||(s.SplitText.create(l,{type:"lines",mask:"lines",linesClass:"scroll-text-reveal-line",autoSplit:!0,aria:"auto",onSplit:b=>i.default.from(b.lines,{yPercent:r.distance,opacity:0,duration:r.duration,delay:r.delay,stagger:r.stagger,ease:r.ease,...d?{}:{scrollTrigger:{trigger:l,start:`top ${r.start}%`,once:!0}}})}),T.add(l))}}};0&&(module.exports={scrollTextReveal,scrollTextRevealDefaults});
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export { scrollTextReveal, scrollTextRevealDefaults, } from "./ScrollTextReveal.js";
1
+ export { scrollTextReveal as default, scrollTextReveal, scrollTextRevealDefaults, } from "./ScrollTextReveal.js";
2
2
  export type { ScrollTextRevealDefaults, ScrollTextRevealOptions, ScrollTextRevealTarget, } from "./ScrollTextReveal.js";
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import u from"gsap";import{ScrollTrigger as f}from"gsap/ScrollTrigger";import{SplitText as d}from"gsap/SplitText";var m=Object.freeze({duration:.85,delay:0,stagger:.1,distance:115,start:86,ease:"power3.out",animateInitiallyVisible:!1}),a=new WeakSet,s=!1,p=()=>{s||(u.registerPlugin(f,d),s=!0)},c=t=>typeof HTMLElement<"u"&&t instanceof HTMLElement,y=t=>{if(typeof document>"u")throw new Error("scrollTextReveal requires a browser DOM.");if(typeof t=="string")try{return Array.from(document.querySelectorAll(t))}catch{throw new TypeError(`scrollTextReveal received an invalid selector: "${t}".`)}if(c(t))return[t];if(t&&typeof t[Symbol.iterator]=="function"){let e=Array.from(t);if(e.every(c))return e}throw new TypeError("scrollTextReveal target must be a CSS selector, HTMLElement, or iterable of HTMLElements.")},o=(t,e,r,n=Number.POSITIVE_INFINITY)=>{if(!Number.isFinite(e)||e<r||e>n){let l=Number.isFinite(n)?`between ${r} and ${n}`:`greater than or equal to ${r}`;throw new RangeError(`scrollTextReveal option "${t}" must be ${l}.`)}return e},b=t=>{let e={...m,...t};if(o("duration",e.duration,0),o("delay",e.delay,0),o("stagger",e.stagger,0),o("distance",e.distance,0),o("start",e.start,0,100),typeof e.ease!="string"||!e.ease.trim())throw new TypeError('scrollTextReveal option "ease" must be a non-empty string.');if(typeof e.animateInitiallyVisible!="boolean")throw new TypeError('scrollTextReveal option "animateInitiallyVisible" must be a boolean.');return e},g=t=>{let e=t.getBoundingClientRect();return e.top<window.innerHeight&&e.bottom>0},v=(t,e={})=>{if(typeof window>"u")throw new Error("scrollTextReveal requires a browser DOM.");let r=b(e),n=y(t);if(!(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches||n.length===0)){p();for(let l of n){if(a.has(l))continue;let i=g(l);i&&!r.animateInitiallyVisible||(d.create(l,{type:"lines",mask:"lines",linesClass:"scroll-text-reveal-line",autoSplit:!0,aria:"auto",onSplit:T=>u.from(T.lines,{yPercent:r.distance,opacity:0,duration:r.duration,delay:r.delay,stagger:r.stagger,ease:r.ease,...i?{}:{scrollTrigger:{trigger:l,start:`top ${r.start}%`,once:!0}}})}),a.add(l))}}};export{v as scrollTextReveal,m as scrollTextRevealDefaults};
1
+ import u from"gsap";import{ScrollTrigger as p}from"gsap/ScrollTrigger";import{SplitText as d}from"gsap/SplitText";var m=Object.freeze({duration:.85,delay:0,stagger:.1,distance:115,start:86,ease:"power3.out",animateInitiallyVisible:!1}),i=new WeakSet,s=!1,y=()=>{s||(u.registerPlugin(p,d),s=!0)},c=t=>typeof HTMLElement<"u"&&t instanceof HTMLElement,b=t=>{if(typeof document>"u")throw new Error("scrollTextReveal requires a browser DOM.");if(typeof t=="string")try{return Array.from(document.querySelectorAll(t))}catch{throw new TypeError(`scrollTextReveal received an invalid selector: "${t}".`)}if(c(t))return[t];if(t&&typeof t[Symbol.iterator]=="function"){let e=Array.from(t);if(e.every(c))return e}throw new TypeError("scrollTextReveal target must be a CSS selector, HTMLElement, or iterable of HTMLElements.")},o=(t,e,r,n=Number.POSITIVE_INFINITY)=>{if(!Number.isFinite(e)||e<r||e>n){let l=Number.isFinite(n)?`between ${r} and ${n}`:`greater than or equal to ${r}`;throw new RangeError(`scrollTextReveal option "${t}" must be ${l}.`)}return e},g=t=>{let e={...m,...t};if(o("duration",e.duration,0),o("delay",e.delay,0),o("stagger",e.stagger,0),o("distance",e.distance,0),o("start",e.start,0,100),typeof e.ease!="string"||!e.ease.trim())throw new TypeError('scrollTextReveal option "ease" must be a non-empty string.');if(typeof e.animateInitiallyVisible!="boolean")throw new TypeError('scrollTextReveal option "animateInitiallyVisible" must be a boolean.');return e},v=t=>{let e=t.getBoundingClientRect();return e.top<window.innerHeight&&e.bottom>0},T=(t,e={})=>{if(typeof window>"u")throw new Error("scrollTextReveal requires a browser DOM.");let r=g(e),n=b(t);if(!(window.matchMedia?.("(prefers-reduced-motion: reduce)").matches||n.length===0)){y();for(let l of n){if(i.has(l))continue;let a=v(l);a&&!r.animateInitiallyVisible||(d.create(l,{type:"lines",mask:"lines",linesClass:"scroll-text-reveal-line",autoSplit:!0,aria:"auto",onSplit:f=>u.from(f.lines,{yPercent:r.distance,opacity:0,duration:r.duration,delay:r.delay,stagger:r.stagger,ease:r.ease,...a?{}:{scrollTrigger:{trigger:l,start:`top ${r.start}%`,once:!0}}})}),i.add(l))}}};export{T as default,T as scrollTextReveal,m as scrollTextRevealDefaults};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "scroll-text-reveal",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "A tiny GSAP-powered line reveal for text entering the viewport.",
5
5
  "keywords": [
6
6
  "text-reveal",