sparkfx 1.1.2 → 1.1.4
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 +48 -46
- package/dist/{chunk-5ZKFIK7W.cjs → chunk-7QIOKYGR.cjs} +3 -3
- package/dist/{chunk-5ZKFIK7W.cjs.map → chunk-7QIOKYGR.cjs.map} +1 -1
- package/dist/{chunk-DHAA5SS3.cjs → chunk-HDNHNIIN.cjs} +27 -27
- package/dist/chunk-HDNHNIIN.cjs.map +1 -0
- package/dist/{chunk-B7KCJZ6I.js → chunk-MYSIBGST.js} +27 -27
- package/dist/chunk-MYSIBGST.js.map +1 -0
- package/dist/{chunk-BIF6OZYR.js → chunk-YPALHQBX.js} +3 -3
- package/dist/{chunk-BIF6OZYR.js.map → chunk-YPALHQBX.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +36 -1
- package/dist/index.d.ts +36 -1
- package/dist/index.js +1 -1
- package/dist/next.cjs +2 -2
- package/dist/next.js +1 -1
- package/dist/react.cjs +1 -1
- package/dist/react.js +1 -1
- package/dist/svelte.cjs +2 -2
- package/dist/svelte.js +2 -2
- package/dist/vue.cjs +2 -2
- package/dist/vue.js +2 -2
- package/package.json +4 -3
- package/scripts/postinstall.js +34 -42
- package/dist/chunk-B7KCJZ6I.js.map +0 -1
- package/dist/chunk-DHAA5SS3.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -1,12 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/mrLynchs/sparkfx/main/assets/logo.png" alt="sparkfx" width="100" />
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
<h1 align="center">sparkfx</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<strong>Micro-interactions that make your UI feel alive</strong>
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://www.npmjs.com/package/sparkfx"><img src="https://img.shields.io/npm/v/sparkfx?color=00ffa3&style=flat-square" alt="npm" /></a>
|
|
13
|
+
<a href="https://www.npmjs.com/package/sparkfx"><img src="https://img.shields.io/npm/dm/sparkfx?color=00d4ff&style=flat-square" alt="downloads" /></a>
|
|
14
|
+
<img src="https://img.shields.io/badge/TypeScript-Ready-blue?style=flat-square" alt="typescript" />
|
|
15
|
+
<img src="https://img.shields.io/badge/license-MIT-green?style=flat-square" alt="license" />
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
---
|
|
4
19
|
|
|
5
20
|
```bash
|
|
6
21
|
npm install sparkfx
|
|
7
22
|
```
|
|
8
23
|
|
|
9
|
-
##
|
|
24
|
+
## Quick Start
|
|
10
25
|
|
|
11
26
|
```js
|
|
12
27
|
import { spark } from 'sparkfx'
|
|
@@ -15,7 +30,7 @@ const fx = spark.bounce()
|
|
|
15
30
|
element.classList.add(fx.className)
|
|
16
31
|
```
|
|
17
32
|
|
|
18
|
-
|
|
33
|
+
## React
|
|
19
34
|
|
|
20
35
|
```jsx
|
|
21
36
|
import { useRef, useEffect } from 'react'
|
|
@@ -27,67 +42,54 @@ function Button() {
|
|
|
27
42
|
useEffect(() => {
|
|
28
43
|
const fx = spark.glow({ color: '#00ffa3' })
|
|
29
44
|
ref.current.classList.add(fx.className)
|
|
45
|
+
ref.current.addEventListener('mouseenter', fx.onMouseEnter)
|
|
46
|
+
ref.current.addEventListener('mouseleave', fx.onMouseLeave)
|
|
30
47
|
}, [])
|
|
31
48
|
|
|
32
|
-
return <button ref={ref}>
|
|
49
|
+
return <button ref={ref}>Hover me</button>
|
|
33
50
|
}
|
|
34
51
|
```
|
|
35
52
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
```vue
|
|
39
|
-
<script setup>
|
|
40
|
-
import { onMounted, ref } from 'vue'
|
|
41
|
-
import { spark } from 'sparkfx'
|
|
53
|
+
## Effects
|
|
42
54
|
|
|
43
|
-
|
|
55
|
+
### Free (12 effects)
|
|
56
|
+
bounce, pulse, lift, scale, shake, fade, slide, rotate, ripple, shimmer, glass, blur
|
|
44
57
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
btn.value.classList.add(fx.className)
|
|
48
|
-
})
|
|
49
|
-
</script>
|
|
58
|
+
### Pro (20+ effects)
|
|
59
|
+
glow, magnetic, tilt, elastic, jelly, rubber, morph, glitch, neon, gradient, spotlight, hologram, confetti, sparkle, firework, celebrate, typewriter, scramble, wave, highlight
|
|
50
60
|
|
|
51
|
-
|
|
52
|
-
<button ref="btn">Click</button>
|
|
53
|
-
</template>
|
|
54
|
-
```
|
|
61
|
+
## Pro License
|
|
55
62
|
|
|
56
|
-
|
|
63
|
+
Unlock all 32+ effects with a Pro license:
|
|
57
64
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
**Premium:** glow, ripple, magnetic, tilt, elastic, jelly, rubber, morph
|
|
61
|
-
|
|
62
|
-
**Visual:** glitch, blur, neon, glass, shimmer, gradient, spotlight, hologram
|
|
65
|
+
```js
|
|
66
|
+
import { spark, setLicense } from 'sparkfx'
|
|
63
67
|
|
|
64
|
-
|
|
68
|
+
setLicense('sfx_live_your_key_here')
|
|
69
|
+
spark.hologram() // Now unlocked!
|
|
70
|
+
```
|
|
65
71
|
|
|
66
|
-
**
|
|
72
|
+
**[Get Pro License →](https://linckis.gumroad.com/l/htarqs)**
|
|
67
73
|
|
|
68
|
-
##
|
|
74
|
+
## Customization
|
|
69
75
|
|
|
70
76
|
```js
|
|
71
|
-
spark.glow({ color: '#
|
|
72
|
-
spark.tilt({ angle:
|
|
73
|
-
spark.confetti({ colors: ['#ff0', '#0ff'
|
|
77
|
+
spark.glow({ color: '#ff0', spread: 30, duration: 500 })
|
|
78
|
+
spark.tilt({ angle: 20, glare: true })
|
|
79
|
+
spark.confetti({ colors: ['#ff0', '#0ff'], particleCount: 50 })
|
|
74
80
|
```
|
|
75
81
|
|
|
76
|
-
##
|
|
82
|
+
## Frameworks
|
|
77
83
|
|
|
78
|
-
Works with React, Vue, Svelte, Next.js, or plain
|
|
84
|
+
Works with React, Vue, Svelte, Next.js, or plain JS.
|
|
79
85
|
|
|
80
|
-
|
|
81
|
-
// React
|
|
82
|
-
import { useSpark } from 'sparkfx/react'
|
|
83
|
-
|
|
84
|
-
// Vue
|
|
85
|
-
import { useSpark } from 'sparkfx/vue'
|
|
86
|
+
## Pricing
|
|
86
87
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
88
|
+
| Plan | Price | Effects |
|
|
89
|
+
|------|-------|---------|
|
|
90
|
+
| Free | $0 | 12 effects |
|
|
91
|
+
| [Pro](https://linckis.gumroad.com/l/htarqs) | $9/mo | 32+ effects |
|
|
90
92
|
|
|
91
|
-
|
|
93
|
+
---
|
|
92
94
|
|
|
93
|
-
MIT
|
|
95
|
+
MIT · [mrLynchs](https://github.com/mrLynchs)
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
function k(l,c){let n=react.useRef(null);return react.useEffect(()=>{if(!n.current)return;let i=
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
1
|
+
'use strict';var chunkHDNHNIIN_cjs=require('./chunk-HDNHNIIN.cjs'),react=require('react');/* sparkfx - Premium micro-interactions */
|
|
2
|
+
function k(l,c){let n=react.useRef(null);return react.useEffect(()=>{if(!n.current)return;let i=chunkHDNHNIIN_cjs.O[l];if(typeof i!="function")return;let s=i(c),a=n.current;if(s.className){let t=s.className.split(" ");a.classList.add(...t);}s.style&&Object.entries(s.style).forEach(([t,r])=>{a.style.setProperty(t,String(r));});let u=[],e=(t,r)=>{if(!r)return;let o=t.replace(/^on/,"").toLowerCase();a.addEventListener(o,r),u.push(()=>a.removeEventListener(o,r));};return e("mouseenter",s.onMouseEnter),e("mouseleave",s.onMouseLeave),e("mousemove",s.onMouseMove),e("click",s.onClick),e("focus",s.onFocus),e("blur",s.onBlur),()=>{u.forEach(t=>t()),s.destroy&&s.destroy(),s.className&&a.classList.remove(...s.className.split(" "));}},[l,JSON.stringify(c)]),n}function L(l){let c=react.useRef(null);return react.useEffect(()=>{if(!c.current)return;let n=c.current,i=[];return l.forEach(({name:s,options:a})=>{let u=chunkHDNHNIIN_cjs.O[s];if(typeof u!="function")return;let e=u(a);e.className&&n.classList.add(...e.className.split(" ")),e.style&&Object.entries(e.style).forEach(([r,o])=>{n.style.setProperty(r,String(o));});let t=(r,o)=>{if(!o)return;let m=r.replace(/^on/,"").toLowerCase();n.addEventListener(m,o),i.push(()=>n.removeEventListener(m,o));};t("mouseenter",e.onMouseEnter),t("mouseleave",e.onMouseLeave),t("mousemove",e.onMouseMove),t("click",e.onClick),i.push(()=>{e.destroy&&e.destroy(),e.className&&n.classList.remove(...e.className.split(" "));});}),()=>i.forEach(s=>s())},[JSON.stringify(l)]),c}exports.a=k;exports.b=L;//# sourceMappingURL=chunk-7QIOKYGR.cjs.map
|
|
3
|
+
//# sourceMappingURL=chunk-7QIOKYGR.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/adapters/react.ts"],"names":["useSpark","effectName","options","ref","useRef","useEffect","effectFn","spark","result","element","classes","key","value","cleanups","addEvent","name","handler","eventName","c","useSparkMultiple","effects","allCleanups","n","h","ev"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/adapters/react.ts"],"names":["useSpark","effectName","options","ref","useRef","useEffect","effectFn","spark","result","element","classes","key","value","cleanups","addEvent","name","handler","eventName","c","useSparkMultiple","effects","allCleanups","n","h","ev"],"mappings":"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","file":"chunk-7QIOKYGR.cjs","sourcesContent":["/**\r\n * sparkfx - React Adapter\r\n * Hooks and components for React integration\r\n */\r\n\r\nimport { useEffect, useRef, useMemo } from 'react'\r\nimport { spark } from '../index'\r\nimport type { SparkEffectName, SparkBaseOptions, SparkResult } from '../core/types'\r\nimport clsx from 'clsx'\r\n\r\n/**\r\n * Hook to apply a single spark effect to a ref\r\n * @param effectName Name of the effect to apply\r\n * @param options Effect options\r\n * @returns React ref to attach to the target element\r\n */\r\nexport function useSpark<T extends HTMLElement = HTMLElement>(\r\n effectName: SparkEffectName,\r\n options?: SparkBaseOptions\r\n) {\r\n const ref = useRef<T>(null)\r\n\r\n useEffect(() => {\r\n if (!ref.current) return\r\n\r\n // Apply the effect\r\n const effectFn = (spark as any)[effectName]\r\n if (typeof effectFn !== 'function') return\r\n\r\n const result = effectFn(options) as SparkResult\r\n const element = ref.current\r\n\r\n // Apply class\r\n if (result.className) {\r\n const classes = result.className.split(' ')\r\n element.classList.add(...classes)\r\n }\r\n\r\n // Apply styles\r\n if (result.style) {\r\n Object.entries(result.style).forEach(([key, value]) => {\r\n element.style.setProperty(key, String(value))\r\n })\r\n }\r\n\r\n // Apply events\r\n const cleanups: (() => void)[] = []\r\n\r\n const addEvent = (name: string, handler?: (e: any) => void) => {\r\n if (!handler) return\r\n const eventName = name.replace(/^on/, '').toLowerCase()\r\n element.addEventListener(eventName, handler)\r\n cleanups.push(() => element.removeEventListener(eventName, handler))\r\n }\r\n\r\n addEvent('mouseenter', result.onMouseEnter)\r\n addEvent('mouseleave', result.onMouseLeave)\r\n addEvent('mousemove', result.onMouseMove)\r\n addEvent('click', result.onClick)\r\n addEvent('focus', result.onFocus)\r\n addEvent('blur', result.onBlur)\r\n\r\n return () => {\r\n cleanups.forEach(c => c())\r\n if (result.destroy) result.destroy()\r\n if (result.className) {\r\n element.classList.remove(...result.className.split(' '))\r\n }\r\n }\r\n }, [effectName, JSON.stringify(options)])\r\n\r\n return ref\r\n}\r\n\r\n/**\r\n * Hook for multiple effects\r\n */\r\nexport function useSparkMultiple<T extends HTMLElement = HTMLElement>(\r\n effects: { name: SparkEffectName; options?: SparkBaseOptions }[]\r\n) {\r\n const ref = useRef<T>(null)\r\n\r\n useEffect(() => {\r\n if (!ref.current) return\r\n const element = ref.current\r\n const allCleanups: (() => void)[] = []\r\n\r\n effects.forEach(({ name, options }) => {\r\n const effectFn = (spark as any)[name]\r\n if (typeof effectFn !== 'function') return\r\n\r\n const result = effectFn(options) as SparkResult\r\n\r\n if (result.className) {\r\n element.classList.add(...result.className.split(' '))\r\n }\r\n\r\n if (result.style) {\r\n Object.entries(result.style).forEach(([key, value]) => {\r\n element.style.setProperty(key, String(value))\r\n })\r\n }\r\n\r\n const addEvent = (n: string, h?: (e: any) => void) => {\r\n if (!h) return\r\n const ev = n.replace(/^on/, '').toLowerCase()\r\n element.addEventListener(ev, h)\r\n allCleanups.push(() => element.removeEventListener(ev, h))\r\n }\r\n\r\n addEvent('mouseenter', result.onMouseEnter)\r\n addEvent('mouseleave', result.onMouseLeave)\r\n addEvent('mousemove', result.onMouseMove)\r\n addEvent('click', result.onClick)\r\n\r\n allCleanups.push(() => {\r\n if (result.destroy) result.destroy()\r\n if (result.className) element.classList.remove(...result.className.split(' '))\r\n })\r\n })\r\n\r\n return () => allCleanups.forEach(c => c())\r\n }, [JSON.stringify(effects)])\r\n\r\n return ref\r\n}\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
'use strict';var
|
|
2
|
-
var
|
|
1
|
+
'use strict';require('nanoid');var ve=require('clsx');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var ve__default=/*#__PURE__*/_interopDefault(ve);/* sparkfx - Premium micro-interactions */
|
|
2
|
+
var ae="sparkfx-styles",se=false,ne=new Set,me=`
|
|
3
3
|
/* @lynch/spark base styles */
|
|
4
4
|
.spark-effect {
|
|
5
5
|
transition-property: transform, box-shadow, filter, opacity;
|
|
@@ -183,25 +183,25 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
183
183
|
0%, 100% { opacity: 1; }
|
|
184
184
|
50% { opacity: 0; }
|
|
185
185
|
}
|
|
186
|
-
`;function i(){if(typeof document>"u"||
|
|
187
|
-
@keyframes ${t} { ${e} }`,
|
|
186
|
+
`;function i(){if(typeof document>"u"||se)return;let t=document.createElement("style");t.id=ae,t.textContent=me,document.head.appendChild(t),se=true;}function x(t,e){if(typeof document>"u"||ne.has(t))return;i();let r=document.getElementById(ae);r&&(r.textContent+=`
|
|
187
|
+
@keyframes ${t} { ${e} }`,ne.add(t));}function l(t){let e={};return t.duration!==void 0&&(e["--spark-duration"]=`${t.duration}ms`),t.easing!==void 0&&(e["--spark-easing"]=ue(t.easing)),t.intensity!==void 0&&(e["--spark-intensity"]=String(t.intensity)),e}function ue(t){return {linear:"linear",ease:"ease","ease-in":"ease-in","ease-out":"ease-out","ease-in-out":"ease-in-out",spring:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",bounce:"cubic-bezier(0.68, -0.55, 0.265, 1.55)",elastic:"cubic-bezier(0.68, -0.6, 0.32, 1.6)"}[t]??t}function w(){return typeof window>"u"?false:window.matchMedia("(prefers-reduced-motion: reduce)").matches}var y={tier:"free",valid:true},T=["bounce","pulse","lift","scale","shake","fade","slide","rotate","ripple","shimmer","glass","blur"],R=["glow","magnetic","tilt","elastic","jelly","rubber","morph","glitch","neon","gradient","spotlight","hologram","confetti","sparkle","firework","celebrate","typewriter","scramble","wave","highlight"];[...T,...R];function oe(t){return !t||typeof t!="string"?(console.warn("[sparkfx] Invalid license key"),false):/^sfx_(live|test)_[a-zA-Z0-9]{16,}$/.test(t)?(y={tier:(t.includes("_test_"),"pro"),key:t,valid:true,expiresAt:null},console.log("[sparkfx] \u2713 Pro license activated"),true):(console.warn("[sparkfx] Invalid license key format. Get your key at sparkfx.dev"),false)}function de(t){return T.includes(t)?true:R.includes(t)?y.tier!=="free"&&y.valid:true}function ge(){return y.tier}function ke(){return y.tier!=="free"&&y.valid}typeof process<"u"&&process.env?.SPARKFX_LICENSE_KEY&&oe(process.env.SPARKFX_LICENSE_KEY);var O=i;var xe=w,ye={duration:300,intensity:1,trigger:"hover",easing:"ease-out",delay:0,reduceMotion:true};function p(t,e){return {...ye,...e,...t}}function c(t){return !(t.reduceMotion!==false&&xe())}function d(t,e){return t*e}var he=0;function ie(){return `sparkfx-${++he}-${Date.now()}`}function Se(t,e,r){return Math.min(Math.max(t,e),r)}function pe(t,e="#ffffff"){if(!t||typeof t!="string")return e;let r=t.replace(/[^a-zA-Z0-9#(),.\s%]/g,"");return /^#[0-9A-Fa-f]{3,8}$/.test(r)||/^rgba?\([^)]+\)$/.test(r)||["red","blue","green","yellow","white","black","orange","purple","pink","cyan","magenta","currentColor","transparent"].includes(r.toLowerCase())?r:e}function ce(t,e,r,n){return t===void 0||typeof t!="number"||isNaN(t)?n:Se(t,e,r)}function h(t,e){return Math.random()*(e-t)+t}function le(t){return t[Math.floor(Math.random()*t.length)]}var be={duration:400,bounces:1,trigger:"hover",intensity:1};function E(t){let e=p(t,be);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=d(20,e.intensity),n=`sparkfx-bounce-${e.bounces}-${Math.round(r)}`,s="0%, 100% { transform: translateY(0); }",a=100/(e.bounces*2);for(let f=0;f<e.bounces;f++){let m=a*(f*2+1),u=r*Math.pow(.6,f);s+=` ${m}% { transform: translateY(-${u}px); }`;}x(n,s);let o=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-bounce"),style:{...o,"--sparkfx-animation-name":n},onMouseEnter:(void 0)}}var we={duration:1e3,count:-1,scale:1.05,trigger:"always",intensity:1};function M(t){let e=p(t,we);i();let r=1+(e.scale-1)*e.intensity,n=`sparkfx-pulse-${r.toString().replace(".","_")}`;if(x(n,`
|
|
188
188
|
0%, 100% { transform: scale(1); opacity: 1; }
|
|
189
189
|
50% { transform: scale(${r}); opacity: 0.8; }
|
|
190
|
-
`),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let s=l({duration:e.duration,easing:e.easing}),a=e.count===-1?"infinite":e.count;return {className:
|
|
190
|
+
`),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let s=l({duration:e.duration,easing:e.easing}),a=e.count===-1?"infinite":e.count;return {className:ve__default.default("sparkfx-effect","sparkfx-pulse"),style:{...s,animation:`${n} ${e.duration}ms ${e.easing} ${a}`}}}var Re={duration:200,distance:8,shadow:true,trigger:"hover",intensity:1};function B(t){let e=p(t,Re);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=d(e.distance,e.intensity),n=l({duration:e.duration,easing:e.easing}),s=e.shadow?`0 ${r*2}px ${r*3}px rgba(0, 0, 0, 0.15)`:"none";return {className:ve__default.default("sparkfx-effect","sparkfx-lift"),style:{...n,"--sparkfx-lift-distance":`-${r}px`,"--sparkfx-lift-shadow":s,transition:"transform var(--sparkfx-duration) var(--sparkfx-easing), box-shadow var(--sparkfx-duration) var(--sparkfx-easing)"},onMouseEnter:a=>{let o=a.currentTarget;e.trigger==="hover"&&(o.style.transform=`translateY(-${r}px)`,e.shadow&&(o.style.boxShadow=s));},onMouseLeave:a=>{let o=a.currentTarget;e.trigger==="hover"&&(o.style.transform="translateY(0)",o.style.boxShadow="none");}}}var Me={duration:200,scale:1.1,trigger:"hover",intensity:1};function C(t){let e=p(t,Me);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=1+(e.scale-1)*e.intensity,n=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-scale"),style:{...n,transition:"transform var(--sparkfx-duration) var(--sparkfx-easing)"},onMouseEnter:s=>{if(e.trigger==="hover"){let a=s.currentTarget;a.style.transform=`scale(${r})`;}},onMouseLeave:s=>{if(e.trigger==="hover"){let a=s.currentTarget;a.style.transform="scale(1)";}}}}var Ce={duration:500,distance:5,count:3,trigger:"click",intensity:1};function $(t){let e=p(t,Ce);i();let r=d(e.distance,e.intensity),n=`sparkfx-shake-${r}`;if(x(n,`
|
|
191
191
|
0%, 100% { transform: translateX(0); }
|
|
192
192
|
10%, 30%, 50%, 70%, 90% { transform: translateX(-${r}px); }
|
|
193
193
|
20%, 40%, 60%, 80% { transform: translateX(${r}px); }
|
|
194
|
-
`),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let s=l({duration:e.duration,easing:e.easing});return {className:
|
|
195
|
-
0 0 ${
|
|
196
|
-
0 0 ${
|
|
197
|
-
0 0 ${
|
|
198
|
-
`;return {className:
|
|
194
|
+
`),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let s=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-shake"),style:s,onClick:a=>{if(e.trigger==="click"){let o=a.currentTarget;o.style.animation=`${n} ${e.duration}ms ${e.easing}`,setTimeout(()=>{o.style.animation="";},e.duration);}}}}var Le={duration:200,opacity:.6,trigger:"hover",intensity:1};function L(t){let e=p(t,Le);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=e.opacity,n=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-fade"),style:{...n,transition:"opacity var(--sparkfx-duration) var(--sparkfx-easing)"},onMouseEnter:s=>{if(e.trigger==="hover"){let a=s.currentTarget;a.style.opacity=String(r);}},onMouseLeave:s=>{if(e.trigger==="hover"){let a=s.currentTarget;a.style.opacity="1";}}}}var je={duration:200,direction:"up",distance:10,trigger:"hover",intensity:1};function N(t){let e=p(t,je);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=d(e.distance,e.intensity),n=l({duration:e.duration,easing:e.easing}),s=()=>{switch(e.direction){case "up":return `translateY(-${r}px)`;case "down":return `translateY(${r}px)`;case "left":return `translateX(-${r}px)`;case "right":return `translateX(${r}px)`;default:return `translateY(-${r}px)`}};return {className:ve__default.default("sparkfx-effect","sparkfx-slide"),style:{...n,transition:"transform var(--sparkfx-duration) var(--sparkfx-easing)"},onMouseEnter:a=>{if(e.trigger==="hover"){let o=a.currentTarget;o.style.transform=s();}},onMouseLeave:a=>{if(e.trigger==="hover"){let o=a.currentTarget;o.style.transform="translate(0)";}}}}var Pe={duration:200,angle:5,direction:"clockwise",trigger:"hover",intensity:1};function j(t){let e=p(t,Pe);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=d(e.angle,e.intensity),n=e.direction==="counterclockwise"?-1:1,s=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-rotate"),style:{...s,transition:"transform var(--sparkfx-duration) var(--sparkfx-easing)"},onMouseEnter:a=>{if(e.trigger==="hover"){let o=a.currentTarget;o.style.transform=`rotate(${r*n}deg)`;}},onMouseLeave:a=>{if(e.trigger==="hover"){let o=a.currentTarget;o.style.transform="rotate(0)";}}}}var Ae={duration:300,color:"#00ffa3",spread:20,trigger:"hover",intensity:1};function H(t){let e=p(t,Ae),r=pe(e.color,"#00ffa3"),n=ce(e.spread,1,100,20);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let s=d(n,e.intensity),a=l({duration:e.duration,easing:e.easing}),o=`
|
|
195
|
+
0 0 ${s/2}px ${r},
|
|
196
|
+
0 0 ${s}px ${r},
|
|
197
|
+
0 0 ${s*1.5}px ${r}
|
|
198
|
+
`;return {className:ve__default.default("sparkfx-effect","sparkfx-glow"),style:{...a,transition:"box-shadow var(--sparkfx-duration) var(--sparkfx-easing), filter var(--sparkfx-duration) var(--sparkfx-easing)"},onMouseEnter:f=>{if(e.trigger==="hover"){let m=f.currentTarget;m.style.boxShadow=o,m.style.filter="brightness(1.1)";}},onMouseLeave:f=>{if(e.trigger==="hover"){let m=f.currentTarget;m.style.boxShadow="none",m.style.filter="brightness(1)";}}}}var Ie={duration:600,color:"rgba(255, 255, 255, 0.3)",trigger:"click"};function P(t){let e=p(t,Ie);return i(),c(e)?{className:"spark-effect spark-ripple-container",style:l({duration:e.duration}),onClick:s=>{let a=s.currentTarget,o=a.getBoundingClientRect(),f=Math.max(o.width,o.height)*2,m=document.createElement("span");m.className="spark-ripple",m.style.cssText=`
|
|
199
199
|
width: ${f}px;
|
|
200
200
|
height: ${f}px;
|
|
201
201
|
left: ${s.clientX-o.left-f/2}px;
|
|
202
202
|
top: ${s.clientY-o.top-f/2}px;
|
|
203
203
|
background: ${e.color};
|
|
204
|
-
`,getComputedStyle(a).position==="static"&&(a.style.position="relative"),a.style.overflow="hidden",a.appendChild(m),setTimeout(()=>{m.remove();},e.duration);}}:{className:"spark-effect spark-reduced-motion"}}var
|
|
204
|
+
`,getComputedStyle(a).position==="static"&&(a.style.position="relative"),a.style.overflow="hidden",a.appendChild(m),setTimeout(()=>{m.remove();},e.duration);}}:{className:"spark-effect spark-reduced-motion"}}var Ye={strength:.5,distance:100,trigger:"move"};function V(t){let e=p(t,Ye);return O(),{className:ve__default.default("sparkfx-effect","sparkfx-magnetic"),onMouseMove:r=>{if(e.trigger==="move"){let n=r.currentTarget,s=n.getBoundingClientRect(),a=s.left+s.width/2,o=s.top+s.height/2,f=r.clientX-a,m=r.clientY-o;if(Math.sqrt(f*f+m*m)<e.distance){let k=f*e.strength,g=m*e.strength;n.style.transform=`translate(${k}px, ${g}px)`;}else n.style.transform="translate(0, 0)";}},onMouseLeave:r=>{let n=r.currentTarget;n.style.transform="translate(0, 0)";}}}var Fe={angle:15,glare:true,perspective:1e3,trigger:"move"};function A(t){let e=p(t,Fe);return O(),{className:ve__default.default("sparkfx-effect","sparkfx-tilt"),onMouseMove:r=>{if(e.trigger==="move"){let n=r.currentTarget,s=n.getBoundingClientRect(),a=r.clientX-s.left,o=r.clientY-s.top,f=s.width/2,m=s.height/2,u=(a-f)/f*e.angle,k=(m-o)/m*e.angle;n.style.transform=`perspective(${e.perspective}px) rotateX(${k}deg) rotateY(${u}deg)`;}},onMouseLeave:r=>{let n=r.currentTarget;n.style.transform=`perspective(${e.perspective}px) rotateX(0deg) rotateY(0deg)`;}}}var _e={trigger:"hover",duration:600,scale:1.15,bounces:3};function ze(){if(document.getElementById("sparkfx-elastic-styles"))return;let t=document.createElement("style");t.id="sparkfx-elastic-styles",t.textContent=`
|
|
205
205
|
.sparkfx-elastic {
|
|
206
206
|
transition: transform 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
|
|
207
207
|
}
|
|
@@ -218,7 +218,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
218
218
|
80% { transform: scale(0.98); }
|
|
219
219
|
100% { transform: scale(1); }
|
|
220
220
|
}
|
|
221
|
-
`,document.head.appendChild(t);}function
|
|
221
|
+
`,document.head.appendChild(t);}function I(t){let e=p(t,_e);if(i(),ze(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=n=>{let s=n.currentTarget;s.style.setProperty("--elastic-scale",String(e.scale)),s.classList.remove("sparkfx-elastic-active"),s.offsetWidth,s.classList.add("sparkfx-elastic-active");};return {className:ve__default.default("sparkfx-effect","sparkfx-elastic"),style:l(e),onMouseEnter:e.trigger==="hover"?r:void 0,onClick:e.trigger==="click"?r:void 0}}var De={trigger:"hover",duration:500,intensity:1};function Ke(){if(document.getElementById("sparkfx-jelly-styles"))return;let t=document.createElement("style");t.id="sparkfx-jelly-styles",t.textContent=`
|
|
222
222
|
.sparkfx-jelly {
|
|
223
223
|
transition: transform 0.1s ease-out;
|
|
224
224
|
}
|
|
@@ -236,7 +236,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
236
236
|
75% { transform: scale(1.02, 0.98); }
|
|
237
237
|
100% { transform: scale(1, 1); }
|
|
238
238
|
}
|
|
239
|
-
`,document.head.appendChild(t);}function
|
|
239
|
+
`,document.head.appendChild(t);}function q(t){let e=p(t,De);if(i(),Ke(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=n=>{let s=n.currentTarget;s.classList.remove("sparkfx-jelly-active"),s.offsetWidth,s.classList.add("sparkfx-jelly-active");};return {className:ve__default.default("sparkfx-effect","sparkfx-jelly"),style:l(e),onMouseEnter:e.trigger==="hover"?r:void 0,onClick:e.trigger==="click"?r:void 0}}function Y(t){let e=p(t,{trigger:"click"});return i(),c(e)?{className:ve__default.default("sparkfx-effect","sparkfx-rubber"),style:l(e)}:{className:"sparkfx-effect"}}function X(t){let e=p(t,{trigger:"hover"});return i(),c(e)?{className:ve__default.default("sparkfx-effect","sparkfx-morph"),style:l(e)}:{className:"sparkfx-effect"}}var Qe={duration:300,color1:"#ff0055",color2:"#00d4ff",trigger:"hover",intensity:1};function F(t){let e=p(t,Qe);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-glitch"),style:{...r,"--sparkfx-glitch-color1":e.color1,"--sparkfx-glitch-color2":e.color2,position:"relative"}}}var tt={trigger:"hover",duration:300,amount:8,scale:1.02};function G(t){let e=p(t,tt);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r={...l(e),transition:"filter var(--sparkfx-duration) var(--sparkfx-easing), transform var(--sparkfx-duration) var(--sparkfx-easing)",filter:`blur(${e.amount}px)`,transform:"scale(0.98)"},n=a=>{let o=a.currentTarget;o.style.filter="blur(0)",o.style.transform=`scale(${e.scale})`;},s=a=>{let o=a.currentTarget;o.style.filter=`blur(${e.amount}px)`,o.style.transform="scale(0.98)";};return {className:ve__default.default("sparkfx-effect","sparkfx-blur"),style:r,onMouseEnter:e.trigger==="hover"?n:void 0,onMouseLeave:e.trigger==="hover"?s:void 0}}var st={duration:300,color:"#00d4ff",spread:20,trigger:"hover",intensity:1};function _(t){let e=p(t,st);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=d(e.spread,e.intensity),n=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-neon"),style:{...n,"--sparkfx-neon-color":e.color,"--sparkfx-neon-spread":`${r}px`}}}var at={duration:300,trigger:"always"};function z(t){let e=p(t,at);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=l({duration:e.duration,easing:e.easing});return {className:ve__default.default("sparkfx-effect","sparkfx-glass"),style:{...r}}}var it={duration:1500,trigger:"always"};function W(t){let e=p(t,it);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=l({duration:e.duration,easing:"linear"});return {className:ve__default.default("sparkfx-effect","sparkfx-shimmer"),style:{...r}}}var ct={trigger:"always",duration:3e3,colors:["#ff0080","#7928ca","#0070f3","#00d4ff"],speed:3,angle:45};function lt(){if(document.getElementById("sparkfx-gradient-styles"))return;let t=document.createElement("style");t.id="sparkfx-gradient-styles",t.textContent=`
|
|
240
240
|
.sparkfx-gradient {
|
|
241
241
|
background-size: 300% 300%;
|
|
242
242
|
animation: sparkfx-gradient-shift var(--gradient-speed, 3s) ease infinite;
|
|
@@ -247,7 +247,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
247
247
|
50% { background-position: 100% 50%; }
|
|
248
248
|
100% { background-position: 0% 50%; }
|
|
249
249
|
}
|
|
250
|
-
`,document.head.appendChild(t);}function
|
|
250
|
+
`,document.head.appendChild(t);}function D(t){let e=p(t,ct);if(i(),lt(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=`linear-gradient(${e.angle}deg, ${e.colors.join(", ")})`;return {className:ve__default.default("sparkfx-effect","sparkfx-gradient"),style:{...l(e),background:r,"--gradient-speed":`${e.speed}s`,WebkitBackgroundClip:"text",WebkitTextFillColor:"transparent",backgroundClip:"text"}}}function K(t){let e=p(t,{trigger:"hover"});return i(),c(e)?{className:ve__default.default("sparkfx-effect","sparkfx-spotlight"),onMouseMove:r=>{let n=r.currentTarget,s=n.getBoundingClientRect(),a=r.clientX-s.left,o=r.clientY-s.top;n.style.setProperty("--sparkfx-spotlight-x",`${a}px`),n.style.setProperty("--sparkfx-spotlight-y",`${o}px`);}}:{className:"sparkfx-effect"}}var ut={trigger:"hover",duration:300,intensity:1,scanlineOpacity:.1};function dt(){if(document.getElementById("sparkfx-hologram-styles"))return;let t=document.createElement("style");t.id="sparkfx-hologram-styles",t.textContent=`
|
|
251
251
|
@keyframes sparkfx-hologram-flicker {
|
|
252
252
|
0%, 100% { opacity: 1; }
|
|
253
253
|
50% { opacity: 0.95; }
|
|
@@ -303,20 +303,20 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
303
303
|
z-index: 11;
|
|
304
304
|
animation: sparkfx-hologram-scanline 2s linear infinite;
|
|
305
305
|
}
|
|
306
|
-
`,document.head.appendChild(t);}function
|
|
306
|
+
`,document.head.appendChild(t);}function J(t){let e=p(t,ut);if(i(),dt(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=null,n=a=>{let o=a.currentTarget;o.classList.add("sparkfx-hologram-active"),r||(r=document.createElement("span"),r.className="sparkfx-hologram-scanline",o.appendChild(r));},s=a=>{a.currentTarget.classList.remove("sparkfx-hologram-active"),r&&(r.remove(),r=null);};return {className:ve__default.default("sparkfx-effect","sparkfx-hologram"),style:l(e),onMouseEnter:e.trigger==="hover"?n:void 0,onMouseLeave:e.trigger==="hover"?s:void 0}}var kt={duration:2e3,count:30,colors:["#ff0055","#00d4ff","#00ffa3","#ffcc00","#ff00ff"],spread:60,trigger:"click",intensity:1};function S(t){let e=p(t,kt);i();let r=n=>{let s=Math.floor(e.count*e.intensity);for(let a=0;a<s;a++){let o=document.createElement("div"),f=h(5,10),m=le(e.colors),u=ie();o.className=`sparkfx-confetti-particle ${u}`,o.style.cssText=`
|
|
307
307
|
position: absolute;
|
|
308
308
|
width: ${f}px;
|
|
309
309
|
height: ${f}px;
|
|
310
310
|
background: ${m};
|
|
311
311
|
top: 50%;
|
|
312
312
|
left: 50%;
|
|
313
|
-
border-radius: ${
|
|
313
|
+
border-radius: ${h(0,50)}%;
|
|
314
314
|
pointer-events: none;
|
|
315
315
|
z-index: 1000;
|
|
316
|
-
`;let k=
|
|
316
|
+
`;let k=h(-e.spread,e.spread)-90,g=h(10,20),b=`sparkfx-confetti-${u}`;x(b,`
|
|
317
317
|
0% { transform: translate(-50%, -50%) rotate(0deg); opacity: 1; }
|
|
318
|
-
100% { transform: translate(calc(-50% + ${Math.cos(k*Math.PI/180)*g*10}px), calc(-50% + ${Math.sin(k*Math.PI/180)*g*10}px)) rotate(${
|
|
319
|
-
`),o.style.animation=`${
|
|
318
|
+
100% { transform: translate(calc(-50% + ${Math.cos(k*Math.PI/180)*g*10}px), calc(-50% + ${Math.sin(k*Math.PI/180)*g*10}px)) rotate(${h(0,360)}deg); opacity: 0; }
|
|
319
|
+
`),o.style.animation=`${b} ${e.duration}ms ease-out forwards`,n.appendChild(o),setTimeout(()=>o.remove(),e.duration);}};return {className:ve__default.default("sparkfx-effect","sparkfx-confetti"),onClick:n=>{e.trigger==="click"&&r(n.currentTarget);}}}var yt={trigger:"hover",duration:600,color:"#ffd700",count:8,spread:40};function ht(t,e,r){let n=document.createElement("span");n.className="sparkfx-sparkle-particle";let s=Math.random()*8+4,a=Math.random()*360,o=Math.random()*r+10,f=Math.cos(a*Math.PI/180)*o,m=Math.sin(a*Math.PI/180)*o;n.style.cssText=`
|
|
320
320
|
position: absolute;
|
|
321
321
|
width: ${s}px;
|
|
322
322
|
height: ${s}px;
|
|
@@ -330,7 +330,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
330
330
|
animation: sparkfx-sparkle-fly 0.6s ease-out forwards;
|
|
331
331
|
--sparkle-x: ${f}px;
|
|
332
332
|
--sparkle-y: ${m}px;
|
|
333
|
-
`,t.appendChild(n),setTimeout(()=>n.remove(),600);}function
|
|
333
|
+
`,t.appendChild(n),setTimeout(()=>n.remove(),600);}function St(){if(document.getElementById("sparkfx-sparkle-styles"))return;let t=document.createElement("style");t.id="sparkfx-sparkle-styles",t.textContent=`
|
|
334
334
|
@keyframes sparkfx-sparkle-fly {
|
|
335
335
|
0% {
|
|
336
336
|
opacity: 1;
|
|
@@ -350,7 +350,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
350
350
|
position: relative;
|
|
351
351
|
overflow: visible !important;
|
|
352
352
|
}
|
|
353
|
-
`,document.head.appendChild(t);}function
|
|
353
|
+
`,document.head.appendChild(t);}function v(t){let e=p(t,yt);if(i(),St(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=n=>{let s=n.currentTarget;for(let a=0;a<e.count;a++)setTimeout(()=>ht(s,e.color,e.spread),a*50);};return {className:ve__default.default("sparkfx-effect","sparkfx-sparkle"),style:l(e),onMouseEnter:e.trigger==="hover"?r:void 0,onClick:e.trigger==="click"?r:void 0}}var bt={trigger:"click",duration:800,colors:["#ff0000","#ffd700","#00ff00","#00bfff","#ff00ff","#ff6600"],particleCount:24,spread:80};function Ot(t,e,r,n,s,a){let o=document.createElement("span");o.className="sparkfx-firework-particle";let f=Math.random()*6+3,m=Math.cos(s*Math.PI/180)*a,u=Math.sin(s*Math.PI/180)*a;o.style.cssText=`
|
|
354
354
|
position: absolute;
|
|
355
355
|
width: ${f}px;
|
|
356
356
|
height: ${f}px;
|
|
@@ -364,7 +364,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
364
364
|
animation: sparkfx-firework-explode 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94) forwards;
|
|
365
365
|
--fw-x: ${m}px;
|
|
366
366
|
--fw-y: ${u}px;
|
|
367
|
-
`,t.appendChild(o),setTimeout(()=>o.remove(),800);}function
|
|
367
|
+
`,t.appendChild(o),setTimeout(()=>o.remove(),800);}function wt(){if(document.getElementById("sparkfx-firework-styles"))return;let t=document.createElement("style");t.id="sparkfx-firework-styles",t.textContent=`
|
|
368
368
|
@keyframes sparkfx-firework-explode {
|
|
369
369
|
0% {
|
|
370
370
|
opacity: 1;
|
|
@@ -384,7 +384,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
384
384
|
position: relative;
|
|
385
385
|
overflow: visible !important;
|
|
386
386
|
}
|
|
387
|
-
`,document.head.appendChild(t);}function
|
|
387
|
+
`,document.head.appendChild(t);}function U(t){let e=p(t,bt);if(i(),wt(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=n=>{let s=n.currentTarget,a=s.getBoundingClientRect(),o=n.clientX-a.left,f=n.clientY-a.top,m=360/e.particleCount;for(let u=0;u<e.particleCount;u++){let k=m*u+(Math.random()*20-10),g=e.spread*(.6+Math.random()*.4),b=e.colors[Math.floor(Math.random()*e.colors.length)];setTimeout(()=>{Ot(s,o,f,b,k,g);},Math.random()*100);}};return {className:ve__default.default("sparkfx-effect","sparkfx-firework"),style:l(e),onClick:e.trigger==="click"?r:void 0,onMouseEnter:e.trigger==="hover"?r:void 0}}var Rt={duration:3e3,trigger:"click"};function Z(t){let e=p(t,Rt);if(i(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=l({duration:e.duration}),n=S({...e,trigger:"click"}),s=v({...e,trigger:"hover"});return {className:ve__default.default("sparkfx-effect","sparkfx-celebrate"),style:r,onClick:a=>{n.onClick?.(a);},onMouseEnter:a=>{s.onMouseEnter?.(a);},onMouseLeave:a=>{s.onMouseLeave?.(a);}}}var Mt={trigger:"click",duration:50,speed:50,cursor:true,cursorChar:"|"};function Bt(){if(document.getElementById("sparkfx-typewriter-styles"))return;let t=document.createElement("style");t.id="sparkfx-typewriter-styles",t.textContent=`
|
|
388
388
|
.sparkfx-typewriter-cursor {
|
|
389
389
|
animation: sparkfx-cursor-blink 0.8s infinite;
|
|
390
390
|
margin-left: 2px;
|
|
@@ -395,7 +395,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
395
395
|
0%, 50% { opacity: 1; }
|
|
396
396
|
51%, 100% { opacity: 0; }
|
|
397
397
|
}
|
|
398
|
-
`,document.head.appendChild(t);}function
|
|
398
|
+
`,document.head.appendChild(t);}function Q(t){let e=p(t,Mt);if(i(),Bt(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=false,n="",s=null,a=o=>{if(r)return;r=true;let f=o.currentTarget;n=n||f.textContent||"",f.textContent="",e.cursor&&(s=document.createElement("span"),s.className="sparkfx-typewriter-cursor",s.textContent=e.cursorChar,f.appendChild(s));let m=0,u=()=>{m<n.length?(s?f.insertBefore(document.createTextNode(n[m]),s):f.textContent+=n[m],m++,setTimeout(u,e.speed)):(s&&setTimeout(()=>{s?.remove(),s=null;},1500),r=false);};u();};return {className:ve__default.default("sparkfx-effect","sparkfx-typewriter"),onClick:e.trigger==="click"?a:void 0,onMouseEnter:e.trigger==="hover"?a:void 0}}var $t={duration:1e3,trigger:"hover"},fe="ABCDEFGHIKLMNOPQRSTUVWXYZ0123456789@#$%&";function ee(t){let e=p(t,$t);i();let r=null,n=s=>{let a=s.innerText,o=0;clearInterval(r),r=setInterval(()=>{s.innerText=a.split("").map((f,m)=>m<o?a[m]:fe[Math.floor(Math.random()*fe.length)]).join(""),o>=a.length&&clearInterval(r),o+=1/3;},e.duration/(a.length*3));};return {className:ve__default.default("sparkfx-effect","sparkfx-scramble"),onMouseEnter:s=>{e.trigger==="hover"&&n(s.currentTarget);}}}var Nt={trigger:"hover",duration:400,amplitude:8,speed:100};function jt(){if(document.getElementById("sparkfx-wave-styles"))return;let t=document.createElement("style");t.id="sparkfx-wave-styles",t.textContent=`
|
|
399
399
|
.sparkfx-wave {
|
|
400
400
|
display: inline-block;
|
|
401
401
|
}
|
|
@@ -410,7 +410,7 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
410
410
|
0%, 100% { transform: translateY(0); }
|
|
411
411
|
50% { transform: translateY(var(--wave-amplitude, -8px)); }
|
|
412
412
|
}
|
|
413
|
-
`,document.head.appendChild(t);}function
|
|
413
|
+
`,document.head.appendChild(t);}function te(t){let e=p(t,Nt);if(i(),jt(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=false,n="",s=a=>{if(r)return;r=true;let o=a.currentTarget;n||(n=o.innerHTML);let f=o.textContent||"";o.innerHTML="",f.split("").forEach((u,k)=>{let g=document.createElement("span");g.className="sparkfx-wave-letter",g.textContent=u===" "?"\xA0":u,g.style.setProperty("--wave-amplitude",`-${e.amplitude}px`),g.style.animationDelay=`${k*e.speed}ms`,o.appendChild(g);});let m=f.length*e.speed+e.duration;setTimeout(()=>{o.innerHTML=n,r=false;},m);};return {className:ve__default.default("sparkfx-effect","sparkfx-wave"),onMouseEnter:e.trigger==="hover"?s:void 0,onClick:e.trigger==="click"?s:void 0}}var Pt={trigger:"hover",duration:300,color:"rgba(0, 255, 163, 0.3)",height:"40%"};function Vt(){if(document.getElementById("sparkfx-highlight-styles"))return;let t=document.createElement("style");t.id="sparkfx-highlight-styles",t.textContent=`
|
|
414
414
|
.sparkfx-highlight {
|
|
415
415
|
position: relative;
|
|
416
416
|
display: inline-block;
|
|
@@ -431,5 +431,5 @@ var re="sparkfx-styles",ee=false,te=new Set,oe=`
|
|
|
431
431
|
.sparkfx-highlight-active::after {
|
|
432
432
|
width: 100%;
|
|
433
433
|
}
|
|
434
|
-
`,document.head.appendChild(t);}function
|
|
435
|
-
//# sourceMappingURL=chunk-
|
|
434
|
+
`,document.head.appendChild(t);}function re(t){let e=p(t,Pt);if(i(),Vt(),!c(e))return {className:"sparkfx-effect sparkfx-reduced-motion"};let r=s=>{s.currentTarget.classList.add("sparkfx-highlight-active");},n=s=>{s.currentTarget.classList.remove("sparkfx-highlight-active");};return {className:ve__default.default("sparkfx-effect","sparkfx-highlight"),style:{...l(e),"--highlight-color":e.color,"--highlight-height":e.height},onMouseEnter:e.trigger==="hover"?r:void 0,onMouseLeave:e.trigger==="hover"?n:void 0}}var At={bounce:E,pulse:M,lift:B,scale:C,shake:$,fade:L,slide:N,rotate:j,glow:H,ripple:P,magnetic:V,tilt:A,elastic:I,jelly:q,rubber:Y,morph:X,glitch:F,blur:G,neon:_,glass:z,shimmer:W,gradient:D,spotlight:K,hologram:J,confetti:S,sparkle:v,firework:U,celebrate:Z,typewriter:Q,scramble:ee,wave:te,highlight:re},Wn=At;exports.A=_;exports.B=z;exports.C=W;exports.D=D;exports.E=K;exports.F=J;exports.G=S;exports.H=v;exports.I=U;exports.J=Z;exports.K=Q;exports.L=ee;exports.M=te;exports.N=re;exports.O=At;exports.P=Wn;exports.a=i;exports.b=w;exports.c=T;exports.d=R;exports.e=oe;exports.f=de;exports.g=ge;exports.h=ke;exports.i=E;exports.j=M;exports.k=B;exports.l=C;exports.m=$;exports.n=L;exports.o=N;exports.p=j;exports.q=H;exports.r=P;exports.s=V;exports.t=A;exports.u=I;exports.v=q;exports.w=Y;exports.x=X;exports.y=F;exports.z=G;//# sourceMappingURL=chunk-HDNHNIIN.cjs.map
|
|
435
|
+
//# sourceMappingURL=chunk-HDNHNIIN.cjs.map
|