masoneffect 2.0.12 → 2.0.14
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 +126 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/textSpin/index.d.ts +48 -0
- package/dist/core/textSpin/index.d.ts.map +1 -0
- package/dist/count/core/index.d.ts +2 -0
- package/dist/count/core/index.d.ts.map +1 -1
- package/dist/count/core/textSpin/index.d.ts +48 -0
- package/dist/count/core/textSpin/index.d.ts.map +1 -0
- package/dist/count/index.d.ts +2 -0
- package/dist/count/index.d.ts.map +1 -1
- package/dist/count/react/index.d.ts +2 -0
- package/dist/count/react/index.d.ts.map +1 -1
- package/dist/count/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/count/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/count/react/textSpin/index.d.ts +5 -0
- package/dist/count/react/textSpin/index.d.ts.map +1 -0
- package/dist/count/svelte/index.d.ts +1 -0
- package/dist/count/svelte/index.d.ts.map +1 -1
- package/dist/count/svelte/textSpin/index.d.ts +4 -0
- package/dist/count/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/count/vue/index.d.ts +1 -0
- package/dist/count/vue/index.d.ts.map +1 -1
- package/dist/count/vue/textSpin/index.d.ts +4 -0
- package/dist/count/vue/textSpin/index.d.ts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/react/core/index.d.ts +2 -0
- package/dist/react/core/textSpin/index.d.ts +47 -0
- package/dist/react/count/core/index.d.ts +2 -0
- package/dist/react/count/core/index.d.ts.map +1 -1
- package/dist/react/count/core/textSpin/index.d.ts +48 -0
- package/dist/react/count/core/textSpin/index.d.ts.map +1 -0
- package/dist/react/count/index.d.ts +2 -0
- package/dist/react/count/index.d.ts.map +1 -1
- package/dist/react/count/react/index.d.ts +2 -0
- package/dist/react/count/react/index.d.ts.map +1 -1
- package/dist/react/count/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/react/count/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/react/count/react/textSpin/index.d.ts +5 -0
- package/dist/react/count/react/textSpin/index.d.ts.map +1 -0
- package/dist/react/count/svelte/index.d.ts +1 -0
- package/dist/react/count/svelte/index.d.ts.map +1 -1
- package/dist/react/count/svelte/textSpin/index.d.ts +4 -0
- package/dist/react/count/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/react/count/vue/index.d.ts +1 -0
- package/dist/react/count/vue/index.d.ts.map +1 -1
- package/dist/react/count/vue/textSpin/index.d.ts +4 -0
- package/dist/react/count/vue/textSpin/index.d.ts.map +1 -0
- package/dist/react/index.cjs +2 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.mjs +1 -0
- package/dist/react/react/index.d.ts +2 -0
- package/dist/react/react/textSpin/TextSpin.d.ts +18 -0
- package/dist/react/react/textSpin/index.d.ts +4 -0
- package/dist/react/scrollFadeIn/core/index.d.ts +2 -0
- package/dist/react/scrollFadeIn/core/index.d.ts.map +1 -1
- package/dist/react/scrollFadeIn/core/textSpin/index.d.ts +48 -0
- package/dist/react/scrollFadeIn/core/textSpin/index.d.ts.map +1 -0
- package/dist/react/scrollFadeIn/index.d.ts +2 -0
- package/dist/react/scrollFadeIn/index.d.ts.map +1 -1
- package/dist/react/scrollFadeIn/react/index.d.ts +2 -0
- package/dist/react/scrollFadeIn/react/index.d.ts.map +1 -1
- package/dist/react/scrollFadeIn/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/react/scrollFadeIn/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/react/scrollFadeIn/react/textSpin/index.d.ts +5 -0
- package/dist/react/scrollFadeIn/react/textSpin/index.d.ts.map +1 -0
- package/dist/react/scrollFadeIn/svelte/index.d.ts +1 -0
- package/dist/react/scrollFadeIn/svelte/index.d.ts.map +1 -1
- package/dist/react/scrollFadeIn/svelte/textSpin/index.d.ts +4 -0
- package/dist/react/scrollFadeIn/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/react/scrollFadeIn/vue/index.d.ts +1 -0
- package/dist/react/scrollFadeIn/vue/index.d.ts.map +1 -1
- package/dist/react/scrollFadeIn/vue/textSpin/index.d.ts +4 -0
- package/dist/react/scrollFadeIn/vue/textSpin/index.d.ts.map +1 -0
- package/dist/react/svelte/index.d.ts +1 -0
- package/dist/react/svelte/textSpin/index.d.ts +3 -0
- package/dist/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/react/textSpin/core/count/index.d.ts +53 -0
- package/dist/react/textSpin/core/count/index.d.ts.map +1 -0
- package/dist/react/textSpin/core/index.d.ts +24 -0
- package/dist/react/textSpin/core/index.d.ts.map +1 -0
- package/dist/react/textSpin/core/scrollFadeIn/index.d.ts +50 -0
- package/dist/react/textSpin/core/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/react/textSpin/core/textSpin/index.d.ts +48 -0
- package/dist/react/textSpin/core/textSpin/index.d.ts.map +1 -0
- package/dist/react/textSpin/core/textToParticle/index.d.ts +103 -0
- package/dist/react/textSpin/core/textToParticle/index.d.ts.map +1 -0
- package/dist/react/textSpin/core/typing/index.d.ts +56 -0
- package/dist/react/textSpin/core/typing/index.d.ts.map +1 -0
- package/dist/react/textSpin/core/utils/visibilityManager.d.ts +36 -0
- package/dist/react/textSpin/core/utils/visibilityManager.d.ts.map +1 -0
- package/dist/react/textSpin/index.cjs +1 -0
- package/dist/react/textSpin/index.d.ts +22 -0
- package/dist/react/textSpin/index.d.ts.map +1 -0
- package/dist/react/textSpin/index.mjs +1 -0
- package/dist/react/textSpin/index.umd.d.ts +7 -0
- package/dist/react/textSpin/index.umd.d.ts.map +1 -0
- package/dist/react/textSpin/react/MasonEffect.d.ts +32 -0
- package/dist/react/textSpin/react/MasonEffect.d.ts.map +1 -0
- package/dist/react/textSpin/react/count/Count.d.ts +19 -0
- package/dist/react/textSpin/react/count/Count.d.ts.map +1 -0
- package/dist/react/textSpin/react/count/index.d.ts +5 -0
- package/dist/react/textSpin/react/count/index.d.ts.map +1 -0
- package/dist/react/textSpin/react/index.d.ts +18 -0
- package/dist/react/textSpin/react/index.d.ts.map +1 -0
- package/dist/react/textSpin/react/scrollFadeIn/ScrollFadeIn.d.ts +19 -0
- package/dist/react/textSpin/react/scrollFadeIn/ScrollFadeIn.d.ts.map +1 -0
- package/dist/react/textSpin/react/scrollFadeIn/index.d.ts +4 -0
- package/dist/react/textSpin/react/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/react/textSpin/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/react/textSpin/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/react/textSpin/react/textSpin/index.d.ts +5 -0
- package/dist/react/textSpin/react/textSpin/index.d.ts.map +1 -0
- package/dist/react/textSpin/react/textToParticle/TextToParticle.d.ts +15 -0
- package/dist/react/textSpin/react/textToParticle/TextToParticle.d.ts.map +1 -0
- package/dist/react/textSpin/react/textToParticle/index.d.ts +4 -0
- package/dist/react/textSpin/react/textToParticle/index.d.ts.map +1 -0
- package/dist/react/textSpin/react/typing/Typing.d.ts +18 -0
- package/dist/react/textSpin/react/typing/Typing.d.ts.map +1 -0
- package/dist/react/textSpin/react/typing/index.d.ts +4 -0
- package/dist/react/textSpin/react/typing/index.d.ts.map +1 -0
- package/dist/react/textSpin/svelte/count/index.d.ts +2 -0
- package/dist/react/textSpin/svelte/count/index.d.ts.map +1 -0
- package/dist/react/textSpin/svelte/index.d.ts +11 -0
- package/dist/react/textSpin/svelte/index.d.ts.map +1 -0
- package/dist/react/textSpin/svelte/scrollFadeIn/index.d.ts +2 -0
- package/dist/react/textSpin/svelte/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/react/textSpin/svelte/textSpin/index.d.ts +4 -0
- package/dist/react/textSpin/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/react/textSpin/svelte/textToParticle/index.d.ts +2 -0
- package/dist/react/textSpin/svelte/textToParticle/index.d.ts.map +1 -0
- package/dist/react/textSpin/svelte/typing/index.d.ts +3 -0
- package/dist/react/textSpin/svelte/typing/index.d.ts.map +1 -0
- package/dist/react/textSpin/vue/count/index.d.ts +2 -0
- package/dist/react/textSpin/vue/count/index.d.ts.map +1 -0
- package/dist/react/textSpin/vue/index.d.ts +11 -0
- package/dist/react/textSpin/vue/index.d.ts.map +1 -0
- package/dist/react/textSpin/vue/scrollFadeIn/index.d.ts +2 -0
- package/dist/react/textSpin/vue/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/react/textSpin/vue/textSpin/index.d.ts +4 -0
- package/dist/react/textSpin/vue/textSpin/index.d.ts.map +1 -0
- package/dist/react/textSpin/vue/textToParticle/index.d.ts +2 -0
- package/dist/react/textSpin/vue/textToParticle/index.d.ts.map +1 -0
- package/dist/react/textSpin/vue/typing/index.d.ts +4 -0
- package/dist/react/textSpin/vue/typing/index.d.ts.map +1 -0
- package/dist/react/textToParticle/core/index.d.ts +2 -0
- package/dist/react/textToParticle/core/index.d.ts.map +1 -1
- package/dist/react/textToParticle/core/textSpin/index.d.ts +48 -0
- package/dist/react/textToParticle/core/textSpin/index.d.ts.map +1 -0
- package/dist/react/textToParticle/index.d.ts +2 -0
- package/dist/react/textToParticle/index.d.ts.map +1 -1
- package/dist/react/textToParticle/react/index.d.ts +2 -0
- package/dist/react/textToParticle/react/index.d.ts.map +1 -1
- package/dist/react/textToParticle/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/react/textToParticle/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/react/textToParticle/react/textSpin/index.d.ts +5 -0
- package/dist/react/textToParticle/react/textSpin/index.d.ts.map +1 -0
- package/dist/react/textToParticle/svelte/index.d.ts +1 -0
- package/dist/react/textToParticle/svelte/index.d.ts.map +1 -1
- package/dist/react/textToParticle/svelte/textSpin/index.d.ts +4 -0
- package/dist/react/textToParticle/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/react/textToParticle/vue/index.d.ts +1 -0
- package/dist/react/textToParticle/vue/index.d.ts.map +1 -1
- package/dist/react/textToParticle/vue/textSpin/index.d.ts +4 -0
- package/dist/react/textToParticle/vue/textSpin/index.d.ts.map +1 -0
- package/dist/react/typing/core/index.d.ts +2 -0
- package/dist/react/typing/core/index.d.ts.map +1 -1
- package/dist/react/typing/core/textSpin/index.d.ts +48 -0
- package/dist/react/typing/core/textSpin/index.d.ts.map +1 -0
- package/dist/react/typing/index.d.ts +2 -0
- package/dist/react/typing/index.d.ts.map +1 -1
- package/dist/react/typing/react/index.d.ts +2 -0
- package/dist/react/typing/react/index.d.ts.map +1 -1
- package/dist/react/typing/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/react/typing/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/react/typing/react/textSpin/index.d.ts +5 -0
- package/dist/react/typing/react/textSpin/index.d.ts.map +1 -0
- package/dist/react/typing/svelte/index.d.ts +1 -0
- package/dist/react/typing/svelte/index.d.ts.map +1 -1
- package/dist/react/typing/svelte/textSpin/index.d.ts +4 -0
- package/dist/react/typing/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/react/typing/vue/index.d.ts +1 -0
- package/dist/react/typing/vue/index.d.ts.map +1 -1
- package/dist/react/typing/vue/textSpin/index.d.ts +4 -0
- package/dist/react/typing/vue/textSpin/index.d.ts.map +1 -0
- package/dist/react/vue/index.d.ts +1 -0
- package/dist/react/vue/textSpin/index.d.ts +3 -0
- package/dist/scrollFadeIn/core/index.d.ts +2 -0
- package/dist/scrollFadeIn/core/index.d.ts.map +1 -1
- package/dist/scrollFadeIn/core/textSpin/index.d.ts +48 -0
- package/dist/scrollFadeIn/core/textSpin/index.d.ts.map +1 -0
- package/dist/scrollFadeIn/index.d.ts +2 -0
- package/dist/scrollFadeIn/index.d.ts.map +1 -1
- package/dist/scrollFadeIn/react/index.d.ts +2 -0
- package/dist/scrollFadeIn/react/index.d.ts.map +1 -1
- package/dist/scrollFadeIn/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/scrollFadeIn/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/scrollFadeIn/react/textSpin/index.d.ts +5 -0
- package/dist/scrollFadeIn/react/textSpin/index.d.ts.map +1 -0
- package/dist/scrollFadeIn/svelte/index.d.ts +1 -0
- package/dist/scrollFadeIn/svelte/index.d.ts.map +1 -1
- package/dist/scrollFadeIn/svelte/textSpin/index.d.ts +4 -0
- package/dist/scrollFadeIn/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/scrollFadeIn/vue/index.d.ts +1 -0
- package/dist/scrollFadeIn/vue/index.d.ts.map +1 -1
- package/dist/scrollFadeIn/vue/textSpin/index.d.ts +4 -0
- package/dist/scrollFadeIn/vue/textSpin/index.d.ts.map +1 -0
- package/dist/svelte/count/index.d.ts +40 -0
- package/dist/svelte/index.cjs +1 -1
- package/dist/svelte/index.d.ts +40 -0
- package/dist/svelte/index.mjs +425 -11
- package/dist/svelte/scrollFadeIn/index.d.ts +40 -0
- package/dist/svelte/textSpin/index.cjs +1 -0
- package/dist/svelte/textSpin/index.d.ts +314 -0
- package/dist/svelte/textSpin/index.mjs +787 -0
- package/dist/svelte/textToParticle/index.d.ts +40 -0
- package/dist/svelte/typing/index.d.ts +40 -0
- package/dist/textSpin/core/count/index.d.ts +53 -0
- package/dist/textSpin/core/count/index.d.ts.map +1 -0
- package/dist/textSpin/core/index.d.ts +24 -0
- package/dist/textSpin/core/index.d.ts.map +1 -0
- package/dist/textSpin/core/scrollFadeIn/index.d.ts +50 -0
- package/dist/textSpin/core/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/textSpin/core/textSpin/index.d.ts +48 -0
- package/dist/textSpin/core/textSpin/index.d.ts.map +1 -0
- package/dist/textSpin/core/textToParticle/index.d.ts +103 -0
- package/dist/textSpin/core/textToParticle/index.d.ts.map +1 -0
- package/dist/textSpin/core/typing/index.d.ts +56 -0
- package/dist/textSpin/core/typing/index.d.ts.map +1 -0
- package/dist/textSpin/core/utils/visibilityManager.d.ts +36 -0
- package/dist/textSpin/core/utils/visibilityManager.d.ts.map +1 -0
- package/dist/textSpin/index.cjs +1 -0
- package/dist/textSpin/index.d.ts +22 -0
- package/dist/textSpin/index.d.ts.map +1 -0
- package/dist/textSpin/index.mjs +1 -0
- package/dist/textSpin/index.umd.d.ts +7 -0
- package/dist/textSpin/index.umd.d.ts.map +1 -0
- package/dist/textSpin/react/MasonEffect.d.ts +32 -0
- package/dist/textSpin/react/MasonEffect.d.ts.map +1 -0
- package/dist/textSpin/react/count/Count.d.ts +19 -0
- package/dist/textSpin/react/count/Count.d.ts.map +1 -0
- package/dist/textSpin/react/count/index.d.ts +5 -0
- package/dist/textSpin/react/count/index.d.ts.map +1 -0
- package/dist/textSpin/react/index.d.ts +18 -0
- package/dist/textSpin/react/index.d.ts.map +1 -0
- package/dist/textSpin/react/scrollFadeIn/ScrollFadeIn.d.ts +19 -0
- package/dist/textSpin/react/scrollFadeIn/ScrollFadeIn.d.ts.map +1 -0
- package/dist/textSpin/react/scrollFadeIn/index.d.ts +4 -0
- package/dist/textSpin/react/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/textSpin/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/textSpin/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/textSpin/react/textSpin/index.d.ts +5 -0
- package/dist/textSpin/react/textSpin/index.d.ts.map +1 -0
- package/dist/textSpin/react/textToParticle/TextToParticle.d.ts +15 -0
- package/dist/textSpin/react/textToParticle/TextToParticle.d.ts.map +1 -0
- package/dist/textSpin/react/textToParticle/index.d.ts +4 -0
- package/dist/textSpin/react/textToParticle/index.d.ts.map +1 -0
- package/dist/textSpin/react/typing/Typing.d.ts +18 -0
- package/dist/textSpin/react/typing/Typing.d.ts.map +1 -0
- package/dist/textSpin/react/typing/index.d.ts +4 -0
- package/dist/textSpin/react/typing/index.d.ts.map +1 -0
- package/dist/textSpin/svelte/count/index.d.ts +2 -0
- package/dist/textSpin/svelte/count/index.d.ts.map +1 -0
- package/dist/textSpin/svelte/index.d.ts +11 -0
- package/dist/textSpin/svelte/index.d.ts.map +1 -0
- package/dist/textSpin/svelte/scrollFadeIn/index.d.ts +2 -0
- package/dist/textSpin/svelte/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/textSpin/svelte/textSpin/index.d.ts +4 -0
- package/dist/textSpin/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/textSpin/svelte/textToParticle/index.d.ts +2 -0
- package/dist/textSpin/svelte/textToParticle/index.d.ts.map +1 -0
- package/dist/textSpin/svelte/typing/index.d.ts +3 -0
- package/dist/textSpin/svelte/typing/index.d.ts.map +1 -0
- package/dist/textSpin/vue/count/index.d.ts +2 -0
- package/dist/textSpin/vue/count/index.d.ts.map +1 -0
- package/dist/textSpin/vue/index.d.ts +11 -0
- package/dist/textSpin/vue/index.d.ts.map +1 -0
- package/dist/textSpin/vue/scrollFadeIn/index.d.ts +2 -0
- package/dist/textSpin/vue/scrollFadeIn/index.d.ts.map +1 -0
- package/dist/textSpin/vue/textSpin/index.d.ts +4 -0
- package/dist/textSpin/vue/textSpin/index.d.ts.map +1 -0
- package/dist/textSpin/vue/textToParticle/index.d.ts +2 -0
- package/dist/textSpin/vue/textToParticle/index.d.ts.map +1 -0
- package/dist/textSpin/vue/typing/index.d.ts +4 -0
- package/dist/textSpin/vue/typing/index.d.ts.map +1 -0
- package/dist/textToParticle/core/index.d.ts +2 -0
- package/dist/textToParticle/core/index.d.ts.map +1 -1
- package/dist/textToParticle/core/textSpin/index.d.ts +48 -0
- package/dist/textToParticle/core/textSpin/index.d.ts.map +1 -0
- package/dist/textToParticle/index.d.ts +2 -0
- package/dist/textToParticle/index.d.ts.map +1 -1
- package/dist/textToParticle/react/index.d.ts +2 -0
- package/dist/textToParticle/react/index.d.ts.map +1 -1
- package/dist/textToParticle/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/textToParticle/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/textToParticle/react/textSpin/index.d.ts +5 -0
- package/dist/textToParticle/react/textSpin/index.d.ts.map +1 -0
- package/dist/textToParticle/svelte/index.d.ts +1 -0
- package/dist/textToParticle/svelte/index.d.ts.map +1 -1
- package/dist/textToParticle/svelte/textSpin/index.d.ts +4 -0
- package/dist/textToParticle/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/textToParticle/vue/index.d.ts +1 -0
- package/dist/textToParticle/vue/index.d.ts.map +1 -1
- package/dist/textToParticle/vue/textSpin/index.d.ts +4 -0
- package/dist/textToParticle/vue/textSpin/index.d.ts.map +1 -0
- package/dist/typing/core/index.d.ts +2 -0
- package/dist/typing/core/index.d.ts.map +1 -1
- package/dist/typing/core/textSpin/index.d.ts +48 -0
- package/dist/typing/core/textSpin/index.d.ts.map +1 -0
- package/dist/typing/index.d.ts +2 -0
- package/dist/typing/index.d.ts.map +1 -1
- package/dist/typing/react/index.d.ts +2 -0
- package/dist/typing/react/index.d.ts.map +1 -1
- package/dist/typing/react/textSpin/TextSpin.d.ts +19 -0
- package/dist/typing/react/textSpin/TextSpin.d.ts.map +1 -0
- package/dist/typing/react/textSpin/index.d.ts +5 -0
- package/dist/typing/react/textSpin/index.d.ts.map +1 -0
- package/dist/typing/svelte/index.d.ts +1 -0
- package/dist/typing/svelte/index.d.ts.map +1 -1
- package/dist/typing/svelte/textSpin/index.d.ts +4 -0
- package/dist/typing/svelte/textSpin/index.d.ts.map +1 -0
- package/dist/typing/vue/index.d.ts +1 -0
- package/dist/typing/vue/index.d.ts.map +1 -1
- package/dist/typing/vue/textSpin/index.d.ts +4 -0
- package/dist/typing/vue/textSpin/index.d.ts.map +1 -0
- package/dist/vue/count/index.d.ts +40 -0
- package/dist/vue/index.cjs +1 -1
- package/dist/vue/index.d.ts +40 -0
- package/dist/vue/index.mjs +321 -10
- package/dist/vue/scrollFadeIn/index.d.ts +40 -0
- package/dist/vue/textSpin/index.cjs +1 -0
- package/dist/vue/textSpin/index.d.ts +314 -0
- package/dist/vue/textSpin/index.mjs +420 -0
- package/dist/vue/textToParticle/index.d.ts +40 -0
- package/dist/vue/typing/index.d.ts +40 -0
- package/package.json +26 -2
package/dist/vue/index.mjs
CHANGED
|
@@ -1142,7 +1142,196 @@ class ScrollFadeIn {
|
|
|
1142
1142
|
this.container.style.transition = "";
|
|
1143
1143
|
}
|
|
1144
1144
|
}
|
|
1145
|
-
|
|
1145
|
+
class TextSpin {
|
|
1146
|
+
constructor(container, options) {
|
|
1147
|
+
this.container = typeof container === "string" ? document.querySelector(container) : container;
|
|
1148
|
+
if (!this.container) {
|
|
1149
|
+
throw new Error("Container element not found");
|
|
1150
|
+
}
|
|
1151
|
+
if (!options.text) {
|
|
1152
|
+
throw new Error("Text is required");
|
|
1153
|
+
}
|
|
1154
|
+
this.config = {
|
|
1155
|
+
text: options.text,
|
|
1156
|
+
delay: options.delay ?? 0.2,
|
|
1157
|
+
duration: options.duration ?? 0.6,
|
|
1158
|
+
randomDelay: options.randomDelay ?? 2,
|
|
1159
|
+
threshold: options.threshold ?? 0.1,
|
|
1160
|
+
rootMargin: options.rootMargin ?? "0px",
|
|
1161
|
+
root: options.root ?? null,
|
|
1162
|
+
triggerOnce: options.triggerOnce ?? false,
|
|
1163
|
+
enabled: options.enabled ?? true,
|
|
1164
|
+
onStart: options.onStart || null,
|
|
1165
|
+
onComplete: options.onComplete || null
|
|
1166
|
+
};
|
|
1167
|
+
this.visibilityManager = null;
|
|
1168
|
+
this.textElements = [];
|
|
1169
|
+
this.randomPoints = [];
|
|
1170
|
+
this.hasTriggered = false;
|
|
1171
|
+
this.isActive = false;
|
|
1172
|
+
this.init();
|
|
1173
|
+
}
|
|
1174
|
+
init() {
|
|
1175
|
+
this.injectStyles();
|
|
1176
|
+
this.createTextStructure();
|
|
1177
|
+
this.setupVisibilityManager();
|
|
1178
|
+
}
|
|
1179
|
+
injectStyles() {
|
|
1180
|
+
if (document.getElementById("masoneffect-textspin-styles")) {
|
|
1181
|
+
return;
|
|
1182
|
+
}
|
|
1183
|
+
const style = document.createElement("style");
|
|
1184
|
+
style.id = "masoneffect-textspin-styles";
|
|
1185
|
+
style.textContent = `
|
|
1186
|
+
.masoneffect-textspin {
|
|
1187
|
+
display: inline-block;
|
|
1188
|
+
}
|
|
1189
|
+
.masoneffect-textspin-char {
|
|
1190
|
+
display: inline-block;
|
|
1191
|
+
opacity: 0;
|
|
1192
|
+
transform: rotateY(90deg);
|
|
1193
|
+
}
|
|
1194
|
+
.masoneffect-textspin-char.active {
|
|
1195
|
+
opacity: 1;
|
|
1196
|
+
transform: rotateY(0deg);
|
|
1197
|
+
}
|
|
1198
|
+
.masoneffect-textspin-char.space {
|
|
1199
|
+
width: 0.25em;
|
|
1200
|
+
}
|
|
1201
|
+
`;
|
|
1202
|
+
document.head.appendChild(style);
|
|
1203
|
+
}
|
|
1204
|
+
createTextStructure() {
|
|
1205
|
+
this.container.innerHTML = "";
|
|
1206
|
+
this.textElements = [];
|
|
1207
|
+
this.randomPoints = [];
|
|
1208
|
+
const chars = this.config.text.split("");
|
|
1209
|
+
chars.forEach(() => {
|
|
1210
|
+
this.randomPoints.push(Math.random());
|
|
1211
|
+
});
|
|
1212
|
+
chars.forEach((char, index) => {
|
|
1213
|
+
const charElement = document.createElement("span");
|
|
1214
|
+
charElement.className = "masoneffect-textspin-char";
|
|
1215
|
+
charElement.style.transition = `opacity ${this.config.duration}s ease-out, transform ${this.config.duration}s ease-out`;
|
|
1216
|
+
if (char === " ") {
|
|
1217
|
+
charElement.classList.add("space");
|
|
1218
|
+
charElement.innerHTML = " ";
|
|
1219
|
+
} else {
|
|
1220
|
+
charElement.textContent = char;
|
|
1221
|
+
}
|
|
1222
|
+
this.container.appendChild(charElement);
|
|
1223
|
+
this.textElements.push(charElement);
|
|
1224
|
+
});
|
|
1225
|
+
this.container.classList.add("masoneffect-textspin");
|
|
1226
|
+
}
|
|
1227
|
+
setupVisibilityManager() {
|
|
1228
|
+
this.visibilityManager = new VisibilityManager(this.container, {
|
|
1229
|
+
threshold: this.config.threshold,
|
|
1230
|
+
rootMargin: this.config.rootMargin,
|
|
1231
|
+
root: this.config.root,
|
|
1232
|
+
onVisible: () => {
|
|
1233
|
+
if (this.config.enabled) {
|
|
1234
|
+
if (!this.config.triggerOnce || !this.hasTriggered) {
|
|
1235
|
+
this.hasTriggered = true;
|
|
1236
|
+
this.start();
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
},
|
|
1240
|
+
onHidden: () => {
|
|
1241
|
+
if (this.config.enabled) {
|
|
1242
|
+
this.stop();
|
|
1243
|
+
if (!this.config.triggerOnce) {
|
|
1244
|
+
this.hasTriggered = false;
|
|
1245
|
+
}
|
|
1246
|
+
}
|
|
1247
|
+
}
|
|
1248
|
+
});
|
|
1249
|
+
}
|
|
1250
|
+
start() {
|
|
1251
|
+
if (this.isActive) return;
|
|
1252
|
+
this.isActive = true;
|
|
1253
|
+
if (this.config.onStart) {
|
|
1254
|
+
this.config.onStart();
|
|
1255
|
+
}
|
|
1256
|
+
this.textElements.forEach((element, index) => {
|
|
1257
|
+
const delay = this.config.delay + this.randomPoints[index] * this.config.randomDelay;
|
|
1258
|
+
element.style.transitionDelay = `${delay}s`;
|
|
1259
|
+
requestAnimationFrame(() => {
|
|
1260
|
+
element.classList.add("active");
|
|
1261
|
+
});
|
|
1262
|
+
});
|
|
1263
|
+
const maxDelay = this.config.delay + this.config.randomDelay + this.config.duration;
|
|
1264
|
+
setTimeout(() => {
|
|
1265
|
+
if (this.config.onComplete) {
|
|
1266
|
+
this.config.onComplete();
|
|
1267
|
+
}
|
|
1268
|
+
}, maxDelay * 1e3);
|
|
1269
|
+
}
|
|
1270
|
+
stop() {
|
|
1271
|
+
if (!this.isActive) return;
|
|
1272
|
+
this.isActive = false;
|
|
1273
|
+
this.textElements.forEach((element) => {
|
|
1274
|
+
element.classList.remove("active");
|
|
1275
|
+
element.style.transitionDelay = "";
|
|
1276
|
+
});
|
|
1277
|
+
}
|
|
1278
|
+
reset() {
|
|
1279
|
+
this.stop();
|
|
1280
|
+
this.hasTriggered = false;
|
|
1281
|
+
}
|
|
1282
|
+
// 텍스트 업데이트
|
|
1283
|
+
updateText(newText) {
|
|
1284
|
+
this.config.text = newText;
|
|
1285
|
+
this.createTextStructure();
|
|
1286
|
+
if (this.isActive) {
|
|
1287
|
+
this.start();
|
|
1288
|
+
}
|
|
1289
|
+
}
|
|
1290
|
+
// 모든 문자 요소의 transition 업데이트
|
|
1291
|
+
updateTransitions() {
|
|
1292
|
+
this.textElements.forEach((element) => {
|
|
1293
|
+
element.style.transition = `opacity ${this.config.duration}s ease-out, transform ${this.config.duration}s ease-out`;
|
|
1294
|
+
});
|
|
1295
|
+
}
|
|
1296
|
+
// 설정 업데이트
|
|
1297
|
+
updateConfig(newConfig) {
|
|
1298
|
+
const wasActive = this.isActive;
|
|
1299
|
+
this.stop();
|
|
1300
|
+
this.config = {
|
|
1301
|
+
...this.config,
|
|
1302
|
+
...newConfig,
|
|
1303
|
+
text: newConfig.text ?? this.config.text,
|
|
1304
|
+
onStart: newConfig.onStart ?? this.config.onStart,
|
|
1305
|
+
onComplete: newConfig.onComplete ?? this.config.onComplete
|
|
1306
|
+
};
|
|
1307
|
+
if (newConfig.text !== void 0) {
|
|
1308
|
+
this.createTextStructure();
|
|
1309
|
+
} else if (newConfig.duration !== void 0) {
|
|
1310
|
+
this.updateTransitions();
|
|
1311
|
+
}
|
|
1312
|
+
if (newConfig.threshold !== void 0 || newConfig.rootMargin !== void 0 || newConfig.root !== void 0) {
|
|
1313
|
+
if (this.visibilityManager) {
|
|
1314
|
+
this.visibilityManager.destroy();
|
|
1315
|
+
this.visibilityManager = null;
|
|
1316
|
+
}
|
|
1317
|
+
this.setupVisibilityManager();
|
|
1318
|
+
}
|
|
1319
|
+
if (wasActive && this.config.enabled) {
|
|
1320
|
+
this.start();
|
|
1321
|
+
}
|
|
1322
|
+
}
|
|
1323
|
+
// 파괴 및 정리
|
|
1324
|
+
destroy() {
|
|
1325
|
+
this.stop();
|
|
1326
|
+
if (this.visibilityManager) {
|
|
1327
|
+
this.visibilityManager.destroy();
|
|
1328
|
+
this.visibilityManager = null;
|
|
1329
|
+
}
|
|
1330
|
+
this.container.innerHTML = "";
|
|
1331
|
+
this.container.classList.remove("masoneffect-textspin");
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
1146
1335
|
__name: "TextToParticle",
|
|
1147
1336
|
props: {
|
|
1148
1337
|
className: { default: "" },
|
|
@@ -1269,7 +1458,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1269
1458
|
};
|
|
1270
1459
|
}
|
|
1271
1460
|
});
|
|
1272
|
-
const _sfc_main$
|
|
1461
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
1273
1462
|
__name: "Count",
|
|
1274
1463
|
props: {
|
|
1275
1464
|
className: { default: "" },
|
|
@@ -1390,7 +1579,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1390
1579
|
};
|
|
1391
1580
|
}
|
|
1392
1581
|
});
|
|
1393
|
-
const _sfc_main$
|
|
1582
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
1394
1583
|
__name: "Typing",
|
|
1395
1584
|
props: {
|
|
1396
1585
|
className: {},
|
|
@@ -1473,7 +1662,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1473
1662
|
};
|
|
1474
1663
|
}
|
|
1475
1664
|
});
|
|
1476
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1665
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
1477
1666
|
__name: "ScrollFadeIn",
|
|
1478
1667
|
props: {
|
|
1479
1668
|
className: { default: "" },
|
|
@@ -1592,11 +1781,133 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1592
1781
|
};
|
|
1593
1782
|
}
|
|
1594
1783
|
});
|
|
1784
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1785
|
+
__name: "TextSpin",
|
|
1786
|
+
props: {
|
|
1787
|
+
className: { default: "" },
|
|
1788
|
+
style: { default: () => ({}) },
|
|
1789
|
+
onStart: { type: Function, default: null },
|
|
1790
|
+
onComplete: { type: Function, default: null },
|
|
1791
|
+
text: { default: "" },
|
|
1792
|
+
delay: { default: 0.2 },
|
|
1793
|
+
duration: { default: 0.6 },
|
|
1794
|
+
randomDelay: { default: 2 },
|
|
1795
|
+
threshold: { default: 0.1 },
|
|
1796
|
+
rootMargin: { default: "0px" },
|
|
1797
|
+
root: { default: null },
|
|
1798
|
+
triggerOnce: { type: Boolean, default: false },
|
|
1799
|
+
enabled: { type: Boolean, default: true }
|
|
1800
|
+
},
|
|
1801
|
+
emits: ["start", "complete"],
|
|
1802
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
1803
|
+
const props = __props;
|
|
1804
|
+
const emit = __emit;
|
|
1805
|
+
const container = ref(null);
|
|
1806
|
+
let instance = null;
|
|
1807
|
+
const init = () => {
|
|
1808
|
+
if (!container.value) return;
|
|
1809
|
+
const options = {
|
|
1810
|
+
text: props.text,
|
|
1811
|
+
delay: props.delay,
|
|
1812
|
+
duration: props.duration,
|
|
1813
|
+
randomDelay: props.randomDelay,
|
|
1814
|
+
threshold: props.threshold,
|
|
1815
|
+
rootMargin: props.rootMargin,
|
|
1816
|
+
root: props.root,
|
|
1817
|
+
triggerOnce: props.triggerOnce,
|
|
1818
|
+
enabled: props.enabled,
|
|
1819
|
+
onStart: () => {
|
|
1820
|
+
if (props.onStart) props.onStart();
|
|
1821
|
+
emit("start");
|
|
1822
|
+
},
|
|
1823
|
+
onComplete: () => {
|
|
1824
|
+
if (props.onComplete) props.onComplete();
|
|
1825
|
+
emit("complete");
|
|
1826
|
+
}
|
|
1827
|
+
};
|
|
1828
|
+
instance = new TextSpin(container.value, options);
|
|
1829
|
+
};
|
|
1830
|
+
onMounted(() => {
|
|
1831
|
+
init();
|
|
1832
|
+
});
|
|
1833
|
+
onBeforeUnmount(() => {
|
|
1834
|
+
if (instance) {
|
|
1835
|
+
instance.destroy();
|
|
1836
|
+
instance = null;
|
|
1837
|
+
}
|
|
1838
|
+
});
|
|
1839
|
+
watch(
|
|
1840
|
+
() => [
|
|
1841
|
+
props.text,
|
|
1842
|
+
props.delay,
|
|
1843
|
+
props.duration,
|
|
1844
|
+
props.randomDelay,
|
|
1845
|
+
props.threshold,
|
|
1846
|
+
props.rootMargin,
|
|
1847
|
+
props.root,
|
|
1848
|
+
props.triggerOnce,
|
|
1849
|
+
props.enabled,
|
|
1850
|
+
props.onStart,
|
|
1851
|
+
props.onComplete
|
|
1852
|
+
],
|
|
1853
|
+
() => {
|
|
1854
|
+
if (instance) {
|
|
1855
|
+
instance.updateConfig({
|
|
1856
|
+
text: props.text,
|
|
1857
|
+
delay: props.delay,
|
|
1858
|
+
duration: props.duration,
|
|
1859
|
+
randomDelay: props.randomDelay,
|
|
1860
|
+
threshold: props.threshold,
|
|
1861
|
+
rootMargin: props.rootMargin,
|
|
1862
|
+
root: props.root,
|
|
1863
|
+
triggerOnce: props.triggerOnce,
|
|
1864
|
+
enabled: props.enabled,
|
|
1865
|
+
onStart: props.onStart || void 0,
|
|
1866
|
+
onComplete: props.onComplete || void 0
|
|
1867
|
+
});
|
|
1868
|
+
}
|
|
1869
|
+
},
|
|
1870
|
+
{ deep: true }
|
|
1871
|
+
);
|
|
1872
|
+
__expose({
|
|
1873
|
+
start: () => {
|
|
1874
|
+
if (instance) instance.start();
|
|
1875
|
+
},
|
|
1876
|
+
stop: () => {
|
|
1877
|
+
if (instance) instance.stop();
|
|
1878
|
+
},
|
|
1879
|
+
reset: () => {
|
|
1880
|
+
if (instance) instance.reset();
|
|
1881
|
+
},
|
|
1882
|
+
updateText: (text) => {
|
|
1883
|
+
if (instance) instance.updateText(text);
|
|
1884
|
+
},
|
|
1885
|
+
updateConfig: (config) => {
|
|
1886
|
+
if (instance) instance.updateConfig(config);
|
|
1887
|
+
},
|
|
1888
|
+
destroy: () => {
|
|
1889
|
+
if (instance) {
|
|
1890
|
+
instance.destroy();
|
|
1891
|
+
instance = null;
|
|
1892
|
+
}
|
|
1893
|
+
}
|
|
1894
|
+
});
|
|
1895
|
+
return (_ctx, _cache) => {
|
|
1896
|
+
return openBlock(), createElementBlock("div", {
|
|
1897
|
+
ref_key: "container",
|
|
1898
|
+
ref: container,
|
|
1899
|
+
class: normalizeClass(__props.className),
|
|
1900
|
+
style: normalizeStyle(__props.style)
|
|
1901
|
+
}, null, 6);
|
|
1902
|
+
};
|
|
1903
|
+
}
|
|
1904
|
+
});
|
|
1595
1905
|
export {
|
|
1596
|
-
_sfc_main$
|
|
1597
|
-
_sfc_main$
|
|
1598
|
-
_sfc_main as ScrollFadeIn,
|
|
1599
|
-
_sfc_main
|
|
1600
|
-
_sfc_main$
|
|
1601
|
-
_sfc_main$
|
|
1906
|
+
_sfc_main$3 as Count,
|
|
1907
|
+
_sfc_main$4 as MasonEffect,
|
|
1908
|
+
_sfc_main$1 as ScrollFadeIn,
|
|
1909
|
+
_sfc_main as TextSpin,
|
|
1910
|
+
_sfc_main$4 as TextToParticle,
|
|
1911
|
+
_sfc_main$2 as Typing,
|
|
1912
|
+
_sfc_main$4 as default
|
|
1602
1913
|
};
|
|
@@ -98,6 +98,46 @@ export declare interface ScrollFadeInOptions {
|
|
|
98
98
|
onComplete?: () => void;
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
+
export declare class TextSpin {
|
|
102
|
+
container: HTMLElement;
|
|
103
|
+
config: Required<Omit<TextSpinOptions, 'onStart' | 'onComplete' | 'root'>> & {
|
|
104
|
+
root: HTMLElement | null;
|
|
105
|
+
onStart: TextSpinOptions['onStart'];
|
|
106
|
+
onComplete: TextSpinOptions['onComplete'];
|
|
107
|
+
};
|
|
108
|
+
visibilityManager: VisibilityManager | null;
|
|
109
|
+
textElements: HTMLElement[];
|
|
110
|
+
randomPoints: number[];
|
|
111
|
+
hasTriggered: boolean;
|
|
112
|
+
isActive: boolean;
|
|
113
|
+
constructor(container: HTMLElement | string, options: TextSpinOptions);
|
|
114
|
+
init(): void;
|
|
115
|
+
injectStyles(): void;
|
|
116
|
+
createTextStructure(): void;
|
|
117
|
+
setupVisibilityManager(): void;
|
|
118
|
+
start(): void;
|
|
119
|
+
stop(): void;
|
|
120
|
+
reset(): void;
|
|
121
|
+
updateText(newText: string): void;
|
|
122
|
+
updateTransitions(): void;
|
|
123
|
+
updateConfig(newConfig: Partial<TextSpinOptions>): void;
|
|
124
|
+
destroy(): void;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export declare interface TextSpinOptions {
|
|
128
|
+
text: string;
|
|
129
|
+
delay?: number;
|
|
130
|
+
duration?: number;
|
|
131
|
+
randomDelay?: number;
|
|
132
|
+
threshold?: number;
|
|
133
|
+
rootMargin?: string;
|
|
134
|
+
root?: HTMLElement | null;
|
|
135
|
+
triggerOnce?: boolean;
|
|
136
|
+
enabled?: boolean;
|
|
137
|
+
onStart?: () => void;
|
|
138
|
+
onComplete?: () => void;
|
|
139
|
+
}
|
|
140
|
+
|
|
101
141
|
declare class TextToParticle {
|
|
102
142
|
container: HTMLElement;
|
|
103
143
|
config: Required<Omit<TextToParticleOptions, 'onReady' | 'onUpdate' | 'debounceDelay'>> & {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("vue");class e{constructor(t,e={}){this.container=t,this.options={threshold:e.threshold??.1,rootMargin:e.rootMargin??"0px",root:e.root??null,onVisible:e.onVisible,onHidden:e.onHidden},this.intersectionObserver=null,this.visibilityChangeHandler=null,this.isVisible=!1,this.isPageVisible="undefined"==typeof document||!document.hidden,this.setupIntersectionObserver(),this.setupPageVisibility()}setupIntersectionObserver(){if("undefined"==typeof window||void 0===window.IntersectionObserver)return this.isVisible=!0,void(this.isPageVisible&&this.options.onVisible&&this.options.onVisible());this.intersectionObserver=new IntersectionObserver(t=>{for(const e of t)e.target===this.container&&(e.isIntersecting?(this.isVisible=!0,this.isPageVisible&&this.options.onVisible&&this.options.onVisible()):(this.isVisible=!1,this.options.onHidden&&this.options.onHidden()))},{threshold:this.options.threshold,rootMargin:this.options.rootMargin,root:this.options.root||null}),this.intersectionObserver.observe(this.container)}setupPageVisibility(){"undefined"!=typeof document&&(this.visibilityChangeHandler=()=>{const t=this.isPageVisible;this.isPageVisible=!document.hidden,document.hidden?this.options.onHidden&&this.options.onHidden():t!==this.isPageVisible&&this.isVisible&&this.options.onVisible&&this.options.onVisible()},document.addEventListener("visibilitychange",this.visibilityChangeHandler),document.hidden&&this.isVisible&&this.options.onHidden&&this.options.onHidden())}getIsVisible(){return this.isVisible&&this.isPageVisible}updateOptions(t){this.options={...this.options,...t},this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=null),this.setupIntersectionObserver()}destroy(){this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=null),this.visibilityChangeHandler&&"undefined"!=typeof document&&(document.removeEventListener("visibilitychange",this.visibilityChangeHandler),this.visibilityChangeHandler=null)}}class i{constructor(t,e){if(this.container="string"==typeof t?document.querySelector(t):t,!this.container)throw new Error("Container element not found");if(!e.text)throw new Error("Text is required");this.config={text:e.text,delay:e.delay??.2,duration:e.duration??.6,randomDelay:e.randomDelay??2,threshold:e.threshold??.1,rootMargin:e.rootMargin??"0px",root:e.root??null,triggerOnce:e.triggerOnce??!1,enabled:e.enabled??!0,onStart:e.onStart||null,onComplete:e.onComplete||null},this.visibilityManager=null,this.textElements=[],this.randomPoints=[],this.hasTriggered=!1,this.isActive=!1,this.init()}init(){this.injectStyles(),this.createTextStructure(),this.setupVisibilityManager()}injectStyles(){if(document.getElementById("masoneffect-textspin-styles"))return;const t=document.createElement("style");t.id="masoneffect-textspin-styles",t.textContent="\n .masoneffect-textspin {\n display: inline-block;\n }\n .masoneffect-textspin-char {\n display: inline-block;\n opacity: 0;\n transform: rotateY(90deg);\n }\n .masoneffect-textspin-char.active {\n opacity: 1;\n transform: rotateY(0deg);\n }\n .masoneffect-textspin-char.space {\n width: 0.25em;\n }\n ",document.head.appendChild(t)}createTextStructure(){this.container.innerHTML="",this.textElements=[],this.randomPoints=[];const t=this.config.text.split("");t.forEach(()=>{this.randomPoints.push(Math.random())}),t.forEach((t,e)=>{const i=document.createElement("span");i.className="masoneffect-textspin-char",i.style.transition=`opacity ${this.config.duration}s ease-out, transform ${this.config.duration}s ease-out`," "===t?(i.classList.add("space"),i.innerHTML=" "):i.textContent=t,this.container.appendChild(i),this.textElements.push(i)}),this.container.classList.add("masoneffect-textspin")}setupVisibilityManager(){this.visibilityManager=new e(this.container,{threshold:this.config.threshold,rootMargin:this.config.rootMargin,root:this.config.root,onVisible:()=>{this.config.enabled&&(this.config.triggerOnce&&this.hasTriggered||(this.hasTriggered=!0,this.start()))},onHidden:()=>{this.config.enabled&&(this.stop(),this.config.triggerOnce||(this.hasTriggered=!1))}})}start(){if(this.isActive)return;this.isActive=!0,this.config.onStart&&this.config.onStart(),this.textElements.forEach((t,e)=>{const i=this.config.delay+this.randomPoints[e]*this.config.randomDelay;t.style.transitionDelay=`${i}s`,requestAnimationFrame(()=>{t.classList.add("active")})});const t=this.config.delay+this.config.randomDelay+this.config.duration;setTimeout(()=>{this.config.onComplete&&this.config.onComplete()},1e3*t)}stop(){this.isActive&&(this.isActive=!1,this.textElements.forEach(t=>{t.classList.remove("active"),t.style.transitionDelay=""}))}reset(){this.stop(),this.hasTriggered=!1}updateText(t){this.config.text=t,this.createTextStructure(),this.isActive&&this.start()}updateTransitions(){this.textElements.forEach(t=>{t.style.transition=`opacity ${this.config.duration}s ease-out, transform ${this.config.duration}s ease-out`})}updateConfig(t){const e=this.isActive;this.stop(),this.config={...this.config,...t,text:t.text??this.config.text,onStart:t.onStart??this.config.onStart,onComplete:t.onComplete??this.config.onComplete},void 0!==t.text?this.createTextStructure():void 0!==t.duration&&this.updateTransitions(),void 0===t.threshold&&void 0===t.rootMargin&&void 0===t.root||(this.visibilityManager&&(this.visibilityManager.destroy(),this.visibilityManager=null),this.setupVisibilityManager()),e&&this.config.enabled&&this.start()}destroy(){this.stop(),this.visibilityManager&&(this.visibilityManager.destroy(),this.visibilityManager=null),this.container.innerHTML="",this.container.classList.remove("masoneffect-textspin")}}const n=t.defineComponent({__name:"TextSpin",props:{className:{default:""},style:{default:()=>({})},onStart:{type:Function,default:null},onComplete:{type:Function,default:null},text:{default:""},delay:{default:.2},duration:{default:.6},randomDelay:{default:2},threshold:{default:.1},rootMargin:{default:"0px"},root:{default:null},triggerOnce:{type:Boolean,default:!1},enabled:{type:Boolean,default:!0}},emits:["start","complete"],setup(e,{expose:n,emit:s}){const o=e,r=s,a=t.ref(null);let l=null;return t.onMounted(()=>{(()=>{if(!a.value)return;const t={text:o.text,delay:o.delay,duration:o.duration,randomDelay:o.randomDelay,threshold:o.threshold,rootMargin:o.rootMargin,root:o.root,triggerOnce:o.triggerOnce,enabled:o.enabled,onStart:()=>{o.onStart&&o.onStart(),r("start")},onComplete:()=>{o.onComplete&&o.onComplete(),r("complete")}};l=new i(a.value,t)})()}),t.onBeforeUnmount(()=>{l&&(l.destroy(),l=null)}),t.watch(()=>[o.text,o.delay,o.duration,o.randomDelay,o.threshold,o.rootMargin,o.root,o.triggerOnce,o.enabled,o.onStart,o.onComplete],()=>{l&&l.updateConfig({text:o.text,delay:o.delay,duration:o.duration,randomDelay:o.randomDelay,threshold:o.threshold,rootMargin:o.rootMargin,root:o.root,triggerOnce:o.triggerOnce,enabled:o.enabled,onStart:o.onStart||void 0,onComplete:o.onComplete||void 0})},{deep:!0}),n({start:()=>{l&&l.start()},stop:()=>{l&&l.stop()},reset:()=>{l&&l.reset()},updateText:t=>{l&&l.updateText(t)},updateConfig:t=>{l&&l.updateConfig(t)},destroy:()=>{l&&(l.destroy(),l=null)}}),(i,n)=>(t.openBlock(),t.createElementBlock("div",{ref_key:"container",ref:a,class:t.normalizeClass(e.className),style:t.normalizeStyle(e.style)},null,6))}});exports.TextSpin=i,exports.default=n;
|