situs-kit 0.1.4 → 0.1.6
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 +1 -1
- package/dist/chunk-fqr7g8fv.js +2 -0
- package/dist/index.js +1 -1
- package/dist/split-text/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
function C(z,q){return typeof globalThis.getComputedStyle==="function"?globalThis.getComputedStyle(z,q??null):null}var B=1,Y=2,S=4,I="inline-block",h="nowrap",f="baseline",L="0px",g="block",m="maskChar",E="maskWord",n="maskLine",s=/^\s+$/,w=/(\s+)/,o=",div,span,svg,img,br,hr,canvas,video,audio,iframe,input,textarea,select,button,picture,figure,",i={u:"underline",ins:"underline",s:"line-through",strike:"line-through",del:"line-through"};class d{dom;chars;words;lines;masks;_p;_k;_e;_h;_d=[];_l=new Map;_g=null;_f=0;_i=!1;_a="";_b;_c;constructor(z,q={}){let F=typeof z==="string"?document.querySelector(z):z;if(!F)throw Error("SplitText: element not found");this.dom=F,this._p=F.innerHTML,this.chars=[],this.words=[],this.lines=[],this.masks={chars:[],words:[],lines:[]};let $=q.type?Array.isArray(q.type)?q.type:[q.type]:["chars","words","lines"],V=0;for(let b of $)if(b==="chars")V|=B;else if(b==="words")V|=Y;else if(b==="lines")V|=S;this._k=V,this._h=q.tag??"span";let Q=0;if(q.mask===!0)Q=V;else if(Array.isArray(q.mask)){for(let b of q.mask)if(b==="chars")Q|=B;else if(b==="words")Q|=Y;else if(b==="lines")Q|=S}if(this._e=Q,this._b=q.style,this._c=q.class,this._t(),(q.resize??!0)&&V&S)this._u()}_m(z,q){let F=document.createElement(this._h);if(z)F.dataset[z]="";if(F.style.display=I,q!==void 0)F.textContent=q;return F}_q(z,q){let F=document.createElement(this._h);if(F.dataset[q]="",F.style.overflow="hidden",F.style.display=z,this._b?.mask)Object.assign(F.style,this._b.mask);if(this._c?.mask)F.classList.add(this._c.mask);return F}_o(z,q,F,$,V){if(this._e&q){let Q=this._q(F,$);return Q.appendChild(z),V.push(Q),Q}return z}_j(z,q,F,$){if(F){let{outer:V,inner:Q}=F();if(Q.appendChild(q),$)this._l.set($,V);z.appendChild(V)}else z.appendChild(q)}_n(z,q,F){if(z.style.textDecoration=q,F)z.style.textDecorationColor=F}_t(){this._i=!0;let z=this.dom,q=C(z),F=q?parseFloat(q.letterSpacing)||0:0;if(this._a=q?q.textIndent:"",this._a&&this._a!==L)z.style.textIndent="0";let $=this._k,V=!!($&B),Q=!!($&Y),b=!!($&S),u=Q||b,j=!!(this._e&B),X=new Map,U=(D)=>{for(let H of Array.from(D.childNodes))if(H.nodeType===1){let N=H.tagName.toLowerCase();if(i[N]){let O=C(H)?.textDecorationColor;if(O)X.set(H,O)}U(H)}};U(z);let Z=Array.from(z.childNodes),M=document.createDocumentFragment();z.replaceChildren();let k=(D,H,N,O)=>{if(D.nodeType===3){let T=(D.textContent??"").split(w);for(let G of T){if(!G)continue;if(s.test(G)){M.appendChild(document.createTextNode(G));continue}let J=u?this._m(Q?"word":""):null;if(J){if(J.style.whiteSpace=h,N&&!V)this._n(J,N,O)}if(V){let R=[...G],c=this.chars.length;for(let v=0;v<R.length;v++){let x=this._m("char",R[v]);if(F&&v<R.length-1)x.style.marginRight=`${F}px`;if(N)this._n(x,N,O);if(this.chars.push(x),this._b?.chars)Object.assign(x.style,this._b.chars);if(this._c?.chars)x.classList.add(this._c.chars);let y=j?this._o(x,B,I,m,this.masks.chars):x;if(J)J.appendChild(y)}if(!J){let v=H?H():null,x=v?v.inner:M;for(let y=c;y<this.chars.length;y++){let _=this.chars[y];x.appendChild(j&&_.parentElement?.dataset?.[m]!==void 0?_.parentElement:_)}if(v)M.appendChild(v.outer)}}else if(J){if(J.textContent=G,F)J.style.letterSpacing=`${F}px`}if(J){if(Q){if(this.words.push(J),this._b?.words)Object.assign(J.style,this._b.words);if(this._c?.words)J.classList.add(this._c.words)}this._d.push(J);let R=this._e&Y?this._o(J,Y,I,E,this.masks.words):J;this._j(M,R,H,J)}else if(!V)this._j(M,document.createTextNode(G),H)}return}if(D.nodeType!==1)return;let P=D,W=P.tagName.toLowerCase();if(o.includes(","+W+",")){let T=P.cloneNode(!0);if(N)this._n(T,N,O);let G=C(P)?.verticalAlign;if(G&&G!==f)T.style.verticalAlign=G;if(u){let J=this._m(Q?"word":"");if(J.style.whiteSpace=h,G&&G!==f)J.style.verticalAlign=G;if(J.appendChild(T),Q){if(this.words.push(J),this._b?.words)Object.assign(J.style,this._b.words);if(this._c?.words)J.classList.add(this._c.words)}this._d.push(J);let R=this._e&Y?this._o(J,Y,I,E,this.masks.words):J;this._j(M,R,H,J)}else this._j(M,T,H);return}let p=()=>{let T=P.cloneNode(!1);if(H){let{outer:G,inner:J}=H();return J.appendChild(T),{outer:G,inner:T}}return{outer:T,inner:T}},K=i[W],a=K?N?`${N} ${K}`:K:N,r=K?X.get(P)||O:O;for(let T of Array.from(P.childNodes))k(T,p,a,r)};for(let D of Z)k(D,null,"","");z.appendChild(M);let A=!!(this._a&&this._a!==L);if(b)this._v(A);else if(A){let D=Q?this.words[0]:V?this.chars[0]:null;if(D)D.style.marginLeft=this._a,z.style.textIndent="0"}this._i=!1}_v(z){if(z&&this._d[0])this._d[0].style.marginLeft=this._a;this._r();let q=[];if(typeof document.fonts?.status==="string"&&document.fonts.status!=="loaded")q.push(document.fonts.ready);let F=this.dom.querySelectorAll("img");for(let $=0;$<F.length;$++){let V=F[$];if(!V.complete)q.push(new Promise((Q)=>{V.addEventListener("load",Q,{once:!0}),V.addEventListener("error",Q,{once:!0})}))}if(q.length){let $=this.dom.offsetHeight;Promise.all(q).then(()=>{if(this.dom.offsetHeight!==$)this.reflow()})}}_s(z){return this._l.get(z)??z}_r(){let z=this._d;if(!z.length)return;let q=z[0].offsetTop,F=q+z[0].offsetHeight,$=[],V=[];for(let j of z){let X=j.offsetTop,U=X+j.offsetHeight;if(X<F&&U>q)q=Math.min(q,X),F=Math.max(F,U);else V.push($),$=[],q=X,F=U;$.push(j)}if($.length)V.push($);let Q=!!(this._a&&this._a!==L);if(Q&&z[0])z[0].style.marginLeft="";let b=!!(this._e&S),u=document.createDocumentFragment();for(let j=0;j<V.length;j++){let X=V[j],U=document.createElement(this._h);if(U.dataset.line="",U.style.display=g,j===0&&Q)U.style.paddingLeft=this._a;for(let Z=0;Z<X.length;Z++){if(Z>0)U.appendChild(document.createTextNode(" "));U.appendChild(this._s(X[Z]))}if(this.lines.push(U),this._b?.lines)Object.assign(U.style,this._b.lines);if(this._c?.lines)U.classList.add(this._c.lines);if(b){let Z=this._q(g,n);Z.appendChild(U),this.masks.lines.push(Z),u.appendChild(Z)}else u.appendChild(U)}this.dom.replaceChildren(u)}_u(){let z=this.dom.offsetParent?this.dom.offsetParent.offsetWidth:window.innerWidth,q=()=>{if(this._i)return;let $=this.dom.offsetParent,V=$?$.offsetWidth:window.innerWidth;if(V===z)return;if(z=V,this._f)cancelAnimationFrame(this._f);this._f=requestAnimationFrame(()=>this.reflow())};this._g=new ResizeObserver(q);let F=this.dom.offsetParent??this.dom.parentElement;if(F)this._g.observe(F);else this._g.observe(this.dom)}reflow(){if(!(this._k&S)||this._i)return;let z=document.createDocumentFragment();for(let q=0;q<this._d.length;q++){if(q>0)z.appendChild(document.createTextNode(" "));z.appendChild(this._s(this._d[q]))}if(this.dom.replaceChildren(z),this.lines.length=0,this.masks.lines.length=0,this._a&&this._a!==L&&this._d[0])this._d[0].style.marginLeft=this._a;this._r()}revert(){this.destroy(),this.dom.innerHTML=this._p,this.chars.length=0,this.words.length=0,this._d.length=0,this._l.clear(),this.lines.length=0,this.masks.chars.length=0,this.masks.words.length=0,this.masks.lines.length=0}destroy(){if(this._f)cancelAnimationFrame(this._f),this._f=0;if(this._g)this._g.disconnect(),this._g=null}}
|
|
2
|
+
export{d as a};
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{a as b}from"./chunk-fqr7g8fv.js";export{b as SplitText};
|
package/dist/split-text/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
import{a}from"../chunk-fqr7g8fv.js";export{a as SplitText};
|